diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..fe30bb5 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,14 @@ +name: Deploy to School + +on: + push: + branches: [main] + +jobs: + deploy: + runs-on: self-hosted + steps: + - name: Update School repo + run: | + cd /gits/School + git pull origin main diff --git a/.obsidian/bookmarks.json b/.obsidian/bookmarks.json new file mode 100644 index 0000000..6f03529 --- /dev/null +++ b/.obsidian/bookmarks.json @@ -0,0 +1,10 @@ +{ + "items": [ + { + "type": "folder", + "ctime": 1756832387880, + "path": "Introducción Quimica", + "title": "Quimica" + } + ] +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 8d0c4e1..585f3e7 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,3 +1,4 @@ [ - "obsidian-excalidraw-plugin" + "obsidian-excalidraw-plugin", + "obsidian-plugin-toc" ] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json index e21a18d..0218caf 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -1,22 +1,22 @@ { - "collapse-filter": true, + "collapse-filter": false, "search": "", "showTags": false, "showAttachments": false, "hideUnresolved": false, "showOrphans": true, - "collapse-color-groups": true, + "collapse-color-groups": false, "colorGroups": [], - "collapse-display": true, + "collapse-display": false, "showArrow": false, "textFadeMultiplier": 0, "nodeSizeMultiplier": 1, "lineSizeMultiplier": 1, - "collapse-forces": true, - "centerStrength": 0.518713248970312, - "repelStrength": 10, + "collapse-forces": false, + "centerStrength": 0.363692497684471, + "repelStrength": 20, "linkStrength": 1, "linkDistance": 250, - "scale": 1, + "scale": 0.6050268332454847, "close": false } \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json index cc33048..24b0358 100644 --- a/.obsidian/plugins/obsidian-excalidraw-plugin/data.json +++ b/.obsidian/plugins/obsidian-excalidraw-plugin/data.json @@ -10,24 +10,24 @@ "loadChineseFonts": false, "loadJapaneseFonts": false, "loadKoreanFonts": false, - "compress": true, + "compress": false, "decompressForMDView": false, "onceOffCompressFlagReset": true, "onceOffGPTVersionReset": true, "autosave": true, "autosaveIntervalDesktop": 60000, "autosaveIntervalMobile": 30000, - "drawingFilenamePrefix": "Drawing ", + "drawingFilenamePrefix": "img_", "drawingEmbedPrefixWithFilename": true, "drawingFilnameEmbedPostfix": " ", - "drawingFilenameDateTime": "YYYY-MM-DD HH.mm.ss", + "drawingFilenameDateTime": "DD-MM-YY_HH", "useExcalidrawExtension": true, "cropSuffix": "", "cropPrefix": "cropped_", "annotateSuffix": "", "annotatePrefix": "annotated_", "annotatePreserveSize": false, - "previewImageType": "SVGIMG", + "previewImageType": "SVG", "renderingConcurrency": 3, "allowImageCache": true, "allowImageCacheInScene": true, @@ -87,7 +87,7 @@ "autoexportPNG": false, "autoExportLightAndDark": false, "autoexportExcalidraw": false, - "embedType": "excalidraw", + "embedType": "SVG", "embedMarkdownCommentLinks": true, "embedWikiLink": true, "syncExcalidraw": false, diff --git a/.obsidian/plugins/obsidian-plugin-toc/data.json b/.obsidian/plugins/obsidian-plugin-toc/data.json new file mode 100644 index 0000000..00cd308 --- /dev/null +++ b/.obsidian/plugins/obsidian-plugin-toc/data.json @@ -0,0 +1,6 @@ +{ + "minimumDepth": 2, + "maximumDepth": 6, + "listStyle": "number", + "useMarkdown": false +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-plugin-toc/main.js b/.obsidian/plugins/obsidian-plugin-toc/main.js new file mode 100644 index 0000000..353ed49 --- /dev/null +++ b/.obsidian/plugins/obsidian-plugin-toc/main.js @@ -0,0 +1,22 @@ +var J=Object.create,d=Object.defineProperty,z=Object.getPrototypeOf,Z=Object.prototype.hasOwnProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertyDescriptor;var T=u=>d(u,"__esModule",{value:!0});var B=(u,D)=>()=>(D||(D={exports:{}},u(D.exports,D)),D.exports),X=(u,D)=>{for(var F in D)d(u,F,{get:D[F],enumerable:!0})},Y=(u,D,F)=>{if(D&&typeof D=="object"||typeof D=="function")for(let C of K(D))!Z.call(u,C)&&C!=="default"&&d(u,C,{get:()=>D[C],enumerable:!(F=Q(D,C))||F.enumerable});return u},p=u=>Y(T(d(u!=null?J(z(u)):{},"default",u&&u.__esModule&&"default"in u?{get:()=>u.default,enumerable:!0}:{value:u,enumerable:!0})),u);var k=B((cD,f)=>{"use strict";function DD(u){var D=void 0;typeof u=="string"?D=[u]:D=u.raw;for(var F="",C=0;C{y.exports=u=>u!=null&&typeof u=="object"&&u.constructor!==RegExp});var M=B((hD,L)=>{"use strict";function m(u){if(!(this instanceof m))return new m(u);this.err=null,this.value=null;try{this.value=JSON.parse(u)}catch(D){this.err=D}}L.exports=m});var _=B(g=>{"use strict";var A=g&&g.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0});var uD=A(k()),FD=A(S()),P=A(M()),h="twhZNwxI1aFG3r4";function O(u,...D){let F="";for(let C=0;C0?" ".repeat(s):"";(t?JSON.stringify(e,null,2):e[h]).split(` +`).forEach((i,o)=>{o>0?F+=` +`+n+i:F+=i})}else if(typeof e=="string"&&e.includes(` +`)){let E=F.match(/(?:^|\n)( *)$/);if(typeof e=="string"){let s=E?E[1]:"";F+=e.split(` +`).map((n,a)=>(n=h+n,a===0?n:`${s}${n}`)).join(` +`)}else F+=e}else F+=e}return F=uD.default(F),F.split(h).join("")}O.pretty=u=>FD.default(u)?{[h]:JSON.stringify(u,null,2)}:u;g.default=O});var H=B((pD,x)=>{x.exports=()=>/(?:[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDD-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF6](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC2\uDED0-\uDED9\uDEE0-\uDEE7]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?))/g});var j=B((fD,I)=>{I.exports=function(u,D){D=D||{},D.listUnicodeChar=D.hasOwnProperty("listUnicodeChar")?D.listUnicodeChar:!1,D.stripListLeaders=D.hasOwnProperty("stripListLeaders")?D.stripListLeaders:!0,D.gfm=D.hasOwnProperty("gfm")?D.gfm:!0,D.useImgAltText=D.hasOwnProperty("useImgAltText")?D.useImgAltText:!0,D.abbr=D.hasOwnProperty("abbr")?D.abbr:!1,D.replaceLinksWithURL=D.hasOwnProperty("replaceLinksWithURL")?D.replaceLinksWithURL:!1,D.htmlTagsToSkip=D.hasOwnProperty("htmlTagsToSkip")?D.htmlTagsToSkip:[];var F=u||"";F=F.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*/gm,"");try{D.stripListLeaders&&(D.listUnicodeChar?F=F.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,D.listUnicodeChar+" $1"):F=F.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,"$1")),D.gfm&&(F=F.replace(/\n={2,}/g,` +`).replace(/~{3}.*\n/g,"").replace(/~~/g,"").replace(/`{3}.*\n/g,"")),D.abbr&&(F=F.replace(/\*\[.*\]:.*\n/,"")),F=F.replace(/<[^>]*>/g,"");var C=new RegExp("<[^>]*>","g");if(D.htmlTagsToSkip.length>0){var e="(?!"+D.htmlTagsToSkip.join("|")+")";C=new RegExp("<"+e+"[^>]*>","ig")}F=F.replace(C,"").replace(/^[=\-]{2,}\s*$/g,"").replace(/\[\^.+?\](\: .*?$)?/g,"").replace(/\s{0,2}\[.*?\]: .*?$/g,"").replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g,D.useImgAltText?"$1":"").replace(/\[([^\]]*?)\][\[\(].*?[\]\)]/g,D.replaceLinksWithURL?"$2":"$1").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g,"").replace(/^(\n)?\s{0,}#{1,6}\s+| {0,}(\n)?\s{0,}#{0,} #{0,}(\n)?\s{0,}$/gm,"$1$2$3").replace(/([\*]+)(\S)(.*?\S)??\1/g,"$2$3").replace(/(^|\W)([_]+)(\S)(.*?\S)??\2($|\W)/g,"$1$3$4$5").replace(/(`{3,})(.*?)\1/gm,"$2").replace(/`(.+?)`/g,"$1").replace(/~(.*?)~/g,"$1")}catch(t){return console.error(t),u}return F}});var R=B((mD,N)=>{"use strict";var eD=H(),tD=j();function CD(u,D){return u=u.replace(/[^a-z0-9]+/g,"_"),u=u.replace(/^_+|_+$/,""),u=u.replace(/^([^a-z])/,"_$1"),D&&(u+="_"+D),u}function U(u){return u.replace(/ /g,"-").replace(/%([abcdef]|\d){2,2}/ig,"").replace(/[\/?!:\[\]`.,()*"';{}+=<>~\$|#@&–—]/g,"").replace(/[。?!,、;:“”【】()〔〕[]﹃﹄“ ”‘’﹁﹂—…-~《》〈〉「」]/g,"")}function nD(u,D){return u=U(u),D&&(u+="-"+D),u=u.replace(eD(),""),u=tD(u),u}function ED(u,D){return u="markdown-header-"+U(u),u=u.replace(/--+/g,"-"),D&&(u+="_"+D),u}function aD(u){return u.replace(/ /g,"").replace(/[\/?:\[\]`.,()*"';{}\-+=<>!@#%^&\\\|]/g,"").replace(/\$/g,"d").replace(/~/g,"t")}function rD(u){return u=aD(u),u}function iD(u,D){return u=u.replace(/<(.*)>(.*)<\/\1>/g,"$2").replace(/!\[.*\]\(.*\)/g,"").replace(/\[(.*)\]\(.*\)/,"$1").replace(/\s+/g,"-").replace(/[\/?!:\[\]`.,()*"';{}+=<>~\$|#@]/g,"").replace(/[。?!,、;:“”【】()〔〕[]﹃﹄“ ”‘’﹁﹂—…-~《》〈〉「」]/g,"").replace(/[-]+/g,"-").replace(/^-/,"").replace(/-$/,""),D&&(u+="-"+D),u}N.exports=function(D,F,C,e){F=F||"github.com";var t,E=encodeURI;switch(F){case"github.com":t=nD,E=function(a){var l=encodeURI(a);return l.replace(/%E2%80%8D/g,"\u200D")};break;case"bitbucket.org":t=ED;break;case"gitlab.com":t=iD;break;case"nodejs.org":if(!e)throw new Error("Need module name to generate proper anchor for "+F);t=function(a,l){return CD(e+"."+a,l)};break;case"ghost.org":t=rD;break;default:throw new Error("Unknown mode: "+F)}function s(a){for(var l="",i=0;i="A"&&a[i]<="Z"?l+=a[i].toLowerCase():l+=a[i];return l}var n=t(s(D.trim()),C);return"["+D+"](#"+E(n)+")"}});T(exports);X(exports,{default:()=>BD});var r=p(require("obsidian"));var b=p(_()),G=p(require("obsidian")),V=p(R()),w=(u,D)=>{let F=u.filter(C=>C.position.end.lineu.filter(F=>F.position.end.line>D.line),lD=(u,D)=>{let F=u.indexOf(D);return u.slice(0,F).reverse().find((e,t,E)=>e.level==D.level-1)},q=({headings:u=[]},D,F)=>{let C=w(u,D),e=sD(u,D),t=[];for(let n of e){if(n.level<=C)break;n.level>=F.minimumDepth&&n.level<=F.maximumDepth&&t.push(n)}if(!t.length){new G.Notice(b.default` + No headings below cursor matched settings + (min: ${F.minimumDepth}) (max: ${F.maximumDepth}) + `);return}let E=t[0].level,s=t.map(n=>{let a=F.listStyle==="number"&&"1."||"-",l=new Array(Math.max(0,n.level-E)).fill(" ").join(""),i=lD(t,n),o=`${l}${a}`,$=n.heading,c;return F.useMarkdown&&F.githubCompat?`${o} ${(0,V.default)(n.heading)}`:(F.useMarkdown?c=encodeURI(n.heading):typeof i=="undefined"?c=n.heading:c=`${i.heading}#${n.heading}`,F.useMarkdown?`${o} [${$}](#${c})`:`${o} [[#${c}|${$}]]`)});return b.default` + ${F.title?`${F.title} +`:""} + ${`${s.join(` +`)} +`} + `};var W=class extends r.PluginSettingTab{constructor(D,F){super(D,F);this.plugin=F}display(){let{containerEl:D}=this;D.empty(),D.createEl("h2",{text:"Table of Contents - Settings"}),new r.Setting(D).setName("List Style").setDesc("The type of list to render the table of contents as.").addDropdown(e=>e.setValue(this.plugin.settings.listStyle).addOption("bullet","Bullet").addOption("number","Number").onChange(t=>{this.plugin.settings.listStyle=t,this.plugin.saveData(this.plugin.settings),this.display()})),new r.Setting(D).setName("Title").setDesc("Optional title to put before the table of contents").addText(e=>e.setPlaceholder("**Table of Contents**").setValue(this.plugin.settings.title||"").onChange(t=>{this.plugin.settings.title=t,this.plugin.saveData(this.plugin.settings)})),new r.Setting(D).setName("Minimum Header Depth").setDesc("The lowest header depth to add to the table of contents. Defaults to 2").addSlider(e=>e.setValue(this.plugin.settings.minimumDepth).setDynamicTooltip().setLimits(1,6,1).onChange(t=>{this.plugin.settings.minimumDepth=t,this.plugin.saveData(this.plugin.settings)})),new r.Setting(D).setName("Maximum Header Depth").setDesc("The highest header depth to add to the table of contents. Defaults to 6").addSlider(e=>e.setValue(this.plugin.settings.maximumDepth).setDynamicTooltip().setLimits(1,6,1).onChange(t=>{this.plugin.settings.maximumDepth=t,this.plugin.saveData(this.plugin.settings)})),new r.Setting(D).setName("Use Markdown links").setDesc("Auto-generate Markdown links, instead of the default WikiLinks").addToggle(e=>e.setValue(this.plugin.settings.useMarkdown).onChange(t=>{this.plugin.settings.useMarkdown=t,this.plugin.saveData(this.plugin.settings),t||C.components[0].setValue(!1),C.setDisabled(!t)}));let F=new DocumentFragment;F.appendText("Github generates section links differently than Obsidian, this setting uses "),F.createEl("a",{href:"https://github.com/thlorenz/anchor-markdown-header",text:"anchor-markdown-header"}),F.appendText(" to generate the proper links.");let C=new r.Setting(D).setName("Github compliant Markdown section links").setDesc(F).setDisabled(!this.plugin.settings.useMarkdown).addToggle(e=>e.setValue(this.plugin.settings.githubCompat??!1).setDisabled(!this.plugin.settings.useMarkdown).onChange(t=>{this.plugin.settings.githubCompat=t,this.plugin.saveData(this.plugin.settings)}))}},v=class extends r.Plugin{constructor(){super(...arguments);this.settings={minimumDepth:2,maximumDepth:6,listStyle:"bullet",useMarkdown:!1};this.createTocForActiveFile=(D=this.settings)=>()=>{let F=this.app.workspace.getActiveViewOfType(r.MarkdownView);if(F&&F.file){let C=F.sourceMode.cmEditor,e=C.getCursor(),t=this.app.metadataCache.getFileCache(F.file)||{},E=q(t,e,typeof D=="function"?D(t,e):D);E&&C.replaceRange(E,e)}}}async onload(){console.log("Load Table of Contents plugin"),this.settings={...this.settings,...await this.loadData()},this.addCommand({id:"create-toc",name:"Create table of contents",callback:this.createTocForActiveFile()}),this.addCommand({id:"create-toc-next-level",name:"Create table of contents for next heading level",callback:this.createTocForActiveFile((D,F)=>{let C=w(D.headings||[],F),e=Math.max(C+1,this.settings.minimumDepth);return{...this.settings,minimumDepth:e,maximumDepth:e}})}),this.addSettingTab(new W(this.app,this))}},BD=v; + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-plugin-toc/manifest.json b/.obsidian/plugins/obsidian-plugin-toc/manifest.json new file mode 100644 index 0000000..8d39a3d --- /dev/null +++ b/.obsidian/plugins/obsidian-plugin-toc/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-plugin-toc", + "name": "Table of Contents", + "author": "Andrew Lisowski", + "authorUrl": "https://twitter.com/hipstersmoothie", + "description": "Create a table of contents for a note.", + "isDesktopOnly": false, + "minAppVersion": "0.10.12", + "version": "0.2.0" +} \ No newline at end of file diff --git a/.obsidian/snippets/style.css b/.obsidian/snippets/style.css new file mode 100644 index 0000000..5911edd --- /dev/null +++ b/.obsidian/snippets/style.css @@ -0,0 +1,31 @@ +/* ==== TOC Styling ==== */ +.markdown-preview-view .toc ul { + list-style: none; + padding-left: 0.5em; + margin: 0; +} + +.markdown-preview-view .toc li { + margin: 4px 0; + padding: 3px 6px; + border-left: 2px solid var(--background-modifier-border); + font-size: 0.9em; + color: var(--text-muted); + transition: all 0.2s ease; +} + +.markdown-preview-view .toc li:hover { + background: var(--background-secondary); + border-left-color: var(--text-accent); + color: var(--text-normal); +} + +.markdown-preview-view .toc a { + color: var(--text-normal) !important; + text-decoration: none; +} + +.markdown-preview-view .toc a:hover { + text-decoration: underline; +} + diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index e57fa63..773ebae 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -10,75 +10,31 @@ { "id": "1e64a086cfa120b9", "type": "leaf", - "pinned": true, "state": { "type": "markdown", "state": { - "file": "Introducción Quimica/Sustancias Inorgánicas.md", - "mode": "source", - "source": false - }, - "pinned": true, - "icon": "lucide-file", - "title": "Sustancias Inorgánicas" - } - }, - { - "id": "f5cef156152cfc22", - "type": "leaf", - "pinned": true, - "state": { - "type": "image", - "state": { - "file": "Introducción Quimica/Contenido/TablaPeriódica.png" - }, - "pinned": true, - "icon": "lucide-image", - "title": "TablaPeriódica" - } - }, - { - "id": "c2b7919162d7bb30", - "type": "leaf", - "pinned": true, - "state": { - "type": "image", - "state": { - "file": "Introducción Quimica/Contenido/TablaPeriódicaNO.webp" - }, - "pinned": true, - "icon": "lucide-image", - "title": "TablaPeriódicaNO" - } - }, - { - "id": "e169ed270ae9fda1", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Introducción Quimica/Estequinetría de las reacciónes químicas.md", + "file": "Introducción Quimica/Sustancias Inorgánicas/4.Otras combinaciónes.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Estequinetría de las reacciónes químicas" + "title": "4.Otras combinaciónes" } }, { - "id": "46ddf1a195c955e8", + "id": "f7841f259bd4bb62", "type": "leaf", "state": { "type": "excalidraw", "state": { - "file": "Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.md" + "file": "Ilustraciónes/img_02-09-25_20.excalidraw.md" }, "icon": "excalidraw-icon", - "title": "Drawing 2025-09-02 09.39.04.excalidraw" + "title": "img_02-09-25_20.excalidraw" } } ], - "currentTab": 4 + "currentTab": 1 } ], "direction": "vertical" @@ -135,7 +91,7 @@ } ], "direction": "horizontal", - "width": 200 + "width": 542.5086555480957 }, "right": { "id": "0411853e83b6cf82", @@ -227,53 +183,54 @@ "obsidian-excalidraw-plugin:New drawing": false } }, - "active": "46ddf1a195c955e8", + "active": "f7841f259bd4bb62", "lastOpenFiles": [ - "Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.svg", + "Pasted Image 20250902211302_215.png", + "Ilustraciónes/img_02-09-25_20.excalidraw.svg", + "Introducción Quimica/Sustancias Inorgánicas/4.Otras combinaciónes.md", + "Ilustraciónes/img_02-09-25_20.excalidraw.md", + "Ilustraciónes", + "Introducción Quimica/Sustancias Inorgánicas/3.Combinaciones del Oxigeno.md", + "Introducción Quimica/Sustancias Inorgánicas/2.Combinaciones del Hidrógeno.md", + "Introducción Quimica/Sustancias Inorgánicas/1.Sustancias Simples.md", + "Introducción Quimica/Sustancias Inorgánicas/0.Sustancias Inorgánicas Introducción.md", + "Introducción Quimica/Introducción Química.md", + "Apuntes.md", "Introducción Quimica/Sustancias orgánicas.md", - "Introducción Quimica/Sustancias Inorgánicas.md", - "Introducción Quimica/Contenido/TablaPeriódica.png", - "Introducción Quimica/Contenido/TablaPeriódicaNO.webp", "Introducción Quimica/Estequinetría de las reacciónes químicas.md", + "Introducción Quimica/Sustancias Inorgánicas.md", + "Introducción Quimica/Sustancias Inorgánicas", + "Introducción Quimica/Ilustraciónes", + "Ilustraciónes/Estequinetría de las reacciónes químicas 02-09-25_19.excalidraw.svg", + "Ilustraciónes/Estequinetría de las reacciónes químicas 02-09-25_19.excalidraw.md", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19.excalidraw.svg", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19_1.excalidraw.md", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19_1.excalidraw.svg", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19_0.excalidraw.md", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19_0.excalidraw.svg", + "Ilustraciónes/Sustancias Inorgánicas 02-09-25_19.excalidraw.md", + "Introducción Quimica/Contenido/TablaPeriódica.png", + "Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw", + "Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.md", + "Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg", "Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.md", - "Introducción Quimica/Contenido/TablaPeriódica2.pdf", + "Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.md", + "Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.svg", + "Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.svg", + "Introducción Quimica/Contenido/TablaPeriódicaNO.webp", + "2025-09-02.md", + "Untitled.base", "Untitled.canvas", - "Untitled.md", + "Introducción Quimica/Contenido/TablaPeriódica2.pdf", "Perlite/SECURITY.md", "Perlite/README.md", "Perlite/Changelog.md", "Introducción Quimica/Drawing 2025-09-02 10.13.03.excalidraw.md", "Introducción Quimica/Drawing 2025-09-02 10.01.02.excalidraw.md", - "Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.md", - "Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.svg", "Introducción Quimica/Contenido", "Perlite/web/conf.d/default.conf", "Perlite/web/conf.d", - "Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg", "Introducción Quimica/Enlaces.md", - "Introducción Quimica/Composición de materiales.md", - "Introducción Quimica/Elementos y átomos.md", - "Introducción Quimica/Iones.md", - "docker-compose.yml", - "Perlite/web/config/default.conf", - "Perlite/perlite/School", - "Perlite/web/config/perlite.conf", - "Perlite/web/config", - "Perlite/web", - "Perlite/screenshots/screenshot.png", - "Perlite/screenshots/plugin_options.png", - "Perlite/screenshots/plugin.png", - "Perlite/screenshots/link.png", - "Perlite/screenshots/graph.png", - "Perlite/perlite/vendor/erusev/parsedown/README.md", - "Perlite/perlite/Demo/README.md", - "Perlite/perlite/Demo/Demo Documents/Markdown Samples.md", - "Perlite/perlite/Demo/Demo Documents/Links and Embedded.md", - "Perlite/perlite/Demo/Demo Documents/Latex and Mermaid.md", - "Perlite/perlite/Demo/Demo Documents/Images.md", - "Perlite/perlite/Demo/Demo Documents/Callouts and Frontmatter.md", - "Dr.md", - "Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.md", - "Docs/Introducción Quimica/Iones.md" + "docker-compose.yml" ] } \ No newline at end of file diff --git a/Apuntes.md b/Apuntes.md new file mode 100644 index 0000000..093ddd1 --- /dev/null +++ b/Apuntes.md @@ -0,0 +1,5 @@ +Arnau Alier Torres + +# Introducción a Química + +#### [[Introducción Quimica/Introducción Química|Introducción Química]] diff --git a/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.md b/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.md deleted file mode 100644 index d56d775..0000000 --- a/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.md +++ /dev/null @@ -1,338 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- -==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' - - -# Excalidraw Data - -## Text Elements -%% -## Drawing -```compressed-json -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 - -Kc0E+sAAnUCAAnUEAA== -``` -%% \ No newline at end of file diff --git a/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg b/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg deleted file mode 100644 index 7a14b82..0000000 --- a/Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.md b/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.md deleted file mode 100644 index 7a2e6b1..0000000 --- a/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.md +++ /dev/null @@ -1,198 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- -==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' - - -# Excalidraw Data - -## Text Elements -%% -## Drawing -```compressed-json -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 -``` -%% \ No newline at end of file diff --git a/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.svg b/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.svg deleted file mode 100644 index 9688e07..0000000 --- a/Ilustraciónes/Drawing 2025-09-02 09.35.04.excalidraw.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.md b/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.md deleted file mode 100644 index 51b52b8..0000000 --- a/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.md +++ /dev/null @@ -1,5948 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- -==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' - - -# Excalidraw Data - -## Text Elements -%% -## Drawing -```compressed-json -N4KAkARALgngDgUwgLgAQQQDwMYEMA2AlgCYBOuA7hADTgQBuCpAzoQPYB2KqATLZMzYBXUtiRoIACyhQ4zZAHoFAc0JRJQgEYA6bGwC2CgF7N6hbEcK4OCtptbErHALRY8RMpWdx8Q1TdIEfARcZgRmBShcZQUebQBGAFYEmjoghH0EDihmbgBtcDBQMBKIEm4IADVlZwBBfABVABUAdQBhZSgADQBFAHEKACEENoBZWqhUkshYRAqAM0CETyp+ - -UsxuZwBmLeSAFkSANh4tgHZTgE4eC8OADlPEtcgYTfi9ve0H+NvErYu9nj3eLxJ4QCgkdTcQHaC4ABgeV3OWz2Z0ehUgkgQhGU0m4W1unwup1hPAe91ucOOaOmEGsymC3FhoOYUFIbAA1iM2Pg2KQKgBieIIIVCqalTS4bDs5RsoQcYhtbm8iqs6zMOC4QLZMWQeaEfD4ADKsAZEkEHh1EBZbM5LQhkkZ2mppWtHIQxpgpvQ5vKoNlOI44VyaBB6 - -IgbA12DULxDsKZYZlwjgAEliMHUHkALqgxa4TKp7gcIQG0GEeVYCq4ABiltl8sDzHTRZLYbCy24dy2sK21z28ZpjBY7C4aGRoMHrE4ADlOGJuLceLDErC3rc9qXmAARdJQdtoeYEMKgzTCeUAUWCmWy6azoKEcGIuF3xG48Qeh0ut1uhyJu1BRA4dlC2LfB/zYKU91QA98CPMM4DYMscnydEwAKaYSn7dDYRQ7MULQ9DnDiQEeHiQ5EkSUlkVRJ4 - -SniJ0SIOfFElOAFvgeHCaPw6Ztm0WEAThc5VxRB4aLAOiKLeX4fhYkj7kSDi8JQsBnA+I4USuWEKTXailK2Xj+PhU4hNRBT0K4kpnGSHtl1OHtWLk0TVMOFFDiSU4eB4MiqVM6ZzOUw5eJ+W4kn4u4RKUgLNMSYLElCuSfJKPznFObRDnha4LluPiwudaYCS2O4VzeFi0ouEz0NwsylOceJYVS5c3mc7TwvQsS4jfUiux+Mr2IqzjqviPSfy7WL4 - -guK42Ny2jkiJCjlx4d43lhby+sU1qaoC2zEhuMalqpUSxs+U4vx/Y4KWWnh5NWqr1u+bRLpYvYzspS7RJI7Qu27E49m/HtgsuhLUIGi4jpOm5AReqawA87QFzfJFhKu6ZKt86rFydP5XO+Ui+32pSFo+lETniRdgSM+LrtR9b0d+Hbseci6ocuhJu1/fFv3J3rkf626QfOMHnsZt7km/J6fiXbryu5taCLuh73kFvHWuZ0W7mXaLtqlkoUcSgaPk - -Yy5DnxD9JregKqQBdynthHqke1nnZbovZaq/DnTfx83LsthbSq1sAdaB9aUrS9zxqysWWvQ5nar+Wz2ZNinpZuginPUxctMRt64jh85bMRwG/Mw6Y5eYhWIcZgvdP065DOMyPi+SBipNL2SuftmXpisy74Ts1uoZJmEe2RS7rmuHLK9agK12cm5osXLYSf7uqyJXc44zG35F4n9D8o/TKbeY7tF9EkGv3+ZFgveTeAcp3XWt3z8D+JBfXqUgeOqN - -qLbe3vKPr3rKLiHxfv3EGK4YqXGiplfOt9A47z/o/QBz9j742SDHNmJ1OZ239g7aYwd0r4lOD+a+UNkT3R7IcChK4jg3yTlTdCU8np7FnguI+r9WpnHug8ZiZwuwRywQHPyDCZ5kRYcA0S+JCTElJNFY6kMf4lDwe5AhRCxG6RStI7htlsqJ3bsnXBqV8H3BUcg9h6iuG2S0XwnC6IdYQDgIERsIhwjISwjROquwzhjXxMiY6ONThuI+uRMagCkj - -BUAUwo4ATvHBRXFcZEZFQ5RK/LZL8fZgpriXEkKJ40bZEnhGlZEsVDgBOdn8OMRI3gkxEf4lCdUXK1UBDwhabwfYlOdr8dWRweHbWKbU7Qi0j6JCSNtBcFS2kxySMMzK1wjJtKXETKiP0Zmhiwv0nYLS0oLRcoA+EJTSQeRIiSL8fFzgXD2XNAqFJy5lT2WcLaRx/hr2ClsEpnVQ7dxRLVVyJT4RxgIeEoyu11x9L+N+YEAIja/AOE9bJ6VLqDTG - -l+OawLVnGzXt7UkJISS9NRdJY6aVNYQPODi6Y7j7iEI8sdBeGShlTTJe5GRmk9hr0XJ5bJpFxq1XIkVFiZy+l9iXJ+P4/wfp/Dpf0pcFE7nEk0kuChKLSX9PBe8UkCSSYpNeUbd5y5PnLRWYqgEf0KLviJMSZ5UTiSmuHiTOSBUSUYXusCQacJRmaU/mcNxNjmSEH0MWJ8CAAAKDjmBOO4NBWCNJ8ChCgIqfQ+g1DPgDQhbUaBmz4EKAAXzWMUUo - -5QJAAAkugAEdnANCEEWmAABNFobAujzGcEW2otwYB7BaHsS0sxxDoEWAgZY5BVhhg2GgbYmlYZdSMnPVhuUIAxlQDVUh35mkXBtc7S4NSaTgmIJCEMoDsapMIdQ6dmJsS4jQATKii5lq3F2LbUEdIvRFytKyN0ioeR8gkIKYUX7LQSilImOUColTvvQKqDg6pNRZEmDmfURoTRdqtNyX0rZn22ntI6adrpOQei9Ahi0fphABiDK+UEEZJTRlfHGU - -E/6UxpnyLY3M+YXyppAqWcsQ70C4D6LWU8xAGxNhY62XtTHUCkUxfNRc44mCThHLwF5YYJzDhnBwOcIY/hMMye5Dc25gjPjDYeBAx4eMXgyJBm8tj7yPl0yGd8n57gkiuP+MsQFmMtkjeBTkwnw0GbgsmpCaBzKF1EthGBSVxIMRODsKBOl1p1UIfCYEFDxp93kcpMLLSdigszkpYLtC74ET0nxGugkfpZdamlxi0l7Jt2wR3CyXcbK93duw2G3Y - -Z5wm+n7AR1UhFMJEfPEx9DYZPXIoQjqOiat6Isg/feiCp0HTiGVb6I8rg3HG119a02AFAIGw3GEDxu5bL2jQ3RdDuKRSCiFMeDk367vAYAjOnWcEWQKwZYrzUmZ0U+kPH6RtARbxC2/eidcmbZxIrnKi1X1voVTn8dOUX64lBhnq5aRwUl/eOxN07CiDGh33nwt6dVaZY2CgzFauXYHTFPhSYbOx+tsPQkkPbc0SSLVxhjqHxdl7zXhEMwBqiytO - -xdhgyaKWqf/DIrTubSlFGeSuECG2j3atgE20/KXzWsoFSYe1iH/CntgCESN1ymCgufBDlV3XSuXtFaMiV6LssgeGsi+9lLzhYtpTuMCKVpWsIu6InDMixqdcHQd83GSIuAfU3uv78ilFvfFxD0xMPa2vVwWDU4m8tSfnjWcm8AE1xXZ8tWX2GP0q4xZSOM5H5fYXIKwoSbBHdT4RMJInCbaIqkhyaL7Vf4vyPz57Pq83Pls1WUVuD8ik7lrgLyYn - -xbsPyV7djFbKivCqHXOz4hRAEsVbMUj2XDWHzsiHV5KTq0JiLr3xMifyn8Hevy1Vx+Xkp16np3CNr91lWT+VrgON+NcE1PLDZP5vBQLLiz7BTuT2pgB1LnBFKa5XqZTipPTLpSQxIP5LiapnCjw6oLx6oBIZTi7u5JATQkgBLfCLh9iLwIohzLSeq5ZWg+p+q7hBpBihr7j6b/jRqxrxoyDLBJqITAQGiZrZphh5roC1BThdCDCtBlq3AIDshTgB - -rKA8CWQUB9AADyLQHa8A8GPafalAlo7GhEWUqUGSi42eCu9cM6rwHCue0Uw2zERufAYYm626qAekGu0Uwu12NIx6OIkwo4dSNcL+XUhK0696Xaj6mGXIb6AoIo36x4ko0odYgGMREgoG4GWoUGYYeoBo2G8GPoL4zIKGCAdoW6DoaAhORRNo7ocGFQBR3GfgkgfGxGYYpGUYsAFGj61GqYZmOY5AjGAhoEIhbGlY+aDR9YRGLmQxNIbYwmFERIRs - -SQ9qDAUmw4r4nepQCm04s4XatU7wT8C0WmO4kEXmhmAGxmV4fmGY5mD4/qwmb4qOmUQItU+qkAAEzmqAaaYEEEnm7BPmiEGek2UBQWKWRcFkbu8WpEP4E0a2eurupuV6nuHWCOykEJgKiWMJkOcJEJHuSQyJUMNUCelWyWEeBEOJwUeJQe1UaJCW0JJJ5OgW+MUeJEAeseiuQJaJ5uJ8CQgISithwCoJCJSeKJpEnwN6rky6bOFuQJ5W72WcsMYO - -CM7JWO0MzJHkXk9O0wnkqUl0mM7kPwSx7OeuVuAkNucp+MBIAk20pIecypeW0wJptctuKJ0IVpiItpkOKeNI9iLBDiLipKUSamy0KI6UNqY8USxwaUK4zKVskykBdSXi6yE+l0ckPwey5wl0zk1wG8x+/K7wmUBUVCxIJM/wbSRCpMQyrkQyKIJ+fEZ+TxOww28Z/SQyFI1pC0HkfYlI6ZDKWZy64SfEUSEsJsgqnZlE66pKXpLoDBUaTBaegQem - -ME3mkanBBg3BiavmgxQhhQOakAohUgAASlODwPoKQAADKGiVDYAcAABWiQN5uAMAtQPQWwjaWhcwEguhKwBhmwNpqUzswIf0O2Vhw6ZMf8zESQ2KPw2+oILh5RqAPWzCdOR6WIfhr4jckky+8qQsYY4RjIVRL6QGsRX6ooCRf6yRr6yoaR5AYGGomRloORsGno+RiGhRyG1RpRrhlR7FboeRdRrFDRhGjYLRNIbR5GsYXRsoNGvR2R/RCABYUxrG - -xAFYEguAyY4xvGkxnxAmMxQm3AQSkqpEkmQ4nA3Ahemxqx2xymuxDxwIPwP0RxOmJxfxNIJ45xl4pmdGd4txVmImNmTxRkC8067xgx3xHmi5EapQ8EAJ/p9pGEIJpJ3E5JSJVJt0RJLc4eDJ1JCJuJXudu3E9WPcHZmVJ2cVYAjpb2ceFktU9U0ZTU0CWVrUMOGkD2KJNU7URkUZyIb4q2WJSuzVcO5pt0C232y2V2fVQJ520Ul2vVBJjOTcWFpO - -RpSuU1MUcUbV81mF5e2FZO2sU5kAPpjifp/mme/KJEXYpEi+b4nkTebS+Zvw88pMvYbS/wJwvV/ZrkH4bS2+3wC4LCJZq+UBayUJC0xZJIOBThqyN1s0F0a4gVLEdK+19Bvqs5ga85XapxYYUaLIXBCavBm5Ux25JQu5ZQwmEAm4laVYL5kgN5cARggwAA+jABQDeVOKMEWrCIaDAAANLvk6FLDfmgiGGURjolQ7CyI4U0izrtUgy/C2Qd6v5e6w - -VoZoBi4049hq6lC+Gnoia3bqqs6S2lB4UVEEWciUXAYQCfpxE/qJH/ryjm0qg0UZGQYMUwZ8VmgCWm0lEq2oDcUzHFHu3eie1hj+hNFaWvHhiRjiUiaUYJhSU9FeWyV5jyXCZfHDHKXsa0gABSGlzRilgmkEMcPwTUEm8mllMmwIxl0mSmKmImPYoSLCq+ZQW4xxvxS5Zx54Hl14idNIFmdxr4/lySwyEdIV+dbmPxEVy5UVvmgJKpYJUBLunJfc - -weEkFWGVsJSu897hrWXicNGp0pc9QpXJSkhVtkxVG9QJ29muOS+J3JNqP4nksuxCKWp9jW3hDOHVl13Yq6s1KWMuyifOO200jqBwi1UpKWKus2/ODOKUvWH4uw168OB9ZVIMNqfJV80DxcetpIBtu1mOKDPJ9wxMGDQDYk2Dj0R2/CSNh1Iax1GYp1uK8x9mP0xduwgNgRRq0iP4Tyg0JSieSyPON+HkGxa+N+KB9+GUj+/K7k4Kkk5iH4Y+1+ee - -UqN1CWzEE5a+G+C8Vw20UJRkDe90CjMjC0y63YRStBpVyNjBaNvpGNLlpQ2NMaa5eNxAfBKa2lghJQWaO5IhZNyY8QQgsh8QgwFwQgU4+ATQB5AAWjwPgKMEYOBPEHzQsALf2j+cOpdCDN4nXklk1qUNLSTI3oujgxylcJDaUHBVCKgqzACPLremGNrf4bwCLM5GrBLKEXehwPSBEV7Q7R+nEaRWGL+kkTxn0yBk7XRS7dBrkbUR7XhjxahmUehl - -7YHbhkhjSKHXnSJiRlHR0RJVRvHbRv5vRnJQpR49MbmiMapbzfhgBls2nbpYXWNGFMussVsTJj2FXYpjsehUuFPq1o5QgL5Zja5UZl3VcbeGGH3b5Q8f/EQ1CY5oBKFVje5s5e3f8d3SdRyQlY1asnFsKQSTSVCbkxfYffi8fWlavaHuboKeS8vWjMyaRDHh6cgxTg6nS3k9xBVWaQ1aVWy8CdVNy8Dr7oy6ySyybhy6S2VTxIVqacDm9IyzcHxM - -3iVfg/yzK69jy/lSUAbpiuYd/IldVQ7kNehKg7ycQ4xP9riwGW/FzqvDKhvAKYa6qcREy4HlVWJHa/DOvIA8tZfdXHK86VDGa0QwvCQ36yqTDjgUUu/dMKtTNePM66/efS6Yq2lPmfSXy35MmxS2SUKbSSSxNSqTm/S+tEK0GylvG7FONQSX7iycyzrpW0NsIpOpgxhKLoQ+g5a5qSUDDlWZPvvSlu/J1SEfU61CG128/c65te8DAWUkrB/YPEtv - -MTW0OwSA9ExLqZDAdJtOKUChXM60jq5GY4aR9h9H8t9L9Ojqy35EezHLSgu1qaDvDCy0O3zMdN+ODOdI+4js++Dry2q35IzrNC3hAYem9J9hexfL9v9De2/J/Z/JLCKe+wLOXHgxziUGrbKzlAdOu6XG5Fq0WwQ2gxa8Qrh/dPh+o8K86xO6R222JHhyxAR9R8jNQ+jbPfFSCn2KCiPCuN/eYyCqHMe5hRpFynsqSOAe079nZCfua9WVbPLQcG0h - -da2WuvcFfIPu8MPhBaPtkpcjaR+6JicFEtW/ks5PqX4iZw8TbD+Bgp+BGcCJerfqql9fyvCHjuTEwotL8HwwVF1NesNEQrsnmSp2xESOp0p3mRMrSiMssnw5amLGuMMrHnw2AhFsSjbLqZqmCouMcGVF8q8UDYfjlxdPl7gfyoNM7LLiuJGTIj8tzouJ1RQvo4gVo2NJk3ow8XshCt8PiGNDwyI0VwCODTsHcPcOKSUuYpcLl/trnE/og0Eoctx+ - -8E/rFLsDacI4yuw2skcJJEcE3i0jCn0vngCtygo1l30ovrTH9LGT/uZe23QawCjf6swUdXY+iyuTjc4zwa4wTec0TUUL4xUAeQeeyHsDefMOyPMDwC0MQNzbUIQOyPgFWFE0WokGxTSJ2ik0Jmk0Lb+aKSSBFl4ZYQU28B9B5FlPLaTNdcrUs6OC1gg8TyhSek0+Wya5AMbb7b00Rf0yRUgGRSMwBmM9ABMxBtqNM0xThvUV7ZxfBX7S6AHbM0Hf - -MxswRmHcJSGDs2RnszHZJUmAncc30cnWcw85cxnZWGebnVpabwIHpRJR3oNJpmXSZRXeU5AO8zXbsT9O8ktIC8C/Y5AG5Z3SZpi9cd5ZZoXYPepxAoix8TbxADyBPWwR99PTFVi3PTi1m0ycROqeBwNOlQSylmzx6xq9bix1n8rGqZ5Hn5Hq62K42860vZy0a1S/w5m4B9lXFrlbfZ32bu3xh6iTlRSXlSiTlhX64tlrS3383wvdO8ax62Px32Vv - -P9q7P6x3QTQ+nrFQK1DRKZWbqcyo75F1DdFNGZ+DjAVOcHgYFTemPPXZ+3gUSODGVHckYoCFEoCPASO38E6oN+4tx9Mgoh8dCkR3VFGkm/BdILozXNMiCkBAjYR4X4H/oBWv47A+IF6E4BBUUY+5HuM5F7ujUnocEvucaFxm4yaZpoAeJNfcuyAPKVos6mALoGwADRGBMAg0TAGeEqCEApwDQM8FsCibJNPyqTfQnj1Ao3B7oKIJAicD+rAVSe5s - -PiESEaRlRyIzKWnq4Tcj9IpE8rBpqhR1q7wso4KEqBYTCJdMH03PVIugCtrxEhmttCijz3GZqhJm4vbIm7SV5rMMeCvDij7Xl4CBFezFfiir1KCbNw6WvdorOlqh697wBvMPknQGJj0zeKlDjKMCt4a9zmzIO3rrWLrOwDgbvFYi724AAgvmVlWum+AhR6CneNIQgC3Scpt1IqgfMFiHwhY3EI+9xKPgiGC6RonMyLceuFWT41C7EM9bfoyVaiL8 - -B+8JLvsPx75DCXc5WCLJllX7DDsSQ/FKgv1BKZ8l+DOFfqPxfrk8hkw8JUpsOdYG4HCY2fYda1ogjUTgliHDr3ybz989cM7alqW3tyt9iSqrAfu9C+yxQ/k27Blq6yVYZtXheuFWK03Fgawx2BEOts82VaYk4O7CQIoG3Z7PYA2TpZ3M61ITjRkQmkZCqJFL7wiAOA/PsB9G+A/R+SpDHEciLxF64noEqdagSWL52l+WQyT4FPmLLHDaRSIyqvSO - -zYBRmRxwRrprS5YM82s4NCkStToiuREBsUFVrG0REa4hR+JStilGJB3cERykPtm5Fz7oc9chCXiAyjNRxhfEPbZSPVhjgIgD0mopXMYTfxftvh60Y0d2FNGDtnWPwe6CuCnz/AyO1UO0aiAWKHoIGfMLyN+BPY18CIVbGkaLnNgkwyCRuGfs4EOGjZMEQ7FcAkAPQsRiQSCQ0bGObaG5WRiY5ICxBtiCpox0o/yFmKOEJjp2NVEaCcA9xLUCScYo - -sUR35ZgVJklwd4DsA6bdZSx8YgEUrkjGfBSIi8Fhte2xEy4H6dTTkfBwJDUJOwXKfHNVFHFy4jIhgodjsB5LFlD8VCH9spAXG8lu8E4srBwhvxSlsRugoqMymtgGtThYkAEBR00S8IrhG2P+HoOKgXj9xDOKkSwivQ3pV+zgU8foNfGNigOTCWGHl0lZtU/xL432IBLfgUQEgWQ7FJfxjEQTzxUEmEQzlij9JKINY48dVGQkGDLx4/BuDNG97IFW - -YhtbiHhIAloSiJCQY5EwgXi1iTxT4s8fhLfE0TfqcghiThMfGXIWJVE6xBv3Y7b8wS7iCvIbGJG+wNOIKL8N3HIiAI7gxeT/EXg25qRsyA5bbm2OXDxIymEXRAkcAXDWxlos8LVCUlfwB4w4HkMOOgWvyzww8jnZaJKkm6iZooPib+tCj/7qDnJz+Z+FfBrLSNo2NwJUaKjnzSNPIb4NWK2OvQhSi8U3DSB+GNRX9pGI2abstFm6JSYpxIU/r8Bq - -4UI2U0jTKeXgup148pMU5KXFLSkaMiux0b+s5E3haRECMBJ6HATuAIFJuN6AEEsn+BRSPJzKEiJUgODyNjok3PqZkOYiG4hpNkhJKxHskEoGpI0uRuNKwEGoIC4U6SF1K7A9TAUqIKFFCnclOTHe5EQpMiD2n+TtoHU0ZMFM2ldlfEzyY4HiUm42QUQWUN/CRAoiTcA8BwEshlxXDvSlBQyGZHFh+lJSm8+IZaAVFelu8qpj00GS9PunSMNcjCOq - -a1K/wzJoKD0TKGumbIlYf8Ck//K00QILdqyQ4j/IgWZTnwAuoDBwktIdQ2w88CsQrBlFJAWN8GVjVGq91obvdehjjXGj91IFbkvGwhcoWTQoCbh9A7ISQG0DaC1AzyTQC4IMAoDOAWg8QQ0DwGYAwBsA/A7tIIIHQ0hDC11VKKVCYRpj+RIFOdJJCdCLwvI6qFbBozBA+01aEuDWpgykDaDWecQQFCRFemiJgKnPSIsUWF4WDBmrlawaM1sEi97B - -YvLIjSEYqrNpeCzb2nT19pOgVmLguOar0aJbMI6YlHXmEIOb68jmUQ6Oac1To6U4hmdXAFOCSH8ZXMLoNIRtzXDkEChMmEqRZRd6e99KPeErA5hEKVCgWaLXoUH2IAXFPKhvKFj5Uj6PFkkkpe7gnw6GxC3iqLaoVPQOr9D0+ZVeevMM3pH1HhSVfNsS2hEpYIR9fEvkfIbYij/WsorXMKJ/FX0JS+IZlI6KvGhia2I4nHLLl3HLiDhXYhsXNS9a - -MIURV4/+kYl9ZzUhoZUeZMEluEWj4EM2bbBmNFJbQdokpA9leMgZwK5qsDQKXWU3ERsyqaC9MXNRmj7Z5ouDXBfy3wX8jqq+sOWjcDRQ9jJq381ka/JDjvzxx0E1qCWxjHlYHh9ClUrfKvkTD0It83eg/N9Fz9V6KoncWwuonstp+xY4dl/W6qGwpW/LJvvIrAUjRnYhbGRWJA2H9xqFZwWhW7BUW3tRWZ81fvcLAYoLCJvbJ0M5HWTzIHx6EkBs - -uG2q1im2UUNai/JgkuKrF5ooEkAsIQgKDoGFUBm4vAY0dO2dHUhpYvCXWK1hlOWGNTkdlYifFC1OJf4pVIOzfgTsmJaEtcVyp3FFUNjrYw4479FUl7Q5BSVcgCLH+Z3MwoNE6SxQok6otsT7CS5+SwB7Yg0olgXiUkTOJIM1KiEYj/B7uQNPzg4SXGdk4ySSHeq01KQa5CuZKM6E3FNRYoW5DqaJC8TiTDZEk0kiLHGCjKZIvwFqMeC8VAaidrJq - -KQqG+EMhXwCyYy9xDcrTGPQRkfwC1HxG/aaRjoDwO1B8rjBN5pk9i3hiCjVi5dep43MbhGR+Dgr9StkKFYJw/Y3A8uMSDLPF1pljd2k7rOZGtw6ydTZkZ1DMqpP7KfDtudkAlMS0KYftmyuXWzhOlfzn9mZtiJ7tY3ZmsEoIAfBPquWIG8y/u5AgWT4yFkVBTgLQUYG0CrANAoATNIwFADPJdBCAQgM8qcEkCwhmASTUEFjwEE48hBg6V4DeOJgv - -8OxUtV4IyLeUxJzpJyFQfBUOj8xP2isTUi7JZ5QhCcYqf6E8WHG4VjBPTeOQHIGb88rB5FUOWYPDm0VI5rtGZr4LmbrN3BboWXss3jmxzg66coSumCzm7NQhsdGkN0QLmQsi5xvEuTXL3JXMOMahKuZ0NrmF1PIlWeSU3KhBvNy67ckMBJCpkkw/e/c5eRAEHnDzQ+ua0oNCwnlwshU2Q0eikJRZJ8OVKfFeWn3obYtJ+zrUYe7nGGpVsBV4wiGY - -vdY/iiWGJKBUCTJEci2qW6ukrwulZRtZxTiycvOsQp9ZKFui54evXYUEQQ2uUvcSiX4U30G+q64EEqk0hM9RIFCp1p+s/oPIDJO82iILh/XGKH13EL9evldgJwRSBiw2HQpMXzi35ADD0WVkY7tJ91OizMZ4oTbyK9azEe7Egxdx0jkOoMO1WhzIWDCGcKHKjd+xo1KQBqmkJBgdEwUfhsFp7JttPGzHG40lkkNvsev5Yy4rJc4srOcOHgrtf6zr - -UTXjnPWYckl58YkeGx0X1imFEUQKNNWrYyarxLG1qiQkFECKP1Nil1guA1GGjyNuG5KpSQ9ZWayNDPTwpBsM2Xz3158lUpZG2FFVc2DpIzW5rYl1YvNZ9HzSUDfXa48RJSt7mUpEkfRxcmsbjiTmEZ8NSkKqJpA8HS2vJaZveUOAXkHyLYRscMXThVykjAh7RpKgqOcl1ItTrkPUtSZknM7fAzoeyfsvVsP6LpqZRXeujZB2FSoGk4yQZFMlGQEq - -i86kZdA8BOS6SyyTUuOMukmSdKDUy4OEOvkAqNkvIJ+cWgSgfmGKxUJ+H6Lt3lxDIP2PU7aMdFFTJSioSylsitg+k9gWRl2g4C5JwZKtDtiA2sktpeKDRVtV+IvLsBqXkQzch3ZsjwgzaIJrSfHcVJ5BST3y7UZjUAYqidRLIAKxwT6JXVqRI0WVbM/AT0I7XczvuG5fgoTQFXE0geEgbTPgHUCVBXGhAH4PmiEBloegbQQ4FOCAgartC2PPQjrP - -WCvAYYjEMGTcCDaggCmzKXiBiLGjMoSQQkK1a+Cw1PRqNzPNCk2qZygdq+j7WkF6vwo+qw5gc/1cHMDVC8w56RBwVHNKAxzU5SamNYsy4rJyE1Zu/wZAECHJC012vDNeEOko90Tdxc8tUWvN6qUA0Za+eVaDrmZJ9iLEamTkOkx1qm5ja3gCTHFpFU21S8jukPPBYyVe6485oZPLonKCsac80dV0PbWghoqPazeqsJGE2aR+UMTebutPkbqNqBfG - -lvOqs3Yia9bJKDRZFPWOLixe6wjrhufmzVm9661vbhqw40iV6TcITShtuh/z6qq/ezfOpg1C5nNokThZPtljT6BdSkf9Va1M2/iYFW2AhdyTPjiDL43bXDR3pjYilwNcG8sZ+odwzC2N8HZMYop/qJsrxaiy/d+uv3Ca/I+mh/eOyiVhtT9Hii7DpoU1gApFS4giQkp1aML+NHCoLW/Tb365YDM/OfU/K01eL+92Wbed/uY12K04rGlUWurr7mKk - -DspEvsIrKh70xFq68vYIoFGytyRAW1UfgYcUX7K9LuK9a2xiX16d1Hmrg97MNHcKJ9npQSaUuEnspDkrY94Eii9j1cpUucMvIUo0lFkOUMcXkcJEkP34RULDZFFofc5adZDzSkFK805SSoeUTCdlNCS5QNRihjyj6JagRiezbUFCKJKUjhATJV4G08VFRGnhrpz4KVCMv51qZEh2kRlaSZ9pYQUhBoiypJFcENRZRKsH4MiPoekO6G5DJh/TrnDv - -y8iPJscCUgSmDKw57tfHC/JcAeUkETDSrW7Y9FFSAIkkfXWJN9ASTXAP+ck4sllBqnas6oKZLSQYbeCX9KpdUPEsJGODy0Y8JMbbkuBuCLZAEri5Ha2rR04Dnuc5WxgQKxrcr1y+NAnf9yJ2A8hVEgWoEYErR7Ai0WweYIcBgA8AzwyYNoPoEqBFougAaeIE0Et6s6PyWs7VZzsgCGFMoLMfeJ2VQmC69VWTAcX/lmjRRlilTEMJJsuGxtHVCukT - -EQuZyHZuJRtdXSbU13BrtdNtPXfbQN2i96KEvRNXbqfQeDE5Xgsk7xVt3Rr7davTOcEOjq5y46+c1PR7vzVe6ygxa2kD0H9156K19xSLH3mVa1qz0M8j3j81UyQmeU2Qiodpj7mJ6hmdQy4mycgD9qM9cLCkhVpz1IsA9ifboROt6FF6IWJeudbQZwPFiq9Hm8g5uotNIHCSEikvsIZeGr7oNeigfb8PTZSj7TdbCzWyMYM4aHNrm8LTfPZE97OD - -GBgjW1TQM771NcB8EWmyhF8HpWtHQAxhrzZgTcNNVFeI115zpn48d6wvvPrta5nHWpDc/VYmLO1VSzwS6XGhuAVTtV12SyXPRzVoXwSRTG9aKmY7P9wr9TPCM7xrLEz8B4i2KTaPF0076m9j+j+H8hf2unwSdppeLVUagVtxF4WDLH/rgSX9YFBCw+YPvFaaaoop25dIcigNvD9zy6rUhefc1lUW9B5yYY32xHOn71uG30yrozEQi/h3p3DXJvDh - -gGHT4+l0/ae7OqbS9cJZs7ksNGHrtFLuCC6kqGF7zt1rwyLRzOi2P9Uxsu/ZM5Grx5HutkpbqIJFsgfKrUrEXkr8FcNucF8kWApSvj4bV8iYwIMqEFyGP9It8CWMmZjAXBvauNn2y/FjMW08WMsTZNpNpAYjjaIYY2vhpT0Xg2xkuecV5GUhtg24qkdXCrh2U0hlIjIRWrvOpcQbxZtLBqc6jVyuoQFbqZ1Y4A9q5S+JyIpM6LoNri4hdOU425lJ - -NrzKcoPIoBLRZ9RYsXLBLX2rGWMc+lxhMm1U+w7LoRphCQrACE/EbD85i6myHqPMj9Rkn/VnqJh0bM9qKMTRH+XyOwrtB7AnAmZfSBFJSjnjDRckmUJld6hWM2M3u6xz7k4x5X473G/KsAN42J0HH0AHNTQPMAaA9BagFAQ0M4C6AXApwahM8M4CMADBK0bgmYGzq1Uc70mc6bUZ8sIRmpNzzwEE4SPFFa4uE34KXWemqZqYP5YIjEK7KhB6Q54e - -Z52b7NMFUVzBfq3E4L3xPBrDdYa4kzSdmtUnLdcva3f7WqIknaTEAB3amsZM5zM1pQbNaqYgAMYU6nJssD7o4wHk+T8fWYnkPa6QU0ooptwhHQlPWV1io5tbssTlOt16r4oZUyPMLl9r09A9TPekkHI6m4+pcheeOpBap9i9s6h82/uxHv6dF89AC4JqAt83FzHpuGF+YPmN8RbgrMM+X2gNA1Mz2IsLdfKQP82lb8o+db/qIPPmizq6wJcYiguI - -Wj1855SFvsNF3mTNct3fduf303qV99pvvWAb1sgKgzrWYzR6yduNmd9vN0SB7YA2mbphG5lUVNWPORjP5V4tW5ecRzXnmDFZsA1abKqx2u9vNlLInbr2FmG9em1g9G3E0Zm5FSBu2/3F4O4HWovt8s1nbPXG2QLp+u+oCAfqRlnb07DRRAu0UHRENIiI8fEoH4IK92yCrcW+H6TIqtoiDABf7d3Y9J92fd+jadDl1DtkTyu/egdCnvWjO7dwpu6N - -Bbs3ZKN09xjToqrv5naIWG5jquavF736OJcJjlR2Pt7UxDUWiQ4J1dhzb0ozsLi+lZKs95Cm3DH5OUmGSfs6jrXNyGodaydlErP2siLNtFSEJ/5GktbhRHM7LQsYsVk/L4izKIppxkMupPpJ9iHLjJIDhbZIMdznjFOiBX7XtwB0dSsZj9Sy4KhijkRUuZBcWnFh0Y9TGEWqSLJ7gGMn4opzKVAYYp+xP51416cKeNCJgaTl0uwdRgo0Kj5C+ky4 - -ftrPh6Rl4PJ6sJlkQSkQXVJu109JINDulvTTpr1TqZdOGlG4Ip606KctJxm5JjYEMp/KjJjzEb7gCxfh7I5GSjKRHASUAgp3iN/mTlMjt6t8EW2ipxa23KVMunFjrSgnLSwKWRCJF9gfY8ZdHbgNWN1XsdhAxq1sd+47HWr7V/Y7mjJpnlbgxAfQD0B6CEB6ARaZgDwEfB7B80gwZgHsCMCHB6AmsmG9rKWvtUUoXhnZGWYdXS0yovETstegXD6T - -tTG6H2ueiJiHLr0RqrWudYCKYSltFCUdvlTV3dMNd/1witicesC87aKRe6yGudqODo5zgyNcryBtRE41FRP6xbpqInPXBgldXqDdaLprOieciITmpOYcmA9CN+IbSENAo3mbgeyCJPloXfBH07zKEGHrxtFCQjn0d/j3PlP+9J1naimz2saH91rMdNhiWHpHXx99TBejFiac5srrTN3ts0yS6lsxZFze5kg7XsJZUuk2CBlNgSTVHMQ/Tf9es0Ev - -3sm299quP23LdNtzVJNW+cc6/tM0Cunza9rRRLdQU8uoGpI2JcoZXvQLrbvL+V3PZIWZClXQJU+2q6V0avKGHbI/dhy70KuV8WrlUgvog3wbBXT+xDqESHZ9ml9qGlhWOMgPMHszDUKB3MMNswXIlJHNM/RwLs8bGESFG9W2ZU1AGGX1kbzaBrai2vZzPVUV3LdTv9whXY1Cc3LYdvyK030mpNwP1LtCHJXkC4u6ayU3V5vFB41KOAvXvSv/bkmw - -pmTGHOIajF1rt9lveXt93m3RsZzYfMutDPun/cIt766vHjONaX46Z8XCHe1u5bo7y9J2Ane0Qp3/fFC1vzXnlK18I8ci1cnOg3IzqdmDyM3dJV8MyYz92QxDTotkQGLXiZi750Q4BcmLOyHy0bgepMJSIiDLGZ1RTKuTjpa3VblQfAKP0Z4xhovBSAIRxXwkXiJ/JcHwRRRluGk0D5Cu0br2epcuBBpcGsjfhXOReMR8lMkfhx0H/SD3EiH8doFS - -Z5ZKhAOOrLMPdgNUnSa8raStjsmlMwhB1rqTzsIa2DkmMZ35TseGknHpLSFy0kSDeSUkovDk3JgLHXIDEoAkwjXCeXNI11D9+1laaUJw4BjPrjsCiNiPYjx3Bi2wx0a/YYyVV1sIk9qscyybbxTYyQL5UgQKBJO9ABcBPA3l5KewHoHKErRxNSAN5BmjKsNA9B8AzTr8rj11XDo/j3eLKICcMHAnQK8IdQWdAl0LRhRB11AAXdBCNMqmLMY69Is6 - -arPMT6zs2lrq2cBrnruzi2m9aJNOCI1Uvc3d4PJNW6MMPg6r6SZBsiVSg2cl3a87d2jy81MQ/k97p+e4Amg/zwtYC/uJhTqUVybG7VCj2SmRMN+PvLUwT0WfkX7leodDfVO03NTCDEerntxeLzlvxpspbRovXc3rh6JI2yrbAtbyxhSw2fYKJEVmjOz6w1evfpVE6unvV5ml0PpCW+KMlH30LY5q/3Fi72QYzJWVVS/4wPgF6F+DyhLedxGXIW6G - -FD4WQNucxxSm+6hbvtF4clcWbfFqjKj1Hr8Hlj3HCCUvRXpGYMigt1SelT42pZ0haBdO6mTcQkMZQhAUmhKmTMPck6ZJIyuWKptGyR1svsTifGeZipntlQuRScbGiB6TvmYTrauCzcnFQbmrcClVZ19AkgA8moUrS9pCAZ4KAAeUNAtBsA9ALoIF9afCC50Vwfp6CmwnkTTZzga32FIzLDJ4x2Q6EwhWba9ZuDDq9LyGDbuQne7Dq261ib2c4ntn - -Ng164SamaVfJeLFUk+c88FXPav1J252nICH0mghTz53S85ZNvPobsNk3gC++flyGgw3i5rb0LqZdD8xwMF+XXnAzf8bqmMYy0lLrlDe5iLgeSi4aHh90XflTF+cCbo4uAXeLxU96VXkzqM+ZLy26S9r7R5aXQ7O/YHZL4FudFV9Jzda6fOOvW3Ub7uMFtjftUl2Y567cbeDtrd3R9HGqAH8/YGuv5R58/9Xb1gtkzg7doP1Qwx+rvJ/nHH7XMZiP - -WQhG3HmJ5VIvWJcC9cNwCJYMWzKPNAUgklhVz7En0pJDXUixqsjTGw0NcDcoi6C/Ci+05DVYS+nMjjpWevKpk62eexpQJk0WwCyBQAhwOyDc0VYGeRqE+ALUD0AyYGwDMADQMoBwAUABrLvG/NF8ZtOX4DCAUkVPpv5hgBTEmJlIjCMdCkgkus4Q+0WbpYR++flAPbNcCDLMKWEIfvl7REYfkV666JXsLzleMfkc5Ve8fmc7FEFzknINeANp9b3O - -DJtn4hCuflmqHMBfp7pfO3JrgCVA5fqkKF0o3FShWw2NuKYNqs3h1AgCi2Et5S+oLKt4qm7umqY02GLlt7Iy7QrqZ9eCfPt7hB7NoS5T+XNiS5j6gti+ZT8NwjPxBuh7FXwL2SkOG4n6ntnLYR2HrINBVumisW7G2xorsL3mMDMoHwMLkqRp3+IBqPpvwHGu0HD2N5vyzyB/cH0FD2age/6WMm/HQzmQMWjIaKCOUF5akQPlmEgcwL8C6iKeT+F5 - -ynQ0YgAQpGKMlAGuinwgB5A6Y7vY4k4hUPYaIoXWmDKoqe2tgECA4vljqGmBATL7WexAZ4wK+gqkr4SAsIGwAwAWdGwCVAewFnT4AfQNLJhMFAGpSJAVYIcCJCPAezqC0IXnOg/gMIHlyVkaUKezReVvqpDqQL/oI7zItsh76kgH0GCg/gKIN+IKBszjjYwgOqNCTGyN1hiZc8ofhbTh+xXjs76B0foc4m6xzk16mBdXr9aWBqfryFfWLXprx2BT - -JhDaQAUNtEEtOnzskEl+lYJoS3MExMkKo2aQpVzhI7WtjZwuA4IEFN+6QpT786YQc8FJ63aj35jyTQpt474WQti67eI/qkEmhBLkd7ZYV3tXrR2bVJ+Zem07iMJTmc/i3hehyZuqy+h+WDLZX2lttUGhmsog96PyO+hD5+hkIv8LG2mYoObdilpi7i/m2iKmxfer7POoZhOdr5pRhVBqIpg+6rMMHL6CPoGFJQEYSiRFBp3k1SsG/bGy7FB2YZHZ - -ma9bAv6oioYSqLa2GdqZrr+QPiKRF2xtim7iI93kWGPeOiuK51mLCuhp8uXduvrdhC4YMFAcS7sOarhxtt3bj2b/juxikW4bf5Xih0GAj60mrpPbtu9qjoo2q1Kh25m2yPkPCo+N+v7bkMpCkzCewROPqQPs/3mJBj2SCpQxvQBII1AgiSHBeHrhLpP+Fiw6sEBGJiy5l64ukKUMbAuw4wVBErwK5iqLEh8ERpadB6/JMFCSa7rMGSwd+BAQAE4S - -O46yW11AcAfgpSDsAlIVBjaS8I11JWSmSEkJlL4g7WMRA+WAqLFBxI6AaEZEWIXBR4OOPyqJ4GoHEc3g9ggCDxE9Sb7q5C5cU+AVyvIulppbqo+IJlpZCW+GTK5aZ1BcjVaO7j1Kjc/nAVAPuNkHwy/+3iJmQnmgAcJGge+kg8CLBWHsJGvUnFqAE7QdkWvin401A2R8WyWryJ5wx0DZDZ44+PIKyRM+Nxzj4JWEVCuwOqGY6aM4uA5JaKmIpXjm - -WccKAFSCNlhAH10BwRJZvg62qLCjcK4NtqE+I2qygZYY3Igo0qBCPLSiIGbIjTLGrKk8Fs2lnq8FEBLViQGfBHVt8HoAN5HsAwAmgIMDKAUTGYCJA3NGND4AbQGNAjWhoCzphgmqp8aLWlvjVCoIAkNBxAUPTtzp0Q4Cvkht4kYhHQe+dBpeYImOtI+gaB1zr6p88T1uyEEmEchV5GBcfn4J8hsakn6ChWGNYG3MKaq16QA7Xg4GQ2TgTKGF+Bah - -X5cmiNrSBm+yoZpSqhALmjaxgkgqT4M2uobkJoATdFC67EXSGxFlCuaB374uEQcHxRB3XtTaWhcQTviwOO3kkF7erNpyqHeAwi6HT+ZeosK2acwovQ0xFeqXoru0wQwwGoACF1J6CwjjJxLGljBjp4CaxmkENRaTm8HNRHwdk5kBFQEWjEAxAPQA3kFANgCDAzNNzSkAsIMmDsgFwMQBg8hwMbpzWHxi058BlvlZAsMnLs7IFMBMJ7LFUuwSVjJe - -TLGOhDO87qdb7RTTCOGequXkyGaBJ0dbQR+Qans4GBXIbqA8hJgV9aJ+FJsn7fWNzsKE2BWfqJTPO+zHn5deVNrqAuB8oW4GVongQXT3ERSONoAszvBHrwxCMXqG1063BLhkQspujFj+5NpEGU2vajEF4x/fpqYUI03ozacmo/gd4T+AWJTFZBctrP7EuctgHZO4ywp2HBmytpXo+u3oXrhlh2BviwFs48Urjveo8dPH7ylYY/qjm94TPzQWs8TK - -TfhEpL+FUxgInEDI4uwJiF7xSuCcBOg/brWZdxA/AvC0Ss0FFLwgsHK6F8KAUNWSCOoBknb0uemnEBRkrTPIKlBlLpmYp2BIK/iy6sTq2ELqBQY0F6Qe/mVADSN6gLZr0OtqZrbQH0DDoDhc1EOFIGRsHBIkgMiDvZPmmCWpqKiG+AZo82n8aZq2Q/TsipLOadoBZ5BTop9gLE8ARW4JmLYcuGb6M0LX4FQg0B6rxhx8swYUgpuMGLcQ5tuwnjs2 - -cFFC3amgnwmkGu9iDAB4BYi2akiMZn3F8QjqK9QxGIgWWxdhYiQzijovgZvgnhGYiold2A8DIhgJFBmOH3yE4Q67JA7qG67RmVidQYlhQHOjBzGWnO2KnWMojvTjhMYX3EEwrQkonGJTicWGfhNqHYqP0fIpf6UG1iX4ld2q4skj62bIoWGxJNBv7aHi24dLYpJziWEnOwA9lrhDIGmtonZJoSReHvAGMKdqJuXejEk5JZSagyE8oygf41JpSbPb - -tQn0huLHx2iQGbhm07ORC0SFJKD7BJ3SbLZd20UDCCmG0IorY6J7rscAi60KJAhEGJiXcJkQOol8AwR/ppqwjJyySLD4gmZFM5eJykEsm9iKyYM57JFIRsll8YYZmDMxziLhGmSa1mcDe8DElQRQez9qMrpsbku44vEslirqnaNBDI49U+8LHCdkEKF8nZ4WZEfGQUQyGCnIqhqIUnKO7jmYRzwMhnGCo4zZHNBgwFEOSjKsLFlimM8a1vVpEg7j - -gQj9cZ9DoztIxKUCBWoWBBSkyOuyWGwaQakUpKKoUkMQyMpXsMykOotMOnDzI1bKNDiotMIChnS01OmzuOAFGNqo4upMgIyOxXH8hrom8CCqrI1bG+7aMHln0pKOuwAiDzGSlvozEpY0jsiBipqFlF0pFlvzAIERqbikkp1KeSmcpQNIKme47oiTgwxLKeKmwsDKOqlipjFm6lSpiqS6lvucqbNAepMqYwgs4I0FRBGwYqYkbkgWkLX7opD8qimG - -Q4Mv8lKp6mM9J0qnKFREyp3UIVbtYsDvtYypkOv45XA9ihqh0pFSEQQ/4l1ME64wd+IfBOp1af6n2igadKkppjaYYq/KLaSymxwDqZWmipvjhvCHBZIU9okRFeJ+yhG2jn+D8ogUg46lxCxONDUR2UvijSIv0HsHEuzKo8ECxjoQ1Y8yzVmQItR4sfZ4YAkgBcDq+QgIkBCAVYFnRYpTQA0DvAMAGoSjAfuvCELWiIbrJ4gL8cbDrctMPb69O+UF - -AGHwRjKjqjOicmTwGwLbvGZnWTqmehwRYKBhHs8KziYLMhxFF7Fshkfr7GchOsTDaBxt0cHFmBD0SnJp+NXsDaZ+jumDYde8cZEI1xsob17x8CoapR8CIMfczgxaQogyeIgYtqH1qbckEGPu6qD47t+CLhjGVxWMdXFouMLFHzySu7okFM2I3q3GCxfQtOodxQwk/HSsPcSd7ZBU8SHAzxy8QhYK2GmZCRIWG4Uv4DxtpoAmdhwyRvrxh4ttpnQ4 - -5dp3qOJw8erboGKYT/LMK6UK64vqk4bK7oK2IuUE9mHbP649mW/p/r9mkSka49Bt0Nv4PhctiPosJ3EL5mqa/meawBupIsMEQMXmQfqA4L3sv7MGcZoUEVhcPiUBxhpbvfTFpT9HOHGkfmiGYikCHAm7KKSBqIkWK1/h3YuJ2fPP7feAmmEqKuLWeriu2/miKT5Kfip+GTxZWANl/enmSq5yuQhqNldZYSZFnDmc9v1zvmwEXUHN2kyT4ogci2XE - -mr2K2TW6xuwHPtibZaSf7A3JaFhVzwqMZFJ75kSlnsgKeYkeqT0SUziJbzBckLZFPuh/EfFMQajOlIGo4no1rEwUnuEZiePCA/QhQqSGOD8oOwnEgLg3iJ5F5kjHhTLqwLHmlFiW0AU5ayc98hFiEOYbHpLfA4kWOSJe3ZBDm457ZHTIFiWMiiBCeD9CJ7H8wkR3idIrDj0jjIHSJKgM54AYJ60eFPPR48elIBx5GSXHrVqiKZwNDkfgxIBGlE5b - -ZGUyk5hOWJ62S00h/aOS0jJo7Yw4MnDJieiWBJ7/ZLycdzcosUMjGIM88PcGsy/Mck5bpDjIQG7p/Mq1E5Oe5GTSaAmAFEx7AgwMEBnk+AIcCDA8QIQCnA9AFEwcAhAIQCHAHgc+kzRr6VzpoAzkCYSxQQUOMFYhv4mKIOptKKDL5pwGVbq6ZPhFSGHRjIX7LVEnsZYK6B50VH6XRhgdyHGBOGZaAhx9XgRmRxL0Q85vRkdDn5xxjgayY/RycbRl - -uBuAOnGPM9xHiSWS+SNjYFxXGfqGFMHMCdBh6JNlULLeXainoyhG3vjFPE4kZOlSZLcQ6H1R8mRzaZBvcQPyqZD3G/oUuG+SdlY+FSl9ANQ3DJ8KNI6Dgk64BdUZyq46TVtsaix6aKQGHpAaIMBGAahH0BdAMAG0CI8twJUCDAQgHsDOAahFsCjAN5JNGY881sHnBeb6arSfY3eINBfwyzmIH6wGWFbAQmSeRUw+0tQeVa7ZnLE7F1qOpG+FwCnS - -eiZuxWeRs7aBp0d7H66BeaGpXRxeTdFRquGfyHxqmgYDYihJGY84xx9ebrydelGR840Zxfm4GaAHeQKbzgscPMaQu9ftBmN+0LndIdQkoc3QCZFcbUJVxqLr35iZmesipNxi+XqbL5ZMe3GmmV8QsKp5TwnQlIJM/rvkiJ7odZqWF3idwm+JR2SMI2m9mT4mpJ3WSGHmZiydMn22KBmmG5hb8mJpgGPYdZnQaJZjzgDuokLqyWoSrGeZwkHrlihf - -Al8XonQRM+vabxFNZly6gZNCt247+TZmW4pKN6v3ZwMYwZhE76U4WVhL254S7bX0VWSDi8Qx7EfGOFcRe6b4wf7HsLC2N3rTEukB8Q0UfhOig1kukkHF9BLR17EXzVw08HvBBFh9pfYj2VQeMUv4dWf3DbxE9p+EDF/cNNlmu7hQWbrmxmf1m/eM2bhrBhu2CBz6uESqurDZDONMWBm86vPEE4GMPdglkKVtvqW2cFjervCUHD9jLRw+vkU5K8Fl - -HBDF32FeywcAkthHiGdyYJzN4r1DEjtMpZDx6pSwZHfh2Q32Wvi24KOUcho5iuWT7K5OjgR4/QAjgvBBK58IcRf4S4CjiZQrjtzEgepJWA7U4RJRpJd8Cxu5CAy92itIsexGoY4U+RsFT6ZCuyZJnmOWJbdLWO8MiVo/ACDCcgNSopekgdIang1JlSM3AlI+WrJSY4clMUpT55RPJaMibSapZVwDGmpRo7Sm6Iouiq5y0jZFv4NaQkE/Zd8q0ztc - -Z3OTnkecZHNq1aFlgZTMQNDj4bkhGsMSx9KUqAEiDK4oqMiXUi4hspr8LMnzFJO5nnJk35svjZ5ixivjbkVAQ1s4A9AXQJwFqEMAAgAXAyYO4EXAXQKMBRMAaJgAbAQefrGzRSIYvBOgFOaAE4K06L06RQEuMgTF4KXLIGJyaEbBkDByzooGtlx7O2XqBmeXdYshOgeKAhy1BehmF5/sVhkl5jBWXl4ZocY9ERxQcVHGkZ4oeDau6fBUbwCFI3nR - -kcY3ASHQ8YTGSN4QxImJ9qhwGZNjYjOrctXSzehESbCA5aMUoUT53fut6xB9cZ+Ck+zzLHxL5pMUi7kxa7sd7b5XtrYWD8pmeaYmFbpunYhFLfAxBa2hCQ5rGuHodYUu4RWWBVmFvYZbZ5h/5snbzqp4lK6xu8duqzpF4RUkXbFuQeYVOFCHDQlQwLLgOxNFSuDVDgaoyvSGkMEBh5mwWSmrA6ISxYk+qlZSSS7jYVDQSKRLhzBnhrdBsWbRCCV9 - -piaRgGXFYB4N2q6m+b/x6EMxVh2AFaBW2KakNwmsuS2fTGqV5VN4U2FOlcEUFZQFXnYLxmmUvFGVCCSqIbxEFcZWQJWYW1k5hO+TpW1hpmi7FlY4lWpq+FCGs/5IaPbhWLBZTrhUW8Q2MDgxGJy2Q/ToiOMORKI4AJZewwczxaMkgMMZN+lbiZ8cinnQ2jlFmJVDEMlXzsN4YTB3h1PFlXbZEVflyMSkPgVXEwRVUZWWu6CcLCZeUJQ4njZe8PxV - -Mwt4VVWw+p/pGbvxLpO1Uw+jbsbb9hv6vjB9uDPh4YcVSBkNWBVUcKNU/Q41bkXX2oJbfbglqKNjAtuNsCdDGp1ysEYQwF9reWaMbDHxzhWpUD2yBEEnLcoaw0nMSU/au3A9pkOrSDx4pahqGfTpazEHwy3V/2gdzkOxkWDJ8efOQJ4/aJ7r9Qwq57jx6FJLxAUh+RbOT9rSW3cMgTYqYNX9r7cTHN9WPVlXM9W3aY0uxEna1bHAL9kY0N9SzQee - -N1C7QYVpHn7aS4i9rXoMVnpHxWXkLg6iMyBOzASMVkg1Lu4jJaqjrwdPvo6M+G0jFYGSP8Tg4+WMiOAotIDjnw7X4wAYFKhOmMKZJS1LVe+4vUhqO9TPMSwS9TmRnlqrUuRVUqaXNS9UiRFP203HiWJcXyZmTEal1D+BHwXyaEhlMpjJbULwJEVx4X48KL6wn4zqJIKSC/lqQTxGfHIiS+IyJSGXrpl+Zukr5UZSLF7psZV8HxlZoJuCdRXQJuCV - -ADNBwBZ0kgFEzOA8wE0A/AowMaCB5U0RAUllIeT8Ydgwxn1Lb4BpMIkO+jUJwg1GbETIHJ58FDTBioNkI/FaCUGW4TuyjnJGI++RgqQX9lyGbnlDleJqV6O0Y5Zhmm6hGQn4zlFeTboT1QNqKHbMy5eRmN5+fs3lyhreYDG4A7BXczW8zGZBCLgJWvA6SFcMbwABBA+UULFUq8PtWKFpNnJmT5a3tPnPlbqeSVgIL9joXJBsmablTqa+evLKZqig - -zH0G/5X3FGZ0eWd6oV+IrZnsGUyQ5kW2A/AIZ/FZ2F5XNVCCN5nVQ8WZG4n2ZbnBU2uH8BRVIRnrqkVzU34fEZcS5rmVS1Vw1bzBnhM9tOxAatnEy7N6PRblbwMUgmEm0N0yIj6EQbRY5V1uT+sBr0NaMIw0o4zDaMU0NvDXQ0cNjdXTAk4ZxTw0dQfDRw37ZKJs+FDsbDSBpcKc2RuGqN/DcUm9ZtRSo1iN7DbhVjxNlQoryNsbs0k2JojXI3iN - -sbsHZ/4odrEW9iHlX+rpZU6Hg11UFmcVm123FbJX+2GjSiRoNlQV3aIaHiH0WH61OO2YJZ07H0EhkO1IaKBN5Wb2KMcm7ClXxNZbpE3oNj4VQ34JZQek0RuQTYCIuqcxg/GkMCTQlWFN9xdygGiwbHk0VBc4fvkrV/PskjswaSESKZIiBDqXVcomNUjNaZIXKhDImXD5xg1TqMZY0e5RuTmopokdxGpi1HvxFqcXOSNo0e2kpzlCRKJUVGjczTYz - -l5k8KH4gE+dwLiW8eWKP9UWRG7vAWXU6yKZYsQeyKC5Uev2kPDXVhllpHbucIHyUbu++PEYcoR7mdQtalZG1pNaPHiDTi6DSKDU/a9FvXTXuj7l5GUoPiOLDjNt7vpGBckLd81jQrWhrmseO3CM3nNUNUp7YoL+GlAyl1ERub5kSwfChYyXUhvCHav1c7APSIMs9Iq5ujqijGoXDLJCmMHkIblhlZnuyqh15uXfkR1D+VbkSxEgLEy1AmABwD0AZ - -4OyD6AWdAHktA+aJgCDAbAKcBtACdeb4GxSIYAiww+2M+Ex5jvDCB/MtCmclQmYzq+F2op5h2VUhWBdW44VuBUdEp+BXps6UFqGT7FleGGeGoMFpzkwX3Rs5ZXkLl1ebYFcF9gQ3lfRTeTjFJxa9YIUb1Ouhn7b1YMQeXqhqsDR7dysMXnFuEtsojED0KSJbDQ1d5TfWf1K3sJlqFFoX35P150HAKPow/jJl6F35QYVEuamRYU6VeFUlBb5tlaRX - -GFJlVMmeFuibvI6VnmtZAmiJ2ltnXe7bbhKuNiTTKTANG1hZDzxYxZ20/iZTZ+FuVj6rU1+Zu/g1jaNBEAK7AG2muFkpwDYeqJaVXQdu2iVLbWA0Tx3VTu3EViCae0rU57ce0WNg7UCRIVAPiUmWN6Bvho9VplfpkXeOiqv6i2/oUmZGVMWVga2i2wv20+iWxWBoBVWiQRBKVjjTKQgRBJNO3TsXbshptUSHQeH5KIhgSSbtvSUrqHZW4ipB7tml - -Q+0WuyxZkldJmyVcnLJu4T+FomVhZ6YAdG4WR27xlLChUmNHGkqIvEwiRZCehjHWQbJNMKqk0XJuIu670aCBW1RUVTYSO5FNVTS3UgdfbWVrgdqxYI2NFBHV6IOiNFUCQwwOcO0VQNujSPG9u58S7VcuxBmLYBhRldHCz4ZEgR2YVI7i0ygJI8WQnAVpmkCIOdADSe3LuH/izET81yqT7buctJcjot4gt5Ewt2LTioLIx+g5bY+dZO5GICsOdj67 - -SYsOI5vgr2hDmxWixCKj01wtel3aMCsF0jZdtNZl35dJ+OFxna6jBdoldY8EoK3aFXRDlU8d+HFomSEOXtriilNSl3U1zXcXHi6jcZ1DHaj2rygUqR2kg4vwDXQlbC1yDqxAIEkZLiUuSJyDw6RS/Fol3zuVNbpE85f1QAG6RYDuCjXokDvVRSWpcCwgmo/OW0g7N5nHs2v1wkUs3CerliNqTNXEeJEzNryOdnEo6NS80+WbXDoyvM9eK1xUWS+O - -EqhRGSHZRIos+D1K5IOeCqj94u+GdmilgqPfLqYRKZpFMceSN+mvNRXKDQS4UgYMZgyH/M9IT4vXbNq+pDqPPCZtYDscohI7LRukm53LY1EW58vgemdWDAHsBVg+aI2gNA3NPoD5opAPgABobQPeD0APQKcBnk6lMWVBeOqtAV10ekJBTvg+yYgWvAdwKgniC6AZe4zIyXlbgTFixWl5UhXYPM7ZQdro7G2t4cTnlByg9XoEXRtBUXkBxk5R63Tl - -zBZc5zlbBYuWcFbXrHE8FFGe87rlcNq4Eb18wCIWV+9xDUocoZqFN7ZC6baOB3ISOk3Rj5Cpg+WqF5oWnp1xJbXCCS4H5boVflRpjW3r5dbdTFd81VX4UgV7uLn32V/7YmH2mOJIX2UVRHdRUQdqWEDjgy94tm5H+wrif5pFtfcjqZhICMFV3YCyV208djLHx1tVlVf1Vo+clX30l9TMDBlSe0RhiGadHmmr0LFwHVHDyJnYMqwelcHbP3zFzXAv - -0OkcIrr24Njehv2TFxYtr0GQwROJ0TBLMlMG3JX/uu5Dcd3Tmkna3DoTU2RFPLoz9kStW9QvMWtcLWldUzuV1Oo+0ttJHSvkldICl2jkKXY++zYZKnQxXYJwPuECAVbP2BHoC1KifyI2Qb4FPcHVU91+Ty0ZO9+XZ4M9C8E2iNOMAKQDzAA1jeRCA+gIaAUATQFsAIA+aLnXgFesaL3fGEAOxi/UJhN4gS0qukLrDG6nHEii5BITbHONrdYibWVN - -rX2VIZvPChl55aGS62j1brQ70y8+GTPVV5u5RnLRxzvdwXMmy9QnFUZv0fDZuBygL72jer4KlonAfzP4EyFNlLagaWxNuXEx9BbXH24xxbYPQCQmZCn3v1Vben0KZhhRvl3CrfRYP5hgDbA1aaw0Ocm/1fkNNitVkQ7k1hZx7RAnnew7v7YiDACWZUGZSBkB1x2hrtThYNTMV51X9MwQANcIQAydIxSzvsqVM+EOUt2/97XXkbNNqSAp40otqT0a - -5ws7HsTQo8jqQTCMYsH2C2YkeX/wX5tUSHXYDNPby2W59Pe1EQA8QGoQBo+aFQFZ0mkMQAtA3NMMDzAlaIkA0C1Aaq2ll4vUSJJKrokkk6t2vfniCo/2rZrJeSFXgVnoiZmP05eiGR7GFejrbIPOtI9eb3jl49WoOaB5gZSZRESg+oOvRYoQG0Shq5e73RCnvSnEb1DoIxk71cbYXTi6S4tJHY2abYXG7EZpAVbnle5A4O31j5Q/UJ9bg03hY2zc - -an0GmK+T+XX9f5SGXdxErCZX5BBLDkFXtNlZJXA+tw9+ZbC0bvv4z8vHWP3sje/ogZMwrI96ENN1/TFq+GT0P4afI/Sm5wyo/yD9RAoVeGgLYWdeN914ERjJ7KvusOvE41RmOiMNIuYdU1F8t+A1MPyq+gAzRqUfQKcCDApwFOCaAPIPgCVA7IA0CkAVYJXIi9FvkiGEQ2oscieIUXqIGbAogijg/8nwgjX11eQnYkU5kDaIM60PYP2KRiXsvA0I - -Z3qo8ObOFSNgA8AZ0XINvDBzmPXYZU5coPetqg760AjNeUCNaDgba726Da5eCNF+m5W4GEAJg4eWgu3HApL95KbUBkXl3zPqHQUnKG/jGhK+XfXYxicRAAz5L5eSXOosJW/UkxpI/oW+DtbSEMBDWWbsUYJ4FRZ3WFHbZR2zF18ZVmOd1UJJ0HtB4akNr6KRVR1JNFHI9DnhT5sx0yNM7mBFtMoIj+JpVBkhlUTVa/gSCGw40IxUfmlpDzjukMDZ - -SLhj4jsEOHJHdXGOhIyFCnYATSgv+YxjHsl3WCG5/bYiX9p2VDTspivcMjkREOuJHuipMONynIeRiziL4vtdMbQpsAi8qFMfKY/Q+GyIMiqGh7om0L8+bDKdBmMn2Z8zHcdtXlZiOwjEVYoBpyCGSYezSJZYYDww1gN6jOA3L67GArYelTglaIMB9AcAPeSDAWvswBGADNIaAf5B5MoAIAQgEWV51zA+6Pi9NUEmJiOWQtIn5MmwEZBMiLJIviKC - -MFM2WuEXZQhEbW1w7rSd9bkCRrwZBvVES+qqY+mNUFL1qOXvDOY1b13O+Y9PWsFz0cWP+tZYyCO8FYIz14Qj69QN43kDY2kLmJTeCty5xaxGgBH1l5fqHeIe3N9o5t4+TiOx9T5fiOTypEttCeDU44Jlf1GQT/Unx47YuMgNrHSRXXtj7flnVJ2445l+NUHRBkWQsHaJ2uToVSx2ywObiK7G2Dk3BlOmRGhAgGah8hP2OTWtrNPuTEWgUPIT/Ps3 - -jQezkrFYPNmyhiF/YfZDEZEiDnPi1jwv2Gz4sWRqKy5YpiDL/ykE+zSFDkWoNAfxCTOoyJNcyYkzGX8tkw9HXoApAEWi4ApwJuCaAiQJ/lVgRgLcDP5Z5FsB9AHIFExvGuk7wG7DoeXOgLgsMHzig0vyKbHc6stDwgK0EAt9DJe0IABEQRE7s5OHh2MMRrd9yzp5P+yhXj5MZjrw9RQKDH1rPWetP1iwXXO/w8moljC9cCMrlsU84HhttYxvVgF0 - -bSqHVy/0Y2NqwL+BlPJtWU6gCn1uU0ULgKfXKPB9jnKgOMiZ6hQOqvlDdEP52hlbWn0dq5I4pk+d/g34PdttI86ya2lidA0994BgEXyaXeqlnTsMuheMDQ408339FR1o1UeZT5hx1caM/bea3jgEQu6pYK0zTP1ZYc2TMHJNUFHPzT6PktWY+jTZsqQmeJc+4Gq4Obih4lpMBMqQoZKuSjeRgjs0M+GeKIGKEoiCIQhDk5FqE134hWOKj+OLDCOQ - -lpnYG9PG5EZXm36jtPRJO/TpNBUBbAfnhzQUBmgAjyVotwJgA9AmgFEwtAhoMoCjA4s7rHIzhdWwMUYBIJTznDjMX6PDoKIaNrktRVe75jO7VZM4RDUY00yXhqHDk00gdM9nkMzRkGmNMzI5fIOBTigxFPfDKg+FPszjvbXkfRQbVKHfRobdRkJTEbQN4BeMI7G3SzaQlhPnUfGR2OmU2U9YPS6W0KzBZQms0i7azhbfH2uDFU580zyFbf9Ef1ZI - -xn0NTRhafElB3HcpBrF7LjOENml/lEVg9ylf4lH+a8Sa4eVa7GeMpNeVYQr7FmxasUnz47vHOXzDGnIiHsAiw7E/iwi9vaiLWERf04RIo3gQdIj0F2CvUHSNtxhSISFSA+IR/BDrOllZFJASk40LotUQDxCx4wqRM8VbEQ8DGJHgokpB3PhlXLaMPCxBoxMNxlA8xIBRMznlWAXpXQLUBtAAaKEDEAFAOToM08svTQ7Dq8+xgt4CQNbKxZldb8Ax - -LBZHNVuaxMyp1hN583iAfA6InchqwkYzfOSDyYxQUyDJvfnkBT2Y2/PfzoUwKE+tpeX62aD70S706DwbSvVALBg170De+gClOF03DPCqvMHGUguq0POA+zoLXfqVN4jOC//BUGhTNVP2hJs4XokLqirEOtTnjdbNftyQ5bbOFy42x0WVEIv30EJK40mFz9m/f+aGVSYbst3DPwg5V/jQ7XZXJJrhbUkp2EDUBO9tfI0y45DncgkN2Nr7ma1kGsJv - -X1tUXyyeYsVuHRtl/xlCy8trt7U6R00dO8XR12Fd8g8vTsV49FVUjwTc/5C25YQp3eir7SkPHj3YeRVn9M7Re20QlRdQ11hM1UZ3XW5TbRXNtlnbHCaefleStakr4d7D8SzYeZpLZf4XBJ3jkEU6LMS1rcD7fjCILRGOzCinr2r8rpD+Mir7rgtlgrqVUKvWk7RW25Hh+6ApVakCq7+OiretKquULkq8KtKryc3ItglCi5YtnQMOpvAimxVqLDl4 - -6UEUiopBHpijHSD8UcGVGq1YQ6A9lCG/1JWbWn9RPUE4z9ny1yUbLWYl4XNiXgDbMRjJqQWnMh7URbqCVDcIMht8CxrhijE7f46SAbXVihSUEMIqSqQp5ewC0DPhB9MjvVq0oeSBYOXaWks8wwEnE0xCO1FPLThUrBHg1BNcjvPrYLpXYEulkgb+IgRJYbeE8nt91tVFAtSqUhkjopRIlexKWWyMGWE4uOTGkfaCKVFwDackkNqXa6cHUMvwGgqx - -5DD7013PU9zi73NZObi/uQFlWwNzQXAPQM4BG+U4AzRVgFAIcAM03NFACGgxAM4A1gbo2q3i9nkNAkjFcnWZOgUKCfvUSk/0DKbEz9nRZY7jaeW3VoiL/MSjQU+YYmNrOx0U8PFLgfMOX+TL8+UtszXw9c4/DYcX8Pvz0bYCP8z0U4LNu9wsxuX/RW5WrpdL9xK1haSk3plMILbhJxkqzuxN9gvNChVH2d+HapgvODtcRMuvlP/DbAzLxs9OPVts - -45n3zjVswubOd9bcO1pDty7BW1M8/RhXkJltk+0edFlT1iATcdsY0WVT6ndK+jy/ActpFh475qztaRQStARjkE8t5ucRecJw1E4ZEVZierDEVCVI5gVaLaTm7k0lZMlQU20VHmx5ZKWaq2cLxu39FUmWbtrhRU/eoK2BzV9dFX1PDmyK/FvxFKETUGjBqgaUUvFmDcStiQGWx0GbjcJNEMb2I2Xh1yrn4YR3qV2dkEUIdSm4CAqbDfaOZN9q7POr - -NtYq7VkZuXdi0USaYW0oqdbFWRrhNVB0LVuHtmBkEUbFcTc1XhwMQ2/BXFPSQeN4rHrCD6qdrDVFtn99VWgi1MTVfo2jmcJqBF6t74B5b3jvy2tvWbukDv0DiPCcCV+uvJElwa9ukCBOeyYE242jbUZiQh6Qh/FDkiN4dgGxgGpCIVaFzLsyraAV/2+Qj6e3jqX0g7H20ZBfb126upHLh/a+p0QuOWSCfQ1TXVvq9W/aFrI7E+LN0lN7OMKNFDbn - -IKgPKIqAtzc150r2BVDIHk3W54MkiTKrcFORtwYCdmPB4wOzO2h7Opa+ITJ075mhLoEy8SK/h+cB7q9KbBOMn/iey+MozvrcGZCztKiT+GIztpkZBEhs7/7op5ERwHmzFZklqAaQa78HjztLcnyV/hUG8Kkh5aKKHt9AIgm85h4+W5Lb/6i5YbPdqIIO0PsRuoBUD2tEtr7n3gMRxu2B4ZdMa1/hMctJR8nHSUHu4MhEcHmHswe9lEbvYejSCLUY - -ezXNRHx7Djonva1dSDRFIgdZAyj7VRXB+NLIvPsEOE45BNCSQo6sMkbuOc0NmTUIsqN4juO1i4VjrwVsHtN2psVooKoes7NxMsplkp5BjcYusOl8RkyAJE3diqEyhHx6nFPJEwQxtuudzji6JNjDuA4aOP5DPZIBSxm4E0A9A7ILCDzAm4IQABoMAPmizDm4JICSAPAC8DvrKM0XUBEUPktA3+dHfEsgwgG4ij3hR84nI3xOyOpCP+kG4iZTTPZT - -3UPDSGw60obnamhvD1LM6/NYbRYx/MFjX89ht0mGg0uUCzS9c0t6D/BSAuizA3mwA0bUILHpSB1sYxvNyOU52PQuhsPMQOU8Lrm39juI0AsjjifbjDHAIm4QveDpswsuUjjbaA0H+tnZOYH9928ss8KSYRcXIVbUzZXJh9hKmEHqamyMJZDefTvqWt3pe51HJu6oo3z2lCy5UbLyW2k2+b9dv5tKHGh6m6N96bnZsBboSrlU2irQcUWZbhWwFtmb - -v7AqQvs1y7urFba2crCzVz4wtVybty/VWqwuuctohz/LFNXQdWpGBs+HXHdX25ZwPn7NbbwKwtvIR6yRBznswxZ8XfbPDbtv/L/cHNtbJvYiE0dIxBZO47ZAq2QYmHc7GYeJKWh2VnUrMpEUe/KJRwD4WbZST5WhNuR7IprLm8Ra5WbEc4kNQrxHLXaGb8c1wdy2Gm50dMjgPhQ2WzF8mYx1VVMYTusxmytdRaMHjg/LotMu8y245DSAR5jNujHt - -oWpuFj+OrgJ2voy4WYjlyWwu2jDnP8+EyTYYWG9hsKi5IaYgUjQoWMu5xqeRIu3hDNXeHNWkgiIKvCey1zUVImWN1Fc2OWEqRNoLNwka0w8ISAlR6ycRDPJyg02OTTXgeeXU13Y+9XWEhjdjEcxFHxsTmxGc+8MNSisurNe9LwOxMEyVRkLJezUknnNUDIxS7Ugz5U7fNdIyAUJQ4xDADJ+P129YGmKl1d40yMVBKWMiBrBDkZe8bDyClsAzVA0u - -0BPgLFPyjHj2LnLZL7dzX0+8E/TR62TQ3kfQIcAtAAeQ0BGAHAPmgSEUAKK03kbAFnRwAZ5MjYX7kS5kuS9pWn/s6trkP0jkgoSA8ijcNsWJ1nb3+zrSzuQ/RBkIbeXoAdFLA9ahtD1HIazOx+PMzhufz3MwRvwHRG07rljTSwAshtQ420uQjA3nADYHO6IfxMtrY4rNstBB9Hpe4F2ZH3YjebbxtlTAm+SWlIbwIwdhUtU6vn1Tiy41MeazbYkN - -aZOy6P3fmTnekPft1RRv79TLbW2cCHt7Vjuor4FoQzPqRm1HCCjIh5a0ZQJDVuKDTaRVUdCd82Kdv2u8+sufcLrdj5XgZFlYFs8IA65va2q0i6Q3qs0h90V2H/7EJXhHLpKNWNr+lfJtRwgjV5Bo4cOy50ULp4cefXha/gzxDb62cQos4YVY8tVbFdh/qwaIWZnYgXdmVDCLn/RR+eGi6nQO1+HSUOcudnVcA7NCVi7dMB7jJHSeq2bxYjheOF0x - -xbOaM39uRC/25O2dTnVBUsjGUlBqIihiWfJ6mQdNo8MJCzai+GLld4ilhUhVcPTcVp9c/bThYUOR+UVDRkVBgvmGWIl6VrAE3iIgSFWMKiagDcqXJxpNQzyKDQ+WtO6ZEPIx3XmRWRCwV/1sn16E9qDdXJz9mDKYbLlIv8El6IzE+YSOUihWnDrwhxwTaRLWFRI3IF2lRLSuQhrweB/SHe1K2IkZC5xfbKd4By3j3PjDdPSqcqgfQDMOaAhwNr5d - -ARgFeR9ATRFAD+epAC0BbAES1AWozmBJ33JG6Wr+ubW/6yDDUJhiyEg08dkw3VFNfeOXWq6nZa4fzVPp7fPkFA5c8MlLmY+AeYbYZ9GfhxuG/b29X89XGcxTZG6vUUbSlAN5FoGZ0ibswdqEm3wLzcjmeFCXaBAL/SDLUVPR9JU04PlnGhZMtaK1Z8SNeDcy06EUxSmU2ekLphcIdGV/NtQuS2Pbfe3IXemfSO7jlfVJ3qZ8na8tdHQYTwcjnlW/ - -YqNh+47GbDnJyzBU3F4570cWKoN5+r+NUMGodkVa5wcnodshzYdiQE20UqrqTh3tlBzvh/FtYXB9mePYa82ypWPnxcBkcnjWnfBfrFeroBf7hyCZ1PVZBh7m7G26FcWIML+rAIn8rM25XwMdPI3yu8SBR3S6LxGQz+ceEkxzIkdhB4d1usJVy6KtS39HTLedYxFzazbVP6iEZ7VQOjKj6isngATT4enD1Q8pYCYCdF4TxycgvH3nJJFeIl0K6Wey - -paTpbDcellpa239F91RdNtXPcAKWvFx4Zu3Plm8hYEaAnJH8XAycMqKjryCVqCXIdxVypI3vKsGHS2espLWLyUX9ipRwzdJeQ17nNm1r4ml0ZfaXANZZGQB4ljAFbVAa78omMKqRndFcIcGz6YenYOXd1I54jZYx4qKUjmkTtcPvXCuP7D0b6iUgQOIs7CuCFdX58+/usRXfc1FcSAHAIMBGnbAGoQIAewCDyDAZ5PoDeLsIIQD5oeAO3kWnOV1f - -tuE1vuRelWW5zvNmyC6BZa7Q9Wz1SEhYzmku5HFM2jf37LV/a0BnxvUGem9NBd1fXR4Z3a0JyYU1GeVLkU/Ut158ZwoXShrSy3mgL5cnyAQLUs14HCYmBCqin82oUQfLX+lLWniO9g/eVbXyevfU0Hj9W4OWwmkDWdjqYmz4Pf1jZ2Qu7qZfZ1UnCsh4ENpHSy5dd19h5wptJDrR9KxpY9D88v9xiEa1s5U5fXp32FbhZ+H82bN25v1ZlN0FmwaR - -7f1uW4v5wHMDQI25BfYWJnVkUv+gfrTcDH9N6Ar5HrVVu1jbXevO2eV77blvCVrpd8vRHpmoIe99bCTlnA3Mh5m7WPo/JIdntzmUUm52LRzZUTsd279dq9gkOVsXhfyww8bto7RUcWu+Suzdody7VE0Hhehz5nhPmTX3Eezcuq5lKIdC0E9kN8T9fO7tUF+wbKre6LUl/tbrEPptuZqV2CTbXZ648WdNV++FNHo56fEVPRBZQvDCSt9/78+tfrZI - -fsLnOxEORKtc5FPuh8DkrVkhPAuBPu4BBVEEn+8LKXqM5UgqVR7SiLB6x7BqEn3JRMhomtBdosHqy67QHvB607Mhnzui7X+Ozuy7nO/rswBfzAMY2cYVgXit4DECos/g83LTuG7oe4Hvh7szw88geV8L/gqsuwQTKIo8DCWQKeEBDY4HBg4n8/TrrFnpcvZBlxVwu3ltd02qWqKJlCx6iAfxxw6a+N3h9DqUpD1hWF1NDk5LgzbpFhsN1FsgGRRk - -aCp6o5nFChnAhWA9MzG5Fz0hYw4NP3e6jn0wvviTh61HXuL6AGoTYALQDbD6AmgJUA8A9APgDKAXQM4D0AmgGeSSAU4FsDgLSMwiGb3a8/DHak0HlZF5Lf62bLHQggXMH7EY2gj2hj8MfheUhUGwSBAOMe9Z3B+BS/6dtXwB8MylLGG0boVLcB31eRnH9+/fEZCB070NL2g4A+ALyZyA8YH5crkAQPnJoeXWlXyDXMEHFGAMspexyKuAjLPG9QdD - -jtBzg8br+D/nrKF9Z86FnXpD5JtgAcN222eH05p1QdbRh7uoI7vB1HAydbqk8UVbAR/2ckz4ETCWYXBr+9ueSsOyk/qseN+VR5iRwTZOVmq6p28SIJr58JmvZ+s2/iIxr+DKmv3CyCVGry1SatuXMwiVETc1Q8dJJdQSEN02St+KgS8+4z6cjylBnEY6rS7JdTvCR91E7J+r23N6zgw9mEQiFJDLx9MvBQ94vuuLbL/uRGAm4D0ABom4BwANAFNP - -gDJ1yYGNb0AFAA0D2I9Yxvdi9qM9sDQgpUM8qul0glCAfAJZCYysu1R8mkYFIGTDea9bdZTNd9pCa7EAHH90b1RtT97a9Zj9r5Ae1L8cv1c1LeY7/eIHJG8geJnLS768izlG24FGA0118i6ov+FN4IPHANHqfaIZBN5xvpoVPlYP5U5Mv9kJzbPLExsy4Q8sHEmxddZ9+b89eMPg58Ds9tt1z9sYXLhXw+IrgChy5HDnouo/vL5br9d5vTjYts/i - -KbolmhsgWWd4af+jyJUjn1YReETtb3jE86HOb2Kt79TK6FtNbhh4ZnNTk7WJBN2cNEsGSPQJJ2/7nzW1F9ZKABg589bODYSvTsKN75+pfMR/g0rLoWyl+8rsi4hPyLRO1DQqaHkFUiyRBkm4azd4ukPDTiFqAzDySyrP1x4P0kkM6So8kmXOpGOhkYZkqQKwYbbPehsTv2OwqDIY7abnIdV7EYxidWtcDXPFh14LXF/ayW5F2SGUXcL6HZpGPX0k - -gHKDkqim/UFqDt1ro3HO2JvVIKLEiQU/XOrDk9xVnzjSRRwH2uP00+9qOz78p3us7pw96y9tRf0xADYAkgAzS1AgwJWjxARgLCABo6dZWg9AHAFWDc0UTGeCwgU1xB+sDhhAVb0QxsChKTnxV0eU0hkDnEiquqvWYgjYB5/BuKB7+7SEfj2Mz7IWvRH8huBnIB8Gdm9r9/QWuv5edUuFjVH7zNRTnrwA+gj5G+gfsfgMZoBxgXH0HsDSV9eC6jgI - -faiN4g4tBDBoLFB8VOlnCb1RlJvFU4iAJRk4/J91nZs9JvVPZD4BXsHOjTUUQbeLDbPnFiDQqw83bI2DcBZoFuhf3LLSfPoIdPtm/LuZTC04WYdGK3EMRN+TWO3WmUT2/Aw3UwtjehHQht7Mtbn6mk81HqN9Teomp56FgR/KK+faE3mR0odB/1ZfEdfYcVV8VTCjvyggNVUR679xFKN/W88r656b8GPx7dcAGyXDm2LnJIrJY9I7t8ajv6ib53MV - -1H4iGtGk/eSLuZfy08N77wT4iDv2n9+X7iuxHBDVyukzjb2QY5/ysJEcnWMq0lXFHKK8tt9FQ7H7+YaBN0fZWHMpAJ0XIkf0o++V7h13ZPhYVQdAB/7s5wuCd+9//rW/sT13Zr/6EJZ/wdmjyVs2Z6lQDe4X/LOecV9b//u0f/2bOo+YrT642VeeiwXFYTThNzKLiUx7HZdaYH5Ino38a0gGtRrT2GGuDUILF5McSu7oWFCSUoAAg4WIchUoIJD5 - -cdWYgvDWgUIC/DyCcBTLoD/j4teYhMOabRUTP5gV4Ml7hkEFCMTaozNwHhJuGXkjg0SUTyHPIxbbbgFtiQIxccZ1DACF4haIay7jKZ+xUobSCHabwxuGEQGeGN8ByArjioLXjgxwB45uGH9T01KAQKMd0qLEOSBuQX7TEAiiBvUHZqDGSqwgoDObPSB4jZzMlRWAvVD7YU45kqT6iYiahLtPCMifVXZLpsNvAfKOaoOSckC/KCiyooRwx5wZwyBA - -oHTxSXkhIKN5TXHAgEhIdyKcRQqabKasS12Jr6NcE6CP8Euh6CYSB3IVHo9GciJSISBABUKKC+lZ5CvMeFBgybST3vXdZOLN77PvSK6vvMmijATjCDAItD0DSQDEAKsCGgTcDEAZMDLANQj6APoClobK6QfLe6cNGaAJYQrTpPDH4ogOCT5iDtKvnVXoXbLGBfFbD6ImYXRMsMvCSiZw4kFQj6G9an6P3Wn7P3MpYUfHq4/3aA5f3F16DXDgq/zR - -pbevJM76DP158/H5wC/dVTqDSWbBvOuSNQR3YZ3cPSKzM47u8SX5oAf6TKaeWYbXbjZifTB6JvbB4q/D/apvBxjMHeZZKfEh5jHHN7iDJMKbLUcJ1HRCqgdZoKthUAHz6LD5vwPQ5TCd34vmO4q0waaj94ZI7qHMUibIXsA7Ap9iXnA1afqVP5VPL06sLNIpsg3Vaz/aRSkgpXSU8FzIewAgp6kOp4pbFDrTVLUiLTFiKXUbjRg3I/QFFejjF/cO - -Zr9aVjlFKOCxzSf6vmUR65/VWAqg5gy7RJbaNXPKKH/SkRjvfGCVvR4osNJBo7mQorquGm7XjAfhf/YbbP/Zh5NidL7sLKxr0qQxoz8AkEHhetw8PPAw//YjqPXHrarxQME9ZfT72/f0EsLCMGDYcv7xfMhpEg9yrWfTIY5bY9rKHU4qx/cAFJPE2KkMVzol/VUFDBLTQ2RNTBcuEn7ZQMn7d/K8QabAqAWyUVBvbXkaQrWNw3iH+JIEOLYLtc0F - -NUSCZZPW2Zdg6HApQTYGweS37yPckKgXSioBQctyLOehKjgtgxATKkRTgyFCkVRp439QIh6LKyxulXzgbIQC5EveiaZ3TCw+RWFr+RHjyw1RbRyWAEGdaNbpHNDbr7dUPS5mG8E8eMkBjwZFRnyYyJBILS4PgkbR2WZdZRdS7pzNcLignNZqFJM7qcWXEpsWXZqgQpnI0ef7TdIWu5rIEyLZ3T8EGodZAQoHcE3uM6hSXc5TiXDppR3ckDtBKFA+ - -3bi7KWavju3aUZ/IBxxyjOxZucTMhHxQqxYpMKA/IfeofjCngaGMU4JkDfAdkbfBPEKHrvHavCFJT6TGMa5rl4AYx3NQqwaSShwulayy0OAFrFCYGq9aV1bIQ16ThFdbggtZCEHg0Lrp3ChzvNZpBH4LnbjKPOCQlfVKkwPnwOoUFxyoLIRfAIgjp7GfYOLF761AvHTvffdKj3dAAxMJgIUAIwCkAQV6VAeACVoC4D4AaSYLQItBl+BH5tOMXRMi - -RFBJHIq6myI4BDYbKBKA3lypLeor3sK+7E/HHZ3xNHZRQu+5aBK140/G16dXOwQQHM4GOvZn5czK4HnAwjZ8zYa6kbSsZxTdkzjXdOgvAkkDTXG/B/Mf5oKzJjaYjP4GIPEMBAgCxAKSUT5KmMZYSfCs7QxVATwglmwKfJEHEPNg5gA9T7mVY2z82U5aXeS5bthAp6PmaWzYgrh6dFbeYUdS5Jb/dfqFYTHbQTPSo4gjkb8jPJ78JYCzg3H5YcGQ - -kGf6VVAvjBkb8HSLbWNH0FH9bqYOHa0xaNRHxuzQDSxgih41NI/QZNbz4sPb6F7ZM/5/Q16FqNRrajUJm5pFK/QPQwI4BfWGETTK6HxDEc4ZfYf7Zbe+gQ3MC6L6U0G0VX9qe/ZTR1Ndt5JQDTZI3S2xrFJ34uuSAEF/Glb/1VsI4dSW6OmCxResNeCxIEGH+HPSqrnQL5wwnRRNBS2AtBYuAkg17YftdP4fFIEpkww8wufMAyPjYzo+/BOysGFq - -ihfAsH6gkR458Tlb4waUFT9asqzQjUHcrdWGjvTJ5ATZUFxzISrqgqUEkhSfqvMPWHz6AMEAwt6A6w22Fygz9SyrDsHj9a2ExGF2Ghg2WDuwrWHKwZ2Gygoi4wAtOadaJ6oXCTGoZaQO6laYO4uQeSLENUAIxwPzivIKy4o7FMhkgOS4J3UJxJ3aSE/aeEqqXHhJGeAFq5SIFrg0PrQ8eJSFfAFSEVw/OH0OHF5MOOhzYvDLiNwyuFS9HrTEwBSG - -Z3MFp9SQyJ7gzrR+cH9QGRXcEaXZAZ8cTuG4lZ8HF4aJy4vW5BwCLhhrKc1BnUThiKXM1CE9IrgMXXk53xTOEe3KpBe3EiFXTcwg1GQwxjfOF4vNLv73HATjG3JiGBRYpiaGNzgl4RQxgMeSL23RSIGWN5pSINu45kPSEYOVH65RR3gE+OaTGONaQqleZ6NKCRz4ofDwkRTFB/4YIiSCHtZFpLFwpkJPZE+CKzBWE7Tk+XFDbfI5StkdFpDw1mDU - -A01BKCaoFz7Jl5PvFl5OQxoGDzNgAIATcCHAYgBCAU4DJgUYBTgKsBbAGACnAA8jMAWoDJgDgAyvJgYrzeV56yc4CCBPcL37WdBrgQQJU8LFwX+G2L3/SDKImff67neExZQ4j5PzdDbkfd6xFQqA4RnGA7f3R15DXMjKfRZj6oHD3o1jZ4GZ0AX5ZXIN4B6RsaAUUGhJArqEfMOvxn1LtAqXR3hX1LjZ1nMs7jLXa7lGdeClacaEpBY67j+ZEEzQ - -raEk3KTZKHOW7NHVtoBbGJE6/a0wJI0zqrQ7hoeHNT4hiFzbRFVCTaVSJHcuCbLoKfILd8cBJ6PalwK3DaiegnT4THUY6hFVME6KTt6O+cc4+NLmE/6fsEINI8z2NG6HAXexTVbLqaHQ7x4ew7pFjg6C6lPJh42VDTb6/B/4AAxz7zQ/OzTI8W5rQwz60LPMEZiVfx2fCc5CLCGG9TcC6Sg6qgOwgaonbcMGOw2R6ugkxrT/Mab/Qg5H1HA2CNHc - -FapbdZJDsbI4rbAkhrI3Do5VRf4EdWz5vI3PAfI4JIvtP/4dZUw4orUvjkofDphJTc6R/HiD/I32G7Yd5FofAjoPXdDgrg0UYskfMi5KRYhx3c47/QbHLqAq+H0XIfCqoHThO3FF5QvfeF8XLvDPdUbDHSN7qpwjLDpw/k4wCbk5wwcXTbwgU4VcLVB+3XVDfIOAJXIabjFkQSHsokrh5cHAjco7k50o5MgMojpo8nFlFkgHeFnUM5oFIAkoAnDS - -SrgREBfHJAK4lVVGfHTFAao15DwBfiGHaH47SSfiBw0cUgEnC1DUo9ALCrcHQmcWhQNkOsh9cNcBuGeWgOSXvZecdTwmA2HCFJcwFLHCCh7wXsB7iVZrjKAPAFIBcDeA+dKgqBipmEH5SBdaFSrwO5QHAB5R4EMNFxwIehzGUiFQ0e1j2rafB/mQYZPfWyH4BVJx1AihGR1T77svO2S1AKUBngBADKALqLc9ZhEFlfNBwAGAChLEYGI/E1SE4MOA - -5HCuqzoWYEviHnAElXZJh6D3xHFZyZ/AJ0DqML1HVNe4ZJjS1791Q4F5Q5mYFQhn6W9d1ohTaj7OvcOKuvQxGL1YxEQAIB6sfeqHlCbkwC/dtA2I5IKNjV6TNcJYhTeFxGsbPIQ7dD3DkHfjKUHLWaK/UTJ6zHJA1cSwyHXGqbpvLX5zjRJHKfNSr/XX/4womTZ5Iv0FUPVmF7FE4oOg7MELI4WGI4TUHHbQ4o8w3SDdvcVLjcdvp1/cpEkICd5n - -QYd7TvedTUw3SCy0SdE6MdHYkYtcZkYidFIgSjEt/a5Khw+d6GWbOFkETcE8efF6bINsToQkbT2lSsiOlNk6rvZbp1DbKI9IjEL5RDpqeERhDbaAO6ooBXCGkfxwiecN5rpaqzCTGoGD3YtHfTI0ZffKcDJgegAcAFoA8AOmju5DgCGgbADYARIC4ARIA00U4A+9EKFzRdVCgwfJDOPDH6UJBwiGoWqScwkRh2yFso0Yj05NMDPK91KQYPWdq6kf - -fKH7OU4Fv3Xq4lQu3q0fa3p1LBj6c/Ea41Qnn7mIia6WIpcBcfIKhEvRxFi/BChRvYqBQIciLFnNB4K/IaHQgyT7+IiXTtjN4hGzJg4hI9IKZvEi5RIpJEwY26Ej9ev4dY6DFQVQeK36drH5DFOaf+Yr4spOSDduJRDA6deHQEFny5wShAGRZAGFYYbjTGWB6kwEhF2QzTEOQ+oEj3KhESAWtHeeSoCjAXYBT3SoBwADgC3AfNAbDWgZngdM4OYj - -0Z7EBIDyScKSFXBD5oAERGgyHuDb4YXbDozApuJQ6QX4Zv7AUYn7oY/JbBYwpY5QhdGgHEM6FQ6LHlQj+40fVn50fdn5/3P+YVjFA5VjeKbpYhqGZYw4DTXbfCsQUuLahXGxAguujgwAyItfF9Hy/Kg4VYpX4wgveCk+aRDDqerG1nf9GsHTuKoglh4efPrHE3REhdFbrFANAbEcHIypHFCDGKbULLJKX4rwJfo5d2bkE2dBx6nxRaZkhTxImZE3 - -59hAjFBUHV4g3EzYCw5IA5KI5oRFfPha4hUSfAEhKhfFJEJhEcEUJVBghQXyJVPM3FWZQDrF7N/D9nbvTJ/C1xxgJVCPae87rjPaGirG2AVlB7R8LWtjTnGqq1BYGGX+JaEXhRnDuoMISoY/ZbbLDcL92FsQioJXG0JK64J4kGDkhLCZAmFaHm4t0FAcQ6CZ4tvDZ4yzLmdZPDMYkbEko0nw8XFSwZohbRcOZy68OdArc7aDwzPGPYvPeZ5jYoXJ - -nwDSxN4u1L0pYAjkEDlICpWVJNpDtJTYisqFpbNIlpZSJ0pKlJIgGlItDIHBdOMyKWwH9FKpeArhDHGA9IJIF2pPNbVsJ6Q2QcnEspOshIoeQTg0ak7zPUk4PQ0AjnUMlq7JLParoUlqbBcXBaFLSxS7bZruXJd5bNMAQU5RfCfgRUi8RVZD34XXJ2EYXzT4c/L5ouU6Fo6XzkI7THL7KYYkAZzxtAJoCnACawGALoCnALoAHkUYB9AZMCHABACI - -zARFyvUYEKvNGawMbfFDmeEy9o0q4E+eJDT4YsKJQnTrCw5ybvFRI5Sw816g4udHSDXKGQ4+n5RYxn4xYqeos/WA46ImM6VQoxH/zfdE+vR4FsfDLEVAAX6nAaa5/4Dap9pdqEfMHzGh9GOjEKOvCPoLxHpvHxHDQvxFfot/hBIohYzjaaFs4lT7a/Vs6zIvmxx4tPGQ7baHudBBLPQrMyc4yRZQ3HfSkYxDGfQ6Vi1vGMTafWMLzIy66MjCypEw - -uaHC3Vio4wm6E0jUXGfqIv7B4jEEIwwhCPQ235RgnFYbLMGF5ZM6FvLe2EGNaGECVZcwcwgdxTCdL6h/RMFnna6EyPUrbpKA4oRme/yf7TIr2gmP643NpG0QUWEsw3rEWKZonKNPsHqVFWHdhCUEEwhhROPfs6xfIL5IGPiov/TnBFEh1i+NaLI/FIJJQwX6Ej/bnCJFLlzcjC3GqJasyEVEzrogtMEKgiXHRJEJIZE/NzOzCHbMuV66A3NR59tP - -EEl8Qi7V9eSrgrB4kCPQCpQou36nE/N7FIyxKbQ/Po84naEeFDcZrTIbHedZW4VKclIP9L2D4tRfG8IOSBQknAhb4D/g4weiT9YDFFXTFp4JINp6XTer4T4JLg34PJBLHZ2q/UAGiySOIwdkRPKlwQXx63FKThwcGhG3c45SeR5D7INHa4lLFBt4SfB3wtiESoWb5NcFUaUWV0QSwFMjKGPVF8Q8FCGo5AL0XXyIjQTNrw9Hyx1aX5potW8ECMI7 - -q53FErCoazguWQCFFcVsh45DsgE5dD6uRfByY5GZqSQBE4ZdJE5ckxNFVdXFR3aUyTA5CaCR5bSAaSaSLCIINZwQn/BOXebpdSfiwxdFYIX4YSxuWDWpxgV7LfUH1bEQV0T+rElGe3GrgHw5NEcoSYqP4vzgeSHUrkgJEri6YuhrY6AnbpTbElo5U47YjqIBoZMBcvTcDyqM8DzAI076ATADsgQ0CaAHoC3AOABLzaAD51FgZtOYkBMiL7EvYhCj - -LwRaAJYDLDN/G2Jy3ZyZBYvYFeTA4EkfI4FkfLq78E1dFM/IQmlQrdHXA9163Ar17c/Ma68/OQkSAAX63ALj4UgQKzBk7GzToTQllrEMjrXLEZlYqnHbXXxGfoqvGQUUwmIgk66/lSwmtYlTJ6/KYQJIyZFCHHL6orZFF/uZmrXlFXYkRcUZhQOTzlrTMlhXRU54DeAlffQ4AUACgBwAM8C3ASQB7AFgLc0DgBqEToCbgfABnkNgASvNtFtODYEA - -UFiDznFaLwxfYBWokaAuoA3JVXdChlbD2FrA6MYd/UkqfKa0EzoxDZU/IA48Eun4v3ackTlNdHp+OHGbo/Daw4t16xnCQmo4kxHo4uqHrkrHHyEm2DTXdOA0eKChnlFjbEHNEaz4B3aoPV9EYLd9G6zDUz+IsIREjdX6ibTX6s4rN7s4lEGrLMZHXXewmhEhaFvErx4w7QZF3XPJF/XYZG9gzommTAqimfNcyeUiyCArBxoGgt4mvI/rE7FFqYBP - -ApHVgoIk5EjhrMwnfS3FTsS8aVzY5IvIlHIq5HYiL5Gfqc5EMGLbaOU64lOFLKki4qykYgrIksjC3554kdoRUm9Q3nXDQabVLbFE+YkjCbwkM4cL6H8RHYdFPJGZg+DGPE/zF0aVybUzJOYjuHqlakWKo/raWFmUpkFME3wnfXNv4jVSlYlEy9Re+UNxKg586o4IdFjUpdo3/TIqkrHeylEupHsaZQKcdO2HQ3RLbyKIYnFVALbJgxdh8w1GFZmF - -G6lIq35JZJL6KVZ350wosFJQOBpVUux41U4IkFhfTo9TcMLA457zx4n0xDU2JFfXFC6g0+Wwq46AEgkwoYzHcZRYOdEInmB+K94//iFQUXKUTJFBWccbQzGOzgWA4IGfKSkDfKFwxA6KQTP4ReC4IvLTWQa25KRILrxIaFouWMLoyQoPZnuWuHIQoGoRRCeFbg1CGEvXjHIQrjFoQpFrKSIlRHTdSSpw5lGOGSVGvIXCH4oe5A+IbrhhSQZykpW7 - -J8MLbqrgF/xQOE7rAQjiyrYMCGndHWn7NUMnkwX1YRkjSRkyJ6Sa4RHJ3AaE457XqTcOU0kQ5OTjFQOE4O04Wm9kfiDfw3r5goDZAeIDQEmGRkm9SGZ7pQbJDyoC6iqoXLi6vc47nwu45IvR44TfbKCc1HRg/IeOnHVQZo/IABwtQ8GQFrK6YwqdrAcxLpCa7ZIHUAxmRQoLVBNzdZBZ4+rYlYVGk2QqAngU5l5wEySYM9NQgNAbgTMAfNAM0KAD - -6ANoBxgeYABoFmiGgKJgNk8/ayvF9JCIzYA3xJlgqveDa9oxURkwFqECoediunYaYUMe/adlJfrV/Vfq0zSn77AjikQ4riknArREw44qFzkuLEI4hLH0fD17/3FLFo42qFhtI9FlyWSm1Aaa7FPRUhH4wEHH1TNJqEwT6X8WXC/AvQmODDB6DjGnFVYnJCFMCNFGUhrGTQh8kUjJ8lAYv+pOE1sIfkqOxdY2h7YXNok19Q3GrtGNwBExIlYJRanX - -qS/yP/FUjhEmDovUuf5IGUhlxZLz6Kw4sG9/JanyudmFzElpEn0H6nVULZEzuSGkJbHZHDEtrFdEipGzEn1gsM9aB2zH8SxUy2zmPEsQJgkt78GL6ne4kToSVD6EL8PTbBfUKmhfYKlmPEsEP+TIocMp0FVE9H60QM6mAddMEYwm+4IYrcz/wVVxCGMm77QshruEkUg2Mx2YpIv0w7hUqIrFXvRyMt+BGMpMKWw5GHLsG6lREx6k2/AXAnU+0y+M - -5XCBPCrbVUwAHNgiyqiM19QnQ9aE6Zbs7rLLcaHQhrYSHWTZpM5TbHLD+JZMn8nHcB4iakzAJl4QAkVKcmAX1GSRIApEnYWRbBHwNEnyA1MkyA+KESAslCRGOHAxGK2pucGKLpsFFphojSQoQgl48YoWmGWfdxfwsWkVcaVGS05i4ikjfBik3VHQ9bKTcIb/A0oyZnio+QRS09lGYEHRj+3crjG3XlAt4aYyvHPIw7QNTBMlCwbB0/2nOoQOkXM1 - -GKbKBYiQiWRxpwS7T5GR5lZWEiDZIO75epbhz6iVkkjQHqiapeiG14/cEhdRmmaQuZDzIe7oP9Mpkolb8GxcMZB5keZDfYC+C/gjdx3IFB6PINeH1DbBEAqSmksAopBsAlibrHdAIajcQrMA1FBBEWO6faAnoeSVlBfudsTdubKB5o3mKU9DTFkIrTFKnHTHloyoC4ACH6kAZMDJgQYB7ABoAwADgCisuUDXYi4BNATcB4UuaJEQFyTiiKKo8DTJ - -b5XbSBEMbGY2xCFH2+delV/XhA1/cmaqIscnqIsA7LonimfDUQlOvPRFlQgxE3A0sbJY6qG30tLF/RDcnoAAX6DAeSlLQGTF9gfpb5nbjIIMLOKaUynFvo6nEfovSlgMseCM4uT7GUlnFhIuBnIM2yrfEumLz6exmC3FJnlUkRkYMmwmRE+UG5DXLYR4qYT7I1zHPtP6lTU0LDeMlEgrEjZZasrcSUSZKmfqctlLmZCL1U4RkXI1KlFsuNx5fUv7 - -I3PamFvTqCZfIG70MwhkxKXRlwkTt6Uwn0KA0uNhfUt8khfFURufXJH/E9zqbE9NkhE17xLbPBluE2dkesF4loYman3wZiT/iOtlRUoAFJbGjrENJVlRMzxnKwFanCNRjFwkD6lKgllb7INlam/Qdnd1cf6JcWOEr/BanSMwVYHbRVZpIkYSSMvVYAcmBoFM426PwjmH/dNziWsT7qdcdTwVINYIUECOmHw6On5IWOlV4TeBwc69EGMPiGqpXRg4 - -cn7qgEaizPw6UYqsVvDCOdpCg9ZMhBRcWAhRQVHSRUrgio+7QSQgZrwfZO7KSGYzTwgZqtwn7QRwtLRY1VWm6MdWm7dfA4jaHGrE1V/oE1HjzHsRpDBaQHTc0oZnbIYl58c9GqRw6RDRwvjmgs3yLgsyuGXucFp9wuUk/NPxB/ZJY4fsGKBLQWMgXdInqyWUXLDQMiKR5MCmRlCClL7JulTDC+BRMeICYAP4KkADgAHkfNCSATQACfOAAMBeoCys - -ssp6QTqihOC/ydk5iAGIQpg/8OTzPwYmYAlIjElHCmbx/VXSGsvenjkxdHPzTRF0FGcmCE23oWBeLHropHFJY6+kOsiSl304BaY449H8/WEBtAaa77wH+KGUha54gInGuIvEBhorVEDQzGJAMnWZFtIwkeGWBzLEAhbM4tuKxs8anPkiymFU8GmC4k1yeE9JESNDdkzs/hnCdJgyKMvdkhhXT7fU6KlNJJRlCVFm56fOUSls1BqLEyCypsuIndsn - -My7E+jjxswyY7E9YlKghCo5suLRLE0cLQo+LbhMndkDmMQ5Cg+sLBgqvoVbeJkuaD4kAov0IuM1rKpI87mMPDhpS4vXA3XNblJMwEk+4oSotnRQ45vO3Gl4yaqTs2iDLcgfgabP7myaIz5EVbHDLInipi4j5YYwypGrEjxrdhOR6maAzYxErxk7nHIrnUhhQNEssFn2BtlErdHneVMDIc8oXH4868Ts81DoITQvRFfeGlPKciLF0BFCHSVdIMk65 - -nnMlkkKjGvB4tPkld4DiFqRHfBhWeS7GoB5BKXTjHbg3mkjMzO5XgudzmRZhz609Dy60n6qLEa8HW8iFmcRe/oSRKCH05WCE+k9pB+kr2rX4cy6NQYVHtiUyTq5P7LPJaTzX4YZ74nUjyHvNkqRSBk4xSCk5Ko5kpP4QXYrpAqz87fhxgIAkrQkNxwngg7r3g53nc5d8GIQovmLNf8GCRGnIoleHKW0wsRBdNyK+8+Lo/ZLnxt4czSEnSPkUIbnx - -t8sZ53UAsjT9YshpWXfh8nWGjvZBGhOchU4N0zllQU8tGSAZQDKAbADzAQBBVgZwCdRXAA3kM8hCAeraVoZgBvrUemQFEgmGEbBK9kmnnnqU2Td4VBJIs1sjwOJuhEhLhp7RYn7LA+xGZQnemjknLnGsqHEro3imzkkrm/DRrwWsndFIHPdEHomQkP0/ryZYmVnnotUJAuKPKklfj6R6X1n6hfa60kXQklnC8mDcrBYuDEbk5SKqa/ojX4xsiwkz - -c+BlAcFNloM4tmG/Zwn5snv4huIdkZiEnkYNTamX+DRkLE9GEnLEdm9iS6nQaPnlegvtnunP2HR/XokxgztlCLDomyNEdjrbJ/xC8iXn6NIQVztGhnrU4uAcCvylZIxhZvU4mHmfOWEo8pZGGIFZEwXchl8gsWF5stgUdTA7nDmcokyM8HxsMsL6nIoypUM3L5iCrGFd2do4HJOqnMM2hlAScXm7IsAD3UyJ4wrdxnhNEmErtaTr3FYnAXswGFe/ - -UmGrFIYo3U/wXH6QIUudO/kesbwXxC5kFIYrwVyCgnbl4mXmxaNDlxYEASPHGiH/SayC12YFlFcFHCoDA1LCkiriW3ArQ23GfHKSSyTDwa2BXVcSErwo3lYsyrRbuOXAvNWrRPNLoV93SO5prWWniOeWmTMiWlMXOVFMoxi6soxlFR0gpA2kE+EFRc45fMoFBaIS5lwvZYWSkVYV3M8ZQ5IKsGXw5F7jKIkl34XsCkk41H54bhzb4vZSMMGuBU7V - -hiF0w4Umoi4W2SVozSSJhi3CgulkqczmP2KznrHfgEYCQQFSjXfivuXHLBWHJDbCsfhB1dTGkIx94csyClucr74M0GSYmABoAcAZMC3AS9L6AQYCwgKJjnrDIAUABjJ78gurj04dAxjMKC5AuJahCQ6D7wdyB/MIRk+YokI1XOyihC+ikXzFqmdUct4c8F/n0zN/l+TE1mRYo+kCE4SmxY0rnn08rkVQjn5Vcpj5SEh4FoHermP0zcmwgM8BcfcV - -KfQea4f0lNpd7dUWqU18DIEC/CeI1AXBsy8mGE68nfHJ1G4C6NlTcggUtYogVwMoY7WUl67A8t67dxN4mVs88yoMi7lAw737yC2o5AkyRZMMukXei3Sp7cp8z+i7zGBihpHkNRlZ03EwW6PRL4RPTRm/sgFbTsgwUJDedkpi367LsmyqSMlwlYdYNwB4cQ5bLBwk/tMnkmdLHndHez7BMzJGJii8Io3RpEMCwMX7nPbY2ua6k+zFcTWCk1xsiyL7 - -mCpsQNsp8xmCjcJkgjJG1IptmuChsX+wkLbKQcdl3CGXGrIvQXbbadjH/UaYINUYnlPYIVMi8qrrQV0UVNInDriuFZSM2WFl42GkbTe5nrfbr6CdXr5woHYTn4Qb5wvS8UIoJ4g3ippoi5QrCT4KRDYoJJDPijFBvi4gHFzSlClzRSQ+GdwbwobRibfEwwbC4qBq81+xIcgUmf2KCUA0GCWR0+5mBUeCUf2RCWlCjOmmMLOn3w425CXWvCEcgHoU - -EOSEg9efDEcv7qVCuF6roLlBiOIzi4WdkUrYdfCwJKvnBouXm7cIKjkWcubEoP8XUoACXJ0z4STfROmnVCVAIRQxQVGdY5k0l25BIOBazHFLq4+OAQKPZMnFCezBOoI0pho8fmvfHMmN0/uZvvCMBZ0M8g3kJoCYAQgAM0A8gwAIQAHkPSVZ0We5ngTpa3YgybysgLj0wcRHzgLJbjcBF4tSRiCq9SdksEoOHT9LLlciu+Y8ip1r5cqckCiorlCi - -0+kiikQls/cUXI4u4Grk4B6yEmSkKi3fnpyD4G2I9UI9wDaSgyYPpRvcLjNrfUXnkw0XoCvjbDjWnH6UteBExaTJQMkynTc60WPcw0HK4sp4YgkgXnXfCotS5rC/ErwmQ0qcW0VJqnHFAC4tEmt6i81gmAleKoVbPqWI4Pqqcg7UHui5WBPsq2BHsjZbtSqODzSrByqC5ZZrsiVarSl9mLVWd6pzFjGbKFjyldNQwEkh3m85JCEolJFl4qFdYe8l - -nJe8rWnsWO3mG07Zra0p6XWczrRVwjuGqQ5IFI6JFC5SFGnNkFLo/qVmCqOVMRbrSAmhXZzmT8uEVaSsmiVAM8j0APoBVgBmijALOi+cxIDsgeID5oAX7sgYgBTgF4zhc8Xrv7Iil1kaYmmyFZIzGcdY2RFKzJeeKkBYx0CgVX07uxLgmhY6168E7imhSr/nFcr1qXAhcnCUgAWMfIAXSE2UXOspKWus2EBcYSAW71e4hb4CQJt+Drmq0KN51pUF - -w6hcEHeInSnDck0WIoLuGyfKqWTcuTIAYtEFlI2Hlc4uYrBi1qX//GMWUPOWy2Cm0X7syqmX+RHlzxOMVf7Fx5xI7VwuyvYmSHcDn8+CoF2YIhCyMTEYI08JCYSkDhwQoSySwT3DPSaKBDkfLjUIJTHR8QGVJYfeA7dMzo/wmJargZpCiYFHRLKWumQyifmwEqfnwi8tFJoKcD6gLoCqEUYCSAXABqEBmibgKJjc0A8i4AANCwgccnTRIkUH8vED - -JAb47fMn9LcAFiCoJTqie4x1jJeaJkZLG4azS3YGzo9ikP3XLnsyw+mFcrmXhSn/l4bP/nRSsQkSilHEJnaUUsfEAXSUhrmNQsYhSyuEYyyhrCfIFSlMbFEbdc1WhMlOLDyys8laU0ZZGiyrEjQvXGVSz8rQM0JFWisElWEjkhvEp2X+sHbmWUhbnwGK2WFi2yn4MlcVd6QIm2PKBXwVLrEzvQr7GrCvHjKG9CulOGhIoDgHCAppkU5Fpm6LXsA+ - -IexTmLC8HDGcYy2wWWlLw1TEmeTAZssmEUaSouWwyioBsAFoC3AM8gxXNQh7AM8CVoLoAWYnwBloe9bMAG5iEilsmOYyRHZ3fXHGqVWgZ4gCjfKHeh/QZLx5JRBhLaG3EV1Yn4EYuASL09LnZc7QKMzXkUf8s1m5jC+kXA4Qn6I//m2s4jb2sqUXACkWWGDRrlCK1KWgxSB4ZxZ1THSExjesiN4hgLrn3okMDs1RYh7Ta+pBs7Skhs3SlWhG+g24 - -HzETcgh41S7+VNPX+XY8/YnufLdmRhCHngY3N6WC5KAlitwW9s8VYbUJnl9xbamQoqRbfnQ+QaraVYehE1qBSMUGfhDhAaICxA0PQVjQ7drhrUhdp0QJRUTadJZlsdRVTvGRauVVpU3HRmm24wd6TvNLmd2H2VE9KBDyoFJApdC7hgCfQFfAbhB1fQTgtSSpL4kotb7M8jlHM826h3VJAlpMriiog1CSoC4RQc8iW+y4BD8cUXIE+FiyaJV1iJol - -lBRRQOpqYndbQiotH0KmGXOQiADsgFoDOAUYBkQdkD5oU4AI8ANBNANQhFoCkCSAZgA1QQmVQfNERH4QpAZZSRV10dqAqMN1COS1XqYYyChX/GZxQbRpVtvDgkjk7kU6Kh+a+TIKUaIkKWLy81nryy1m8yoSk2spcl2syUVCymUVmI0WUHyzLGEEiWaOKz4GQQciyhwT6BTeJa4CfWbxioOTn/0g0VBK5+UgM1+Wusd+UkjaJUNncJF/EocWzc0L - -Dvk/WHAKmyoNIugWaMt9n9/TsTVix5EeCpGGpYPJV3/XwXkdWWAzi/oqX3cFbywvwGZVCzqLTaaYPjUpUsgvsKMUzyzVvWkSMUpAhd/F7bh2D4AA7ShCDKnFUe1O9mW4ANXkIINXgrVcSfbUNUJVMZVA0ZkmTGCaD38G57HcBubI1L6DVrFpSqoQ/D8wKNZvHfnz2ArOZOAoIyTKNY5hGCIF+dOXABdHNbNPatVwCYHJSSyQEKAo+BeGMxiqjAhU - -PyA/E9DUgjVSb0bIEU1AuWX0oM8xuKrwH+jv0h5XUKqEXrY9lmvK1zmMKiQBAhRCnxAG8hbAcWRGS0YCnALoHXYw4AcAAJZQqre5hCeCEvSepUIqvJJUgG75EUpVmgbECRude/la9R7ZwTBMbaK8HFzyg+l2vTmUUqxHG6I6lVryn9Uby2KUrkoWZrkuUVgC2Slwhd4Gcq9KXwjSnwQwCX6f0q+XeKkTCZMPyL+KgBnoPM0I7XE0WzsM0WQM/WV5 - -tQ2XAYu2VuyxHyPciaUkagUTmy7N54XE2HZDDWwYMgBUeaTt4wKkYQabLcWEwzJUxKUMXzU+Ik9smolbUOokO/dsUUaI8L9UrLZu/WikBw/4oJHUaVZ/Dc4uKLDoSwtgljSrMxOCiVaMixyXmM6hn1ioQwFK7TVKC6sWL2PqlzTCTVwkCjWJ/Tf6OzCzUiC5NwYM01yTbJsE4M+RRmM6vq1UrgVvtA8UikE1WOPagXvs7JXFvZm5catJqeiiIU2g - -m2z0ccRl6M3TXLE5QWhPXewmMsAwcaj2Uxag6A8ahql64cJkOa9G7aqvzW6q5WCaa6RoGa5AxGa4UFaLSpV1XIbJXsoRRpQpv747Zz4SPP7bequkLk/KrWla9hBPq+MZ+q3LUtsfLU1amkKVg31VZKyeAEM/zXsIZrVVg7rUw0vaXDYrIWyQe1LEie5rSOIAl2oXyRlfBlCMIPAj2ie+Sk9HUkkTEr6tkZ5j1bNeDIqZnzycYlDs+CBlsxIPbvJE - -Hpgg5vFPPNvH3aqqQzYi7WtYK7Vr4BGiGpKgw4lCnZ0nUxw9SRuJMWJ6A2lWRyPHbPCZCPPDcQsKy+3HZlcoljmYQsS6yXW5BIgf7SYslWmJRcWg5wjjHKSfDjI9MpB5AzCR465iLdC8Tj+1KThLahWniiPriLw8fGGoeeGrwjHX1C8nWXVSnXyo4SEelZoW/HUZpKos3Di0qYWyotlHKSRHUyXR7LItVvAmcrUJtw7rSNKLmmI1UhxfVB6qLNSn - -J0eINF13CTkv9fGr6827KjwIiLI6lgEMAuvBQBclkVKU+4XMlFnpILUYssmhXPKmAmwihdXvKmACGgKsD4AfNA1AXtDc0LOhQARIAtAQD7xAWHjWAQ9WkE8JJWAu3zKs+GIEgO2mU8WyAMYxgkAEh9Vt1NWHmw3sqcEmeVvq9/l8Er9WGKsUUCUq1l8y2lWiU3dGSE6xXMq2xWNQ10ZQa/cpQLIFwlMKEhwCsUyFY4Ah21TqEYa8rESq0NmhKpbS - -65ctpM4qJX4C+VVxstVWFUpz5D6qhZvc/z6HJRJmKqjhpli6am+i+BV4Y+oleavnEjCW2WUCvIqHEz7kywxrUYgu6mey4bVLtTfVXc3mEow1sUPUisWuykWFmq1R5saywWSNEIU5agGlAK2w7I4F87NKuwmtFFIVw8oRTDShIVWPOBVMwQrWhCuz6TsM+y2a+cL8aq6mn6sP7bI/GH9nKLV3CdTUokLVXbE0f5fk+Nl0ykImuEpzWcjaBXj6nrG+ - -UzBnA0jxnta8ylJQW2WPcig2IKqXnIKrIXikUFBcOY6Z4a844S6CfDq46DzpyjiJCoSjmrffFFacQlGO3OoXO3KvHEQ8lH0XHXlewPXkBRYFw5oyKKg9YSXlGPSzrHC47mGE9zXHCuYEoHqDVzUml5zE0F3Ne4WN4HklQkLXmGWai4U6sSGq0hpA7dOyAKcvMj8YyjwcOCHKp7aMhRA1y4/Zd7I7CA0hMsAOrQEbUrU+XkqbSaGR0tX7VJSCZ77v - -ObiclUXT+GvUp1dEbponLLpTaVhyQnRw3BA5ZV4k/shrK8EmxOY9hgONvC8IUghRSJYK4JW7T7NaqLW6mdVZks3LQyh3X5kiAC0DPzl7AQsn6AXAA8AZMBVgWEBNAKsBmASoBQAegA6TIglj0zuU+Kg+J5WYMiX66KGqQOeDXvbhLyK6ilimXVnUTYvFYqxEy7AT4CjQRFBNi1il+nNPXzo99XHAz9Xkq7PX8UqlUmK61lmKulUWKhlXF64WWl69 - -paZY0tTHy6vXCYJiGtkU8lOIvEAIa5DVhQcUTxGfrlCZYqXYasNkLOPrh3kxrF1TZrE/y5VW2ipjUvkntrr67nFKqsfUIK6jGawicUu48m7MazNmsa+9nVaz8nYGrCowKLm5A0osWsVFgWs3OLXCPb4rRE6oleNT9h+bA/UUSQk3TEyDo8MznmyM0g3FwGrLhbRYou4GL5cmvrbdilVUC4kJmsm666AVaSraHBk0oMjlYTi5LV8KEY6eC2fV+Qfw - -mlUxfVDxapGKmqfXRik9nFiYhllUE7lhCgIXxi1A3ZfbsKua8FFSaicW2qtw5sm1J4E3WXTTA5DGGw5PUXhFDjgKEp66QWrV47KjEHhbVa5PB7axjJ7bd1Vf7X6vcWT03Hb3xH03pJOoK3eF0gb0vVlb0g4m5siv4+So6liuTm7Mm6GAVK2q7fsmVz83Ik3MrEUEVa3M27SpBVzvFBX/8B6jlWeragEe7RSRD+yyRPZmKQ9uGy676Xak4nKS5Tsh - -k5RiJg4JcAsRAZ6aiiu5MRPs2ltHE7X4e0mvSFhjiCXbRddOzm9k47S+k8/B+87Hzu1elL+ktbQQ5a7TVdHVG1YqqRMnWO67SX9xf4M+CXPU54zGaiK5weF7duF1DGwaiKfdLqSbGqdKhGbvkXEjNbu7Rzj19evlM7OBw9dRBwQ5DbQEhfHynwhbR/wwsgAI4C2uRCbot4YuiP0JBzSNaC1oOITFacETEbvMTy2XFFpk+YTZTpRBFvuZBHp7AeyW - -7EZA84G3aJGiE6zaKE7pq+MniSa6hJk0ghFQV6Q8IXCZfINSX2Q2/JbYj77W5ctF7APoAXAZQBDzZQDKTHoCVAfQB7APABQANgDc0LYBsAC4BB6pH7a9aIxJck2SzoRriEeViCZIYo0zyD3ybhWjrasqkLywr3EEfaeW702eUZ6jmWHG4KbHG4UW/8qwL8y8xVVQqxU3G6sYsq+UXiyp9KV62EZPG+cBwobOLahJDXai2MCgECLwSkh+WBKp+UAm - -q8lAm4MhZkUE2fyprGnXOqULsxE31S/+Vy43X4NtdbnpYJcaxEoqkg0yeWfeNU2dYvDFfclJXxbYXERMh2WBi9E3dhIwUeaCzUea966XFDf4zFR2ZtbRcWOgirLP66GAjUyKGBi4DnWq6vq2y7Trx6x2aYG4amyazP40g0xKhM9I5NW64qCC+wURzTqmDS3x5H+R82VubAoC3HbZDwNa0M4Gq1kNAqlpCso5U8g8IHWuU37WkTWGaTqV9xA60JKt - -sUbWgs3zcs5EXW0ZFgNBNXuIL7ApIEwHzEDW5/AVEAcwy5StcG+Eck1iHvdHpmky+KIqo1i4prZOGcXei4fHPlE9yzVGv4Bs17Kus1Sk2HorM67Ixw8O7xw4rQ7Kti7Mc7ZW9/WTFNmlF6Uoy7Kykp7ow9ZZlXZNCUJkdG002ym1UXFnWsMCw3i61Fqmc5LRqcgTmac5CFq0iBzzKZg2Z3fm2PozWlwleuEtwmZUHKiHW54SyQaRYIG/W9LQyoAG - -2ROX6iNcf5AdkPAgMQcaD86M6RJcFi0bYti25krln7kGABVgU4DYATAD0AHgBsAJoDo8C8BTgOACDAQ0BGwUYDBQ4RX6TaFVfqRzgLEAt4Iqinim4RiDCoQhnJeOqAAqCOiKBMO1c1Qy1sU4y3p6vRWZ68y18UojJWW1eU2WgvXiEovXiUneWmIpy1l6zLHmndy2QLKB6vgG0gLEPlUeKtwiFYmZCUgH3YU4za5t68K3GiyK3NcDZS6yj+VyqiE2 - -xKqE0IWcO0m4cO3UG1PC0GlrEQix5XPfSo1Cxe3UvvMtH7kPoAM0ZwCVoZQBqEfNDMAUgAwAFhV9APoABoDgC1AC4AtAANDQjD20frKD7oBDGbwZZS3QgSBw5KbPCtsYmYoY3gUKInWjaW2Fb2+V9W7G0y0Lyi3pLyk+kryga62Wi432WxlW7ymxV3G2Sl/OR40l2/3zeAgsR3oxWbUtBAVFCaDwl7N42t6tAVYaiK2d61KRUQ/DV96y0UD6wgXJ - -W9K3Js4U2kamc7JIzMV7nZJFnW9VgtnJIXUjL2YI3d1zLS6DTmmn86dW+aL8CoC7qmxnieCjh1wY5a1DIucEnLHolcOpzJ5a+Bp7Ixh2TEyJnYdGR1pZCq1/Ikq2fhcJk5ioWzyOyxmTZFfWZamR3ZWkfV83DR0oNGjXkKHR0G44g3uNNLY/iIR6LSxwX5E9drDi5tajisJIHWw/wtimA19xatnwKeq19xeRHVUVh1DsS1VPmLx1H/FenatBh0yC - -sgxtW4FEIG3sSROz5FXEyHm9Uo8IjTPcU48/vqFPK8KezEvFpOw9gydZuqkiFA1vCfq0ZiaJ1adWap2ESk0hiwRlhi1Yq8gv84RZaa2HyMDZGwyp0jigMU1Ou9WFgyx0Um6x2AiJp0um9KnxO1JXakLRYbI0MxXWt4QmtUZ2p4iBX9FSZ24w8BX4mgr40G8s10G+aBDKGyK0wNfFNNdpmsaTpkO1GDmKjPCUmGtFmo6h5AxkJnWGWQXKY9Z8Ww2j - -dzrg6hzDIOS5cc/prd4KW2Z3QeGICRFoqc/ml3uYeF80zO5pcBhzTfXSKAuhuFvOtHpsYlKJ5wwyzostHXnOyhUwuhnVtCi50buK53C5NeC3OtHqT4Q5CAgNTyXAfnVbwwXUzC05p/HC5rKoueEKXZF0Iu1F2K0mnXG85SSwus530u+i5TM8YVC6g5VGG+b5dcaSQMoOzBw0b8VA6TKBYwCFC+0vFEHVDTCKCfbC/4d7pA2liHAOHOmfi/ZCYoVl - -Aa3NI2H4DI2TqslCNGJpW7KF4WMMfmCaGwxQSOC1CjQE7XQQ7qBkqI2R94GGi7TOwG7HLY6EWPIy2qZFT54ZOH1DHZ3RGUGT7OxlpHHKiDBWUtW6ecGDfQI2Stag21zqo22aS95UIASQBVgSoDStfNBRMW4DJgUJg9AigBoyloCfK4lUDG/fntojJgYSdphSJFZamyDyzhQ6brgEIdGh2ywpDkrY3MynY3cE/en7Ggrlf279VGK39WnG/PXnGwvW - -AC641MqvO2gOhUVDeCB3OK+GKaLTfB95RvVtNSEyj5MVVhW9B3N2zB3L9SNl6y3B0Gy0ykJWiJF+2sg2Lc62VMYo8WwAoc2Ynfp4U8Qc2j26dVPK2dV0KiN0MK95VsCTQAM0HoDYAV8j0ASyC3ACgAgq9kDsgLoAXpZrm2Sk+03xasQlDOp1qvT2SfAbdyogVExx6+w5x4CmbyIpmVkFe+7x2klV8iv2JBTZO2T1X+1lc440CyyxVAO3O0Y45y3g - -ahUXu2hxVV6yB0oakOB2oi+WEHKN6r4ydZ/GlQrt6kJWz5SkBaQW2SRKtN54Oru039SjXd2gc62ExK0KNQnmqfVbnImkKmEGqq1OMijUSeoSqDHeE2W2cJkwm/Coo3JU0DQRQXIGRKnZI+mFKHNT09SpQ7pfPa3qsLLX9i+0y1UnzW0VMq3jE/mECevbLpaltn5Wk2Wr8Ap0dW+fWF2LBlVInh1GqxT3KmhU2ee/nkKMz9ruy+U2dWlT2Rgvs4z8 - -Jz03tDk0wGDT0qC5gzOgnMGsKecUHhNT1QYvuIpeucVQA3d0za0End2//hsQQZy4K8QGASu8UgS88UKWEQ2VIWMnS65SHyQg5qVYQ7o53E5pDcK7pU5EfYolM96PUU2kndT/GbNd0kiRKFnu8k8H6WM8Gvg7nK/VJ3k6XBd7FRXr3k5W3nndMCEder6BdepKxE1TXWk1ZHLFQVHKwBBLrCY2oaoW9w2BUTw3AQ9RhZ83rhCOOkqTcaMjcIVFEBGk - -PnXuEHU6MMHU9mi6r9m493f9a0lT7WrooTXKxJcTiaFWFixKQ2bRjcP8zV8MN2Xu6MrXu2o1bAa9aqyLYD0AVxgghQ4CGgPoB7AUYDc0HgCVocCCyW38jLQDGY6bKgkZtQkDbQBySkA2RFzGkTDMO5yaMiXlVioeLU1u+D3ZQ9+0J2sy3Nuo40p2iKXWWoUKduzO3du7O0l6vt2pnTLGMDDlWke4d0peT6TtaAVXrEKN4IeFw3TuwqXiqpu0vyrA - -VH4Nj296jj2ru2qWQmnj3ceuT2b5LEEue0fWRi3hnEaopVVFDd2Ims2FagjK2O4MKkOkF+Lq0xsHEOtRkqiAkTcSxbRlKzdku+7dkpQSjEf4DE0c4pJU1hTu4fsGcEEG232hfan1T4Wn2Umm32bSmsJ0QGn1Z4135vWtZA9wxiwjwssiAICsgOG+bQPa6PafCdvFcpN1AQwbCzNINFQApcFJwpT3CZIRFKksjtZKIHW2IpWmBuwMYw4pRFL7oNyZ - -BIWCVKpDaSUQS9ABUXFI2nfSSUgP5JW60Mqss23XZkq91vK2o0XAA8htAfND6AUYCkAM8A3kTQBYgHoAHkU4CNANSiwgBmjY+0Cjy9Gzh8aXAqhCQRIzcR5CzhYmbxmxY3o/MdHkY+jEPQZ/mp6uO1M+pD36KrPUWW9n0Ye0UVYeuy1iU7eX8+/D3522SlKhIu1OKzvJmURY1ecevUiYfj7R6IxiI6UrGPy+N7BKzWWRWmkU4CnB0a+wjVru7X3x - -sxaFCe6wkUOpMINShfXF9LYkTs9Jm5M6Z2LOgdniOm9S3WqsxoGlUR6m/CoeOxtmmmpxm4fY8JLiklbZNHpUbLfTWpVWp2ZeuIoxNYp4bixfq6slfop4rMwHW0Ha97XyUVbFnk0m+331gt+Jhiffo0BtqniIfH64qG1BCBt0UymyharGmyKMWbDF9vZnmXciR3lUCbVDawMWvFejgVgn1WfjSXlD2lZ0j2kkK04YkknC9WAbejKKF3W3ZxrXZTHS - -dNZTpc+VFQVu112+Z5GMWeAzIDnzFrJ2oNrbpx1rRpB9tV2pTpK/EpEm/HaOaiJhogBApEm82o0p0C/MsmQM+bRDotWRxuQeRxKsDSxfJPjgnmF86jrEiLtafnQdSXiz3JeBih6eWgA5QGVICIDz8urFDMsif026i90vKmf01Gme3kBYkBQAZMAnkFfnOAfACYAC4BtACQjOAIQBqUGS2/usYG54esHdgRIzkzZS0DwI5CsuTETXWWmW2Bk2SKBM - -30JPGO3bGt/31uvY2Tk01lf+tD13RTmZn0qKUAakSk8+wWU9u4B23GwX2yU4GIQBrlXPGttXQ5fxX5Yj5kIOr3iUIVKRq/NWX6EjWXYLLAXnMmVVHXWK3gm+K0EB0fV2isgMpWrJnNFIP3XcwL20anpHjgp6G5ihak6quwOIoirbhMpgUjCLLUGepKBZavx0/s5fXkceWBWamT2WC3gPJO4rVm4y6Ed9JJ2r04rXz0IoqD2Sw6y3Eh39SiSA+PRf - -wKhxdwXWo33GemaVFWt+Bme3dQxfLkOvsxgNn2fLZ/7f7m9auwMyhlQIFbYEnZeuGneBoO24+LbR280mTuWbuCky7yyBBgu4YlbHzfm7roIOL+kLaSAaC1BI3/mnKJgWyTFG0tW2pWSMnhw7m0vVQTlwlFS4sMIuE+G4GilwsGhy6r8HM5GCGeXKLjZh/LrLvGGrDepb4hjPm1WGppCZCJXWmGqfDkOMGRs2nSyJw9i56RTgH7uNhiSjH0qXcG1C - -mLJQ24wR77lG890T2rlTVG6e2cW/chnkbmj0AZyCNy5wBRMZEBNAXACPpUYBsASQCnAQ0BvA7N0dy3N1myYkL8wFzE+nc/2P7LB3cOOhaVuxmXE/B30Ng8WEPB2t1PB1mWcUxt1kq1n3f+9D08y9t00q7n2byuKUgahKWgCgGKNQtOJDuqAPwxGPU34ViZqE18BeK/y2oAFNHgtQNkN2tB3ifZX0mik1C2hKNnVS/vVcejeSj67E3a/ah2UjSz0B - -M1HlakY0H2qhaFmwIs05m12HkuHSpKBnQlUR50U0R9FUbGtI50jRHx1g1+JBUbQNOVPJHsRx30ftQe3ekaXn2hv8UXVVm10Xd52/Or539wtjyW8/jxNeuu5zeyCEvSx6XzeqFqx4HTlwtEwylMS45qGztWWWCXBgoHW1lGsYMVG+umFy2f0zBioANAG8gNAKJiDAbACHAWoCkALOiFkwgBtAKJjbgQ0C4ALYDOAQ/3bhjpxKArK0H3ED1nBmkUXx - -QtWQALS29i8eUU+rXH0+vurPBj+0HGp8MfBjmaf3N8P/q1t2Aayrlby+4FAhgX2JTTLEEikj0eWsj1SQCExUesyiFY3qR6odDUzutAOMejAOYOhEBK8urFoRgjXELLX28ewh15I+NkUa+NlufUgXqeo0OkMeNn3Isf7bu8KpWtB61EGkk2N2Z62mOuaNLOzwP7Sis1KoaoU009+Hhw7TlHg90kkOO6qK6g4VwiPppfM2eFccbpRI03gGkEfLq+Sb - -W6stMH2TBiH0WR0cNk0SQB77NgCwgBtCkAVyAM0ayBqETcCDANoC3AaJh+RwyZIfOYyB4rEKNaGEALQEZDDQPehGtEDKU+4n5ZLWBKYiE2Rv2xKPM+z+0fDNn0vhr4ORS0xWUq7D1XGvn2OWkAP9u8WXr3cEMwa4TBEUwFD7wHKXwh2mzoiL4BwRiEGDQxqPoh5CMMwHvXtRld14BrqPcewgPZWkBXWixC5KdD/UimuA32isrCWq7CNTS8vrYR+M - -1yB2v7OUzd0OkHFVrcOBJSmqGkax0LSoxjETwTFUPe+2fSGxtJDgTHykR+udnmx9GP1NTIXCRkXUPZVpmgvZ7IWB7p5mk3Lroncc0zCGKCYWsKwNaD7JeGzEmmSDw0xGY72phirDiYvKLOhxiEF02PQICBiHFWA+DjjRZSfUOENUKsXzjBwcPhXdi2UIyyMSAR9JNAYJi7ABABTgCgDJgIwANANgIUAZQBCACeY2So+2X7Ugm/iS0ioEUxhX3E4N - -0QSHSjINsjeYq4OpamKN3B6YFwehKN3hht2vB/kVJ27/mvh+cnvh4mMABrO1AB8mNSUsDV/hzLHCFQCOiFKB0P0OyBS+s9CQR7qFKzczjqReX2oByEHAMjvXMewyCL4GK2d2vEPdRhdmJsnd1fEpdQl8ZgNie62PvxlRnbcnJl6Bp65ix9pHSQbRn0cCL27qW2UlOjzRr6pA0/mYLWDuFbIRfNqmnQnU0ikeWM6Bv+McigQNia0zW2MtqVkh4zXY - -J1aYGg3kOUcOa3URjqngGhcYbcn7y1EwPFG+oJ2kh02OC87IpSC/fqi3GpHAMWhOOahjV0a+RSUJ2ioxfcA2p++JCU8KAQpkYl36QyEq1MGPEWu5OkSuwFnFCn25Q2pOEcXSSLk217pY2rvBh3MrRCXXeGu3Kr0Nh7OlNhlOEPwhQzHK2ixucGjmEAujn3K9iGqRSQ3Q6zTgqoFMS000O4CXHRMR3ClGa4F7rUozRPS2/nSy2jF6fM6JwrCyCVgC - -ar7PwDASRka6O+RcXZ6kbANqZSEUDhsyNT2hoEFx9AANAGWJdAUJaGgJoh72/dW1AWEBZ0F8hz83ky7BluMavdSBRQb5QtjbIShCShIERGNh4JbaJyBQxjBIJQHWcJOkxRn6Akhf6ALGBVm2yTGPjxl4MRYlD0OvC1mp2v+0Z2z8PAa0a4/h/eUuWztSwgHcolR4u1i+yCgLEEu5TeQ8nE4qEh2QWQz0e/NpK+yVUjcqpC/YO+MYRh+PCx+mIPIK - -ukIDQ5T0kuJUvk25Pf4e5OpSQGit7OXBtKRLzvJ0fV6QKBAwBZ8VEMIV2CkF5PfJgVAURNLViCFqS37JWkfgRfzhxg1TZ8yPKQyPLb/kBGiXoWRxjaalwnatu6LOaJO5/E5DIqL46u2HgB7maeCoCPpNzfD5MxjGQyG8wqzxIA4DAXUaBJcBXCUQLC3sIU+DqYDqSfSIRjMp5+wMS27QqLRyDtQcbz5kAsihVLYQP0NMQZQAZrSQRyA641dBGyBW - -DlGQhBSpr4644OVMnfJqjqIDk50RAVAkwdVOYoTVMuwbVPQ4fKDHC/pMBcU4BGpmVNGLU1OVSMAA9J5mqP0IKjWpgSNRUISOQm9xAPMzKz2KbKyoIoKy4JcLgcprXZM1TGR67AoNVqYLZlIQZzopS+qNxF/xZB3NYpBzIPXwO813gwvYKaDPae7V5g57MlrgI4lCQIyl6bvcRjpQdvm4oJlBJYNnxeuy7ThSRixUgYZwwBB6N26+dUjhwVroAFFo - -IAYuOyTPoAjRLOiEASQBsAM8C4ALOgtAHoBKi8pNI/G8SuiQCibIFnJYhOARXaS44U5TS1jOf5O0yHIH7NcpBN0NRX9iOQQ54XwJ4qoy2v8ky3Yx5KO4x58OfB9KNzxzKM56v4MzJrn7fhw9ELJwj3iyreppSi9FpCNWCFkDETahAVXR6BSlWuoW0BK+CNFSud1IRoE3wFeSzmi9COceq5NYRrh5gpomA/JyFPZUW5NVkHZChOXBI3JscTgph5Mf - -Jwkjhx62CUQalA2ppDN4ZlDMQpx5MWPXFOOKN/DXoXDNfJqjMEZgfQUp8ixGyJQS8kAkP/JtcCApp5A5aQ4BvkxFPaMbPkEoAZ1KCHu4yMaDzvAEVgUpyByfsMrR6QyfUAp7PACZ/PBCZnhMspwVPspsZST69pCMssJAhyzTN8a9pTIKRAQk4R1OE4SjNvJr5BTCCNU9UU1PkpVqNqVbTN7iXTNTCddjEsfJBh0tMR30OwZwwCAQg624C+4MUS1f - -XC1LEMWAug3KRkHG82FkEzNeEjdPJ4+FSfiGMMMcUD041DeAjwcmC+4JLNtiFLMD+j5NnxF5r5Z/ThypULP1FYp6oFV5g0p0hUDGJpOWoY4BTCF+IQaMNgSwF5riIArDwwaIy9cL9YXAKYQd/H1WsII3DvS8qhIfLpBYnO76N0CMwaLMbQElD30tvRlA2QFMljQBzQGZkYwlYPkiop1cT2sHrNGXI2D9Z5NlpiQUFjkDSqQEcqhxAOlPaIfFq/YY - -TObsUTO9ccTPnbT4C4wPJBv4Kb5uEkTMotR7MmQ0LSxYV7MaUj7Mepg6hep3L0UcUS7TdKJKrreAHXaVNXXHF8R/JKEiyWa44fWzdjLYDW5wDTGbNId6V1IZ9x2QV5iK1cc29LSc1g5Z0lWlB71W3eBzDSWRgDSRaSnewRyElPPkgeb55U8dYL/PfYLjaIF7HBAF6c5r2DAvLGTsxFhixIC73ClR1HSlcUoyeEAjBk/nOvJXHIcnSPZ7PNXb/k4i - -KddWBx+h+c0WoKRN/YVFKyJ4qwna2vzPgoJC5yiGUD3cN1PR6YMvRioD0AIZBGAS23JgZWK1ANgC3AQYDRQDgBbAbACrDM9FNxy04kijhADSeiWIgRpBN0WdAjQGkLZkB1KPZq4Mi5d3A+ieF6OIzsrNsDWmKZ1EBc7UeMhYy2iDlcLFLoqeMpRmeMExzn1PRf+1dugENkx3t0UxkEMKi8cnJEUX1AR3gBLfOy5wBqj2CfZIy0qFTEohwBkQZk5P - -XkhFDcJC5PwZx8kEO8lPTaJqD21ZywEJYjObIOOBsQJtizZjpM400bOEkY7O8IbaCYCcvAdsaPNGSA9Bx587NrqeTMj5hZ46odfMZcbhg0lG9EMsPfM/YA/N8QYHN2IUHOrgzCQi0j2kTMuF4ElFqiz4C4SXvFHBy0JZCgEHzMtp6f3m59tOHpHgDzAJrm3ANf1RMcCAcAPoBnYnoCJAG9K4AIQCYZduUiKj0ZiRB07PIPKLQUIQ0Y/DKA8kTqAF - -JdriIx1QT5AmFPgCPrguRZyZTiWNNC5cHpBIeKPp51kIvDYKVvB6ePcy/PNp2rn0LxgB2ABvKN4e1eMEe9eOyU+zE0xr9NPMahBcIdxXgRs9AAZoIIOSFpChBOX5gZxX2d5q+OjjaiWmMPvOa+mJXXJufjHZ/JCnZqsjnZ6zPMZt5MURflNEidzNaIPTPI7JiAkZqfPPIHjQbrT6g3HRQTm/OjNFIBjNbANLLfpVOV0F/bVTnC/PJ5wLhH5g9DV8 - -VjRiwc7MfbJYiJ5YJCcRBLPbEszOwpiguOp6ItdIRIxxF3rBQRJIvkFyzOjhVTOBSM1DN7UIulxFeDJKXvFpK2PRXwIKS7QQ1Ok8mYzlGNhjFCe4Xqe5wudQXYVXAJwvqoFwu7CiQFOzXGllfP71r5r+Sz5+Wg40w0TUFm834oUaRDIW1PlpkJBHmFxq+F2gszF+IBbCKouyzJYhn0JYs0F6Yt7cNYudhAzOlQIFAv+QrgRM5Yt7FyyyL+fQsUoc - -klGFp34DFlvA8JT/jufcONjcbCydGCaQjawRyqodovnwslOS2ZDNmFmjNpK6VMXUO1C6MDyCj6yY0CpqwsqLP5OavfjNFFjsjYRxPMKZ+2ohFoiMoMjwvBETsColm0iZcejOXIbwuGrMs2rRug2IclCUoc7JA5C/YWCu6ozzC0b6LC+5lZGW1Q0SpJAeu7TxdMytPgmFzi1ppJCPC0qLmokwyUS6YxUEVUk7C0OmuiClCb57JDDYNGMUFiUs+p1g - -2/gVRyk+Xr4i7WqSn5R5KfM0TB0SXLh8Z7JDe0kV07SI6MSof5noeMaSKJ7JDIS3sAISnOnxGSQRHmICk+GK2ClwR6DFkJiBUTJUZI5olla27tI5whARC28U4e1aAYtSLboQE/sPj2lJNtptJOW5iQD6AZZOVAIQDpQBQgmnANCXkM8DkAUaJHy73PEiudCh510ogJLwwM1Yt3jQfAtcle1PFpZeniOTJiBWREDEusdHjZ2KzVkKbNt2oZMZ5sLE - -Tk0ZOutSj6/ByZOYeojIkx3KPxSl9NrxqjYC/YwZbxv3r6UdWmnDH1nf0q8rkIIyRgR9vOYaxCNd5qDN9kw2b8x3AOdRnQuIZyW5fZjwxTOJZDj5uwuT5pMiDQMYrrZwxIRfR6BTJAzOxFoxa4hLou/Fg7PdCl5GohJ/iKCJVMlYHwu7F0WD7FoLJ2Fx5LcJaEghZv1wBZ2SCXuahCBOlrDAEw7WXuNVNQVgLiBZ2CsMHAaAtZ12BtZyBBmMACtT - -FoCuCTAaAdOZBzpaYiCstAisaWS4v0FrCtlBnCtLQPCu7AKit+F1Yt9ilH5JLSFCrwMqAsVlYvAVhKnAIWnAKSSHRLgfzLQVxrS65TCvL8JfMb4RBAcSBLUIRR6ZBZuCuaaH4ujYD8u5IAEv0C8SvKVqSu7WkkJrcIimfUMOAz5wxZz5hbM/eCl43oD/aSoFEBzFk1OyoM4uikVxQUc8HBbQBIvgNSTOspxbDWF/aklNeKT6kbMgeVvXB2JDVOyp - -l2AX44uCkVyzOsuAMrBV6BQXFoiu0VuWM6iGKuBV15gOuGkJDZl+AjZ1FPOV1jTTGNyu/aNsVsphRiIIZ+znZ/KvnQfY51Ko4Cz2BwxmMIxbyOI81lYbCuuVpEDuV/x3op3GCoCDMjIh44qYwSc2cRfUiHZ302BIOaDgwA5m+RSyvPwNvCRRarptuWss9IJ7QScKm5WVuavNVuyukl5Z3kl+0P1mmSKo2p7reJqlG02n26su6YVyXJ2PYQuiwtmm - -uFdwiu4Tm0HJOkjRygDeloHNBLiYqc8Eqo86tEujprI2g6uE2hjko2wGtd4f6tMcuTFw20UmIBAVFd4GWkx3AiG0opMgbMmZnM2yTis6+sMHKmUYUQw/jyjRHpaKEnX9C6LrvaIqBCWDc0+h+XkHaUTG6XN2Pr2D0OnffAG84HNFceZsjzIMKSyoOKTgwcf1JJ6MtQy8yMW5jtMQAKJgHkTQDc0G8iVADzy1kowBngbmjYABmhZ0egCGgeYDc0cB - -15loY1zoJdOXuDiSiYUIzB5qEDLocKGTrbhIbVc+4gZOIAhOZ/BcVgFksijLyOEHrSJwiOgdlpgsdXbPNjJvstZRk423p9O0fhoDVPpuZNjlwQsTl2ECH21ZOQB7ePwBxEOUIKbzKzKCOO8WVCu2Q5MGEyDOd6yIzvKWDMdR8wn4O9d3mmW5MEIdkoXwSdU6+/mwmFsKQr52zkDSG8tLEY4uSkU4tsZpqQcZiExbbN8vqV1wt9FniAFFoFPFFyJT - -R52BwuV2XR6Ztut8ZtTPIlgECZVi8vmXalCwxx8tLEDbP3l2TP+VAFCzsSVAuSYK1GsG4saGDASeEKCIk4B4ispzHofJxP0PxZfNyV45CeZRKv+Fs4uhV9lPaOCMtaVum4bF+yhbFu5BQp7etkgdfB71sYpQIC/yeGu5C57MXnEwMoEWDOpUV1ivDI5gYyjYPytkV2KtBV4BuerE4vgNzezxGCSAHIOwib1voluZtlO+V/GB0QMGTovLXA4wJus9 - -Fz8vxHaTiVkOGBqQO4AlFnusRFvLjxHHBsLeHsZ7AShvhF5JR6umTV0N6rP4N7asrR2bXeBn/hSGM8WPizRi/dCoUWJhl1IunpYoutHrPO06O8c5CEFw5MNIlDS6fS1s1s0zO6ngksNNlcTmrevGrretyzK1T/oex1XMAEOc29dG2nwoO2lEOBjwB4xu518t8Hf1syKTe0w0s22i4t7H1Ov5g250k9RbCQMBCdDUPTf4xJNj2gtExlqYNAFhnpVg - -HqxRMV3KVoCeaVoVGVqyQ4ABoIQBtALoB9ANuXNkz21jAsKTJiXXJQIJRBxwLEIbSFmAS4cUaUoC0qRRn2i++2zigMY7X34a2uxgWGADiV+v34aHJN0R2uZ57ssu13svaIylUDlv/1DlxeO8+5eNl5gQugBhUXgfUQtQCrvJ94L9bPohWVzeXKXqkbYtKFjmMDc1QtMe9QuVcblBaFwWMHloaPwkIEtdmvjjGFpjN3Jw5vMWwHAyVxNGr50SvJst - -4snQFFIPxGzZeVnTPWFu7PF0e5t4lR5t1mDiJ3IYn2DPfECj6+pJoVmCtFIb4CgpmzOHNtDMpgn2CSkWGNCulhjXFh+IGFu4tn56FtIEQ7hwxhFvFBClNdQKpDUpqFMwtjFvwtr8Af1weuFF75Sa2nzY6Vy9ziidYtLYWuxMlJlCOpqeBtFjStJYUyvtJsYsWVquBPljIsvlm4ActpyzzZtOnYGA5uoZliAENv4uaVshIYZoghnghGjkZpzKst1w - -tqihcyyt0utjacutcNwSPD271MOGLXPQlUEQaly2rFpJB06lzIz7NbIyJaeSOxaUUu6MBiRKl2LRSl7ovUlyO7dUTTxclJm1aN5/o6Nr1ZieFvkWSHd5i7Kd0fPd/GvPF/GNxN/GAEENY3SMAbGlNZo9e8bj+NmmRxphBitdcGTWQk3OMvcH3h1UJvGjKJhO69kCyETAC1AM8DFgJoBwAZwBTgeYBtABAAHkNJt6TY+2ZNg4AtYRbTklGcRh6EPO - -gZfsiuOZdacpXzFcUOpsU+y5sr542kmQtPNg49/3MF0lWsF3PPsFm9PfBomO/B4ctfhv2t7y8csno2EDJTacumDUimeu9+nvG4EGFYvjO7K9mPqy9APcxrcuX57Zv7lzOv4hrEs19CfPj15XIEhg+tUoWSvXNqWP24EdvH14YvLRnVteBvVtrU8mlW3Pb7GoiLx6Gj4X/5qo181vNtffLYBZ0LhHfAM8AUABmhRMFVTOAZwBjAIwBTgIQDDp0GPf - -QQQK7k38AJpA64IqlRaDwXxB2DGBE38zApeZxLA+Zw4by6HWjyJY/Ox54KAMFydtYxj/2J2udvLy2eOLts43cF4vM4ewEP8F++mvpoQsKixsnV50qPrJoghhSX3iV2h1SaEzfDpaX7QJ1tEOYC7vP7Rm9sZ1zCN7N4uu51xjx4lDrQ6+/Zu7xuSAmdxIwemHEv4pxjMPtyrboNnyvwlufh3N0WCfNr4tkMn5vVrTEQpIBFNMQd4sPNrzuMms+urF - -nFOWoPFMvSHfOTF6itJV2YvYt4fOX597VBy7cTflxoumu6FAwNqutgN/ZUINUYvCtnRiktrzg5HaJD1bKZLt19TMj1zsKf1xiDf1v6iEZt9snZlFt1VmruwI0runJYMuD8dVtYZlWX1IidGwljBvCp0Vt12OVtl15iAWF7ytCp0NO7yHrtngiLwCwqtwM438CU8AhC11yFDX0SQvcZvlZhd/itBwCVB9m3zv/NyCvaV4FsSV4LNMSXbtXFruvEoK - -hvlFnfNAto6R+xwubZFpAgUvQRzaSGLv3FOLvn1reuNN0Y1717EQst7otSt9luiNTfBKS3IGDOKevpFhTz8t+KsykD4B6CIZb0wPHwEJNeuGFpYhdVk+NACakrbe+3BPt0jMvt6JrdV3HtYpou5umQnsOF68vatz1O6tsHM+IHfA/8d1HlzR0sUkkqAHoKwxmGblC6RnlFqonVEw1ll1jCi6tHV8zgnVr1v0XOGv4QkYXKSG5oiQlxviQnXVlMGe - -D669468o9VGC9lF4KRASCuJ7G0eJ3G3l8ofbzNNXWsWK6WLIG6V7uT+GHuXMicck6Mzw2RsbuYnV9m0nV7uc6gfNXSEDMseHAtVRto9bSHqur5rBAzHMPUbHNIDDBiFIOWj+OTNtRloJu811JPbY9JP7o9kCb2o0C1AffZTgdoBVgVe1qEA8gxum8jFR0oAoFjJstx/erWwy3U9QdrgFN3H0mA66jP9X5TToHaJDt2wv2US8vUoQnoTtlmWdltmU - -fqpt2Xp1KM29ATuExoTvLtgZsl5oZv5R8vOFR2Sn8IkX1yd2vNkwNZKp5/LE7J6+WoAfRiswGtTLN89tcx7Ttbl32B6d8Ta7Ni2XQmuxTFpMbuatibuOdpvt2rInuOFy/sJAMes39mnv/tunuAdsHMqaKXNgEDYJWrVFK1SaRAOpKPsmR5JOx92Mvx9+MvoAZwCVALnpVgFoCYgfQDMAUAuDeG8i1ADoGHAZMDIF9JtNtluO45Viz6MSUY9wfqtl - -l331RSM+CSOA9tEhPSCi6TWAkJYKy2yRQKsdilDwvR5JmlTjsd9p2tZ5lgs553vt55hduD9jt3Cd/4Oid0vPj9kZuUxpZONxkOsQhvIR91jtaVRs9CwOo+O54KMjkXM+OhWhqPHJtQtP1I466MfftEPO9uPxu/tU9q8skl7OsQt8VuEZoiB2d6LtyZpLvBFpiznl5vvPt2/urqS+t2phYvypwHCGD1vvGDoG4FdzpNm2ThCRdokuRkdMIHd/bjLV - -nAj3Kp1MDdywtDdm2ADmZVu9F2LW+D8YvfU++v8pHoOOp2BiopX5uUU/zsomywfElp34+d1oTHdk5uvJyFsgl4HvvlluvufDHstd87OoIYN2HwRaCt4OC5BFjEt2DquCf1jyzpYM7iKt987tDpPqBcUcK8tuHvGZmBsz1w/gPlrocS7cxsb11KT2V8KuLF1hlVFuBItDyVCvdsgtDwvIuqVhIefl+quAIjGQaWdTAt7J2bFDv5uj4A4e0+vl3UTF - -nBFD7IdHdy4e09kHP09+/Mqiq27d3LaN13Tp4GNumu3dSFlu8x7qIsgEdiRaFmrdcb1W8xxvC24TkC2sW2gOGEei2vbrAj13mgjwb3Y+UC0SY2OOS1IiIK1YNZieYc3lRgc2KlCoYgIk96fapXKCleNvak1E5i6EMNq5e70SkSnNBAkC1hhzEeAIvAhZne0T+p2mQGGvOWm5nNsuLOMsC1mABGAOJhFoKcD6AHmiaAKAAFlHgC1ATxYHkYgD4ASd - -Oq1rcPbAGKHPIVY50s2psH3QpBkId+TlIaGjEzNEv75pTO7prXqNwLqQuSBBjP2B2v+S1q5Tt52scD12vdN/ssc+zguF56ZM+1m+k1cp1mjN8WVcAHduHlR6h0wA9v5Y7QoLXQDPva90QFS8+Ocx9QfrNzQcHSAEHt22VWXJgfNZ1gCpit6jOEZ4uvlDswdvN3rQnlthijZ7OBNSXFsAne/BvkuoeeY1FuluDfMn5kZAHF2/Q1j6sR1jqKvdVyoG - -GQL9xlD/DPvJ+qpEpxLCYoCY4I9w+jZj9eAGk0LRdZi7V/YFLpVIALvvNjzt6CC+DiID4AMobhBDD8dULj/SRLj9Upmd0hDrjmPWtYLcfPD2/OvD0UaW1VjSNqlLN00+r2F8qEe39XFTm91FlDcOFnTIBFk/+CEdyRvIxBkexShkCis0qWJwPUYRypiUTDQdye0gDji0C19f1tABUBNAKAAcADgSJAItCVAF0aVAfNBVgSQCuAUGM3oXiDtYCkih - -6OGgFNj8BrIWphbIJixkDzApI9vjhcIVHtaKRvv39xccfFvccsDut3DJpKM991D3cD+HE/B92srt2ZOpY0DUB1zdtYHIMfQLM7Tfo7GwIBoVV0nfcmb91EMXtnfvJ135t8x5d17l/TsIZoaN5jvsfnNox2mKQYetYS5Am4cce/J0nkcRTQ0LGP5DGT0wc5j/Rrm1ugnNrVHq6KdzvMTyrgnd/2zUTxCt0T6TkIWEyfmF5DoIVlHsk4dezWT0wsVD - -xhunjpCb7u3HMPEfHNl3AKy9PdsRLQN7381LBxGSOkfNPdNiYeOws+A7XKWQlMiLwKsTgTocOwdoUeHpO9ZVgPzkXAANCHAM8gghItBGALoCLgUgYxMbduqjtpyjcJJSiwWRzMUupOZLOICfpZLgYCXVLk+ssdaoU0cp580dQbZstJTjCaqS68MM+tRHnpzifjJnpvujqZPe1nKOrtwSfzJjduNcm7ETN6WVmDKptRQT42KzCMdaihQeNV8KQoO+ - -qMXxobmXt5SfTbHQeKfQ/t6T9DM2T10R5+nu15scceTGQbjOTh/sOF/ocWFP6cFrbkjd15hvi4b8C9jljP/T6LONp/73wvOXDYRoiA1cbhIDGfnTuT50U51qzskwguvQgJqRjGaeD9o7wecMgksaQTwsZt1ccJACbOtlvrCjj28wBDwktUzglPsIGaeTZhmc35qKdhwp5SeAsNGyVsKwm3NrRecKjnNaFFoKkzm3y6g6Mo1KsPC28sPyc1GpwvY0 - -tfrU0uAyx6a65cGS9SKFDFT3OPG26fn7kFYZVk6H6SAWyN6ASgYcAM8A8AEYBVoSDUbh1AsGTDWgOGX1OIoJLDET7OCdGJJaoDevsVN9LvoiTLtic5Y1P2xidFj5FNnlhadjxzvv3hyeMuj4+kTJ9aeDl5rwj9wQdj98Tt1c4SeNc+H6HTk+UUYYRgYiTqH5Y6Sf6hX5SMQAnHyTjvMbljQf+UbTyLQF6dTQvQe6FkwdhTswdaToaNpFqshbIWeu - -5jk/uSCdLT4z7GehDZIfctyly4zvufH6TSDsuDiID4rxCLQHfNX9pFO9cFFOTz3b7kc46S/1ojP3Z77OnlhcDczu/Oije2muo+VCPIVri4SzXkLfZeGnOskLMu/ab2SKhD34lBFQ0KiC3aHW22LdrC6zlzlwd8tEM0f5UM0HgCg8SoBvgbmjU6KADKAbmjEAQ4DYAItAiF+2dF9pH6joLfCw0E6Dmt8juMiLYI7dZbRJrcn01UF+sA94Z6N9hzNV - -lbNJHBVie3hqOcTxnsuhnOOdrT3/28T+9P8T32s7T/2v+jpZPgPbOeeWnqHnCjJD7x+AON6mr4gRzTuKT/janJmUHBUdX0IgsE0ZvTSdH95fguT4Ltmd7ScsZ0yfoGIeduoMztjTylN4tzqgRTwz7mT1AKdwyIe8Z5JYd1jTNMNsovi4Vhvw+KossQxltw0TYfRGXIu7ms4crziaCMS2yBiVs7tBZ8UQQztjtb5mKCMzkTShDiyf6LgGdfqcJDQk - -YbPTK21PzEFJA9wEoV/11/NOZvnMDzkKs8kERPpDpZvrWqkDwOLdwt+4rtIlilvLa/SthLnJA5VyJeJd8afJdv53P1/7u71lpuIt6qS3F2sc7484uAV8Hr4tcFvNzg1OTjyov0tjmA0dkGf6+pkg4tvNaaZZyCwz4EsfJhRcTL8ZfhT0KenNgseRTvecRkKV2GwDeBJowTirgH9QskZBy57dxBmkLZdLBbesRAzVIjkaZSxB9OaPeL5CSSJiVPKK - -NFk+G8ezKXks1pnTw4Sw51nz7l23dJ8eRdD8fCRdZoeXQsOXdJyw6oSvmkyM3vfL4bSS9wYXw1mXvS2poXg2/pne1Iy6Y2RowXwYyPc1mPsFyuPtQTw9L0AUYCYAVxgUAfFdp1L935oM8jiWjgA8ATQBu6gjttkxpB/UFHDRGZkumyC+A6iViLoV77EgZejvnZA86hOIdvjo5QmQiCDth6NptdlvLkztzgdcT+ds8Tpdt8T5Oekx1OeSUiTt7Txq - -GBvNhdke4vAsRaqT/pmj0UvL6D3y0DMrN/41rNpqPMe5KdkdhxhiLiaH3xjMf3tpufzLrpfHNwEufT/scfTqHJjz/OvJL3sQhzoLt4lNycytyzvur0zt5LoesUtoV22dpUSMsy/g2cbReaMlRddJzcVtJ1bDJKbFDdgdxf6cc7teLhh0hOAvobdrFJprpSs0tzBe3QbCuBiDaQh6AZdaiP2e/l5ouNdzyetQmJByNGNc2ywJd6LkVGVO9pQRSN9w - -gEZedyoVte6T36cBrvOtBrnbutLzIT4te4e9r8Id2Z1CvprzxdFr98RkIR7N3ylvCAIfNfoV0Ftmdw6BLVyatbTH4CSttluqt6GDuyQIeszopCCtubN+DpmAUDighUDn/A0D89fmVkVvXsl0SdQYV2YwH6A9rsIek4/tdYMGGPQoYvC/geeGmL3uuv4XkNLBTXA8ri4R3WxGfPzsJCqyjsc49zFN85Cte9iGaDvrmny1SPLu0QYOD13JDc34FDcy - -kHDcYphNL4bsDfwMafGZcM4DY93Dckb/Huk3R1DkbnIGUbgZfCJoTjnKD302o14U3C/OmFzaklv5w24qGU+fKjc+fa8+xNcQ+W30XZRPGJzF2BEXoU1aaWlQr6XuYo+5kB01Xm/Mo0sIvIKx5C/b61pSzkh921EHZxAQOo9JDOA8vYNyO77sSxb7w1Ci4QWjeEM2mUmrM425g2uKIIrob7cGsna2bn1PYoxF7abh+HrKOb74SvzesoALfHOxNUVM - -tS1VMh/g8xQAc81zFeQT/ONgD8mixiEJhodg8hGAA8hFoNoDA/BoCVoUgDsgUYDDWAjvH9ULq1+Dkk+YkPMYSbqhXe8izE5KPM+L0/ON90q6wx/YgnaThgkL09OIe6dvIerptULt0c0LmVd0LuVcjl59PrtjOeNQzDKydtZNz96TgcwO5mHtkTCyF/UINKeZDDcARfb9oRfd5tJCRk1MfYh61ewMwfMUZt1dDrmzseDwLsfN5ccfr25ubz4scop9 - -wsnr3EsOdu1fGd/ufVL59y1L76Dbjn1efFzdcFYRbBlV/DgwztBuDdlzszdwxmLr61P0guIsPrrltPr5ql4T7y5tkIPb+LvyBZDydffrqye2sBptvbt+t1LkdeEV8+vObR+j2iXGAnIB7TsuXGnVNiL79wwGdMTlFJuT/dc1DiTOjQaHR9GJRAM7xIfYiFwfzFrVMEblUhVD5usc7kz7Sp7ncOp3efnjtwy/4rHWTUkzh3hNY6HTZTfBou5cAQ2N - -ERGO7bSnPFnG3Mi6B+P+wJwoxOxwkxPC6tS7K952NyXBoW1hrnUYQo3f3Za6tccLgH/C9sM2t36hzBdOCJo+yjvz4cNlThnpnkBoCDAKcCnAKAB9AItCBczcDhNtQhs0KsB7AIIA7B9qdysgeCyQOQS9cUpDLEEPPy9WKtXi++S0yUO0MT2Re+rlccRzxgvtNsVfdbyheCin+0D9gvPzlfgePpn0c52xVfpz5hcC/IQDTXU5BxIT4QHkwrGfKcXS - -uKNbcJjk1cbNgCizNtqNqT8Rc4hyRc2r/QcT6izudLgjOvt71fnbvcez7nPcXbgefCJvCx7HbY4cjg5DBBeBzfJPsMxbjFfqSkJue7qYaHAfQBRMUYBdRUYAM0YgDVoIwCWSnoD5oNoCSAfNBDWUGOIoCdFcZ6JdWLYidTiSp45orsi0dkDJZMOxw7rhsvMdi+bRVpYJQNvpb57rjvsT5aePhrgdSrwSl3p//08FpeN8FuvcpnSfsKippxiT7wK0 - -oKLlnTjqGHxwVXFzm6h3fVcshW5QuzuyueJj6uet+VqM7bv9H95/beZj+h0jz51f+TyfdX9r7cL7w7f2r1jP58VsdnZmZctz8/M2D0fOH5q7cg1Leclj1FMD1oxfqZkFMyH0OeLz8OcJrtSuENzSuvt37cI78quNaT7fz7v1dP+ZHu0T4KcPyIfMVL2wepdmqCQHgKsUV0iDZd0BujGM4t2H1KtQH9KtOHoHcxDkHf91snhmHySVMsSw8MuNIcGZ - -ixCOphLZAzpMgXURYf2p5Yf7dhov+zpVOxQaHeFdjMSNDtJfhHu5BpHy9cVdslvGLlQ/KLsysw7+NchhI4suH04vs7ohvS2Co/41Vw+froJcRDgGeZiONfKO77usVvbtHjHBfvb5EB2L8zNwpyI8BHmidBH5CvI7/34GV+wtJkSet0V1xSICRis7uOydvUC2s0eK2uzH1rMLHl5olVv7eyIAHdzzutfmH4I8oVk60GyK25IzuDdmdw/z2TuutgIe - -o4knUxhELtJDRPSGdmLyIv1V9atNV4vAtVzJFtHi8JobjoNeAgPGEZzI/gRbI/nADhbbLiDfWFi4Sc71Jegnx+vgn8/6QnijcCDWE9hHhE8sbh2NAdzW6Aqfpm63aSRzKRhB7OkozObvpkAEJUkNei6XakgC14+CMPNdCmttdfb0olZKwm0gGgPSiCH28wlRb7o5B4uzF6guyW0RRobiKRzk98Y6bRsOQTF2G7P0UeKsgpG4SIsn8Mlsnlb0+tkm - -p+t4SII0Bu6Yp5u7Y+J2kWN+E55kRb0a0RU9cXCr28XWF5YozTcDNXze4oSwv8wcw+EktntHBjnsuZxvAYS9QzyuuOOQoBONAsmV3xxuiHWli1uDPNku5GQMg94P8fGMUZCAynqjBkSExdrfIPRb9Fd104AdH70AcC1ytCnrVWKeLStBaAegDYAQaBAL/um1APoCbxmPd3Y+Xp84Znsv8X8DET1SAUQ19eBAwA+qCEOcLz7efZCW4Nz73cdfNkHH - -4qgKVnpnjss+pA/8djgsbTqvfej6rm172rnYH0B6yU1gaTb0OszlqRV6WbeX5Yvy0KDsr6Qmcrvlz9ctQgzcvJ1rNpLuju3pjtg+2rrMdcHkEuPc+ecPZls97Ni89yH27eurwQ9HNsQ85j+wc7j5icPxJ89CHtKhL75v5i71/tvDhPZy+hbqcOdDyAX70kXuQwMQtb52mQ62CNKUFE2GmOXxnwJuJnuLfJn7FcM9RIBQASoCSAQyVRMKJhTgPYDl - -ks8DVttHjEATADvAN/d9JQMSx6JC6SiApuoL6GePJD7Qcr1QRNb/9eFVtrdDxg4+jHtHuwH1geF7+eUXpyVeDnngcV77dFDb7aeOsoScN72ED9GmftTbsOuJGPOdSFuZt5nRcuD5FqT4ea2mbnxu3Grx6emr8kI6y9j0j7vbfmzY88cH79tItxpcb1kluOd9uc5dho+2XxEshrohjVdu1f5j58/S2SrvD12+tLS48thzhfN2Xyo+jYXk3RDqbu6Z - -uZfuXmfcLU34/5Fgo/KHwHevsvYfStzfQdHvivWwT1e7qLncOV9wdotrYcWZpYIOaLy8FLvKt1QHo847j7cPt+gcx53xdY95sIFDtmeDYLQ+g9zottdpQ/eXp5vOd6bujVvsJOX8lsuX7bMe4judLPLbOTdl5vDdyvjDLqlNaLultZHx+sDXoq/AphK/aqpK9uF1hnC77K8X9jBoNj9jtnF1HfVkFxfHSNxfzR0qu7HpHcPF7hjJHmtfbH/Q97H8 - -68/lposI0JtdZesks8NoDuwpXzOxpOm2YSOXuc6tnU3VTFpp3TSM/+Evn/+MvnIQ9Rvw1TRvIQj6upIL6uWGo5AVh2w3/DlEfTNR/rU137TgvQxtABHEdukgXP4lc71M5tmKawAiKAeACnHm456r0a55hWUJyawXC2QmfC2SBRpThxr7LC1HU8KcPU87e5C17e0y6uRIMPYODKfjKn737XDEYnuvkfZtx6O5t4/dffWoB7qnqKVAJoB7AZgAXAQg - -AtAQYCBgH8ANAANBngfPvLzYglqjjUepSFvHsNQffFukkCEwVlIPUYo0+zxOSVN+68BzkDNtnzwfK5drcEqzrdOj8Vexz0vfxz/rdD92VfoHwZuYHic9PAl1lLJkekSD2mN5CQ4O/4eDfzboudFCXcl0vW6cK+2g/bnquePEXUW1ztOsCx29sGd6Rd1SnueYZ+VtMcepfNduFKeEYPBO3pwd03da9LDnK/rCSu9P9ihItrqdcY7mRfRHrwfk7i6/ - -Vrx6Bddq/tTHju/1Fru8PXpZ4V39u/E95/svDv88xaHUlzrIqALrdfEntjWginUFJTpQi3Ui+m8+3KXty0hXc9GcqIT1tyRlH/8oJn/OWH7wAtS38tFNALoBngYgD/fSoCaACWREAeYAIANOpbAJoBRMBoDT93W+DG/W/yJTeA2WVu3gEXWsHx0q/f4RZxEiYVDJeWLudH4iv0ykMAhz/u+WF//Ynp12+Oj9gce3nrde36hfl7j0eV74fv+30fuB - -3v0eiDgX6cffA90xuGPoiYg8yYJvPcZKMhFps9sKT9belS0Bm6imeB1zmBmmXiff+2Y3FSkseA0iySCTLqJczIUGQpISI9TL8Ke8VmisBFyntj3pLin10dddHmR8ODm/vtIX8+7VvVt4tCpCYBAcQR8425WJ2Q3ES7/v7cfUSgRi/Bc1pC8n31i1n3lM+HpIZD2RowC1APYDEAUD63pUYD4AX4IqTSoATWHCcDTz/jMIHqet4RdPu4sum8oGzjjq - -m2JDQS9WdGP8UDSIdvEhCJr71NazE+vP3t9tidkLkZOdNkvdhSsvdDnxOdz1cS8CTyS+7TsbeWI2qBcfWGODODfvSF3gBUPwT7SQdS51R5O9qD3S9KT01eKoiJWWr4JGj7ojVzcnX1Nd5Ftl35tWPt2R+N32x4qL3j4Oizq8eZm7td8Ha/RPRSvrr4LN/d7HfNN+GAgV5R8OFyiDLPnes47tZ9Zr1DOfQBfBLX7YllX1Z8B1Y1Xw7nuMGH458QG0 - -58lNc59XHg5+HKQK3jH6/5Mob2HoBbbrzP6lsbr6o8K4DBI/tz9txHtwdmpq8zsZzbtcZ+4AzX6sheyA7PdLqoe/FYSvQkflOWSKlDI6RBgEtsWADHlIvFdr+t/+QSCVVvQ+wxxt4r53F91d/F+dUbc7I9vNJiA3rjQvlpChIOF+VVutc0vy+qPbpu+6Llu+RD4Y9coKtS0v9l8LE7a81X7c73HxJdHBUesbP6Y9MS+JeOZr+BJL6DeZMaJ8ScWJ - -9s86l98vtl9kz+JKnHoi2E8U7SgvsHdqvj3AavtR+vXt/uAqQ5l9rMWdutyiK/QU6ukWmbTsOb6fQEAqR9mnKQNXtfA4eCBG/4EtMgeYm/HBSNP+8yiCB86P0uxuXlpTsMuWkvbWdm/UlYyd3bgOREeBzt5pu9nSHP50ZnJv/3s29wyzSN+3vgutjwfVZGqVhs0tzBDG/uxv4cBrHG8y1d0nScTTwbJhy5E+PZIYWkNOXBfXOsoal53vRC9nu2Le - -n3yW82PhnocAJhAyyKcCkATcAM0OABwAQsp9AbABwAANBqENQjsgFZMF9jAfNxvWTdxmeABcfFpkyEng6iqHxcIe46/IK242xT7DQUZbGjYFhhh6TspoznR8bcJZDmrzkWv+jreoPjpvOjjB/ZP72/YP4c94PkTvyrwh9SX4h/AgLj6v4L6AuwKbwrnsg/QuQyAYkBh8Vz1O/0H9O+BlELvMHvAWsHzh+Nz8lwmTn9dqt0bsat+GDOwBcfJVBuin - -QdefF1wu+2c4u89/F+CwkrjnUTdbseIGeBbdqF947n7uQ6tLO75uusQv6tgMf07uzrwteXH/p9WXtDw+XgfhQPtK9ecIaPciCUjWwUuBrcHAsA+bodzD4YWvF6xLzKgWC/1mqiEtjqSYt158E9s7e7jkw+ZLs4+wb9rgZX2q0BDx3gjVzZA9+hnBtVwqsdV4qsCHyK/wz2bYZZqyR2QPjjNj984ElpqSyiRrP714A8TV+surVma/wn1annPuWBLB - -bRzrwQ2RPXs9oaLST+PXzTz7UxDe0bt8CCtuL/uSGT9oppL949lL+LL8XfYK6QGFe5QE/4uNPqYQpDR2gmkAqXlB4n8fHh9LAsdJxfAnM1kuGcYM+QvE0814jS78nxhy5vlsg1DZLpMn7UnOGsWpAXtLqFdC0nsRcE4OviU9aJ9xNxwoOU9GCkj5aLVDlujrooBVAQDNAVBRJ+Yju70qe9vqYb0AdkAIQUgB9AYgDxAfADjQNoCDAH/JQAKsBQAE - -GYLvr+85upay1BKQISpxuLnDCOjKWs2+SkbCzqoRtz0ih6LwxnScGkocm8Qcr9Ty2O0Pv7jtdbz/1sF4S/Sr32+Db/B8pzn9/FPhvdJAAD8KMCl7BW+bfL95DVn3I/BaX+u2Grhj297vS8bNvvCUFoy9Wrw88ofw8snn6fdHN1ud530fZg/ln8rgE185e+/ObwbRiVIf5CebqPDSRFFp7aAFRYb091Zx0yNJn6x9oXqYZDyQspdAKcC4ALoDQhC4 - -APGMyXYAFJu1AUYBlJks/i9fVRNkNbidGexRQxi/0SQb4FmrZTcDt61Rm15Y8OTrwzLEBq6EwKhDgKO9eDKF289nt29oP4vfQ4zB99b9995Prepfv4bdrtkB0V511mkQLj6ExcFCE/lS8aE3ZO/4cEuiqpp/3TjAUbbqDOdgNNU4B4y80/7X7JW9D/dLqfcl13ruD+dz++XnT9vnvqT+r0/vYf4v91/dFCRrzjRGhe88kfsbRkf+Ha9X4xeFLllK - -nn6L+0VcT+0jwVDpftRfMzyme4ls9dW/H58XdlYdNDmos3m3anb1oqQKMIgg7F/HejSYz+gwjisrH5tapdsnj/11c09wKRAFsjf+2/pQGVVojfwSbL+87lh6DZ8JelLhlB3FB7L9NRHQjIOf86PnKTWWPTMwwUmBSea9/Mo3iqpXy4uifp/qTyBrKBzEupA4gtKm0S4iPmt2n+pf/jwkGZA3vj3+boSTXpouOo5BVNuuAX6+RNWOzqxiRMKYAj6J - -fjRuF/5YAbw+lSpXevvW/x46ONCgqpaX/m1Kx2bATrgB0KBUviMeSFZ4+IVecV7tXjqG2r4MghpYdqCavjiasX4EoPF+GX5YFFSAXAFmPkbArFQvHiBuFi5g7rv+sOAdrBS8gn5jnJIB1DbSATK+ADbyAQf+uX5T3haiIOhGQpxucLzOtuHSspaWJoFE1iZyGhS6hvISNtS6sYauKjza+r5seDDecj6lhpncjgFYqFDeFvIg3g42jrYPaLt6fX48 - -3lVIV3pn0BfwMRr+tp3yrfKWSD3yJvI80sMyUF7oStwBihplIGJKnEoScNxK7TQenrRCRQrSuj2QmZBP5gH2hliP5mpIeQH3MuBKPzJrCvz4h3AhkNKWzDDe1ApIMRi5DBSQuy5i3g+8Et6Cjrt+X3xO6ipMWZ490hNY2AAUAAaczgCEAKQAM77aTH5GCSwZdJ0YCgGXwEE+HwAaGF9qpPqHvgZWl3wPyKuAUkoUzDw+XDijtvJWbv4OjlD+7t5e - -/p/yLbr3pr02tC5oHoH+El6+jr++of6dqG+AuOJBQB4YVD5VRszGPUKebL9aZcRJ/vGOLT6p/snWQ6SoRsPu1P7Ifjn+HS6CHo5+704TXowgZXyMckcg91Y6+qjuBfSZSLmqc87wPi32iD6SPkRW46758JXeqj5pfNCmPUAaWJVwvyjo9ofWH7ZjtpHiiwEnvjUorsCEge+2VzYkgRK+OuSPIBSBQz6L5kSBNIHyVhz+doZvXna21Eotfpruw3w8 - -Gvz+MOSyQG6oCC4+GLtwYjg+jEKieBAeIBYQVPCUIKpe8OiYwESmwSBILvKBR94WPvyOLQEHrAluAtbKAMmAvwA0Iquq+ABc9A0AuAANALUAGZRZ0DAAQUJ+RmlAhHioCJNAQVCd8lDG5ZYCKK7A6pDoiAOStAE4Afw+DAExRrbeGXYpHtj+Iq5d9g+Gs7YDnjk+Il44PmJeSP7fvqOWo25o/tuSZD7oUEug+FjIjIVi7uBiRD3gPe6fAcw+I0Lx - -kspeQ+4HngCBgGIixhc2ll7r1gJ+H56M/jMObV7FXoWOfB56fo1eglbkIA3InGhuEl6BfD6kwL6BJdhVrsPe/0hEAaKUnYGkAXdeAYHNFnUWE95njtoBrXyySCvmCkhpATy6txZUoJO6MJLesOaofGZgoAD6VSAY2MzgVCDTrE0BtCqagY5CpaKJbiwAEryVAMwAaFKaAMQAWwC4AJIAVca1QKaMtwBghjAumA7sYH04xIiIkGpAVBg1lNLoAUAw - -0B5Y29ZQIDbEDmYQ7oTwcRZxPt3KZMhDjjKM0Vq8Xmk+bA5Pvug+WT7f2m++uT59NknOMYFB/owu8YF/vtHu4d5iFoKYORpgIPIOzci1PkEE99Cw0NmBdB597kmOmUg+Thauu5ZZ/sWBRsqOdsR+Z/Z9dh+eIIEDrlX+vXYLdmtm09Z3lr1IWAQjdgz+fwDxDrHohNJkhKAksV7N4PJ+fQ67UjC273b0EgSBdZiPFvlYlKCInplSlz7/bmdeHAEn - -XojuFVb2ZuDul/CQ7kYsEDZpVo4eJIDZ/Nq+KjDn8EBBFoID2KDId3xP/plAh/7XHpbWEiZHrkdArGgnasTIiAEeaFVed3aPIN9O0MB5Zlumn4gUIOJBQQzEdmXARWb6wD8ofZo8/kSIrAG1gf1eb0DXrk7+y+Zr/jQ6Pc4OfuDODkEP/s5BBkjP/g+2YX4mwIWQxlgioJxB+UGtVvRW7VZ1KoCAA4F0AT6BLRbAcINWT0xGyBDAIV7PNnCWzI67 - -YB8eNlZBIFSaE/6ZrilW/lbkVgGUVkFg3MoB1OBEUvgBxG6EAdNBt3ZQzueIIS5n/mT2yG7sgceKiapGICMGMOzOoC8yl47+dE2qhJKKuq+K6yiPHPo+4caGPhSi1NoObn4mKLxb3sMKO97fXhzqDLJ/XqMyVvbr2EUBA8Km8jEB0kYYtKncZjC6cqC0+nK9wpn63zR29jxy3X5pIGFEQPQ2JqD0wjY0WPKgeqLq9gL2RqLx3LDGbHJSQnJcaLoA - -eg7sbhg7ahKMV0aFMplI92Cg0ESIKkGZxjgEEv4oXlL+2oGHpA/uqsTJgA0ARaDzzJK0CMqGgGwA8QDEAHAAPQA4AH5G9+BwSEmk2MjkVs6BlpAzINGsoIpN4pb+HYCJrml+0n7nvunkBd7sQcX+2wEIeo++Re4w/nx2EYHw/nwOn74CDrGBI24h/jgeYf7P0kmBPio/YM72sg7QRoVi9dDT4m8BcY6rNtRBZP60QQrg43KdPmYSB/YNznT+5l6z - -dlh+Rf6t/tw+MRj4fp4QhH475mxB1f5BwZwyyAEAnAe4Yj4qwVHBuH4MuHXY6caU3vBumH48QUXeycHFHv3+Un7khJcekcGBwTnBsa4SfgIBg/6V/oX+2cEl/s9eO1amvvfm9KSHPriyYHZ6PnDBREr0cqJum+AOJhJuRPTHHKYsY3Ceop/mfUji0JqkCIAPyNt+WK4MwQz0B5D4AGrECPALgOh2TQCDADwATQBGAAGgaMo9AE7kgsG4+gmkAmJG - -Rghe/tpffiuYVXCAoIFQA8YjQfOuj9oXzOsBAz5tjo4iwYHRzhQu3v6vvlg+aEEnAf02mEHnAeOeRD5XAZoAwTDlPgUgLqDR/pdOMmCgftHoEXBi6C3qd04fAS7BrT4bNoCg/bZU/l0+Jl6AgU6u0+5cQU8m3MILXvcgGCSYgUkAn67Tzq4uLR593siBcj5rriC2k/5pUCIeRhbkIRmul8Gr1uWBmPatdhOBPM4HSqUKj8Aizscy0hoNCtdBHcHg - -km2Q/6QjrN1+QkBwbJVwgXS13PuBU/owdpPBx4EC1p7q8QABoIkArdJ7AN/Ol6Sy1iuGowBVgF54Feovgcu+6xDdyims5mhpIGXOCKrYDiPAUf6TvDCu5TYgZKVeRnCTIN/mkDhxPnlmcOCBSJfBqT6kLghBWsG8duGBqEGRgR++ft5nAYU+FwGo/n++P7pqrmL6WyBzTCBm4Y7R1goO+Xr0qFRBMH40QQwe/MAW/kghXsG6DrneoIFKpM6uGH46 - -+hYO8NDmfpuIYn6GMMT0JO7cOPjS3EFVwaR+JcHNrlPOq86zsC0eRcHVwZ3edt5/ll12Bf7N/jh+NcHaOld2gAGcHlnBNSE9Ic7KCz4UIaNBW7r/6DNB5i56ZuI+Cy5bXstBrx40NkMukh4LPFCWjH7QPv0hg2C/Hl0W9/BDovtgJV44gUS2qsATDoJBW2YxbO1BPhxUAUYeun557mgBIB4YAXuu9n5A/udmn/41cHABVsC//qoeDYG3IU+c3kET - -4AlwMki/APWBxh4/IcRGjv5EEFlB965fISChg+6I4BlBEKHUDoMoW0HRTvdA7Ey/es8Wt2h1KMI4QAhsQLkCtLLklNvgfQ5DOHkY3RZ5qr5E8ko1MmiiqJJhsFdMBkRGyGh45JSU8CZwMUA2ujra1LwWoM8wrzBKKEcuH4o3KvscF0Fc9qYwPPZ2GHKWYDj5zta2JzK0lhhyVRhzCoP4TJatcCTsSiryoW0YLsAXKvxCcZ6ZojSKR2y8uu7gE8Hx - -brIhh6QLhlnQZUBsAI04Ncq+6pIAFABbANqclQBMCBAKOv6ozDwkD2KhIExwRWKd/qbeMwGdkHMBLUjCDFjuCqKL/gkmV8HoYAHB1cHqwYz6uwGe/trBPiGvwX4h/v4/zPSqWEFFPkwuf772ofhBkzboUIdI1Ey/AoXOjepnSPig2P6oOuBmsCFfAaauBog7ln8ByCHZ/iWBQIGRXtWB2SG+aNghlLa+TiGhQyGpfuXBisFDRsJ+AAFpZmNGtiFS - -eG/+LKFDRtgur/56MIOhUxxYngz2jnAZIG2GW+CN/reKLLRkKhwaGpYqug9oAm6nKANI54hAtF6W3tQo7FKcckCnklOq4v5ADnTBPb7S/l98bAA3kG0ajviwgGoQPuSVAJgAAaBwAIDMtQBqEE0AWdA50FOmr4Dy9BZYq2C2wCcgfU47oIqIs2hQIO6BUjB6vHXQNkHnHmxAjW5/rkg2AEEeSnBBHiH8Xt32iB5CXrrBKB5e1iOeW05BId/BlwGm - -wdcBKo5poUdOh1hYwM+yZ5S4/lBGoAT83CgGqg7J/iVKyvx04oCkiEqIfhaK2hY+wVpOuUHPIUOh6wHNQV2BLRYbzpK+3Er4IeUuGi6VjtTuxBj1XmP+P2yNoZ3+iIijDkZm8RajXlYWI8BM7ofg6qBg4Eto/kFlUIYu+S5pQULuYVbxHtJAJyGdzkJBK9YliNshehbYAUOBeAGoaOcOuQ4Ato52/oGXXhFYigG9SszOXn6tYD5+r8hJHt3en0iu - -YaW8g16TDmchqGg+YX2B44FBEuieIX6RHgi+QlatgeNA4AHFpGnBVzwZwSwYkmbSRNJmmmEzZmXBA/4doT8IkmFPQFlhecGCAZuuSIGODqM+t+qRYRkOIw4xFny2YS6aQdwct5YmYcFh8BhgliaCN9bAoTchsKFOLod2JQ5PDjvkef7nZo92Ba45NhF2Zn6l+sUhmO7qfnC2OUT+YfKajWHDXlVUp/yTHmBWxlauQXVehSHjYe2OkHSgVkZWpTDZ - -QfhGg2YyMO88YQirZvv082GbZothEx47YfUgEFbdQVM+8KiVVke+hlY3YSZW/hShYfbeHyZVXq66TA6/WlESF8FmdkNhiz7bQH9hHi48fsv+TH77Fn/+V3bogT2BdmF+dg5hzg5Ldo3EIgEDGClhLg7glp3y5kT8QbtwpyGXYUDy92Gudrfo356NgWC+KyEpdlp+Sj6vnnTuoKFR2AZOfzrIobzOhIjurBQQsDYo5qiu+XChIAyuJnC84PECYSCJ - -AhrcWnBR/iqCivbRuNJcJu5mNrCc9tI3Li2QbN4u0tLhs7DkyLXyVMj2vuKeFFqfLhF0KLI/Li4BUxrbBKN6avb89vyiGMHnHLaW79iutjyWWuB8li8u/Pi+BId8DX4jYI8uFuHPLtyW5xynioYYZXpXMmcyzJLqbiYY3m5abn7ScLwm4chyxgFwvJqWq6GeNsEmhSSbCmEmByqunkA42dLz4AKSV1jQcsbcB0yCkllIKMGZGPrcsqBrodJIDp7O - -llSS99i6bn0M+m4bLqZ2/uA7LicEClrAEIfwAE6qjL9a0S5MlHYQwZbDGDjAX6zi0CCIfmYdvkehXb5WPqehU8FTDMFAUACI8EIAWZTAfC0A5EBqEFAAowBTvk0AkgCEYYu+jbZ6Ic8B4yQPUK7AVZRRRKbeYdr7NMoq8Khq1Fgu1/4lLluBUgSN9lZAs1afHrZWPmIPweQumT7PwShBMaF6wfPGBsHV7mOewAYiDr/BWMryUoMgnyAm3uGOYCGz - -eL6u3uyOwbRhMCFJIa7BDB7hcO1yhYFpjsxBxGq5/t3+EV59jmJBTyGKLlC2P+ryYZkWIuSFjs2e8h6E7iUewra/4FgRl544EapBdDRPFgVYfjZVgagRiSjR5t9hYtBjLiJh6JZDDp0OITIAoDBWrKYnIEF+mxZRYUthrBGNaOwRzKCNHn2urd7JFFNhru72KLNheCj//vF2u17fluZo6kE4MI8hC2w5FtsOe+Hc3PlhFOFiVNCm9i4qEdrUnyYP - -nkgRC2x3PoD2Eh4bdnR+kL7UAUBwfaE7Ps02FizaJOgR8PbbPk02D8S2EQmY4L5mERx+FhGY7kYRLTY0fvXW9H6Ynnu6jOG1fsdMLqIV+sbcChphwIkBL8IKUjr2Xw5KoPZucPSObiy66zK8uhMK/ibg9FDqPcGlCoqhI3w67ulYBRjUlM8yH4rooEq6Arq2ohOklQG2Am4YaqIxkhNmrjaEiO5wY0haKLOh/VaJqmbqX2BLIJbqpBDOoIZWmKCx - -OC6geqGoXv3hX3yVoCrIzABh7lEwAXINAMmAZ5BYgA0A2AAPul0A9Ah+RrlwD2LQDP66KOBBPsAk+/4iuskBlbp92jFGUdqRVu4hkP7wHn2eOMZoYb4hD+GoHh/BgSEMLkmhOEHv4cL04SFz9ia8iRjcLrH+K/aguHZgm7CJIZfGsH6MYfC8+LpZ3upO3sFZIRMhKASs/jTI68AM4WwhYv40wceh3b6tAWeh5aLxAFvswtY9ADwARaDKAJUAUTBt - -ABQA7PQ5nmyANAgrEbUE0LJJYJ0GWxE44I8kX6x7EaNOx64szriWWzpBofU2yhH5XjgWJxEoPhGhiEH7AQYqV6ZpRtcRmGFP4aOeDlrDNkquJT7yEvEAH6EvEWHW4QZTutquTwHwBrygskEqDjQezT7FobmBpyYPivgsnsH3kl/K7GHM/rx6nSHsQXxBbnZl/nIuaJ7T/k18s/7rYYyR+KbBlCWIPxaIvq2BmUjGYcNexQiEZk5hvmH9ga1eumHN - -7Jd2Cj7XdjWCcJ5cEfAwCh5dodIRuR7jaBM+Ca7jPgK2Zk4/9kIRkQ6KHn6RKJaD3m0hHpEdISQhZWG8AUrgXpHD3om+P076IO9h7SH71qVhj/a5kUCQEZEE7iJBD57cHjYGQr4NbsIejCH1DplWxS5J9EfhGR5wnmsOLm6VkRa4nk5bRPEYtfj5/tWR4XYgrNcOQyhzVLoRdYrHDiVosjjWQCGacx6COMXg50Ct1qORkOEk9uNB0B4+9ml2cOGl - -Duf8+KBYoJ+wrvIK7kaI3ZHNDr2Rh8g5plIE4BAt5m3m3EAwlr4eXV6HyAyRI/74psyR7eihXmNecQ6HsK+RUXbX0KphT5HTPiwhSy6gqGYQmJIySNiSERiaeB0y/JZnCrk2ZqJXCiwak+BXig+KGRhrfNYYqhoioWBKISZR4d7hEHL+brySIm4cumYmMqDJ4QcqqeFJ4ScqQjaJ4UM45FGkXHyBHm7MlocKnJbEnryhzKL8oSq6sKALoewa6pZJ - -IKkRTLZlEQSe4FZEnnBR6wp6lvh4V6CwoY3gQm5cughy2kZYUbygLSjvPCoELcwU9kDQnijaMB+MgkTvgIMR9MEGoQz0cAD4gAZiLQCnANzQGBJsIn0AuACDAMQAB5CXQKMArAyF9q+BiHyRQImiRuBjFjPIn34BQKgIOfCkROhRGHyDtocRicFF/iq+XZ7IPu7+msECXitObtZHAQnO6EH5Pp/BOGGv4eKRaP72KnJec567tkqRmYEsIOO6ipHU - -XpiI7GTaXghGoBFwIUmO9qaiLoxB/wFsYeCRmCGUjMaR1f5atpPuzSHjdgERtobbQfN+EuhG6sRaRMh6UX3hBlFTDEIAzABpntzQsFJFoJ0abQA8AFwIpADEADwAFAA1oAf6n6FnoOHkgjhAqN7AYuqmIRq01ZDIfMcoX6w2xOtBeG7K9o32B+Edkc74x6YQ/lyRZxHQ/t4hlxH34RhhXBbCkdhh9xHBIcmh7+HsqvAcn6bpof74yvYfsNwubdqa - -Eqc806GcbNAhzsElUSWh6hZOcBnGDEEVoRkhr04GkfWhRpGzIZoq1UEhQQX+taEGEfT+wIE1Qdp+gmHj3l1KNpBjYbuS2KBoSsM+ONFV3gDSMmGopo9yVQ6UflJBFlh3bkZIYOAJ5BPgUOGBkTDhUyKrDheRfTJ9kSmYqUALIb3Wc0HfNg8OvWF5DnkUoyF0IQDhvNGzPjVeIQ71IQdejSGvbh3gXwgZQOFhANLnYXDQeOHJFNvW2UiswMrREhFt - -SsThNOGesFoR2L6WZjWhXGEpXilUtMiJYbXY9S4ZWMSIsuAyMLgRnLbpHnBcnn71/l5hNYGpkZ4RahERrl66Df6tEaqQbhGcZh4RttESfn0m8ghnFuoufhHmEdch5f6OLlHR7H6N1mghD555ITphzl5MlKHRYujh0Y7RmmgWYT9satE41iiQe145DvDh+2FT/rNe3BEkERmRLmGtIaOBPd6fYSzAz+BzkWDIqR7pkXXRI95Utk3RfXDzka3RIFF5 - -fircqSC7VJWqJrr/4A9kWM7PassofKFrKFxRrwoGutMYRrrEoHEYWiD4kkpYfFHdMnCuLm7knlUK+WibRsSipQqwch1wgW764dqihuEr1oEQ2LpWGrye8N5ycjYaSs5/gkb2AEIm9r5YGC6k1jviGDi+hiY2f5rY+IN+W2xgXqWmzNTzFmBhy0i0nAY4ZI4BAXIw9sE0+ITqTUi+xrW+mCL2RPo2DjgQvF4mYvYU2kkRRPSsMHX0Ryik2uKcKzKd - -gN7wVHK3voehCJE94Yba+lF5kgn2RgDOAGwAPQDxABQAB5CSqPgAPACVANzQ8wyEAIaAXCqwgM+BC+GCImrWjFgGyHtYWEh6CMb+C2D3AZSy5CB7UUNAn/Ao4Ftu0PbdJu4QQpgRIJ3Ifkr3vhdRltAgFhcAM9xe5ldR/Z43Ub7+b8EDbqcBhsGJoc9RjxH4YX/BDxoykfOeKGqQUKDQP+FSFKgAKT7/UQokL+AFocDRRq4akQxh5RjlrAQO6SF6 - -kXFa4+6ofqDO8BH3nrWh9ZHBMQz+VBFFkZnBdZFnnsFR8raNURjRYTEglmnRfV6d1m5efY5RMYdas5Hd0aVw3tEWXg0uFYH3Fj4oVlaeIDwkmlR60RDSFM7/ke3MMAFvITXUxIibXg1hAkFNYRrRVsIJPoWIrQhvANjhQ14XYcJB7M5MiHJIFEQ84DCR+/QU0foGToAw7FpIreCX8ilBqZGyYeVQXKZLaFsglZCUgHMx6dFNodDgCZBcOO/mN2Za - -Yd9cBdHNYVsxUiLSYgygpTLagnThww7MaOJA+kigEPFIxaRl0QMhsTEfJjeIW4HUohKmj0Al3rfBZ2YiplW4ROBW0eROnBEP1pXRTVDfxHzgMRTN4PmQCr4l4J8cFx6OQNAkwIh/MFouzCEudGFmGAgRZmpAZxazArsE5eDSBJhuRfB1ZhTk4ESNZqimrYLgsYbI8RhMICnY2zEtgYP4slgAzq8xYqZa4EZcnzFJsN5RxGhW3MAmMUCOQDcxbTCp - -SNaQFDYHCIqIBcGgiPkgLzF1QJGs+6BuhszcIbAkzkPAjyCOQDSxs+DZGm6g+zF+QP8AA9i2wmkgWkh9QaFoSzGLYrymazFpfEh8LHjwFJrA0yD7jvqxPKarMctADrgd1JAgCkhUgjxCQihWsSsxHKC2sTQ0y8DF0EgoYcB70YsxQ2DLMVfA7rEaEWF84kBgIDSK6+Bk1i6xnCB3xBGSElhqsTqGg4LmLp64wKapFm+MexABJkemZSQDTmZC8cGm - -ouO8+6a9YKugO3S5JFPAR2GLELgOLRYSIJV6KLI4MJKIIbGTIJhIWqCFYMhEembVsVVwtbGPXgVhvSSDgifcGIjdgITWQihgRFUW5mhdsQ2xYySFBqKUtuDduAWxNbEF7GOxq/wuqMeGtUhLEAeh5VDDsZUodbEKwKv8RECzoWLobEAPzkOxcEgjsZSg/64NsRQg90BPaGCYdqKzsR2x87Fnsav8U4haMOUYL/BnFhwgEFA7IGUg6sAU5Kv88iRc - -or9ADQE0pilAH7HTMaSUMDi/sf+QIqIAcQjoEzEgcWRI37HMVloB6j5g5h5YPeBXlioEGcE9GJRyG0gVscShLSgySgSgckoYMB/wv0rF0KVuGQKwCCHKaCD7YOHKdKG/gCLUWkAAwZFgUqFWnptMWgKQCJGQugJVfPXiwxSLKmAILqIWfjPAUATOoiKi2KBCcep4HpInILxx7r6SAqoCOKHSoaighiiP0AWQr5RMoQbq22rmLN9aOPRf8Pj090yw - -CLj0FSBt7HpxinEtiIdojALwMZsoQVC2UO+ApAKg7u9apnGwsLZxKOazsDAQkSE2oHwCcnHGQqxxmygACEM4XnH+4ZtM1Yh14PtweCqcAnagnfIYhEV6Eu5LNIYo0u4qAidAHHG97NNWLAKhniGQ4Z4m6pZxDSBxSFR47LqWcXKkaOZacepxjFpfWhlxCNLvgGtwFaSL3h/wXepQoNSyxnG+yjVx7rZICDV+MoKXwI8gYZDhyp6iOjBzpqcgvqJ2 - -okZuCygnTCS8XYZHTI6idgIsoeNo0JDZ4MxR//CbJjMg85HiRsQxDwTZxsE25DEm2nDKMACbgOEwtwD4AOz0N5CGgDluiQB1ODeQZ4CaANiRgsEwTGdMxlaTdMnuA9DuyBM4EAjN9i0mIGTLgLDAdaT3fBKQQ7bASGNy1qah6PdgyxCO1hoxWjEcTqhhq076MbGh8VEB/sYxX8HJUfXuf75uWkRhOc6jgC/irYgkQejYdsHyoM3gkBEGrlv2pP6l - -UdXOJJxpIbqREi49PgqqaH4hMU8xXSEKttuO2BF3npTxqsGJMXMU4zFN/gzxTTFjPngReR4s8Q1RbPFnEiWRmZHdznN2LVFLHqCgx/7oeJXBVPGM8W8IYUFNqoVmL57xIN8oDhAmAkXw045s+LOOBogRwfExQvG2zClA6SAePLAkqXbxsgBsaAgJFL3s/jgIESgRErayaFPAZnF9DMR40IFNdkfWQL5OiB048LaR5F5AvK7Z8PVeAr5OgtyI6U4a - -4JlwTJTVYbD2CmFZFsaxyYge4BRSIvE0ppq8ZTAwvig8iHHJeuJA8+Ln8LTg95GuZsDuz5E0NN3GnETUTMRoXUANDueRM/6OcCo0IsCkRKP6KZCopujhbWG6MJcAKjTAJDZYVXA1mkROa16IgBjhW3S18Y3YTyg8ODdO0FDnZn3+QraXriuI0CQ2cE7g0ny6Ef3xF64pDiuI+wCzbmNgeJCjZhPxj65Fdo3Y+UAOKLqQ6HLKZovxpR65JGHaXZC7 - -3KHo0IFb8S7RjyLI7BAghLYMlk7RA/FT8ch0ObFKvg/EaN7fFiteLV4HhLMCGExLiEogODCopsXRjw4i0R5OqkAhIMKgvEjTDvuy0OETzsh0eYijcM0WsuBZCJi+R4jTYapcjyJlsTBWBJQ1ri6C+kHXPg2xwuis4GmIXnCB8uZBnh6OHpgJqDAoktXgl2RqLpBBr5SQOJMgAkCz2PN+1UiGkBLo5z7a9B1ARLGdrlNBGHSlXu9xwjgaLDTO646B - -SH0MdzG0CVHg9Ak17IqQBbFtdOSkCBA88XcIwEgSeEy26C6jZrMCZAJAeMoxuSTECYtgpAkk4b2wAUAjNIfAe0CCOI8i6gmufiDqhtHC6Lrx4JwzwO1wCbFlYMBIMlyJeCYJXWHOpnfg6mBkijPOhglwSBoJcUKmCRambXFXoPLQsCSwkWtGzzDt4f2xEsAlQFtqhkD+4NReACC0spbAYQiZcOrsJ7oUcNkC5/D/XKmGODCnaP+kQHiHsZsoho5Y - -uGA4OLp4ArUM1ibM1i0oA7GpiL2ALRFkqF/+ZMgzGCzgurHuIFbceSBmQnQS6nhcMBVxetqfFB/w5XGfIJ0Jv0DVcZxE1HGFcRSyVHGswDRxJwRZcblwOXESJo0JvWI0ihcqscAtKDwwne6bVFdMq4F7EOuBRuAtKN5EGzJN4FqepyoyWHCqK5ZfXuQgTmiw4DowlEzVcRvgtXHini1x7OHelNHKSxxbTPvCdRF2Avsgh2yrHITwMu7EwHLu0jTo - -kq6I8FraeENxwQKC4RP8RrZkkgkY+eGc9iYYKpaLoWvRqRq4kuq6zXxLHJxoikgldusu1ygoDPteru6p1gTSJFhhAuRYGtymupag5rpnSNURa1jzcZUC9RHr8etYiiS9SJcEVoaQCXJ4NXBoruqB4t6tpkMR/VFffG0AMACVAPjKWiF77EIAowBboE0A9ABNAIQAPQAR7johPDF63ktY2ogR0eLARBDMTIum7mJoCAFw7UhrpiBkkT7dwJ3ylyC1 - -cXE+2DafwPQ2NWZhoUtO5xGCXmDx7tbHAYYxtxHQ8UlRK8YpUX++g7pWMZlRF1S8iDGRczYU9k4iiAZySLnxUH5bnv8RySHp3uY2BYEsYXBm1VFSLvDR3Hqo0ZkxlvFPbnjO486XHgUhdpFeFgOB3zHKDuGuKYnElrX+vtHeftGuNH6MEWaOPTFBYR6RBYkTTs5Yd2ELKJLu+CBUgRsBclY9QNYJZDJ88fXRcy4S8dIJ1hx+oQv+E3SOpiCePZES - -zgoG2r7ZLnqJ3VA8EQSyJ1G21tZBMWZDiT+m8DqlbKUxW0gPQAcgA2aTHpJAN9BSRPNBHtL+ogWI31I13oZh+r7pZiyQltQpEkx2aYn8fhmJTn6HiQJAn8AqWEb6Z/5BVilIreC3id1W94kaQI+JSHH1wTFoqqBSutEYXSBYqKraMkixLkbU6xz/aOSgb2Yhym/R8CBYpKsu4kQYvvBRpqKXCtIBPqYscQFxNFHkTHRR1FEbwhIa4m4D4NKMHnBm - -3Fa+ys7CuqrO3nE7CiUBWwrrHEdKKyoauui0KAJt9GxAG4iphomQMBANyCjslIFd4SQxB+694ciRwxHlos4ATQD5oIcAmgBngJO+DQDtGlnQMqjYAMoAmACa+IMA7rKLUav2j+xbTMbIkqQAYc0wl2ZVnDkUX0DEFg3UholVZiYwXKH3as5MZLEspnUyTJTCrvaOGsHckV4hujGWibFRPt76wQEhdolPUbhhISHv4cR66VGSDlIq1UhSUfyqUbws - -QiymqpHE/kcmOYFeMb2szzAewZVRlaEwEb0+pYFPMWjR3V5ANN+enZ5VIfFJQLHpLlQeMTGpSemRzIk1NtTuzVEt/rUhNjruQaseYvFBgqNA6WEaYcqwBqr/1iZBYEFUGJfxk/ELZhwsvkSzQFlmxqD0IWLygR7MASEeQQoPZPVsGRq12ADOryFKia7sYcDP8aixlWa4Nj2MRfqI4PIkCXhGZlGInH5ZNIg2LW6AbobA4iCTgmgMLkCDok1mSJ7g - -biieMJ7MaKKmaDEfMXPWB4RcrlCeKiyHSaCxPJAnSSyxZ0mlmnXBnP6ijOF+WizpaIscgZCgoO1x/XDuceSJ1rqTcbTgzgKkvFAEEOA+vtbhmy5VMov+n1Aj0eqMVBjj0UXMuhoTpFB20kgrKKuJdyrEAjieVX463DV+B0gYhMkgUiAxhiXUbqAmwH82YHHsMJIhEwYciWtxBs5k0AMByYCueENRAeQq+LUAE4a4XmeAwkmjAG9RTZKL4T7mc3hh - -2lHkDIFG1LbIylplns2spPrcOA2eDdQMkRPsE2LHgrA+jjESsamQ6tGBWinq3Z47AZdRewFRoXoxVolxUe/BGEF3ETXusPGTnv68kpHC+u9R0GoEQfOAvey6MLL81T5UHt6JQQQHuAUobjHvASDRgYlgEcGJ5MC4iVDRRYERiYExvsGNUiaOlS5j5mWBhTGnZsoO6zFpMRpmCrBB0Q3W23aI4ZVhER4dXhnxwFGyHMdRES7H4RMevBHHYcGS+THQ - -aNqJMLF2QSlhwgHLYKmkuUQhsRtA9FbzHiuRHWa9BB4eDh6TQZUxA0BvjARYeZjZZh1J6MD0SDeRT2JTfFMIfn51litWyXHKwGixf0DMiQp43bGfqP3Jy1ZTVp5Bw0nf/vAB4CB9yeNWA8kzyXUUAmbe8BFg2eCeZgxuR4nXicam6UHgobeup/BIofPoJa7Lke1moO6hQXq0r1CsaK4hSIBGQaK+cr7ELrNSJWYuIfXgR158at4RLhFgoa/Jt8nv - -ydzR6rB7Xk0eYQhDSdLJvQabyfGRbf6HMW0xAgaINhbEKZCMQJQRIJb92FuRXh7sCcHB127+XnlWXF7dSadhg1KXMcwR+lbXYeBWr2H50S0x7pHACfWOnEqMDnQRjYm+aIcxpYmd0U92mNgzIG6Rm2aMKSAJgZFBIGwpXc7eLgwOzyC0KTwpUw7PanG4xUmOTgAp+k5k4VUuBUE9QFIIa1i9yQwRE05XMYHCXmgLJHowpIARdlmJMnFjZrTOLZaS - -QNeodCkE8iIe54nsIOmxB6bFsZgQtQ4tkYM+ZnYEiJKxysnnMV8xZ4nl3sxoislkgA4pCvGBCXQaMJx8uuc6M9EB4W/YQeGWfkhKBRFPMsUYNJayobUYvBqaMLK6tdjuniYBMhq8IbYmEqAy2hD0jiZkci4umyoESQcqORH8gTNxEqCxKZyS73ScukfRBypXQcFEySl9DHhJsCLZKZowseFYSlySiQEo7LxRck4IicdKqyqaug4YZyhXeoSWYnCC - -cLDGGFhbodBQOgGGQtaifSkgiT2SDbzgiYJwitrldL0pv2Z7LtaQyaosRPVQnwpquidKmRqbKGwafORvdPCJyvKe4UHS4Iq2tmKhCWjsllpGmFHCoUpRWkb8Nm7hgjYtqmUgigJRcexJy3G0wUiRWoFcieWiP3z4AIMADQBdAKOmPuTc9FEwyYCaADeQSsg3oXJJDqFHqsFAcEjfsBAQZqDWcsW60KnniMHC83Gv7Cxey8nTybuu4B5QgHBEskha - -QOopgyYWSeGhGsmRoddRtkmWWrrJNon6yU5JhskOiXDx7+HgBojx7C4oahNWy5YLlpGOQQSioIwgi3hFUUWhoNGakdeS+yD9CSCRTEF+yUeeXD5LStQhW2HmdsmJb5HRdns27c4liZQptVEmfInJGUm6KFKpKLESMmOgIPZstn0W/O7aHooIIQ7NiR3RITLEKathjzFNiUPeH2HnIeDAHUHyCBSAMtGJkVy+Q0kjyaQ2V6KFSXCQWV613vuJBMCa - -kolBtRZrgMWJpyEcKStKtEjROCSy7YjkRNhGuKkQRFeafeB5yQD40Cn9MVHAsantZucEGdEJkcHoctEP8VHAFAnEpsOOmuBNyW8+oOEbrvKQ68mhsMHa/R7JFjsOQVRwKVx4CClAodiBX8kXgl+EVcnnyXhWCUlTWrI+6jheETUu5V59Hs2p/ak2Ea2p+ZEfYaiBNZEtYa3x1fFY4SnBBmEgvqkW7f5VdsWp9d6YKeoeo2btzs+W4w6qHrTxGh6v - -/AThP5GdYvVeDpHf8cLRCOF40cep52anqRcOv/HTai9ez0kf8HMJfIjDQCcJixoZgVrgoDBXTFVUQngAZJcqSwlrwisJG4HaccsqunGdpJZxHRYx0iRJokieIOJcLliWcDMpugFjKQspsWiu4QN8/lExKb6emQFJxinhtFFCkqI2FFG4aenhrRGN4EjBpHLTfkHcNkSeJoZYP17vQRjWG7hmGujWi3EJkGnCEqIo1mKiSNapEblxUjYSzpLqbUIL - -aB2a+ORdkJOObHjKNndWwEm+upURAbpAEvRaHeCiPj6M5j6dvpxJZDF9URQxiW7XkNG6bj4eQpWgRaCH7GRAygCJAIWSAvR4QTKJ395LWOnA6giYwHWkL/gHtspaoggM4r9ogKC4wNbe9kxpqWoprdq0Dlr0hLGMTNJAqjackRFRVklRUaDxMVEUqfZJj+GOSc/hopHCDo6J7+HcMebJNeZh1oBQlEoJYGeUpB6CfJygZ8Ch6H8RD0748Z7J23js - -PvqRNVHRMdGJ+UkcQTupRBF08djR1/bU9hIpGIFrqVeezZFhya2RR2bWKdZeSYnD/jUx3vHmakHJNh475rKpHWk1aRmyPUGxDv4e5ZHVaVFBAu41Hj7RWimeQMap1qmlkeWErWHX1pCWK6ncQHtehCFrzlepvYHjqfOoIJ6hkRkumtHDqfc+ian6ZuQp7CnKqdth9lArYXthp4kVgSYpB2krPkdpVYF5IeuRQZHk8ZExlQ6Jro1JgzSx0dThXWGb - -qbVhimFmkbTuue5dYXx+RTG1XpLcmqmVVjfB/H40IbaRcqmFDp7x9272kSGx3ql7iT2JS3ZaIEtps6lcfsNhlCFUKfwpR/BmlNdeVz63Xqq+TAF0Tsce/tj7Ucl+jqbvQOw2+kkEFoYpZDAYqaAeq1ZvQPFBdmA5KIGpzOl3QC1J6xLtyWoum0AjYCt2CSAl4F1WqCmECU7CGMziCO62i0QFQNVJCS5PyU8e2sIy6YsgIgJxwA2xpBbaEfleuhFK - -vCLpKSBi6VKgUZHDznmp+kCGwMLupKYm6bDuQRzm6QWpMEGuXo9J3DYPqZbuPCTG7jbu5NYU1FygVNYonPBaqDjTdHLUJdxe7ITmQOSwMV5sFnEV3IGslb4BWBB+Zkg13PxYH9E77qY2yI5TNA90uakbuNm+0MGCnnCIPGkNaFLqwN72No16x2gCaXqSQmkBWGHGn2TeGoqUfhoalLT4oUg05mNIkyhBdFRynvK5hlN6GzRJtntGskbHNMw4E36q - -4bKezJ5hktGGAzKiabV671RI1PdURb5rwFlIC/4ycRnsneLmciUGeN7OOJWcIuZrfDcpaGkGGv8YuCQkiTgQJDi9UdxJHyn7kAeQ/b4tAPQA+gBTgLCAUACDAPmglkC5lJuAbABsAPWgTe7ySVbctM7KbPNmWdIqiVzgn4CSjBPgxMzwoUfJ0T4eaUa8x7GbsWOxpolGsggeYYHayXZJfv6Q8fGhlxomMS5JL1HmMfEAAEYuiYeUWQjBbsAh8270 - -QSAhgnzxCapIgUm48SFJZUrVpq3y+WkBMeKpQTFOFO2eb54hdkVpzIGNaU0ujq5HqcjpXhYKqYNe9l411oaR5mEc8SkOweCAvrSB4/6lqfjp9Ck1YWMOgOnHUgvWXe7kXCmpU7J50bIc5AFtiP0yDfF8KSioROma4BVmDOl4NgHRKCmQNmgpK2k8dIAZzv7HyYOaXkGwAQ0xnyFyVKYZkKGu/sKC5iCi6Y3pJwC+4Je+b+DgoO+u+47/ZpvmYMi5 - -SGag28nInkxuqJ66QGuOmZAbwGakgzzWQegJZOmmIKD+VajY1hOkTqlo7pZOBi4bsZ2xD7FnYZXWQV5YbuuxYBkZGfWxPTE8GfA2pin5GfexhRnviS7pwQIQyeXhPKH5EW8y/qaQ0dFEG9FknsRprFh05HdKbelsxPjejOZMaQRaPiBEWl2sDN69rMI4VgbZpmUGH8BSeCsi6QbO1I2sMxmpBsmmcQYZQHOBD8gfannsuaYktOcueexr3tbsOQlV - -SAFIqImgItFEASZpKVkRfAyGwBdASBCI6KqBS3FG5EppZuYqaetxCwDZABQAsIAUAHKoWdCIiuyAt6yD0l5GLtqKEq/pFMoRrlQgYKAKwIumGrTX1ruST0iq3L6hbJGDHo32d4l5pi1QJt5X4Rk+z77IQYcBIWnwGXrJCVEGyS/hdKnGyRYikpE63m68H1HEYUeUkoijpL9RqWlBBNpAceiGSYWhKhaeMeQZqvx7wFQZuIb+yUz+9PHc8cdpMYkW - -8QLxLaHn9ryZvB4woYXBmvFCmdYO1h5SHspmiNFRXqb8MV6e0RsxjuloVLIRlO6H8NTu16n2YZapoXas0QXWL2ncKW9hVTbQBOqZjqa1BDEZSO7jaYaph66M4ANB81Y/YJWJQFGYNrVBLlY2frVWFcl9aUEOK36tBJLpjclG+tZ+NVbdIA2xMOm3aS4pNgng7nv+8Kgfydw+ximhmYuwYincVgNpOSFHbtZ2BdahLtvgbBHr4BwR0KGdYZuuT2HC - -QC9ha2Ft/o2hYa5ZyemZfBGZmQIRO2khkcCxVWGP6PGZALI4gmqpoX7W/lHxltboeF4p9obQoMbSCp6D8sJEd/SojkCOI2hgvKW+qhELaOycz2g+6T9kTNQNzDHykfJ4nCR4QbbX4OTAWcQSSFrk39GekhtIw34QDKN+3sac3grA3N5ema5E45kmXIeZ1J6sjjHG7I7erN2Zw+nq1Fx4mtRY3vxpEuSCad2aEOSLmh5EAZLXKACJreFAic3ht4i8 - -pDBwsOC2JhTJOcYfzufe+5BlxmeQsdQHkM4AmoDYADv6hAAXANzQRgCkQDeQm4BcyU5RS+G8AJIi74AU5B4gfS4qiTMBBkD7NN/+zmkN1O1pnpk+YqlC57BGLI9xGzp2jqox/mkkqTyRWsnkqT/62JlUqbiZNKn4mWKR9KloGdTGTKlkejJIscBarpXatWIOyYPkVlxPIFlpKf4CqUCa+NEQrlARu25VoSxBE+olaaaRE+pg6UwhFcmymS6usOFC - -0Tep56ml/sDpy+4K0drR5wlEgDdpWlnkcPzpbcntSdqZDCEsGXfBLyHuGe8hdJzdMfkOHBmI6crAoCB/QDoSQmmpIDmJWimnmfYG1Fn/cfycn0iBWQjptTHjaqFZkJjhWQl2fdFTgcbcKdJTfDbpH0pgwRn6/zr7GVRKhxlgMc6+EsCuvsYaILznOjPpbr7FWVtIzJyHmk6+D+bcnri6JyDAkVDQvGii5KVoIv7G5tH2yF5vKUeBqmkC1oMAQXIA - -FDG68wBFoIcAXQCAQEWgdCK4AEYAMAAwAL5Gr+nGEIJAHSAFXOUY4JnciI4CqODgoJsRWC5WEU4RxhHyydmRFZGQGYFKOjEXEaxZ+MYQ8TiZUPERabh6WB7B3mLK1wHFngJZ8naroSHpczZ/4YPkWKZ45DRhapF0YYCaneq0RHCA7Jlj7jQZAckBDH5e66kKHiVp1PGhHr0uCalMti+eCD5k0UJ+UhFtLgXWAmFVaUYOjhG4Lt/JRrAN3omZMxIt - -qY12o2no2ZUZHIFv9ng2QWzuhqOZrkQFiC/Ry5pNNNq6OygtGAyJCKCPonNiSBDgyu1Zlj7KaYfp3VmHpI74cqgUAPoAB5BVgDeQWt4M0KQADcrrqrMR54F+Rp9AVbh7vryIA4hAPrwA7kCDwDZA72b7cNpJeIBLqewB8smkIDEWnM5lWAdZvZ5HWRaJwWlsWQYxCP5GMZdZYnbXWYlKrKqSkfd+pJkWyZ9R0EZzfH6UU3g0mUtuKAJuoCgKrske - -MfypoUnukDJAANmk8YPqD7Y6WeEx1MSjzsduBM7kWazOnWnxIqDZ9Wl6WT1hBln2WTX0MZlDPjv+Xg44/EA2WRk44U1hoalakJzpmJyBqRZZYzFsAcVeb0BzSa9I6hioCKuuFdmpQf6RAZp0pvZpzRhMpo3Z8zHbZhzO9M5lWJHJHf7d2bops05tlh5WqfpacBEg57zLejFIynh4tNnhBjCVrIUW9rbwIoikkZm2VgOIZQFcpH5hAsmyoBx2JqTV - -widwiAiyYdAQkpT+OGKUwnHpqvNqselKIF/RATaKaR1ZXEnvKTzZDPSRMLeBhmLqgFEwpABjzPMAtwCaAAGgfQCLzJZiMtlk8A2WZqDAOFMBwUZ/GIXJvLpoCP9+NiGdiQOh8Gm7WSBBEZmX8JfhRKlmiSbZ0VGujjrJoWk3EdSp1tlCDmnOhJkh3n/BH6bO2eSZHQyU8Jm+ICEXWIVi/OiucZ9ZQUmJ1juezHrKvm3afjEk8fgGEqmDLtyZvEE4 - -ZgYOIz642ZlJsYkE2TjZkVk1MQ6R9VF8ORVsLg6QAat2cS6aWeSSEcn+FJy+6O4GLoNeW6nn+EI53LhXdslWTYG6qTUOyRlfrqkZAM6PdhVgLCnl2fKZXCT5iOmw6p4K0dtZwzwpQXi+ZXa93i2ZnFYlSTxW1GIEKdv+RL46QYZB2ZkMGT9u2kGnXv45GlluOZv+CZlOKeDpzS5fqOap12m2kR5hUa5zoQTpmhk/YfQRkOktaT8xFtFcKQlZGCmy - -Hjdue6nFkXNp/PEdYYE5I4HOYUs8kplJ5h0OqXZjqaWRDplhXk6ZcCC6Obk5ltiPkY05417NOTk5NcHCJhBp6HJQaZhIDGliRvUR54ivViEaIHgOIocErTTs5iB4iuwRphs8wbbvPHjI0balSLS0fhnhrOSOYzkbOVVIFI5xtgehuOYBtjz4FabuGh5YAOzRBid6sRo2oPEaMAwrmnIB0OTrmhBJmkgc5NTkoK5fLprhClnNehXybXpDcPYaMp7V - -WSqgibZdGVspJHYr0U/wrSmm6mgEjaThlnTawFmrcY8ZNMkVAHLWgir5oI1OZ5CYAPoAdQAM0FkA/QBbAAq0jlFLvrzJmnii0AkZf+CfUD+BARA9GBJiUKCjsUyuWlrBmeHJsZkskTeGqJkg8TAZJ1nXpoKR91HhaSKRV1lB3nbZiyZ/wVXme5Sz9glpMY7TwtwuFGFHxpxopeAkGYw+ePFg0ZoO6OCdQhw53T5cObQZzRRJ2cQRUYnMGaXerWnX - -nvS5SjmMuSEMqfp8Sr6xy9aqEl3+3jbDII2QgdIH6Y/ZTxkSAMIAQ+FqEBQAVYBn7g0AuMqGgDeQahCaAH0A3NBs0M6JuiGEufac0JIRNEQQCKm2abAwB0ibVL3AciLZwHZQKRKuoU6B3SZfkXCWM3Z+aerJ6T6suRKu7LkCkXdRno6bTlfSyBlGyTdZ9tmbkvEA0C4eSRHeYeRG4I2Uv1GxIWB+uxCLqHIIJt6MmSne7sk5aXTirrCqgWGJ6dZg - -kZGJEJH+we9pgj4BORaRfBlGdgmJHq5DRuouFY6jLpMunGH8mW+WNNEioN0uEdlxib1Mdharie1gcjTm8dMum5EGiLOsD1CsuLu5Ej6HsMLp6jCUAd7Abc7NlhDA72TeWAKZgyESmbbMx0mvdKdJojmCOS/QYdrz5HYWvzLEIQa5NimVsN/EztGdJijZijkAebJohOB49Nei87iIgZnZ6dmXAFW47xGrkY6itYnpiag2qChZMEd0mHhMWClhqNnw - -2eVheuDllryI/XQXudK+eHmkIQR57Ar6wBcIyrD7NO+acNkUedo5kxgswCpY0+mJ5Ax5OZEriAfEQqTmcGt+elaU4fh5THl5JL0GL7DI1JTRiAmatMgJHUAKtie5cyH+2IyIRiyXuEFASPRlkZXex2lqCGNwXEgLcGMY9NFRWQnZlRxZMM5EIabJGAsx6i6FiZNOq/zI7O/mDfqWaS8h3WnSmbzpIbnOXDjS3ax06XHZD25MeU55vVaLaK55unn9 - -aR2ZQHZZygPB/0rUqBGQLEoA5IryUmIzfpRpBvasYklE2OqPOk3C6XBdftnpafoZWZBeAMGSjCzSsh73VjnpEup56XxpJzr3IFfO7QpUXDWGWDgW7pMKhLqbMlV5MqI1eUL2Aur1eai6B6BBXFj0Mm5rICLaGtJIjqKeSRrkWgPpQ3CuhveZZb6uRCXpUuTCaT1+90kTmf1+GDg/9OI4FUq7mrjmofLaPv0GGJyJQUe6Y5ranjCcztJS4XJcBQEk - -qNQ54yhVrNE43+D1CSzWnKDXwEa6Qrr0IfCRLymIkQ/ZXVkOuegAB3FueG+68wCaAKMACE4/5EUm3FqzvrcYfkZVcNXUtvEpdA9oBTZnxFGQvYClxCdu4GGEzpCgOcD+OH88cT6uafip7mlG2R7+zFlkqWbZp1mcuQW5WGFFuTDxBJmluQK58QBTlpgZLGRPFop5feQkQeAhnfLkoEARX1kgER25CrkE8edAyLy9udneGk6cmXwZfJkTLvq5SUmM - -GeZ2TXa8YcOBXPlmeUophCkqqdoktXYddj/WbBk76EApSZEhLk2e5WlLICDh3H5lqUjpDNG2UDVu2jlRHqTRMx7NYBTRbkE2/jceax4jakoZGyy+OSE5jWjg4RSxvew20XkS9ZmlSSmCWtFfYCtgJ5gv/g9p/tSmmeE5ovGeORjcSNlsVhwBMWaiAeXJDTnfkTYWBckh+fFm4jlBDg6RZiTG+W2ZfvlJMSI5sAk66YMeQIHPbomJ5Tm+Yf+WydGZ - -+VO5iplRycqZm+Q9zvn5pnYxyWx+7hFJ0RPqyYkg5PMqMxpIKUVmzM51+QnkUniN+UIZmTlw6Rkx/Jn00S35CtCUeX/K0dkpmbYp0Q4VSVGeD0kxweWOIy74toLR2akt4Ide2jkgntYuxqY2FlYRZllu+SrRvPHFOY9eIr5K6Y8eYAkxgvWZnkF86a3JbUnSBOnZPL5BTkceLyG6SVNJBkm86afhR8DD4C7AiCDlqUUWG8nMceOxDVb4vKNgrGi+ - -qZzpkAwMgYCy0LHTiaKUlSGFmlNwl7n7IMLx7jkNQLPJSPnxqZmphhEjodAIiDlhqZAFnETewBOpgflzSuGpIILSfpJW1umH3pNK6gjR3u6iS4L9dpJmLO7lCQ1ZvyEVqbLJkCmuVNEO1AUN+h/+YCkf+VWpxNntUYTAoqCiwEn0oDCRVuMoivGGbJ6sP7hbfKgIO3zHKEF0nTTQvN7c8XA64S+CzgGR6UHpBOZ4jmZcF2rV3M9ZrkRbmjaSX3qB - -hgLU/N43OQtoLXRsQN7p03k4DorhXmLK4XmG0EIFhsm2nWjg1KM0TNK46kj0BNbQMXyG+Oou9spIfvafNAd5eb4A3sDBQN5qnpYFzHjAIQ9WYen+xkScuUjJ8mSc0uwJSJtwrOyS5mPJ0znFWYrsM5mLmTLkU0h9SPLk0LqfajXpupR16eUMwCLHvAnywDE5WUFIeVktkFBa/umwWkqeuNQqnvgZ2pKJ6b+aAYafakEa6zlUjnUgPOzbPCLsi+Jd - -yEgQkbbABM6e6gjtBbDI+zmEeFHyC5nHOZncjgVYtCDBFSik9GUx1KANFna5D3kIuRIAekoUIHNRWdCnfuwEgPywgBwA6LnqxKsM/3njoiMgmj4hIKqgBTZfqFqWZknqQLQF1iH2TG6pGLHAiBBBdukT4DngvOB7ghm5lklMWdZJx1mY+Ry5+bm4Pty5j1G0qTxZxDm3WX/BwdZVuZbJ2UymMNbBU3g0PnlMK0j1aNJZ9GEsmbtUB8E+ydARYqm0 - -/rz55pGedmKZfk7ruVTC7nko6ZXByTHM6ax+UplMEQbxjZnNGDWZ+2nx4FDpRjnAKcIR6DJDaX4eHvnWEUdpqfkm0QVed0KyGZlI8hlmYVVW1ckXyV2pcRSHYYvWNlg/FmRugVBknKVA7kAKQW92QyiVcKdAb/nfKBwFW8l0hitefRZ+qQlB3OmzaEGpHlnTaS8hJdkBqSaFzOnU0ZJBK7nOWS+u88kfIQxAJRab5qfmzS706UaJHDaetq6FjY7b - -5rQ2XoWM6T6FXAUoobE4RzLA2vEp39EgXkN+f9FieLHpmgVqBaIwDyS9BuHyuy7qCK9qbPjRjsnsUzip7Hhatuw7GcRaexkZ7E2kqazLPPTmOfJcxCM5jUhmlPAQMwktkG+ZcXQfmZtMcyqEHkYC6s6wsQJYXhjQYc8pdxn32VzZ9rnrBegAyYAtAGdiQgDbAHBZGdDb7GeQnCpg8JD8/3ljJHD0bySiKOS57dSTgnLMUUg0QpLJ/crpdjyqGMgQ - -IFNOiiJEvpTIksBSQKj5kVEoYWy5gIV5uXnqYWmI/niZkWlEOYT5b6bXAeM2D1lz9i/wpcSguITihWJroLTg3+DohT9ZrDlJ9MuAIdlqucDZ1hJrudSFOll5IeR5nHmjuUSFlIUiOZZZhrlMgZBF/dnLqR35jlmiHlWZEAHCPvI5i6n2EdupVjnAedGRYQXIGOM+grHERVfxEhTg4dA+BpkJyYyF6UkHIXCZOL5eOVIpyilFLmOJGckVbCKZHZ78 - -+WmZ2VadkV+2CgpZVjf+QkU08cr5o2bDoZ75jjmWYS90B8xmoNiF1BHUKQIpRM7M6RO57q5y0Odm+pmtOXQZfPlmdnU5JTlmhVFZJ6lbafU5bEW0heTh2fkFkaaFI/TeOZtpJqm5+YlZyHENwb+KKQHLgYgQLpIgBNHppkiy5NkFuXAK5JkFGVAzSIFFy0j7mjtIP7j/OdAMdkg5BXpIs3nnaP/0V5lRhhe8/WhWcT+CWuGXgl+OPenyBRGeigXu - -Ab9B0QHKcpl57rapaPGGvNrten3yRZBT2WOZvgHrvP4BddyyeGBaegm9mRcukXwBogrgJvY9DJ2AN0jEeY8osLmS/vC5xcr7kHZivME3kFAAlaDyEDzB1s5+cuyAUTCwgHTQlbkPfpuGS1iH8OoIJ2rQeI9I1wViiA9odwWxwJqJ9XgU8UHOTTDvQFdUqSCBWo1AZ4UBaReFOblXhf32FtkOSXeFXFkPhbbZv4YTlquq2WJNQIco+q7hjlT5/+Ga - -VrskvtlOwf7ZjPmyWb9ZLqDA/iq5KCHVocgRPPm1kW2JvJmQRZhFurnYRd35sMUp2XLQZ6np2dz5sy51mQn5Hjk6+YjFxILtqbhWix4wxTjF6/zbLhF+lUEqhWTF4h7DyalA9zRnRWXgjUDt+Vg2DMXyXGPJl8Cj2ROhbw654HMy0NZG4Wiy4ja06rpE6foZedjU2jYNBWFYw3CLvDN64nDleU0KH0GmQrTA8MDb4pbUUnirBXnGR+lk0LCAMtY7 - -2lOAuK5SxHAADQAHkDme+aDs0F54L+mQqaQS4uh6tOZuCDCQ6OVuHxprhfKgG4W/iefBYhnjIUy5e1nVaZdFfwWBaZeF2DlwGfdFt4VW2Ty5Ntl8ua9FJ6JokUL8muB0mQ8Br2J+SejGZzR0+Uw5WnZM+cGJrLQVUdDR/jEcmUDZbc6BYbjhChnCOYu5Ph6NOSphoTFIRW3RFTmFkSTRaNkD3rjpiz5exdjZH7kzrnjpzcV1xYJ5AXlv9o9QthhI - -6utRJFFHKmRRGEl8DOQQhwRUEL3gvpSD+GKgP/Blfs0gmsX6zkNF5ASsMQWU3rnLhquG5oxqEKQAWwD+5MwAjZIYWbzJoqBp+uAIYOAP0NcFREDq0mxcc1Qm1oFRu1ktyZlm2fp2WX7FWbnQGTdFQcVYmSHFeDmcWQQ5Cq6RxZJ2b0Wf3k7Z8WnWMeleDMDRIQ4xF07iWbXQO3SvOqnmbbnqkQHZmIViOMSAoEVCxuBFgGJSOQkx7YnQxTX59nlX - -5upFE64YxWnZGoZH/ib5ihENWgNWdqmXIXnAIbHShlyuVMXwfsYZuvr0JRVBjCXdxffmjqwh6DHsEXjlhQTefRmiRFAE694kWlOkeXCrYNXghJTURPEGs6QSJZpEVWjPNIOxNnIdSJimIqBqAgvFkbq1GiditQAtAMwAO8VnkFOA9CKu5INEpwDTvshOjKkmaY9+hsTu4tjBB2Y4iaD5Q0CgisNgn/DMXvBQ4n5lIbFElkLYqfU2LvlK0e5Yz8We - -IQHFb8W9bjg57FmW2baJP8Uo/qgZU57lueIOsIUu2YOIh+DJtngZr1lFCPFgpLwuyUDFJP5kGSw+2ZDJIKglb06DuSXF9yYYIUwZBSEE0UqwDtFcGczx0lad+RDpQRK4RSt2gElB8b0xXc5ZYW4ltjnwpM5sTpGxYRCgrpE4RYiAcjmNJdk5RNKNJLlINz5eqdWZ6UmhftrpAoXwpvnZzSWmYQch3iU60e5YOYllJRZ+xNHSRYrRyyXu+fBFJlmT - -YVi+NamChajFXZrFJWkKjZFNjqU5v2kS0QhE5jmyOKwpzWnEAfQBLRaxdrb5oyUVyYqpRcVmYS8lALFvJcGprTHFxS0uwyVY8WdA3MWBEXCRhHiJTlicRI76lN9qVjidBQ6cafJv4BnyuzzYeJeaJOD9mnGmGaYF7IEU0oiE4NlALHh6vqBSxaxmkGCgwPSbKbviAvjVrDwktayK5n+SpN4q5onyxJwxBVCRXQVvPLjIkuwrOfM8i6SLoF2s7uzM - -+Li0OhIEtMdwStp5cLLMZ3x77sfeGoFUyYNFi6roAAzQTOgcAJcAmAAWjMmU0PCJAMgOF5D4Xg22vDFbhrDgMIDYwHiUwEWaisW6bZJaAr6xxkivNLLBr2KhDutp8tExRoaFZAVABbZMYVHnUYxZL8XmiVg5QSXBxWdZHFkXWeHFhDkvRf/F0cWBjqT5TzA9tu8g2oSfEXj+UiRYBqnFpBnMmdkli2AyfJDFylmwERn5k7laReLxrPHHaR6Z8dkt - -HrmluJYzaWXF4fmWkT+4M/4bDnOpxqY+qZEehkX10UQFGYhmOc3RoEh/Pm7OA0BbWbgu8MAtpYeu86CXPseFmsCkvuR+BjkdFgoe2dmyvkQuhlmhDE1eB64jpUeF5sIDpcGRu4kLqd8+XdHPdvcl0mGV2YtevWnkhVYOImGzuTP5YIGmEcHR1fl5OWoeydn6OdUOw6XppZpFL/i0RWle9EVvab3OedaZpUwp7cVgtkDpp6VauSk5tBHggcMh47RQ - -6RoZ36UoOEIpRzEzEixFptGVpa4OPO78hYclsyU6Ls4u8/l2pZMhKkVE6axABCENIenpimg0ETQpP6XsJReOt87OcFBReIlOGGgwhIlJIG8KPG5sMPxRGcKCUQKh5ync9rYYVykUSvIU9rZnKRRKJymHBqxlSwq4URBK+FHUaW9BokL8JUZY5zS86mZYoNZCoo2aov4e4vjaJNqSZT7yxNroeBDWKLzw2hr2gsUbwhtGnw570UhJkSkLCoBKvuGW - -nihJpEkSUY3sCkhmcjUZ2y51GY/O/MCfaLTIOBBp8Td5vYWc2Q8Z3NmPeTOgUsR9AFOAb94BoGeQ8kzJgAzQtwBTgIkA8EANAPMAuZZBufmWAPmtgZIE6CrMYcpa16BrGlx4uIEuCXtRpPYHUeqQcT6R6i9Ip2g1KPmIaDkMWZm5/iXXRZ7eL8Hg8dj5IIWPReElcYEmwVElYf6iTqGlcxCr4lSCZ5RkQYPk6Uzi4PeROPFyuVklI0IBorgZKaXR - -SWTxfsExMV0h6lknpd8hXWESYZ5ZeJbw6f1pQPY6qbqQLYE9JTc2ZCkgNvUevBlT6H6hDjkVXstlrOG5dm4eZpkaCXOlDdnrpU3Z0ckkVvXJE0HZkOgpdmpchV1eT5isXnBhjanaOe05JaVowCPJuLoCBVzFSmHDac3ot/nGiZw2kFwHqf4e98WtSY/F5/lpSWCeQx4++WQlnlRTpSq2Ch5fYdhlQGXZSWqZ7/GvyHuRfWE2BmLRc66XHkfxg/H+ - -VD2pggWOkc2BVaiLZStaR/mIdI3RzCk90bzpIEG1SYMWzFGpYFDlHkF/Ht/5G1ZfHijR4oUdqaTFPgpLkSTFtcnUwNeRcinJGBlg1G4LQVimaWVowPmp0EF/IFmQouXn/uLlkjnMwLbWjSj21nLlG0FU5L1pUuWW6UWpEumGGVLpAjSOha5ZCAFXDgCeahm5Ge4eJ8YviWYQS2UeToFOhx5jHsulVOUt0TTlxkHJGHVJDOXJhMTlSL69JS/xruXL - -ruBBtWmk0QP5/ZF25dxe48GnbkHlQnmh5d1JafGB0exFTFgGql1JlOl2efZFuGU2loEp9pZPZCW+tNaU2dqS8UV/9At5hHjxhXXgWgWR6RW+YAQBWOhaIhoR6bjmj1aOktOa1+Dk5oyOtpRu1E+Zpekvmbc5X2ww5E2F1fIhBVbSzem/OVN+p7wT2Z16Rp59mSCOqN4wsp85D9Egrr3yAXBVRWPlKJSiWJt66JR0bgN5iDFORMN52pJ83ulORgWf - -aifZopSn8OfZuayjpHSESe4uxmDqjECyQIZIp5l4pe0GZfqUREo4pERulhREXQbEpSsB/pSH4kF08ggUoLkGwVgaoae8lUW1Bovliu5l4DWqJ0Fa2qXc325PMhKlbInNAdKlzmWDhRAAhoA6aQeQWdDKANAWqPA9AFnQapzuQm4+QgBBLP95iipcIOFZ4UiGScpa8onBIHFgNeAPBValMdDG0TBlIBmKIkzlqx6Nliy5r8VFZXfhJWXAhdGB94W8 - -uT/BaBkHTm+FCWm7CG2QqwGwhs1ltdBEzrHgsrnQfiDFgdlU7Nj+fWV4haghxyV0xZVp8NnCmfQZVyUceTf2WhUdgSQBNmFUISyBmwEn1lU55nkcRfR0XvE6+YFeq2UlGQUxdYlO8UWZ7XZBxkOiBNnCGWyBKjnOqWo5ivliOQSaLTkX1oXx1pEVpbrYqpnGmajls/lEJVqZlpnNXqimjaW5Mc2lVZlNmaaZ0yWMFeYVYvnb/qkVDi6wZcn5PflD - -JRDhr2mJSXVpn6UNoRul6THRmTUlMTmE2Q3FFRVYRcUxcUlVxf1hg67D+boVwM5NQd6BfGHvuaTRvJmGLs45nXYPuc8xTjnkvi45AxVUhWnlWzLaoLsysmVdmclF1UWuRM0F/obHaPnl83n3aABeMYVuGq5E9eJekhsV2+U7mQLe7Zpt5WN55OShcMPsWpIKRoC5AK6wsvmGrOSxvk+CMxhhAflFDgEKBQ8VMGaFRK9KqkZ1BZJyWuq1kD7yS5pN - -8iiUfenJGtVZVjgcUdPR74rFWC/4fnB/JGDKrQW3GRy0jmUCjgOFS8UVAMsmhoDz+jwAhoD4APQAB5Dq/sQAbAAHkIkA+aBbAJoA7kZEFf+E20ifKIqsnUIiyYrJsOiyeMiuxo72RelldoGFGLfJ2Drg/o8GpxHupZg5QWnvxebZPqWhJfg5/qW/xQIV1WXXAVnOwhXWMZBQ+5k5UaJZUaUx1pMY16KxjsARbsnZaRnFXbkhIM6xilksHioVOCUP - -pWX5UPkaFaQh6nlK+beehTktxd0VUTkMuUM+ENmS8QEMcHlIxWh5Nl5HlsUVFWm/wAEVV6Ux2ZuuBC4PHtaQ4r6lQf3J25huSE1IrMUuHIfJZhnAGaGVYakSViWQBAXRqbslLE6q6dG4bmkJqZclIOlqLggFGakaKSGFQRG0qGQCvKqyWNxxTlzSccVZkxgxEfpYmmVE6q4FzvYKJdqS1NkfaK/RCemzmknpN9mGklt5up6u0s2aMupiaYGQPpZz - -YgaQGUnDGDBsr9YLoWxJ1MG3eaQxTmVIlbKlVQABoPP65tpFoMmAlNB7AOyAJECSAEZi2IqHAKmh5iXLRZb4tsVsOF2QBLwzOcB6toEyKjKgW3RyoBE+8O7T4IfAhwbeyUy52pAxlZGpbDD3weg5UBkepbyVXqUfxQKVD0VhxWCF3FlRabxZYpV/wawukpWZUcqRJOZTePKVR8buVi5eAEUYOkBFxGhq+pFJMNH1zoVp5naExbw583b8OUThhIXf - -blml2H4jZeTRZRWbMZ94l6mq+a+lm66kFrC2YhFEwDyFm2WtqTaZZ+GDQfaZd0KyPvr5MmokNi8Fnqm0VIFBK0Ggbi/Jm6Yy8TumRjm2pRhl0MB2JPREKuUFrBLg7RXWYd2BFKwlZuFBhWYl3kL5RhWcVeFmGs454KpVHRXC+fTFXFVaVYVJY9molCvlmURDPPOZ9T7TBRXckwWWVZEBqpRclOqUBQXQMZ+4Lkg1fKyckRrclE5VgOpN5aDqVOZw - -5H3ltjbCpaFAW+JVIFRAvpTo0pxI3bi0oDve/UUnoYgVyJUSAEWgHAB1Tp0at6z4ABQA8wDHfoQAfQCVoJgAc1Hc0ItF3Mk6pStF0KlyWK86iRieUTiphFm4ugwaIGFbhWHkc2XLueIIM8i3Bsg5cgH7/rllasm/BdyVmskY+XyVWPk8FYuSfBURxaKVJsnluaquYFWNjHWGRzTcLm4h/1EZQOpALcFrljpeCaXdZbPAt75s+aCRmSEDuRL51orY - -xXJ5kqkQflnR6qCeKHs2MJYB8SHA3VBOTgWl9nY6+f3xCsEFwTJBXdlRQU1V1H67DoVOC2UiVh4yPxavVR+R2TErpciuvdE+Dtlh+cEJfqWZvUjlmWEIlZkMRQw47XChGFRSlbhspn2l7ewXMVP5U16oAXDuwfmjKNwBizhvNqHBKn6Evr2lh2XCRRdpz2EkKYWZFCWYZchlTA6oZQ+2OkW/pSZ+btF+0R7RPYEmqUDVbTkDdhdVPcDm7P5mANXU - -5ZWJXNV5wJB4TCm3Jc7l4xX/XkDBYzRyyY+ZupJHFfckzcwURPP+aYWOJS96o5qDPBLh23mWNinpA3qDmbTkS6zwsh85ddzqks5Ys+Vjeo7ykI7eAXG+23RdeYWRbHjqQmCyQQVqkl85ZxU4DtY2ZPb7CQm2ssWd6WVEN74KeIrZN9BqJZD6CfZboKQAXMFbALUATQDJ1BNEeK7zvocAVYCEADwAoFU7lQ7OqMz0SLzRsCTJPkn0nbZ1qAmQ9+DP - -PkKhmtlwPgYVTyUHhZ6cdhmIocal7BUflYHFX5X8laVlvBVPRfwVeGHAVfEAE27CufJeUpU3ChdQChT5Yg25BZzhGa4ojDnxpYgliaWW1NnFvsk7NnDRBSXddrkh3S69FT0OZd4LDrTFDq4NSUvxPEXaFZ82Ff5B+SIB2NVmPh6xuFXGWf/lTlb+maagbplyVYYVClVakDmm21Aopq7u59Ul1QfJlA4RlVChLY5WYRfVLRZnxE/V9hnZlc5FH4mX - -ehAxN3ohAfyUoayUjuMFr7hzeWtY3r5H2QPYhaaQNVI4uJSrPDrs/0gLOemqrZbDwIpSODH2ZfCVUqUAFjKl7ypOjNy8+gDQ8DcYjAjj4RKJ7ICjvsekljFhZWrWc1RVuESxDjibcCqJxrwawPHBq9EwsnQVtt7nQFIgST4pPgnmTJWIYVyVBWWhgYElPv7BJZ/FQpGghXj59okQhU+FUnZh/lbFk1XqhLBWh1TcLnHeXaCMyN5Y/okrVSPVa1WW - -oKpOE9U53jtVRWnQRfn+aEVyRYOB79WjFY0VTAU3Zfsga7E6uY7xIhlKtjwkvXB/UPshmYl6edo5XDUCQH6UpYJliZUumJaGfLjSvjVfid8eVhSp5TmV4KXP0Q2VtNl5BQA1wQGFBXg4GOSNkCaS0uGY1PpylXFdCcVY5nBDjpkwfSgV7D2F2DXsibg18VUzlYSVU4AwALgAbAAM0PEAbQDCstzQDQBmUSzBQwHgFqMBaiQq7NPEuSyLpmMkkSYW - -WMfoRCDGjvjRdyDjYRUl9qVvZUzF48kA8W+Vh1m9VTZJt0VVLJ7WXLnlZcKVESVmMS3VeB51Zf3Kuq604FYMeVGgELraBA7wJd9ZCFXg0fDVHT4oVbnFgNn4heO5o96R5cjRAM4xYZ9VbYH31S1B+9aHYRmZUNW8maUlIzWE0WM1FMXhfqwlyoVMJRNlayVE0aaZU8ls6ZgBHllgtf81GlUcxR9lLMUwtb815SXBKTFU7MWjyYi1E8lO6QB2LkWz - -BKcJV7iGcrc8v/j3PBPRZQYHuCrsx9x2ZapapznLlizejELhhXK68eGXcMwwZNm6kBSJrIl32QiVh4FaxU/ZUwwouYr+TU6bgPEAUTBeRnRQ3NBRoIkAbQDJgAjxydWwLrOWa46dBpxGLCCqSTgw/5A1VXPkDcj1VZ74H3ayQHshKum7WR81kNW5yX4lyGEiNZwVmJl11YNVReaN1SNVzdVjVWH+M57t1RlRh5RyhXUys1XJJV2gBZBxdHGlnWWr - -VSNyNdqhicoVk9XoVXARDP55IWG1KdFmNQu5e7mv1Y8lbzV7NmNOeeA93JF+urF6EcNlOFV1Jf0leEWDJc1ghEXSGQOy4BJuNSJ4BdZo6Qup4kG7Ie41BrXPUmzV1IWyOTm1oj72OZjZg6nOFXg2uCSFQBdQ7zXLYbtht2EWRcm1kIHGGkthcTm9tewZYLXSqbE5l2k9taQpF6kbYYTR47VZFToR3zVe+BCBhTBuvrzVTuUvdo3ZZhh7JAOxRDGA - -pQUV96XEVW21O7WdtbelUj49OTzFooxHwoyWeRHXwphpicYlCoYahFHGGsRRmjAlKaFuCZDKZejBZ9FKoPqi8zKa9phJYm6nxlqVpQp8ZoRKEUQ3QQcqB9EEch+1BSn3td6eVNpLMvdBX14dSC151zoYuicygeGZ5cdw6UCE8PAI0pgKad3h9xmIlWsFCVXoAFKAvMEyjpIAgwBRMIQA8QAfeQm6m/JXkLUAhVUHxfmWo0AD2OkgJRHH5cB6GrRk - -wfVsq8AdhuBhspkYIdW6gjVqMcI1Mc4vvlwV4jU/laHFYSWrNZVlwIZoGbJecWkiudYxQuSN+vYxx9SLbrXQvKDD0LbJy1XFUfIVLJmfQJV8IqlVUSG1xjUYVTG1JyVY0btVQ7mY0SFBDTyXtZXs63AmiGIC5ESB1c9GAtZngL/OZ4DYAMwADNBK3lEwWdB0BIIq9ACSAIcAlaDzACT5NDVbhmpAhjCQwAeg6nDgmf8m8LyNcOh4vJCF1XXQkUBh - -DlWQOtFKwYnqiebR0R4RprWirgElFrV4xkCFN4VfxX6l/5XPRX/Fyq6lPmHesSXkmcgiGAjZoQ4xXYBJxYLstnCyFQGJapWgxcx6RUg9dRZ1UUm6lSpZD6W1oRG1mikmRbL5cxTJqWZh+1W2Tlmp+14IZeJVK3Vymbis+NmtFUmQ6nksFXAFuCGyPup5NOnZfuvCGdkmFb+2NuUzuPChE6QI3iIpjjXEgZ4V4dh9uJlI8WDdUGEgnjX+ebbMvLHi - -wPyxDzHfdRRZKdiy0G6iGiRrWOvON1WpiUmwHGgyGNWsh+CPdVD12YkHCEj2yPS0hOi2bWnVMcD1smiJ+sRA2BYuFgHRE2VBWd41U4gr5pdQvRhLWQ1pjhXONWK4G8zRnjgQMAQ4MLWJTjUvdczy+sBJYP4C0jEXdbBFehWi4PIkAEFRwlqSncXGlYmIirUUqOW6iAyIRaXFyXptJF5A8DCq/B1JW3VKLn40m0D6iIPVpa65BUVpfYhewLAkzuxd - -QEOhzMB4xXAFMpl18fVAkmYU8D/g0r5jRjGMkJBqQM5c/2itidmlK4jI+Cq1opQU/sYW4pnNFup5dYKTrgV1sODyLp71kNknWnl1BKB+9XLgjvU8meLVTTRtfHJI+kg8SvUZfqZFEQc6GvLCbh8ucNpowafRk8IKov8cfOrLwsLF184DwpJGRLUycgiONtW/mepAngFF6S7yqelgjqlF9iEG1fdoLemdGZcVQp4XFfYF5xVe1UC5Qp7vFUpGhvaq - -cI/R8uEzFSlYKUWBkneZwZLIMck1DcipNTt5nsZ01HvluxWInLuZC2g0jo10kb4r9Uv1I3mHFV2a0uS/Lj31Ip6XOmh16LoEwSCguMkv1CyghMmxVZ1ZvLUuZSEwewBQALCA9AAyjjeQWdDu5NVOJkrzBk+B2qWyiYbE2FlnQCMoIrrZ1YdYb4xH5A0g3yzOJV+hxMWbHum5nZSWhcaFdlDMYVXVPJU11WI13qX11UNVtrUBpU11EpHluaQ+WzXA - -gmqysDho8WegkhUaNcGmY2irAcc1DPlDdYHZZa4faptVoqlWdZz5UYlF1j3OWOkQlrXaJzYGlSjZxdZsDZjhKOCEEXIeT2ZPMbwNpPRkQMhFrBmVwSINxPpiDUkV0Nk2LqeRV/by8VZ2lqCzadXRpqloEYaQdeDWoO2IOvmbJQxVHyZ7XjM2sApclJOJWS66iTOJTlZ5maowWqRGIEZBSeUWHrHlTFXf0KKUZ3q7JA/Je/l+lZyl9G4tSVqgl0yg - -mfRVzbVFZtLJi6AvNJUg9WEqmbLRG3VT5VfJJWZ3hMVB8WGd2UqZqKaf1RQQLliBiNMYrhkCHlwNai63+aKFw8ALQFaV9Q4biSuRQHj8DRY13zH1FQuu/9a4JFCIiCCcDZO55fl6QYt+MZBLBO+AYfm9Qcy+4O41DeKm2CVQJmZF/PG2qcJw78j4nKoN7dG1xW1BO0CHDHEg/jhR9enMO8Ti0C7AjHKPHLkpTFEnzm8uqfW4ckyggPTtwZUpByCw - -JBV5SsWXgpX1VJ7q6kPpI/V8YlKeDpRq4XKeksVSctLFYK7vOfdoVtUicoLa4kJDOQr26vKa4O8u6nhKiF8oAQKkZVxw7jUqOOJxooHvCfHK0RhfCZYC1qwOAkWOJCqEwK2qOBChcdd8tQHswD3gDQGEdRxJfYVTlaR1M5XyqNolbQA+uX51TQA3kD0AhwBvoUNY4hCJALVl8XVLWGdIpvayeHMydhCLpujMLpL+km6m4A129LPV9v7KwSSFrTYz - -NcbZczUAhf1VNXV/qpI1KzUNdU3VrknmMYuAzUIxniv0uVFqXrXQl6C/Wndk8FXzuiN1TaQRSTnFnDloJYZ2tnU/JjBF5jVqFSvVlcXS9Ti1L/Z4tU/gJuzgeAHs45UOZTg10iH6oXy1X3xUMeuqWwZRMGrIcABz8okAF+lFoFK0ErQhpTSNlvilQGIIeJBIqIMoqrWzJH3sh+KXoMcRWlqP+T/53ZSv+UPG92XwKSg2qwGIDYKNptnCjdeFoo3L - -NX+V0jXOSSW5/LnPhZoAJEAR/pSCVSiRpXQ5sDYHuGqNSdYajQgEeSVT1Q51hSVnNqu5RAF20dnRTRkxMVINtCjUhR8lhdlp9V3+06nY6WUNMNU/1jbIw3BDSYnmK8CdgOgEu5KiVQ0hN6B3XqgQTJQ/YFfAS41y0SuNV2H2ULoYm6FMoC9VdoXNVbv5fXa1DT6RrbVd2cUNw5ARIOz+ZoWJOf7R+9bA5Zh4MRgJGUb6/ckCMApaFlg6VUOBmTDW - -Wd1AL41eAs6VPV7YaGSUTqx8QteNGcxdOODlGJ4zVs4NdUjgEiGxsIEXQPCBu3QK0WX6HyA9wLXRFTknaKuN9+DrjR52xYps1cTRIJ46cHOcLJA7IXq17jUmAk0lygbaDR4gME0gsVOcBJbBGtQ2TakaWesBQv63HDDsFclvtl2Ne8I50dUlviBLaNxNzzCdjWHRAk09jRqpJTQiTdpRYk1RNWtGXeIWcsXhkvUyoVmqUSkCgde1cqG3tQcqKVkC - -SifOWHKH0bB1TmnlCsjBbRlbbokpFSmSRFJu+u7tecWxSHWJEQ9BaPTvDZV5cXlY6uxiiXmcYkX1EMHt6f8u7fWsWIPl1w295RbSVgUe1UNwy+VBBt6Gl3Qq6is08uEiAkpYlXpiGhgxuyh6oPEJmDW0SL2uJj7aeC6cRTWT+pTJpTXTle8qRgC8vN5yQe6jAMzQvupyqLCALHUcAJoA2AAxJUtFKdVb3MjoFmma4DPAJjCRjTrihSAEcF9AzGEe - -+C9pbNHexWf+JQ23jUwemY2kqfM1OY13RXJ1dXWIGYA6drVSjcBVHkAtcqy4dKFwBl6J/1HqWiT6gMUqlcDF1A2mdQCOzY2htT9p6ZVS9UUlBaxfZS52abU6uVxN2lEHoG2hOWGPVVT1t02n1TINwTXb+eoNbpjHZi9Ns2LyPiv+jUCgedUV0+bVxTn5XXa2lb0NZVD3Ve2hT00G+SRVxfn2lW/VD9X7JXleStIM1XYyBtGg6Yd1dv4nTXsl+n6x - -ZjjV+9W1FZY1SM1zic/ASwUPQEywwGUwKVH8ezRDVp1BjqkjFiDVxWGDDXTNDqlShXmR/Q0tiSUxZM0LiX6iRE0fTeMNCY3kzXzNsw2oKqlxHazOGKVxTyhZTos49lC5TreKKFH3iqBKKeGkSiI2GeFaJtJlCmXpTeIIcYZRwvYBrFgnFcb28uEJwCuZStUBWEt5knhrmQtoOgWfeolFizRAriCcT9HCzp5wXCGnfEKcn7DN7BYg10Y5hVUgAQL3 - -yN51/NZSTD0AbACVoEwiSv7cIvbmAaBa/geQQgA3kEWgmgDPEUGNSIRaoMbiOKEAHlpYi6YXsSaISIDK9BtVWlpWEV2JknCl1RfMQs28zdi65XUhgVJ1GJnVdbmNGUZijQWNy5JFjQT5JY3yNZ2oJwDZYv2qJgJwBjCGcf59sjhZ9Y0sOeoWxTye4EdN1nWxSVUh8MUdLl4gdgxIENI+FpX1xcDN22VBYdTNOrkVDbUlajyx6JONksEI1Q4Va81a - -qVv5ag21xavNsOnrzXoyIuSsSufibkCoeSfN+813CAXNCDny7IHlC81LSSc+KAWL/o/NzaHDue4uqqB2YHqgckhIxSz1ZhVrdWJV0Q2i+YE1CeWDpdFBXHLSQTy2khkh8YwFsCoUfseNMC344SnJrzYgzTZFHya45dfxp3Y/zeeVUyCrjYMWzxYUEdiB7SgDSCAIoSCwCTRVmLY9gHYu5C3QoJQt4NXlsRkgOtqhFhfN5az7iftlN14WmcAt6GXR - -DSXJ+M171ajpqS5bzfDV3L6R+bvVofm7pdP5ERV4zVH57uB4fjAQBH7ORAjOpclxZgotQOn41Xaoqn4SLWXJ0fkKTas6gyjUVprOoyhhebKgB2C/YJUg2SCh4UoI4eE4UZHhPGUb2aUK77WvtRvCX7WZ9dlwSw0SZSxymemvOql50JlaWCN6SgVseLJy1hoCTHLOOwoqzht2BmX/8BdGXpRCAopxVeHuoh1xQOh/Cm2GJMH8cUz208g8dYdKOqTW - -oGRYfyj6nkAVzUWEyVUFcRq0jvP1v8LnmeBa+SksROSSjp4ulr6U7aRd/JGIyhIYjROVxHU8tYvFM5XsgHKoSBZ+LC3SRwDFTej6bAAI8FAAtQBZunK1zlFh5Cgko/og6rNwrPkUFQNOCSAmtvowGAiVumDOfDU8jYKZfXYVzY/BN+EHATXN001oDTa1FWXGwcp1S03aMW11SPGyYBLoh9TY2MiF0LjqGBLsA81p3nTixTybauN1qFUcPqoVlNUz - -1Y+5pWnGjV9OTSGe9URVPDkTzSaRmbWDZf8t1SHYZhkKYKVrRnmkPyjoAsewRymtUl+4blVlDBUofQztIPJIGcKaZZf193nX9UgVahBnkCeAmE6n7tLIkgDYAMmAXQANAB5lUTBP3oAlbHVq1p3yToDCOJygqaSRjRambqA3yVFAz3GqCAXJtkHwvMCyFMyQtQ8hSD6upfllZrVVzbfhlrUDVbV19c0KdRKNC02RJQ61bc2JABj+8wTahJK5jbm/ - -MMWQFIGvLQCRjRYb8aPNTA3T1aY1C3VdbElJW9VYVbJYYK2AiInme6WyLbvNN80hsc9lymEONf9pUhmHSEI+DSWNtaqpVpEtDsXxkC2/Vf3WXDX4TQoRxZCmVm0lc3TgBVNgAfkAzenZtoVTkcpo4a2yEZGtvQZ3jXBlc/kzzpt1Lg6mBUcGYCDYTaDNAxUZte0efSFpZkj1wQ7rISJ+aWa9iZzRrQ4lrZgthCUl0YUGaM10Mkgtqa0njSLVTaVr - -pbY192EVxbleafkCXMGuRfmLJYdpXvmXTbdoQ633abyFU60QZQMlAa3O+ZOtskXvTYfNvd4LtfleHa2WEfA5o6FL/rk0WGWqRZ/AB3WkJW2ZqXYI5cetHazQscKtXHXrtaLViRUnHjFmt63dhSWpG7X9rXepT0kk2Q3BU6HccJKIVQndCc5B6uLV0u1563CmAt6iIuTxrXsueS2kWCTSOm7KTU/YZBB8bh42H+YabsQw+mViuvpCSKiWXKiosJV7 - -LthtmhkNfrMoIlE54GJRTTQ4srt8zarLKCUR50H+KbMK6k06ZdwhtHLmAWpYr8KxEZWVxeDPtXJRgNrwdf6eXFzRkjC8j7W/tRn1iNqiofFoHGU8geUyh0x6oPRx5MC+lO1wX6xqwHXqCDABzZ/O+5D5oMmAhADc0LHUmHbAfDwAUAA3kEU4QgDc0HsAJZJ2zlMtmFlkhJNJalxspoANvAArJDtIPU1iRDfF1qi05W7l9OWeJUiY3/l7aNSgOaLZ - -CONN6PmTTbXVCq15jTj5D1GFjeCFgFWQhWW5rrKeQBH+9mCYoNjxsIaPLbsQsKS7kiBmlA2qlTJZNA0KePx59A2WdUY15q2tjTCtM3XRtZstug2MTlot4cF7dWRmVTnOrfHBtYk/Tbd26EU62Q4VTW33TVpmaC2FLcYVwk2z4HdNb01lFImt6V4R9SFREM1KeloR9C38pEP+WPWszkWln8lvzeTq0fH5ta+WbFUP1omi27kToAtp86k87jyFhc23 - -KA3RR61aGek5cVKS0ewtKnCmmenJt/4VbLWln01qhkjVc6UTpeMlqcHOSMlhQTlY1XotGi2XjUkNqi2CLVItB9VVbSotuMWtmSVJCunJ0aVtlVbtpbUunaUWNWpVl9UlAC9pXnCjYSi1vkqr1TDuBBHlLv21q7Wf8ANey22/YTDtulXqVSyFmTnKOapZgfV2lW5hscEsKI1wlSVwzeJ5iQ3jrYNibVEooYdM0tSHptWIeG3nsIl49oG4sld8jLTD - -cGz4EKhoBenMEmknHDPO66HulovW4cYcSouB/4rzgbigeeFJGNCJuKDjcI0MJm5y7S7hG+npGFvpf60UEAnSKXmi9hdkGiYodU7u0dxKbj7c6ia+JsbtFu12vgMKcPXQri9Bz1TFeejq1gFsePI2iJTqXEJy8b5l9QMyrgFw3hfOTu3wujV+2LyHKM3BVG2ooX2sOKG4TE75FShFMj8oJTLfKKMGkqUlNY6NnInOjeWiHABjQAdx+ADOADAAZ4CY - -ALcAqIpu2teBbMHXADaBfxhEpuzEEHYfflUwwHFwOLtY01BXleaZFVZDtpqZpdF7Ldfh6JlyrUctizWCdr+Vyq0RbQBVj4UtzROWpIDlPsgoBpbfhYqRc7j4oFAhftmZJf6115LjoCglXy1XNaHZB25ArXWh09VK9YaNrA1t8dINwtgDYTVtuNGT+VmQLJBY7TwleWGTZXNtd9aMRRDlQPWzbSGxwPaVtWRYNxlImuRVbcVNxYr11a3X7YK+fNEq - -ASNp302yTUakCC1nzX/tLDYjaX4VMrigCfIulE3FtXCSeVZAzQjZKS71JTEuy63MTU8gfhl/+WshC6XZtf6t0AEHpbR+R6XxyaXBsa1QBCPNsC3TiIs4rEA6Dc2tNqllSY/iR4mbwJdu8yFhFoshqgENrUXxm/l3CE9hSwGnvoP45YQc0ZwdTCXx+cDtR3XJyYp4VpBhsBf5WM1m8fQdEh0DoquAos3uIBUBKOjKuqUtMDwS7UMpmvVtMmru+6FL - -VVr2bG0VlTJ+HDCXzs7tdOpVZgiUalzFwm8VKka99Qto9ZUk1nE1FdxV5fZcNeU0tSPAdLVV6XaSxOZPVg3l9s3AnJqST9F6REPCUkYaXPxyZUX6zTrNtgERHYRCAm1yBSf1BHF/MBkICGHSadGw0aKL/nJ4qm1gWWTQUADQ+pgAxxgTWNSt40R7AEIAee3/KqHVfkaAoGAZLDA9QJ9xwUaMiHPiVsEwkKRZZlCU5ZRVQ7ZVXmAEhqI7zXe+XVXE - -qT1VE01CjcFtIo11zfmN/e2NzZFtQ+1Rxfz8gIA7kquAbPhvGuGO6jUdgBOg0OTKlfT5WW0YhSw+KiwAUGat+cV8GYL5BO1w7TCtk82HFqdp6tEApZglWvEuNc/t8B0EVaNtx2lP7VRNL+107cUepB0eJXMufY3jjdXeuB2oHfgd6wiAHX1tQ6rp2btpTIVP1qHJdlxdkMCdjE21mVNpXjUxrcTu7iUdJcsh3axfiAuNIB2Vro5FXXa9FaVo8kg1 - -KCfJjcVjIR1JHq3DabQh2OVbbVfW7A1ceGSdYOHvVRel+w6DpbcdHjX5FXRFukUpLskV67X6SACo4cDRQDCdSclMKVydShg/4EodhMAOOB9ihyiAyZrmkymFguJCxnIFeZhxLZCjedv143kxNY4d/xWdaBDefu0GAX+OLrbB4dbhD9j9PD8KEZDgUeowkFFFhYEgxywSSB1F6TUuAhGeF0zmnX7ROMCkbVbh9zI2LdqWNGY+pmRJ0eGzHKVYCXG/ - -aMRxuU0rcQNFZTXvKkIA8wDecl2AaW5nkKdxVYCW2rUAgWVsAJU4hdpJzeL0w0COQcooYMAx3rZpH2w1VVyU8KkubfOA67CYEOD5O0i0FYoEoJ2TJYSpeWXdVZJ1T8GHLfyRxy3WtV6OKq2YDaNVRJmbkqXtFsG60OsaBVHkYblKqnigEkatQYnvLYxY7DnE8aq5uo3jufqNJo3MDdOdE44e9byNOM1H1bJ5q3UZOfG1nRUrndt1J+2Y7U5wdeB3 - -Nc/NweXaYdrZVdkR5Qedi/mY6Uut/x3x4JAdy16uNZ12+YglYTed/LhDbZsh152txUoRaoV4gYymm53K9cwsjvkG8XOdv51orM+IvcI+wHO4P52R2XcIfn5hpKvAVyBKRVyk3f4vkd5BUVl/VUaNLnTnuSq1FwiRwhBdpIXXxLAUAKjkhCNAG1S+Fe+dfYT2dCbtFwgDxUTt1IGmFX+2rlQvue8x+2Y2FusBgC10Xcm4Ogmxwqug+JJOTg7xz3VA - -LTWCy8CfhX9QpqSlcdJNNF3Xddri6iRgJHMYdjka+fN1L9CHhiGQjXCm8Q8F2JZX7Y/t+wCLOGcydmDXVXglRYkHCBvMfOFCQf9opnl6XRZ5OPVMiH9QivKvrkttcC2ZFhideZEfAJM0AOyFCvuOGjkA6aHxgCjyJECR6L4c4W5dcn5x8TBCk4Rm1lfAvyBM0S8xqbmknU6ISPavSOS8/YniHR05h6liuC/Edpa1XFSAAdEkndyFzvECMRCYZXCu - -lAIdt+0YnhAwRZ2mWMUa/uYFXRXRGQ7FXWQgpV0H8MRoFV3BflVdBi3eBu6B9sGG/sR2APqWCSCK9mDuDNfwTLTS9MAQYkjX8JCoOOGX8EfocZKnQNRa19kc7bi6fr6+rNmqbEyGwNH6tp6FeeMoaoncMDW+jcxFCcl0JQkS5atU5Qn0ibA8yTmzHDymqh0EyUDJn1Agyd420DV6ibCovJAq7kRloQIkZd1t1uGgiVMpuuaB9gZE8AzTKDjmJISI - -yQXMlGUoyVPR6Mmk0qjJtypCUcrtM4EdfPH16+naGLcp6Gk7CgpRlykfkW42lrZBno62v1po3c1+GN1lMLi0ti2obSYYbp054SHhK6H43cguzTxYidXhMQKUoSiS9TI0oRyOgUafINvWNE4FGp9FNkBQkvas3RH8Go3EpAk2cOzZ++5YjSR1xK1kdbSApR17AJahG/KiWggA3NAM0E0ACAAe5oQAEryhZRZtwbkUDkQQyPTYnNXto4DdtkQWOs05 - -KLCZByXZFUwVnpznuYP4mAX2NeZJ1Z39HbWdBy18kX32Pe28DvJ1QpUtnSKV9rXtnbFt5sF4Dav2gv52DEiFUbxHCamI2jXGdftN2x1wtliGOpWMDfsd2rmYVdPV1a3BWTz1Y2m+kd9tVPV7zY/tn2lr1QC+lRVITZzNxx3HzdE5IbGA4USdAfWC8U+5LB3VXk2RQk3IxSTtmOX/YZ0lXuUukTd1ZxKRDXmt/C15mVdpI7U/HVWl6OkszfapI1Zj - -rQPZxmr1qcg2cnjATYt15x0LJY/VN67P1QSdAw5o1SgBAdHMwIOO2uWy5dIt6NUL3VrlJKY65c1dQHb2YFJRaCArLVQCZwkrYCPAHdwK9DRMlZZ0TFdMVronlAtx9RGX8FBJ0QIYicbhoSnvMiUYslGlKSi8WWii5DloOEld4OplhWgcbXzFCAQCQqplCZDSYrsqINYHKgUKXp58bQsFUglroDXAF+12jcU18BUFTTiN7yqwgJoA5+kBoNE2DZKW - -QF654rT/AAGgWiVmJY1N8rWjgFnNyOgScMVIh97MrsSETv4bVD6I0j6cNWEVRyAmmQxO/6XidW6lNt2d7fWd9t0booqtYx3O3QPtjXVtnSQ5PAAQqUo18IystCMYezWKjbsQkpwZFr61chUh3SNC+yYgRSvtOo35JcVtMd0jjYMV+O3yVS0WaF1j3StlcDa5GT7FRNk4Hct2fx0KOf+5TlmCES6pjpVura0hOUlU7qaZdj0oxU3eFO7hFRjV1F3I - -xV355o2T3paNJ/UqUfAwalG0odNwKKixcdSKEu4lfvwFtZohnrjAaXGSzXBCFPCk+NpoFrHW+cVY23RBeRcyC3mErf2F6D21GmlcAvzc0KcAJ4DgFnQIUsg0BIaAowD6APQAkj0q3fmW3iAtYKagGMgcoCBmIeb0PUqJ5JQHoMw9Hvjy+Y499qXOIX/J+jAcNQFt/wXZjcMdtc1LNWFtUjUTHYPtgaXNdfISPABhIVI9mcSroAYWcAbWXFAluxDV - -8O3ZQ9V+tbo1I3LU0ho9mf4FbRz5Ud0WrfcdWCXHabo9881dxeUNbq2+EYnRxB0n7dU5dIU75hwdwRXkQP3dGEUXcjclfa2WOQOtXW2XyU9y+NnTreFeqnrdtQWZ6dmpMQPd0L3ZybUBuclzdRI5c84yHe2ZYO0p+dC9w7XTtUZZH6VuldVQW62ozekV4C22Hq3t7a2kvT1pgFHlxRRAMfl5pUftSB0MwryNTj353YUNEg0t8ZSdmOE9UFYeHz1W - -RZEVba2fHD+cdR5mPWcWA00H+T1eVSVfpYjltNXHZVeNyM0jreBl+Cnx5dv+bd1TtRTVQDScPWapk7WwvWbReRUrrTJFW2V/LWp+ht2LteINTln3rU2lbDBUvTU5BfGLaVSdHfF2RSq9KeWV+UQdL810GVq9SZn6PRvtWTFXHaXd03XYvT1t/j2nzQjNdRXSqUT18l3TZbH5W6Wxyf4RqL3RvS89VflvPbXBzunfrSiiyJJ1MgxI9N1FcZ9apzm0 - -cXAwtEyfqZoCPHDycQM5GM5OcKykhGXIUT0OpXp3KY3gBzISzpRyHeB74Om+vgWcGpCkENSBBdLV3cK3VmPpzNKnuDl5mqLgPQTaimWgdW3BEHV8IXUpfqKYSiDa6dLxAZERb85qTcfCyqH+0jqdRgFotfSg1GXDBnRtWykq7Rkgau20oDaWL92NGS8ymix1WcNwJmVxorcocqHU3aCo4XkK8pZud723MRF5j70D0Q3IkpwzKCS8l10lzhS8N10Z - -PZNxbKGDNVxwc3E2upKd+X4FekfETymKcQSykNR+lrp4xRoLVaBO/HninCCVqyh3KontcBUHgQgVhU21Gp6AlQAkgPQAAaDanBgSmABIWbUAhoCL+lOAW6CVHXkkG6xfYDhtPTXADfKxGYFXnXQVnck0RPY0Dqm3OiwSIz38Znic7e1omUhBXe0NnQ7dol7oDWctwf4XLeqtZY3blWp1HdWZUcvWfpUJxXXmScX5INpAB7aZbXtN2W2mdfgQFzXa - -jROd2j1MGbxFcdFuHmpZUK0evYjNCbVc8dI57YGWfRudT83YEQSg9L2FpYiBmrlOfRZFfL1+cGRFqNmOfY3do7KRXT5Ws63FbRkqqjkmOQAtfF1QblWYu3U1gbHxvQ4d2fWy0eXJ5a2tjw4e4IEZ+0nBGddJIhHothp+8La0LSRi19X9SYtkwql4zS+t7r3magV9nH36kJi6mX4EAeT2h534VMDlAulPxQg2zW4Abi9U1IVVVnLgl8B/SskNzwVa - -Vda9wmpN7Vk9z67AAb5BORi8mYM9PhVahf8htMjjfQlh1j1QAXEuc8lG5YvJfSULffhF8pBWGT/+bkAincDooylg6OMpsK7u4PCuW9FObicZmRG/3ZJujYa2TZJEf7UCxT+1SiXU6mEgBfUiael5xfUXDTihAmJBTeEFGWB+xk2+nPhhAYG2VlW45sowZzn0tXYaYp5Alb3plw1fff153w5BkhTZDN4hkDPl3znuIFsuecCuoonKrN14lOzddqyW - -DIGdrylErd0t7yoFbuKochB9WPh9j6whcmeAMqhQAE0AU740fR04SLKa6XtA3+mBQGOkM6TOnJA+Q22DTRTMa/mu+brRAn3ZuVV1In0CPaFtZWUNzQmh+PmyNcPtJ6LXGJ/hq6AdIHliECWetVCAXUWZcEOdHsnvLcU83wXBtYVtVz3BfWB5Fr1wxU719O0IvXCdaL2FYdRFqi4NXX2JTa1eFSkZwS7Jfb1hqX0O/cY5Tv29rQkVH61AcnNlE2nf - -KKv5DBUOLjutga2VXfydBr1bJeZZXB3xIp69ykWE6Wk56kWAXc9pL53/ABJFgg2/Zq0WH1Uk5V9Ver22ZvC+6d1o7ZRFM7Xmhajt+BGF/Ue18r2P8Zn93uV+fbRUZbVQZQK9KX3BQPN9kGUOps79Fw6u/b/VVRmSksdWaDFOTYEQeMFteXi83k1ZWcdGPeAyNjDBQmWKoop4omWQrnbtZu0KbnP9297vdJRR6En4aVsp5GW6GLxuqu6roOru+h07 - -Cu422eF2LX/dO9EaZcYdoQ7ubiu9jVkVhWRYRpSRlgLd3LXYfUU9CfZWzliAF36YAGoQmACVoOOGQgBqEPpKygA9AGj6sWlFVd/1SISjYC1gEamXaaTaxbpjJNSy9AmKlftF8FAVnXft4zUYte6pkWb0WX0dGDlZjZ6lKA3flSctzZ0iPZKNaq3u3W3NKUrXLcypwqxIMTbBkCXOMa/gACChiZp98+3HPYvtKiy0FXr9lz03NcwN+52PPUCtpyUJ - -0Um9ZX3R/Vnddd1DpQydTr2WRZNOQ7U6veTVWMXwvf89zpkbHjXJSV3qbBMlyAN1qbDGaY1yeDr5SAOwTWzFBlVkNtpVsg2h/eCd+lWaVQYDRlWuddcpcN2b6SqiCRGY2ih14EIgQvv12gUfejV0ds153OlEXoZr5aJIwjDdcZlU9nCFMu1g4zR1hrG5BP13eYU9wt0zlYSuFcpi1s/ksICbgGeAtQBjRb0BpACYACRAuA0pnajM6WgUcPJcj0AA - -QiqJGFBNwHYQveTk+lVeboVNjkO2w5LhUdKtFXWFZdJ18q0jHbM9Ev3jHVL9MjVRbXI1I+2Syl7dOBk2WF11x9Sq/T4qDkgfjIn+GSXBSQvtQJrrIEoCex2cAxatc52nJQNGhcX/JWZh8bIGqbEVQ0ZlA36Fu9lRiRsDcz7joQitWQoAuZ31LfV13G+OFvbXKJdQdp0lGvhaLVkDPGGRzzBbA7fZRHWC3V0t6iUJ9pdAb+T+5F+6m4CvGSuAB5Aq - -IXfuoKqsdQS5+ZbEoDjgnhAwPJS+9R217a1SamF6OY8FiAOY6SLuCR5HRRl4S92b3bBBLqWclRJ1Mq11nXbd3E5NnYW5Cz2iPW7d4j3K3XJ9LrV1yPKgsLFwBn3VjskmBaT4mv2duY0WVnHloYY1HAO/Lfi9Y2Uj+Wlh6mHj+dSFYC3J5iHJw60zJbyZmV0zrWuxEw0jIJOR7WB1tYiDG1506S5Z1hkuhWt9Lf3Ig8XZpAWABVtoY0jN/UiDdd62 - -6WiDhakr3Yjhi6X1/TP8dunS5Vbp291v9jj4m2iJuZeZcYVBvi/gIb6eRRXpwcYXOfnCSYbu7dYdm0wIjWICRX4QuYtgULkdXVkdbQElygzQlQAcAPMAzEAloKwieoHFOG+AvgBTgI7ZLK1bhj8o4ySwkrVIsiB2bWq1WZDe0q2QnUIe+KsD06Ut7Tndib4/BdbdOIO23e8G+IOCPXM94o2EA6qt6zXSfa0aAH665Drs600DAxL068A8qUT+w9Um - -ddsdY7j7nriFkd0zAzo9Nz32reZ9Cwjlbfq5xdVWfZ/NUbUVyToDTE2k4RIDDGatJYidtjmgoE0lmjkrbYleogPJXlOpXL2iDb890V7WOeUhMepmdkWDNxwOOEUZORkyEejlHf1UPLOD9n3oxYK9j4MRMU51jzW+/doeN4MPtlXxY40B4A81CV0vNiPArzUvgz/qAV1xfTNKl6kyQbF9cKTxfUX983WwQwvV/woeBri1f9VcbnnSm/2A3Q6DinCW - -XBlgcUWuAzua92iXlsG+Vlx6SOv1+xX9/bS6z32ledryPeDf3UEm69HHfZvR5k2HKqXgZGmY1hsqlr7NvXn1lLpWAXTqk/059TP9cw35WBKBSw2qjAdmkCgj+hu9BT3YjZED7yo9gAEsPID0MUIAPQCOePQIkYNtAD0A8E6wgDaB70BHagygjqSBoXQ9/4SUmdaQsngZ/gFR1qhndXV9lFl6WqbdzhlcIDJ8Ez2VdfUD3e1i/aMddYOS/UgZ0v3t - -A7L9Mx3Skes9Zgyl1t/+2oQkDehQoDA0+TtNGx1afVsdaj2NkG4h7AP9uUVtJjWJ/WVtXI28vRYVRk5U9YAtkX0A5WgtQX2fkXY1DKBMJa4lG4NxrZceXDVELeQRe2gOPaTiP6j+HnmZpCGwxi49KOUvEMQhui3qLYTNz52VrY12CY1s5fMgYyUjIRP+AQYDQAND5+Fu8TSd3epzUG1VudmoOdNDlMgBkf9N+ZDM6QjtLH7z1XJBCEN1Id4VbfSX - -fXo95a2eVETujyTuJVuD5dHVFtaRIa0FQ46ZRUNnJdTVJUCyvTftof27UX2pVZAC/R+M9UN7QyB1YkBqvfUgMozqeZDtuz4TrW9DPiXAvX3Ebm3+5WZBh633QzhlJPZZfnZD1kWZduzV0uIpZcl+F3U3bcjDwiZceO4pEuAFqrhY1kRroEZI/OHLLg/de/BP3YdKlqKg6CraMynkKsraxkKuluspHSlmcgRtrrpEbbAMX11Y5qpN18KMtXEpzLVO - -bi0ZlFJsQy4tw407Clh1qEqHwhlYhRgnvWJtCpYSoQKW5wpClkhRWymsUWRt6/3cbthDW+lk4leOopQPLsdwtjkyXE3cc0DtLfaNye0QTqntLmU9AGwE7IDFgJuA5sXc9BEwmgCEAHsA3CrijkFDTT2srWMBDzZkwCwgK4WdTmWVzLCvMJ2V8IPrEIOJ5g1TsRHaelrl1S7+ldX8jWj5kz04A8VlsnX4A4SDrQNNzTL90x0vAjwAaVHkg55JflCI - -MML4RA0n1D+FoNA7KjFDacWCLsN1Q83dUL4x451QxVN1H4Pg7eOD/r0Nw+bRQb1OlVjFlq2JvW69WhVufen9nmgmg6LuZWlp/RTlh23x/QINxY5CDbLAOCneTuzN0SK9w3NQLCVKhZOs48NiZn3D7H1BXLeRv+W8TR49lQ0iJL9l3oUdfTvD4b3rw93J8imqoCvDP2YLwwxuioWRfsvDl/YYvUn55M4wQ22lgf1mvUndDO0jtB6VEGW6g/uJu+hf - -wzmt7v3NHo7lD60DfYSd4tHrPmTVFqkY2b0e/UODwFQllAF93fPWXEVXbbWwioM//sqDyXqiRYfhp1G1sFHD5hnqec1Djg4cVSIkaCMLyRgjO3WrrVjZkcys6RKtwG4RFgLR9TpIvSwtCQ1gI+SdtmH6WdEVMz6lFvzRKNFig6nJr82Gva2pNIWEHXHJggMykIDDI6nmDiV1rz3uvavuMGneIHBp5nARkCXEoRiUgBNAzgIrLo/dsEnVGZTKXJRz - -jtDJGy66I9yhA4ga3AMpm6GelsMpNMN/WnTD+gHW4ZTDegGHfbkt+InPXQ0J4FD7cF4Cgs4eAu4jAs7rbSZwly7wONadooGy7oTw8u5XTBH2sGndidzhcRb1kMTDcElPCozZEIlOlortwwV8NtYDWu29fPvw+pZSUUF0YPSQ6nLa+0MfSr29mYZqQrrNGnKRHU31OYbHAx15Cs630REtey5mZYcuJiPe1NnsNrk8IMlyYQOTlULdxP21GvoAWFJT - -gIcF89zMAPNFZ4CkQH0AoqgVoPQAZANkPdMtCFDyiX/g9PioZqD5VkCyoPDkGljGpYWD34NrA0PGv0MyA0L9HBXuQ6L9xipNAw3VEn3YQVVlzYNcybOeucOBSKNwWYGiWcsdqtAKwDnCZcN9g6o9Jz2FIAipyUPbValDNnXTg0/NPANPg8IDKd3OPWb98gNb7XX9rf0onZ59a4N6hfuDraWHg18dgEOngyRFi2ijZutD1IV8Iw9hAGWI5doZHn3m - -eUKD0r1XrcdtLcNwzvZ12OAPg039f4OqA3NeqJaXMZcg5r1ZOfOD4O1/JQthlx1mfTI5cJ7L+Wagp5F+vYCtWbVd3UulXPkQo2qDxrmWAxV+WtyrUfieuKD02c0YwpZYIhIFOCJ7/T6mSN0MZSjdtrbMZdyBON3VcKa22uAeneqjlNSaoza2YqDcZaUBaK0AqNZuK3z8/pxtwW5EUSLDCZA2TTDat31Q1iA9P7WgoBaeuKJmljz+AEmiPo6WBRqZ - -Tfkg2U1zfnJDXSOvA4luTQAFVcCqygDWAF0As74o8BGDQoCW2moQMIXTI5ZtLI0Xan3gtRa+w0uAYeaRZUiA8Jh0uTH9LBIZZYWQgVovznyNVt1YA4MdUz24A1a1tYPNA8I9RINEA02DJANljeZtOcPVuQtuuOQPMsp9Ylmqdk1AZBwDdTo1/YMJQ0Lm0wMcg1HZzRXnwMKkeo1D+VOj7ojcA4x59Q2aRfOjVdFjDbZFxr07I1AjWL2KLnkhJ8NC - -5SkSOwA5/e2NLyEb3YWpkJhLnTVi0ukdMZMoxPruWS6Vh9WXoxaQLJVMUjAEkpAXo7atBsJEzi+jZaMinY7tGLKB7bpE9tUaRt29FdwB8k6D5EOhxrS1qjBeHbpc+dxbeupRWroNrgzZcqNwPdBQCD3gxQR4BYjMkq8oCWBoCCGDKJH7kEK82ABVgGeAHCKjAE+hfQChdRNEhwDMAJgApwCe5JUdsXi9kFl1sEbXBXilMow9til0CwHsVVXyLBKw - -DRXS3sOdVdUDNZ2Vg7w9eIPIHnWjJyOKdectBUZLTdKJ7aNwhdBGySCMNbNVunWkDe1oxsAvI0c9w6PvI5HkyFX6fXXDaaXL1fOdTcN8o5yD8+6Po1+epF2HVeudelVGlXBFUCnZGXYVuRmPcpijt0MWPTUVEQ27Qx798BjJFRIBYB3TIU21MCPLiTxjIwSow+d1ug3UVUpB+IGCnl1ak0l/ZcGFxoO/HYt9dOl4I6qmaZXRPvHR0skgAX5BGWPL - -nUAB61hjfUYhu32I0pSo6QKlBig8oElqoREgpNI2nrv9Ye1bKE0Yl+BKw4cKILktaGC5nBpaogjaCzI/aB8697g+TWCcMP25+guaxNYraOqdT7U2oy+1dqOGMDt0K+CuOB1A+GM8SYRjfQDzAO/em4BFoDU1B35PoW0A9ADBdZiIijXuw6mD6MAmMP4ZbsApjl09rSpDkebs1Yip5v1NPP0HtrcG4q2DyTHerkN1A9XNhyNtuscj4n3SY5J9smPN - -g7K1CmNxJVlIYSA2wd9FxOIaiAPijIPqlcyDCmZjo3qVJKPnTSjRlq15Y1oJ5naYoy9dli5BrXFEJ4NJY+t9ubXnpc6RpOVW/V9p0yDQZUbdxONL8VJFXUM41eIBKoOXnQo55AGszYgjrbV9FTL5G4lW5duJzn2LOMgpjX22WWDlpUH0drvJvmbwgPG9D+093dQlXUFRvWLjbPKPyfv56dkaRV6VaAkHZSS+R2WAo7ZjhO1qhu9t6i204yzjwxUH - -fKp+08MODYuDF50NtVed7RKQDUoDs8OyMnGuUkVnyXzlygM+/TbjeVZ241ANXanCJpQgP2BRVb4js9GHkVXMxrrgdligSMlb/bigZ0GUoLRluKACUdu94JXy7fUtUIkpI/8AGqPilkajpzJMkocpyhqZI5JRl710ZUKhqqPqGqadhrpEoNS1mMBrvTKWG71KoByicOqQPZdKE+Vp6VPlbHh3joIwYN77TKUICaK3vVDQWyCbILl291D83UntqD0p - -7dTJIt0BoEPSVlECvD0A+gB6AA/usTZkAGeAHAQA48ADpmmW+GfQLoj1IOAQIHBsY2UGHGOcthyNFgSfTqJ1nZSOQ4bpLhlCY1KtImO1A+a1ByP8PUcjve1O3d/FP2NnI1J9LaM8ANr+wUOPIysJYOPH1LSDg+TuViDQWmMqPdp9A4MReHp9bIMpQwb9JjU/ndOuE+puY3S9lV6S0ak5ginGY6clEw0UAcNWkuO8A2SjcWO6GdNJE/kTo+gh6BP6 - -6UhVxsBH40BDjhkG6YQTzkOavqvu8w3iQx/Y4F6EtQNjkFp+6VN0tQWqlAk1RCpJNUmFPQZPJDo+aYVy5gIJz8AtPG1Z9/0OjWbDA+NRA9gAMAB/BF0A9ACkALUAhmJ+7ny8J3F22hoAlR0xjOQQ3CSr4/tgoPlmQ1fAFkNCuggDEEaTHqQhKm1BUSXduy1cPTUDlc24g9WDEmPi/VJjLt1rNecjj+PJneQDZHqk1PGIc2691dXaFLzoeIZ11B7l - -w0w+NA27JA6oXyOw0cdNCBPoE4QGcwMRE1TNAKXsozDlT/GU0aCtk4POyucl8LwjbdhVYSQSI84RralxE9AjA6nzuaYTYK2sbt0pInD0w5hy+HJfdK4t1ENPfcrSLu1KoE9BsdxhI/1xjBpjcaqMqWiulEQiYHWLY9rFFQAUACWgFAC+uUPIXQAncQ2SPQC5bspgWgCJgdbF7GCPQJZdhSB/YN6DGPwUdpcgA0hwXTLBRITbpdTOwz3XyaVm26b2 - -iHsj1dWiNYnDqA0Eg7j5jaONg44T4j0q1i/jKGpwkjxicj0cqYPkTqDRkWqKHWV/4/FD7yM9KHDj9cM4EwuDfnnRvU9pc9Ux8ShD4jhL1XG1wb3NLoXd4tFc4/Kp3M2NVixVw0NuhDNtLn2D3a197F6fHO6ZmxPaKcVmQlUFZuVmxkVovQfJSlXCVfaIu33iSlVwkkrSBQ6jqibKcA7NgR2D9S16qurpNbUYQuFxzJ/m34iyeEl0OSCctU8DD/1o - -PQpDtRp39TNRB5BPgfeA8wbqEMoAB5Cg/DAAkYiVHXFyHh3U5PkDuo4kzOZD8Rh6E8l4k31hfdsjML27I+YTp+OWE1WDsP7oYZJj32P2E0p1f2OP44G5LhPrJsJAgzh/UHx8UbxzsPRIjiKMA2MDzAMTAyxE4AX5bRN1I4Pjo0jyZ03Ho4CTGvEDYQyju8NMGYONrKNihUfDt821/ZyjDLbGprCVulRLdSC12C00RZy9qoNGYSqDP8OZDqEOgr0Q - -IAyF+Q19LmmIiZPivbIDiwORk3EVlOUPrTxV0SIx/YpogL0JFTWTY4674+gTGMO86RvVuM3PUujl+ZMPtm2TLKN9MWZhl60oZSRA7Q0YNu5j/P2gw6KDAX3ig8DDEf1u+a1R96lpvYKhOkbYUQHhx71J9WfC2mWX/RRRqs1mTeJCkLq5wnJcjLoleZI2n7XOo+KSrJLQPX6eWQEJ9VLDG5M5KSWGNm75KQAeLEOtGd9Wwva/VvLF+w2KxXRpCNJo - -Y0GWzXG0siiyLsAJYE3quXnBoy8DQdWJbqMAtwDKAAYAhoBCAIQAsICytEYAsZ3LAF0ACABv5BKVh2NLWBF4l7Hm0gP+w328dWHazxalaNMorPlaWjIdjZYJ5siTFIV6kxWDZ+OyrXw9NYO2E6aTDYOtnSSDUIXMMR9FaAhMJFJONHqysIBuUOOVw5oO1qCU/rXDqaUxSUejBo0ZQ1/NxaUdDYy99X1RDPdjmPXv7ZgjXpbkgSsBqlPqXTAFETmy - -HbXwalM8NOTl9+0ufbt9cozfQA8gsSO+dJ1B9y4PXb7K/5O3TIBTeBC5WI5W7dibmVPFnKCQUPzs2UjkyVm2feMiE3g1tRr4XrJJZ5AXAPMAFAC4kYMA12KDALIThoACsiNZfkZ4U16hY/26Qf7aogjf4JuhiD2lIB7FavniGWsBONkHE0gNRxMydScTJpOnLXfjDxGXE1xTpD1AJep1romiYFjxMd45oXlRZewQwOsd/hPyuSJT1c6NClfUIRNo - -VWPN0lMzndPVxn06FQcdPGG6VX+NfBk+Nfu+8im/w7kTH+1F3YpT2jlQk2wjVmP3NVaDDcE9IAwadEStE6CoMs1e4/LNzTwwqMGQcKh2U0T0nxSwCtVI5tLJktZEns4H4sVA3RNp7fuQ3NDJgDeQ+aAIAIkAckxnkMwAm9T90rtjhwBRMMQARgAHYymjvMkqWjvhlDihwI4iXT0iwDnNBCDDFLA5JBZi9UpYXuyq9iiDwEYNNvc2ZpShOFWdmANa - -6EDx5F77I+9jl+OfY9fjs02JYuxTrt2LTc2DQANXIx2jQ36nQIZJ4Y5qY+sQK3yHQsJTNA27KKyDw4P6/aODWvUsXXxdQDECeYujZx3B8RgRDz7f7QXdbR2f7Zce/4NUndgd1OnnZduR0IFPcqIRNC1MJWhEeKmIBRYZV/iJfUbjEEwVlD1QJkkHoPn+KQ2ZQRXVjx3/8FwC5fZaKEmJNdmTIIZOKiw/tKggn+xalh2sBwqHJJtJuwjKjSy01V3P - -SJawt8m4eYyx/bC3Iw2uiYiXZpeORNihGNORwugnYwOxmriHKLzpaiT4SPp13bit1mYJv1AWCa+4YiNu4sjTqiOdQFRd7eg68ZnTakU40yKdn/HORH5hxxyP8IPiaEx/SCkjXw2fUKGiOwjiaRURou2wJMsu8jhU3eTD+kKE0v4C0pwY4/pCZiMellgW2h1uI6GiN1De44y0kxgyQLk2BxxbappUr42sMFZDNMi12FcuORwjGHf9veNYffyT3SMJ - -9okAhACYAPMAx6Q8ieyAbAhvANzQ6ZRw/GeA26r/eUmI5C2FWFVo3wUh5rIJw+SrGU1WLR3ZTHT1tUgM9UlgMsHE/MBxUzHwcZfyfiUE01ctVaMJwyVTeAOnE+Ft5xMcU9TTj+MYGTcTR4hiOGGOECW6rT/SQuTB6L/jg3X/42o9ecw6kZc1Wj0tjWlDs6NZ+WNTdZMlbc8hwL6mg66tIZmj3d2pa21t4IwJtqSpYYOt0BNjVrWWPREC+AoeFL18 - -vofIPlk9HB8kJWZBZEwjUJ1W49phYRkE/JuOivVODdZWdpmIk8Wwl1ie4PD0SKC8ps3o/GNJQVSglbCRQMMKmZBRJsYkhLGhVYwea0OlXmgky+Bg4C0eqxq3CmTAGUDBWBAwAaomAi1I4KScRIrYXtPewBewdL5OiN/TAdOM9RUW2wCAMwOkX7GzMd4z4AO+M3/TO+bvsUAzwTPgcRtTn4kwUZSxFSDSIDNdCTPkTo7c+t16w8CK50A9XU4t8374 - -RMP1C10oTBHtOEwRHoTqJ3CEobI4UgSpeZ21IlafsIM8SQlZSpcFaT0H3ad8s1yEXbbTyaITZsjo2DGSZb3sP/C9rNC5Vyo0iXiB1II945h9UiEBUyGdtRpsADiRs75r+hekZwBGUdF114FJA2uA/3lnxKxoeXARYE7JTsVimNnAo7ZkHdNxGpOwMIcgM+AfjOCgcT6aM2XZuNPCY9bdYDPC/RfjLFNeQ/Wjt+NmkzJjE/ZLTSSZdNOKY0PgEui7 - -NXKVjpNeRbX4HNOmda+4oL7ek98tBWkDU6xBgF2QXV6uGM28fogdSlNyHR051038A93D1am5FhKWbDOgvRIzTYgXSQdJYpxE5XCj40kzuIIz5kTSAqmI7a6mvbrpx2l5JCBJ1z6geCOlc0OANgtDSbAYUD3gb1AjYC/gT5iLw7fDyBBG4kRSTEDdQBtEbh4nRWYDHqll/fm4JzNF0G22jmkaM6QFpdkmhWDD0rPfXocGcrMXM2jAVzPKswuTX63c - -BT7ASgL+IttowfLa5JqkbYi0yLqQW+kZCd/gu741Y/haa9OHMsL+hyirrBCS8NV2rNyxbEz1KPSxTSjqLFjOn/BgNnihj/DZGrlYWEz5GnrDUOjaQHNimG3DGDdG/67vjj72WDV5TSBZHu6hg/uQskwhZfmgy9w9WBwAdwBa3ph2Z4C/fAfsNoEhuSuY1ZB5cF6JL9PAcWc80gTc6dq1xhCOxWgEz/q++HpagjPV3H1tMJn0UwHI9zNE08J9JNO5 - -6qxT5VNvM79jHzPNg/xZ1pO15gBQSXF9A22MLNPwxIpSLUYgs9sdQAgywX1TPy3w49ateFWJlVGJhx2GPSO510Oos6591mPRarXdJhEiI3G945EwSdKDKNly09y9CtMzuJJVOey38MJAbh5Dk2PDqIiBM5+xMzEwOPBWsuOeDRK9AxyCXRJAwl0vTOXcqWC842f5OWYHCEB51v04eM3oeCORlVbxzJADBZQBYrM68USUnTG3o6YzhjC9LJ5sVTPN - -6K2zflkFiAFZToiUuThzHlh4c2jABHMe40Rz66Ofram93AVZ0VRwXkCGTukJse14Qhcy43CKLMU2NPly2gqdp9xQoCeY654/tQtVwny4cd1+xTyRs/s0Y5Bezad8RlzvYukWpQmyc0PAnRgKc3td/PhR3k/OV1XotG00kiREMMrRpS34IoqBBFiSFo9TLmUb7DKTR3H4AJE2CADYkSfpUTCVAMqOL5DoWcCDatYZIKrZCDBCuueVKol/gVQV6bDe - -JvoT1mCdjrFY3Y6ahfalaHOy6e4YmUrTNRWj75VFUyL9fbMe1mTTSq0No6nDkx1LPdgNsW33WeOzCWlaIPvUY7qV2q0Fuz04qVFIkxSLs2o9LUiFc6uzULM/I5ETZDMF+Q0VpKNbVmudEJOweVd1H7GPJOy9xv0GU5Nl+nkWuKaVxY6vuFIjtFPQ9YNSTNV5icddcmF2XUYsvq3vwx3W4jiXEiVDdqA0M5CjIHR+Y6Gtx41vVatzhV1RYb6FuwOS - -+bMOgV0F0nSBo0hriZttl+3E9STpByA5VBkz27M+lWK+Xg1qXZr59flVScdeSaVb7mH24h1j+VmDZBj3zfutH81bIQIZEhRUVgJcfUjiSG39gsOUowAjIC2mOVWTQL3HaWtpfC0w86kTkPMNkfVuFQOvQ3OTutHHc1u5LDO9mDqTq2GZDScebKZXc/yQIS4YvaDtvuX2Ddf5p42ELn6V63CLkYoDkoW2qVKDxw67kqd1QXO9VhAQoHNlQULjhwSP - -wyjDJ8Zdjn1W3POpjQ2pKDZMeWf+QvNc8zf58WPehcdIDPMMVpbjm331Mdt9Y23uCr+zzmZrye/5lam6hZgj7ZERLtojdAXa8wwFUtPI85HRpCMfITt9jH4g82TAE3OWGSrzC8lW81AdZSA284m4QQ2G5dYZTvOBPZOBwT0rakYWFXnXLtdGP/DVrO7xeqDJktCSoqDPqFXSQXQQIMVAb2rzYqt5fTzJTht5lpQMjr5VriOaPhrkqYXmzWnzj3p+ - -VfiOh7rJ8+rVSjBQYxiEMGMF82t5RfNJCeCBCpNl8yHGiuQGlD9q2zldBbkgQubBIITe3OyIpcLsDOwklNnyfCUjOQ3yfxU95evlH/RIMQ+Zm/Wy1cqd/Fg0nk6G9oMsjtHGNS16SBiOF5lWo/IZxlycnLflLZBbFZuZsYXqBVXcJeWJhc4daCLBpnW+/rYWVaM8QtNnmQvzdJ7hJjxxtXxz6RnKiOgJYHk9ghPb0xMzJU4yIU9TZNBitHAAcYC2 - -2or+2BVRUxcApADwTiAUg9KJU9qIFgyWMx5YHUjgmUQOvCBiRP6dbdo7RFETWy1t1Lo95YOVo4FtQx01oyFtzzN2E5TTDhMP4+I9jtnfM3ElQUBwvuAlx9QYM39F5ZCR1rypTJnuk53qw8KWEFVz1Bl8078jLZPOdcQTDXOxtbkViOMgrYudcTMkSqZNnEOWcURSpQiPFDE9HSOdLY/9ApMJ9ilcOACSvLCAH96YAEeQQgCv3rcYbADiWkIVOFOW - -+MkgqUDDIHojRUB0DRQVifrj0UfOQ8A2xC3J86bHkZCxxt2s8D4Z3DB+GR9mhVPYA5+VuAuNA0lzQj2vM4QL5pMjs4/jcXXZc9Yx6nAs4A71olmzswtuKWg7QMo9uDMfE9eSAFASMZo9Bn0kMzKp7mHu0fmJJv2R9XMly82xE2TtavMvw/P+D83KZq+z8BMyGcgjW4GG8yJF+vMoI0b5oh23HjuEvOVQDQnxaclYI+OJYAT3/rIpf2DyKSLlS0Hv - -gPAUHC106ToJEAixlR6U8ZWhFc3dRCHV2SLoQjPts8RzX20fw7CIL2a+Ge9mhKKDUyZjz2Y2OW9mprQdbW8dFUMVIWouVHPCM6rcCJ0nQ5uD8a3QwEcLcwu0cym96ENd/YdKDSNQyWmFGOQIUQhJ1xx9ObkKMS0FKTzDRSkMteySTLXYSlxlDi2mo8oa2qOQ6LqjvXyoaekjFqBB9ggMSG2es8FYDHahs+nKJ7hKSnZQd0jzTsg9SbNwuVMzCfaV - -oK8YWdBpgPmUzozBAGeATAj+ZUDG4o5+Rq3gY6ARAXDQHtLMjdIqs8VGXIOB3GNMM6dz/ba3BqXN9iIVMW4LEDMeC8cT0DNlUwQDcDNU08QD4j3Jo7VT8n2HlD9qxdDtZUsdHe6gENS5hz3vE4BF6haN8RyRbAt5xRwL5548PvxNMCLwXWkLlO1woHlJ6UPG4ygdIj4NQNuDHl147aEVxE05k2pBf3okLXaLH024TZ79q6Uqs3CQCPM5qa3dWVbM - -LeIzzf1LrVaLMuM52ayz8DCBWQ+NLNXOKPOJPIvYujwL0Ys8zbGLS4kGPVY1p43qAfgOUZkmPfMlp8H6HI75/POOrcM1GZBztTE5WRMLrRpZxL2jrR599W3U7Qq9AoXB/VtzxgOhfka17zwVWAWTjV1h/ZxFENUti6wtwgst3IJAbdwn3YJKx0gxcf/i9hwmcPztkyqhI+URfnCSaWLtw3Hy7tmQu1M+uoZuLRMmbsyhqjjvWdNxQSMw7AojkSNc - -cC2FhgJ8cQxMo7b7oJgqg5UNEUSg69gAbZYCYI0Yi6y0YkpVpqyZqsMPCgrDiFGISdk2tp0x4D5WvlMc2cITH/NOjS5ls8ywTrcAbQCy3XsApACR7vmgm4CGgA8AlaBGAGes1IswwN1QZBBPEEeEBQOgeiHBw8Ccwp5KUr0PlcMLEanhIFGpr5Uxc7M1/IvIDYKLtaMDsyKLqXOLPVgNDe48AK+FwQuuiYaEJ0O3otVG5ezYyGVzI3K8XIZJWovX - -NX6TzL1cjekTE4MVbJ3Dp50Ao2SFY3OeYZkLnCkrQ4e1E7K4S/jcNlkQc2+lCwvm/RSsX9UW0y1tJ51mg8rlT7Pu7DYVx516YbgFT5WESy+V7yVGS83ZJksjC8+VhAW9i7b2Y/05vv4t9NLqRrtGxxV0k6bVykg9cErSIsURkF+Zo3Fri7p4b3Ye4Pyhp2qXcKOYlDj/etC8pnNIFVEw9GNNADxaWdCGgLCAMABdAEPh2dSvoSdimgAAmdMTZlD9 - -2PigYcB4QgMREDnI7OKSD2hfidq1E7X0gcsBMZDFzcGhAK0yeZ2zsXPuC+RLUDOUS/gLbFOii0QLFpPiPW1ONxN4nMwgi/YOMZ2DT0wlzjHerpPMOW8t5RhVcII43xNGY00V4bUdjRjtK7WXoNjtJSG6tXAdzJ3bszwdmlO1S6ZjQfUbuce+eaHZZSCWvKMHS3RzdwtLk6P15NkhkkTkdzme1ONjDhj2I0hpEOin2TxcalyhA1iLQZ1xVTh9CfbL - -8sKAfkK2UVOA5ThQzIv6fQANPS0ATQBmyfPjFiXqtASIIun97A9QHDVmC4SA9VCWCzJ8Hvj1tXgdoq2dlOFzGtA3ox4Y5aN406RL2AvVoxRLeAtfY4OzfgvvM2/h0o0yds61ucNHBH90DxMEGbN4YCUWSDgzQ6NvIwkLVBCEMwZjklMDZb8TjcNZCw8d2kvGS5jVO9UfbT1DFWHbc7Cd3pl65b6ZRgPtiyYDvVJD3fBh7E38ozRxNj106aejDukg - -tUuDcsvtMehzBMvRkG2Le2kqy0bLEzgmy3ej3vOsIYpNudLMMH9KOEOPNHIlfQrQMX0o2Xl9vYDUskKc0m2ajeAWlpK6CHWFMq3hS377jcJpEFNyC3vTiW5CANStK8HEPfQAEo5RMEIAxU0cgLUAB5DzRVMjMMu7leq0sEjINUSIU2avE9mdmEiIlG221Dl0FdJFa56yad2qR1H483thfIuky5AzDQMzPd4L3kMtA75DbQNTHUGlMx2AJWQL5Jkj - -sFflHrV+Scewhyoqi3ELaouaDknu7qF8S2vt7B5Cy/hmpyW8ow6tQgO2Y5NTdq1wrWhiyZM4XdSFGMPE0ZtDh3NgkydtUyGrQYQtZBGnseQl2MIns0hlcf1lC8DVRWH/rhKDpYtrrV1KxouT4NTuJr1wCbRVeX0LS38TVdFyEU6LdUPvpXwelmPnpX79RqlUo/a9t7MgtcmJkYsyS+zRWOP9iWbLYJ3nPjez7WGwo1AttNGnDigry2lHjd2tKC1T - -IhArqCud/VdL+zLVKaLOvEMOS9xyfi21aL4tZ0beBV9BWig/Qf39h/X4wdj0QNYA1qO9E2MJFFNjPw2zKf9aZROWAiLt/rpziy/mWeG0kgTddCuE8Nb2nBoVI3YF4cpPSOKMT/AO7uHzY0ipkFSgGIg3LhHLu9OhowLWtAxRMI6MlaBngP8Aj6zc0BwqLARqEGwA+aA3kMytLnNbhs/gLMCpDX0o9FiZzebA4gKE0VeKBZ3++B7OVX28xkQwDgv6 - -UAtghqDqArJYG1SgM4vywPE9s8xTNhMdS1TLXUv+C7TLS00NTVKLFINAuGFAnxyi/MNLv0V5TIb+GbBcSzzLAcpzS1JTxmOb7W+dlpVFK7ujzfkTQPMqz9hBk/gJjSFcnTt0NStsxZgTNWbrC6clq4hLZh91to54s8QKCLPiIK6xQbF8pimLJM3Q4GCx/zGNJGTuQytzgwOCmNN68eGkSO1Fi6i1xNE9JoggBCBhovFI0NWz3cFzU14NbSfQX7ma - -wD+56UDny1uMiku5vIBzskBxKRcKtB3zabsrBshAcxcrW0BtkRULtLp6Zq9xnfLnK4uglytIrBbjTPMn0N3Gh15PEHVxh8h9feYDZEWMiMG6tmCAq6iIrSrTcIkk8xA2nMvoZyvsYqakLQtVBPqxd+AVLZlICKt4TvsrprzvhEAkWPzX0G2QNbOOQJaQyzJSBM1w2+Av0Ma8CSCS4Fo45z5OCX0mxMADJjozBiASSNihRiiOQMXTsN6NFi5Af9Ay - -s+qztxyaszqmMys/0PrxIbGSIiPAVag62p3yf1Wx0xEgEHZsWMXQouAzrLE0xeBnwcxouqb3YFigiqsxk9q4vvGnQP7xrfEMsebAEXjVzEVU3Su2sFZAHeBazg8UDOVUiIVAVqL8Pjy9FYhJ8XUqIaI1hpyrYghaq4PirxoNsf3YrGQ/SV1AOUPCq7rxoqtzKzQ0pfHAYei801COphnT3KvoiLyrNDR8wO/YEXDh9qSxXKuzK4mrJ1rfxNXgQml/ - -SLGrGathq1mr6SSRcrIgRIjJYbHlcauZqxTz6SRZLMUIRDAk1BJwnqsofAqr8KBKq43YJrQrkV+s7BPaCRnK3JoP0MGSK4hJsbLoKbFaIJRUiqZ2GOeMqqYNsRIgdKLFGhvxpLEKMcdYYvNv4CuI34ySCKdAn0Achb2wf3V3MfqsLbUeTrvxB8BzwAfxv9bjop8cZIBxsW+JL/Gn8dn66LbVGOIg5F3D4BkWDDMyCbfxwVjpAr1IURZOC9sL/hkD - -beDD76uSK6dox5UQBclIUAW8uo8iy8CgDSfzrb7GarWWQZU/uMIdBIh9bfvxABFK43ZAxNWQa4YLBEwhWLBrtYtpFch0UGs4aydoeGuvgz/xj21ZHERriXi4a/ZgJf145SdaGeLsij0RiXisM989wa1R/fB0iojduKC4CBDzXiRVRR7pJJ2rgpK/YE5OEZMDk8Idqxo/YIRYVMyqAeizoiPe9TmryrDbiW2DvfmVK9FVqkt1uMmrFBCpq+VLrL1a - -WSXxrT2MWNGr4BALo44OBCM68b9agasBZsJL68sOuK6rwOT/aB6rpo25/VrpbuBIkMlOuuSIs0+dPvFHQCIBTUjgbl0VZ51+0/T1L/ly4K1z4l1OFZbiiHlbDUn0uyTuFW1zNPU2yqVLb5RoIOztzPWC0zX9k1CS9Fcg46r502R5HmPH7UTyyjMhQC80ajNbGVQzO6PSy5SIGavR8HAQjQUVay5rKdijK28kGtAWcG3OXtPd0QS8o0AFEzstS8ta - -dOFzAMiYwBFW0OlqeYfIAAUGSE6lg4Sshb+RyF01MQUgemtNaSO4f5FBDvNrEJ2p3eXT7iOOcK6UgFm0smqMyar3sJ6jLdEGLCKc45BDkN7wyKCO8oiSp3wbIGagdDSB8WxMwjiUIJhmhQmnfJRuUkRLKbl5qCQNyN61byQCAVZwdjEKw/PTXHACcWJxLPbFvYAI/nHRs6gk4s3/jhGeIZ7ISVDr+c4Q68AIXwtGxhAIRolJcXWFtyP0oQxx0gur - -VL6dEAj+nSkdUm0vwCqwcOZa2h9opAI8YgEDUNCRiCosKLQPirjAzlMhy0LkYcs0qAAQcSmGwFSgs7Acjr9Al1NqeOfAmQKdEdGQbSPR7bMcoT15wKsJBm7bU8ZuwIlFqhOL5nBTi4CNLeKKUra6MMnLKVCZ/4WgqBcD50xXA/8J373kvEqI6xyEEGS8oMl/vc0TO1OBS4y0E3Gbi+yhlgL+I6IFJvaQfT55TxCQbU8Jdu7pLQktm0xEwYorGS3g - -yWXh5mVNI7eThRHhKY9UO0bOBZJcVu566oXTCZBEQolNZp5RknvCMZJJTXZud0GOTSh1WLzJecC6nu3W1aJy5fUdvU4F8wWZ3F725cKfa2OChUX0E4Uj3ZVey3I2EtopeT0K1ZUo9ALkzCuD/Yh10pLp6z7cYNbCohwr5ePiZYdWtu2m7Uv9GBCTFfDqw+ucolXjmEkMQ+i86Sn8w6+TgsMqGA29FHKuzXe1np7Xk9hpUD0/C7O9gnDEif8+MJRk - -qGd8DUAw0GT1MUuD45bFmgAMMfO+ZlF7AHAAZYBwAFgSJ6TOczzJ+ZZUgLRIjFhypjnAWISsQBbIwK5IEOPCePzxGeiQ//gUtHyuXmkNZr5pr2Pn48TTTzOUy9RL7ctpw/5DGcOWIjwAgY1MS8GOdVAXud3Nn+NKjSVYmVRB3XypOmMJCxzr49U80+yD67PNFJQz5GpmXQSjwX0Cgw55+0vk7RglbGtICkwlYmsRfCLDOjndOY8rgkU4IxK4wTkG - -QYYeB5Gn+aDlcm1P+LIB80Phi4ewwKtXos7L+cl8GxgJSF30BRApc86bo/E5S2t/IeApn/nAI1a9yMP7xI6FGM7qQE1As2Ww5YkOQKuy80GFM0lnkYIdl0McayqQe6PdC8LliZMpkUkNphv6A9Ib/GFx3do5DqWag7kGEhymE+dLbwiZleopUZPTa+HY0KvENAWI2KH8+UwbtRYsGyrxoyXew9TuqZPfaaiIPdn6KZOgDdENk892oCN9hKkbc06N - -yBjzDjnQ7aEbmrThG+fCqxOrnHmLnhuBG63aYoXci+UxcYsza4obmhvrZBchCCPxIBCe3mbHiSdVppmM473d7Ruvc9wtze1wkwsN9RvJi+uta6P71iyzGgHeNaWDvd5TGx1Vu32kYevAlb0OnW5FS4GdfFUYtxz9OV8LKWhJ64Jt5u09/Ubtm96KbkPr3TLnffkjIHUunvO9okqZaFPr1rpnGWmGpqTjwn7Lip1b9TG+qU5QDELU6KjQzk4BjxUN - -Vs4jBS2uIzegbdNCKx3T2uurtQRlqxuEns6dzuHAucvR7WNLob00jktZ6cdoP9GuGqUGnUFbw4pSt+KIpBUYLTT4yXX6mEoN+m9Qaxnz6e+ASk1L6enl0Eriw90MxMkToODF37En6zOVMoD5oKNYQgC77OyAPIn+cu4+duQPrGZRNoFxZTC2MepiOJ/rZ8QHIMe+1dYckQM9rD25SW32dA6wE4BlmuD1y/HDAottSxTLLcsvM/V11MvDs/ErzYPU - -jagb6oTuWEOOajXV2tJESKAuk+4xTAMEG0CatTAOSAUrgssauZuzqOOUG3Th1BuPc/CdnW2OmYPTPS7GAymTmyPFgyydd6VsnZxq3j1sPUuIF3WlC2pFqg2uPeqZEZsKmzijxKO3CxaNGEMK2ohpB33Iabsb+iYp67nV/BouJnER9Br2ooNxv5mS7NuBboZ4kMbDKD070/3jgVOUMWwAxxikgPpibaCaANZGIKocAEYAxIBVkjaBA8rHZu1gzFKF - -0qbIEKAMxX/gg6L8QIjT8FDoo0O2V4M5IA44yptuQ1AbUSswGynDcBtpc3RLxD7GYtNcALkvLZXaWBsKPRiEreCtuZabbpPWm53qZE6fIxJT/WVh2Rvts3WlQUiznhtOrTItOyuoLTdDHDOSvbTttv2NrSEVt53oK5l0pw5JG+jt4xs1xV12U5suoI69Xj0CzUBb/pvXg6BbF0vJm/cLwaIt4ze9PdM+pkTdR/37KanjtzIUSQgQgoKsuFzDCwUt - -SI5r6+CMTEHzLf5qxZSAU2KaK9WbuIsngfQAs76s0OyAm4DwgDr4AMxDAA0AOwAXfmXt3lEUEHapW7Gf63dArfMK4HZgD1NYLqxejUWXaXdIlzOKs1aFgmOzm29jvbPQGxqbBAuxKzTL0WnSjdhTgOMUOSxEcMCuiNWNipFTKJMqeBuMC8ebzHoGQCuz55uTdfNLGNHZDVvLS52o42dLDBtzYU5jor1dw/JrfJ0Wy4FoVhvrDjjjnd1ayyljaOUc - -I/FEKPNqPBaLG32fw5wbi62m43EuM5F81Xkx1ukeiatpuZON/fWLXZPeY0Ajnl607dgFSa3WW1wjQUF91sBDHQ2bDriBH3afLW+tlFUFW9Fj351MLZ81KL21rZcWg00yAaGL8gESGwAj7IXcvhNDCJNS01jltJ1hmVTzYx66U8f+x/nU42IBTHltWwozlVZUUxeEBLPBGbHoUgOQI7copJMLijQjz2O5mbXL/0OLVvchS1szW/mZ3CSrW/ZLPoM4 - -KpB9/oPC7SCb5cJgmz66x1tVEWBRJ/q2qO4C0kgyo81j74vWo1wr3G3ZAcSontLp0tO9bp58w4PFHEP0UWO92w0TvZUpzs34SeQr9ao2U8rudar7TJojZMNVCyxRuh12nkxtZgGQdaRcj5OWo8+TyrGN089bMHKGTTB1VROBILeLLLRrHIos4sAdrAnjLkA+GhRbkzO/S4luFACSAOyA9ACswSU4WwDqQ3ZiVZABoAzQLQClHZUdlfxilLltfOxa - -3Y4xA8C9hkeR42g0peBhAkViRTwbKY2wYZoDP+CW3cTLAo1kS8VTTcuNncKLS5vzTfAz4otcU0nV6ls3LUdhRyA6W/I9Zgx6W9hYuSs2mxGy+mPAE98joBMC+R2TW7MOFXlDVG4JlbZbktOhk8fDZl1BNc0xpj3V1tHw6WusgdDkvJlYy6gdwYvzg4dDbIV9rmowT1XOG4aZG60GDQlbwtGq4yqZWJ1dtXE5O1u44z5bm8yE5XIzws1mSaOTV02V - -Vr0bEuMMzQfVVOGnTXXJJTR1K4VA1OCp/QNz7JVX6k0LluMxE2KFhuPX+X89rW15HPdtjbylxK3bOktZfSjNQRN3my/Lvj2FZHKD1aWdc4yjEEPpWw+2tflqayFAGmuSS8/DIduQrUNKJyvzU2pLYKMHQ0vbaEOwW8QrzYWiJtN0nhCulgadem64WyeKFym547xKuu2p0sQFjeCpKRd9lxsSoOUpCME/IFjW+4UMxkQxWmUMbduTWynJAesbMN1P - -ijRtYeM7vYcKe72tNBsbL+ZY3TkY3gFsksxCvMOAixnpUMFUK916RwP+TU8jn33DYyrhUP0ESuFEwPSTvYd5OFsiOLUB1VlyoJZIJXZD5FH+TJvvKo04P3z0APEA9T0wAArWNZJStC0AbMFZ0E0AOOLySaHAgSCdGCTgfNuf62beqjjkgGEYjyZ0FTsDwr5DxhOT2yU3MyfjDFMGk2Jj1hNw/jAz8z00S8SDCDPiPRNVBpt71BpGzIV4GQ8jSpG4 - -JLT5ptsnm521QBMkGyATOosEhuDNJpWUM8IjpXXHpUzxb5tpWydl8M03tBRFlx6PkV9zmWG8LT6LLR7uO7yDMmbM6TdtR82+O/sgfINXKwMNtR7j3bgOATs2pYjzJlMo6bFbZEXxslATyQ1Yk71zSsIlQ7dDtBv4JUF+XKOZSnlbQ3aRQYzNKKM2/emTe+06vGhl3jt0azgtqPNS0RXdAPPFO8vxZd3lA2kTudGA88kbRCvcBb+9fw0D00CbuN0A - -EGTdeqMqtpBpqOtaTRpNtS2UlnaWNJuWJuO9ODuVKYMy3GJFRexEjUX98nMVC/Xmkhv14U1wY6vlCGPA0D7LrNKfa3UtkInJI66WvCs2I44jkgJinSgsVImXvNfliAtXSWTAGH1ctX+Les7aK4ekHAD0MS2gkgBNAE1ym4C8WiALlaBQAO+hiAAkmSmDcok3iH5hXfBDa3ZtYqDk8FOxZbMYWGyLz83EIxTM41syW5AbclsLmwpbnUvKO02jVVMx - -bW3NbdUxtMkr/vT6KdGkBtuPE7XQpPgFGONLh5uTS8atXMToxvabl5tUPDatji61c5Ojq6ZkecjjTz353QGTMlMhsXIDRRbzc0tTOTvxk9yjQx63m6K7RZOw2SLLGROUBczuMgIDsQFwC2usGY3bOO1Tc0RFIE2RO9TNwTsZYS9zS82fJZXxQRWeW4t2A8Mio6CW222Dw1DzsTutOw07Fa0u8xSQfUiU8JeDc2WE49n9XCPNOw8DRTkx25iz2w7Y - -s6WTvrsWZtizkZtI5Vx+MAsU5BVVQWP5ExU7UQ0hLiobqdveW9mTm1tXaQm7G81yDf0uybu7Yam7RPJxk9K7zfHavbNb2bvCJtG4L/Dmm0RSGiNd0+iJMNt7Lqc7ho62I4dK+YghEXvpHO2HO0kjlJJK7eIadxs/3ffb043dwGLhHung3gXyjeMPjv7LfEp67dN8xFjEZYCbQOhrOsYt//XXHGLAveCY0ljrMZDcQhWeOS1CBb4DZgJu698JfSgh - -I38JcpaJ4w62NrY4rZkpPEP+Lcqg2nCCGr6iDuvXLhDog8J069AE1bsU2/+L5sNIFS7mpADIEspQVYB9AL+8q9wSE4MAN4FKIWSDWctNTaQSSIDOoTsgQRCOIQfcaSDjJNx8qKSD1SlyqAMvBTIbLBL5qR8FYRhsFbHD54Xou5ErCjuq22cTOLsXE8QLXFMg00krucNUzMZYTNMq/X5JJGWSTgwL7bncyzabmNTc00pZF5vr7Sy7xRWTw451YxUP - -JS1zfLurnc/L7EXBqylJNjUqAxyd4ksi0xMLKVsgKfk7gX0vmxssj8tUI1VLW1tbo8dSoWM/bfItOuPdsmBlji5UihoDYvNaAyzRK0OvnbYcTRucBTDVysvnPg6lSrOCY67bHoXas/Z7iimBNaJ7YKGaS/7mnosczUnbnQsbwz3JvQsfnX3bFJD/jQ/FVeyQc4F7ir36e+Bzwhtz20mbQT0pm9bhSykmMCspnEvTgZ0g0N3q7fcysIktKenKQzvb - -G1DrxXBeLf3rvk1f4n16Pw5j81vlGDg75RG+T7hgY/hDJrNieKD9nh3180DkPh315XCNsTSi5Ao2Hu16w/XhAMjLpLbVMSwAqNYu9dCrYK/z4zP5TZRbVNsC1rme+ABbAOWgUTBNAE0AU4BGAJIA+gDxANdiZ5Do8IaAc+Ogu4vjGrGU5kUyhXW8W8Akr+BTLOSkyJQiO7ATnrsRwzh8iJltRVsNaLtMU+JjBHtUS2rbvBZxKypbS02bNTcT9EhX - -oIV5eBk7m3WobeyxeX4TryN4M9xLjZA9udPLYEUzo1wLAM6PcqwbE91rayCjadtJu+dDdv1XQ4W1ogOlaA5FrovbyzE7lTvQw9fLUZtoKxNpuPsVG0b1kTlKy3tpf1Wc5fbjKKuByXThosDs40iZLu4dw6gLa0HPiWz7Ww3V29nyg3ONC4zzTFau0QvbVQ0eDeSk/7NuiqL7nJpnrfjF6wvFK5oRSyXmWT3D3Hvp/Zsl6/kZQEu1w3Pk3SJFuL0a - -vUz7Uiks++DVEtu5Vja9WdX6GZdtR+E7zrtbwLmx48c7uu5sXDd9ZOpo1sM5bw3ONq5NG7hK9tbuaNMovMO9MmUlGGB12DtP225upOxf27DbO/16HQ1jkQIzpGsu1bvgUHKg5m4B4HyloKjHU4rrkKgNY9u5bBpqluC5h0pYWxtERp0X2dYsaaLkXFcq7qIRHtfaZyYUO7UapEBLwX0AXnjMO8aApADc0NiRWwZ4ypIA2tuge+Q9rtn/JuQgsMal - -MOm5vaLwLoqQKytVqCmOKAuH7falTnty670dtzNYCyqbrUvK26J9UYHYu8ubtEtiPVxTTrVEu5R7ytocwiabipHQQu7sFptz7UebzHtGO13iTLuce9CtBstn0PL7eSF6DR2l4Q0l+RP7Y0EKy9A226Mua8Q2ErPoA7f73S62e1JbyUHv+8ejHOmSW3ANAAcdOyihGngAxZ66Lp0PClXtAN2awxYGZrpsk4BtmTV9Ce15jHMEvu4jvg1V+8/9CtZ+ - -uWEwVgCVAOKo1ownpLUAxPlZ0PPhoNP5lhrgf8CaePqkc3Sim5FyKarZ+qg5AXOr9oT7sbscPQlrXiDCOxAbz3vyO8aTb3tEe6v7Kjua2/i7ZY2qdRR7HaNT4JY1yn0pbaXa89HdlIY7xluj8Rf7s8tI8qX5GaUro1GJM7kPmzWLvAunuda7RPtBvSz1DYkxuy3df7keFWYHNvuHCj/bsu2HvYTdJrbgi6hb51MJZUYgqisErX5TVZuU20/90FPM - -KrUArFud0vmgNCLg8EMBc1FCiR+6iVNk8IROfyCn8CvTA5vZo86z4hEsSVfUdLm9K/alusuxBzLBfAdWE0aTVxGKO/WDSls6m197zYOtdTrbzKls86u8s1WZK1IVOtpKppzLwd0Q+wkLw8BekzD7k51cA7K71x3GvdGTtCVmi2e1RFaI7YAH/Ls0876VTDiKe0/7QkstfSZMw92IKUMHQ1M/yRazoz14nDZbhtGL3VBB2uXno4AropkDjusHm92b - -B+AHQRF0sU27brpdfPDd2u0n/obtlu1ykgP9NzqSRCxpyNZpET5xVZrgKDWaLKV/mZJWf0A7azgHiW6VoAGgpwAUAMgSfQCfuq+QPCI36U1OPQDb7JnLe3tIhH9QggRgyICgAZSMB5excAhngjDN1kOtHUfLDCPo00oE8MPIbk97uQc6wfkHhHuwM8R7GtvNo+I9GQMaO/cQ8LyDKF1I2oQ1B0jEtzJ/pox7CCVGW+qLNHiirW0Hhn2cC4tLVq3k - -G3Z9dmMlK0FrBJMJvXJdP3X9vNOT9jVf8XHbxCU0+0grjqYrUxhW+ssm4/6twdtxmU8+ZQqe4IGLDbVqh/1BzFXzVmtwt4POY05WtkObQU7bhtH92LiH+G58+5fDgvvVVqfVgZlqu1p7ki36LXK9yd0Fu/DZsR6zc+vbmhFq00K6zBi6B9sr+ge929Qt/odkGP1zq8NLmH6Hv0CQ7M/7c62FG4/7jpuH1ajj9/tQ7YmHidlOmxaHj8tFG7bLoFEq - -zaILv1s5m84mI+CAPdr2Rh3SBe4tom18Q5YBvkvs2pLO+ens0ns7g70tve7UGb6dY9btEvYqbiXjn15XTIgHJInIB6ColN1Vu/eVhwoUbVIF3FHNKdn7uXtHB31woREzXUk+uLrIEHojY9OdQAy2uaQdJo+1L7svO1BTAtamzr8HXDE2wAeQcAAnYmwADQA7cacARgAK3lMTmQNb3HDQpuBy9QdmL0yimwfE6n2UgMto224Fo0Cj8smWO/iHhpOE - -h7dRxIdKOyIHuLuke+IHXYBC/HnVUgSFwzQL+oR9GHGmDQf4G6f7Kgd29WoHZl4WfWG9zS7jzY51px1NUfkLurP0cyihdUg3CLSRc/NE9G4q8yPK7PKr3wcC1mrIewD6ABFTSaOZXBJaAwASiUYAwPxdANnDnfszI79A9/bcMOqQamCFy+jYp3ufsDTqkhoeK0iYL8SiW6tgDNGebVgr5kS/h3I7eQcAR0IHJIfARyR7PUtQhQvAAH7jcPxAyn0W - -LkVzHC6vUAFFygfshyfmqEfcOVODkweznXGHxW2Bh5ouj5vT1ZfWyOHmIaxA1jVmjX+dVPsn/iK7C1tcMzPFR2reR+HY6kl8ZuOsUyyRHh4bKdi7qw8mArFtaZE1Al3Yq6W7w7wjTnYRGrsFtZm4Ixp1hrIYQjCEZujjDuNaiGHaahO+Azxibh7RG7NoTCUiIu+oEKHiiGC9ckfUnU6IVkACQMNgjzoeDPphR4PYKzRwREAHuPO4Ge7VR5jpZTu1 - -RweMl2MR0bnJ8SCwngQrbUcHjMBxX2yiJdymo0ejjfLTwh2gZDR5+5mZrF89vUczqf1HdbjZ8fRIESAgXrLTa0fY6RtH11oSsRh4cWCAofxhJUdY+9dar4QdTUjrFwueaB5bzBsn8cmI58CNkD4Epw79w3NHkCuPIv/xOqBBQMyiPKMXRzYbZDQ9JhTpRuM0veH5rST4GAT4NcCk45M+uLOz2PsAjnBg0B5zTXoqZgdzvQ6VMwjHcId/SA7FvxqO - -O3BD8w45Fe46M0Dl4JrOUxrvR3vLGMcHyzBb8XtwW2jSZGathUeL+0z7UzlOpJskhCrDMAdebkRJ0S0Fey5Lh4IR62qSHkuo/RYFIU2hBXTSo+nFI5ow0HWVE9NjYqBGZRe9hpYiluxlipbJ416dvGXFASaj5ElobTiiCnHmnuhtHqP0lluTOk3iuodogcuwPSbHALJWljeT4REfW3HhcDvZEYxRYftISVsbnwsFe4nukRietugxnWhu7VYdkcYe - -ywO9Neskujzq0/16owPuxYdEosYdW4egWamzZNBwWW0AvylVgAQALQALhpWgTASXfoL0cAB7ANcTegswh86IdAe3KKipwsl5CBIgmsBKQs/YmN2asnAjkdNDpA4Z8snrwzfViOgB4ApHQn34e4IH0SuwG+rbYovkh5pHky3lB64TaAy9+4XDPc1fEaKgIuyDo40H8Qsse9Hq5kfquRBFnPs/+4ez61Ojc4JAyO3gtTD2hmZxFjNzyr2n7Sm1UIEK - -HujjhTv7syBDDjV8Mz2TwZGJyS9DiR6kEfIRbF05uxfH1X1/w7qZIJ3Uo5KkD8eKh78+UNnPQ2/H8ZvHrY9DQVvJY5TwlEAjwzDDobveW0utQCfLQwUV7S7hW/6tECctR32NzqtWPenb6UBbQL7bmwHWB0fHnq18a047LBuWS6RVw9tmu5mTboeLC8VkOTEei8dpgrs926BlNLMkvTAnqB1wJ+H9+g0uPaE1vDUhLsp7B6vXWnIb+HBUs/hrQf0m - -5dXHN8kWGSG7160XswInMsUKhz/HWhki4zYHyh0mwG9J7pZhBY0JnuD/Sk/w9OtUAqdOvaytCT4YxqZaWKzWsDhDi2JIWM6BlGIFe1OfKLLNOTbvC2LDZuEEaWhJeGnqzbpNY7tX24JKQE6r61hpQm2nuxa+Tb0Xu//dtQrSBQSieZuVlbb44KDESSM7B/1iKzr7hwr54/PRheOk0n9gIHaUkxOHWfsnaHspKm4q8l7huTPsxzBRuzrPiz0YlB4v - -4HPA+eCYcVHHKbMEY2TQ2sRnkBBL9AASWnAANbYUAIkAVDH6ADO+7ICA/NSL+Us6Xbq+Cgiim+bA98j5cKEClqVRRouuj17P81ZEbwUGgzKMkJjNx7yRAgdEhypHQEedx91LAQskOTsAtwH74BTw9Ic/hckg88BHNbS76cVdU+neT0hG/skLhmOFK1ebslOwrWZjekWbswz4dLiFE8kTc8NXJ3cEXPmUJ+LLpRU4J+uDZwvilOQdrNXXx0MWmWt9 - -DT57lVvGtVmZ/vlXdpPg4uMII6gTcvmzG75+i1tTVo1BsKNMnTRNdTFXvo7zBQuDafdhXWE4kzfJfH33yfx7Qvmry1HAU/vaMwk59f53a9N9OWMpWJC9pUO+ew3HxUHM6df7l8eNWspLMXvPx89tKOGuR6z7D3vXq09D7YuMpwhu54gc49yn9js4J/gJDcmXZbgnJysGGRZBissHB+ClamBHu5xlb7WkUUoYa/0Oxxf9xselCoUpW+uz67FEb5NO - -Jle7uvb0Q2i89xsFIzfb5xtMQ/sy5EKv298y6QGFCg+1h8LyluKhiqeHCr4GxwqqLMhpeITtKdRJOJJep8iJ6uvJe5rrZLUkOOKBS4iSgZYsjeEgBJLs5NteB+/z24c+dYekmAC89JWgqPDMAI2gowCAxvvsPQANAIcAXo2VAECDT+tq1i/wTIikAnpcYkSf63WCzyRy2i1wOXXvy4VbykERRhly18MMJQ0UkycsWQs1nkOLm8IH8yefe0BV0n3I - -gOU+UnFCuutNujstWQBJNLvH+3S7w53TS4AJJjvse+ZbJydq48TNWqGBoSUl95tBh2/LQM0PMYgr6S58p8PbD0e7QD+A7yc2OZ8nrDOph9G7p4PvHcid3Vugxy3bdOM6h5nbBdsQp0Xb3BySp/d7W4lCp5cnD6Mfo/RulMVAtTHA76NRe02nf6eprqLT2YvUzVKnBAmjIBRN3odt2+bj9duShby91Ytvy4+nKBPPp0UVX6f6eyhn9M0Wq2tTJduZ - -YyaHStPpVtBnxdtAK9+n2G7c+1ynfycc4qy7BGeW5Tz7H6dj2Sl0Dk32AxpcfWN/OubynWihLYjed9EuARiosN564YO7d4LDu5bVDeMqkie7BetzBY7VaPTZ9WS6ufXrCprH3p29034C+LQ9OxrcMG0EiYPT9KAy7akBDgc6p70y8+sO4dWmss2wm+Kcp05n7UlwXqJb0xN7ybM7fqUnFQB5bs4AKdQXANgAz6xWYnSt3NBnkNU126q4AGpbXEeY - -WSEg+rZLQFPrTRkDm8zAWuDtcReIlhDj+59OkggGiWYbehlF+pgLzUuK2/Fz8luO3eTTl9JFB/fjGkdgR5qtXZ0O8NwgSIyiWQyH/cpw0CKt48eIR00HNptHfL8BltuhE9CzQK2xZ9Z9cruj6lhHBCefR8eDJNVG0dGH4hEfnk1n16deTvrTxmP9Z41av6dLwwKzU9vX1Y/+dKfYRlNnRUHNbuXTp+LswPNdCIAjKStgDiMZm6UYWOo3G+N8jiep - -WdfbEqAv2wCgNqfjfPImVsfr68rF+NpQC+SUEiExp5N7PgfyC4lu9ADKADz0n+R+AGeAWdCStOwiE9wH030AzACP68VVlvijKHhOMoyg88/Y5ad8wDnyXyBjaGTACwEAoAs8CBCM0nE+WJPtljh7V0V4ey97bcedp6pH3afKW72nLaMFQB6yGSByCD2jJWcBENyzMHu9g9pjSEfqiyuRbHsR3bzTAku6/DZH/NM0Z4J7wK3d2y8nDz3Se7ediKev - -7Qndlj013WIZY0MmB891GCcUIwrZCeSB3UNzhlNpemSBx0tx8zLnOlP45UdLDIGK53E7O6Wyp4pNwgWHII7r6TVxaLLDzqcf28u9GqeN4FruT5MMw4iJGymdKSpIotKkqMhpvJys1i7zjiWwFU87psOvu6IT7yoNoEk249y2Ri0ADNDzAI0aN+5wAJWghACjAMwAWXNUB4WnsyRapDZYwKQckb2i70C0oKTu0Lw6ytFnvIdvBXpLFkMGS62nfVXT - -PSrbsyeFB6SHXcd4uwK5ZwBcfGHAwPnY/uGOntmIOtQ9DNEmRxPLy2izpwznpBs/E/6TnQfNw+Ctfj3raw+23q3wLbQlo4ldi3OBPYsaWfYeF2UZVlPb+8NBhQQlhKa7B4aDzjuD+VZHZulZ58Q0slVzBxsLuktSVfpL6+da53Qah14MOTXhm/MTKBD1hPDD0VYjStp1u+c7ZueOx6bn8RGHG1cH3OrCZSHHZKiN076WA5UOrIcgtJCvJv/A1EeH - -pPoA12I3kLesCMxnkFWAm4C57V0AuLloysmAxsXUi/9sD3Q+BMCmn+t9JHx4Iq0dkM/gGpMcBxYHJYMUoxgDs/vJZw3LqpuL+x2nWLsxK8XnCye6mwTn14dUhxRg+pDrcFQLbYwjS9I0VeKxC1zLVWcnm6ug95UQs6vtsPu3Nc1nsljA+gvHpmOCF1sHHZ5kZ5d1WEXzQJnRB8x8R2Kz0iMCAzml6QvM1VJNPEC47fmL5CxSS7/Sbh7JO5opkYsq - -F8KjrLHLx7mJnmEqF3+bUrMg2ZuzwCvxW7gXjSv7djYXyLULK+slNaUyhxDzSVsCiCcrIX3+W5S9npu0vbwzLhcBW24X7luyyxAQLR58M++DMstfx6EX/hfeF3vnLV1P8EHyK10KnWGkua4NzFdrFLLF0pondALFEUbrtG3R49WG35MZgb+TddyBTXD9LZALFRrmROYGRCTmz1b+SOUFyrCVBa4xwOrN5U96gb54Q0Hyob7wfCg4TBPIfXbV4etF - -66gqfZXN01gqX0uE/REDUcsC1q3KZ4BqAGZKWdBwSxOmHkKmSoMAWdCrY+uGOcfi9OFwVbgNlJUG+pAQ5wkApqT4pnldNsTk89yNOHyBlXvAwZXA/jkHf4fRodwVgEdF52pHZIel56WNfwAAfpsZGnbKdrXnNlDZQMfJo8tsF5PHHBdK9DPH6CXNnH0H/BcE5q+rGYf8urSgBNUzg0dVMhcR0VwZm8tSe8+2W6drfc5Hq9CZ3nm1KUdbx4NtfUNV - -O6ijILWbJXtt/3N42ZQjHCdOFL9zqAUkl5rjksva4zr59A5nbTVwwVmdfa6ZjF53VfLB0M0wCU5+zKdhe7F7XWkvyw5H3g1CG7yX8uMbierlyvY/jSQBR8CmmSfVblalIJKXwpjSl4wBg2e3pxpZ8xsWIDnT0rDQK+7RUk2jpemLGpdTkxk7EoPql5p1833olzlUs4kLrj1bLAFol0lhQ+BOVs3bvVsyJ7FoJXrXigjdCZBd694teyAHkzjq4+Uo - -3rXjgOp1e+0XnkUEjq96KfOiMDZVF/MZm0DqbU3p85XlDb7V5XZxip33S93lUbEW8llFJw2YSF770euhvvFN1eIGJlm+CDu0K/oF4b5fG/7yGgUH8+6S8pK8aQqdH8DTcK5V+Yo9F8UntmdLY2TQoBa+AJgAZoyJAAzof848AF0AfECYTs4AeJWIS6ggu0HrddP7zK7GEMagd3CzwAHxyWU+maPAV9Q6sl9AbbP+WSBmVxeKR/+HtxeF5z5DuOfF - -B/jnSyee3TcTqODw9D3VDjEyfP9RRRaM078XE8fjy9XOV8DHsECXBIWH1dcn7OePnninE1Mrp8L1DmNF/XoXe2WSuz4XLzbjZdy7Mnu5rVMLyJcVkbttxQvR8Yb5wmrPrVBh9kFka5jF/IKHDjcOr7gM5eLb2COm+/Po4+fQHiyQCoXNp3fDn6gu4zXJ+9Sf+wi150XYtRssEMOmQQzlawcW6eiDi+fWmHmZOPNg4KwzmtNxqRmpC5EXp/sLHx2q - -6dejST40CYBXVhaYp6bdj16vUBBroKOwZxJV5oPL3UxX0rDX+39VZtMIoS7+NwtFbENtYKcFY9qFOvMOXdp6K4nrbbjzk93m06pXHX1CrQhXXXZ/+6AHzNHz6DRX7uVMwA+zwErZ50ZA7g1LrrRX9leGC4+zTlcXtfsDvDb7LpDJFeHHuE2HgcecZzUj4S1FvggCN2jEQzS0EgsdBWA1kaxLft3imKXFrM9osDgfNGERx+KzaC/lTHDpV8X6qaYK - -wg9906SkHIkGbMfN4DmFWXUb3tFX0JljBZPCZu4HDUUXLpc8UVOHGSMKZ+rHhfUItO99k/UEOGk1xDizBYDeIGPKHbmqrQ3JHal5TRiKbT0o87hjM27n/lMe5zWbiW59ABiVzaAivKcA0rJ06JWg2ADDWDwA9uQ+Z9SLVIg6iY36xky3caOAcWXnwEpYzqwnIDWnA5GgXbLohyggG0/orAnSQDZw/m1o5/7FslutxzMn7cfvexgePafRbWXnjT19 - -x+smQKgwqL9RZOdzeH0z+J2N5/eXn2z050h+86cOm9YSBWtMvRglvF1+27fHHefdcxdzjnZZO+ThtheuEc69eWNWF730sUee22Bnlx3I17RdVGfqsIHbIj4MJ169OEe4l4GRZntJk5E7HpF1C7AFdv42+T8lIKUuV6BBHm2U+/ULDZk2V37lbld2hxKFwvvRGTse/Bs8J/TFzSv/ZSdtnVszQ/VUjhDzwkik7MDah7AnqCdJlVrTWZX6FQKHSpck - -Exe55t2SV9/LwsvWSwRLcZW6q82TGefCgqZL5tegpUztjOGbuEM4n4DwpMhpuLpcoNQQNRgrp2j9ByfoIHsQQ4uScTV8BjOCuoYBpePG7X77Ws2yZfHutzQfDZjqhiGHk4FXnsuSxw4FE+mHRrG+EscvG0LCOQGFAX4FayCdftnrGEKi4VhCPvvBojdQZ/CxkFsZlLlZM/TiYIpIDBrOpc4vTDrOMgvPA5HLrzsM9HUAzAA9AKAU1gBKjnPaOiVQ - -AFK8lQAXALO+28EcIMBFwuaVrHw72DbqjAal/jj9m1palvn8G6EYlQOws7wHz1cDHYQXC/seQ1fj6WfJc74LWWeVU6BHZedrPTQX2UxNRYLFeBmfF6Xa6nC/9hDX+ydq2bVnpjtW2+Y7CZUE1zbbz4PBps+XeGf5Y9ZH+JJBq7/Ec806+s8nVktevXx7zvOmez2hbC39oeWsXnUHHSxXBldsV1o67Ar6V8wzCDeM7YuT+rNgyrOwJl14nVdM3NVh - -RmFIc1TuJ1G+z5k79a5EM/N2g6vzRpLT9VrVys7uo7rHcw0Jkk6kjEqvSzZEce1t9Antf+cM9CwqowBdAKQApAyKTGeQRAcIAE7qlQD0AHsAZ5CjESPX8iSOcDYlbqZ8O7LQcwrGPrEFm1k4geVbIMnL1yy9TUsky/P7Sttb16TTO9c+C1qb+9emMU8Xrc2aAFsAsn1SBz8zVKDVuL4T825A+69iF0gP0DeXlWf/F8ZbAzQQxWZbvpNkG1vI444j - -Z3o9oDejZRZj4hfGPTm7wVsjMWcWoTe9IYGRmlfbA9LTFCEi58NTUWPqhQMZCPtlWyk36jd7A/bXcqeQOAfAXph+pwHj+cyQoMHj1uEswzSHOVeHeaE4h3Qa2tA1FMFaSJA4BOpw7S3hP2q6MN8cI6ucN1MMUtZwAErIWv6cybUAzADJgGkD1aLlTTaMlIdR51uGLsADTofUL+369bqOYXiETtI0yP01lodIhVmyII8nutnuM4qMO0lPVyRLCtsb - -17o3H2P9sx9XXacfe3jnP1fPF5QHVjfkC64ou4a/UZELpDhtPBVnhls05xPLExhajXVn/VM1c/MrRSFGyM5b57MGu0sD+8eSh+gtmCcYNuNlSRuNO0LnuVPMhdVQg1t/bRLnlcsOIYT1EGdip5Pnh/meR7Qod2Wwp1ipfVsm+Zi3wMDS20Z7stu4t5bW+Le3QNF7IpfY8/A3O7mmHjenTpfIBZLnVcuU5z8ebTuQtwIjiLePJMy3xW2qe6xXNLdP - -m4ldOGf3aRy30uf9B792NVtEVrE3cO5DfYozkM2NVcgtdNHDG9nbYxtgJ/enTlZYZ2zN5gewJD0bVcdM45Cnv+2sHTwjIS4kVxfJjPuIGrL7h+vVffT7zQss5ahX0oMbwCLXXOXARWtbSzIXUGs3x/nqt8zjWTTDCqs31ODutzq3vd16t3F7PvMJe3ACcqFLiL5IXQxsTLXT1qD10z4Yw5CU1JPgopxX3XEtvShe68LtK4uW69P7LqdIY7KjLWOB - -ENmXKvYx68XLrb0e9uLO+Xl/NAqd5etKcpXrRtXO1U/R11MI5IFV0XS/Fe+ZaZdNBQyeZgX1RYR4UekV5cUMB5qRRX10k3knmYDqPbel5bXlEQX/fSncnb1S1ak9J3DNILaoTSgdN1982JUIAC7mhwCEAFWA7IC8IqdxgIQIAEYA31OXQILB/DEqLBfA/pLgwAU25Zb0EldV9aZsB3qXdOUrrp5t8T7KaHLpUXO550FtngvNywY3rcspcw8XJeeH - -188Xmcu9yzctdOQ2kIU1dskg11GIFtT6rhNLuyeB2Q9oiIBPl1OdfjcZfkr1cLPjtN+er5fAo/QzF/njU7+NX5eqFylHnl1auwBk8WiKSDjl+f3H8TBn2oUr01O0sPMJFdkbwqd+kUgQ7FaVG1YeO53BWEg9ssBwt66HAb0sZv43VCjhme1VkZkVbSHBSi1hwaECP7MNWxmL2gNI4XaXHKcnItK3FcneiwhlES2pYCobHd2J2+BbhGb01Vb9D1Wd - -kAtzgOXiTcdVDtFSTeFHkyusoF+XNUd3s3fHwRd/VfEVWRs6Gy47Z4NInV8n8YeBDX6tQduZ2w/DTHm4dyQBBKd5HFrjNOM6+dqXftFkp00Ngxu7QAHbsncvbQy++9bed6MNgFv71uwnBPsAp2+tICOOd7uoKa0xQXgr+iDdkxRrAWHYIdGQEV2Lc7lHOf5JE2EkvnfCmP53bY0HVV1s79fVdw1rhge5h/3RRarBI+KbQu290wCbcG254Xb77bvD - -BXhyNpQyx7hy1ZfynTHzCMg/04e5Vo1+7GbswtXYeLA1eHhgyR6+83fFptA12dO03qUawiWlSGEa/LEHvHDkbtWanoonBs11t4P1Bp7nDchC3emZl1Vwhh3XuxaitMNX5x6nLJNgiR9dfBrhxzd3rvath229I+lvfTW3pE6lI69Uo8Lphs8bCbNZl1HrhbcuxmNx3Wbw27AIZypHCS+pVyp94OzAtxb+nS0MzZef8y5lNbaGgMt7ndd0Y/QimgAP - -6QeQ3NB9AEdx2ABWk+M3T377BolhPrBM9bB77uKfSACYDOtSm77OkwuNCicXiJj2dxY5UjtYg9w9omMtx5jn71fY53Mnpzf7l+c3ZjewzM1CdqCo8Xv7htth5NdQpEgIR8837BfuN5xoBjWP1/VnXzdlK6u5eEc410KHEksKS2UVRXcUnRmTaKcEQE5HcncMQIjD5kWgV+OXBReWvV79XnvgJlgXNvfuixz3v6MUvD8bbgGvFcv15S2r9csEPRm5 - -8vwlldykApWXQOjaGE0RiMsTc4mz30tX9eMXh6Q77FWAmADNAjCEzgD/2QeQ7xnBMJoAr7pGAOAzfme8yYlp6dU2RJWksMfnqt2AqKEX4MbAqSCvE9KbzPcW/uWdxrvY45KtXPcWE/stm5c3F0nDBQe7l0L32WeLJ5pHIHtAd8yph7ketnAGI6dTGiFxrBe3l6c1rzf21Ih3HQdMo9QzG+f8d2Jd1PX0OIoXmhcZo9aLUhm7g8R3JNdmYUA3aZFG - -BwhlGOn7p/b9+/czzof38CvH9813SVm1683C9et19TFw746G1axYGuq+to0FbHgC0mbysQHDGLUJpV1MWCQOS7floqbFQ8zxAOvsiTaU6JsGsIBQS08YlaDp1Ee3sEgzrVFa3lxK2RQQ7K2tQj7AW+A1p8a3kCBkV/alFvMM+FfNWjd7Nzo3qWeYu1+3mptzTZ33B9c5Z2Xnic0n17JgtjHHucp2MEeIOnFgbjVPN0x7ivfqiwd00NesYd437edz - -x0IL96NaLeTAAB3cB/xdmyuiYVTt4mElR5+bjHfp0cx3AlYks0wl51Wq/NzVCzGNIqPDD0Mjk5/Hoi0yQMmRqnspu/iT58fJeXDVug/EIc2LyL3Ap53d5pf2l6IzZZk5yZYP/8em8eynmJeOwCtbhg+lwXfLlJl+F46Lzxao1xzN1feRHrv38lfGOuVGicLMon0WGBqnbVA3RUjBWdIPXlv6t4yXKqTg8wEXYTtczWl3cPMPTfnBXJfCg4clgRc+ - -mzoP041k4yoReQ/KD5zUBkLMRTQnlYu5wTFEWQ9rscIniZuEeY3ReC1JB9EN7Pd3Jfb3Frh6HjdOh/BzVHu1bQ8xW18r8GdYD+n9OneDD0L7OWtQwKMPsRdAdpFzjymHW8GiLMdyzWzHxePI/eu9xu1f3dPrDxuHA9N63tViYuSEbI5Wo6RD4GMEQ5d6DlU6lFAxx2gmBZTW5gU+AVzefgGb8+REexWVLS2Q1Xtll9qeKTU+IDP1ykYcns9Kn47m - -1d+OVjYN3O7Vh3ePD4v1VEP1haNjvFjD898OG+UfULnlMI+j85vl8I/tGfrVD/errHTryOYbVDHsFZvYi8Gd03uHpA0AdT2GgI3KHNDXoI+A4xEmK18qZ4BFoJxH0Id7DP44+qVb4PowpALQ03iA+tYnmFCZ3lyV95gUj/nTwljMX/4ImeFjCMMED3HDc5sYu697xzc45xQPJjf/t6L3bsP/V3P2ZX6h9dSZuUphcNbALjcK9243nA9roBbbqvef - -N9bbkbX5jrHARlyf16Rnji7b7VVr5noe4qLkpHcSnXuzmsvgJxrXld2956LRo0Pp/UEPhJc7SwrnXZnJD/uR5QtkyE2k9lBDyb3bkXtEx04UXo9q5z6P4Xek6Twtro/C52r7HreBtziaG0v3negEoqcT5w0gkpnsd3vH6Y/K00wl0oZ1G9ZAOdskp8oXTlbjW06Hq6M4TczpIXfeflJNNUfQW93nSamEd7pXjNUrx44XwZKox2Z3Vnt7abuni/cu - -jxFhwRe9j0b9nj00x8G3dMeAwdO3AscPVm17U5odexEm2xUYm50Xk3QwWj0XhHjTmdu8wP1rj1kFTqABRWPTNfMqMHXz7oMgWtZptJ5YjkTWfliPS6qdY2PQj1dop2i/9CsVpkh1sZFYGCJJl+itrlU+SFituVf1rGmmxcXF7KPAJaf97IxlLKSzrFd5c961+puad48QNXoFGDFUWpmx7O2PO7yTzzvRx3ZnEgDxAJoAahBDyGgVYgBPGLF1Uxej - -ANAPaHaWN3SPjqEMj7C2EFBV3KyPR1cSJFQ4hSRKw+XL2omRZ/+4tD2KBPTVb7c4C+TLXgukD4pb5BffVx0DJ6KnrFx8cqAw52eXx9QbTbsm8SDPwFU+RnWuN3eXd9ewtNP31z3Oa0136GdCD7jkb5dodw5bBdkVk2gn9YkdcxgtdB3o1x6bLB2JD9FZrCTWFds+e22KFoZP4oe4rGQtCazlSSx+ZNe6T7hdjQ/nzdEPTJeCC4hd63O4Kwq3U2l9 - -+dr5mQ9dsWuxHo+BT/fLRruEJ8b33rsTG/iXqi50LfZP6rpYLRR31nD/m9GapcLKhUxPCFwj2+jpCr6MT6iNmU8RT/hHl0vcBY9bjXDcK6bu7vuHDW/3f0GLO63lk/PvGx3y5khHOXZVx+KG1F44VQZfJMU8r7G1SMZIiKSDamXscqDUtTqxHeGrh6LbP2SQpet5xfPeBSW3qb6PQU1xtr6dh4ruYNsxohDbGlFGbkZz+xzEIk3XfJNTe74HAtbz - -AF0Awrx7AGKylaD0AEYAN5AX7gzQZTgKxN+81isFpxM3pMBR4CL8FkJ0h7qOA8r0WBT+UASHmVd7R8u6Z9iHo6W085rzbE9ky2qbnE9ifWQXv7cUFyUHBOeXIwzL0gfACB76k+3S93XmLkgsINjxMHcVw3B30g26j3OnvA8WWzjOpg7Gj+qpFo/Z3dX3qncC555jB83RT/8jPOe9QwzXLH4gV+maeJed5xcnmJ1adyq79j10J9TXTo8aDVpP4muc - -5+uIMFeT29vHEg9GSC/wn3N+O547ALfaTxj7ja2XRzZ3kReG99mTqQ+3bd1hURV+dgnboB0GtxEWv0/ulU/HdCPU4DrPVNW1OxclC1Pndok3uvvSA0bg7g/s8Z4PdMi5i55HRysVZEiXiNXK4/eMXduiFyZ96GvEvm7P4wcWFxhnTlazpZ3b4wer7oIrJ1sdewS1BnI/d7Ow+3dN3CCP+YggNXs5uJQBGHXz3uzK1fFXFJs94vGm4NAhJtmsYe0g - -BJz9xVeYvGxnoR3j6Qrqss5FvvwwlJ5N46+OqI9nA7v1th3OAzs5jfNwpXFX9+KWIFJV8aZyOABuUZAPD9WFetRlNomqY0hba7BwRU5bT0hPJSetlxUAkhDc0AGgeafloDwAfQAFOOAXb+Sr7D6Nkec59/mWm817F3iEv9gId7qOzogrwMoqho5fT+QOjv7kEOFwRiD3a3XHvH1qZvx9Io+4e/wHSkfbl5KPgvdfV2c3fE/8/MAUze7aeJfAhcPp - -K18RjighI/L37A9ajxPLt3xDgzjPjOc+N/cnUJfKLQYj2rl2R3HBwYfBfab3MXeC4ezPI49SHE0PBKUtDwDOIU8O+Z5H8Ki+j/wzCmq2t6zzgUh812zXAtfEV98rww9U3LTNAbdoZ5JqZC/P4GzznKfvpxTXZbKDJwwtepbkpRgTgYUJZ9gTXouO9wv5RJOLBzinmYufpwDt8C8aS1Pdy+bpY/JTY5Nrsct9nvORT9F6RbX3nUin0tcCL1gTNoU6 - -qXznvX3xZ7ovIp0mAolho3QD7EqkKeyXz4SkuKTvZROgECCrMZak7UnQtPscOzugtmPFvODhKuik3KAk1vzoO9kVrO6WSC1bQKcg9ewJCQx2lPiphmpAuEzDVqvj9hgrN5jUnpQI0ALmJ5onPCGQ55q27q2GPAJpt+KctChC5KEJ5iQ4j1H3RP2t11MMhIuBcvQA0rVsAM4AdThdMO/emgDEjcQAFwCSi8RPR6rxYAPYhyrco/RIxE6oIIfAOSAg - -6p5hrpx/gR7gpMAIh2+4Le35R/VZyCUCoHLb+BfYmN2zhxPEDxKPAvf3F3uXXfeUF0sn8mNXN+SZMRTPfXIHTA8KPQiAPcm313TiiMhsA143UC98D8znMWcZfoaP+GYL91jX5l0kZ8E3+nvUVUchvWcv1+IX4rPosYZV5heCS9PuC/erGkRWP81NDKKXzGikq0xw8Dj0pC5PkJdf16/XUY3t81QgYQaHw/V3X5cXsVlOIvEekQ0PbmGFi0UhcLVx - -sMKxdAcis1faudszk5EUsgh1GAzmCsDUheVDHydkHawzR/I5a5Org3OwJhCmKE1IsTdzD/zAJDR44iXpaNmtUKesr236hvKJkw0dXI6fIJqkrzAsryHtgq/JM3gvZim84Dr1aGMVtc8ddx2bCwDmLgtrCw79cIHsr4mTyldAGWXg1IUvaZK3HY4Ll2i3ctduj/bP/NeOzyGbbM/E+3ATsMNr29JXgMf5j/8TeaX8z/gnNO7Pzd71XCeuBfaPt3Xg - -ofd1Qea+r9fE9nSnV7IpP0E6+jFCmqQOOOA46cabnf9Of9C49VZdNW7MDnwZAgT+0xasjPUPx5Y7iYgdOBYMyM5PIIizcHlD8S6IuS9jjP0l183Yd48iv+6jGdXwnbWFr8Tt6Hmj2Luxboalx95IFa/WlRf5lCTxeDIxhBjvR8OP1d1xPPrAi0BRrmtYUMPWTwCT7sw6CTzhBF3CoHdHLtvuzDrxoXuC6RrnGbZrsOogCzj7YEcgSUdmT8rn50mb - -QE67/nCVgn+53mt3CN+AtM7BIDOvOtolYVYHek/nSTrigzySoDIwmyDrtaVb7szuEH42pVijaFz7Jq/eHudJ4kAhppAg7N3bCjJXq+fZ0nkPPVDk8IfUUJAyN/uOKvF7ZuQg20PS4sHAvzx3SM7XqRZPq8CvuvH+OlZAJy6D1rgk6aszK1nT0ny86QPKP0nZ4M1ua7EYSLEccdadEQ2xlCRhCWV8bqBzwADOka/HvFDqJ1MXhLSuCWUgTv7msNyK - -XV2Ayl1A6qv83Ig4MDQO9oiJGxKxdOu6kHnOp2iz2MHA8x5NQMajqKazJNSUvkSzgRbXZDSoLrSRLbFiyZEU0HPv2EUgCayPIqggPSICbxvgaRf0IPpvN65Ir0OrpuCOohtUa7Eqb5Uz3Yx3fA2x6MC9ko7rzdSRFJJv51DSb+lwaldONMjTh2pC1aNmKCSo6hAIcghnfGtDwcAKMFq1VdPL6FyvkUTJVNGtEHn9OGgIhUdoh53A1KtjSN4CEgWC - -t9hcHF3qAkI4wSAsb4lvyrEwEClvr3XBVDOOBE4QIA0O/G8m8UJvh7B3dYPCga/eb4TA9WzsxKzGwh24V4FWzaYRQD5v5TEYjKzr7x5IIM/5f/nMtlbTfGYVWD1Awh0JjS0gv/mI7u1vw8DTb2yhmBC/o+a+jb3L62m+H3elt/29ckJJ12x4HNL7Owc0x2/Nh5RYu5NiC8xKz70Pvcn71ygIW68oSFsOGIzD3qcX53Mp1MPXKGZu6A+ReSa6O/27 - -69Mp8qNNwZRtSxy/9wZwkDvJ4wyW2k3RKTsKkO9jOwqht+fQ7/W9pCvbb577hdf9xbmXHYdex7HrcR0Fl4nrWZsJ61i67tLZ19Irhs0D9XpIVDefDzQ3xgXNlS0FqJsbmS5cGJusOCDk7XvOkq6DEcaKlOFFpQzhNVVI80i05k3pM5pq5p/RHO323G7p3vtFtxm23YPwAZ+9YAiecSjrBXvttRkB9qenBzYDVGWMoFHjP4qh48q6eRcniprtys3n - -HFyBSeONfqIr1nmDO307WpbE3Rvr/wuwO5aSuSOBJjPrzYUMx4eLD/PLlrnStAJl0h/w36LjNDKDQJsHzoJxYOvMQ7qnBmd69rN+jxxHZ5RC79skhNCbCygmZ2dUCsWFF/wlhFv19WiPGDt9ef85+ZDz5cAVLUWdaHcVuuHBLWsgOe95RZ73MwUp1+XPwlxo76LqLsa3KO0mpdeGonXjqPcAS0gVxACSAMmAWdBlxsk2cACnAGwABACjAMxA0taL - -gEELZPdysrSugzgCWGGz56rh5KcgTJTZ4EXZbH0OV3bWYG+I+V5oWji1pCZDG5e899Mnykcvzysv0o8oGd3HYEdIM7QPLeDQl0lt55edgyuxqYEshyc16o3qFrGl7zd6j2uzly9JIpq5hL3fl5BX/HvtwzpPkWvz2z1zlgeiD34PBXcOO6LnKNecL/An6PsGB7V36lcBFTZrLM8did4Rez4EHbY7yb1xFHdzyukF1k81Wf0vNQpqtpmbVmwnr8O0 - -s/yC2B/s5SEuKB/jpb7PAWwkH3+zm64Ut4Lpy4k1C1b7yQ3sBTpXFcnvx+REyQ2ZByOOJK9QvVvnnleq5RvnulmEpyAHAmMo7C2lfRYGe9MH6svLU/E34CNExUMP3OW2T5UPtanqh5avNYp4H/CZgZvntbtzNV7NLv3nmRa2i2Bbag2tQT0HrlvnPqvbvHdoxaupS8eLpx/vKPtsve/vzilZ2UYfzpd0EpNATu+lldSTzYaXOW7XPveQY7Xz5zmR - -xibN4oyrmbo+y0i8743pkDWTcON3lrD61CSUK+m0lB3zRXA2rDSUFJRVhRmFc2JJBuUMDemDSEF0Rw/1ex0Xy/OL87eZN0sT9emX/w/ZRV5N7VdRzyI+MliQ3kXvPzlDY385x2g5dHP1yJw/ZMuZgR9mzY5cc3Q78zsVru116/nX8mJva4rQxBBIDFDamEoqWHuBd2c2Z2j3SBV9AMj6TQD4AAzQU4BRdRbatND0ANzQCAB9AA+hpwDuSYPvHoy6 - -kEdAIAQUoBcouzOOMejMEOq4rS2WhXPp5/oRLVXp5EDPjct6N0c3yy8d92/Pwvcfzy8CvAhC/M3gxpkKjRS7XaDoAs9I0Hc7JxjPLJlhRm8aXIepC7cvii4jhzyHNx9oN3qzEAeoidmpOIl9RZMfOIv4j23XFS/YALlVUTBVgDO+ttpMIsacQMxRgygbux92SrMCWKQ+ZjVuVwWwexZM2eyLZPWXY5vzgENtSkUsEvhL+AVjC8RL8tuij69XfPeb - -788fbcurL5QP3fdgR2OzCo9h1tTKL7B6R/c3BS6LoMAvrIcvN9XOMjBwg9wXxDNhE7hHIZPmd14Ylx74L0YXWimYbWeRY0e12sK9jlvV1vYVOpngN8zpthVOW4ULq605h7IPUclDHtmH6Yf+sCK9Zp/m5e/LkXt5D9af7p8vs5Inb7PCz/ij/OfAW/8+ouOj/h7TEb2W/S57goOv7bv3AmvvPUGfym9JT/PmuCdun7tlUbuSI1lD5Ymv7SIdVC9W - -r3+lAodKAt6VgyejB1CSB+2HRXqHf+JJi8dACpf8Pn6xl/n25TaX22XFGeY9FB+a8x53Ij6H4M6HH206eztDjv176QHPRNVBz0wl+pmbruWP4rd0FmOf5re3Hr+jUdfy9h77aPQ3Bxh1HQqXIG7LDev41jWV7svp18D32w8d6V31ddzDmTnlDN6HNBbVJ7uOxXHXvpdCxfxDtYey9qS6ImWhx0JDsmciQ2j0rQoCQ7Vor583n4i6158vfTVZjG/n - -vSEvFXBYScB1MOp3fS6jk8IFt+LhmeE0kibvl7zV0lQFLkB/92PP7udxp4HNDPSv5D0AahDLgDwqq7fMAOeBO8W1PTw3LAQEdqKQ88BeGDDsKEkDmygkvK15SvEC/ipaWtQfzX11x3jLiT73Md8Fa+9TJ0/Pbfd3Fy8fAd68TwFDHx/rz333ZHrSBDtAcDwFcxFDPiqlQElwY/cyTxP3Sp/CML1T5y9t53jPn6cEveaVJx2m/ewZ+p8Rn9mvOQu4 - -4cmRul9We7k7EQZry171qoVBe7nli/emB7evshxEviTzH3OF+YUeMrccBt/5C29JjZ5BTq8oVxORxw4ygyID9J06HqQv3l/P4L5fv8s1QxTwIB+3QP8eLPPBX3cOL6Uy0y5XAM9ewESznp8m0cIwrNd6U3DAGZ/ZEx19cDcoN3y3bnfBY30L5d1NjsXJFYvmaDr5GMNmYdVDp8svFhTj2/FJDqy31vtGX2K7TQzvm0Id/ZPq0eo5xZnOXyqqlDOe - -X1kNGaUa/Q398dvln6JBNhbxu9bPdXeFn8cdSBNM4/0bgZ8ZFZVWovMzBxrLCZ+LX8AH/qlWVx0PTM7a+zS25EY21x6UF41mH4c2MJ/4E7+FEAjkEzCT7uwe0xxX6al6MNxXe4Pfm/sQLyEH42QT4ulFXzd7KWFK5dvnXlf+Y8bPGXXkCR5Xjle8H9MP1oMOHdePbbczrC55ruuT73EvIE+wZDX6c80zrI8gl8DqkFCkFax2L136ji+epIVAo+IK - -pEo4+OIrUWqkYGl2pDWk4CC5benKz0wxkPVIFqTEpKC4MkAkR/z+geBtgeVJEjBfJNE4yK2ulFtAwTgJplMZbaxTpCWFaaxlhTEfZJRxHwH3yYVcEyt5r5ktt42FkN9peRBeHVf7gn93CYZZhrYFNxV3UCPlS3ogFerqtw3fFZKeaDsNH7P1RXQtH59qqR+XanEvJayqOJfNXyR8Qnzgk3F7ELwlvRn1Eda5AEKOGI8UVmdTV94HM1dUWwLWgjdZ - -0D0C8t1OjBXKDQCVABQAkPwYymStUIc2K6FC5ZaTGH/g5Rgeb5/rAgRkFmfAdhB5bQyKjkENdgNJxX3Yh9YzVo4X4HlYXrtJZ9o3Yo9vV/yfpBcdxzvvxY2IG/IS7ubN7kViOW9nlNBVeq2q0NuYoyXHL6qmw07Yz63nZjtM5yCXdXONDaZffWv93xy79XM7r+aFF8NnpcuK9d1E43YfvLu2n4Ij/IMo53POiY9ML11pu1+SOSf5S692WWLLwDci - -JHPv0lUuQKtfevcip2jA1RuplcJX32Vn32rpLF9dMRijwLedOSIkr18XX+9fDq9UJzx0jB8m8w57c87cd59tQTc5mc8eICd/x8crgB/edl4XJC/VDyTjGYjoH9X9/M1S5rlJzhdJ23kTkiMsd4Qv6hcykDKFchnL1iOlb6cPiRFfSh95n7gj4ZXyLx9D80bwV4Z+4fVowMWjrJWvo5L7Mgl609TzgrC5G22W1+YBTtaX4eVlsJaOe2gF30lwgVto - -rDVJ7m0Pt4rYb3WklIFQXSs3rQhXuHnMCaIa+LwO0RI/FD+4eSovqvNer+Q/sLFGfk+Yq9/5b/Vbrld2V5U6EL1sP3S3PF52F+A/4Rd3CCNbOB/gx1gn/CeqGf07m0/7c28noic2P1qW/GG6n5f3vvNNNArtfXcdNHHrpp7uJybteEKnG5jBNE84wbQTkc8j/dUjCN6KznUjT/dnDas7GDirmvc5Th1VTxXr4T954HHvIQMjOWusd2Q5l61wj9ss - -bclZZ2dSuhdncQFlGAu9ZeuklJNjmNvH0d1jAHXn0UTv+3mcGq6wB+Cfdy2HzT97b1NPu28zT97HnoO+xxpcBe8vFeHPvVddvXtG7/f/QRpcQz8zt7G+Ez9Tj8k/1bepP6i82WgWp+CSGFjeRDgCeGM5NVpJpKgD8nht9e9vuyLdq5VzeyGgFwCVoPmgNbbVAK3VtDFdAJWg7ftv7m2SjcSDFt9au5Kf6w0mxyBJRCx43wX5zRtlD/t+K/74DD8O - -5ffP6OePz1uXXF87l4KfVd/NzTXfm5JbAGQ5wCWuiXvAWrRDS8fU7+PIagAQNDhzbujPAROgn1ztxBuQL8pfC6cI4+TF9mNv7+CTqd3tryhFWMUeG2S/4Hndj/KH4X2sgeLn2qnGG/8WbV8/PZKv/Z9ye+ofaIF0P73+kFvDpdijv8daDxKHJXc2FuOfJL/PPUDthD9CF4Cn9g8bK2tfZL2DYf6fmg/en+WTZ2kiKQfHIbEPL5YVBPKja++lu6kL - -5gjXyLPgHx5ebcP2HxS/7tvi+bRmu6/E1y2fchcb3xZLaZ+uHiuvNa2g328OA7Gmxwom1seArgEdnkvRTc85wscDIGlFDfUUnveO3gGschuCnk1iNt+fdEN82qX1eetm0vKeN5mO0u2V7N5Bw1fz+w8r88+TAlg02ZePa/MDdBvzgZcVl6QCh/Pw/WP1iP1X3fl6LO5IjUASuS/c67iy19f/9/uQXQAtAMnHj6GVtovyhoBSkxwA3NAlOFEwCAAw - -8G/usyRceMdMYQHkFVIOGeLuwTydR0pMn0XVX4e530FH9KbfYKvva9c8PevvnF+lU6C/P7dCnzKPVA/PF0K5W/v001c8FjMsywZHq/a6GGQQ8p9X7w2NN+9TrBAvPd9P133fsBFmi6PqcQ+jX88xQ+f+i62LfB9ZMVuu61twpzh3z+/qX5X8K5fU4B2xE2fNc6S/Ldl7aG3ZhSBaP32P4r8daqC8C78WU27jYqN9mW85+KirFVcPjJ5dt2G+nxvg - -j7cP+5n3D/Ia1xtKGoos37F65F8HSF/TVyhfam1k0MfspwD9WHAAN6zgF5tXCAC1AAzQKVz4AB+8+ptkn1B84KDnsDgBWhc2aWGMcERORHSStnIAGcQ/FtN8rmEbBawRG+6ICH7sX22nU01L+/4h2++vH2svUM9LJ4VVQl9i+rH1AqDyi+eXDjd10F9AIygGWyAvsk904oFW4LMQn+qfXHv5OVgp6k/Qr7WTs7+8e+J7gcm7X/HdCNc9FSq/Fx3L - -dd5/u9/ur+TPi82ay2AfRL9tFaIZuVMdxeeelvvO+FJFHj0Dr04UjpdGP3ArZaXWG4SXvW+WQZWTmRuA1R19guNXiWHSLmadSYY/PUmyHPl/jHYqWL57p8N3kbxNmX+NyTsHDFcL54SXC9cYCdMLK5eEcy6gAW+7qKI7dTvb9MsLzgurCwEZWZPygwP8d1fGM3ng3DCT3yUViODMXxhzQlfgf/B/Ah+bX0IfXX+RsA/fl8llQTfD1MVMJdf7bltW - -CoF3Qi3GHxInOX/81VR3XOcWuwKjO20ez2O5zo+mv1dfpk8b29kLj1+gKxEPWvf+Fd05GC+Jf5AfH382Hx2vu30luwys3LNwjUmkrTxmnfha3oiwySl7WusazfJlxXsxv17tcb8a35jMWt9Z77/CJ4+z86vz2/MM7wFYsU6l3PHpgekvuKoFVb5Bl86DtU8k5FPzUljFhjUfgz8BBZM/oT/gwak/U8IvOsWXZNpp6yxnszLAPReTbesY2jbt7GnL - -BZxpdYXm7BxpGcJcaWdUFU/1V+8ONQqGp3TZObf3W8gC8RfLXT8oq11DlSiNRrjojQ2/ZNBdAPoALrlQAJqcQwGcIsDLDNAUAD8AxGOJA2/uR8FovgJbBnjPP2rd6KtVMxlpwEF/PyFOQ8a4P8iZMy/SO3P7pd98n8/PAp+bv+C/6cNdyx8fA+9bL7rbXnALEAwXuZwg1/vUOfDbyhi/nVOB2SNWkCW2fw1n9n+wr/z5hl9WH6a/0B/+G5ZHVteL - -209/x1/qFbZHqTtpN5/HxNQw2apdMIEiL4hlAJ1Z3Zq3oi+OX/Fead0KmZX982VZ/UgFIL1em5fJ9Q/VjyX/3Z/dQ0GZlDOzX30bVFfnmIPb+hl1f2/7oLd+HuwvNJLMHfof7dGtQZP/pq9y53QfcX/O47Qvq5HLZIp34KfDVvNf0Zo7/y0b8CN7/6P/wibWTP9IzTMOEEWVUnH38z+KUSd+44vRAZ5g73LDCSk8IVZN3XAt67cHt0qVIyg7WnDI - -/4aeqP8DZoxTReck/0eoKdw1IwzD9TifphID8+P5888Di/0Eyi5NSqe8RE2f68/3KAiugOkq14sgCRzCkvcFJxTeaGv86iD4AHiADppZwAabpUZSPgHiAPHUIwAxABfowiAFBjMf6QgaL/gV4DaDlpPqD1FZWuSxslwDkkcIDfgbaglqgh4weVyKkLSoCgEOzduT4PzwJDq33dd+W+8eL4EPj4vpC/V1kWwA+pa0DzswDIwNBmok9L67WYCDIGLo - -C9+VA0OB6aDha8smlJS+vd9oF4gl0SMM1wAdiqI0ePZgEynOiYA/nYl9RFtB0uBMAdK5KO8z2hBSDWAKUhHI0A+ABCQjcACAPgcEIA2fcXgCYyQ+AKukvTEBwBz8AnAEWAJr6P4A0TAgQDMuDBALpNmYAkgcfcNSrxxAI2kAkArrOhJBIgGxpHKsKSzRseEQD4oRRAN6UDEApw+ofd3YyYAIqUOu+CSA3J07pAOrD28p7SV2uPEQDwRrP2BKqiiW - -m6Wb0hLYUskk/GVjAGUSJJK6zRogoBHWmU6A6aJaXhkUwQnpiNbaeD2cY+4M9D2AEvaIxYAaBczxRdWqAKQAKAA/wAtEK4n1BjLtXGI2e4VyQhJ32R2L0MHo4qUgBVrWqA1aPZyL1EbT1gfwsTwxmDC+QLg3atouYiAMBfmIA2AyQosN3571x4nu/Pfi+liJ11TyUk40ExwZT6Oz1NCRioEH8FJPMH21OcdAFKn0WcEyuZP+6vdzTCuAPO+BOgDw - -BfBcdA5NsQnHED6aMaQ0YkeyM1ly5h5vGZCaWQmN7F4HEECl/bluI1BpL6zwFo/CYfLqsSDpJSilQxXzGQkEwBMH8946mt1PiB9sVxQDPgxUAarmpAW7sRNEdIC1/Brjh4mh8rFAoBNkuAHYZn24LK/a+IG8wWxA3rkjZh7lS7M+TVejhecBGgCnYP8Cl9R4O754AAbmuoWdCKuQraInkhfoCaxFgOGNhIixTJAspnqIBLKpyBAPKGMAzAu5WGrg - -seUeIAGgMcrKi+BseeUc8bbXcAbIEtoAZ06W88l5gmGc/iqQQU2LzQpUA54AbLAM6A0g/V4QJ6ZDHagIakRHIYSBio4GyGd7NgZVPYNYpsGzYoiUWu5VEDolCBNnRdzUtLA64aBI4XhLkA54CoQLNldFs+Yh0B7gEBUaF0FRhq+HJLEb7dhtILvWK1ECKAVGhZMFYyA1Ad7KTIEzECVJHLTBBQBeAK4hzYBVR0E6DsgZD63LhVWI2cW2tEtzZDog - -4IGb5WdGTHExIPsBFeABwGHx3k8kNARXoY3AFiYtHg3mCz4WXAGbZyECz2CyYAQiPRSeHUmJBtkA2QDh5X7A57E8xBjFm6FqcgPdqu+hdwEQoH3AWuA6Jo7hAekDV0ghqNp3C4Be4DVwE/7WlxKD1cNiVlwYHI7gOXAVcAg8Ba7Ad3yeyClQKZwcCQT4DLwEvgIbYhf6Ek2KYgBfBuHiXAZcAq8Br4CoLqXZmlMIQYERA34D4IHgQLfYE5dBEAuf - -Fz4AWuUZNBeAlcBkZBrwG+miR7FoDSAwIcBNercuEIgb+AkiBj4QyIEGwG7wJRA2R0NECEIF213QbhAHNaomklXdY7Oxo8DAiYZQmzprjiYyW1uMCoE5kYItzi7iKw5dFxtD+6zi1lU5XbxI0oRpQsOh2duIZeJ2smtd3aX+WvZrvqOoyJtDJiCOuaNoH86oAJRePcHAX+l1ZQe6QX3qFOk/Bc+TCsMehH9VYVi4FDc+TesbqzV60O3jtwEvehb4 - -pn60/xmfhOPQvWUmcQlqxv1eGpT/QJaGjZaj61txR+i7VYt81kQjz6s3g+HljkVN+VS1r+Znj3n5um/Ao+jtIYoHdV3W0Oj/Chumb98j43806rsaSL4eIxdwgbyQwmAVMMEUcywY/5yiWm6sDZRTB6vRpagA+RhoHrx/PYMeMwViYseiIVFiEdWAEqBYrBPClngJ/TBbcH+5UxDYoARQBnNe1KVuJtHAe0ga7HgXD3+BBciB6PMxIHmDPSu+Gn9h - -T7rL00jj3LWGe1jceJqT03JdqzLfUIwpguoBwJWBPpi/Fh8TyA+oKqnxSFnZ/IBoXgCMRCV3B1HjAdTsIzRhTP6RGBkMKiAt7iPAcBN6YgKGjE2ApNsG+JLqieALyAZkAklQpIFwWi2kw4sKd9XdoBpAltByn0LCtIKSWC8Wh6HKnSzsSASgMsEnOQ4YBbWiJAbjDYHQ44DRYD9gKwumQfJ/4A0CX2ItwCA+utlf6QHiQFCwx4Ak1i9mNMQRkYZI - -BEwIuRF9IRNEMAZ9GAGqhssANA8bwHUAR0qEgKcgiPAe6gSGt+oHi6DZgcNA4agPJBQjCwwIa0F6vfGB1MDLwEsQJ/AWxA6GBIsDdepi9kIzN+sa2ANhpNPA/8CgiCTA3hqOFhlMxSgJ6QCMLYTWLY8CGDPwCKDCxrKCSLjQmN4KeEXwBeIPIecEDnwHEQLj8pFycXQ/6RfxLYoDSyKxA8CBllZ7FCvuGPEgVYJhKfMBDgyTrBvXLyQT2BzVVwpB - -9+ms7o0PY2BgcDdwIKOR0EjloRgBrlU1F5G0U1gesrbWBZAE/4ChwJ9gcq3bYkKcCC+7G8XTgRBub2B7qBs4FBtztlnQaJY2d85BngOnQ9xtlOJYeQkCGvhCgI3PoSSe/+Whp/cYR420zh5FVXevikQbrZFxfFIA7bXesAdA8bwBwRkq+LN4WZGV1YZOywQDn3TFTO3XdggTD00l2tuhfpSkw1Sib1u0kTNKdYXCt3drEb3d1dLCUTC5Q/CtGWhb - -uwg2r1xFpQp1114BqHXUWD4AoEA+kh/4CXaBs4EZ+Rt2wkA7Mq7P09zrUaeOOhSZTjC8vBFJkYAQ0A/LIeAD5oFV8DvybOOjUDg9QHxFawGp4ftCFC8D7iVkCZEOeMWVAuJBkPYF33+0AskAFQ9kNE9Qmqw4/DvZWRAin9l3489w4vsC/CQBvv9ngEQzxkAYH/d4BiStdP4TswztpgbJOKPAIOpod3zkmtS6U6Bxyc4a4YJSSATbseIBbisCQy6w - -NWwDPCMqwhsCmxBA324Ab2uHlGxrwIt64bWtgXuYNUBMoCHzTEIUJAVVwYkBNChlX73QNVgXD0Xj8QGEzgwEIBPurjA+U0yiDy/SqIJ+yv04M98hGJyLQUJzIQCrAvRBaawGGjqtRRaB1NSGouCddEE2viegWjARkBR5gMSb0SENflOcKRBp5hYAzRDUIgH0qebmIiB94BkwEkQdKA7xBMiDeWbsrSJVlxdNTCd5svEGovHCQQw6IsIJZB0YGgBE - -eWOlvHhqNfZq2qMmgtgeIg44s2ICsYGTgMjhNdNNEBQv5IYEunzdxBbILOU6nBGtDrSReuOkgwZQmSD/1Y2OiSQVV0DxAtR9DT4CAVxyB/0RuI7x4vYFjaGjxEV/c8BMsDMIELWwEEpJWXxAL8AR0p/gWCnO5wPiOq6BTDYs4Dg0Do2dZ+1MAc1aHMlsQWYwDWm/iD/7zIIO3VlQsbuUIUtsmb4nG5flp0bZBSCDGOJ7IMIgOgg202iRgsEHp2Xp - -0gz4E6AyyCUaKL3UOQaT4Y5B9yCejB2IVi4EeRfNKXyCLYB3lVedG24MZBBQJNRz852e/E7AkgqDlVEIExOkOzvXTCZBXHhX5AVgLfrFWAtsBOToGNxrnmmQL8gtkB7CCUgGcIMkNoYgpZBJNQVkGx3SnrkYg55Bpf8XX77zgPFgsqZ3eXXFt3bHwMsBJadJhuJidGWjMoOMTk7rHXOVy5AkbMoU+iiWqYRWRaoqCahpwkhkygxhuHKD0mpigWPK - -IsNGgmTKCxIbCoJlQcV+VH48T03g7oNWVGCFxKD6gXFMl4AiiE6ptMIEa0TgQRrKIzMTgdTZYezyhW8ZPbxh0J7jVmOsQIbdaizy3Fn4jNqKCeMeUFQjQ3Fragu3W1ygVEahPhByM4CD1BLgl1EaGoMtQXXAsxaC3YEJAMQGhzP1dfSQg11zTqZzzTbLihSMgrudEJ7IX2QnpPPQ4w0UBagAwAClUJIAOAAT+5FfwNAAuAGO+dkAOBUFAHAIPYwK - -9xNz819cnThFx2BBH7ifMgrJV4AJHF0HgGjAjpAKaxG+yipnlgTAGL6eSn8884ftwLzpIAsF+i0Dt34inzLzqSfEP+zKkGYA+SFwMrCGNQBdeYfECyTnoQaagSlAd+9cX6GAMf3sRqeEgIQCOEHOALv7BkAwQBFLQeMxmILmFDa+WkIsQDAxBuANhAR7lZWBB6DIjBHoP36A4glOslAIGWAtEX1gdpoc0WiMDsJhRAgiHn/+CcBizgikHnZhKQYG - -ArSAYKBP0EFIO/QcDkTbSyKCWaitgLyHv3DV9B0YDLSwuNHdgfbAiyWt6C1YH3oP3ZAhg64BLgDkgFhAPT+p9AlFBclY0UE/bGQwd4gVDBNmQAwHN7FnWIBgvsE9SDpAjrjSK/twg9UBFJR8H7oMnBgQecPqQWZANeLroLxQZugwjB8vEVEF3TH1AbxgixB16DJbiXQJJ3JeaFQuF6CHoF0B2ygG+SAUBNzRbHICYPMQYegmTBN6DBME2vh/4APo - -R9BvCC/FwOaCIwfxgh9BdZYn0E6YKcPmAlGoa3asrFr7KHSQBJKDXc1uF54FaHR8MGCoE6m910Vp5PKChtrH7EcOey48/YpiBLwtcKLCGk8DPhQHfFCMHbhfWawRFZw7NuyddGU3XDa9QwwbqcUQHgchbUm67p1l0J43USwcuTRSiaqMf+Bn2yuOF3A8V2EN1fZQ9CWA2lVxCEqSHhyN5C3xrpGifPEeu09D0iKTGaTrPyXAA9NtmAA0CFtQvoAL - -cqOAA+og2gU+wDlWd7MitlDq6nH0f2ARDM54pSA0VJkWTiQRqAkaAfK5uQHXuHLVih8BvuN4YhGq4IOU/vnnVT+caEKabGN133qY3CcsUloAEL/exziNU+GgGuyYIgKsY0v3toA0BeSp8wODh3RhrrjPfF+OQC48hY6X+gbugvvO+6CpMHEYKgwWwgzvG+Uo7AEn6kGcAwCcic2iCOcRyYJ4AaeRV5BfSYSMw2cCXaiNgxjBJCBYsDeNCmcDdQWK - -wIrBwcGygPdHv8mA8B05l5Gbw4NCQfEgk8kvAkdxY7WE7IHMYdHBmsBpEFY4NCMkdASbBDchpsG/o03hHV5NjSketRd45PyEhMHoWjS/CVYdQfIAn1nsuXeBHG5r84UcAKQFtrGxuPR1xTjDvWuzoCmfABPwRJqKxdQoAMsMWoAdUDkwDLJn5gvMAeYAg9J806A53VaNnxL6QmnkmTwDmz+MOX2GPMK29eoFnxDCUMyAgcgCetvJT5JBTjDI3VsQ - -9x8iC6PH0S5lxPFf2W781sGyjw2wboLcU+UpVIu67cH/nhqKeQOr2JYYJvuA1HhZ/OS+6d4nDA4vzvfmr3A0eFjsWsC4oOwwW4Sf7BwiDIjxOXU+9DRgnBgTSDmigx4KFAXHgl6BEMDhyLlIK1LkTqHDymOCxsFC7k6QVcgYvGrkAQrzpb2d7BsmfusCMDBUBdIJLwVBgycER4hyeoMwO9dGDAr4KP2BL0DZ4MM9IFAMl4IGDqU7S2D0wcJg7tkJ - -MCE3IVVlqQdq5DzYrC9+VpZ0l/QS9A/9BPEDD/ywaSODGAMOPyraCxH5Wjk2iLtSYfB9EkakHc8zjgfngBOBbI0gME94Ok4H3goKoAglf5rTcHHWCFeMjB59AeIG0NkeQe1oVpuTXMqHip4IUwWzFAu+hVhfqCO3HTsvHgmroieD41h3FBZIJiglVqGlh2XAVgK2gN9AjMkRMUrzSLziF2IenPlYRKsecCZtGlQKucL6QGoQ9tAb4OxArnAyUQVG - -l9EDgYJbAfyiDWBM9NU4G4EKjsAjgk6unmRECHqdmagA8+G7B3gDEsD3YIXSixDBtYI5ot0paYLY5GGifhBKqpX8G8AMjwOwQrlAnBCkMFPdnLepnuAzBesDtMGy4CEIRVgEQhLH5uEGK0AEIZIQ8umEypePLgEDw4nBKSZ21idNGBh7xxrLXbDeE5NIPWyP50TDF17L0GkcZe4qiXAr3pdWcve5kDLnQ0Q1qJoJDOTcOkQ98D0KzetkYQyw6KYZ - -WM7VT0qPqJnKvqxfJC9KXdyzuKDeEd28EJjhrVzzruP2ZSfKzDhwiEBlzv7vZYDKKYRD0P51zwBdD0/dwhyaJzz7F+wJ3nwMNm6tqxDJD7OWfgbNXAWsRaAeACjAGUADAACdMdAhzyAxUyBDnmAY8gPQBs+4tL2D1LUEKyIxPRB/C0FVnQLI4R1AtZpnly5BXLlqvghmBRbFt17exSsgH0gsOBeq5hAGzL0IHl7/DfePv8K76fV14vq8A2QBnahX - -yDlPkEiDn7HR21UYx0FCgLnQfRiJKGBgD735GAJfJJxgqPBJuAaQEcgM/4BfABGKEeDTAFcYPCAWNGQRBgoC38GUuEOIeYApjBAPg9MEaYPz4NugnwBjBD0zRfoJPwd6bVUBhmDtMEhvWdlFHAkU4McCwo654PkIRLAYEh4iNKkEAUGqQRzAUDm6QC/oE7oPxwVgQyYwI+Cd8HQ6U+IQUA7IBla5wCEfZAZXM0uP9B5GCtICzQDSQQngtZaEBDzY - -HAYL+IdOAi6BEh15MG8EOSKCTAwQE/EAjuZz8B4IQoNXohosDRUAUkL/wVSQo+In2CuYGb4DB1Pkg4/BU4CxrYNoJFIcS+ekh3akpDAs+SxqDE5HkhCsC+SH45QVIV3qV6oUpD6YG8kO94u7jL7eZtRX3r1qjAKteOM6mi08z8Tg2waxr8NImk/w1NM4HdhRtutING2WqdIwqW7xgdr8LUxMQ8UVU72J1R3n27IuuRbcFcKix37yhrVDsq8uEmf7 - -j/X8WgrvO1OQctZlR722Xdve7U/sMDEVmSnVDyIT7fQ9If2c8+zJgE3AAM3TAAyYADyC+oE6BMAUEFUWwBJA71EOFoH1g2emk3EFbI9YIVgPq2AnwkYgDUjEzH+QcAQ/30fK5kcHkIFRwVjAS3Bm9dDm424PmgbMQ6QB8xDSEG13w79hQghLS3xoC5znlxBrpWQU9846dRgaTpy1+qqmMIsfMsPm4P7xUvhoHaEB72C4QGPEKwwc8Q4sUFYC3did - -b2LwLmAgdWJdBkjCLjSsaDDA1Uh/B0R2joYL/AV8rWXuLdMT4y+IP9gaDIMEh8/F2ebkgKkgKVDExCS7RQSFWwHBIRwsEZAySBv8w6QkxgWUWZOEEiDRkFDLFBQSVYBQ8kmC+MHqwJJ7J+QzRBPdYEDo4kPxJPEPU1UD5CeEhPkJY3pGAlMBnOQwFYxgkXwVPgs1YUKZWSHf4XQCErxBAhwyDEMEhwIYkLvhEVAXBC8DA34PsgGOMHIahKCnkHEo - -OfwXZqVihLLQFLQHyQNwX/YFcijx01x6VIG4xGdIaV85sRhUivUCxQeZoIghVSCkdyilGADpkwRNEJqJ04ARwN7EOogxtUMJx9nrykC6LizgYtImyCryIYoNekFig83u7+D2xCf4KHoBJwEyhQBCzKEqtT3au9AD/B9/AgQC2UOdLrOORb8QuQiz74oWTxIZOaZU1TMY4B7CUqEnWWMlQRnAEHqPSDCmo0JfLBWTUc75PB3bIQJvMeSh0FFh4WJy - -lOgPuGU68sNXhbPCneFgjrIt8GKhA94Q2mftipAlHehwpNd65YK2UmOHGzBWyko95sUVgEHKmNVCgcpAZQxQHd2GE4L2AMDdCoGdI0gpvGnaeCRaBGjRqECrALcARXBpoFUmwIAAlACOFPoARE9o757lUGYs9IWhQKOAxl6wez6SMOOLRwyUgDgGOgA3IbYAxZwy9cTiHE+mx2js9TtB77cOJ6ftz7ISc3ftBDuCd36i93Udi7g10S/2IG/zKfX2 - -XjgcTZBEOotiFBKH8VBCAsPBXDwNqHWNGq+m1nIGgO1D8JzcAlazpcQ2kBe1Ct7a0xx3ttzsfZ4k+BDnjhVRegGJEdxqwfMRcHoADukDeQdX8mcd8AAogFvIGredf0P7t9/QrES/cpuIZ1AxJZ7ZK9oh6TNw7X5QYkRgrBXlQlgUYsGmBHJFFAh5JCzlGscPeAOVYuyEHNwS5taJQUqRCD7cHV3yHIVC/Ql2ZJldbZyoBr9EPHSIWgXY8kD7QInT - -rB3UE+/pJu74XYIuXmuQueO/1DOQH8kOVdFSQrJBgWhkwFIwNu2IK/TRkEggESiQ6BruGBQ1xQEFC8kHokPR6HnA1DqvBsBoHOwKM4gtHcngzTZNSGN3zOyshQ3Sh7s91KYakI3wFqQgxBiyCuKFP4KY8p9gT2htOZdKKvZTHQCpCIUC3+DR6xB0KVIb1pMlBRKD/aEKUIfkJbQ0GggcxCQAaILdob9gz/4xuJXyH/kPfIexWcS4uLFDEjZ+jdgb - -RQ64Bx5C4pBLIAKuE1fPWhJ5DK6EseBhPr/gyi6zyR1OBSphgwamA8kA5FDJjBskKooZpQ6L4GeDWMHvQLZ5P/eUEqGyASh76QAFIZkg1My0yDNgTvjFjIHSzcehatDJ6FUH0iQXerMgqOj5HlgsYIxAa+uGws479ZUT6iBhIPP/IK2bdDkYH8RV3oYygdzg1+V4PIBDi+gcU8YjQO9C4UEX4IPoenZW2BYEC6KGb2HPwTKgS/BfGY2xQ00PKrF+ - -sZehLjhN8Br0Lb8vNGX+hhMChAJTiAJQvO3HPAIDCqUFDkEGPhAIYY+Q5BIKJXQK3Xhw/coCB11Q4BHXTaMs4WMlCw1c8jAoh1KhogIGlkxp0rrZYkgdOjbhILBBEMQsEGQnWzi9LcXagykLEZj0z2+nQw9M2rpY3roZUMRUFT4ct0JwdYBhBQHz9j5g63CXmCWjAn20kTPRKbXMe+t6vh78XybqdKe+wuQIcsrHfBzpDVQnJOzs5+GHeYNEYaJI - -UOeF1sgCQ9EWEgH0RXe6k1cE0HUfyTQT0TCQAzsA/g4BoEqcMtAbAAW3E9gBkB3pALJJM8A7DtcpbAgjsSDKmUx852Ry07rsDByC8QQMQFv5566UwPTuH/QzQmGQdNWjJGC5QJFvMBAbNDFl5Y5xmIadQuYhbx83gG133I9qOQqUqB3xAN6g42bvnU+EYhjnIjsGbHUs/qqmBbgD9cl0F7EJXQTlBL6hZ6CMEjoUIBgbJgxkhAOCJXbVMO+IWSFc - -ghtF4xCF54NGwS8Qlgw5eCVYoeNzPAa9gkGhgBMPGTZfSbwZJQwuwjTC0SH++VvIUkLesI4MCzE4d4OFMjOsRSho+DQOYvkJNgUHAzUu+FRA6GO0K9oQTvKwUNtCoUEYiBhQd1/bOh9dF20jKu3focRaT+hT9Cj8FQBF7wd6bZyhVlDXKGBUFg/tBgqMBqYDVrxhlSEoQtwEShZeCrZZBjBOwkVmFxBT4wWQFhCWwjNsg6yhQIB0aIMkLjgGJgvd - -4TlZIGFRIOAYR4gq8wqEImgzf5w9ZnOJYYhWcDe6G2G0RAWiwuvUGLDF2A6kNVIWk7ARBomCHJDiYKcrIsw0mB7JDqKHlizhId3QuYwOLC8LjdMP+Yd2DIdq0dCtSEhDn3IUCUMKI8CZ9mH/3kOYUp3a+hB5DA/b8sMhQYKw7I0ixsfUFqIwsoeJRM6AmeNFY4R4y3en4pOLBmScoA5clhbwcrDOG2CSdt/qQ911YdaeLJO0AcY97Pb2kYdaRclK - -0s0jUFWoNIYaD/KuB4P8MSSmnTtYeiSfDKKxtwf6SoIWGiiqXLgjTICvwHWw7VLAIERAxDCsCCXCTqoaqhImGjVCPd67NDqEiL4N2awwoPZodkBk5rTrVhu7HMzOp1430gArgRTy8T0uW5wlVxHj9LSrBDPRDQCNJ3qXpy8Q0AmABpXgIAGqAAGgMV4o1hP8iVHSrZmRONPcSptYPZUiEeSHWQo/elE4WyhrILcgAAgexCcptPNKWXVvZla6VPMB - -1D2J4gz2Oocv7cGePNCIX580LkAT97Wgeodgw+bTs1zOLo7Pv05Rgj/ZzkOloUdAvwwctCeB4K0KuwSnguphseCzqoL0IyQUyUIUhXPlPoGisL5YQqwcghmoCwbh/kNNgcHAzTQeYDy3ARoOFMlswh+ITtCQ6Epggoofi8Jlhno8HaEfsJ2YV+wqA0X2Cq9g8wM3wRiQ7fBiJDCaoDQMmQMlwY++6lcpmFx+UmNJg4VcSo9DuWG7hl5YTSgbc4w9 - -DVlDocIY1HxQijB5j1HYHFkHhSBcgAnB7TCIcHckGfgLnABQQQjQoME3YNlwEyQ08i1eCCKHvoOjwQewtPB17CMcEdMI44VzzZjhVmZgaGnEMGYbUw/jh9TDg8DjMMwoWjXGzIroClwKtdGZ0iSQ2/BuOx4MGl0LvIYZ8AkhOwgiSEwcKBaGRwsACkSh72HrMNNMgiw8NKJdxkkBR0O2YcHQj0KQLDDcHBjA2YfniADhEtBLOEvXwjyDcg4mk4XB - -xSG3MLpId+rfthEZZB2H0p3wodrQmMBo39vFaQlj84SEgwnBYSDicFLCxC4SeYMLhU9tMFBs4BvKEspbRy89BiQhecCgEEKkFNUG28IiI7ZzaUlRJApueXD0jQFcO2dDqwqqh2bdtlC5t3fFi8LeCS2VDx4F+YLuFBeKRWatb13S6xaCsTnqdTRggft4YL5P0k3OpAuIikXMEpq+Px9uOHXOH+ZNoDIELTx9TKpudJORylX+AJ3lZhhU3epGAetG - -kYyL0OlHZgphhO8Dl4F7wNXgWSgFuBC9Ei8Yp4xuZIpnHW+yp5wAGeH1G6Ph/MN+DzoOOTw6BzFj5ISoEsOAkaEQAGnCkzbAPI7IAm0BcKkXKnAWZOOvIA2gAlkKmoWWURnAAzRdjyzdB26OWnFxWPto9oriOFvVO4HfJqvyApa7Yh0r+L/wI6YE0DomGzQKWXnEwqUeZ1DeaHLPShfpv7QWhzKlcgTiuR1WkrKMDqMSA2B4KnxBAYHguWaLed5a - -F4vxYQUkiLkhVmYKOEMYMRwfYA9kBu1CROGqYKUwXeg0z6QnD2eGA0IWpMMwiShIqBR4hPENSAaxUGjhSzwzmGpdngoRYgxChWkFYOG6cNU4AtpY+h7HDmsyCBDBMBjeK0QHLCnUDo1BbGNXQjZY2lCKQFaILyrEMQzOBxcDmWH4VGnodTqa+BBkRjNQf0P3oZfQgg+uYNQoBHmFSxvWFYFhRuC7OGJIIURkvg6fBXhxR163DilBjxQ1kM3eDPOG - -SkK5WAJvE8oiK9AHy/MPxlkGMXJA0ul0uEVXCqQK2IY9Bb2DbAFbkLN0pfPXXq0xh1OCxINLrnAUAlh7FczkEFy06MCBndAw+tDTyFHSnzthnA6iYIxDfYHikODGHiA4kQEicDOEAUL5WDiApFk0KATNZrXhV4TGAsAhtp5CSEiIA9Crng5nhFBCN6HogLegSHLY4hO5CxeHUYhvYQXg7chtr4+eEYCBuYdjA0DBOKCuSgr8PpAY4cUPh6/CsUbZ - -UGVoaDQ3b68khgRZaxyqFLmbEsOZ/1OC6oMSONt6XLGC4b8ruG8Z3d7lqdME4kP1U96XDw7bvm/XbQX/CVuh7D3/hLlAqmykI9GyrcWGzfjePUBgMt8HnLk5EG8uP1cfmmztPAbwY3YiMKeX4e53cMy6hENN7AkQl8cHfUdh77n3aMtcVe6U73c2n5dP3etAW9C+6Rb0cmpJPDf4FEmWlIHVDZBZaKx3DoekKsA+mJ2QA9ABv1smAJMoTAh1ZBy1 - -mLQFGgBaiLjCTP71FBLiKASCggn+sNgRTOAsQPzkNah2UxQIFEQLLoUPGU3hDFD7Cg1oJR4fObNHhtuCJ2H+/wQNtOwxYhkgdUmHgVQbXNX4P26ipEwVA6sS2ISeg4phIeD9R7P1yhAbPwtxWHGEKmEbJkQbv6wCym2TB7JD0z154QDQ1fhKcE++Hd3E34QMw/nhMrhfiHh8MP4WzwzwRO/DPQF78MKQRvw7AwovD8UHqcMw4TBwTqQkdFR+FE4L - -lAXdA4QhSxs0sy4YIgwchKTDBJ6CYQGOCM7oVsgSihf7C0+GOAN3IagQy8hjMCcvw2CMjwRUIjgCArCYIRSsMlsA4Ij7BQ9CQJJ4cJ64K3Qt5hyMDdS4ocMemImifDhTBCehE60IdLh/uAYRmxwwpBkkxAdk0MP+2b7VpIHGTT2IF3BbCSPbsyyoYRHLDmPrSvGPessvIBxxcgQxYZyBGdc+Y4aQl8gd5AyTO/Vdc659HxZ/s4tBYRuNtHTrzKFq - -oUASfZWTsDYWL9VxTIRifKYYyMpJAC77AIvJIAU3w12JlRyi1hvIE8YbhEgsEL2I7RQPgKREeIOs9InYCxNF3uJdQRxElFNhYEI0CvIV6JSO0HgjOQEqCPFHrEw9QRC0CEmGafwPLlCFPsALXJcLJ2kzYloqRDccv4UZL6ajwKYcMDZ5A3A9wxKXYLp4evIS4h5QjUgEFxTeISRg4ra1eC/ObJlX2QJ2hbvBTfCQBDtIwQsEfwjnhGDQ2+F50JiE - -aEIlWh6pDPDLAa1MkjPw5fhYQiVrTEsOqEYJw0URAQjZGhVCP6IepRP6h0ojj+FOHy+FIadQRhufsOYbB9g0YQ4YQLBCjC5vJ+Iw1INyg5hugZAYq7swMZQgDBWXAaGNyATmLQKNGPFSggDEhJ4pUfy9vjR/bI6FQB6aCPGC88AGgNMsv84tgAg8EIAPMAGAAF+4i0Ebzz4YvL0AiIXyAOO5C5Gefm+Ma3KYQF5+zcY05Yc7Q78O6IiziHe8ExEW - -XfaYhOIj+yHI/hIQdjw11kzsAPWSpNQZ6vxTPKiFUQIkBrsN2mlabRU+geCCyA2f12IaHg6wR5LhWhGZ8OL/gvw9P6STtZ8GkkLvwVNTEVhWHCjyEhCKVEVCBc4h5nDAOFOcKHQu+wxzhMdD4T4ERyCIuZTQpAR+BAQGHCkfFpbhE1hjcEQ9rA7zWzlaiNhhTS08ejSfipUNIgH8WQhNE0ETz1MYf9MTTaXj4DyAjWRaAKB8DfYm4AL9w8AHWrvE - -AWdhxaCcDiJ+gFQNDERNyCecpByDgnEEZ4gBS+xMxHGajKCQBOtnE28xPwBpzrbQ/GBk1ImW4xCeT4Y5ymISC/XtBfv9MeFTsOrEZ2oAEAzUJtKKwKxoctrdH8KDkRPWRzoIpIBfgBSehv07iECcIk4SiQr4hEzC6ko+CMyvk+w2uhKaJwyx//iQ4Qq/CURUEkQsZ5iOA4TL7VUROojhTKcwNM7DsIXkQ2nClRAHMOaEX9CEihA5U5JE4cI6EWhw - -roRKVIfeGkULU5lfqWXuLNlE4FSSKREX0Q+hyuoj8pb4Ti/IcbwiDhSzCsSHkcEAYdAwmJBGHD+1SJCMRDhcwvehF9Cr8EEcNU4EpwsFAdvDLmEO8K8kbfoBnh9kioGHRIPXoekIrnh0mCPaaikAMkQfguFU3Qi2OFBcIaERKwpoRrsDSeQacMgIcqQkyRvJCmYE0UIwgW/QtDBqnC6IE5wOIIZbQ2py19C8MGQYMToVrA0ghoJYfBFEUI3ciNIV - -nW6Hh66A2bFmYe3gru4HbAhJGPsP3ZDkg02hslgS6EFSLkEWGCaJA32CoobiqwFEbiAkAQPfCUqyu0O/IZnQwRAa49wVC8SKefrNSL5hILCZEBNsEr4XXQ8MsEfCIxrNCUjyMUIRKRgXC4MGbC2hwcXESoEJ0i30HJSIQ/jB/HW08YYsV4dTC1oTdIs6RMVkAuhiRFqYDbsZNay0iDaFnkNA5jfED6RJwoToAKMG2kTxIw2ha0j3pEQnGBkd9Ikx - -elt8TtDW32LWK1PSoMJtQnzSZphxSrhydOei+lM57URGW7lA1BBqWwRX8RDBQF2L/4HoKPfNXnji7FDbA9zLoKLOY1ggy5mkYDPZQVKEuZpGBJ8hr7Mo3GKQuzk3qy+RW3HiFFPcen4VmIhq1Wr5jkfYMu7/RHIhwjyR+hFNLwGOztJeFolDMqmT/aN8Zel/6oP00Sas5VVmRpJw3g44/VFvskfeDwtMjfnjc5l75md6J2+9JRdaik4GiPrnMOAO - -xTcZDZtESgKs38GAqvpQTLa/vS6kLLKB7hZ4BgVSGgDPIF5yFKWvRpQFyI8DaADwIKhivmdSyEXWCh8EYhMisWpUBzbGECNYRpyKLcwnVgaFc8094Z5tfphwnDuAQliO9/rhIwhBRjcXgGJMIWIZoAFEAO5JUOKh6Alcn5JNRGnzpaJGTGEMvD2IqwRD79ymGSJHjkbZwkXh+oixRF/LUiJgcRXu0ozE4GFf4GAIMkFemRinEvpI6EK0sLflN4Re - -bCphikDHwAJIAJcMU4BnABFOE/st0CHsAAzc+EQJiKDkUtRQ0SdLErWzhNQHNhexYTkLCgY4EYD2TEJ8+BDeutUmXKAyOhkVCUdHWM2DFpzTQMmIWu/R4BeEjuaGaCM7lkRI3OR2fc9BGXokw8N2wm2ChXN/qIj3WKgNsnKWhIJ8WHyajmx4u9QvsR0K1kSG3YNRIVJwreQsQjntCaYJ44RDgxfw5LDroEBpgTXDtI3iRUgQQkFknEhESiAi7kNH - -CixbzsF24BgopEB6LDWGaH+AkkWZIu56LIjQgH1CNugCRw8UoMEI+Gzo4MwUciAsdeU8NxhEj0MyEFOTVlhyBAAWHW0NSkRNmHZK/vlO+HaxiOkZDlaUhhdCfsH/sProEuIlRWTp8GWElCPJgSJIizhMiiwKFh8J/QTZI+EhSO4x8Em9wC4a9IlGBBJohFHN8NmkQmYYcR2oJUWGF8IxIAKMfghBsDeg7QKPCAaxw06RjUi5iguCIclOAyD5MoiD - -wKFWwLNoZnYLhRleCihE0sJ7oUoPMcRvkjzHpyIOSQU2g1JBkUipIAyEMmNmwozoRUwiWhG2CJgUUTFOKRCx0m6JaFUQUZEJb+gMpd1eErwFnofO3WPh+9Q2WHRkB3CFeaPyIcyCahFQp0ykbfQqAhtUFSlGzIJFOBUo+T0U0iu+EiKPooUXA8OBILUXyGnMLU4Nv+UJRrSDFEHi8OJ3M6QcLgqr0HaG/8H3MjIYEFqcEDczDIEIiNP/oHqRXvCU - -FHgyP+kWBg1JCOQjqwEMah8Ub0wiK6HUiykHpKMZuhSw6qQViEyCGAkI4IYoQ5NkGSjdwzHKNVIFYovhB7ECET5BEVmHm2qKt+zTx73psSju3s/dBoy95NPfZmQIHdmo2Id2YmdmHCSyMQEVn6A2+Q+V2vSa3wAAaUtNsQQsdwoGVzxDfmefe507HI9x7+PyGFI0TA3aPiZDIEbwgrxqzg7YRFwdMVHjcPqJnNPT2Off0lUA/Via8mj0BwhXgVkI - -T5vkn0rcVZ4qx8hvS7xeQ8mk/w0oUt9sLjZCQOelheIyNES090/YoiX5nJPTQ6m+0wdqgfvQrrqKdXcQ+qD/d69yMrOAzGAeRtLJT+BFYmkaIMYOi0AAkXPwmIx7GpH3UYuxUCSl5ffAggIcABoADEtnAAHkFnwkq0aske+xkJyqEBWIoIkX96XroNBKVVWAjDCI2+hc8B4RE5dVWNFlIF5QlMh8DJjohQkT0gCmhlKhU5E4SIIQejw1+eeIiloF - -af0JEXlnboG5CBZxCFwxTHKp2eao/UI8mFxQxpEXHmFIkDEijPr8ANQYVconlGr2DWRFxCK6lFvgSFh8gEzCB/uUk4WhiZxR5b0uUC2HjoIQEAhgh7EiOaqEcLJIRIcWxRnTCMlRVKK04YqIrfhyoj+JGPuAmQeAIBJkHIiGOHUsMxIdBw5zYqCjDaHoKKrMFvghEhpXMUrwCSMGUY8kYZRaL4/FGMsIUUf4UdtRw/DtSHaiPIUdfgnyRbFDlOHT - -mG3UWLAgnBRaiiqC1lTSFLgougutdpS8EPtgbwRXQtBR+vCutiXKLhYaOEQdRhCj8WEATyqYaxIutRkCjx2jPqMvwbAoiLh+eDOmGq2EewXxgwfBFhQW1FB4hMUUDQjURXgjBqRmKKwUbWkGzYsnDBHDiiGdftXeTiRUk1shEEEI2UeKIw4MBgh6dT1n1XEYqQrlhXysYCFTOCF2PldaAhMyC8lHzIIJQWY+QpRGRpjjoPIPJQdxQzw2cEjs6Z0k - -GU0AOOYZerTAsUCBSEadPUUGKARyCwAhFZgS4WbglPhKf0CUGGUOZyMcgWBE0wtEeHjQNPuCGaCjRmvCo177SP2QIdIlvhvOk+lEKIOVUWVqeygTiU3OE1n3ykTMo6HQcyiBD6qUNCcNxo8QQA/CY0SacKyCvpQybohlChmT2aJvoSjgYOyn+oDKEbIIKGiZggVR4aIhZyQcmHiqqnZjSKRERf6C/xlijgIqpGUcZkoGACJ++jW+cPSr48Yy7WlD - -z5hnzNIKG49mp6M1B5kbFFO0kE7dT+Y/ZBcOpEFH2Mv304GLJaKa9tBjFr2Y09C+bYnEmnt0ZUYynMQ19LH4kmMq2sRYyXKQ22GWyAkrmqjVssYf8hciVKgtvplXWGMr+V5uED2G5SmMYSEwHyjudgG7D2IHM8bnYusjEHpf9jE8G0fRWq3BMc+ZNFzjLqHGQ70zN5y+ZE3iZ2Ac8LbgK9ko1w8gwyTtz+IFAMRhEoEevg2MqnPY5c5aoz87S73h - -0PWsEEEH6k2GAe3yMYQGIkxhX/MUSpFoHZAOU4TjAzj4eAB/fBdcsoAItAZ5AegDKAAZoMH/JeR7dRRP7K2iW0FWCUQRdPUFeK04HpxFDwtnwO0AeGqZkB+fu3Uc28bKFHpEYSKmgSXfXk+gaib5EZyPIHgRIgP+j8inoA7klACFbBeB4/t1MYAoPD9weTwk7B6d5gpxMHmAUdXIptolCiN0HhALXQY3IzURzTCC+FYKJYUW6YMtRumC0+Rd1Fj6 - -s0uMBR9BCMKFDMOWUdXwvZsXSjJeE9KLs8i0woReAWw9NEpIM5EQQnBqR4QiWHim8M1cHd8GbguB8f2FkwLpYbIcK3hsBCV0g2FgUEe0o0YhavDsKEHyPEqqxo+OhJiCjIIswP5gQDkQWBZulESC7BAE0cSnPjU06jNFGgc0r+BpAI+AvsD61YVX2voRAQ6pR2h8ocF1M0ukdhYHXyjdCK8HbKOC4RdIwgayeiEFEHKKQUaZ3fKAB0jSOE6aIn4W - -xAYJRkdFrkHGaPJAO5wr+Q46iq6HJDU40TZo5OUkeRG+HTSO74bqIh5h4dCv8HOoCGkZEJSrgP6hUExp0J0oQtIkc+FwDe9Fo6281IEw22hQrCW9EtKJb4U78fAhUNNchF9gkbUROImZhbeC9lHQlgXoW6A+ThzkiPNGbqPakevorPBvJlldFLqPOYS1hPXR3xQJeGn6NS7HeolaREMjmKFdmBOYSrokZRffFfpFV8L4kYaIo+2Kk14RYBKWpNpo - -QzVOm+sXSG++2i8uVocnIp3coAG4f2DDM8PchaVzkKlom32a9MAA/1+TGd29bs/0heDjvbM2SqBSUTJ6wyIcJtA3CVYdeIT8xTAvn8LN0h2qd9d7Kxxf/kxlA1Ghu9PhpKjCqfld9PXc2kDUayiRhjrjDUAFRPhDvWxgAL1vn31MLgPr9DpRJezHoqspMj+HH4w+waQA8kHfAxcQDitH/60CObrvQI7qhUwwbyCDAC6AGfTL94uABMrgWYkNAOfp - -fNA7IAoAAr8j0hvJJDEQhIh6gqzVhEhhvIvMQfnFpIgYyGQFpgUPfBAAljGzp6QpmChwm3A0phOcjH40b7vqTZvuq798EEk6ODUep/UNRA6DloHiB2ZQB3NUlQP5CKJF+UFU+khoOsaSaj2xEU8LpxOAQbeUHOj9iE1yLqEWyI+EB9uAxdGRKNcEa4oxTBl6CUMFj0K2UTwo/vBamDueFgyPvUffonfMjdCT2FAJxtgaHw5psF1BzvKAaJ4QRwQm - -EhEQjVWJ1GOFzKwzQ3iOijYMEfMNIwXuo/ih5JCqMF/MO4UeywuswC+jUUF5D11gaeo/wSMfA51HFSKOYTogjIRbgiku5yKN/YWuo+IRDmispEQ7VWMeboi3h9nCpFFriO9oZjuM3RtLC9jElMWd4WPAV3hK6j5FEW6PcdBnA+rYlxi8UDXGLWMbcY0uBeYdygIS61PblsJSjigwkxhLDCQYmA5xGziFwRAyCa+1r8FZYPw6bHEEuIY62gEK6Wfg - -xcMlBDFP/ytbEbnVrh65NQ9aa7gdIXfnNTA5BjkTEQ91tPAaw5p4Ous3ARVvV7gooIcjm8KAY9RNzC1wG/qNpgn1oHuFiqADQNzQb4yGLkE+4wAEIAGuqP1yi/J926RqJvDsX2W0CWaxdei/NHagfcAVlclM50RC1x3RDqOACbBPCCC1gbaFZ7jrQG8QQUB+DRWdkcRsXfCYhROjr5HtS1J0StgrOR+IiRe4Tlh+gBubJqA/jgPcG5nCyYf/hYlC - -6Coy5F0wHTUeZ2GXhjiDQdKZqNhYZfg3dRr0CasRa8KrgG+ogXhCui9pFjGMH4Y5oy6oR+DBRFt6OyUd+okHIj6icTS16MV0arpJPh4NRwRb3303oVPw90x7CA2yEqcAJ8J3sUThaAw89FvsVFAYdocUBynJwuGUcJZ4TyxUMatlBfkACEI84fvw8WgvzFFTEqoGVMZ0wiyR6dDvyGnDgJEETAApQqvETEZ2UO+QeZQhoMukBjXieaIkrBmjHq+u - -oJ5FIRMOSWB/+JrcfyBniyWMxzShXoxIwbnC6iin7XVIKB4I8S9yDYabhMNJKGOYtpR/SCOlFIXRQcK6UJb4IUAx1HemPPIUEKeyh4blgtzBWUqMQ0g2jBF4QbDGPkMIcOo5T0xC2xg9HLMJnwQmYt0xEKBrpGwYI7oXMY4aRanCeryDqL8UbVI1DqYxRALHHGLKkTgQkCxTh88vaux09RtVw++QuOQ/tYpcSSehLNFJabhg9UG/NGPnNLrQs2TB - -pPhTqZxcRrEnKzBFJMyuFuNmN3hbvJCUGeUpnbanVWHqHXQ+EIdcew7axx83DsbSMhMD1PX5aEOKoVsqVr89lx49buJzMIf27YuuSO9njg1KRBtj5xCKq+9ssaTHcBSAR91PZoFKtSCBh9h8AsuZAAcb/N7s7e33eEV98SoAMaMoADYymsoo04QV45I1rsQwAH24tQXQCRGTATorVGGDIHUyLM6HYB9cFiMC4XP1wLPcQVEBxFMrmHYcDPYgu29c - -TqEY8L8MedQwdBpY0mEDNQlJjrrxX4+20DwPwsMABirRI1aW52Cd2G08OZdqAo17BNgD3AEaz2k4bvIJyxYNCxx4Q0MTVEBOTMChDgwJz+iNjTh9olzKB2J8ACJAEFePoAFoAFwARRynYjDvnLIbi0sIAvrBQ6L8QfrAMggB7hJdSVoJS8HCAJnCUqBR1i7HXJ9KuIEKAW/Cy9hzwD5XPevQVAdyhlHAzyBcsQ8fHshnNC+9r4SK8sVjwjLmxEij - -y5zsKCkBRMXy0vXUkNDaOzj/l1lEbk5V8xLKJGLKYXVROKxp6DHBGgWOKMXkYl0BwxjK8FfmPbofz5QjoK+jNqjdSIDgW+Qs2BqGgeWGuSOzIMzAinOg0CGJBUQN30EEInGBPW9B9FG8NQoaNHLDR4G9DeFWSJBsXUgy6xbbYyQGWSJQoXpQg46VvC5OYAaQqLFeY//Bw2AQzShmP/wLFqSMxH+iMOi18Pt0T9Y+fRfpitjG9ILN4RtIJlgNJCcA - -HCKJb4aponh221pLYEVFhfobII/8x+SpDs4SfjxKO3rbXhYDYys6+BkM6GEoPHos0AadYLrlw4ZpI+JRI7hRoEe0gjYhMndyRnNj/eJhQCL4ChI3Ix0OhzebqtQOQBVzFcxyvF39L9WPm5qWOA5BImj3kHw+ThepL0WAgjw85QrJDVnMZgg3EkBLF+2FdiNhwTqvCTRyfC4zGHyCtsbcghjYKikYzE7jz3gNWPNZBGtjlzGLvVwCrLMSvRdyDgUE - -uYjJ2G6/UBaa5ihnDgKBwEup5YzhQDCqBIaxUJTG8gycx4sAL/IJ2MckTo+XjRhti07GuKDMpre7J1BvmDHZYNcKpNlSWdrhG8JtEwh72d9swYqyB3147z4v5yfzlP9S5o4kJvJZ0umjfu86TwhqT8qj5w1Ff4SCyBmkwGNw5QZdR1jmW9fbham4Mk6vMkT6miYz5RU9jkFE5KQR3lajFixa+s/H6Vhx6xggxREe4sjbdhXaPzTFN3RDwOZBZu55 - -QOobhzedTm7s05kGnawhKk/YHTe3HBMtK5WJUsYGImOO8hJ70i2jHOMHYAIYAcsgpwBJy3XVNiRdAcd09QoTy9D7aD3eQ7YJNCkHgFYEQkEAIPd42+MYYB7mNCsPYhLHRYejlRpTmMNZgGojUx6ptyxHxMIHIdnI7QRuci/q4joNcJhAQCiIJttlOwjp0R0LNWcz+zOiU1HQ5CGvuc9H0mu7CmRFtSh4IXmkRNqKQjIuGcc1nEVcQqPB4uiopH6I - -LYcXmo7jBHEiRhG3SK32p9A2PRHaipRH5CM3IYlY3iq2dC1mHgkNfUWdY57B6iiR1E/pmpsaoo0DBijioOHKOKuwqJIjTelRIFlHat0LgduYqEMa/CohEH8NqUdvWSjRv0BXSi76JEcfvomjRGvCbeFWOJwihfo/ak80jrJGbKMpIUvQkpR5jj1NGOOOCkZxwwjiZEUyeBi2MGERwokhKKkjZJHqkALMWPwqLhIHCPVwROIWMbK3PGxMNsxeTBOM - -2OMVAIaRdsCHvguOPhsRnQ+2hBxjSNH5iLYbA/g4xBexAmPIqkLVEYJQpkBwlC5uiLiMOMYU4ws0wdi5zFV6NM0fhonOhD7ClvoF6JM7jUoNTAh9CziQbqLvoYpoudMymikuCnWK4cfpg7yyGcoi1LY6ibJsyIqDRmmi+I7dOLJ2HkI9hx1CiDYQCbwWcZjOGQwG288n5I21A6qYBAx8uDsvNx0NwGcld3csqb3cftC+7QEzlTZSARST8t+bRhV/ - -oj0fK7QRENbSSncOucvAYjBwWP9G8T8WE+cVuZOU8sT9tb6m9hrxrX1EvqCP8AoH7b19ljufOc+v14Jf6oqPt2nKSGTO959xIQ0aQEyiM5BiQTxtvexl6z6en5hU1A7Mj5nj3mn7WEXsTVi6MigdhZwmZUVC6SkxMqBq2DO51LiPGg0YB488Wy5PiIgANwqLoATQBr7xVgEUMfEwHTaMAA8SqnACLQPEAJaxJlj/IyBQCSegCcM+KB9walCTMRvX - -Am3YH8t/J1bFLmIfcDrKBmhkT4I1yPwJ6Ssg4rwxmpifDFSAMrEYOQynRx9drqHBjnLwPzA7Z6Zpi8pgPQHhoFSI/3B1+9NBzQ5EQrjiFEphvYjOdFiOJWcRlUXxBR1iChF2AJz0TCww5RN0D/QH9GKI4eBvR0xPrjTUC8fmHURo4w2AyzjWREeGF8QaKQNTRNvD4CF+OLE4YewrVmFHB4JFjpBJZFjFVPRPTCE+GCsHEgAecCp+2Rh4zH+uLJIY - -r1VcQBrREJCYEFvUrfqF6R35jbrFuqPLwB6o9WAvCAIzBJOJhPtsAbyixeCrqbU4Gr4C2448xbbj63EjWLNuq6+Itxpej91Ee8TLYAno2zgSejD0bz8LgUUWYlNx1miEJEZuNfbJnY8KRsDCALHyOMsQeNDQmxhjiG+Ed8KCzLPooxRshsFeGe4DmgCF/UqRFtDILFj71YUak42FsN6jiKEIWP6URjAuiscbi4CGwfwhQVTA2mhUsCfaHFOIpQZ9 - -Y1DhITj8jZlsDzcasKNZ0qSF/3ETCNhbMpmbYAfZi5xqI50+xMtkMBhNMCPcozpiNkESoCpkbqBUYHyIJSQUIjBUxLkhUeJbQE8QFh4sJRbSDcPHKuOygKq4yHQcsDkRGMwNOlozQgCgzNCFMoJOKbEOU4/ohp0sK06duPDgN245PBvYhWPFwwPMHKNAqZx7GIZnEseJykVeQ06Wrui/aGmMGD4dtkJDx37icFFPWNzocJIgKct7iWkDQePsUa9I - -xxRWFDwFE+APOVhdYuPhpEgWEaj2GTELLomEgQLctlG5IEWNmkgMzBli1LS6miIuvOaIn/R3f1b+GGEM45LnpCtuQXQRu4eeOUuMYQ3p+Pni3CGKNmPcID3DFxk8JjyZmHUkiPoQz9IWKiwtHC/wpUbHvAouGT9xIRO9kcgYSoep+LhCLIEJeLrsZkIETaa9jK8TcWMG4ajBPAxuXjsVHbMlxUdrNFnB2BA8VHDcLZwb+1c8mxXizyaEGK5/j7hY - -5xzFiVhpOx25JDcI6bGA3dsOSwdQyah0JJ2RcVDrZHZ01tkSdTKeKCuEIYD0F3EuA9wjCcTQBK0DJgCLQHAAKsAl0AzyD/KiVaEWgbXwtbYo76/2LmiH04cRhDRZzqDgSLDyGbebm6RCJNDT1oLIUYrAxvstCiCYEyQBCYZiDWbB2INGKb3ANzcj2grUxmWcdTFhqIJEYEYyxuL8iyfItsSocSpeKdBFwhPCD4/SpzqqLAPBcRjyJy3vxp4cugxW - -hrCDLiHxWMqYWUIqhRqRi+CFzuPCQIfDEKRRRixnEQaJGEIpwsdxivV3XESOPl0WUYs8hMJ87TElGPXUQkIv6AXKkXXZ42MnUab8VtxemYWbG0QOY8UlAfHxAxiOpI1UGwIcwkYUBXWkTFFAWJIIVBYnfIovDo3Gm6Igsbz40xBemCnEFFSL/MSVI8Bo75i2MEr3nP0QI47u4JeieoCJmOV8T/qJ8xG7ixnEy+LzYClYyNxKPixfG/QKTcWngpnh - -qQi+4aMcKEQeb47yRo7jOfG3QONBpxI9P+4AFnfGO+LcfiG3HYUKFtJIH3MiiWqK6PKhek19dpucHqUqQY1n+zGdovHIAPD8YSohiUxqdu3ZCznNzqjbV0swjCcLZOeL4MaPReExqXtCuFIiVkYcECK0RR3wbRF6sLxMSRY7IULsc6SzREXWEec4hxOl9t9s5Di1WsBdrBEkgkomWBnHkODJKMMDujwM6XEPiIZcZ9osxhzgAWBCVoHCYO7IigAG - -x80BxtAHMbvMAZMAq+xQYzOiG/oFwCCY4mKsoEEohFL9O51bAe4GENPE9GJ2enumCzkjbs7CBEvHVceIA7wxaDjPLEYON1Me8fSxEnCoX6TEkg87Me/TaaY2h7lrRGJP9rEYxQ01ydt2EMiNocTFYkvyovivDBHmNJ8dXwr1xmZjDIC+uJXiI+4/TRESiENHo+KeSPfgtjRCdDIpEq2K3ccrATpxFKBxKEPIFVoVUYh86nWZUQj2gXNYqN8fzhNb - -j3mF9FgkQFv4vMxRLxrrGEUPwCTmYxSUoSB8zHOlylcYA4BpScpIkVEhP2ulm6GW6WQUUYoq7jyAREe8ePkySlpAieJDv4DBWVE+v4tO/HTHxFum0AU4AfIkbbRYEkdtMQ9Z+8D5BLgBqQwP3oK4l90op07gJh403mO1AgeUXTgSoA9Im3xmv4m6xRXV1gTxQVbAWLABXkYxCCdFqmOwkSg40Ge47DcRHH+M+8XqYk9ETPRY4oQwMquLtgiS+Ssw - -o1ic4XCsc7sG0xv1C+dHiOIz4ZI4v+Uczixqb/qLnsVOyenx4ZjyFiIaOYUXXsc4xFNijHEwBKewXAEqzRZ0hG9H0SnJLmaCajB6tCCZxS2OzIDLYocxKvikpFx7T6VjqQBCxCdJThLCLVwCSfQ2xS+zMMqZkWEpqCQE27Y/PlZgRKlSGgfUGPIeugTqgnwsQEYr/wRNw7ciPfHjjzaQbvQGFoHXdRJA2oKm4m6gppoG/1/ME0GKOdLjbOTKukCR - -uGV2M1mksE+LByWDyLGJqldZjJAd1mi+JblBhQGTahNme7ht9ipj4N7xFuo+sWVoC8AH0IFOEIAMmARb20kxq4wHkEBCKDGPpIOkhttaz2w2qrOgApAOQNf+6bKlvbv0I9hRQHj4eHMOOA0efIyOcK788EH7+M1cYf4kNRtgT/DHhqMCMV0DfqWAaIBpAeEwcYl7gxxiprpvjReBKPcUwggWW7/jtHT/WJ5XJvw3hx7n0PaFKKKOMWlQBnhEHiAQ - -nQePowZb4+o4qnjhuBSIxg0dQEg2YED0e9absHq4cjJEr49dB9PA0Qh69tIYsYBqljh5FffCEAJqcDgAm4BagBDWRWDM+sKayUAA0J4MfwwnDhOS0goH8UJAwEHagYv43cky/jx2we+A58SBPNxCSriegmAUD6CUGBHBBT3jri4PAKhCR5YmEJOrjMHGU6N77mtAuJKxRh5Ch/zynQVDVJ5IdjctrHjA071N1IJQqlcjVyF7sO1+HQQrNRcLCjfE - -86PT+rfov6Rv/jOSH+OPrXOpIgDxkwj73HvnBvYaw45WADeil3GahFGcbAE/XxDpBlbFJBJrwFmE/MJf2lYPGYCBfODBWFAJ15jRN41BP0gKfVCma8lDl9HFuPYod0E1oJr+YDpgl6LnwQJQ5jQyrjegkXGU38sImJWkTWNdXTvCwzxsZlJVhO5MCw4jxSJUTa+ElRKHUsn666jB7n9WUrxlXj0ppRrjREu6IJ7eiXgL7B4rRkQJ4HQQJxjDHxHd - -+PQAJUAFoAmgAZVAeQD6AGeQLt+bMFiR7c0BwJJWgSoA1iJ+BFXIPiMmGiRbQ21pcDKfBLUSPu4XPhAeAG05aWhI0Z+w+PMFrQIbEI2P7NhNYq3BU1jKVJc0MzkcQg3VxC1jc5ENQNwcesmLBm1SBqAbohOCEr6JT0JB0D4/4smWIHL1lf0J1XMPqG4R0N8Qko/wJCVjWeFkRKR8ZkYlxRZhBiaIAkKA0bxw9zRl7DsOHY+KiUZkItaGkQi7mHXT - -WVgWxE5YxidClHFaKKsKCyE58xkHCZ1GCRIdQFBojJxr9CRpF9GNdMUr4tnxvfDVfE/mO/YRL48twfPj+qBBKIJ8UE5OTx/9DSjHiULCFv+4eMJrMCIvL6+0jgUMo5qAL+ijIle6IV5KZEpBu+TjAInySKCYeAwi/yAESgOExOWu8ZLA3SJRQCqm7q2hUxuscVri1eEB5FSzUCQPIjbyQB7s3t58Ky24T4GWX+Q4Tuf6M2ix3lWVByBBOpmHCnAy - -wERN5W7QHJw/+E2BVb0jFovixfpDwe4wWLL8dd8JFc85FbggzCSHkY9nAWs0+EA0B7ADYANQAqzmhwBG5RSExCAFAAToE09xKjrnrznMVS48+eWIQCUC80WaaDVwZPElbpggnfhz38ZaE1Bx1oTfDGwhO8sQEYgVywIRP8JiOFeoCfvHTqHe5KvxlVFokTlWYPBMPjSmFw+OMAYkom4hyPjwwkr6hNcgdkNOEnnANFblYNzYZVEw1Cvyl3AiaACz - -oIWeBRChABRG6gFnRFGeAM8g+rjExFbhgJgEJ8AAguJ1S4C9RJL7stgXiQfaxb24IeUj2q1I3hAxqVbgxW6IscUmYjkqD3jue7mhJb7uNEqwJan9tXFGwTtCfBEvYAnEdfvHeBDeQp4wgrmQPjCJjHkTIcZe/QeaNriQJT0iL7cjtEwMJuvwRomKT1nOgzE4ra6Njsgnu+ObXG9YmnxrC8h0J3mJwoWqE7uckkSxFipuK40cnKP6qYCimOH1MKL4 - -OQE7fxkbMlYFgaKEwSpgvTQWTBl0h4VjdfpcSe6xgxiawQ+WR6IvidD0kwJ5ujF4BLU0G+MdbgiUFrATLdUjCe/ok8xFCQp4AskGhKI8UMWJwjih+EBmLqjv2IOjyZIR4jCRHncUao4h7CouAyKSVAiXCoTlRpEejjcxA8kH8UXMYNtxsTltHF+q2pVnJKBCIHeVW2TABO10eBvZmAV0CT4ye4Dh4dBoLXR4Sjl0BceUMFpKUfNY2zNeFGkcNPcX - -pwl/isWBSSgHQQMEIaLXWmjISJbHyeSKYMLkDhRstjIr47uPr4SXAsx+dZQmLAntxSJLx+OOBpnjzlaLsRhjNReB9gYxghjx9xNrUWGY4Q64eRdbTUOCPHP5/ceJ+QDJ4kQcXRSlBHLr6d0dYpE6eKHHGQQfx0BWBUUaYUHG0ZeMEzxE8SzPH+Om5ENBQaeAH1AjXKpYAXif9AgeJ0TRffRKSjhJBILQ+Jr7ibdH+OnTYniQLDGTNQX4neOPjce+ - -4jV4QqRrcrV7GIQrDE9TRCbiBgnpWLNThkRDlRgUDqj592O1JLLhAqB8zw2550RB3sUjIzxwKMiXMFlBlPcCRrRGRJ+UVHAIyKJSqilXriBdNKTbX4HGnlXzMI6fRcThHCuE6FPJuQgR7vZiBEXCJv7v0fRSE33du7FixUVvsnXMue7kCYiHpRUf7rufPyafXpGSaxTVJkM/3KWKgI8NTyxz3r5DlAi7RCWjcmKTtyW0ZwTVyUUt81cjcMDD5Kto - -pH+lt4oVGfCgNbDImMkSxUTrgjca3gmg9wjgAN6QDNrsgE0AHAAfNATQBWAi5lDgAM1g5QAwKoxT5fRNpGpOCO3kPTjAPC9ROJCCTAhls2edGyGmUPPMdigmKMHHiBBhceKWiaCEgvcyMTPDGQhImidYEisRmMST/FJMM3JOI3ZvcEhZezaIzz+PsdOLpAhHENolrfh8CWGE64hVvig3FZmL/8SGEgDR2PjYAly8KbvP04mpRR4wefFqROO0l7Ey - -sx100gnEaSJCcek4/dxEpCf0ERIIckWu45Fh8O1OIlecKxbn0MeWxkdjtHLNJJMcf8Qu6AfSSkWETJJkEaz4le+rcSfYEuwCkiazY6Zhv5DFPHtOKaSQsktiBORikgnVJOfOoSE0xx+CsL9GlGLv0XXovxRAkSH9GnJKUibqXWhRcHC7HDaOQtibtIzOStUFsbF3xI2MXvon6BdjjreFvuOo8aZIsWBXjj7HH/JPvIZvEyeJO4QPknbxPRQWeYn5 - -BClItzFtxLOMQVqQJJcKSezGYsPiCXu4juR1lMLSHLTytIatw0emrpZG3ZhYN4YYDvE8R44dg94xeTm/GsgUZ+NU9F1iBv2T3klFSABALjUHY5+kNvvrfVlJ4KiEDF+v3CgY4DA2kv119hE1ej2EejbWgxMkDoNpdd3CBB/wGHucCQ4e56Rm79AYsYJA+SkU+HwsB+oJDoWlxHS0ZDE7T2uiQz0CVqWdBeejJNhaADGjXvxxAA1JhVkgfSKLWOAu - -ktF88CnIE81qpJBmA7vCEeq8ZCkES5MUZJ8Vh/eLcID5XHmEvjBNeAxokveKWwQgZbUxsESsYkN7lR9AB+GZA5rBfqLLsIkEFszDaJR3wCkmkRPT4eRE03x//js1EUKJSsbAophRM8R3PhY+PLAaTYuPRNiifbLHWLaEY/o4OJl/ZHDHWRJQEiC1XNRKPi7BHNyRXoYnYmBhAyTB+DMxI/vnK4qVWZOIWnEv4Nz0QAEsIJPHQDbE21DzsScg+nhX - -aTKWFWIMXMW2krWx8aTEfGFCKf8J7oqRA3uigY78sCzcfHwtYyqWBqWHAWJrVrY8CIJ4ZFmlG02MLAfpw8yJbFxl1GvWNzSVpw2pxBTixJEJrQMUTNIxpRWr4T3HwcNfWgnExtBbSCc4kqePaSWk4nlGMySwpFzJPJsXXwlZJKNkgcH9pKPgOnYn9JRNjgPyUcxhjJOYyPRFiAQMm7uLAyWWwT1JFiCCwmvpITCZKQNoB4IgEAl3SASSuAk8GGsS - -jNJFoZJIRq2kzWxAkAL/J26NgyaB5UjJiKSp4l7yNsMSfGb4xxaStkmGcPpsSCkm3RoNjVfFaeOnFEDYyGxiNiM2SK+PYsApEuaROTjh9F+uLkiXxk+5Rm4jomp5RPR3pYQ30hUmSvyYs90S8VTqNxqdhDAMbUJPOEbgqSWqXkCKchuQKRvNRpBuxLdjyvT5ePa/PqnAQ0GkD0JS2xzoCdYtBLBGwSyUD/XUtkZrDDQ00SdtDRL0U6ngzrRE2hN0 - -rMkuB0Rurrvd3CsN1+vjQix9wtzHf3xWMg2QkjvXK8dV4vFROKjlwmyZQq8VMVF5kjZBI5Sc4TQgZJYsqsLPYNWoPcOPDnmQvoAVTVNgxP6XiAJKoOOq2JE0OyIRKh0bHodlazlwxAQZdG8ScBxMsqHMB/Enk+kmSVxEuUxrIpAmGPJLPcaKtcCJ3ZCOaFQRJmsXfI8nRWgjKdGbLzxicJgQuYpXAe0bGfwo/HAFMnh5MSppaREXpkHGkyfcdITI - -uFpCMn3BT4vIxh0SiklsiB18YLohiJVHC2mHROOWyTvoVmJNfYz2EiiP2ia2ozoJ7HCUNEeOJvMS6YjXxH5jTIq1JJ0cVWEeWJ6mCddEXqIYye3w+lhL5isSFeuIlicm4+ZRH2T3yFROPpCSTYzYxeaTfsk2+IeIbJEjsJmsT+xEFpI9cYOI14hm7jcfH7sO9cVmYliRZvjbHIFKNQCSdk9YQVIS7fF3ZPkiWro8AJB2SG1GT8PuycTknbJLPCzK - -adJn66ju7SwEbXcKeCjBPgQJW7dcJcftBQJ+BndTuXMHbhMScBSwWyP0NM4CJXcuKTfUTjBMA+rUtJE+2Ik28Yu4Uywbz2OuELCSrhEYOAp3rFA+XC3CBYDHeH1ecXAYxpS24jyIjgSRpUPrDP72Zwxmo6ChPpccIEmcqRPcLFYJ91y3O5CM/cXztn3STWTlHGM3VxJlvgEUCcDAbcQvgS8q4ri/cST4FRwl4QTyUYFi645rmN/8r9HPpePqT207 - -uWPiSeg420JSSSc5F7AGoanOw7XYhshC4bGfwVSaHoXAyXoSmBbMelYXlPLAiJ7AsnXHL8GzSdDk8cRD1iYwmY5OZIXgQ6nxnW8PrGJBIQoW9kifB2Him0GYEWrybLw2vJq7i16E/nH9yb7o1OxQGS1MCFhJryZHRQPJx7Bg8lLaF7yc3k/vJYTCg8mE0mHydQEjwKbgVatBjMikVmbSDoyP/8yvYI/RYCU00ZRhnMdU3ESpjJgCNgI2GD3DkwCX - -AE2PsSAOaKwkkomBAFAfdJWgDf0vVhQRFiiDvKsiWU3yarx02CatGgdqtcP8JSfhmYlFo052ogErDJ41izQmyOxiSajEsdh6MS+0FzWMIkdjEufGQ2S8hCDSUxUNf43ZMHhhCZZAnz/kYdAkaEv/RjiL7WN2icRqdxRQZiRFEkJQu8VMOdbJRxC5bGupPGSQQU1Zx6oNF3HpuOU0KQU1HxqalTcHO2J9sdQUmtJ8ASv8mYZKZYNhk6mIzaToYAYZ - -NDQe7xV3uxc8uElPFVyigM/M2kURDgXGsGKEzoConNUy6RCdZ4w3k2mQQFuAsY1A+g8kw78fuErvxLmUyCBnhyMAOyAOAA9AAhABCAFqAKoY4gAahAQmD+uSAQU7kssotoFY+aUuP2aP/pcVxNliM7ykynEjqsw6OBkojdrJMSPE4QC/F6uFgSNXFxJOAKbNY6aJ81jg0nP40P3oM8K8S3C4z96fpHsEhtEw+A0PiorGw+LpiYfQTgpo4isgnHZJ - -VAUT4gIJnlQknFIkOt8fcQhweejI9HGm+L+ybb41pxMjjXCnpGNjCcKAseyj59EXE5RWfBMIU8vxDtxTMkxszmqOSEF18YZEHuEwAHlkI1EvoAUYidfDZAFNArXKP+BErxnCaCuNBcC6ICTgH+xuoD9m0/CU5dFwE2TBokDDRLOyY+3dMJlBSITEz+zMCVhIoF+sSS0YnLYPe8YGk6PJWDjZ7jyUjkkAKmaoO1doeUD/MzB8WPLCHxCQFQ+rzZIA - -qEkUxgpSSj88kVFIuIZwUlnxssDPqFLFPjCZB4/qQbxTvinuSPhQWCgytJ3OiNsnOaNekDA42lAjaTUuErFNs0RkE7X40lC03FwlKevGPZGRg/Ugwj4KMBerAnPLmR+UgCrLZSCKsh+4A/K4uYN3aLeVz5kyOQV0emUDY7e1HKdMywCCI4QljgnonxFCeWidY+yYBKyRqCxOMFnQCfx4PwlvEJul+jHwInkx7AxnRC/QD+gHJWQhw3iTv4izSABQ - -ehpeieLWTFeEPpO9ih5Er9xDOJQ8kqfxILtCEqaJUeS7Amn+PkJFnHLj4soIvxBoRIndDOgmFQG0SlRj3FNisaCUjhx8aSSQmJAMtKbuQkfJr2T/y7PqIRkKJQrdJ6aSiFH7yAS1AUUgzBGaTPSkApNykbqImXRIYSXSn+lJREYzw/KRmTiDwEH6Pt8QG485JUYTzuCg5JpAZXkl9Jmdh7rF+SN/MZGU+XxZ7Q3SngWNskdBws9JDkTteHSKLI0S - -ceO9Jdjh5SmaEW+yfmU0BhOnCS4lK8NzKRoo18xZJNKqFKoz+uvzk7kJUwS56IP/yLxu1oND65VDRYaomJ7SZwrUqedBi8vEDcKMyUCcDUkvBiBvKr5OKPlyk5ZoIACB9YBP2egrShGD6zEwP84cjmClhNxRrMhS8tVEhowYEQz0VSY6/omuS9oCGshK1IwAxvgKnCjAA4AE1OG0Cf48qQbhuRF0dFCC9i5hgfvzoxm1asdjPUs5nBfvSN1wDycJ - -ooYKAeiO0F/5I8MRCEwApr3itXEgFICKWAU4NJpPckIm15i5ZhvAUHGYtCDJYg6ktceQ4m4pYcBYAxbRLiKbTEuhx3BDh0kvqLSMaLo7GxTTDzzAC+LaYVCQ59B7YSi8mzQH08U3Q90BzOlnCnPWN6ka3g0pBR+iCyluRIqMRnguZhXUiaynFxPg4S0eC7J/fDyNG/xLfccJkzPB8zDAKFfpKTsdz1EpBElTeKnnSTrSVnY5Ox2iQtsmmqlfifDE - -4ip4KSamF8VIo8AJU7jhVOTx+EZSIryWKw6mxJtDPFGDSIbCTGUptRePNwWiJaV6GCr5JvJymCYpG0KKn0Qwo4oI5FT3knxwNSUQlIpypV6DsoChSMZXEQiUeSx2khKlvSN6pPbwzyR39CIynSRKjKYCUx+hjvDRGjhOIqIoFUkzhq+FFlGi2LfSXe4+FhK9CqCqmcIyqcXAf4JcSjzHrGcLyqelUwqe29tOnZViEYBMbqPaMnCSo57I/X76tOUq - -r2BgVd8rvOMI8Mto0PQmiSlzLKJL6DFbNDgmFiBJb79VIruJ1UoI+ytUmd4OklnHvSUQICkDFbvQsyKZSmzIjWR0+lCpBlWQ/cCbI80ogv8sXEggm+kCRDdceLNQstFpvwAEXIk+IhGuEMP6tP0YSYwrISUJH8oiI/GNJZGHKGlQpaxuqK1+Co2hVEkqBX3xTAAfuhJGkCIt90N5BiABqnFwAGtXUgAtcoFAnmFL2GCX3RowLkBMcgY42ihJQkZH - -RQ0NpUB64KbIQ5Qi8xqCCf9gD5NHMW+Ud3+bhiZHYgVIWwd2gv1J51kydGgFIp0djEnY+cFSw6w6GCyEBOg7rqU5CmbpTZOOwRQ4+jYi6DLBEBhLwqWw4qdJRaSDfFLFNE4UUUqHJWlTeakSwEdtm3+CtRpGEq1GIgQYcQ0rJxxbGTW6xVpKOibvo5iJM4jTskpGPzUUp7OEh1ySZ8EpFNPYcGbPSu9kTOKmJlJscS3ABdR3SjLIkZlNiqVmU2io - -DWThkm5NBLSU746WpS5gqymTFAt8UtkkYeuySRkG1CITSZUw7/xFyTIGrOryZIMJE7oO+OTSdqCxJF8QCUyvg/tTOGTRBOIURX0NMpSYTeKHk5LYwQClS2p21pQIY16O9MW8kohSUcT3NEG1LqSf1BLFh0eJB0mSEQEkf5Iu2iXNjYegz6N3Se3ouOhUnjSnHdCJ5EbJIPkR3mjWID7mO4UTsIMpJTpie0lXyQ2kepISReqOSBamA4Os4dU47hwn - -DjeImh2HIsCpQ1IJGYS7NF2+Jhyb1UYWJaQSu1QumJnqQP0CgpyJTdvrCrA11vDJGEWZoi4Ra/XU1SA6gwVMnKD2UF3u2hUEAINP2usMRFbQX2sybFoNWOE9jek78bk8yaRYy+pD9TjlLibRVjojBS7eSkDIdSNePq8fXY4OO+mTLeySK2+gjnXHYRB28XjaWayfqT74/ei2Nshu67eVqsnRIAC+qt8com//3AMcyktYqDziMTZIOhU8Pi0ZmRce - -wyq75aE27vM8AsKQxlFSijBRxKa8uFPqo5S2iK65H3qIUoMMihjCVCnvaIPCS5lKsAbAAGpznGAaAK3KHoADNAi0CYADSgHAAPoAY6ZBgD7xT+4XsMdGA4MgICB+MIZ8BqE7uMgyBNQj/QHEjkdkm8xcT4JzER6K33KHoVwxiMSm+4d7QAKb6ktUpk0SMYnFuWgqcQ+PYA0MtICnWYDrYq8FSu0ujsgSL9cF/keuw/+RKBT5jCxFNf8dFYy/2OQD - -VsnBRG3hs6UrJRPxSAQmx1InZAPggKpTStf3Ek1C95hzVTWpSeDPYRe2PNwdJoiUOETSACH4wBUaeASdbUapC4mnXZMiadMLcPRyTSwcCpNIgScVPBZ+jEN7d4jeRTLlAIj42UBj2qmtu3Z7I0tSSx30ATzAdpFa0A9w4gArnhYQDwyh6NLgAEtsN6E/ISDAHoADF1YYAsA8LZAfsPkMtRWdQJp8AasThSU/HjKUnSJd3jc74vZO54SqUxbBejSI - -8lH+M1KXCEr7xc0SaqZmNOgjBUhVCEaYFFSKDCJ72Ezo6bJ9LsECD34Gpiez5eIpbNSw6lC6ORAchonhx1aS+HGbpOPMdkUkpJ3aTdaEXuKToZBYlOhe2T6Qk/0IRGJ5E6ZpAog1KmyeL+aUqUgFpiIg1KmMZ2MgRFo0yBdOCFwmGZyfFpvk86g2MMY8DcNSkMe349VJQoT77EoTyDoBAOaAcLHU20CnTzUIPMAKAAZ4AObZ+ci/6gvjCLkdasWF - -oSnRYiCuFahAwVQoxAcsRq4IsU5WpzxS/p6t5JkqRo0i+RhOjvCnbFKAKbsUirk2psDimU6Nppo6E8ky1eAlFQmmKY2MZ/HpYV/j7/HzkKZBl2iRis5pSP/Gh1LxybGE/DxhSTCCl9SNpIZKQ+hMuGTAPH+NKSsebjDSpBkQnxKuONQodq0sgp+NxZklctOtaTQU+jcdrSG0kUE1Q/nc6B/hl3C9x4NtyVwlFQptiZLj466WAgV1oLtJRG6apfkC - -cZi7DFDoUggkJVQ5Z7CXokQyUirBWqSphjCgFAlkFCYgAi/J7ABfunwAKaMeWQowB5gDJgxEaY6hJQS4CJSmAJBlasYfAPVoAwChVIx3juxsck6GptwYw3FiRN+BB1k9mhaWd9GmQVJWaTNE+EJc0SQambNLuYgjeagGI0sPLjtdFokRcganhOFTHXFJGMLgHaUx1p/NMC8nFbQ8aeM46eqijSMml8GT1CTZUoaMYVTejHx4AlqULUzDRdtS5HE4 - -+MViUwFeJpD3MohwaxJEeJ5U56knMTDyH1mPcKf9kuBA86iPKkk5PT+kxUpTxSB8pHgd5JmJA7UiNx3gj92kNlPVqRWYqZJabVX2nbJMA6Y1k6jhgOTlPFYpPBJMQ7NAEDEkwkb420+EjcZMlAB4incJasJdTq5Qkkk5s8MOlCgSw6R6nBzJ3ZTHjgr/TsTuZNLzxipIp24+QLUyUsIziEwF8OUKLcKeFqktILiEXF21QuxnDpJmDc1Q4qU+1TV8 - -BckO6WY2kD3CmgDKAH0ABeUto0ZIsp8KJAHkoLgAeYAnCJCADodhWIu9AVQyaEim/EnQLaIbDUymhAwxc4C9QInwXE4lKpjlj1WnrFOxqZ7/dUxPhSdin+pL2KZOwkmpwaSvmbitJuWgz4aVy0rSZMAjpzRkLPNMmJDNSMKkIEGomGc0raqE7SDrHOuKjcTcIadywISraKtMKjEknUnpJsDcxlHAwNakVJNMaM0kjfeFclE7UTaUla0yVSZxYJdP - -uaaSEvJpEAcrkBHOy8fmXYjQhFdjnY57Cnobod5by4x2YsZjCiMPyNHedmAuDZcmHG5KECacEmcqyhBnYZdGhaANntUgAtwAPozMAABpocFLmgLiSodEHuAZirZBQ4YpZY2iHCmIiiG/wXRGciIclEo2L9qmgLRREd7SuOGeFPXrjNA1QR2Ii22n+FI7aYEU4xpLiTNmmRWEa0PhA+bcI0tq8BLBF7GAq0jdhjjSKXjYVJcaRc0/EJXq5vGnXKIW - -BoE0nS+07SVamI2VraddNWWpG2SmMnzjXe7J4ZQopkOS8inUdCvNNN0oQIpajXim/oyH6qyeQABEUD9LhwCIUjHv1FARNMh2uJXsWGnDs/S6J0fcdVHlojvIE0AcEApaBr0A3GHQpLvaO2094BfqkrEXasXuFZQB48I7NrkXCOgNDQ9vC5yYerE+qOU8LFmVnyVFla1SspCMWPpHZtpMTD+e4QVPW6YkkrUpySSaxE6f2s6f33E2A4iU7G6whkiF - -ojnNZahzTXOnWuOrnLNuL6e6BSEikHEL06eGTfdBwy9HnRzGA4wdzU9xxBniHabFKLuaXLUqWpRQSt2kLmGDqSdtK/RFkSj0lK1K7UTKIhL6s6TvrHswOV4XbUp3hymxHjFHj1/gG903iapvCHjFKsCeMckoqGmfMSZmgL4MTidnEyOiJfDAkFl8J18lgU1vRrSjDNEYIPdsdXokfokdSi+FMwEE8UjwlTR1ETolEZ6MT0VnomdxgQiD3EV1Lp0h - -n04ZxIniVwiBMJu8QANf3h65idUCY1KxsUH053RoC1O2HN1J7YZ55HJR1ujNKm2tOkqS608mxfvTqAQJIE+wfXkkkBBCMHOHnpOJIZpEgYx0jor0nBmIxyaZ40ipmQSYbE5uKZiWr0wusz3T2WlZ9CxhqfAqoCUPTb8CxwkpSRQ4ZFxLBidt5ECMuqVpknhJOmToRyguLhHPD/XPWYLibqjaZJ4zttGAexbksnIGCpMOEWdvYKugRAfArtPxsITU - -TT8+Y5T8y4YGP64UAMnAx2XiivG1PykyrD/Grx8iCGDE0kzkYZPvfPx9uE2Jha3CxQMfcDAE4Utt6zZdULEFI0+NpV0S3qnlolhmP1QsYAM4Y2gAo+jFaGcAIYCXQB6ERlB1BqblcAngvol4hLUHSFMStZZmyxLQFDJsfSJ1NMY7RgsxiCxEf5K56ajw1bpSzSbQn89NWafYE/n4UwDP8LG1nTsQ8tXKUuHV46yndIcaTtY9P8l3SaYnedIwKX/U - -R4pJeTk0mEVIRAYWom/gPcB+uAe5Q+6VaUsAJMiBrMozGOMGev09Lpo48y4G8NiO1sKcT2aXJJ7sic62nSIdeUoEYXAuSxiMCKTmj04peB5SphgM0EA+ACEQso+AA1CDsfy2AM1gzeonupbgDtABlsmhEf60cOiu/jtQL6SNWwYciCQYTbwZ3yAIVjAn8pKY5ifim2JIzKsOWas8zT8amLNL8Kb1k4mp/WTsYmSi02aSXsS+eEvSIErohIgIArAf - -Q6bxNriny9NZ0WNwV4myvTLmmrIE4KX4El1xL3TF+n69LbbEmk4+JC/SOZqPZPFqSRU+tR8pDyQn1OKNYBkY33K/95FPAPIESwDr0tlpNgz1KmiVJYyc64/wR8GismgupIjsdzYj0xm7jDklvCCbIdkMhhWrakXkkPqOEOrvQsZJxwywzKMhM6ST4KM1pNHcMCYhNOgCQTYotS32sB+m+qTdsSZoi/y/QiVhnbBFD0Uk0xBx0GTkMlcANWGaFzKG - -RoHjBlDgeKhGSCM4lMURYQPGfQDA8bJvQ0RXKiPt767wVTpJtPHesgVcd4bwnJUTTg+jSlkCkAGPfSUyQAMzrQJes9hHPDVhHN15G4ax3CuDFv8N68o6+G3k8PTd6lZdLbdk6eJuYyChb/HjaIv6r4MsYuGPT9yAo8HzQBwAB9YlaAAaYNAH0AF0Ae0YU4AzyADWGUABQADv2UOiMsDNsBZIMogWkxUCCHgBrGlhvFfOWXAk3S3hm3H2K6pe0/Tp - -mjT3DHaNNAqbo08PJZQyYInmdMqGcGkxiWBrjDTYgf06go2IpGeUR0AMG0SKEYBYI7aJ6gyVenqsClAb6Uz9R7IiljGj1PpCsZUsHJojil+EDDIeabMM4spuzD+hmJdIg8ciMj3AjRj9sn1mOBGXFsMb2mYyfmmshMiybFkwrxJ9F8DH0XCLGaPrYD6FIlQPp9GUqQOFk8OWwoztVH+DPPQlAAU4AxSZ+XjoUhR4CCEOgQat4pOlNNJlsiROegGF - -qwloDTW11GRKxdKcgeZ7SY9WKTYjJmGHBRlxm2ZQbDRGQmkAzgfOBihlHUPAqeqUgxpfkMH5HYxITEZs0huYhUt63KOkwBTB+wX0ZlhjVWkLCC0GWk04YZy/Tehm69NCKpMMq7JwwyAWHqOMbadpFIZJ+rS2KpRxKLKXU4gqptHcremHpLP0ZlUlDJQwjBtptGKJAu0mJYo1GT7zEh9JN6Q4o0Q+vMSm+mGSxFqcsYhFJ2LDCS4vNJHSSlI/ipTy - -SninhAJA6Yxkr4pGwyXane9JPUQYMywZugpr2lisLImRYMngZDOUbhnlGLwmThgqcRrkji8Cq0LT0beM3+Aj7SSimEaP+9EIBWLppFD4SladAuGd+Uq4ZMKcQUGo4GBKWNrOepGYSaukpBKRKU3o3pxvTowmEx2I7WHsJeZxf8RNnFKTNPiLCUxSZhwsIMmqNJSaaSwoDgnLSXWnt/AqSOiMhEZ8Ax/3HGRKGgTv3Sdx9tj3cBtiA4qcuIxJpkzj - -M+kjOK6SdgUufRCfTXOHNOKvoY+M4cxtfTImF8lwmGSek2xxZoNL56D5JCmSvuN1p2e8GVFXOOnyk1U/1+jVSeDEpTONqsCudKZiBieUkPDTOqVEBOZ+HGc/IHX9MZGUBCBueCPTDqnhhmOqeoIEkcJQVklI34nfNBJBVGR6+JL3KyKX60SOkAhJZaxe1LiFOVJOwY+i49YzoslQtLi8T4GTDp/gYPU6l1BUTiBeHXR0VCgNqxULsmvCo4TONrYg - -BA+qn6nmikYlIGlgfbIpQI4MV8VXRsu/BSTGLiVkBIqk3JqVORabzHdIe4Q0AA7iSshBgSQy1GAJuAd4ATQBqAGVoE5oEk2GWyZ69YYKGUGWYp09fSgrYJG9jISgWxuT6NdpvT1PNo2EDBcmdoM/IZ1EDOmXyKM6fy0jcZa3TyhlQVIs6cY0+mW+791oEEXTUgGSIr0Z86stAH5MLc6TpdS723QybulBBNX6XJUniphkA26nBuKkmlgUy2Bq2hLK - -kiYIIqRUk5L4R6jcmkR1OuaVHUnOxgGSPkFZhM16XKFBZix8j4VDs9PUkOxM7NxK6TQkmUXUJpBCgfrs57SSEAzjIhgfQXTzY1FSlOG0VLUQA9iWcZssyPLCu93qqd3Y6Z+/Rcipl39Jv6fMVGneixV2TxOA3KmfkCQ7UX7BznRhSxQCEilcKIWhQ4sGvVNFGWTQHEU94SbyB3AGIxlsARUAE4Y1IZGAB4aYkATZe6oz2rG8pjgKB0vJWyFeBeIB - -ncAGQI3QR3+jvSBYHY/gTzLcovxca4zR2EwzOEGRqU0QZnbS1mm+WNWgcjMp0JwLhwySyDLyouwRLMgWMzk1E4zPRIP6M8dpVcjJ2mA4Du6aeReNk0yikCEWaIefCYM+0pyGTbJkVpMaMZRU4zBSwyvrExzIUPHIQozBp80x7LQO1vhKH4nYU2Xsmq7ybXUYKfDF44yZDGxn7lLkMV98csk2kMxbLqQzyqh95W4AuABspZA/CaAPMAR8JApTI7yw - -MAIhkEDAcqIcyS46wfDd8jHgSqWQN9jeLf0HqMXyuDtxlM5vExwbETmW5Y/RusMyHRn3yPS5sGk8hBIvTXCa65GACBH/GVp/t1jvqmcFokTbgBD8+My3GkmtN0UIsMv5aBEzPskPFNX6Q2YofRbjj3amJdLZmf7o6NExkyjelglPOkVz4WLhvtoE/pHBmLOi+WdpgG0kSQiPzO/KUoIPIRctA/6T1yPIWXUtPs0VCzMYZxTMfqffUyBpo/1KFYK5 - -NYsOV7JEeDN5iG7t5VIbpPrWPxSz8U2yG61K0Mg4WEZ6LSTYaqFNNye8qOSYzAB+y7EACv0r5CKsAgecSWk4kUrQAzQG8gv3DtvFIhEPwLC7BC+vFwdZRtEIvYjbolLWN1csFzjxNJ4Sa2VsqMHoclFlKIaUZz3S0ZONTrRl41PXGQTU31KRNT4ZlOjOMacOg/cZpAIJZw9o3QieLoayYQNEkCk4RIAUY5SMdpV3TcKkEzL2icRMpwRfXNQgkqFy - -Tkdvw9vJEujYror5ml0Wks7tRqdSf/E+mLjGXsM/XRWdCAJlS8L5Drx4sTx7aCEfbWDPrMVnE59Jb7FZmlrZPNoY2UuyRvpiYxmbqKzqU7EnOplZTVImLYnnoZLMofpJHieVQDLMbCQeop4ZWVS/inl1MMUeZIijJ6EzybFG6NLiKlII1uR8TF4knxNw6F8NRisSyz4GCQpO0qZ8kjLpjyiK37NMg1Qbu9FJA+71O4E9d2y6byM6xaTgcJIERJ3p - -tCgA6PxtudcgLANIkzn1XPaM3hDLu5mSC75HSLDM2aJTRpBZHxuyFYQv5R+kJYRY/XQdWF3cKISvdw8gT2zObGeWiNoAB5BYAAXYn4kphOOMA1DFrJQAA3tyM4w/eZGTAqRC5NwwRKIYqER/coYYBd0OkQCQkd1CI6IpTFDKOf5qaMxEwxhBiHZatTGrqYEiGZvLStilgVM8WdBE7xZG3SjGm/wVqiTuSNAZQ6dlKS5SiCwbcoemp2Mz2hl04l1F - -CmOSBZ6gcGYR9DObmXPwkOplETp0n1hAs8UZ4pxRm7jmiKVCLbQZJI+WZWkTx6kKTMQkQFMkypEDhUiwPzNFmS0UntxMVT1kkOkR6TDPeHhAWFtbIkeym9KRwoWQQOTZuOAj8S9KZB0lipcbAnYDcIAnrAUkN5p+RTvVlxLmwSIgIaNM7UgoAiPWLacYZwyIoMwF+yA0eC0ukR4lpZ6tTIijuEH2zB4QEVAaYIXVn0ID9WZs+QNZeQ8L2FYcL2/n - -0kLnWAgwEyawfwBmZ2EpqgU4hZ1gOrLuAjh3LkhdrjNYwYBIA9I7wDHK0K19cFVOO+YTU4ydJhaTEclxuGS6XJI4HJkXCvy5LpMM8bB/MKpykTtFFVBNV4dasxZJlToGkn9LNRgdp08GQv1iP3FORLpoRf5UBJ8biH442mTzqZTYgup/LBPymS527MV5/RUpf9Du3BCaKimaOY19GrGTTeklLNvYKX0nJKp9xO1Ec1IPgErYnHR8Uh1kAsj1f0Vk - -UgV2bZC21mVuI2SeJIxmZeUjAo5frL9Ub+stCZ5vCNaadOI2cZ/sTFOSNSgkkKUl3MU3UyEph5j1pHdrJBYUPUjZZB6yj4DXVQBGf5M/iJ4bjQ9Ho1I3MfX0/JZ3tSGVDglK7YQeY1upVGz4ykcwFo2a30qEprrSfK5vXlh3oxtXwhf/gvAInu29aaFNEEeNoNALTxaLR/o6GLKBekhevx1RQeHoHGI704P01ElaPktmsEfURgFs1NcjKbKP5kGm - -KKwr49c36ZRMnMvrMwXeLZVhd7CbNPHqRHCqZBw9soHVLVE2WUXA2ZFRcfQw2bOT0nZsgzZtO9QBGxNUvHqNoKcp/r80XFYzBC8U4QwBpDCtXlkazMKmU/3XW+O0yPAayyOCDD8Vesgst9HnIO7E8qhcPWNYHMAkV7EiGqDM/lIbR2VcOdrJ5wRqQQiPNuEwVz+azmUZaPa6YzmUwNLuBWyBTWJfgcLOD3CprB7EFYAKQMHb2FIBxCBvoQZ0FzQN - -/cfThXgJAOFeUO1lWdAvKA84lOMydOD25OlyoQTXzpjojMQSPUswg+OiWVnmBLZWbaMt+ZKcytxkdyy/mcY0kchv8yxfSorUOXK6E9YhVtwUHhzoJs0eO2GVZaEdLxmJKIKRjZ1aBRR2z0inkRKeKUdsxbJIISLtnfQx4iVkYsbZN2yP/yBdPgUURM+MZR2ycikCcIzMeUk1xwBlTCzFGVMTcToM1sQaWY7tk0RNpkF9s9upjNcQdnRKLXqTvrRQ - -QkjDQVAGkIs3JNooQKtOSYb4i2PTmIzkpXWOiN5vDGI2W4V5ktJGeu8fOI1ER2mGB9TNEAoz7ORulmkorCsheZ5aJ8AA9AFwAJuAZuUJoEVwD6YkGAKD8GeCb3lvPADv1V6hp0wze0AgsQj5iHbJCJKK7mrJ8iQjR2Jh4XHYyc2eaypXxGLHtkgIMlbpPPTNxnttLTmZt03+CsUBccQg6jf1qDjYz+sqYr17FzJiMSzoyVZg/g8uy4hI49rKs+mJ - -s/CTfHOuPfWYEExIpq/S+ozPbPncZSEumZE0A9VkO+PEqQPQkOWYHS/iFgvQ+KW7U3FYS6yraHe8KfSSMs0MpFTiXaFj10h0GXCJjyDyS5SmRWygcWk/cdJxGTqQlxKNpCbpMo1ZKezxbG0hL7SarEjmZUIyaQnmDiBYULYy9W+XdOh6ylLrKRWUsDmSlT+klMeTXSUL4r5pPGT46miZK6Wf6YynqhQT4Jn9dniabjk3Op7vT/enqMGwjORsuvpA - -jhqClW7ImcVk0iEZu7ToVpluOk4OVBU9hjayXdlSTQHcYfAIdxPlNGgkBAn3HA/M2XuPsBTWLRO36cW3soRQm+z3kBAUkvgL80nCZbWTUiyM9O/WWi4ztenGTQIl0V3BGVBkyfZbwhI+m7IMiHNCAdZxmkzENn3IIHqT2s2LGaXC0OKl61+jquY/8puez85aJ8IAOZ3CIA5QmjPwKiaMyOtGYiA50bBmKTl0y9gEAIcvYGHEljio5k04sFE7HW9H - -EHHCMcSvuuxxaExXHF4uLo61fpDCY71hEH1ZAR+sLAEEx05jmLyifOIe6yyXoCKTVBajgmDk6oIx2TuLMKJzOThlBXvFJEuodA5kUJR9En8HPwsdO7f5QEqNqvx5GHdiTSKS0hKIkhw5s5I8wVw7F1BEwTaYEcHOGCYojF6CFuoh5Q4wCwsVxwCJMJZVUlo0oPcrMQCToiWhyDUHAfU+OLURNXWp3wgUizGEyQDxcVUYG8BnJDaLEeSE3MXwa8xh - -YnCgeGkjNTs1C+/LVlAAGFOdzHPyGLqTft8jrUdRxKvgAV7hb+4YJhacApMZEkAXZh0AqmwnmC7iRkMzAoZ9DxkHAlKHbK9xMAYK7BSZS8Y3l2ViIxXZ78yuVkq7J5WeYxciAn+FIUik7M9Eod00HOfgRFBnIFJG5CGmY1Ke2yLI5BhPm6Vjkh7BKEzXFFMTNhuAbE3oRL2Daln6HCHWZE4i5RLuz+YA19InycksVh+KfTwAmphKEUIBsitx5zIw - -cEzHOiGuOiZHQL3Qo1T71HB2cG4sY5zGhIoABXFRfiDkaEstayFLTdQE+CvnwwypMTjsLjKxMzhEcguQQcZTLYkwn0yOWus0eAORyVD7ftNA5sBITGodwE/kB3HN0qa1k7mBLzE56T1MgS4DKgKjJbwy+ixUiC9uN5FS2B57EO+lwxImUI5ABUB2hzzi4xIDEyUVPCAO4SNdxbhRLfemrcc/O7qDyLCqI018hW7NcJKJ9lEYEnM9QX6gyNEJpCdY - -ZmkPZwRuhEemUu00qGsk3h2djsgyS+iNnhbCQMlRjV+a0h/dNZ4EU3VJhu5g+X+Qt55CKYoUu4OSAcfqcegi4TKFIxaSbk+rp7ypvPCnhwx9FK1eIA+F48jqdAFTAHsAKcAk1C9FkGTBjgAzFHAgNEx0PA9YKIpFj8bHUq2ht8YbrP+OYYkBicc7TVTGbFOe8WHkmbZ9oyijmGNIRmWrs7FZtA9G4jSQCMQJ6MrJJ/vgLtQVujqOZEskaEx0pPOk - -MDTf8VAsqBR9uyKwkY2ILrHXMj8ZYXTt2Z8eMu8ezU/tZtuzzrRllLA4fyAsHpfxzFeFbID+6bkUyoprCyAprv8PZGQx4AKq1gUvJaf/2XPvuLWMhVIAJLGPzl5KGkzdVAHK81QKe3zysUw0pAqzAB6pogqXNinLdBJgY8iuBBZ0GMSjeQZQAW3jlcEGTHLLAskX6037A6joIql+UAbIa6gnxYVcjc/W96dtQvTpdpzRAEWhOm2U8fXnpcMzuVlu - -nNKOTlLG4mIy9Nno0e2PqOhEvVA2TNJaH2NPqOdeSCAiwRMc8naizzyXeM5VZnNShxHPtKSWZIRNc5OCzTBk/EL1aYmcrmpiSzKcH+Jyv4Z54hFxjdjtcjccz6wIUnehpMpy6ul7PxnKpgAdHgI74egDEADxXGeQaM6a6pLoADADfyL10gtpYwJYJB97AnwLkgXXYStkZGCGGOoKkj0N/JicgWzHRuEFBHdISgs5Z112DYAijyAGIZlZLizDOl8t - -PZWaUMwVpMUoh2YitPgidFAQSeSU4LWJ95DcCXNob546SU2xEP+MN2S+xcZozNSAxmVzJ86c1gaXxjglJ+mxlOjGd8k/fZoGydVk7qP3STGs2RxllCAkGv7LKcVUsySR5kyAujLjMLccR4p9x7SCCAligJBMlQEh9xIezn3HdgkenqDIWTwqBz33H1LIC6ICc/dMDFDaZCgnLD2RZcjVWAVyijSPIHsZgZc0opL1ibpI1mK22BBQTphoXTohFxGS - -MGZ8oVWZn4RHYmt7JXSfA4yDJajSn9nZlL7cR/+F/ZFyDy+E10IKWck4y05cezjtLwLLKKb5oIFplSyWkEgBKERldsxiJIlTmMlIpS/LJMMhZBnwzpPHEIQbaSHojV+g+zJ8lzzgGuU2Uw9gz6zpnERgNnWcJU8OwDkyYcEsfV+2VmMtfwl+yoNlqwC3UXpc49RqIh8hm62Itsbss/uJ0KSINkwfyv2XXqD0KyGzUUnYLOi4Znoh2xoClrEGsbMm - -QJ4bbgpSAT3hldrMxEIPUnupp8Qc9mwHKkoT/snDZH1zTkGcUMfwX1cljZGGyGNkHhBAibk4+I4iCDS+EoIK+6Z30hE5wTSoAl9XLhsY2Y43hxdSHhll1PP+M60mJBqVT60lOSJk0b1c0px2TjUblWtOa3u7wmzhrICnPzY3IikSO4J65P+SQbndsLY2UXwNEZBkZZUzXKOGdEZoppxodjtrkYBNTMT04/ny2vQqvqOTKukaiIc1ZWDNLVlFfwPH - -DDsalZTOkpYkNNlzMU5c3fxSsy0rmgzPnGfUiETSbZjn1C6EQcuQrcygJxATbZga3JWRlrctNi8tyKAk7+KIQK73cI6es0NLianUSmTJGNARQRCK+p+EPQEUffYqZg3tvGwv8LtuWsgW25ee8qkylH38IT7HFIhrhDC4SBeJLhOi40vWk8IaFYO9ikbEWXaO5a4IPWnIqKPJqYdADGni1gazbCNUMJnSUeZey48/HBYKUYSRtaPe6HSUOlPLmMzo - -XcyPexdzI1wvMgdlu8KEpuqEl96ir/W9ISV4kfWMAz8VHi9gSiSAM0Q0YAyts4iSlI/vsoBVGoe0zOQcMI3geB9St+JyyW1T7WyoOeD3Vd2OFZslrqeCkOVgs8+p2zojWGasMruXdbWKJq70aLEMWOD1mEpIcp19SWq4ZJ34gVDEWm8+Zy8Bno9LhWfuQNgAMBcVwC4AEMVgGgYKAN5A2QC5yJJKlc/JXBIANxeiDgh8kYxKEAI47Yutk3iCugRq - -Mah6078bwxtnltOXkc0sR6ci9zkfzL6yTuMhvc20BlRQzCDr1O3uRUij3E49BirJLmRKsl9iuLFFLkVzNZqfEs1dBCqzBhnw1zaOQD0wh5gdSDlngpXmIHpYfE25KA+1RYwHBgCBJT0mD3CH+oKyE8gKMASpw9HU20A5blGAIvMaV4ceTBXEkzBHMZAIPoYHwT+5T92GfZL2bbfZ2+NerFm2ILpLvcL7iB8Q0PG6iHPftkHYCpbiyu0EeLN4uaZ0 - -oVpq2DVdmlHIFceTUkIWiAJzlyA+2PbF2aZ+w+uzZLkpqLjzBvhZo5s8c/1GjHNusWdsqiJFfCnmlsEM/OTVI+vZPKNx1lXWPz2ansuWJDVzhJkopLPWZSg5IUY6SiMnQgWXafGsAWx2GyjcEw8xtqQcM8OxKKRHhkVvAxQZcM55g6kTCNy37MhuVhsxqGjlJT+Cl7LIaMmcvaWAZpNVm4o0EFGBslJiw1jl9kI0GHcafszdZ8njUrkgzLnGXLMq - -ChJdS3UkrHJLCRJ4SVIAhsR3Dp7IZBBMxFW5TTy1ZkTXPcmWX0t9ilTzG3E1PJ5uX1YncRetjtsw7XJmeXKFD0B2mF5nnm2NkebpAFZ5MjzzEhr1K/0YhtflJRtYb6JhV2n5pZsqqZYp5md5TVMqrjDIMhpJpQ8Smz6XKsiAxXmolSl1xDXehVkVqUVgm8WzG8rqJOW8sNU+J+bxtFZGTlJNqv6/Tdwq596EmQ3XS9nH1TL2a11ztbwkj9ruKgHr - -C2qJmrGV1ge4foAZVQv84rwKHABnxjeQLM8Y8wqwBqEGYRO9FeSS2CR1OxDwGGUM+vA+4nVA7QKuwD+YHfwRKEoTzlzFQmS+4obchi5Z+0bgGYSK3OSjEnc5vZDZtnK7NdOb4stXZODiduk/rPd2AQOcMcD1CZCwDIgoGthE7ax95znvphnIuetd0yM5djy0cmvNJ54Rb0x5pFVznmkpLJqMUXU385LcyfBRQpPi/qQ8vuIENyhMknDMPaaP/QEQ - -VdSgblE3O4kahkoXhm40Zta0vN/7nbzbnxokTBrlobKu5prY+l5dclLWn7PR6uUjc615aYSZJmUFOb0S08jG57qS3Jnj7KgyUzMrYZKqQaPIg9P6eSMo6bmnmilnlNiBviYIAvTxvZjTbkyxOcucZ4/V522ZpYlEBItuU4fAOukSY2wqTuyeuqIc0vCUaRA9Z47M8wdvU8FZHJZSuGtlMqaQ0tAvCOEpoGnwch6ro/06J+MKjvX7pTOO7tonT3e0 - -3FTvLe1GZqAdBMHQKZAHuFmjAcfI54HgA/VDeLRFoEibBpMG8gFwA+gBGAGdwXQMre4Fkw1WT6kGhKGiktV4guyJsTeMWHupJ/LupWz9Uak60CyuVsYl+Z1uDprE340geRUM6B5xD4pWo7knJkMOOWApK/Z96jhSTkmUCA8Hx6Dyr17CMCwebEswMZPQzt2mvFOJCWl0+sxY1y2lmqVNOGSmUlI4OkjVJF6SM/Iie0njxlRx7jG/DKHWL/DOSpnu - -z2MFh2MkLJJM2Ch5dDqNlWxL9Xme88RKURdurlk3PI+QwHY9JHSznYnQdPdacE/S8+lKjG9bJRK/sAvY8XJJp1rrbEmLwdm2OHgpyOZuiItNw7jAtKWeZe4TGGlqFKQKi0ABxJM9wDyAM0DaACsGAtmZAwkgAThh4AFDwakWU4h/mB3wLwOfzbG3ApYh1SRC+GJmERs6lQdUttboWTNZuRz03/Juzd7TnbnMdObucpXZfPSeXlPvLV2T945bZteY - -na6bOiHjqK8hbctPoaJFBnKleUCad8cRd8bHnAlyPOp+083p94y92lFBK4kXGM1MZBlzjak29KAufGMzYZ1HQndF2GLoya+c5L59ZjjXmbuCb8uHU84ZgTyQCGxD16OXOskdwlrySnEkoMSUHE8uJ4kSDgKE0kS7PthMup5DOI4bnwnOo0eik39JsGzM9kdJIUGsjYxmxIPTanlWnMr2bG4hmxcbzPDJdfPfSaaZHL5pNzwbmZPMpAU+NavZ36SG - -NGNkFNIG/wQ6Q6NziCnt62vWSOYjcxxzx3eaOvPbSfcg4z59zYDVkixIz2YewYa5kxyisxHfOT6S50X653dShpJ03LYKe+41I5MFDJkGZNIQcY/s9TyiEz0vm6iMFuddclj6Lkz1xF4LKncfn0yQ+ZSzVdGDOLGgS+szyZrTiEvlATK1IJNc4Tx3ldsm72y2mCaXYusONZcY+YWOENKOM5FqemawPzTtT2LWF3PVAIijhAKRnkMJSl1MpYy2eAuF - -wyJWw8AvpAvAOMip0j0/MSrreaJn50aZy7RkJKpKH3zI2RSXkgXTcLL/RnC6WABBvIF4SwAP2eWEtXhJaXRWqk1ez7bhFFRMBl+Jw6R/5T+ZmOsFG+jB50b5fJHqbjAQbLZD1tL3YmZLiIoFE8v2bDhe9gPcLB4ECHOAAPuQ7GEXADJWidxOqazQB2ETGWM3ecHqNEQp9kjEAi5ETCqbIS1A4akrvTtVV6gVDs0WpTCz75kULItWdTgftsoDy05F - -BqIc+fuc4o5h5zgKqJAEubjt0+/oYpR0Zl+nL8oFdbbIe0k9qRFudKSWFqw03ZsNdcHnHrMd2Rj4p8Zi9CtalKIIjGYcgMepptTWbGeyFGcaNssWpwKS/kmWOI7SczMwypwXT5JmnfIXqU+0lv5Iik/vl59JuuRDk3Ip+HjscEotEXUc/zHzuO7SzVmB/PFucH8rNJmrSQeG6QDFuV24hPGqVi7BkaPii0XufGLRp+0Dx5+H0VKGrIqk492gb/A0 - -KApQCg1OPYAxkhErmnTPfNyTQ9+6S9FOJw1EB/qXAEhU3hzaP4VAG7Lmt7GW8f+QA0BGaURFHVOZKWpIA1RkEXMd+XmIaQIXZAOUDtUIPeTfEX1YmBA8ai0uSonIa0ib5jfZTJk43MW6eCE9xZScyOVk9ZIfeT4s5z5pRzAO5ufIpqeFgP6OHtl2JY06hc6eKsq9+mg4++SNlhC+fYI1fpQZT26lBrICGJq890pH6joxoxnMFISqAnD5W9C8Pnzr - -P3AaplaiBUp5qCGPwJqudI4lwpsVzXB5AwJakaZJEK55Cj4KzRzPnScIdXy5Bmji1xTdL6+WN8nx5eGSP0kIAppubblZ4ZGgKFvn2tKcPu8RIzOFdzEk6qlmSTjn7HYUBu9j3YnMkm4WnjZDah/0OFnPbytzkzDboBFeBegFqJ2TjOcMZGkGCI1MAPcM3AAGgKxWYoloX7z2isoofTD3IQgBIFyrhkFgrtXIbWEPVqJhfTy62fEcz+sJZAZxbb4z - -92YVI+Hh13zsEHWfLZeTo0uz5nLznTkBpMdGVgCmP5iIS52EILnfKMVnf26ByAjFqoPIN2ZY8/OGkVjgPnKXI0GVzozgpXjzYbGlQWg+dWU2mZpeSFBq+9Mw+cXQJOBC7T3iHIpNhSUE8t3ZAbjKnFvXJ7Wbhs5x5BSz06m26RvWTt8vpe3uzghFB2M5udbYm75RySALkpXLDUo04zYFTfy3jEtdwBdJcIuO5ReVC374/3LLvvzIt+7pJyaitdE7 - -bg8PMjpUs4FbR3d3mUk3MUXI6nA1zyxWCOCbV02RZcpzajR1ACzKPmg26ZfQArZxyxCweuvsZN0ejySsltkjbahB4E+iAuyU4nE+ndpu2QHLq+DyN+lidXu8Ty0ybZDpzVSl2jL4udlGYVpAvSc5GElVjiqEU4eOKbRIhaCQBFZrOQmS5irTocZXr072BeMuVZ0ZzXtnoLKybhxAh2uhSQWcDEeHTgHBcmRZEny5Fm1Gn++PRHXgQ5Vi1CDo+mtn - -LcABKWlU55YilAsUCVPgWmc6xoq1DkmyxCAgQSVxgKRnqndENlcSL8JBQF9D2YBfcTrVjCo+VIe2hxtmcXMhmdxcjl5d7yMs5aPI+8WIM7Upm5JBoiCT0DhkuYonheVFvGiQgyuKX8XSz+pQhGkD4RKIZmdAlP+oCicdg8ByE4N+IR9ZtooZoBk+HzrHnVUFet0AkPisLy7EfmQUAJwcEwkAjNVoUPsrWtg3cZiFAkzkizBl3bHk2pBJzGFYGf5v - -NZLhBkEjT8AJ42IkmkAgmAcMAjNZygRkzHuYPzgdHggIEJrHgrInuLSAbYYn+Bj0NvlAWQMr8UOgvyy2ck9kCjTTtqaWRxyAODPFmUGvO+aDMUGBwWDGtuBYZMIyer4TarJwkyrHzhNYZEugGvn/6DuqHL3IyOsTTepirgqYmDwUtASVCAKgHTUEXUR2wO6o+xB477KUJkPmj8M5Mc1Qk4EZ4hMurDBPKUXPteVR5SkIxIOrPlYY4KhTgTgpccW6 - -IclCZbQpjk2BgvBc+CqUkf4LLlQwWn+6knTacFWzNpSSjsUaFreCt1EiO4DVTtgqTBYcfT2BeOIaQ5dyRI3kyICCF1CAoIUYQvPEFhChl+z+zOEAYpE12WpAVqCQxDMIXmqBIhbobXUFEpB9QVZ2WohURC2iFNl8Z3DIQJ4mii0abgBoLzjE0QozYuxCo4FV/c4AQjXTehrFvdQ6lLIbhJOU0sBIVs1xeqbDdVziHOxkpKhUvxRXSZKIdvNFSfqj - -KiU1BieXQqsJ7gZhDEuxHZT1/pdlNbgWi0rZSMWCwSrEAjvqShte5ZsWhKSmqQvtIRajR0h/9hrqmB2OresBKN0uCAda3ZvArPEVTDfeBdiM0zY4jJW4RtwznBrtcalBdQOukDosboYe2sVUki5Eq2aQAC4A874BgRZZMqAA0APXwqFMFvGbgFuAKQMHCcaiR/wJRrH2GiuFRBALogJ0AvHQxlj7QOLkg6oWtCjcG/kkZJDLKWSirMGzYxveZBE3 - -Byu9cMAUHnN5eaUcmGe2czyTLZLPUwNXnc8u3nzWzHLkVqBRY8iHxvoKYAjlzKaBTg8hV5Jn4mwWc5BbBe0gojMaYKMyAZgsNUA5oTzWLEMgQBW9RCHLZyV/AD0BDbzuPTWqAaQeDu9xUsYqPgu0uAc1KHUTfk5oUzN279LxNVpUqtRXDx7vAiuncFMaQptwXhmyHATBW0g8xsGoQJE5bgq8pjuCjr6kkdvgGIjBh6JuuYGFMF4werSJxoXnjiX7 - -8V6BspBqLiGgLDgW6FRm9Ba6LzksUrz+X5umwsdjrkb2NrNpMvT0MELR4BwQspQBMxUdi/jhxTl2OBCvK9CpcF+GTe2Bm1g4ljBRS6YYxQNoWxRC2hROCPCcWZBZQGZyg3SVq+ZY2J4LnkB6g17YGYgdgiySAXLAa0yRhaE4T7Qj4cSgTMaCNBRvJJm8LeAi+DmwD6GDa5J2SwVkOEBkwuU8qTHBdomRCzpBScSRAPgEtaIyQLAeFVNkQ3pSIT7A - -JjgiCxrwCGkjFdWkgxIgnLA/4N1hZ3IF5QDXtGrSzaG8QAI4WxcUKt9Uq4uiCUEoCKLMuTR/oWXQpIdtJM2sFrsVOWyWaArKKTJBSkSMsyQH/gsghZ5YcfMy0KwwWZgpQhVM4DGF0QsJXZrVHTBZCgNaFAU50YW20l+hUnC0MFd/BU4XQWO+1gV6RCxgqBiNqXXRhNqXc1D6aMl+ymbvTV3qqwjXewN0m4UGVgngej81I0ZrCWhwWsNoDqrcIei9 - -2jwNIoWNh1tgcm6gru8D+Du7xP6j5EwCSvqNYBAZvXRRNm9ClkZEwBxb6JyomKCY+mG5btAyAucS1aEfnPgEPutGPDZLyeUA9ve5Q7OTg9qSBWL8XcI0Sim+TVUHBcUi4vMPfIEQbpqUSfjG9mtt4FUFKu07xHKWJOCYhc95UppwEAD07MOAFnQS9Yrsj5gDX7mIAPTsgqqbAB5QUO/L1kD0mFvcL+BF0AnxjVBcLoMpgFPAG1Y6hOPmBOiHoYqq - -stGBfcV0ZodIRCx/O1JoETbJs+ey8vIF1oLWoUunO3GQtstXZvDz9HmZUWuTjz4buakQtzWZptnMefSCvZOzygEjCTQrUGc0CoMZKqoGkiZI1f6K384L6BWBoXhLaB6cRX8tKg5+I49BnwxdQCEOdey+jBtenZSAqWQTCi5kN5osMwNyAVYNlABCQZIB72BofOtMNAkMwwDZB3JCksTwnNH/NmMGlDhTJGxEO0D/ddKczmxOmSgBBwYH0oS654Ih - -ccxHhHOLs8wKiBtQRlaIe+mWMlJhLwkZtZLjKxDWhoRC1fPeFzIdUC0RFyzPRAOXA2O1KSoWGWZgFaWCPiaGjFbEkYkmNDgij5aeCKAzSm7CKDD1Td0yl1hR4D0rnIIApcAtiECEyLbgEmC7h4i+mA20weoG/MVhSOTAZIFWJjrILK0SxHiAIdVSLbYvpzlZxZJhXJf8IrKZuUA2GglwN0EglChypD4ijvBZnH/2Z6p84KJWLkEHckFpYAq5bmFZ - -KyilAzbMVBUmFlwDwGnYpmoxEsinJQkZBVkU5Ir84HkizoMxuMRaHQmRtuKcOG+IN/Av1buligQKxUPkQkGDEEFvsWXgMBFW5Uk/RW1Fk8AKsPVmd2Fd/iYrKXIrA4KmIG5F8+hI9SVIH7Gn/2bv5kXJCUCa4B/sEJM60wQKKvLC7CB6ous8tY0GvjPgquVV/Rk88oICbBNCdT4QvSekK9dfATaxwNjwwA6gsD3bnwqMhHXYMwGCcMRoXWJtXwEG - -kspCiXmWVHqg/spK9i9ril3hGaMVIwuZUyC+iOCcBJwMmCIBJA+gkRGJ+Qo4fd5kNC9tHQ0IO0fDIGqQUR8B57QEFCPoCs8hJvZpCRwpTmqGEO3b/h4uQ6p5/PPpHOtotLRAuZbHBzQE/AJjIZ/EAwUdghhtmv7lnrbhZpdx1FYNdFtGtIsys2HZzJPkiBNR9PQAEH4RgB6AD0AFQnGmARkxj5AomBdAGPCZEcvmcIttcFSuwox+E/wAbpRwgvSy - -APIPHAZIbmqDNkL3nOxA6cKw1ErESghLvah/OJ0VaErl5jnyaEWrmzV2RAU3AFICVlyyXXSayrlKXxAO9YRoWcIoYwqUIZ9msryaHGuNPN2UkiIRFepYbZKOOBF8vpAEZAOyK+Xz+ATRxnhOZr43uwINwfoIWpHs6d2xGVRC7CyIu8JuEwzvBSUBDwyZSGQlGe3aPiRkgdvisL0mVLoNbPipOtkrAhwE20koio2mxuiqWLCalaRaYi3FQS2EpUjN - -bmXMuDAIyCHyLV0yAUFqjDuEdNcBlJgpBYxV8RSYiw+ye6KnPyVhkYtA0KX9RAUFioU14N82h50u3hmBBLJnP+Q8ZP2i4mkg6Kf0VB0iiRaNgXdkEiLeKbRHJsLHBEZGkl/B5lr8ZOtFO8isr4FKZ0Xhs7mKCLoi1/KHSACpyTD1okOvgAZFzSB8wVMzkwxRfYL9IhLD0GQTIqsRR91PcwJGKW9I4Yp0RSRmMukqKg7vg0YqaFKRijFIrGsYljuH - -IQBDKgK0+9RQO4wSQV9hajHOPc4GKhnDt4MHAegYY6YX/4Nroa0JZ0nowv9FvxYVrSKYrExR8rVGO2vR7ag5NipRP/vYJ45t54YD94FnRdtmG2JdJkzmLipmBQb+ihNIQsIGWILYE75DagNTsRuATKGMYtRABx00li3cpk1S68WUWA5iiz8TmKZtGksQIRUjIIuZzlcNlkCQnsRZbUAje7TAhtGroTHRZNhV1uOSUzpBcYzCueFihNF2+BQqlcYt - -VYjxinfJiJyRdCEIqhMqVPRfww6K7jgMDgLrJ0itzFX+DnJnJsjrRSU4j4KwyK+4yN3Fk5IfDCrFOjYqsVdhMECDsgWrFoA0zKai5OlVrUtNjcPSlAoWgrPreSaIl8WWVCEkYe4XQtodw5SBZ7tVIGI1n5/tC06WkxKjXPGz/UH1iuU+/hzHyI35qQlUycIkgd5tJM+3k8pNSiXEQo7uYUD627LOwXylD0+Z2gtJP+7zOHc8eR0h/pF/Sn+kYOEo - -htAYryK0tRe25OGnuceibfiw1QVui64lAqsv23OX5Hr4xtHLpG7WFilF80/jxRGC4/2D0sW/WF2+HUNWr1cWgvGGkIeA8dMRDa/AsFBf8ChPsLAQGaCFlEnkVAAS+mMctEgDh530AFsAY4wHrlnglvjDd4m3yMRg/NsupAwgGwMiFAdNhQ2DEPjYIp+sYHA/N2ud9F14+0jvqV6JZNFlgSBWmaPP4uUSC+0FgvTO1Ddl0/wte4bRACpEkZ6DGBU5 - -mhUo5pw51y0UVIWZBdEifLF+SBCsXsxLoMkri+RFgM0GkhmLx1KKnwnQMLUICflCYr/clri3vYdIieqD330oxfvwPzsBCRjcWBLL62NSFCdF7tQ4CgfsHceuri0dFb7CKODLor+aJ9oBjFXmL9EWhpAIPsFi/TFoWLHEUiPjqaX/pXQasGKu6HKWBXzG4ovDFlxx4LxAwqfEH1IROmK1EQlzGIsM8REBd5epmYYsU03gciDNaZ9FaOAp8BvoulYD - -oJdWYOUhfwCyYvk6YhCCFASSNB84VVHJgaw3NLg+diMMWu7lbRR7gdtFSSLflCkfj+jk2wQDF0aRRuRcrGT0TH/DXA7Yh2XDroocXhLgOeqTyLYdADtE6ZMWKcfFKiLinjiIHdkAcipSw+SL1ixeU1ORephGlMa45I0V5wB2UItIwHADWKSahNYvYQKXxSUQ7tcHjxQYKcupTOSZF1iLyFkNdml+DqgLXAtyLpLGnmHa6OhvVtsAyBtLgKeDV4Ve - -ilPFpxxH1Zf4vwxS1CPh+cRRvKKPTGvRanioAlRriQCVX4sWNsDJH96Russ8DmpyKaRqdNgxl3dE97390SIUNwdU8NlgDu7N6WBUds7Dp4sI85yn+BQ0ydrMzqBikDJwmwwX+trM7O4O4WihpkEfzXeFlE3CGFlwRZHkJJq0dClRk4B0hZfmfjx53pkfOnMtRdUAgVBVKCipsskpLeUiloZ7xKWnhY5TOxNIJUklbO1tB+MFTmm1QHuHPGFv0i0A - -PtM9ABbgBjE3aNKcAUYAdoAtgDcKjqIf/8pH4oJgMyD6O3bMMI7WdAeSBi5aru3/ksvSeTFFmLaIiCj0GDKrOcIoKJkVHmCfRtGRQi7rJ97zqEXzbMzRaUckYpDCLGxi/zzk8MK888uElydWIm0w4RWd03a45aKaAQK4pM/Nsi6qFkAwvznBjObRe50lZFxCMjWA24oj4j/Qc3FGrpu0U9IgwSPkS03FuuLTfh94vDGqenG3wf+JlcXuUVfxZOi5 - -myx3xGlmzoqF/D04vPAi6KPcWTGBXRd7izTQTiKw8WuIu6JQeiofqUngAZx9IvwxVpIQjFOV8eiWHosa0P0SkJkoxKV0X5IAUgqqKDCIqKMFmLIYuvyoGFdDFoRUF8VIIKXxSUxQPFqEtQsVvkmPxSIikRSopBLkClMESwF2QX5egCp9cWCYs2TsQfcngOxK9JJ7Es0ZFJi8vFccAAG4iYqrICpi7pmk0iYhwEYtxWo6mSYl8eKZiVj4qxgF+Q6g - -UCzFBwSrbInxZvgStZFiL2V5RAPpVqiSw3k6JLG0nyPPdwOxi+jFVcB2iWSIp0MGlfLZFreK0iV7Io6lJBixDZXRKIzDVEu7xKwzG/FliLLcWBUDpJV66AdFA+K8DAW4uxJexslH5BwNYpDhGkjjP8shaQ/O8S+a+H3k2T9kYl5CiSCtFg4vLymO3V42aqL44mO9ldliC8+ex6qdEd6xaDCTjBfEOkaSdbAWXLJ5GdU0zESApyYJIKHLW/JmQSZU - -/xjchIxnissNJzRpS8bcbSXxsMaUkF5P6U5HEKsY6J3ImO3cQSULO0EyQ0WlbKih9f3mTQpA+Yn3L8GTTs/cgN5BqpqJAD6BB5nQtARgAn7wpXBAXPMRL+e8klCICoxkwCp4QT7QekjTZA94FNwOnE7sciwlRpz6QDxJXRi7TQfK5T4AiwJ/mmFIpqFXWSWoWGNwCJfAbYoF0n1EgBmFM2aU6sWoM62yp9qzVhXSMcvRIlq2cjk54hJmhRziV3FK - -uL9XJDkry4LHZXRFtJFpqDEPMVxRYMORFLeZipYjanpJdw1DCZo5LEHoEtnWJQtwMnw2oJaMUgdxLJU+i4FFXJRQUVL3x3JdhivclPyKhPh/IvUiMeStjFxZLyMUGxlA9EFxKm8zSBziWzkpHRcOS2jEkpxjUAaXjvVi+SrKUBWKxyWWsQxmBimI6UUSDZz7JePY+SN+MEej2LDnIg4oakPkFd55GUgbnmrVMMuBlEqbyOH9nlnE73UWGxzJdIKb - -CRgHwXL+Bb/C2o0+aBCSo3kFpoMoAKgBUYB53zy4PGsBQAC4Ast0KLygemagKwfNTMhULZkiEvAWlPXhGtOS6LeiVe4sK5o9jCJFCmKkQBVktbaWmiyP5TnzaEWlHNgqTUMzcJ/+BtkzHti+1Mgobsl46oASXJEtN9HUSuclKuKXyWfPhKcYX8gYloeL9aDDEpFYKkSnIl0r470UZ4uWMnRVcrFlkhhEX7eRiUR8i1DFtVwFkWAYn7sHw2TzC8y0 - -eEAztGpJZ0Syv+d0AC8VBExsmBvi7jFNsgcGJyYvMxRuY6JFpPIDiWUHm6XL5S9LAheKAqV8rBBJdMSsEl+1JXKXwYq8Af9chL4pU9ijC2clySmzyeylTUh0XiS1IwaNlS4gg5A0FHK73jyiGFwWkUeQ8HcU5UvKpbGrTEld+LqMWRKFKpe/i53FKGjb8VUYtZJYaI/FJjJyYRKNVzMBbl7FQ0yN13hY2Aowtu9bKLkn1t7Y4NeM5/j/U+nUUb9T - -ya512SIaHcuXJpqKzgW200a8qSMyJOxkLduFNUJXcryvEH+43t2zl32PysUgVF20FAAhADW5nmABCqW8COkMx3wUAKO/PRS+SS2C4VCRPSBmMDw4NUF46IplQRYCIQJCgY0cxlLdkW/UBjRXiANnFIro76nzIGEpXNA0SlbUKo/kdQpj+WTUzZpM8ArOiALIc6XQ5UNBXryvQXj9wlWeWi6Jwy5D796ERJAUWri18l/5K1yUpXiSpQ9AojFbUpVy - -ULksXYMpir2AmAQ5SFdaUBpW2i4KyneLspAt/h7xWSSltFFJLgaXmTJv4EZuLFIFkhfyX1Eo1xfuOMGlfWZX8zzIBFpRpSgClayL2cVS0pYWRxst/s9IyE3zl9XT3k1FAfk0Ki2WpDeWRHnLHBVho4TpKKd9FQOjAQ+zA/IKbUWnUs7OSLdM8ghAB19iZJjjdHHNLSY/u5FgESguCDpDo0wlUIACCjuKW6nHsEtUF+boCkBx1mznvTis9AhSLw9H - -AuGzAU1krWys6Ke57QcHNPpucu4Btny8QVOnIJBQ+mCqmAuKSQWmNJzRZlRY6mxkwaQb+3Vc3pn49P5VriyAXS9GUpWJInP5jIi8/mCIuspfWi6LkseVbiE00s1xSTSholiD00kFdUstxXVoqwoE5KmMUGIoS1G1Sp3FIqAO2jqxUUcFJrY1pWRw3iXE+A0EEqLIelRNJWebhMKQuncleHoejD04DW4ubpWLShelISKbMqvy0RZo3S2KZytK3hw6 - -0tgEZV7foygiVdjL4Wn+kIZAS08DyATWGn4FPxFqhSn5AJVSzmcpN34l4gAFkE79PtDSnIFBbaioUFeItbgDcIjkILvMxpwL6xcACXGCaAN0CTcAB5A95lrF3oGZwgL8yq7sz6AnH350KihVBYiDASoBOpK/UMsS3ilINKfFRJ4pasopvA9sXOLjOk84sJqYUCz+ZQRKY/kbNKzpWESvQQ/EIOwa8Lgq3qEY1oZ3oKxoXjqhv4KpS6mla9L5yVxn - -KMpTeS3cld5LzOyoIEgoN1OYKluRkmSVoktK3I2kjJUUVLJ8XvjIppQnixRFiJLF8UxUosHACShmlQJK2SXAbGJYBj9Ys+BVLdiWE80OyU1S7ql2Sj/8UIlC6gDwyoslfDLT04QEtrBQASo9ZxApd6WWVhOJccgM4lLeKeaUmUv0UG8SokQejKnsqGMo7pUInD9FNjTUQApfI0idySqZFh/chGXdTxmQJ+Cn7YRJKoMWlzh9xXoiqclF00bzajkv - -tPtdg9Slb5LGiXUBLmqNnlNfJxTSu8qlNKkJZrSiAxJ58AR7a1UBHBhlU4a15kzu5L5S2dnLIvbuQI8CCWehhBUQ0yqRJTbdwbxU/3gSVAkvJGoiyhAqhRJGCSG0oAkM6RLjIrfD1JGdMoyi3NBACjY9INAPmgJhARaB77l8SVPILdPCc5WQMI1TyoHiEkAnVil479yah2M0+QJXHMr82fpFsjmkpgwk4S8Kl4GKoaVqCMKOaQyqB5ElKY/litO6 - -hcB3bPkRm5u5pToM8uWxyaXFcvSS6VcnTsMHjHahxkLNc8lVzNVWcUS91IpRLV6V/kpbpQoir+QS5LOSUyIs4ZZpSyKlijLDiWm00LJYky5jFhiKCGB3IqnRct8uWJ0dKR6UcwDHpRg/OYlYxLFiXaKJr9MIyqJlQEKcMmnouBNhviZbqEJLzDDyMqCxXYA5XQxzKX4blrDIzJc8PledxiDmVKhhQoq0k7il8xLAxBU6W5ZRcoXllxPgf76ooXMp - -Tfac15vYh08XheCbokTAeCsujKPiX6MuYWGUPZ9wVyilWUoYsKpQmpVVlejJMWUtEu/RSciPxFmXAAkUysseJfAUuJlZMh21zglmqpTihPLFNdLKsWNov27JdsdzigPDzxB7oNxZXPS4K8rjLsiVA0o7xSiyyclaLLPKjQspzASsOaUq69hqZRst0Rsm00JbA2Gh+cGVFgjZfjWSPI0bLtHSxsp6pucGPChNfoGFpE1DgurOfMLxKdy6UlJ7xwJQ - -iPMWRZBK7QIzj1JzLicYjwtlVL+bQEAOMqISx55H0htqkp8i/wGylCXYxMiDUXbBHZgcai7nYkzkucyLaNaPgrVLqpqiT7IizlNh6ctS3zxQdySFZCWLIVtUzAQ50iYdcwGJMSWiaiBCxbisAfQ4rTlbPWcvNG10Zs6RjGDYlOqMB7hvUQIdG5lFdcvmgRgI0PBNADKABFUL8Iw0A/JToGVb3D46v7pYU45ZA1QXaiArwCNgfKhjZZPn4aIo2JVu - -SmuWmDKJPBeqMIZdDMtAF/hLrmWPvNuZY2SntpVDK65CW6jrSEzGJGekuiQ0yy9NIBRTE0ul1nAD3x9krN2ftswh5o5Lc1YOsvBZWLS2bKgxKDKV2UDvNizSiPiJCiJ0UbVGCCORWVjFbjKgaVBUBtZVVSsU6SDY+MWxMppJdizBLYgHKFiWwf3ERZayrjlqMdVaa2srY5eqMXvF7JKgMViFSYkHIynSECHDnZQGsq/RYzXKRliLLKDy9nwgNL+y - -zcleUpX5DSMrrmNkWDclS+BtOWoaF05X5wMymh8CeuLo7JLrmQwsH+6JJrPEWLXSiIdBALRniNCm6Qdhrufv9Mixz9SsTGv1IoMRUoBviVdJr7T84P5kuIs1Z8awyHuFXPzHCmjwZcAp4SegCMrVjmhQAGAAiQALjC9x1gRWYMS0gTp1m/juJDs2j1AJbsZzxbYCAPOJCHdIY74hIkpvEhJIlpQdmRWlZoLsQVkItyBUnS+z5VzKzOlkMvX9uIHR - -IAVnSHmXMqX2epGxE1xfkkjgj1qyUpbZQWJw7DLq6VEcq4ZariuEgAnLYkBxMukReCjVLF5LLy0gvxh5ft8SrRlRsYldHFQsdxblS4J5mRJOECqMrd4kFxa88tiK9MWnEtchfHgXelgfwUNJucVxWrXFcblMdLPcazArK/r+1YISlsAEUW+YwiZVaSOblWZgM8RhUrAxa0PAJl8Ri/rSEl1hRQ9yo8lLoITWW21H50F/LO7lmQhAeVrJH3rNYy5P - -FpjKvECncr4bO0MC7lvd5YUWRwjb5OI4APFdiKg8VHcsRwB4ioNlPmKT0VlfDPRbSy5Ia+PKe6Xv5kP/PTSnbl3psC8SfcpfFJlSnmi/dL1uXkcD8pRjy4vFpYRGJwNuHVyMtyomKJjLFN4I8qspcNy98ltUF+eUNgnQfriwyjllJLWghpUoIcYazc86JyLQZA23C9dui1UeOqkh0XyYeIRZffgDdFJcQhpI64i7xZzSyBAC6TlKaycoSSngvafF - -L5UHmROQTSyKbyplgeC9E/SRGCikEwwGzg0JLteVIkoN3EIoXfFm4TqJjNGAV5ZvipXljqSH8X1bCfxbUNGWlmTKyaVxGWOhZLSqM8VNL3qRc8ukxRXigusGsL1kUQ0tj5RdyZnl5A08F7n4oFQHb+P8Zq6SyEDlID/ZUZygZieBwo0W+8rWJYXyrTlwY8HSBe8pVhQIldTlY9kSooY1DKRuZVGtlUZcGpCc7xZOPwS6AgXkhv3B/Yp1qLAQU2RU - -qKHTit8xjeJWFVXYdKVldgMpTZiITIwYKnzx+HANaOFzPEfaAgcpQdu6WaM+1M2yr6QrbLEKWlWQJKREfCVFSMhNqm7/O35Sc5cUlO2ijzLKotYJWFs0yqEWzHwR8Z1+NiFAh+2+ziklLUchmdsH7Y08hmSiRm9H3lyRtS4WRpP89HCU7AB1MnsU/5Z9Kh/Rm1FACDHmG+lJexs8Cgk1WmceaO54M2iZpJTb1YOdqgx3cMHAJIGyAgrKZqooqB88 - -yfDnnoV5grgAFWQ8wAprBhUzo6t54cqx8wAWgAwAGaXh7S9QBEwUyQh2APuwFly1BFV3NNk5C0zY+qHSvHq2qte+KL7yqAWK5X78rJ8QOU8XPxBbziwkF2jySjkx/O26bByyPg9zEVt5rWLyoniEMgqqHK0HlfMrg+D1E7DlufyByUcMu0pY1ivoYA+hu6XeYrMYOiyzIlUvKFeQz0om5Yhs8iwsFQvKUkkuE5eNyjolwvCeYXjJUV5UFaJLi/pg - -bBUYMGFYbpykxgYLLRaUjcqaJZ+i3rgRrLl+DlEp1xbuC1WpmnLDOXV8r3Tkmyi74HxxbqQF8qI5lEK4/yArKxiWrErBuIpyoIVjNdriU1iHBSI6gyIJDvdvBVKVydgNXi11MJgCy8Ht0p5JQfJFdgxSLO9zBD0pGATABvF2+A0uC7SUkxWXipblleLOBW1CuxkH7A1bl9VKzcVFZhKFf/4GvFieQ/VZEsr6JTYWAHlIKL97LLZH05kdqL8hHzko - -/jdTRWhc4y9rAbYo5hV0PPKiJYNcYVfzR0hUnHg2FVosUFEIeLKeBDEvI5ZlWXjlhkZg8ChCrtxR2wDPlAwr9BWOYr9xb9oRbsZLLImVvcvMFQ4KzwVhHK/BUi8o8KB4K0ucjZl/eWuCtksVz5UvFGuAB0XScsJJf8K2klfaLJOXRpEhFVSSwTlnRLSSWMfIAMVbvd0hI2ga+SCbOb0ngSmxslZz76LJTLhUQhCQIhltUaUlRzypwdMyR4OMO8jY - -4ako2RdZC03eksMQ9Y73PXwEB1KQ0aBi9jbxHVhrCcbZbF/u1/0ai/P4KQ1UrEVYsdgLyi1HQaQFYOvK5zylzLDsrGqQlOeVFYZdO6XhTRprHkywneWdcGn5hUOZwjlIQT5YpzcoiHBh6WBEZB7h2e1nABQADvWLdMwkWmgBK0AXhJjEQ8Yd2R5Hs+ulqfkM4oiAcuOlOK+kjcAUOUN1FW7GPtAYJhFqT9WLLNSOlR1dNWj0yDCENgWXI5XhKHmY - -K7PLvhH82Gl4lLyGWNksEvtIKyEM0ZAgQAfyO8+b/YCwlygq6gUsMqKZK+4QblG0IniVQCxeJUew0Jl2VK9mxgiu55RtdXsAGRKOQxx4oZZTMShJlBPKjBVZmFSFSsS2PKYIr3OBkcq8ZlpBA4VupALr4uNFt5Wny+MFE9LMdHrgpenj1sanl4mKmaXkH0HFajgYcVoOlYeV4MpvRS0izlAH1BuxWD9P3JXCix7l5TEK+Wy9yLSFVwJysH3LQMUv - -iirIAoyt3lKiKfBXv0Pp5f+i6wVAmL8xWhsFSpXBiuXlEBAHWU6CpVPKIitUMIPLM8WWUsGpFLy3Il3WdROUbRUQsQxyv1lVagfxUIkpPFUggkxggErlkW7Ip/FYIynVAkbLksXvuP6cM+Ky4lEV0ixUtUon1FdyvFlC6Kw+Wk0tppeZsYelc9LePIIli9ZfOioiVc/ALiW2UoEOrEKomoxoDQjxAioS8L4gVc4Y4rGaVS00yFXvVTdckeKtk5oM - -sfFaI0dVlpiwjlHykEXpaEi16Q7x4nGWzUOhAgVyg7xcedoIJdVjcJVxWNZI+44V8WMsgrxTpCDhYkPLphVPcqEUNny8O0KWY7CAhmhuJfBqC8GgsLyqBlco2RdLS+aMO6KH0WKsszeRFwDEIWwIdpC3CrCuliywsg4tKXoHg0oq5YFS4MkAfLzqhB8uMxR8gF/F5ErHWW+tlfFeVQcFFyKKsVDP4CfFWe9F8VYKKkUXA5AileSXIeZOXCe7lu0l - -VFel4k/pF1TgGlPAobDkrfaI61tyubR5Spb5W/06uEX/Tf6nP53/qV5LWwh1Izv+nOEKYSaFAZE2iDt8pkLO0qPlrMmhJTmK6imMqO+HsbM/lJdwLTAoqot90q3hGoKq49XuWRVxecZ7pe4F/UrobwJTN9ue1K+4qnUruplVz0duVgS2IhAiT3NkAvJ5ScdizPe0KjOrFdVyQSSpsz55SmzlaqseijWL5IA+xl2jIsDEtGu0TClUqATfN4UooUO7 - -gR3C51Atjke2wqgVe0Qw07+lqOLEtzUDO0JSoLRVQb7oh6SGgA3bh/kV/IyYB6EV9dJRCPoCUrQtnDnRWgOPXGlgQIVR5ct9uUrCvEla2eKkIdilZkWGVmovFZ824BXhSptm+EprJd+3MSlGaKmuUCuUSAKQLeMV84AQ0SJivFxcn8qUg8Rc+uUlDHtklQCrnyU9dheVy0vz4NcKpzSZr9TBXMco5lREBE3FfeiREBXiosFciK4TluJLUWV7EE4U - -ZUKiRlVjN+MUiyscFV4K1TlpcQxYn2CuJJV8KqswkQqsMzRCpr6JzKhlcRPKrnjCcmHmka7V4Vr3KcxZY8oO5asK6ECNHLAmX0csFrtSyw2VF6L8qXassDCsVS2Q4KjKwJg08rTai5S+8V3EqPKUZCrfxU7i5ku+4rIkUM8vZLkuShEVyTySMyUoEj7EbTCoVzJKqhXnioPFZZinCVELKp6G4MqgJaccI30TYqvcWwf3noLBKtLFNsgd8k8MsY5X - -y+XmVq3NqJVRstB5L4yhOVQsDfixIBEtvFbcQEVQVKKWWNdk4lW5SjKl0eiihX+HmDlYJSxnllRI7hVUoGb0Pjy6OV8vIz44nbQHlfHdTuS9IJz/K7cDHlbYM94x6cwg2kWcEGZUdTeNEiFt2clulkYYQSk/b48jCkBkhYJ8Ujlg8PG5xwtSVX1Maxjq6EbFB8DG8J3i0JtrbucLidBzR7mVmjv5kHXDwECftvt5GkN98YFktWccUTkOpykgLZUL - -8qO5MMFrgglSrpGdufMvWULimcF33WdrthbAv28mIudrd1VRSLztUfY4pyHURY/gw1g9wvoAaFzTZygqVaicoAKV4NNA1CB4dkhmCzQK1RI1AQFIsiWv+Wq8JVgD2ILaw/qEXgMHSin0DjL5BG6YuRlQZii5lQgyCgUNcpuZTGKltG6PBm9ygMEqQCJPFNoujtMb7ZSn8+d6EuIIpQggro5ithZWzKiPlMnDpZUPbKF5T8K9mVz3Lm5VvcpTlcRy - -3JoA8qqoJKKtlpXIqwqpnjKHKV0Fy0KowqucSYkqDMUaKpG5Y4y7Hlh3KrspCQvcfii8UC5Ecc/E4n/QAetfw+QsddySOnVCSlSb+pfMlK2peymNwpGDA9wvfYNAhF7jf2WGsmwIOWQjj4CnC3ABGArNZUhVPxymWAUKqDRR+IJcV+iw0GAA0t4ZaeS8jFmIKEYlVcpyBT4S2rl+QKU6X0LhXNiTK0sa4nSVpo3mn26Uv2GX0EEooUBxEqUGQOoS - -RVs3RpFX24FMVVvtcWVWGKyMWdGPMZe8mSxlx0Tizk/4DexeLUUoMNKRISQ7BM/pRbSn+FL8CE+xrgEdRYKyFd5m4B2QBzvl4brgAKJgfUR5ZBXUJS5WKYddgjDhhci5dB6weEgeooSrthvbgyACSY8KqclA3KUAZq8vYwbXithVBRyYaV1krKVZxTZrlwvS2uX9x3WZQNIaU+x7YJfRaIBLRfES5pVgnV/eJtKuO5XCylRVw1MMmW4SqbpbIqyF - -lX4qslU9KrKJeCq1uld/YTuV64qRFQrKq4V/MrbcWFEo0ZQHA/vFTi1VSAGCqeFSxigk06bLOgyq5MXUpxyqRFTgqOxKaytRRiuksRlWJKwmUV8qSFVoildJ+cqc2WVytw0JMS4UQhGKxixO/BM5epy5wV9ErleVnFmtlb9y22Vbf5qVWYquixZXywzlMARPKXXisSobeKjgC74qzWVp3UW5TzyisV25x7ZVfIukiI5K55h7VLmS7WMtuJWSESZu - -+nLvji54t3FXeKhLkD4rEMWJKAnlSEuKYVh5LoeWeStm5bxi+/808rFLGxysClbCqgmcw8qZ5VG4HTOdNSf4VU3Kr6pF5QOQD6queVq+o9i5gSrU5UNJQNV0aqQ1XkGjjVfFgd3l1X0p5UhI2TVcv8heVkgJGDmoCskOQXwmMghGLnhZrG3sDn0FQPucel5SVvj28kG5Ibne0BBj+W4uLaCtt3SIE6/KK7iqbOz5nY2XjZvUzlSV0JMcIbHXRO4L - -Hzz6JwNKvoo+CaaVfxtXdj+lzEKb6/Bcp/r9Icge1FTLo85YjyJPhXDrJaIlFVWyvRsG9jy2UzcJddOU3DnaHeBKwym3FIBGSjbAVnVCW65n3KaBA6MLCcAaAqwBboHwAL9U63M4ec4AA8ACzoMrWIBy5sAFng0+WS4Igy20CVwR0rywcHoVTaZcxVweKXf5ncvblfLyh5VEYr6uW2gv2KcSCrBxiQBg/6bNOluYggcQqURKqJEYun26enktkOsL - -BJFV+MNBVXkS5FVeErCNWaNQKJXrKsklFjLslUkKKnrqRqukR5GrpVV5ipVVUogEsV8fKfiW88sr4MSqq5VvJl6WWgkrt5VRKtRVZsr/ZVGqoHpSIpHjVyVK7eVNErW5Tq8K4llVLmbIbRXE5f4UIVVrxLlWVFUqcpZiaNCVCoqlhUgarWFRRq/pVVGqoJli8v+xCaVCiVbTRjGWQEoAJSInbxRCiqPuq6qudlXpJV2VG81RVVnJgZuMxKiywP0j - -w5X3YG5INoqjXRHUwXBUJeBBFYuS/SlLiKzhW+sqglaXKxkl1cqWniz50RFXOi2OlBLL1NXWas01eLK+sV6Ty+hpKaqxBARK+dFPrL9iVKyrrmBlq2elWWr/GnFuySWkj0uHWDOTODkDMo0OdrkyymNWMwvI3b3eUSkjZ10OG0SUnW4Re3sVwyG2xpKpcmQ21ZyaSc7fW6fiof5Bp3JJhTSZt52ylQXJuZIwovRlLLBMIkmuEeQoyRvLHA0sRtLu - -vFGTXmCT5BN/+7/KGSTdh3/0codbfpJ1VAAEahVGwHEpQPwDeBH/lBiIkAOyAANA8wA1IaORhgLBcYTuu1s45QCiyGcAPeywVx5CAIMmBHwWIEweGwl2pB3qVWwCbILgZOlyHSqmXI3iBfBLZi9HocAgoNVliJg1Xzi8QV0fzGyXVDIpla9iBXkcicP3l4/iqjpWGAFVTSqNTCSKs0wgRq7j0mErvWXxatN9FD4OzVqmq7nrVCqKRfEijAhdeKS+ - -V74p95Z8PLrO6MqzE4PyExwj53QHVdMLUQgQAzsxXAIb4VeiriNVOpmsxZzqsHVRytenLjUvGxbAMx32jBjAajBeIjuStiySEw6qHaG1MiXhbTCr5BLOs7x7Yjwe4V2AUVqowADyA3kBz2qNQ/puakxqdA1yhnADLZAkQR+880ZOoFOtpQq5ZWNOLPhDQxyuDN5q0z5NT4ygxjkrq4iK6CHV4DzIxXPKrX9q8q0mVLozQiWpTE8plU3ED8jpMIhw - -DsUaVXecrHVgnUdkAq9wdcfwi0D5vfRvxXSviZVc1SnqlDGqMVWeCuOFW2K4LVHYruDgyqsz1U7K94laGK9WXM0vJJe4yr1VEsrrOhaUuilShK+I4tyqRhXlCr9Vcoq/RVthx2h55RGZ7F+sVjFlGrEVWCStK4O3qu9x2jkBOUfaBvFcxqtmK9eqyhWa8vPji9y9LF7Bs6eVJysUxRJyzRlPPLZMVmUo2TB+K8HltjwtVUyYoLrHVSsqlKXRnkms - -ao6FaW1GblbwreMWL6rLFYnyty6JEroOBkSqn1QJqjLFUIqCtU36tu5Y5q+/V7Bt8dWkSpf1fYqz3xWHFYOnhsXg6WdrOEksBAYXmSpMOEtKkv9SLAInRFaWBdEcm3f1k8S1mDmLyo9kDuI3XJUjC8m7msM6UpjdQM82N0T3a/IAI0cdnXGst0Eo/Ft3PdjgYQiPxGWDJtWy5N85dBcgpOYlyL7H/kInBcTuc2lObDT7mhkrJoDoS9dUhI9QC4Le - -JIxpgAD+xyYAeaCkAAB+AOMvMQjSQrdioHL9pQfEMWoDVNC1GO/z1VeeiorOd8V7uUaStzwB7q8P5UOqxBV2gvTmeIMl4E95Bm9wj71dBaJZbz5XqRRdDtU3B9obs7HViCrtSpKXOmhTWiwclRGruGW6au6ValXSsVqqlp9WFyvYNinq7qlkjLSxUJ8u0Zfxq8zecQq82Vkqv6ReJqoZFcqq2VXh6R5VdWK3jVYRrRxWjYHrlRrQRuVwRqpiUPQN - -iNdGLbTVdiqcTRb6sv1Zei3IVxKZ7iXcyoRVc4a1nlB5L4UW54CilTZS0zVtqquJUIYoFdnLKz4VEPQufay8u4lQ6qmAwHmrDRbAapsVZbKsqGjE58VWL6Q6NUjKkLFOmrURWT0VBKnpC1k5BBZ2Tmk0hmEQe9GEkY9ipuF/Mj2zvpNC+2R1Qa/GASlyocHXTbV+XTA/lXLMNJYl7P7ecOyAd7qc2tJaOQR0lVyov8yPJDa+CY+PClX9LLaV2opn - -Klw0wgBUhB5WhnkHdyOK0Zmg5sVcACrlR/sSsyre4uyRt579NA64IJHVWgLor/sSH1F/egsBC4Vq6KrvGSsrX1RZSuXZoYqIlZh/IP8eoa1OlAlz4NWPyIxlF8fAtYqYioKqFYmX2efPD5laHK3lqlCB5wc40vhFNhrcOUzkuQlaE4PQVR+LwVVpMuaKCZqjJAbnlONXBsuLlUBKqjlPRzs2XwStXdhyasLVXJrexUhGsppdeSkuVgpq5VVyaol1 - -KR84mlNJqqjUTHguFctWLvVemqe9VqqvO8qayiHUG+rwGgaaosMqvq/xFGpqyo5xqtvwA9DGYwIr8tuUeyvHFaxKgOVtnJB6XymuvgEP1RU1rVKrTXSaq7agqa49FTh8RqXn20RMejdHA1IfigDGlCkD8RO7Zrx+sd7IX3SsPlUA7d60MOt0uLhyhcNJxoOpm7wktbS6DyJPMDjHZ2gqBGsyaANmuhPRE7VD9iJAC6FJ3iuy4hOouABuaCoDlgpC - -LZXqIHuQAJE7KrcIMYQMmAkJBdyTtvgRVOfAMdAq8BBfzlqwHJIDq4bZ+er4mVIAvmwWo81AFGjySGWcKsg5dwqkhyiQAs5l48NcJuiIP7chcNdHbS9G6gCMDOkFgKqo9XhSAKsrjqwkgbOqbbbrmtZlc3quFVVDx1zXJaop5alquw1/qqr9VhqtpVYBiVWVk3KzzU5vAvNZYKnmFjGcq7EH9N82U7JfzZuXsD5U0ZXDNVHgLpmN2NWrIFGhrQaw - -vUjF79sszXYtLsQAMCN6MWwBlABlkkIvAhOXSUc5ViQCfRKh0cgPcHyF18uSgqHKzJSwK8U2GCLNOnuyqusBaak5lF4qXCXdmuiSYUqhZpIgqBzWwaqKBVBynhVP8yPlXIRJL2GfAqOs+JqAAGYEAZlS6SfGlcerKTUtHOpNTXqyiV9JraNVhCtFNZya6XlV5g2TW90rjleIy+/Fj+r5ZX8GhL1ZxqLuVgqrctWmcuSNZCS9pADdE+RA2ytZcH/+ - -PsVcXczTUJGq7AlBg0CV6arTxV0+zblelSxTweKrE8j9Gs3XD3K5wluKcE5JOarcFSBikOVycruaWCWp/FXPqpy1EVLJbibmpdVWUah6+PV5OzXhquAYMsKoY1mRqQmWJap1Ne7K3S10ZBlX4BWovWj9yujlGlreyZpquURYcS4VViyKy9XQSulfK2K5xF16pc9VkhST1bFqUjlOeq9SHFnOKeLGws+xCbCGJj3CSjlFzhcrVahy9xaPXXyWnycp - -xGU7tmrX6Qk5QpMagKufDDT+DqMNT8ZEtFrx8u82vF35xj8Ys/NAlVxtSn65cM7Kb7jEyFReM+w7/b2e7odKHZ5MCqGJiangBVk5xeTa/HB/AF4yHKiXPMrqheAry0S+cguALwaw4AF35YxHiEDYjmdxegAbYyi0DjnNfublcdqx2iwDcy2wlFWjYS9C16CL9SCYIsTkGJqkU1jfZZNUcspqpaoalE1TyqIOWYAsotSOa/xZCOqY9DxsQZBlY0mX - -0Ebsa9gsWqdOLjqrc1vOr/0mBsop5c8KpU1ThqCSVdJFPNe6tSLVElqE1xFWtytW4iqdk2Rq/DUjtC0tTby4U1CeKWOWSmpqpdTalI1tNq2WV/is5Zcj8zkFcqcjvJC+FicDyzSwEPOFoS45kD3EaJIQuxDoi2JjBszJKHkaFEWLOt28KI5C8Obtai9VrBqKgDsgHFEmSNH5SCqgFbz6ACLQGeAJYuS4ZscWByNoFQLbGaAwDgLQHJVCOVdgkKPZ - -DgJLti3t2wtYCS3AZu1k5xUZyoIZYiahZeggzHlUcKvItY1y33VFSqeP4B6u5VN/+FGkRgikOWAEw08ESalQV6HLvmWIBMfOQGC5hBVdK+ZWymt0pRxqy5V7JqrKXx2pClTRqpLAOKqzcXV6sqNQna9pV9hrb0VISu4tTmQbKOBNq/OzZ2trpcXamTlNNqoSVN6tRtbx+G21ajKGfBY2vxJWeS1hRKmrdWWD6v4xcPqpjVwnLtiVeMpVZT4y7U1Q - -x5s5VyCWFZXfHNw1yyB2Da76CptVCy9oVy+rr2apYq5VSmy9o8tvK0jUPkVLtVEZfyo0m9iTjSry3SiJahsV5wrLby5SF3tQ8K33FU5LMbWshJ8Tk0U1S0W2jK9JVaM+1Pc8+k4jzzsfm3SrAanMBSxwRpQwGo6bLQpQ8PVKZpxUjsXFLS1pfG/ELZqp4ripq3wIERQrZn+ZwLPED0dK6tZmiRLAV8CGVAtO2RxR9KwilCfZcADRumwAKkDKJgNm - -IBbI6QyKsYjwf4GQAN6rExGArKFageRSmUgesHe6WhTKcWMlIHoq39gO8oZWFWIe4CTurGRBQpGI8M+4DYq8dLcZW4gpItcnS0QVaJr+cVaGodBa6yQLKuOJHdiM8HZUsFYjRq04rY/6SvPEVfXEUoQ9Z5VzVdKpbtfwyyg2J5KVTWwsr4tVdA3k6myjwrUSu11lULKpIqE9r3hVc+W+tfBeDZKUKqGiWMmoupDsKoDliZMP9XP6r7laFgQY1OPL - -D+K9GpyteHitwyLuqTGBb0oPcEE5dVV+prfcDBwCklYryNAILyFyeWGCticGRoRh1s1x9WhfTmXxXSCHOhjQppECxOv7EEw6hJ1kxgSgmfkorJaBSkjEwCRhmRipl24L+gvzFywUAsVQYPZpXxAigJjvBHID1JEGET+WD7EHX1rLVnMuiGpkcgb2n0VKwz6ysnpTYA9P6tglZKxGDMWiP2KzJE5Nr2NXQ4F4zK1i0+p7WLHDVqOtYZgQE2BBQYqo - -JiWKt+FQ6QbPlcBKgUEzOtvJXM6pSVKTqlEo+FFGdbJir0VykrQgSPcuXElCakllLayx4IARBasmbCgLYDtqACVnStC0Gs6y/FGzrJ5ICUpste08gMVMF57JXmsutMC06r7lsq8vnV2SqigIEi+eVxwLJAR6HNv/jO7GoFAkCBI6pYNGpVg7Lrhuzjsd4ciq/5UTqFUlA6qJaqTj0oJb28jzZPKSREmLlNBggrfKOeq2rmNrIut6TFDdcF5hs9XM - -GdavNQUwA4SsSOyUkb2tmOOKCbYH+AUTklq14Uo4tcJJriJDDkLFFGDHheHKGuB5icp6ZHfQKoa5uCDkckClIGnCWnuUGw0+6AwszWY5mDf4EwaopeIozL1WSxD+VMoAD902ABiADKAChmLifC7VCABVfCCSRCJSQ6klZizdTCDMjyhjFFAUH8xGhYPAE6mJmKE6wqc9dxhzbYMuVsjqQAGgW1Ea2ZY1PNBays3h1JQzSLVeLJBte1ChslPCrfM4 - -CvJPxIuobUIOuz6lENdgZladHVQZ5zS4llaCurpbKa0/Fedq2ZW2OrdCKYK9tFa6h97WHmtDVRnqhXCp9rK9X5uvJhKlitUSDEr3o77muiddxq6I14mq3Rbj4JHtY1oEoGMWqGjVWCu3RfeihVl6qleVVKjHmxNWwKnl+LANWUCSttNZ7ioDlLzC1PwGcq1lQNbWE1epqweVTKLrdZTSjZKxOqDZVfIoZQE3KryVrgrajlhmTkNdBmcaUWRKBTW6 - -8TTxTO69U1c7qedXh8r51RKqhK1NMUvLX52qz1RZa7vE17ruHzrms8NZbi8IV7jT6jVqyoBFS3i7vVHGLuTUVyp8Xvjaoe1QpqknpEzhfLCPovsVGyU5WWzuqzxb1Mc51iZNvZV2qt9lS461U1WupDhU24Ar1VGqmOV8HyqWXE8ppZUbK8nVHzQKUBPMludYj2TxlJPL8PX14pMBI3iqMQ8gKzTU4WtUxXryyZiNL58pikAnh5slanXlqiL6qjJI - -oFhdfs+ehQHrc/jcer/8HXqPj1BjquPX7YBSRbx62c+EF8QVmzP2alYz/OU63niAGnPmvSlRnpK7FzwK5GwrUoFCYWXBqV/PyjlR8io7sXoQ+bFEfjTnEV+OvtSZNc/+8kDzSxLGqD8WxlbzlOJjRtUImxSTrYHDuBYDsprWVzBmtSH3dABM6FQqFSFJxhgtZAM6FLIh3lRsN5tYpxUgRWaFyBFgCBA+gDJPoybvdWrUKEvRMY5CzEx0UrFWFG0p - -XAV9aHPYFJjuiKC7CZQLOYLuQD3DcABnkGrJCS04ayTuZDgCz8hvIP5lKVov0ZdvYG2oTmEj2a3EQUAq1DdEMpFNr0NLgLPkbyqVS0tDuWOV+lZ+A/RXwBiUNa6qzSVFoz8lUJ0vIRUUqyhFtZKg3Vw0pDdSOapbZNFra8z+lDbFdQDSIWZKzWwIY6sj1Zt4JR1YIDcdWqOroxS5jc/VvhqxnVd0qTtZLKy1V24qLXTIL0RELFazASU4rONBKQj7 - -hjeamlVArs4nWC0prgDZwEjlQWqSbWD6o3mAs6n51O+YDLUpWs3RbB/FZIgdIy4JgdUa7A3anblZ0g/6BDQGvgdU8mB0nUNj3Wg8rrwKLgbBspdT+VrHeQ0fswqkK1C0czazgEi4QDyOMWJsVL1xVHkodcDhuWKwPXqRUgRIPUlYN68o1FYhyfUV0geEuvOYn1UPKiZC7fXWEoBpDL5i8rGuCTi2xOcaQ7WGtaoGsYOetcyU56lF1+O8/H6el1WC - -VAMxYJMAzhUlzBNljj1ileBXOCjlTPIB2OrZlQGUuu1nahNpEXEpVslo0B5AegAJywNSahOZhUuVVTRh22mYAIvI2r1HeAZdILFkmVPSU0xClSBOEC8/mRBedQBRUAur/pBA1wpQK66vJIz7cYkC6oqbjoRa//JxFr/XX8OrItdDqzQ1OjyY/nbKpqGY1AKgciL8U2ifyOJxC9HTC0cbrX6yrmpRtee6hw1I/RNHW/uq4Mnzkei0iVCVsB7NnzlR - -6qh/V2rkAfUceqOJdo6jO1ZGrjHXZ4qtVTuK9Zacdqa/V0arr9bZfWE1y4qvyF7tXPPJxK5HlcrYoyb4cv1dl4SIYVksEEkAwB10qNd633AGSKmcUinBMvoNgYm13jqSMQvxALID42SW1fRYLHVycuC7o66orlc1wQNmhbFc1apQ33Ay/rCjRyeDFMaIfNx1qEs09VeEmn9ZsCWf1XPj/nUvim0gBVmUeO0dN9zHodK8gkJK/x1+TyXL7BWpx5Tb - -C7BFt4iOjCP0AHddty9vBhqBgA5NCqBaGGiTpRfQq99XSGAI9VwKkpF/2h13Wl+vYNlXi4YVE+qCgnpuu3NamZHy1G4qfNV87l6Nfe64DFdclmjXuUuQ9UsSu01zYrKqx4BtJ9QFOHd1FHr6Yrj6o15VgG/qCGRr69EABuo9dAGg1UDAbHZUTOIw4o1DWo68KdMEZQmpbdXMcuKV52Qf7BJwN5VXGy9UQBi4jMWtFP8leqs88w2br1YU/esDFX96 - -48VhlqkWW/oJmRcqwTGVnXUznVUBqwZYqxN7VcyKsZVGBtHdQsSxMmjOrgBjzIuBwh5QhcOZ8AYix/iVaZnLHcU2tkgQ+4g400xjxAr9Sk7x8m7lYxOCCeLDBUG5TA2lIGp1yVZTOxGrwK+sV1vIc8TvUsSUZVCj5Uslg85Q4C+VOVBirAWWZPWCZ5yhoY5yzXPXf2xc9XMI2wOukKO4XswEpdXOBal1vSYzlmgO0KDdRtHIu/cCfxSr3Ivlfz64 - -6CC9zRLF1nPETFRMCuFa7LntC0oQ+FkVEgrZhy8HXRA63zDhZ6z+pc4T3dICWPlvnQTRn+bdjaIZLUvP8pUydCslwQJJ5mm3rOSfkB7hmABKgAE9xLJBQAPFcAnSeADPGBpoA2SRIASZQ39zEhHOmLJBOoVdm1PDKEiCIpOCkZmyt6pBPUseouziwSJfoZ9BBA0v+Bexs7auLmrtroNXA2sHNaDa4c1UIUMLzlPlsoOtExge1UZpI6sXDjdZ+IdP - -11jrNFXV+u1xbo6ssm+fqDcUFioZYHm6qWV8crStwQkMxDSgG0/VIVLc3UneunJWlqhS1S0t6/Xnerixc0E0u1V/rNuUH+u9Npe6+GgiVrOxVLivmFWQTWzVK7rz0Vruo7dah6lcVnC0H/WXiruhKIG2PKaVQKdUKq174ppa6u1KVLhQRvKFX9WKYl5hu3qBlXS6T4Fe0kAQV9yD93Vt4qEtTN/d11FYrKvSrHVd5doG6KlJ6MmPWlytSRXnyid1 - -8qqtEWmeRH9ery2vF+jQ+JVK2g1wNUaiDVedkYwQOhtNOty+Jt1hkZLVURGo2qAsxbK1pwq8rVnEhM5d0uF91PJKlVVSWq7Na26z917br09Xd2p5PKPqoFl2IbsqUaMov1b8Ss4sAYb2xWk2qUFKM67vZbRrPvWL+pGNaownq1IjC+rVFhwNTn1w5D4Eur4BnrKkmxSVQ+t6HFjalLsIStTvga3Qh9b0Ww3h7xUMMLDTYavpqvra2+12NW28umyI - -0yuckwizUYaWG3epUCqBGEWiNCwTwwtmGIIlxGGGtgWtfpCOExA2qi5gtlKF9W1jEX15gLxrXbZxSlVB1dYalDTlDo+gMjEBuIUB1GlEsYChAnX7KviQC18trZDH7Wv3IJPhOgQfmVns5tAHZAECItKAtAgpCDWzme1ZWax3w968ofbcCR+UKpJWxYPX4vgrzBHDRc86oSerzoA/l/UFhwOwA3F0gNrU0Xu2vD9XBq9OlCGqUmGQ2uvelMxe2SsI - -ZhFVfAD0uDCG8ByfzKeC7tB2m5X5qs5Fk4KLakLussdS7i7FVtfq9HX1+t9DSBhfLVkYbYw1uyro9bba8ANelLwRVAYvcGPrKz5F8hqxQqVUqYjdC1BL6vAaFDVWfifEGaqnvAq2AQA3mmoY9SUakn1bqqNZWTus2JXlWfcVIIohcDcoANXtRGwjFGyUNI0ZVB/UNpG4WVbbrt/wmWofFX7KjSyUHqT3Uwes4ZDn6nG1pbg1LWSquZDce06zV5z5 - -WxXEBr4jbPapfV2+qzOycqvglYIJRKlUobVHD+GqXtYFGkQNxgbR7WyMq6saB68JAc29sfXuOryrJFa5U+iRqOeUmTIG9b5a8GFUkbS9h9NFkjQSgl/18awjlGR0U4FVxdHUS9ryyvkIpVH9W/6yOijrrdQ0nwVCQJ5ikt10IELkUXkur4GDKeOxGUaNxUZfgjRY+S6tm5fTC9UCRtJ5b5KuCNx75cXSGqqk1R/i4aNDzFuUBjRqowW5G1IsXvKe - -AJ9RvyMfNG3gSwuRP4AzGGfJdPkhgJ8ur6pVcLI2peajH+wifj4XWemvu3qfUiFQrQaFh7knN9QXKwim6PWqutXtWtgdRZlKINW8DvIX6QuruVbIslAMxqLlnK7SqDbMIiF5+G1uGH1fhG0UFQX7V5KgOlAkoWWEtXSIDSC8LFdXUoWV1bC7HTiRnESb6NCUa4pREXl1kXrqxnRervutyMqppg4ayRmZeIpGRHPBn+QWyiYDsJKC2WfK5DGOWzcT - -qVgt11MNwKZVzBqQyX3hrJoMQAGAAtxhifKEACdtF0AUKmgwBTKKnAFKIZ0CEGp9Vi4uT+CSRzN3gHaAUMYEsD9iCBEvnMUVaKAtW5HYhyOIiQin11OILE6V8Orq5f8Gj21XCrylVmN2KseI6vRhrxN8sSmuJSSmgIdLQdjSFzWY6s29fawV9iuOqlY392n6CWC64SF2bCVXVNjMVtRIARRC3b9wwboT15eF8gcVoPuQP/k4FR8fLopScB97hrwU - -O+rNvJjAbFCb3qEVJEhEKdVEcczQ0kQZPjlnRLqKWCDd8kVREI2+FJKVQU+eslYNrgQ248PIcsB3crGz+Ah47oRPJUOzwhmVEXhWfLMypn7tgG2WlBHKzMh42pdAdZqt91la4Qw0PdlgDcaqmY2bcagshSpADwH0ubMNETJyVX8qs3vvc60xllmqm7zdxrOymQGjuVi+q+jUMkowUOBq0y1roaviVwipqJbNDQxVOrLjFWzxs8jWGyl1lWMA3WXA - -EghLgEodj17vLf/Yaht5pUFQQ1VgQqHkW5GpJwHkKgo1V8b7kWtEow9SPKyVBj8bnJVwg1mkgIxDWgJ5pBIWtxrJDaiMjJ1M6CppA/KG3jRyS3eNQigdnUzpwa6Fea2VuobK5nUW8vARNJYF/A78bDWWfxqzNJEgrF4621a7C6aK25XuGD0NQ0kSo3hSB1EmDgfSVwy9eUQMGl9UsEin9C/jrhMKKVJp9WUakRS6AaGLTYeQf6BvSmhN58Bt6V16 - -pKicbAIhAoRhXbGYJrlDWrMQA0karX407xBKVP+QeONaN9sWZz6s0jUZG6Q8tNzJE27iATjQ+OUKlwg9SjDHvhRKaVazA5JXE5FbPB0SoQIFF5kJhzgRpSqKLVDPTQUswwbrcIiHLatWSgOJO1mDWymS/13omf9TkJBkK3OW2JqIscNqq0hbWqc/EEmLOmESY6uBhJjv0G8fLFSXF6gEay4sZdZFm1fzpE9ffBqnFXRF7TJ5VJMqqUC88IKVYsiE - -yEFKBJs5yYKWzkzXUXSAVWfgKOWzrWZYNy/AkNddNU1/1UyBVANVGMPyP/q8NBpcKMVhddOkgIBCU0ygLXJoIyTIt7A/YPABFVAIAAGAvHURQgRhL1/QFsMSpnZvNjlUmghVZqvHC8OewXAS4OBZjnBw0OsEx66p1jbtanUhJIt5Zpi15FkSS4DxLdKvkUQy5OZyEaNDWoRuEdYLi0GYugjIbWpiD1gajS+AUSM9kmaZMA0+vI6jPJijrYLp4gTh - -Deuatc1DJqosWR4Hsja3ahgwmWrnHXBdxRZdja95N7ltTHUtSBMjZ+661lnYgF/VO0wrkmGGsJlH3qThUGUrybqmGw71smLMxBgprhTUJqiaNHVLcxVP6pu5RQG1wecHqNuX5Ug79WyGraFnVLkw1g7J5DaTUND1fQ94rVMhseQJYGnilDjqVlk3EpyjQnjeSa/vkIPV06STVVh66/FG9rEkVEJqI9WMaLrOjQqqPXNCvYxJ3s0T1lHrP15ABvzP - -llSpyVhrLGa7MJtvwIlgNhNW9rIo3WBudVZ1GugNbobRMWN2q4jdu63D1DsruQ2aptADQpGrRVvyB1LU0pqCjUzavSNtEadHWjmw6CeW6rfFZGEMQ3EhuSZQtk9G1hgqXU0RYVMdTmLYv1J+rTZVl+r3yMWc8pmgiFzuCBUK89f+tHz1fYtdE4UTFPukE4UGQzoj8DlBoJs8Q5yhoww4aRQJ6cAgdj5y5INEDSbIWI9xaaP9GioNGtI0DV9wowNV - -flas0SVD5AQPKWeUQ/Kjred8r1UGPwp4CiOLHk44OB0LEq6zuYpUc0SGIadpUFesIEVhm3WXWv5leJBYRrPhaaSua1hxqlw3bcN2pbzkvrVkP9A0776wUkHagDlYSbdSgRy4BHNNDQeDFR7LBgCFmohmOHuVuqCAB1/SsxsFZOtXP2ZBtqOPEt00pPjHiK11GrQWdh3xsUsDWnAUNX4lUZWJ6jjjX9AFDFduEM40mdLD9Tsmii1QIbmuW0DKRpaq - -hG3AXnzeFwkO2ydWIqm5NuGrYLqYzgeTUFKk/FzrKEzD72o9TflajK1rNKfHY0hskZfI8sU1h7q0Tz/ur5NeiqyMNIKby5VwSuTZThmuy1nlhvJVbur+FYW6/PiWgbAfUyMtXpTam+jV48qZU1KcuB2XLK67lmHgv9VjnDYldiy+S1O48pnCHxrOhR+ip+NwQr9KznOpeYTIGjNlNIoGU3marHjdDCgxlyOZGIYcZkDRary0oVLAbqdUUrBqFZTq - -iUNDcblVUJhs7Hl0KzTNyAaLU3KWpCjWPqlTNdobHTXCatypQo5NHlL6Ki8UqH3LWKHAHcV8WLdU1F6scpQDDAvllIaE8b8+UZDQdIR91z502U3EpvEtaSmu/VBcrJ7WpsDxDSnaou1abrhLXEhtLdaCm1eN88a6xUHmuP0YJm5yVkOzWM1YStv1Yxm5olzGaZ0WfJqxTbySjm1a0Y2OmrExm0ZF3MoSl4tmiIRptWqEEys/q510cejQ4uIYbDi1 - -BUkwl5qHw2pBMW+E9mAQP9X86rWpyMMCYkNhsioA5S8/iB0GsjeTm3GtkPl0CXCignjEYFvnLXHDVuENyRBJGTJkOZyfhSgXJCJ8cTymtShSYLETAMkJ5wKmCpuo9YXocToaYosMimMZAYfBh7Tdrsyi9SaXtcFeis+EMSHKowmCcBrU24IGrWuj5EDShFIEMZAM3SrTjlAclAZ/0RjCfBvGMOxyh7hb3khACFoD0lJreIQA7IBGnBFoCLQF5lKs - -AowBcyG1sPPYCA2ZVg8e4Tj5wFGFgn9QIyOFpy700UiTifMf6rBNbeAcE1vpuIZYG6gENwbrc43NcsdyTt02HysSBIiUf4xo9KMoQ0oEergzkJEtguhWQKDNx5qsVVsyvrjSRm0LNb2YMw2eOsDDQPGkTlDfqLXTOZrppVqmz2VvE1R40C8uuqtQmmuAburO9WAovVTdXCIXSgib85YRM2ade86s5lfeByIyyho1zWFrLXNpzKwMW65plDSv6g3N - -OCaySZo/MMhaVQ9uFSQbWsbwmy3DdOHR4WcDqFgqVJpqbC4c66MYcElAT/agTZk0mxlxBbCDyBngFmZdQMISSgwBjwnZpxTAO/eEaId5TKOxXZHRZGWDDNQx1dBngQUHFGPhk8uWXoboTVS22NzYeKkP53waWpYttOhpdsmwR1MOr4aXSfTSgAB+AHN7Y5jHkFzNp9AdmEgFYdqSTVs5tYgKuayFNmXUuc3KKszdR5oEv1BIbzHrwhrdxZKGy1N0 - -oaYtVsZuwlSpGy0NkRqs9VeOsMpUKGlVNQrKpSH0honFeoi1SN/7LjiVdGpRlZJq/oV6KaUqzTxpYErAmSeN6/w2eWvovGRatGxOVHlrwMX8ms1DXzS0gNPsr5lqSQEvzbzS9tFfdqjFV1xKWlJuayH1FpqH80rIuvzf/oJyNV7qQWpt5sMgMB64zNu+cgbjwJpqaH/mpkNfmbY1UH5pEIqzasnoisr41W0ZolNf9anUkaJzKqmcQO8DYakKXWLA - -JATHmcSTLucQoZ1tLS77rGJslUTocilkBnFv+AYxvU5tRYBtSdZrqWoXZszVJ7XZAEH49nVh2coqTTa6D3NY/I9YZdqgabsQqdRYXV1smZ2MyOUm6Ig3SiD1PtYV00uusg1MKqesNZsZHzgmTXWmImQ5tQ6FUQmHtkU9IeZGgXYxYBvSvwpSjitB1iW5/XJBoAZ2ayASYizgBuaD6FL6AFfpThUm2COHbAHi3xJ5cnlKksayeA/PBPcETAb9lmBR - -hI2aIrUjTCaoJ1c7ric1bJqzjYlRHON36aBXKuQA3NlR6l+o6yc8qIkeDiQObG2KGGYqcaVs5o8MBzmnANO9K6I10iNkiF/mzK1QeIIs1xNLFTa8m2LNUXdyI3b4rozS36yrgGRbFNUAJo7zbLSrvNTPKmM1BCvQTf5GojNtEq8ihcZuS6Dxmw0NysqXmE0cqEzegmnzNf3LB83GZobdSJmufNDprec0VuoojfuikYtbpr09WsRsyKh5m1AtAEqX - -LUHup/FRv6s3lyzqIVWWLmwzc0WrqUBVqWI0NGqozSY60jNm7rThwZ+v/JTUWrvBAWb6TUZupeTUeMelVfoaUnbwZpk8XSqlfNzEamSCPFsKzQ8o8FK5cB/cCYzEKZlVarY4DwlarU/4kbTXFxEYS3Lr0Y3NZrR+rQWjwNLTMoaCsFtiTJ6I4VKbkg2C2IlrhLaNmiXIpOt1Fiz0ykLaFVaqykhaQqozNlpZKImcNp3QtYgmNWRSmnS8H816ao75 - -T2iHysFNM1FCWQIRdalM3xQtG3JupklYIdDcgvUuGdmvBEoMaDzElGmOpW9o1B1syrEtz9NzGRmwqP4ORornABqxBoGDAAZQAmFJLfk7VzlsgnG6bg+XBgI3HqkTaCFLHgZFpzl3WDRsYDX9PQu1SIauZV+FrA5TaClCNX6adY0TlmOAAOnEZeMNrqnwjp2CQAbmG85FsaNvUSKtguiKU22NWKr6M1t+ubXOlq3i1pRbkQ0+hs8LYw9Zi6RjqGI3 - -Rmi7FQsKpysBpaBZUBlvoDXqm/VVA/q0i2CyrDLTh6zkNQ0a/S2GloYzY7GhxViao9+BOHNH5NLhS7KIiBhbxcTAB9E4Gn8Sy4dXpZgBTNINSlfBOJdR90Jjktq4BMfcT5Qpb8iGHpE0AEIAC4ABgAZmanAAfWGuqL/6N3580Bn6UwAPranU5jqF3cTBXxyZNbJNHN5/JyLiQrwGUjs9AZO4kbY5l6WjdTX7i+zq3Dr1k1QzOEFaH60nNWsahzUW - -lpPREbAIX4R1VlPq6Oy6oJCJCuNfEDkbWF2pztSFKh3Zuxa+DL5yvGLYHy8Lpombi3X1ioQzWisZctfcy1y1JMqeLaR6n8tH5aKeVfltT9BDADWAlqBMBD+zXprMUJJmsE2btrClNjOYoHdbTmw5U7CCjlTD2vfxafAQekVpAPcNALgeQUgAYoSIJbEAGwpEgOTQA3sb2QCEAAPpqCI4YwRCBp4AEN2rzZSKCONJpqshB+dHoVUc6vPAEZJfRVfc - -QmdZ0gXLgk3xKuVghJ7NYdQvs1AbrOVlTeujFYeW/n4zkBssRfDVJ4W6Cr0ZB304MlF0vQqQkW/W44vkK6URnNsNSYKoo1DkbGJHrmobpbe6p1NZ9rzVAiepJTZpqpFNBYaZ81tCp4jQSq4Deh/hF83Z3V9LUoCwzVvVYDQ00Zry1WjAKJ1fuKYnVa8o6LR5W6mANoa7lWjCrcrZX6h+OMMA29Vu6q3RdZWueNy5Kh5WRqoPNaFavuh/Hr1srssr - -tZYsWm91nOa+ZXc5qH9U/qaEV/rs8MVjGitEHHKfENpsrzAVaaoicQKxErE8Ka2NU6qsTlXIm802lLKKsJeprKrfKmgxYfCaU3kQ0jeTfwyrNVmHr5eTYeq1NXkWxq0DCb8A3QQruLTdnW+N0kaH41fKxcrR2sDkNupa5BDf7NiRYgGykq7kSkfXr6o1pvjmoRNj999/XxGpSjRZ3WZ06ubT/UUAiYlbtWhi0+1aSsaLwvhjQ7tZaV/CTVirkNyA - -tJm/H5xu/NNir07y+cd4dKouvh0Ovb8yJHNGyuIWRkZd8tnLSCJKWfZTGRz5pflmEuNNBTLsUVFiQVxUWMpkP5Q1IdaptYU2ah/SC35c2q7KyIhL6i5iEu9jqcCif6O0a1sUbuBqAXVK7KVyv9J2UBeK09T5xEHWYPUSSm3ST9BYjAjoYU7yyBjJgGUAJoAagQJEAf/ryUFvVYMADved6rBYKWiESDJ/AATE/ioM1DtWKHyOI0k7mkn8NM3ihvCF - -kxfHUN/AqvXXGlv7NXuWs0tntrVHZQhTIgLjiOIOHbNdsEjpy3YODABky1yacNUYcvQ8DQI+1xLNTCaUvnOO9Rhmn8VGjqkM3pEpKLZmW70tMpqi7W52uO9cZW071dEq39VtUEaLRd8cKNtk8c8WN+tbrBX6pElpX8RWXr5tYVcZy3LVwdaUYZI8p6Hlk1aFN2eqvvU8BpF2Xd66vCQ/4ci2+1tFzfT4df1ukbKwzCLRNlTPqifRPhbbI1pMkY1b - -pmpo1t+aZ43u1r5zd6ms/NglKjxUWZrRTTaa5FJUcqg1VvuHWFayGzYVPYqCoLeqpjlQ8S2w2I/rX/VFRpfjS3W3utt5h+62FRvH9T1WsRNrdaPKFggOkhoMza/gEztmxhIqDCoSV05wiCIxklKxpskFgfZJjiHpRxq4c4XYOZICFNu9nJns2VmgSoWw9BJ6UI0+UE2Aik0hrtAnZPmTacHZPzhaWV5QmN9VdQzXvmrVYYf7CemgWic1RJ2PzVBS - -hbJ6w3sGWyjewzGcGS1V1bsb0ADj4TPILCADgIMqg0RTxAAleBwANrpxAAomD/2WIdQbai4Q+qVycG9BgdVla64wgyCVGjAElnQZTqW8j1fAbc75hSvilVCigStUSSg/UoAtfmRrG4vNpSqfdUq1vEDhQgCvOJmj7OkQRmqjCv0JTsWNLZL6qVtbEJGID0tGZaYy1cyvLtZViuk1SYags20hsDkjzK1hmfRapVVQpzktV3W7NVPdaBM2tFrlTRki - -wANLQr/2HChpeQk+m4fFduF+I0kNokjbmE5J1hyLEvBZmGIbXh60htlzqIUUoosilXbK+Mtgka5nkSBshRfIZLRN+9L95wFqqUVg9mz0oT2aD63/8F4CsjSsr8ggV/+C9cSazaYm8mtWS1Aol6AnaDQfbVUY/KRKgLz1swGT3cMcuRx9lXV7lL2tU/8iQAyt4uaBbAFIxq9TUc1NmJSrFueFGAG/kR3JfXS0qiTVmQIIm5JWyqqEw5nYwBmePnMB - -3VdRbp0UdHSpTQdIBVigfrcam9mrobcUqgR1jDbRA577xCLcecudhm0bZ5U9o2EVYd2PJeDeb4i2qCtKENhMF/xFJqza2AstrjZn6trSada382GVtxtZim9jN2KaLa2CWrMFXUg5uNRRKSU3qqwzZGhKluNslrctVnivyLa7WkkNaoJs62YbJkVcoqnnN2Wbr43cZreLQUW6jNHHrbm3yKuqqOkCTZAYlrmVXFivDZYRm72thyhMi3haor6L0pdm - -BD8QgW26KvWbUlmmt1s+5B/UEBtXQdW67ytS7VZG1Iquyrei2jt4qGaZxqbNrx8YS25FtWLby6bLypk2sEva7ynCBgqorsUJLdfwZXY8HxZ8DlZrYmIyWgNmeExHRGlZBU4jAarltynEdui8tpYBJvC8HQ28LYBDgmuBSH0AwA1xCh/NZbXVaZofZISwiKBa5gTKEZ4CAa074dcxpSjmqC9Jc5cWXSm3AkcWH5G2dsxCfGsUxggRq8oHOZppbRh5 - -YoSqVydAnptgSVOAA90TfMpGgUJHpc3PrpGwIrbhkwzVgDFlCCM2aMX8B5RAJOFikFptlmbnTUAcqmLXltIQVVoK/CWmls/TcrWsQOIRb7fk7dPiwCYCKrgIeqkHl4gXsoOt6lnNQKqzcVJFo0FZXS5N1WVaUi1MOMfLSEKpMtsZbci1mVosMo96hWVJVb862FWssrSFqsttQWbNNUWhvptWgWoFNl5rHsL2OqLSK0KjdGnbbTjka03PjeXqlAta - -VbpTUdWkbjeTS4KNn5i5o3ltuZbILmrMNFHKba1ahqiHGhK6Rt0CzK23qypmLaZGqIsH7r223AtuapZpqtdtX7qG20gtqtxZJazdta9SwVmDYq+jX9G2Y1HEpig325tqDX3ArXeP4o6saR+zM5N4m/uFMDrq3lLcI5OS7m56NLVqK3k2JocMLDsvg5RcwOY5HiM5ORIcvq6t4s2uLFJqAJP0LagE8xAMolTvIPIKtjU2c6ZQdCXlxigAH/BElpU4 - -ARqImutq9TMgGJYWl0lITDdNLtCROXxhAzQXpipBzGcLVG2Wtqx0hrFf4p0lYF0ZWNI3qeHVqxpD9fQ2gItw1VHi6O4KPLcZpV0ZQLg0BBacHj9ZH/H8K9nJ1C0MyrJ+I0C5ZtALKVLm7tGSrWRG7DNpi0nk7bttvNXva75t2ma8M2V/3ujl6mouVRmaaxXD5rIZF3KxOtrmazJJV2qHzRJqknsu+a+gzmdpALfJy7f4KubPDRx1unzfW24zxjKb - -740NIAFGO8W+0NkuawA2ox3kbS5Gn0tlRa180Wyo3zZp2ho1+GaZNSjxwVTUQgVMQZ7roVWA3yeDWaG0ytUjahhaHVvW2oThdM0lxaVFIqhs9dfqGuMtpnam1aq6Vy7XqGhqNM2tP/WcJoCdcqGz2QdHayu1qGwq7cvSgmctHbVQ1euvZ9YkdLFIshThASVpsRGtWmp+cfjbj60BNsJgOE2u6YkTaUdkA6znpsVs6em0N88aS+olR2TN2+1B/qJH - -UGi2vNkUPAuzJKhhSTxB71hrEZ6p5ZEFyKpVueoLxk5k0xOAaDUqG1nKXdvWcrHWXNqYnAjvMsWF4CYyQdZqTzAPcIuADeQBYu2IBt/TSTEGomWNbPav4iKGoEdmt8MsbUCSWKQQs6hCBTIPqlM26EihLhjqIChMTxiHySMUZ2nWpxsfFtn8sNt+MqQkroAu91UM29bBR5a9Hk7dOcDe0oKN1/t03dLnVz65Z0YDcFJtbrDUrNrk7V5SHk1RGa4L - -p7Nh7dQrAebEPYMt9r/EtsZh3gUmAFwse/UoaW6aBscMF66dr7a0plsapCP6mLt4kRdRHkak0bVwG5gmU5xiW3mama7Xl2gXNYKbXO3hhEQTeI4aSw8Bifoa9tolIOk635FbUaKgzsptETS3W/qtY3K4nVXIv+RYkizatBubMu2K9qrcBHouctI7BUixG9svJaAmgp1SiagQAqJuxZnWCR/FlilQ+UkYkF7W1W4XtsaseK2jIrqxUvJZ9mhkaGq0 - -vMVcxSYwdzFGDBB82FVoZ7SlhEGONDh6mY/CRw7s+6+p13KA0OLKyvGjVvmvKlwqtEsWUQuSxWZi+fVuOajpIc6ra0MkC3GAhnQJa3cCvwxEC632ocGwhrmzJu7xUbylxtOEDJA3uNqE0WNIenW+apojDJDX0bXIREfFEYKm633NoZ0Y5awSlT/qmWWhdrDrZW4Qutn4rYPVz5vGJcAWgztlnarNVnNsapZc23v+ebrKuCBZuPbVc2im4m/bW1KA - -FrfdWBWt6WNZaltQOrE4YCkms8QEe8ieCsXCNkFkm+VRKQkrzRk2zLLWQQCLcSwbOmaCaDhSFSWlCYKz9sATYWEq+S9mmdB8URVURCbSDVk6WOVARAIRs1zppPVbaS3Bu0JbL/4MFr9ZtkCUXWZTN4agdsVXDv96HKw5vUs3qlluTRPkzFbO12b6tgJIFSmgCodKa+Jb6W3V0169p8gM2NshgsbKUuRMWDQO/gtbRNlWagil6usKlUSFCtBl63Jo - -ghLIcgMvA5SaSk1COBv+vwOuEtSnF+mrUtpokgGjQyg2KRZIBRtN+aF2QMpNisyUHV3Gp/pYluKAASfYEAA7BQoANKMvPsWvhK0BHh0qAC7aBGUA78vMzMjwewoHmKGMmKBkxCyKn+9idAokI2/r5uZzXBV6N0mAXVZfaawyXF3zzSlnX4NkOrNY1K1u1jV7asxubuQNzY1UqUrWEYv6i+2Djk0XCSJ7RuY2PVptbZO0tAquLQW2p8tvqaeMWsaG - -ArSi2/TtvGqhi2MmlXtfZ26VNgbbJo0s2onzVuSwMtRfLrAKpYHMjUh6gOh6vaHb4EtxzzZbAcftShEXi1lDoTmNrmsDFDQ7061MRuaHZPW/Xt4G8PC2lDu56u5asftAFa8h1oppz7XwKX/1tirehUTysitge2tiNCxJph3hMvBbTRKu0B0Chsu1w7hn7ZqatNlwUash0CBjqHQvq3yt7laq/W/IQa7ZgQOhNWXbth3E0XCrZvSyrtZw7EixNDou - -6lcOjhNejDbh02OnpDXRXQKtDerJ9XyeQSjacS1LqpmaMA2qZsL7efmunSHw7MA0av3lzUvSyAFRLNmE22huCrWe5dLtktrqdwwjqCrY3qkdw9g7pJURVBBHZVG2EdqI6XOjojvCdTbIbhNAI7zM1FhslgiVAP/t8AQCGGkcVcBV0AuqhCMiWhJZF39YUfdWV1Q4sD857wvuzYCNCVRmFiqa2f1sODIKok1BchzetWfmQN1mbrY3WgSb7Tr2sJdY - -ffOSUdfiagk3VwLs5fNAWzxyVDro2ysIj3mwwcINNWqhbU8BTievxwFVBo3w+Aq6jtCbdqOpVBho6jE1BNtK/IYm6LiWkhYuLx6goOSPc+tNrV1bYmTOBWCpdwFBY0gRHDln0GI0v7mw8JEAAuFSPIEMVufrTCmF+4cqrLJkZ2ck2N/crYIXNxvKE62aXaMZIBUkJjDJHI7Yb46yEdXCaRoHfxr5BazGAH2SPbxvURtqoReJW4mV/g7LS2fROx7Q - -AidUQDpMmxF/rSRDFEO3oGQjbEQ0iNqzLV1sR5NmLauNVnesczWLm26xXtaITCQtt4lb5241NBGaAjVdjstHlvEdOVDzqnJwysDxtWpKhbeLElxBGDhDRbY55Ecd8PKnJyB1qMte+4uVlnfqSUj71msjcj62ftdw6M61eZo4lYvGiyN+zbBklrDrGtMwGkkdE8bgu1hlSr7UgGp7JEpq2x1UhrUXGL24VN3AaJ+0sKtA1YG8yANQAbu20zuC8rVc - -qiSVEI7hJUvDt0NicO1MdTAazM1wjvq7dcOxrtHFDzx2QTrIeYpNb2Gskp8GH/iWqbn5EsLiaqCH4XUHM2mJLuG0dY4se00RJtwsS2mogt1zsHOAQm1dYTnSa3NbiaKXVgvPKDTCSQFC7XwqXUwkn1HcE2y0dJ/Vjw0CfLPDbknT+E4f8u8XjBRJaIj3XIwmLFYXmpKWTVHL1aNOLZblB2fSoFrPEAILqcABbgCmjH24tzQeSdLAj8ABZoMMsQL8 - -KfxkepMPUbGgWTaYheFAaxoVAhGQ3TzUuWpxt6ZbdbIveqd5TcKFjtglaiLW0NtvebmOyb1ZObpvUU5pCLa58+b1spEeN6EON2wVOQvE6uq5qx35cFrHWs2/8lbzatm2ZVuLbV6W/ntIqqBNUhUtWLcv2wbap46grXsBtpTYKyrPN4E7iR3wTot8rCatpFZiK9c3m5qOrRb2pL+ZHrrG0mNr+zFb2y3lWmK3kVWNodlaVO8qgSyaXkVz4qUIRMUY - -8MAVDosF25o/NVwaUP2w1rNt5L604sWuTL5R09jchIoMJJ3MpiFmszqjr9kXCSnYkey05+gwBuaBtAFMokW2C4AhoBHHxxUzYAOvsH925v9IuQURC7kJuvKh1I8AjoDIqBsSqtYbn6p47r7g/Du6NfLW0StqPb8x2BEskrS8CdF5zUJHihKu3LHUjPDWAfGZTxmgZoNrd8y4I00nbE3UgfNjtfkWjDNP+a87WRTpRDdCK7TtvPb6x0O1uinVXWwk - -NkM6cVUNjqyNQlmkgNxbbri21usSncgYeXtQYb1K4YzubbagWhTVOWqkC2cepQ9XCa4J1hxbYZ2tnw3jS7KtTVfhJVO3eUpsLDqWl/NDmqZG0LtuBnTL7Byt6xaW9W/itY5fJqyYwnM6+dVxTtALYhmoGd7aLMw3FWpT0TSGnMmrrL49j8Zt3bUYyrzVpqbnI3QFv8+su2iROkBbfM2CfjArWugEqwS9bxrrpqgpLTcDMgdaA63JQi3gB9FsEtSI - -0JJMJhesxw8EvWdRY/Ew8cSgRnpLWl6skxB0yOS2REVB5rvko3J5TJoQw9jHUkK7XHLgpSDf8y9MwDnRDAoOdq6xjoVQoAwEN/2vC2bZBqECEWyh1qJklAoHeEAYIWgO2CJDU8tMF0TJJ0zKrbLQz0dMokgAXYCBciTlokAUgYCAAAXbO5nmAFnQNBtY5axgR5xyPcpOaP2FrViwyA4DgRvBgIcHVKjcxq3aIvEdokKoMt6aJLp27lrErc5OiSth - -Y6jy04Ao8ndYxGSIjSEOG07oGqjKEU3jWUQ6FGAxDrJ7XEOgRFzfq7y0iKWtrZbW/LW/ebcm74tueydd6tId5Lb9HXTtvMFaPmrLNEnt7LXkZo+Tbs2sfNhM6/K1HDvXtcu2yRl3RaP40qgObHSZW1lVPc7O50RTv9LaI28fNnQ6eZl0zqrbUJqj5tbRbuI0xVqjuPvmq8d8/rkZ0QLvXdS+Wx1NgWqbK3mcm/wCfm4+dYLaBx2sNxWHZlee1NZG - -bThxvztAGp3KqBdYKrQZ0fztKHVsS6MtCM7oZ3PFqKHa8W7+dfPa96V8kpaukf80rNLLbvAbh7TuSt6zW2dgpxJOYLpvPsatUfB24MaeSjbCUQrXv4D6SIT0FJCqURwLfJiU+xJ2tKrW5CXgHaX6K/+unhpxUpkEKlopFGh5FHo2K6/+EULd61TJgzViIsAPTA7CjA6DcOVyp/urE7k4mJFmZymwyqFWEJ00XxHSya0cdzRc0ThVUd2BuFVkg2hb - -bjXZztTIQz0NY+BqjWQBYXlPCXFcEfCCqhI9zWUTqsVb6iyYa9NUNXwhxSfKEIR5IFshhIRqfUogNYLRztKhrJ/acBpfHRL24b1tk6aG29NocnQTKsgeN06gi13TssRIcAB0JY87GEVjQLscHpHZPJyQKZGAMA31rR2Im5QK6R03LVxqZ7beWiu10Wb+aaPJvhnfRG9UN9kaPT4ULt6Xe6q0/V/qa3TChlqvobAWsZdJbbf50lUqdNY5mREC4y7D - -7VWBtgyJRGmUgH+a+x3rCDnHW3W3kNXfqyyJbLosle3WilNTfkpe1IN3OdcpmHvNfqaHiBZ9rgDTAeHsCxnbvI1phqO9YpodWd/RbK62oBsKJKlWtjl6VbXI1nNouFhgy+fteCkV40+RpyNSTO6D1O479WVzLogFdYqyftLjLDU3yRossMJiiod5AbhrbnTtmoWqmo/NdmbRJWh1uGgKP2my17Q6Q60wruuqhymvqt4G9l3U9Ovu9WewOCduI75h - -2QrtuXepmsUN1fa7x2ILseXZ0Kpat3QqtM0ZVsSHc+uUCdIkrcM1tup5wESOrOugI6+V0xhoFXf8OoVdF47sy0/6sRjSBpZGN3JzsRl+QqMhdNavalH/8bIEsKzmmUBjV/p46qhCnzSrQ/qdUktlKI96UkGrsESaV7fiwCT8HpbgCN+yF889TZK/LW1UVSAiPiKUYkpuHJlqmFWWKkB+4R+1QArPiprei4nYau4tlaUTEYA6rq9uQGujqVQa6WHB - -kWjLOT1UwapKiTvnkj8tiPtrIhXYuDwTmkBviW0dKKjo+XprsDW0sj9KDsNM/ID3DmGJtAESAPHUbmg1TVGdAnhMaAOHm1uUAaAq52/GqwHCXHNDxL/gIepQxmNgISAYbgXU9bCli22qnQmWh9NP+wze0FTvTctmO9WN/TaP00l5oj9RIK8vNiESBXnh9HUMIQC3S22fp/enpitGhapW6O8TRynzn8S1WbVMu8KdkvaNO3Z+p0rX8mzGddbbsZ0C - -JhpDX8uvodVfKpU2PNtxnUiuiutLRbIV1jDt/XHsO07Qug11l3I6Dorrymswa5Ub2/URlvL7saGpLtknrHG1plr1LYWafXNva7x3UdrucbXlOk/1GXaHcZj2XyZursY/5RN4lcz0pW12og1BzeUtQkN0pL0pvGc8aZ4FgwntTTVLeeXNUrbt04SFsW5CQQYQUJP3Nt4bNUkEDP3IL9obEqPQB4JZRgD2AIQAOqB+aB3MqGgC9cvi5audNa6j3yCW - -yGjuCzWJd1vgk0pnRWRpLe3WgNayRbvY/7GfHVAGzJdm5bkAW5LuahSj28Dlg86Cx3MNpCLfKPX21mcRYtnw/Pm3E1TOAp2jgqZDzrtLRbTiPQQv+B5BBBTuIXT/O8ot266f3W6VtsULC23ROh5EQWqzDrFXXcum5tUVbPU0xTu+hv8u5ZdGvbyZ0eqtSHY/oOuVe1bcEioLqkbX8u0Ddu7rgt3Htss5eVWrI5xaQyZBQYMc3SKQU1VTKbxUjbw0 - -3NUlujztLKbdzXbNvSNRVW2LdKYK7I2szqfzVuOzPFS+a1v4KdpEiqJmsBNvEaIE2OqsVnf/mkKtp8a10Uubtg/s/O2VNaWYxGWNuEBbYlWvIdIC70s2T+tIWk0O0y6UvKb0AlDq05V/OzZd0y6LN0dDs/nUNuhdtI27lU1eboudTZu0TgcLb7N0+dqNTQiuuN21Q6fLkcRu1TcJi9Ld+RqG0zrbvhXeSSIetPqqDe2ysuynbui6yV147WLjEJuI - -9bMKzt17SKOA1fju0bdsu+Vlz26IA1Cpsk3T+O7/VgwTDAUItKPEX0G+yFmZtCRnADJbub39Y3aFYzm7llh0r8R1wt/l3XD5hGVPw0hWGFdEVWdy4OquJyV3vySWxORGkF9bI7z6nVJA5Hdxk1Do3LfCchemmrA14O8xIG3LLNbKbvb3xOaa+vgbfHvrRrHM/h42K3UbBmpOcRncmd6fpqimDP8vf/uyK8X1PtwgL5siqwRB4m0DsL1TyN3jAIdm - -cr4GW6bCpkCS72kwAPmgVk2KyrDsTOAADQOWw83+IsAxEIw5Gw2o2uuLKttIvHA9HToKoAWy72yEizG1r4r2dasmvi8dk7ZN3Vkvk3ZG24dduybI/Xl5txiZDavqQNYZu3oX1yjeG7lBOAzOaAvlWxoQkSbs1pd3Ldt50bFtqOPlmvZt87arN27rsFnbkOo86nZrIu0GKvbtVvGqdtqXavt0Spre3SnuyLdaXagN2QbpRJarO0b+GmKGp3W8sz3a - -nqu3tQCbXvUTQsCUfnu/ZFxzrUnVIGGN3Rfss3dKkrTnXQWMN1BaS8eFMVC0A4EMOUTi08SaZLzJD6wEAjgrcQCc/+dBbPA3X8DpbVXTGQtQzLvRHuQuoICzWKeQeOD3Ea3VDOmRfc6AcbQA+JLTzEVupMjUc19T0zwC5lHN/k8i7yQi6jQHVn8lxgIuuXEItYKos5jOB+TbM6zzagw68V0pPn7XRx2wdditao21+DuU3aWNWqcShJDjLWwEQ5cn - -8vY4CtlGny3nIzbUua78J5Jq/p3x6oBncFO1OVqRa8W31Yuy3S7Wkt1JiqED0ofJObfzOlGyYs7r1QAUFfbNxSvuNjlL4u0wHt4NoXW0rddjJul2Xrvl5QQehENssAbM3xUulQJQeqxVtQ78LUPrvoPSs66qgOOb8V1/bsgSeHtKON4bFA2YPazYRWJzapmDgy42GLppjYX9iCq1zgzsOL+UKqZkSW/AdKMRCB1WuTk8DitU45zlMeUU7ZspgiNX - -ED6z9RDtTi7qznYyUxNpX3x4gCh1XpoHQiDfkpwBcL7VOHLJOu3LEAR6aON16yGCfEksQap6FdG11EgEMQSjoBmM0AK4HIdzvdQjDEhcdim9Zq3dNtUecJWvptE3rCZVRiqU3TG2z/dbaM1N3rEHLWGhq+nNezS9+Abnl4bRn8xddRutK0X/MufOWuuqOwRbboF0wpvFnRGGzdtCs78h3l4GfjkUWhBdEuaNt2H+oyHfW6jZKF/rujWoJq/Regmz - -o1hK7ut1kNBPXQqqrYlMubAnCyZt3Hf/Ojf+M1bej2cHv1Zooe3xsWxxAJzPwuTBaG6bXIeqAa/AhWDlvizsEsgSgJujpHKQuBurSKPmyQTTIRtqiAEJsmEzcDMaXY24CuybegAWyAcAAY5pOMJwJGx/ALKcEtBOn0AGIFbaK2r1cWUO1iUwXlTvFIKGMxeAXRA0oG2nXZ4tj61SLLMzwFJ08mmOlQIjI5HkCWGuk3UJWkdhIR7HJ1hHrR7SBHC6 - -hlpbBsmu7pUWCaLLaBJ78TsK+KwPNhEsv3drpa2ICyWAyPSRG7kOvgSel2t+qindYSWYdsCaOGUbrofnW5GyRlpxbCD0YptmLZiTXI9iB6UtXYtoXbVbWqFtttavm33NrizS82uu12/bmqW79r65uuazA9hYb/LXgzr0zAF25Wdqw6Lh2mmWK3fCa+2hujboV3vjuGNd8OiYdF061xWs+rp9T4KFytjzroYDErrfjef8Yatf/YMvyihriRZLWpld - -MvLYuEx1s6EmnurRtNHqyE02MsXHYx6zvtTfaj40h5SArQJ6g3l3WZG15y50VPZ6ejml3p63T0YspvXUt9fXlAZ7u+3p2V31caq0M9jfbDeUMMyxhlDGzYSvEDqqlG6nGEvDrFSFZb1wBDaAk44tEK+mOLh9aUHEAlOCBCrda1sAhqR0heQo4vjrX+t5KEAvXqcx9rqmiVVt8mIbta8rXqZmbOvyhcVgZD2P8GanVMqDs9bEwuz2zhzUIShMNs9g - -h6CGHitvIBO4CsEttw86uIoxvJ4D4qhYSX14iCgsnCjnc6zKl4t7xTjl0vBtbNdmDfAWDSD+L7HsybQra5mNFQALgDnsuthuLZIQAAeRLGH6AGB0WDwFEAQXI6AHuEGhIDGwMkhwn9VMDl7W4cJp4Z3FJkN5Y2s/hB/ArGrJd1Daem3BHryXXbuvMdim7bp3DzqkrfQinbpS0ACrC/MrmbMbGvZ6/616wFE9rlFmxa2IdWR6Ke3QkUJykrGpQ63o - -6XMrmHpIANtASqc3xlDfDkfR3is4AIGpgwBtTnVrsMILR9ZtiJxTPqB/DtMQnqlATdp/rwGSTdJcrQuMtGpsZ7vT3KeD7nZx2gZt2caXlUf7oCHdmi8pdwY5qj4seF+ohJco+AkVg9a2YnoUdeBmzOmJpSc22aVqpNdjyWk9I5ibi34SsLdYFayw2unarl0PLoRTSjZKM9gcqu41ELvYZD0SvA9dBdGbV2dsR9RsO8D1wUa17UCdyT3XJyGy9S/a - -nL2M5V23VLmhrdSjKvuw5DoP1Qc6lGyTjqCs1t0rQXaoqjBdAHrCj0xhtS7HT22KN/brwu3RXu2MWNW0SNYp6dL2jKMq3SXuqjFTbbM82ArqC7UTO++dkHQMr2NDpoXeNu0DKLxaUr2cJ0/XUSm8I1Pc6Kr2JVDVPbNQhV+Ly6FG3eOj8PWry4o9tHKoC1UZI4vRAWurdXV6NtaP9qVUbFC4VK0fsKy3dUDHpt6Sqa68E9MATkjqwsJSOx9STuIJ - -cQypJvFlfKgm2kI0CaRyEttIUCbZl1frow56WujEsXGQwMgwQa0hot017Ks0M/sqp16WASDF3VZsMXBiYYXqP1IXYuW+U9rcL1j17MwIylnBMcD/dEtP/ZIB2KLDNZmkvWWUW+kwTDwOAs4EIymltYrFRUqBRhduO4u6ZV+h7KN1k0CzoOdM5hiD+5RAAHkGGslAAD+8nNbNAAzgFHLdRe38gqZKSuyIlC1nLru92Q/OwREDYOAuVXjJSL4tOboY - -l6WkAnbQmy3d8EFwT2uWKAvRI1Jyd+5bAQ3FLvkJIcAYIpAnau8jHSA1IH/PGpdnWDYL2/vLaGfM2s/qEFoNK3VorUvaQelA9gDdAF3QYoPnS2Oyut8C7L51XeonHQNumhd2srxx1pXrc3l5e3C19J6z20HLtMYNduome+C6Hm1NiHqPSjKslt/5aUV0NXqn7ezRLYtWC6y9mWSq7dZWTZq9gXaNOXlXundfZexo9WQq0sw5Crvjfkavm6bl7Mh0 - -bJXIPU4Y0bdyQqO+j3rrrrXCu+j1QJLcV065uAncckNq90BKa602WrjvS50X49VN7DIaKRs1PbvO5RtNSL/j06mpE3Wz6metiTbDnzBgyRLU6sBEtnHc4ATSbQlIOIO5NENJaYNIHQSxQthMXg9nLa3Zo8LoOQKIewL1Rb8JW3jnqqtTKoxiwHI7GWh0Snaist25oN4BVLo23LmpOYL631EMLqNnRwut7PadwZze3X4VfXWZQCMGIGrY95iwwTDu - -GCKhsMYMNpWydWsVCWQe4dfrMlcPypLIAAzFH8ePjLOgfLiomAHJu3gq09HKIxHYUAS67si5OY2A3dG+FTJ3/rpsbY2nDFdNkw+L0v7oHneze8nNwRbP90hEp26S80Pt2yv1RJ4Qd16AT2MZC9dLEVHUDtqyLT6m8o9at6l23Unpj6QVW2QNrLhoo0WdqFnRSXbudZC68qxynrJnSyGk29Vkr1VIIepqNVeuj9dT27cp1rivR5cfmoxtJU6xQo0H - -v8pZjyv9d81bap3E+rYfZiupw+s7tZsbzu1ieiaOkJtZo6dR1SPokfQaO2R9vZ65ZjdnoHPddw7xMJsAtDQWbxpkFUmNAZbTBcpDQ3sZjWA2g89n5BsACuQgJIo54Hb2T2qw840OztyEmjN/chHg5CiHkV12NMU9Ygloh2FqNzDcLTbeE+Nvl6MjmL2oCjZYsrEF2S6AL0QnpZvTNNEC94D6XJ2QPoCHc2SzCNiHAIkBTzvmbHlRSGpl2Vfd0KXo - -w5Q/YL1RQe6M1H6Vr6Vb8m9R1V4r4w2G4swffpe+bl2C6863uGvCzVuusAtc9rfI17FsSvdVWo/VI/lH50ydzKfWFmv91Sw6CfVDjoS1WFex297T7Ir2bOqVDegusKN3Y7b9DrmrJPUGZZk1sGazN30LqN9IMu4k9cYKJt0kLqKAY0REoB1WbygICLrIWqUXSlKx3lhfAhepWtR+MMExA/42XW7wruzb9JW6poco0z0n9UTPeE9ZNEBs60pq9MyH - -novAEeeoPjsVqM3Vb7MJwV0RkkAlXUdKGWNhouzyRUzF6zXw6D/at8AyPsaqSPF2w3ql3ZuSLRKtG78ABful1SfGgTcAEOa+gQNoCjRgMmnuJG0UWe5UOtBQObpX76H562A7Ljp0Db9a+YtdrLD2WBHu8JfZOuTdrN7oT2FLqEvZEegIdUlLMI1/zXUsIPLJB5pcwdfrIXsDEEB8mTt6F74h13NuVNbn6/Ntdcacq3UBnFPb4KwV9hd6Lm2n5u1c - -hculIduRlzb1flphnb5u0RlhLbq20iMrFek82kh9Y3KFb1FupNTTrserdiLaEu0dXvUtVKewDEkp7+21MnuxwPcu+FVm862n0RXuIze+cc19OD6zm2NpI0vQweyRtkW60M037q2dTa+pe1dr7EM1R7v4ZZ2OzBdKH9PG3OUw51Ht00qeNrZfAb7QXM0LdMLClYb7+Jj6WFpZK74OLQ9TJ8HBbakq6c4yynZNEkgs4v8Gq4IfcrW0sAYasY4Ak81Z - -JY1Rc9qYE7yvHsksb7VapQYFMHVhxCXNRmDgSJIAPpUgl/e0RyHvk/Wdh6rBOa3/WGujmkUww9ucm5iVBjYYEie72QD3Dz9J4diUQjz0MO+tQB7EASykS5QT3PoA7tK7D0qsgPKvtBFGoqeZYl1nr1bECWomRE4kcLQ0iRuoplr0DLNhEr7DFP7vUeVdOhTd4T6h53CXstLYjSmJ96CI2MG7NKRnoqJEKo+m7FzX+7tTvtx9TJ9fT4Q91czpWBof - -q+e1sB7O81aXpPHTKepW9787Nb37vvcFdfOs+dXt6tb2eQR1vbFqkK9Th9ieWdXznPWsJDid+kSfV0JGQOzMyUTL1lix/KG1ARZNZmaiXdwoSDD0HWuOgEwIrOgh+xGpysOzhmL7uAqAmAAIJYy2UfBY7gGeEO2o6m2YwFB/NBmPowl7hMlVWbu7cE7quV9j+6PB37N256X8Ghhtgl6mG20vstLZnSsS9GUoJfT10GU+p2Dc8qpv5Zm0LrvFvb9Q - -IdUyRa+T1EVMsAbyezJl5xb7GXgqsIVGB+ghdLB68zrqdvubaBW4s5sLALgZfiyQ7XrmEp1ILqp8DU9zg7dx08QRLQ0MK2OisOvq5Qo+yuF6kCpCSSnAFPhWYBCcsZiJFoHZNqRjVkApAwPTmCuOdENfFD6QyIiZPixLosmPHmx6gNMoGel0gg4rckgnIo42CHyV18p2UNwWgJ9/56gj3BPopfaE+tm9vg6Dy3gXvunZQyuT9kEAbuCHDG7muiE5 - -kSyvR021YntuTUEsvGZK66Z5Yy3opPVyuzpVnr6Bn0IL0G/fpq0V9mTLQp3Cvt1vWN+kKdQr6FX0jLqntS6+nedBPtJl0E8kWXaim7PtcS4xn1yRoTvadusBdLnaD11KHDJXUOKild65K4P1ZmG6PenenfN5daKD04VzO5X36m09s1IV2ClRoe3X/i6TNsuaHvmSJufTajm0fFf67yV1eUxIQPb27XtjvaKQ0Pjv3HegE1vtbjbUUVHzsbbRW28h - -tbfaof1WvsObe2io51uzr42H2Zu9vZ7CErt9UaST2AVrMnQBu5TNGU7qV31XvYDRNW5LdId6ex2rov4lU6G8dtxD7Y93GOgxnYG+vp9IWbVb3NmNLtYKellhg1bf4D+XrlnX4y8El6r7j75Yw1Xrb5cDVkQram7hrWv6zTf8/Z9W8K1ilHDWduUtKhN+NTKhuAK/ogMX//bRJiv6jarZTPrbsgI/lJvKS3pRgQj2xQIknuxQS1J1V27nGZGf0xMg - -M2KmCUQ7rv4WpYLSBNYbcRnpBvs9bZkgXJjbyI/ZQ90D7GOGlPxE4bgO0Dh0xEvdGp7eDSAVtDBLzHgk/Akj9WLTmk0QAEthptXCMGK3ijYAfZ0kALcAX92yUAcgA4OJKydmjRnNvUhjGwVntGTcgPXskK7BwyQflPQfcBK3jGbZ5UmVJopE/ct0/I54n6uO0YDT/bnCeo8t9zLxzXrJlVnAPBOQOdHsFeQNiM+nY0uzmIxDtOX0QHo4tbY8lIlb - -J7toWRZrXnasu2tF0Gba9UJDuqLcB+nWVk/6eLWozqA/RVU8GhnTth7FMWITnahW6cdF888ERlq1hSPOrJSx1mdwX1quokAMmAcKmZT0JrIcADsAK3vUgA8sRXyCzF3EJoLBFOJvUJSTi12muDULkbDWRdBo+awSIADcOLYMg2SK/yk/ruE9SA+0I9BS7QL1FLuq/SUumDldX7M4iyzQZGvIK85NftUNsx9cp5yKsBL99uotul2zPuTLQXapsdf5 - -aYkDyvvStda+j4Vn7qDi1Htr3bTrTA9tJAHFG0KWrCrbgBsz9wC6ei0AN0e5K1upo9ADdzb08ntuLYNu42V/7qfa0RCs4AydWqo90PqlLXuXtixoHeyatR27yZ0s/vm+Uae5SN267CAPKNt6rQaelftUjaHh36nvETYZetjVK+r2D3DDqTBOr23e95GdrO2WRvDLYcuvkN+jjzFUrtvHpR6euI1AgH2f09imKnTVOszCIp6rK08NAcrbU+ndtC26 - -6U3NustAUSerAD1y7O41EAbiZZQB1/VVdbRl3/Jt6fb6+lQNO67+GU6drCA9sWsKd/X7mT0gVu0A31+nT9vL7Py3B8LAra3gOiS1SCMBkoTD/1dvgnID4JIwNoJJvSvDCSOvx0LzZW2rVDDTfwaO8B+HEBOreepqAwkdOoD4aaGgP7XXdplgw0oB4yoBEIE+pDTfihdltOQJu71FMx4PbihAYDyz8sARzXtwBK9raYaQx8XtaNnsWynGaq+eNBb3 - -A0IDpGzXWeza6mj61rpxygxFlBJdBhsxxas1f4PqzSE9YIS2BaYY2rVCicNza67tbqxMG6aiqw/UFaLqimcJUl2PzhSycfONLJycYOSYTKjaVLuenAVWTbTtXoAESAFos5gAHQAMyyKpWgHKV6pgRssQd+SCwRgBp11LoUqbFG10XsUDsImmXjIkJqAV20rIYpEAm43tmpJgANQntAA5e+iI9wzbP92tcqb/Qt6uMxhVFdsGytLjYclpLv9sRie/ - -0Gq1M3YRqtGd+T6C/Wl1um/TY62f90QHggOz6swAy0HAjBCU7HL2xYw8jeAm41976LHdWnfoiNSdhGANIoH/N2nVtZ7UFugYtwgGyeY6WsC3Ukaqol1T6QV1WAZZ7Q3KtKNRla+X3Wbu5nWKBs+Bo+p8X3OQTHtQEMEzVztb8w1ILofdcIddpdOlKQpWxXqKrfFem91qdqriWUPsOnRUaiu15oG1E31VukgPO2uQDOXaau0tds+tJBKzUNP4r1MU - -dkWV7XN8CXlxGLh/2Q4PKnUgmyMDHxbxMmITp2EkhWsRdinEoDVSCzU4iuy/fBvD8eg0DKEGDUVs+SF9KCj4GWcrCbaJxSmtEnEMLHaHJ5HVPciJt5Bai1Tmcv8BlBtEKJPwl93bcHOq1buIiCS7uxX5WGkOR2U8oRAlhutFu4I0gDYfrkC4ScrrG6DjxV9EaLkX0oZtQYug1augrUoOzxdaljy0QTUOtQjaMdUA+gAOABFoCzoEF1HLctRCF7Qv - -3MpaXsMFL9YeM5sxCpjhA3BEI3kcuByvhtmoQPWyfBEd8oasQP5Lu4no7u0ddLaNDgBSCugA5ksN3wE5CEH3pgROwj/I5ADmUpF53YPPJ7Ty+pDFXIGZl1Purlvcbu519P76L3UdNteXZyulIDC65eA2yeHM/VzO+/dyd6BU36ZvNPWpmwDd+U7c93YRh7XURBooBg1cRcgoTqU5uAO1TmxAIcKE+XB2zSL+igtSMbbhIEMNGEmSyaM1Ci76C2Ay - -nOoD4vUBKQaRFwNH/vAbRAAae41ZI1BZbt2WTOvBG/WAaBaMY36UwANsqmEFTsBTwOBRiSXQfcJ6VXH6O1g8frnrjAC32Bx36U63wApSXYZJU99Ilb+53XTrAAzS+/EDAQ64xVfgfhiPnLKw0gdrk/m5cGomAaIICDUlkVL3S3s4tRP+yk99IGl/3oHo2bc6mpIDRn6vINpdktffa+yID1HLEIMtXuLrVN+7dx9t7YV0/Lph/UMeCO9hgG7NTlbu - -qoGXerU9qV6GT3U+tKNSNW4Zdly6NqBW3osVTUen610L0ir3TbqL5dreo0DnRb3t3rjs7rakBxIDMeyCU0d1tXFfp+s4ts/7V9W1QZag9AezS9y/60rGdO34jlfsiOkfirfZRlntdJUDoUrGDBDAg0qoUGzRVcJPc2wkXKp/WjTA6MB2a9TQyJgMn8EGvRfwYa9QBIiIUXdMPVTS4sjKE6bDu3y7UdzbspbcNDVdJw5DUqxLRI4K7AprkdnZ7BM+ - -BdIbSLA+j6Dj3fAezNegALgQPQAKAD5oHWPlOActdLDTK0CgqWdRTzBGBFJWT9awySDHPQMYNvsfG61oiDNDIOtEc/ZlJP7Fk3lTuWTXPip8DwF6Kv1v7qq/de+o8t5MrrIPMbFHxDhG88uboTOYjayiAg5G7NyD8rytK11UTYA2Tqw29dT7HOyH9ui1SM6/ddA8b+bBVQabPlluoKDFlb8j0J1v1fXSe/sdQz7On054K6rSQorb94dlgwMXxvYr - -rQBi29//xyj0Bap6fba+2IDMbLth2x2xCg30e2q9nkFTX3rbvwTZqyqUDVR6JMVGAZofW7e/O9yhrxX2VHp1g8O69KdEq7Mp2wfsg/b3qp4dpw758XNboQDeyugvpl46iZ1/NrBQjeO9K5iYH0TlBESYWfXMTVtcbc5OYqc3GzbRB5Z9V4tVn3JAiC9aFi3Z9PnEqwNmHLAEAnB0btokhl70mLXSwU8onrt9abA7DfSSSZsfnN/OF17br0MHK1QT - -423Q5Z9bXg5Gjp2urzhQW1XYHTMH2ctDQe9UTyBOLrdf0fFRh/jL6nvWdqqsXACpnSmA9w/xYoQys6DqnHDEck2c8CnABvORd7z6AIkreqxlg7WyA1wFBHNhLVSDR8UgUjNzFqYK6o7SVTexLkBY6LDAzPih5k3HAOLmsdq3LZaC5HtlL6cQOVfo5vRABrm9ML86qZTVT0OgHC6p8IWdNCRBKEgDqHauZt4dqblClayrjd1+3guUYkG90nzsyzRx - -mypZLgH4s08wdFPa1e9ztwd7VsA6cv3jTLO4i0F/kcc2m5r3jbxmo+IMCHTDZUrrdQE3GklNNgHb2B03puHYB+sV9vtjkx1ATpKwmt+qCdDsGjsKuAbU7ZX2hldJSLTyICgeq3UKB28wJEHCc3hcFFAxrBtfw9U7Z8U5LGB5Wqa7cdmw7w1R5frL5XCqAzVeRq7iXk/vDsGvB3PlRnCDINWn3EQyf+BRyBkaPDDyJsarcaQHZ15jb6JzirqF7Uqm - -xRNQ+L++3WTHtg346m4dVqoCEO0JrUXNgh54d/RRVANG0wQDc9+/lNjUaFAPBqqvXEtW6xDCjwSsb1ULDYcNm8cWPPq0/btgf5tTEjWrV84tARJETp9xu56lVdS70b2oakpfJmK60GBHXDed3ravuZI6nU5S+Iz9IRLWsvbQ4YIlJs4aQY25N0a+MWmwkkG+Sgd0jhIVjkbS41GLO7Wq5lgdTERWBvkZLSNhxYWIGSUlS0Xrg2KByYG9wdwvBwEJ - -gAK3iD6bOotHTAzQU4AfFpZooEdmwSJqkebUkWBL+BvHq9GO1wEax5A1eoEYSH9CA6sl10fFK0ZUuDsaRdH6ICp2QLRvU1coHXSABl8D5pbz4ObknwJP5Y8hNpyaz0COdO+ULGlZADftc+/1edMgPXm2usdlC7q4lCfu+Tfva54Vpn7/cW6avrFQ8humDAQGvh25VsLdQnu9W9lGaPkMktur3Ts2yMNgQGffpYzsnldLB/ADu/C2mi9uuhIMxalm - -VyUazq2xIEafWgevh9xjaqr6GmoPjcghrA+iMHoWzwFvY5ebK5U99vFuH3s8rU1IqBhFDirbxU12ntfHbfO9ytnsGyp2F7tnxbvBv5MMiGbxzJxP1vRsuh0gZZLgKXfks3wCghiCdqN8cnXlkpApT+S4Z5QJ64aqbvhpTOoG751ILrfnXaYWZQxvBqticqG+9hy3NslXX26ro1XaP6UEjqI7lUEBQNIfKIBGUrr5Q38h5RDTe6TnVCGEZnZvG1y9 - -8I6c91r+t0FNLOvjNmKGxqz3rtAWtLB9gDZV6eZ2cspuXqFehKDLEbT53/waSrZz+sPd0H6v9Wp+nPfshyK8Uc+7EVxGJJRXOs3U3U0l8OiJk0hpUE1ZEgd0c7ZjjrPt6GJs+ieFNAIp4XdGAv5EbDdvd+b1bs1ucUaQJ9JUe9P0ki0O4FrM4o5xCX9DXFwS1Tnpxklc+qRdZQDW737QRmzb3BJBcvtpOnAclrUmTu4LJR74sDWYWIBKXJDE+Mhv - -KAx4LPCucGaMez4QfjZUnp5cHEEHwWweCNz7O32PPuEHcs/Z/gDDglXVDkF2gIfrcbQx+tTvg1wGRepZpBgtnwgW/At4EtZlMYJHp+nUUek3GphvQm0uG9KJV4gCLHyMAMoAVJsWJFegAM6ElaIm6VYYsFSSHW2gUImPMi7qawDim1AEwFJ8MUGX+efU1MCgh7tVSJObWdt4s60YPHwY2Q9G2iyDlpb3lVEgYlPqwvEz9ldpOwZDkSM0Sk+sDNGH - -L4JHQ+0/g6RGscG2oG0gOs6uM/RX2Y5tTr7SMNsyogw64amIDzt7Zb3UYfIw0TalmDVGHlFU0YeYw8AhpwDUq7xx6YiAURhYYvuNv2bGqxxAq5JoE+bUVFUFHBlTMRYsFgWWmQnz6KPEe8rbOYKWqSdehaBawr3DoGDluR/SiZ0bOYcAE1tW0ADSx6yraBkkOoSWLSUAZodvrgTVImD9xA3cN+RBLxIHGaNt//eSizi90YxFUOKmJgw+V+ql9ZkG - -pP0IYaPLUhqzCN5F8qdgfEQkuZ1/I5kan6DN2SfE5iHg2BN15yGB/2hfOSA0i26f9Bn62QOKhtG/VyS3B99T6AP2nfpbbQTO3kDFnadh3RboJQzo2gFdOsCLEMj1vwqGFu/H9MlcXT2G8uU8PihnH16qGd/UySpRQ5w+5Ia+I7iuU/1XYjW8Ol8ID4GKASb5rgDbeuxHAYZ6u+0tSXSkRu20VdF5weV0p3vHaHuaorDP+Cj10Hjus7ffm7yNMVaY - -WWSRrAQyIhvKN0Vad42np0Kg3FBvK9d86YqWugZR9QcOyv1yjK2UPqMuKgzRGyYti27YP5xTpyw3jO4l9fM6zsNWpsNfUrOqYdrTbHmGL9piNXT+9ViqWa0E3CYr+tXdhvzRsy6cs31FuExVthlU9NK6gcMuULO3ao2v29kOH/T0DYZpBZaaiHDb2Ga92o/rYmRZmkBdB9adFKl8v3xRZTF7DSOGVIQwEvmQEx2tWAq39gz344cxwz1G/L9uOGYc - -PI4Zp1d7ygRKwc8hlUa0pWdsykw+lZb9Hx7H8y02QHGUapaa7QgKNT1gpZtopm8d9rPenKBUJ/vFOAqVpUV8pUyclCrhL8+Ecbtz89Z5135+Xv0nG0VKSltU42y68bDoVY1yxqgtxPWxR3VsNcDq9BLn7Ydhp0IRHvNF4eBrOw1G4fNwybhlQwxHTcd0J4Rx3Z/U4mNmVlSY1HCIdqmpk1Wl3u1vjaJcA97uHPT5ZLtyncPixVy6abhbY1Y8JF6R - -bSU+A+equ8NRx7phhxSz+DpeEyzEPAAmiAitGQNnsAXlkywwzg35QHuBkUinu4aOadhDoplkbl0SvXBuEHq+003qg2Coh83daP6XMPJw0jyRE+zm92yH4dV4weBPQYau+D6ITNFANiWww19Ot+D37EQINTQrAgyvO1qD/MGt9oHtu+Q0Sqyp92qkPNVxLkZ/TwBkPhfYqyIoBdvNTdeu/IdLUk5q0kNoNTdlm0YdX5d6H0uhuSgzPh7YdgTitAPN - -PuareY9A/DbbaaSU+UqSg8eOuf9QUHdTU2RvBXaaB4z9OwHfQ64ocywwVu/j9C4HnqS6csjreydYp93r6/H1CwYCXE5Wj/DEdaTQMKctpXTJqol9YnL7sP7CuMA7su0n998bREO25XEjWRFbod527wN5rjsJTeh6ilD4vaz11NiByvTqvPvtL6aCIah3tCNbFjLeDFU6Vk2eoePbfu28vDze60nV950B/SAmvPlTyagoNkEZRg8XukZ9ct7WCNF7 - -tvjsZVA39jfUCXXpTNhUVr+tvqe0ZaVGp1wJdNTgqkVjeAryZuJ0PhH74r+VF28JwmhaPWjK4q3xODRS34SAPSvtX1w0l1iNtDnH1E25FeiopgxNFwsvFNP0ylSTvTX9xs1i8o3AoFzH6+WDdZN5sPCiJRWMrT84fK//91f3V1GiTXUrPVtKbZP0iQmFjQZDoDXVc062ADI+ivIKYWoj6QwAJoowvo2GGYU+qxm1F/SQLVTSVtcGuWg4fE0EXiNP - -oVZJKp11X2p6JCuuv5XIKh78l3LTAn0lfuZvWV+6vDyzTa8NbIddZOu3Dc21FhIERSOpPfv9ARLJHeHu/2cwjsoBFh8M57kHB/12GtTdZM+7yDM/6fP7x7ohnSHuwz9tGGN3WVuvH/dKwdmDBV6J/Ua3tZTaYQCTNCbLaEO2VvndUPG+NlkQ57QPzYkvjckavlVKxHcD7JXpwI2W6rB9JxaOj1TuogxV8hnylRxHIjViNsaxd0RtIUHt76EMCIOF - -PUQGwUDZr6woMwtpW3XZuk9BSqqCn3ohuc3R7B1zdm+rVQMU2soDZdh3wDgcqGca6YrXWXlui7day6TsO7fsPzTlBjVNqp7sUPHDougMvgYKQSiHYUGOoaGkjL20rtOP6LXA45pWOQwRg7oG1RJx31DvsgKPBEhAi0bFnDVsxMGgV2v7909KlZkDlUPyl59TBDI7qPANgoEcdZKhlFoAOQX4Cu8qNNdQKYWZbOKmIC0fjpQryR2ElwiABSMvQKFI - -3XMMkI/39jn2FoePzuvUgNOm9SBqUXQY6xoJudSFxO72VG9MobDXWGgndFsdLSxFP1AHe9eaUsm9yCn7uv3Ozn4/THepKjkfo/8sAVWSK+Z+kXj5p7EGsdIzOEze823a27nVFMguczqF32x/Ti9ZBVz2EX/yiDG2FpI5Qbd3NOgvZc+aNaxBf5AKq+lMD3XXOzsk3Kb7E1Aba7Gox96AAmmlP7hnAEQAV8geg6Pow3kBgAFqlLMsawD/+D7ALBgJ - -Tc0xC80BbWyvxB+IlfulsojCGz/WebWF0FJwIUBCU0bJ3FfrJfTbukSlEn7Ai3mQYx7VJWvcZmEaRvhzaGHTnbBFiIwXQ2v2pPu+ZZjMT99BGGCT05PvxJQJ+lkD8ikJv0qzv9Q1fh15ts37YyYtPrMdQPhxcj65G9K64pvIQ096xcVOy6Nx38nq8NRHiu791p7p+Vc/onba0aqhYPvbeE1p6S4Q1Ky0916SLGcW3+o+QgoNOBD42HarS1keETeq - -huqNe8Jgu5hntNDQxQ2KVEP77G3Qoq1LqYhyAFktzOSMVIpKsIjyq090eKryO9sAD7W1ilnA237OI2oxypEGYwfzFxCLT8NPesyxbhR8p1+FGH2zFYsj7aVigKDcDJyKP0lVFhekB0q1zwlLDntpqSQ7vK3O5sKAZtVoUW12uMGsXeob5TCMpvjP6ftGT6ope9tsV4uvrbsr+5lJpTKyj5y4d1mSVMhwKTcG2pW0jIzrtb+ojdYW5UBA6tuGnDS2 - -8jlwUE+oQtDl3KV8B/c90eGtf4AgDUoPBAa/W5xgn73Zp2YRF0ATMhvSHO+iA9q1Vg0Y1SDm8ARdA+MNVuOm5RERB/qdU3w8Ogo0k8KvD7fduXl4gZ7I/dOpGZyGGDHn3YH+VZkk6R1QEj2GrzmriLep+1+DnMQ5aANpzQA75BwttMYGin0e1qHRdMuxGdVEb/L2nkdfdfbi77DLAHAipU9ohbf/h0LAT67YSNwFrO/ZhRvbdCoGAt0IoeVA60Lf - -cjGp7TYOFUdaLegmlAjnKafm2NbsFXRoh/hNPm75v2jYegnb+i7ADct6uqMkrqN9OlBs2D2vpRANk/rWw5zB+IDYO40INOrK6fV6hkLteWHzLXgJtPThfhvB9eVH5ANT1qhIx5oGPdiaq9e2oEZP4XTu0OOJO7tdzhIb2GvJkrLxHuHEf5m1XOlP7hi7u/uHOvJPUfsgc18FLxfP96UTbUrF9WDuzu5Ozi9CNfHk9IZZ66vAB4a9cPdho6aFoRwB - -6Qu6xrUHsg9UUKOw/ISiUEFUrYlCbf5+kW6ubTPQCxumtQqKJZGUiQBMAAu5G1iIAUUZtigTgEhCqW28CvAPZlTlHcfQ/YDRSIQTGONPtAb8VdopBZR6UD1JxqG690M3qQwtbuwC9xRH/KPporAvdjBqStY5qC4399xQmslintG9zdPWyicWQA2EOcA9kWG+8MJ6ujEsFeiPd7oGnWWWgNVozfO0KDIs747pa0Zg/Y6tVQN+aVwUNUUejDVayyv+ - -NMGor3m0ZeVr4+pot9GHuYT9EYZnXYB1d11SotX0j4darQ+RzRDmUGIu0W0eAoxJ64T1bdLWaNVaHZo8V2gMDsvbcSNKwnkzdGrHtF6fT0x0fBopQNNhqOjJRKQ6P8BrDIvHRs6AIp1ghJ5Lxz5QUvLbUhmwrhk5JOuOBmhkukWidxApA73JSSHjdqdH9aGJ2x9Tonaz2Xru1yy0vaMTrrow0YGKJTQb44OtpuILeosHJN3aGZ0ECBPvEQRS4UtA - -tYUyjEAFZcWeQeYAsZ0+gA5ADipuZiGW8AOjDwOwywMmC/EKt4sMYgiYxLuTAn+BBRWZjAjV4ylNdvZ9uvgBZf7nFn7wZk3XzR23dsGG7cHwYaCoyUu6i1oVHs6UzrVkQMp9GpdJfpnG5y0d+wD3hrl9q66ML2j4b9A9PVMZ9H0CvH0EvtTXk82nLDzBGfIPuAdSnUtu1cjvRH3t05TsfRduRgfNxt6Pt0sPvgY+4TMzl4G0LOXNgcqxpPvImGfi - -H8TlfXRujWqO8wahJyvUEzXoaAf/26qykCgU5RBXATCA9wyyA3mVmACZoPa6XFcJNG7gR8ACnAD+VFzsl6lfSoZfhr4vxJFQ6nVAGAjeLidb0uGMkO1V9HNHckUV4cVqXkqgojbZHT6MdkZr/acjDE18ES91QY/nrffshmOgAlMwpCOEFfo6halKj37qdQO7rtgg5Hugxj/DLHAMoppiZSK+vnlwiHco3FYdaRAChs3SgAHWmCUEdL3YPitpQOiG - -iCNvLt7zW+xQkj7Ua8oMyvrfYjQRk51nTDpX1iMZRw6ohxu6jGcsDH7GwMyeOUtF1h+AlwnFjPcyVkG1IN7QlehIDePa8vMwqFZYpRCdTEOwZBH5hGbpelHI8MUbohfegATcAqz1BgDP7kkACCqOAA2ABM2asgEv0moQf3IIMH0G09FH7wL/3LMGUMYHqBJQhnHesGqxZad7ACX2pV/I0Tm0l9YYqq/3eDs7I9x2uv9PliAh0+2pgfeYuYyOHxde - -FwwkG8ncpWmXFWv1EqNxwBiWR/Rnr9HkGGMNLUbn/Ys++FV/r7RYNavrmHVFBr4jqqqJX2UYecY1lenWmaxGYUPfkcjoyuRxpEHt7m8A3Md5/eZ22PtDzHRU3dPsp7dwB4Z9QK6WV2pmRD3UuRjmal2wxSO9YEZVWz+jiJGM72YNf4elPdlhjZKOV6rsPAMcg9WtW+U9opGCED8kdt0aiuoqDhnxwWNYsfFIzYWC79rlb660bfrM1Y6e/w9Qx7uD - -rVDvg9btRmqDGBG92pb4aXjTvh6joOp6eLqg4baPam8/pjup6Wj2bUacPl5K42Ih5Vge4eyzHLkRxYnWsxwZbHzsyWg+ILbltAraE00ucqDxp9GzUlGaacTGZ+1MBWqRw92jv7EkPDlJC3Ctq23Dn9SPujLao1w72GmalnUCP6k0EvyofpnQqhaNRCpX/d1qKXNKoNdFh0Q7lk1sTVBf2gKsV/av4WH/uvQyUx/dEQoA+37yUDaAPMAfX177wlZB - -00AFsn0AeC1x6bI9R9KDqDtVC4oQnTGdswntidkdE4QB5Jl7rTWGSS5Frixj8d0jHWyOjMbAeWoanwdmMGz4PC0funRu83tpYQtMaWeiW1rWQcKD+ctHaOE3lowA/suixj0UH6oPpDqUA1QRnWmltHPGP5QeyLWPh0IY4BaFyMmeV3I4QGwdjwjbrkPuauRnUth7S9DJ73mNRAM01QsR8MadxHvPT7zpp/V8xyKocFx+l3v4Yq3SG254jb+HXHKk - -oZlA0cgK2jananyOkzpfIx2xsgDsp70WNUPvdg7thwmqvt6yWM3LpdAzexi9jNgZJQPT9u4Q+tWxbOlFJPmjMFsPujK6scD/tcjlmFfmwnbktTa9qmdEkZ4xo7dqknA5SE1KgzUj2OYsQHLD1+xT8ZKKQ0d68cDu0ex9FittWakpSDfTu8eZl0GokblUSMulqO2pN8RtzoA3+Ae4Q+kNnZ/ypVvb6AAmWliVANAJABiAAP3qufvpDQQIR8Qf6ayK - -mAjQM0SZicp9EgK0FTF2SaG/2jrHrxGNJkmyWJDJKhtayaT6OlfrPo65hk+DxbGIH114YqI2G6zCN64TgZE0yqiozW5U3ilxTVmOfMoSo7TmibCxEa1T5BguJpUFBxH2XdqmQPwahDLdlRqhdeoZuU1UqumI1U+4FdgJGFYOCwcQLfexp7DCVqF8NZYcGLUu652jXIamQyosckQ9IB8u9KoGXONPLqvkk9++7dNiHof2dsbp0tiRk+CTEB1aNXEd - -jyi1G1JqQP68+XPlodTdg+lH90Cb/cCjVox/fzS1qNjBGvV570eQYwbCMv0Lva0b4keuhWAZKihNTxBbT3YEc43pz24iB3WhL5Ie0dYTQNRmb5ckrue0wYta4+4S8T1Dp6jAyUQEa46CumyNJB6mxBystgYzduvI9i2H0oBLLrZI2lO/5tsPgut144d63Sxm/rdl7H5Z1fNowzfNu7bjLJLWTVzbocDUWGymNlXD1DSNBpQxmn46dNypGNr3dO0A - -7XAQYNB5mC7PEo7Om7bNuTBjJEhxTqkTuV1iROqw5jLRMdl8+v2mAqOkNBFmDggQrhpnTRagSLBLWq+DEHGpA7f6nAQxhdKzIVV0eKskvY2QjWeABYY2saNTqNarYeYv6lUKYmI7Ayga5OMGzphBHlwkHKpjRmcqNjD1lVJS1ECbCAdKqDnMym2kACo+puAZVQrScdSBHKOiWuZ1MsjrXrOcLv2C3xCdO0D99qULEOciLBPbzR2Tj8jGBL1dkY8w - -1fRrm9c3rb6N2IkCcEuHSIt5ybOwDcNWCw2++7E9/vS8tp6MY4I+Zx1Kjzfrpn1LFpDA1vO4hDeeqx21SvtEY60+m294H7wuPzcYi1ev2nqj3j6h22QEYBw85x23jHjKXL3Mzs1fauxq79iHrkV0cnsXbYI+2zNPUA2QOLftD3Wom8/NHB7oFmB8doPbnADCDfOrA71w8qpY8ZquW9fLGcfUGtI94zTO7StP9G2A3YrrBw5N+rKDN+bfeOMPs+Qw - -Xxn3jDD6bv2ncZnDukh4XenO7pqU27yGteEhmLJlYzVOR2sZVvmWGSJ+tSNPUaYcdR1g9QPd27XcV5XxUJXAefWvUdycH6wOqHIiRoDxvplFWr1DlhIwB4+2B/plM/GZdzT8YatRgwyrN4fc2jIpkipQHYxRSKhTG6BHFMeP/egAE5+fDcP8jhfu6iKgSegY6wwYLLvoRoFUu+mEwrQxG30J3h+1J0x10g14GG9jXuOmTQwqh/D7WVS/22ccEFRX - -+jZNoHKFa1gPtPg0px8ojnagaMYv0iK5dXm2pVU+1RL5+GWQA44QX6ditHl53K0dAY7LStDD4+DwMOP4d0UCbxuID6AnsBPeAdLbQhOrIU/OFdwElkHFAsdm0AavIKf1APcJxeYQAJgA7j5nABFgGAFoIAHgAJRDc2m72gu4jFvahhOfI2yCJscYaD0xxQdEpjblrJiC3zL7VSbRYq1Wh2P+uE/cshtjtY3q1kPYgbgw+/u6T9R5aBaFi0bwcc5v - -URVdsk3QlYSCjnWORnDDE5GslxLNv7/UrRqA96679mMPlvSo1yepA9J7HCKPWCZZPX4x8p9Xnb+2NTgt2I5dacPd+wTYTnssaJbS4J0+IccblE3SJuExSCxkdj2mFTJUc4vDKTWCANUwQlhTbRBUs/TYJlHqPCzAqzB8xRSvJ2lLDsmg8xBnBgAeQUnZztQublqbceS+QEpxDpQsECCq3QoY3Y4mICgc2OZi43u2XT5X1eg6QbzGKxB2JFnMGA4G - -o6dES932sIZUaDrxSBwGkFvkU4pt3Y1hrPEgSTL4l6iKIao0ex4QNM4DFTrKnrPATfhnhDPW9Sryjm1QBLngQMpfdqSG3oQfdmNg2XLmrTB6LDiYWWE9Y21YTvpoOqJsFOpbf4eTljdwyMspxCVWkOAiLH1sUG8+OFNGASHhAr/8xLzYEbXCa5Y7ewUUggjt4pCIVJYYFcJ5Kdv5EJWLwgQaQSR4b4TufGXhOtFC6zPS6pvAlIIgROtHo1poWCpz - -pqbGB57XxOyjfARhajHELySoKdmBvYDww+JK2GbGP3IIR4UUgc1xziZq1EHbtWw7Yx1ooqDB8ROkeSwkFiJ6xjMkapWbGVQymY7NeXCCJDbtQK5lzWJSlQ5eynMBUiFpjNNuJEOW+sb77F6/+DLxlTfSIyckLiUiN+i+AQRCOJev6KsFAlzlUukuxeRS43A1LVNrGnwGdovn8+SlEO3daCt2NQ8ulI60yqLxWbKIjgzfB6tAqQ7wiPV2fFJ9rA0T - -E399RPUoGIjkaJ4lI62aC1gkpmVEx8J+GhpiLlRPlpGFSPWkNlFyoFUdhVpGJSG/mHw4Q+JKUhspB9VsbWrlI/eJm8CNzFDE33ifVI2qRab7v5TUomSlTpS4VhNNkvj3l/r/28YDAA6Y2axJindPEmfuj38LBIMpkYgAFsAdyEaPBxLSjADKcAADWoA+W5omwEKrLbKCIzDyCPcdujTGG/ub8wf/g64Es1jrIx+xHgm+MQBCaYI0KCCa9U+7Pyj3 - -F8AqNC0ZUE1JWjCNeMHaiy2+r/niOnZ6pA6tX32Wxo149IlOkDUDHxv0hCYAI9QBlo8jgGFe22wdYQ+xWDmd4DG0hVeAZOE9rBnsTusHboD0sYp/RbB6n95LcpEOniaHdTeJi1Uh47Kh33iap/XoPM1D1M7T1ruhvPEwE8W3lk7aIo1ebr0A6uJmb9M1Gn8Nnfq84/1eiD9e4nxuMzCajvccRuAj4CHSRM4ofAk61R2n1oEm1e1+nrhI0pGsLjc/ - -bAJOODWmox42xhdQHYEcwerCrrDvC8+6L16mOJoKh+oqH6IuDYs1R4VRmpOCN3xxHWu9bLozHwr/gMWqqXeYqiRCGVwJuttbrJQ5YuT3Si+gxY6VRMDMD29beg0bGvB1n5xOXeh2thp2Y/UDuuFVRYK+wTBIB2UAe4TEMm8gVgAncjElUvWAHnfEA8Es7+pNAD/+bfxuvM6iAk7jn4g9qJ0xpwtDuwcXQnLmQ9tF233tzcTc75K9pt7XgJEZjSJq - -U0WZxol45MxyGeGcyAh0VmqgvfWusHoePa8qINfkvDQgJ4eWjbH5/1ymoRATi2/wDFCHQtVX5rLlaSyp29sH90M2HNqSk9BoL0NoxadaPpSeo1ZHirnt7XHIKP5/Nik84gxxDMXHUN4Swe/zRlJnjoiXHAKOVSaY5aLB5yTPVrA+T1Sehbc3oWqTK4DWpPimtWQUYhzhNVgk52NQprorNiJ2kTEy7nYOFDqYjeRcOCTk+aahO6vqZDfUJ6AjRsH9 - -6OP6NeY3iQ1O99XHW+IYyA5yvCh0YT26ypI2GStBQFiHTgUAXH4Ch7Cf9sARJuKtzdafVVISaGrfCR6Hlzeg/aM8eqdOiSRgu95g4OpPDQCBHb3K/NKBBHvv2D9puk9hJh4D4Ig3pNRgfxZlIhhVmr276HAskawky9JkZJbGQFENh9uek21RrVl/97TpO/jqLysXezmEsiixq2TSfyjTwm1hN/jN2YOE8F5Q11oT2j+MmAGN3fEJk8W8ww5ZbyU/ - -Zryse3hvKtJDwMaa+PJSpuqdzDNHd3O6Md2K72jITHhczJ6O7Sg20TryDfpCd9tGBqR01w8b2piqOok5cj7WJ0X1rAEMJJ+g5Axdzr1DF3PFlGpJiYeFlLr3QfQGCuuUtWTI97ZoJj3tOfaF6gtD7Qwy0Oheookw9eqiTJWqj87YHOvupSJP7jgXFa01YToKibf8rrN9/z99arAYhqV6SvFoSKQQRTuiCmMEOIZJAOuZUAh5ie9Y/gM31j20A0Bz - -n6Q/AzYwyuMgwBHIzGFN+UvLIFYiM6ZJZU+LxaaJ0x2LwdgCA6X+ol6gYuxgvArJ962kQEf/FZDI3Nj0nGmb2TWLk4yURkQZV76xxP3TvzjbC/LAyBhD6BZa1uPbKGwj2xenHiTUAkU5iLqJBWjbRHKYO9frqooQJ21NXCDnUPIHtTdRI2uDNvgmAsLx7uxZq5jTtFb2YQWV7f1uQ3Auh1N8sGybWWVvMY3Jm4FlVWg9v5xTv/E6bxr5D+Va/xO3 - -kaeTSPJjUyZMmczC+1PCvT6+pWD9+GgoMLydrtbFhxf90DHxYOG8clgy4aiV9QdG65ihfkGI2yBlmjs8nN5OfycPozTkt7j9OSzrYzi3bpsD/E3WV11f3rASSFQV2m8byYox4X4BGBPrUzhQl4Z8CDgPyYhsOWp0n6SYVCqgPYMLCofWhk4DpyoQUppAlpHYqg+R9bE7L5UrHAhGsh0p6W0QbFV3MSnMWoqO5NNVqwDVah+l0Rc8+hTD70qlMND0 - -YJHudM5Mo96FUKZrV07pLCAM8gLQBCRZDWGS5S621Bgn7g/0IgmgXg9P4q6gcYwZYq3gedA07qrgjHCH2BVGQchPc+Bi+jygnPMNSVsOTZOJ/GWfTQUdUx1na0MIPZ+D8VGm83hSW0gCuJ/uTOVGJsNRSc9A1PhgFjQDQzQNp2tKwwtWlLjMUqisxC8byHqlw76ToLgPGMYSvYQ1by7TFxGo1FOhKYiY6VaqvjjMn6hjO/ptzZ6debV2SMI8LfMn - -P4bvwICN+2tNRh9qijSCDKfY4w6okyOHHp+A76OiGYUYALgCgqhrRPJOne0poEuGJFoGVHFaorJYQSgJRA4Jsbnd7wGsJ4tBPCAWDBrTugRjutgkBeBVh0cSmpalTRTIT7y5OpzMrk3op+6dv6bIbUafiOQNTU0Sey7DiIESNIQEwi7CmDSbqqYO2ilD46CxjBK3bHkIP3yYozbOxxy8W3HFqMoQavnfsp2QDrlqyPJiwepQ6FWnwT3J73cXvlpp - -/cZmneTdIbex1uaouw2yR7KTzymqj2g6QIkylO4llxVzsR0ojsNQ7lRvkDhCa2V2aZrdg+E0lcjgqb090QyfgPTfJ4vDJSKIVONjvGowipn2DcfGCZyoqcCcJnRngBWU0//BUpJNOnWa3oYPQnchJQvOANRUBppodgcdM59BTdfpbHQ0jPtxV7GQDJ6Su5Nclx6ZBR1WTLyZUcypgNpkb8aw5C/N27eS6OAIdXjIBmpIz8yYTssLcHA6eVR6zseE - -cHzFqM19KVKnWooMfcmR6PDw1kaHbc9HxFNXKXTDX/02ABVylfWFXKGWy7uIPkVeQGnIVfUUIQRsgY2JXGVquA6oO7G+1HdrL5Sba4yMxFMcQyn+aPDicFo+AB0tjJS6qc2YRqo5C0UocjFY6HoQA+NFvcwy1StY3ts8nR2v7JWsplBjYfHp5OpQe/o7lJyBd+V7qvpawaEAx9hnYjqkbxQNygeTU/wBjUDqUa41N3zstbh4plGTIKGp2OEqpaPR - -CR4xsR1GOf2/MaSnblustTlTqi/2cnpczfNWgtTTJqU+P7Ybvw/Eid/Nh7HNQPbkqsE+qBqK1TVHIVOVqbF5CtRrGK2cnYq0hdtLU2d0fS1p8n/K2Wnuf5vJKoTwDvHUrVl1rnU9z2xKVpVqkJ2EcUogxSyRTaFNChoMnCWdJWRxKaDsAgn1K94AgNTVm98AdWbqgIn9SF/QxB8rpPp1pCm4w3/rQMfKYDiDCZgOFAZn8TZYXRFd5KsOLCnL+9KK - -clCY7SRVlaQbstdJC65+VXXaFENZwbA4ztBTqi2FB7gNktSpeYlhMlI6qRQX1XoeDkwfxiAAc8wt4ocAAZ2XUnR3M39klgGNRMvSNzQeSDx6az4jHQpKwLQst49fxgBN6y6EaUDX4ANtG3HBP1DMaN9kV+4uTovGiiNlyYFo0TK0cT4ynLETEgCqI3/iH05ynY3Am652vsbFRjqm7X7FL0fUpCztrxo5TuymiMNXIaGXQlJiklP4qEP1G3sR/csW - -sjyZjH5JC2CdlVSlW3FD3y7W/hm8d6E8suj5TUUHS+MXIgPEy2xizTR0nh1NdScXbSLmltthmmcgHsgcvk/bRoblFgnZyNevvyo1EAyGTY8njmO9Xtmk502l1DPyG8M0yJr+w87xgcabtGZE3Isb140CRpbjuV7kVPX4cqowbBlKDK5Hme07ftS0wOxotTwG8MtO22qy02e0UNluWmUtNykLP/nJJzZAWP1brapptOFPq6ZVdk6b50KqkfG1WhbA - -7hJSHWuGUWJw45PYu8mg07NU68bTYsfvRdDjK2rnSF9htFhu1p7Y1Q2s4OOs7t9TF1p5kVZQpRg2ThLZ3YhxxHWQ2qxd0oiXFHXrrZSiEi6wnoNoa2Pe7gHJshtcgLJh/rOpYPjdyAsgAYmBdABO/Kn3NmgDNAGgDaQ3ZAFGImWyqxolhGrCjJyMBGiJAZCBf/2bCnoVaOpiOV3sUvyPc0bmwexp0uT4vGh12DNthPdMxicsRkB5KQ/1gjYi9O// - -dggLZwLIAZlGO/RkwTKAmzBNGkVD40MRh+T8mnE9X+Qd9A7Gp3+Dc9L6hWntuBTdxyrWjROnwr2+bug8UYxqrd8IqS31XMeUAwFemBddOn/NOV6ohQ6OxpnThosFgaTydRjs4p8qju3H8dNrsdKE3FG9FTy1syoOuKZbU6+xg7DGmnEpOnpw8U2vhozTe8mQcPZsZuE0rgEJjLcqlT1p8Z7YykO5TMqfHEo3IHJETN5Q4pghA7pQLB8c6weteipQ - -scBOMxTowx6A4c8sc2rxqk3Bwf+bCNOyrT26nFr2S4GWvYy0HxDCQJcGPNPE4k+XXDk5Cq6oomFpqyQ03AjlCRiNi2JB6ym7S7rebtpZ6KVCTQZIU75y2Y9INAkLjz7s9qKhUnqBcjEBIM+sfQ005GVJsPIkEKT4Eg4aQvAIeQ2m0Ihm6LNxvQEQWBgKNjO9heWRz/WevBCQUd5bKxpEbrU5qOR9u/WHXT3euuPoyXJiCJnGnnVPcaddU1XJvjTy - -XLe2kC1HEEO2SoO1w0BTzaI6Y2qF3JuV5qyne5Orzo6XaPJqZdhzGst3HyYiE2vpqLNy+mYhWZUcuIyfi7fTGEnN4BWXsaQHvpm2SB+mE+PziqM1f7xo5tZ+CmD2R8YIAwLp27dZp7GV2MntZndVJpHwb5HD57s3juQ2/p9iuN/qv9NwnF9gxgWoIiG6mkjqddu5UyL8gz1gRA+VNyZy/PjypqAzgzl4AGZPxgM8+fd60jsmy3Yy/pLqDLOhkEU6 - -M/P2HaatpTOVPl48k6QmC0ImxxQQVQRuMzNSWm+7n91eqMumjFWnpqDdTlTk9EWcbQJBUP4CjykeI1Jy5nTQOroWNDiaeAeEenjT0vHNyS2QBa5DGonhtczZo3WUAT5dIjp+AaK4mj5M/zvsU55B/ZjchmDeNOga30+JhbZTOUmD3U36ZZ0w4JlW9S8nK32AofU03fWey1y8nUD0YIf84XLBgwzqQnzDP/fykOQyhBVjNByS4N+6x84iBx31hk9z - -XDMT3O0TqvCvROwbDpNLE8YypqTx56De56o8NFKcIAMYUve0yFytgD0BDlut9Bmpw+MpWLY1U3VGU4W81mjpYIvCvafr01+sRvTXGZbwOUnpYJPLm8aozPZmSIi8ZyXXIxovNCjG06V7JpzkSxAZUUUsNNlL2N0dJtSoJFs0hnCnJS3p7k7sx+4jct6DK0sEaPffOi6+uIumeM1ToSQQ+4pfozMEnv2N3yYNffIBhKt1oG9zX5Gf71bngRCVMxnf - -HUFGclIH8R4Y9nED8FNc+tQVH3I2VResnjxaoapCDVrJyzix17aJPniz1JGxXKQMu+45LGoBDOgCCKSjjBSnXoPAWogXNlLJH0F9yD8nFWLfKPuqKskM1l+BFHxGqmX8kWJc224TVN6jKWuidJjoYH5Sc71eIrESjJ/dEDl5KAECd6ZkY/mx5E1SEbyjPomrQjY/Ih4AShINtIhDq03RJcjqA9Eok7zAHsk07hhixAjiJZNN+vpMY70q9FVFzHEw - -2Kdsyo56W+QzdnHhQNgEdVg81u35TEwrM1N9qa1A/ppvcdcKQTYNoSZ0jdapgQ+4MmqUPOcaBY2ouAJTHhBft1e8ZLrYU+57M9KHIlNdZ3S48Amokjq1G4915VrUxT4xw1Kk7HLQOp330mQIG3+NCdHGbVbEbkDc6e8T1j0nWPU04eEzRGqy6T0OH0cNCZuyFdtJrtTRpmCH2SZogkxrOmnTllr2i00odWM6O2xXTX4NQUMpcKnzbkJ0fU24mgw3 - -FaslhRy6srVq1QUwOiLt9aTnB/uRuxn05idYrtQfbrO0RASNp73pzDm7e9xp4Sh8LEFODdrvhcx0uWTyAqBASlwfCTOXB8tNuhyn5XUyZlk+Pcoszg8poTLxprx1gxMNvdTAJaOJ4FpLygQWwqJIZrS00vBwrM4F6yNhscHXEa4dQAgoIMDvYlWzlACdRCLQCc/V9ADNB64yhLAVkFcAAdMMtkNXipJSCgDkoTnjOf6DvYzaPEuBAgW9uyLGT8LK - -6Z1lI6p3vTfBmYT3qR3B0yeiQhA2WIZ0MIwvsg1pxvyg0ZFNXCI6ZDIHiekzjkIC5NMTGe1ckPqqzj3xHaTMcgdnHc8mib606n5MMBocQ/WrR9b9z7GWTO/EfHdbJq0H9vJnWSMQMZeYRMRvNTVM77NWZ8f2Iz/hjXTeun+n1JYYbU0zO9CzcDJphMlbvGfY4ptO1sWnOgX5ydPNC7xgdT61H1QOZacm4+z4hzjman6LPoFpX/RAHAaDu6njhJrC - -VnhT6jOstqCQ7DO46yzA5tMYbt67sJOIeGbrM9K6wNhQHGfDBBUIqEiolFoD6nMMFMoAiwU7HKR0C82pRp0VZtB0FVmhSzyQJZz1cWYwnffCkSTUoFm3UfdlfKJasLPTaGmhIP0AGTjmMTfAA2AA8Oy7pvmAGoQC8CBm126S7Y3+8rMkGbA1cw3IDfHtiXf/Y1VMYug9mhOpJyI66hdoDHDVyzodUAxnODQAMB2MrWXkrIeD9We+kyDF76QBNlEb - -dU/ISS4Agk9f8pKYjxNfv7d6SPoDEdP+zlXNezB2lDAvlM81ASf1o76h2q095G8ZML5peU0FxX3AD0mhPWiccL4+Xx5eN4YQjMUjRpmjWlxsKVY64Bkgb4DI0JyhwiklQlohq2BqxgcFxYGTVYQOrPTRrWdL+guNFgwLhGaYqDI0CEpyqdsNxSpZXnLm8gFQ7eSoXHymLL6Eis+uez7Ia99tfj9Ooadf4ibm+0JY0+0ZGjBFAx3NYzQRE57m2Uyw - -STBpHHZEena3nn/S6nbdRq6skwauVJB9275pnyL/AczkFiDJrvg3ZPywGz3Ox22VUyP67i5VOtVA7co2nItM4ISosMOAdJiJoryUHoAKw7FLc+a6dfB57R7AE0AaI9CFrhTE5KEmQVW8JlcfG7jXhvntWVnJAMGJF5HkKNlgxgGukun7de8GETPuSe5xf4WryTtf6fJPaGr401j213d8hkwizJtqffSMGPJuyAHSY5bMZR09y+/vDe1UNlPricYs - -9Gp2+Ti+GG62iav5/boNbpThwquoN5HEfY2JGvH9Njb9APXfsjvWSmzqDvqkpsNsmd2FSKGnyjvK7wuNimasQ+VJ0hNOFmtHVRdoNQ6wGnHTAWmk70m5seYwS26NTzLGHxXzYdls1vmxuts6nWrOe2c+hcdJsrDWEHnbNZmF79ZeR2uKyI7Ph322fKHZTZusZTsjBV04jr+Q705fJDC2qQd6XUdsBmNwj0juNbWVHVEypGbypvTJ/KnyNL79NAMV - -Bx1t5MHHXuPR6ezMwMofiBK97lO0FbJrs+nB2IEiHSqFPrHEu7Sd5aNhKAQmOnXqh3cLVIB7hoXViiGDASMABcAOoAwS7hXhePhJKiGgUYCcsAmOlV6JtQHCB/KAAVnRlBDa0wLpMuoySEfbuUh49W9IcUZoJ9HGngdOv7od3ZshtKzQhn+Xn9kfmMP3NUSyQPib0C0eX0E53hzmI9RHZ9NVoraMx0R7StjtnksPXMapMz+Zksy+7Juf0f2bRDV/ - -ZnLd0Im45VuTjUmZWQLEj7rq6sPSpiAcxfAEBznUBiuOZOqFpdMgReT3krTDMmSrclRREGda3ejYRU6mbYHTdJEHV88JlgJAWZW/U6mdezyMLhLpPSNJDfle0MNJDmdJA9HEIk0Vmug0mSHG4HtaupFZ/bYa1OvyAk7X8KBedpEalRfargXmYuvI2qLu/ExNnIBervQScXZ2GZIw715Sty1VossywawsTZY0GaA0ImX5FEwCgA8qh1+SySWxKmwA - -TAA3QIp7Nh2mNRrjJH3RGPxLOQUcDaUBU/Ix5Wlow7NU2dLw2IMXgzt8j+DMD6d40+lZ4sdkNrWwLd4EEVYrMaxpsOAY9T1LvkvQYJt+DZQJWiNz6f+nZchibduvHDsNIkqYw8NTDxTpAIeYn9MagsLJKpCjcdnLYBDoQsc4k5iwyLnUQ30EnnLuSowlt5ceNHdOx4Hkk4/hr5BSbCcKWlMjEMa/2rsFJcTl7L3GYMo0Up3KqRh7Ifh07O91M4AL - -fYssR4gCRscqABehUYCEiAVeMYEKy6hx+vUZo0B5BKgMFLLJjLHBdwIqrDNHyMGs1+Sskh+XNWNNW7pKM2LxsozLNnFGNomfgicDMTEzl6Bb4OeiSnQVbsGNRgtnTFiyGYls+hJ6LDlIxGf3hAdL1a/Zz9jz5Gi63SmYDsSPmPgdeiGUx2m2bc3SMRyXYEznQtBQJok42mC45FJhn3nPlUCmswOJ+pDSDnxnOvqDgo2HzBCjEgH9DOgua+dVyRnv - -MfYShlVE1srbo9R+/p62KX+maZKb5epye1jYes0XM4upCyf77TQEUJiyDnEHNW/G1gApOCJJFibOxuCM/vxoSDkZKjIDc9FhAFXGAGMDQAgiPX3KaAMmAWoAlkBRgLlJECzOxm51RK4U9oDn7pnOR7Oim9/HAYEoySFm6Z6cCUzr6a3JMu2vDFeMxlEzQjqnd0to1QJNpHCCUN1BgpOvTr+EEp5QWzoFCVlNBOfDU+LZ4ITxznHkMhaZwE4BZk1z - -piDUQ3PEq7WBa5wKlb7golF0iIJ070ZkqAxBHUjWxY3ZA+8u9H9PJmm/UIIcGM4Dwn09rw6jj4NfmhnMz6iLTvM7qLPflo1s7J4Ig9X7HljIMWY2ozVhmKDPwnfcrDqahE/yxw1NcCqsTEk4CRk/3a0nVIJGWeWU2pBU/m5zPl6CGgs1+adq3Uvhrz+RrnedJLotpUA98OsgA15DlOVXurTEd03kQwjhQo28mqvk6huQ8z0oc1YPE/uBE8xFDH9J - -nbG1N/Lqyk9MW3CTdbm2/RJtr1g1mp1aWF/lYLOxYrzxWexsFdvCHoSPh0nz8SG5h9jsbnb2MErryw8u52/Dq7mLXApOZR5ZuOyXTbamAnkqwI9JN2ZEKCRFmMWPooMvc/h4tW0N7nW1OamrArSASSxwsDxlWP/MCk0NpGy2dwGkoPIsQZ0geyE7Wad1HzdwUjNA83VXQTKKBnQ454ub0gTEx0AZlpHHlnEGtAvk14v+6l/DnFWW4dlGNbhoqhup - -Gmw2CWNNuMJYiMhWpGEaNQnWgSdqRlJSqBKceMBmrSsv7LQp+XMn9SNmxz60yQIk2T2KEmOL2ktONf3e441yrb0yXkqdyEnAqoiY26HadYi6WGwKm+7djlLn9KMhGbegxAAKGYNNAanDaTGTAPFCngABXry4ynACEANQMAHOd1qt7hjSEqQc0gAtYuFkXD0k2c2Y9GkXslYtsThOuEu1s0HDbezhRGgdNLOZB05J+9HtvHb+fi303yzqEs9koM4m - -vd2JC1M/jq5rdprRn59PtGY803gh7jCh9HnoEJCWgc2FdWBzSQ72HA/piVpDkTD0zVoH6TMqGaBXfNx4DeMtmfl3AOfC89V9M5zXbnAMQnUesFXc5q2CaCGELN/KeBc/5qv5zOwmHZVNqcPXUnRtmjxLGkROIScKNS76qCt/OVfbMuhv9s2lp86gwUg6IKWtwjvW155WDtP7l1N+2dq4+0ejzNcFmfXPLYZpE1NW4q9nmb4LOi8om8wgR7jDXB7l - -ZOEslCDdbrK+tjgIBUENuyBjXOHV/ldBLYkOcZ38gXrM18c+AjcBG+SGqZRAYrpmXsZ8P4YIjK6A+PJN+ttIU36D9RKLmnvBkT9JNAJRNfkp3RyOXkJrvJkYgUuePvUV3LCYcp8Ps3VOck88BamVQHIAmETOAD86na2ue0ewB6AACSU+jCuGfSGZtY9RAKSBLuPzbVtY+BhRrG0kUkeZZO5h1Eug+VySoeBdfX2mxzb3jcQMCGcc8y8CU4AMCKY/ - -WRsUPIrURy8uDDZYUMpHuLpQZxiKE2u9fPP6uYX01jpkCTUiMTl1bKaHk+sW+A+Ohnks1bUak5Sguqot8WG7lM+U3aUJ51HzTMsrEKNR4sSc73eF9zUCsITO1IqoTb1JsxDvuA1fPwFN9Us1hxwdwplj3Ox1sRReBRhKVHX181MXC0BXkTh9eDJOHZiXr8XIcA2uFJiOqHPe2mYoqLdBZ3yVigbn8XKBtucw+4e5zhXm6cNU4fmJs3a7zTbkzRUP - -0SkO+KFe9LzJOpwN0E5s1zT5epBB2AnHh36Ia180+x9/FpR7nQ0sscvw55uydziW1tLVWaYnczva3PzQZm523FuZuaEih9+zzP6HU18CcktT6hy/DW9AejNfJpK8285hJk1+qkP1jFqhc+4JwNDki9WNykDqxkqJA0yQVhHLgVxhQuBTWqwKwHjcucMD+cdBrkfYhwmq7NMkUirZdIL/T0je3b+7GuS3Rc/0/XVdMwV5KNqZI7IP/02AByuH9eyq - -4ZINVF4p5Z4FKeHNV63f6Tuffr0FTLU2EBkKY8EGQzgllfNatHV81i2Y5VBCl9h0bnGXj01w/xKGz113CmpAGpBG4k2XfAz9xr3lRdMD+A8oAAkaSUtuFRqqG+prqklBtWlji2YfbHFAttJfMBLh7QEB9NWFTexet79PR64HF/jucxST5iB5Z5meO31/qc82UuuXjdchs/T65FmqsnkijTDpoFxMulo6/RMqN6h05HIT7rFtzVnn6mUzMaQ9mxws - -ZFDQL58fN03mxvMUYrSE9Q+0Teh+BH6YyEVtQ0MZgNzyB9A7O2rDdM0hBy3R/TGAj1XOfPYzc54w4PbnFI1CPoSpX9CddzwbnjAmROvirdE6kETj4hBTN3rqYPVnegdTUfnnewaBaD47w+nXja5GriUfibQs30RjgL/9nVbPbubfY+PhnLTFD6z3OHuZYeAu561VAgW3xXuBdUC3uRo+103Quvb7udgk7PmkgE4QXgyCRBbGM6dxqMI9wiVGGo7p - -IMezJv4UZv6AtnkxouxTXi1bFOdnoAHJ3L384NM/6j60Z0PNw7q98dTuiEWfksRuIe0iXFg2B9BjTYGzOTg8du40OG3Dpo0yHMFvKOtcsMFLC6zv4PqX34A19TfacjcsLRRp4cKZ0La2WrxdUwxrZzzADQnlA29x8RgAUG0XADdzOvBRpjtNsBTYwwclEDylHFaBnnsX3vnuAodbarblmbnN3MMTjnHfgFr3V1L6peMU+b40+OuyG1MJA4gVwBhG - -lrfgTm6VIHzDWIoZkQA/ZzI9n9HwINgqrRnQXFK1z+YqbXN8GXTYyW5gV9a4n0JP/EsOC3oFodjS371t0QhZrEFCF8lFdDnPi2KTTzKpFgAsq9JaYgv5lX+YE7OijjLJBfi0mefh0DDgnfS9Il+yBesZOpUuBpkp+5AJQkSyisVqs9TveYRnt7Q9AAkbgvASxWZe11EB3JQFYlc8XXdR4Cd8kEosXLTyPdQLYGq5sMhitkEwfBvGVOY7tFMaCN0U - -4IZ11kbYzxe42cDoBrzZ5P5ltQOpDmWdbk43m9uTiKGt+GRSZ+C5OIpRt20sPcU5+c46I25jwTBtHLt2MyHzAUZwdtz6C7PXPDuZWExcLXLzb47E3N0Wfy0/G5htTdoWdGUk6op/KSumQL0bmE3PYWYAk4aFhtzt8bE+MLitT86ZejPzHtmhvP0/pBU8GFy/TZjKwnMrjrmrS/mwnVxYIitN5VjHc1KZm9oaYX0sMLFpHbVmFrwLOYXh20gHX7Ce - -ZC8Y1t9aRVNM7uyIhiY8JDX/nx3Y0eaoJQ7hmgl7DmwLkSEcpFaL/YtunT8BKNvUcduZg4PD+j2LR26Q4pa3PqutKJCAsPZprAcb8a6UDaF77h8QujBbBfdnpoSD9Dt/xEWN2lrDAAH6mw4U/ZFfgAGoZPZjh2KQzJPB3KCXrqpBzj968ANIMDsVsHeumJatvzIx4CRsWhM1r2qaQcJnTguomtB0+eZ2aJpY1rRhSDMqktpupF+3nzwjYwPCUpUV - -EdTAkUmVFPwhc2U0F6YzTCQH22NJeZ3jXZW0MzA8aTqP7ibqswVphFjtl6c3P4WaEBeo2xyel4nAcOMaeygxjUDHlsfGHsNm8phk0X2+/Tx8a9QtPiYMA5fh4qzRPrHAt5ubtM2lmlj8oEq/XOyzsPE9QG21ziDGZuN0PsggwoZ8605XG4GNucb/wzOrK7dtD7UUz3MbKE+xF029g7maqMsRaNsx22101mYW13ODurfE1tuuSLFMDeIuzcfZndKB - -p0zVnagfSDcaE8ByZpUDXJnI5WU3shM5wtR0z2anKENh0sskBHSt5TgrKzNOAiE4FZeFgJMMVKMwuaztKtaag9eVw6bB7m+/qEYQNi6cNRwphQI1adaC5zktNNQSGDu1twONwqNpsvG5nqSORSuqshfYCnNN028im4u/v6UvScheBZYCrE2VfhEgWKvOrV61zbt4pIwdYTx86uBfunS1U3aNPzmcuZ4Wd7hcTnDwskBLhO0cWzaauODmjuVQZXB2 - -sDI3ax+OHeTkTuy1BRO2nNLAwr5lKjmX6B7hUYA4ACHACFsooQOSYIOjFbpEAMrQG0AbmgWqna2ELYAIhG5QnC2XIXScGwsBY1hSsujsoMm0l3Cmak3ceZvezwAnFOOpWcH0+lZyC9kNrrxJq2WZfUhypX+WrE/wvg0GYQ3q5i5DBrntfTKGZEbVNu8XTcB67a0vRfy4HF5sdTbbHD52A4Ymjen54jDIvnpItjuo+iziq16LgbmvlNEId/49IdGE - -jXWFtNMWno0i1DFwsLXy68wuwkI7nSuk3XTkw7S/OAxahk8oa+gFoBGSj0SwChw/Lya6TbgXjyNHCs/1GNh28xigWkR0m2Zds+lG7azTCb6YsTW02i9yukajyp8SsYdAPj06F5YHW5YH5C08K1oU0Hpo0Rx9syw3qsK08A8IilTBQaAY0v1MNzjqx6+pSSms8bysPPeqnZk6NU2rpUbVaew6U8obj55DDwf4ETG52ggqpG+DG5WwGuiGvyntm2cL - -qGnZHPR4aupclVdd54EA5JhvRkqarpKOHgBvrbrVHgdRmM9IfsQ88ImixKBdGTSxEECQBVg5C18haRjMF5g+jMMWHwtFsYPs5fRy4L6VnRL1kBb3qP8+fQSiDykZ5QR3eZTdFmSqyOnkBOi2dQExjp0kBfMGeoMJeahnRHRmLDbUHrU0Mmf57WPZPnA8LbAcV9gbtAvlomvK5PGipr0CAcfBI3dgIrNAdNJAFzUhvEAZMAl1LEqaV/CeLEV3Ym2j - -a6Uv2lfjS/VRdcuWcumHMOOCzjAxGBqLk+RG82OM2c2TSaWsJ9KVmxlPShc7UAx/ZqE5kJRVlK8aVC+QQCdA9slsNVNEdZQDtHKDN6+nC4sTsf94z+KtKTWhmNiOkAduY4sOxWD7mmgEPgLq4M2BJyD9i6mE1UISZJE1jFZCzrqlKo39UY6rS/F4gNP2m+sPCcfNM2ki++LHzGn0ZVcYqZGFIFEVm+nKjUsmumFvqZmAInwa4XqnMdS7JX8VBLmY - -6xhNBAc9c64xqRN8CWZLUMKECvRmVGWtgYG6u13scOHZmqxqzzwasuMW8a3I0KZ77d34692MUmfcro4xyBLOxae1O0FKx/WqGnn987GK21NSZV7RNZijDtFmhFDCJYTA7+jWO4hH9pNnHaCVyelA6W+UWzCmXnjzAEXLfVaG26qJ2Umrrliql4tKVhNbaq4/k2ZwS6RlSj0Bn+Mq+kaxdGyp1d2/niXWO/efghA7c7wCAmzhRVnUCXPsf1SujYxr - -HpWAbiwUH0yJ1Au/GNUmS7vQ05esGF92AAJ4OkfU2GIN4TEUZBm2ADn+PkkneHXaYbT14kouHoc2MipZ3YnXrdAPf8YtaF/Jo+jDNnZXNjMc91Y+F+zzYOmXwtmN04RC/SUcwGSTYbXkiL+Zol8gNT2NLxb0Wdyk3WSZ9JlACntM3UmaCE80l6yt5tm4sOlxdL8/AGrpLrIHR+mYSeGpmVZ+ul/39IzUpPR+tAFCuhT2dyi8K7POJZGjG2tD4fNQ - -XAAPjJZdd5RuLtRod/Tw+kkABPBgthb0YhqKwgF5ZN2/MKm9x7jJPQUAabDllSoSvwIN31iiGcRUlkKyewgnvtNcGfsWYMerJLC8WcksFsaBtRMx1mzVYi1nPRPrxgykBBcaSeTgFmFUrLBkfF6kD6yhI8ivmcDBe+ZrZt58WWZU2gd0FRunZtjfy1GYO6aYL1c6Fxu1iEW/UPmGaws9jFrXTTgnYwsZyvHjfgloajQiHKWPYBak9b8oz6zpv6F8 - -lIm32jTDBKsN0Np7f3JTQXQx11H9qpPMFLEgvuCVYhTfAAtwAntW1AA0sXVEzkAMnS1CANOETTolTdGYoE1+ni9D113RvMLi28/RcuLlyz+08yVbRDhBGVKxzOcZvYDpnvTe0XTINk+fsc+vF7KW9L68YN5CtgSN3NCDusPRIDAWKZCwxMsCDsABAFCiNJd9MzZp0LT+xagVNYpYZ03HWkBLKC6BpOgtoQQ35WiCVmV6WSXc9UTUwdxmuVv4mYo1 - -FVrvi9Ql35tYsSOt2rbo+IwRFvjVBx1/Av+1teIzYZzW9/AWs60/2am86N58/1PbmekvMlyJQ+w++NLHl7g7PSCckPk6q6wLtB7DItIxZO3bTykljRKXI3PINmTrbAGHFLDR7pq1YBeIHEmF81DnvGMSNmBdl06hZ2iLDqHe0vu8c9C8nuxILkeNW4Wh70bDSJY8/zwCqM65r/KEScFk4xLxnqj/NOketI2sIxop+Zt1WNwiTOg3RxaQ5wuTiJ1f - -cZtkx3R37jzFHlDpnAau7R3Zj4xm2nJdYEKeSBDuppa9Z6nfZTtGGIgl0YNoSJ6m0P1eiKxSLBtH+aYnyB6O6Fu4Uwz0WoAjgArn4lkj+zvUAKAAwUAfciZQozqNCCg21s2gTlXpTH59m/+wRIV7A5OQF0hyM8eUBolbAWgqK/nqs87IxxZzlzLI4tPhaICxeZpzzt76/kvRLoAksnFpULwPlRknpxbF6dp+0ELYxGxbNs/kibqD+LllN1mvi3Gz - -v+yKbOvtUaj6dxZbvojw3vx/xLQkGjAAlEDUILiuMp67syRVCaABdGMmAfNAxAA8ABk1Kh0fEYQJAtJr54TRGF13cXTfh8AHzDJLxjQFC3XHUEdqmaI4ufJZWc5UZrBxmBIdySu/Pl4iie+aqgwKToCNEbBS62+GxT90WosMjkvBVdhlmuNwe7Q4u/RdtvcH5ob9eymjDPtebdS4W5/rzjgmrsD+HjDc1RZiwzAKbvob2VoQi66FhWDs3KfULGsu - -CC+e54tgjCWUsv1OjF0wNWyjDOQmS/P+pZDS+BF9ctptGf9Sdmvz4lbxt2tRzH2EsdueTZdPh6+TS/6vTNRpYWM+a5h5T8oH/Mu4WbgQJml+KD7r6JiUK2fj80D697DJBGqh0qRaay0iSv1LKbmo3P2hf6ywV2kdzZnYHQunccIYQBTagtlnFrr1wfU909Ejb3TWo7HuNJpobgwFk4JOPMci3zgKpRcQMybsLDiWnvN07y6Ptj/MpphgV2qmlZq6 - -LiuPGbon2LHstIWlkS1fynt6Bwidz46EYOcYDbUjShrHtCFv2xUMJ1wnYarEHfjHsQbO8jYCLXAV1VFdZTvIN9XNRBGUtK1BbKnkFhAPoAZWsmAB0qoGYbgy4eIfDxpqQq4HDxeA4koAgUkGZBAHmr6o4i12uz04uAWfMUmZYVc6Xmmb1UIVTgBQAfjizAB/TF/ULRJ7oRNCGnZyG+zx8WzAFeiXtS16uNxTj3U7FOMmbVM62x4Xz7qbSsubFqOL - -aV5+Co3naFsNQRdeOpBFp4j3qGsJV9Gb0M8g5v5z24nsD2FZai1SjF8NzHHKwItBBeuc4llmdjRR6/QuX+sbSdlx9XLA+iKItmXvd86w+mwL+EXDU3XiYBk/RuIB9dB7xIvCRYrSzw+x3LhsGkGN8Rddy3FS73Lj/sMgPFMy7vWLrMrirdwfDMxps3leYjbeVKpGkk6asezxiuTICecSG8Rk43RTs8kppPLaWChIHJIenDbQw88RMQa8barXqQ6e - -f2n7N579LUSUmNnA8WxAjz/HSuy3JpyiYNgALstwSwz1g4AH0AMPZ2yMPtqVMskTlBvIUhRhlG77tMts9oskHpl7SDGtm7/wpuVs3VSoE9B1OXlnMVGaVcyQ5U4AhIH1BMrbODIJLKm2Cxn9/5AXxMtS+rx25N/WBtLauZdME8E58wTgXndP1mudX0zth70zWIC6IuGspQ7rnFr8TCWW4hMkYZgYxJFuKTh5GPcvGwbeQ/FJ07jbdmdn1Amw4sw+ - -l4aDuwGL1P7AavU41ZQX8oc7k0PinEnvQ2XQ3AmGMuOoZpFmofPxA0VlgBUpZ020rQG/kNgAVYBaBCM7NhAFWAVQAzra4MuUJDFPF9afTkw8XVIBy9kSXZA4lvT2hnftNSCf/RdPluzzkvGHPPEBcp85+BpnLZlAVlYa0G4XELemFM4mmzDU+gpGDIvAYwTWcXPgssZZI1U7WtO1XEXhcvaCvEK0wmk2jFW0BcuqWtqE/IF6Fac1HkRNkxdW/a1l - -svjrXmowuBQcayxne7CD5n6hfOmBaL7eYFzjLik1PuNXOyPS0IFaEa/KCrdXasLd/UI5seZg1LE8vXKGKi3icgkLGwlFw4LKBymjI5pmN0eGxVCYADgAGFTStdJ34b9JZ0FPCfeAPfdsPxt4Il9wRQMLQqZAFbMXH1c4Cgbo3MbkeLZQx627KE5iHA438jj988MuImY8k++m/ezxGWpmNFJYh01ZBtgrr2IQZQNyZUvNJe+YEx+gbougjjOQ93Jv - -zzz9ndCvH5ajEt+Zv+z/jMjnN6L1GddI56wzZbnonYEsevrpCxqvBjCXBNUyuBMCwNMdFD0CHhjNFpfdc0Gl99jN66WjyLFfBw6MO/q5lFmTngRucaHuWl0LLtl680uyytb89K6GVD7oIRvOLuZm85uu25TrY7ziuBBZuI0oVyKDrgm/a0XetEPir564rAQXRD4W+fnc2cV94ra1Zk3POAfvy9/FnETWK7oROAlZGkySRthyi84PN3EiaBKzjJ5z - -amRXYkAUscmrfN50iFBUb4Sv2WKsY0Hen+Lu30pASUHIks0Qxik5t0a4TYuZNOg8NSjPLSsW+pkgGN0TLol162dUq3e7e4a6ZR15A7zslH68YYEv9w7P5nF1PU6slLTpb2XELJpoL/WqIeNLKl7haHpwUrRabhSsTKXSoUPc+cNwMihDl2AhxrBZTTsDgMoW3w3vG0XVRx2qAo6Y6/ZaLIEtMvyYGY4Etx/EtcpHru7IEAgLqATBKYvthBZkwCVM - -4DjHCVDpYktttF0Nt//Hty3htolCzYE0ATR9mZQu4wYqKz583JiyL9czilxv3wYeVBor4FZGMulxcqyzLB7UDuT7OMWlUcHHRCm0ltbWXk1OpYfLFdoHaqjGWGoCOimcO9f0VndjwJGsHOPLvTKztW6wDsoNNyPV1vRS1D68tzPyGviMAheUC9B643LDtmasujGbjcyRZoCLtZXwUh1Gu94+sO4ILVZWnZif4ccGlFlrYrjFSiqNBCrqtoPGotzI - -MW+OW1ZbKo3re78TviBZCt8+baON2Jh8TLuWNCtwHtfE46G+cro+GrivDlcuFYM+gSLi3HELO65eiy9uVv5TLaXpLAjZZRAyTFxQD/xXKf3LlaYTRJu1hLT+XPctYEYyXfJFl29zD7/cskBVtK65FjJzlBitIUZBtGxS1pjJOOfLEvWN8cl9c3cuwGxnrawtOJwVQtWFzSaXGz2vHB2lYc7SK0Z23GzqLEfXg60wR0jz1qBqQ9PMOduXLyoue9DV - -ZMotcnPqGLkh+uFNdHZwICybJQJuGkkrc2qDaUFIZyRtR5g7OJU89WOyxyplR4jEV10F5O75RkF/7oXJi2LCqnClNSeaO4r5lN20kgBB6T0BFuAJMytN0gTAWBE38Yr0zHQbBIZ75tHAcrGsJS4+7kLq0XUhrN6bihOGVrHRQuW/+MihZk47vZ2zzRRWCkvPha7aa+Fy+D0ot1QgsgNG5DbBUuNWZBl1iOZZeC/PAMdcaD6RYNZUbPy2ZxvQrXmW - -0oa/nswvezapEL/JKZUVCEtBec3R0irjqANFgQyFrNLA4B7hj0yH3REXmwKqqoS1ClaBQPj6+qY6lWuzTzweoD4DjFMYsMaV9ZAcIHvKIXSoJ+BNo+tBgCG645vBvsKL2AQ749BX9KuMFcKS0ZV4pLe78PSvGoG4dqzljUU8F75wA4WQCRg0VkAkhznJCvFxepg7wFuwLvRG2ItnKdviyQojQzNFnestgxaU0zbx+XLIZXTXPT2pjC9aFklLAQqh - -M1CAW7K622v+d0EmzFUDudIXaeumO9d+mJcu0d1aLSaezFTHK6qAN25bNBhVhwM9mbiYyv+gY1Qy1h1k9QM739PpEYgc4iAYiDnWHCp2G0ZeI01xh8r0xmPMuqhaZBNTF6/TD1WWYsCJZllY85oCdAGKCwuPfqoQytWiuSo6mcHP0ruf07eO1izfUGIA7yKwQU6WZppogpY3xb68gAVc5LK25RUrqvSzpchcdJ6z6zTfHm7koefmpUA9A1EFNXya - -uMqebCxh5s42ZHmSPNgVbWNbqWKirqsX2YZxBobeZfWzOY19aNvP0Sf5dYxJqSTagIQzUc+uhjZsZmitTxsw8PqKyEy34l0j9N6HVKDg/HybTiVD/ICABPowXkHW8WmMVkpG7ySsl9iGJ7YzRFVAeW0/LPjv3RGcQOjhq0psyIvexUyS+VV/aLUcWpQsxxaEM0hhpfL024DPCbOZMUwoOT9ipwkt8uLiZ3y61gHj2HPmHotc+cNc+0l6CDOoWYpM - -fVci85hZvgyPhqaq2JleK2lRFkbSwdXz8vNZfhC2kysCt78K5swrHrElPEp6id98h2yk51f/erbrFQ5brGMk139plXt0McB80foEhKTdvlUy9BmpzUnn2QCrez+AK/kdfknAh5gAPgBKOuwIqBcIHsdavowEmTX+YKr8w8WX4hjoIxTN24ehVQIWy/PI53eLdbVnVLq8XAqP21ZlC95hvGDGnSnpXcLnRCTxyRLStlX+CtbJ2zc/vl1HTh+WFyv2 - -Bb2XTDFz4jn9mKiyRDzuFbjF7qDCDH/ov9Csvq0flyXzJWN/A3EKd5i+0AyYEh6mE9M2ckYtPKWMnoSN81ksJ9h32D0AeYA+ABqAFTgEHpAzQalavDTNwDu5n7fBIpg21nuBlGaNGEKrDlYpi9e8xw9V3fGLJuLWqGrVOqvuIR9too7pIeeLbGmFnO6VcIy6Zl2fLb4H58sN4Y9K1PsAqwsymNRRGGp+NoklUFLdlW+zRZIP9q25lsamJwWQQvdJ - -eU0ysincaEanMdNAEaJndgJwjoTT7LTMDle5g/HWkBDU1p7lO+uYxQ3MVybL/96x8vZZZRA8CVvdzSbnNqttpbJS0ZqnCLmgXbAtudvbS71WAxBqCHo7MX6cJS9sJv7TDp6QwvaNaf8Bnx9Tyk8XcW1gMYWk37l9SLoFmgsu7iY2JeKBw8reLHzh39eb6ow5J7rjkaWg60ihtfXWVGnQrOr6QF0DldNPdAw0Jrj27FpMVca9g3duvlNziHtIsrqe - -60A6RJPzTzmGYv6FbaHSFBDJrYNX2E3J+dGo6DV+m9FkXlq3YNapixzF55zfq9vYPlNfZi6QhqprZhW6DSn9WAK4AA8FoNI7VE6FlWh7kQpxaAR6mKWTPpYZHdPC9IuzI7pLP/ucM4oB5zkdSYruR2z3Kc5SxV5z1JcwqVPEOE/6XSMpZrhwjQFWnb2l1XsIkSMxhHwPMwAIQM+LqxlLHh8zvqM1Zx48R5k5rlHnTU4TYs8TvWGgIceiX+31RtL8 - -rsT4FASpIXFMPkhbI/fuQYGWlaB9AAKecTjrgAYVkWwADfCd1z7pB/YiptcDWN4BVBXg1HMyQ2r+iEnLrW3BzCkb8rBctqndIvf0AJ8zC5+CjgaK8iuLxcAE+e++3dxRW2bMiOo3i/7q3tp/qzuxyRUZPftRKVcAaM8Gl1OZaJwyGp/mWOHL/PNcNf6S+wF0XLwX1o6tLcpzK6uV+ITx1IZGvVUY/i3kSQqrrZWjcu8TU+K6eVtQD1D7yU3dit6U - -6H5tOjBpmM6PRBYS022xSkjG0bnG5QYLgiwyRlPlHkqsytpldjq6FoMFz3JHfpOIHvDKzX28pF4Lmfv0YSqcw2AS8hYJUmEP6m7Hy46iiVFLUYaJEvIwe4I50wv+j0rX3g2ytbwS+405azFBGRV3ttqSdba1r5z9rWtWsx1elfD1GpaNm0b+o0cYezKzq1rHD60anyUWAw/KxjV0eBtXC+bWbZZI412BgnjkQb9pg6xZs5acoYKFb0bggQMye28z - -6nfLhPibruMb1IRMT3C0UrmFWSQjrhsJJN9GoKrmq5iSur0R3S0kFm+FR4i4gQC2sJ45F6iw5JOyYvXjTN73ZK27XISolM4TPVO05rc7SurE0Bq6tcVdrqyD5iP94edjNqYEkbAHQMUYACbpMQAzvjXtCCqR/9d0AhXTnBiEaCbeZL9l2YtUJlwmHGuXLI3zD36Nm4KkD8lV752KzGxSClXkvpPM7Y5wgLJRXqqsQ6b7I3jB3bgs6LfwMaik7Btk - -Fb8ptIK4qNWpdZzW3cc2LbDWD8uPRaNIpcp6CDDZWBYOduefi4na+6r1GqVqsv4fM06bl5RrmZXVDNj/rTc5rpng8J4nf7PPEtcC85e0fLl7JRnVaL0s0/fl7rDfgHw63QWa3FdmlqD9pynfOPygYvixNV1MrbGryOsryc4wzuJ5cjeWWneN65dYC79Vw3LKgX2yvp2uw6xiVpErKInrsEWNbi46nqlQDZ1HuqNJqeGywnZwFT0dmeOUnlfFXYnZ - -1Tr2xK/v3NpdQk4wm0yuTUG0PWLCqxi62l7lr6nWiyuf5ogs9R17+zQ5WzbOHeo46zvpp+LLzC2Ws88oc64myujDwb6iJMM9lH4gmZo2TDExok08tocM7vbM7tHQaTOAwKc9YSqdefzIvZzLAJ3MYCUE/OXVeNbpM5mJbrsV5yuWLGN0Y9SvRsLywpC3E8SkLfAT3cfi9eDJcPTUxr82vCcE24VzgxdREpXvIv2Ff1YVfC5L1htKQd7yEdHsWSVs - -cJN85ZR0SjrWEh1FpKjyFbk0RgFcpKhAV3e8ySaPWM05jotJ3UALoTFoGxl6HvnC4WJhCkTcoa0R0Y3ZkrmQ04AN5BF/S1RMD3Pb8krJkggCgt5VPWCKQV+Jd6loWPDVtOsMf0xh7GFrRzpMyuZ+DXK5vJLRGWDKskZdKK5eZkKjTtWJT73goXwLDp+8zc7hxahyXsJM+ORh1WYQkFLLgdb3q5B1sfUw27N8NdVbBnSy1jQrLlXpTPg9c5a4/lv1 - -rp7G9v3Bmbh63YJ3/N9xXPb1Q9cdS1YKNWziCWPQNp2vw69Lpl+TfJn9OtepZs1Xp13KDWvK+SNEsdBK5N5pYr3uS3vUDPBXw7sJ1UzuBHe23LVjkCw8VgBDAJXNyt20dXHYZ17sVIUrUvNqss560mcmEj3pt0nNedYbgkWe8X9bh0+u171ucMwMXBio9hmmzOWcWqtYlk+C6JAiDZP7wrtHccs7ODwEDefXcHIXZRIwo41uftPf3LWuVhkvcyWL - -xvWSw1e/ooknokpdl6h1deteIYH42tddVtKrbePMaUXoiPAMKAQaixaGNVNSjQNey1zOZ5Aym208a3AArWTAAFLTF6OOoQegCBICERCN5jCZMXoDGHlEe1T+fNhBN2xpwy9+e3aLelWbau4te+Sw3uHf0QvxFDRj6bPKPiavuNTYwbovSDUzi80VznzDLW25FYXvYy95VpMDMvI/6uJbiYEWdxTLcppxr0B2WYZoIQAJMokgAOBCaAHY3VJVs5Mz - -aKl6ygxoUqy+e/5MKLSkY5utrsk7jJxVNB4WkHI+ha9Jhn1khrNOWR12w6uVczfRx7rUpV2SSj93gA7TKxr1RtQy+utSSDK1hlwTrQPXx5PY8gqs3X5rDNu+nxjNMtb2K0v2p5T5zGfzPllY4A26hhAtkfmwvNdedkQSL19srluWQXMaPCx6/8R7BzhKr4sv6wfbK/HVum1uYWbknXkd8azR1piL+A5XXODIvdc1f1+ZJUxWdfRqtboXUXF5+hCt - -mh0JJpeeKwSQNXT6iqrxNnidPAe3G24jvMDU3OlQb6E46FxKN8EXwBteCYMa6B5FyLljW4wvGXoig2j1rShsdmT3P5ZYKPYaeqcdZJGK8ADVYOGfjMGrtF9LBkG35cajejJ/UVjLWeoNSDb+PRjJlOrweXA00Zqg9rjaQQgd3GWcB2YDrYmOhME2duA701S/sZUQOoN5AEqg3sZjGDZ66xbAEqAi0T+92kqZlbesB5Q6WBapL63pYRpPel93Tj6W - -fpRv1ZpHS/Vp9L9I6JgKMjulUTrJ0tDx+cnnJS7ltHbKgztNEXWZ3Y2Fd5q3YVoQKacHxH3gadEBEZZlLikkmy4ND8Yrgy8yUR9sLq67NFqi90xm1md25ibAdYztZ2gk2huktt8DcQtGXAe6Dx5S9D3FWHjMR/oYGAAUe3M9TUapy9LUwAE1ydkAkZK1CC/5Au4kmIOjkInAy5bQwevkpIaJQtTqTH0A/8ZtTbJEaeryVmDotrxfnqxvFiG1jeG6 - -yCWthtgvc3XIMJaQvav0BfAzQFFT2D/3Xs4to6d19JBBiGLUfHDhtfReoCVBJcxsD3mZauYtKO0zOVRyMmkBztVfGr+DlwIU/c1owV4Izhm1q3A1p2cuwQVsAUfi9Jsl+gnLxsgqVA0mY/41mq6QbyY0bVPPibvzcKFnGVooW/XWJWf4vQwV7yTOfXiHyd7xa5M3sV2AKo8p9qiwC2mjdFyu4wtnhCs7MdaK7aKCgDLqWhT2aFcCy8QB0kbq6CSR - -uqdc6K4R17oroPWoHOdefq0Ir5JFLTSj0Bua5eBAOmppTr4TWzU0zVcwG8MWzDrrvGpqsDRtQi4yBrornQ1bGtG+n2w+2VxLDNtnXUPJle2K2Fa9+Tq4ChssPQKDPQyIMZz0uXa21cda1y5X5q3LNqGoEN2ofka4E1xMLvI3nI0+cbWK9n2lNT7/W8UMkDaHdVCuvjre5X7Rv8SsdG8hJxUbiIWG+stXTeoNG+05yqSApQJPAeN1MQw1CdvkSgJI - -mcGbs/eLdcWONRXUFF1ZpdVECaG2ppKhXXGoOuOEuCU5cJUWgjCDwtFUc8LLlB6ZnWUHBdYxpOd290osu8qSmQGobM9AaoLrq2WFeuCWaok/lxLA54cpwqG7CW663rmP/zJtDDpirjwugE3qENMEsB0ym+FcMfdHh4ezjIW0tzXYgTlvAWBnLL6qJ/H9RAXo9nLPYY5trodAVXFMMI3O6npQap8UBUgERQcJbWgrBFqiqvfxuBPeKhqYbOLWbuuv - -td8kxDp8tjmEaeUoLSiHjsuwttFyR61QsvwabzbSoTbmpPbQIMA9cDq/fVz8zkKrsn08NYwfXwZN1rUYkiBuFlavq6gx+YrhxWTQuVWeG824JyBDiCH/XMajfs4YMl7IdtnXcJNLcaAky8x1Hry7GZ3MsWfoGzWlkTr03Hn8upZeuc+llniLz5WXGupYBoi25m28r7+WaFE+BdUi4RNomeeWmMUtYTaEi+RN0NLYWX1yvLcapPRX5mnr2EX7BPAx - -fxY5uJtnrnA3SEsQ1YrKxNxzVVgk3UIMkdc8yOgNkzrYXaAJOITccGnj1xAjGtmBH3yTdAQwY13lj9jWEZP8mfiC3WVjSb+nWtJtNlf+/muU1WTdEm0DO48fOCNL11gEsH0VvPe6z8ML7rdiTjPY13Yz3PdKMTs9K6p6Whu3RNpTg25NhybMTbnUTuTbai3megwEBZ7UlqgaerMzhOkEtYQ3MY3/SVvunYCBfjK/H05gEwzAktm1oQKR9Si7GCoL - -FQcfU1Mz8cpcxucoMnvUt2vMbQPH6tVdBddLB1avRGruaG3YkDkI2hkh5PxpvXg0SI7KT9t0FuduEfsQRDaHSb6wLWELklmI9gCgS2rRAPB9HLyE4oABa2qnAPU1QWC5e0XdzI2mHhWfySUQg8phHDd5P6Tl2Jzyj+gTPTjXle0bXuNleLMw256vMFb406pxvGDJAknzPCaf9ukj0AH2TDWt6vwlBjvHzlmcloTmoEuCJcc4135sOVAJHIuMwRZu - -mxFx2TFC2WmOsZqaK8xMK7kbbrmQlzKTd3w3AN2/TxEW9qsliDIS8U1gxDwNXCbXMJZhUyKZvAT2OmP9Nvla8U1P+z8dLCWM93BpcGk0/psprx1XgsvxceU61HZwD16WmT8MJXv9a/blytLXWdo+M8PqrS9WVo1rTtnS0ugzZPbVbBzTrPzm6TMadZU6/TN/8z+qHCf1J2dKtTkG6oNMsW8l6IDLYo9Nqmt6s2qaSwZnuYsRwhF2aepG2VHnNZ7d - -kDbQjzoPRpY6dvNtTqxY1DjV1SJrV7hoYouqSxexzMnceU7hu7uSzJ4+VeHHBnbEVYy9gWm4tUMQ24RqMFrUG38W0yEYulVFb+knQGJdwbW4S7tOiIetmm8Z3XBOoWyXE6ps21NQjGgX3cYGA1IakkU2ktgQeeASfR130ZoQjEO0gaxcaedZptC9fh4cVVncbZVXzusF5rE/fK5mfLqJnzMvomdl41v110SVrYstAFoqn2rC4E0SzwWjpsi5GX2s - -ZxqFLRESQ6ueac/G21JoGLEEWFdNhabsFQ35n7AquXkZvepYGKzv2hThV1XmYO6ja5G9rl1ubcE3mJstzZJ68tJ1Hrlo3csshZe5Mx6N+zT1BWiXqbFbtGzspt8b1DIPb2jzebU1zB56b5JmKZsvxZc7XqN7hLlzmxct/RY/M4PhqZ92A2p5vv6ep03ily3jdZg+3NbDuywysYrGT3VWar0VQeP8p8VqaTq+bZvOYlZhK5MVlWDhPWNxUExYEmzq - -Z0BL6WZtrO/zdAi36ZymbgoaNLLpQeAW8LB8OrG1XAHPW2f5fb2pwLdx7H84uuvscjaj1+aTFc3jlOOdbc06lJqgr7+maRvNlfVMzcp1nTAM3h8PYswF6401phdalH0BB71JokuUA3gdJfpXUYKYnBGtsBovGaS02DlGowy65fnQtr9G0Tc41heho8QYkeZ7Mm+ZOBVZqDTRO0Rb3M3y1ULNYOg3Vpo6DDYHi8st2a166BxgqJzEnPUa+cWFq5me - -wg5RLncz2EwCpk0zHIQKcpXkDWJTZPhedG06mD1nKJJFcPLa8uG/krLQWVuGpRfswUvx+q1k/HU4MN2YSG2WZ9IbfZnvdaPZoG7UajAH+TsnRW1+GZAJAEZ4mAZPGgAsqDoFrFOAWhigWVcyHRdWh+GpMRQgotZRgAKqE7y+g28pIEA7pTjkVlzwygkGcQBgzNhPJLqZi6opzUz94WE5ueDsu64Wx0hrqc258v05ej9ZhG8B8PSw9I7oRKfXurMO - -gLIB6rY0GlnCq7vVvYb+9XJ9R/BZ7tXimnjr4iXvguH1fjK2qBlbj7c2PpvM2sQXZI1rjDpD6HM03FZeK5Lp9srjmn6Oudpc/E1R1kTVMPLaYuEObGk2/NqxrpLHec0EJbNy6Z13eTrSWj3XEHtS3Snx8izE+pVivIqdg611l+CbBW7s+PPLpQmzt/LUbYqq9JtugYTC0upglLFmrqWMIseNM5mysBbyr40BuzEYpVa6Z+8rdNmBsu68tqww4Ou4 - -lMA3HOuq3pV5ZcLbcbYqGI/MEdZH1RqZmEz2va4TMjLdc431/eUzp74voCfxc6LQXu55FDKGiVtu+d9S39VCJThK3X3MMUaPrfvWo1GrEn4DX5mdxjWXZ/rus2mYos0EuZwydi7WlF2XJEn4EukSaLIrp4x9LPpAlNNucRAI5RLEq2Iek9mW1pS955qpBs0hCNxTQ2HianVYRPj8JykZePuo0TGsQjwlHJfmll3w/vHPWNsVzyPXyOEZp+ekfWnI - -x3mqkbV7FGgDxl/QbQBJQO6FCfRG4HJskLBYno8MUAF2xvJMLRz2gsYC4tAErQDAAXhpb4jayQxfsrNbyQJCVW2BrnhpJqco4zQ5ZUsnhdjz5Lduk0N6sdEcP7If0YFxKW6J+rwdV3WKluKufIa/TltQTtcmMpR13MXwD2jEaWVIMS2K4jbFMZ1VtkbjtaxOu+Zet49wlp5b5/W1yvDYYJmxGpkCLClc3lvOaucE1Z+gGbEjWQEtvxamI78h1Trz - -AH/b2KFaC08MoVaTShwVGXXidatrmlslNZOXRWvT1u0C4pFx0Nb+y6EtoaJOK6mqi2rX8acEt0Qof05ppgH9WK3SuMdZflG9jsQ9b7pYGEsFlZCAyFZW8L562UsWXrff1ZqZ4H9xAmWro7HpNRGXzLWLn5rP+1LnpXCUtlxymK2Xg5Q1ofGa+rJlWT7AIlZMtRdEsw5glKhszWH21finvbS6XDijoqmr215ppvbfBtb4UKSGjpAeLfIU4npgPoMW - -ZwOh0WlUYHo+/2oHSAkXmEAEIGF0adx8OiU1wxtoGd1FiRLYAP4baDONWNxAX37asQnTGUhkE9DWkEFu/njv02/p51pbYvvaVw+D4oX0YNuYd1S92RuYb2UsJxMeldvxAmkQz+ok9k8nkXHH2lzl6lrKriT+tUHpoNiN+k9bHaK3bPVudxW3dNqDDvMG7OsaAZ31RwN1Cb0bWjL1Tn3z86NVq9jXjXtsP58fQ6+N5rRr+y2d5s1ld2W3GF+tLUfH - -eNvJ8buWznxuBb+PXB21CTaiC75tr8bFnWWJVwzYX/ZUezCbFy3r8OvFZk6w/F6zbKun7ONu2e+m8ImX3eoOs/JuKHOjG8oc2pa4G3HJsthhQFejVn06VZ6t1PgkhQOW6zEoDcbcSN0fa3WOOx5zSonHnACshcXxkiAV6tDk56gNt3XpY85fdYtDgQ284M/jhbM7VU8aDT9Wemsf1bWuvx5ogylhrE1RbgQdJGWbDpbvY3FVNFKbrJH2/FAqkrRW - -gA6FJBUijgJ3UGyqgHKEWVGkEygLqBnTGzdVqUJtQKwaHLqco3ijX2pSlcycPNNblf73kvImZTm9mt9fr8+X/JOYRoZpSRcofudsF1Gl96Jui3qIAJzj9mWisnOdkG6gtwQL7E2oZsLzYtA9Mt7jr7amU+OYRb+WlE19ldhmb55un9aYTWdts1rmC2mMuEJa+/YEppHbC3nOnYixe/0VyMwirLzIjTlP8Ec8bvUrM9iXFyDnhp1vEZUqFPhKGnah - -t11eAtTPPKsAbQBmAB9EypoO8ANQgAvQYJYb8iC/dER49NZiQ48zPmhzzk5RifePJx4pAstpJy+cR1+bMzSWyt/nsIazvZmzzK/Wbtu05dcna+FmuTV8GzKtaIFTjb6c+8z525gWaFzZYZU5GyFLMdruluidaX09sJxkbVc3upMgzvLi9qZ1+LNyGW9P7cZ8awCt8FbgM7BLX27fVg4/NhjrbjXHisoScMM/TBxbLriGhs1zQb5i2UhgWLkG2rWG - -BoNj0/VoIRgg22S6i04E+6ooU0l5022eKuPGYEtC3vNC51U1iACDUOTll3SWgQ40VVN3qjLD0UyzNPTAw30KDVsTLRpphTEQnkpudOuupg+G4xwgj6LXl+vsKtX66+Bu7b9OWDFMelZaskPYac1Xu7nmW/7t12wkW7KlTMrmAvnQIiA0h1nUboO2Dv2S8t/0ztV/6beOmhqt1FAirQeVH0zVrWp9sx+a2raV3C1l9c2Pv0qpZ+k2w6IhbqO2DG1B - -KefW0B2AHdh4j64XGkd1OmXjFYeyFWxtPR+2gkg9GocqZKRONDeJcpA4ntuobjLiJcFFkgqcBhTbpu52nLgCjRGbNjBZMJdxkn2xD2K3AEEm3Optu3BcIXK0kw3Lu+xFr86nY3hDxjO6+qlnmjRDW5duN7YV22v1svNyrnJlOTiadlqTB5TszVXYwCGqZJgR9trOigEWZCvMZdMUA6+56Ll8X8Zvw9drW1Vl4wzUuX3lvDEZwW99FuGr/c39ity5 - -aVyzNJzq97pmvltfxd4O0a+g01gBHODvtZYEO9CtzebiPWeJvxqeNo9OV/U0wFnLW6ZJahWzOpyXLTnWVDsgWY7K6yZiQ7qh2QP0DzdNG98t80ber7P5sWJH5VQSUPibJm3eWufzpXSTcts1uE5XHxMVub4O8oVhtL/D6vkozZZ64zpF+A7XWE15tR1s8OxscBA7NnX9DuY7eZ2u0RWcw8aGa6aLYhjbuyW7hdLkApOZnGvmg04c96ScZmUQtD3s - -6ayvCyPL0ab/a65mfy29YVtbzsI07ATJTYzMwYtzxDwbSNDmMUf7a3fdCBTSBKhwOAxrq/CW10JDUO9NJrYcbG08WkWB9dyzTd4nys85QbnJ1O8sXttCc1ZSQ/RJOtIAPIXAk11apcyJlwsTGsAZACyjNRFPJ8gxWknTSVriSVu/DLZWCQLYjwFnq8VY26d7WC6MWY1xvgYQFG0NNSEbHcrlpsYwdtq1jBo6LQhmPVNGpd2+A2Q0Sy0RKqIC61pa - -W0SZrk6yl0knOdLZEK8rR0Pjv77j1sILccjuMVq9b8bI/4sHkaAXTId3NTWbL/mN86Yp0ySlmyLxXne5s0zYAc+m5pg7LM2qevIlevm8hFlqz2+HL8N7Ha1s0XxivjR+2UOIM5ldcEJzB1Y9QDVn7kMfwmBuhhErl3wjYuITXog2V0jetzQDM3qdQARjcscD4Sii3cC0JbTazf6yINmg0CJbVimONbaV0e/wORFe4OVAHqAB/eb1FjPGgYxdAHlU - -FWAK4waFJlmUpVfYwIYoeHc43BlOZL1l226bMysFQVp1iZHde8E8ql2vbO+2jjvCbdnq+T59ab8hIsoDlPl9gXWxxZjulsTATc1U3q3rtnuAxMXXjuEjd+2xGpz47z8mqpOUmYOWwSG5TMZ82ZiM3zahO8lYOyLUjjditaFcz8/SXDuN4YWIVs3lawczbttXNVqG4/NI9dsFVvtvU76O2DWu8ehr264WuvbaZ33OuInbhwx3p9g7hKqk/PLGZ9pB - -ody1uBaXhH3AnZoS8pFmgblZ3rlNqjeQG37yhmbidqm1ve0cSvVyZNpdH42+qvQzbF6/Q53hsA4Tz5VXcfK4YOE9ujwaI1tN8SYEc+7HFbTrNWVYuZ5fIaRjbPXDwNHKlJ5lw7uX4/dw+IFnpCO9aaVm51OvHjNYX37qLCP6mXWaICreKj1Vtouo0OlvK/qlJXxUb6S7Aq+PURfvRkuRGvi6dmB89S5wsT9ABkQBdAC5gk0ASHNNSdW5QSNynM5T - -QF/Id9NZwE/GgLvu/x8abCSxu9S43S60MiBy7D+kGClsGnYU4ycdktjZx3XWTBQBa5H2aGQOPqnLotZSiQ9n3tupL+A4D2ynTcUM1gtg5jVu2vNMBZZX06RdmLb0CXufPw7eW/TCSwljoxXi/N8Db9O6idn4jCA2TRvZbA/Y2gtytze1G5qt4Wa7SwRZ0zbhm2so3PJbIu51ljscNuW/TJbLfs025akibo6WYOsUHeYsy6FyLb+zHaJveXqou5dN - -j5bIQXZGRAzdFGwJd3kyLnWan16XbWW0UAz4x1z6Gcmtgf742Ud4sbIZqfOs7Gb868r1ktDXW2d4Ua9fHvb7p6zlTrC8us2kMg41W8g5cDHSIyBC5L5USTDeMbgpyT6l3XSCu/4h78ygSHGrJ++otmzOFnJee2hMA7s+Dctmeq4TLctXfWMsCPbpAeQcwAqacN+Qs0ABmFvFS359AAPhvGSfePX35C68QmmyyMDwAssK0wTMKeErz2vcDeN824Uz - -mVkw2LtsACZ3LQiNiqrSI24IkN7gXAAr9P6gFMg3ast3xQ1HSSBB5uF2DOOZdR9WbsNt47+w2Pjt86ssE7vNlmJTFnE0vfFaczdF0kztOnWRxXDUwva/HZ/Xjn0WeQNGvMau5e1y3bhpaIYvFu16zWZNzszxxmzxb+ROuu1ZNuAEE+7pC0UMbwgTfJQ8q+jtfSimLyS4ogLJk4YXKoAAsMbx7gGgT+B6N6wZhCAC2Df4C4RppV2AjyRVACWgiwJy - -jgGGVU4CaIeoLCZJoddA0f+PvRbauw6Vo+D8nGlBOnHYcc5uSa9AmJmsjNKfu65eKkD6dzPmVK14XcH8GebUNT9LWiRs0XdU20VpG+LRvHX5NzcZFG9uzcXb41a/tvQhagk6UOldJaAmmMuU4LXO3ZNZSjoFXFzuZrt+LADbHNdT53xjvR4b6m6W2LOGQgA71godiqalaBTAADQB1TipNn+8uWWGIS8IdvGJbvn98MKYziQTmK1jo4+fL3VZOqvE - -fXrgdWTKhCqGjGFl597X4rOPte1S9MNxC7LpXkLudqB+AEoSJhgXuxNOMnvzOgPLQUFCTDLaksTXeSQRAsofbpnGoeunLfGq3M+6mb5lbNKsjqf/fUZdxTT0d3FOslQfHwUd+lRdekG37MM6eD7Uwe6IaPh3zNRHVZVQFpd/CbwYz9fPQQS9y8Sh33AT6bRuzh9gtCp/przYgBmq7uffpru3dUFBL5G5UVsBNaphP/phu7b575aWBHwwc1Cwpwo+ - -JGGWJ6Bo3Gmz4MVCR5GJWsGLH3Ej76mdDKxmX2Ille5cFpa4sxymgadG1CWEcHFpoRQYNL0HMhO0Hu+9VhtbKP7VEN0Ees03Ztq2EhXLYVuQOboO8j1oyLTUbcE5S7aE6yu58+TgjX2LtSBatHr0t5kDCPWCstxhp/M5cxubj+36SrVJtcWtaxR6hhh8JmuuLaqNY+rh3DkBTTNh4XNafzBzaHKV2e97+U+4YGZD7cydVdJXPqxOsYFFTMG6s5ri - -X0+oQDNAergY0sZFNXod14qIaJgjWa18HscTEtZl2BWVSl3ZrS1KBflMuj2a8udnixrZ6BD0ElBUfavTDp6A5lqhsPcIQAHIAG8gklpMABZ0DqwfxJCpj89oHKJVgDkAO01X30ub76e5UmMTYyRTDWASms6jNfnuOImiI3DLDe23bVN7cPs27djPuwa3qc2n4B9zUX1qItJuIdsE3jcsUxqFmrtQgmrDVPja6W4D11PrNfX6+t+wbhIi1Nw9IMaM - -pwACSRO/MKyJCkD6F6ADTvswpKzGuU77sWtPOM4BCgFPdeayEB2S+6K/S2OD0PC05SB3c74AufgjWNNfjbYoWFBNOlYSSbMNk07+N2yaMxHsqK5DqSq7noljP4QUEefZ9150trS3XS1GWDbEI5V47j/dZUBv+8b4a23N2TrxjGN5vGBZvI7nWyOrw82x1s2RAnWyQyQ01ELGTTXRPBWkwqesIL9bnp3McYemW2vJwXrDA2b+vqHcQY7VB+8tDLGO - -612gfcO+nW6bzZeAGev6psyuX09hi7Az2DqM9DvCy0wl9UG20W9iPzVd7Y6vt83t6+2IhEHyZeQh1J/Lt8d7lLv/kdq7ffNlzbjtq4zuEQclte+4kljBM4citQbtKtVJRedNfd6+F2+ynfS/pZnlROKSIrusybSC8NpkJaMuHL+nOHQTLmuqgOMG6qai6h6VK0UlosmoT1bHnElvIXHvxYG2abgNC8qxaKOqaZssX+PpGsvE0qYNI/R5uIbBYG5I - -XyqL+vTsdE9DD3Cg80ZAAYEA1ggT4DkZZZC3hNQnFK0FJbxkmpICcDDnTfs+0jtX1FG4CtI1xPUXvcuWHm2+xM3tY4hHnm7Sr3enOslO3f3G5VVwyrR42T0RfgD1KUFQHvIf88UxVnuJD2n+F+AoPY3Hxu94efG9X1oOrx9X9GPY2oj0o2trlrBh3jQORM0wS2MKnlrbE3BiuqNadC409qjFi93TGu/LdxDRf1shokr2a/N/waz8+nd5OtZnFdys - -f9bTSystvZ7V0nRpNCNZFDe3puM9ZR6OntOtYJW761webwOzAmNc0eJ6+m9zmjFu7KcFRMc5FayM8Ndz9LCPBPj3QRIokkI+ghLRSUcyObnp/a77FkR84a1JBQECikFbVFeUpdUUYyG6I9AQF+1Lc86vSdMq9uX1jKqLYqjd3VTgkL9DfY1/btO2I/3X7g4/rCAIQA+ZRO6QqITvZczQBgIoBRu6sG2tpgMbiBOApzSRBFOUequ2gPZIwpUB22Gq - -CGDe1PSs9rQOIpdsYtbeS0iZzyTiI2vks9XeIfBSAZqE1pCKgXVPnRCWz2yQ0sRaJNPfdaCtCKifEblfWA6umvdfG7RdlcR227hBvNuYpi1K1n3bbgGnGu1QfA+xSNyD7uJ23hwFXEuNX1Um1dTOErgNI5h9XVJi+UsjBHUemTdcss4WJ7e0ne9QgCgNcsScdAd4yQ8xBgDIygfVaMBQgrsDY/uJlNnGm8zAAQY4f8QLZpEdsw+azBmADl2jJLzI - -Ztu1dA+C7ON2kLt43ZQu5zZrabxLzCe3iXyHlovWIL6gd2+G11JeZshXImm7mgrAeu35ajuz4Bi17t+6QPtodbbO6wdrcran2Q/OdPacO+z1pGuPynMa5GZclXSzO0fbitgM3u5vfdOw1J2kQhPnVUOguvM+4/plOA3H23VBXQIE6491WwN5gaPahfHd1A9sAR9befKjGNgycRm/aeoCbREWI+MAzc83Qq16kT782wStzPYwI4sKjh0zwnKBtTZd - -4/N9NtljTA3ePzGffoTQmtlcrhEAjquw7ezvQYF7ytKtND7uSMePu0V92LNpX2whPuNk+QcV9/8d+8c1ohz3Z+RGyhaselOX38zpUlc++X28E7N92UtUq0y8+wYGtwa97nuT2lfas+2j+2xDUxn7pPcXvzVFVh4b7t92cIsvSaJkywmufrp0tb3M7uZRK7P19qthGZbDunxBZi7Z28Q7JCHCmvKn32+3GVw0RvJW6uGuJuVY6e4Rf6PIrNvL3ebl - -wh3y3glXO9/nI/Yr4JQ2qiFKXBLFUWqJdc2eAI25UnBjQtknAttI85LYkVfGzIiFAuLRHH6XGvqEP2wHVINNuBbIk4l7dcW0XvFaIr5knzJ/zT7gfKpaosFw0HGdnectQ5SWDhccS/f58Tk/zjTsVYPZdw3jVrFzLfHJcP41bc8eW3a7FzTwTlxTKHTG4UyWoi5hgrBtg3s04XiBEQE7gd0smi1hqnGm0nkAxsVbYZX6UlaGK0JoA3xmcVkIUBpg - -D7ABZUTtNc8NpybCfBqFbpQshqk60aCF06/ba47r8JnXksXddyS+Ut7R70cWsnsoXZPs38lhVRdRnJ0F2wTExRrMca7d43qUqmWwU+7m2wHr/N3gytc3YRCwRRvyh/jM6nsaXZBq/Se2vzhC7Tqt7KZ9+4bZo9FPYDHfu0Xe6dbpBtX7/EW6ssuKaKnTpBjO7Ef39EBXzcnFbH9ptLW13XUN8tbM66Zp89ujZWPAs/TceUw7AyibKr6IsvF3d8Cw - -W6oFD/vnBRvvKfHc+vN9T7gun6e3fMdd++azNGxyr7BqMjSu+ho9ybeTiuVequ6eyeK3rCoK9jc3wLMZ/cr+8H9j37g/3bItZ/cBQwH91kJ8NGth7HZfMS2uCf1pu0bgjqfOgEKdSk4f6pMbzz5DqsS66YlxnBJ2W9EyA0b8fg+akuzExVx9bp3NOaxc1zA1z/81WOdHdSDVd5H2kChGz4TCzaW054/RujjVkvzUVQWXPdk9I8QGhhWGBs+Gm8WE - -ZviSgMYbwI3kFOABnt8AL7RpKpwAwZtAhci7IwGFok7jDIZ14l0ShPG61zlFOKXe6TKPdsaznfIXksy7es81qlzPrM9XVpvGndIyy8CECWoaTj0PKXp8nTR6aeEseg1ePe1a2G3ABZKjYd3oUvvuqOK9rRlQrcl2LUM1+SBq33nH1rjU6+87O+ZMxQFKrDrOPXu/lTObydcKhoQHtoG1X7oA6OmQkgULbldrXFJvaowB7ID6fJH1n/SF/2qNmuTv - -NKBe0r225e6UmlcXrDZrYDTd7p7obH3cVYCMYYUBCYa3vAe4aQACaKqUszyCivCrE3y4nqwBUBBrJb2hxvfKd14AG8wHCBTCQszh5YKGMlCBUQi8WCp2KroXUJ1Dnj3QvjS+4qIgn+wSrpXEV8fZ0U7jd/VLtwB3J11VYeQPTK5TsI0tOrFdgTtO/3tmSU225CLtHmsrm12d4HbwEn+kvX6ZzdZINz37jXB2e0TLcew8TpuD7nynZ3OIobGyyoi+ - -FjKfwBuPwHe8C+ct5/1m32/e1AreYPSRiEJr85EJJVnbeoQD46nldK9LPTRnrYP4kz1uP4BkGsWKj3e8+0N9pdbF4ayUMXCxoo90i2dgMNWODMEqsZJXNZ0Uhzj8HWvdaE9Vnn2/YHYYXrTW/1jWB1H2loH7p7FJtmYQG+8+zHz7/A3/pPd/Ita5MY9r71yrU6MetbQS2pvJb7A9aJ60m2e/9bewN4H9vEzIuIqZ0myNW+s7lQnXXt/+qaBwn5kA - -jVZF1X2GiG4C4QtnS9Tm6rDseNYNA1fd4XhqIO0/ueFrTU+6a10unFHoHD3Vqs2ZEWfnDvyyCZD/WeYXShR4sKhiElnjJbOAFafSwsKwxkU9jlVwIaR6+UIMNKthb5UlDjXbKAqsKLr58Slurue9ALI36t43Rve4bOx+eYqSoRZGv7uUn1tyXybIrcnIcoP1b7ZROb6r//UneCq37lDMjIB+wgkrQHVO9ILRig6u80qdeqeFLIe91uArSO6PsTpk - -pNsj8r/XBqG3O1587bq20LIh7lfDeIQPQdieGAZhcCBa5WqoR/9b3FJlDAiCOlPaoubwrh6sEGKvjo2CTlm3wmGWNcVY6Ice0XJ+Zzsu3cAfy7eve2Zlqpb4gc2mr5Zzu+C7Ce6h+Jri/1YoH1e2vdlTb/229P2zA08qxpRB2NlC3AvIjgfOEoOLWF5mUgNPyfbG1jL4l64bBBn3lRZQBsjCbFIQAuZQncja3iMAOjwZCksc0cnslZKNtS5YBjsz - -KJgfyhCA9wN9eT6oZRbh8tv7GTWxBR1RTnznS3bfOdiB5KF+IHYm30RQ7knNpIpS3abBcyAptYaqpa3ZVqpIFfXAnN/vbpuwBNsPjRIaWztA7cPm06l33bfy0JGvT5sme9lpkAbyHXZ5vOaa923bB3CbKgWS7vuCksA23a1L7YIOgeU2Nb/B6Mg3O7P/WRhOW3mQW71JEb726TrnsfSY+dXId317TYg4Dt9caYu1genub2p7VJs8XRQ6ymV3dzbr - -3yYufg5L+0BwEljvLH0vtcDd64+1x/rjkl3gIdF9v4Wtl99C6r1WoNNopkoh3Nc51r6im1fbQlbi+xBswNrC4OV/Fwndw632EecHDKweIfebfhO8EdrkFPODBCv65G4CfidxcQhJ2hyCcQZMB57p8wHCU2fdP7TBma0KooemBbWsuuKkYR49D/Re5GrCLevAOzKDU21iZ2weGooseKrTwoaxg1jlrG5ZsaQqv2yaRlCrl3Gctk8zdtwiA9gK72FX - -aTmEiBvU7Sd5MkqEsATAPUBoY9Ld9K76GmLgD0ADzQRQAHGJW4GyVx6Sk9ADG6W4ADNAr9IeWcMFp66sHIEkA/Acq2Wu5qdodQV0PlqrNz9dREQ5DTrDwzHkDsA6dQO3GD9A7CYOyGst7eTB9T5x7bMDqihS+SX39hx3GztVv3LHuguB/XNNd507QXnOjMHA6jGbWd3qjBx1sJt3lawG7Qdjw7qTWPCXQxch6z2l6iHxC3YesVRvsk57RtfKOZ22 - -DuwleW+3wm8yRK1XXwc1PHq+3gFo5b0k2zpNsxd6+1PW9QrbakdTtm5og3YTm0WArA2M5W6nu1IPGdw3N2JXnJs0Qhi9VUdwcDN10K4GQm3tYW4V6qLTygxzvBJrUy72myJN04sWXV7XrInRW9aUdYSNDFsRBpUh4d5drt4rGRq5LiHdplhLcuRVw3ZTnKYbce5IAfAAGW5+XFbcTFUB5GakedoBUpas0C6c75rIywxOd2FNn8ktqDqQILM46wOQ - -oTxZkCyY2tYCPmXowcapZKhwq9vAHzt3s+u3vd/gudiT/CDWAl0NhGJLW7IqILB+r2R8WoXqXnXY9l8brjWtPv03evq7a95At0sPAJvFXv6PRL57hrCjXXDsK5dTLWrDjcRzj3tc7xDcEgR4hszgpR2v1Lcxaj294NmmQY6oeUim3BGgBk2iTzdoOilMQDzzToL0D7O/q2FPlFoH/sn2AP5UdaBqRbLwF0RQ4QD2rdTbbOANNmkQEmuE/EVpWpod - -8rhq+/rcTX72AP8MvENbKh11dm97QaS73vXBcnE6HYR593c1rGkQEQDu4dNvXbPGtLUp5A96fCH9ncjxrma5v7zbei0oZ3nTJFmuYM7faRrtFtwarV+ac3WR2bBHaUDyeVi03QvvNrbPw7U9gL7WIbU90NKlcbbOD6mbDz5KcMCIfruE354otgrAxvst7vbh/TOqb751WIz2n6brpbHQgFT2M3fPu7rpqgLRDjGbVm2hpNzeck6yidpftIDH3bMv - -iYje/MtuageM2ZJsQMccNtDt8FTZlzPKNiysR29mdjqDjLGlYEzg7N84s9o5ditgI4cwq2O3Tt+ryjXLBn4eUNv3K30Si+HZd3L7v3Pbqo6nQpiHCk3G0tT0tRSDG5vCbBEPC9V0kZgRx+Dx+77PqI4PaWYj7oSIMy722mI8v9iyjywYnJeVWOzWtVCldra8B2exNQvq7E3EWJG1Y5DqrhFcL4kaDnZsyXnV5Vj5UR5ms/RqfFMjx1V0TgLXt5zw - -PsW2tw06YrgI5R1usMbAz6iXxtsvW7JtdmbLeuIj1HW6i3S3pSI/0TcPxyuDz0PRR0gw+WNmDD9M9hXSBnIJTSp3HRaksgvD3d7Tu5EgZYrWa1C6BkqAjJgEQpieAfDtxknteq3akQkCwJPwHeNmtqb9PHPiQVVuqzP8O+fovg84q+e97X7V22r3vxw8TBzmt5MHqm6WyUq7RMfHJSll98LBG2Hk3bWY525TU7lnIz4tRZuuIxQt0vVutHQTsede - -bh31lmCHo/6Ol3XEYC7Rgt1/DOoH5yNGHbmkz09iwU962i6LTqYpkyYd1i7kf24hXZeZGHd7ZqcruOmkBub+pKQrpd1tbktnCLNm7anhzoYC2jchWG/vavubOyQtoAzbFmHa4EoWDTT2elCYfZ7VCGb3u1naTrTzCkqmFgrIgq2kIhY+c9cEbvgRV0gOzr3OCqI9lXvj7pJoxELQoYxgFNCEzVMhM+CqUenZ2GnIGBxipVZbf2Zs7owXrf8vlg+P - -uuvCh6YGZA1lqct1emIFD8P9jLi7Ae4AACDj7kDgAEIdJQB+dSCAGeAd2RHsiLuKXWAQQkaUQnbVDrS4g09I0guUCJ1Jf43Rl1joj1az3mfahKT24RvGQc6u1n1g8beLX9k0iVZfpLceIUwQ13CDKAsktqIpt/cH8RikBO/vfYa+5Vki7iXmy4fEXZGq5p9ltbgrX8IdV7qhU63DyGb49qmzviBtN8//D8+bhz3QtAfw5RnAKj/8bDpBhUdeta1n - -aNepcO416iptFddKm2qnN6zUFWaRUCgXZdaVq4KJfd7sMxnVyd66ld2WrHyOfR2VoGsADWiYH4icd5CBngAaAGTKtnZhoBy4wQ3akq8lAHQSsuh4szqXBetbTYbuUmUOHJwu5Y4FbWA8UYQP9RlBAzJ4B05BJcHzpXDouCffdu11C9vb6o99iCNVfOnINCgvozEJhYeEvHIO4aWxTmHRXTmPYg616ngR/pbp8Qcod8Jo9pkk7AhFqaRbqbuG3U20 - -BAm0KU4hOC72pj38G47Zv7J9gkPhzWwqqieXfusHf2Z1YdOEJC69dolmSX2/iveOmF0u8+Fai/0ALpPD9um4G+weqOpv4FcAtgT7md3dwOBccAgValXE3QiXgSpUYUdq7un9hAEButkao3qP4pD3/L9R4rYANHYSnj1njoiJgr6jiJA26OWIcKmexK41F00do4arevVTe/5etSmGCPK2tpXQOCw/g8Cz/hugP3ss6A4mlW+j2T152KmOIXwsVRg1 - -jA9TXg3s/2uBxhYW8+y4z4UtqxnaHpyeH3ZpnoLqKD7RAF29yJRe/AA2Ut00HDpm528ZJlSARZH58pBWFrtmfyQSAAU150f0sQ/KTmjnoHSMGU3uowYxuwJttJ7Qm2ELscw8Th1zD6I98baFqrVKAYtcYI+hyGVNhYeQsVXNfrR8qKB9XH5MXTdK3H8u5Q7zyGMbXH+SEx6oZ5NHyHyI1620biFR3UuQzNlLZIChTMJZWcu3nzNT3jt19qZ1psbt - -4xBCmOL/IDQ8YmzFmqzd11mdisvLfSw3BZsvABZ2dqNHXcoxMT1qLdeTWt6X9ScxB6FdF0g/WH5oA1OsEu2VlsNV6aPoYDAI+eq+jh4Q7qO2W7sVGVVh6ih3vtzd3l0eZGRGhwVJ8IoTWHwHMX3Z8xxFju1TXwBosfn3YxHXFj+D7ooxw0HXyvN09VQrJzt8KRZNVdcFk8QjqxbtR3jg5zhv8hft9LSHv7bI9OFdaes8V1wxGNWOFUc1u0mS8LFw - -PT5XWeJpsnIax6gkQyboG2iTvi2tyNLydrbUzCBZ4BEqeic2Kc3BUE+xxaj/qdGOzbDmW7RSnHbT2WdOAGru7AAAe4qk4loHXggzQc0VPRpRgL0NVorVeKCFCUMY2fCoJFByDROJBH0Plao0EQkt6mLPEJJcTqLoBE7iUXUVDx7xLMPC83xg98RxVDrA7JDl/MpKEn8RFJ9s37sAmgKFfhWah7Li1g0n2JqnuLXaYMtdhpZWNaPmqMFYags1StkD - -dt3roEdq+ynW6QNiAV1WG6BskzrJy2H9jO79JG3QvWNvl0/DcdrDcW2jAtLtAWHRs9l2jEW7U9Wjue23YC2Psr7EqDgeeY6i+4hZ8zHvxWNGtYRZ6LZ2PHXzCJXtr7M9eUx7aeuzDikglyu9idDoxkRy3qBQqZyv2Hbf2cVVjMdQgavisdzou6kqZm7HtfgHCAaHbnqtdjuSRLF9lceAJtyW+qQdXHJmDU/YXRo8hxV15k5RvXw/Y1debeR6a9WL - -bCP3EtwbbPO7Hli87RapkzOTBO59QbD5eVVWqIxs3yq6UDZNo+FSCnwgySPqw2/HBrkd1YGPUSFDYm7UWB8LrYacXgWZdamS3W1wRzV8KC4OKydrrps/cRKrogcPt/pfGC8uB/cg/mUUwDgQCEezHNQbwcABli5qfJZoAI9q1RLohN0zuiBV42jmljwqSH8bMDBQps2RDqLHcT49vsUY9Se8/u9ZDcQOBPsJA5Oi5OJvJA6kAW5NhGK9UZoScggH - -UMPd3Zw+yB3qJkHH+SOxPO2mIdewky7G1hmPrm35XtbUuPVwPRL03QjWmocX61jFQWdQhgvntYxURR2gG4jHXtGS+On3db1ZU1rJrhApbMcgzZhOzZ7dr7SnENcfVGvu/VZjq/LuWalLt0TeBJQLxlHrPF2mccwg6B9Q61kfDvp2/lrQdaPx1LD9zHut6+ke6XsAJ6WDhns8xq9SUEUSJ3fqxi1jyhH6Ku2ox7DTzJ4RbwvqKKua5gXDTKV4K7Mf - -sTSUpjc6Cz9vO96DCmQeMvcdl5MQT57j+O2vIVaQ9zy2LF2LiV6P0NtWyZrGc7fK0cSV2WObU7dtBzNjqTzodVMyF+AFsotzQSV48wApwDKAENACCEAWy2ABoZZQ6ISWJxKA17OdHgI2yIGj6ymFVbUbAdHquxY5A2Si7WcrVP7PUeaPer/Rgd5vbb2OoQpQzAA/BS8d7MQ8cQa4PKERyBsN8p7O+WJKy6/UYB+XNy8HDN2SLvyY73QJvdg5tB7r - -XduuVeIu7NV0w72Gge1tzXeYG+r2+jRhQOrweeXvsOxlB4MFSOO5yvFw4w60txoInoUHQceTihpx7lEROjzzHYasLcZ0O5MRtTTN4OrRs9Yfj2Xbtk7j5UGxt1qDwgJ3YdlxHwnK0ieWHcT3TcDvwunZXGBsObd1Pd4Tx3bkX3h7ufMZdMwDNm6H7z26yOtE4kze0Tn57a5F8H09E6GR8jVx5RIlmctvmHO2mC5NmL1LE6LR3Syd1QZ3R77jEU2b - -7oLE/txwJJrrF5cxXU4BRY/W00pBPLTWmiSs7KVba7l7JMb1rCfuOHpdcmwWZ++V2cH2FuFqo627nBty7Hg233Dv1dNhy4Nt3TJAJ3BtusfbWTz2E7ggnXdUcNg+AC7UaVi2CAA6k6cxr7pJXO2N0ZtoMyiDABEtAP19wH2Ux9YARcVNYt04uQnwEhcl66rlYgNWR1wg4OPN4MCQ+ZqOpW7Qnyc3yoeVLf8RwK5HQlUgz4BC73vqM3lRNmAFqXhY - -d97G1C/sxogbgKaHMeOteEh3xDjeHsW31EP+NaAS1MtjbDHWHboeW5oyJ1Pik9HK1mmkeGdtMbVxDhlY17gRScmZpta+JxhcHkpODAWY1bHgcH4lyF5T9NZsHOyOgrPejyHjsUIPpRszNLOc0LYTQLQDF3vI5uG47qehisAAFd2vujUAIr+bzKeZQxG5HTx5reogi9TqKJ5Sm4Y9CewAgKro2txd32RE6Ui8cFn6rhkH0UfsdvhG6A+/AHLt2Q0c - -JA+gfQy+0eOG1RC4bpA9W1G6N8x7wHWgVVCgRCVk6dr+D743SLNXEu020yT3S9PRWpSfFpazJ07l0gbDh3eMcC3ZdGyut1kbfpPPRvaw9WdG7jrLHU/GnFvcHN/WhgAqODGlFUaN/PCWiY86n4nKMOAMtTDDUIDwAM8gDNAHhuVoDMLZzGxW6twAqGIUAB6AC0AMGVcDXRBDKEo7/VAEd1C9SYkJZLYkwoG6VI3dM8mFM1QlQ0q1bV5vHGKOtFPU - -Y/4+67d0NHGfdfkvt7e8aPaIeI9KbR0Qm9aPPfsLDp8YcSOkEvXEfKB9Vllp7ITnHGutneto8rDkoHTJOR8Mvk7Sxxtp9XoXxizkfAUz9qjUoAOq4ac7QbhpIhgOgqhCcNQAnbSVAAARbbmLCcyYBGgCYAGrAPgV4yTj9B1BBnDBAUhurPwH7ViQUraZgmAqr0QazVBhJEgnvYtHK22Dzm/MB/CN7k8DJ5ij4Mn7MOcUfIja5h4al88n43AECAqA - -M9wemBRWCgkTpPupHtk+29mJorR4OaUcdna6hygt1g9dKP9ru1qeoO/3Jo4bb92DcvSU/Bi6cNyar21GkVUTDdUp+vh8lj35O5BtzrZwm26+5qlrFUaF4nQ8CO3n93ia8T28IcoI/n0C0T7JrL4pVa63fvrxwpKz6rkm6e8kNYfsAyFj7fbqZ2c1OHDrnqj1Z651kVg93UOvvDa1SRyNrK0bV+1rRt6jWFTl+bxfLIE05vYsbfE50aHzlOhccAUc - -6k1RD4Edt1zQJ32Y8gh/N9tE7S8bevOnr32h9WllizUIPJh3f47PkwAjmSLyuXCdN44dGHZt+/v7RoMaet1U6um2BZxqnokO5U7SI8h1motimtIe23DB6Led3qQWqZrrpZrE0Fdct69Aq9Dbk4berUThpzua5DkUrGFWisdPSyax+V1xzBZ9SDceYbnl5A1q7cWDZOdUfiqMma4HjqiYYyW0LFCtql/SK2zAzh2P2TvROHazWydl45l1POTssAnu - -vax5iJ6crHonpCWZHhQLV8ZLiiw5s1EXStLBBJetM8wqm0ykm1ce5MA4uM3kYhABb2i7pNJaItAJZrpCb6AGW66T0tkLhSd7qAKpfqTCRfAhEaRLmAFi23ggyd19AWQaOMntrTaIB5YiW4A5GXJNvzsMkgMp9KkFCRk6MsA4/WYxLoX8AZy87fuqXv/eyWTooHXRmCgcAU9MBy7ASEdDSaBS2cKdea/LV9AA7uZ5KBeoq6ACuVE8glQBrRj5oCzo - -OybNXdklWYSduEBt6nhZJ/gqex0fNhQAnRBmC2/Y5Fwb/Rx0YNM9WQG8LJXHb1u405rw5k9gmnpp3ZP11VYbXGEoOnRBczMcL/QAeO5+92mnz05UyeEYayfXLewuHw7H0JPng+c26eDttbL9mvafFZeVvV6ds57JcOA6dsdYafRp9nGdfF2me2VUfUuaI13WzCX21X0ZI/Fa9B94zrIIOOO61UZ25aDpHrzYTWJ5uRvbqa0d97Kn68nB1PpEdSp+ - -9JySnYfHsEsyta+B/rl0Bb7rWf41V05UOyVZ4unstbS6dONfnWxU10hDBdOcIdo47xi/yZ4bj+0nNpNfTdnW+hD/6ADXG8+F8TdyR6aqdaTo3Gx6exlfE1U/17bIakX1VKJI6s+OBN537PtOlpHtGr8gxeD25bahmN9MOE/zB6flyi7wRPHCdx3Y23nud+YJsHmpfW9uz7ihYQ1O57CtyvFC3ckiCqtuPxe/2yURgDJkCm/Tvx+0/3YHuclfPdsR - -/FWbus2s03sLPp3df9+nd4kCad2UVZnO+SVlksqrHejvm48oNacs5DbrCPd3pGQ7EW2/W9XepNIqJ1MI62pjhYuoLobcPSwdDDuaxs/br6prQV0BG0skSM+zELlUizZ2tjHaCh0JB5YMlQBX1gCdPCpqnHNQgnCIHonnkCX9PRt49NyYilvwM+HZIf6DyL4QHbvrSnFg/KdQmyYGecAhBshJL/h+42w2npRHjad3df5+DEMoX4YJjuma2ZeJxEyz - -HzSNAPNhul0ugtJfO9qHaZO9K0SU66R2ily4rNr3z508o4B2y69ylbF+Xyqccwc4u8sV1ZbTgX1lsFudDO0eO3i7/p3IasI1dWsMLmh5LhosMzto7clMw5umfHYTHyvvLQmTMX3Dl+HMJ3920yM4R/bLD3Q71639adTA9hi3NN857BU74EfKBeTp2rYnldAIOSZ1ZM+/mwiRqZ7J27QdLsA+7S/CD9Ab8+HTXN747KR7UTkYzPxG/K1XA/yB8Rdp - -EHrhOLX3AEaRqyv87zrtY3dE0nBAEs3gcpXr+aqnDN2TfKO5MTkgtB17CxvX/0DriFN5IEDlMYcXTnqthyOQGrbQL2SVNAGrsG0OLUAzHXan1O+yhjg97vcaDxsPkaRPE/etD1ti596YHnqexJqvuqPxmsDUXqopsLXvvum4NgArqlGEBYoZloW3JY0UkwL65RZTxUmaGLG3cktdhcK3u5goCMqNA+0ViT5Rmt1QZoKEM2ke0bHlYmkCXJJE36VS - -Dp0B7w6bMckESTlyyn3qj4qePcrkZxXJ/GnijPiAeN/szm4eUStxQgRTCd0OWjcRxCfV7CasRKffbar6yeDszdNa2l2nLXYYO6GV8K9iK3tC6Q4+AG8l5mon2h31sM8HYnm9AN9p7zB3Xy0UTaAG9yj15zArO3+tOabRi+zpkAb0EW9NtpL0Ri3odx3bCbLz6uvYatMyDtrebaEOOJv2mYDvepNi1NCrPuXzrw+DDbxNuynpJHa9lkPu2qwUzmQD - -vuW26dvzYk60dD0QD/dOkUCIlfmo7azyyn5uNhpPU9Zq+XBd8TrTrOGF29nexPMVN3HZZaryKsHE5UMDIRrHdhu5YWnWEI+yxf5svW86XTV1ArJkybfTguuCbPI2eN3JP+yuEs3eYeFUg298bIpkzknanPuOyFOzE461SFdvAnfVPHd6BTZER2xJpBTW9767K6oGpaqSULqAHK0W5hnQzHe/O1xlxU4BQeCjmoDQHFcbJMygBrn7aGIsABqAWaip - -wV8gSXSrP4js9UcHgiRQ+oynmVGEZ8gqHd0W6453w/+0w9j2MHrMPnsfYo+Ve7d1t9rar3Gct4s/VCGMWQSA3FPczgiafuwHKmP8LFb0hCvUo4g6xLD4oHjhPra0JE7dpwrD0On2qrY2tMAYjO64zsxnuhmTKcYQ/SR2Gl9YjZ+PqD0pLusgFpdpZb9D6H8fjDX1Z9IFn8HCTXCPVmDSts6P9o8TznDbodvVeBU54z66rqVO7nuF0/Hm2GpJDnlz - -3owMNrYvxyn5rlndCH1I0bjYvzWF9naH3jX/M2R04zKwq1gs7wG946syXeT1ayzzwn0M2SieKU5rp2bRz/Lu8nN9uAnfXbezT0Arlg30Wwtoa2M05du4nVnLbWHjneFUbdo8qLpiMeEdx5fdQWHtk7t/EmMtuCSZcuxp0+UjBDDO93pMYIYRkXN3e2aGJArFcTzeicEMSTgraTOIXU+mEtonEF7HungXtCQHmEqC9vprobCA9sAFRmZ41mu6Y057 - -SmzahRdWDGrOi0I+LXJStNAiczQz6bHdDPCxPtJoaAGeQSEICAB124E4oSlhpJuyiJaAZ57zhXLieKMC6M6kXyYd8dXzMmMaOj0WC4lbOStb+6w/yIUnKyaMWejKaxZ1uzpRni+X81uF0FK6JvgH9ruZxOwar0ETjeSjrermTHK1uVk5Xh1EBkf7qV7I7tSHa/uz1lzeHnT31isHPbFRxZe3uNy3xrL0tJZ/u8CNyR0Fm2ktNKGbUu5Z1jgjXm3h - -udH6dG5yfpxM7pjP4rYSBcB4eSevedSlORGtCBex65IDyg7Wd3MZtgLvly5ixkYruz2P8cGff4m3UjnrD9VHNIvmRaPhz8V0nH56LKvPlM6/m16ztQrGCX37uymZ7p0T1gXGd4mbPvF/tJSzazsHrGPW1vs5/ebU4tzrQ7sb2NX4lo91AzGl94jCLbB5tNts6Rwidw5bv43fjvsGx7Oz5V3yuDcCZGEftpM3KbjoX1GxO8OnlzEVJ6m1hrTOxPRf - -Xl4wSY83xyXs7pG10tWkZOEpVFoeF3Em19xDBuKG7NxLGNNzPRUHiSBZQU7rA6YASG8GdCBS0YTfW1qKi3aD6npNX8i2Tz6xL3XtbEsH4gkKb2q4RZ2PHz/uSI6h1kREeAarA797mCFurrhwdt1jVmUa2fq+rksfU3UQEPKRI45hLeknW87cPOjO2rbT2Rh6AM37On6ywYnIx5pw088E9rAcsXhTjmrSF/Rcp0nUU+qmSMxwyXKEqr0WJnqa35ZK - -z3Z8QPPd7SiRXO5tl6pdXB6wV3dnTzAVlC5NT7yIQduugMKi71x/hZbmHNufOHKbr5DOvUBY68ndyzdJbqt+3jsdY60ATybl9OO0eeWbe6pYJj3AThamnwfOVaPp939kq9Dw7ekdkpug9VpIXjnfExav4HHeKGwOtsv7qnWCOeQAqKxcxz8zUPz3qdz/46phGdthZiWXmEOvgiElx/HR6tgo5Xlh0KhoX5zrT/0NMrPwU1LWZniy5JgcrCMX3kqS - -JaLeAZFadTE2XJzCPrb3nu6N3lnmvakmc69pe5ydJ6YHubjJge387yp5GFw4o5/PEkUG2cb0Ifzi4GWM3XUz4oG35/bUeMDR/OF1tHQ8IgGvzr4HS/Oo3u2mbkqLc9i7qJaXwFteEjXWwxQ1T8kC3KnUm2fGB39zn+bDHDpqN7itI56YVwv4prOFVUPDq4B2pT6rd7FckBdPSbW55+pTH9/SnPbiBmdrp1Ljv+N/OXOCMTw86YWwBkvnAfnh4eH4 - -oGRylqjgXW923JXR8o2iu2TUZ9KKOVRNP3Y5Q0BSiyEeRGB4erA6a+xHzlr7pqAY+1C6ZeYnILuLdCuFFBfuU87XaYGxlICwPtueeVvk6xTWNTFogOhUNAUfAS01Zz0F/Auo+Xlcpj5fyDCgXyOr1WsK0psF+z6mMzkVDDu4Q/0ra4jxmHej/2i3zQPdVW/ryefJQDTpFabSpkJejkKfqlO9j7HzFV/4Xpsiu4fkUdx4OSD3HkqUUkcmNaaZGck3 - -k8PrIiZygLwklyDsr7Za299GQAkQBczzaLZzMVZTowhsj/e58g6QpXvymGtiMhlgqbVPrezUL3d4KUg21WRxl6ldcPHD+glGC3xwvd6Lji5tqV7JW2pWBbJyC2GQpyWc+TapVn9PR6HLQWyBwt2yHvHKPtRnb+w5r9Bjqw1zC8AGSud442N33DCM3YplnLLh6/lkU02F3Yve6PozvZF7Z1P3JBObMNmdSVu3OOddPuo+sM8M9dGXRd7ZBk8c2g9o - -Z/qjlzKXQBb1g4xOXQJ+8QMAMABiSrnT2nuN54Rd9dqPGlAj8qBWHlKZKShjnzoBcYtx2LccLU7Nt43xj7QWhwfdQSc2+wBSTi0jj4zAiauV7mqXV2dxw/XZ91dujH5jEf7KlJbpNKD7ebcHJFnGLpXNsWpnzgDBX22PgsdQ658sbu2vngFn13U+vpp7X0lvSnFIb8Z2E5Q651lOmft30NJ+dOFBwFxCDtYt+X0DBezyowrlhDpUb1ehOUeZLqxO - -61Z1ljvUp43uBnoe7V4ztGbhX2qYRyi+77QqLj4HJVWQT1ck/BEAV9j3zuqHBAdeEgsQ7wM8Z1LWLeK3I4DFF778OrzdxLPO1YqxbOb38abY5OmxWdsi4vrOJ+ScBjUgxuf8Y8qB5eDYW1Q8o9WBthjzJxmGodeDqk/HCcxc0a2IB3BIkRRERe/FmhnKPHUprTiHEyYg+qRFzGLoy4n6yJGO0EeU3jmdfCE8MPEjBF8GFR3u1e04Ij5kcxUepTCz - -/oLr7bg7St6EiHdYpMgRpATeB5QFZYrwo+raBocjcARXQPJnEkLeR46z6fbmxizOYf+GtZydE/3ZjKfIJBTjUTYBHt/lzGyMLWfmFsgkSKzKQPXw7QuZVQ4s6xz7IVZJeg0TAMiN88ZTMq4grnXGBKhqgLCJcXaR9+yD4aqFx09V1rDAxwpxcQVjSXoMUJeHTcOk2BDi5cgCOLiMLh8O9NC4NfWB9GsAM7OcrqWJmBsG+0V/fO7luBEnujRs8gvd - -N22xZGOYcj+GptC0LEt8rwEuFquzZeMbQ6Rf8XRaWE6cPLb68yAWuCXQR3ICccJTaGOqZCNuUjGMGJpEKpSCX7WOUGuBbDmeLzVHa9JTqLTY2Ahu3E8TM6gqc2TQUS5FbXM+WJ+nMWsn1Cm96mS88DRBKgkW1eU2hApsS+ym2mZvXOooEHcexjb/gP5LWoLVutmngDgaUR3zzoxO6U2+dolHZdx2EjLMzwCmzE1AKcZQf9xyy7ubOqtU5Tal55Bt - -8WTJDGISjrwPyx4spGxbVbXyNp93NPEZsbdRHOxsN/sJeXyC+PZVwj53mGwoqJbwcMm/B77hR9mAnlsoFSYTV8p+wOWAbYkoUcG1iPcWr9/ZisHmzJA2o00//IVqFiAC9UMwAD/9SMld2ntFnEAC8fLLT93n7Ax9mYXuXrsp7IakqOooYoQIOHY5WS3YQTx23dK3OTDbJHgkfAcc2JCuZ4k8zW3r9u2rBv33bvulYT59A8XrAlF11pqp85pVpB+P - -8LbeA6NwGM+dp4XWXSnMsPO1ld/ehWoxFuRrr93nKUkQ7Om/sxoeHOOGg/Nl065nQn2qIH0NC7KCtM9zeJnhqsXHvr3aYhmaDF0kJsbQDTXoFmp7mry2CKMLWdTPFKiQeQaXOFxBr8+0vcECHS9W7DoSAL2/HP8USqEbM9Uq6HF08DS5RORqraLv/y6t7sKVa3tWjTGxOPZK1FHr57YXrvFqQxeaBX5XFYlfnEtUW4IgKslqEvpJQdwKZIkyzhMi - -TxpPGwe1Gm5oFje6SY1aBBgBaOdfQtntZaAv84l7QVmskJ/Q1QoEoTRNYDOgQ1YoVSm3E/KGerG4+aydf4qBPMmIbo+cjidj55VLjPuJlXiXb9ykSBAPyJP595nXUKAUCwiT452+zKa56hK46oS3SzdzjrbvGupfc3cVh5/OuAXBZP9Gv1E90uvId49Z6AvxyUIQ9vYP4J6rjinYMK7Sy6qCJTLphgIGb5Ycu/e9hQLS827iTrmRfu06rJ8AZ6Jq - -RyjqheTd2LWBS1MJc0DCSIiDaIKBI/lNoMz0AH8pv5Va9h9WlnemQJ/Q4cKNJO6UCMbHhE5GPCi3kt56jDhnoc9pwAvAgE3bo8E4U7077URR90mvKcplg21N4gpUAHwACdXgkZ0Cr3FuHD4nW8JlfM0clGAnsQ4WTG7KCgg7hwq9c0RePY6Tm2VL3QnOj2TyeyECCHUGPEbHrgS/JI82piXH+Fuh8LS67CdE0pXm2xh7AT6AGv+PQ6Rau1pT/enK - -RJsBOiReF01PbCUXj5XwlOiC4/pesW/OXncATxeYVNYBmNR6jD2AmFwrsWAJ6PHPFS7+AmWxXlo6UBJWj7rQhoG48iB0p8QEwLwDEhcuIqyzmEGqYLd3rhHG1JdzXdB5SeJRqHpd8vWvT4uq2xTxsj8EbJXlb48Y61dJrFh3OVkgC6aJt364M813mnrq2ilNCAHDEdO99Moio4egCSAHmAHYD3C8yFIjRWp/oNtWevZBqEen6LR1Np2gMWnT60rY - -E4xqeitr5cPD7j65Z1mxeZGcNvC+CKTjMYOcAcYi60e1XL/X7JtP8buO1Yq58NknLWYuL7kbV2gIsEK6LIHdSWMQiy6Ba54uVyaXfOqH2f6y+/u2iG3+7AH2i4fUrwTu2zAVgDvUvwx5pJaa3bR10+SPLGeLq1w+H9ZVG34HuCRBhUAJc5J/yDXUXDAv46P8g0nRyKcSv+7vb+xPwRugm6VJmprnkErbt56W6+7xNOBDwG9ppeGohbAhOL3gDPJn - -xc2dwB3F5dqVBwOmn0Vt9LeX0FEJ3kTYFoLO5f45PoAvLqLAZPgYqelXsKyNeLlyVUOXeh2EC6tDZXxWJXacbB5coS9FGNjt2ZLMKQqQaQpHnvN3sAtYo6wVEop5btSCo4Tm+DmjgnAYqg06Vr8uG+GvyRbZtTIBSJ1PH9ZblEIJLcgvebKP6VoMxawcEln4iISRGsL6X0awear16XRKbKiv4eL1HHbnXUYtzmoji+E9kLDsD3AUwB+Mexl7O9o1 - -CBrBlKXX1YHSGfRMYKasxqiYGnLbeCt2AKOO/KHHi59+YBymOQF0FyzjoKoZd0ZbR8id0fjtlKl7r92hXFUv6FcoXY/a+3tktOP1LSWtHkhfEGM9hMn2+Wths3Zkq5h3L82tRpFl6cOKa6I5aAnkX+92kf3x3X6l7MVvQXiHWIVdmD0svStzgeNTN3H81ef2Gl2SNkFXc85pOsLZIK+3Kzm9nwuVhGsqE5Sx0eLljn/5K55c8dFjmx3d7UX4iv8V - -ea0auV92p/djAniUVvh+c7uyzOhlXwX3/sg93enR34r9EoqgFK5IuVrsZRimr4jRfrqBs/WJjPKtzkRXhHXeVcwS+PpzSr+17LAPTQt79sK3VW5xOrzKOO4dKDctc5Yx/hryg3AHvBojcwSWzwTgvfmsotSo2PlbAzqB2os3gbYXuxIeyB5v+VezX7peX0XZUxj80buT5rMgvtvUUozufDFzdgE5SSIAIl/mML1ryX/9nEs4PbsgYti5cpawvSm7 - -lTbm4fOHV/tVSh3+165nc/WazakF1sOimOcE+AtcgOfl47+Q62zBB1/eM2bbY+kyN1vbxS4j62MCbUQjUAGhQPro8QEE+VY0slw2sCD3xylxKLomXMUZZkjX2LAQOl0YDlAZP5BOt48UE+3j48nCQPN+tMK9LtBwoyIdBXN0Qk8K96EtozqwnPyu7DF8K+GWwzB0fn1hJq4fqXsh20PLs8HSpnXvXbuXmlxhjxQHMgPNYB9KpeQ/B+hsj8aL8+30 - -q8r1SMFurAe1nhgExWe3VyJjwgbXiv3tQ+K9xV57TndXhA3T1fAtHPV8JjwwVx6ujRC9i44daYsPxT6VJVBdr3YXuxv22LNfAuuWAEK/Gl1kIazHc68KVfMq6pV20zyhzvWkfnstbuM233M1UXg2HbyPM9vUx2FHCeX8UbkvvtSZix0Sr9nmBgH15zLq6Nl1AtpsQtlPOlS19vnF6uj2mbKI6Rk0FUCHF/aLpYb/RRTPsCXGBPNerlcX5qRcVeNw - -/RfHRrurAWTAREx/YC8zW5js8dfKHeNf+QCPfKamrLMvxYlvs4jrE17GIS7M4m9GtCQCVSkyxroQInO5+NdaFrROIazWxDU9bocic7ifV9FZnUkOmuW616a93GH+ryPndQdjNc+qtM19TAFDXCOGrNcxyps1+RF7WzMouAblUrrk1wzj6E7s0PRNdngK/F1p0RWXVUMT+dL7f815r54fngWu+3OMZ0fpyufbhztZVOFlQOsAVSs191Xbquy9ZebL - -LhMs1gwHSWv/SMZ11n+1l43wXL9OdcMjlL1wzZD4ndobPKXvG5zCQ00d3Ul8HHjoMttZcK0ZL8ujV8KZeftBYu+x9G+zJPOS5FtmQoAdk+20mk46Wywv5BpYR0219AnwbOdSUTada06R5nplJHnqOm68km19/T1YRsNHr+F01fKC+xCLt25HnhVOM7rrensXZ5HNFoKhK/lKmx0mr4Ln0eGbrXx91ALgCAXe0ZhbbICmUT8yoB8fjtv4bJ6QjwXg - -GsOsF1HO6B7ThwqWFZqhCBFH0mPc2XMTypCMCZzITM+1pqAtkejh/kVpmzy8Xjju0Y8Eub1dhYbHpWLOTEOz/nm4Enoex4YuFcTXancz+90SnV7OmafceiZRw1l4i7FcPTpdYncix/6ivHXUXHEmuwc5vSe9V4ft1iuyxe23aVNQ+r5fQJCu8KzEQA6EhGG0+dPGP9cC7y+FNmtcHnAEGuDIqw+uIsvhiwcHnkrGRfEBXAMBkJhnUljiKSCC695N - -UyLkuwouuFLji6/VZ+1TxSafi2MDPgKeB4xQT0uzuTnyd2X/fli6kFoRb0L3vhZsyf11y4m1rX++tytNoMLrZ3vVXUVwB17AJA04QJDSPbsA7ftDgpRMFI+lwqaIA8fdbaWJy8sR4TOXbgZhACpyqSdUg/dgeqAkDUPHDczw/4xMRs4BVIQCxdppBocN01einbaugydt4+XBx3j1cHszHHts8pTLHYYa+nRpNsTumRI/043eNsYw4I2jXvbMcMZw - -WDii7p120lfQLIMrRiruXzKYbzdsB8ZYG3Xr6+Ln/OT7vAE4dIF3D7qHv6DzNcKC43u9mT1LsHYuAnB0bAtF08xlUboLKT6AkK8/gGQrrgFVmqR9cp0Yf+Bprmwp+7EbcCeSskA8tvG9G52sL6VOwbg18voefXUggvM02yyTq31DjhQO+vBNeUSjNl8Mj8FKTJDcVMw5HGg1Zzt4n2sWyTglqvcK0A93mbs1OQ8Zda47hbrriMK+uv9msqJkWF5X - -YykrpBCPS5087Jq4Kpgh7VixU0Q4S5wMbdkcoEJmHVtDOrZea6ArqTzzZsXjAKIWlaMVd19Y/Li7ADQ/F/sjzeys1HKBnt6TgOFRC0Z0IQ5JRRTqETG9ambVkfL/976YfjDat23TLl1Tom3GZf1klxxF17FALldpS43cJyfe18r2gHujOVlB5w/+V9kevUD61WFn1N899PfP2oCTp9PIJeNYaHQlE55YGa9SWsdjTO8M5kdpuYGxoSJD6MEKDMAr - -sYLXCmc52lLyzoEtj5QAZgBIScwhDzAGj6M8AN0zegRRscsR22SYVApsdkCCQ6GAjR+MDGAsCwMQhLITFtvgNx8dvpPQZ30G/704wbh5X7t3Npselcfg176yyrdsEZI1EWlbl2W0A3bYanr2e5S93XZIbmQ7FPXGLul88L56s9uCzHiuIeuiG9g/dN59I3h9P6UfpK5SU6EmVrTJy5Mps8S9KBMvWB6ROlE36K266++Gwx6IAzj4Z5g4lV6NOwI5 - -lz4Z16gAzk6wpzGMDXAE8K/KEfhJ1FPrWIMgeaFk2Va053W5cay27aFGpnUUeO8N3Y53w32LPCacZzd7VzCYAfEpccfbv/UTzpGB4Swnjx2HVbuoE5DgIbr+jw+GBiMqq93h2He6LCm/OwdsKReme8gjg9zKX3qDf+fyzpyzlHDXtaSClulU/VPQFWi8Xwq7vhlIkYIyf9V2gbZVP9Bc2mdJi0CMumH/n8G9egI6lzY8htnTOgHYJuqs9OFdvNnI - -n0Z7vfKdqce55UjveH4d7e+dtWYQlyib3Xt/xuzytwm9BI1ib7utk1GWJtASe4157UZ19shvDF5UrunwP+D1XNC63y1PHrKMV5bzNRcvimFph4a4JHXgu5k3IqHK6esxh2KnqeoUXYrWXOjgC+5NxUWCajOJv8jcG6lzQ62ZpiTqQ2YyEhdfibRlNkQKkkuRJc1BcXFsJL5vGpi3nMFC+spU8gzwz1hG7QKsbdsx46K661j4rrxDSsism104qpbX - -pQXXu5meoqfrrh3rxb5qMGcta4oyprDDNnAztmq7FIdvqTfU6bhKZ680MDBjkHcbWI7VyMOELk9k8XmUWgI3+ttoW6RQS3V8EMgWeYMIQ4ABEAJWIiROS6okAwISwnH1jGvFyNyAtwVg4uHvaBN+Tlppg902pjcvtdxRznIv+lepSwZTSq2JR7N4K7ys9MNjf208yM5iUp2nM5GBFdZ+s0M8zdsWXWTKiOe06c50zFT7W9WOuOesXG/p0+Mtt/LS - -0nkpO9Pvqy2aF6ibCh5cdcGAtJ581rqC+wDPBnYE7e+uuht703kpuEzUgW06GKcjq5UDcLwbpBKvhl38ThPs6sRt7RJoANUWesGeYYol5Rx3aYYtrYeqSrEnA7Yh8ohdQLJI8WCyOxHw5apDkYJXtsCL94GcOd3tdIRQ+19sjbMOlXvYi4h13e9vNbqu3IIBAVik8HTmlNoxn9ouSDwiR1/nr/zgF7O0dcmvepZz0R1jnDVOFVdEXehm9Uzw9Xb5 - -PYBtcHZMZ8yT3Ydu1XDJb33fKw16eueH8C3dQMdE7Oh/KGsS7Gm3qLex+a6wyZgqDb6kP3E2TnccK8qWZwruxO1MplBevtTtl+uDoPH4dDKDi8Ab7m8CmIcvgzflokLKNgSHgAK7zmACbH0rQCO+MpTgwBt4qc0CovXLTwpsQmwlXTAEBdJyQbvUZ+js+4y9kFvTaRz8Kzj6pknV2tZxgAWb84LTBW/DcZ9we25OJixtriKh47jZIFnKn9gSnLPn - -89fCfCiN7Tdl07Y8mG1u9y+h56zT4i7yRTcH0tI9um7Ji+M5y92VrtzLetVYI2ribtc3pGviG9jylObs+HCHO7GeNM+5x4lbpq9Ly2Disvi7Hdedz4015q2rKdXG4O9cJdu/nEs1N9eJG8u5wA5idTcW63itrXYIzk5ThdT8X3moP62b5N7tADa74f3U/sn4/qa7kzl57o47TTPMerQ0WB/RWm0daqbMWV1Vl3AlxON7fTTKcyBhGN4aZn43Lxvk - -3vhgd356IlzJnhKaVbOnrZvW74x04HwIWZSdt7G4h7LXYAbnSW9rfMcUEh4db5/roivJucXZjMt0G18635Ou/aebW5v50+tvJHuFvHrcZcaPW2d9zhHtbXNqXVeRKC0OF5FkeUyRtDBC6AdRAAyHp2tKiCX1MpG0LwszexIlH1pVa/s5GWBCeVbKUzgbcq/pQaadixLX6pOpR2eXfBNqDD7G32KS90sQvdeurpLlk5YavZuH7qp28wbhvbzMkYQi - -GO3OFJXzvcI+5N5L/lnmho7hnsHC0oZGGbwlC+kh01o9NuhE6Redb4Vo07/4ZGIMm5qjflonmABwASWQkS3NwB/XfaaSHfa4wfFoamNjnNN1d3GDT83CRxRgD+x1FAPKDjuIuktVYflMLuz4erXo08v69utq9WQ+2r9J7RtOSueqvaUZyrt0yrVfg+oWMuSJFwFhmGQhfXqafRI9xaP71R8nJu296fVrc9typ97kDXKbqvN/ycMdZNuivXG5HfnN - -16AHlwddrBe6EWj6sMgf5a8utwXHI+bA3u6DXJN8vzoN9r36R6cbSZnp1dz4Q76duRuMXg0Okw/d4q3jlO/DuFSc2W26z5E7dzq9pOj04Lt4At3L7pGvQsCmqvtZzXb+AX+w63YTm3lTl0cytP5xhXz834C4C2Lpj4c33dva63/s9qRKvTtxn3EqCqcLco50x6FwrtJYvjm0j672/hDz7S70C2LPvZ/aXt70+Z/N5qHZ7eIiq6539Nnu3w9vlt1F - -05xV3yz3M711XDxeiUNaR3FTtMXQTGXhVJvZr5fwhsDX3Av3yfEXeT5Y4LoQXANW5nXCo/MlaQLzs3rkqrBdmSuGdSPborj8/zr2ue+a97fBz1iLGGJGO02+cVMYH9zwDURYnMN6SunyTar+h7N1ag34laMS0cj9qcyW7x9ql1spGCms5aquFzzgjTN82qmZW9hm3MuRsHeAMWjLhQktH7Ph8t/kSkrBxSoFcXDr2LRRXvYuFW78OZEeIQ375fw2 - -7KmfykvijbYdbAZIebXS4f9qkrBBi5qW01atV9FkkCr0fiouufkyG9EFA6n+zpIecPdVNzWMfsin5Ro6lpml7FgFW34rlIpSvyUBc3yu+5TV/9qBD25tD+5i21vNxQM3g9GdDe6YgBVP31hcA1Aw+gAHkBo6g/uV41IhOEuf6GN3CworTreMsFDldmMyMDJvgC2A+xFvz3qPfT68bbhKzjFPE9fBo4UZ6Vz4gHbe2ape0F2VGFegYx7SHKksCJ7E - -a53rtsv07OjdjdfBa8q/bGjjLb1oRbfvNfiAI74W2lpK5J5E3kGkAETTkUcIlXbpkDjKpwFJzXaCsN2NqIiIniwLqKErm4kdQRsKDfuBqopiVHUcPKFcxw7QOzQrgknt239CfJg5wO+3t2S4JQwfgEQdx95ZHzO2nvjmIvBeYiV6Vk70QrZrmuYO5k6bN6nWqfbYBOKpGJ/dKfbfbwq9NZ2XnMY87Em8jJh/n4z22buzqYJ101b7+3S7GSOch9rh - -k5omwv7gqPeTfYm/5N+Xz+g7ttniZNdcZg13irqSnnXGVvvV05451ALwk3HZvPTOF8aud9/QS0z2Qrn5tEm8cGiCb88rEW27Gen89A+8419VSbHPcf03G4QOnXz+h+UHOteop2+SN6p91unBlOVuOdbvhbUTjmjnqU6JDcc3bqvW+D4Q3V+py7c7w8Ji5xNhGbEM3gA1P45HW23dz4H3JuoXfZvfFJziTmFXaIOzWeQO6NccThu/AlVOoo1TRsBc - -7NGlK3EDv2EA/i5mjfGe7RNd13DjMzpZjIylr/oXxUU1muKZJ8lrAA/XDQftEd347IrCxtr0hHlCOrSE+/pJtzDx3g5ekvayHSlbt67okrAndrvft5Wu4td1htLbz4WCy6NkpMa12B2+uFFi3s/EftsoYdaI5AZv+jy7GX7am00yKjVRHMmoyHmxzR6MTV/0hfDuWn6u6UfrSmzpDbqu1tTfKHUwYSFQnSzKH1DE5GmKDJS2z22HUnnJrJo8A4aU - -ZKfAAMA5s6hWjEGgP4sIGYd9Nv4j/ZD8fDGkTBXCHlbeazpkNUEBqna71Nn8odfm8st+5h6y3sxvTTsXHfb28qdwOLVtOkOWfSMUYq3LoCkXlvFPvXs/8J6Ny8Hb0POaDtl89s263rpgyFROHi3Ky94O0JmgcrKKW1qu83b0zNKrqHHMF2dX0Dc/lazuVt6br4u93djbsxi1ct95t27vUzK3u88C1KzySLk83MkeHc4GMwNLixXAyPXrcw85fu1+ - -7sZbTT3+RfxTqOt9q10ylqiuQPehteHS4V2spnkrOY2umUoXV4+DuD30+2IvuNndhnYVhraHhPK7+uOE8vh3hBq+LUlCsNei+cWI2J68M9qGvekW4DbzO5VhobDd7vnJWRNYI91e7hVVOVy6PeMRusOx/+Jj310ul8pKitcl72F8ppkb5MXuLjzxe1FXCCeKIuEooEvbQaaw70MMCUCEft//2kJSDb6WcQlHNhf6A/Ducs1rLXIrHz9trD3RJKfC - -5GjSZnVicpmY9/fQT6cN3R2EkMOJaFFYT94Bi9PhQGLJC5PpVbsJkHQ/pFDRjCRBSCC8PFInhACUjY318cM9fFXWfIDq2UjPABreMqJa6w5U10PZPRZAZW49/MxGquydBm6sd+WiKBt3TdEgAh7jPyZmguyzJ5AugARFYwKuszKdeKzFaHmH8GJl4wkADcySX0SfWqBy59PduBxchWe3cibYuC4zLuEA1OiywRcG7CMcZ/ZBwoMaazfzO9xaPI0v - -MHUlPfqFKs6Xwz7Z6lXj7OxDd4SYfyw1Br+HDz3g6d4AYBm8vjzr3RWlRvfrzrM5QotyMbK17KFMze9WqFgj5wbuSc2cBaWBtKF+58bboVXljYgvAQVX8wTZ6ktGLee4fati0UpoFS9DtF5gkQDS3E00/4IqYBYac8ImSqwlLqAp/4QTmmR8OWMo3Oxw3/kPNMba1mRu97txWNJXujTsMy5st8ugbLEJQuWNvoYePbII7DQSk7vAzzkHdpZ/O0kJ - -nUYl13d4DcSV9NJ9m7SPuJdub9L+e7YNy7W6zOdtXnwJaUBh+08Nr/d39LlITJyBUih7hygARwq5oL4gJoAdWQibpLZxPoXzQEmgDbGHlmnLoEaMxTOV8flzwaKW3f1kKsoQjBgdzYnHa90W7t+9wQD/73/bvNyRXAGVFA6dnYDWm7U+fe6X2erPtL7rjXvUX7IEFx1UF9va7w0PCifR3t9t1BBjWHwWO2zfr04Gjbr7gN7c9Lm5sITcpdy2K043 - -E+3JCKRW7Mpwd99HnkJ2nRs9lcG51etzzX703RUfO+/A9wazv37LJP/QtNU+tGxXdktX7UHhksy80pN2SbnM3xHv4cO7UK/8g8b5gpXlOgmfPG+tvbXTuObLKuF6cwEfZDXKZslbp6OebtCu/PJfA56ydJVuw6cTA8Nl3j5+u3tQOhOXm8oK57wDuHb2HuoNelVeT98wLm+TNfutRdn6+GJ3KnRRH110xR1tdfW02LJ/Bjqo6VURHne1mjIrJUHN - -Jw6i6jfEeeR6uo4y6BKleeXd2+yy/ynDzVzXxZs32wx48ab5oyc+sDTef3VNN1sPKbX3cFYHuX05gGa7hwex5ORcRXAjzppBjb4CSEMPNR2/U6Ew5yTGu4omH83fJq4j/SgVFDsw6YPvI6LIKgLfpQ0Aoc0t4rhMHaasRICAhTepxvDOgRWsGe+RmiS9IsFwos6osltbrUzQvvQydRO8tty8CMqAL9Ic8ARVikvblKbFElxrJ3co3y4x3D7j9n3E - -3hRsQiv7W8lb5vn74PL+f/YY6+iVpmvhyX306cG3qH7So2kF3R7vZJsvISPty4z3a3vCXaBf8JYqB7CdhH52tOvgdytYIt+ATulXROuK6dcu+lxx3rx57lCXnnsgE4x61U6pvts33Xyc1/dRmzDtu9Xc7vgZvyYt3x1jz4ajPVvb0XUu9nkhKLk57grOJzdpM9Ig23b6P3s1uuTciB6xQ3z7wv3N/OcVsWB5BK1YH963KpmfWe48+xPOa743HbFv - -4k7F+IhoxQ0lHdGfoPhxuKr8Trxb7QjYt37cOeKrtw0kx2x+p8qiedF+ObeRYV1XWZxOS3n6HJtYRBRPG3FKm720dTsMd/d9VkkwQeCtcMVdnuT9D806KBy22yuKm9666O/AgyJJnqnUg4Kd2TQFkArupvMpbAEZrX4sRJszsMMYc6QxJgFPZ9RAuckjeSOcFVauUgCPBnLEQAW3tzDB6jayMHdfXoA/g66UYw3uf4ALXJ/aY4Amoy/eZ0pglrB3 - -3t8FfSdx+pKlHSFvxYcY66EV26d1SygpAiwfYXuoCd9WhVF4ZdxTiueeVqDVIY1AHRTJRyoTmf3NAWF9VtDtvZmA/BGiIYT+SS5FhpwWTopBkqYLDW3VuJtpjz+XW4CK5vr7uZuu5TAEpedf6pzxHic2M1u3K6Gd4rtyJ9E5ZAEDZYniLoNdtIHjepiHY+ttbl/mDSkX+J6WAtT21kV0kj85TY+3/7sSzrds6KLyRXm9Pi/tLEY+531bmTN6M6KQ - -9/Sd0az7l9kbNIfB7cP7t9+7DjjD1UxmY7uJItU11SbjZ3v/P0Xzch8C28DztkPhgX2UeDqYPh37x8jnwW3TsMyu6qp7PTz6bA3vtU0uuwDM/KHjOnfkb1A9KYpcR4qHljD3Zvj/LEh56S2N7odTI6WOAc+NaqR39VvvVkVaUWPoDcJV2ybnZJ6A3iNfF+5qMbaH0DXdOqR4cSh60lcCHqCNhQDkTevTbPxe6Hn/F2QCqikKerp+472Nj5Z/nZNw - -YutDD4lE76jEFL4uvYwV2jTI7oaZnWnw3f47eaC4ZLotnuBP79uI0bNQRvKyrHL1n3BdKkdTDwVjmtrC1PHrPtY7/bbqr2l1G8rDVf4VdboxVwuX+NYfhzv0I87hVyEnOrp/DUlOTacZFdvciN3qXWejsY3XWur7XN3rfAw01jImRbRZobucLeH3o8NYAEGAKmASVQLQBQeDHAFAllJaA/JOFJMcu8ve7y5/wS+EsmliZf1Ix30m8rPOaG0XPWfS - -1uSx5qhptpoTvHbv/m5WmzAHi237Nn5CQ3AA9ZB2PSLs4UMTHkaLFBD6Pj7hXUqBSyw585Nl1JTvbnALayXffVa5g4QH0BRgEeSVchE5/D6txv8PA8Puerou+7zWqHrX33EXAFJBa5s47Hbr2zd3OUIdSNc4zY4zk931o3qgcqWreU8fp4XNqvv/NsJBZbNypp+D3aJvXNdlbvS0+WdrQL8TPNDs9VvZDxkTzNVqmuqRuLpPpZ58762DRP70esRd - -vIW7MZ80PxK3kSW8h7M+9KFeRXvQPe7ehBd696JHl4dWs6P6Ww5n4CdzhJSH1WMtR2f64BFpaSffz1di8bTQDKq8QAb0H2/pq6PPRu+g2hBxh7jg1P9qeBkHbMyWe1+rDxPAMdukt051mhtoS9yOWR3aJ3mSy1t/aYokv2/dzvQAZ1rNy7FtP31PWrZYVkzde88WDSAXDclzFinBY7/9LEXv3mu1WNqcGhZOlasx8yVp/BEM2t7MiwtowF+N1FrZ - -RF13uIJ8SYhj7g4eHxzF6TjQn5ZO8LXqJq0jTqgMYPLFPOYfmMSJAMqKUNDYhn+8fNfueJnZBl236pUFneJoopZ1SLkvXG5rjGf1rbxD6nbhCVeHvAtPXc8qJzjphtbi9uvweEWaQh6XbonXLPq2qNtc9PTvIhjRNxkbRUdlVsmj73T+NLrUF2Ifus4hXTxd/SLjVGyZt3Fc2j5fNzlnGvv4JOl+9fyxLL93bBfPCXeHR+R9yIbvI3Z/95Iewlo8 - -fidB4bXrXxr21pu/EW7XRwbXWDP7Mkvtvd/aU3N130PGxGG2u5dd+zgzSHUePgTagKdZddUJLTnIG0k31QnSErNrgavzKAREn7p6YEw4mrtK7jwukCo/KkcdxKMuAAQgAs6CVACNgDji2PJM1E8SLtYJQkZKgZZFWkAeg+UzCbQQ2QBvZwgnlA9hxa8N3Hrk23CeuO1dJ667V2JtzKAShIh37225gE0jPTjiIehR1ebG6ajxe5Fr3kanUW3mvZ4P - -FXzsU3Mu9CXM6Ah0W4VOX5APxZ3VCox71RyaT2o0kMstACkADrQDRbPoAakNcFV1OH0AHKOUEIUAOkeyLuwTo30RDKPQ0B+USk+he0A66nUN52PynSzIZw+GZ55mPYTuDyfn0fZj2GTzmPN2uR9PFQCMQNwub49zjEqlJRFIaj1wipqP3DBp3f2/evZ0QGbF34O3zpudR/3W8y18Hnmsv/kNQqZxD1V5lcju7vA6c1trQjzMtpGdz7uP3ezFcGlz - -pd0SbeFvbfdPu/ZZ8UegGLEsBCPe3O6A9xq+ye3hcfTns1trrj/F5uK3pcO04+DqaXdykb953192TlPOpcH5y3p1TTiPPJ8vI84Pm44TsCPpLu1t0HKf+FcCh+63P7ue48XR7rm8fjnM7IEuW9cso5FlwSH4nrmmq/NeUR8HU+PV0o9O8eLDJ7x5KR/s7vddXHXLffRhe428VtCb3KmPR9vah4925SNkxrQfuX8tu/cEi1Veja3fT58XeJ2+PfUG - -9sP3n93mLuIkcsDzb7077w9O9lu6ntPj4hDyzHtcVD4+1x8eB9DJrCPe+qj49zfYBD2G9uebE0k5oc1Wbwj4irzw2B+OKixRffwj0MTzpnHCUOxukygWsrbw47gKByaGmMAjPoEsccsyki6lvdjKPaa33ulwFE0zh2sOc5mg+qhKlJBnPc3ro5hBMaZNuvUnZn0DNoYzOp8jogGzp1Pgf5Ztahh8La/epLEveJc6e8dx9YVxRP/EumJcqlo0l+OL - -DUdCpXd3Y5s8IRxcubiXipujrbgx+Bh86glTnaxOoxusoXMTwIrc624vPRzud+8k5wYtrRPPbX5dZOJ+MWyFE5fjzi2WwN98dUlwh06b37uP5Ftze/8T0YnoGH2jD6fvSc6Z+37+kk5GYfYvUAdtGp6AVAX1EBU+bUKR5wY9tlkiEUlnKwdcc1LpDBc2g10mlPAXkTETeaOHy2LfhWilP5oH5cZfeegTAnwIMsrgFALvmgDyAJLTYMvGScSwDqQT - -iYGcBu02HwQHgGXl4n0aAhPz1gYeZNcvphmHlZOSo8bs8PG9eHsX3wn2PSs6Eng+BmDqfaPewbCloh5y0B7b8RteUkJY/8K6lj1WtseyquSvD7ig/v7EBSe+gyCJrHvief21+jHkW67gRuaCMM/QnO2bU49nAQZSZa/jOT+L7gl5AgQhO32Inbahz70QQZ4JCaTCqiO20fbxvsa0e+bpDJ8AtxMH4h8cshmoStXXph7CGMwnSIDw4DzJ7pXTY941 - -7GweULe/O7PB72bkaXXhPoI+0zp+57+Z/2nda2VTKiHZyPZu71p7N8foTc9c4ZD4Sn3aP/UeQWoAnYd96tV9vzZGakVsu+8vdxpZR93F1vniViK7Ak+Kz+FbOZ34F0oOagTxvTqe3SLvgte9Pa3WzDz2HHDdO/qo8p9lD5MtpMrV/OFt2Bhc+V8VT5S78fuHb1FW4C28AnuwPREe73OV8ZGp2Eml6N3C2KsdPRqqx4dKc77KMl39fW47ii+EnU3e - -dkKOd1qk9ZJAn4sndDR24d5CzbMl4Nazj5izWVPcpa8DuatSl7uFYbAk7q871J0dM2PiHOFtHeHJ7Rj+rHt4GyDb+gAU0CoYq/kBP9nIAY5aWQAZoDdrkh1a44Q0QNqSmB4umF3JnhZq8DMQkkeU5hkDWyKPKNf2SpchqeHv83a7OQyfjB9Wc5MHpxzk4ntVZRVT0jiOneDWUEFW5dUgGz58s7nOL8KWYM1eAelj7iH5YtC1Ck7vLx5XdxXzmXLx - -IbjwUyC63p5XqkdPMZ2eSePIYnT36d9djjk8u092Op5x1+H4RXTD64msvlcdfdYzr9nsX2oTpqzpHmzNVpaPjCaxhFSjZsp/nvb0D2kbaTcMcN+Tx+MTl3ddPWYzQUEnu1az3lHdjaomezp+UF3qLl3zzah54co7Hgd1A73PllrXfNXnx/XF8+n/lHoJu/O1gOaPD7dVxVPOK7FRfsrpXxypNhzbOZ9T4eqp+VPVJm7dP6WBxXcLEvOXZ9rjp9b+ - -PEWO0RtWT3b7oOn27MsafQxYIz9XzlklFwtORv+27cjZRn043sJuZY++yhNB6vRYe9U70pqV2x0tJEv9/rGqT967htMvxFZEL19H0QuMHDHmT0BwN+V6tvzjebxS/LeHofY8IXcUDWLBo2+1paIU6H73T8p2Wep5ReBI7us0s2uhZwA5ZOzhK6sGjhrHz6ca4eC0V6QtiGi+suStEeaX91EhtTKt0vtCPaZ4INfqdGZL16OvtYRmfVR3BCEjK1CA - -XoClFge4auGaLqiQBmzaHACMACi5UQJY75/mtn6X93BdxTVo8mj1WYgcB6wV7IOCQXnADQEhZ1Ue2Ju4OcQ5LUglYA76d8DrpeLQAmy0+lR5xF8BVC4ASQO4neDLDCUNVHnH8WevY+atiKA698r3g35bMo4+M04RT9KGbedaWfWs67B6hIsWDvJ3Qyqt/crCPsMAl4KGqPkF4CiWzL21yGnhGXCfYfdw8AC24qHNUejXQBJACYXNhAHN4vom0TA3 - -ecFq+D1JaQKZYlQmbRfBRmKgIyPc1QyoxhN2/tQhKzmFDfCpu6+XcwJrtuz+bh27JafMRc5Z+GT0WbrBxFwA4/mYRvw8e8gzJhM86z+I67dz123JwHHfTMukAtc4mhw4prmDyKuVkUTaJPq5db8onWwPbnfc68Ge3unlLtkW714mp0+jeZkEmjPvH4PFN84BBzyynq63naPq1PIRG+5xwF1lPFz5C61mcIWj3Fllpn6gGluU35YXT+9zvDPNeuzE - -55pbiXM2j2nPCJvpudGY8rc7HAtO9QG4Vo+om93zdwAhnPd4uQdTc56e505m/iK5B7+c+gZ8wCBhXYXPoThLocPOqK/l69g2hMKhwSuZQ8hKzOt2KDWzjHgcHZ7FKIPTlXPvTiwK2mDciTJbNnaCJ7PIK1eyWLNlhMeCQwwHw8vpu7X46osDBHF0r3qdHU+2qOEnp/X1i2buMFh+g0h4n7xDySftE9JJ6qxiknzNr8U3FI+ZtfUl/In3lBPNX1vO - -xDf7AyKOtyP1ifjE+hJ9a6/wj9rrJXX2Nw8Lc283Ud913JSbdw+VAOMd+LGxvinZoFlJVB6YVDU1E61EFqYAAUgEJXIMANQdLQAa0Tg6Lu98tnktBOvFLWwu1Ai4tmDS6gD2I+bopRuo7UmOsYH2NOVjQTw+kQP8nhOHQFvf4IXAFHnXVVyfTgoIzygQdyPvi7cOZ3fMu3UTotc/D4QKe9XuAegI/YZ6Z/beDubnIW2eQ+PG9y+x7Tn8b4Ig7Nd0 - -8w5D4EPdvXLf3c4/jw7RZxV9yuPU6fBWACB8nT+pTmeH5FuWpKlxKOd/b728TTxugef1qZM07ETsnX9fulDOVM41V6cRptHTzb/3ecdceXXmGpe7wUaQC/vxbpd0tzrzdcROevcMB5w6z77opn6E2/jcEm9FN6UT/s3++fpvtP58+w2hNwb31MBbnvJcYp/Yi78DJc1v708kF9QL9TAM7bc/P5U+v4/ZV5Sh7nVlBeCC/jDq7R1q+T+Pv8NbsOox - -Y5T+V5rQX2n2o/s9fe9978bhlnprnZc/vfpiczNb9H3Oquf5dtBZHDfzN9yFhIP5DB6Z8tY55Lw3Dr/8yXUg0b1d0i6kGjeWvyPNVKVnZdc1/QvBHm52Wg9H1N8v7wDqywjaOkX8KtN5WG8031puz/urCOfp3oXrrGKmUHvq7+4iyX3rYCrgjvZwmzBuUyXLzkwhcpIAhcvmtlOmp6hB7b/c1/s5Bc4z+xnHILakfHzU1NJhUJf24bre5vwluMCO - -7TOFTBvL0tYAAalELcjFK1LAAVoEvYesq2kiHV2JOh6afUlWNNudrlmblxKUiu8VssEiHk/3nvxHlUOBXKrvIWiSqk6NHTGxGlvbBCI5k2niGqdJOgrdO+4W/ZBB1A5+fu0sNDe8YOxB7gv3IhfeoMkJ9FGLQjxWGVXCR90wlruxwqBB5rNEJbEfJF6t5wz0eYYaJVSABGAC2ALPPCoQlkpT/0cAAbJFiRcvTctPBEgipDOmKsd5vPCSwzaXjNsG - -zx/xzEnlQN6i+vY7py+IHI89KjOukHkk75j8n8oFQezRui8i3val42bwebecWvQ+1Hq9t0cb8EvWsPzZdrRjJjcS68J+vHBZKFUXihSBsG74Aq3t5gCZADnfGfsRgI94BVDHidLQx4P17vLvCAZVEFJyVsqGg3zWxOXignTjIEF9YLpOEDLz3xf3A92SC8XwknjRfSxqZlFlGrJ4AyQHxE3QnWwr12a3Lo3WosPbHszXe6W41nuOPghv+bB/jcKQ - -K+2FDrR8Qv0+egbXh/tnh3LbIG989P31eqxkz9171F38sBOh4ESgjQNuPKM78sD2ffnF6/gfiPmROQrNSC5sqSaX/P8Vvnh3h/p/rweDnxLN198IM8G+e2d5ir0jnJEWyRtrO499//GrfXhQ6MsOyl9hd6Nc2eb6LEpc9OntgR2yj2CHOua7K1ih+L4wV84kNI/bJco4F65pTlTl5D2UuREiLs4m+2+r1Mvz2BtS8Ffuzp719jG1WZfDkg9O4zL0 - -8Kwsv6o5f0+yIf/T7YbG/HZZeaVupveSFF3npMSR1W4M9vCGcx4wJTX1SBfcUtojtZN7dVqAbxL7/S+S2O4D6zGXWn8A25GsxQAAlxn7lazvA3UIfenzpV9OX7/CCuuGM9qm/CuzhV/WlUDOWusQugX+1v937urfHv5c7l6p+xT9n50FR9u7HJa/Wa0p7w4R5P22+P41ssSzSiory+nr6HsrpddI0B50LJsmVOVtkSkQJ6jxsNnMeEVSd/Mj0j0x - -5qz11fjtcNmkdpU2Vrg3XUL2zWM67S1wz/51jPtAT0d00BMzuekF3HjuRF4Kui6qKNyENvCd9UXH5xlvs1KodOgxg97BderTwA+A/x0gTpFIApQDA034ae0aN6mFABpQDtAE91zeb95F37B9IyH9c2z2FnIdY7aynB2meYMyzxtrZbzJfhndvF6aL4Ejz1TD2hZYlvK92TGn7Gk+H2f1QtfZ4b/P9ZBs3WIe1k+Sx+45z7R/usyKfS4+PTebNzin - -8y9MPXl8+5/cxN9Tnxe73hO/OO7p66e67yHTbK+ryA8Dw9NMqUz4TXqFuigcb25MuxvHj53VRPoPc2V7Xj6/niv7Y/3J5cbiZ9L2xduRrAruRZfX54hO639/jl2Af9MfmM6aS61zjgPoJeTquecfMdcFx2nt8VeOQXOB4Z7PiVghjRcxUOkl3MrufW1jks5vXsnMxKfqO+cDexPv0O02yh5/yO9hYgbi0V3fE3x567964Vjy7DifLWHHdug26kh8 - -NX5Nv2KJ9lNNTwSDxDbsWh07Mh5+sBGHns2brfJwWjmIHbfY8Im4XuN08AHrF9Dl6VA6ke3uQFMvWw28jKMAMskkgAtgBdAAGblK0OTpl1gYhYqpH+kMjLZ1Q1vhpmxXPDkfCvZ+i7F3PCrdGSV2BxFixNF6WfmYcrs6ex1dn5inN2fWKflR5d3Uall3wVN2OZcnv3qbloDBr3s+exemai1bT/sN+ego8e1uO+fYKR9az71naOf8xXCq7Oq2aZpq - -z1GuksvuV4dINPLpMe+YX1K+2KQmddypVE5tBeLQPHW+hwAWjh83wFJXK+MRf6e4VboWFYcyga759pjIPlb7FjRwP91fm721V+L1jJXKYfPBfZ3OAe4owtqvgSqPzWJ4FkW+FF5IEl1a6boIxs3CbitQ9AP2aJ2ux7cQGOHaBPbQ2e1Y8jZ8S3J5ndSGXypSPq9ASOnkWgY0VPABUeD8uMng3A1p/9xZAATCY9HTT7BISZwli1Mc27vri5Ab+Ddg - -v6FVgKKBCRB7xX6EPynHO1AXAAYx49tx2QltOL7Md7hkVIbQ/kvKHk5K/D7ZpYy1RnQOfROsqNkZ/xEGU6ohFpU89fftI44UJD29HW0PbE1F6y/19/fAbOAj4dC+4YCArJ8HXu+aMbHHRWNFkvS9y3XauvjVRzr0bFLc8e2gcX7jpgOI0+A3HBpecjuaYW5N4VlF2SBXXn0ZwCWniOznyP6Vl4iap1RdDheIKEAFRP7+tl5nuHnmbSAbZRjWypSe - -OY8f7ykufBLa+H+R817wpb3NE23aqgbNtd/uDtdFKbGimF1SLqW3EAmCpgGnJzFcdyM6OX82mWI6UErOmJGoEThNs8DOdVt/OmOgOs7O+Sfzs/h4Yuz22vmB3+K9sl4RPZOJlQILl4I0l2wVkaWXLV8PyOub6AYh7fM/YTmbnXhP1ndyB70+3vNkOnbJPDuNvx7458Sl0qt5uU0U+phdum+AXsCPg5uwS+LuvTwfbxgXP7Y69o6RlZwz0su2VP7w - -zXNM6fYUa5td8bKwEeOMmjW6V8ypj7enUF08Be5aYpz9WXjD3aNPuo9jm5lIA4r9296C3ikfQJ9IbzwNmdzUVqIIeQI8Ib5uuNFXBTzf+un/l75yLn333uRPwkX3rocp0g387DwLuPqi9lZJx4zNkYV//OZU+F+YjXGwFULXMOwh9dTcd564V7l2DV8OQy/iF5gz/o35aHGiuEbrE6+8Z1ip0CXvWgADPu0aOq0ipwEQQzHL6/Qc7Rm/Y30+Ijjf - -+fI4e+4FUip4/t1i73spLQBq3WNt4pz8e0pk1tER9YGrcncRwnNyI5FvtqZGr1sQQsICNaSNNytZjEUxIMtgxxgrKcRnQ0QqOdDvXtSTHzoNfrMWbTBi3TNSB29M1QmFEdjCYQbMqPCCO0ltfvrV7NwA7CG5rCR8l74Go69GsmjJtgba0W/LHld24lneu04lftHVBpiM10pvCFOpAgG24cz8ng9keRmv6cWYg9JCxTi3TOjOe1AenQs0BjBHTsk8 - -1hcLi8AXRaNI6wWwbpCZztTx9obiYLX3xTgCjUIIJLJlq4A5GMQQgY4viAOnLGm2BJe5acMj3PGLOuhr8ULWD4yEFY8MGk8m0IocOMqdvBVnh75EDMaxafSjOlp4erwCnitPQKeu8ft7fy4IQ4RdhHUIRNMJxlTETPn4+LU3ES5tF65Fs8KX+x7cEepCu586fJ5aA1Svy9u4Vfh08zjzPrpTN1r3P2d4B7IF32xihvKHPdWdG4sUr24r4gP10fj5 - -tnu9St8dHoE79AezfcF8Uwb2vnz5T062YeZDPdgd/Pml/H6l3wHcyh/VT+t9ggXo9vWUfWU9nTy6ZhNlw0f1S8bc60r/SnoP7yocDiOjreu5xPTriPwKbK/4k57rhyirgGc6rfkdtFA/pz9EznU18Lvxi8jF5xxxV5s53z92Sa+YxavT0dD4mvOz3Sa+126eB0MVk6vBVucrkcm5R54kinyjndOIgMJE88b4ip+QrUUnOl3mN5cb4SHjeTimaDQo - -et/iMKPDio9ImuMp3KN5pT8cWrRXcE7Y2/se7aIuSUedurCn8gunotQ/fZzgEx5nP6sxY63gsbmBpCx2YGftZVwpCwf5rAKbRhyIgQsW+WHstpji3w0zZC8hRdzmCm1kc7tibjJcV0fXyTlj8DtRqfIk/In2iT+6w6gmbSfNpi0S6sKxGahiTH1OWATbGd1kw5d+5SEGm/Qa9N90W2WzytvfVO4m0NnOEs/zFxODrXcVJd6J6w2i1XqLBk1LYK+I - -V6G02ax3NNqbugqt1RqA01U330o53kKPy7mdJSg9ww0A2vh+67cgBi95wqJoAsmWbtPn6XgpOvPPrpsXhSmz9JRWBJalE4MI8WuyC0sXCkK832utc258ueAC9ni65J+7HSMTy5cQh4+S+VLlcH5Xu44tFZ4W3BxcHgVynZIhZKDmErGk7/vbw8VDweUs+PBz5bw1r8geTrs0t4ItyPhpePRAnyM+aXbV98u7ub9RGet9pPF+O5wKe9qjIZ6+f228 - -qgL/ny6K3gueRLvbw9AF822tI3HjeWNdJt6fd7jXs+7YTrIM8cB6S1YKb3dbKKfoZtCB9vTwp3yfbySP99vuMYx28KzlfXp0PGLf8k96h47xhQPxjfWcf0Rf3rAh7yEvyDeeW/zc9oj90ubVvoDf6O8XyfwbyRH7/N7aLs48AE4de/NLmBvAXm0LdNuaXL7mWyu9zo6y8YYUrVFf7O17702anZ3KEJaneMjnNvN1OLOeSyZmJ3qO89HCj7ZY+kHP - -abzJZzrri0G4zMqHVQU41tk66aH3WcJ4+7BjRs+4EqrSgCHYQxq8uKqktetflwT+o4+7QUx8Yo4DTg2/Jd/QAmb/+t5jzz17TZO4NxDg99e/6AILwv85ZLiqaBj1boYt3aAxCzwHVF9LX34nKReGeiLY+88IKyNQgzgASyTOAGylp9B6F+k4e5OkzAQ3QyrFW4z6afyywyMVxdMIwOWNYzgMitj+thNuoTgVr0u2Ms+YtY6u0xTgC3A+fAU9D59w - -N0jSkCUltx5K3/7peNAltP8L64gxzoM0/aI6R32yvDRKyVc9LY8Eyb7xdXAPeEG/sd9nl8I1hknh1mMEp6t6r9wfTxzT0qe4e/fh8IT7gn6aPNrgmc/L7fvZyj3sVXA8af4MzSdPdx0lw718DeqM934+9+yrll1zApOFl2RV+kbzUDtpH6EnWO+TF55z8MR5LL0PeKkHCt7EO7xq+enpy7MrdQ58/x81b5Wzv8Nl8cDxt4L2Buh/rnPe0Ncdu46Q - -iT3hBPyhqUO7S9+TLwWXh+O8vfKvvD9rLL8r3xXXdBpoyevAQl1PYc9idRXe00Mld5cF3sJNwXcxw6uxa3GSOzszi4DeWCMjuekvdKHIjjIbmiePzSQw+2yzmN0o3gbTpJfbt+555FNuiXjiene8X+8Y6UMz73HVxOcjvFmft3HL12Ja3i3GVt8Alqi02moSllZniypQutLZ/mepdvKgIS3pdU71yXIWoTie+uPrve5N6rOfiW2q+eezGHKUBkJl - -WANh2fnh2un4gHxFIsA6CWdFe5aeg0B5IKSoKnVUMGcDgwAw0S3CqRLP5UKO1tRt6TW5EzyhtN9e9Cd317MbvP6W4Cux4tBOeiVT55CxeduP1fj4tABtR18R3sSnRjPoecYt+kKzD7yWHdQPvbfvu6563EK+SWUfGvS8IlP+Byn28ajEou3KdI9/Lp/J30+Xk+2EidlfdoI3jyR2j4P7gM/t9qvx6kWEPnRUm7GOSvqfT+FKkDPybfRJAEI88T1g - -xiwHzie4pue58AH8GiBn7FaovofWwnYRxrr+328hfUKJdV5LD51assPNFbfLJIOkwFUJtTc9JWJ5vg4/V4e6bFJ7tRaBZJjfzhWxhZiYS0EDLeXHcmIfZR7zw/dBeuFvAZcWLdNRMUF4cYwWneUG6APMZbzkWaMqu9fqC/L/WXL26vFcvIQ8vY5ZLyM7povZtP0O/SXCEZZ+F39rjepmez9BaUpQw4CQTC+fqW+Z2qZQA8Kh+P2ZPPMfsga5T/FI - -SXXRGaBIC895AXR3gUnvLcSeWUssqGeQZ3wBjlDQK0UzI/PlJvr2Kv1MAHItwoCci45WrSvz4S+ScXQ8p783oCa3TVibpWOD58r/PzocvqneFDtEOZHQFb2+xqSmI6mkGD98H3Nbx1vPg/VS8uD/Ic3AmuttvAK/EHaK/mhz877cTiQ+Re/388Te2EBnQfNHW/K0VI965zXzk81OmahB2Q5/2j/A106v3vmwrW/Lolok6q2eNLnbeAXZ+dUb8GQc - -IfGZXAwtxD9E8WBDxI1YoVa3NND/aH0BwUHD5kieh/H2tz89SbmF8t82e/t54ojL19yuRtb7PM+VTD4Z5TMP2ofHlCyzAGUE2tcJzJ+c62bwHAQU5K+FuU0GU8oWe32ZgU+7h6nYQ9Eh6v1K364eZ6jGwDbkzfmzMSm9626ZH3NvV1Pi2+VwvXZZej8an04bWedZjcrwquywtv1cLxm+yrucj5U3QXwF6W44PFdKAKw1t1prgrHRYUJCQkLbtBYn - -oZQ3VRgZKdLuFkp8Nm8LAkR9EWxrvVwlF1YDqxbOBiFowxjuhSU4zXB1dyYY3R1UNokHoG5nAudHJ9DT4lucC1j/VQCgu6iwpIHuT6miZ0TYrmgVxlw8e3e8NKBbOlamEXTAYY5pAf/7lHX0kQ0b1dzFFrefDqpCKkBeIP336uX+qW97QDpxPVZpuyXpjpNNKiA9TDj2WiwTToeugS/yV51byETwK30M2hFcJ14A94UPouv4PeFsP7ftaE5nm+Av - -nvubB/Oa8V82CSwtZwFnTaYH47r93/N8fbdESfW8+M8Z05fH10fDJvG7smj8DDa6PuwXw1uggM+vpyH7ZrswXLHrAx/Cs+DH+oZ70fb566h9+j6GPOlB0DwcY/2xWtCcqo3oo0wfRoaZnseqqlLxznx+LLPeLQ/v4/uWxZ2rnvHspbiNq+0Nb5DF4pnG38n10n3CgzwtD0nL127gs0iDeoh6enfu3nQxF7tD8+xdB0DwibTY+OIVCj4OQGexmbjv - -Y+/O+tDGug6tgW6DAPpiS2tSVJLZvzcA3DKx/n1CbXGVaVtv9zJ/Uje+kS/862cz0znRapZIUb7jBewTb1cvqvqJYvZOf7O1TGqrhivqyusepwSD4n3lgEXQafh8hYJQ/TVGD9Lq4+FoNJHbcF/89mAd8R308+fhUzz8JzcstMqPXA1wlpkj3wE6pkkliEyGJCJ2R5YsbAzGf6XtFqSZCAEeQKJgIMrM6isMQlCZoSxIAy9o1Lf3e+HQERcvYJ1L - -xwoiqtXW4BbIbF0PlErDEhxbvA7Qb5wnc/rzu83V6oV3dXwZ3/A++K9K7aH77izhY3KXgHNLUuSCsaieohE+758O/i3vbwh6BH2v4d344+qXfbT0spdJA80vNMd41G0x2ZTX/vowTC+/oAAGAPQAbyMCiFUmxdAHfvKhTsGYj6EyoBnF8wn3OgWi9VXuxYUMD39tNowUD0cdZedTJZUI13169it+i6tChnZ5VjdVy92PwymuNPTG7K9wD7ndnLE/ - -YuKGyBeZdVGVpB9MOP69N5qx1ACe0ubhu2HfsMx8wE5ua1OP6PXR83Ulzcr8FXp5361hq4/YR9Pz8FSqEr0l2Yzv1D7Mwp2PyQQcU+/N2n29ix8Sri5zxfPW1J1l8r9/ETo9XnkErJ8+is+oFoPwI1wuuKp+cVqqnzqzt9P9gf4nVvCgSV7Lj8v3gEvd0cwTehx/5jsLHq1IolcPDrbLzk0kmsNoff2e58nD9y5j+ZNrleznPS6+w550T3N9dOP9 - -tjJ6ICx01bUqftOv9FcGmcA1xTr2OjkQ/FjZ647MW1aQnMPHJy+qWLwO4R5odXhHEUSznYPdy1T3aQ8Cs1Vf6q+6LZXb/m3w6nnLrgNvLeZVd+9aLrH62WGJhrZfuu6gqL6ff0/3rQmc4rG6gqOUjhsnj87ukrXhb4ZmNDHbEwjtxJ0jPEF7xls/RFNXRyT+EgwHnMkawgBGdvYygLZlT5vXwa7yHOZFbj2wBJweFAZKyRkA8j5rBUwK7us4LNZX - -EL7cKM+O2TsoS6PinU7LLdj2eH35vN3eGi+CD7ZL+Vz0C3zxp1MAHs5LjcAstHYWzmaksyfYM45p4NAZ1T3La29p5Z03PjgB314PB0/Et51A/PjvZ32Q+VC65S+VnxQ5q0fXXvms/ALr8x8un/UfgDuW+cMsWhY1y349gseLuO+3opyvSULWYfIqaAhV6z+Qk/qB10QlpfZIvz9otHzDO4MfUk1D49MF74D55juzvOQC3O95I/Wn5xzk6P7sGX7v - -hPJNnztbgod3JOm69ppedFywh9EHTs/3ANEJ8HH9dukN5Mk3k58Ylb2W25tlenz+HCcr/O8ZpiCtqnPRjfxQ0tl8K0wkPjKfAY/97erO/2YwxbratUrfmachE9rn+b2ulb0hfo8fsW8a1xTzltvKJiBp0zadoq84naWbJheEbY/ZbiU4wjhAOR0+Z3YW6z7Ta/nF6fUZmGJiqLdSWp03y4nbTecz1Y61/W3MznGSi3umu/K69ET+AprG3D0+vA/z - -neMmtNI66U/q6WDNVV2NW1VIJtVGsis34/fblvuG5Ouv41ejSfz1+OTzOVCTLvCmhHuYXNP2EER5gALQAzwDygAuAL+8GWy/5BsCx9bQQkamb8Rw58Rj7iMXmnA6NOY/1E8LozwKeC+4mn2gfX/nNJR90K9F966yC4A8fOWJ+kw/fek3fJuTZ/VKs8fvca9zW+RYgk6uNKU6z/ExyI2lNHGpeogEl153pxJjyRysPeJ4/w97EL50RR+3A8eRsO1s - -DsF/DX517sOe7aZ+D4v7+MR+0fkTMyKcUklcRThH6UnKcAeK1NkF3AsbyoQ7zkbcG84UeGFGHXu5OTJmTK9KL8fF5cD8M7Ht7cG9ml/Ipy4NRTHms/fKeRMyUlVl+86Yv68lK9cL4fz4NbriQyIPWI1qD5bt2cs0JXF4nLMcPQClJ/vDna77i+WJs1DoFynQ32/HQ5v4mu9pLDH+utm71uLvDkjay6xCi7lcJfATMaS/gNJkkOOVsonPjsZF90HK - -QbBhnlZd6VJdgfMc3uJSJ1jm7zQ7+9dZaH85gNPnx2WS+myOfLdOj2Nu2Sp8wPBvv+V4Od4tu6DxQGfP++P96Cx9Ibg3KWVOI28LW7RXZ2X5xlquf4se6ReW6svjl/wiVOrnfLdQJk0iky53CWP/pAQTbyH9Z3Lfp+Xe4Zf6yfU5+DPp1048+76fg1hA87G73ij0HmkXHJdfA8wYl+PemT8qVGxa5UI9TSU/6GByZ5/YHMhH6ELJBhmTMWB05MxE - -LZkBuI96AIgC3Hqds58+pO/XHW9A+/5mZzd1adIo7wtqDE8pTY7TVKgyIbC3b1E/B5/t1nInwFfuqv/f1x+xcTpzJ/SP5pY/y9Kze2Jxqx7i3yqNvMnGu6AlHAPysLiGNaw9r3P2ulbnjoDkBXSkAr5g5ZfYN1GfhoB8m3C2Sp88VNeIA+Mf64yIasBCAYrP4XVzfQntx9U+rII7HkfzbCqyhajPmysMb4Ziz4JaaffBQvfEKPjkiNyukO93K5Q7 - -wD78orIg+hWURFm2eo50n5E+IC3LcU3bFn/8Awfb33en7O/d+jEhJP7NILhPZ4+gE63z/2Ol8tkyC6LffHY57+JqnjvntPF4//Eudy7vnyzjoOeQElV242k8aV8Ub6Ofe7WJj9WtzLP8jvIiQOcerSzcJE2O4jH9iguEEH98Y56gjUVfKRPcW+t1icX+6X+IfDfOc3MkNtRzzqz8Vv/3rp1PpW6+wx1R9gFEc+TO9oJtfnS3p4HPWfvOj0jpREnz - -CQIxfYE2+AMf5ZDn27toonHLPYedRK7UHrK3xrQbs+c58lXobXyjnvAv8Wnz4dOr6np8KbQ8aZZOE7fWj6udwKngiba6eiJt8q/ITS6vvtfHxuQE8UdYvK6adcInvh2kqevxGmX+5W9NfpPWAIfGr63xaavqiHRWIxH7FRBXXxx6tdff03d19a7urUeaPn/PF7njIu1IsCn7Ovu1fbX20ZOdO8mrGGXmbjac+Gy+VNdB9CKr7/POaU2Pu4IolY/t - -V5Vn0Cc7OghL9Ao56RNNfcIPbDaB1/dSzHPkdwkG/G6/Ec/Z9VKxhY4vrSb+GXB2M9fejkIXd0sCmUSrYEWXLVVKBYQvlck45F+eUqS7UH+G/FEt3fYuG05L1VF5P8jQfWzUgniJ7kiGbO96HfWVUB+k1PXB36LYy0w+e5iFzlo9gJMvznvtalDOHtEaHtW8T9xVs5v3NXUuqs1dIm/wBELqrXNNKt6G3rkvVf2T2VZw/ytpRLsXR7Jf5MsXVWpv - -obgKNuAXG7qua1aVj5/XLkP2a8c1cJ2/EG3uBsG2ua91deoqyHSLY1l+2/K61GQNT1Q0tDibz6js2TV4kt/uQOAAyyrPlRBQlgnA2gX/IodVYQBTgEXnoyFyED3co+UjskchQPhPm+I1kxbOnIWmV+5i7vlcDq/BMUpqgIaxd3i97BRWSc1Yi9u7wC3ofP1UuWJ+4lrCjFL3f/dKMcYEQyD8GrCdNgGvRu2SM+z4/xJQAgX/HPSP7I21b+4O0S3/ - -LVBT7kt/1r+NC8UPtrfUhuPKctb6s411vlpfPW/H9Wtb4O8WSTLU3xkOVUYW49PthQa1cmtmCQY9RRKb8Y3cVWxp0zXN/hR7JoDvMgxWItk+gB+5BaAAhPwQ1QUI71idlqnG2B7dgYMUJuxxcRARQP22ZS03VBDGDXSGpArz7tVP+paKJXaY7QX/crjBfDtfmZfXI0BQsT2v/db3WahJkw78nxqF1EL2jt5B9de/Fj5Rb3ddd7OHreH04on2Wvku - -LIRPdV+iT9h320V6GbCO/S19ZD5FZ1G3jI3MO+cBu4zpLX1JP5gvYCP+ocMTYHt1r1Nsf66ecedejb1bHO5pcVDSj5+uKWfwl5gp3XvqZtysdR4+xkCG2ZZy/XdkN1Jrrg3dzsbXYKG6QbPvo76lZ+j/UcdfDkmbe6TaMvMWGrM11cBEIPcJfIGoQOlajCIoGvh5swAHLdbt+eOKxzluA50nypaP8UeNRpDBmYcKsEkAhRGhlCIkf0x/AD32w+2o - -8khPEC3VBS39RP/p3pUO6J+Zb45n4P32EPtVWRB/6dwfAaO75P5M8UwHBCx/tp8xxIJpQU/ojcY69FL3CyyhfWo/b2eQ1/8V06mlQfIWbjnd8L+NHxmPuWHTE3zKceL9TH0I3pnvzlaDGvZz/RixMP4ti4X2hh0ms747+g3gdHtAeMC8tr+yN7dYkk3+UxjyuLbovh1yH519maP89/Mh/SXwv2reHDm3s99s99z3zkbwyvj/XbyNC97yJzi2lofa - -/euOcH68M7wjX2KfpOfjW+CNZmXz0ai+35cfxe8iTbRrwlPu7nQ+/do8E9+ND3pXpBPncblQ9gZ+X39vvzRrECenJzML49Zzvn82fbT3Rh8rleP3yOPwkQ56X27Mgj/etLeP37Wvw+o9NnPBj03ztVxPMifAkAyT7zZ5icrg5P++hEfyS/olw0F4RH7vfncee96/3x73v/v/bf5UGDt4x2Vu3v/vIzPHockFtoOXWm+dvIiZZTert8zM4pL0sDgS - -A5JdKS+Es75Nnkdb6lC3qPXrXn01m+ZnqTGCsHZNV7kQCWmq1SWSmIP/D+uH0T0KSxzzCS8F4V+zzwllMcgeefxLerb4qAKd+QXoeiUvnbUDIXtFmQ/dulF71/TcM46N1PAFnwD5pxXPgL6jxKLC8riB2ZNOkksaniyqybHDzofCv1Mw5QOzwPxDv122oQ+318Yn7CHxhXPM+CbAPyA0Buozlfs3aKgwsqj8M3d/QWIO7wXMQ++19/z30Xyffid3 - -YPsj742j3LZ0DftTOVG/DD/hAsobQInF6+xcdJL4TX9Y2pNfoufNt1QiYnU3AFHff7KG0oMpLqTHwTvjOnvdq1o/oZ+SP7vvz9fqU7m19KY5GeyfasRLiDfUjfHw+q33RijWfZOHvD/HCrTDfVsamvlPWL3dyt5qP0kbta3HdaGJANH6qt85XnTrA0fBytFz8pD1kCDhfzy2OvdXEou/ezngMLTQ+ptu8Q6Dxb0v3hvukHsceso9qgy0fg/fcYWQ - -/gnYdrHwsfjOVSx/XNUrH9JHTBGRHuFLRQB3NNfBH+odbpv2vW0D/Zbe8m9zVvqvZVfQVBgD7u0dxJ1KvvfvoB85dOgovpDvKv08D5CXap/A4/l194/rrvU8//R7Iq49HurX/WuuJSvR+q4XQjpyHXC33t6gx4lyd3TdnJ9LrE/aEE/4Xfx8zD9hPue4BmGGefCEt+SMqM/+kbv5H85E1OIwACc1KgBePn88KpMdYYqxc+HkNq6VEGT8PFIMWfbt - -CohHUwJOgT1wKAOkEv9J8jtC9vqVfb2/NAC8WgrziuNkJHldp7m5cW13JNJcqrPPBuuTr9sWJ9ND7n23HDX/W8H6Yp39WT7wM8JQ6yFrHJe0arHibvGxephh+7ja6a0AIek/ZPyxNSkQYtuRjIL9xyWbzeSIk2TCRIHqB+t2anyXt0SfFbsWzgcW/NYdXY6f5z8oVk/yevyveUNfQ7x/0AdEekc3QnDrFMATxPsWfVPgOGog77+7xHv8HfeT7ZO+ - -JIozj5l3aovkXHiG8oc8GLYq3vkbCzDUfexU5z43q1BRGHzQtqua+9kb2873SvmQ7xNEUJby7cQXgzbExfTA+MUNr9z87sHv7JOc/fKme2tzKrqSnZBHLd/0qAGMIIH9Mvveu67vHPZ+Y4MtuFCZUmkmvvrpXj6u7j/1ZoeDypK5pr8gMD2LjRfOf3dRNacQ72fruPnZ+YZshfasukfnlynkqbc1Xgur2XF5FoGPtkKBrU+C7sL5WGqR3zpHGefG - -7Xze6edhndAjYWuEWoNrgUpz+n7mY3x0i3H5FUTefiqLauulR3+oIvP01Xk/OaY2nc8NV5fP6xbrpScnO7ccp55KxyDG9cPAHmmD+rT2C5f5WahnwaeZa/7m8S3OjwfAf7IBFJh9v0emUgWSSSAnxo3QBoE137XnvEAHTVnUCsKY0sCuFIIYrkC4j0SsZ+Pf4v0huPH1uz9vruhG3FZuQTLMfwndsx8id1eH/FrHJ/CWvOOe+IoYoUHGjQzlj0wF - -NsP6Fh+w/P0kJ8c2r5obxWp2c/NHftff188k70wZSlP8dfI6/J7+Y69YJy17uHP+5XMmf0r2QHoRve+/TL2T3b1s4znyjrcdusC90F95b83z9NL+hwMe/HMK4uxS7sYlOR+YI+lI8NG3WvkM/EZWvU05j8gJtmvz8nTleD7ebp4ROxoPlEgcU6eO9+M9F067P4I/AQ+dlsnO7pIwZexPfAkeWrMP4+8X/qNgAbvQPY1/FSZ4S9G3qqN9AkuccNCt - -DX1QL3S9zCaNFf9cBdL4KurK/KrMh5kN8cXschxi0jy/1qCUfl7+y5ax81XMs3jMkcOZoq9Z6wM14pWjcdjpotOnKg2BTM7tv98aHKF51Fdvm3f8AZWESyYR2T2Bxl1ooExed81Z8Bn4nusn0Gl4D/tgb4l+Lk/afGpuckaFX+fJo+Xqh7P1vJCPthb4ges6Ruz3RFb1d9RaLuytvnZv5aII9y1xm764+6ThEOe0XdS1TiC6mjKBpPUlW7IABivh - -EZdlRfhwHpXtUJ43hYGGQLSDIGRJe+CfvP72pvJ0/HMfyvdPK5EH+3ga+xUzvqoxlfngCDIPjw53x7Az/Vz68J4Dn3ZFBa/AG/kXdCAyKz7dfLbGd7dcd2J3/MkfGFIC2Mb/QaA0jZu+MRCXleqDswLfBEGlfpG/4l2eOhwL+waV5iM1vQy24b8/X4oL6f3rmdRhBne2TW4nt/9npQz7NKQKNqGHc+E2OjnHERkideY558251zibnvdqKx+I5+7j - -+JmsFb88Bhi/uH+lb7ZfmnvhEXch+rr/A3+Wv71zrdZh1u04/577lzvbKMLuCG/TH4ugOAjku39qmH/JcV6+N5U13q34x/hC/YF8cYxGPsx+5t+qb+RIPgX7TfkjJjt+qFg/r6yRdrUnTFJgffV8Pr9zvXUNVY//Vvul+7Q8Ouxw3pq7Rnb2meJU/O5RHfzhf6/eSG8JOc4b9X67Hf0d+wOdZkTx3/qv07jsQe201PQ7UhzW3zufjYe6RXxRYZFY - -OUiN3ykfrd4yukAMUbrlan+uOHrMc88LAx5xOWPK8/3SjZHfD71/vj/f22Xb9taI08iw67jc/zkOqGFGb41iw23wKLWXsENs4r9shZ/Kq1PP5f928IV+/18zVoCvSwpFYsbl65jgdloLJVm4jo12p6bb8NixsPiJe31tgT1heWtPPvZRCJeRw8H4Ov/uQeeY9ABTJT77HybfLdenZM4ZFayTvlIpfjQrfC8UgHVbsX/wn7nLa6gec5CeAYDyg1lX - -SNF84aQCo/n5t4hXB3rRpdu/qFc6E4MPwP3ow/J6IEoXaRxxrGP3/vHnYNDqjK90hv0A4QUvcKfEW8xG/h56vDxb9Ye+EC9dr5npWWV/YOfYQX+/6xM3I4yTvTQ1S/GS+DIKh75Os10XIXQqBzVxPOV/qQAJ238Q1YH1fLM/Cd9uent5HoVIsLShpnSiQMvRe/CUDzue8oqZJYjBaJSkZMdH/kBYn6aJAWhazUgxfasa8Mf9JIBiEzY0TdzWsMbf - -m0fCnYk4FbZ+nwJD5U8wnBey71+hqxjmh4x7QigbGuxGP4BRRh0WWg+KlgCRaqyGPDjmqRvo9g/782s3VEjpHqvZoXHjH9IrBcf7hqUBTc85LH83C1X3JxL/XO0FW2HMHnbmxbqb6R3JIypCPUPeTZzJ6slRH5Mrf3qZ7cTBRpI/7/G1UXXADPGV8dG7fWsPHrXdCkkVUZtB1MM8oXqlBAAttVrQx75UhoANj4R5y0WSRjPi0bTnvlSyTpXe1hTq - -X7b4ohQHqiR5HyrZIdUVnQhyLxrf+k/TQltmgi/S5cwjZ0qwM7yB/9E+7a9gCY5P6LRlifohiJlG7xfmDz0GRji0LewUsYiG/ZgJPpgHXcvXD+upsH37+T7Tt67uXF+yX941Tx3rW/nzb9Pv3u5SZ6Efrd3NHuBVcmt74LwSn4zNPHepJtKp5zDV4F20LrS/ndtz7bef4NvuJu0du7Gf5D9H32YPjyv9pqq/vad5y4ycWgRvrEf7GMSXcTv9o/tj - -1RDmnF9OP4If3S3mgPLyGh0cpNYhd5MKwHnfS/51Mbf31Z1rOx67uJb8UJdAaJQuJzFc3dw+v3p+IBeh8brQK7q5fGHME8+Fk923+zPCG1HM99HZM31zVz66/R2/IsZV+MBZk5x3CmVfS2uWLY/bbadXXWD0+aui4I+UN4/wIc97D3uvx3KBnisZMEhQPNOtDd8099Y/eAOVoXLxTgAcAGKsf81ggAzEB9ABPoR/nwmbmER8ax9n09wB5H3Fyd/A - -haReKZXlTUi5b9rcbkQ+/r/ex/K9z2r0w/nipvGy/atEryv2LqAUTLSntCn50ZyKfgDc2fyYb+xx/n/fjv2s/Z4PUd+hv5fz8x3+m/b5L8H8wFoUtUVPxLf/wWSH+Ut8/nTO2vor7ohTZ8DiD+f+MvzKT1Q7cjJX76Fb00Orjv5++U7uDIrSaEsPnOP+KWt98aX4/zwHx9w3kw+sPcH043z1KH5zvtn2fltUh5PmzNHt0v7RO8FvsV3Db1o37zvR - -QOm59HVv071G/s/PuU/8Ncml9bUgEzgLHub/pismcpnf4zPy7IrxisYa375/y70zqsb/TPXqeycSbv5jrPQEi7fpmf0Kae40+furHpYeHN+h9891t7j4g/ZAjXr0Az4+n9DrMdv9uf5daQH+4OamNxn7H5+62ttt8a1zH1EiraDOTz9nB3G4nkd2PPGVjXn30wDAxzowrYIGY7hXCMGTC95Y7s+/ZNBaHY/2Q5oKxu1G98ozYQiLBZ6ALcEt9vKx - -FKEjX2U4hEKbHkfMed7aQMSF/ABdXABPhmXkh/fO4oV7bvzLPWLWkrPsz9eLzA//n4iwWI/x3NHcUvM/1E97nBEC6+n/8nyK43hFCLfqRfDfqcq8nH1ePVNEoz+yYoDn+Jfszb4EvTZWOX5ir1Wdqzvm+erlMZquXUxC71/vzPfEa948rob8L4qxfm8eCf0rQ7T0vNL/OfRn/Wz/ms5wk0EBzy/zOORb8Av8Gyw/NhbgeIPQXc5yfmy8AXlIng6n - -JS95l5izQ2tqT/mz+sLfjFfk/9X9oBvAVfoN9ObZ/d/s/kR9weP+XRc88d/Gn3mSTIfdyIN/1prPbMcNBH6/HZ0293tgHXgCIAdvXI6m8xHYBexl/6w5DO/lLNM75s5xdhU9TFw/CYDDt7OJ0xVnxG35/cTH1YxB3qAz03elgL7PXeu5dZqgMiedl1BGJJrgS8K3ip+sH3ZPeD8bBQGsJIAaJsHNBG0DGSk8hAnNbE+GboWV9a78eTwNIBRgN4uN - -8JXb4lVlWIXviqXO/712n/lks2jh1/sAfRk+YL9T143hjsFiD+8DI3k7mOOxftB/l45ZDPw3+hbQSGcL/zN/BFdjL//D0oZwt/y+2G1s974X38fHz2JTzaSx8ZZesvwevpEl/z/Hwexnf+/yoiwH/3pfWQ9i954f7hnuM/3D+HoE/f/Vv1S3i1fcP+0NfkB9h/7UjMJf1ROoN/wb+633c/rub7LOySYF36ch4bNpidrPZ/j9or+Vm7uGwBnywTNI - -9hZO0j4f5+bXOSMrIfKEeN106bhGSo8/PhTM190h0mZ4D/tifO7htk8koaolfa/6eOyaDEabvQ6KJI+mYrI5+T/wN/+k0AC78U4B1uvHposwzL8BHFZyh8L/HSFQSAU1TghLOKP+NkLaTjXpaDwfKiaqL/23Zovw5Pp1Tp5mrLdVVbgD5YiPNBBKOW/GJJU8JnnNpjhYrjJK+3jcB3yrCqO1dLWZ3ebB9R39FJyQPnu2F3e70/8NVZ/r9PyCX7P9 - -yxwxB2PnNoHq6nhBcoqbBUyXPpFXOD/uq0G/5q45ux0m/6qw2b+eD9684xnfv3smUoi8lzzv5Z7cmaV9pGKY2th8KNxknJAEwFI6ORKDiCM0Fzl+f7yoaonHhyXtF3SFDsdT0ynpmG7PAJn2ZKqy5njXh3HGTars6cmfqPVxO59PV3fQ2/m1VYcXheVpZ52/4xf/ZNZSm9SlnaBqIxUlr0Z3vAR+RoP5oZb0X7s7/ReSn2Cp6Cv7fHm2fg8qordd - -75ULng/hiodVuxc1H/6azyf/jyhYhVel5QVuLNrNwLhgMHaCg/rggMjOVcFQ3+cMZmiQOC8sE0tJiE88Ay+4k9opH8NntBfgLWLbmBQ1BzbPWgDLEAt4rPPJWSJYALQxImntGxtlrEo9h21B8rDyPlFvk9BhuNGCZOT6L5fr6TujdqA/laMuA/rRPmM/o7vkx/jCHrA/vMbi6/vAGJ8cGXLMueKHqg8xK5bgDvoDjkbGD1QDt6n2/kHXlOro5XqL - -KmnXmwAQUPgGlpwAXght9FgAtgA3orlpwZh0aqnHj43pY4O2QtFZvkpELXluyvitGf9D6NlbplpknLQFe3rtmnx4JDCvAbiArlN1v2NqHnJEtvvsHYAJbaCD8MwztgSP/kDXntONqnVLBIJWQuMLs/MsFGMPAMIJC25L2SGVCn5iCJ/uP/ofVlP/oQDuyfhcACBbjbbjLKExSC0YHMHr7dgiuhiNpDfraAgJfj6vg3PhIrjM+lWtscNusnkMqpdp - -PEFHLsOnKKS8FbPAiFEoYIq/mOHkd7lJ5kwiFXGGEMtZZjzBL0BChOFu2EPSFm0j8anLTp8gNhzNuYNx+vhPvL9nbSP1IEzRi2UALflCZmFzD2Xgb5q4ASL7tE7tb/nZbu3tuPCE4zN3NNESqXAMbUMs/i8Fn66JTZBqPs4fgltulphnfmJPpC5rSnlGWk9vpnfgp/nWdslhiPruF7Kvjp9NmlbmrfhcWtRzvKzi6Zii3lc/oaygOVg2PlZKq+vi - -SniaHvjrpMvpC7jYzgsAVbBoAlvmVhfOkitlE1o5FhHSr1HsR7jzfmIwGj3rzjux9vzjgtHjrAo6Pj87tdhlIBqfvqf/nFin0Ihvji3vkBJic/i5KoCAZWClixJuTtHRgnAHLfp4lsbxqHvpf/uwAUmdsW6rLPkzBmR3qUfnLPtGJOrPkrSozXnJDvK2olDJgxhpzO0zOSho1ZIbnk/AG41HbOr4Hvl0Mt+ESWjBphsQuRpoy2t+JP+PsMgHXhNQ - -OlTIEwOlQnv+4OSgMqRJcctbIvvAHbGHbIlQnrmDNQPtzrC9BH37CDjMdqDuUkTbBmkAs4OEvHrkrwWpk3r2qHrDPhbHHOgdrDSoH+Pi4GmyAToNtgOhgOpNjrkJNAOnEdrVtpsEpMjq1OnJYpiyL82Ib8g0JKjPnaAHPyMn3HeBBz0CBLIwiLcAG4+IsFmeQEAdlJVuREENgOf5CdJhSgDyPqOgF+StwtsI7FpaEqloCemYHkLkN0QuKvvofuM/ - -oYfiQASx/tbbizLnIOLQ8tJiB6/nj+JRwO3fDxftalrfMju9CMAYJPop3kUDnJjrXSpG/oF/sjfk4TsWAXMAZ8hnjfmIVinfklPhfNt+7viSmUfhsAahzkWPinvlZ1pGdrc/q9znTfv+vntHlbBnlftstuUPs63h/+ENPq5jt3DidzpO/taHthGMu/ps2KtPn2fvp/l5jk0AfVhiYdmS3ioHjBpIO/mH/kdHpgLoUzu41tn7ic7nNljy7uMPhrfj - -fbvyzj5Ki3Hif4CFXqRbj5/swLtDzleAcCrqgDoZTh69s37tMXqqMPEmhl6gKBAwnltpkwnuSoJHtgczkBjgBts1tiBfo/Kgn3mBpl0oJH3m3fhJzLEdrwunIuoPPIXcBIEDkwP4+gGDG1dIF3vOejYgsEDM0KA6sD9eOG+om+qG+sHoFhAfMis5TGeCA8TiD6N0Fif2quALWWrU3AUCPo7GoujLCifwF9TmBxNoSMdmsT6GO1nyCjDZqsdD9RD1 - -wAhjKjPijZoJJKQACeQMeQOR9IrEMDGPHUGhSMrIP95HjZpmBBZYk3cAGAfsAHFZF6Fi1FLTDlBznkZho3lYJC0ATMbm0ATeHrE7nlvlz2g3IALPu6CtEFAugpDfvDQt/XmXNp3LgH/qv3u1HtDzoIAcLOl1HvJfo2AdiAVkTvOAXQ/pG3oxKhKnuEtJsDtmFvgXq/jiaXihZnZppsRuK3ty+EMfvLnnfnsRzh2/r0fgAWjCASUSgvbhC/p1Wglf - -kJ1lkzm8ARuAb0wiKHrOfn7Pt/hpYzo51vmPvCAXitsPvlWvoh7jJ/rZAViAb0VmFbknyh53m4fhcrhlAW8KpQ/oRnhO/txduvvpA3jVAXhDvFAW77rPqo4/jx3thbn41ikPh3NtLZgO/l1AVCpj1Abt9EYDqymPuhiH3Bl3q+PvQnpvPrxAsRLl11jKxu1Fi+Pl1FsIuherLGZib3hqKuh9oT7iJzDhxNK/ql5LuILwSuF3uHOr11k6zGQOiHOn - -11h/9nCWml4n7OhDoP2hpQ4BcKF4RrmWm2hrh+vz+M7OvtMnvLhDoDiFn+xuYNgNmv7KLNBs5zod5BsZpNAeu/jzar/lvzXq0AhocoO1qaDuiFhszrDDsmSIljkU8JIsjX/pSPrLXgLWOK0HT9BGDJsMDbSnvsITist1jiRMRptebnLTodoKXjpjdCrKOaflALBQsuNOIFmJp0toHssUj/+h8AeBPLgAa4svgAbwPhKvlA/lKPpzHmM7iIPoWQLU - -JPA+hqKED4qe4AuzFmAazmurpEUZjDflsHvNdm6vhitj4JjHvk+zgmVtK+E5AWW/rWKuE1uc/pIvq1BBLfsGdphHj0fuSlu2Ae+zolftcAYrAYCwnH/l43g9Nkh7u8Abgit7fsJfmNVhShnzjpkgGavlRbnY3n63jfJj8ATH/kv3vUATo/iWvvIDrvboJSoi/lJ1qRzh7AQVPj+7gi/lavn+Ni1WvbAfxHo3TjbAcHAUpXKHAch+lDHoVgjf8p1m - -irrtPPv03pZxMK2h9etUJJb3jnXgbnhBWpSAQV6IosEnprhtmaIM5TCz9gN3twAltqEEoFIOiygDS2jz6q0OGxAJusMXAWPVKpwNXATh1FqhB8OMgiON5DJEHsQI6wIXRgGNmHSI0oDyeAocvRYCFAFXei6OiIOk8zhiMJgINnAbj7JEkCtmtk9NrGAoAWX3OwTg8LlSPgLWEuVFXKFmnKK0D+oPNXLD8FKABSAJWgCVdl6AaIII27MqAik7vhfr - -coN9eFtEPPAEoAVguFVvocRKpAS5Pu4AYO7m6fmXgOTZleTnA6GD7lGvIk7nzAUCqrcOMIxOs/r/Xr5/izTvNLjKfjCXlkKBazB3jAzINWmNN4rxgNzQFK1Ex/O0AFzBCpMGU2rehPy8KSfpWak9IHYSrHAKqxL9VsW6GoIPWQrrXsEvPlykd3tVGgx2iK7tA7u8XLTAVxci3jqzHmbbvIztP/jnIoUmJAJtWLhJXipeJPnhq2s7/twbn6/h21Nn - -TPoApqvj9tu2dmXrpR3uHvqwvkJfg7Rrjnhjnsv3ijuNs9hUPmMViy3ow3iEfnpfgmtFChnX9mB6vMPpZiixyhNJhIHolfhoru/6iLmqogfcgvggYPWirfhx6mD/pNDm83qMXoyztbfotbmodtmPp5/mynrnTuFtiVTmVAdlAYxDi5rpfhoAWklqm8DqDQFlAZFxm6PtHcIXvrnvrcVtIHgm9nWPhJKgfnjx3plfuPWiZnGRbiR7kmXpgnpUNmEg - -e/6v4gRdVosbLVNvCfmVjqwwlpDoy/q6dB5kg4CkgTmVPHP7ltvAv7mSoowSn9bjxnoKtu0yp9qL3ypitO99uA1Lh4Ct3EnPCyDvg0uf8gf8krsALvvFAnFolVMr6npgzodBrzXpRLt8Pk/vvrNFnRrW/DrmPb6uN3v1/gh/hUAJrEKy4ovPCdakeHNrHtUAN2cqn2GKyDvASUARcXhtFP7TA7FDFnubIL/gBESvlKOCZv7fpCZnHXk5JhX7oGji - -zPpdng7vtdnv83mnNvBEmQHEoSExQr6JgQdjR6MsqKqNO/AVHqjM7v9XlwgVSztqvsLAU3Sn9nkP+lj3oIgRhZulAcpTox3rGfnJfmndhR/pIHqPmo6LtBoGNHmNDrJ/hFXKz3iw8C6zhfHhM9r4rqyCFH/jLqPDFpvzg+DnEUK7HlMtveDiigaunlPdmn7vUzqrfmR7pJNsrAWMAaKHnv3gWAfDvh5tmGvr0Dt7Aa9/jZAXnTimOp63tjrkp3sf - -3gZXrEbt1Wsxpn0PnBvj/bhp3lmdgkKuz3tutu3dtBrub5mCgen/rH7oY2poLqL3jH7imdgP2iufk7Gnl6LWZl03q3fnZNnXBowpntlnp7m8PmLFkYXpwhPkgfExk3chFksAbhyEtAfm1fqCvvRKOCviApiEnrz/mpljYnqNfhadGlNlCvoE2jI+n7ji1mhWhkCYtL1vXfjS9uhVkw5sWHrf9iaWBzuranpiYkcTuHtkMysnKHyOoD5qkAUUnn2N - -kUph95PBSPEAKahIQKo+AGoQPQiMADnzBJcYELGqu9qcGDD0GxAU9frgWKuAJR2K3gJrpG18jWrvXdszijX3AM/va/scgT83vdXox/gIPs7vieiBMtOL3HQXLM3HfBjh3ldJEflJDfmYZGLHizfsf/kbIDlfiYgTOnuO/tW/gyzsOgccASCgQBNnG/sJHk69niniS3kocGTvkRNnd/gHZuEvo2vkBWDYirixgatEidoy7gugVjfuunplPlbfobPp - -0OjlcjkVvXPsFBoazmhznR2oWfonHq2bilTlegXoHgaPjwAc8ASJxvbfqrpuMVi1WroHhJNoyHkRboVHoohvI3qrAWYgaHfhibrmfltHjKBgjnlUPlhzrANnOno6BvwgVJTqlAexzhj1vBgZGfh5AcSgYevusAXHyihgdPviSgYtnF6pl2+nzDs71m7ABx5sszqgqNM3vwnsDrIQfh6iCNfuHnkB2gZLizXm9Hn+/tzNvPPjVfi2FtM7Lt5ga7gp - -Ao2Fh+XrZnm2Gk/ypZNFTbt+oBv7jv7jTVgQ9oagWmztFkjn/vpAi54mQavAzjNvhgxKUNtYNoiuHCZgh9AFDs/PgvAYekMHmsQADR1KMRFWgIZJtQAgreO7Mg0AE0QIsgTpPq8HuNOEFxHJ4A2nCcGOHkDWLt1IGgPLu+i7Ac7WrkqlRPjofjRPgzATGAUQAQ2gcx/i8CHVAoJPAyoLgahxPpoSCuREfpgMAfwVtRMAysOKfpv3sRngoVtCXufr - -kEJFSYqtSDSYsernB/mFHqMgYlVCLWH0AGLWAzQONYNdpvnOr5nhhPMlVKu3KMBCskIJrqamHN8EfAebalGQCQJNvmvTHn0kEbIFwuDP4iMdgqUpRNtfAX27upAZC+nG2lMpt8sP6dNOukhyp2ABXSEAemU9sLHsDBMT4Ov/n/AYWvpuAcNTERDmOOvEbvRdBzqh76lzqrurs5fgMcIErqw4OCkCD7uM9mqzjbAq0qFtuNqFHCcGj/pCDjQ0NbxN - -osGp4rj4D3Gv5fup5LVgfydstwI2+mGXqK3vJ5PsAFdgQ1gVGXh77mf/EaAVBAY0pIwTtjGsScr23uagoubpzDLQTpNTuOGhRJP6zs9ZmmFK6wLC0JdMNNehCVCsXl0gGsXqpgQjAYekBgVOJ0vwTlOAPjHi0ALbmNU1NfpHcYFbaLA1ry9hq0IFEJe4D0eqmbo76kWmDCBuenqNOECDoCHmH0L33rIzjWgQRlnWgReHuWnhcgQ3uH4sHqUherHZ - -QLpAUHam2QDkaLx/oDvo9ILYTm8gSR3p1Dms7n8gfS3utzvLPp4fmlASfbnj/mdzoxHisVhwNsq3ky7uc/mEfqa3pGekkTi5Kgt9lNHuNgQyqipXkHAdrgcGWgwXuL2if3pdHgbgQmXo4xrwvtAXvu7obgRkusbgdWvgx7ipXv1AfrgZzdm/ngCAU7gf1vLXKg9znO5mI1ijZMDXhBHq6HjG/jz5nmTrFjLeAdv/rIdrCgTbIAF/sBgTyNrigTCb - -ouXsznhE1gXWFCrsaNrUvofpse7qAnpavoCbuEvkngUMZingQh6iMvl1hNngVtzhq/JTgXnHpUgK8Djp/h46vL2vRnm+5mNshpmPvfrKkvosPBEEZGNfwGG3IQzhDRi9ATwOvEJN2+gYNhnAcfWGJ5j+pnqAe/gAaAZsEiVttsEmVtlydmzWH1js7+B3embnlHtITqPIBDVGNl/qx6Ll/h+PiaAd7XI4MuOFnG3G0zAq2sSAScaksztBAWj9F13h - -AOj13iNmmbrhpZgV/qzAIzvpgRugpoV/jr3tfgYsBk0zIouogOrZwHojN2qGtBstBmQxpPXnCWuKpmNdNTgNdGE/AKijFrLM1NqffsL/hUAAMBH5yGoQJaBKStAd+Mc/OnLJuAPBAMg2k0/lJVryIJMxANPAQqDVCicGO0rJOMsfoP09PyFr7fj33huLriQB+rEuzvB3rofmUtozAbGAdA/vGAd5gYVnixPoUolN8OIPrmcGLQk2OLmDDIPkyAn9 - -1kG/lCFtOgS4frqPubeuOgWPNmbAbI1tCrsfbpTpo12OSgZKzsD/oBDoV2osDkIAfygW3vko/kFAbHvt6dk8JmwXlLgaIQRhNnYgUoQaVWtB4oXgffgCngQHAdB4v2gSlfmeAerprX9nFepCgRVAdoQXn5p7gelcoNzotHtFASYQRLQmXbhN5ukfloQdrpmZ3uRHpfhlgAZ9zoduoagKKnrV5m6zq4QRvviBgRRzjZtn7Xjz3gb7uEfh2vqyjo+n - -s5XvNWhEfshnrhDoXbsj6oTntOvg9vsqnpniqkQd/3gJ/EsBk/gSNmjU3kvgUD5vJiEfgTRBiNmndHksXvIuoSAVpzIKcOVarIuh9gUl3m6gUonD0AsxnmaDrMcDxZjU3MSyKnAffvpBvIPemOeq0Qe1FiIuq4LvQnqmhoQ7CShDgpkSvnkzO7XGYNvrnvN+LBPGztLRaB2+gJzIuhmAbvbOihIApgdSWlNmu4YOHOmG0tOPnSAddGM9fO2zOrFO - -RbCAQRSFmTQFWgEZKEeetKOIq0HeytgAMzoKOaqQAPnjjdfnLTtE4CAwHuNCl1IstDgcJX8HurMM4EEMF97kZfrl+tc6Mq1mFrC1gZb/nt/p2oKW2BXnPKnAMYKDjCOnOOqMzqnBbnzgQkJMZAcFPjHHsBFjJfmFXovHur3n/XrqPt5fvM+obPuynq/pm9/mugYemM5AUitmp1nAXgFfpzyphgYvNtDnt5AYuAq5/pIvh5eng3gIXh5xop/mvTui - -QQu/hegY+gXQvqp1v/1gxKnSnqnTjw3hYzhjvi5AZ2AZkPoufkazqPgGDzqvHlXvuJ3gOnq5foG3lOflYgYD3tD1p2PqygZnHkXTq63i85syzuZ/guvgMtuOASK3kXbnwHnMWnfNg15kygVhgQYgfO/tx6IAWvQvmygXZXqLgXrLn2gRFPjwQYWAVZAdfvvk/upEIU/mWWo3ev1wC8ztSWqfXs2huiFjGardrNMgAsBrMcKNAfNAdD3GAar4qvup - -vszpPlhVjN/lgDASNmnvgYm3MRgWj9G9gYC9gfgReLFpZql/iGNnPCnxZoVUD+pE+Pn01r4Nk0Jvpzk0JB0YGWQW0JHpZtZzvepn56kTrKGmk0BtUBjbnrJZoddBMQaihH57quhgnRjc+sQOpSWidAd7Or2+kcPhyWrBAfKAZeOPtSiHoEAgAITFFChkpjFChJOls3sq/uhpllAJuAAfknzBJeQHAAFK8DMMPEAJhOGdxGPjMWzNsRDdKtxCi4PA - -WgaxXsUwGVUKIQmLbF9fn0pjdVs0AXTgbHDqcgX83llvszgcQ+LUACPnuh3qM5Ct8Hc3IxavhOCZuk8gVbGkghljCoHvt5bp1DrCln2nrR3jvTkyfuoZhGfphboWAaIgWGVqEAYCgb3HtJ/qVbmLgYe2isAQ2dqXgfRnhhHgMfoeAQSQcwHvcKj4QViVrLAcrfii/odRnaXnPvt1bkd9llPmGfm7wlYrq43tSgdh7hHAQKHhbts43q7Bh6PpIQSR - -Qfs9jodiVZgenmT1krfs82nuAe6Fh4vjhQYj3sEQfW6h8mDGfs6Pn2ttXEjNgZZ/h35uA3qhQXOAQqQRWfgVRqIHgUfgnvtkQXWMisEm2uFW+lpbDW+ptmlM3hpxD0zoGQMczpaSru/ql3s3fkotm4ZvQCLcPiczgcJN3ALD3B8vpAxC0AoydiDAUxnh01uDAb9Aeh+vr3qMQSfAigpjv0uodF9esfgTQvoaAbUQU4Mp13iqdkFQfBWse7BFQsb3 - -uNAdelsBTuh+oifgT7iwWky2lR2FxbHdBoz1FnVHEpP0QclgWnjqcQRUAB6NIrEBwAKbOHvaG+qocAP/kHxaL2zrMyjvXsgQXN/sjolnKF4RpggZ/VJeqL+EjpcnQVGMNnpaPbASCQSq9mCQWPMNVDpOJs1VJxEE/AUAslPtONiIhUmwQa86HVnj93jwgWIVnkblEAdT3n8tFiQVHxuIQab6BBzgiUlqQZ2shtQe6QakzJkmmXVoG6LkYFMeumIE - -IYspsEHaKIYgcPsrRB72KFCg/wi//gqkpSYpaAXOwHw2DaAScQW81mTQA0AB9TAnLNdppyAAlytphmiKKgOMsGH5lAKbCTZvVQYRSG4hJgQZDnGZwFR6pVLMJGjUmI3MOi1rcGCiztGAT4jh5gQxPtQQZYiLUAKQFiIPupEEdUIVvpzLp/2r5PnuDqFgbGYi1Hk4fvmAWp3s59gg0NXXmrljFfuNJj3OtjJsuAf5AcQhPtyjVbmpAAeAZo/up/oV - -xtydNQVPNlFfDO/norDjDQbLKNGvni/oGmnUHE9rAp2CKxvrFvAqsRMKusDiPkhVOIWhCsiXAZJKGXAXgiEgoCW1GA2KH+od7sUnlJ5uuqMqlJKAHYwj6gL8HHRHHU1KdiPk2jV6o0nn04KEgMVELAsLxjCcGCeQW25r6Ih+HK0mAAiMY+HRILyIHE+L4pt1QZuzlb/vISDwiPrGpE9MtEm2MJPnjOnCJZC7/hY9gwAd6iPquELAT7/p6Bl53nAy - -BJQR6Xvsxjkjmw3iTfgkThkPsSXjjntD1jGvgDNi4gR/zm1bnSbrLBmHbiImq87u1blTQdqNhenuXTFJcCfkB4cqcZnLaGXgGfAaN4rp4G4HASlDuEnIAQ8+gVOOvxGk3iuAk6OvAQGXjK2sFCVER+morKUCDqKhJhjINvDgUAAYekEtjqrusoALMyksRIhqqhOJvMruAH8joA5Bw7IGASewL0pDhjpgQet3qy4GRTPR9j+yr4gRv4ha0Afhh7QS - -MnkxfrUAIJXnjBg8pOmwLQ1udOCNLMniBEwrzgWHQZMCBg/sXrh1LjqPoWAQe2r/irp9mWAcpQTyQZXDkoZjaQdHZvzYP/QVvLrqPu/QVWXtAtr8gWKXj8gVDvm6Qb/ASETlrRsD3jkAktQVUPpYFqA5nxNsvNkhFpOgfpfu3gumPqJQasAavblkQVRzqSnvZXs4ziXQSwdrAtiwqsEvMvrjlxnSnoVBpQwR5QlhWod7F8TmS1GPXq/gZ//pmJv8 - -bKEmrdPvnlr5Cs1jktTh6nNInttluhXnVFnH3mZzrF3nm3o5HmDlvdUpMrsM7IjrG9egc+s7JksJOQQMzkLFQQ4cme9ARCJFClasKB4FqhAfAIjnA9wqzQFFTBnUJzGm+InPaAwILRSv1YK5AOL9hQPuxgGMYBHkBj0M9MCHNg83vz1GLYHkEhxXqbvkVTqizidnouDreQaM/viTpQQczAYzLizJNzHoL+PKPgNCnQ5IgoGQVBNQeYhBFgcFKpN7 - -o3roiAd8gWfHieAaKQR4frlAeD/myQec7iF/oQwY7tuYdgovt5xqa5tLfmYdksJvDnrBFgMTmCtjkwZnvtunhXbpTntkwUsJtCgYTrsmvhJmuUwbLAFa3jjvqCtoUwZEeP/ns6Zo0wYGUsugVkwS6Zk0wTOxhCgQ5ej4ToYCLqIi9/pJQdyzoaQSqnrJQdMAU4zgOlq5GjPrjixpQHqQwaKznEQWKNnLgWSHi3vvVrC2/vVZoEvuunjswZilnVxh - -OvtPTsZKgcwSJ1oigWcwRBAkVTrmVhFtkoQnkBtkBi8vkUzBwujbOuoZK9rMfoNcvm+prkJE2evMBkkJHaWJPgb1FtPgWLahU3nq+P1jotdGMBqtBuwwXigppzB0zF+PhUAnwOmAbstPKNdOJCnbOgyAefgkN6psEmWuFbcLSEAp4HG3LuhkNAQpDrWeqszlj7nG3Jj7g34rosPA9B6IvXeoPPNQam3yFOMiV8MVICnGDu4E03GIILsPqFLK4jJK - -AUdqMMGA8XmNtgXAY9IEXAeFLJDlgmrGk8uCKKjPmh2L0ADzBNLWFD8AhTMZKJmQliKFvsN+3gbal5AOTwFNNooIDkYOmnihljx0jWasg4Lafob7lt/t9/qjnNwPq5gXofkjQWcgY+QUmDgK5NLIB6yK4WsSgLNVEYahZuOtZCFgSwyrRCBfzvC3gSNm1HoSeg6QXtVLBQY6QYIrnHQXsxl4TkhgWTQUnHpD/sj/jjNlLfvqwSIQVp/hAXsWPreR - -gj7iGwej/kHgYJUqvntIgQj/ix7kaPo+AXEfq8ppWvgy3jr7u8/ikwTmwS4drqwfmwRA3u6QYsFEsjtXeukpnI/jDoOiPrvwJn3mH/JRKKqMHdAWScHh+rWwb9AO2hs9AZJDLHOsfcMiPrvwIsjsaEhWwXA9EUBm+AVIAdq2jQtqPATwWqvdsqAXQOuHxJouniZkbmHRaEn7HeCL/mGmokL/vlQRsFPHHHtoM4AK0CCCqHFDg8QcI9qDKoNNgS8g - -h5NmkJHCCBeKq1J1AIYwMGSBoJNVgR/xqFPhkCgVDixptofsVDmQQTr9hQQcjQRM/q6VuCQU7Xt3jr9HIA/pUCpSTnDVF5TBNQXFYL9npkbtAsnwQcMgETruMwfHQcRdsQwfMwQyjkp3o7gfd/hipnrAb63oIHsEgYf3jfJhhweXQZEJGftNCst3unDGgLXiDAa4Nq8TuV/n14mkxtDHkOQMNtjztEbFh3jL/3HsPtywcMYNG0qzrLG0injvmJpo - -AUUphKALQ7IvMPKAHmUGN/o7kDaMHAOOhOFzbO4QE3NoFmJERKUXmbHqw1FigjwgNBdoGFmMfg+VHUXt4wfbvoQAaawU7vl5gWjQQ/XpJtjUdFl0j1gQ5BhbQexPr+Qa6WuI4NJHILLkm/lHvpjzlg+mSQTAwWCxlyQaDvgbPnodicAYing5wWvvvUjuQ3uFXl7tv8QSYgaIXkMPrEFgpwdWVgS3j17vJwZvfM6QbkfjEFvW5v5wc5wUK+sGhsnK - -IFcN3cH8IM5TJMgs5DKi0gwWtQnmBxPN8LMaCV8AdwLOBLIATRJDUGHMeinpuyAfNmGYsFk3pedvzWsTSESmBQxjJpGN1hIIhN1vOQYgbsBanPMGeQJMRITRqFTHNRICEPBSNeUn6tkWAFzbLFgPKkIOIK+NOmnvacAxAA0kNfFCfPJgUIugfbJGjdi4AcpwRA/r4we+wXGAfbXmPMEC3mzAcX+FIZqD7oqRM0GPgQL7viQvtz4N0QpwQfrPhyQZ - -ynnJQYdwWCFtDQbtBGpEHT7KFwU+VqOvuqpNb1HugURNgAgbFgZr3tvgUSAUscHg3G9miAOp1dAwOpyAaVwYC+l3csT0H76L3BqZKBv6BQANdiNJaODLGGdIWSC/1BUxhCzsZJrMTP5wLZwEEgs3nlgQUKpDgQegylNgdXtjbAUfQbdno/Iqn2IaYgnUoTBqJPGLQmfAKsENP3is/kKArJXoBQV7/ginnewcVtGCKnSyHF+FoftrPsiAYbBiIFpa - -FvOnqlnqzwV3Tjbfty3JjwSpfiZ2g36JCUF8mGgwaIXqP/rFbmKQbL9ovqozwQIBMzwT+gWenhyngzwWfnLLwVJQltQWXPphdEzwVJQnrgVmlucVhLwciRpoHpCAWP/sygcJKhOlGf/BVtjcvvJiCmQfl/o1ZPJge3ercvlrzvcvhCsoNjjS2KOsId3H3AWtwMhAbShA9Tu1tghpCzvrwwX7weV1mqjhbJq5ntbNrKiLbNps3uxweOHkUpsoAIhZ - -EO+GeQDiAJsfFmWE37BntDdanjHkggVDornAM2impIOF4KO/AfGF8QVFHN90vQ6uipDkCHGMJcFBtZAABrDXix6qz5IjQYUVgtwVQQUtwc+QAB+ASEO9tncgRWOghvIzGEZwbcmiQ4NKUkLAXSNmLAedHmBQQXHlXHgS7oPwQvjiCdl3zmcxlhQRUflv3kTUDv3irAdhQTm/hKBspfq5ATnWnR1sUfolAcerJvjuR7p2vsC/sTfsMRjqQXUfl22l - -ArIn/osPqw3k9/s0zuUjlaQX3wRZwdUjrPwSbAZC/imqMyNqgwTPwcTxnampYZjWEKvnoUVKC/gaNovwf4QaBgeBDl61mkwcnVgRQR/NrgwZKnkyHmcygygZTnjD/u3TvnTh0vjfVqhHv6ei8ARbga5wYgITDXrYvpQLlnfpc7HEHlMTjH3qCWitarHATvPtUJDZHqXSOWQaNBr01oxns0Qe5QS8yImQVb3nl3i5YLDLlqKm6sH5QbtquodKV3oI - -ups+lxAj4GtgjmgZidTsnAcojrxJsVXkNrgCfpKWDZvicJGv+n7hIjrBIIRhtF3xp6bsbrH1ftpLjxML1FoW+AZEP2jquwS9QWMgR/7t4sFAAKSABPBtWgDKOPkdI47lu3JhTlJVpTwLuEPjIF/ABG5J8QZHqDawd7Wh9fqoIGjyornjOOo+3EDJjbvi5gfTAcawbXwWpwcQAQ3wRGTo/XjrHIbGkTBkrKAklDxNGwQVnML2gSLAXZfhpTmBwexz - -tWAQIyl33skwQHgaH9hcAap/tVTs65igIe9/tHgdyQVFqoyQbFjDLASxdpgwY5wb3vszNgfwSQHtwXq/pinQVSgbjfmLfqhnlnPn8thMwcIAcvQm7lvSHlHgandvmXm+rmi/mFfo3TvXvp3ahinnjnl4gRfgBUKosweH7vmdkRQQmlrgFLEPh19KP/n4gTygVMIatdgQNoYHudDombJFrjfLpw5vsvgpkmsyLF4n9brC4vP9DF1nkFnuPHp6oL8k - -w9jufoEnA71obDvF3k1FkYmvb3p4tlE2l5Nh5NoQWqcTjF6n9gUTtlkHjEhuxgb+fA9LmOqpA6uGQk66DNToPfoC+lXlkDKG1oF5njG6D6gC7mFmWLNFPKAPFcKpPoosqS0n3Fg6jhSRM7+JFgOmnoeIBgqOiLL1INBdotiEa+N00E4hKhwe6PjjwU9XsBVOR9EL8HSZFigmmAVBGOilOpgAiQWHQYFYGsHvP3ujrg1nmiQdETpuuhLAdCtL0wbc - -tnYLI+4M/iqLwZ5tpyIe1xi+xkKzlHxmtQYBiCKbtmfrAwdh7trwSwvn87uTflKIeXTpKISoVrNHkVHuiRsCrnyISMxFcSsKIWTQUfkF7JM15t5tjEfsWtA3Gvl5ukNAQnlUIYkwRjvig5m0JgnPvIvtHPiFAWUPg0zuhgSamifkEixGCzJs7qyIbbBvzQdzQQPwWJfm+Du6IX08J6IQ2Oj35uKkl8fmEQuD9ofIkd5uA6id5i3BnYdNXyDHPKUg - -QcVFDLhQ4N6rk9DoKOhmHn13jOBISMOO4vDoOgKqgPiYug9MDIongkOHhszrOxgqzrGozHApiSATvgRgchddkInijmFRLs+/uBpAnAWNtniSuSOoloP3gQ02mWrFcEMioIM8IUnjTtq2zj6OqzQF2/JD8CzQD7uOOmEEVscXoF1PSACYAcdvmIUFZACP6JERGd6KUXu4QEzko6Kr3mJgAYxODLwamaiX+ha0OtDh4jjXwRlvt4IZ5gajQd7QexTv - -fAUNBONQRtwXzZoHmPsgSLPoJTmLPu5nhqvp7/tHHsHvgLweNzmiGq/1vPvlD/p/1k/wRF5tnbhaNqa5krwZF4AbXOgnhtDn/NmuIQBIVSns5pmVpk7pgU5kXjE2TvUBi2QeMQS2Tl/3O4XnVwZHwekAcBasuQeDLGaBAQAJU/kl7n8ENfpMKdm4+Dy9qYIT0mFbIPmIJUGCbsicGNy5j/gBQ8sT0CTlt6TkraPGTg+VNjwbNwQQAfNwXuISjQQ3 - -wcTTiIPjCwk1WO55ns0qhxAoRGEIRc0GLHkYVi7TqHVt7TkdwUIriJIWkLE4ATwLjpXhHdi/1o5Jmodu5xkyNlFIN/1nnHligbEIQpIRUWI9/tTjpy3r6ylqIWAEBt/CtQUIgYaIT3PFu5nAjnfdkRkn75gQng4QdJfuqIVi/qF/vBQaKIQI+E3Kva5lsoDO/vKIVHbgBgaaHh3TvAIdpTmgIfrwXAIRG5r05OAzlUFkrHHZ6r0dnljn3fsIIeT/ - -muXlkjNAzoPAklFgkpultpYnrp7rkNsAPm4nsUbgqbs6gZUGkgzkFVv9bifPvtin/YETIPTsL9ZhkLrzmD1yiBrL72CMLjnXBb1BJBM4NPDPg9wrr/EhTGeQMDTKFDtVNDJeJdSocAByAB9EjjZgR2g6cPJIG/iLykPzbCXDEN2q10N3AFz/hwKniIdGhpcrocgRopt83vTgfeQfWgexIZM/vyls3uAKSHcjO2gYqLC6hGjMp3weBmr9oNn6Ihbv - -SIchbh8gXTwYzdifwdEIXNQW+gX9/tmwSWwRZ3jI3hkwdj/pEflVRpnEoibqCDjrfrARm3vqDzl8/rj/nvDFR/gC7oEgchrsBvrzfgY3uLyvmlKegd1et+zrhrnwlqPgC1xo1bgEdoDJvmfnqGtegWHfibfslTj1JjkzjfsvDIeNlLImqH2o87kHfqGXlkfhZfpSQd+Dpj/nygRDnjj/rKgb5brGpq/DpK1kyxtdwcDHBKgaBZkMwcMvpMvgjIYM - -wVhKhYQS87lBDmkIdBwFzIZlPhgLuCgZzITCJv2PiVASwDsX5MImJQfrNMgQwrMzuQfjV+GQfm5zvLIZQWqBpErIa5zoBATmhuaSqubqL+oqhJddmzhKJzhRLur1ksvpr1viyPsZidesZNubeOWZo0QY+/nbnq9PgxMDWIbbIbKxvy2i9TlRJn0zuczp9JLQfqr1vQnp5QdfwMiWnXehIWjtQaXVocjqYDtcZnEnNzTmoWjlrAlchJYHDAYAAZN3 - -km0kCIqrEGdiN5ng7zpYkkmDD0ANBLPEAMZgZhfj1COmDKeQivlv0nspaMNgPpAH4YEKuJA4rogS6dEZJBjXh8WF8gOPFjuIczZkzAegvm1ga6yFolC/SLdrP9kJx/v9RBIENUhvfQTTTnvUr49HmARs/qjXhJfnpeqObtH9vdIbT3l/ntkfiTITW/lZmmPElaLqAIbuOhXvkmJJ5IeEQbXvvmlJXPqSBP7Xuhkhn/ob/uqHl8pmLKuvIZmwS9IT - -x0GrweObmB9lMJu2vo1BlVevfgc69tPHnGllB9o/DtTnraQafIYSgdVemUIQXJjwXgV7ieRqvbiNHk0fm/DqEQfFttcDlAjr06tZ/iJDl3YI4IdOOuSRoTjlsguorrEgUenoaHjB7qPWjAofCVu/6nBwaRNjPWhSwaHAKiWuUyNQts8zuOwXCWgwIVkJHazGWWtKjtqARNepj0BdQedAedQb7OkQziZxB6gfgWijmGZHlWhjMzi13pCWm8Si8Tnu - -pl+pEDAS5QWcPm8vmV/vupucPicJINAYRbASweMqKyWrFdGU3jU0qLvvU0oKYiVspREEbqNyzDbrs9QfzThAAJn2JKoISLA/emqoG9QX54N2cvVNLyJHDwcgQQtgCtRMqSNDHDFnlAEJwgHOariQIX+jJIY9voMnsxIW5gSawQ+QepwQeIZC+sxPuQAZn+kr/IHHnUqsOZvL7oNgX7vuRPH8roLgQv3qunNYoUkIeEAVEIRHXtgTEPMtxgTeGhrQ - -bGgVJ5qHfP6tj9AOfpDoYocABNQlKyHQEBNZKWwnKTKm4tKBEofuOzoh8HWCEd0tYCECoJp0jigbnfC8DgSIWVHkSIW5PuQAZ8PLLpKDjBJcu+9J+kDtwXzLv0hkMht/AaZARSgbOfjHQQObn1ziS7rGluPHsKQXHvrBrnaIczNsMoXG4J0Pu9IVW/vWAQdDpxQZ6LpwHojgLMIaLAYX6qoBGQRkALi1JmXTgD3nlxl85vKThIDqlxlEWGQ/oHRr - -/Jh/JmXupAHs9bn15iuATAlrWYuzfsqQeCAXKmksoU7gdrKiO/tgmq4Pjmvs/jrp3kImmO/rZ/knvgRBjRbndDrs/uOYoM/hiAR85jdbnKThAtBKrlDXqsoS8DhKQT6HkQgbaXjCoW6HnCoZWXk49oAgXEXGaAdF3sRui+pqRuhIWjHqr3sN6AqCwXCWpLkA3IBQqH/gcKlD6QbJtOXAVtmGTrHJHmSoaTrCmqDSoZWwTqTpDUGaWJLSg3hAN7MW - -bOVymyoXk3gIWlJDAMzAOwb3BIiPqSyBrzrbHuqAT2wepzEJ2lCPhbwYSwdK2sSwVK2vX4g2esuhgkXEr/LWXH5xCxJGxEKUaOFVJVgHWQF2GBBWvl6h3XAMCHsAG0Ngzlm95JwqIIajAAIDTHr4IlTDY/sAQMJuHaoIumMJAA/mD7msMyjWnDtdv2bLjLEjIUlxth7IawR4IeQQe5gWxIR+wbo9vKOJVHhU/LrLoD4umBMBzNo7iqvlEjo1HtvR - -sRAHP3q1Hi/QYOgdq5NnQRCXqHbgCgTZwYUKlpXt6wcTjsvwTHgWRyphQfPwdPwahgUE1swfHv/vqHp0wSkIWPvuZfiuipZfqbAX0oXEQYJQUavvZtt9IQCobqQehJnyQc35oXQegXmKIRgwccbquAUk8KnvnTpJ+gavvs8oUsIUVAfGvnegYGBijIQIQS4xpOoQWfg+gSblqq3h/+EQXguoTlAd0jsuoR6obTSIqgTmWgtwl+2v5dqFFo5kl0gV - -9GqgzpItokGlzXu5FnTJqaSjterOLNRgRcLriVr12pL1n1muZNiInt1miCYnwIYc+q/nCr1nEHLE3k9eu+pI9TtIwfl7GotuMzqF1rN7iydvN7j9Plu/m7ISO1kxAZdUCxARCVD8vgLzl2IRwTgvXlJ5vmgGeHCADqp5nYDn8BsxAFWAGiRKcALehOPIke3C/Spj+HeuGA4PaoRZMBmuOtnF6oqfPFYrkDMtiTqdnpUoXlntJ9AYUhXnNUgDlwBP - -nqEbuaSmsnHtIaXSpqkPOmqNgaBHtmoaEofD3iHgf6wbqPmugUGdpzfv/XuZ3iQGCfIVxauZAc4PvNPl8oU59sGwRO4nNIa2otd/p/nlywPRod85kmoflgDpobsoXp/kpQcVPuwRkZof3Hk7fpMIXKXiFKoRAHJoTBweJobZIePvv4xiogbTQWogbBrpVbhiDDmoSZXorgaWPpx3roPupat5oRa4K/HjTQUXynTQb7llpfirgV8im9zoAoXw3prg - -ctHgbfnH9l1blQsEhwVMfgloeNlKOoQmdvFoSn9mloa4IR1bqloUmJA8oZloar9oloZw0MpAX5ITzweYgdVQC0wQrnhAoeowF+WL4fgr3pmXg/HD0oe0IaWXk1oaVAaSOmrMFvgL+5jiwehYCuhq/wN2QWq2tx5qkXLX4hmQdbwepzAUQQQ3MvgbJzJBIRVpgpJtYcmpZgnKHNoZUBkr/GAZlszj9KHHpibDn+AQ4Ng13r5LmcjiLQYQQJVtnUoM - -8wd3Aa8wQJzpIaEJztiFqUml2sCsQXMQYmSH6SvN+JfZBdqNNdESWp3gT+PkSdvcwc8vqmGPUYud8EfrKNtt7XESwWSwQSAc/gOWIXKoeUBvYNqX3OvekIhFtAa9AUYNjMQVHgBSAX3gRyoabcAbkj9TpGeADrHBpAgMHKJqjPq+hL/PmpDGhSNKCj2ALOZsOcirIFWAKNQoTPj/lP24GSsi8dv7aIUkIFALOvDiPt8oNYLAfEEqwJFxIRMNXtj0 - -IYxoYPnuYxLUADKvjM/gX0BxmCxjk++jnyNaJmwQR6WE/QYJ/u6weJPgzIevbtLoUZ+tXrqdweOoaLLh3HiA3q0IQ9ITgHvFbivIQlpjqvFBQbeYGdjvTqi66qiAtQ/tBIsjsiqQYx1gMcPPrjv9JGsMmREgwVWRKAgNTegg6oOIGdgRSQQDDBniLyIBzrBAKtLoovbgQwY4KEuAuXji5YMOLCHfpRzsE0HBELpuq6wHk3IlBp4QZ55GFmJSio3x - -I/QFl9g5IUa8v8mG/rAsUP3ok3vmcynFfiZMusJus4rLoLx+owejPtmuwFnoQKlE4rHnoSh7tipgdSpOQQ0oOkmlBnLtQUHIetBqzuKTbIoCuKoe8wfHPJ8wWtdCUQWHBp56itoZszkl/oCPgegMCPoDAVQIawnhO3vrIdO3m13n+oT7waIwdlxOIwRGwjcjoOZsmQUNoUHBoy2v07GlQZx0lQnrGhnDPl0RNDgUilNCVP7ofcLrX/mpgYeUqy4s - -0aEdalK1P7fObFFElkjLnvus7mEe3LSLB5iLkorJyD01ITOJuvPdrl7OiCNrBvnXHNTfnAghcoL07rR/pd3o6VoeTp2ro6/jZbpWiPysnaiFQARAlLo7MPYOtwD6/sQvq0oSorLxjDDfimodOnpBwWg3h4bvwXtv3vfwa4kHDFsJymc5nPwU/8FfIWeArgYZgYQgjobfn3DEQYeBvGUofHvlRik/Ieh8r7frNQXwgamWogjn06ktgewXqn7q/Idx - -dtdzugwWFwVrobUIa5tvUIYFobSxiEuEhnigXlhRqdRrFmu4gQTIYY3lcAb72sGvlY3hyrlOjv8plgnmsMr0TvRDgaFEGvioYThzmoYf9IQXPotnFdobJDrqATatloNsPgVhxKPgRbOj1oVRBmNmj9emK2r0QWiFi8yMXRpkXIM1trJuRLqPoTdmkbIWJzrwIRInvwIZAapuPiDPmPoSQfmx5qNoZ+Po1ZDSAUt+D5QhEJLRTjnhqfwITqK0tETA - -C/wFXVnXvEoob6xuPhDCEIQApoADVADgSOdqjBgKIposzFPZmKQPqIOZcJXcICZlUwHLAJ+pNXhPv+L0/pqev0/o+mp9+gftrQVLXIaDroadsL7mpAV7QZC+h9vh2jGiThWGILob8XsikHdpFeIe5bnzgQnRsiQUHvgintavvBQRZxnf3jSLpLOglXhjOkJoT2Ac1Tk+IXy3hK7ivwb9QKbPmCAXv/sLmsSQRIbhZXnwFiJ3oE6mllmegSpytEPs - -kQcRHourphBtZXsnxtfhg5oWodjp3hxQedRk1vtsDgP0O2fgc/lJ3h66sjIauocKniYvgKgajmtjXh8YUdhno2jUYe4xg2PAmekowdKxskdkobrb3m0YKWQa+ljJZil/tbnjgwnRBqV0uvWjpzhonHpzup4FZxF8AJ6gZ2ZowodL1grIerIZTQgBAa13odjnQoR2ZijmJWIeZHvZTCwofMzgHBhq2gqocwftW+qBTPpQQ9og2Wruhvs9H1/uF7ql - -gegAPXGNz0BGACh2HN4qMAOKJBekOrIOhSFtvlzbK3nsZ0A98EuTlUwOn+vhbPUOr8oO07gFrrdXJ1PtcrgtIXeQapwY4oT4IatIa7vnQQRTIPAUILegJTFsmDxoSKfpMoAGfhVvg79nj3sHPgWwTDOjcYdkIYoqjc7g6Xo53iyQc7PkB7vD/ghHkQ5onQX6bGOxjvwYGdiC/iq3l+Tlw3kgtoAIS6QfDviaIdfHkZXtugbazo3vuuvhazowYaQY - -V2oaXvj2obQYZ8bq+VvOfm9QNEvir9sAoWIHp66i3Tgi7t/Dp2PD9fv+gQvwen7tvBsKTm4PhtPvXTqWYRqLowLrhdJLIaM3hknuKbprIeS/jf8oInuSYW9TmGeOO3jQcnbJskNk2YTrIVWIaZHsSYS2YagqC+oQowVy6gSYawoTQ1nczqRwbGQRtob+ARVjNnfl3RtUFguLD+ZHYCHkNjXBgmhnoYd3gXB2i2Nks3iDQAaKl87EHmu00tz0LU1L - -65PT9Ku8udPKD8NSLJtAAWAo6jlR6j01GTwIrRBgiAHlND5FQVjzeCwSO7QXYoZ4IbuIeqYfuIQ3wSYfl4AaXaNjtLI4HnSvv7G2QD7zqLoURSI4fj/Xp0oTm8OyIdAsqPLjBgQhwXZXiGYcjvnZXlcYXinup3lGYRZ/iPtli3lmfsXQUxQZhmjhYf1WpLIeCYXWYekXCiYbZHphMO1/pcZJ1/sQocvoRx0lcjhbpthXmgWqYZvWWru+CyYZ5nuo - -IcooU7qAgAFElpuAJgAHLEL87D4ABjDu00u5AIM3Bp8oxSodIJ+ALX4B8QYdYKQgN/+FcakG7jlLt5jmoTp2UG+YaQgRaCuQgXRfpQgZizm4AY3IeCQYvVp0AeVLMMxJYfl8aCB3GoISHQYmTs8gY6wkR3gmocCXreDqJoQXDjboepeluITwXpfAfoHhZIQlAQOKsenhTfhptsLfqAoQvHvBQbrTF5YaLfo6vihFvpdp9/k7oUP9q8tjdIfp9gmf - -qvvocYaMoVswY4bH6wdo3gQYSXaqg3uAnnGFg0TrMYfa3urnrVodO5GXIeEgdlYQMIb/ho6Yed8rMmpNPh2Xi/way3hM6KoYSVYWOViybk6Xr0oLasqiSrfIYMoQEbIuARE6oFmq1YXYqmf/HiwcIofdHtJKF3oZDAXj7klQYGUIT7vi8OazP5QXbOmg1F/2v2QaG3Lc1u3gdwOhnnvCwcJzKsQWz9sJzlhxJiwZ+puPgYo+guilMjqGmkNYUVtu - -nMDuPo66K7+sTziDvPWIeVro0drUtDFITTzgWbBVXj1fgszgm3GNoedTHFEGcmAd0P5NACwkoxEK6GYQJuHIkYehpg0AAzQEoYsYlP81jt7CcAIUmMwEJKoNgAH8DBdxP/xCN8NBQNz+NmDCYCIPKGWVDrkv4wvbIOrgUNsipYbnQYDrqlvl4jpe9l4IV+YStIZ+wWPMK6fixPm/RpTUl0YfeZm0jFgzKLoQNdiEAUF/kwZEgYQroQioWFXoFwTO - -fgaQRzITVTnFPletvkIZhzpzYUSni4ihpIRPJkpTroQYgNk2oQqNiJQQhYfDvtsYXhYWzOscYRqnm2/shmlAoVPNk/mjJofRQc2/sHKqGnNNxB3/H3HnpprMoXcYdMoc87s5IXnQfogYfrgbYQp1ip/lWodp/kXQYRYdomgF1vKxgMzg/vs5nsHwScEN7wRF6k4Yb51vnBpO3kENt1tjZQaZQSZNj2YQOYe9aL9Pg+/ljqE7IVBofXZptfm4tkTb - -pV1n3fgB/irvMTsJBVuLkgQTu/Km0RJTrC2MNbYHIUkE4AJzHhAumIhxYb6xkb/M54H5CBBLAzQN3SKQAMoABcYLO+CjZsmAJc3jpPjjAG0mKDGg8cC+YQXIXFlOFYMcoE9IG32PplvbelugfalEpwWpYb66gxTh7HtjdoAYbt/ifQSxfrgdnKhI6BJrtqiemwUi25N3Ia7blGvH/gAJoRIrr8FkpTjJQZaPukwQoPkCgecbsUzuNDjEIYmYaHWr - -3YbJIRrod25j3YSy0srodintfvqOFhtdG7JtonG5QUPoSWQc0JH4No4YedTGbMlUmjKAaUHi/OEqMHDgCffrEoTNtlJ5vMAMsMLKoJkmKcYIT3FuAOArlheOXnqZQC9Su+ypy3DnyusgNn8gXIYRTkcqF3eOjYZ4+hbVrUXrTLu+Yb6oQ4octIQGoSeTkkDHWIgZIMyHM+9jL6GFrKu8KLofhOCvYQIgZAwXhzuTQfQYer7t8oeFfoz3lxQWLEky - -jmBWpuyjlwc3QTRJPW+oaOIkJOcatc7L/gOcXDFVP9YUJBr5CGU4HRStRXgOIVuBroUmZKKahHBZENNsa8AaWCbsA0gtmDA/IOewL10MtnF+IfTHq5YZLth+bvUYdlnkTYQQ4fqllWJuU+FMaLA+n4AQ/Bu6BBZboaYR21O2QH6EoEoQyIdqvqlwiwAUTrs1ocJoXWfu1oRpQWSOo4lFBJMTWhn6IgwmICGBdKFHnlQRoIRIAOwxNK8OFzsDonOV - -PKMlcYHJBoDMPN4iC7Og2n7iKPgETQtQdGlLjIWCROGXjhH7F6TDRoS8cvYPqftHjmmqXvTZlr9uCHrg4YTYfg4YtwatIdM/rUoecyGtmhxoVPtIlpGgMGwQfRKMTQZBYQCruWAZFgRR3kw4RzYfWoWEAabLqSQckIvLLhhgWXHm5foUfppXmHgYAnjOXrkIT+zhZ2lavuCAfsAWmPiX7mc/tc/gJ3u3vvwYeeupsAeHxgXvnqXvrzgOfq7qiu+l - -PIR8/regSy7owXu8YWdIREgRH7kw4HYQTrAsOoStHnFBLTZsufqCAcE1tNIamSLTIbo3pMZtE6hIYQNvr9IfjcM0Ie1Bj/HoBgR9iHY1kzIRMoXVZjgwSi7uFoWUPuxduOXgGXuHgcI+LcoesYXgvA1TggwZLfpBgXOgR5wdr8PAwRT3vMoZpqvZYZutnZwYLYTM4WMIR5eriQbM4UB7oq7q3PubNtMQfFdmj9C71jx5uDobZlDmQXCYdUJAIoX4 - -Gt01lVwNHtjOepy4fGQeNBv7tl9ATwnlwIccBk13pSQIL+MlQWUJG0Bpm7jbngsXssBp2epDoT0Br1oUqoQF7kUzIiLCa2Je3mLatydlPge/xmtdOSdhd8FLQdtdIPulJirRBmuPjNAbMJOwodm3skCAK4dwnuNBsRYY8jmc+kMJNgchDQFPoY8PiNBtOYXy4cgwhFQaUQZ9Ttvkg8QKjofJtDmkKX6AneCUhqjPsAPDmeB0AMo5kreDKOEIAM7a - -GEZtlVMhOCsRBciob+IlQhrAG8aMg4RKUkCkHN5OG8pjTtFgVfATg4a+wX6ocY4dU4STYbUAM6/n+YT4qHDCt6VkxsHyfmp9FDVK04eLPosnjEwUdzsnfsIDkGvDWYWRYaQIcdqmI4YWJkWamzbFmglPIgMCA+6EcXg+hgEwP2Mq/pK62hD2EKmPPCv7aOKMHhOKtDN1mHk4Yd3toYf9xDaVimYV6ocM/vK9ixIZXLvXIa9vrpYWPMFDrpjQdzga - -Asq3wa9OtRxHvluZYdVnkaYV5mlNQVqvu5liBQU/bqWThq3n5tg+4YHgelflgljroa7ZiuRh5/qkOAXQegnsGXlMAdTQZKHq6wKzYa6zlnvps4aX9qvHpnQX63ve4T5IQrmkc4YoXCEoV2flYrqXPrZwVM4Wc4c1xobwX4gbxHvB4R84VsKkKHt5Wj84YkQd3Ti15mGdqDIZd+lMwZkQeaGvzwcsYY8/ke9jYAj2Ao5YYI3qkzmx3hmwZHPr0lg+ - -ASpQfYgbptlXgXHgYPIflAXmocFqtXgX89t8wXdrA0zKjVsTBMMzjZdhIjo/vqW3rShGSYUwoQjSP01i/YfpzqLVkmemsJIhvub3ib3hGQeuPnzXoPoRwnrqggHjhu3nAft4nuAfneoT03gVEq1mrdTutfiSyOc+gHYbtTqYcvcIV1fgFLFm3KJIHgfjgfq32OtUI03jk1CgPuuHBVEHPAfvoQjgWhfL6tvHNB49uKOPoSmDMGnLOjlojwOLTrh/ - -l/ei9ooFGOlFrgWIwgP04IShNSyMRtlguJQYSbgjDITqMgPYarGvHrppYQAYV7HmPYfsmo7mHqUg2rHxMFTYSe/MFmFCZI6wQkWu1ILKVNTwQ+ISMYZpoYu2tlYd/QSjNjaYcOPvqQf04YtDk53lfnpMwVgwQEqns4cWphfIUM4V41nQwcaQZKNhrZgkQSoVvtht7of5YYzYZj1sEFvN4RBgYIQQJQVEQbblhD/mPbuKHnxQa1BMIYV4fn77oo3m - -UKvyHmI3tZ1vDVmjNih4dAIXvDld8iU4UJQZmYW8YV+gS2AS8YehztOoZLIU5HniYZDPngjtonNa4eGwjePi7YdRLl8PjmBr0gbShK7IVuPq2Yck9LWIYfWp7jnmZkytj1TkZ4Rc7IZ4fcIUcfsotp0Gv94ZD4UDPmWNpmBlRJsq7ubIf0gVUJmEJGaWOYupUgGqoRIug9wnQxBQHHKMm0AKQALToFEwH1NimWKgSKNECOWkA5GbWIKAaexIl4N4 - -7i5RBKxJRCvu9jumM4jnpfp/klKgedtrl4fZPqzPgzgWDrrlnlzoUSISeNufQZdTj5aFaducmtZANXlq04ZCWBEIRpXipoac4eroX7ivwQUx3g1AW5ft1YeSHk94SDtiAlvZivR7hNgVBgULpt8oKsYbHlO6YVQHixKvHPlpyqFofUDlQXkC/t6YXvwdyZoj/jcwdw3oGYZmoV77grYYK3ghgZB4ahYYinphBnUwdc7sa9IqIX+gWCwsu4Yfjur4 - -aRHo8YSmYbbgX04ZWfg4xpXwaEvnqXgAtk3Ti12tmYROgSEQXKgZmdjvtjrAV8Yd5TmSTM/9nsaqnltqxqG/C3XhSMuzsD+aCcLkoklGush9uNUhLfNGuih9rQknw5hGHiVXhcfiB/oE2mFNvhOhSyDWQY5QSkCH4wly4cM3iwQguDq+oWEGn73l7nkW1ru3r8fkJKKgTnPfke3o0pKGgZefjZyLhwZEYTEJLQJt4AOwiOqAHU9GV6rrFAYSh+6I - -diAV6nEMqDgDEJPuaHEFsFGGnVNKmOUlDKCCTlqH4ci1kPGCr5pzoXd3tzoQEbuh3qx7KsQrCGDL7lFULLbK04adHI24fvpssnm+7gilj69vOgdjyIGwWJoa6QecRo5/rBgeG/sZIcnQVDvj2lIKIVI8BinkR1vjnvsYclAQLYWp3Cz1j6YddIefHo0TkLpvBYcKzuMocyQfVYc1AY4kL53moQVGwUvnqfYX/NkPIQ5AZLgah4ePweTIVaBomwSD - -/rCDojhkWoZHforfqb7geVmbYc0DvaIb/Ibrflj/osRoDITM9spIZIYWDIaW5vr4WR4QMxvTprIEdQEuZDlRRMz/tIISWNpuTHBVsqjpoEeM7KE/ihXlVrpNps1/jrruxDE/CJ/UsgYjz/Dt2rsvj6rsg7nUTOXfhiKqlNvzzuKgqKBLrDqveqczhHYWD4S9mrBWsa4QmhoYNniFoQOsk3rxOksyBhAcJ5ivAA62C2IXtwMtgAwJOCKtN4md+KaM - -BPBhOZhD8JiAJ9BhPRk0AKLZKDGHqMlUWHwOoRXiRSMrZPL9oMWLFYMpjJcMAxrv/IDF0LkMpHrgo3KdmoEgsSrPm4d4jpU4YzgRL4a/4USIWQAeW4X5QN7wOXIh8RPc3KIYnlELwVsCAoMAQsYHY3ELAS14fLYabof7/l0oVnuhhNl74fHdp6YeCIJo2okCNqoSYPtR7m1uk/DnFKtfADJKMc4W/1h74UWXm5KmEJIwAQxwpNwZObr2Lo8QOSip - -KIKjjrzwX5SBJroEsiBJMagLnbvazjjlJOCCsrHvxCNIFmYIigbGIOzrvrDLTTv9ytcwf5AHcEQmsB3bhzfpaLj2vgwaED2P8vvEWLuGK1gLb4VEfp6ICkrgj2lBgh2oWPDmWwINZggMM0dMvLkoZtaXrw4LNAEwkKpQWWwEq1gm1nkPCw/pFxtsANiEctGobwd3vqiEUDsg6IGbfnQYaqIKoLuueNAEHRvDAnh0hB2LlDEstiLWLjL3ppNp6INH - -XrnCp7UDtHk4vr4gombvRJHQXN/nEogZuNiGIK8EabcO8EUKESIwSGIOUETnNFgPBOgCWXg19kD2NKEXzMryiFXPvRHsKHkD2GtLrXAD3gMSRiY3rAoZzuAw/i4vC8HMYKrewDGPtp2ncDsboSngdzfiJxudpIckBbyhiIKkhKrOA1YdJ3rv6orlMloVUEHOXuo1jFuv07LygVWfiuruUgPseCCAQbLo7ynj5u96lIQfuAdkyn8uHGzuzkHOqjyk - -jAIuzhpuaM84tBPNOPJ7LpKKnzhj8shkFFOZNxvvELp5FP9WhmEaIwAcLh17H99ttMj6utfTuYQsm7k62GIIZROl3CslIeQajnjJNvlWFgBVovYtEoSqiMI7oAbgUFgHtEL8kcvu4FL4XtVKq9BDv9nP9oM5OSMj6rjjVoBjF/LpEdHn/iv9lEdAeXleXiFXB3xoc8v4Xn54mwrOsvr0zKV8NedvlwOSPqtPLuIKa2ohyFpAB0UueBD1YNEwLgAD - -yJLrqq3VIzsiOWocAK7DjlCkN7Mp4Ag9NkwJnNICvKhklhMJjYAoqFMYX6BEfLtH0iXLpziiqYT4wdu4X4wQ3IS0YU3ITUtrgdh/gCmuHpwfMHkNQXsjuTwb0EeztDe4dwgU2ikbRv4amKhI/FDIwCH/s+Tu7KrC6GXxMPJvEjq84bRQfQLnK7iA7vqLkIEeLGJ+rn1UkNxk2/lJTmCIlpZuBTv7gB5YfQgOUEVzFBMqFPkt5YeavgogO+EcXLhI - -Igh4Wn/qxEdhrB+ERxEb+jIcHvKKkLIuDikT/Dj/Iw7kP5sXcGLhuJEZsVCMquJnkPTL+fqdPmUAuuYfhgYhIf1Mvx0nKoH/PpmUHgAPwauYegfksQAM8LloALgbiQ6svAJGZMpxN0pK1YiRCCiYlcgG7pCM5o7QcVAfNNs7EFovpRRm4Ic+wUawRU4Z+YVU4fXwatIZ4AUmAdG8H3GDnrts5mEwQ4eE6Wr6/mOrrxoXGgl93veIfVni44b4Kn6X - -nzfpwRt44S9bvBQc22oBQNaQIAnAAXlp2vfQnowgfALfQioEJv/iQgDs6rlvBLgBATNVAaOgYioYd2AxUAO0DFlgCgTYrqJEDV0CGynZEdVilaONydJpYB4gZJ/hjXmYug7cANAQy4cNoeTzuz/mZvqURNbjvabhOljItsEhvVpkdTOqboTbqZCNCNLj9DkQphjE3TLcoMkAY5WPx0mwAGTKonHGI3JCEDF7hOZmeANPMKb4EacM8EhOiBQLCW0m - -SQpnNIIkMDKDmkHOmPf4WigSMxKiBs7EKXalw6oY4di1nUEY9XlUocxoRJtuh3rVcDjQSe/MPAGd7IfFgTQU6wfXYKHdk44SdIcLgWzTmyzlJQakWgkwVnQr8/gx3ohQZgXqQXqw4di/shDmpQdQYSY1g/4f3WEAwZTgsJgQ99Fw5vIlO4FNYETV+BeoUOmpcEPJYhJYZylgXYehpgGgF2APoAJuAIT3K2MumnEPhH1NmhoRvMrbmKCItTiqrxIn - -CAVYJnNLYJMWgVS8iZOj7QAz3tiHEtQqhCJqEDUNM5Ecuzq5EQW4Xg4U9EecgeawaWNEwEFURtwAtxobtgkD4j5IFIdDIPvuyoHuqaYdezp8gWOnlJwJfgRxluKIQfTtlYZc4VF9hNIvhgjFapqruxHrCOnKQei4WMEcA7h72gIDkRERYgV4xgqmMFUBRRnRRmxQYFXg/8EUEZ06oxYKvvgksOFJDerggQJRFiIvsvoOxrviSD6BjTkuN2lF/jf5 - -iLdtH4hOEVHPDfPmqdFJvq8PPh/GzhsqKkc4uzul8LJqjmZCDpyDqjqjPg/emZiNzBFDTkOAA2gAeANJBqrEKSCvJJMBIHOBGcGEM4KlDsFGP4DvlmD/YNJ4uZPmjIcuvmgDm9qrkaO5KA2nA9EQx/tLEWawUSTnLEYmAZR7K/frdsNq9iY8iogGZYawgaFESKfgXrgRdlrEd7/i7AQG3uMYZbEUfNr04UPwV7EVYzhiMC8cIJAIrAcTRDpIbpfu - -y3raqmd6BCllwkA+nsS7rbpFbHI9xDUmIrZg9wWi7gVEVowEVEYIXrAXogXg4LiJQjsEfvEakWAiEXjggpjsG3hFTgoDoykN3EQbPM09vBQbYGsAkRf4OFYR+SqEYIiEX/EVAkZymJILrAkYVrIxnFjETN0ODfFCPOoljtKvlArqDiRvrtKjgkWJsraDLaJnd5hRvtoDg1FIA6iUysX/gMLqoDuD3K0dplwO0dl42G9YdbJJOhtxBtFCjXhFtBsM - -geyYaAQUK0FvaOcAOrdnArtd+CwEA47mOmNheIgWGXtPgWDmkKouPJARQVOIEDngGtQK3yLu+kFofLJGw6vTkOJIOZvDR/u4IXR/ld3hE7njTjpYQBEeCQZpAeQAf+qgkXt3NDL7mkrNtttSIT3IX/1J43EDEfCntFEeyQWCFno4fZwUdwfsbpIgbFlnnuu/3jSQV5oUnQSx4WA3gw6CZfr9/kfhntlGjylJEJKrPoPgtHublAxboB8h5iOcASiA - -YreoKwGDSui2DgZhyni4kZ19qX2nEgHVEbREQ+ROvZjieuXUKIXo4ke3oNkkXy6NFVLTBiIyOMbnxWhhRm+4ZEzPwDv5Kk7ESjftaYSIkMVVpq4ASSEnAr2tvfnqHQom3qp1mkTtRqkhYcjEZqXicpizIRLYRkbldIYqrgkTslYSuxmvEUb4ZkwaqrtPDqdzlMkTWYcM1iRYU1tlSyACPh4Ye9eh+oUn3hW3ke/pNfiZ4X/3sK/v4mvawgoIZScv - -jbvPcgbjiECE1anEnsDHqV1iFCofbA5nhNThzgsnntCvlEnnS6pp7tEnndZjIcgFdgveoknrMqIe/votr/qk3gGgMjpCI8wfDoGvEgJvL+hOZyAuwRJYT/mJV+MLbt24dHhsvaA8ANptFK8MVYm0ACITjUAN4ABCHEJJIxjHFnsoGJ1ANaQKmbinNA2JLcqBycLvIpIXvlLrLrvVVrD5FyfNRfrCNkPYY5Pn3ps5Pq1gXokWPMKzAXQQVpop5cj9 - -vqieozIEsEBiegr7q0oQqwiBmDDfpc4eNysajFbvsxENZjikVB5milEdeBodcmAIePIUc9mu4V65hsEdaXvTGp4gMKgBc/nvIcarPWLiRRrlipTIeZOg/8ByEVGsIWQFpYBSEUmYfrgNVktGkDQ1rtQnIEbqel2vJg4NmApHkIpfoRDsorlq3uSkVkJu2rBlYVdDkuOq6kf9ru6kdkQeefsK6rV/gG7nvKg6nNiYnAzroEYvYsGgfBVnIIeVXquL - -C54U76mo0AcuDHIpmIXNAEAIEtvkGnrlQds3lwkegADDMPMfN4sMWQk1yCRjK+hMlLOi8jWSE8QfXYblCl9dj1Ak/xo3EXg2pfgapIXudGAHoBzvZEXkIDwZtUEQTYe5EQPEU4oQ3wXfAe5Phyivb/sNLOjStrgC0MvQAZYkeOYNZYSTQQPIRvtspXjFEfjOvfDookcA3lfYRl9hnbicweYKiKkfYvH2aBfvih3AS4RhYTEYOmwZx4YkFr+/kbNn - -Mam1wpftlNAZl3m7wRpxN/VntqNGgd2IQW7sBaj0AOLZIhqmpQFNYJfeKYlF0ALToBehKjlke3NacIZAD8bDWwSeVKdEccgOdEROkNa/gYHn3Ydg4cL4b+brWgUtIZ2kRqYSTYViKIaYjHqHccBWbogKCA2IpSOrEVTsEMYUBQXClp2drKIZhBrLoShQX+TgRkcWodbYX0+POkbwgRvEX2bsfETDEf2npgXtRkaBQWJfjrnnIeoGeNdmh54dxAjw - -IcqwVcPoSYYWQecqJa4YmqCf6ISpnOBA3LqPsO6BCyJD8oKSYooof/YUnthH+kAir0CMfsJIAFLTlraquFjluDjEkWgDWgMGtiVkvacAptF4ltaco3EYXLmIlCaCPpHDTPqfjnRock6oVERasLZPl3puiLlu4XwPnXwf4wTZbu7kHA8iXDFpwI+Hk2IpqMGnkn9EXV4SetHeISuQs44e5lgnHsGCnUSrFEV2/gx1mukbUGNEQVYztgEeyBkhEbqi - -is4azdvgHtJQc5Yd4Plt4RPIbvwSIdjv/rC3AX9mw4f4eOhEajqJhEXd4d1zkLYfigYQwTAISF0sAxjDjthgQ84ZmphhEcBhKNPob4cdDquqlJrHTrHVkaVkRFUpgQNlEUI0LOAQd4QFId3bh1keJOtfDtHNr1kVXFv1kdakTxdMHKn1kWJIEx5ORrm1kdIcqoipNkUt9hohgQnsEkXtCk4zDc/uxHotkTQGvtniEkatkU4HpTvilXnqrtEno93O - -9dMuyuvkvncgZDq23g1riNqqWFiUGlItsCfmantqSgwkvxRq8sqf7rz8mC6P4tNSloELuJCEEXip6tVIX5sj9kYv7qv7uYXim7rkGmgzmytprrjpCi3Cn1rgjSKOerYYf/gSMoDnxA1gDtalJkW/tj6OpdSuY3BeQJKoPHNNvAdXGKMRLxYYcoDzWqfAC1QrNcNWepnNBq8GtIBn6LPXDl1Da3hIgdgAbaNgIFmCHqUtpLEbUEeL4c9EUxoS2jMv - -BIJPN6+KScDPYap2KS8Cx6OrEQFILYpkFkbOkXFEdfhsLkf2XrvtsUPpingfVsFkRQEawAbLkQkbha3pflorkba3iukk9wS37sVmpyzDkaACwTq4emQaFQUEYSfYvrkWvgTNjG2wfdAYqkskglVoJ4aFYFuTEUJBlAAJvyEvBH/OLCAEeQJhfF31qHVAzQNgALeqpIfoP1rt4tAUiNkq0wM4rL/eLdkFRcqBhrRcmxHk1gQTnu1kt+ESpwaxIUW4 - -Z5EfBkVAyrzejqKJHGkXBhSTvzHo7yLm+gLkeqgEdITZYZqPjClveAeJTpZAeLkWJytmdvX5t+1g2fuFkaxhhfwfVoaVPr7AeevgAXnEIV7oXnytfwR/dgK3kmuFMXnmqumQel/gbkeGQYMQSowTPCmraPmQTddCkdn0QUGQZsBupZi7pkJbmNXvoumxwUHJqhIRO9kR9NtAN/ZH5CFheJfpEb4JUAIB8BNEJ+hi0xo7iEWEGUCJ17sW6E3Ec+zP - -Jtr4vjlLj9fiOXrrZItGtHeOLgLZJm2kelvnXIX+Ebu4UykUKyJ9jnP/C93vMHio4KMqpnkYa9rCns/QbZYXnkQpoVuagrkbeDkVYRdIaukeXkYlOHlEXukb5pjCxt+gV0wsihoVoTOKmOnuzYQnflo/sdduYJkAUezYpiRkOhNNkdvEQpfPHfIFioOlmHDraIe5WoYgQ52geHhwYf5od4kVuAXdJofwX22hKEfwtLlkSgsLVkQU1pk1lB7uGET0 - -8uWgcYrvB6lVoYewN5jjqauNkcNkfNkYewNOAbXdggGu6JBpBJYvjeMKFjsU6h6FMBRglxLcgmlalp0O43uQloVyhiqJpbJMYnrbskNI0kUFnIpFOp5DgUXShrFrLbxK2BPfDpeQUWYWgMA6EZCgKnfuHZtidHaEUYUSaWPdDn21qMzm8JMAfoAfqAPtefurcGrFggztJnAXZrAZpv5hQSm1KlxnFE/Edll2EQLkFVKqL8qg9o/yk7cj2qpmXP/3 - -spDttlmBWFvWu4EY0JLLIYrIT+OPJ4dL1sH3uBAeePtckYxYpIIUdlj2EUL8usISl1r+OBD4Q7ISGWL0JElfNrgD+QaPQbHIV98B1NonUK9wiU4DtjFAACiACikawqOT7kwiAmbmQVv2jHOBl6oiLJGCrHG+MsqKDoP8HpN9iEkpKhq6oJzTu4Ot6oZokf/oZ7Hgxfrokb1QS7mEoSH6LkueOeXDL7nzgPxABYLn0Yaqvv5PiJrHtYovESMYZc4a - -AxhgUayrkgEYAUSLkdlPib1GMIYYfJfNP9ai5YMqIdaYOLwYvsnLKmFkczgLxNJ/IXVBtPvtMNDsirhYQSgdC4engaGwZjjlloVRVJKkdJVGlEUCUUVoaDpAgEX4kYNkTcwTVkWPeoX4QNGkgHgWIHowJBHgN5hBqqI3p2smJ3tHZszYegIbi6GTekYgJ7EQN4W9bpLigQCA8UXGvsPwZwLmBrtcAHRzoZigRES75kevn7/v2fi/bu5Ku10Ghrg5 - -gSFKiyUYILgkvlbAbuuqYrtK9hsDryUfwyvyUaA7oKUdBYu7YTkFsfPs+OEVIcUgXiKshvgT9rGIcUXPUfMW9pw7i/Ltw7j8PHs8n7ho7cvG7r/0qc0JYEUYlgYRuQ9mJlEV7GTVjl4rTVrDumZ6vtWMuEU8NFqUd4BPOPHsLkc8pJ7ovYtkHrTrLywemIaslrCkUUpkT3AVVMDorsAKQAPoAGwAPolLcADdSiUQhzQDVQXX3nh/v8KJYzApEbgW - -C1IOz9ODQOHmPJhu1QaMHmn1scRH3EVijv6ocW4bo9tHJs1CLtYKM5Ek7v/urf9DnNnY4bKIOsgN2IjYkVg/sHvimUY49jhep6UVJ5oIqOFztHJlw8hq/rD5i5nEMBOO+Et1vmrqYAVvcNmQDEsIODsBQtbQXWoJVuBAOtaUAmpG3EagUbtdna/mE9DoUVhjOokS5ET6oUzkR2kSzkTLEUPEWY3FaMLcBGp2MLPlpui+9h0MHUKgLkX1wLBEe8gf - -5kcJPrcURLkXpoWodjFkc74DtHtzBkPIRWoShHu1SvqHpK3kvwYWYQ2psiUV7cGGPFPwW5wSrYSG1sWfvS7o1kW7AOdQGOAT14aIBpngqt7q5XqMYYt4dGXjiduLpjB4aB4ZCdABUY7wL/jjImjqWm+UW/+PwAf2tslEWCUXZQLPvnynsQUWhgclkbYzpJaq8UWKkVVkUAxtb7tgGicUWPIbhHmRUbAUcKkeAUSRUbt4Wfvs+CnWqoCgAVkdazqB - -Uc1kWxURbYXQHiVkdd4YsIdksMMwa1kZKgfKgU2kFxUcJUfn4YEpkCYaValivkrNOPfrWEcnlmqjCNaoU0pv7tE/u2FrQSpTbu8ISa7p4moSSN9HnW3iItu9Hv+/mA9hdYd4LobHNoEf/YAv4RBXp+XqBXmrhjA0rMEt8NFJiFpQdsIvNMpIUs9Rut0K9RjTbg4lrlMsaulKUeCuPjtsW1mnnpmiN6wH8wDmiEyyANFqA1vmgBUvEoQJIAOvaJoU - -r1YP+IozQMUATpPndfg8wXCrF9AJnNH0kL5ZEWxKhqgG2usVriISuwOIUaB3BtVOmUdd3rBkd+YZM/pd+B6yPtCjfJJV4asbrEHGymALkQhfKr4fO7lm6lxEfEIQWVi1Wh+4aM4RFxhy1nRUfl0BXkWHATbRjX6JeUc+4D5TsAIYEdlWmCxUbx4T74SlkdWoX80LWoZTXO+gTrpj0kRB9mX7hNWhxUYBUeJPstkYugDtke+NBEihNkblEVPnJVGl - -fZrVdnqQUJPoyjjKIXrYdJaqCpvlUce6IVUSSHrdNhy1lE1gVUS90Bx3r2Aed4c9Uae+HhQfv/qjNh9UTUoNs8rckQZ7panjsbF1nlYXu28hUTPLNhDkQ9KtbjtpDhn4lz/p13JwwUCbITEVp7vBbLTJkTEfDxrDUYNqhQjtpUSEHhZDk2FgypiJgXL6vZUQInkHYQp4WHaJy4DJYJniApjve3sUmMgSK7kIPXPw0shOAhZDCEGacKmgQ9pqgwHN - -Qly4UTwPikaeVEfkUbykXwdaoPuZuBkQUWi/4dlvuYxCEwJ/hDmuCnkc1TFzgfmDDKgA1USvADQ4Ut+iF5s8xucUWeURswfm2pRUYTFtwEVinmMXglbmngQukbrUZroee7gjEX6kSUUahYmUUW2Joj4Wltja5G4YQbIQEOAQzvoGotYXrmB0YjXvMdkmFyt2cnD5vGdPA2hDorXKP03GtXPJMPN3qbql8gjBsKEUqANKTkcZEbd2rwFJp0uRkQMn - -s/hmijtMUX/oVjdiMpjHzs0YYsUeMnm7vrfMkBQo++v/um5OLnCi0oU0RikCq8gZFEdNQZKfmLkaeUcXkZLkUC7ov+prUVd4bn4UMliJHm+WhEQVfEDrno9oZDgQsQT/2uCwY0ArEJGB/szdEPbMfeouwVCkdcal5nl+AIrEG65AohCMgEZRK2Mi7kG/kDN/lnIVWagXoiC6vELpygOlUVD4COUXznmGQbPvOVYe2XiNPnrTj4EGpvEL+CLUU+Qb - -/BLJJE3wScKuQDipeI0Mr0DKmASWUSxzK4Fv3IT/AWdURv/uREUinp1UT4kQ53nspq8UTqJLSUWAUX1UW8UVErnzdqrURXUYfIV1hGNGEC4UMtjXUT7fqakcbEZQYeM4epQeVoQn7uFesNUX64T9IVTIQn9lHfrqkWVhryqn/gJNURQYe7fphUbfwHRIsIdBcwctUS1oQqEeJ1utUYhUeV2u+vjLnvt4fZFm84VLWuxHsdUWnmuhJtCpjP6h+RjR - -Qf+PLdUS9USwUcJKh+vniUfIUcDKKThmRrsZbuBnki0taOvVINiAU8/jmxuJUYEzqJUWx4fqHgEzrUYbB/FJfqwHgryIvgBI0VEPiwEafbmoURo0SVjLWYfa4aBAf12lH3hcIRejlScgknquXiZDkEpCh1Fk/pvfq6QnrrpZUWYXpZnnU/AtYZwaE9iriOLcCk0fMbfDbvKVrgivvdYbGkf2mnIwdL+sD/JJCjy6mOYTomjM3t4YW4Eb4YQ1WIZH - -hckZhIC4lkGrrzeE8PHdljIliwSoJnuewIEYcbkSIhPBfOIhGyYfB/lmkUy4hUxj5GDFcD0aA0AHK0NEwJZKBpYlOAJ10qcFB24lhdC5+t6MFzEd3KO50q6gMI+Pdvmo1hfkQ+SuX3BD5DfkZBkRdntBkWqYR5EfZkeyfoDGC/SEi0qOQO3IXH+NHeITMALkQtavfUVBYZ0RoH/jhkVKfqbtuXUfJqtmdowEeZodXPhA0SXivaXrqZgw3qPIfPwc - -y7hQUc5GgFoev+OLjprnqoQX3bvfERSbnJzNINMw0apfhc0fxUf8ocx7mdHmYUfaEZlDpYUZWoeBKtStifnpN4QG1l59E/ERZke44bYUZEJPYUZ/QZTfsitrtPiAEUAESX0kCoZG3ig5sp3lWYXb5k3UZfboC0aXOMC0UfEUWTgYuIcoVi0Q+Jji0TTgXEzhr3rw2AnYf5kr1jBEXpl5M/LkyTGR4MqUd99Bg4HZLtKtiZ7oqUQ/mGdAZdUgtpuv - -+p6jEdkZwwucDOROqojpFds54f2mm9DhROpvArqnqzvgHhpOER6rjEdOonJPCp24bC8hUNtw9sonHvofDAWPQQz0MA1h3/jehKMALQ7CI9mnLFaBPNOpPIvhcqVdi22IBvNmyrAfgfkcewe6TpHhHHSgDqmRPncfLfkSDrkY4UM0f+EYsUbQQYYkXOamkNJ4oZSTqiNO2srM0XP8o14VFEceUVs/nhkZEIUWGnA9vWHMr/KjPrNRJohIQAFWgD7u - -EtOnZGIFyF6NEkDGdiMz7qD+N4TBfEgDEo3EbMCAwCN8yMWIhTgbsgdevg7eFr0JfkdvhHXWO1lMVUdokebbgsUUxflFTOadnkgJqEBq5l7vr3ABrSALkbOulgHqRboA0es0eTjsn4WzYXJIU3HpSUbfwVg3qS4bFjDb4fQBms4dVkXlkcwUab4Trgd+UYvhgngfw3kPTvMAakIeQ0WYnGBUUBUd20VWpjZ/rH4c+4UIXsctmwDp4yqhUaiUc/UW - -cYfu0TIqO+UelEdxHsJiiQ0ZFkYB7jO5vCUdlftlkcB6hNUa5IKxUWx4cV8lIgYc0Tnvt97jOxsRURukY8obPJK/UQ7PjAXv3zj+0RFkf0frlUWuxtg0c+0VNUVc9rAUU+UWJUT+gSrXJ1kSHEUKntzfgI0YSUR4gT1UbfnoT3pB7vf3k0vkS0XlATh0STgpj0FfkaW0YvvobAUR0fc5CW0amNlJ6jQ9nG7gUUbarnQ9jYEYcIYw9vQ9txRvTglw - -wj8fvpvmN2gKnCHjnwCNgITnfnfdL/vpVquiSHefh4UQarrE0UGIV0pHNvq1jq4Hs1fjOGrEph8keY0QbjmcITJLt7LuPXm/gZCwe+PsaAWmQagkEnAeskfy0UJLnGkdzXqNER1rirzspUbA9sL8ozqDYEWYEfFEqSohHKCdMt+odpzNubrFgkq0THIaqfl98AplmkDMGxlOTv+8NSPA+3rmUJhTJWgJq/u01K0qO+CCqFmNAjFnuZwHFnuQ2GOq - -Jd7Bt/kWwQ+VPmYYfUbLEWuUa+QXlvpszO5ENQDHJtl2aH+wRe4cKfh21B+WJQCgcUR8gSqXkzYWHkWDjuVkRPwSngVogUB0eQYVb4QorjPvvV0Y+0ZB0fzAi0kXcoQHetCUY9IXIQa3kWvbjFAUNHjwUchwVZantUYIUQdUbEkYRboG3h9UZIUV63lDvuloS80UG0QTOE+mjfGI9QJTNNRQTensi0YiUZWYQYrhmfmb4SKgcIHkIvuNtMKgVC0R - -GAdWYUzhopnqGIdgIuv8ig7M5Ucrzq7tJp6rYlkUhm2HmhXv1Tr13swusy2ulQWWWqy0U7UY1ZNhLguPrg3Hq4b9oVSdncfv1fm3BsB5rJlDhvhT/P88plMi7VPZ0fvWo8JFKBFSCBnVl/fiKwXWUcBaulVDwAGxHI+hH/PtaMC4DjeQLeQHQMAOTmsAhbCrE4AOwG90GSXhSQAGxBCmEyEre3DgUa8GkyrmWfnOUeLEQuUTUEUuUY0YZeHlW0fs - -mrJMAAhN48EjdqJZJfUajgD4vOrEag7Cr7uV0cPIRFeimwd5XlrPnIgWNPoogRkfvEfrx3qmphH/jLLnstvAoJ10X9JognjETp5XkQ0Z8EYQEQogWPLojEeigdWjulYZAjpt/pr4SroXDEbmYVq3jMVsngVrpEmftErqngZFYe1vnMwWgob84ag0f84YHlnhFu1BvoUTlYUqXnoUSI0f77syIAzXr6zihxI9UsxATQJtrkOR/ABZGdQVBclknjQa - -nSwb5ysTbP0YM/2syAbdMKyARNep1oViwV+pjCSPYYaiYQe/sn3lskfH7HH1L2BvlFkkgWnYZe/hwtrEJC15IQCAplBuEV+5HTIOqPPzKv54cq0bUUeWiMHNF2zm7aKdxK+qtgAPfcu7mNldmKEpVOILBAYgNcnI2mK7FHNuBQVG8ngzIK9HC9IYqllQ3lTgVhZACYYKgcl0auUROWDfpJ8AtQOIEIUi/D/4dbAKcgFcmrzLgXUb/2OWUcXUbe4f - -BEa1UavEVLkXjno9yAHAX3mpEAcCgX2oUb7ukIbxNOLwVEbJllvCgfhUKj/jC4X5Xu8UTo3kSgbVAYlPurZkAodraFCUbgEW74b+Dv/0Zndj10T/IalkbK7nuAeswQUIbf0fxdg5XvzYbOoeQwayTtdgrSgWZ/oTNkHlnethfOngutiUcfbvUkcmYay7on4bbET14bN0cpoeCrqpoao0WfbsZ/i2fuOfk5ITQMY5IYt4Yo0Zp3oz7P2Eq1/o6bhr - -DEXMDObnIXrn4gDUbQTiftmh0ivcr/LusTkIMWdYdEHl4ml9bsWHl3fgmNimNtW3imNiX0bXFjxJu9Dk0TPagbeoRqgSQTpXcoekST/rcbCIspNrkefhgYmVauIenUQZuBLDHhIAfm+jbkYWJo+kCY+tKCvy8JuAMn3E/evwanesMv6GDwYLBL76M1ZOVLMSArnwcrZCTLpl0fwJPbJAEwovTrP0VaHr2Xna0Vlno9EcuUYPEayXmuUcnDhGjsTn - -AIwK5kfzHsXgl5ALV4bxPpmDHQNAMEcPHqZSsRkbQvh14Z44SunsKQfgMf3zqPmmi4Tf0VCXtM4QuXqq1olXr5XsIQYtVi/OkhLg8/mo2sqzr0Wsi4V/ETgnjj3iyHp8Yd/IQcYbiUcC4WEQWZAa24bznjGXnaQfDvtRHu7lmN0X+TrQ0at4UgMVbESiOid4YlEYwMaaEXRQTm8KQMa8oWZofrYS8YVQMQB4aMRjCtlO/sFAQ8YdsMZOAbsMWvGv - -sMTJ3lnfqMTmcfgl6hvft1Oo40eZNCDUcLumUpG8IeS6v+VpcMbSKk1rtwMSkgQXlqDHjHlgycjGUY9GnuoR1jggPiVNkgPotTgHwQ93Lb1tFIY21mIttQdH/UoXZvkXFqtq/WlFIW4HmIIFj+Eoek3gCoeq6OtpAMmOC9MKL+KjPkdPNAOArEOx/H1EFOAPr4DMRF0hk0ABHVIRISUAdb+BJlF00OdjBC4MBwKNIIMhpQWNa0bkZtNwRQvgxUIv - -0ZEMcv0WfQRMnoy+PPiAFgbsmEofg0AXl0WwgZfIG3sE1UWLLtwQRrYVJTkYQe3kaufg5Cs8MZ5uKjPjNniJVgNNqDolQEOrIOrXp/kFzBLUALHNGIkXGMJTQvH+IkVgchl+oLAiInTFlDvTHnnXjJtIlpLvQG7QTjYRyMZzPmuUS9XkO7tTMHWWHeZlV4clTHLUTfUd4mCCLvM0Z04SbEVkMdcYSdwXZIRzQRsEWNGOlBuTnnQ4f4cAZoXzdh44 - -bq1gWntKhlAUTkIUmwL2LuI0lpdCjRDBYStQFGLnbRCZlI91HBYVzIQh5EDspKgGcwgA0TAEYr0aokFM3CozFxVJvfPrfn40Az6qccFHKMz6gN0ekkBKxP+uAalEUXmogpHoRJ5LuhrUWFdVDflhH4fDJsh0NyIGRbO7CubsLx+P2MfjIadxq73oYnvuIp23mftiekVbtJnZtaRkv5jCMUHHOVKiuMWZ0TA9lLNkZnuDRsYEeYmA3cs3ClDUVzXn - -S/ugak8JLLJtWmnedovupDUDUoBFVkBLOLZCy4vnOk5Zr98D8qJxgHsAHEwOKlgdEX3WMJyEoPsFGFM4JaIvgxPbpj78nmLslnsdFOvIfaMY2gfz8PPcHP/kyXIsdGsUaHqjcEC5kV6MapcPEHDDfi14apphBwdyEXkvmoPIfEfr0TCgb6XlLYcE6FgUUTIa74dAoUoYatDsPakAMSRMd0DjXxH2XuUIfINgHfjevgrfo10ayEbpNr0kT/QX3TqP - -TsZKmNGKH4ezIUMkSI2kMXulTp9JlV0Rq/J7fn/+n+vhunhM4dfEDpoUJDsS4eUMUXwOfijRTuSrLFjJAEf4cEBMZS4XC9PK7tAEC+7iLkd6fGQ/v/wZwVkiru/oet4Q7KjN4YU6KLIdPbvEQaB0fa3ur0RR4YrYSfvg63pswdBYkxgedGND4SH3g2mtaOsIwfJCp1TnF/pMzqW8r8kYEgCdYZYmogzqe3pCMS4Xt+1EjaJ4XhyEu21nXCodBI+f - -kwpopxBcvrRxKRgXZ4aCOHdUrZQT5xAytuBASePudxhioq3ckuMd9kUwkmdxnWHsQzuselUApsepBfiqflNXl98PBALWiCLWFoYh3XIITqK1EPMAzQK+MeIQBdxN0nP/Ljq8H8NnSMbugJkgIz2Ii8o2kdtZlUYT/sMn/gQ3CQQWA/jMUUnUU5PoWboSIdJ9IMAN+wUO7pOavxopM0V8ROqSLXZPnUSs/ir2KwLMV0aJ/v2fhvYd14eu0bkbgwYU - -1WgCgbGMYDNkWpqwzMpMYS4UcYQaHv/eiZMcIvPC/uOMfNHnaYfqXs43kqQScRlIHhDITGpJuobDIfAkao0S94e8YZidhgmkhzmegRaIbuAfKkay7hc4eRkUh4STrjE1o/HhbZj2fsqQYDMZOfuVJtOfsQMQdMbN0bTgHSgVcoUQln9oFjMXn4QEJqNMWvUukgYlIa5ykwjoePrBRLljvckVpDjdPkCbBB2rl1t37pHHvcft7ntgxtP4QpLpXZq4 - -UZbUXtTvD4WjSE9Pk4EdS9ruPuEmrgzqqbpEnNWETnVgEqjublzXvsftIOgZzFo+OqZNojohJKjPk1OK5ACT3H1ECBLNc/AyYjjinZGHzBKCIhfFJvgP9iOxYNmDA3IPcUOQTNQkA5Ys1drYoX00Sb/qL4TBkeEMV2keVUVpwWzARkIKkCPyMV8RBuBAmpOtMb0ESAEHSITnkaMAT58AGMbx6G6QcGhoSFvLALjgGLoGoShhfFKALjHk2/EMjC0U - -YmnHgAJAQXU1C4MR9sN1FLyQBsJuZEeAQFIiJu+Ct8DP1l87gC7raMbbYbjYb/oWlvva0WEMaz0UzgSl0cv0Stwel0e/mC1ZMZYVBGBfAEKhDykb4oSQvq2xN7MROkQ/USLYRnQf7McMEf2fm14d0Mde0ax4c9Mfs4VwXp20WRQWM4TdMbm5mGRKbYV10fXHhRzhN4YS3kR7iAIaTbCQlmtRtgEaoVr4QSvMZi3hQMTu0at2M7AZuanN4Rets1Wt - -bPkvNr+IVGfhy1uS4a+0SkjmL0R+0QIYVCbuJMXA0ZWPs74UpIX14Y/MSwXm+IeqNjpjl/0Z8UYN4ajJLlocCUQMMdBUQ2ljFoTukUkfmkQR00dxUWXvofYekQTbYd2ob8UcS0av8nwRnwkmg7qlKjSVqMLqf5scvgsEqD0ae9B2Hq/dOwMTMEnEjHMXnnjJ0gaZCq1jA3RmX4YjdDLkrJgV74pkgWAzpUFl0do1/pAzvFIcvfhPfqvfvf9vuGt4 - -HsTuqaxo0pIlFqTMVazHw4QkJIREMHLsjkeO9p8jjmUH6NJCTj0AIDKoSVNJ8r7uGUxijZrX3lrvtmjI02sTgHoupd7LFlI0QnFGvyiARYF97oj/ll4c6EeXdiEMfR/hmUbHkcM0Xu4WzsiSIRFKv7QaJ2gXMulpIZxOrESbQlhkTTwR8gVygZ6dqsMeLgbDfo+4YgMQdMRmoWpXv20QPMZbijQYcYvpcARaQQD/laQfFYVvYe/MQmwd80YIdt+I - -Qlamc0VSQePMSPMVKahynu14WDNj/MbswbQMZBUecYRNHurYUGwTLpvniu70QH7pxESvbrcYZbYUrYcxQdDMRY3oMIVPbNhwat0QeLnlPtSHqSnkEMc6XkO0aI0deQUuAdkQeNrnbvJv7haUZWGr0saWHLMLuudpgYugYu/TlFrr5dv5XECMRLvGXXBEnlefoPRJ8PjlFhtToVNnR0n8MZMseTMdknLfCkNEVDkT6mDgsdLDFvcrgseMTi8JCO3o - -/zAZIKP8gEiBFVgu+tJBvLvpU4CtEUPZvQ7DekH49kGxo/+lZAL/gE+ChBbjFnlIELRIJUDgdkNj+LvQa2voEMQfng72Azkemtm5EffkXZkU60dW0Q93q7uoqMLSKFQFviaiBSOzTIhMeiEG3MR04YIbkcUT4sSLlhj1uEsfhUb9Ma9If4kaaIaQEVBUeibmjMX0kS2kpjITisSYZG84Zd4fvHiJfvEgTN9s/nvZ3jkMRSsch4QPGu1ASXobs4fc - -YUcMWGETAMbIQZysT6lpVkU5/i9MS8/t3NriEXs0dOxmYZu5fsw4aaXglEZvYX8Ydi3p+0UrDt5we5mt4er+WsS2uGZgalC5nkFNlWZn5MR4gFNfnmzgVFrrFr2HFQTp8MWCMYiMcHpn6gf3CiZ6huloA9HoMe/TqgkSk/sXZiI7n1Mo5UeV4sk/uoXroRhvWlCfsOHM2+JQgJfgv8+vk9Cj0RH+n1YNWSKDKmPMMI9nyJP7kGL9q1IUMAJnId2U - -cHqK9xNxbEFcICwf7aKdoJexKicrEsGkRiXgeGAaWfiCeteNs5gfOURNMYJtnMUToka0AU/kX4IebTuYhOJGFpusQ4s9MBNIfYsWqkLIZmTpuILuKscXXgAwfOXlvzke0YIrhJoXgEUjXBLnkjvovpt04Rbfr5IeuASc4XH4c3oAVoW4seN0Z6MB1YaljpdUZOsbSsZ83tKQf2fimSk84YC6AZXqV0R4/gmtl4/nh1tmxpMftLYZPHi2/psfi5fl - -s0WANvCuoesfVAaVEbisS8pmesTKseNlkT6lthrusaroc0jmysTZalAITB0aSnopoX8oWQMb2oVkIWmXvP0QX4f7geSrnT0TmsUI0RmvrmoYjIY1YSAjkUfs9zm0vhzFuqQdwYUy3oo/pfpso/vBnofvlEXLpyqQUUe5vSEeQ/thmngYZhseHfmgUSjfj6+vJLMltpczkHjtgfpgxsWBhgxr6iGHjiKgoVXvdPsVXp6sfIckJAjTMYK6NGkcqTh5 - -Hgc7KDvEiYr0drdkYNrr1rjdkWNvv+/j1XuoQqZDtY0QIthkpPP7nh5rxgWtqu8IREhkabk40ZGHp4FBgsTPkpufOufFGHhGHrkFgl1vkFt8WriFkjLHS4UT7rFECT7mHzA9wrUABTQBwAKNYI8YACHOYehwALCAJzJJr4HfpDzWt/ELROHyCk7JCqJG2SF0KI3cN8fFDQfMIZnWnfuhfIWBMRpwfISM7aBH+LGtrcmOSIXEhL0DL3sBYkYvYTS4 - -sF8ttMcs0QFkacUT+7qf0SnHpzKvxMXi4eGfiM4Zp/tG/rA0YPMSOgTMoWg0bwEXR3oysUIbpaIcEzu20cUwbbAapdqN4R2samZDVsWN0TmTle0blsSSsaVsQ5/mWMSQEVGwYx4Q/wYOpqdMahMZkMWlsZscikytMuulsfN0UUPmbofKQVs0RfMf80TR4btkbKfsRJv9AXQIYOYYQIRP4Z+ZMqbkuYVvUpy/rqgeulhoRgtrmMsWh5jYXhxtDP7n - -zunOdiKkhhxpdYQrFmzVrOdg7+l+VvZ6vxsdDUTQThOGhe2gZ7gRxiIId9DkVXuadFLCt9rAWsOQ2MhIbPkZrQY1wVFzidiEohPluDLeBRAHdpm10u5lAr/pYjthZNraDJANs8ETAdkDCioIdCHDVOwZnPvpIJveui5lpbMTSkfl4cPYcnUfTLqnUdW0UeIXQQRtECqgG0XqAhIxahRxowyiOkTFsT5TOOkSisV/RiHvpDEchYSETpdMW/USVsan - -QdlEa1EamZBMMfQEfx4TNkaXocW8ngIeFNmYmtHES0NPJCu0gd7UIuHKCkWkaLoevVwRxwVJ5lzBIM3EBlmIEvZGInUDekGrIJ9BjYkktnrGsVEsAVyjG8H6UPzoPrvr5EBRwOF4BcZD9nvvhMB9s4AWyMQBQU+wYz0QWsVRjkWsZW0SWsYsUZxIe5Ph5uISLg7/r1gaFiiLkFBEaFgcU2Mq5PFsVFgR1Ho8tuaQcVtIDMb2hEmftrKmNGILUfqF - -rOgR4sQVipKMbfMeZ1i+4crinG/pLISRwRwofcPmIwa64ftMA2qDScg9Zm37lApp2qJOwT2qNOweylqTER8zuYMdHhqQAA+sPLEDosrgAAeQFgvkJaNjZnmQlvsAXtIm4bFgDEUnUyCVmPhfuUYJMxJ8HD0lEZkXgQZ8blT6P5/kb/udnlbMScgYM0aVUcTYdmUcIPixPvbRLcLjzkeJPBzACMGB7MX7seRYGgUoHsbHdKAUfYkb1Ad3HtlYYDMQ - -h+kUMbi4XwEVAMVQYfukUR4acEaL0ZYgfcbqakR65qfqpHgUHMf6jH7CtfrltqPz/vJZqtiMHLFz9og9PYkOm+uusLtqppRj7sS8jjtrg/8gGsYy4jumrqkvVNKCCqaBBluFiAGYkkF0US0isRJMhr9AHGMAuNG5sTMirHOoSavYIQ3UCNMVNbvSXoykEoDuCzOW0fRfsWsQTsRz0bV+kO7q86G2gZ6JM1+iDqI1HOvsf9EV4Ao4sU14c4sRkMY3 - -zoaWiNsacYcG0UesaiAVzdonsVb7rAUbQEVr4SgYS70Xqkf0kcLIazIUi1i1ctLBtr4QyAm84XtfifYZ3HspMpwlnTngyQWVYaocaYBizji50HYLsU/IqQSjMcqQaw0e+RoAZqStsWYfWXvezMDIc1ZvhEbBGtNZjyeAImhfXgLcsWXpahkpoU43kKjnEvlZCrNsaioRo+EuPAhaAHpP+aJlAkQkY5ssY2IZso0fJJnld5qnEdAYt/asO3D/wgJn - -jcPD4cUNKjN0Hx7t84mJns9WnWVMAIrc4mbUILsLH0QqdODemcoJsxo3xA9wnNRFzBACHNeBET3PMAOHmtIAKesHN4reErh/iTerAKClNJdjsmsZA5CQoBUgJc8BactHTs2kcCCMmwQhAXmsXbsYnUYWsSPYUV4dQgVg4ooYhXnDBWBmSvnMkhyoMWKoIdFsTGoXagDmQMwAYh4QhQbRkZMMQdMcIcWb0X2bnvYRIES/Meb0ZxGhg3mCdh0zh3kQ - -4YKsvuMsfZvi9ZtjAJ8oD1/m/sVXsUUphjit87FWAFAuGxHPEANR1Bb6orWLXYWI3J6AXLTvJrqihCSvgvOrY4eR2F4gN/rKqiC6iHRfOVCqx2GiIc6TL9oJbdtgkg25sGSKBJIXMRokf0cQ7sYMcfMUc7sdW0dgvoYkaE0OsHPVDr1gYgwkqmEpSgzoVrxtvsYxIni2KPJGVYJAgFmjoIbvKyHEKjVVBPZBXeIq+MVgIr9I2QFKmJIwGBWEWxDC - -fMjsAycTbgEycRp/ksSkoOC9+A0BNy+A33nuFIsJhTQtWPI/sLcWF+sGHAjFIsKcaCiItAGKcUXwFksCiRmXSOaVphHFqAkXIRDRtsbnAcrXwEAIAFFKGkKQCC/QN5RAGkNnTH6xDxAFgzNS5NQQBuwC/QCczDngGDRv24paIiw1nKvlacUmwKT1CsxKrOG6IlMkOacdBwPu+NwgFSrNgilfAO6cTaftLYF6cVbBIUCN35gi5kUURSMhb+n9RjE/ - -uazIdisbNAOFu6SAKSmvypHGLEARzsGKir6+CKigkFNSXEUwAjuuS6mDHjagQ6gUQOgBkIbOpJlJYGL0GBUgOSrM3hKjPm7kPiKHEwKw7AQAIwEPbkFK0Ir+PppCRpuhjgSIK+jOldB5rD1gssFIy0vhNCtIOg4a4QKpAMqxKu1N17BkcjacR2xE/CD25CQcVpYcVzuz0TnIr1ZJ8AnkgL9aLNVNzAZFFJAlNTsTGoTiPgnur6MaiscKcWpEGZ1P - -ztOb8LqcTt8IdgBTwAimKpQklfPqvJd6ulmG8hMEJEiyKvAJecfT4B7wUygLecSqTGAgG2gkqIH8mLozBb1CI4O4kIfDKScbNdK+EkBzmFckTChN/J0psaERiBDdQGScSBcQhcAtgNMoFyUEaUGVcpJLKfUkxzNfAJXxEacViITBwFWoA5oFgzHu1v8ioCgMvoJOcbgcBzCGEsRQOKFYBdfITfhfWCRcWDRrMvkMquK0VHPK99nxvr9IP/MgDIKj - -WsfZAfyvULpNwAjWhpeHpIGibKMqhrcA9sUgMEbeLagOFnNr/uVMSMgQU0ZlcNvFCc/DT9MrapAWLXKAvaCLWPk2hhPnPUbGIG4wlc8BnatakqD5AuCOB6FQgIMgAoqJBBEB+P9KNocD4+hPrg+dBiiDXIVHkXNwb+EWCsY/kYsUblvq60S0TBtVOGOKnzl7gPigP2bFuceHHkZIH9HIeUULgU2irxwJiSHbyjsdvXeDBccBcSRCF6vpT2OFcUig - -K+EqB4CecTgZMFYD01t74biwi7UM/0IfZKuMlXACGcXKvlpYOy4ABJHE+vteM+4KOENlcdQQLlcQFOIyyDzdJ3sP7kVlcdVIBacbDwlaIb1SAy+KoPEqwCl5jkDGgMklcY3xHC9GFgCsEEvURJcc5ODFcY16oEgoPqu/cvUzI1AKgzM1UZGwGKIAsYNP1LOmOPmFycaKcTkoApwu7IGdHCz5E/AB6YKeceD5MlcT/gstcfXEatcYXrvR0BtcR1cU - -7UAT/s23o2HkyphefNuXpAYrdlpaSFauodKgFYDBSuSDl57tHyHmEa31Mg7OHKFFMQXcqusBx3DTvrGQHTvlo+uoWhPZBkICbMqjPp5nFJJDZRH2/CNRBtjGgOAvPGpDEPMNrsZOIUf6GuIEWir5mNj+F09KQgMHoF2qOwkTr/tIRqUrp5+tTLn2wticDZYA8QKxEAFsc4oa6yDZRFIMoODvnzth3o6TGo0X9cVGoXnrhqFkjwZALn60SXUcRnov - -AKosJUBOqJBNcUedFgzHiBK4xIldnNcVKDNycbFOLyca/8KOcZs5q8/LghPNcfKcYtcR2wEoYJGisFsMNVm1cXqceecSlcZCbvycb3GCM0MbRrxwKrcVtcRwsMZYI9vDqUDrcYdcTTcBecQSgmkGgU1JP0GoPPKyIlcWbcercQrLvRAHPeD7vtUClulLrcWecfrcWTctaUKaChsFuJEo+2DLcTycdWPNyAgpjp8gMkzP+0e7cZtcZ1cQvStTwGmD - -m7oXn9BeplVHEVQPSjAtbE1cbQwiwoKucD4Ggm2uNOFQUQuuBVcTUoFVcTFItIflVSi6CsTeFBEH3om4qJlgOfkRSsKlop4gBFIO8YXboYpeCBIucyrqCNKiCgJAiVr2VgrcT8mA8yJ7CCzgMFuFZxAakOcKprca66LHCOP8PNAL+kvLxMYQaVsJkhsHNsrRB43mZDMKIHNmJFnKYbJbcbSQCHBNFjr3cQIVnmYGtkVwHuHSPxHNKcXXdi74JfAB - -usM3ALbYrE4LjcdSCngukBdjwHPa5jS7pbgDjcRzfHjcbrATXcZ1QN6ctuodKumasfS/iDvM0dmZDi6UW5NBdcVZLoxcdxnpGETolh99ByknS0SLHHf5sy0ac8pNUpuqth4ILfHSDpRPnnsADirylP13M7sPncXwOrXFmt3GVUHRRA0gVDQtmca40YmcY6Ua0gVJ7mP5s+POW9uISpqiuSUlokopvoAApTmB8HP2JjUhqJOidjGJII30W50ZVMeW - -iKMAOhOH/AmpMKFTM0CFuAMhZKOmCAygz9C8HqCYFBBHIIEbDG3aF22LHfMFipS8ge9vBQFSIHsmD4cEioKUEW3UPm6GFED1WOqzJZkdklvjYXfkQ0YTRjvUEaLUcBVH00i55ikDtttvgvsYImM9GZIAScdyTETxBWUUJ/gN+kFcehcew9lnCgHcaLcUvfI48ZgHM48etcXbcWrcZdVklvGOce7tN48e1cfbcfHdv0LJvmKGguiVjqcT48Z7cdy1 - -jwrv6+LMYEE8XrcVHccJqP9INQDh40MRAELcSKcbLccycUors+MAenI8+icWrdJMB/OScaAsYaLjNjMlOB2sJCoIupHzccuRMjhHergEkEdhJDBmHcTU0J3cU3cez4A1ZmfaFc8PIUEAri6CKk8TdjCuYMRACE6oYgi9MAltBkIORwPecXNQtrGN81LmvKh1K2+ERxMAHIfcU08fsrq+YMHcQalMfce+rsf0Hh1Ou8JAgLsLGU8Xy+GAkA/EJGZO - -QsnquOUOC2Ih7Tk4Wt3RE1AJgoUCAKYGnXMPyEjy2iEOPlcfECDaoSCWLMCJKbGcyLUyCFXjU8ewSpdgJRUDtcfTSLTgEngvLcTvZF3cc3cQgkXiilnXuqIG2KBfSg2sKrAB7kgMxJDAH1YiKoSGaHk8SXcRuEQuARvcf1gFvcRnYsFUGbgIMIp91EybuU8Qc8T8oPvrsE6KncdSiNdAr08fqMTwrrmDHcMnBIFIYBS8QAEgtpLC4PYuMWgT8YXx - -bJ1/vcoCmSF5rK48QqcfNGDC8YnsJJ+Kmvk88VCUqLOEICq08fZcFWQJU6H3oiyINdwM7ARzcYecYo4DOxC/DDK8XPePXhMZIpncfSoEmmAoeMLpIQQMuctWIBS/Nl7h0mNBvBjkPScXMKLFcZFccF3EBdpIIG6BHd6sVcd5JLU8WS5AUiv+QOi+La8VIgPa8dw7D88V5AGvUlDxlx0Sh0mdkSkFttsextNfwtd0Zd3FEcSJnrXlJWyii9mzEF3I - -k29j3IsgkhdKl7sGgkrmsLBwB1IIWsJ0pJS0H/NClYNzfIikHC+JCUEoik2sJjfNTMK57pYvJ36MW8Xyir44EaFOEgN36F9eLzgHBpBN/Gr8kT8j/TDsSqT8ns8FmcfEAfSUDVMlwEvxvlEaLXpKrIgtUurIkaOu/2N3IukLmzEOhulf8izbjA1BA1At3Kt3JnsO3PMm8Xi4sS4q+aGjItilCS4rjIiGRjg8QzeNGcaxpDE/o6OkGDIPAQqBBS1F - -/QB2TpxAeAcT6OguACB8MmAFh/gF1HyJOGjDVEsNFhJloDTAUXt9rMyml9OPzbL7AoSAB4iPtTJJ/N7cXLNHD1L8CKbusr0DsdNZVpz0jZcTZkW+wZmUXHkdmUb+YT5EdBmGL2H/PC+9hZDK+IQzcZ9njTTtYYGSAa6wZezsDEd+Ng6cfzcTzdLyrpycea8YNcRScXlcY3QM88TVjG4eBRcYVIKGcfpYPo0Jq8TEWK9QhJmBLcXCccVBDTFqi8T3 - -cBBQIk8R7cck8T4KOx8bd8Il9oR8cU8XFcVFccAwNPcQOxLrRNCAf48ZLcax8YPcU3cFrcSPcY/oPR8fl0A/QKR8efPKK8Y9iMZqAy+Ge4laIH/fNdlMx8cxSFEwhVUIs8aHccs8VKmELPm7sADNLBEMM8ZvcQOkGrgRK8UrcUzAPPcbuhISgOSUbYBtxrFEvJgoazrh+cc58YllIZ0L+8T4cCRIP8Yed8J+Sr58V7cfQcX+8YF8aPcZ+cTR4t+c - -YWMhFMSB5vR0fQ9ug9vxnL7crdcWpskdKtSUC44LyDqI4DkGMDLjibL44H66Me6BlgDZCvakBWkCKkJTfGTfLUGJ6JiakM6juakIRYIdoizfGphH+VisED88AtolVIWHaOV0EgoB4cnuNJVstSPNgAII3FugKh2DD8J9TN7uJg9A04H2DrV6tSgK3nuVJP1JIsTBMaITgHSfmjRm86MmUbhlsE7mmUWB8fYoczkWXMQY8UfUWLUfpYe9EUWPDPCA - -WUfeZucgjCQEpSkqIOyULbGtWUZCRB1ngitJHwayAEIANJkYy4olymCzudPMwAMjwO4+MHmjbABI3GpDCzxvoYoGDqT6PANBYvGq8FZWLTOCsrKmIs2suXLEfEoM4J+kN48H16lGDr0caQQRLEcz0aCsZB8aYsUykYewV7dAWwK32NBHFRIq4hHZgOd8TPTLzlsScRmonFIqm2HD8TNQWv0nsHnX1uD0hDbrfyigEEZHPTIFDqC6wQAAVBfs30ZS - -Fn5lP98HQMJ9BuajiNEOzbH9UvAWC7Mm/uBvMFj+HHmHaTM+elWauOiKc0izkDNoAoqO+vChujKeHRPG2eJ9IrdMBerHsjqTcUtweKoLjiNaMa5cRAlF6frGYmN1MKMbPEejSE9QB/BnY8ZLoXPwIgLALbt6IMq8fD7uimOpaFtCpodqA0aUEpG2DQnr/9nwZIb1ExAfopNqoeSGqQ/mQgLvkrOhKuCm3OKT1M13syIL1gH+5Cr8Xt3r+FF2QBFH - -MFVtx/rqSPq/MqwTaEKEUhj9JWsvL8Sc0or8QR8Un8ar8dH8Y6kc1ijpdD0oC2IFn8ZH8ZBRInyp51kH0W8OIMLiibDnrC8NId5vbcv7cq9RvYlmefFX4fCMX8IQX4oY0aIjkgpmPsKpwMbEESUKw8Wz8e50ZJbggANaMIpPipMDq6o7kDbSsT5B5vlOAB/YkAvikSJ8+gYINZYKpJKZEEXlBdQCIhBRTK0mA1oLVoeZCHPXoLEZL0EEoMNwC0gI - -migz0Uj8Uz0e2kaj8SYseCsfsmmQMuU+EHDhJBBykasbuF4Jcmud8RWQBwQST8TbbCX8Sn8dgCMHgIgLNNzIsNOjSCKwNUgNu1B0mG9kt/EAfbDKYhKIB+UVaPO6oLzgPHfG71mr2ljOJlwPxMOTCqwBBfEHACesBl5BEqFNfSoR/KdCN6wFJrLNTAzlO/sDCNBPsJjMPtyHgCbNuIL4IQCVTgOCLGmsOI0mQCeigBQCVvmOzChQ8t6IHxKOQQLg - -CQwCdHmEwCcvoNtgc/0P5rC8wBGYFv8Zr8l+BITlAHEQf8V2BFbcB6ygtSEICVuhsjShfWPv8TXHEf8XjiBtvJGkVajNu8Q8HGpUSpsT9RvkBDeXk9LudcZv9lZLvGHiUFi2woDHoiMdWzmr6tIPq6OpsJujogq2sh0hSvuvusUmAG5BzbMOALuAA6MA3KHa2gR2DPxDv9Ga4J4gAU2NTgNTimO4IivAh+HYOqD2lzpM6opsUcjnAGwtVzrNcKjg - -Br8ZM/ov6BXnNfFHnVChkSklN9sVAIC/8dnyNnke3MQs0QIgp/8YtAVPujvsYEgoWICcUnqApOIj6IAQiFNNhAIMk5syQCeXLBkEl4B78f8mGcoD6BgUrgHRH1GL76DJKOTHuFgK6PvVALIYAXBJRojmlO0CUaFOECa4wVYUFECRACf0CdMIieoRUGhZNDJsY8MVoCdGHvkBJ90YcTsmIQH+hOBj6Ip1/r9sS6tvLscBalOAJr+Ct4sfTLJlh1Nv - -iLHJ8vgAMahOXnnntnA1uxCDhxOSYipBuR2HJAFx+nERjLYlrTnCcMG6POsHlDonqIpJH1CM8jv6ECf8eNMUicabboV4aiceQcTnItK1OtIbFYAVIDVUeDjLTAPC8O6hN5caqPvfSlORub8YmoZb8TWGHdILbAFujjh8TACRFCD3jh1JPdwScKEPCE8gN2LqMCeACX0CQ5pBwsLQ8rHWHj4Fm3GPqGMCaSCajgG24NNmjT5E7ph+YD0CUDXEw6vS - -CQSgsamAdttj8BHEsqwTYbnKmMOsgtbIyCQGwrHgP4OLSCQysGfcXSEcRAOleIs2NzgdyQDr9L4woYYCEgG3WvbcAd8KdODEokCSnMcBBEF8ViNkvRxE2gvB6rOjktpMNOkdDhuAiRVoHgO6TkSTHw+EL+JqECazrqCXLSPjZvVUJcmk4Yr0yHKgAcOAqkCrAqCkYRsufEGyCbNcKgyqYbFyCZ/wDyCR/+MvRj6CRZmLHAPYcdyrOsrBdUI6CV78 - -eRENgoFxrp8Cd9gBguIdoJaCa4hHDogMMAIzHE3kmCW8CW7wtdoNLcirsAA9viAfH3jf/CBAduPvzMadYXVahPxu2Bh1fr2HCxsbkgb1OlJsaWEfxYv6QqlrhmGIcIqT9pEXh2CZl5Ii5i4qqcvv4HjPflzutXfvIMd0FkUCCICJo+D0caZnEI4Ug6mXkpJcZwkWuwWIQMWQjZGGBgCdajQEHiVPQAAwxjfTJo5u0blJVhq8KeYB9iF85n4CS22B - -s6KRcnfIG76obTMH2EBGvqIPgirEirNjAOQIUwL8CXgAfbsQCCY7sVQgQucVg4m0ANyMSIPs1FMbAm/kSe/E/QKGwMkMQZxpJmtMYKuasrCvYvLICX1ClwFntgCEEcxWkxvNeeMYiqqCXcgLpzAqwOKCTECVACa0DtKCWdMKTpK/ojICRxLCtgD46lgCcqFsEQFCmHaCQp+AI1iIkIMCWECcyiKoBHdALQ8tK5BJ4OcoeZqImCa8CWq8fpQv/lKx - -ELUGGLcRRCaECSKFNRCRuoTq8Da8b2sO+eN72rAymicO/xPA4FEWE5ANAEEvtOxkmoFoAwADNDw4FeCZm8pmhNVCtf2NeUaaCR18OaCf6pnqxEkoET2AegG92NqCEACTI9KLGgWxCpCWusiRmDtHmBCQRwHhCeyLlJCQjeEchrJCcfGuUCZHGmiNJLct+sPhCmbGolhGMKljOJGQEEKg9AO5XE6Cd78SASiqCXyCkhCZKUORwHRCTRwjUguaGmtE - -CPmLS6EWPI2yIdUHqCZB9O5mqRCYdIFhyChCSSCeyCehCRllgSUL8NFwCb69LxmGgCSG6Oj0Ld/uimB0ML9QKkMs51uVCdv8SICW4eFZCU18GozLLgIuKohCYSCSh3EVCS7UHACaVCR26q1CYpFO1CUR2J1CSVCZHWo3yhEUb7hqyVktKvJntA4EkcYs5OylJ2yvAKiS1ODLvB4LPykaitTIjhTnhukA1NoFHRvgXlJh/FELjcPPFnmWylolgqUX - -xnvAIuFslFNNc4lKtjm/BEcSk0Z40WN+ALvMEcc5snhvngkRELvt5vLhkXMHdsR+apNenBPO3UUgquUbtpRNHwFUbme8S5lN8qK8apXnp5yB54P+8IMAJbDAyYrCADFygnkZWai6BMcEPiENcJH4CdgkOJvAJMMJrOfXr0CUw6rNLPafmRbLKiPeCqBcVjsSM/tHkXZcWj8Vf8SCCU6Meh3qNyJAgKz5AqPok+o9rAd1hkCf8gHCGnkCQg9A3UrS - -jg7skZCYH+iZCWUCSbTC5CcYhMLLpB0PQ5Pp/KVHMyXNn8VH8WX8QaqJqCVgGIWIHZ5KhCY0MMRnN8OlXFvH8QREHhQnlCSu0Uk+LR4S78Y4QPRAWm1K4MfmKEVIAJiCFCQSCX1CctbIgCWFrFsBjqCUlCfaCdowFwhjXiiACqTUC5ErSflwgFRxBRLmLyNLCTQnlrCR7CbrCTXwvJCR6CXquF1WJhCZiINhCftSIzrnWMu9SiprrAygPImKxGhx - -PEcDAiGLoOJCWAwceso3ALGCUKAqamDGCTr2HGCcFCWVYYFCVnCenCTKGp36PqIFnka5Xp78ZnCWnCTRATIGC8CWvODygBq/I0CTtAM0CYrzqN/MaYTNuDTMorTEHCcqWnKCRMDnjCeYkCBYbNkM7CSLCYMZuZMt3CSQCUe5OTuHzCbBCVUCV3CcQCX9xKPCfUWOPCbnyHBCVPCW9uDPCX5avAsW/2DsIYE/DdLn2CWoRtvRNvCZaUTasX4/Eulk - -8sgTWgJRraUfxsuIkidwkOZHUyvT8XrVEauiOFtwwRtnHKjvVjpMsQ/CfQwjpLnHYaasbW3p4Hls1uYaAnvHJvlolm1xCO8dkLgkfP2ylkLu18U2xLF1vLqmk9DrmOeYpvoTUUYP8VRurm0npiLGSghOD8qDDwFElkvyOzQMOgjCCnXCaFYr10CODj1yKjCQoBEbopiLDlLt/EJF+NgCcRCSEkgNCbACUNCWW0Rt8R+YRf8Y60Q5cUxfm0AOGjse - -IfjdD25NLUTnUfGkEZuC/8WB4OLoW6wciCcGROrCfgCQVcM24TW1PPCZUCUV/BHsRt2OUJCNIPC8fbgL/8b/4MTJJTwAyCUnuCKCQZCAPoPLCRMCQ68hQiURCVtQmlbMVCceSLUkZgCfoiZphIYiftzMYiVIgMNCaVaqDAS0QeiFvYidQIZE4ECPnfvuywVqAb+JDqAVgApLVqgMNLVg9wq3vJf+lUvJ0CH6NI+AN5yHeBBvyEkAKbQd7kd3GIxY - -OA1FXiJRPFWaoyIHCgHscEZzMkuhSCRd0uYfiuWqcXNTikaCU7prgZLOcYCCWQcTfAXu4WMAAOnHMwnC3qEOvc3Dtms9Wih8VJXjTTo36GNCB0oZ04Y1nqzCZLCcUEEUCYrxJJQnH0fHgK0ian8U2wLhCTv8ZnbOLCaX8X0iZEoBRSLcxKPgNpCaqQDoiZKCVLCUFxFqCSTsILPNYifu+Ciun7CYqiOJ8YEVKIiYwCSXHppvDSEH0oP7CW9As5sA - -1oI1CUZouwUg7fmsiWzofj5pjuGlCTkcIC4drCQsiZd8aqavbCeaqnuLm2RHFCdTqMuWFz7GHCSpaiORigIdmYNbCQp+LbCU5+JFCbSWsPkEICuMiWCoDEuNaZMAkA2mFFCWCiWPCTBCQvCZPCXWpBoiR0pjQlD9IgMiXVCYPdKiicaCc/HFsiQVCcgpIaCRCWLiiaS2MsiXl0NiibkibHgLazsMiV/8Qw0fRuCCiWxkEYwE+JN8if3ASB/NvDL0 - -id/8WzyN7CdqCYACSLUMZCTz+HbCY/QA7Ca8idRiFzCYwJAKiVnJJ9FBbCfNqGa/GKiZYzLtADwRFKiT0cDKiZjEWaUSJgWx0U/WrjqOGHspsT/0rSVorhhtSv7HKA0pf5md0ZUytZsscLrZsnvzEH3NYRnlokj9uQ8SNUqmuso7mUFOjWqP7ptIEDWkflLhyN0FMTIGVIWzEFs8F6iSkJtzsKPyo1osvyhClHKKoLIsLUIaDuqipKSN4XnJ4c2Y - -aTUalWGKvNhWmFIFRxiD8PhPIKyFhePW2AC7EJaPMFig2pYAMgccstDz2CuNtIEH4CRwgJeaHmkAwtK6ou5CdumLkMM7HisaCH8ZbQWpCWNMY+Cf8CRQgYUiU7scCCe+CQ7MSxPiyIKVVrGohB3JKQHEHBUibUia7/oDjv+QibAGg+h0iX09MLwrEwYjhOw9vA1kD0HUilz5BpCRMia8rkyQDMiZ1RC1CWxKPRaACYJisOQCVwCTsifhUJD2pjoj - -9gIFTvKCfIWD42HMEMQYZQ0MKCWiiSOJE8iUKiS8iYigARCTQOKnXoiQjmfDCiVWsKCiUyiSRiOQiRGNHhZP6iJbYt6CdECWGCZPcbLAESiUyCbHgI8ipMxNHmCqdt1OKdyozrorVMPLLGfHZCTZgXhMAOJAQqMMgFuiVSwag5vt3lQ5Hb5G+jGDcBCiQpcOrMKZCfjZuZCZsgNeUVarEWigqkCQOFRAiXHKRiRbAORiYqZqZJlV0jTArVnqSiYJ - -oJOaM0GFnyjLpMSIBuhmjogiidMxEiiUnyoTgGtYCkSLXiki4YRieaCcAQHrmljCb6CeGCdiBDciW0gg6FOD5DYghCUsOvqcVopic+lOv8AyiQxCeaGsvAACielCTelJKie3gh8iW2rB2wJJiWk4XZ3Bk0WWgkqCZeiZIiYiiZUCcfqviiUWmPuiUtInA4PVQnm3skImuiYrCZwyBOieZILdGD/8RWKhLCaMiSP0H5iSUCRIVr0iXsjqxUBZiSui - -bDNE7ytfslkcnBifbEKnkieibk0AqCeeifeCgxwoeibUCYhiZWTOliTE4JlidiVmeMdnBrNuI+2h/rkdsfxgSA0hC4mXrDX4ermA5smZcFP5hwSmwSmRDEL4XXiCkcVi9lWqgmFFW+EVonaiR4iiP5oOFvaUddlvSeLEcTh/MZshj/Jm/AolqQkTLhI5LlNid3wiNiQ8PNx7tdccLUAJcbJETN5FtCbd5uuZFdlm9WkqiqhStEcY9Cdgkc9CUqUW - -CouA8VpUVOdrDGlShERwVJhheGlhLCN8CUwEhofPAYF4VMMKCqNBZJpgfgAPLgjmeA0AC0AO8ZBcAEMAJxgBITug2hq8OCxLSOLMipdvj1yCLGq/SpOMv22OY5khzFhCWVWPpBjpidFCddXoiccXMaEMf3EbbMXBkbo9gSNGzgd+kC0gB9XoFgczUO5KC/8YRSIIiVh8bYkfq5ByiezCesIJFiTH8RXZJfAP5DoMJM6lBPbPFiVWIaTMgRicRMJC - -iZc8qeiXZKgVibuAi1CdzCVtsDIOneiYxcgnjCKiQl9MjoJ+pkMdkGiO7CfMiTLCa5idu4srCXbyON9HlWNlieHCb8iT3zu3CbKCZi/gjifCibd+hriVc+BFCbCiZ+iecoVUUvjEbpEK1Kmpkqg7gykrL2PqUTjGp9Ht3RhDmBPAUggN0RO//iXLj9+LdnMIsT2IS5lEJ0pz0Ep5sMTCrEPEAIhOEwxEt4k+BIcAEdvl37AAQBfyF8NOI8Z62kdX - -ODiflwJDieTAQN0tdIAp+PpHK1VPcibLiV83gnUSjiUYsSVUejiWVUSTYf4sFZlhiQuX9jV7nQ5BjFPYuETibycCuJmACbJiQrCVN0QEMBTicBvJRiflCS5iTx3kVCRxiSVrNbiFziTZiReiXamvNmFigsF0EyXtciQZibciWx6s5CRPCT45D8cfeiSLiY+iQpiSPietwE7Rtyid2NkhEPPiVt+FyiTLiZ7CZ4cc9wXtWE4XiR5lX8Y1Khc4hOqp - -EUc6xvLzl9odkUQ8kT0YFE3nitDE3sqflJcfOCRAAJLILgAGEZuLdPQEOKONU1FreM8Lj8pBkAFaon+BFDEiYsPR9iHmDxHGjCSQiSRPq4QGBCQ78V4vNANBa0J6hPMcRniT/ocjiTo8SXMWjidt8azkZL4dJ9NpDJ/hAIhKTwWBEVV4cwwMbIJXiVrhHucV/RoSQI3ierDnQZKQSYFidhMCMiVFiaKiYH4AUrokUH3nquiVlCXmmj5ibfqP3iY3 - -QHQSKFvLcGi3iZrCWoHuwSWoTF5+AchJpibdmFWZPwSUJ2qPVoKicLiftcN2ATSCXQSU9IAwSd5UEviXLicvwBQSevibASZviYv4KoSWGZEoSVS4UWCUaSsWzhmHpasTtsdIFK6sUXZirhnHSEivkaRsJsaQplLJm8HOlMDCrKSYgh4K50QP8ew8c9TLZGCuANKyBjQquVJDwMOFNKCsFlEL8a/pE74EsgIsaASUErZNYkHToV+wM4zJ9ao2eFoS - -T97oYsVokaQcW2icUiRj8WWsWzAUVgFWaC7MXj+Lp9EX3DPEUNgc3sICEj/kRLocIiVQ8LESYxIqUSaKjK3PoS9pVMsS9qjPlA1uPRoMCGLZBXOkvaCcGo7aHK0BKAGHiTMjNPgBbIPubIr0BgAXcCVRfN7wMqfD7rpVLGBiZoiVGpBkcgoCbLss0rvkiQwiSCsXo8UeTkAYeyfiikeL3DycKn4lpuiWtsxxGmYkTifHsJ1VtTiXn8WlQOUSTX0H - -sSS8wkVCZ34RlglEBoHQlQSSn8TQSTOiXOOA7wJp+jz2jSiWr8TTiXaLBD1EJwGorD9QrtSJpiTRCXyCX/8aoieB4VwvGschXjq0dsBvB1CbQiSYiT70nsiWV8ElxO6vA1CYtAE1CWciXJCcH2M5qu6vEuiRziWi+EliVHsoNdOFgB22ubCcqiSgCaQvMiSTCSVsSjNAKoigIKsQQJY2qUEvXQvrkHxHAbiflYNWDgdqilmjFiZzid5ouxCWBBEA - -gJIrorrD9+EEnFglj+iesghCUjEkV1KGFiaMwszFgYgEKvmueD5IG+SIcSe9AMamImmBROFXPpcScn8YtAZTiccUGSSTWzBSSZoSUFiSMiZyiSmCJpieRCVHYK/4PQSfKvAkyFiCZ/WDYiaYiYqSTn8YFEHZWqcSX2aCzibP+otCAhCdPidISWWTA2QFYCOcScNVnXCeKINd6PKcYICV+rMOvFd5LYeMSEAJCaiNDsyIcCmOcMySXS0Mejs3CTBi - -bVINFieziURiVGSTfnlBicSgLGSYhvG94ZIwWlMTG7pSlmoDsA8bsPP4ceJsoEcctIFfPkO8X3PEPyoL/LJsttovfannlOtiWNKnXiDJEakcWticJ7ttCSV0LWSUmER84g2SVi9mGupN+OA8VOqlD9ud0YIxgDbt5UYefBnEWJQhxvi9ccfZI6usDWgTIMtCT2yqtCZfmLJpADZjzvgkfHg8R28W1ICP7t3XnYlg38UEQv7vk6nkdGKjPm/eDNnh - -yAIQKsS0m0ANC/H/BFsAD0aFw8hSMUlUTGMANnhHxGfiJ9MkdXC9rgYWHdwL1gGkicYagySelhHFnPHCe1xNjMGBErMSYuUUwiTPsSY4WJtsgSHqUgZSGBtCsbsTiOmwH+wkTiZO8CzCVqSV/8SqSaunMKSVOiQTZK0ie8WPFukR2GcSQTmK4sdqpFySQGSeFvpQSfyCf/8WoiWziWaCZMidV9GCSdiCcbIJvMeNtN8SQe7uVCSciVVCbQfO8iX5 - -Ca2QCRCaE0AzAHFrBUgGxSSZiRxSVz4k6SSbCbpzPGSZRSTEuN15jUCariYqqtICf6Se4YMRSQg2DiiXkibKiXhWJ0iehSRSicSicpSZqSVcScqSblpqMSTeiWLAOyMMTcRwSYISTFsGqSfSbJmQP0iV3uKqhNCQRt/MJSYgIG1CRiidZSd8oLZSQH9LmuDxSRNrAQUZoyO5iTZSTeLkxSccifCSaciZOsrcGj8goPiRupDQibRSSsidpSUqSWzC - -dQ3soiQZQG/IgCSQywGhSQFiYDgPFSQKCQACW9hFIiWiNO+4d5ifXiR2JIxSbFeMsiWo4F8SaviasoRFSWaSVFScxbopzk1XvZNCgYsZ6oaidVie9WEg9gyVjDdr3Yk6xuv5k6xi9kUp6i6ruJCBfRDyeA6rsLSLoCfryNnZiiolMLg7tKFMR4tBQ9qQak8stQkUnch2EbaromIXfdFuljl7PvrP90Vuhn9oZ8sSy2rPun6IlbMnDQrBcjHqKe8R - -7iXekRH+tT4VaMAL8ApbreQBvyJUAOvyHWbKcAKc/PooXX3mfEEyKNzrDjhKyfIASSWidakiTlOVJJgXOPiUiiZ1CHnJu5SQloH37Ejifmsc2iQV4S+CdpYWicdf8a7seQAa+9rmYmvlrlKHXXoygETiT/gBBYSZAX6MXyCdb8S1GOTnulSWRSUlSZXwHKiSACXIXETSSz9D+cKaSegCaW4hVSV1CYyUfD4M5iYuRnWIMxSYFSaxSV/ID5SS5SX5 - -SdE8MySRiSXPCQ5iTlSYGXkDSXyOgJCAJiRUCXzSS06NxScDSULSVf/rc+kU3tDmAS/gy2sKlFGrkLgAyoW7mj0POtEP64dd8LuhISPvuhCMfBGnJTtqqkhrqgvyBg6s+QJZiHFcIaAIkDnqBDSPHs3oZEUnLlX2EukGcoI2mK1Yqj8L1fn4pGDVOBhNr0DGSUkjGSABMSckRhsUUMAg6poBSSj8fMSaPYcMcY/IrphoJPOrAFKkLGol6fhccZMo - -kTiciIohSTpSbFSWQSZq+gCrFflJ3iYziW6YMcScapNlSWkgEGSayCUBiaYQPlSccwpGSYk0b30HlSfdCrSfkgioJSTqfDhSXaSU5xKziWLiRvWLLahlTGyIPaiEfphcEA3SXdyukiV+SeqgPkeMzifXSQlhtmCnD2CaZI6dlYiWGkPaSd81HXCZHhDPpvCgNoicwSXXie6ZCGCVxdBYGJurAQkFnSSRiMxCdXCfA1gqpCJidBiZ7SYaLDRSZVSd - -1CfDsLvSamSfvSS67AFSTgkpeAr7gJvSQMgNvScPif56oLSYdoEM8eQNLxCYe/F21HiScgCUFADEilRoQzrDG+mMIjoSbeivpSSgwlbIkt4b1CaJSYSSWjsAT4EriYqiYalPiSd/ST1CfzieawFz4vpiY/SXFrM/SUKFOxSbMZB1JHCSVfSc1CSwGGVSU9suXSaVSXbqvaCbyrjXiaGCYXSQ/0UniWviulCbyrhuAtziRlTKS5PxSVXSdgyWl9ns - -iVH+GzoWEsU4Wk3SSNYi3SXBzDDGGmCeI8TwGIeiTKCfridffCGSSeaFWjkvJNeiSAyS4/DDBsvCQTCeNKEPSWJCXnVNXEnRicV8QxibKBiJCb+SSPSeoyXWiapCRZCW/cf9ulwMY23jSolv5rcCgJ7nWSZtCc2SRtieW+K6SD5FPW+BGgomXAHGLELrzIg1IOP7g0XO/ajj8sQ7l+rJwEp6ujFIJ3ylVZIDqAWEc6SMJEUw7tuZFBSndlvtCSKt - -hw7iZVNsLtLIvEyVLItjUMT9nKtkqti6GKQSlolmNiRJsq9lmk0XEccJnsLvqCPOs7Fd5g9itEyUy0cdCSvfnf9gM5PK6pSSNAEANofAia4SWTQJ2Wkztoisonhs/kA/ev4wLEqsq0HvujeSXPUdxwPqlJWcZCIH0oCjCbmvMBON8qgQOPRfIYLDbcMMUAexBpViriT8ie7gbbsaf8U+CS2iZDSfOcdDSSCCZQcSIPlJ4J5YGc9DUVvcgXL3Hsyd - -sUdGoT5cZbzPsUUiCX/kV1sIcSV0YrOifcSaOaCRSX8ScUwNndJsmLL3CRodFXqgaKviQd5EcSUhSc8SfsSUUuFgyUJWJogRQyQXSbMifPWACyWDsJR8bXSe3SYKUI9ur0JLYYAfAd5hMP/obCQOICqCZuiT7aN1AJzSWeiTzicqCXPiaQyQp+F8yU9yMISWegfrCWstG4MhS5vnykSya8trcydRiSTcRdyPliUwyTiyYNSClSf+uLNlJiie1NIh - -KocSWuoMQySiCYnSdaScnSVI8G6SdasB6SYZoBTSXQic8yW8SXw+N5IBjpDnyK35EJPA7cfZwj5CfFCVKcTuiX3oZvsS8mG6CR8isSScarlOyJfSZVCdfSef8IL+I6sP/WBo/ppoLqyQiSe+4jCidMyXENCaySNqGayUFSWZTHPxv/vi4UfgfhLzmCvjlIfJ0QVXpjWPjuo2CT/CYxpKi4ubiZYyW2Se4DJDQghulPytrtJg0rPZEKlEUFP4yZuS - -QMFMFFLlopNIPGyTxvh5VK/5vhusWSQO8Xv8qcPL28V5VKDbrKtq/nGDPsbIdPul+lpLNAd1qE4ZmkffiStjPMRAeQGgOFHNAuGGKyIvMJb8k0AFdSokZknLiROIErHc5IRML2cXxmE2anxMN9mP1stfumR/mrZKmiEOsD8ni9Am7uo9oLRrPESbMUSicUUiYykb1QeGOl2dHH4ttuD9FHbBL/mOoTC/8VpbOjSSiQZsHhKxM0GNwJAYCB3UslaE - -abPuyQwSWxlu5YH20jlUE6PiCXMeyY1UPKvI0sobsaLcObiG+SIAIJQmuJYPP4iNqNaNCOaHpYEnCSqqC+yQ+KG+yWr7OOMgecKcgLF2gTSfbgH+yQ6zrO7FTcBYoZYGF8gE3atRiIOycriuLPj0sm2pLrsMPPIkagqGntgN2Bg8kBSSJVWNbxKfAROyTSUdQErnikgiBVXDI4GxcdvZBkWPXsCxrBE9oM5viila5JmhJ3sLikCWkMeCjbUUkJPy - -JljfBW8SB4C3iNhuoX6MR+sdSff7oy4vMAH49ufpCqoPHNLMXA+hDJ0r2gNVNFnQMk4aVdiD6gBuHtMt0iZOXMBIP7gLcgt9RJN0rrsPo1J/AAQqI3joSAK5KOJgHcSlo8WU4YzkYHSQ60SBSVmUSeTm0ADUoc0EU3AEeVutNFOgkgimXUL7sSwytZ/MI7EG/vB7H/SAlcvfxAPoHTTsb1H+OBRHkedLOXDqPP9+i9xmeRMfODLlLZisAMfD4Grn - -M8KKbpPFbOtEHCcSwJEXSb09olyZ8oMEEF91C/DFfmNEFCeXL0KoJzEvWuCBHoPO+vFMDoqiBFwG2KL+KFgWFjONJQSL8aINvidEK6F/5OkNP6Ec0EK/Oq0qKiMbLaLt7mx8TtXmTkKCkS8goaVgZyT/fmSELCclpyd1ycwwPmlH1yeMYANyeLgOD0o/LtrSuUyfKUSOSfJvoCVB/wg77Ac1kMsUKpBbUL6QXgoYC+m8zruKpXsTxMF8zkGqD8zm - -VggJyShocBasoALCAIIapkmAeQDzoSWSMI3DsAN5COyAMCjuGUTpPsl4atDPugETDIeCRZrNhmLKiIu4SwPm18Kt2KVXG8aLcGB7OG30G+UB2QBb+AUiWsySnUckSfOyRicc0EfeCSANBPEQBwc55D25HCCXYfqw/uqPkLAbuyXvCLeyRjYPq5BBycAmC34uDZJ5yReyfMZuWfsjgn5EPNZM8+B+koIEGWbIPiPZQDiCLFyS0YJaeCpXlhyZzmDM - -Hn3ZG9hFurOlyawfrQKDSEFkuN3VB7IKoGD7CoX6AQ4tQOrCeBFyTvQHJKISXCDyaseP70q4cWl2GlyS3wuJQtZBOSgP0vEWmGPBN5hNzycryYfgKdyuZuM+CgFQtE8IJzCHtOFgK1DMrmhfgO3GIUoplwUeMAs8KwFKBycKZKfABNIWXyufUXm/rSUIFcNu1K58aFgI7yW2Yj7yi7yZI6E8gkiel9OIR4cIGAqQD7yYDyRzAkkoKDyWfArp/mvC - -Q3BFy0ZKVkeXiEdJOEYkLrVMj1ICguks5BylJzvrYRsrmEhujqinkLvqip3Ip5zHTIqO8QGiTyDtzbuAxMrIpiimpAmc4tfamG/DdQc3gfBoYUdkgKqjPggAOWJoaAPMFo7XjtxMv6Ilyu+dpIAD0ABwiOnwUnLhf6Dr9O5wHDsb7DEFAC9mOHmFJAENstDifryVWmHOOPvQXd7D6AfbRCYLOfAUTCZu4Zt8Sz0fo8agSQ0EegSbzoeQAWCYp4vL - -Gom4EqKlDlEIBCU3mu+EIwgljyZ5ybnyGRYD5ydlQOeySbyZ6yIfJtjyV5yXfyadoAQkIAIGfAodCPZAWtEPc5G9cg6aGb0jX0F/yQKSLUwL/ybTyYnkB3jBN4kHiH5ycRBNZVmGiCKwIhyThyUcGPa9rOXElcUeYNvcYiIIbsaVPH8zLt3JL5O7kuz4XWkIzyWj8L1FoXMNWjtuEru1JCQPMEYnbNryb9yvloAM6BQKYLyd0Ht8UCeYBp4A4CMR - -ZAwKYegJQKULyQkKkMOCTAmzajXSWgKQRMA9XJbPjb6r3CO1wIJNAmYLAKUsloWoofJh0noZGIlpGkZm39qrycbsvhNCLkA6YiAKfeCRoqCoKWgyhB+O9XngYHitHRECLCsZIptUCOMUoKXpmL76Du8NyTKTrLtSHwKcmqDVSstbG7yRhEG90LAmEryXQKYTCYuwAHycYuuDyVF3MFBJoaA4jpjNJHyXmvNHycHyXQZNMgJAKWXACMnI/oF4KWDy - -THyV1sATyW9Cqa8bk0LFwtJYOS0PKgHuYA0lBaxA7SdV9JYKazUNYKdhDscrLkokakHcxBnScPbMFBGp4B8rIg7tJhEUKVTyTIxIupEIKYQKUN/INSJkKcBzIbgIr5JoKfTydiAa/ybfyQeyaksiTyU/yVOCM+yf/yVyXs9ANGvrTybWaJ0KfffI9iLXaPpEJ7oeMKd/yWAKSl3LQKcEEPQKfnwB0KT/yYVRqwKZgWMAiCFwesKYsKaxUFsKbSyg - -d1oiBHsKdoKR5QlrkSGzBq4YfiYGur7crGziA8QSKmlMjykspvkOZJx7lkyWJvppvu/RLtCaNiU+jhG8WaifdCXX4VsLskyeF0EOSf6upbid5UXmSRGIYqDhA6uzSBlrmXrDZ0T/KvVwJ14ghyC9sbFIfwMfy/lVpsPflsTlxsd6ahTbvq7o8MVaUd3rOV4szzu90H3PqT/rVrrFIWknqOBoskcrFAAQf6buY7sEqpVOFPhPEDBrEJoAPpEQ4kkd - -ag+kGSLO01NSrD2SDTCbeXpOXCLGkisWLChaci0wKQOtMKsiiazigIxAbVuKAv4qJDyTOyUkSXOyawiU5cfDyYd0E67KDjEYarXACGiIwcQkWlV9Jx8U0iYIboSQAkKSLbHb0fCQI/ya6iGTyUvfC0KYdqg4QCCtGaKZ3jMmClMKb+JDxcE5ijmov0KeaKQ6KcQKVXEkErrlIJ/yVcaloKQzyQSaP/gOkes32nS4HaKeuCsqmAcKUC8OlSuLyQ/y - -cbye6KRGKXdCH3GAt2OlELswq/yaTyYMKXkSEguBa3D5BEP+NIKRzyQgKZmKZY4oZxriSOWEOUKRNoMfcERycdSEmKcpgcMqtyQCkKS07vbRFBgqVcFGKWLyQMwaFsDEKWfAgEvnaLMsKbzyR4ytK6Bx4CXgF0MfzyU5BmA2HYQFZXiBIK5KGySO+HsEzsFycUKdTyeOKf2KXx4IOKRhMkaKfRsFsSpdjAyNG0qLDkhYUDeyQlcnjyZpoJ+ySgQF - -Y4BQoruKe/yWDNG6KfaKS2xIv4OEKY3cYAKa3WL/7sRyGabCMDsUEEgKUX7COyaYeK4JFOKdyiteKcMKVAKVEKbeJmUYKUuPIOu2Vt0KSeyc3UOYOK1yWgyr6JDZovLjDfyWBKffyT1JnqiqBTM9oNPMasgKeKXJAAhKWTfvpyeiQI8yHbYdS4Y8vnB0tRYZK/gQQH/NFKockCGxBlIwVden5Ht9PoPxmWmlbIRhtnRKYWzlsZh7IY50bM3jrtLg - -pp64dRBh3oS4iX3oW4ieNBu94dxkdvPitsQQIWOjnHAULVjIjojrOCfpFEuV1rdYTultiKRmunYCuanhojBWHqaSn/lvczl9eBgHEPKMldkU/g7IhSfiVgLm+KjPuT7v7qEgOET3FfpNq6tbmKvcCLTn6NDjASZgTDAK+xD1wD8cl2yTHnG2KvDAIoIOgysVyeryaJiUhIha0B5KQAgKVycqpECsZdtuf8UHSUMcW+CaHSVqYYYkUjwQzIA0oY6T - -OUJG6BBuydXWLIZmmKQMKQmKeaYOhKaeyWQkGGKZeyeWfgtgFCia0KTnoZlKXGKfaKalKQYypbvnf2gGurXMp6KQUYDdMGggMHgOw0IATC5iXWQBGYIeKb6CW7uF0OGu+BMcE+yVzyaQOsrya8BD0cmWKYODhU+JIri1KRZmG1KfuyP/gLfQqa2EclKVKU6KeEqK/WBInPWKeRfPURogKXlKYdqgVKZjuLbyb+kfbyUb6EByertu+MMvsj+KUkjH - -+KUAKTVQJtKSBybNgKYgtgKaklL5vO2qhEyBNKWSUIWkDlCRYKH4KcRMBmChigSNKXGmPlPm+gS9KaQKSWODZsIYKSfiJmZAwlj9KUErj+8gTyPVKXSSEk+E1KTV2O1NNdKe8hKmoX/KOlKeBKb6KXTyRsKStKa+QvlKdopGuoHmKfy6oFyZkSlaKdtUetKZHgDjKQFyeGcZUSdkyUWSbUyggIsQSrmyYm/N7LInXBnXL/TlNiuJ0Z8frdPlOMe6 - -ydV/vyOsxsXhVpB2garoGIbdPkjUa8kbIMZ3TE8kdmHvqnrmHgb1ouGidkYdKOufqasWZxK/vlXZvB9FuEiLXjuyiVsk+COfPNtoF8JjccYW7l5nL+8A6MO8AMwAAlLESft87G10jQZrV6mWSsEnPJtjQOHw7O9AHapNe3KXEGxWhniIq+L+WBSwjdER2AKtnhbeIm4G1IlOyZNMfSkdNMS9ES2jG0AIDfnlvqNyPMipiNsk7jsim36Od8cPNAEo - -Yf0XBEZgJgbvpsgXh1PQ4Ew4kSeH1CBvgJfgZpgraceSEH3WFygCFeHEip7jJRiHKptQyBkIOggMnnNeUToJIqiEoIF1IEK9KnQo8gg0oAkgD2MCEOAfgGOQF38EQiLhrlWovIUnYAi6Yamqi3KR2QG3KeqEoKwE7KeaxHEirPFHSSlXKZgFKEUoQNiqrIQ4KXUGugA5oOHBCl0En0HJ/IQNg/Eqj5gIDuBUX8rOnAGNwMnKU5rmdgNnABqWmpgG - -9Aj53AaoEBkY16mVoED2B+kI8+kEKjuIr3ipsgHNcDY3K7Qd1gB7KXXXl7KXFkTL7PjLIm3GfQPO3ED2FxrI0VuiyB+wEhdN6wDtjo+iIQYagwMtnKbHImsP0UIOCHaSfXEanLulSCw1MDBIQTC5+pmCc6cGVUIkBMUToACg6pALSpWQLbYtkCMT2ifBGFWrDTM13ob+DVmAK7EkApsuGkCCuwUoChaAhbWKfFAUTlUEAfEAyyM43PQXHtlJdYD3 - -WHU0lxCFafEwqVCccQ0FikGwqdgihGWKw3Ef2kq7qbIScZriUMQOqj9twShlIIPyhtUhKUFxcdbLjFIG6iVGyd0ZGXycGiQCWiTeGGyaI4HjIvA1NREFEGLSQAu8f9ipU8eNoiukAgiBu8XmFPNwBTeBO8ec8NNondqPrsAgKnYqXEFOmcdDWsP7s6ibGyTSAU4mkscFLIV3usb8g4+ESVNifEmgPpiDesGWSDmUBeEuYehGOg02K2wkncBrgoP7 - -On+mb3lgwuXSrHGvWZr1MZbeN8ekDiIvKRLQHZAPmgYFKe1dtOyXjsQwbjDyawiQ91nlvp5Cep9CkCV2gLRCL7DgvYTGocvRLqhPqKV/RlvKaouGkZjPBpScbiwiGkKE+K8/K/tNHsez9D5tA3+EogILCWLyMBrIZILRwkitn1GC2MZ6TsLQgWsMWvgbvi4cvsQA2sDmlKvxPmID1oJwVpCyRkqauRCvKRImkE4CkqSsqVMkGsqcvKbewiG0aQ8W - -W9jKShXyc88lXyY29mkLsAiSkLh/2M29lnlJFAqOSaJgM7XMYun54Q9wp10mgVhPRreEqoQJoAGLINXGGEwH7uA3KDSuDgkBdAFIkE0OBe3LVgeOgDHSkYVhnmj0qW71I4YPTkcDyT0QZCeIsJsZyUDruDSbjsVNMRb/j1QawiWW4T5Eb4nDvWOUqRRgK1yMN7NHKbZyPGodkCZ04YSQKfKRF4OfKZDcInKTvKWqkFsgIv4HSqUBkW2rL3avqOMT - -uDgQvMqY8sAXKdh5P5CXzdpXKTMptQDt2UHaPn3KZsUaPyWE8KXKamiOXKZ5kM6UArgOIAcz6nGAlOxCqWsDSlLTJKqfnHJ4vEFkEZGhHzjklAFwIa4F+BFKqdQJORMVqqRUGFU3HeasWcukqmUrkm2PSUGbfFmFIXyasEHrIlcqQ6cIULvG8RPzNRvpGiW/YXd6kUCH7JkjkXLsVHwVJ5mDom/kEcAO2znbkM4ANQ7HpEbjKFmUB0SZhZCDHKux - -KXAHquAkiW6jOMmksQAAgOUgPlyh1QGqhFHkKe+Ll+la6F2+iKtGLEcsyWiqXSkeb/r27qCQawiQe4XlvsKYGGYm6MfNVFIkM9MNHKUFQnTsRjSQaKY0qUnKT0OHvKaunO0qamkIAnAgdDMqV2xJeTp7yS9cDyqUOOPAYdewtnKatoLXYLAmHIBMNOP7THG0ouShVptJEPMcR/QcdSEZGtOOjllBLRMkdM4isNAIUkNZBDHgEIqfiAmDuFllMwgI - -4cr3sEZBEMqXQ+M8jlJFHzAB66iTPlhjDuqRwqS2con5h9sEt8Cp4KVwCksQPAJ/KV6hHCLDrLJq0HeEEh9gbEZxqFOqa/Af4eqN/PgqcGSCfBEQnNwcHsqaZ/M1GgixEKApp1F8yEyqT/GvSqayqXgvOz1H7CqoulZguy4IBqfuYsBqYiiiroKbGmNiHZifogNhqdVILhqREzvhqbaTOVxCiodviRo+O0LnSorDblD0U/RJIqbNONIqbtopDWvg - -8aI4KDWlmmLilJqxOaVgS4uMZBPZNXFig8T2sByDgmsPSDozbqeaGkvJO8QQxHLmH8ILNogkfGDZhzvq1wA4XsTEbEUWqhGWyQuQUJBsLZIa6iwEAgAKFDnWgGvBMK1IQAGOmOEciYIc8QYqIBOqS0jPMQL7DBjIKpaCqgDsePzUWYMKB6Gj8AAEsTPm8FIqJlhWsv/gicWDSdniQkSXOcdDyYqKdf8Qd/hMns4ynjJKEjkjPACYKCONUqacyQz1 - -Halu/8bqLMyqc0qSnKfnwL2qWxeFyqcmyIlqbvKajHJQbGnKdZpMM5tVccvwJlqQyqR7TlksNKCbyqSOqX7UmOqfTSEKhH/+P01EsIq6gAE3k7MHIBKsKPHAGjhhvqPqqeqqZE8YuwCQCEiqbPOKSaB1qZ9kBqqUTFLQqfTSDdOGJmjqQAMgGjSW+UB30NAalkIBfSgAobs0cJlNXKUsgMaLkyCMAqSezo+iD5/FBqa5+BwGkgHtDHLr0MSgIhqe - -fgHXEcT0AP0HtqYBZFKcPjakOqQ/QBVqciknRMLyEiJCC/0a0iNdqZRiEyNA5BPdqUi0gXBOX8clXpX8ZGcTC4nufmulkfCR6RifCcA0lf5gOZKaiX2STrVBDqaG8f7hl2CUZyLHcvSlqpURd2tp4Wa4fpAK/SpNMjcSkpmhmkZpqYWJih2gnUKVYpEtqHVDNFlT4dU1JdqgFnoafs8QU5dPsmBpjHlzBe3CROGskOH/MWrgOSEVqShqc8Xj7KQM - -cfkqT4boUqdf8dL4TyMXp5kRGnM2JELGCgu78Ub8XkSXu7EG1PFqW+SCzqS0qfq5NLqclqc3UUMqs/wAZke/TA9wiIABKEk7kMITrw3EPjMZKANNiSVB5CGWkXPUQGMMmAvgStYsL2ceqCiggkWkNNsNjml7FmIVJK1mofmHkH/KUr0AAqZniRu4dZkZvycBSXnibPsVZye/4VpAbjALL5sp2MZ/O+9E9oLMcTFqbYzFuycMYXYkWlQKlqZyqVdT - -IPJkSeDKYg6aFBcVHqUhqSyqTLqdLYNtqRsqQxqC9qQ9AMXKYiIBnqQcqVCnKKqVEyjqPNBolVqYnqd8UGqqYNqV1qW6YNHqXMqbHqXdCCuqVVgAloMHgNLqXvGIf+CQCJAYHWamOsjDGE+MMOqTAQAOJLSUv4YNxCr6LMaqcqqZ86HeqRpyF2CqaQCssiNqbRplvmO3qTNwOF4FWkcZqNAam1lKEAqSqu1qXR+J1qZcOk+qUuHD62hbAOPKVdwJ - -PKbXKRVUOdqUAkSISSn0oemHlqdMxP/6mfqSXsBfqdw+FSqSdqRfKetIs+qfvqV7AGMUPnqRJKi2MdMSgigF9qdyqQsTD5dEPgKHCcbEDP4qkNFdqYAabeRMAaYp8a3AT88H1qX2CNeBvSVKe+Gq/D3qbZ0jdqf3qUdqahLHAIKIgBKqQNqeXUDIPBOyNPYE5MvyxE0RFi3LNqWe4kAks3KY6WP3KVTAoPKdTAAo3PJZsmQKMkgvqfsAow9OZIIr - -YMPKQT4KPKWI4BPqX3OGJ/JKEQ+RD/pFagP0yFXkgl9GeqV3cG1rLuMJL0IxvNJ5DWzMK1s5qQYIK5qWSQYoqFS7DXipV0vIaeIaUoadoXJdjGaMSClMLkCVjBRKVmSYHYWcEL2YdRCFXfhBXt8suEBBOSXF4BmySfyp9qF28QEydbNImEcGyfOUlw7vLhIA8ev9ugsdAxPCKR3rOjxoDkQpsXJsSd9DcMSedsAMjlrhSMlS0aIksN0GrktsnrWq - -n3yt3yg6cNnyYhujl8UDLtibN9ARnsLl8akaarhkrqU4RqTXq99PCXqTGl3cgkBJ5HjIaXXqNTrM2Bp9sbpHFpkk0KKYkkdPPeElEwJ9BvQIB/kOtXOECi0AP0jGwEEe3OuwKHcXJsoOIsyuLZqdypKObCJWB+UsQqSEtlmtHbNtLWp3KXAqXFGiiqXjYeU4UBSSFKUCCdzqSCCU0EbiqdGTs44OnDoCzIGkKQiccyYzcSOiaTrDJppLqRlqSnqU - -lqUY9FLqUcacnKfxhI0qbMqUd8FFfgWolfqdQVDqxBGfJcaX2qelqW3+EQaX/+hujvpTMYomXqURTvnKWVqX3qW9qdokPnqaTkiChhPKbAGFtGJPqECaa2ohTRpNqVMaD8+g+gt8aROqf1qVvqVXqe8Mi2qchqS+4IVRpXqeXUBygP9KX8aegaVwgEiafShCiaeNfOz9JKJjqqdV0bBiqXpMXqTkNlfqLPqahvGA4L8ab3qegaQCab1SOQaTeqQt - -qW1KHLqR/VLvqZFmE9rMsZJ/qc5EEvKaZ/PmgV2fsACjF0a+qdndCRqTOqbK+jyaeKaY4RnqqciaeXUJJjiSshi6BtqfWunR8Yk+J+qSCkGFjI8gj5ICxrK+gdCRh+qS8CSsxDuEHSafQqe+4oqqb0qXCqX0WKfAHgaTFwLVSm9xIqabSgJJjgKqQ6zIuqT+yXWYFKaQiULK+qpaP9ONVqXnKXPwE/qdgabSoC3qWcacVqVFpm8aaTgOYeJYogia - -TVqQSaHVqSQkG96nM6nLZI02OsqQXqVlOruqZCWKw3DPgtnqbVoQPqfeqYAGjmaXiaZRiASab1SvJEYl4YWHvNTh+2qS0V1XgtSvAZig7hfCSyMm2VPd9rNiak0ShaN8KV8Kb/aktyRGuli6pR0qIRhYybG+L0Lu7hhq7kZyKEXsTWjaRrejs5LHDqWdKG5UfL+iA6oT7ldcW1Urx7p2Sfx7kGyQS9kkyS0yjT9vA9sTWiivtulgkAYiJAKdsN8F - -O8onUA/1Fi5BCHBR9rlVHxJIaoc6im2Dom4f+vDixIAaZ4McCkPn3DceDDsMHzoYwA3xLOuqiuNxWjyQF/nFSQqygHECQXiUBETEMfMiot3Cd/kPLB8WFaFqLqfbTuMYG9QGg+rlqfcacWCoXYLXqdfYuHAAvKYKaZkqSvKaGaWUhDHqWhaf4UEXqQSSBOCVEONeBhSROGkH1IKeqfSLOeqZIaf/oBuqXuycXjEvJKvqeKMFQohhXLvinGyXzhGc - -mD46utqW9OqIzqzykcGE2Jn3yCBiSIkIRZH6aQ6aLKIIJQsErCgMAJMK+YMMaZ5qb/NFJQosqXN5FbRBpAJPSSkpLyaQX0EM4EASieULuIPnHBZToCLltKbixOKxEHrsIaRzrKhKXm/o3qa3AM3qc1ikO/JfUOcyOS7r30AhadA6E3UsWYtkzCJyLr0Mo0d1XtSijOqWuLo97kKRp8oDGalhqVxEEBqcbULOxN+BLCSP5ac6XFjUC4YnuCbikCaS - -HYctflNLhORPMdmI36OpMjI4ATJFJRJrcKFcVykGM9Ic8W9QClaUqkFfiLbim5qTI4LZwPrFoYmtQppJMkKYN9enIINRydkzMagBB4OaJgSirRyXiipXsLWaCvVv4vAT/HFOFJEZAVj6sZUrBS0P6sSdyXX/rUaLequWwm54FvAaKJMwAIytE00oqlEuGAa0TebtgkNN0AdIAdgMv8dMgBjABJ+DM2F3YZ6KkMvFTMITgn7XIJ+jAqXVIJTmOyMe - -zqcicZzqQykaWqdf8d5Edv7CmsDl+gHqX5JCVFByRGjybxfuMYH3jkQSdk7jX0FyaRIiUJEncadA6G1NAQkChaf2qRGaRhaWmaSKae9aU7IM8afXqf75AmaVNqXCacnqThaXXqXhaZvqUSadiabg3k8aWlqRDaQoFh5PL7CsMDBldKgaYXKc6ceH8HpaSBycJCL3eIqqWSaTLUEAyV7FgzCcxaTqaaAaY0KHVQFtZimqUTaR3YXcUB9qX/qZp4HD - -jpoaSMqcVGqpaXKaR/qfKCHaaXGQMOAT+qcZonzkIlpv59LmaWn6sOYiQqZx4GLaVEEmOgl2qXCgOJaXvqXyadiAQKqcd8GCaatqdp/qzaWGwOzaQFaQymDhqcFaXXJLqaWAafTaaTyF6aZ06r08QWaaw3IEsXAmqCaTXKZraREyFDaXPAGwaAKaZ9QEKaVkqRGEnsXEfqWCadX0K44fHqTnKT8aYcadvKanqfxQb5oNPYJ3UD5tCLAqcacHacca - -Q3RFiadKqQa0pzaUWLMq/JCafniozacooLt7gqaUjac6aek1j/qUB+DraSxEAaqEnadRab8hISit9mEkqptLlwNvXKQIXMfJLdcmXaU83qRui1xtXaRKvCRTp/qPXaec5A6SCfwuGkWjbAZnlA9q2ETpHuO3LaiScqbjmHtUpQ7jmEXlstYaWnms32COyjGuvMtJJEaP5iT/EGRmhaJzhqmJlj9nJsufysmEWc8rA8bfCX6ukVITqUXVKloXiDlg - -rNsvYu90MVrhfTiEabasWqidjEf1Sf+fHoCeG8YUySlohTmJISqwEnLkMmyTYdBqUXW+l95t8fIZ4EU/rihGfUevZPngA9wkWuhDwNostNRAL0MvBFahPJMLOHllCn1IVhTpUmN3gAO0IMoJ3znM3CIiBR6PB3FioJVLKxaVv8fxht3ngtNv+QBn6OfqaZCjkqZjdhzqRiqSWqViqdf8W9Ee5PmgwAmrOFqXDpl2iLriPWqZzCjeWkGaefKRt/Oy - -qa2qdJvOhJq6aQ/Ke+4IDCALaZ0gAqaZlgNK6CfFtucMXaX9gBqaV0fINIZSxCvqeQJkxaW6/EnqXDuHY4JPmMk+CD5G3aSpJg3aUspPUcFllFmcDg6YjCjzaS+qfKaQFODo6Y2fo8YvKQO3aWowJ3afy8UbDEg6ZphD4ipHqOnadJHDyhqI0JwVjNoI8QMfcvuyP01EBQgx4ln5r4+FI6e46d38nLZG7uikiVHadY6ZmQLY6foGgMqWSRDY6UHD - -pE6X9aWDaWjaQjadGaMo6RE6ToTPE6XDaahaY1WvSJm/LsvaSmJr1iYj9hg7vk6VMeC1iVjqWUtNEafh/MxqVClF99ou8au8cu8dh4JSinzFG7sJzvrYqayJpD9lDqamwn0zD22HskAe8TTIPPxH7Oh1wErERwkfk0ffiZw8a+hIvMAjKLmgqwxDLIAHkBWgDtvpb6sAdmokKfcO7Cq2WO+8Y2amRTAQFMseqr0DwqebHnqwAQOMQrqxYMySBIEB - -nruvyW7qYwifMabOyedaSCCQYkbZyWTTh4QCgHgoKrkwECWrkSTBaSBKLkDgcaRxNK3qYyqaVBKTaauqbnSe2TB9abI6QtVM+KCNAIo6Siwt9aRnKb9aU+jFsqcsqbmYK7abDgr2GJJKDX2l4gDKDP2Cs9IHfKdnPNwwAtwEAKUa0TylMlihfRFnaWXKYLaVirETIBUJOnEoJaQeqb38KY6f70gEro6gPDCvKSR/0GpKo46YVAIZ8mPrgc6bLJDF - -0J0fsSEBMaYdaZRvFEJnS6cErpjAHgqUWQKnfD5cCCWK9xCS6RDVG5MBQnNs6Sb8VGLAVvJjTGsEIp+m3gJ+sp4omlEeRIjurBjMLoacUKNWIEK6V2wojuB6oiFaRgqai6S/ETJXB5qUfwBz9LBvB+aQZGF7Ql1Pu9qSVnvh1KyoqFKla6VJADa6dmMs5qdg6ckgknymhqUIwGopCUwU7aZjmv2tnWCPXCVMgEbWDjfkedJGaQi6a8aN0EjzHp4Z - -P8+HUahG6SQaZ8adhcNIabXZGeaHZ+CG0eiirNUhtCQkfIGiUvyvwlOnybNCfPyl/gL6iaVIf6iSAiZkLpVIeVZPyDrc8h+4Kvyk0LiQ0naulM8AAKv9qLGyUnERDfI85LNKrnvGg9pQkcVFJeXnuXm1Scb+pEUbPNGA8aUXJKtqpvrJvuOyqKth4aRdivrVmw3BxzAkYQNaQfoVMMMwAEF+kDTPu3DEwPTsnVghUvJq/lOAJi8rA6bdfraBOJEN - -2DNQ4CyaUsTLNABjmoBAtn6EyMeeFoeVIQitPpCKbDgPKIJkTDJmqZQWHKKadaf7KWzkSQ5DyJEEOiwPEGcXfBkwXBwophYNHKfeNnCGgC6XClmB6bDaRyqfDaQOqYCaZzWO8acNXgTZP9aeLcoyaQMZNblOWmAlXv66UmaYZoOHaSeGtWWsqQY0iPHaUS6XEMAI6QQaepXJh6dNqUthOZafRJIcGFQafraaRqYbaWGZOI6R6abB6ZGQPB6QH8bx - -aQWIEzaQLrkHaU0qecaTCnIxacC6UVAJIguC6RAImW6YAtky6RUKZKaYFaQbad/kebjGaafWmCngdCaSyKrCacWpuwqQaLDsikn0AS6QaqasxBncbAaYpwBd0lp6Z1qe8MraaU6aVCkDKqYdgImaUBhtKHM1qV9gPc2J0wpSaZ5ad6aY0sjh6VBUIKkMqQWAoHGjoxaLbUOk6VB6Zk6f86WGaeYhJBQZ2qYFhv0LPDgiJ6Q8aWwQvLaSF6QQovha - -dJ6fR6VCnilqQk6bhaTB6YfqAI6TiaYDgCzqZfmBq8YvqWwaZmhKOEC56SE6bqXik8YbyEPqQ1HIlPEtqcfqSlsGp6XwaS1oDaEWraYBMDXKUiiEMqoUaWU/JqiMUFrGcTKtnTKX84md5hJRkOae6SLbvKcZD/TuJsSdsfL6psNL3aa1wKSKUaWJPfiM7OdsfBXoOCZZUUz/vuMZgYm1+HExhkHkQYrvCX4HjvCbATraboNpuYaY0pDWaXJUbxsa - -DkVjUWdicaDnp4Sxnu71rqIMNkbWvH/Yb6qXPkYy4s0SYA1muGPZzPiVCg2soAHiVM9En/PtgicemuUkEZHORuAEYBe3CrZPC/K+adRoV2Jq46dRYP6iJmxqd1oTaRnaYODoBaZjiT2kYYkUbUEguEBYWnkbEYbI4MB6fnCazcUf0cRnv/WNEYI/Bvc2NMqQF6Vl6QAaYAifWmAhMft2DZ6eRCNiNuZ6TCaQ1qdRqn46Yxcvp6T7lDYGDBaDAKl3 - -NEyBATwIcuKNqVSiGMKtsONE4D4cDz2g46Zx6bD6TbEZUsuD6cajEbUBY/jD6dJHNx6TGCBL6dI6R46QBzoalPpaeWKbOfH9qYJlD6XJdcfvaWf0gN6XfbMgCIehtIEMehiUHkoIXKVtV0DvktHIS4SW5vmTQC6MGSLDAAPNFAYrIsANT4fEDOGdMHmjGjMuZh9yrsKBZ3LNoBe3BqxO82JVHApYbewWp6ftwLE6b3jnpyVxaS+6aDSX0cb5qXkq - -WQ6aV7oFqTnIgxbDUZn3OHY/J6JN58osQDccC5yTqKV1oIDEXHKUeUeB6QF6RUAhK7J86ec8Rw6eiaVIYFnKVd3OOqRAINHabx6ac5EPbGl2FT6VHeAzAG4SNLqRX6XRWPJ6bz6a+2FeqUC6dbCkJ6YGaYX6e36T1JhH6TjlqYgkxMMKiCkgN56QblCP6ZtqaT6V3IuT6YLlj36VTabu1CKqXF6f7TBnEpVobi8dzrPSado4IZ6cSaexWD1qeBuG - -A2HUspBvG+etI6ZXskimvOqUKqSBTJI6Wf6Y8QBf6R56cE6ZHaUV6fL6fvFhD6clEIEPEE6RHaXh6cYyVweu3ciw9vGzjfTuWERqDv99iWEUcqSfzG4dMmJuP5qvaa0XOwSq9Lq0fL1Ul2qvlILIqYjWvvyrDWtxcY6rop6vSwSonDqSIT6le3lgMmk2lmwQ0ydb6RUACmWK0aHiRJHuL/kBQ1AJJN4sMFALOHrajiUAdmjCqJmqrLoKY7SbYSle - -iM1Yvu9ioflv6fnOGQKYEMemqc+6aP6fD6SeTsK1BBSW+EmsSeGOCJpnJIC4LJj6denvUqW9aZSqYP6Q36RZxgm6R8aeVPimaSNmPsqcCacIvObaceiS40OR6TOfPGaRZ6WjSTAEB0amp6XuqeeIKp1kp6fVqRJYB0arqmABJBKvAnfO5AffKerkHw6SzaenvGJgAuqfunmX6anqUP6aXaaqadxaWtYMJ6ZwXIhaU5aXa6RMqT7rj4gHraY56SPm - -LgLmyafNqXZaU1qWv6U56YC6dhMAkGe+VnoSbRvrYydYyQkfF3zO/gN6ib9LnzhJS0BiiE7sH9LsUGY7sNdKh/arj8qIwKGXGGiXdCbX4RaiUquiZ0UeoYFAPydoTyUeadrKcBahwANE2CAUCi5KW4X8ENA2tfuLGSkBloH1nfTDZkiBeK5vI/4eR2AFnD5EAy+OAVMzqRN4P0gnDJCFnHHMrGaSqYm+6XH6X97u2iY/ImUxt/unueIb8XM2OhEg - -t+EI4OfyRqFt/KWDgKB6YsGUI4HUtJE3KcaZp+tcGVZEdhab56QDaXcGc4GgT6R3UhHTFX6f6aW8iuDuPj6fDGB8Gb6aQnqeWzFEpq3Po5ol1PNMSX5LJHnkXsdyActnG0MH5QhpqQ1wRH+i0AFJJFtxEjLg0AKoQJUAJuAIkAECEJAWLMfJoAEZJl6AZfaIMWOGAlLcYD6U5sdHTGM0KD6SBkJFAAFrIZOOuTu6ody6en2qkMsIGfqllA1vXfMx - -ikcyWsQgoKjVdu9mMB6Y6sJcGfcGe8GWrPoCGQHaYiafPwjh+p0gqRtL+Wv7adX6aC6fZaRKGTXglKGbsqXapLh6W56aO8IgaUAaRT6SGEAV6c/6fh6Q56dOqSkGenqSqGa56Zbpo2Kuz9IQTB1BI8SZl6R7NCwaXf6SzQk8GVcaS8GcV6eE6aH6QC+mC6ae7MDKKF6YLXCY6dPWGY6QMSlf6fMiR0gBRaYzeD7rtS6TAaRx5t/KQ1PlpBCk6a6G - -fp7DSGSRofSaQwqfimjGGa0IE2NE+inxaW73Pe4AZdl7aUFxIm8nRgjyaWG0izgH8ERziHj6UsGTcGUraXnVDzasWGQIgm36Q36SqaRmqaP6YhqTHaXh1H4GWtqQEGZH6WvUnWCSn7BNEauXjXfgdPnTSB9Rii5qXyVrItl8QUGOSbNjIklXHT8uz8sUGIz8nT8uOGQz8pOGS1PBgksbUFgkh44KDQG1PE1Mnj8g1MrnPClstnPFmsJ+aDEcR+ju - -k0TD0YCWvQfpmIUslrVcCslrfiXOCeE4egAJqcm2MqwqBQADzoeU4NzQIT3MakuNFJO+PDcV37FpwGKQIkcnHKDBWID6S7TLskBzcbA4LAdmIIA4GVPSDTDvxSgJ6X36WJZBsGX7KZiqZ7Qb1QTU7vlnHJ/HvwESzns0qUGgjisB6dTSJcGc2GfX6cAEa8aXB6VGaYi6SxqlWkK2Sgq8U8GZw6ST6bF6eYhH9gLkrtCARLaXg+ph6aYGS5/l46U8 - -QAx4pfniHwixGTRZLp6R2NnAaQZ6X2in5zFGjpRGUbabTaeF0RkIY/6cQaWoGWnaSL6bL6WL6dEiLWGW/LEv6WvqSv6UdqW8Gf8GbqXML6aaQPJGTiUT3qfP6cgaR4QcbaXTaUi1IZ8LoGbJ6XG4If6QJGSz6c+dAYGYSqkp6d46TuPNI6HZGY4rrjaeVqSHEeZGT6aTKGfTSDX6QgaZAaQv6WWRNaGZN/AP6YKGZpGVGWkFGeS6booKWGQ8GR3U - -miaSyqTRGSG0XcKfmSUoqQoqWbIstIDaqQnzE4yauqpg7sFNJA8RUya7GLkylx7ldCZG+MVGcLUFJsoUyW2aQeZKEcfqtv2Fnj9t1iSvaUU6W3Xp9Ws6SKW9hAGa+PJJkomzm5+lAeHXmjAVl5nhDwOZKLKWiCqKU4K+hNfeHTQCMTHoYvwImYocGMDuPBCmCcfMaPLFCKZ/DFXLu+tpGar6USCcNsqnaSyGWJtliGa2DFdFmEOgkekhyuyFiWKT - -fUcFoKPSZh8esHpWUYyIRl6Ul6XMqUWPMEGYazI5aWJ6ajaZyqbdGVCysJGYRKKpQkOhNV6UhVC1oF/AZB6Zw6RiaYHCUOIDXaa3aXwQmsGfWYitGUzaUSCfKGV8GbnKeDGTL6cy6VW6iKGeOqXGaSG0cnPNEGFdKsWsPflCqgM7LgCkJsgEErvddFvpOJgMIyVS1L0ztRKYDPoIIsiCspJhCjgaKqtXn1NiJVnw9t+Im2bAcGqK8LMRJo5mJAfX - -nthUXsNG+aXM3PTqfteDvsunfDR2izAAdaUyGbjiaEwma6aMbvQ5JtGYzLnQiC/SOfgmsUlpuswQTpoKeFMdGeSoBtVChMb6aenKaJ6fhSVuMKoGeSbPyyaR6j6GaGGUavATyEh6S9GfQmhJ6bt7vl6UDaVoGWwLh1QM4LELVFmsriaUyaZRiJ4bDJaea6bxivw6dhYJuqW5KZMYvtaRPWCLGVsSuYGVmaXjiNHZly6bAqTy6aLGbVBJ36RBblt8 - -r+qaMaaZSkv6XNqUPkBXgEAqUEoMWTM0RP3UqpaYWGQTkJFGTaoHI6YJ6fh7vg6ci6ffqSDMfYGSwgC3aXsgirAAgyua6YzTKC4YbGRYYsbGaa6dXGRLGeZwJI6SOQO22P/NK/qaYwJJaTunplWFR6aELEIBInGRQaUOsKqqQI6dO3m2pNHGbv6XysC5GUlGpBvDVtt/KSiyWbackGbEGYfoFGsN7GZCkOi6bmGY/KboKJ5GSKseT1Lw6ZZpFbGW - -7aZhaemaQOxi4GZi6YfGZVqTDGYHaZJiufGXmGTGadfGWKGZXxsTMQeMWGamqwtHPI0ykKtkwErrSvwsogkvgkVUFIwTC9ljG2Fo4BfPhnsMg8RNosMFPCkFcgEWWh2RPyis28V4yq28dxyY9qHxyc6SKPaZxvjN5M4aaJ7tNCcw7jUzIJcZ0fG+ekNiZtiQQmdtiSicPqDtAYsx0SeTHUTC7vJmhrK0buyp90M0YCeqk6+KjPoMAEhTFsGg+3sk - -2I0xvR1ADTPeEqCqLjKFy5h04EpxGK5GGwBe3J0im6+FdbCBmCOiFHgH0uOqUEqIFNwT9roeiSFzBdqMLxvBGcWqfH6Zc6Vg4gDGDuSKUGnEiq91r7dmrbq0tNHKexmsisU2qQzsZ4As4mF5KmDaV0KZT8VksDdwL7AE5ipZMdKGPkMm2TkQtFH4d6IJT4AZLMOsXjkjX8D/EFtAPhXG5Mq1uKkgL4pDdznYyMnohVBO0EH4meC8W/RtzjBUCLe0 - -qEmT4me51LNZiYQIlwKRqdi8HUaviUfw+K5IERNmbXurACuWFsNLP+tAkBggPnME7AuqpLaBG5zqcMMsxO3koUmTImelvJEUKAgP4KX6aY74VuMOkmUUmbImV/xChIm8RotVCa6QUmdImfiBDUmdLgOl1EMEmSiilyWF8lUmb0mURNnqMkt+HCgMhaJZMd0mbgBJkmeqpJQkP7OGxkDI3MMmdzCM0mdUmeMmQMmRH2EMmYccXKMc13owfoSYY4mm - -cvt/Kr4aYsyPVSdI7gDqcbtEjqTC0km7vE/ppsbGHtr6SOEa9kQKeCC6NjWu9kSDqcNSgwsZQJjyClTwGH0Towi7iTpRl//p0GRH+nmQh5ABwxMP8dgAIaocAisQAEjKMhOMv6P9iby9q8xMcoF+luabBe3NaoqGsAGPALGW/sKpANnoVaDid3gzQkuwDfJI8QKdGYj8X8CTH6b7KaomVsGYsaRomVWnpJtnquMYEutNFH/N4xN9EYYmXQ0DeWnE - -mQ8mAkmUB9h43DAmk3Nmr4fQ/HqivOmLF2r3SR78Z9gK/WAHAqGqA0wt4mZymZR2p4bLLQBsyMxzGJHOngrMYPTGucXK5oSFZHpGuaSoyhOQKZ9IoBsCsgYqcRjAHjdH+YOEgYR0CqmXqma3gHC9DimUamboipogTYmfiCcSmRXFs16aoXpViYP7tCKZ7VNFold0QGyaktHD4R5NsTPocPpdQbC8hAoCogHCcbCkDekchoYNaZQxEkAI+6NxaKwA - -JU4PK0GKoPMymYbrUAFmgby9ruCWpwG8FogvnM3NCAMt8DaONeJOwZuV0KUIEBQNm/jFGOjMEpCDCoAJEHRTic6Qh3nMSeZyZ7qaBSdLGS60c0ESFLHKljica93ir2JxtIYmTv5PIGSs7o1nhymcssrKmaPqCxcqDkNXIZJ+HiQQIGH0GLBbn+FCBKaTCrjkHG+L9aGDIOdZpxkSXDExwIYXNw+H2meEmb/WNkmaOQNx4mKgAgotKmf2mREmQdLs - -biO4gnEVh8CqBYqMmfMmV/xHYkJp1GRmBuBEoghemcUmSJFiJiea+PGAtB0UrCHEYeYtGySIYbJvoLrMadOBWmU9KcWCAWmV4YLOOAW/r+meWmQg9ABmUtIkBmU6oaBTH+oGBmQ/dHCpD68bP4X68d1XnQsVkgWt6ah5o80CGHspsTfaY9LtjVmOaUi5qeXudUk9kZwaMoEfXcvCYSjqb60gtWs+pHScBbyXk0SlgQU0eZsXEwOj6LcAFUnA04Dp - -DDTEdiKKK1Gc3jaBK8rDL8Cq4qP0WyPKImcYaOImdq1OOiDAxKVdJjhH16lumVimF1AIMSVLGTZbgkDBubPKrKIFnXMaueDT4vsNIYmVoFK9aT2mQwKbYmWOjpnCGP8vumRumVxUotgLtBDBsBrAEZmem/AemevOC/EC74LwOv9EmkAnZmcYwABBserLpgg+mUggAvmM5mU9sAEiG5mQSaMTykDeujOA8+HameZme0pqKUNvJNqFL7Ai+KFUVOum - -RAQuDQFP6gbIH5hIraBS2C40Ch+lc8GKvMF3PKmZuvFsQWTbC6CGE9upYHVJPFuh7OKlEZogHDUDLzG4mcccBLgJ4mSBroamf07MamXEgb76NRiflmL6Aj0VFamXVmTamW+xFamWt+PISbSgGRoMVmTWqBYgGVmcWYsASBCgL3jt68Uv6uewIEmQKgDCohCcvJvMkmbj0L9SjEioHjD3EhtdMg6U1QMrEii6dUgqumdRXNhKUKmXJWBYZPGsWSkJ - -15t5QrMSjymWmCoXKbDcH8Jp9IqpISdmbJgsZmXFmdhRnNmSVEAtmaNwOemT0mZemY5AFD4C7sL/YL6SP12B+mTaluZCNWEvhGr7NMvRGG6axHv9mf5uFEvL8xMDmSqCh8tFviRrkU01l5DkiYWdenznvHjl5drycnE0bsLoQmc3yCxvgLhhT4OtCUJvg6cHzvtzvvYRkuGeuGZgkmHtMtmAmJrC0Bm8WE+LuqWlXBlst8kM0GJJMkzrJjGYOIAU - -rl/lCREOyJkvZElge0vIlspyDuJqa4qb6ooPXmbiQOaU3YsJDIM7HOYT73vkCAh9DxvJ+4HJYjz6kkvBJlA9wsNFsJaJpAO/kMJaHAAIoTIcFDeBD1EG7FnPUVZtIFELuBA3hHTqdROF+qmxgsoTllmUtMgdBLlmSEkq7ocx9MTkGiMVWmS+wWZyaXMdvySuUZyMSeiJuAP1QZJtvXmocMJCCV8RM43NW8dFqfCCTfiEwFhcybnkXQZLFmVymSp2 - -usmWMmXdwfnKRIFADmbHcCxqpOiML4H00Fv/jzRC/fDBWPMqIeuOeeE4mQVmdUCoU8cnouJ8Ws6C66AxaUFQKbGks0Em6TAYOowD5maJcDMMgXdmlvGHAmOFmtmaW4I9xFR7FCQOSEEf6pNmYH7MqwPXhGI6ZYYihRJH2glho1mdxKEI8qAEDNqb6IkmQM2nplmWVktbmcz2O0oYG8vKgJrOCvSZHbtL2hwySd5MoinM6srbrzfgRyfyDEacVNmW - -BqQPmSTgtlIPNxIxcnoIO6ZDMBPS2slmUQwDOmauRInGrU0vyDGKmcUDErylPjuJmdJwPXCSezm+qWuFNc8LfiDsoHgvPbmR/0I7mT0gGrwikZoVyrvGCFBB/mQ7mdf/sWFtEpv5UXP4RkFjSll6ui/3GTUDdCTEaZU6RNPELIs34Y34R+4OUgR+PJUgXTbhiUrB/iQ7kMrv5ViEfMUFN28euSW4qV4yfBSmmyQw7vPaYOFsl8Q/ysD/ObHmImHK - -bjowl/9gM4Mp8fRmWE4cooZ2WhTQAJaHVOF6igFvvU1CvyJCThy5pYwYK4magLdJM2nqB2DHidvcAh5IH3CVgL6Ash7C6KRKmduxnxjIlmebSOROkshq7qdWmXMabWmSgSR7mQ6MROWLbDBXnOF+LXgJ7vu/kX9xBT7MdGQc1G/8RHmb7MX9gvdmTHmZgJtHmRJAOLUmwimZgh4lO5me9mY+mWYmcJ8D4WfCkInmWZ1JDmd+mapUg5lqyVFdXilm - -tnmTUgqWsPrGcxXAM0rQqialpXbBJwuYmTA5KdqQZ1vlmUtiEXmYlPHXmaTTgg6ZSSYKmQKsktFhwBDkWatLE8WNZBBUWR+rKI6UTFPZqaKAUgihXSWdmTPON6+EN0eMYGTNNwAqS8epXAFmYncW8gOEih0WRxcBGZqEWUoYMFuFDmUecLyWrcjAalHdmdZmSZmYPmb/YN9seX/HumbMWb4mb/WKfACIgJ3maHSJ3anHmd+4H1asRafpmRZmeFmX - -dAh5mUBkmhQhkWWtmjomG9mXMmTV8HsWekAt4WQdgL4WccWf4WZ5mXBQlImSAsoh7Kz4FcWRkmTcWQvmHamRxsNGRKu8MsWTqKnMWR8QvcWWs6CEWZyQq4WZ4Wa+olEWUxSDEWYOmZexJnKAMYBlmUCWWEmasWZ0NJJYfo4C9ovb5IRgicWRPWDuEA0WSvBk0WU2wNBmXQnrBmU5+AntKCKDegDawSSWRgdDBmcWmev8JSWfZgNSWZA4ItnLdob6 - -SjNdNJDkIOgQ9quEj9gTCfjS/qckVWHrzKRMaoCMRe/vq2MTbqasZLKdgTqccTW8hVFsOCR0FuQTqe/nPAtJ0Q93L68RkhmqWS27PHyda7iwwh8MUHpoxscjUWMEionrUtH6iG6yX8vuPTHyOt/WkvAlckRfiakhn9HihmfxbpqgYJbqIoZpimYYd+pmHMvhwHXciLQsAQYu6Y9iV98KjKDLeLG6En2PjivwfkeQOPIt65JYbjuCXkkIcEDpoJSx - -NC7AsQDfvi6hLQoPF0o2kZFmdUCo9ytJmUB5KaIGhjGP6gpmeyfsuQWV4TlEP2bLhGgzmsSoQBFvYWc2ao2qduyYcUZ9+miWW4WUPhm8Wd8WS8WYEWRtID4WeXmVnqRlEjX4O6slUwmCWbSHLlIKSaGLpDnmQkWekWUEWQ8WW2WcdSC0WakWYaVPVcrCWUqLHi6dUWZKIIXmU8WP9KQcWWFmZZMbrTCUWRHSESiKlmVBUOlmdPgHfETUWYVmYfoB - -sWX7GF3mYsMVf+MkWbymW0WUeWQwZud8FsWX/+L0WWZCP0WUthBOWdBwDmLu2WSNMDKrNOjBMeC+WXymQXah4WYemb/AGlmciWXuWaiWfEmdCWR6YjOWR8WS0IQwClCWQBWQTyCXmQJvGXmX2WU8WdcWa0mc2WaXmb2WdFya8QicWY9waBWTKmXBWTAsj2WRiTFhWdx6EOmQgBCYsGeWfQ4rBWQbjPpyUOkESxCxCH4WahWacWeRGOOgCQ4WlaSm - -qv3gniWXsWaQgNlIN1mbnWFXPqamR2WVCQF2WcNmcb3sy6YFQGWTDsWT8Wb5immwlICMDkJlugDSFJWU2WTcrAiATdmZOVoxWY2WcxWWFchIuspjFegItmTeglxWYoJE9mbpWXR5Gaqa3PurCWuBOZdsCWu5MbH3vJCnskQIjuiSHnsYvegwwrbjj8MSEmrEnpJ0QOmkjRq8kdcfjJzhmNnMsfefhECHnfimNisCTCfsLKfKbrrnNOMaJIDRsQqg - -iJLlCGcgSgQsVjVsrvGS0TPYtNpmXfhVibJsQSKV6XGdkIuMVDuvF8ZJlHZDhftoIoWfgRPkTTIONOnXqJNOrtrqz8RVMSQGYXGBfcq+Mfy4hQ1FnDGyYh+7PA2u+hAwGTpPvLQIbCDViMl7MtaZe3CqNPmDFWYqNOC/mdOhIATIW0Th8DWWWBWcC0LmWXu4ZuAJ+CXQQadHFqstubDR6CmqTSROd8S5jks7k4WaTQSEmdRWdiQlCWcC0F8WS0mX - -0mfnkvtWfFmV+CjwUo+WdgHNXMqdWfRSe4KBuWUTDNg+ttFCsWUghrdWRSWUmKuu+KOvO49B4WQdWRbceKmW/mWDNMvcX9WWNWW24Z1nuNSXKSB8mQMyIOGXX8fuXs3yoeXgx5ihxouPlSofSoSBPsQGQN/tmkb1QpsfFAAMQKkZREWeFAAEVYrw0mZRJ0CHKTFSMZzCq3xMapmyPEfyLk1I6Glw6lpaL/mY9XNo4AAWUgvrC7OlpDXghvhComc+ - -1ohGcfQfsmjTEZgSWE9ApwXgZELqesStDUo9admAW+yQHsVtWZOkcksrtWeyIjhWQnmV/IGnmdkaK5CZ9aYpoHEWbVkgp2MOWcOOBcWcMoJlWD+WVeWZpoFRwEnCKNWbLaQbGRjIHtmWUWZW4P3AUCsMdCjAQCGaOAWf/mR1gCxWbQqiymA9hBc4XTWXbKZAWahqbVmbNABfmTVwLbWVJqfbWQUCdhcFZ5C55CXMLnGWuOKbWaUWdg+jhRgloI3p - -Ep5E46ET7ouWXUWetmczWYKAvDDm2KAeWXkWXU6inWTc0GnWQYCmwMVnlgi6om7vOEsAGQEQqD9m7UJJvpgkVYye2Sd23GJEaP5q1GRP5llGXZcDlGdvlGEcc8PA90WX/sj0T6WSq0VMMAhANQMisGKhTmfsPv6KPRokDpOGBntLjgVJVj0gEzhNQJLSEJI8WyPKN0qxcEjwR4+g4IYFAC/cRL3PC/BJbCvmbHoIVbHNuOzWaT5lSmQn6RomZ2iY - -YkWsQbyvL+CZeXMlsp6OutWf7anCGv+WWerG8WfELlBWcqXg2WUdWfiWfrWfZma5mY3mVaPEpWVpWfuyEBWbLpJ9oCMWZ+mXlzK2pGRWeEPCiWe2WWEWWMWVVWSrWceWbeWT0iBGYKSWUWmbkZOsWTeWcfkPA2RA2aMWVOKYxVOJAEGKudmW0WRpWS/WXsWV+oLrWZXbDMWcCWeiWc+Wbg2a0WaQ2ZCWc9WeBWSEyCQ2W+WbiWc8WcdWfpWIw2Zg - -KcgYIg2ejgCCWCg2StQjlIN3medWeJQpdWXt/Lw2ZsWeg2Rg0KrWR8JtaQNuWUiWf/WZRWV9hpI2bnmUmfAUWQ5mUUWYa4AOWfEWerWQYKbqmQNPBameo2VaWJo2dI2W/WS5mb5mZ/WYSyuw2euqbA2Wg2QI2ZgjBY2XlmQuWbkWVUWf5UHY2W9WasKEXiji4jW5heWXg2WkWWzFBVmeGkC+4DrWVQ2ZOWQTONfmUlmdvWfbQi42cvmTfmeE2WvU - -lTMZ8MRqWb8IWzXu38fqdEk2YH6SxRi/rv8IbktDzKfTMTKbgWNiBoe4toxKYl3r34ZhXhuPlE0U7YfxZmTGWHYfFkg50XD0SOYcskR94Xa4dDPnelha4bWQXg7N5QeV3ibIegqGbIUrJteoWApqZuN4jFzKU67kgHH3fr67tbnMzDMhmfNwqjPgtjpgAKrePwTt1Ia2MliVH4cu4AOuVNbSehjvusl+BOqyB43P6DjitHtgGFGGUxDkSR/xpMho - -xCp6GVZcE7qhMmVgzIm3E8jN+bnZPlBkYtIdPsXWmZZyayGVXMYYkRTNHikLGosnktYmIiMOtWYgmELkWX6Lxii2YDZEHhWQemavAJQ2Q/AdQ2Uw2QBYniWfFcf4mSt2O9OtUmF9KfCDmueB+BBIukRTPPLh5XB58SNNJ42SQ2SLqZZvAilB7CqXpCRWbUEBnWdBaMpvFG5L9gOZUpXWOnWQ42ZUWQxcLUmScqmT1DKYo0mQKmRHWZuWQMQgogEl - -ziMLIL4IYDCceMS2bS2RFAGS2fRcqEcGMKti2Wm1CgkAnCWnGeq6JNIki2aiciTOGjYsZWeKcpa2CiSmZmYw4O0pgsCl/GgEmXC2eLAAi2VLWXQ2SMvCvqZMWSuLifshcogC5FUpK3gJ45qC2SkWa+WRw2VaAiWIcTJDl7hX0Mq2XYmYZmYnmdgMhZmX7cdPJo62QZmZSivqApBWbZWNBWYeup62W62UiQn8Waqmfqme+WaFmX9aKBzL9Qig2Qdk - -GrWaLkIE2WC2akWTi2YWaKxWdnSLvdBxWUFUBOmRPrsjomm1HWCMUIEoODhLjIScGSXVICHoPMupRUF9mWdMMvRFWoAK7F1mcFyQrmpdmVhyU/ahqXN0Wf1QO7IIdqLDmV/mOJQcBxDkmeVYO9OnSzK5RJ3uJ/Qo/Bu1vGUmTNgKYgdhcPK2SkmYVYCO2UgIOUmeO2WTXjpWQq2dCGNvrg9iBdkOOkKdACD1EumYEdEUyMRcROiHj2HJmeSgJu2Z - -TQsumdE9lirKpWRoBEa2XpoJO2S9mYPZGfmbVIMamTx3uUkENrJfmEd0iCWATAJvWW9QG73MdIr91CzAKdHGbgNEGPMWXRWdiWdHZhrCrOmUhETIOM5sJfYG8sUG6O8YTxWRtIHW2WKsREAjdWYPqiDyQ/WbZWMG2YSmaG2Xo2aiIKh2dEWfEWHpmfamWqmfDmc+AXSkEnQmSKEqJsSkGR2YqJqamsqJtDaLJOA+HnSkJ3CJzWGRcR36PikG2BFx - -yd3sAOkJ1oqviHDfFX6OixI28eviGiwr8kB0riB4C06fJqZxcegGYoqVg7uOSZuPPuPGD9BvaTFOLXWYOFoGRq1iaIwIvaap2aBjI1ifAGTYyTd5jkGfjyi9LkvacWScjWuxcUtUtW6chSlULhN3GlGfvlFOSe6iRKUDZ2SoqdZ2WLmNOSTzmPWApW6QLmCW6Ts8H0FFzvus8KTmc3iEuFHJqUgKpnfLRENnsE/iNkGCkaXkGFkaeAmaYqYS0IGe - -KgkqF2XA8fzmWJqYg8V0FJSDloqe9WlvadG8czHFpLkckUM6QxmffiYmdGoQHAAI+kGPjOOTtxYSfsPdSevkdn2N96fDwYn6GsdGvqj/lLxbOegKS8FMxF/sW7SXHAjkQpAbkBEonqGPmXZQM1mWtWcdac+CfKKa+CRsyRomWh3l2iWpRrEuA20fMHlnsNgQCHqaHmc32CTiedGfY8QppiGEBmanwOhsQgxwpNWTKmTGICFmSq2fYmRVtN9Wa7MJ - -MxDbgNB2Re5GQ2bWWapwLI6H/WX66LYNAZWaa8OxmgVZPCrhY2Qg2e/WaY2VmRPkMg7FLxINa6P2WQY2WrWbtIQOKpiWWm8SymOvmdc0by2RAhk/4ID2YsWWd6BFmdhiMyWfscMi3Dg2Ym2Va2Ya8UB2qNWdFZrJwZ2IFB2dfWNXMLors3mStmfRxGoirVaAVgCMvDkUAT2ZB2a92Q3mdeUXxbLD2e42TawfY2djGTS2aZaZlkWD2YE4gXmY42XA - -sSHwtK2SOmT2AkS2dS2R+rBz2SngvtWeSaCo2R/WTtHr2mch2UC2SCWQmuFj2XNcGd2bQ2eQ2XWWSXKRo2XG2Sa6Y6Se/pJ92YVAN92ca2XQ2eo0F42eC2da2d0mcO8A92Xk8vq5Id2YOEN9WWdWU5fmambo2fewLSWSY2RdoOe4XAgFz2VJRASgJ/MWD2aBzEOmUdIi72fAnjy2Xz2e7lO+Ms72RIuj72X6kbCfm/KgoMYLKb9gUKWTk2d+Xhxs - -RIqbUGSKDrLmMHsI4qVOkFF2UDiin2cYqTXFqg8SgkiF2WKohYVrxya06fvlKlGcPygfOMLmS6iXd6JQ8c/adVoo/5qxqaIwIxvgp2QU6dKSpAGYNiSQmUlAkS9qvzMSDic8psnmdwpEcaUyRxnjqtgp7qq7io2GAqvlMWy0X2GfNfopgdGTtJvCpgbl2XwWb6xjPBGEZgvlqgSDNYNZRjVOKI3GGdDq6h1WYbqdROAz4LIgG36Bz4fDEPA4GsaC - -A2DrcG8aB74Lw2UlwLBeOdopObJdmM/gHU3oZuEOwgHScFKUYWe7mREMaYWV7mZCsefQS7uHyOjgSYPjuS8GpQt82U5oL82RL2R0cr62fCWfL2Rd2TPwN5mYUWX5mcw2UxWVtKL3mWFEP3maLju+mSuWX9aGRFNAWfeNjnsKikHb2fXmbidF12J8cjcKNu2bIgKOCiTmNz2X9MlHXnu2bJmXkmUICo9xBf2dt4GbjPrgDf2eEGKbWaCgCl6YkoLQ - -OYkLKeCqGskwOXMEISUXjgJbchtih5Av4Ue7hp1Sb7cvEcV9ipUGT4yfClAcEDFXAQ7tiOA4yS9ioFUd0LCU6jrcEwmYDCY3vB5CIqoFolMiACUprmUIohD0UnIAJv2TrsWZQNv2dHcJNWCXiQkHER5I/iDHCR8/ILGYAwFvmY5mJ5tJ72ci2bxoKaElniYgSajicYscwiWyfrNWakSTM/uJkRpAMTdns0o0oLImXN2ejyb4Ru3LhLWR3MWt/IG2 - -aq2d59E9WQr2QOmfNGCz2TXSfiUWh2b6JNVmSQFB+2bfmSQsSWICL2QEiJUgCybvYOaW2ZPmUxIIH2a4ORrTD12Q4OaUOSO0OUOY1HBkGRX8dPeN2kGV8dV8a2kLjfO2kPjfNfROL8p0LjGxAM4PUOsiwbmupU4DKAHfuLeEsZKN6iokALJydrHhehFIWXgbgZDCtoKKlGaQHw7ELEWSTrdrDgcTgcKj2QloNFZmc2YeiajhK4iv8cUsyWSmR4OT - -niRW0cN2dsGfBEtBLC3IchLGoTpIGUrKI86JXmd82YmmGZwWt2Xa2fCHOT2fb2Y5mdyqagOX3OBiWXoTED2UsWYI2V72RIuoM6eqDNkOTE2aFkMr2VI2YeuHm2YoaeYMuHEkXaSy2Q9WdSCdhPseJOguI5mrCcoSWcUKKx6csSDwOXf2awObzpKIgm42e3sGq2eAYElzhzhLZlFegIU8Fm9Nm2fDQj7YDsOSj4I5KIDWa/mcDWbSOYywPSOdI0Iy - -OWj2Wm+tLgHSObLuOyORFaX/NFiJPUGJvzGtcI3KRbULAmQCkC1Mn1ota6F8kORsU9LnW8ZOVmjfHkru1ogfAFyXqHBoNPNAKhmCuXsINPGAgojkCNPBWSep2VjqajPv4sIQAA4+BBLKcAPntGwAO8ZOmgv2XKKyHOALA4ad7FKfOD0HfmbB7E6gJ1En/5PnDFrTjjUEPjovmUxcoe+mkOXh2RD7gN2asyUN2VDSWcOQ3uOvsGx/gM8OK9twifMH - -g5CcU0N82VqhOymdLWau0oPAJA2VOKW9kmNGG7WRAWSLegsMsAOTBvggObEMaNoMWvhb2a9WRM4l6OQ6iNXWNORLMmekOaXHOKcfPmd6OZWOZ/6f6OXCWbWOWiivgWfWqtVZPVMjnPAeGf2kHl0BQeANPLEnN+/q2Unjgl3INOIN3jIw8o7aH9nEPIAGgLHVK9wvCAF0ACacPgACpMPjQmKIFEYGVIKvQPI3IpBt8cGTeibspSsrVmfe2R1mQH8v - -m2YMgbH7DNWUykZuALDSc0ER4gDZdC9nlEWugCDsyAmOeK9oKkUomupSNYKYcnCdWTr2Zb2ZC2fd2dhQCb2RBWRy+i2OZ8WeCOb92ZCOco2RT2QjoOBvGuFFeFpiOQzSha2ZeWSEXAImuOgH4gKrbkyxuHWQsWfRWTiWQKbmVkvibNyjIZPpJGkRWfRiAamXe2XeuCrAnEGVSOV9gBlgCwbG1mQeOaROQfJOsoF/2m0zNwqUkoCVmYNmYbPBgmsE - -YIWOcPgNJMqCOe92LkOZ0bm60RH2BxEJSOdKVN0gKwgPuOF1mZooPxWdo6T9YfSuEpEGi7u12QW2VMxDISTG2UBzKBOeQsseOWEJLH7J8Oa62aq2QDIgpOSeOTBJG9mUb2b+OcWThqmY/iGiiP9QD4yrEOZG2c5whxOdNmcWHDgOdAOXMYOn8K0IJVmQE2fLWeBOUUWQSWSOWWB4nvdje0PkOZT2R4ypD2RhOSB2VImcZOS36aZObz2Qz2bUWe7s - -EZOdMvCZOeItAnWY42ZmsPxEQaOaG+GfPpc8tUGSuSaGyc0gWUGHqJIqGZyJlGmBcEDOGYuGR6+HUgWnsIqUGZ2ZULlz8qULuPygmums8GgrtSDgPYGilKQkrOGcfiPlOX6iIVOckGC2sEmmOmmFOkNvYvF2b0rjhZP0rp2Tg6cKAiW52anyKTIn6iV52cTmT52U1OTkynvYhB4NAxItiUuac2+qO1rBoX8mTP2eWybeGRAAF31n8HAEwPSALr/B - -UnKjgYQANkmAPBqJYfoYv7zr62mGNM6OcX3IIkL52AQ3EsqZwAvtWRjTtiHE+2d9mX00EyEmeOchGfPsa60c5BPkEa2mVrtlosKadOd8ST4I4WXn6QFcbSjncWZ+OaWOXtVNWOXh2UBOZPuCG2eamcH2aAovDOYBOf62eeavfWQjOZjOT58B92cxvOjSAdmK4ma5Of42QZEF40i9OaACVlmThOUygMEmVRWTr2a9ORoGBpObCOTiXEtKN9WQzOW4 - -ce5ijg2KA5vhBjpCTAxJCvLbSDzOf6xHzOdEmWWzEoQmIoehMHd8Eq4Yr/Cq4XlgjNMj4qejePcqfJvnGEaOSWKtlhvqJvhXWY85NJvok/JePJK0VLhkhVvZDmNpkBfmM1oBAajPm9if7qB7kNzequqIwALHkqS0joYihODGsQjcSfUHGit8CETQtLPjMCFLGtttiCIFCqSECcUORPmcr7tQic2ObOWYGOc7mcj8U/2W7mQsScV4Yn6VsyXlvpAq - -dgSf+wRFqTvuJNxKDOTG+mSqfTsW9aQkORd2QRWbcQrfWXtWTDOQfqgFOY5mcOWYkOT9WRI2RCOUo2UXORAOV+Oa1ehiOcI4bBOddWXnOYZ0MtmaT2e5WNO5FUOSUOf7OZSEucWbSrAJvEUOSW2X7OdRqkomv82T/Gj3OUUAiMQR02R38ZWzqyttnVld9m+XmrNCZnt6ydyVm5MX/iLZWeHzO0EEyJPwqs6eKjPtfpGdxFA1rlVMAipIALQEJdSv - -oAMRWs4+HDCeqMoDIgB4AMiKeUDT3Ah5AiFKA+BuhH7kniWYa8OsCMHWakMmNmXBGY/2bo8c/2RHOSHSecOa4oc0Eak8bqIOtNNJevVZHhZMnOSE7EAObg8JkWZcWbeosd2bgOWo2TATB3mSeWXeWYdUX42VPnpkOZjrqE2YUKLiBJq2H8mBJOUiyAFNpL2RAQuzOf85smIB12UpOY2shTOVixK/OaNmUEnPemSw2Y56DQuTrcLf9odWdUmYwub+ - -2W/OXQua73KIOZOqhuaTTKVRvgrIsRvvdimQmSk0dgmaQmeU6ZEcegWedwpsvgO+rrSRmjPrScCmYy4qMACIAMRjMEHAjKKwAD/9LzBAVnvN4vvuu47vNFhzCFBQMRfr2iELBBOsIg9K7Sbo4WzOcLxtBGQa2dwAtLKcQ6ZRjoN2e+6ZzWbjwecOTZybB8dNsAL6VwVo3qFW1E/KdBaY17vXQplaTpmcrRuL2VAuRcWRuFAiWIHOYh7BoJOd2VNW - -SQuaI2cguSIXMFIlQufT2c4mU42UkufTOS3kivWfnNiyWT6EekYskuRMWZxCYa2YIBukucXOSQuTaoDYudaqmfThqRitqmfaRrhhVflxgVOltUzCBJCzMSAPi3hNPAeiEYE4GxCKjPjCEKwqDzob2gF0AIkDmtOgfTLyJCuAELWMsdjMBGvsVdwIVIPI3OyxPsiWaQDrPFD8TnOWzqSHOWf8V/OeHOcHSWFKecOdzPleObJyEH3JkSRSIe7sE9sK - -cGSOiX1geVvlEOTkCdwQsmOe4WVcuQGmpUSQEfCtoqOytVWXfiTtOWStJNRFsAKQMAQAGPMNSPAtjsEsGxHH5yMuZkQoB4oUwaNs2V8gI6gCDIl7cL/eku4disIA2IiQKw6pmWRi2dCQtc2VZkQYWa7mcgSS/2XbMSTYYzsoJPHzmKDjDs5tkYN3VMnOYQTDfWTcucF9Lt2U62RuOAlXnUOdGIDCWQBOUHOXZAMuJNi2Y5vHAuU5OVT2Wz2Yz2YE - -4oj2bPbNfSsEgAyuUE2bHShKDHTWYhWQiMhnoR6KGXOa35Pq2a+uBROT0cC92e8OV5OafqdE2bxOcEzs8Ocb2VQjO+2QquciWEQuYr2V2fvROVHOstnNpORG2YZmRKudbMqlHu2VlAOao2dDnKC2VyuRIiiixlSueQOdr4qAOa2OR5ObKuRauZj2cVgKd2YP4PquXt2YauRD2b8OYsWQxWShWZpWWOvu8ICTOegucCoVQsIfmXgcAoBN6AmWCnsi - -bt7gjIFwYQWCmPmXGud/QKPNr05IYEaG/CP2QFskUjKs1tkFt2CQk0XZNBA9rZUcH4hZUd40Zudu4nHr6TAkkuUmiokaUZ9BH9kXVKklGRGITNyfG/KkyZDWbC9ndiqhmW0dhAzpAVMN4tqji9BJvNN9AOe/LfDJb6TVWWjWRAAOjQaDwJgACAuHYDiNEL2WuoQG7kHoOtj0rW7gL+JbzDXiiCuV9+Os4vytD+8tCqSQ2ahap2UC/mTzkEffNyit - -9OUxfiDMKUlu7BMg1mn6VUCom4OK9iLWazmpJegHdgdwR+OcXOVXOf7Pph2SjOQ2KFt2f2mdNWeUWX72S4mU8WeFOY2UIxVASOaa0M1FGCEf+ufFOS36Sp7JDnJKuagMNKueBuet2YBuVormguYcuYxCR+0ra2SquYxVNBucauVOmWkmehub+OSp7IKuT4WZPpp6ueSuTHqJauekOHDJiQOUI2SULldWSNqAXOQguaXOSBOWskCYrtjOS2OS+uTS - -xjuuRrLiWOVUOpxuWMwnmOZ0sVaxkEaZDaKsIRWHFfaUO9HT/sFkuE/pgGUGHnGIW6qUIuc/4AEcSSDhTKSSDp26YXvMD/E5MdW/CVEjcEOoCD6qShIf9sfUNi6MGwAD3SJ2XFhOB0NluqPslhaMOMRBcCaVdu72h09GmYh/xEgPPdiFJ+OOPrBGt/+jxOciWMU4am2d42IVDgcOU2ieSmaQ6QhGeQ6UhGSeucqKT5Ec00HpKbomf9RMcfMvusdG - -UptMT8ecuc0iRrWUPOZAoGBydr6KA2buWTUmJqufQ2QuuMFOU0WAYJAgaV8ORSuQUuUAgCuLpJelRuYCOSTOIsKhszCT2RvgSb4bY2Xyub+WcAHO5uRS2PCObCPoiOab2pNmZGuVIgCsMezYhNyTkCJWsLPJBGuWxWTMptWPCNWZsOVyOVE2WE2YquY3OTVua3mW/svuue4mbFsd+volmdguYqueM8TT2USOayWULEs1ubdOWw2Q1ufg2dtuequS - -lmXEMFY2eQquGSfIcU3ORvgW3mVOyPRuTAObd8nj2c3OUs0MuWTpOft2TNuc2alduZEOGSuV62UcWadxpzKZaWf1OrPYmXfh/TtgYhL6vlWSxyC38YJlBDWQuEdOyhp6ipnq6xiOqn+fHhmaypojuV8IVm+ARmeLHLmuR4Qik/Ov9hr6ZUdockYSVrOCcM6TtOb8HIWgHehkMDAsROU9NfeAjessmOPWSUAQPKJyEUBQrnoeeqE5uciIiThpx9gM - -nPdWcKmVY5mXVA9ubVuV+Ee4ObMaaiuV4ORZyVB8SIGW0YT8zFS4ilEetNN58tqElQREOiaHQfUietchHQe86WumSSubXmZ5OXduU4orLWSJFoiWeRWXxMKYic5mY5WGSWQyWY1aEyWbT2VtuegYFw2TW+hKuSVufhuApIHb2UbuUg2RH0jRgYtufVVjskg+WTRufPJsT2e9uWOFnVuemaB7uZF+AvbtBubbuf0giBsSduUxuUOWWzyLlucD2eBv - -Ij2Za2Y1uSleNd2frucK2ftuT42fWENZOc62ckOb+uSLsBFdBnuZZma1uTSWlzuYupJEueYYLDOQYqpzuftmcXuQ6uS+uVEoY0udQrOjuTdlqtOY3udL8pBSsUyT32YAmYhaHOZG3yugmfQKmSDpPaStOS3uRy/my/ikhn8wdrkciLOosIyFIbpr1FFYDtVOLToCJVtToF5GGxHMDTD1EGoQEQAgimRPWYLbFD6nRRBb+MYubj6EKBAx2Oc0I7/L - -/pBmCs5tGvyRy0lkuVSWfD2Q+CXTASsyRDSSGOesyWGOcQ+NuAK8XOI0m1DuCnqHqjSgOeIMnOTHmMSubq2b/WBZxt/WbhWRg2UA2YDmZSuRdWZ7uUwJKxuXSuRguQR6WKuVo2TRaaduQSwgJmoo2ZHuYx6QiOaByZIymRWYFmU+WfUWT5OcKuT2tjYmWmOYBsN8phfuXD2R42QQ2RsmXQ+sBuZfueQeQDzmbuZtubkudOWSw2URNtEHOgebNgI2 - -knamRQwJ+WbG1lFOakuQL2RpEt+LJ2WWpQoDCIgeSWnNNhoIecJWcIeW8OfAuZruU+omrubpUCXuRkOZj4vIeejOdAeZIrgrWUTRAIJM9uUSmS1UPhWAtSBoedAJJ5jsjOTb2XoeZOMef7qzMY7IVE9JHYduPq4tnrDkQTie/nFMXpDkePrljgk2TgTnftpH2fzKUCbL+jv3cslWfAPgGgSEnPLvNanvWCWZnk/ToJgVLNsVfnSpny2lYeUkUWCu - -bhAQm+vhAYouT6OoQKsbFPvsJvaLUno7XlsAPmgGluH54NIAOQPoK4u7gM9HO9oKcOpKYTZBp7zm/RmYuYz3C2UFguVvWWtubD2vCuVc8Zi2ceudzWTB8ZR7DnyB+rOqKYqPivmU9IMnOXRBJ1VtxuTEufhWcz6p+ue0ECXOS/gvIeTa2bSuYh7OxuV/WYZWUC3Nb2cSmZVaJwebPOLBWLG1pmILduWY2cdRrrudgebRuZkiOseVT2XHuZeWWnub - -seRruRseSw8FBOXJzF1QMkzD62ZMeaXucF3GNuRoWe41Im1NUeZ+2R5uYnuTuWcBWSl0FfmStuTUea8eRbWdnufweeKLt8eS8ecdubVBDXOXtCkstsGuUyOdFZj6suOmRUuTuKmAWbUwEPAJceebFrCeYUubYuQZXrweYuWQqia42dkuVfufeWeAeYHuaF+Gyufz2Uz2SwYBIedweUxznnuT9udwcN/Wa/WZEWTceTNGhLOuSeSseflrGhOUB2fU - -FNGVsyeSJWWjAIfmX3mTY/DKuY7uSBmZR8bvmb9qud7JoPvoeXSWcbudA3v1mRf4ABmq2oobuYWmUKeZZ9sxOdihDA6tgOayEtcmbSlvFrv4tOAGQ3WXA8bSDtjIMl2c1OSQkteaG1OblXD1OdMZEz8vOGSz8hibN52Y1OdrtGl8UgGd8IUMLnJkmB5j6rrjuZDWUyVu7chlojg7hmbDtmq52bcqW28exqWuScW6YgikilL0FA1IF29h9Lq3uZd5 - -tAYgnEeE/GBtF6iFRsUJ8jLJJWcRobn3ZvVNKVYmeANPcBeBJvaM05svBJAXM92oPyY0ngPAORWBJIABPmq8I3xIucleIsSSJJ/JduXNudXtj12TE4F15I2iTfuYWqWb/hzWUFuVzWYn6ft8QvsUpORYMJFuVCCWUKNOstsaah8a7bk3QSk+IgYUuwFweSyeZtkg6udEuU6uYKedbuYOqYVudSeXLnLxuUFkM92c42anuUXVsRNrRWViWdWwD87i - -pOYOWfAeawotHuaviFRuWphBAebPIQROX0DpbuZKeU7uYfEreeSKuenuUJWRSeRo8GD2T+rq6ubKubIedAstDOZrWd3OYkGfX5ooeWPcW9ma00E2OIcrK/onseZ5UFbueSWQgeag2WduW72f8ebXkgced42RC2X6vPWeatmZ6Gnr2cE2YtWphefRxNheVueb9ua5HtCGbVXhJzsVXm1jogPmKWdFFu+Xkt6R7cvSVqGuogsdJuT5HhvCBfaQf9hJ - -udDuapnrgShWcshvhd5s0fJG+OVGceGax6dMsZ+/pazMosBazCb6VtOTjqdHhpIAKD8G+quzJLITGOmAy5joYrEqulVMwAFEiXLTjHqLgylBnD55Hw7HFlN88BLqH3WK6otROSROTzghkcldmU22ffiE0eYn6WTYXDSUI0H/2CYkZCGsq8LuEbFuYOqJWWRHqab2ch2anmQ+eUqeSzKsSeYeWf+Oe8WX62Qlhs8eTkOZWTEguXA2TY2V4SI1mS8c - -ulCaeIQw2anueheT6EP1mXAIKxOaGEWgeehOS9ouTySleT6BmcxLvgkd3EKucigjYVLvmX6VAg6mNxoyWRtuTkufyDDFeZTODkcHuInFjMhuSojM68fheSgsLfqUduUQwKeqZ/WBt2PNxNCOlTOYEmbhOZ0fglsBueRMDlP3hZOVWsOqGW+ebOeepOTCOZAbgd2V5eQyRmB2eaxGVan4WeBeTSHFV9KJWYHdOJWTEYAKeYqecueU1QBW2fDhChNC - -D2Yd+vpyeH8cBOHKYVnWce2UQOec8cHuVXmazuGe2UdmTdmZvanJULyeYgOTNmQ22ee2bEuNq2X4SCZeXime/6odmddmfIBM9eZOYL9efVmRfWBZeaY4GjgLKMUqgZMxO9frnwg1HDFaahxNkjAjee44GfQAE4JnsL9dF4DhHaV/mJxSalaXIUCNwb+EjS2j8QdMoGVatVaQWkCqkAptJ0OQV8UpdHGoZ57r44P+PH3sF1onEvH44GE4J0uXqjBi - -kMeRKnMe36G57kSbHmSrCzuviHN5DyJmrFKbUOg1rbCIALoikFx2SviMD8WGJnR2cqSNpCQt8V6kDZgD6kEo4ICkPhLpc2cVZK2CUD3J9rHHfLDoMO+v1gHSYpffsMTGI3Pv6Ajel7qLehMHmqB8LaMJUdOHkFmqBJzBiLI5uaBkEd0oFaPmQPbHr7OYZamwPonqN7uS3mRtdFz6vYuRpYeiqYFuWomRQ6Yn6RPYeeTim1Gh7HTCVMcXpWYO1K5e - -VV2t2mcEuc2WZXOWXubmOX/ufa9iBedMeZGfrBeSbuaLovxuRssKhefr2TzcZbwgc6RceRewCiefsWS9uZnuW86n1uaJOficDI2Xruew9vYrmKQCJOa1eTXmWr2kReXdyi5Sen+AVcP5xueeTgwJ1eW1ubF2icWtQeWQeTSWfKCHAeUY2Zm2XCeRa6C62TOedyeRVeYSOVVeVJdmCecSWQVuUQeUWMV21O3eXZqBDmVA2SA2bruWA2Q3eZ8OWveS - -nmdo2RXefnuQGuUdWUAeVLHv0eRKeYaAlKeZCyenecneYkTigeaeeYC0tXuY/eS0OtXeS3eaJjn82RYmQpSIkGfl9rzub7ubqIl9uYcWWuWdVuT7uT7ecA+UuwAauWfeb9uZ9Drn2Wdih/3Jl5C0Lth/DJsvH2TX2R2qhISi0XEAEEp2R40ck0ZG+PD9qvzOUXPVifpsv8KY0GSPzAdCaKtmCKf6usi5tDWdJ7sUyqg0gy0Tm/H/GYdicmXGrOeA - -IpNSWWMk0GWFFiQsWj9AzWK/SlYYQz8aW9HgcB3gOoAUq/oiGYy4kJ0haKtLWEaKr8EBKALjHq+4A3sSjZpUdHOTrXgnOmGlUS6OWUeRhydwBJA4q9eYWOSfmUokRDecdmZ3Sn7efuTkWqZ2eUHecFudzWcHKYYkdykbOhPc6ecml5YAipLeuUCqq9QjOFkEufsNtDOYkOVnOYA2cnmREWVvtOsWS4bqOcckgteeGhOYXuYggOcilAeVEufSuSen - -mMWFJzJ+4HQaYNgNBeUtmbMigRMLtMN0uPEuXA2a7ACk+UprIl4Ok+YTVJ+eRXmatINHKqPEjNaPQeYved6GWweebWayaVPecUua0LJE2TU+WieZUuTfeU6sIYeY+wfRuOU+Xiedr2d4+ap+FBOfzoDBOe2Vt0matedu8BUWJk+Wg2dk+U8WcM+RIwBUWKoedE+RguUM+TiwWteb8ziueYR2T8HlmkiHoAxaCj2BpjmyeQeef8OSUuZnOZD1Ho+f - -ZOTIQRzVNveV+mWloX1eZq2d8qjKua0+X00O0+c9gCKeeROMQCj4UAYeXc+YT1P+6OZOQ9kONeYkgYNfnVNg5gi8keagmDkTAPpanFbhoDln4aZEhjgwnvrmKWN+Vk8Pt0GkW3uUBATrI+pj3ocodHsBgcftUJMrIXKunwCIvPmgfu+/uAPtxJhpubCMW6eQnvJNCXcqTD0qKtoJuaxDHbOkpEcY7imyq0UgVZO0UokeS5lJXYRU9HXKIMAKvuUA - -uLmRocADeQBI9K8YASGecXqHiCNUVnLpk4QLbI7eTF0PqvEUZrqEqmOZg2cA2U7qseeZo2TAvisubfuQHeZSmU0YdSmTsGcUqeQAfWAt09oCltbTsqRGKfq5ebi2JAuQBecPOUBeTSuUFeUoeVluQRWeluR8eQpGTq2T0+Qq/M/efG2efeWwuXsWXK+Sr2VdqUnmZDmdA2REyEnuQfeavedK+eveXXefveZ8eWiipzIllOZ29ls5NIOV32W84jbv - -FwsQD6NSgPi0FhWs/UGS1NfWGtqI2+kUgPdiQF4d3WV98KS0p10kjwL5yGnLI4AMsXIx+oOmBWgCuHqYIUnnMDoVU0BwMoP7PrWIf8WBwNYCM9OaneQlviBeaz4NZeRombU4fDybRPAmskXIiFJmVUChmKDOfloO5edhkdcuc2+aCWaEuQC2eAKUsufXOc+ue/eRnOWBWQRWfO+dt2TXueaqTlUKUWOlwRbrkPQR7NJJhh0Uot3qB8BYWsRWuluB - -PcODwEzWt54FeBIlTN9xAXMP4CBlJgObKCufvubIFJCuZyuCvWShmIPiOXSg7+C1edtbO2+TsGTiqZR7HUyLkaOHKbTKhamWHjIO+cecfHeZ4+Uu+TZmV4WRO+VpRI1wCteYs+aTwj/Dineca+SludmGVneQMuj/eTA5Ch+fiedRuYSeVKmdB+Vh+WPeRHuS/edhWQyeY6ueOWYleWgfMyuao2b+eXY6g0+XkcIU+XdCHR+QeqVU+Z6WD92bG2Wp - -OQUudhub5ZJsDmh+c7uY1eQSckhgqm7hBeVP1C5OdINKTORu2QGVE3eVx+XBubAOYGuXQ+mE+WbWax+f6+SAeeMWfBeXw2UgeXb2bc+QxDLFqMk+cp+X4+Q6Ytfefs+Qu+f/uXB+SyhAh+dlqaZ+eG5JzThZ+YaIlH2f35jKWd+2hrcCDgbVjubhEYCsePtlXoX4vV/jXCk6dJ9cd5+ckFhssaX4fjGhUFp2uWFISHhGhmfTuvEhhJtFA7EEecWu - -WxnhZkmYaYbrpZUYtfnG3BNoe9mouPmlwWgci5vqjWRyYWwMO00nArlheBCqP8AMOmCK0CXnnqcIAUFy5hTRtfkYH0A4dipySUKmUWMccB4KbewfneakWbuuVr0FyrExYEteVj6b5uW2ef5uSdaZsGaq+QfWTsGeWqeQAb41GpEMtMchqOxyK34Od8eVfFTwWdGcdIWTiXCltO+V+Zs/WS6+aNmLqLEt+fWWbSeXsWR62Z6+TveWWRAhWa2WchWa - -b8K8+dp+dIeSyuVEagHuUFmTO2rp+RvqOPedaZJyuR7OvFYGx+apOeXOVHuUPmac5LGtu7isNeZPec/nNtUZfhkNeTueS+umlvCWonQDEPkLyuUj2RdmdLpPJCa8mLt0BXqXd+VoUWVkq5HC8wFqMth+Veebh+TTOLxWZJOWNiHaXid+VoecA7vm2QyyKuRA1cQg0Lj+Z5jqB2cuYp1+VFAL4+V6+UVPgpOYT+SdRNT+Xt+dNeeWOCP6KwgAXYpC - -vmaWVCcQ4EVFWY6gdz+TlIclUGpFKgGcgGYL+XxcWgGVbLlZ2VVIHULlJ2X2yhW6YGeb6+DlOcuSSl2eGmEuSb52QkfLNOfaeWzsO28TDQijILkLvY4AXyUNSSjuYNSQ7vHn0X5MVcEEpCMYkt+aWKcmBfpIsu7iXd6fpuYy4k+CBDMINQtxYf4sKHfMZqRYWtoShN8auHrV2bmmprcEl+j1yAuCIvrglwB3nsOcVK+Sp+f4+Yl0Yj+QxAMj+To4 - -aSmX5uUcOX5qa2iacOWq+ecOcFqeh3gzGLKAg1Ll7ulCVDh5NN+T3sKnOSYmQoGRB+VL2V4mXgeX/2AJWcX+RQ2YFeTWOYjOWMeWO+XRuSceVT2cMeVX+Wp+WI2VFeYpWdruYB2bs+f6ucLUp3+Zx+VdQNtUVxGZq+oAeUvTt7uSD+b/gGD+cAefp+Wrmv5wLPbJCoGrAIz+ec+eQltD+c1mfjWIv+cQefpMpCSABEJfgooUZiaGc+Rv+dMLFv+R - -HABNAA3ygxRj6mdbUcZHtzMf5MbYeS4ESsTmYnmlIVspKYySPfhuMX4LvaseYSZsImV4q+XtuMVK6p5iIZZkWZqjPgW2A/eitETdpluVM92v8qL7qOfrHHVGfOau9v/YrB8KWCEHmIeCdSrO1kQZCBTkI/OcweXImdNOF7WR8JDcoNMaUXMQn+bH6YHefvWeomTsGbzqSIPr1NAtEUjySnFngBkzuc86f4uS02CbeM+ORt+TneWX+Y8WSJgvIedn - -OfIeQkORhWcRWdaBkwBSR+ea+WR+arufX+U72bXZGtcB8+LwBZwBR92VbWedqOs+cIBeXub6ufRWT87pX+VquQ1eSGuQZLBJ+TX5LyeXP+S7WQKmllmUj+Yw1J1AH8mDKeYxApxtNHgioeY8+RZOfnMAMeZB+eZMqNeX1JHlEEoQn0BigOnwCN42lkUUasVFErYEXBXjjEWufBLhrDWTOEfX8aMrnaUaVGc3uVJni9WltiatiTDWZi5v4BZexAGW - -E1YrG+g9wkWgJffujgU1yECHEjKHZiEUmNwIBQAADolDsRPWdCpAnkJq2LYFIeCZOCEH+TJhjl1IQeQG+cfedLWiv+aMYPjWF++ecOT7qZicfeCRasIDOVx/j7ujeuZ5keLepj0M5OWB+ZVvnwBd++n0BVwBYVeawBUIBfa+Wa+TX+bjOSMmegBWBOT+eaceWsmX3+a3+Qkue3+U0mfMBTluQoBcB2R6+Ufed6+ZCeQeuR4mR3Nvv+YG+fKuVNuR - -quXp+TT+Td4bP+c7WfOmn9mbt+Vg2XmftUBRrSPe0ZnYPsBZUBWGpOcBXJWSyPIfeRUBVsBVoBRcBe8Bch+gJKWOYTgzg9YcLMTejnz8htSs32REBVPaabNI6iRGXBPabJ2S/5ucPPQWacqRiim/5gNUkh9k6eWEnmVFjMsaZCHVvPEYrYYL6ovvkpAXJ81ru6ZTQM/kB9GDtxDFTK/eNfuMlHke+J4ZC8HLxugH+dyAvxCHOmv6NimWXnwmmWVw - -wF9xHNmdJmL5dBDyZ/OUgScLuQ82aLuayGcsaZR7KImHByZM2lUCohIHngHn+QIFEmOXIBUVpLMmZpWXSedPVM5mVp+Xj+WVkRCBBMBPfdNywYRWSwBRCWfVuRD+XrWa+eTDHCMxL3GBaaThecj2TI2VCUsBKH4YFS2dFOQFeRleeyeU6KgXuYp+SKmT9+VP9IP+fx0M++VFmemWVD+U1mTUBQ8BXtDqmWRS1ByBQGaA5lg5eRF8CY1gSOS++dFm - -VEWO1+VLycIwGwOfjcMGBa++cSQq/OfKFn+KH0fnecWyBSGBRekvzqvFlH0mNhiE1AH7WX/mQzWQ7WbscrJWcMBvYUOiOf7WWWBYHWQu2erRMQmiORl98kd3O7WYzWdpWY2BV76rNBOe2ib1uhtmoESDuvvifz8hFXNuaHp2XlOXeMCOwFU5s1MpgFK1MtKOZW8UdoqzfCdolYvC57hx2TLeUnCPR2fLeRUkB/0GmIJKJmKkL6IoxWAGzNUGGXhE - -ioHKfHGkODFAg6gnfBlsvvglnVOuBIxJBwfj3sOpYAiGdsCRH+swAGZRJwEDDMHmUGfAA0AGoQOAQEeHL+IITPrCOWpwELYo5uRq8FydOjSH2sKRTnXFpJmc0JnfukZMPknHHOhRxt5qdH6fgBRSmRY+UQBcHeRomVQ6cfWaN3uJvI04VhdnJyF/ucdGV8cIiCRDOUEofLeoAeQxDqweZleYeeXsBdcBYBsOn9OA+Uo5FHeE7Cdi2ZeDDiOax6Jy - -oQm2fHucPkD7YKSOeqkNryg3vhaBVJrAZFNemQ0uCCkD6qPo2bDeJf2QwOec2aJBcUIsi+ACOS4ObwrtyOayObyOWYQB8BeH+ThgjyOcn2mpBeAOQu+SC2f0memDNsmSsmeTOUyEuncM72BYZG2yauHBS2VmBYJWafeX7cWK2U7IsyIDv4ofJlgeX0WQdmERRkUoW6rIRis9+SeeaWgVwHg/0JSZHIIETUD5BYY2fxFP5eX+ubd+UR+X5BUh+clu - -Rz1D5/Mqub+OasedT2QveV0+WwBbq2fpBbYPoA+ZA+e7uaQOS72ROjkCeWFecJOdJ+evEsHuZ0WaHudWPEc+cfmXbzAD+YaBTQ2YOXuWOTlmUvmcceTMBTtHl8QSBwBWOdCQQjKbYbKFedvWbHlM4OTK2aOmSWBfTWVUXDEor3eb8AYiWRVuUpBe6BZOmdx+cTOWJ+VPnhoBTSeXhuS36bG1tsBa7uWTOX4WQBuctiGewPx+RtBecKVtYd1oW6We - -BWg9XIjodU3ll/pNoUUQRBoTjrNu/lRJgS+S4ZiqgTr1s4ETSaUIFP7nr7njO7DFWbAfsonvf+UonpowioMeApoJLiqbkZ0YXsQlWWReckHqK/vqsXm1lcfu4UZ+/m+fh+/hAPrulickQ9ZpssTdkYF+eXZtssZFFrOEjIucGQpcNnBaINKhIOWcmeYEQlEt+AUjSB64cnGFRIV9oMUwB6dEaOXFLPntCBLIsAgAviUQrgALLdOEVrVOF7+YP1qs - -kIAYGRAfWQM+HLAUJf6sFzOgylhuTNBYA6XbmXXFvzOTOBHUBeGOR0AVxIcHYh4rlyGV6MvzkCBoOd8f0lLHKb5kdh8cRnmb2QMqYqBRfeQxDn++useQDWduebVBbdYk9Wch+XFBS6BZHWdSCbZBTA+WueaaqHbWXWBR0wSBIAheUkquducOOrbBVUXB2jlFORr2c9IKHAGbBay2RbBZRBU6BdD2QpBQNBcH9v7Bbs+YHBbJ+drBf0Tr6+Zludr2 - -WPFP4iNykF9WbneQE0stBSTuAo5OFBWkuSMBRAOcD4GP+QxORM+feeTMBRZXD1BdNucBOZJBfQOUt9DnBbquXnBaz6QGwpwOQLCm7wjquUs0FXBbHySiiHGQRQIckCFHAdQfndeq5dnbUQxKb2ZvRKQIwbXBqFWaaSpzNvmmtSps2EcxgfTVrpnj9bPNpv4eYdljoaKdcU5Dg+PnZzq02bveKojCOhpQeFubrbTj7vuetjPkVsCX6qcBam65E/pK - -vsIwIDehP1YMwABumhKOK0CPJlnqprzRPzAieWDELNWQvPAPqOFaDiucS+EXnufxTueGGQuYpORS0PmqYcOYLuWHOWiuT/OZsueGOSPER2jGWUSzodQDEYaop4AlyGEOU9aQ2WOJTAluc2qS+Oaa2eZBV1BS4WaZBfHBea2TO+UneVZmaMBd+WRR+ZQufKBSzpFm2VKuZh4Ja+b/WGquUcBS1ubpBYMeTc9hwyc2ebD+eQhZJCYamXxWdj+Uwhcz - -+d/BXCOXwDl/BQZOSzOXIeUQhfxORHtGqeerAOwhTC2VUGkEmZ0flrBRsmQxDtqQHZOcfmcgOXMBcweTIhZVBUgOQ0OT9qaKMDe/pRJr0Gk+/hbUU+ID2GackXE2cLFrJ0dLKZWaeascLJpz/kGnFKWY67qYnqlIT9BfCNN12nO3qx0vCWtwlJ9rN9YqzsDqiIS8I+BfvBRH+kIADAAM5nJvyLehMfTJ4sHMYKSND8qAAiv95L2xC3uKe4kYYKKb - -FGWVCUhpSGP7BNwUlOYz2QB8ewPr+2czqg24rukUGOXfuU4uV2eS4ueGOdc6bB8TxcNx/r9RId0ncdtfIfLuRZYVbGjCrGvah4+SKXklub/eetMhhMgMBYPOY0heEud0+Qc+VB+bO+XNeUQhRMeQIBRnefTwuMecYeQseevVH0BWseY3+WkAv1Bdz2ajOVHmeMeVMhd72eqmX0hYGuQxDrvoFSuTMheLaYVuX7cashblBUH2YshfMhUCOQR2ToeW - -s+T92aXBVwOcqmTo2SMhXD+dJiFLuVf2ZxWaR+QMheeWSxBdcef0hXO+enBQ6Ws8hTWOQ8hfhUG8hSBjGSeRchV4ijxFD8hUiQvshdPAOshaD2chedkUj8hQxws1+bHSvHoZ0+bQeZFBachXXBQqzDtuYNeWauR/WR0hB8+WREF8+YFIOWojhWSshXB2YRMAb+HF2rZeO1+XOme6aHhEflgEAWWLBYI6bZeNShSLOQQaZLIeQIdy4fFmJS/mJLuE - -RNPfgHvPJsTcMQz/lTSJt6ZaUfjUa6jHTMfZ+aDBY6wqK/iTtkQcjotgp0J9ATa4Y+pLwocWQW64T+AaTBekduK/hCYdrrO9seD/F/CWbjp1XuPfjReXPOUDlnmcZoXlVfoPPiKWGnlkajBDBSkHmRHAbpj1FKhxFe3uhyGA+LmYjHAP4ie9EqlCkAuGw7OEcvdEk7kTPjII3AZtLHmvdLmWUX76qpJBp+Jq8JZrLeVGwHAQOZtmSumd0QgAzJjT - -B1+bQSIk0aY+bSkR2eXvWQN+cQBecOSykXZeSGOKi2VpuuNkruZolckrBfSKT0BSFPs3+SoBet+eMebM+bcedYBSX+UdJueeeHBXX+XghZlBR++X7uRdAia2WZBYpmvhzNhOf1eTTOZ0fuihW92UrAhYBTiheKeYxuex+fMqIT1MW2a4in12TJAK1uSsoHoIFSJrWkvChaPeT4KMvec2njvmL2hYFOcJOdgQC3efuJBWhRa+QtbJ/edXmfuJGuhR - -8Ob9WVCeUXtmd+dR+bMBa8JhsOQ8eRYbDuhYIBTO4Pcef9WRYbLAeY7BWA4M7BbYbF7efj2S3OXRWMuhSeqYduVQhRPsGQaXCeWVufCOkhObx5AH0NL6QuhRbuVhORq2cv/koerWuPueX8OXWhYwqSqealeRjChTlBFecfkBgiERObimfVmSXalSeTMmfpOZpOeHEoEWSbBcpabmLjMrAdqWEIN2lCA+auWYPqvbmXtAFDoBBbrNlDd+bNgTDmWS - -KDIxGUOe8ebLpDHBXpoAdecd0miUmOOkehQxua5UNe2XpWT4Vqt2W/eU9lGJhaZWWneVJhYsbPA+YGzmQsUF+XYmJYXncMY4qoEHodsSpqa6eZB5iM5BEaYS6mqeDGIflGW33rEyUj9P/CVQ+eZhXEydpvk/LiS+XI7nAkl1SbCKZPCLhmajuX6RgzKZC4k8mYOqpZLgcIV4abVoEtSZwMSIMaBoeCNOBoXzXoRwcDAR11nNATp4QldnShGPFIEO - -Wr1qjPmpQGStJWSDxweJaIL0FPIvw0luQUqoLDYR+adQVB9Sr0boq8O+2VsNBHxJqkK7eYEEVzYrgJI2efQhTD+b2yomhTjseY+SmhWz0SN2TsGYj6fDyU9rKXueFscNdoLaIqOkrBYhWe04YX+bpmeO+ca+X/ec0hfkufSeQIBQueRKHE8BSQuZbBV6ubA+YNtLauYl9rRha9ucJqCkOaRhUPOUNhTD2eBYbmBRP0vMeQChe9ylJ+ULBX8ulChU - -U+cVBe0WeRObBuWQhZU+QPecfWLrAQ3BfRsFaviChXfmnROSfFpXBVavlIhb0mRKsAtuW5Od+KbQ2XHBTY8Q0PoRuQ8WcRuQVuXZBR72XveRlubd2Y8BZshR8cm+ubo2YcECRuV62X7ccJhTR+X3Qu/BdzzDChb+WQ7ubteZGIAMWWdhSauVK2QSed+iDqvJ9hf42d9hTK4Jd+RfwP/Fvx+aThX6kTwsUqxucHKYSV6/KJRsbNHX2dWSZG8SmEdv - -aTZcA1GcPac9LnAGYZ2XqDhIuXdlhlOUQ7tIOZzbhWFOXyV0FB52RGeQvyhzEHm6SM5I6edCBXuaPWcnEaZUgffaek0aG0Zj8r2VJBoTEees3pIwFKakqjKjPs/1GZiLVOKEMtQIOdMjeQKd+P2+LCECYrC4MS+HBhMFFUOH0IwHFxrOHmL62oJxuVCgGqMc2a8/Ak8fWrkwOfi2XTIPzufoWS7mQAhQKBcYWa/2eBMS8CNEVqhGf36KexNBSSv2 - -Cx4JZ2NqKZ0Be6aPwboghcQScbBa+OWa2e+Obu0DthVWUBs0WnhSghe2hd+eTIeZehQNhenhUwsijRGM+TlIE3BcnBT+ORFOXoPOjhQduRNhVDhYEfpveZz2QThTgefU6C3hcJHoyudukr6+SG+ZdhTOhdKWLpxiT+RMhf3eQPhXJOXMef8hTnhcUWTJOf6zKRmMWOUnBXEUD8hegOVE+ZWhXd2VtBX+OX8efaBRFBf7uTshXRWsXJKVBUMWatIK - -NuTRgTM8B8CtV7osoZ1ucNuV+sZfQLh2S2OYnCmGBQJOaqkeJEGv4GSheB2UnyvShRyiLSheHYEAWVBBfYFE6mAdef82FAINXgDhhQQiOzdF7cJ6rIu2VO2a9mf+hatuUUWElbkY+WpWbngVmOfbWeJQQgRdMbCnubVBVOWb2wBtmTyCltmWCFvXhUceVcclu2YJECzXEoEYt6fPOQYXgagb6ya77PgmQ3iBCBWJ7ngmXqtn2FtEydr+pqiGDWeU - -TIN3BDUYsTtbJvEHtcIfRKUK0Xy0cqWdaWdTMdk2SKhfbjjz/g6gXV/q+2rQRTi9oikAUrq9mM4mN1okW8Q4vCuBf1iptsb9dNTvuGlEugFTBeoOSLdFnQDZsXFLBNFDyyL1EJ/iUmDNKOIF1NuCXX3ndABTUcS2OnmonnHxbBusO9kKcrj7OX3OYZaoLIZH+QFBaFdPXtNfuWQgWY+cmhQQFs4uTNMS2jCMjLjiIqmuzUHQ6fMHvKWNWDt1hfPS - -L/uQ2hUz2kvhS5/mshYshaKQK7BS/RvghYivEsQJRuSJCdCuWpMiT4EtfPthdSOTJ+WorrkRb3gCDjE1ue1eYNeclBbieR42X6BROhaMYDSROD+VxBYQReq2SLAl4RR+MPZAcJhS8QAj+Z4RRAIh0RcoeUQheOhb12Q0RVOhfBuS8ORvhRSsLdhQRok9qcY2fAud0RetuSlBQihZoyPRufMRbgeS2WYDhQEJE6uXMRY72VfqAROUDhYlGVCKSd5m - -40bjePylLsEKp4Dg0t0ZNz8mULrhupXySiBS3WTVGSk0T8KRVGVXWS4abjmPXWTAGTg+YwWVWXCEUVRwSx6P1YRUQYTuXl2TtOT0UrgADVAHiVEGxmeQBI9DmeGzGhx/Fh2o9SVrvgEkD/fmk8i7GbEhaMrCS8TgxiVhVWIGVhdqtDFGBXhUgeRLBcQ+FbOB6yItaUPibtgjKfJV6BNyjERSGQJAud0hcsWb9hRnhTe5iWhUkOcw2evhaZOf+eWt - -hU0hfDhUG2aZmaueZZMUjhd0BdL2SPhYI2Wj+Vd+VxhbI2QwOiY1okRWKRfXeX3hUuhaFAESWRbAJceNa+f/Wba+WQ0Ldef1uWJOSxhUKRfmOWBhVnLv1IKthW0hSPOd2XlXFnrMSmuSQgbHdEmuaaRWFgWqcR5QqEdg1IXAiVGiUQataRinyVQWSLfEkfKOGZ3IqkLtLmCXyTm6WoqfwlEQWcMrs3yLCBQdUi0gW32d1iidPhWaSnGhTtvIuVjc - -YCRbP2ehptFUUF1D/9FmnDMRL+8CcGsJaPUaQ0AMMCOO4VkwISPhG7J62I5ufWzG0EX52EPsYnIF0RTsRVT6O7hRhaJ7hWWnNkhcq+ahBamhehBY/IjwIDJWvFgKtDHjibsmF/fv1MX4uXzLgplGB1o+uXkuQ3OU/JmlBfSRazWG4dr3haqRYohVtBar2kMRQwhfjIFyRbpOVEWB/hRnCmndCsRTsRdgRcQRXgRXovGuRWZhMiOQiue5EI5Oeaue - -uRbm8PUeQQxIiub+jIAiXG8T6RV0FDdqPLmOJ2XzmQQ4kl2TS2oalDLhe3zPwlLPOXuTP6WEl0DahdV3C/fnx4MT2oFQCSmXGRdtOcoodlLLKMvb6SsGNz0PqoT7uEYAEp5ggAHCIeO4RZqQUruPsMnKKKbA4RfrQIFQM4Rca0AWOcc+cddM5MPyRVGAXyBZ4ObniSHhRiubo9meAM/IlCsfTRlp+vHOa93hLtAJVD2RU0RgplHcloUSUIiZcyX+ - -ecbBRyRe0hUZ+bQhQaRdAudxRXZYdA+TNhdbBTBWRkuSyzgRhZIfM/eeJbIXhed+UVBTNBWZ1AR2VbBZZMZQhbARdpXIpRcJRcpRUXBdrzOpReSudbBT35qIRdlFqdnOaRpEeX9Zsr+VSDtrtAjnKWFILmVuGd2OYT8jhpJxgUt6RosPvwOowZ7moy+UgVKQMJoAGbScMAHKWnvFFDLJXOkp5qQAJsMBGWXX3sKYrPXKgPoR4o/BXZKSg4GaJgWD - -HYOa4Rcoinw0fDwp+hY9ub7ebvWQERXkhUERSQ5GeAHkebk9tvcCeXNDUgqLE04dP9HUqYxRWClll1Ms+dj6fHKVvtIthep2MrkUDcLx+YneVNWV8haFgAQRbueeeeGyeVwKuPhc9uUpRboNMPeebuRb7IJBQ3hQHZpJYZ1RXPhd5OdBObXOUstm6+R8Jn+Tn1RQweVMKZshRycQfhVMWdPeScBWMWRH+ebjL+he2Vg9hYRiHBOWheRw2ef2bXBe - -d8OehaL2Z5kFSuW3Op3OUORRHBZQea8WQ/echMinBcFUfyAgvhVRGuThTsecF9K5BcI2e8ydfYSPBShtpDUW/GSjxj40f+XlRyKk/o6sY9BIaUdMLgk/ltSrGcUYCdDRRJgUoXtPBR+Xt/+dZDgNpl14hvCbd9n/cQYCcwwpSKRWDgY0ditNlwduEqLXulkvZzAdiPppImWLsCfheNvFIR9A+hiDonfTH7RlSIfE9GhRYq1CbimA+GwHFihaKeXS - -6FbXj9rlsmcsmVuBLgBQgSf/BWsuYAhRsuY1hfBEk4whH+BIsrSQPEMf/usPwlEDt1hShRFgHglBaTgESzDt+XZBbyCRh+WOCKbBYR+SOhageZJhfcha8hckhbUWbFfKNhZ8hXO+YLBUURevEq0hZh+ZrRXJUFpRSCefauaR+eNhdFebGuVaRc6TFBedqRWfzqGNOzRc99FnZEdhRvSZ2hVc+XhOWNaLtBYtBVTCJaRYO+q7RRURQBhYNeSpRT8e - -XbRf5BW0RX0RcFBUorr+hWDKWZOdihWKefDCINRS0Rcitr0RXX0knRcd+RMhU9hb3cY3BVavjVRUVuRleeE+XoJOyXNBeWMBQGOTE+WIaSx+VW6sThYeuahuUocGbRVKuXdHIShe1mfX0Ss8QVBeE2akkexhUWBWDmShcLbRbtuQ+RG22SFUBxhcWBQYCmeodXRpoMS3RlyhUJuW/+Qf5sFkryhUZRSBXr40eLMbFghjJBGRcwwoCBf40XYCJPPg - -DDgNfoX0UNfngsd3CiabmphXviZmudIrCaiTf5vphZ5slq7ry/m5+Yi0nh1GX3LD2E1IFO8hsqg7zuPcD7kNfuDfrP03HpEfMAKeHOH1sYOTZBkwHBHxF3cO+SbB7MTALRIMBoAdXJA4slRXzuZvBvgucShbtwASRb/BDfTNiudqEVFIAHmXj+DeLlEYFn6Ynhb81Ea+bFBeRhT9haXhcqkGcWfh+dbRUwFBJRQ0hVbReQxQaBc0RVgRX0+H0+Y0 - -WYqRR8hXXRRgudURTQeXT2bUOdxhRKRQ2xOqRTXea3eeuWWsBdRBQbcZVeVfuUBhTBuXjhdOhaNReeMAYgsHRRyntNRa9+ZQ0CQhedhYM+WFORBuT1WEMeL7RTxRTYBSs+T1RRQefHmQNeHdRVWhS3+e3maIedhhRQxfnhaRYCkuVieaSeWoxTrRfR+cheQ6ac/eRPeXDuAx+adxmp7rRYo6nlMric4llWVfTrQ+cyVoC4tOqkpnsGIRExQOSebc - -LD9u5LDtik/RIPzK23I85HwuZDbjvadgSjQ+TwucfiX26ZEdKTVhyEitSRPMlQOsVwa3+nQOqjPr+8CacCYrIGUaoAAVAILZKIErtjEFCC2yby9mTwLkgKg4KB4MEgLxbH8YJr7KbGhdMAoqMHWTdmP8kbERaVyjMrA7sCyNnzRT5qchBQFuSq+Q1hY/uZgxR1gVtNhCmIbZPL4Q5BnQHByAt1hfiEKBCcd2WqBaqxCtyph4NR7NqoUQ2ZbRWEuU - -aRcNRY3RdHxCBeY7RSHyXE+WTCqU+SdRaY2deUeA+d7eWR/mMwWDhTa+YPzkgxUA+RdtFnRUleeZqGKmWbPkTwD+WF3+X8OX3eZdhZXRY9WewxQqRX+hb3+VMBTbuWVBfCeZM+fB+dM+YwHllBU8xTQOfD+ZHRapRR1eQbBSwxTkEv7RXBhdc+cKRdseXt/IIhaqeQBmiIhbQ2aGQIukItwBP8kzObNeTc+enmUrWffmf7KP8yKurMnRbWBSNBdo - -fBmrCMxdzOQlmTtubOqZYLl/glzOa+uDfSfWOR1BbbmZHygKxfzWkKxX7RQ1BTbmU1BeKjsMxYKxSyxRm6RlGbkaQkaVr+RmcTZRfuGXZRcBPDbUJZINDnDfSgKOXUGDHSrkye2aY8Clr6YYCYKhcbrMFWT5MYkHsWCVMzn5MX7coEBSe7Gg8Y06dF2b2OY4lIUYHAKpYvPIRUZIIoRQHGOg+dU6UT0P4EU3QaPPIjHow1Ch8FeMTEoXb+XEofek - -cwAGuADtvmmeH4SQeQEjKJlCgvcPKlJYRSZga9xOOQE5YAL6SuFC2uq09PWXLZwHuHm/sERhczOQ2nKbuqfiLKeYxWMqYQLuaZyUHhSRReiuRjiSeToYrBubABmiVRSpeN58v1gF9IimOC4+VHqj4TGOVHN+T7MdtWWSwuMeZxRRYmQR+WlBfERa/eXrRZShdOxS8hfdRdCxXchfOxdh+e0OdqBa0kocxRXSEwxfU+QQhbXRS2ORcxfimsS2UnWS - -IBeKRdQOlp1unBUexW4xVvhRnBXneV8xbgGqQef1ReoeQjAIrWeqBQIfKihcNhYMRUNuWm2VRQmBeQixW+cW1eVHRb0Kp4xYeuA8xV+hdtbK1uWdeafuclfDs+UCxUoBeceUieaXecO0Q7Bep+WIeeBxSfuT1eVXuQ7RfXRdGaIexUbRYORWRhbB+YueVjhdneUoKKxhaAogRRRd+V3QT4ELS8FwxWxuXO+Qp+ebBRW2ivhbuhVXebwJiU+eoNkG - -+buWbKRbIcNBuQd1nixOxxW8eSexX6+YlGcrOa5Lp3Xi26ZUFDUGM0OCT8kKinakB1gAOaMV8ezeWiPsSbLOvCLeaKOZAKqXck8KF3Xg0XHHEUTBcT/gvRdKjG3RoXfrJKcNSumucnjKhXrfUjssd8olA0uDUSjunargNSVYluUyuDqffRY2aVqDgDkRC+UXMO1ri0Gcy4WH3Ky4R9dkq7I2zm2hteGUTucooQd+M4+JpAMw7LGSur+L2ztGdNbm - -LWiF2UY7OS5IGD8bfKCQoM/TFAUqOgPk8CfdDPyfgrvuOaZefimZHrmS2R1wMualTQnWRXVhelRZY+d2eVg4mb/PlnMTSINQGpmcNdq5KWKxAh+L2xdUhWmYuLWSRBX5kYt+aOxUyRaMeazOeWhUxxfehT79KT+fc+X8has+ZhKFchdrRcR+SNxUchWNxf3eaCxRTHP1xfuxT8xdehf9Wft+V3OTB+aluTx0KPRXyxYBWYIxcnuTyxe1edtxcx+V - -RBc6BTkRUDWVsOTCxYfhSBhTQvGkRYg2EixU2hWsEUr2VFBcBxaE2VSvKCkXhZNhGO8xdlBepBcnmd6+bwxSPedBhcwKHAeX+TgQRd8xc7KM/eX/jkJRbpRZZMR9RdeeYchVh2bb2ZjXBXBSXRfHdkNxe8+bfhbOWS5YE0RYceawxdsAD/haXXJgDroNMgRWWBaACuPRQWBSDmXDmQieaWBeyxRUYhPRYWBaDmcR2UccZgsS+Xk8NERmQ1POmEbJ - -2T6eWPaQD9H3ubJ2cOBboFK8RbTzkagSuEnZdlO3rOPtf/kbnlSARPgWPuVcKSV/lm3ivBc1XmTbnu3knYY2EUtfv0sSG8SOaa2SdkGdXWQuSYf8ml2cW6VNOaW6WPBcbhmC+eFLDXhOehnxoc4SSOuTl+WuAEYAK65A5RNWSDWgJmQn98HcACw0ixxu1gq5RK5vMx9O9SWlxeJAPMeC2xGSWjlLo+hcyOSEkqgxT1mSbsmlRWcFhlRQHKVlRUb9 - -u3togEh1AHNVBAlKnzjoNMDUEQxUBCdAyaSZirub1xb0hcMhboeRs0Qs+WZ+YixXDxeamQjxQXRbfeY+eeO+bSRYx+TuxdX+Xh2c1RfOhe9WWvWWugICxVD2fluddxYied+apjUJThWoBUtubNxa6BR1uV5uZMBIwebR3EBxT0RbC2XixbTOQ0Kpc+RPxZIhSt+WYxXURcMRZCVKMRddRfPxarpHcBbU2mohXtkZtTME/nFFGuaSyUH5VlW9umyd - -EFItUqWSVVOYKDipvo3yBw+ZcmXIRtN6cKod8CE6sIhyHLwUFyhDgBIsucELb+XpuTGxRH+nsAK65CU4CIAPFypvMuz0IDMFuBgpke6AHeUjrxODySLrD9si6OXw/mJIMYsj78nPxR9mXwAtxuRgxeYxGeALSmW+QWKhFJfJMcdLRVcEO3hErBRxEIt2fN+RdGSV0QgJQEWZ1xUQhb9QsoBcyRQHUknBSa5OImOWQNikDzrM/WnCMbWMtVzr/lAe - -yqGoU8uTeGcooUP4lwEM0AGK0KmAJTEWYAGwzlQxB5vhpeTpPrVIJBxE9iF3iMcRInnEmIOCDKchgHxSCNllmWbUORiW2+SHxSwhVj+RnEjVhbRfvWRfVheXMUv0SeiGeAI2mbB8ZEkNyir9ROhEgUgGM9AcGaOeXUieOeaGeDXDCnhUX+UyRQRWV4+TghVjxftRS67KRxQexdnuRexZB0J3heChVexX4JdmBYsRYuhduxZgRSE2X3RcXBY3hUfe - -RtRWnRcPwrwgFCILghZ0hUk6pWxYxArT6FcBR+WVNeSNeQklDD0LmrCJ8WkKKPxYf+ePxRIhRTAjhxXguqPRZ0fqkRR3xeJhlcecVubCxVdxcZ4rWYvBxVmqCIBiDxRw2ZRBXNxfkWe7ReueTXxcaBSYxcDhbPeVIeSfeQMJRPqORxev+aAeRkRdixSjxU+xZoefTju0JTMJQZCHMJd5ULWhW3xfVRbMJYYeYlugc6f0+ZNRYJ+YuxaCefKRQM+b - -hufsJfhOYcJbsJfo2RNxV4xfIBcdxchhXoyEUJW9+TcJWsJc3Bc5kvsTq9sVuSU6xat0B5UeJnB6nvDuYdnAvORGQoDRVudjDRWpUd2Sf3pP85OIOUAmZ8RZ1aaP5qEyd0GA34eiBY52VKUM52Tr+WpvPnyR29gVGYrOVoluoCSZAhEpGZUZ4UVQsTyVoVjh+2p9gbzzk/YZWQdCYRyOAywThXngGWKcgdBKuNv7EizbjiMbQiHoUg8AFFTMSPLU - -AI+hsmAPOGGUpjHwftEcyxOH/DQCOvRnOzDVQJ3UK0tM3xeT6C8EsCqSVEB12gDSVSEHFlCeFNzpP8wK2eb4RUmhU+1voJTt8RXMUYJQ9nvZbrOhX/qXVxc3mD3iHWQMcufUiY10OHqSO+Sx3lseW5BQvbt1xfXxY/op4xQHRHehbaJWeeTPhbOhUQvLMRbJRbE+ZXmRqRaDGteWchxYkudf6lEJVeXBv/HsRZsRXJUNPxUEmUwms3ReoBSkscSx - -WhhbbSI7WUfmaohWRoKDeTamUVmOGJQNeVArOmJTTOd38qHxbnWFvbqBiU3eZuhQehd/EaLBQyhdeUTDxej+bLCk62BS1p3IE6cKwuWMmQxDgDeZZefCoD7BQ9WbwCjJmbkmbMOMfhaURWfhaBzJZBeS2ZbAniQIyOfIIHkReURQZBUsmY0irzRVIxaEJdNwD7YBLBFKGdU8qTAAm2fouvUyKtrInXh0QrEgBhrOyUJtBboxY92X+oLeAjZMOsgE - -qJaPhYoxTFes+mQcyK+mZU6pUJT2AjJBd2qchaNa2THRcCeSYSNLgCJBXeJfTIAzxXKMd10NmyXcRT3yk99l3yoQWZvyiZ2aWScoqRcRXNokXyQ6qeAiS+RW3zHVOQ3zO9LuG+R99tX2YGxRQ+aZhcLUOgkSAIhJ7sQ8e32cc8lJ7lgkUfYrJnppxeJxZZ7vWAhkGPlXIW8Xm8StgAW8bm8QECCitGzfEjIvj8o1MlgknqhZ+RZdwIygAVMGVwA+ - -6dl+QU0Yb4FsAIFyArgkJ0uybDIAFdStfeBwAHorA7OeHiQriEncFiwYOUXOzDHnJLBIhWVU9rAvjhRVVBXs6Vr0KWxbNeSgJcBVB3/hH+GtQFxyIOeVYfogwkdypUhZe4ejSJFcvTTu1xWrBYzEoORQr2WXzH+WUL2Y4kOcxVhxdnxcXOUtyNHmTZJTuJQhuXuJfXOfhxRtxSNxTA+YjhVR+adRS62X5JfleSGJVxCeC0g9RRMRWChC1ecamAuR - -TZOcUJeIhRmJXaBXweb8hcSxVWxRkJdOJTURfwxTFZHYBRnRa6aIURR3Rcv+f6BUvxfzIfuuafhYiQHrpFGJb3xSehSOJWURZZfJieez2aSedsBWVJTWINd+T0JcE6JoxUWtrRnt4JZQ3h1Jcjol4JW1JcW7CZQU64Tj4UrJutTqxKEssYlWUqTvrOUVWRLDBjBaA9nvctNwlC+SxlEYEUv4QcbFJgfHEf32T0OYrzj1Mv4QqzxQBpsCwb2uqehi - -oATWnhGSLhWlsrr0BJJJB54Ha2p8ZH0ADekALZNBZM0xicljYme0EJBWhIKRDnL4+MhKGtcId1k++VBha8TCxPAeJcMKIq6TWxQHhaHOYLRcHhY2xfnieRRT7mdsyeRcH2yHgxfXMT5pHScPgJXNMHKBaORQnBTRxWoeXSRZQxVghRmyBJRXFOR5JSpnLwbP3AQTOYKCH5OX+oq2hZghSz8YBsbBhaUJVjJfnhTjJflgGpJf8+guxUxWX+tPprh5 - -XIhwJy3OLQDKuUXhVL3gK2RNIRDUG+mZUSBwOTchQwOclAPOJYNgouJTncXm/pR2k9QPUyGNICOIK+JVMmVc2X3xebBVL3mYzKVHGO2VvgKrJb7BQyEQO2XJWfCoN5BSCxa6BZihQOhTREBLADpGvNhXrfohhX6ueWfuUBSp+VNhWXRSJRZ04Yb2buJYTJSfedNxXDhWMRQ92e7JcaBZ7JfGqGf+RRgaKBCuYa0uY4Cr6nAtTj/rtJuGomLlWXKS - -FjBezqP2ESYRuaxXuPCfiQEXke9D3Pl2HlXcqz/qIMV5+SfRQy6n8+fmBpscA3fsmiAjobf/lMYObDjRvIBRXFhboRTOVKS0vmgE7qOXnvsgEWgHBZDosjsXtiGViAEe3B7OBfPLOsIrQKIIvw7AHmMfaj55kSEFmJUlyLP0YsmVq3NjhQiHEiudo8QLRfyBQ2xUAhSLRQ3uMHmnoajN9qpjDR6BLON42PgJd2MKQxYaRaa+ZXxe4JZf2AsJZYxS - -oBcusW+xUFJTNhVshRgOTShaR6Ty/DuRZOblGCt0zMBQgoIAtRSDhauhdyFs/UDJAHoIASGCrZD7yhYYEJsKuRYXRfOIO0mUVUJ0mTd6hXuZgIJ6REApb/JXbUG9uY8xd+hZuKHUmVLQYy2cT+dqubNuatmauhQgpQy2R6UPC5uZWVIMaFdjjbiojpahV4LnuScJcDmSbxRlDuacLi8so0/Ix0TV+JZvuzVpC9vY0Y0pEGkXzNu3jMq8I9eMvgEe - -4sBRdJeSUnpluNras7rgGgL/PosfMpOigVEGgIaAO98dvBN5RIIVvi0MLYgQOL2iKiAEkoHmqOKynrgqVJTCuS1Jcsud1+SqJbVhf4RZHxeVxfkhYSRdEMWQBZr8l4kov/g5BvZcKNxsaJfYJcmGMO+U4sZ5eTr2TY8DkAvGclbJZ9GQbRXVJIk7HJRebRYXeUBwO3RbBuVUDsh+iQIaXRgargZRdqyanrE6RScJCp0eAfgeQjyeCDAjvVpxJffi - -VYrHZRDKoHmnMFlJaBLgANWAH8BqKoHfuFECkeAk3hMqFutgZWeaDIGcllbRXWQG5uZUReklonqC9xTJiHD2WKvkRRccOYkScn+YN+aLRfNWcfWW9gOP9mGoVEWrVeXYVkZJfl0ScKrJBGaJdYpbHmU/Od2WdB+ethXd2XAOfZJfOeY5JdXhaMpZcSHjJVP+V6+W9ktNhVDxXg+o4pUuxTWOYtxYEJclJcvhRYxcbJWrJae5j4xe36ithWsRdwBY - -/BpiaTXBaLJXIhoWJQ0JfbuTfedsRWKFMtRaVuVcpRpZADhTNZqGJd+OayRYReQQhbFJd8ObcxeuhVsRYUWasRR+Od5JfPQqjhVu2lspZDhS/JRxxcBWbxhcsRZ5Of8pd4xe4xRcJS9+a4xcmBdIxUsRYDxU9xXlWHNRRU+cJxZkyRZhTipVZheQkag0lIuY9ip2qgrhaylJTIkpqdQWaX2a26Sw+fhJa6mRGIWqDvOqu8KdhvjSpSrkhGifJuWO - -6ZfxeolpWScLhpHGA2uVUjF07N5doB2kDKAOqKDKPkpjEpTtOQVnjvyPtPJE2GnUJgAHQELZRNKyF8qN00qCIjriB9iGVasqPueqI2QL5rM6UJZmNvjC4xS/eVT6N22fu2VsNMImSVxVopfkljvyYY8dJ9NLWBLUaickNsiuyRY8TmFPq+aVRS8FkDsugxUWhdrEXnhW2hQ4xQNhWQxQRxekuWjJT6pbSjuMJTQhV+uWUuU8pfgeVZObRBe18J1m - -ZoJQQuV6GfnBUXhVRAtHWSfiF5BViBGThbvhY9hay6XDQtKJU/JeVuYpBdSudmpVKJY/JfnDHwUhS0SEGAaeWmsM+RQV+oMZGRyVOGcVOZQLKz8vU6Rn2cJqV0OdxnNE/JUoCBTP7VFrNqjPglynsXgAXHPhODouEClvFNCEEFCEQAOvuVc3vKTJLAJp5K3EbB7ODILhCiTKG1QvlysPJZ9IInIhpJdapewiSHKYUYPgSWeIa93i2Gg9aR0BenxU - -bILN+axRaTicQJdxhGX6NjJZnhdy3JipTIxaKmctxWNWRYbH1GCupWxOc+pbixUEmdrGWPZJ1icH3NjBZRvhIrMp6kwkgzrBmOjkOJm+U30QgiWTQPgPraMPoAIvaMHmu9ErxYbRStJJG0ANYAI9JTebplHnzhNuGf7+XOzO5sRf/KQ2IxevTHiIxV/eY+3CohTY/OupcERfNMW7vhycColON+VBGF/nO6skrBflKArRRFJaZOSrRcFJYT2Y82q9 - -RXt/DF/FnRWC0uXedNxaXxfspTpoNC0MUYL6LAEJXpXN3hd5OesRWB4i+eYfqGixb42T3xQJ+TtecBmXteZMRc9hcjxTMWWjJRBuEXRYxBXquaGpdWhei1CoxRsBZ8BZkuVBhcPxZw2TCpceRfVJYz2WPQpNhW9ko6JY/eUQGOrRZuxf6pUtBTXhSuRMmRHZpeGdvcJU+ufvJeR+YbBcFPP1xU6JTLJanuTxpR5paqifg9tjEX5hQv9EtiqGrgYd - -DXyZulo11qjrJnJRwMR67pfCiNqty/sePrPRZZCl8mQl+eBXjbvM6mZlWdfxcjuZ8IUb+cXvLditE/J4kF02eIqZuUn2yXMrk7mVJeRI+T6OuoAAGgDNRAxLNOTk5ZmQHIk2IjwKW2O87KT0ltOmkrCU9tepQObPOpSeUEpdDwCHWeaRfB92F0bl6TNbXrxBcaEpCQL/BfH+TPJcRRScOaGOSn+YvJUfWbZyZh+ZS0O1hYJ8NKXFCcfRpff8R6pU - -vEZepfYxbwCuJ/muRe8Mq+zl5paX+YCpQieRNRStkV1hHiRW+hbeirepbURQ8JQHBU8JbyLvexfNRQsRZlJQDxUVOiNRbJOaFULZOTVxd5uT1uVgvNdpVbCOvxVqgFzIeMhc6uUZIPFJdTOSPJe5JS8OTORS+pVUJS4JRQhZUJfYgisBb+uIMWVMWY0JVvedGpc8BSJFLrWUUCPWJYgJZdRdZJeFEOppZQxUGpdMEYGJSPxGfJYspW4zDwhcRhdh - -YKj+YSxcFmUwuf6mOjrCFBX92TRhTzpWNmXervqpVcJe3oELpbb4PvNBsnpNif/GahUgoOTWqnzxbbNAS9preT5sqZLoExajrM8IaZvvuLD8kQNTuf+TyOt6gQLMVYmhJ0XaQurhU6rkWyhkxTKUawRd2qh/LtqUTfRSqiAfCeW/A4hV2YRbpiZZkm+Sz5KBpWw8bVWd2gCtEZyUn5RTmnMQAJGSnwiAfkilcPBAEA5KggMogBegN9+CcfIjAPIp - -SS0OaSnrgtjpRzRmkJRH2BkJaRpVlRWN2YYkYbgM+ljHhXj+MIPHu7AnhenxaZwL0pawcTLWa5pY9Rc9Au/BTCfLrBQApXE3JDpSnedTpXNLlixYcebuebZBXxpaYedhxe4xVqRS1BdJOb2Uq6JUPhSPxaIef6JThkoDpbPhXHADOlM4pdvhcPpS6JYPhTRNhGpUVeUlJU4xUEkd9pVipb1MN9+QBziZpb2VnXpYiJs+eVnQZDxQjhRHEpyuRRuc - -LmEfJdlucwBQ3pX2sVTpSkJV5JX6pT5JUshRfed26i8xTxhRDhS5pazJXQ+ofJbppQ9mUe6sTJcLkF7BZWKdXBeipS3xUSxLcJYVThvpYAZXlucdeX3Wg+pdCeWnBer2STJdPrByOeNuXshPT2Z7BfAZQKxhKoR8weLQeUQUXjAPuozWF4ER7vDYYViFnFkqHYebIZp4D0gbJ4Yk9DbIbPPuD4ebUVQZVD4QorF7jt8vgAfi6yQsPDVSYGkSasXJ - -0flXgFUW5CtivpivlCLH4eaZxScyEZUevfqTukl6vOMX4GtGQQqhYolOICIjdoNgmFyozWgnNNJBrDwOToARWkztvKOF2zs5GKcFIUigzmOrMP62nOpSLGjwgmgEKlIAoqDJhakmUeOTNeczJWnpVCFNtEeU+CHoImsrhBQ5BviUuhMPRpQJzH0ec9RRglHehWspdEiCdpd6pYkPrnxVPhSjpT7JR2jiGpf75BxpQ8+DtRYJov3haeJUTPMEZYlm - -MixbvhInBTQxVuxVTCBGuchORBhdeWRNxU6+TALs7ReHRTiRQcJfdpRuBDZBbIhZ3eXqRZGtmGVPdxd81EHxedxcKCIPxd1uaZpeIxb3pTPpdFjiaReHRb6kU0oqEZUOodoWRUpUXioegeFJWXpTORZVJW7uaIhY6BWHBZ9pWaCE8BXEJc5mY1ANj2XL2ZDhbEJQZ+WtxROxd+Oa/pbdReMpfM+aQJWhWSs+W3pffDpjpTyRaNxfxpdCtL9Qk7JZ - -ZMVQJQRWfqpZkZXQxcTpXEJR7BXAZVr2YxuUihbchT9+SHuUfhUNBW2BeWBWUZagpSixW4pQVJUXRbApWBxXuhbjhX1JT8ZaBxc2hdfYQbpRWCclZPVfvWFvUgHOEQP2YrkjqDqw+XPadCJQNiQUyWrhZVGUR/FEaVsnmnESJxVolkb+sFAh17BZLiyogcIeQpesLvJ7ltJWDqREQrTKW4RiyktKeCqUbKUcf7invD2aevYpQ+Rw7ig+c+jr+pa2 - -aWypVKDhA8Y23MZhTkypiJVQ+UjbtD0Zf+b6mSwfkTQrhXl4hfd6T6OkPSNQIIC7M3vKBLMDGKu3F+AIJ0rVONCTi9yRZMDOgoKkOiHnmxf8aiYJFLCm2OBD2nu2dq8Og5r9aNCZjlJc8+cqJepYX4RWqJWVxWhBVY+TnImeAH4OZq+dfXCNIH3kKXGsZuoMoOYpTUqXitGZJarBQt+aO+VOxRmoi0hYZ+fWhVfpZdRbdpSMpXJ+RPhafec7JfZx - -lyecMJXaJXAeecZac+ZNeXPeevpSipWEJcmZVkJamZSIkJ9xZ8ZRGZffpflBZjxF0ZYoID0ZUh2b0hUUZeSAF+xeDpaJRQGZeGuZfhVWZaZpfbJdP+WOsfWZWDpaZpaLpd2lCBxSlRQ9xWqGOUJY12HcpXbuWHuRXRYp+X2vO/pb7lGApdg+nDpVMZbL2R6ucY6acxdceVtBV8AK2JYPeU9RYkZc5pVPpVdhdU+dOxYuZURqUdxV0JV3pdOZYqmr - -OZb72UEJbhxbIbN/pQa8agZSeZakucEJUkPgZpcuZRE+eYOJ+xW2ZS7lBOZVW6mHRdiRaIXkTxW7BS8gh+ZfGuaa5l2Zcgxbhrs0ZZ+ZTOYkpJf3mUAKSfJdhYMWZe9xcM8jKxT6OWFHAMZXtBcUbNjmKpIBZYi5IE+eWcJeCeQK7DleaVmQ3ERRNheZV92d7BTh2ahhbleVEwdC9KJpXwoLhZaxOUf/vjOT/pVeZfxDqRZXhZUf/q9pRmZZJMUx - -ZTRZWKzLmZfEZSARd3RWZeRIyaVhf+ZRQnEzJT/BR2hTTJYlJaiIHjxW1yH/hVOsSBZUJZSnYPxhQVcL3CGnsp0ZX+ON0ZT/giYZb9SsoxfJpchZYOLlhyUakUv8jaQPBWKsJRAZeD4FdmQZZeHNg8+GcZSa6QDeRZZWGNCcbjL2UeZT87rZZWg6fZZQuZbuJUuZUmwJmWQarA/Ab/pO5ZR5JZ5ZTWCN5ZdJHHedpihToxQFZbpFO7jPkHuD/IDg - -db1ommgJbqQTuKWR/Cc1foEaZS+c8mbf3E1Kt+jmEdGOEdlZbuXuOEXtJQzzpE/kTBbQpVdsdV1mIMSDvEIZWRCKC+TpnhSViDRW2EV/UmI7gTUb/cccZMc1jv7icIQtru1ZTkjM1ZewhHXuTjUSoEUt6RLscannUGt1rhtscPuVy/gG8RssfnWY1fk93CYhaJIK9BRYeb73lUWP73rltiWZuBAR+ATelk13hNBptoRVjIE0ZInp+oSPofnBg7Yc - -7Ic6whqhfrrGyhVHngiftwkJxOoT7o6wLd8GA4EtEkkJAiVhdQRKdA5am5RSLdAkwNKwfy8AzQAEsKn3LQIHN7LLWMCpBpkau9pCclpyX2yNJJY4xGwwPRWBPCv9QE6koBZQ2eYvvNDpf12Yq+e2edaZdopbaZRVxc2RWeTmQBRygBR+J+QS1TFKUK6+PRpWPVHERaGZVZJT5paVKcTpd6+X0hSbRdXRRsJRnmYMpVXxZFBZcJXnmfOWVexdieap - -cqsZeKgROZW6BUk+W6udMZceZScxZuZY7cHtRQXeTrJe1uZIhhvpazZclJXx+TpZSHRRDpbJpe8ZRA+XmZTEJZ8BTO/tjpXNBTsBU1ed9xeEWbOKtsJRwxZCxdCpeXxdw2RveR8pQSxVaJe5Gsd2YeZbF2uNBe0ZbuxZjJWtRUv+Y1Rcu+fZpRjJVMee/eU2ZacBU7ZV+uYFpQPpQAZSzKvRxb7BYxxQ5JTAeZ0Jf3xRhxWNhRMpSgkWJuaCoiO6 - -eCJSypZ5FD1idzhYiZSPXvj9gtyTiZT8JQrzjpxWulgzhbNPEVZWulp1ZcIZTdRppNAlpVIISXZQH4pYSYLuitrjNrmEeTlQiqjjdYZ5xbw+UN2uu3r6mRt7gMJlt7rwWSBRb6xpIAI4+IcABAOENEMzoKrEADGEIAINAOR9IwAEVgZtAHsmArQOuTrIpW9PBivCy0KWRcvWSmBYeKpB3p1QS7uV9hY6fmapajZRapSYWWHhZYiK7IpgSVhMHxwN - -WqbsmGGFM8TLAhaLWSsrO1lAORcwBeGZStkgFpS7ZTJRdR+Ue0sGCvXheTpR0hcZ+RKynspcGCuCxZiOTYCEMZWmZYsRbLMBTpWQJUoCsuhX/ZU6uVsxcNxfUZR9paZZVnQlvpTVBVxBW/ZdeZYnWWeZQmtNHBc/pdXOWyxc43HMKY5petxS2BTdxUNonbZXM+fOOgQ5STxfwBaspZHZRzNnjtr4ebqhT5UY8NOyZbLpWiZXIlrjBQ9lp3uVGFCw - -7owRWfzN3uZPafCBYJvstOc9lmw5X/0nnZggZmvxC64XdTkMylPZa1QpSZB3ZVwpVJ5s0CFOAFnQPcAO9EhjKPBfn6ti+qg6MEeHDZKXPUdNQN/rMHzL/iM16sXHHqMgaMnyykweANsiSufYsjvpQtpT1+RMxX1+YQBY2RXaZZVxZeOT5ETbgNMKV4ucYIgJCBqMPRpXbyK4Zc9WW5JdOrtnhTNxe/ZbxRaKua+hUPpbMhb0haHZZHWWUwCfpa4J - -dUJZJpZGpa+2HPpakhLOxZv6ZY5XtPvohUjBddkXBtkYScG8Z54nNSUPPrP7sVEkpgVP2QlwW9ZTOVIWSBQAAM3DAAOGIgDoqdPGFzrwpYqONzQGZqRIJbj6ICkA6iHUukGhZDZUyAvi0DDZVeVH2ZfpBqAZZvZYq9iLuej8b1QewIFIMgIXAOPjcdr8qoIwIugPRpcDoSTZR/ZV7ZSMeT7ZZPqCP+fPhVdRXNhW3hW9ReQ5dwxScpX7ZQ3+Sd2f - -zZeWfsQ2X0JXCpRG7JeZcUGPzpRx+XkZTsJdhZYppfSWeY9D/ZecJUE5UYxbc5frZSJ1jsZeNRXc5SveZOxaTZbsRVhZb85X6kZkriy/klpfgsdU/K4XjVXEgZvuTJAiZdcbEXmk/mUpIahRvWs0uQAPm4nk3qNSYsMFrpuX9sZ/xYy4r81iKTKDok0AE/jP5CLcAJZKLE2FranQIEDZXjgTXZLa4uVytHpUS5CjgJ0poOiIA8gj8T+eiE7rWxcC - -sYYWesuaFKQvJYSRdHOYYkbfMoNEh8RO7XmMYNjmPM5X5BXUhfY9td8axlrWUV3Wez8WTQPiVKwANgVJDMMt7ByJWiVGW2OYer4ABNGRL9jYwZ7oh45fzWbIpWCrN4iuLygiIueFuUZQjZUVJbD+ZYZeIHHvugB+Fd3C0paEOs1+hzEM2xPRpS4uIs5cE5ZfpfEmX45VCxVM+X+xcs5fCoDTpe+WUMJa72X65WBaBfpc1BUueXBeTdpTfpbEWQrZ - -bzZd3pdc5eoxcexfXeVCpTexUx+W3eabZUzZYipZNxX9xQ+xZzpebZViOlTha3RbIyA1RYcBRixYNeUseUIecG5dUZaDpUPxWGuRWZV1uSNudrZUz+aW5bHRZixRmpW2kGuxeVmfJpdThb0JREJcvQpLZU3pZ4Jd85R85RgRdMJekZYipaPyZxBdjxZR+d1JWDxUGqB8kAx4uFSaCpTvhR25fcxF7KhuxXg5f/Zdu0gsZbQxR3+ecssJ+Yh+Qoef - -JhTfeRG5cRxWZpfG5Se5URxbkZDEZc8Jc9HnlIZCMXxeV40ctie1iYuPGIuQ1iQZ2Rp2X1idcCl1aRgmT1AkrpY31Ef7k0yv5VIGQlA8UkxdFst7yBdCb99lbpZ5hYSZYuEkLxeJgSageV4u16ZoCZFpUmzkAGXcmcCJYv5nHJSTdMkxjmmutZQlQVG0lvRWCVJbxc8uTwJb0CDAAPluJy8ESAPPcHSvoFvmHfKEAGzBV8cdqQFZ2DDIBJYa0QlI - -OKsaB+wi0OEksAoqPrJXDQF3cNQzhTMCaMTPTCpOJ70joJab/lvZdd1papbt8ZpJW4uZR7B0gKcSh/Ij/4QUYDwrkrBS1UMYmVWWZHqXG5UmpbIBd4+RlBUm5fveSm5aEMOseZb5suRWcxDtHjtRZXxFWRX50CcKmJEAipb5BYeuP2JYK2buBPZ5YY2YeuIDiX9EhlEtzgB4xbG5XlAIOCFBBMdMPnWKP0ti2WlmH92nFwbPKbDgFO5d42RbgmUE - -AFGKqkVydNpRFF5dQ2TF5eOwPXxOHAOVWKwvMxBcFpaF5XF5Yd6BcEBoLompU5OfaFm+MGUwBNYZv0CFXorRfa2SyOTcqLyOY3pWMJWxBSwOY5CYMhelBcA+RW2TWJU7ee8YXfpdIhQaFE2eVVhY0RfmZd15Tp+W1JX+eR4ZRMpWMZU3hZueRm5avpdl5Y12OexQohZ4pflJd4pY5PGOZYxZQ6udAxd5pU1RY/edAWYxha4InjzJRZQnYMHWRkhZ - -+ikhud25UW5QnYLTxeTxZ22YjpV2hcjpZJZXaBDt5Q5KCQgGZ5TOBLxZTROcyodDme22VPRcPRWvxYJZWaRbGrG15S+2b9mV8ZUt5S8xBd5R22dPReOZdPpUpEMgaBLpVN0D3pWPheOQJRULD5YMCmyWdUKKEYZG0pRaJNdF9CfdoebeFqsc7vFqWdFIR5+UPfsFFs/+Wufr3fqasfZWQnnpdbOReRQwhYhYLku5DgXsfKWQsseNJckgTm1nVXsV - -XibNv1XnYCEHnu6yQPBTO7I6yWUdvx0fOYUHtofOFf+b3BQYmkxKS6gb7jpL5bz+RJLu6yVEHjnJSN6UTUTB5SypqMKFDRetfkD0YoIb5yhXxPY4C7XJSYhzfFnkSnLhrQtjqQ1pS5lMoQIkAGDwRcAI4+KR9FcYAd+L/9ELTkWgKs2TebnmIIgMJXbKmkd7xfnEGMkC0xatcCEjKr0CJZRDGH16t/JRGJie4H/JVa5QK5NreCoznRSYOid/4dVG - -CK6GpaGp5UguL/uRppVTJUe5ZhxSHZcghW2hQzJTtxYJxVxxdnxcn5QPxTW5QTJE3+d4ZZTJRW2s95aLObHBdjJSn5SmpQbJVrOFXPnnKkapVQOV2JZ8pcdCWakbTzgLJS55SXBXQOWchTxBcemZy2ZOiT3paCxdSCUH5R0mX/JcD5Z1JTBcBy2fqggP5agqSUJbhOSIpKUmbO2VrJdUqOjxR8WQzlJKJUkAVnKFVwCARZZpOWmBfYRwoKeRaELA - -eRSkbCwhQh2fv5d7EY22ZDeffiMzcp7RU8+c99A0OGgRV9eQMCZvme3OaxrIf5UsqWEgG9uUGrHs6JDwkWpZv5QPuMgpSEJX9pQHRIv5ZrJSmqdrJVnuWzZeD2ZPAG/Jdw1LabD55dchVJBXEuG2SPlCdOQuZIAlqCLJUgFZkOFP5WgFbH1G2OUrhRUgS99qQ0vBJQL+TWFKL+cL+WQFRL+Z29jW9iQFYh9imFKSpecCt+5QrpcQ+Tj5dSZVcNKO - -6Xypb//HfRbpEJc4jNKoEUZ3xrG+KNCTcRWcqT+JeoIFGeSQFZDZsrhWnvIB5V/GWDxrk/hufgZwXTxZ/CqrqWoQAV6mHuLnIsGxqaMKSNGoQAy5k/es/kS9SuegL6xGnTIBMKIIiROIbsX7sPTcZjLBZeekmTBehuIao8e/5SuRC2ruy5UFKWDJXPJcLRTMxagJXDyT5EUMEjmWQVzHyfiBKHquErBQfFgX+Zp5TYpaUufMpWOxYwxeuZeE5eEF - -ffece5VCxW8pbLKsu5dqpDXRcYxRpRZ5pb55Z+RDMpVpBAcpYKRUc5TOZSc5c85Q9peR3I5ZdbZVrmr1JaCOAeZSaVmUFT3mXIhRBZe8+ffZXPmeJZdmJatxZs5eGENRZRjCr+bAFJXcxYcUCmJZe5o4xQ1JUVmRxZZ0FWcBarcPo+fN5Y/zmaZc99J7WZj+fGpTF6S9eeBZTCog6JeX5aZGdxxYt5RP5R95ZPRUPRbeilKRRWBaOcbhMHX5WYBW - -JRZ9mdWJYD5T7yDBeeZpTv3CsFX8iQsJRwhWEBMjgF5SRuZUP5RZXL15av+XKGW2pFtRfRBUjxXdhYCbtzZXMbLtmZHWQ4BYO5QXeVaBQWpWChR7KJgFWXBeHZRQ5WsZes5RXOZt5T0hbEFd5ed3pdeeEUFYTKR4pQ3xTOJfoZDaJe/eXDZWgpUQ5e18GN5b1KNxZeaRUweRHZcFIW5Fkz5emuh95gLfJWpVyDsBPLUroJiTlspWQPZgFtTATGRU - -rir8g28UqObJxYoOIQNFqOeikHJxUV8XTeeviHx2bkrjTAcBPJKObv2cyFXTmalXHogk/lKflPnsEjJPMZD+PAVXC1OaaeaVOQkfNaNP7sAMrrM5GZRXrxRTIuzvpnyTOSeSpUaFS52VM5C6qZfPsZ2Ti4hrIpzxT3uZCBe0fAwFUBSPCJY6FbaFZPaa6FRzxTgWQiJRpstAGUU6Yg+WM/D5NncIWltsqiQ7OusQZ3ZpP0DkXF9OKgBWU5e8qGt7 - -Hpqd7MsITsxAKjeuWJn/kGoQGuGLPBENNnVmMpWLkGAkidU2KNoqwoFWmFs6ZHyTX+UyuEDiMHZT4RZaZaqJcM5YKBaM5UxfqdxAtEjnyjXAASqaRSMg4I8ls1xa6WrcBgvEU4JSs7uRxflYSfhSopQLqTfZVxRccxTO4G3Of3OXOeWn5XWOc0FXJ4CcxmWFTf5VMFb6Qa7ZYSFfM+av5eh2eOFeSFUxOWt5eeggtxZQ5ZUSRhmRTVv3aYf5oVpU - -uEYSKa+XjF+fatuLXoOucZYMOuaR5b6xhYrCeEu7kP/9K8YLToEp5kZucPZdZZtZufRXpOCPZyT1akTZlIONaorDBAUoAxMWx9JUJaUpT/sN8FdMRVPJSZyRy5ULuW4Fdy5R4FZpJaFubnDAFFIv+O6hD9jpdFmvTB19jfUWkZinkYwBewBfmpcHBcCObs5bRxY1Bv05R7JVh2V7JYpUoM5Yc5Tp5cOJc1JWOJb/WZmpa72TApaBxZCTEhxZsWbY - -xRwUaihY4NAYxfduR++TE5F4pfIxdVJXRFefhVfJFMRasrM98usFYCZbNSGJFVXohlJXwxVmwqoBfNBShueaGgHZYiORZXAMZT25Vq+KRFdNBUURRdhcOhVm5WLpR8FSwBfsRSu5ZNBe6JAMFVZpfhFdz2YRFee5TRFUHBdZFSlhKFpfZFXlBSlhA4pYxFTZFerkSR2dGyXHyI4aXNol6RZ/2JBJRbWHAQsilF52XnyXr+eiJcO8VeRY6qfGkMfx - -YO8SyUHW6fauomyWwEtmEZV0H+5fi9o31LZhcjeP2SRDqXSpTFoqXWTd0fnvEfieHPNOaYvRWlZQEpYpCmIRZ/Vn27JXQS3Og9wq0aaKoGUprD5tjZqCRdyAAJaKAPBR5UA5IgFooRc74EUYfnEPCBnmVIFwGsOTZBukhVXcJ+ip0cSl4A4FYiuWH5aWNNfeLjiGNUJ2IVN2ZxPr4rOJYEpSsHagwBVnxS5plQJT1xTEFf85fXpeTZZmZT1RSG5d - -QJW0ZYxFXauYb9LcFdfpeOxbu5U4UGiFZwxe6JRehfcxZUZRNuabuemZf9pUtxeoWStxeixa25dHRU9Fe/mcYBSnpc/hcdhQdhb/botefGhbv+Sw8B1RUDpUoxVWJUZzOymMrsEmBb5JekFRARYRXku2fpWSvxbsWYoJPrJVWBQV1KqqacpVgFScFbDFVW2eSigvpYMFZsFXTxRTxef8FRFQfsmzpWWxVNkZJFTSOWIhUjpfixWNWBUFcLBfTFIW - -5SpFQCFYHZa1JRe5cg5aTFbXxcRFVZFS72WdFb0ZeuFS35WRuWkFYspTE5evOEcZUspadFQJ8TiFYTxXrZRCxanRU5FXJUL9FV12MqRTd2aYiXeZWdxc9Fdn5cm5Rg5dfvsnZRDiu6SKLhf3zKI4A06a7sG6xfU6asuNbFWn2XN3OYqXWpUDZpoqblOSQ4gGeRaFS3zIvym+RVWFCBJVTWqQFf3PEfyrYaRxcWtFBULufxTVOVzbuoqUFFenyFLh - -Y88AX6AX2dsZHg0hVOXoqUUGXsEhUGSIlMsZGatiVXGjGQYqYNOUt3NO8TUgb5FBQ7naFW26RgkY85HkxSuEufiYXlo0gIIOmUmgQ9loXrD5CDUMdydGxQA4fekQ0AA09G9GLesLw0qeEjd+MXOtcYNfpMVksemnFyNVWAdqmBBPzbJMonZvEjwbiEBjwcrFTBOVuuSjGDlxXimZo+uJ5dbMfc2aRRU2xfqltWiBH+AT6ngch2RZ6/tG4OFgKtFV - -sOVkCWnOf1hRzZWXpYFZSGZUs5cY2VbZR2ISzJZGZcgZXAZVc5f5mfLFWROU0+XCxTkFZ3pYzFTd5czFQoFinRX9pP9FcIhW8irdFXXOQMxMROUvFTxFCAlarFX0FemwPCtJkGRJGMeXqTGt+pdaiSSUN7FTBJeVIR7FdeRdAAvn1AgZugEGq4fioUmsddwnRCW62pU+GI+WkAfb+b2Ia3vCLIOi5FYkk/uLYMY5GL1ZAgALOZvu6epblm0ZLCkv - -ZDIpWO/HW7jGOBviLUAeipKzFdNpXpaInpUM5eeHtWFeTCZVxS0eWAhRyHPMjqXiQXMr4mRamUfFez4SEFR5eSEEpwBYrFeLFTCfE9pWE5do6MspQcJfE5fPpZAFdLZaJ+ZrZQppV8rAQ5fWBaJFappT8FeP5VJFZNuWW5XS8QIlU+OozpW25Z0sS6ugKDsfau1MgL6Z1Muo7tfyP5DqChTJxS3zH6RbbiaLMcqxtGgr4RpCoJWmfVpU+BYy4ufu - -OLdByJWztlSuOdiGXGB5AD9TEHKbNaepbnSfAIFEt6GyQqIIgd7AaXEfwGe1pImZV5eXpbiRWxFQkuQOxXH+dY5UtpTUpf5qfjsWtpYSRb2eYYkf0+X7itgJZERX7CqoQoolbabG65W85fbRWLFbAubO5eTJRghdYKZ5jlolVXhaJRRppSMlWUlVk+boSY0ORLecviGc6NLedZVMGRbg7kfvGxKCApOREGfRKjPswAO7IqTodZROOmIb4HGgLJOi - -ekAcGnPaMuZmj6muybMiqapeeqOeIBPiEIyu92PAJXCFUgJfNecjZb1+Y4uf1+dMxfUlZgxbZeU2mYAnOiLFY4bsmF3BM74J6ZT5cZXGuKMIxpScJYxIkGZW4Zc15bWZVtFSu+aCGc/OMQ0I6Js5TEZYO1jCWITI5ab5UgVGDTjEMlUvJuAPU1IWgFHNCg2h2WjBLE0AFrXsAdoIkNSlM6zBDRts2a0ptFFPU3LfQsvSPuhQNuZ5tKAFeiydTZOD - -Mjc2f00Xc2THkd4Oc6fjZblMXBrssFBJrTksxeBEV8FO7FFhFYZQrxLBtFRxReola85XppWWZYzZS/pQ/FXvJQiFdh+WZFSLFan5X0lYihd35cihfdFYFJdXxX25RZFSSedChbexf25a9FXUZYdRWcpQW5bLZSkseWRS9curZQN5avxbgFDUZayFbIBRMlbPUqfJcDhX5JadfA6le25SKRe3hacJfolck5ZeeVzpXz+hORdHZj2FSspXXxY/eV6p - -ZghY4vkk5SZFU5JbtFVQsK8FSMRbDpbLFYrYLmJdHwMzpd9uSgNlmlSShajGVIlNEuKqxesaBKkN2itOetmzqaJix2aFIJQWb5FdqSIJeTcPPlFf4QkIFdbpaXyD2Fg2lTh/I/ac0XMn1qbfAKlOcRf7Fah4AnsBYqZX6PW8YqOeKFe1oj6xVJBIslcjfLCkPx2dyFV0FGFFXqiuiJfpUQxgRUGvqTjgAoaTrvBQgbtElT6OjHLEPhHTsgYSkU7m - -9ieYrJr+AlUYhTP95CgpEyRjZlLxek2wnklZp1AUlXl7hANKQ5V12YoiKxZVy3CvFVPsTylSM5eIlc2RTY+fDyevxITgZ6fviaoAIGTPhKlZTmAJ/mxRZHmTKlcGZUmldfFR65c7ZQuxdORcrRTmlaA+Si4bOFdcpX8pQjpQJxTKRZORXHyhdpRKelMleM+VavnalRH5LAZfRZc/FQkFW7JclfCAlZ85QMBTRlR6+arRbV5ltRfjhcOmcLFcZ1nR - -ZZc5UTOV35UdRQwOaMlTx3jtRRqlaN5RguZGlQCpUOFYkGScZSZ+XKlVYxdu5UMpZyReG2UjFQLFfbZWXxdsRe8MrLFTzJZhlaplXvpahlWFpUQ9pAMrfSgRYEVED4lXuGQT8puGTkLqiJeFFdS1BypUPzOolg/RTykhCKTFounEaJxTNUoA1ITmTFFRzUHYaZL+fZ2aBJS9qH2ldg0v7Fd4ya/ahIqUo7o8uXUfMdiZs+ndBT9AQBpGLVimas0G - -GpaM6dHKnpwpZildbSuyAAAuAgAOFTGwEIu8n8DJW2DBjtE2NV2RvuTfinuLhSce0xU2wgh5AcEF0KMogLOznUFcJ2rJHOZZa5ZYI2B+lQM0V+lWIlSwifsmhK0CeWsM5r5pMltMX1uASCzcbQBXzLtSqYEiEdpdWWX0BWWhRE5bKlVCxcsZUdFdtFTiaKjxX48pzZSuxVqBW7lKkOfNlQalWO5VGlXuxUSFbocK2BdmOYQ5SqlQhlRthTGBb6BS - -L5CSFZsZuXeaMJQGJbyxSWTI/pdrFYvSYsFS1uI/FfRZbcZV4SMRpfdlTiefJFXUZXiFSixUCZd2ZQ7yU3ebxxQk+R6lZURYSXKpFSuZV9FU+JVURRdFYrZb8ZSCZT0WZRxbVJBxQhzFVOTOMZaDpBxlURZX/pSkFXTZQyxSMJekFR4JSCFZsZfDxe3pbSCM+lXPOEk5XeebEZWa5Sm4p6lTbRc4lYdxXWZVVlTT4PtxQBhbTlc+EvTlSc+dfYUb - -OVQWqwocDRQ6sfVZVnZbOEj5hTOaRN6MZ7kZhbxeTLpQiZakxTfCYPpD16U/Lt2abSZbLlb2SUWEd6uguaZGIY3PNTbnL+pbVPwFfOEa5UULlfxsoKZYkxR32ThJSwFUZspyZSqdL6ruh1Lg9r3BO7mhF8K5RXB2k5+mjIN+LA9wg+EuUcb+7B95JNYEuOa3vPJ8nmQiSMaMBEhLHxWqsZIsLpRfBOWm22AIMLoZWLbDxxfE+Y8qc/OSbdK2ZbW5 - -dNFWY3BeACJcgCAsI7DEhOmBFeiJ4coolWuZnKBbWZQ90rjpaLFTTZU25TcBV3pXZFbMZarZWIQQM0laudkRSXlQ7JUIjHE5UcpYmleA0JNhTXlQJFThucA5RsZa8bojlVu5WwevTFcURbBle65c0wQVeURuS8pcmZXMZZceE9pRxFRTZSPlVwZI8lefFVqlcillplXRhQXlTK+d1RTjlcCFbheQSFcxxbblNzZUHZStlZD5ULZTzZWSFTCFU+AU - -ccSlMbZ4cNJWIqTddgXJfhYD6gYioBM2S27P2BRzuuQRS2Ec6sZHXB6edFrrjEU6ULC5VZLjv5sI5ax0Yl8Ux0dQpZJEDnZTtBD90bsflJhq5KOqMIqmlG6dGFeslheQP5lADTCxADFTNiAHyJOuVN00qfQclHtfmXztnowmP1o4xKtFCehv6pPlyi9lZhLvlLkApbPsoVIFY5RopboJaVxWjZfY5RjZaLRT++fTTABcQscbdaZSTtIcjeBmBlXi - -dN0lfKlb9QmrFZnBXBlXtuZkRdyuR0JZDldGxMLOZ/hdfJS7BVg5bdxTS6RosFTrPztCzQf8Zc3edXmX+Lkh8PjRMHNnjkDmlCdlbqIiiEEvUSTAklOOLCnEZZ++dLgLNpaemas5Z9lfEZT7YCQVfDQGQVcxFT9lb35RSfnxBVVSSzFV6JaIxX+LkeAnlzFyOJwmiTFZUWcEJRv5Qa8XCSKWpWbZZ9RbGrMj5RvqVDthpFWd5XTObClTxFdCtDtR - -eCFTEOZcZX9pI0Fa55QLpdQxYqlZg5VTxdg5SCpfEFRNJB9FcHxQxFaxlbshfcgltxfB6tEVVLxAYVadleUuXIxS3lZTFTmBa++fAhippcXRfRsMQOYYlSg5Xgui9lWzlWe0LBea5+i8BWMFcc+RMFfBlT0lSCOUDldLFXXdlTlZ0sTEyew7syDknFcOlZYvJLeQslcUri6oLLeYd0BuBQjCvnxBm/AKkFhICKFE18UcpG7ucRMPpGLW8dyinsVT - -W8UP6JKFWzzA9bIDXDGmJz8oQ0iAKjZ7lhuhHsPeRRoqf6+Ir+aQFEX2ZtUkEydDZpGumiBS6FbmEXCBe2OR8VUoqV5lf7FYLmGPyuLhQilGGeT9ZmW6XilOkqoQkg/SiUrqamN6fmP6CRECSlJ/lErHuXWew+XfPuVLHCrDXsFEEdAVQebopMMPZaMRC0ALvMmeenoOlfuFEwJdPNU5e1gsjsEsempiRh8TMCCGQNysIiQNGeNqWqdeWhxYGkFj - -ohv5QtEVnKN7KS8lTY5W8lXY5R8lfUpYvJcN+fDyTT4uMonvFVkSbV6YZJW2FbcmqarD55tfZfBWTu5UkZfwhbWZVrFXtxYMJcsedmZfppad5Xnyh2ZaSxId5aNFa2All5bVBbueRGhbgRSumWCFlChdIVR7hbZ5ejlWisMfud1eeyVXTrhW0lyVYkLO/KUdxRBxehxc6VXjCdX4PYiNRqQjmfaGAGReQWcX6NCVd4lRWsEGrBtMlaJs6JgfZM/g - -E2sL4lffwDflJJEGxefD3EYum+UC8qbiVYluCoLJesKQAMUQtpDCreKW2IkAN5lLJOqgSBhfmAxQhQL/ct3qHbSNdIKYFXNJFnXh7coylc4VYRpZ5ub0VfIhaU4aiqa8lcGObkhTopZlRVYZWn+VpAZfOfWbnfBqnzl6LhiYefZazmv7xGWDLhFWNlTBlZtFeNlUqlYQ2Yn8TOVTNlT5ecppTJlYNhXJlSEZds5Xt/GplS/FTh+aKRVMJdO5Vvwb - -bZbgefkZZxxDPeZqVfGZQ0VdDlT2ZQqlcmlY+JYVBR/pSoBfeVWCOfnBZA5QvdL6ldN5YalfUJYfhatRcwxYeVcO5RCxSJ1sIVaTpVN5WipczZdMBcXlSu5f6lTs5ZqlYfla3law2WuVWJlU2sbqBeuVQJRZmZUMJV+Wf0JSvlWXxae5cg2YRlZXhcRlcd2bhVeKqvhVRp+dkyl5UafPu8Vf3yp8KfNibpEC2lY9kfw7jXYts1j6rtsvuLmU+fA+ - -fK/ldWHJAZqx0QAVS9bGcLu29H16YIFb29jNKmfCbpEAVZelMWBAexJvCgDBoTBaJtOaZCJ4lk/tusEC/tqPsPjLKIYn//o0BNXJe8qBr4FjWX0CKv6Oz0KEwAGUSlLFOAPK0DwqMWzKfhJuLtzLoVzKTQnelSS8dAvr1AnkkP0Fj7ZPMmqBFdHlazlQipBHxdvZaHhYFsZuSNdiLa5SRuKyfLCGJ2xUycPUJGnxU3mosoDhFdKlSQ8tClaugrEV - -eqmYtCNBxa3xbA5dTBuBFeJFVwgu0Vf0Vb0lcqldTAB+VWBVQZFd2lLXlUMBfXldtkNpFTJpa+hePlU8FWHZcXxbDhQ2KCDlZXuYuFYyeS8ZTtlRYlW4JaqlWYlZIVW8ZVnhZPhfcBKzFkvZUdlaA5cZFUPle1JaxxXxxYk+TmZcD+bnBc0VRVGrkVVUZdTAOlVRrTMIlbNVXdlR0VfLiC/5WOFQIyTJFZNVTkbIvFWDecZZRIxSdxeHYK/hUteT - -3BiE5chxeVVdfEFJZW6KjJZTe5fiIH0xU5VYRKKCrjDhZchbH8Y5VUKyvdVXJhTOxc9VehyK9VTXCfVVaBeQYCoJsTLFm34TFrtAxMO6TSZb2SecNpLhLLpbw5X28U/lMjIiuGZTmf66LZRaZlXnsIUGJcVWaeXnsGqFRilE2pR3iNaeRRxtjVVNolYqczbmTUB2lQtiU8RaiZUblcXpBrOfxYGLlfhJRDVZrVAiZZJRs2leNCXaUWhJdhvr32Vu - -bghoeKgnSYmi5JO+MI3GLZCjZpYAHf1OIQEmUHq/lzbNyIAAiIeVKnMaIIirZLiSLZ5TBxmx9L8xX7XOzaW1QTTZm+xXHlROWNSPHqUjDpcSLqfvAzmoxco2FRKlU7IL1haEFeQJdnlZZ+Qe5WyqUuVQG2SmZaOmb9VZ4ZZseceVcbRXs5Qm5UipaVZqalevlX9VZ/FaeZacOGqVRCqbjlWvle9pSMZUlVSE5eBVb9pe9lY+xUbZfI0vx6cBhQ8p - -S5pT65SJ+XJpUpFVVJTX5OEVYF9mH+T9xZhuRcpZdxbHVbY8KT+VsJcxlVRuauxWu5T8OY8JcHVfkVUXVS1GB22vt5cY6JqBagMMXVd8pcehe25RXVdRxZdFVEFT5JR7Zc25amjlt+Wt+ebVTSHAnVaJlVdFcqVRshVmZbbVa3VRrRUPVS9RVuVRiStkFSdtFvpb7VUZ5WOcHPVddleqVSG0YOBQaifqiYAqvRVT15EW9uDVazVW5si5xSWEdQRQ - -OEcjCrh5QbNvPRcZDjqhZiviiKXdYUR5VssRxJuz5dXAiReSDBRlFhVFYZRcT5W6nGYyZ1rsNZTdkXbifC0qftpXctQ5VOmh4LnDUWT5aYCXJ0b02RDHlcZsJKIDwTr6hmVQUQkMCAK8L+IBUIBiXmwqNLWFtxIx+scXtbeW4wnZyBFUOGqgObFvgI6gDlWAemNe6SBkLVVVuWX6BK+JX54TlwGMxUhBdUlYn+VDyXUlUKVYSRSKBQwVTbcOD5C0 - -BQ/BojuDXcp0pSKMbXsJGqJwVdJlYGZSoeduFTAeR3VY7ZeHuX6JWMlZPVXuVQGlR0+ealfs5aHVWIhffLEFBYC2VrRXlVaSxGD5V95cgeZkFbm8PfJX4VVK6EQMTfJSuVfrQJGLkdAO4Vb1OfKyUuxVlVYpUJYVY7wICfHxit3VVemdOCq5KHhCPOOA7ZUvlS+Jc41VQ1S6SIvlQcBTLrl41bemT41RFaYKFbTeYfXpYvMBSMX+LF0U2sIEvBJB - -MH+nEvMPwtKXHBpDpcq3sEo9qESf7UGzHB58eOtuk1fE1WEvGOQYz2G51BUAj6MM0WAKFXDsq9UIP6M6rsgWZbwYRgfvgV0uZpVbUaG+Gl2zs3vImgX0BJ5CC/uHLIBcYBQAnllZpeYbdkwwMWTAD9vg1b96RsDvTkUUlbjpUZJDgRSe2TPvB5VVJ5TvZd5Va6yGeAMBabKvk5Ml9qD/2QKMRSBEiBobVQcmENlVp5Qflc7VaVBKUVTWZXeVUhZX - -LZQc1XwVYzOeYZT/BZ3lULOVEmZ/hasFS2hUQhTX5djFUbJejFSA5dDgOM1ddeQ41bnlU6mJpZdARc81W3ldMrJARS9mWZWfAlXakNHKGfgPddL+ZF0nkxCEWxWYnO44GNJIp+txKAUSUDQC4GbJIrH6sywfQZkooJZpGi1VbAh09PjIFi1QsSuPYKiMb2hkoSrraE7ImGmQ9idm+eWiESAOECnNRDtxMKJCIpjNRL98FUnMmmXJyaYITVQA6djQ - -qm6wKIIj0mLLFDnRjWnF85d0mFjFQcFTjFerVUYJZdaR2jESPo8ljXnI6TDG8Lw4EfFSyAiwcf60aolQIhUkVY+Vafpb2ZfCpaq1QRWWtBevZeaGvy1dlJZ8+blJZc1ZfJWWJbp5cmle9OZW2WQcsARZq1ecDoK1W6rJjYJc1ea1YdefDFe2TH0BY61YARc61fxEW4yQmybmsCvmQmVcaxb44GW8SoRUKJvfdG7pABgsPAMSkNGVdqmeG1aR2QqJ - -u8Ggx2eviPCVbCpCJ2SJkfOwhZNPeSRilTulS5lPQiBg6jHNMzWmi5M1wVuBoQAKvBPzBI5kTElpW+SgJEIIoLWhx5eYLOo0cAQDsctlDs9vErVZquKjdpHrm4VQyypy4F8Gs4FbkqShBeqJdJ5ZqJfz8HWJtVxUZwJ0phERaiep+FEcuUfFVK4jSRftFcsBQwudxWSI1duRZjlS+xdn5WZFXEVToBmvpXI1ViFbzpFaVYnVSYlbpZekVcNBR7WQ - -vxXORZjYgoVf9lZHlVLMrGheShcteb9WX8xcrVYyqra1cDkE81TkVb/5I7gBPgByqtZ5Q/Adx/naVT1JcNVQDldiOWCVbiOU15WqRX9lRHlTcxRFACoVd48AOxEqwGG5XjpX+1Re1aY1RYSgMih21bAhqB1dcxfxxTAFWY1e21QwJWiinQWdm6XilAKikKOUo4CE1di8GE1V2kFm0GJgjR2RG1bV8YWBmKkCGkCvKeGkATfGeBemkBQJjKkMx1e2 - -9qx1SmkOx1dGvEtusXsIlyAE4LPARUrkJ2S0GKzmTIqSL+VQFajPokAGzsvEAIZYgnUKjwGJlpekKs9OKODLWHy+TpPgA+QBBRfPK0cUgPPAwOS1KCILr1JcMHo1R5cB12jBBZtXlZYKXWN1YryVXQ1QQBVMxQYJZ7mQO1VLBXQQY8+tB4DrVUi/EOrl5cj6KRKlSVEBp5SolaO+fn5U2OScWUowQEZYlBflrIj2SuJSgJOW5fPlXFJZiFYdldw2 - -eplRehXOvDlVYNxSceZ3RbW2bkokVgONqRxpejEQD5T9mR1IBm2QE8Jl1ZzuIZ1bmpQEVcplUV5TjlPzJdZBUquRFJaseR55bBWPnMNtaASGAHMjwBBdKiSGULFQchW2lGj9PAiNpoOtYF4VSSedkUiX3K03DGJtqoTYlQzFVPoE19hmjOCDEcyIhOS2VfUFdt9kMQlhmMmGB/sJ+spuFZaAs6IDqxOy1OnphQnIdVfGhTaEclAO0mXOrEO/FzIQ - -5VV9Vf+2a53AVQOzUamkFXiPamE1rGTxeD5fxhMLoCZlHyINDAQpZacFTl1bCwKzpcUIGjeR5rDMRU1QHx5aEssSgLIQol1ZSIH91UO2WSELIxVx+TksCnYHNmcsVYljsz6tGBT6BbF1drxEkmTD1ak8STldtlfbWVqHEj1Y91bDwqj1ZhZRkVdO1r/6cVPGRmV4qn1ZeRmSqiJpnhz/FTVrTVsSKTdkKQpdJkuh5VSlvk5UXWRMGv6QsExbL6tp - -hbF+Qe3nPfmeFWqSkqjjoESZUUHhlY0SGkRFITjdN/ceIIWXZYK6HwZXJUcJeXHzFiBZsEpRYegMkCkaxVl3JO00JfgEIsS3FU98T6OkvBI5nAhTFWgKEwInVIsFnjWW9ibylpS5XajswJG+Uu5wMzFGZhjTgMhdJCxj6JRl+puFX16pE5ay2XlECK1QO1aAhYpjL7SPP2GcUvv7Dv2elEEfFVuqf5caRBRwBS15Wghcz1rLJQKSGi4u5pesZdqr - -IP5a6BXdHDVRaLOLRFf2FYr1A9ha/EL3OePme7eRINq/ZTJSShZQa1e3YghhROZUCFRBso71btVULZcX1at5aR+et5c6JeX1eVhL05JfVWefmG7p2Hqe9BL1VN6awsWW9GC5RfRb3BAF3t3QRpKWdmAHzNadIy9ogWKIEtFAMlCmp5pvUONnlnHFlkjlReqMo0JgezmUwJ51HmxSnNLdoEqqeLgLxjCOiCuFdXKS5VW7IEWFXh2ax9FM1VmtvWmf - -ylYUhaKBXTidv0XpJchqLR+Km4SHmXYfqImOeQYOxeSqUghVClW0FTtFac1YMklSuREZYYxfKlac5ZIrAlyLIaVNRsvpalBa8pbuJZFJdqVSRrKOJeSAMkVVI2QvdHNVQoxVDFVglqOFemqll0huhXdeYMgAlxqtVUgNWVoW8ICBFSDpYmJfyeXBZXP5S0FUXRd/5baol1cbf5WNec+Tm+laZpWzRXf5bY0qC2WF1f/1d7CvOFdcRtdVcaQGbJXS - -6LnOWkVe1YXJZWaRdLoon1ToqsaRb95daRbsZQauUn1dQEqpufUUpDBDp6htSt/lTq7rarqxVWh5WWEXcmR9kcEXulZawkoD9pOaXPktNPKMLrqiQJRhnZX7HF6mXxVZQpdFNrqsX2uT1FsL2sAEHgZrK5eBpQsAOyADAAAeQG05lwEJgAOfrKAuLF7p8Li3SFGqbzJHpbopFHK2LIpHZtOttGUGBDAtiiBMyczRgaVbZxK2AvWRpF1d6uZZ1XWx - -a4FStpQ/uZ8lagJRmhfDyaM5F3yBKVfXMZdgEOkEfFZOisoleaJcHus/1aORRUhIeRRiha0FYUNTHqHJFf9xSzZTARd9FZ2nlbVZfQP75f/eM8hY2WQjoEXwBdVdkuGOOm9hcdgS22dF8GENVteWMKXUNZNcSNFeENYd6FNlfClcC1cJvuiVcuqp6FY6FQFld29tTmGQWYfxTEpHt6RuyowkbVpZ9YYO+h7wZRSDHvKjPjfTO3SEp5vmgF9BjYwh - -DorluKhTg3KE8EvJJOWWBFRV9JFg0sgXPrWHfyWFdCmCaUDEhxTqleJQgiLqTgu/JYuyohBQWqR2VTkhe8lbZ1W/2QO1c1hSsaXiivCUOkNQoOF6jJdlNkNcTJAI1SoBTuVb81SD0GU+SipasEOLFQDItt1fOmeDFYBmSceV12C5Zf0YA5Kr8pRehdiNRd1QD1feOdWGcpTOdRXGsmuIDIyhs6G11XRWoh1TDsHAFdrmDUYuSNRFALAFQ1HIyNfx - -EVKSn99EnZZgWZQkkKDj9Whg+QefK8KVO6RvVQdYWKxkdYScHmxVqmqZ0Mhm1d4hW2zthpleQPAQS0AMi8kA4VJ1TRjC+sMmnB+FecXixciV6aJfOVeZWeYs4AzFE/ttGvHI8SqyOAlfVmZvBusZTBxCIlWzPt+lS1lTnIu0aJ7durkFVWZ7urpbHD3ARBS6pfwVtJYJdQFnlVnBZnmYohazJRRBXOVUTpeCpdgha1VX+VdF5W5dEpWS0NQoVSdh - -Wa+c0NeCgNN1XgNbiEIZoFGNQmNUwNfn1dMFfCFftlSf5WaNTamWH1cqaDAlYmRgrqbuFewRQX/gxeWIOWTVTcPP6eeaFVglT55IcqCq1iNopflH4lYmVUbMnykiMfNsfuHmAL7HA1YekGb8sVNLjHkPSJr4DD8ILTpI9ghSBdyUnMZZdE83i8oLQPr2iG3gIENcxSNQDtq1E2JTYFXqxdJmffJRmxDHmDV+Qf1ch3nyleyfrhobHFKYFI0iXbJG - -4EiC6fjCdkNcdYDCNWq1dPjsUlaANR2isCpciFTcpdQxWUNWTJe+ilvpa7Jet2ZlgDSemQ1Z5wA3VSJhRssFQNSbZX25RVmNNVWehSeVT85VnMDk+b8ZVZwuUVTeVQA+XxFVEWB0Fe6kFArBrFbehQxhb2GLJcJvKc3laN1XjXmmwpDWp7hGFJXueX8FS8xG81SQRdtma3hQUVZVuRfWJ+1Sc2VRQRPqJyVQemL5cShcVNaGm5XRNcSkUCkCN1Wz - -FQ/8JNFbFWNxOSUpb+gsRNVuRRn1cmucINRteUd5c0OM/5TwNcJNafmbhhboihAFTqRTN1b28k0ZUINS10DxNVHRY4NARpXxAlpIMn1aOJSJFVFObrqA6+JSrHOZXvlRBbAMlQl8K+NeFZcTJB+NfnOZcFeYxctBZZNfjJeMRaZOfwNaX6QMBSt5b3lYMVeq1bpHKRmA2UOkopIBe/pHpNWw4AZNSG0RXFbn/oJVc5Lj/GctiSuaR+4Hh1a5lVtU - -ijWktUlL+VQFS8VZJ2YlNSVZCtUtVOctIMQFb4yS6iFSpV4yQPXmX2cISjlNZZ7n4yT5FbGyZIFYQFYDqGgmW6FbCJQmEWlFYJ7tj4C8RQS9rqeR8RQgGc6FSFlQc5MslVQ7p99scHnXcHNySCPCrpTLqvHJdHXCl1p31clIY7XHkLnr5XJYvDirOSjXlt2NQz0Bw0oHnPMRIpMAuAEk2MpMD8pJI9uiKAbqWWVX1IBWUDbhHA4EK9o4xDYwbRpn - -GxOc2sIJvxOQIBUejhoJbmNT3RW71S8CEt4p9jvQcaRVFpukYajzAqckNkNclzuClVMpVmNd7ZXO+d1xWUuUGNekygMNSgOSGNRt5dmNfpFQ55TZNc8WdGNbvlQj5ZP6cvlU62cLlAgZQ8ebHih/1ZBmdJFR8ZXApfwVdMJTYVVduQU+Rq1SO4CSFTE5F+NdE5WTcnBNQBVUcJYjNZ9FaBNSO5exNX8uvRlTTNWalYsRciNSehZyOVPjpUVRD1Yd - -qdUNeDlSKGkD1StVRJNRHRT95ViRfJZQQNQlJd2hWPxSLNWm2rP5eLNd8qrYBRmNXXchVBUtVfCjJ7yttVTJNasUATNcwhVdNbAlTTFp8FRSRsrNT3RX7WaeVRQeBj+dJNXrNZfatZnhxtE1GV7LoHsP52SHsBDLljIguGfjVXnsPi4mMZDxqaV+Is8Iaec+RXaeahuqI4KJqQZCEaeV2OVqxcjVXilClXO/IDjGbmsLbLviJlxdOX2bGXJj9q+Z - -OkcZePMF3v9kfE0WEUYtSdC5QzgkNNdqtt28kW+HQFUNUq34ZbLpZ2cX2eD0TRvkGxe7OjvkurSeKpSFxTUnI+kNT4QYUk/pNvFBEwObhY2gBm6AnJrmReoKWm2JQ4bB7HlwEU2AbGmTsMUpUzlanmKWFSnBb6WDdNZYiGwiDYZVgzBVRZ6JKwiobJei+NkNR3EZVRfn6erBRTJX9hXIbt7JTtQMlfCWhV65RcZcDNaX+efpcaVc0RQLcuZNUYmX - -NiHANaPpaugDSuQBub6WBUNbT2d/ea4WZvNb1uY2VcWJV9NeRuAG5VNVXrFVwMIr5K5JS/NbxFejNQ09jJlbvNSpNRixQl6SDNcssnfNWUVXxFXVRRheT/NV+XJ5FYzxXZxbfaZi8CD9gVFaqUdS0U9cVMFCGRdVMrWlaVNYBJdaFUO8cCVUGifm6eNOXL+R0yvI7gyVtKhQ1Qu4hiVslOPgcisUkX3ZnAAGAypLTpffr0tMEsLxYTzBJ9iViABO - -pVrvtoVaGQYqJq2sJ/rCgQfn+jzhOYuSCNt7uSQNQjIMBMQzis1uamXg1ldylaTCZf8XaNVg4hHuC1yOcrOJgPT5nAUl0SsxJLPNb9GQ/1afFe8dnq1WTZZ65V/NVruRClXtFQYtXV5YbZSplSNpJ/NWYtWipfcZWLJcoBaAtcVVb4Jag5Wwxej1cTxTFmdFVcI0Y4lefNRBuXZNUJFSn1QDIofNWCAhZnF/5V+dGItXDNQZmWINfjNWlvKIteFs - -KCFcHBWu1Z4tQCZVhNSBVYBNW1Vfj1btle85QqReA5XzFd4Vc4tZCeSzNbj4MuJXLJVH1aCpuUZRJBS8NQwOWYVX8Ze25WZFRdRTJqMBNSePMUNQUOVhlfPeTURUA5e41ZMJY6BaNRZ3yPBVURNtZZccJZNlXqlb5mc/ZbO1YMtefFeFOb4tfCNSwef9NRVkNPlb/RjH1ZfeZ0sfMCRpsULhbFXE2sHNbACSgjQoTGUtMtqFFqrEoJa3sBt2MAmG - -REPURCKkGPpjnqeSiTI4P7KEWtoUnGTdqNiDHsKLOLbTJJlLowHcxBz0hdoBWsNlaUBGppYC9BKtSEyEW03CctY1aROgAwtOaJs0OR6JrcgZYvPX6HzeRk1Z6yKSvvbfJTfBviOCGcLeQCkLqxTAmTfSpbIObUOpxRWsDKFSHNe7LlT8srqc4RuSODQFb4yYzVegIu0qLMniP6Fi5XvBZKZS5lNCEA0AFnQKjKPQJrVEglyoEAAzQIsfBXIAsfFP - -Zi75WK/srUAY5fDEE/ki0OH46uXRSn1lK5ay5et8V21SQ6bY5TZ1RqJYYJfz8GAXCLisqoTLBEbGitWW72GWWR6NSwyu6Tu+ydotX1hcEuVK5V5VjK5Rr1SjkYBLLBZMzxtBpfQJgYbuEctajns3mMACy1YwGXTRVXiPxwLcNbLQNTZMcKCbvh/xmaVRM1VwgBkclRNTWRaB8WKtQ4uZ2VX8NVKtXZ1bdNRjQeTYQm+R8jJT5H5JDPKofAKtFT7a - -BFEb6Zeepf0pX0Ze7BTMtdbVYxlU0NS0mVDNesJSiFVY1RmtWmNZm5eDNemtTImZmtVlOiVVXOxfGNd0NZaLv/FctlZDNXmtWsFV4tXtld9NVa8dBNfmNQJZYLNbwNVkVTXhZMtR7RcwNbctTducN5eZ6Jv1bxBuO5SeeUmZT6EIWNSgoZDFbPhT0tY3oA0NX/sr9FYUtTOtTTFepJd/FZq2TwBGRoLOtXgvAhNdJvMmJbrNfxZZEmW1mMw0G0gu - -k6j2tUM+DeIIPRfTxbUFfJNcmNcjFfNmeJhdV0dUJQbNanRUuNRggPZSi7VZNxc+tWTwbJAEF1UrRbGrPxNRaVS61fIeQ91SjFVARSngSJldhNQiNX9ZEJBJvpTo1WetZ95dsFUl5QHVfutQ95UetavlZaBVJNdamSbNTktYbRXgun+ZfBNKO5f+VYnVQUtcEyuY2Wc5QC5aeVdktaZFQWpRqlbpNWUwPpNafMakFfBeRkZSa6RJlW7RbzFVfFX3 - -lUweRMtVAgJIymXRRLFeMtT4tdxtXLFeRNVmpfxte+NYJtVLZa0VbnuV8OZEtSURW/NcZNf2tdXoBrFd0JWxtbe5RQpmBoUEnj1Zbh5ovOf+kHu8CmccsEOO8UTVTF2cF2Y/iLn2T/lFN8JkafGmF0rvfSj4lcHNQ2NYzmYyFdUruzfC9oBVvFaqR1PCuWFxIIitYJ2XAUMJ2aJ1cBPMJ1SzmeN5IRAVlXKHNcfiIm5JDBmM0LTmao7iBSLCVXil - -OHNaAkGB3iu8SDiuDWp6+EWmPjIpNOUEgGTIgUGT5lWcRX5lc6ugfxWQ7mNPKGiQn2ZUXBl2YcLk1NY1Ge8RRVtVzhZAGdW+I32eVorfam6DP4fAGxd1NQhJVIqUhJbjmM1tQqKiD9KXzNv8gP5v1iX16IcRfypWiKTy/vtyfviD9QIRLPuSXU1Qn2FnHGDMII3MoAElLGQMInHOBLBR9sc/Jh2OszJAwhfik0Ep3hOPvAjwkUYLjgDmEmx9DVec - -A2XmYH16kMRdUObpwdaNWL4evFZDJSeTkwIhrsunAO2QPDJUfGKcWOrkMClaqPlqYJeIRK5Z6pRn5fHBfTpWHsRNBVRtYsKpmOa4tT+ZaWoh4tVehT2JVegBXtjmtdUmYF1STNVAtdH1d/WXDtVEtXxFXoPCmtaU6AYVdduYqVb45YYtUNVVUVckteruc6ub5GXKRektRYlT/1VjNYZNUP5TqardFZqkL11Q6BfUtXJtb1mS0VfzFVDlcCZTeVc7 - -1eLZWDlQ+VZRFfI1VztS+Vd/NUrZa1ed9lcgxYmNVouLvhKUZQztaehYNqaLtakZfqRYRtYgZeXUFbmsQsZZlbZlUxqSSpW1NR1UogGTMNc5lS88inFX1aQ7sE6WY7NXxqc7NfPZOUGMj6dqxcX6HFtSTGQbUMuGd44LuGbbtRbtXnsKatuIlKqxRf8pJqVTeDxcWHFR4lQ1FsU2QIaYE3mXUCU5hw3LNNVMMLHkneBIHuGBgPN7G54A8QWrIGKJ - -N4sEgQSUARIgCYJHzmJ8+uDZSGkIYLKXEK7yIPJVCuXJtVNdgSmfQxZdtTbMddtV7qfqlpekKERW7XISVqnkcn8kotAxmKFVRqFoSzoghJFVV4ZWolVYtbB1djte6lSmNQ9RZfFbnVTXpfbRTuZWgRn5NbRtU9BspVX/NbWWQ4tanes0JZ3xXUJduzOpNfdeQ2tSs5TGlTPtUHznPtZ/pSYvFRKPMCKoQr5te1ojmFNYvCW8S6kJPiJVWoxaGKkI - -DIDZAIbJYFtabFtgyW1ovLJqjmf5HteFdwJb6xtKdiwICzQMIAL8It/ZDcEo/pEL0E0AD9TBEhWfEoNArLsi9ab2iL9gLa2MIaVIpUopVAZfrFSwSMopXkRQq+eopRWFZopZJ5Yf1Y82WJtlD8ED7n/XAipLCGCNLF+4NfWLXtYDjkIEHmnpHQXotWIigstXLWWXxW+Va0FVwNYvVTo1Z0NfzAv1ZsthU4tT7VQDtQNBen1bQdd7VbspXjNQJpSw - -dRJpYe1QT1f7VWhtTpFRROYLfmo1QWtbu1c1JaOtcuVUsJW0+QvdJAddloCa6V15U6lZLtTVJd/dKr2cYlSIdcxtQQdcipYA5QGKcw2T65eteYcpa8ZZj1Vodb+xTodQleYaBUg5d+OdodRPNewOXjFdt4Ksmd56O9lIYdRYde/1ZmpUwdVb2dJtQINRPlRUBXEJVQdW+KPh6UOmRXVQOVl4dbH1TwdQnuTPlZpWcjtewdTeZc4tQEdWEdUTle1V - -WQ5bZFdAOSMtXEUPD1eyBcX2tRFQkdRkIclBTF1akddp5ekdbsmTDeQGPDltXPZATIIQtZ7FU6qf5FUQtX5FTcqaUdc66jdKnMNTVNaNKtrxQPuaEBQN+JFNY+PAi9s3WR1tUVtQKNRZpBuSV4yYzIv2lc6uglNcX2astXIOYEyQQFQQWVFFJVNRzxZVtUnZU0dWnEWnZQKZRYRsQ4FkxR17GjRTFpWoRWNZWLFg0KGvhACAuazBKZRQlS5lOdPP - -+8BnUBYrEjKPKlHGxWBgLcEqMAMALO01GbWD1mKzANaOM33rytSrAPDAJD5BgiJN0hPtbUJWB1uWdF6tbaVZBFe2VXyVf6tQKVf8NbvZfISHQEIJPIldh51UOVdXaM4irDoDGtaDkMXpYq1f6ZcmlQAeZ81XCle/eaqBfSxcu1fwBaEdTQdZuVau5ZXVcuWWveYxcv2WUE+Ud0thUXEtdz2Z/1eEJWtlZvhdLZUEdUaBS9FVu1QyddnRWzNfJRRz - -Nbd+WSdfsxaWOCItaEtagsAtlXXVYSdWjNUq7CFUaCgKYxZTpa+xcMVVPbLydZNpfydeSxSlGoIwJZnopFQodVegJANfCxYXxZBeWHVf9xY2ZdOeReVZhVec5fSdRqVUIefqdegyPsBSSdeqdVZ+ZqdZLFbmlVZmRSxRpBsrsGX1Qj5dOtQtkjzNQFhHMtQ0ke+pRJZRNldY1R6dVOFb/FaptVhmUlEhpsWvVZvVczVfxsjIFVA8RLlWdCTSMo5h - -dNijGcWpUT4aagYrV5G2Fov5qbiRU1Z9kb4BVEBf26eSZdEQgIuSQ3CqdLHzKz4LuLuc8CUdVglZrIu6RaCVU6FV8VRrtU8MSIZRqSkmqB1NHedIyJVNtYluOceolcD0aNzQK8YAv6BgVk+GTz0Oy5vCRdo5YeELl0BogIgwnwtWlwoZsMh8CdNR/xgqeUppZG5TQVhUFZwhgXtWvFRDJcXtUgdeRpb2kZCVBxNf3jjoJhjFC25PCdSvmBBlWepc - -t2UI1RQJeKdS81WSFeWtc/JRhVbG1uEZajNXkFcRVUalYVmQ85XfeWTNS85d6dQWZUaueydTrFSxtZ+ddSOZD1XQeUiNV1kUKIYANUXydIloQ+c+TMxcf+JS99mfxd7tW9LrUddGeeiONhJVajHAtUjuWm1sRxquYc4usT4es4g0hsHtV98BAijv6EDTD0CGhoeNYFKTB+AEoQJvaM05YOdQVla0xfHids2VjAMFUMglEuyugypImnadVs+ZGDsP - -NWCdRtpbB8d3JGNKYLqZQDhusPJATKVeBmjW+kAoo3tTq2axdc5sS2tR+ORJdVSxTFgQGVXq2Jp+u1kUikLowbhdeWiJWgBlVCwALRjBQAPEAMElvUvNi5LHkrmeFvkby9ucGjWsbseGohuPvEa0elwoy+MMyeuNkylUBko+3POtX7VluNZKvjuNXu4Ti8jzDjIwBUgH/PBhhj9RID2vCdXo+nKBTJdQ6ddadTBsAjNfKdZs+YdsIT1LedVL4kJ+ - -X3VYe5S+hUxtccJfHVfFdeTtYeVdpOUG5UBRTgEdXVVBmcY1d0VUFpaktWDNW55SOlK5NVpFeVJOcHhZYJrfg7BYldahxY6VeXZnkOTCpcTtU0JTUJZcecxssvtaG5Ti8Z3eR9WevWdjlU62TJtTV8p1dU3xcTRGn1YodDUVavWc1wN1dYxtRO5fPKQoVUWJcylcOtfEWZO5TNdagNbXeeHudrRYtdYcqSzhSLhiPaVmEbNIEXFTJ2egtY0XNHNV - -Q8XV0B3uX4cew5bgmfQRezVTIRQ6UXyNUcHl1tThTgJvjDVdzIkmySlFdquiGunnvNJVVaQLJVRhWuxxINzEUkTjmGUxSSNKrIKjehPMCMAJjKL31mO+CHuMZtEVgT7+eFuWcqmOdbAwBOdaPAFOdTKUp+ebiIRTlTENdBFfWxfENQFqWmhQ3uHifLKNHaiPW1XBeiJpsFsFKeNgdTTTgROKlzvgdSNlWedX81SPtWGNe4deH+YkVamNRWtbs0bN - -lZSdS72dSdSdFQSdS3VcYdRTtfidc3VTqBRztbF2sTNSQdViddsxW9lWQeUzNSrZczdQjlaaIP2FWqde+dTdRcodYrde+hcRqFUtTDlbd0vIeU1JWrdRglnYdRqdUYdUydTURTLdVvNdedaZSnTNUadZIeSadR5NYadWCpebdXt5aBVQ3lTbVTbdfEdeauY1dcGNQ7dXGNbmtWzdYoheYdTM+ZaNbWtSoVujtTClcmleidffFR+daGNaDNUzdc2Z - -VHdY2tRMJap+ZlVT7dRHVaQdd7dUWtUHdUl1eIdW8+VJtRXeWFdbLdbHdVhVfDNSkSHTdQhVbYoBnuXndXPleXdcXdda1TmaV8ORXdXc1bWZTVRfXdcbFehvrJ7kDbpColSZaExe7ct4BaqSsGHkGdRgsX6FbSkhc4i1SaGutB5e/ad1Kvr+rXPKCKfZlaqDjk6ZZEEKNSyZVddWKSnQ7vX2faFQ8ubPadypY1tW9kD1tUxvrjmMFlRvdZtdc0Li - -TVZt0F6eeX1ItrnxbjJUc1wvZkulpbfCsK4Y13mcjuQGgOhnzheKcHeBXTGtJMSRTGt+Kvsb+xvC1uXNb6xpSvpheEPZiOFJzGsEwC+sG+Ik/ehNFEZdcgQdk4d9mKMvEm6RvIuFWrrqIItZUea4QLGJWRZfhZQXLjgFcd0rH1BxdZuSFTQKUlouJJxoItFYFgXS0DasDGtfCpFYpSXpUq1bWZS1VZymWPte4ZYHdb7dZcub0hV4dcWtZMpT6dVk - -FbyRbTZZHVXOdRw9dGZWuWaldUO5Y/ZQBBhJWGLZaDlUI9QUOR7dV9pQNdeNdeKJbjJZw9YzlYAtY4bPYtbjtRvmW7edvmR3tZ2teJtdKxQqmSH6Xi6ZzdYUVcetbitFqma+jF/pWwdVTCCoJZMGUqmVqde42e0tdTlZdld3xVLtQuterFWAdVPjprdTBNbXla8ZXEdfktYgZU49TSdQRta0tTQebY9VmtQ+dVTNVktftgCMVSLZbheSGZt0FaJc - -IkdRSqT+dQIxcJtZNdHm5UEVS2ZfTlaBNpswu7VfEkVe1eB2SFAKI9Y+ZelSNl1Z9OSh8BthSqkDI9XREkBtbetbJhaU9V3eZ9WZkvkkmc9mXetXkdTuodNiS2aVDVTBdQ/zBbhH2sCbtQKkPilMBSFkIDFtRvjB/lJVCaiVWzmfmsAfiKM9bmsLZtQzmSref5tQt/iqdPnsEltQJqTWpWf8hzbpLheTIhQWTGyQ0XDyNTQ7vUdSOBY0dUvdfVNX - -vxTaiYU6dyNRVooePP4fBj9sddULmVgoPlNeG2IainOSag8T7NeEGNWpc89fSFfE1LcRYiBaphTR0uphbNAYkdpGQb/dehpo/1MDGIWasQAOlgfOGLXGKrXnDwILZDMOVDojp1VtTMK6Jd8NHpS/rMM8G8dU43uXLASOWU9d3eViTrv1RjOfASeMxVZ1T21TaZTQVbopb/BFWAI6ZZtpZD5MK6FLRdN2bROF2NaqtQkWvEYvsQE8ObFdeZ+R/NeD - -tSfeRldSIAYDNeH1aRtUh+aXhUUNZAFec0E2QN9sf5ZRZNVo9bvlZ6VT6IDpRTadfrNSXea0JfLgY6+cxtXBxZPtWXeQg5WldYZNVK9XVdT2lF/ZaVdRuIHxYKK9T6uQ0Ze9YVANYm5dBoLdFRRtd3tdw9We5dA5d0te8FQXxZadf3Vfl1W3hWc6H4AkvNcoqM+NcRqF0RZI9aJRUFdUqdQI9aLZVbdTKrFW5cOZYCFY2khWJfuVXolVwdYhWXaB - -cK9RqQFGFaG9S71c6+pi9bU9RNdZjNRq9TztWNddi9ZE9cj2VZ4oqWY4eVl2T37sD0b9Hpx0SDGllMUVMeA7BTupmmoufIGrnNMvoNexEAIRjykr1NfXyCiZXEcTTVSrkhTVShSuvzBVGYc9cYFJ2aZTVZMNRM0CGIRDqYTURsNCobhGyOxKHPih5gqjPvgPsvyMfOVAADg6jK1LDMD9iV4+CgVPW2HKTEh8K4GR+pMJkTMCEbgOytJWWDlZGxWk - -QdYEMejpW2VTMabENbPJTjdYw1XjdcQ+F0CAtEklgCcKIqFkDOZpIFr4rYJcOiZTdafet51XkNaXriYtbQ9So9aSegw9WGuTQ9SAtf+9eKXhrWQK9eUNWRRlENbNhdCtC4xetdbwVRxtUdxTDNbirgk9QE9dqdQBtYMRY5dbEmTrddxZTFJTXdXztdEJQh9e5NexOcUZbvhB8jL0tUvTikZeBhZs2PrdZ81fW5bLteR9c6XLkcTYCYlDNQpkbTER - -4Od8FZCH90aRIPq4YJ5upzH1YfvdACRVCWlUQTCwfJiKSwbSYWtdDIumFQYa4bgZYI+eNoZ4EXJ9UNOl64dxKRYYaHBop9ZJ9V3kcbkZ9AM3ocKxtredVwYxaLVwTKNVStUgVKwEAcGtq6hPcNfcsvyEgOAztoL0EOmKb1ZpebnLC4MltMMpshvIodABY2nVIDGeH05XQdd9fp6daLNTg9a6yKX3p9jtw2jYJXgZBJcvSZNkYKtFTFhYidWzcZZJ - -TfZRB9Z69QXDm+NS8OV3tSqVcmldshTI1a69R0tYndeeZYJpV5NdbiJp+RLdRtQP+NSGlfm5etVT/NVrdSRtV+VYtVbqReLtcnceGNXjlYQXtkZaBZXTtZnWeBkn6dZPxT+uRwdW19YQNbd5adxuE0WRgRQWmrIYJKUNJfmhrbUS4YRVpTRJhflZ02ZN9eTGTbUYfnO4YZ5DmCPtLMZe8M50cR5Yw8v54OJaGUxnsAMMTDJ0qlLGFzt8DA04GSlT - -uCfE+KeCuUgGyuLcNSJvFyOLZgDNNi2UJoVXA4gtVTAdYPYXAdVWFUXtUf1buNU45UhFdJcKhxGucUrKFTdjkgJF9SQkF+9X0pV3VWidRvNaB9YQGhzdT1dbK9cBOYo1WkdQ9FctkKWtTA2YgFQ7FD5JR49TtlXEdZZpbUWRlVZu1VkdfUVZu1cAFd2JXJtSd5eANWURUrdQLtdeVR0ZWMVZAtYLtYYVXYld9FZvxXNsVATqFIV0drN6S16ZNahh - -pJjutZUcPMl/rse3vdkafKicPkYMbIOk3yfxyfqtSIsT6Oi0AAxbFPcLE2IqOHy4jaMEUmE2SsPngLZJUdHrurUyJ66MRiR3NT9Et/jAFFMwPvwlfB1eB1VuNu19TvWdUpfQ1ffubjdU2RfBErG6KCGji2AFVaEwfv7CwOecqlhFYUoggYWJdauguHdQSGGI1bAaWVCSZNeghdQ9awNdbVZPlSuecSdawSbDlbzdTqBcB9fPtRkFVydYu5YkWY8h - -fewPvFt8CF1JQptUkWVfSvH9X/5stbNldRRZXH9cjoYZuK+dcjaOE9buVULdV7KovtfZQXSxc+xZLdezFYztRX+WodZYlTT9RV9eJdQqdZJdaJ+SzNYrtUG9dkJWh9bm5YRxbOdWe5TRtUJpd5NSV9ak9UMtT8pX6laGleEtTBsH1dcZ5cY1We5Ul9dlOBK9WYdfYdQQnj9tX0vJB9TsHrMpetRTjISHdXhcMjlYizDOVWBWpIkVV0gt4GDKa0ME - -Sof0OVwOtrISYacHYbj5cBAfn0UMElWCXqsQDBetsfgpYIIY/VfFWTUdilIQB9FYnlJLmAflAfgL5b4noEnhNfnagTHnragayhabrBdZUqbouYZVXvoniUbjz+VXBt21plIV21r4hp3fnvPgxsb5WXL1ajGpmSXZ4THSQNdtNmmY+LQxj+AIQAMMAP5nlEwLgAKSuC+sC2gF3vK7IiYSiclmy1f8qvLxJy1Rr9SaxN3wRSwvlygTNUdnpHrhrJWy - -lRUmf59Z2oNAONliA6xAjIDnpVBGOHQeCBAD9Wd4ls1ZT8eH9SvtXd2cldZbVRy9fedVe5U6UrIDaVVbD9TdpfF9eO6sBVWXda4dec8WhOVq9WfuZexf5NUGMPuntoDWyVRdeVLdR39b5pbSdZLtc39UztfmtUVdQmJWLtTMaMKdJe5V39bK+rhtaiuCZBbWZeOhUJNcpNfh9dW5UmKnqRYx9VXlRnVTdheV9TeVZidWX9Q4yCBdWxZTolXDlfXV - -QeVZ4JQV9eEDRo9VxtcEtc6+XIdfldQwNWstN36fTFf+dV/1YI1XTlVetctVW6day9dZ+VYzOwNT7DEOZbrRdIDVYzIOtdfAr3VWy9cqeQ6ubUDWRBoVtuAZs2ZoZQRE0dZWcvOfgIVgfuzMcwZaUhqL5fcIVtZTOYSNmgJ9aARYgOuioRw9kNtn8RYJ9UXjNn0eRYSJxMHtmL5ZrAhYmtF/mpqW9BWHps/CWKWXFISl6jkjOPBRJsXkgVJsdsDf - -V1hWziytpG+hdTDc3ALrEQ7G6OgzGLICE40VvOTU4OOmLyAJU5TKAAGgOMtCwqKpMHlkmbKSclhx4q/SgBOb+Fc8dfUkOsNjwaMkur1VaGBR/oZ1uQx9T/gFwDbJlv/OWFufFgJwQpzgVXtUvZmhWiIDQMQl9tY+IW1dcdFa/1Yh9Ws5QF1XidfOVSrdSFdUE4G4dehVXqdaseVEdfiDTzddBVXt/BIDS9WRkFQc5TvNaPteD9VnmTo1RG9UjmAo - -1eo1Tm9RjhbuVdSDaF+JOta6JXerhW5dbdTweZhNTkDextcR9d49Q8edYDWEVS49S39VMtXQ+qKDRydYbZandaYDe3sKbdc+dLXVRxcEKdV0tVDFbirr4dYtldqDUm5dseemwIXVQaDXzdTZkFXdRiNc9qQkVSVhC3tbR9cYtZ1LpMYXGZa7dedpZP9X3mnaDSk9bDxXHdc/NdYtWRNbyDQkZf/NSI+jz5Zz+WsscawhpxUhXnkpDN8EiKa1wHsD - -dt6YVrsTuhEeaBXmkGjdsTxsUGzm8JWigN/VYNEUT5R23ny/iNta1qhIMf67vjzieMejUauGjvKhk2ck2dw+YeoY3ZZr6pT/p5HnCvlG7v+Xjk5sC+Q1xOgDRqjrZyIEAg5yOQzo3AYygCdUKHzlElbKNT6OpW2MnHFKWr1EBqAH8jvU1C7kPPMGp5pRdWWVS6gE3edZlBg1Ev1Qg9bF9BJxmoWTntTjLPlxe35ZV1dCDZgVpAJuSii5eVtIa6NU - -9KgeDX1lU0Rod0KVAD45YGDY3hSPVa7dbIdV0NRHVRG5TOCYjFVLFatlf49brRahWaw9dIFkX1QMOmD9b6DUkdSvWVi9cHrkkDQJtSkDSxxYoVXNdYP9Tc6u6ZBrFTCeYMqVD5dbJDU9V1db9fvLtRoWb49Ttmd+Df+xfYlRJtSztT0VUmNYUDS+NUDxRbRrANU4DTBmU+Dc+VYR9Xu5T65VK8Zx+ULBXpFeKDRH9Y+dZPpfYpSfpd+uR3hU7dcP - -+cUDX/NNpZST9R8CmT9aSDcadaseW1BeLNUcAZndY+DTyjNCOeQuRc1YIdZo2dR3sd1ZteZkhaWZQldVm5bJDb0NQpDR+JfkdbuMSFonReW8ssM/AqDpatig7ER4N57jw5Z4yUVNWWSXIqZ7tbvyuHFU4abVNaOBbExSqDgNtVPdTKUZlFX29bRVR1aSnZVW+IfdU+4NMNTWdWJxRZ7o88glFU26XBdVUGb4yZv8vJ2azhcMsRk/lAbpLkCjSJGJ - -jz0YC9UJBjUAO8ALeQJUAGu8m65HFDhU4BeBFfpDzBK0nH+BPwqXbefLVQAdRwgCv1ZKJojIJVlZ4oA8cJkJKdtTKdaKdUv1sb9dZ1Q2RYKVTe9WS9dsuT5Eb6xEoeqDjNM7lSCHDGAD9X76oFdQ39Rm0SD9fu5XFdTZ+fbdReVdoxiXhSghYK9YVde6+TK9WP9SSDXq9TeZVkhY+IK9RSaDW1VWfkLUJevEvkMvoDX39WtDfK9QTtdvpYC5WeVb - -tDS0JftDQqXgO5fV9YhtQA5QT9f39TRufhAsz2bl9XRtUCpTbVeNDctDds5atDWlBTJdat9ov9R69RV5ZxDU69QzddHdZ7dWNDY1gRoDUH9TYdXEDQ19RaDdGpeadZm9YBDZXbMbPmadcH9W43pNmSg2OKMKA+Gndb0mdEdTVYSEQO1DZVDRjDa5IFjDcltkLsX34ThOq6gTL5fmzrYSZXBrulor1ju/p9Ps03t1jpZQVcLg5+fuoRNqnWEV4UV+ - -5VaiT+5a1tSxqe1tT0dTQWaZDXlNbGydFFK/aa9dWhaO0dUU6QpvqPlK01h8PoFWVe3oyOKELGrQUZ9QcdUgVAYUqMABAPC7aOEADGItQAsc/EzBdj0uVQTEVshAkQqG4xgoWU0KN3gtDQDPTD78lutXFDW9Od81Z1CM5dTu4T4OUykYnHLmUbnJGRfkbGsTBhSTA4oJF9S+wCfFVqtYDXiG5XQ9Zf1oB9SxDfS8DDtfiBJ+Df79aXlYWteHDRnd - -WIdSqDaNhZedaSdXsxZOzBq8rfNcyDd8hRPpUuWSzKt+ZUe1cY2UueRkNAdlQj1dkdZYdRHufB9X+Nd6BSkdXj9aiebNdaLEYXDZXDSl5lR9SUZXV9YLZfuZQ/hSxOTA8JkICydawxdt5WhNQFwJY1XkFfHDSMrLd1Vo1dCWIpZRSJN0HuldWSDcnqpo1fBtTD9Vm5dAdRILv5rL3DZO8C19VnDfhETSxczJTVdTqsdK9QLNV4DQmuYzIQ6VdvDX - -VdWYVXh9VhtfTtWRtWBNQbZblVSOtc5FqalZjhbOdXldSR+X3tcsWTJdTtXmEFTghQHDenDYxZo3lauZVeDbPVfO5cE+aJdPnmZnDezZb3tR5ZbuZRc+Gjdf+Oc/DdBYsQZUrJhFlbHrCt6aEaQoNVLqueXu6rvW9cRmYxVc4lsnNTxVYUFotSUOEVB5j4UagZgUgVsIdDRUDqUzzjHJR/+VFkoedmDuScmUmdQ15L9brGcYPdQ1UhRVTKURGdcZ - -haXFehJd99snETZlZZhcefIgtZd3Jw+T/Um96qRIVRYQUBqZCGoYJhYC10IwArDlhvMv03E7aHD8MQDcVdtgAIV2Su6VnQKqZXPUcC0LSLBJwNDkKHlfqNejAIEmYyuAS8CCDY3xeNdYFcOjdSEDVH6d8NYCdb8NcCdYGtQCNbdNfvyVeOX97PDTMfZQAvIorCOeTw1cb8YpeG41Aq1TF9fkNVCWTgBE/Nf65X+DWhuQ6DSw9bHDQIec9DSDDYUJ - -VYdZOgKJQl0VcgpETNVaQWyDTBVTm5fNRTdDZWJRX9TxDaqderdXA5YmZb/7Hd9QhtbwdfIdXRFXxDUxNXy9cQhUktT3lQtDYnWUtDasBULZWLdZvlfOZRDDSaltSCnK9SdDVPtdYxcj9fEjdOJXDDeYjRI1TqldEFSAZaYjWeQjJxbEjT0jYd0DplTU/CJgcFNTQjSaUXionasVxYrExuDuntsV6yZQRY2Cdz9SpHqfadUuXUuWVfnReVsjRXfh - -agVPeuxLvlHMNgGtINtoHxhBfepToPDwLDwPoAJheMDLHRjLrFLITA+sDP1ZcCQksOyQnhZImsWOdYCDd3NQdtRzuSx+a71YgdiBdasEDuDYhFQwVVN8BKcEQ9cTiAc1JurG9tbf1YcyMhMS79QXDm79dr2Z9Db/DTO1cPVV7ddAjboxZfNYG5VPDbhiitDQjFbZBdijfzdRm9XHVb+xf9DUh9YoxbirtKGDTtc7AcgJaE9ZiObTtVl9b9xfyDdK - -WHqDYiWYX9bjNUEJdj9TA2VH9bj7EkRW9DQjFYE+cnDYKjT+NSI9YI2dyjaP9RtoNXda+VRLdcNxco9aEjSjhZTZbF5qkDRKdZClRs+YrRO9JKMNe/eQ69RbVa0qbTOgbdY69Ye5Uqja3tSNxaSjYyDaYteajSSjQSjd4tQhuXijd65ZSjYe5dP9esysfNSAOa5pY6jUsZew9an5RfNe6jfKjWX9cNxa6jTAwgUgKaDYKdeaDQDDSB9cqjREIpqD - -VRxcLdb+DbF7Pi/vbSZPusCVMjBR1XlxbjfVajBSkjGmjVzXiNNWLMTfdeB2ggWfaWV8MWlFswwmP2ZNETVNgM2f9uZlONl2QTua5gjCvomNvjuWqOvADVtll2Bvh5VZWcCkdsgKZBbFhdpzFAVhbWL1GXrmDvkrdwt8Cqq2KQqAJAJGsFmhLk2HnRnSoMmqTfApLsbrtH7UHguBCVH8IE5EK7rJzEcnGPvejtYO7UOMFHv9fskCBpIJKEfkERCv - -NlAv1TNxKbObKMmOmJ+6LoUhmWLITKceq3yV3SPAAC/egEYLxrKOBq1YgKnHYoG6mA3xP9qnIEOwDU9OpIirP0doVfUmUgpWe9XgBYS9ZMxQ1DSCdbM1dwDeLueQLOvZK/wPYZW91nCWWT4KtFRjkHFqV2FagJgEdWzJU6DRN5XFXsyNY26txpRiFf1VektaUNdG5UBNQrddpNboRHCNU7RWo9WW2b6JexFVsCslebi9RjxdzzAlVUAZaMZeZ6Gi - -NbHYl25UnVYMZRrYLdVd9VcPta0RVLNR19SIyHxjad1ecDjPDRetY3oBxjRB2cxoH+tX+WH1mYxjWv5fVvKu2cSNUiJPh6brdeRjcy2BV1YOJTZBZj9f72XS2ToVQ0mYAFXeDU7AgxDk55R35UOJfiNSUNXpvHi2RuFH7hfg5YdDTnqbtZhzJUGrBUJH8if+NTetY09dU9Utdd6JfgPGAlcbNZrNVfNT9pS25eDlVRkinRY4NJbddNDTc5TkdfD9 - -SiNR2tcuxY6lZkmYGNbg5YsZam5cFpbaDUqVcMjZOKoRNQwxePVVljSdeTljWPVU5pUMev2EmmDbFIQd6RtrnVSYTBdaRuoDmTvG5DabFe6ur0daZDbxcSlNZ6iYbxSTIhltdNOQTIH73OglZs9SVNV4yQ4aULDVMdQddaFDc17FtdRWyuzhZl2XnlJgmasVK29aNieBdUvzEhdZm/ESpaIua0dXs9fzxaJ7gI5WddUyMqAGeNYTycjPAnE0QUmo - -QoTg3A9MOPJOu+M4YDmEollZm1UgVMz0DDMEwIKdiHqcJsfPEwOr4GwAHNMUPhMsdjjgBaln+aantZnwR1FCEtggCONpTT9SZDPvjDHlbUZeWFU99ZQVeapdM1V5VWTcdwDRFKc0EQcyD3GIaUok+iClKpmVhFdYkOtFWhjeB+dX9W17nTJZn5Sn5TwVcGNaxpfo9aCheqmakjQvbvs1XO5VFBfoZJhNTUjY0PPaJcT9SYlZpFfTjePeQvdClVbJ - -FXPDb5BZIdWvZSThREVfZwk8hZ19XbdR3pVAFWRFLFVbtJuFjfFjfnlczNQrtRj2fSeTAja/NVLtdYaGK9Q92Sl9f2Eid6XpUbMXklWbnhGT/ndYU31fssRCZYBXtBXmyohZnjcMbviZv7hT1djuqEHpZDggTgcjbUubPck/Va/9RYQA0oCG+L1gGS1Vm+XK5UrajLEFQKmDos4AAz7kohCFyGQMu0AM3vJqNZ1WW6jpuufPkL2tQObF1Wa6+PwT - -Hy2bsdgwdWQOXlzq21Vh1ch1QwJTuDZIlT8zOD0BRyD71QgBtlOJlvF4jUNgSPvJmmfPNZDOW0uhrBVVVff6YTlQDNZljT5JXSjbPFW+dUR9fKlXJDaJNRJWb0tY2JVxNZ/5V6lefJaBzJyVZF2G6VSKsXrBVgtD+jXO2bJNeYtU5OUBbMPjcv5YT1ZxAmPOUIuhR0mcIrcCnNjb/anT8dGdWwsvSKvtZZ1tgt9b+kd3zsfcDA+P2DcZ9SLdAsGL - -w3EmjJf+pqcPU4AFlNzQAy5lfePK0FADnYoD5mDzam6GVHjVRfLVGA8YllVqNOGrNS2+Z3tcw9PbDQ/kY7Db1QbgVsqKKXHMVgE2FbrQC8aFJukJdaXSiPvBXaCXjcH1d+tW5pYajZEVWl9ZEFUcxYkGRhjQShYEtRt2U0tQ3mWFZcUlSl9Y4tVAFUiQsGjQIJOBvLTjZ3RRgTcQTfTNcrjbBppFZZ1nmrxZ54gLlRhJWGRYtjU6UUtfpaxfnAc5 - -IKz9oN3qpdY2/HuqPLeP7fM92s+QH7IjoIUzbGoOkAXNSLJDnHXMO22Hi0M8/HqMsS0BzShPCh8de1VaWWCDjS6lT5uZUlRQVRJ5S99SudW99W5dd8lbiqUNAmvCLNVLOJoDwl90MhjYjJT45bfZfRDXkDSxpd3jaxtZBVRjlQXBZstmk5fJlaRuaHokc1W+qdX9W49SaVOXjSFjdztWPjQSNcEDbX9TeVZalfjFTRDbpFe2ViETVCFWAZZIxc5F - -e11XD9fqlWCpcTjYplcQ5VluagYAu1RE9ckTUuFc/JUkTTPlXBVS4TQjhQEtehlSG0QYsJhJctja3WSk0b29aQ+Q0GSQ+Vpvh3dSUyhrxVxVVZ0YJDCgjQwjWtfov5j8ReC4idvMG/AtMni8F3YhTGsZxVMYA+upiMX4ybw9iHAEoYoAUEAUHJMNKMiKyOU9HpERYjoP1lgJJimASWCKUq+jeh4KtaUHaCeBYoTY+td5KW3UCP5cApaH5UudU1la - -99YgdYzLvHVOaduIlJ1lUnxbTcYjAAepbv0WClp9KRLqVjjd0tv+eVepdwLGvhSANWyRcgTcVjUjlYtRf3WH79bvwo7VTX1TA5U2KVVdQZFbYeBJDZwhXwhSH9f6DezJcY4K5jXbSJyeb8TRqEUjccP8jowd9eXTORppdepQNMMYVeSOTGldX9Xt1RV/vsTdApVZjc0taMvjiTXnVI/eeWRWSTcemWSORSTcQnozxTY0d1Osl+eC+dyha3YjgjTY - -ESnJYuERAZk0Tf/TrWDeqTnNfhWjUeGu02XPjVgAlSkFsCFn3j/CKjPgSVCc/LPPJAgSS0vYNTLWH51JtXEqoAosZojf9sCstAemL/3M8/A5tH//vo4OtFi2UK4DeVhV9xNB9WHGo99Xl4ZDjfAdduNf9fjZbsLZBq9nWQopIbHeMSzujOFudQXjfbTnGmLzgML0XeNUAxq9RVsAgcdKxZQFeOkTf+hZ5cqx6ieDXOxXkTYINW2tR50rJUiaTcpR - -YaTdNmrNDQvlWcNu29fxcS+5RM0JgIvtiqP7DZxPWwSLFV+5KFUMd8L5+rftcFxb6xrJlkzbGyAK6ipmzKYAKvuSuVJzGo+qqCIiV5eRiYmkHYsbSfGxSkySGfAPhTrZddUjXEgKaZRmNeNeTuDRq+f+lcjaNINDS9aieiUaD38WYTZ6qmIDSflqijcrde9hQOojvlRTZdvNSu1WCFYshWBtdcJU6BcCxaV1fD9cYletBcc1TMeQwuYDlQBxRkTS - -opNDpae1SyRR8TRLjoj+YFBd4RVgTZi0NtmGUDd8+ZzjbYDUo1VeTf0RavDfcDAR9ccBWfDXkEfLddxjfu1bUjQ1JYE4qTldJpSktRYDZexULjVa9Q+NbRjeUlW3ieQTZ5JQsBdMlbZJUQhT/1RXlcfpYljXwuEFOXtVRuTQuTTkTcbdeHVShlYuRdY9RkjdQEm1jZ52Q1IP0dbltQnZdVta+PHSZUB5QtKgioifda9CTX8QyMu7cl3dfnrJtJe2 - -uVViV0TSr5VypjoCYb+Q5xc6edX8XJ7h0LhxTRINRv5v1phwsbcIpohR13pAVIKAaIgMKAVbMlqoZOzCJopJkaL9Z7iUgVEbHkmULMylr+H2ALJeSLWH3SDcAOS9V01YosRUJq7LpOFmB1rPSC2TRCoMXglCLqoIDnDe2BRZOuQNYOharJNSkcTCbZcbZkWTCfItY/Ii7qCFsRY2uz5u/uS1TK32PRJOOTXA7OiDSMYUQTXBTXhxSRje8TR5JTeN - -dTZdGlUyedhjU7VYLFTyDSP9etlbOWas5eq9YI9WGZVFTV7VRspdv9TXjcKZLsFcAtRH9W+tYZFX4ZYE5ZuTcI9ceRWLjYnaZhTT87gEdRYoMV9eqjehTb+daQhdoxbSebecONVS9hYhTR4DcRDZVTaSTYpNfURS2eaVTcBxamlcNTa+DVlTbhDXyeQzlRNTZDDSm2QUDY+osZVM8KfPdYVGVkyQtjdzxezxQddYatiAmSQFRCJYI5ap6t5HmEXk - -qgHQTcfaWjxsn1IfPitqrGDRlKiRmS1GeLDdzhf7NSZlYxJcmcfW6TGkZm3MWbHN0OJ8QfALIZdwTWTQBq/udOQM3MWgJ/ZFkAEDUoQACLID9or0yVtNXWCKlLg1AHlYHbapWeR+wAYgKPBEUinggX2FdpNakhbsTUrJZc2cNtIcTbItbyldaTbuNfQVYpjDrgrqcTlZuhFeajHmnhATfUrOVEG86U8TcWhWMhdOTVYTcfJYTjSS2l6TWxDQIVan - -nEeVa/FdxDUzjXzjSdVRUtTMOtJjQumYR+bYtZFbL4VUZ1XmpbuVeqlYl9uZjZV1SXdT+IGPJYMmcZBXFjYrJc41crJeleMUjcEdTB0LY1V6cTxuZUjQSTT7yqQVYlBCfwmL1ahyAL1dxTYv9rwFWg9mdluJnKJVVFpSGrjWuTrvHfWsa7jDLtcBjdZWX7FaAY9QUrDTi5T6Om95FsADZsS+QFwxBn3D7uKesMouYh2MlAKSRP6IEw4FmspegP4N - -eNoO66a9mCeaGVDXhDYrNZbVoyjZjdS4FZe9bUpatpUw1WS9SKVcCNUxYE1wNnUfMHl3EjVCpTTfDDUBkYQJUOxZLWZMBWMtfXURH1X/1XNiNO5NVDXs6GFyQzTTO4O0VSnTdjteQdcjDazlZ3TbqBVwNaVjcphWjBeLFhTMSawiMvJS4iEtmI5lbMjd6QZmLgJB7pVb6aOuUYlEztixxg7zk/pM5ZkD8J5AKhTAkCa/pGbXg10KwQotoM8/M/jQ - -1zo7gMFZoOtVa6Mo0peTe0RVHcDuDX2VbUoTEUDg2rz0TL6HzgimTgy9eLenaTMiIZOTct+cUlWEBEewlSeXE5ilTW5BVNBVajYDDT4JaeZcHgY9VbthXdpZfDX6Sum5ezTZXlR3eemZcf5LTjXRDehDfBDSumVppRNVT91UoDVm5dJRXT9aFjXF1VVTWFyeRDZ+TVDtq6dfEVWmtb4DdNTfhDQQwJCFT35QLNYvxRvxQ+ZeQ1WWOQnRXX0lHcEw - -zcLZc+TVfTd/gPxETMdTVtd5DbPaZm6S5lc5VAFDXgKT6iQbxaRTVEFO5lSHFXLpd5FIoOTVFHcPMw5Su8IozRVGQblchdfmuZpzjb3tSKaZnKqokvBunGG7jWBpY0yRUAGKyPgAL8HJwEI0AH6NMmAMCjlslpq0d+BRTqZwteQSDitA7KVYLLSfPfTFvMPG+EBqlAlTsTYiYArTUZBbzRTuDaQBXlvgSWEggnDrsORvNzCqtaeDfcTYj3OHmeZJ - -X6ZWXjYBtRAzf4ZVJlSoBTVTXYxZn5Z5jrORVVhaeTcANTFTVQjIShawhQmpf4TadRTetdbaddIFmBXqVSu2VnRKObK/WObUk/8FAjZPAAgpWOqHo7oxNfgTUYldLgNrTaRqTwxeyjV1ReOJSWZZOJVoxifNX3pQsmdzRf0zVGGa4lVRVfEaTUdcFDdIOXO8XF2WKokTGZS1PbLhKOR+2CnmGbPo0GN5tSJ1XApprjVNJfH0fXoTyULGRVHaGAlL - -v+gK8fsdd7TS5lARWpwANzQBwEFslgpkaDMMwAJq0fmgHmADwAKqTVtNeHkMEeAhIEYgNmhbPSLYJI2rq1QazRTUDasQsA8s8lWaTSL4Z+lbjTbaNX/jUxfg8cSwbt+TF6TDGOX+CaOdDHYvCjbxfnaTF02jATR1xYNDbXTWfpZijVTjSLTXh+d3TQ52lTFdizYzdTO4A99cSzSAzUaho0DWVWgNGACzVcUZXxnT5UkgBCMaeoVAPpWCVicszkol - -pKp4IvSEs8GQlTGga3FRH+tYADQMNJJCacJesBoOlF1EWalc/G+AKp1XPUbLZKEJJ5sOVWIfTXBEN6SetmngrlUeTTlTWiZ6cKe9TuDSw1dY3GcQlCSNRpUfGP32hf/GYTVqTZ/TfEzUMlfubGdpXATSUlQPVfxRcOFZndTp5VBTQhTQQzT0FZwdUMBWTlQdFefJadfEUjZX5adpRlPmNTYwhVPbKe9RR9WLNUzFcJjTFjcUzfQzSe1e8FQG9ZdD - -UHRTalYJFoj9XBDcdxVhTb25aBTUj9ZI1cc/s8NTxlWoceGlQxlYdFZBDb+NdXhevhVQjP8TcW5T3taadfI9bNTbGzYTtfYTXIrmm5ddVUPMuN6biJXwtsXZVufjoaH1EYqxsPAnzkqt2slFiLuu3Ps28lXFaDHlkNrXZmqjE5RfmWg7ptOje09HD6sg6gSFggIN+lqWyd7UI/trrXogBuzrLAKOgAu5SlraDyAXCGXsdaO8uirEGMD2jR9dg5Ke - -6TulOM2WqpTSdSYy4vbkE/jJhSCADpqcDbaFz0F6NMWQm8AHXYX0yWI0qRIYDwhy+tqTT96poAoiIeJHKg9cxZeItQ7qVuDTpjcBjfzRRe9ctpVnTQkNTnTeYxJn2FZlgloMnlehqu6CslvlogMhjTjTIedUt2Rb8VfeQVTSHDTIDWuZbfpR79X41ZFTYPVfljcn9WscJH1doch7VfbVWceSDtbnDfkVThlVp1h5jYHVTBxXl/JEDQpFdq1eJ+W+ - -qV+NfvlVkOVKddqldmzegNSeTe8FSZjcpWceTRa5fORavNT+tQmJVQzXyjVYKDNQL39TImk1TdDNYoxX0SQZ5ZxxbhlZ19dtDdxypRjRqDds5UT6pFjTkzajpR2jvW5VfhdWZXuTXAObcWV3RW95Y3MAndVTZeT+Uyxe00Ph6fhzSTpc9gOX5eIVXv+aqjUrAi5zZhQoxnBbjQm1UOsEm1ZvtbviMiVSM9RasY0gfM5Kr+RG+diUrtTfHZZxeb8J - -UDVe/lecgNhme4FLoNa8suxTT28iUTUwTW0dc4yYi9lmyXFsl89Z5IOMdR2OYDqOc9b1tRM1g54WltkxJCOVKxJGHtJbqlMUrtflYNWezYJyT6OuPjI7aMMAApkdBpUohG3VvBLEF1BZiPM6V6AZ0ikKRpzmGc6BmIrYmo/EucFGuDTkjfkRRfTYb9SBzQS9WBzTUlUn+dnTU1DdBzWK1RLucjoHVgRf1VBGLwFNZpBTda7bvrkBS8Cy9UmtQGDT - -izSqjRQzcVTZIDYxuQbmITmgyijIbrRWVEZSsZR9VWtDZfDanRUpDTfDaApWgzf3pQdDQbNRETQ7BZdzbkwFFuh/eTHVRUDRWzadzVdDXhTZf2KjlZr2cRZTOTRqjSRxXzZQUFQtRQH9X7JQTlbnhdX9akzWeTQTJUSzHxlTgNoCTSXDRmzeLjY5janRVjzfrNU9zY9paRVShxUoEdcMet2ibjSqiGvRaI7lT1bMjXDRQGrmquq3rPtiXhJSrklt - -jZKLvdiqddZzzWU6ZiZdAYq3dSr+oNtVd0Q0TQZxXivl3Po+7J5YL8rijGrUSbvaOfpE2ySPhGCzjmeJ5yAVnvStAMuVPZshAu3gknhDvuXkIGtYJexASkPBInF0XFRbFeXVeS+lfKYqpDWNFTuDZhBV2+fGSNVCk9tfVxe9zBrAMizdmAaxkBWRVOVbWZczTcy2XvlRpjhv9dyxp8dciee65uVTfsZWAoQBDam9bI9c69Uk9QktU6kX7zQhxYj6 - -rq9Z7zVTtTeeSwBe6zRUjVV9aDzeh9ffDY85UvpedDY3jXkDdA5d3+eTyce9WKRau1YshRUzdhlYZ5UbFSH9dKjUyjQ3jQ4TYPDXGzdxjczjQiUt6zRdDSUjfXzTzTZzFVvlTjhe/FYTpfaVSx+VxzVUjd3zTnVdfYSv4a+flYhdFIYT/lVwvflcDUSdTY0TVS6IJDMlze29CVFSSZcJTT28qJTaGugypfi6ukyUg7B6mVWXGmdewOnzMmJCqf9d - -tBoCIVdTDdASb5ddjSLdBmULwatFAHNRK2MrjHsIACZqfgALKWuklSZgX+qppcAeAn91t8zRxoBKitfTe/jZjtawDVBsILTdx9D/jfZcZCzfsml0aPJSPWwL41HbzdHoGM1q2aujjfrxH4jTj6Zt+aD9Ty9XhlUu1WT+Sq1TYDSkVT+NcjhZWtUoTTe5iVdeAStRzfZTQ0jcCTfk9VuZZtRQNVfhNS9zU+TXwdVoxXsJVizWANe3zU9DTeDatBWQ - -zbK3CW5c6lQtTT0alwLbQUojZcvxWbdXajTkJenReaZUa1fmlTNVmEDcsJZe1fUmte1ULTeYDW+DfKxbILW/hVaDUa9a3DevDec1VwhQ3RULZecihutSYvCR1TMICV8arefZ7lOsMr8rOlWKFUbFpm8ZsteyFbvYqbsPvYstOW+5Rx7qtTbipZolqKtlrORauuolpeRZcqeAiRaqXo7uUrjjfBMBPKkPxBi6kKp4CAkD0PKrhnMdc8PNDQJNxFwW - -tLhEWGWlaUYwCyAkFxUCRcooXluL3vE92h/8vStHqcDDwFagHBLFy5h56ZZYDtHNrzbytYIkO6IAlIICkHrglbmQ2OZ1BS3tJApSH5XbUDuDR71XElFhUk86f3jiDXKlmIltChzegHqazbD7o41TKjUthS3zZD+cKddppVI1Uw3mh1WxxaNVRzOaDFeiNRxos4lU3iY/5VDeRn1Vd2uo9TZjVypEB1dmdkJDQvmY2OQZjYBjem/HKmSKxY1BboRH - -sTVApcVEWSzAcLbKxUcLXULcUIGP5QcHpyNWVotTeANOaZtc7tedXNnFfoqeopLn2bMNQhdfcMXxge8IdsdfjJHyASKaefzQODS5lO+hMI3MAxcAPOeQJOTrZsbXGE0ANdpsvyPkLXLZIULeVWKsTY+VE9QE7yhLOGeCYkUM0MknuDHeHntV1VfewDuDSf1WAhYvOICtUXTX+CQEjLVwE7zeOVUGQKhjbEzQmtduzHZTR1VbZHGSzV3TcdzVRZcM - -FXleZLjbs1V/EPFlJl0MNmvH2okzRVTWxhXW8fQcWAMCP5AE5UHzRsnssVLZDXRqeIRksqAWDZ0pHhPgoUpLXgcnkCLQfjTOVHDwHQiFuVLqBJptDtvnFDnvaE/emXGGyPnjgY1me9OvWJAh+N8zcQJOJvH8zf/rMoLUdVQFKSoTYX5SNuTuDckNbB8cIgt/2VuDqe4XA4JoWAgLXMEBeNT4+av9eI1dq5KXzYXddD9blTZJtfNde6+dhDbktScW - -kQLespRGLaqDSvpdlsFvpcQzdQheLdYkDXYDcZzaZpTCUnMLYEos6DSKDVnVQTpUPzdEDTI1WkjRDzb/pYhrlvpaWzTQzZQdVgLZ+VWmzbBVfFTRrTYydX2tSptf+TTGLQBNQLdc0jToLaNBXtVcAZbCgnZdStde39URTZxFUDlYRTUmLdgNbmLeOLUANQGddloi9dbtdQzIr5lUUdWaFQOypBJW4lTW6fMNQCssGVRXcMVzbvdXc4hw5fQRStjW - -v1CIuQJebVFBVGXvVb99uwjbxeSblTHpFp2c/dR2SQeLY2ST1+GeLWrhTRTbIFUWqEfRRADSh9HI0NGkAbVrDnD9TRUAMiGZgAJuAJlClZRCHNH0AGy+QAuB/kB/kOT7rxme/cu3wXo/qsTbITWCzFdJLz9HuORrNXlxWXhiqeWlJc/hTuDUCNYzLE5Gc9IE+9bPYSgUFclZEzS8Fnw6TsbrTTdrERhjUTPB7zUY1VndVjlXkFbWzRQdQyDTl9VA - -FSalWm5QDzYPzUDzRZelxLZkzZOhbDpSGLflgPeTbihSNTXBQoAlc8wvOlFmtXXzQ8+Y5TYa1ckzZeNbJZaJzf15fnBSE9dlVbmLc2LdnRbrFQ3zbzTVG9a8Zc1VZUVU8ZT3zRa8rKDY12AmlYNVXQ0ajtbHzWY9WAtQjtTZLRxLavtXjGWyFa5tbjGayFQa0K5LeviLuqQysvUrl5LXyFa7LsyFWvtX0MBvtWftR1OROBbzmSJAkUGI2paUGKI+ - -lsEDNuL09b61S28QElfRWOzmRM9f3Cq2NvviOm8d/lJjVXjVbOYXrpQYwE9ZT2MC9ZcxYRG0T9onLWJPMJ6AA3lveEswqB+Br1ZKw2gS8vJaILhJPil2TbSfJX8GkgLaQJfMkdtogNSsLQHOVJhdCDUlHl2dADIJDkG45VMcYpIMWdChzZHHv6LZJlRxNGgLcY2VsxXOTQ9zYMLawmh7Vas5UZLctdRunLNLdwLcnTb2inJNdtLYMqqCGWbtRuGa - -uGalsk7LjitTo7oLeX47j1PMlXLNINitSNolZlckxQ9UjnAZeqHnAQBLUK0KvBKh2L34rmUJybEMBEhSIDTFW2H4CoxjOJAKVXB09B0TM8/FgJNUYBvllODvZMB3TYvyT3nthLekJbhLTjTe5TXItWALTnIjFcGhdlTdoQ9X4FTR6MbomJiihzRdqBYTUhVeeVQJDVvOrg5cMpThVfIDXxRSgTfO6jjzTFBTvJf+wmm5cAjfUzb0lVLjdoLQnzST - -jYNBdspdzFYxDdexaAzW0zcOLROLV3hZUjQxBZgzdVCXwLVDpSpLYILZRDfP9XQhQILVzIah9fwLZLLVzIVILRIdYETSMLZtVdpzaH9Wm1GxzS3RTFCVk9cMZUhhWxjZV9Q2LWPlfRjRxuZUjdWLTXVTEDYaDfTwZsxQqjci3Bu5eTLd6jZHdUlTUplYzTUpLVpzSzTS7daseZ7LdCTalTa7LSkTVWza3zXTLbazf/eTGzcHLeZ2MJLZGjSVTSRD - -S+dWRFe+uQI8LgLcXha+eYjzeGzT0FWGjVqDRGjTWzR6JU3VWaDTqBQ2zdJURNvuzDfE0bW9Z8JerlSe7MpuSc8oZDc9cR6FVrtTWdWB5R8Kd7csJVWg9isdT7tEVFSg9s3LcfiVDWWExepkti6n0LtmuZlrm5hcP2TVIY0/B5hagjd5sgNNaC0APLeq7pjufT/M7hpEXuJVSqKqgscA0nuFYypuS9ox5sivgUxYRxu9GlnJQeoYR0sssX5dh1jn - -JKNVCu/9ulNF2jLPBsBzDlQQbhYqAGC9bWgC+qnobuVNKQMvHHLcQV+GTMjPtgPRABzrM59eTWcBGHFyOoTHVabv8Tr/iDyVYJKPgN4zfKYjGTeQVbAdRaTVoTfPJfBFdJ9PNXOI6iaFD6MQ6pUhyr/wNKcGOVUCqsPYNzGeizRZJZqjUhTY7LRuVc7LYSDTazdTLaa9a7VV8TSa+Vr0aCDXmBW0CRgNT1LQHLavhfVBe1BYcLf51YtLW6qKGNE7 - -MehZXrRnWLVrLuwrWhZUMGEkFdkVbOLZqFX0rqdKtAxFXFp2sBAmR7sLF2Tn2crVEIzbrtRO3ixKbU2QdqFxAtKAfsPvbNumwhJkOcqF6Oi2dameE8YKcCd6inTsv3yRQHDEwKAuDQxEbHrWwoqmHEnAJEGTDrPSIeIG9Amu+FjcXQVFihRwrfwrc2VXhDe5VXVDUS9dQVY1Deb9Q3uD0UtpJcDepnph2xXR7JfSiYYmXTe7yeYOj0LSedWbVYpL - -Yu+T7zbYdbMeRRzZtlTGjdbLVnLW7dQkTd2LezLQJxcXzah1VcxRMLR/oAM0ChTTyuZzNWFeTzLQCebYbN1LY4Oa6zT4WcnzYCIFULaKxXKxaiedJ+SgzW8IPUrcwrRgzd1TZLNVsLTULb4TfztSOFbQrVUrZQzW9eTNTaOLQBxZJzcMrdQzXujv/zZhDfT9cJOee1fr9ZKdYeTWktVwdUyLSgpY0VUxBW+TaACe4TQmzV/FfQLYJFVFjcxuaRlX - -HzVTjRNxSPhmjzf/pacrSxuUUTRcrcpDZX/JEPODxXcrWBdYpuZ32cEBfNUrFFZmyTbLmp8fFtYNPA6WhCkHr5RjfPx1bN9MKFd3sGHBBQFuigN8tYcVTHiscVXTfDz+AsoFVMiwCdeBcbELYvKCrVBJEFILYvH1PFo7j8rXZ7sCkKYLW5tZviN1PHyJjqOQVOZOBXEGOJkdIlK7tS6xfbFZg8YOlbmFM7FQwTHjBZCJc7cCMsaAOjDUaWDXr3oS - -8MV3iR5XftehpiJJR2WqQAHR1KQAAdiOJaA47hKAEWeGkDMFRZ1WfVAFTUut1KyyueqNJAIlmWREJMZE2+X51caTfntenTd21WBjb21TM1bDjb65JRRQNQWPelgJZXaN58vRCMBhDf1SizdNmQ3tdRLRiDfQrRvlXn5VX5TrTL7LfEiCX5dYKSn5QspWGLdkQU8npF3MViCuPEumi8WB4jAXTfPTVbxQU0W9GOjDpmgVyJcmxVeQIcFKeHLmeGnI - -f95OBQPC2Hj1Kg4EnfKdvhevOjyhv8UjGEwBc5MFjzf1LTlRTt0hd8VTySATZ/EhOgG1DuErTl6uYYdgrXEzbgrTErbkDcfJWajT1TWl9UJlQMRdQ9YHzVXjYL2b0hdFdUeTaVVXjzZ2rY9xd2rc6XNQJEbGKScMMqt3RuJDs/6JR/ChMAdBdiwUdBen0dtYSuPhOrR+podBXYus8QNtILtAYMOToskk2JOuWuqPQ7EYALgAGGiK7qDmUFeEciSG - -EIBwaHBuEnfFE9rq+ArQLLjTVgdmCpSSH9ymISoapZQOZ2JQ2CODjeaTZoTaIlccTUKBWJtuqcMqKFq1K6gAeSPc3FHOut+DtzTGoRa6ucyXSLcedY6DaGLdplc1TSgMB8VjbJaxjWXVUndYN5RdxUWLbxLfsWbEJfRBUGzVl9eEAhCTbwhXyRTE9TTGrYpAARXDFbalou1TMBasDo+1bvhLI4DeTeLGkRrU62E61aRreUtUdRVu9vtefRre61Yx - -rZTtfH1bYpObzUaVTTNcDsp5zQdWr3TY4cQqxZKxbrkBRhXaLTt1erNVlKPGpaa5ua1e15dnsDSmJJLT0RHl1Z3ALVlbiNbeIjLNaILSDjPnYBd1S6gFd1bNPvHRUJjT2hZB1ceYJwmhiIZGzX15VLLbA0I0zd2UMICYNTQwzTDpWVHJQ1YE1exXP6zY5rRAwPBmVECDnsJmLQ2ZYxUl/erICCpoHWrngzX4TaokJp8iqNJ9WHEJamLS4lWl6NUw - -GKSKH6EngsLtR8xQ64JeYQJzO88EagIlrV9xRWIBamC5uWzGDu/jX9RT9Q64NlrSThrlrUiOqnVQd1Lo5mfcXvTXv6sqda7uY3zWsutcluIInBoNYkNuTTq1Qd1BUJuEZOOPvISS1rbzjeaGsM6B+aDxwC4aIzjbVrXpLR/QGWSl0/orQBHZmVrSuIEDLTIqAOiOk9BlrcrZbWrLSLMhEFwkKXSflrWztd71P+EL5vIzRA1AIUjc2tU9HMBKdrju - -JQkNra1rY8iLvEptSiVEAxRfIdcNrSpFfGslOxFwwIUwIYvB3lYOMR1vP2Cuu8JGJTzjbrLXY1kQODgJFnSGNyN1rV9re4JCUGWAghjIKWOFNrb0kDerWLQJktvNuZ9rcpFRdgZDrXQCDM8EIYYWLfcpWhrY2xBpyIjrbOStOLaipaMkAjrSE+FjrYxzYlVRQYXjrXere8pQVdfJ5CTrdDrV+DN79T2KPIkI7sCDrZWZbqjUJ5HTrQIqqufIzrfj - -lSXxa2rVkcCzrYRbBpeMSOel9XRzZgJD9rSDIMR5D/dV2rWI2aMLf2RMLrUZWKc5PyynfDUOAlIiCLrbLrc3hU7dV+pcNjWxvpc7Pn2Q8VafVFeaFjVTFLYaxd3PIgmcBPBdLeBWldLQm1VgPCitRpxdtTWGsCLhYpqaaFQ0ru5tVviGbrcBPNirYFEAbVtkrn8rYjfBWsL8rdX6AJ2d3sCqOZ3OD/2OqObyFf2OV6xZx2X2OZ6xemkR/LWYvGic - -NOlR/LfIrL6xTx2XIRQnrVOlQsVfHrRnuKnrUoRYV8aE1SV8R1olLeWnrbYbmreQ57vGmFjGUq1Blsn09ZU3j0riGVUH3IqFQjcio7pVCd0roM9fplbgklXrRSlOOBXqOb09WFLR3rY7UBaefzfLmsHDVXbtcDimDWss9RkaRF2QLmOr+V7NanyOCVfkGZCVQilBIzbHFTTsPPrRs9Z3zEvrVltRLhavrbPrfbCvaqW18cULrm6T7FfSUKIze2qi - -vyvg7qAmXg7rIOafrTptY0LolFfZVN+JXlzTAxEPaTVtWlORRDNzzcNKqrheYFGz4RR4pzhN5zq9LegANLWOrqfiALvsJzWvwpQjKJsMMn3GuDi8HhTRs7ikienxOknfDfELGwv/LrFRV9av55S9+PMkHA9YoEKylb+je00DQ1dYjaBjRKteBjfYjaCdZuSBaMMsQmZvH2DTVHmEwTfwjrKKWrdOhHfUTTdXZJQMqUJzQiNUkrTAeWgTfqpARrYW - -zcPVThTWuTfnzVFpuRBQaFM+ZVGuWL2YyxVyxVKxYV5QETZ5jSZWakmUFjSyWYeuL3jb6VZV6K0Nfd5cvDcxhQNvGOgGAFduJC0YuD4B3jRd1A5BWu2SSNcqQSskN48AyNVotZ3AGuNX3jbIwE5rQE1fl6OBTpdeYQOSQRVM4B5rSAwOWeERJLGrBJjRTFagoBfFBPZPobPOCm4bQiUNiVsBoRwWZKSlG8WVtVc9ZX2aiBfQFTWdZYaUD9CNjerr - -dGXF61W/aeY4IStbbrSaFXNCQaFRnyakbfYdHHNTePJAHM4eSawui5QlgZi5aczXyzYy4glCpZiMpgCK1JpMFe8UlVLjHv0jPzBAOdWWVU5iAPBHUYBt3EgPIGIGHmKkhNM2MFZoLTQ6LW1+Tk9UdVcALZ4rZqrcS9T4rQ45Y/IovPFDpqmiO8DhfUTL6JfmfOAqtFaQJFwXHQbXgrWTLQQrUYtYkFf0LZXeVBVf7LSpza8xTWBdsTUE5McrRjta - -TNYTrYoBdWPHGTaSFVQLUGlbUrXwhhhLclfIqDaYibhrcRhWt8sKdQVraLckutRYZRZrW8FVyArutUWNXFTsnpUAlWv4CVeQZ4EjwT1AEbNUShWHxb7GU19fGuRcbaQuRvDVJDQrjc39behUALe30lWtffmXGhTMLXaBRpzX3zuT+eibRShaQrZNxalJSYBWBxPibYZFQJLTUBe8FeTjaF+PcbSxlTCTScbVleWRrQ6zRI1RLrY+2dB9X7cY6rSd - -zVwbURFW7LUTjbYTbljYBeXmLYlTVG5fTLWBStqie7LN3Le7cm+LaB5ReLZgkTeLWFNUfSiyZdFzTGefxeU+4NVNYylO8rR5lYElSOGZWdQyUJScBqbR1Ug6iZEbXcLei9hiZd32Sk0bKbQrOWS+XEyQfVcrldabdLFE2ucVKmq7hRJLvRRdAYrSYmkc2ddYNUYzRIABoLAsfP5lIlcEqMsaoheUh0NvYgFKoIlUXPUasROBTt5YHABNs2UbMUFm - -P7UHX0JiLXBtcvRG6oXKJc+mX1gdMqLmsdItaqYUcTdoTScTTZbjxaDzDpJQlMGXBejL7qKee4BK6TY17rLEqnmL3wTH1UmyBPqL7Vbn5bO1UhlZT9TxzUUzQNTSUEqIVSuRZkjZG9Rf5Z9eYsLahtZrTZ3ABd1d9rC6KbUzWXsrJzV5NZYzBSNVnkaiTTB1UheZ5NTNoJObe0zYSTScLcxtd0zaPgBYKZjTWJBfJBSeZVibdENL4zTzRafDTcrU - -IdZPACZrTObXjJF2bbI1YVkL8dd+1cD6uwbbCpYvDdc1Z2bV3ja4TbgNQ25d+xc+bQUTTyjTeZdJzVSTTH9VbLaWLTSDfRLcbLYoLbw9edlZg5V9zX3DOybRBvhCDdR9bUBZkTbarexZafiHGJdJVY6zURlepMe8bbsfr2LcmzfVTRmrFRheUgFPme/Fb+VX2ELOtRZXAIbUX5StchyLShbSILV7RQ+TbtLfYDQH0LvLPmlfMFUGBYgzdtmNJjXk - -9SSTQ72Tv3OxbVYmehtQUzcxbcPlUZpQExvDLYJOcSbYGLXlzLZpUpraYBWiiiZDXVMiaJsx2aCcnqkEb6UAnHGJr36BR1RSwlR1XSkEsVRR2Yx2QacnGgopbW57r2GPLpGR1cX6NM9XKFT3rSa8ZaeSwTJ89fh1RgtVs9aZDeIFVlNZlNdIOZ8LRIFYLDV4yY5bS5bSWSSyUB09bvrWglZWddWNauLcULoule29pZldHFeGecvrQkfDxyfcVYF2 - -WuGRUGPDVdUGNyJpdLXyJtCtXbfDUGJTfCdLSeXGdLUr+i2udjSL0DTgfsmqd5JOTIPJwNN4ir4HKpVEwEQ1IZgTg9FZiLi5OAWMRpo0xTebjhRlR2BZTFFUK+jTGbchWOW6MjoEfuX3zdGhX6OX1LUjLRB8SjLa5dUykWCEIATcvsnSVQd0j+FNAYUaJPMbW7BQdzZ9Nd6TVzTeF0ow2cmtZtLQ0jUP5b9YkBbSHlNzZZtbdwrcbFZZ0XPzU/Tl - -XZQ8bDxkQ5QeV/qrgOTBQAiP38UGrffieU4E2iOpeQeQCrvmNYHPMD3vLr/LjKE+Gcgcdg2N3gA+umAFE9rqcfFXisfWJr7GgBU2bRvWWOLQNbYW4XjTYsSXu4RBLRH+D0GGCYCATZn+cBSLNbRUyEn5XTpZazT6zT4ZVGTCljddFbBYcvVX7VaVBBZLfhNQrLW3zTdrd4TTrdRwLSOxYMRYl1ZXFjoqVAiKZRYuSeZRfB4BPrW7FaFzSr+fNOQJ - -EXUGSQctmevu/qVbS+QDLeKIptYkmjLmQMM7rt7qPN7DODY7OaGtmFRbmkBFRWeravxPJwKBIDNIU4raJLZHjVRZMwNRM5pmbT+EcjLZDbZHOVg4pGxmw2gy5TR4NCjV8RIzmnglQXpWFVY77NF9cgLSt2YOFcKbdFTeMRVQjOyRbbbRTLc4DbcGUHLUMLbkTU2LZEZfANSUmewbXgLVRzaibdkrcuTbeil4zen9exDQFsAxzXSdYvpRthQT9dET - -ftVX/FQTzbrZaFJVzZe9zXQ+oTbadmYD+VBMknbc+dRXxWSjfEDXbbRhuXHaTYxWbLdr8OcrUYtUwLRMjadVcXbQwoPhlVyDUNRTYtS8NbqHEh9UHVf3tYmzWydeETTsrV19YrZerLVgzSktQwNY3TUMreMFSPoudRfAFJVhYJLQKbanLYZrco1ZyXg4kX0BUJDVPbRxGQMRe3tfFJfPbewzbHLTnbTIGLnRQtWjwzWvbb5eSwzUFPFvbZEoUMqu - -lzdUSVajAh4HYLUtOSh4Mz8rlLSXralLVlLR1PNmIKbrSlbZl1FfSuLeclXLYzKdLY2NZlbcNouXraXreZbcWsKGVWo4D4lS1or1Ob+PARaNMVXSrbkGRvrX0FOuLeZ2fX4dWdRvdT8VTEbTtdaFFB89SIFXfrWmcftoi4qcBPM5LR5LTm8eRySuwjS8MU1fXsPYwVnSLEvKjed6wJ8tSjecVadq2k5wM3sFyinMVUOkGnrRywebMvrmF7TcUbT7 - -TWhPmAivqovTbNKAAxbP3XFJ1SqcoFRRGOmtEEk+BIKahDJ/rEgyoZWA6iNJ+IE7mo9srBBo9oMbXgbVqrTDjUtwRNQpXmqNIH+6XBer11BSrLjea/TQZxiBSKqSKFTS44Tqte1nv6VXbLPd8QRWpr1S5lAcFEWgGZRAYrIv6IF1PLdC6igrgrcALITNpPupcebIPRYKmYWFdPECnkIMioP0kCy2oTfFcGLQzbqlW4UmnTSCzbc2VmbeCzc1lajL - -brbdqJZJtsSWBAgDGTv7dNgZMBoPMbTsihQ9UidZCqj4Td/BunVXMpQoDS/1SWLVLTQU7QSzaZNXEjaE7fotRSzbizfzTfizTO1YTsBY7Y98QatUgVMvcCv6M1gg3lgGgLPPNHJvAQYzxhu3KKyIz9JztPqkNjVGm4XkIGrAJ+tmkGkYZYKPsTbGd6DAECFTdbXguIZfgIc+MViP1LWl0Zq+WkYInxaJPHawSd2bkgOgrVHqsCxCaYVardWWUraL - -nVjRZC/0FwZMUkV3eKUaYr5Ec7WS2DmJsqHP36H1YptJhxJVMiI6DDtHPk1MbWZseVeEGkzIOqDmTEq7OX2gdMFURZrusDqMCbPvGsjrak1JBkqChbDpVuuBfAOjGhB+BZXFTgPJmj5ZjGquZqPszN3kl2jPbHF81VUFFKeCVxMSjfTpJRiO+OMeOA6RDFCGgPDgBAwrFasqigVRwGw9MBhHEdSskCmuedogHSEZBKS8PsnqygDB9mdLpNmd2Nhu - -YL4gJvguF8W2TYGIMgFT0UIQ+qgQL2GDtCrL9iaSunFSXYPM7TTgNg4NvbaEVNB1ZSCL2CobteAYBK7ZPir5cYfbZUSYfaV5LrT1RGzsoNc5hSVpY+OMOFkVITs9d0dW5lbqbTIzYWdbNiObfGdqHHzJmFJlGWJ1ZQFcX2cglVzDf6kcmNt0REWITLaoO4qO+lDTvdMn4hZXnpW2HLzfHHD0AElVCAYRw7MBIA5IIAYIveNWQlIgCBIGxXHX2PZg - -XlZv6mKLOG7KXOzNTioUHvMjHudeDbVLETE7cNbb1QZvaNaWk3wj2jMTEtzVJ+yqtFaZwJareBrRhzevnmsaHmjMksFPMq5Xts1djgL87aiCawaPX5bQ2DEWgGUA8SYqZmFmMp5FkArdkD+cfqlD7miEEQ1ACk5U6mOfRAdBDdOJ3SZq9FJ+PG7UxQr8xNTDglwNWmNaBnG7Z/sNO7SX2rO7UpadAFNQEtDVTmySzIlaFTtUjNCR2ykW6dh4G8LT - -EGGnPKn2Zg8cyJneRYF2ROaaCBZveh7JoywT3sYGrTeFehprphri8lEwF/9BhTHn2BcYDvaNKOIZKOn2Nbed0nId6DLOoB3iM7Ze3C6WHEpPEHESEBASu+CPwzlLhCi1iIhihNAOrOu4S5TRvyWc6d/Oe4FYkNcBVLgSEoSO00MqBDtpUEEFmtEazVhFQuWYG/sijb1fJOiDc7RZgQRjdaKMozIehslzhKdHUauc7T+WFviHz+j9RN2wvFYJVwGl - -kJ87cmCt87T94HBuEWELBWBX2gFOIy7XQSQiMuXom4jEXCDazGGwF1WBS7YV9GLoNofJ27TIgN27YjXJAZYM0P/iMBFE87as6rTOAORoAhKSNU0rHi7a6gGDHuQsplXKcJMDBDiSii7b5tGi7USzN05n00PB7S1QIYhlM7aXMFzEBP8kZ7eEWKseJ4bGZ7dM7Y57UASqI+UgDiDKIYce57Q57ZwmuZMlFVMAoMO+qZ7W9xKi7TM7dCOhMuW0MHk3 - -uEgEhdPZ7csFIF7XXJOV0MS8tTRn8ySCOQAEp9PEYguRQgLblxbEcgDeVQVhTF7U3hH+AWkqOymLUYF6yEW2dF7S0QsV7Qv9Wo/jqPCtvMjoNxOZl7Xk3iV7X1GFV7ccmuuBGfVtNyfOaec8D1jaCVcRJRftX1ObmsGFtWKvJzmWM9ZlLTTmSlsr/bSFtdXrWd7OOkHXrVylC2pZIrb+SK7Fc8VYUrT8kJszWOsBzfH4LZ5LS7rflbU/wDKOc6zB - -0prt7To7rbfElRsjgDzfFFtQM9bgtdFbc88BDLpyTTDua4HF9mh4HAd7g1zadyRH+u+hMz0CFlDWgCw0uPRhRRU/uE7mGMTBojWWVa2IAiQPDTMehkUZgAdd2bJ6TEixLVcTWWNC7dSyLC7Wc2Xw+bTHjJNP8dee9VjdXENRBzWb9aMbfBEgI0iJcppYPVJNM5TOuloNPUjW+9QrubtzZKIBvUc+Odc7dW7eZoKJjnV7SRYFlmFfQrK7dcOChCFS - -whWUIyBNu4CpnBrAty7dz7Yzobp7Qa8eHmNGvCzlN85meiqIyufRNtgkJ4AjFf3YNJ7fY0LJ7Q/5Y22ccgCuWMKkItWAj7ZFgEj7QlvKD+JmZEv8hp4Gr7SVgIj7bBsFgtNAkIRYPKkir2lJ7QezjJ7eXjpEUKT1Et6IsgIvSBb7VMoPL7db7UYVeewLZgK1rEZmI77VYaMCKC77SXYCj7eGsmj7erMtPLd9it5bUAQOBJTvrWS0PA8e7Nd/lGUG - -WnFYbtRnsLH7QbtYlZQUdVg0suLaWNnGmuWNuU2T7aCM6FbkbTAA9wkF+gU4KwAODwC00jUxjDwOyABeBNO+qK1EVgfdxCLxB8OExwGerd3GLAkEyKMukCIxmykVdVD46aw6hZecr7YFwIl4RrbSTCVrbRCzVm7Uxfn65DuSJUNtmhcgrf/uo9eG0wMW7fYWCuJtR7Uk9PAwHR7YaBiLoHmsLAkP87chVe+qVHeJdAS5xH8mPJ7SF7URzHBBrT7a - -xGdagDO7dNvHO7YHmMzCtbiBc7VTrAyxI/sAwJO5LcKgFsIG37c0RM8TKgRUr7aQqXqJIt2M/7fuxCe4A9eaPJNg4J/7RyNcEbR17GVNRMdf3Xk1jZUpHgtbLhTrIuUddUdaCJZg7EFVMmjU9dlyrUWTehphJluPcO6AKPRtNFkeep/tXNOvdMlsGp8cSZga/xLiegenKvSbB7IM4C6IA1gB/sMLxpjLH2Yp0GIPYEfgDg1sbiH8zNQgNH6NgbX/ - -BXNzSb9V2VejZaS9eYxBeEmPtAYCGLraEOtrWse6EeIDP7SyPDeWkf7TRZCf7Rc2GR7XT7fONE/7UEBASyBhKYS7dXUPMZjdMPHibz7X+OJcqB+pBncQ8dWWrO56uDYpbZZS7bEifxFQr0DKMCHBLAlfF7QNuYl7bHSW5MscgBkaD5ZidAJmCQ4HWyuC6tb2wCO7UgICbTPkmRQOPzoMKYPSuDPdv8mGpEORcHE+la1eHYD5zGx7Q10Eo1tDgBkJ - -iwHXbQSngVZ7dqEVN8DZoq7EaCco0oPEHe6tJ4HZlXDmYKYGnEJF4HbkonSzEEHVoxnycISPugEgzorS6C25BynkeCbEHMMqme4qJ7Yf7OJ7ZPOgpwnf7Yp9NtOm7OeRnCl7b9SpFEJOsivioFHr1gMkoKborl7RNyt0LOqccbEA4rbnSD87RWOGv7U27QLCNyICJ5oQqFqYIEVC87RE+bTePQ/tCmEJ4KaxAigKOENFVFFaFjpCASH6cR2PF5YB - -I5lWxN/rAv7XsHRMrJEJhgWNj8C8sSMCQD4DsHbVdipwBcHXpZYBuN37Th5AHdfcHbR7U9MOrco6ofkHfNAE78A27dMHQpjoCbUObHCoL1mFQjC3JNBQBi2HNWMxrhYivY4LPBteMccYkMHTYgnukjN8nL7T77Rj9Qt8WiCXl7SMHbh0GL7cC7c1mpZGfoHV+NGKWPVWHiHQRyASHZv7f8AsSHbowL+jLMzTIrWS0In7QDLgCkHM9YiVQCkGSQgj - -fH7rTo7qKFf8rYd7Vm8VstckaVibGPrQ9II26WIzfYaZgtQ0XF4Ld6RdFFYFbWAicFbbL+dUdQW6fu7b2ypA7Z1je1jV2ykTIge7TPyhG2CtCZzvus9WvrdHrSbirHrQXrW54Qd7ZjGa7LtjGdlbXilHlXHMZCn2XbFfFOZg8bKLbqtuepvVtst9buyqMYEG+BMYK42KjPg4ku0minUGDTlekMvaLQ7GMjAzQOOGP2nC8HpCcgazOVNk8dY4xJSA - -Ef2cdYLQSMFZj0vKqmTeKVYuVRTrTig8Hb8yFYjRwHZj7ZnTbUlQUqVBzRh7eudZicS0QjVCoFVfiatwCJLsMW7bmYmhzUQJRBrbqLFIHfdgDIHebxt/7cymghGizKpiHVpTGFrANeB8HYv7X4ZDoZLbUNkYJQLREyKH6GMPntwa+YJB7S3TKLBGRLR/KUSHTtsjSHX7Ra4HQM8O4HWLyEJ7XSaJorvyDPC7TfQH6CunAmSHS6CuiTShcBOHY0HT - -B7T4oLuHT3cPuHQS3I2QHJIPiUaz9JvYGC7RHohC7TLyQJ/OFuZSxNzvBgTMQ0N6MGp4NdtCv7eo+u7BKO6PKQIqJCOsFH+EJ3pW7Zm0Mf7S3mqfqffxO1JGLUtcWHIHWBHaZ3NF7SBSICgEwsooHV1oGzZPp1ENJIeHfsmE0HShHZOaHSoOA1OP8HRCEWfIpySlivc7coHehHdMLA4HT9JNcioqZr4HQeAnUhtw/BZLAx7U4GXOml57TR7b2Hbr - -YSHwj9RGggD5WBiyZA7umHbR7SgnPyCKeHSC7axHWcHSySN81Ci7UA4D+mMdVT6HvxHexHeeHdQXqkuOSYhnuK5vKJHbsHeJHU3dl6eERHf00D+nnJHeRJNDeS09QWcbtet34fnvCPdbcKUxeVDbnipfwsutTZhvhpvhKtsStdqUaNSbt5EsCSEXodTeOaSoNYnNUgWRmdT1SZU1SUjHlZTbcp3LXOPGozc+TO6FVtTTrtecqUowA1tTj9oiyOmT - -Y/3FrDC0Gh5DufLVlQVGgfe3mKwb/kJ10jfpFQxH51FreGDwD6NC8zQlxSiEN0gNkwEdhEgPMcqhP6TrwuvIrPyfNZh+aNnLq2QqB6EETApfAMLP1LRS9c45REZCXDEbbemAXmqL3catFXjGUn/CR7esplIiAnxRMgObsEB9f8mNU8kVZFQJF/JdTiuUCFZlDraDQLX/yfowNrcU9KoEfjEWtBZVg3D+xMmyO09AghBHomH9f6rPZQIdOuVBJZjb - -foFtHUtHcXjAIyaaiLi6KnfJb4WMxONHcVIE02GFHOAJRevJzQbxWYVeLdHf4ZHlYMfnqjLF7sCTJMEEK9HRvOe9HXdsMI/PVHRysD8JHazc0UCdHbHCMtHUDHdICFdzOqkOJlVIiGt+EMxK7OP2hV9HTLHIdoBblgEDj2MLFvI7zYrYOYLJYJNeiOjHTMbPBIqPEkZmAvmPE+CuuKQOrYMJIfMDqKc2SYjEiQirAJfgDoYONcd5CRpvvcBHqJOd - -Hdw4JdHUmKV6vAT0P+tAh2h6fKfAIFWNi6N+sjzHU6gHzHSC6h6fDrxPtHan1Jq9m2KLzHfeJb3xAIqSbejHqt0xRAjbUEPLHe+JecMKIzEFxOPZIuTvfDknoSozJrHe6pRRNsrHb/mKMYGrHWtEKzHcnjmrAKnQmozAdHZ9JfbQgUymzHTbHaHQlReFPMjGHCm/lNaE7HdbHfB+gzHfKWH//Aa9izHWuaM7Hb7HaM0nUyPQ8vn9XrzFbHdQDvB+ - -hciobsZ1wITHXLHWLHQrHVrHb3DjDHQcgHDHRTAhrHeleKnHWWwJFyKckBnHeeigz9V4cWDfFkbTKbURvlyZQM9aRvq2aTZHQl0JfyqiZUvjYO3Ltib8KUUybGeRUTS/rRIqaEbdg+VX2W1tS1tffrac9Y/rXeLZ+5TzhSU6aG+Cp2aU6SNKvs9QLxZPHRtjasVA1NasVIqbV9Rkpsd2EeyTYJDKh5ftsd6nu4qomDZvRb/VZ6zEMBnPgSgHSkLb - -6xnobj9AJq6sDMJF1NmnNU5VO+NgABd+HQMMlHo3AHhfrqIJPvBI7aOgDCQBlTE3UJXHB2CliwR+WBcHtQiSLAmVZDhnv1LVjZTHOVNmN2BmCNcNdiftc0GGbbXXtZDUPFuWW7cUScHdRDHRMgJ8HIhKhjIIjHePYFZ2HVKb1CKdHQoIFsIPXCTpBvRUlgnYtHZDHSgnR2wDTHQq2sZWNDpEgnao0ogwG2RDrHePZDZxAgdNQneASLQnfNGKbHTO - -vPsrkOhCLABaVjBCBz0hK7GgnSNAEMxBCBBdgWfaKc9D/Hd7zQInUvWEG6NNKUIrXkadMGi7hiLze/5pB5ZgkbXHYsCS40V42LLmdpRheuaZCBs0JUaf6dO2xVwJagHUJBn4AAkwOPRviACqMuvyOrICx1ADGBmRneUqfxJ+cZ82Ge1r2iFpAKIiEgIKvRJapp6KntgK4xJbqhurHfutwndncLwnYKsum7Vt8TmbZ+rYzLrdJVomRrwi51Sm0Mp+ - -ldjANDeRLZ6NaGiFvsQc7dqvgtHegnfXCazrmNHf9HVN8FG1usIJInb0DK10PuJL76F7sBWAgqkkTbQjHYInRgnazrqEuPQndEcrEzNJhFoEjrwlDkDLnv4nWInWqkUdDlknT10KOdESuSeHTwnV0gGHAHSJgxcbbTR88opsul8e6ur3Xk/akP9IglZ/3KjPo01Nw0sXGA0AHe6CmUCMgFGDNrHjMRNABY0ni/xhphKZ2NWWOQHc27pbIDsfl6JP - -pll/HYKwsI4L2wt12XYcF+iOcxPerSALR5TbE7WMbR99e0Yb/0EB6TTcbpbHktDr7OWbf1lVlOMw9AqVbooMwncCivNHYNHdtHdPgDqBZwkGCHRnHYRYEMKcQncgncLdUnobkgGbHco8NhSf/HRNHR9HTx7fGpBIskL4GhiMinXdHainXXJHbHan1AJ7cdHdgnSQncLdYLHWxEBrYnKYT+Kfb1EjHZWcPtSPinVy6ISnZK9I0nT4nT0naVsMj5HS - -8PhGsqQWCnVjHaH6LxddULLUnRsDvLzPUWCUnbNHQc2YpoF3EgysMdCuqgGQndfQBQnfGSPkWG9HeNouL0V9huQnYlDJQnesDIPACr2GqnfKnWsKcqdlInVWQkICqqndXDDqnXE3EanWphBBfmkqPgnVdzEcqMETZqnVkRsanRanaVcEmSBAqXqGjKnVqnQ6ndzzHCnTxIarHbHuTDGMHHcnjoHReRnPSndeiIynav/NHHcNOIYvG7HdkYExikHH - -fc5GzHYGnVfJBdHa7ALuAnkjQqyeGnf0hl4cIzHQHHfPHkg3N7HdReCl5jskP7HewMuzNncubEbZ5FGWnVHNalotc9VkGbp2Qc9R3HaS+ZjeFQ+WPdTSopnNRQ4AwTSgxKhvtI7mbjUN6dGDYItjz9ZaSBQmeF4pmdZ6rtvzZd0cIkksdaAAsWEQuae4LeJvvLIvmdRQ4H/lccQR6bV7pd98H/PjQiGvBHNRDT9JPMEPIAAUKd+BcACC1ry9mFvP - -RsFg4O82Hw7DGqKa2JvmIocTlLhZhlaIN9YTeVEO2GevMjhKKUk2rn4lKrViqJkq+VQVZ5VWRRSeTmMjHqUvWxGVwCs1Sv2BVWBfuj1HagQLkNcD9bHdBLhYQiKNWcH9p0Jt5IAsUOoLpsqXIUEJpFbvvn+NVduhdjrNHJZh0EtAZs9UEmKkn0FYgvPRKUgD42Oe4kJ+GMEoGSclIEyBEmxoCmLYxP0RLnEiQ4GRTOtZPeKeCjlOzDIgMjoqv8Pe - -eoSkT7YpogeHkPfKZttcQmhnYqAgNw7B4ZIbyCrTW/RnQkbhTsXgQo3HRxHkaI0oCeIB2Ap80ABmt08tnelJne7EjJnWuRPJncKmdprM09dKupHJU77NrlaefJtIL5bQLmLeRQF2RDLhc8KkvB7taLmEiJbZ2QOCXXxlJhhFLDPXiXAQYzZ7paOuc4ACuGO8ZI5GM8zbbOJuAIKrazQCdxDh2MRfLzRCsjH71Z8HF0nF9GiXlN8AiTljaoHclFTD - -rrXnI8hPiFY8kwwBArdiYG+nQigB+nVDjQgdWEnXmbbCDbnDMmnRSoBK5G6ErTsJKcKtFbkKD6ZQTSjgrRmomEfGjDeIoVRApQJUx6mDQA8oDOhmGuQuCijShxuBc4fVnU0GHWAsTAM5sOs4pPvEKYNOoRVkI/YP6EAlBJ/RYHCnxKExMBCImegUacaqkmzAHTAPocIjAvRenyiGx6qmSC3iEvKbb8QuuLnDrJcKdXMtnb4EDr2Lv2UIBN28HCts - -t8rAKOeCi6sFXvGhomq3IZOu7Esdnc3ihg0BubvGiGd6OY9HBEMS8q6wESgOzteQiUr9G1lKV5alSi9nTnAHJWKC4Rccc0OK8aGXeS5Sr9nRphORPBwsODFE9Bi/UIUgD94DZxEvZoHwhw2Yb1PxBVZEPwyY/oAtnWdIP6iLP+mHojvPGyUFzpJR6R6TiiLgJUUrCmIIL7Vkj0G/ENyQJ0MPGSPhbRStjyLR7we0MDQoClhHBnYYoJgNdDkPirCP - -JQkZHOwC67L1nb+FAzou8YSgXIgOc+oMWrTZsEjPlsCISWO8YajCdOWlhWsuRKOEA9cppbAg6q3GQcIBtmUeJb1CCn5UnxHoJMRdKvdgE7NemQP6BQeCYDcZsLyvJmAlrnRAwGRneyRmVICVhFjUJ1nUfKVICagoCVdIcuRmLNDpJbnUbnU1naLgNZior0LxhhoICvQIbnZrnS7nTRwBxdH0AWkrDdMF7nRrnY1nZ8PHz1NhzEc0IbgGQvlXAHLn - -TGkC/gWLwQMmdNxDIOEdsqbYpEYPVyfC2ADDDriAMAqarA1TI0srHnennVjAjmvHBINCCS2cr6JLLnTsIPLnfHnQDDJmIi1ZN99eLgOXnWnndh5IXnRWIFhxM1wNymJsCOYiqLndUmLZ7XZrJJ5NZpEFunynbYoF3na1QlT+RWIB9sHiUPzPlKeFu2vnnU3nYrncl6N3KFvegmrJ3Gc1gDPnQrnT5wQvna/wCVvPB3CLnfowt3nQ9tclreytI4ST - -AQKRhDvnSgMHvnaPncl6Mv6kfnf0LDv3OevOzabPnT5wf+EFuhuIUGEuGWRE7nT7nWHnVlrdk2M72FqkMVbEMlk/nU24uiERm+fssLjVVDEni9KYkAAXT/nTHig0FavnT0sDkeF/ndZwJqZa/nbNlDznbNnYShIVrd/nUgXcAXQw6IRxK3xHd6pPgBgXYgXS/ndgXa4vrHts+mgCyFpAIQXc/nUAXX/nX7fpHzOTAFWmCgclQXYAXb/nWOhUjCrt - -rbHzPhOAHQpAXVgXbQXcEvqJpvH+ATetwXZgXcQXXwXfsgrS6SPmJOWi5ILYZpU2SQZaIOjEmjEeaQZUD4eQZTePmQZS8Pun7YkUdE0ZvWpfUOJJoGQDJ4eoXemBpj4boXfdTm1th7YZlxP2YXGiRNYZUBKwIWFQhm7vJZjK4SVWUtoVx5ikXIvoad8K7Jq4XbAqtMDWMDSMDUd8AJ5ptSaCkXvdN4XVRwb4XSNtlSdnkJO9rGRKZsEo9rAdoZEX - -VhxNEXaRKa3oVhxJ2Qf1ocTWtxEJ3eubnqgOkUBvfdDtYbkBv8kR1/uIjTtBLFdrS4YQOmtYRdoeHOmF3lsQXgOnNdPIeiYNsxke9ATFdlMQXrnvpsdtASurZUXemqPtAWYusHOh0XWHOtfwFVUNSoSjWQsFIKoWNxSyoU8jDcSmywWVEAWVHb1ZYCZZlP8wFMXXoBhyPpIQnqwCUIDRJKsjomQlVEFKBGXlpVEBBPo/OBzSuiyGcmP/9d99QP+f - -dfHxzJhAfEeaOMrTrIBQJRSEAhO5TFvoX3QTitAPQT/rRAAMoso47mhPr/ZGQMnmUMZVXwiInUDluIPFehjrfOb8NPKhuHGBI7Ze3C15Ea+Of5a6taFWMhaECsFpdEdROPncuOJTsSMCX37W5TYNbdrbb/OX4rXJ5Qe/KkNGmkEKsuSImEBPtoEpSiBbFSAlErTbbO/nQ8oDXCJT8ernUdnV8Yj3bQTyKSXV1ne/6i1nVsNMGSD6sSqGN7nWSXb1 - -oE78KmSIy+BstRLnZztJBtDNoBYYtucJtnVM4HfAjd6oDnRd8SR4KQRjg2UJWCN3lUwbQ3hA4KwVAwZmRFLHTGkHciCpfAPVkJtAEBWPpzL1xI81MT2bqJNLnTWaDf5RXnXHnWM8EXRB0HpA4CSlAnfCTnVztG3nVcEI07jvAHbnUsspGZKa5vujjVmG2rO2QHEVMHANRKIjuDA8AK7IZ5K3hK8aGgiifAI/sHd6oh7PPqXd5RlgjqrEGXbawHMJ - -m1GgdSqgTaE2RFxBG7HbzKIIMonKicix6ODDcwUvYUNYvF4gLFjAIEEUguA4vBijmlBLhSgsOTCnwRHOJfVHSiyIHSFp3ma3BjnV9ndizDxnSWZtjhbwHkwFFzzE3QWW9skrvXYrLwZ5IlOAX/ABsaIpVUPADOyGyXfSXWMIsKXRqWpmXU8IMOXX17O/6qnnffnerkBEeKyXSHnSOXSgXdigH1nXznQlqPdnednfNmOxWHWXZ47u1Bs9ndszH9ne - -pfIf4LuXVjnTmlBhQLWaqqwcpzdQyFTnRNnZWCoPqgVgN2hsSAvX7dLYLAXRnnTd1fTnVmcIUJpTnS36Er9OI8diAeUkCPgqeCkWLDrpgeXX+FNsneRSXxhTEsOpwMBXR9ajd4TPtHVgcDUAUJXYpGE9CQpNJAMwhfKgEmXR5zGJHrYbE6nWYsHjnRqtdhcJCXZwVnuLkk6ajJgqXUd1JbqH5GtAZiWjD5cK7spEoJuXR0YNuXSfQMxnQ+er4NGp - -zZuCmdnUxXewbOBdnXIuxXTc+G+5qOrdtrFH0fJiFgZSH3O0QehOgvCud6TlQWR6nLxY5QRKcGhOmGNjPCq4iRu/tNBjKhb94YN9TdMOvPj+OD7Yc5dsPoZvjT3BTZ4Y64fWNg03hxkUqiPMcJp4XFQUBTh2jdHBgQZfp4bZXX1gSPkTQIQtsWnAcodBp4X3kTVmpV3sL+neppC8hvgXfYY/wB9oQAasKlK3gY7UZG3I1ZDsQYljnsQbCwQwthuY - -epzCJ4aGQQ0zGyOic+uN9U54YZ0f2msNtdk5i6bilgnObuvjQGFdPcucMYC+lNNS2WcCIY8XTd+L87HiVFhOF+BToSh0aEhTMDGI6itatWp1ZPSOj0KRcpm0MM7VWgtgkJp1Q2pAFziRfpHzJYIXBzZZPnMHWTnbbTNkqbcnUNbfjTdDbS1DZR7DIHHSQGNklRIjyUF5ono7U3mp1/Cl5ZqtSbVbSjpSXUpNGAXTISXW7ZPqG+XR1WCaVHSXdOXS - -yzsPnUFtfjam2XTlAOgiLdYtNnfyXf1ne8Ycznatnbv2e9HNdXWuXUYoBuXZSCCnmLt8CcbqgXQKXQNnZUsqeXdNwK4Jc9Xbzna9Xfo0P9XQv1fa9ntXQuXfnCjrdlkuEdVMHnQlXFw4JIwKDXX2aItneDXUKXezEFtnV38H3GYTnRSvCwgdaZtamN8RF5sW9XTPFNnEBpgORGAhXSA1GfAJIfPDkR9XWTXRG8rjnSThiXlPVWP2AjRaMhyHC7ZR - -2JdrRQLAacfe5vPlABNP1XeTXba+JTXaU8eRXbzXecFARos5whTXTdIFTXVzFu64W3BYp4VCYf4pSMJK2DbRxPoXXmBgcsUxRjF6tmzr8JO2Bh9BXApsDBa/9bDBXi+RVFophVW3qwZcsPJReaKWRLKbLKRwZe4BeV1h9wbU3lNoY8IrYQGuBdEuN6WW97RGmfoWiYrIWSLJeTsXhAOBpML+8BLgtZyah2PjQpJ5B/mEbqNWQo4bkJnX0GA2kav4 - -oLHUQlJ4gHUVi3tOaXfDDnwDUVUYo7fyVZKtX21dKtS8CFZROHSY3pIZJUbGiDXIz2BZ3FSLUCqnprdEHaepehzQgnROyNWLiKlPu9mLCTlvNdnU5BlSsXhcOdXRhKSmuI7nfDnVkRmh4r4znyXS9XYKXTHncaXQXnXPnVCnCtnXtnXWatKHFyXb4RueVJ15Y+CiTXb/mCy6TvmmDnWbipBXa0LDe8BClpgrUiOheXQ6rLa2RXSevXdXSAdJtTuF - -RndPvClxafsdlsDTXaTXYvXUPDR7wRdvlbAkwRkDXbNnQPXRwoDRXbtUGfATtHqnnecjp6sCtuJEUH6ssRdCZSUigKdnfPXc3BFRAlnNGKPl+xFnorJKsvXZFIIkbIqIISJBQXThxEaXY3nQg6ooiXGwMrnc9ABnHXC9P6XdZVkWkFM5ZPALA3bASeJcGBuVBXeiLMi6fV4Wmsv04FTrD5EimLkj1cOOGZQhxlNqcZyvJKyh8WCPBN+NLbMLKlsR - -0PjJLoDYVkGtECucfkYSEYJWsuw3QOwJw3USzC22IriDsemTNLgqbbMMRXefPEuaIPZJhXbP6nojGhrShXbaQMZWJVgPBXagcbeRIhHdaXc2MK/lAWQEyxmBXeQXdA3RQnNKXZXnWM8B22vvXUTnQtPjNrPPRGc8PC/O+rlxMbp0eBXSvXeJhIyXdNvLr0Kj9R9nSZwZ47mDnt9XdRYFGsqTyGPXZgNb5PGQyKmSChINtOkKnZnYG3XdnEM/6AM6 - -Iy2EyXe43fPQlE3TfiNFBSwYHE3W43T62gZHe/cWpKZOYep4SCYUhvm4LsPkbDkVzbaTtsS5jmDS/RXkhkvfoUhtATtVrkCLI90bfUgIZZDxnaWSDGiPzbV/vvRW9TZa6JV/lMTmcMUj4cvPjzbSYXe13v+oddTmI5dZ4fo0U02cHKMrXScELpXQt9StvHltuBAeJ4bZNkH3nwReTDcytv42r4tlM3XbUQuepHOhg1GWcRXSEXiNHzD0fKjPpO+J - -baHOVGfTDP8ZDwPaMJd+BoQH0TL8XVJVq1stEuBCIguqe1At/QGjqSfFmqye+aY1DLVIHT3DQbqpJaTnd4YMsFIjoP1LU4jSsaSQCGi4vqJbSZIs2DQlASXdTZCdAvgdYdXaSYu/6hZxkNnVWsKzsJ8SQxqEyUDHAJ8+NtQCNpDlvJtXbSKAUJZmIL43UNrFn8Ti3eZyFWIArgKxUIxXdz8gwbV+oPZgOrxOhXZo7b5oJDXfAXQl9OKXXMyMAmDD - -zLeXfUGPeXUZBKy3RL6J32qucGDXUpnZtymDXTImp43ajXUK3bGqoE3eobgkGOjXR/auOXdvDHC3eSXWzyGOXT55BOXfogJWZT3WJdsF7KodnU3XfeCjISehnaYvGNyOlgMvQlDnYBZE+5izlCzXUogGzXe7zDY3fcVMooMqQbu1pb1aTXeoYGl2pLXbrxMLXcHzeOjSMxBOOI0rcitrUdIkkFzXbazgY3a9nV1IEfXY+XUEDMlwS1uGnCnKqbDX - -S90DTOJhXUkMdhXVXPnBnVoglq3RhXSp4OpUA6xFXPmEZCfmO3XTE3STggm3Zm3QKfv12Ek3ZdXeJOYlmVhXVm3dPjUEROiYWZxCSYVEeQoXVoXTL1Y/rvDBWPzZ/CQDVdMCfPfkbjeWGrr8odsfUuQNZRahaK/magSCvsPcscfg7JstscOYbQodZxPQoXoXWj4bohc21q8JeT/qDup/TkNws/lSUYDz1Q3enSob5vAMXTTIMKbPEJKXEJUilRxu - -PcL1YFWABy5m0AI75QZiKzGgfORkAPoAK/LZhZC7kl2uLgcH7VE83cDMhykHMqY++dDLaB6LacUuKtakqopnfnaY3ftXf1LeCjYpjF90EJ8NQDJ1DTBCYOiaWrRzltKsv1HQbnUuXaucWizXSzqW3R3XRqnRfXQvXV4iZOXQh3frxOy8Tq3UqiFEaD+DYq3WxcEhdLa3Vj5dlXFMkEy3djnReXZPJTaOBGfLOXQB3VDXfmOXsWNqXfuFBR3UPXdh - -5PtXQImsx3T+3ax3a+Xex3fOXcy3TTherjZ4HgPPoYXkfVSYRrxVT+VuPYiIWjMjuXIr/gaUtFe8E9are8P1ae7XUu6V98AjKLL/lvaE+GWDTizQIDMLPyO37EgODkBVc3q8xFN0J5ddGiE83aE9pLgFgWCDqFcGJS3Wd6JWgYuMhbIN0oBosI3TP1LdBjRQ5CYjEVEZ9EZoSE1AESOTs7VbGqENJAghWrfSLZCqkR3Uh3SJFDe8N1OMOLB4YI8s - -Ch3bDgj9ndWIAbVqxkAbuX3XcDXcJwPf+BTICMGNs8NHZvdXePXTK3Y4ZBo3UfhVcEQxXVxXX3zKeRIDIh/Sr1yMDqCgISx+kbuWV3WXuhXnWVYPd6Kf/EfbcFHXpIJ29SgWRIkpNJZTztdwh18O4Av/2NdbY+7UJBp+6Md+GeQKgOGEMjEwPDKMwAA6ZTbaHolPHtfXYV6MKdFAXrixRZrghqxEB4GfkNT8pcMHHXVaAbgOCYYtbXjf2WWYlXov - -p3P1LfDjbB8VLDAR7XfBlM2vIiWK6J8nU0RrA+kEoA2sf+3SaXZx3dOrmk3Z82Bk3bF3Q7RBdXah3Z2IIS3SDXaI0CK3ZO8i9cG93cT2iyXbh0DZgNNQJWUIQlWBUF3XS/wC3MDSXV5BMtiBjODVFYZoJR3WBZdx3RkaCYbYpoJy3exVh2xEhnf2XbrXlicLK3YaUIm0GmIIg3XOXSVaVBNZbWI0RFOJiwbCY3SaXdtQBHwmCYtm1ELkOT3aY3Yz - -3RMDo13VV3Y3TNrYrkmif6IxeN4xk53Wsgc13TW2RW3Ym3VW3ZZcpV3S53UqMOJrRbUH8kPWuneTUL3U13dV3ZkHaiECo3SDLUwJI+XdRnafXSgIaI3ehzOhXOGsvG3b/EB8hIo3fSnKxXYp5NKgH9cTpCRlgpFnVqgBblvuvMtoLj4DkHSX2jfXXu7PFkqFUuuwGpmEQqLVcbYpOogBBWF2iO3hGq3YVkNt3XOwLt3WK6Tw3aEAifern1cgkA73 - -RVkv00NCBCgkGJcaXHCHdqjpOb3Q2fogMhSNffKeFfJhRSRWSqXf/lGqXZXsqA3YATK0OLDgm+LjcjC9hAH0pPAHHAsX3fWNV0meG3REbBj0BZ1fQgNX3bdFrX3QBsq0GQ33d/mI4uEX3a33d5LdpnYMEi2jfkNhYnu/9Q/+YLJgqLbsDb1ZYBfDXZdoMarzlLNpTzfDRSYEZaxsyTQhxhy0RECAKTThVnUhkUaNJvAuzVasGuyehHR6pAUaEOHi - -7uCOHruzVqYIOqBZ3ChWuk1VQdItkKx0jm+nDHpIARyWpC+CIYoFyiM3h24YrXUFFh/VaT5cEQuXLcw4Pabe/Lm2lRjdJz5Zcfo8IldnKCkcLgo8XQnLBeEuuQcODfP6CqoKDKjWSIFyCmUAnJut3lPFcyPNkqdQSJu+giHAeQg4Aa4QHPXWlbcA3Z5tOc2brnQIBMbHRE7VylVE7QP7Zm7eNXSNbRnjS7ZLhZCikD2jMOVcVAMDicBrT5cd6Amd - -1UY7fq5GF3QoNEx6lSXfD3eO6h1nUbnR50oupG+Xc3nRPqMznWE3RimNiAR/XXXXduJFcSmBXRk7sl3WdXV93Xm3QYnaetlz3dL3duxF/IH93el3b8rOMkKeLgZGCqgE2wDoPRKPhFAHqXb6LlakFfQhq3dXwGm3XS2Xc7GgwPrcDMbNYPfqgpLRdLgDC1nb3ZACkvooZ8M4PQJiPaXbggDrnYaOCQPfmJeq3VUzDYPQg4FepAEPeJnTlvGY7cfl - -ZY0dh1MG7nl0qG7mIZe5HnyTeBfLR0aG+LVjeqDgLzRJRpbTZEUevLQjWWbOk4BcyWkDmnRHL+II9yWuGMo5QgAPUHpw8WacJq0cgPentaPeseJPS0s83bCcavRn7VrqEiFdC+spcNKBdtbXhFnm6mFbPPDCv1LY0lVeOa4ggOxIBndGlPhvKFdFC3QOQL7DWtXfMtbXXRI4FwGdOiZoyCYPVheszXZOAqzXQCJG/naAXYJTItWtT3ZwXXJVUPnS - -oPdE3TR6Tzch83agbTEUD1nauXcDXegXe+zPLcsvMYihjO2n93bcPVQ/mr3eGkCDLcfzlPXRuBJM4PUiJ0PTnCN0PcpmMzndyXTPXb8PQlnShLDihDq4U7MF8PQMPQv+eINVvVQ8Kf/aoP1NiZW4LZWNaNiRzza/rcmTQfLRMsWKWcw7R/YWorfFDYWJgo5eWJrD5t1EOdPMGUVWAJlAOWgBQMHdNa/pEWrohWbFimmXJrgs6IH1aQzWXhpbewcG - -3UeXX9JT9rtemaSkL+EtGwP1LXoTbnDEEnNUmKTTf/umoVcbxNMPUo9p1ViS3ThWLsPYuXQ1nXWAmxOZSXbq3SPkCiSnF3WoPXG4IK3Tl3X0PQ9XSRckLabrnNSqaa8Hz6TjXZgrcsFShpK/lOztOYBtCRiK3e/prxXSxncqdj+1ePSry3cDnfyBhMuRurN8cPvneD3fz0UfcXnxICPQd3R0YA/RhxbQTYhD3T6PSBeAYNO4PaiFtM2EOhSNblA3 - -Y0kD7YBGPfkYAOwGQYByPdsne55QmPXNxJDoNW3dE1LcMSR5rlFSg7EGVYsNdlOcDZmt7bzfK1okN7cfiFd7SnLk7sGzbpu8Q29XPde3BXLOdpzqUCGnpvxhvIZMkLfGRUJBlz0B9nFJ1difKs9BhTAxbOlVDvFAk2LC9Yr/p9gPcSo2KbqHNFCLPgAVUPqWA6wKr0PT3QXnSg3WOiAuPU3ncUrEiXeB8RDbYP7dQPdm7aHeVxIYg2J+pjALf/hL - -haIyijfUS80J8FDeWoq3UNBCAXdh3RDgGqPccPTfiBqPTxAGj3YA3fgPfasMt1C1ndMvKdXcjXZ9nd43YHEh+PWLndkHWnClZYGy3fy3Xx3Ug3XAXe1Bnh3ZsPZbIDvnbm3dE3fvDZbeldnfh3aGhgq/Dj3TumLHoOsPWA+Fa3YOkHDnRsPdhPZQ0b7lM6PZKXbdcqR3dLUI1IEBPSNYny3WXecjnd6acFfKZXtDXcBPVRPX/spqXZWWFLXR63Q7 - -fpa3d9ADhPQV3axPe63QUJY63SLDjhMPD8hfhW63UhXZ4bOwXTROCEgGePR1hqJPQXgI9cn2XabWYT3aFRGbpAIXfgxCHKHT3UL3Qz3Sg3V2fvsPVJPaOdGz3VpPVT3aseDT3cBhMXHTRqQz2IFQd64UyOoBxtozYaWd9BaonllXVfUtkgYeGikpNTza2Fgv5sQ4CKNaEUbv5ns1qJ3fkgVIRT9HkDxvm9Vqgb7pg/rlxJtmNsL9YWWqOCXBAQqA - -YR5YqVJcKLvoXVFUZuc92uPjL98BBLJqABcALifDEwOh2LTuUlUZkcm/ItnEI96BI7QIEGkuA2KnNuLqEoI3UuYno7soTZHrn6slx0LryHLNP1LX+lWFuQUJIxvLnNo4+eXjvXerd3WClqVrKGTZwPXClpePWxOQ6YLD3fFksZug5oEi3YVXE6hQbiCNPdSXdVCSYPQrJdNPRXgAjnfwPRS3aV3fZ3VJdawokRPey3ZyXdzrFoElIPR19Idnfoil - -D3ZCPTS3VdgD/TDCov+qdXoCWXYqXeGAhl3RxUFWmOH2D46kj3Qg4IGkI58ffVRIKZ1Yo8FY1SCMaHhAglgK9PUb3e2CLZ0p91PyDNdPZRXaAjdhcHWjltCunAHQXDIdaDnYeXRBXdTuJnLr5vMmQLhRiShoD3aICS7TPe4DXgrmqBGYPNPTWEJ73YRaeXXkMvn+DNt3QzAjV2skYNjXUNjkTnRKKYObZq0DtIIGDHw+HSEWQXSG3RPncvoA73dg - -4O5IGLoCR3VQOHa3fN7WHEZMxPaPaECFx3e1oGqgGXwgRvH/SBNCjj4CTgMLPURTgwXcVxTdJK73fruN7wDLPROqXLPc1GsXTOz4KnXp8HEJouX8kGPH/cugOVr3SfXQRMGfXaZMaRPcD6YNPhIXYaPcO8FcwV63c63eEgQJPUIrEoWiY1h9ndZSqbxBCgJtpKE3XtPXNqb2Vuh3biyLwCvR3Qz3SPXXZqOqPb78UtKINPQPOY3XctPaqPY88btn - -ZgNUSXZSwDNPStPWjCn76hKXdtPZlkInPSG4snbq/rJRPS6PYr5JHPd3XZnPSVjOy4bczoNBnxkceofzJv+/pF+W/Um31VUycxYhu3RvCDPzYQaucmcQakeFcaUWncrT/nVZQPaR7iBxecf9lsIkSKdGiXGdTu8Qmdch5YL/PC5aDRVZnnvCbYXmbNQtrg7pfB5ssLq/TiDuUomCJuc/bP8JYjBPsjWxDP23ULDL2nf03ePoWYXQLgnD3TkXDdnG - -w7VY7UgVAcNX1EBBluWgPt+Ir+MwAJXOu5CDYkvz0HfTD5zMScBZnLFyCzgOfEG0fD7GbOzkukBdfGZCIq4oe+qIPQPxuuPe7qec6QqKUtzRh7f2TbB8erSDEFiATcp4DR0gSXUGKltMSknRSXYIPZrnbePfKPVbnTZMLUSkR3YYoJTPUp5BSvApFernQqPaucTgvVZ2rGPazPQ0CQN0pJPWBGjIiSrPT/PWLPdePQjXWS3QUJUq8CLPZgIMSqYt - -PYwvXi3fSTZ+JYcjXYEUplNHZfpnWUynRTT0TbZnexnlcqCwTlpKWwTow8ohqrTxkHKQAUFuwb4sMCEOekFh2DbSqcFI3AGBwJkgJjYPzbIO7XRiKoiggEGkRhJPaH3AzrEweCDjbJPVTXf1LZ2+foTYmsm0MKotSv2F19GC7fAvbuBJXTY/1XsbuevGfcdOkFPFfDXSqPWNPQE3bHPdK3fHPT/qAAvT5wVQkHgvcPYEV/K43e93WzGJhPRWxFxP - -TBPZpoDoPb9XRk8szPUeXXlrUCPdPXT8PZA3fDPc43X9CuNnVy3Xj3ef8Ka3aJwKXIujnSjXZjnUtnZDnXw1UUvcJPWLyCq3dtnRUvYJPTDncI3skvQjPR1GoUvUJPdv+N+MA0vea3ZkvU43UY3XdPT7usObE8HThkltPaBPc+uGbPSXqS7lCMvdRPYYvSZPfpPf5UBY3bjXQFCdx8IIXepPXlcX4vUvKQEvRAFILXWxPchXcWnAEEYiLL/7NvXU - -3NrnxPEscQKOHPQ4hrpPbzgHMvTX5FBnQwXYMvU3+ecveRwG0vS/UGbyf1iFOXZgvVTcBnPSdnfv0AsPW9qD0ScT3dhCHUvT8vTtXosPXIPdpaiK3d/Jnsve2XT93ZxXSzhHkvRhPWi3fePQcvahPbkvbj3QivX19aD4VoXUHwQD4eJKen3oTBC5MXM3Us3SqgpzVdADQT5ZKWU9sQDgbbXddPoEpdycnZ+W/VbNvsIRcasRKWRwZQyzVaWUnntT - -McbpYjUU2jXYCJF/mLsXx0VbUTWBti+QVEve/ubIZs3eg1D0XRujdX2FujZZnAkBcEwKsGKw8k5Zok2BYAH98J5RW0aBY3Frdjw3TFmDFZkg4X47cyPdouqoISGAb7OFK3RsvSWFT9ruOMsuwbixEXfKNXaiXcAhcQ+BPBhH+MWceLoKKPdTYSDkAecI4vcVwFgHr8vXVdt/XfEvdcPY/XYkvW1iOYgNVnRhiRy3aivehPT9NVVnedwCGvQK3aUv - -V9nRK3QuMO8vcl0HUUIRnWc0FP1HiTY8vTxPU5BnxPZ3ahNPZI4LSnbRiDb3R2xB4PWMULmvQVLKSoc/XfXYq/XajPSWvUe6Mi3Z4vRFAHVPTf/MFUZEjX3Qui3b1NFfyKNAHYPVPgOg3ft3p93fDDpi3RAoL35TMxM38EkdN2CtIEO2vTc0GFye5sUxSEi2PwqYsbKJ0TDBTLDWJ0Ticmzzj+2uLKWWqtmDXUpJyhXbcHFpVphW5PQjslWjc5yp - -pucU5f5DqU5QSPYdrqhTL0aMHNEwJnNFOD8KHiQFvuKJIu8mJAZ0PRmjGf1P6DoqOnsXPiUa/0NESfBQK6XQGXTg3T25EDiGj3f1LXnTaPEUWLMh8Z7sXDppnMBbpO6vas0P1PcRnhmvbk7SHPZ3XbSAQNxEjXaQvVkvX0vYPXeBPeQ6jmlHhXZzXeYMrGfE93ennS93VVvOcPf/MvXCQ3nRT3bhvYobZGXe6XdGXSvnfx3RBPRQnFg3VGXbg3YE - -vUxvTRvWcNuiPRIqYnZTVtZ1tULIkabR0dSWcmyMsW9rfiFDKnzFGYMeevXGgaSuMZKM5AJhcvSANRXiFlNKAAXtBj6D7lWMEsKbBN/NJYTGHejMCjmigymV8JXHJxPaLoK/ocQVSPyvgXQAwFmHYtpZwHfVDco7d+nfqlnDMKERZ5zFJulK1QoKhGxN10O6va1dcF3XWHQiWA9crEuCFcVwlnMUF6vV/XWRZiEvRvXZlgFaQdNnUNBH4ld3gPKQ - -CmvVgmv1IC+Ped7W+PS42oIGgV1Db+MaPVTPYsvc2rKqXVnVJt6NG3e6aG6GOigFr7S97t73eUYPlva/SCHrpvxMrnSN0AlRSiukZvShPRYVWZvTw1BZvdEvchPdxPSXYAd3eZvcAoJk3eOPE2CflErjBKXLemdaoNfnyFP7i7cp16VSZdkPVD0kzKdc1qRmEJ2iPAWfzajPstAPQ7KxbHesPz0EI0qyALcQWTKr/9OW+bjAeC7E2MHaiEbflAgg - -OxEpoLa+Ax2O07rvAAsSpNthx1suPUL3dbJMOsNAFWQPZPsY1ldE7R+rTWFfsmnJMDtGWpaCepU9NbFKbhnajyYepUtXbOIOHIr8nU+PZxvaRvdw+JGvd3cAMirE3UivSMGBglkFvUsPSXanF3acPd4PaEPS4PX4PZ+RMjvaWZadPZlvWEvWyIM+PQD3bGvb+Pa7bYRPSnPSBPWXeQHPcPXaIXgmCoxPbnPTtPW/EN8PfDChRPUDncRPT+XXCvWi - -vTGlTTvTnPazvRMeAsvUoqJjMRhveCoG8hKkrATnbjvTOnFr0bbPb/mBMgDGvT+PWeXdzPRQCGR3dlTMq3RjXSKXVjXTnCSjnVeXbg7FH8F8vbdnXRDhj3aSkChRoxDmQvavXVIUeoTLd8HzCq/tJ3JATXYYCo9PcIUX2XTlwGFVm51kjgISgHiwcZuhtWl+3fIghkaLx3WGVJcvbT3X58cZPQcPbPAI6CcsvWpPfRPYpUpLveHaIVYSxPVmvWJP - -czvanPaMvSpPSHvXRPacvWNnUA3clvcHvbRPScvdLJdj3e9XZfXbwCjRPZIXVnvWZPfJdRZPetSZSdjQIfj7mNYSjmCN9WpnJ4ebVjE28kL6lk5bmjVmjYBKEXLQSJfRgUekVRMNiYUmXNZoq2+gtmhn3qbkc2wQ9AbcBtQTUyAQiLGJxAQlbrka4YfN9T3Bc23eFPcsNMnYThCODRQ7tIOnYWylyKqsLg7TZICN03eVzVmIb54WRmH3Zh87Odyc - -A1vnOh5vn6tp3vOK8KxmROIV37NwgIPAD3mJ4oL3ZrB7KQbiuDbyWGxWhrPSOsNfYnj9flLuavZV+LixAArUAvSh7Vy5QsaQWHXArQ0BfDydSCvtcNs9EYatYdf2hI4veXIc+OYhvc9SJ7PQhneIIHxiqWvfLgFtupF3edPfxAKSedNneHAOq8Re9E8vXHWEyrJ1BVLTL7PenvfTXfhXYzXdzXTGCDaPYySiFdHqyAfFlKSJhPUdPeKvJCPWMkCV - -vfISWVvV6PfFIKGPdD3TqwG6PW2GM2Xf3Dc4oCGPfVmGGPWSvKIJik7nCcZHzT4oKIfcdPVVvXyCTVvY4PcwfZD3awfZvxPg3eEMAFQD5WjQfUTvf6iO/ppLnXInJ9PbPiZgjHzvQdJgHRDFCP+QhpTLcwmsvSCIOhXCZ5C8xOw3c0JpAiLVoX2vRi3ZqVF/mCUEsHzNumSZJegvUIPVePVC6cz3fZpKmnYRZmK3WUvTZotE9c8Pf43T9sGgffDD - -l4vVHPT4vajvbYfR9QJ//gwvbq3YXPYTvbLvTxChHPRnPfzAJ4bFBnX1XWMJIiBPnPXD3ekfUx3VqXT+3bj0HEfd3XdHPd7Co+Qvzegs7oaIBEvaD3SHANo3UNXXaXV7KqEfXGvSB2W/vfM9Qr3f0vXcvUTXbL3XiStOhMXDSJPdsvdmva0fRL3MNXRjvU66QVWOoNl+lm1qWwrXUffuZNigI0fRKxKhXao3YtoDLPZ7vf1wJUfVWJeiLALOIk7f - -evr1XXzXYUfScFQcfTBcd1FJMvWTvUxPVZirXXjikLJpDGZQIYaYfabWYZaeX3WhXVsffMvSaPWYfW8fRsfSDLb89uZWVJKVdPgzDESJcLJkWjRkhgobic7HwweXMIA1Yaws8fpNZQ3vWZyF2GR7jvQZTD4S4BZ2YRJZkIwSvORskfMqCn3knBgKvZWBvMTkcsRtfnO7HYeVHYaSfbf+ZmZqLseCZfYEXL5Zz+WoMerrjTJoOmgaWX/AAKWQXsWy - -fWa7rRgSA1bLFj2Hie7EhIbn/sMne3dTZLhJRoYNY4HCF+c/UtXwAs8P2wT06d+Lb6dEPxlevFYDhQ1GHuN8DCvcP0AG54ENFiYUqO+M9yQbmT4khWOb5caa0W0QsFYPRABktq4hJUXhC4BxJutZFKfRj6d0mI4fXmhC8saNVf/vTWmYAfRc6b4rXavdqzXElCHKAh+O7Dd4ucumtSgLAfY0catXT51W0uggfTD3UtPdUfQkfdwcDEfVNPdokATv - -RKHG2vaCOJOvZCybGfUDcIlQrxTGazGlZJgyInPTUfaEVOSAN+xMkfSsxsF9Cx+lMJEMOA2mFcPbsEMSWEhWKtPRe9JTGaWfcrvXK3V5sLfpUWfWSUDvQCJFVbvfdPRLsGJrf4ULmfZCyEd5AjtgpPTmXaOYFTCuOvQmfUa4m+xINXX83bOmQaaYGvTePf4fU1QOsfer3S/gYuXZMonk8tL0OcfXwRJcfeguMYPUFuta5ApjpfJHr3RM4Ab3WRXV - -NaC8fTTPb2wJDPcRZGAgvt0e4KN8RI3sPioLGrPOfe8PYufdwfU24nquB9zaB2ZVgTpyUm2JkvULvSYjGPRVOOOz9LraF83eajY63S3iFLvVHvV+3THvXJPd+fX/+r+fblpimPdkvdG3ZJRHefTLvVkqUqmI5mt+PV43f+iYTlGkvYzvbCPYkfam3eEPVUfXD3dmfa2XU16uZvKx8RK7MUfaNPVVAWjOcRvRx3Yx3ZGfbWvZNPdH1cmfdqpKmfcm - -NS3ocuMFmfRGfefXaZwEpJrWffB3XwPSRfbxfdWfSWfSJFTm3fsvXgSVWfcWfS2fdDhXF3amucLQdbOidoan6SddCwIbj7lDBQFWcuve8MTwwTJKQWjURVnpffjthSvdNTqk2TQwm38Wk2YSJUWHv67s6bRsDee/rmHpr5Tl2TzbkLMUZ0WCZYFMZICM90cZzkYXYoXQkUToXYoXSs3T4tnwCJ03YJ0Z+LY9Ya/CdyotW1lWaWCfU03S27BH2ezk - -o+obrIRyOJondlYquPNo4IaQIGSoP1Y8XVYkv5CHDmlOAPP6D6gOVYtZRrxAVaMJToLxmQGqHnSAv1bA8E83TuGJuwAwPe5RhtFhHvT63QBzfZtBBfYhXXJPf1LQs1TM/ihLIlpNYWaierSSDGrKXXVHqibeiy7fBvcGfYmvbOfSNfTOfUqPSgvWSXcR3cCvbYsP6dBEODPgidXc/lNGVhI0oRmhRfWzvYNEhzvRLOqtfeRfVjBJ8xSefXngEOfW - -0wN3wntfShfeK3bSNuevDJcOpUAZSACvZjXWT3bNfVdfcCoERaYzgDrvda2YQvRgvUmvbhPXwPTMxGOmdrvWGfSUfd8vSzCKNfUqPTq3ctPT9fTWvWauMxfa8SrUvWrvZE3cOfQOvQH6j1sFqPWndOxffgfRmfTjvaEveFvb0KmQfVsVmWfTdXeuXbgvWFva8fafna1nctfYTfQfXcTfenPTePTNfSYfd8fZTfQnPahvYjXeAXTSxiefQpFd0qaz - -fdiFdgvey8Z0fcTvXjff3XQGvYI3ujPaOXSrvaT3R43QYgJkfeNXoQfV0veK5itaELfQfJL7vaZPXHveTvX/stR3fANLmmVHlFMvSrfbS6TR3WnfNwvTDeXBGuKfTf9pVZdNJep7jQ5ca7ii5XEUV2BtTDdWNquUuflbN9XHjjftRQZW2Yej4dbIc7ffO3V5MeoEbbJphOs7pelMQSvcMzgEbZgflS9oXJdflQMGsHfYbpUAfkmeY0FtXZtHYWSf - -TPeqaQuyfZ8kbS/mZfSFgnEPVRYtdsdC+TiYr/+YWZueMVOxGUxOBfu/xdi5ew7S5lFsABm6AuOehOLPMOwIMSPMmAPDKCW2H/kPlHV37JZAO0CQ87GCKBfwPS0ubIDh4Hq+C4WEZcfQ1CRXbI3R0dF6XczZJfZUNWeqreKtRnXfgbVnXUGtZYiFPRlBMfPlCF9UbGjrshZCJwnaePZp+vpHPAfaNfd1nVTfZwvTsej4yvGfQOvQ8gBtfdTnTJho - -/ebl3UE3QdnUhPdBPUTXjqPXl3etnfjXe2fdtHDtHrV3S3jI9nYL3RXnXdvQpaLP+iffdK3TffWTXrQ3UqJGuaMWKMavftnZeDAIfXxnd48FufTNnQKXWd1QogOaXQ1oGe+JiIOA/fjfXNnX+oBpndmApKcAjFQ/XZA/XI2m7nVhLP7bIVgAg/f3XVA/V4KP7nUa+OrFPN/CsPX6vZg/cGwAPfcsFHeIK5XguCm4fR2vcZ6cQ/emXbOigdXevfe/ - -6vmXQ5rI2LoM4ONPSCvX8vX4JD7YJEPUZQtEPatPWnvczaQ2vYqdIivA4mFl2MnPTG3YVveafD/fTlvXyOgLfS5fPVvVsPQDPZW3Zc8AdPefffhPbmsTpPQHvXpPe1wIf+IRxOgEG7PQv3BjfUTfVY3XkUDjfVfXegyPJfTNVhJfdCvXouvDXbi3dvffg/Wl3YQ/RtXaS3VwvRhfajXdizI4/d93aVVg5itYaGDPXFbDnvezveGvZ4bCxPTsfW09 - -MyXFBPfhPSXCbvAAoiVafb/7D9PVTePC/Ko1YOXv63e4HIygL1eRzXQG3fycNjnUk/ZafbSWtafeKxR+fSqqreRiwvd+3V7vQWQGufdHeOz4JufervZeXbR3cnqrafSjfGZIGhrW2faWXRdgGE/bm8KxXcq2uGWBrfTcfXTvSxXQLPZ1cqufKoLSNqCYPaxrJqvZhUoYPemlVCvYE/YZFUjPV9IHNcO/BjHPeYYr4PWm1GTQhhMB0/W/IgT7D4Pb - -YPWCvENgGmDv2UVTrEXPS02Y5QbPBWvfsz1TxRk86Ajqc5LN1SVPLZ9lilrkvzai5qv5ji6j2CbLqg8mV/lUz1XTzUY7q6jCVZQlIcqjJQsWnrfJUdnlpkGhEHtkGi3vYyzVMCfROmVjbrjdlpQkPaJsT6eJz9QivmHHJvHaJueFpW16YUgR16RZHZKSvXFq+PENoGjIBZlWS0EWlYXPEPrdxqSDWku8aDinnsG89dZRTUGV0dbzDVVjbZ0fOehL - -6JywRbMq4jEf8dTRkCIQtvTorYekGfpPluL1YJ0mtR1JZKEqoGlAPGdKFTC/zR47bRIDKmBwtHWMu1AsUIGRChXgKFVNTPszRtI3QnuLTHlLspI/b88YzSOPsZylU9vTItZQPa9vT+lXj7VbzSsaUk7e7TBGtSFJnvQOuycvfTLUED9ZQ9ct+TEfaFUaCKql3Y/XYQ/a+znZ3RdncHnUQvTh3WoDaFvRTfUoAlRvQx3YJ3TtmZrfV+DAkvZ15Q7P - -dDncDSqZSlPXGLvSBhKr5gilD0/UqXcWfDDffdfXJUKrfbOmaASEixQrfQjeD3mfrvbE/UNJPhvQU/ZoFEW/eUfbU/erCuOfbaXSv6q+YBdvYpPZuJVXcdhcH8PX7GElnZW/TU/QbvbEPDRXd2Xc6YiRiDm/ajndeXdw3foPfM/dPybDpc7vQrvWRPUrva6skyIDHWcCuEoHvBfZFIJXxCH3XKYcUIK8vQHZpG/T/Xbq/XykPq/bAmIA/VqEpeDI - -2vXq/dmJrw/ZDfUYwG6/ZPAMe/bu/ae/eIoEGvVGvYQio81Ne/Q1PZ2fXDfXBPck3fz5PacEFYCe/XLNIlvbTXbY/YVkATPSZ5NTTTtuoD3SxvJjPTnYRpQkH3TUvTDXfI/bkZAp5CaarxoHD0PFGmo/SugCSrKc/U4fcI4cWLd25qh/Xo/f/hdBXRefUcfT0vYY3aG3akWG/vUyyFuvCYUY43SR/eQvREznMff3qY2qAqSfE/bEvXh/e/skBsAS - -kJbcHVvXhPSx/RZXDMvQcPeKrjw0GB/Ql3b0vaR/b4/WEfTImqDfdUfYZOSV3WI/QB/ZqPbofclECjfRQ/UKYKYPSEyAdfVaQQE/Xm3Sk3bV3Yffdy3Xe/dyzA+/dz+AffXeXfkvW3+K6/aNnT2BNCPTyXR4yDM/boKFZ/SCPbjPcp/UNrBdMX0PcCPRkvf2rQpVcuzer/OH0f+ZCgnS/3dp9ae3C3oSKxkZXX8YpbJr03WTthPOacDQfCpJVYs3 - -ZbIcs3Q9Dq8JNURI4UUgfjyvdSfa5fbInsxLrz5TvxbaIlADVl/Rz+acjbL5bm7rz5TWCTontrXXmzlLmcSfVifd0DfmqhifV03q4BcMzvV/UH3sTDSU2T5xM1/X7tT34TZWdV/R1/V0DcLsRJVUY0XM3SgfvbJu6UG1/Z5MSN/XwCESvc1FkKvV3vQ8PuI5WgAk2QRxKQ3QSBjuB/izdK8Bry+Os3nsevn7TOOdoSlKWvdEqQACqckT3DUnCdPK - -y4hwtZojYLgLBGk1wOBeUq/d+hgp/HqxaASQ3UCxParPUxhIm7SfUPk/Tk/coNP1LQ51ZFKdPFPH5a8nck7uhMC6ZQ6/R8tGZwQjvWCvTDve+/Q4lKJQqsPcdXbDvUE/b4vVs/cc/QmuNG/Ra3dx/cZvR0hDhfTCPRc4Uu/aR/dE8GhPUffUx5EKsFaQJHvUIjDp/SZ/eivZV9qLXVAgIcGOmtPZ/e5/eHvU63WBfbh4ks/Xm3QhPelGvVfSjrGx - -3ThveDvWHfsbvYRGTGPZhvdj/Zvfbi3dgfTi8Wz/eoCLBPZJfbD/b1JBT/aNWUxSUj/f7vRwXVJPRYQHzfWl3So/bewBeXY7zRj9JY0pZ/UuBOkvUzvfCOt/PWqgAvdsZ/fCvY/edU/Y9/Ub/bzvXTfeTgvL/VQvQz3OOKZm/aj9Vj/bR/TLyjz/SInbh/ajygdsC0tGd9VWOBkfa7Pfh8SaercvYTXRnVLLfQhpka3QkYP0fUH/bbvVsfiXJcbn - -r6zEUPXwemJ9QDoRJ9UWRrF/p7fU8HHj5TvReWaXuPBWuc4XmwTQzVhNridbQMTQK/n67hgajFfYmNkPBUJAtbXbNZZAPlbjukHqWNUS6vInZKUc2nZdKLFHeDuUQjXqjC7fMitAlNIUnBfeo74MS0l2zlx/H2Tkb/KvsAEHMpOlmRReleNWKChdTRnfUW0QhewWHdFnkY8lgMnFu/dQiUEvZZvVUldZvV4rV+nRvFV+rU0LRK0pzEAtVMvsSv2D - -wCHrMawPaqPj2+R+HnB3c94Ow/STvU3eAe/fl3YJfa4/SWoqdndZ4luXe/qnRfWvnaetEJ/dhvdRvWIPbblMv/YxvThvb//cMvSM/TzvQAAz//UHPd9RcJ3Q4mh5HbSVu8/Z3Ytjua9egWye4YVslVoAF4+OcCer+E/uGFLoyYjwACjwGzbAOMpTDjf4OqWDsXFAgocgN/rGZmfgxBcqtL/QloHltAzQm2/VCkLPBv1LUSLYpjLOhe50r2iTL6HS - -uHzgGardmAXuLgCoHCGpDvWQ2EZ/QNPfe/VDvYIAw//d4/cL/We/Z/XYjveL/U4/Sz/b93U5/TELARlTjfV5cqI/a+PeI/VPcSj/f6fsY/Qp/d9nZ/qOMvWIlJSSTxrBVvQJ5aJ7Qb/eRPMMDMDlRlNAVvSHrrK+vhvViwfHfPw9QmCnI/TYAy/fRmSk3njjTMKZE4A9YAyYAxo/eL3cW3cuJKzfUfXYmXX4A6JfJs/QRfa4PXR/SQOBcPbS2Iiv - -eD/TvpPpMkIGtzMoGkJIA7IPf8vTxPeb/RYA74fagvRyXU5+OOjWmINRhd3GZ93XEA/m3RoA1hPbEvXQ/Uz/dE3Sk3Qa3cjdVGuMLsO4/Z6/V53OLfbUA9K5A/qbY8FD/aLvZjfcm/Q0A5A/U0A7gXZsVYZOIEonF3dUA07/SbveA0MMAx43mk/bY3fa3Z5UB0AwEfQT3ZuJZSTR6/b0A7GpYW3fYoFW3T0Ayp/eyLuR/YVSgTGZsA0NrITlMo3Y - -+ffGfKEMHMAwrPSaiPQA5p6doPQoA7oPecA666BHSVcA1nfoFfRz/vIFYiMZBXt/5g1flvCfyhX1wsuMb4UdmSVq7STVksjQYBPoEUUbt4eSZLm/rpmDRZvtfVXJKcz9Tf9rCA/hxmPfsa7iWjQ4thFWfaIgV/X40e03fFZY6WYlZUpNGhthaIsp6T89ZNruQjcbtPX/a0TSmdd4/EgjZ3coCJSyrayvbvwD9wSVwSqAdJvVJ5hBltw0u7mGXKNr - -eJeetD8HN4jZGMD8O47SD7UOvCr1X/iQoWcuzNTiuXCIzmPKYWHMlO/XY3Qe+lBsO//cxvf1La6LaKBRoDD/fuMPTHWHU0kG6Kf/XYfnuLgjZsSXQsDCD/WkA/B3f6/WgvX2CBMAxbnYmvTTfYJ/ToA81Yn6/R9fRaA8AA84Az4A1TfUaA3aA1HWq7/TaA0IPS6A4VTs8vcDSii4axfbGXlQA7qKgNeH6A7obPoAzl4RxvZz/QxfX2PqGAxs8XKA - -1xvYtlsyhaP4d4qU2PeENsCvuHjq8osFPfH7b1frWjYQxtyvZK4cFQvYXW0ZC4MjylGSyaI4cunaOuXfuI+QIQAGFzs7qNJaG/eBHVFjKHrHkmSvwIsnfMgiFi4oOiEq/RqxMKsJrKUvWdaoEx6u27AIA1kOuh7BIXccvSrsK8TNavVuPVDbSNbfhLdIHLcWM6pXM2OeWn0EfzWdB3SVvLB3UgvUIAwZ/SIAzlhuj/dZ/UOXRuAwOA0ixkG/dTPY - -dfcQ6MIA/uAwqDJKA+k/RMvbuA/2A1ksjvqZQvUYvYrfSeA3uA7eA9+qapPcnvdnvZmfc+A1r0q+A0nvUXvSfwsbfYvfpdsSC/WXcrmDdk5vIXYF1uU2V71k0WF+BBLtYYnUfHehpmwiMFlOWJnD6IwIClcJDmsADsmAOmQqAxY7OQOIEU2GXzL9aEr1tFCLhA8nWtxWJRChBBXRvYGXexvUy5JHIgskDsyRI4BaZRDjW+rTaNVQPZOA71QZmzK2 - -DDPCIb0oeDSnFgBCCKzASXR3gtTdvAnexRYeushvQwvUL/ehvcuqVb/dttUz2sx/QR3cbPktfT3ncrmt6A8Uvdr/QK2qznbiFXx/Yr/UHvcrvbTvX9kA+JQ9/XQvewvev8MpA/DUE3dtmXRx/ZK6LFvS7vSx6G7vWZA+x/QOXb6pIO/VeXVM/VvIeZAw5A663eMfZp+mhrc+EmYA2rPYr3ZxvQ2uK+YFMA7zPeR3cA7jaXbo3U7yvyCKh/UEpcO7 - -W8PRX3StfTD/RqPQh/c1ZOsrJ1WPp/c6A+F3YB/Uw3XwWv2qGOvcUA64zGYPRQ3RYPVSkNNhsMA39VLzGcPCAwaLygDmvXw/d6vSFKtOvdMSl6WIhmbEAxL/RqPUQPYEPWcMMEPQJ3P//YpUC3JPFki9ML8SnZAwsA7mXZkOH1A1WXaewvnxcEA0W3UF3YpUEI/XrnQJbWOtWL3dNA0cLXNA0EPTEPXsmQL9dJ9fdTt3BeN9XpxcZDibTaT1ST1T - -kHsgThBVirxWSKYu3TfVdQjuoaBPzeoaJlpT1rtLFgWmhVjS1wupUXiKSDRtO6ZS0XwjWVGS+LXEcaonRVFDJ7lAAtt4PZPYdMj4iQ1+BBNBAPUuAAi+kQDclVCuVHN4hQZimWEWgOZKDzWiRTDceAedSbfNFCLDGBlNC2ihn6OZPm6AyLBV4fbFWER4NCDaUnrDbVVCnGoueXJecmaSUV2otXRqFqJwAVqYGfd+9dPjuZ/Q/HJ/fUvKWznS1A04 - -/QVA/U6Op/eFAWVA/4eKMA3hzZUA8k3ew4U5A+rfUdfRL/ZzA74Ptk/XjnUzXbNfe4vRe/RZ/VqXktA+sA/4A0+AxlA+JDTsA5+fQ8rPp/TeA9+AxwaShpJOisUKDeVTIPaCvQaA1ShfrA94fSiHeQ/RA/VsA5R8bW/RFA9oGRzNEc/YRfY/zq/fe4A1XAX+/Xnvct1GD5AY/VcvUY/TJ/WoA0g2BEgspA8VBB7AwvXekPpJ/QDfbrvQsSDY/ekP - -jzfXLvXD/eEAzMfQlsNzAzYfYnA60knHA+UvdcA9bAwcA3tlPzA5D/TcA6p/e4igilAMvfffQA/Wjvds/ZrlNrfWrfbrfanA5q3c7A4pHUmkHMeEcgAa8eTfdTPdJA1ywCY3W/fR4A2J/fWXUD3XnHR33fMfYx/SH/RLfQBBEDHfR/clwX/eBtrE9LfMeotmmWwdKfUF3ktnG6BCxkdccBLQX4XWEXVbwd3kdDDvN/e2QWxkdwIV+AbiYYJKUOYQ - -Etj6DE7pRJZi5fasDU1qhVNi27NszT13VspNPOfZklAA1H7Lm1oQpcCEdlIZz+RA1SYntagcZHUADUAPSZHTADQgDV2BnMDbQmbv3Sggvv3ZYuo8XXYDrnImAuDEwFOZhUvN31uhPEFCPbkNqfVtNbj6J7OFqMpokCHMsq/RogPc/EuCIZvZoA+1vfewWYvdC2SPfX6tbYjZnXdqrUtwbUnhLUVMOBIGbrVQoKhxEFzFPxA4qMM4vTotZ4+cbA/w - -/RIVlzfScSeevFIA6D/d//WG/ZCvaJA76vdnA/93ab8GcA6W4Lj/Xp/TmfeXAwj/YuwMjfaoA0lvbjfaQGq7/QEA1JA0iOoH/YYCkwXWDcDHAxlPppA18FAJ/SqZE7AxEA9XcT7A8iHeyXOIg2ChAW/QYgyS2kIg2MvTzPVj5Y6xLuA0aA2NffRuMHAxu/SoVhHA/FktJ/UDfdTfZlA/J/RLffGvVI8EzA6GvRE/Xj/UUA+LA39VNuAw5/SaAzD/ - -RLA1OyHL/TEg/lA7KrILA8FYCjvaRfUkgxYKa5/br/XhfekgxEgySaSnA52EMEg19fSqPd4gz1eEUgwVBNbvYwXa+/WUg0xffLA7QlsOAysvWHvbkgxzA0pXNHvS1fdLXYkg3kgwLXbxPbHvcW8sViScfv0g+D3Hz5b6gZ/cZlQjVwl3Piz/slpQgMoZvhWDRpDoyvUYha8AyyvYsg9X/R6yVwZWmHu4eezkvLKbjSIrKYpxJiveU2ddMEQwqkUQ - -1mlpXXLITLIZSYS1xElMdgcssDUUNnZWdaxSlFudPvJztVjrZfc8LFnfRcTvO3qslcPQLOYD7rg9wjG6IPXA+sHVgj0ADP8Z30cYUvMFm2DuIJWGbW4kN7RYL4HUukq/WevA4HfHBAykPWgnLfSv/WDvR2LOoTZArUxA1dtaEnW9vTnIkSVMsQr6sBdFMYpSd8VV0lBaQknSwyoykB6tbqA4uXTrA9Dvfwg893ZGA2cSEYgzMfZTvfRfeG/XoyDY - -/Zh3Yy3aig2ygyzfWogyIPdyg+1BhnA5LfXSgyRvQyg7WXVaA612eGA9RvVz/dfYZtA5vAyHYVrhVivcDPvsgwW3sD4RYNudoY7Os5nQvTTl+dNFqdxIJVgI0sqOKyKXs3mxHLUnopMMaLTebtCACegiwnW41LCg0iqDiTifWBacn2Axz2GeA+02pIgx2xETA3qrRGjnB4C/TYcGbxTi2fTLBNB3efPEV0WuA5gJvwAy+A8r/f6ve8YSACFffUgN - -Z66NTjm6g2T/bB9WUXJtfZE/diVkL5dLmTOPaifa5McpdFs8TqhJsCdulcCLUgVFGDBPMBOmCcACjwHeyl+8M7qHjKK3vPFxQ3fXHuCS0LQBMRJeoEquIKw4F76njiAoqA+fRX3RUQUJ5VfnaoghQeDHDL6tf7eZ+ndDjXZvWJtv8qJ/hCpJtG4AIDeCNePCJi6QSXRj0F1+iGg/WWeUg2AAwIgz5/Cug1f/f9fdRfQj3aDvee/SNnXusrwPd4vT - -RfTYg/Dfe4ffvfRdyAmg+/eSzA0A/QRnfFoKmvZDyoc/esvTeg+BklLA1QfaALo/fQ9nb6/buMGYgPn3blvVEfaPXU+g4e/ZfKcmIDX3X33UOff2vWeg7g3vxutPiPsEk3qE4gx9fTkA1PoOl1B4ctKUDqUBDfbwgyx6MPaq3nTaPISWPq3Ym/V0AyG/ap6HCXeZvEe6Zk/d8Ou7/Y12PokKczKRwukNCLIaGAzO/Y+oMw/fqxTWILQvYb/WyhCO - -IGNAyQ4qRmP0UGW/W9/TRwpzuL2/amajaAuT3TM2Iu7CFYJmlUrA8mXThXbeYLxgwRXb8bWNVQrfdcvS50I2/QOfUT3U/4A7/ej3awvcoivzeZkiAkg2UfbLPU9/Rz/dKg2Kg8jDb5A4Zg2BPcZg2yg6iUp5beMFKdoqhkmqJsPiGEYPXCbfMu15BRyR0EO1aTKkIxyIpIM6KXGkF5g3Ycl4vGKkH5g4RLl3Pe4vF3TD5g3R1Rx9ieSIx1X6Jplw - -r2kJTfPJbfpbfLPd3sNnraR1bnrSirVzeUwJaW8Wx2V15gcVdvtcuBUKJiX6DV4X/bSm8bfbZN7ReaCaeXrrRJvoO9XKhaV/pIZfxkV/VrtqMTkFqgzdbTtOVHNL2WjmnFUPYjwMNYPnOoUQphcvGdAqwehjjBMMyXdGiPeKO+vZG7eXImfcGAudSXk6kL0fZdMJENfY/Wv/RoTavFdmbTAreh7dJ9P/AqUlhJPET7dU+HVzv91FCjaePZrWFWbZ - -f/fEgwXA1gvTkfS3XYhPbh/YJjlRfc3XQPGsfXZ83bzgDkaGJA+IAxJA32ED0ffL3XNg0Zg35vUVEQFvdfEO9gyMfSg5rug0Def5vbIjOaqT5mOEqN3AelLUCNi/beKOQbjVBXp8A0GxU/3adQYFyqjPmMTKQAEGsYuVC7Mr81qITZhSHjiuYrKMBMAkAREHBoKA+JclvpQAHDj/lFpCpgfkrbU53aJgw6rOCzHkMgBfXAJkLXuwHVZvTmHeBzXm - -HVzqcAfS2jMxumiNjv5p4jeGOKXGn47r5pNB3Z6sOCAsdgy3wKeA+Ggyp2vqA+MjeJ/ohWTFwPfwHpOgE+c/4AHA9SCcqPfEfceg9IFkYA4zAF3cHpmJp/fBPTNVpO/ZeA3zPSUvS+4EooI5Utm/bS6Rr/frPSa3UQfSyDCZBB08brPZ9iAv7fo6axPS1oMG+E2tUhce9gKbSDJPYV3ZJesWrOXDaL/QMvBQfWqgIXMO6VXuedrg7G3SYrobPUzg - -04zY5/aB2IdIH/Ec/3ozg2lvXHg1nA4g/bcAzIGLUdJ1OcqkPsA8vApk0so8COwLng2cNvPHX9qH5DSh4M8LSrqQ7rfirRCGb44Olg4wJRCreRJUFWLRJd6xSnrUUrt1ovDImGVe2sEJqct7RnFdT8i7tRk1Z3g4A7U7sE7NTtaN31T8iZ7wUA6Xjiq0AGvyII3IWSB95A/1LjKJ/kBwEGJYencAZPoyBOoEvw7DRyfRxMg9daoJ0vdFvo0vcU4U - -Qg4MpunXUCdeQgyo7ZM/orup9jktPV7SZnrgoKuX3FtLGSgwkWjZPpk7kug4xIpePRvfcmoSkg/EA0Rfct8rkfZs/SznV/faz+iD3Z0HtB/Y0iD6/cvCogfbtPQhncigNoAyPA0rpq9fbeikKg/JzXbFI7PbYQFp1sgQ3pmveA7MvX7A9Y/WtPcuRD+A1Dtc8ORZLBug1svT0g1BfTUsZbPTyeNbPehg6kA+Mjd7Awr/b7Ax+Axg/Sp/bJrGk/UR - -neWrIOXengwQ/WwQxeAxwQ2mvXrfS09fQ+SzhlD0lAHfvrTbteTmQlbTKOft7XKOUpxZCtczeRCtcTljpg8qOeTBA82GHraZbe/bVlbXdLTOnY3Le3WXhRPvclIeu2epMDUxwQGSuzUOlfUyA8BavFVptXCUdCwiKmAHXGJiAPt+EzbOx/JA9XLTvrWLRwjiPihihaLWTg9CpDxSXznnBKgOSB/g9n8iyfsEnVvyatg1zgyQ5BptPJSPf5cSiPNu - -Pc3F6iHAwNAnYDjloUB0pbC3df/VwPWkQ0lXlvxdPeBdfF+8pccb2tVdjYWgyLdOJ0qMAJhTJKJEYelkeUWgCwiBMOReQDdSdhAw3fU1XfGkL6xPfIG1XSl4HdIEIkGcqkFWIlCPRg+cna+lagQ+XCFR4JGoeOAyxAzrbY/IpLTuUcqCIG/uXr8V7upousm2d1PS8FrCkF2QHwA6NfVerdbbUVpPrgx+/dWjljvVYPYBg7rWiuXeWffO4PTAKHA8 - -3BPbBSMoIflHX0tQstDXQ6A3DXTgXRhnebg+hfRhvSJ/c7/Sw6FdnbtMCgugT4ME/S5KmLXRVlbWkuDFP0QyQfR8Q9BnfzXT8Q3bg46UBTPcRyVxqRjIlyJq7rereaeBSP6FmsBmkEo4Nhih51OOqC0rrxWSOdbmYo85CS/XY4EulXtwudsQymN8sNIofsOXBAx2PYWJmHnGbaDAAODLA3lg8QaK8AQHfN7B+IvN3ZojSZ3XKLMehg9BDDUkP7HP - -1m92B+UgZA2xg8oQ1mrdQ/eXsPO3GzWafg2Qg+PfRQg5fg5TCQvsVZQivBmeUKsNjRaBLPgdg8WWpk7f4jer0jLg9Zoerg+GfZrgyJA4lA2hnYegxrgzugywQznAzDvWRRO93WD3XgQ7J/YkPgaQ6Ig+xGoD3dXElEg7T/coZDo/eUA9z1HaQ3r/QTacHA7YeJaQ1FVE9PfYg9O/dGTSAQwk3Y7gwIQs7g1FaDXScGA71KNyQ+YA8oQwD4Kv/Z2/ - -RkA1GQ1CPdAQ23nbAQxNmWZgxb/UjfbcQ0qmNJzQA+QW/aCbcog/z/RPndr5sXAwUfSxEBH/Zog9UgwbwtR/SzPdUvQwQ7b/Y+Ayy3bB/S4AxnvTvXUaPaog0m/YRg2aDAaPdQQxCmGEA3XA8Yg5Yg6Yg3WQ4xfS2chwg/ZIb8Q8QfWTbAq3cDfZthi8Q3+FPcoAl9UKaFOQzU0Jeg4ZLKqQ4LlrqQxqQzug+sQ8ivZqqVb/ceA9Ig/D/fXA1hKX - -FvcRnZ3DQ3qXyg2PAyeaKng4SMFFA/ggz3mOlSMRXeI3VpJLDPfvg3G/SpAyb3KxXXvAKxnXZ5YKLicfV8Q3Flon3SXOMn3YzPd6Q1KA4d8Nz1I2XfbuEIfRS/MFA4rveBQ9VvQ4PTxCoWQ7+Q5T/SWQ4ApU1veZcN1vUhQwGA6hQ0HAJ1vc1vZhQxqeXi/cPPYk/n9buJ3eEaULzbcCpiPetjf+5YeGULvmrhTDqY7cvyfae9Mi/f/bJCA9XRh2 - -3fROkyzY9Aw03fYtHU3YtJa31VjbDZxcTuqZnn/TmsvieFU8NKlzeFXDxvcKHbptS9TRzmJgldKHczbc8VVg8aRyWyDonFQyhMnFcGRut3LWPTlzamybZbXN6XZnT7IbXei4hXNEYpTVOhBWgr4Conhuh2NoSiFDuqAMZqTgVMeHMrEGMuS9StZgVzfPN4EXCapJDEUqHEtxWIR4ogxdgQ4HvSYvUW0ZJg0m3QxA6+rctgy9vdig2a/Q3uKSuLDb - -bCAtPAGeUOvlmKPnYHdTA0kQwfzJbbVVRasQ5+A5wvRIA45eL5vVMqD9g0wRurnTSg+0YGD/RL/WkgwDSKuQ0jvTD/eVQyeg8UA4+PVuQ3DvfHg1FvYrg8Ugt/g7//gog/+/YkPrOXd9g0fpoVQ/hg0Tfe2Q1HTs0A6Y/fh8Wm1J6Q6r/TcQ4a3WY/cB0smg7p/dMSnAQ37/TUoEIHWDuBccW1QtFalxlZJA22Q+3A/jcGOQyyDDjIB1Q57AwwfH - -wQ/egwymD2Q2EPX2Q/o/YwQ37vQtSPLgzuffTAMaGp2Q8QQykAybAz6vbgFMfg0O7dU/ZBfR0g3DfRBgx2vUQzdvXVbPd2Q3D/YAQyavRcvQOQ0pg9HA/gQ5AQ7ffSXA8H/ZTPXS3Q4QAy3StQ3gBjgQuJQvOQ5b/aGsE16mjohLRJIg/NQ18fZjQxFIAg6qG/YHPaa5h+g6//ZVKdwQx4/YHEt1Q/lQ71Q4k3aeg39Q/VCXyXUTOKrvUodahoDT - -/a6Q0OQxhg69QyE3Tr/bhfZ15Q1Q/F3fIA/sQ6zQ5sDrdQ4ng/dQ6VQ04/TVQ8IvEyg2m1JQaBFnmnAyhvd9ff/g+zA4E/RqPSygx//deA86g1Lg/WEP6Q2QdHUaqQQ0cPcaQwBRZI3T9Qww/YmfcTQ1TvfTQ79Q5bQyKgw/nT1vYt5lLMef1Ja6I1/YN2lSvKJvb2Sb5DX3XlIzSa7UtUtgtbu7W8rdIzUtUhMzZUgZvddFHdjePLpQNiY4LbJu - -YIuZXHYXNe6qbgkQdibTVYvHUyZShJcpwPWPYP2T2VGHchPLSAqsH7Q6bUP2Qc0E/RfTKbsIu2CeWpcOnVK0di5p8/W1KhgjYoNc2CbxRv8/dwZbJUebfcGDeiA9bfTdBfU3jtoV54eSWr2QaWcXWmIUaJ6qSUaBpafbNpLrBFYN7sLd6R/xUXfUgVGkDESVXlHdMRIu8kWuh8DBUxptxDc3SFRZwJMC4JaWAj0jDUntHfpYKE1JI8lNA8rA6JfB - -0dCGXW+KI+vDu9Y6fZy5ULRXBFWtg9zg0WHSqKTsJWHMYOrjQgqB4IaUPOg1IEDEzfGtd5vU+A8VQ2jtTdg0nPT4g84g2xOYLQ3IA6pAyDQ1ggh1xhogw9PUMvTY6LQfS28KlvTRndeQ9wfSwfb6PS8xOefW22G2weztQeXVaSPjWHJKM6VVAvcRuKpIfUvQfgyqqeQ3WJxNzpDzNtiAd0/TdPeDPTqwPBQ1uEXEgB8Q2m/bdPUubdBvRhQ7aoIw - -w9Qw29koVHdH6AhQwwwxhvdgw0V9M0uBBQ4IfeKPuaBbS3YWBYjQxcLAh/QYPeO/djfVDQ7TCrFA+8fao3dndHf/ZagEz3cNA6TbHng/2wGFjM0vQhfZTQ56/QtPaAw25/ZzQ+0AwXA4Yw1h3UJfTxfcefajIL7NJIw8jntnPWtQ5ZyMM/bpA2nPX4vvQXUH/Vogz1xhhrB80A6pNLojWQw+AxDQ6bPWdIMj3UTUMH9p9Q+0g+xPaZg1W/Qbve4b - -ADQ12QzfMTJg69/QRXZlaRSsYpg7gQ0sfYAA9pPVQsJAwx2fe56fX3dJPQL3TuXToA4Eg5fQPkw/z3a6hK/IEgfUmQ3zaVk/QzXcp5Ckw7tXQKgxoVf5Q1pA5LcnfnT1Q8FLUQw6+Q9UvddXSzQ+PsNB/XeYSAA64w4NgNnoV4WJWfSV3S//dxXaeRC6Qzkg6YwyIg9ow3jfX0w+Mw9EfbUg+iRb6A5pwrTQ50w4Ug6sw+gfVRvR0w8JCb4xZZxd - -1phnsJXg/itbviNaHWkGDbLtyjAQQF1OWyJu3rfFLVzmfcw7cw+1OVWsByJiSrcX6NzmZGRr09Rcw5ftQR1bUGIbrclLZJxYKOf61T61fAmf4lcKOTUCnFLc8w+aeZZbX3rZqxY9TXnPBcVRz8ujVScw5nFQPg9TeLTba/9aFYgtCcn2ZmccGedr+RzIpG+W/avltYOVWFFAVzf8VcA1EatiQFazbYzbVzma8wzzmXWFEqGK52Yw7d1onFbUD6Ky - -ivg7a0JYkvGQ5Qt8fNgd+ycXjRlXDdLXZtRF4gefvD3D54bgkDmIY8XZ9GLphnpEZyUpGDMWAPRxgr+JuBp+dm8jcAdvrgjQOGEoGPxmyQ/hyXjdLN/SCNur/XrPS7g9CZq7AyN3lXAUTA1xdZR7JuIJ1grYvchqMbUFdsJqA7xftLUM/vvTAxBncHuiGfbSXdxfZqQ62vdqQ8rQ0egwj3degxLkK56J6wwj3RY/cG/TLnuuQ8RfVYwxxPd6PWIf - -XwfVlQ36w//EpWQykveJhL0w2Mw4cQwUvZUve0ve3GqcQ3+XWc8V0w2a3W+Q69IYjAnp5vWrBLvZmw4fg+pgyLfQ2fW7/TGw/Ifa3Kkmwy0vUrfbcfeAjiog/jQwRgxINnnAzYfWAw4Gwy2w/mQ2MAwmvRNfQz6eLfahfaWwzgeoeAxSvHuQ9BiIuQ0aQ/qvKbQ2AQ+wg3VA8sPRVQ7VA8FvSgafrQ1Evd86SEvVF3fZqaSeannXLA2WvQHekKgy - -Uw709nf/ZsvcjQ/WfUCvcGPbWw2ofTEohpg/Lvcbg6FA+mQwEg6HGTBQ76QwqBvIg+6alL1ZivgdA/anohVt9bIv3R+Xhz1Uc1gX/W1ZZphQtrsSA+DWS5HYpyHJ6uv9mPLaxiJ/ld5haKbc3rMzzf6rpqtkS+Zk/I3Q/RpKnNVyeHxTbeXm1XEnyV4QoFHQMyDkxTGiSTUW4dPKfhlgpHCBx+JVsh7kcXGC0AL5yMRSkZiN8ABwiNQxDdSl7kep - -bgksAFPp7XLDnQv4mevKg5Bm+W+EreqFIYNXA9OFadtbJg2+g/i9bQ1Rv/UMbd4rRBjTqrYfsNliDiev0vMRLYPjtdXFgwm/Q8jOML0bYgyMwwoAy8Pbf/TsQ2ew/4g5hfYp/UcQ+QfcZAyCQwMQxaSf1Q8G/axzXEw09Q22wwNQ6xzW0g0LXfxPdZw23AwvdOJw4G3U7CRzfUVmHZw7vXa3A/gvQvdDkw4MfRkfcZw8Kg6UA8R2iguvZgE2w6M/ - -Wp/WdPV3ysrRMR/VWQyfJlUw+E3Sw0aDPbceMww3rQ8tQiaQy0fV7cQOQyf6FbQ6yg1R3VXA7m/aJw0VwwJ3SVw8Jw2Vw+ozPbQ5Vw47Q8VPJBdcEyZSpbc9aVNYframcXvrb1jWBJdvrUULnjeFcRV1wx2qgdKmMnZWnU/ad3HQwWUiZQNtfpDe6SJh5YSkrflfihA+Peq4QSoSpVTZNuTBP3KU9QWWAzl+e7It/OGDwb1ZPNFKd+Jw8XevRwIM - -Iphelbviu9oNRKFljs+UvtXqDnDtYKsBLK4t0Q9Xtkk/U0YI4CFkCiDJasubmHQtzZBzWAvetgxnpc0EV90C1oD8AjL7vShA3sPOg4peMbVUGfZlQ8NPVug7NPXugmGQxglE0fcyXXlw28vYOw5cSPrQ6aQ0OQ/uw7sw8D3Tlw80fbfpZ6Q25ACjw9jwwjw42fcmg0/fQQQzOw/E3R93XkSLAw0Zg2ugzeQzwfbGw5CPZDw5Yw16w9aYHnA9eeC+ - -QwWw9UvZrQ1XndvJO6Qx7PYmQxREMmQ3JUBlw2WXSheeOw/zvQcYbG/Zzw9v+Dq3a8Q3OQ+O6mzwxUg3ffXDQwpqHIfTew1ZA037VgmqdQ1Tw1aAw9Vnog9dQ3gQ5Mw/V3fLfeDQ+kw2xfWYwxecMeQ5wQ3qjW4vbTToBkG/ssFwyrwxpZLLw7OQwzAohKmGg9GvRjQ10A1Y/RDvZLg57w6Aw5IPd7PdSgzrQ/7w5ug8zwyGw06g8GvbSg6Gg9Ow - -xwvQmw+BgxbQ9HKPjvU0wwAQ7qPXW0TTw/Sgzyg3Y6uIw7Yw9jQxnw6Kg1nw0ocIdPaofSgw6kfXqQ+O6sXw7wfYzw+qQ5Gw8eg8W7Hsg7TDXjbM6ye54Tc/WwsfjWlBwyC4jJRhKbY29fW3CvjTsLm/rZ2lZ5Del2TA8VNjU2SbWndPHbViULvMw4MiPXEyZ9Aw2nSOZGZhZO6XEyQsdXEyVeLSCPONvSr+n/3crqDKDid3HUTazhtZhXytk/Sg - -rlQfw2bSM3/S9CV3w+X1NNvf5PWckbBtHE0QYYJ/gnNoKMoO2PZ3Zehpr9BkuAG+IpUALehMLZJO+D5GDoIRwIKDTUQVHBnYnTFMaL47cCCHGUa2QIFwIrSskunzw0fg55A61fSEQx7qaa/Z5TfBEvmgB/2XSmXBpKPA8T7fzHl3uIWQA6w9wAzXcLSLZ/Q+W7WHPbHw4JffHw2rQ6oPaGGjAgrOw0Tw9mGXjPXZ/QLw/tPQdQ2HA2KFJ43SWw1h - -nXAQ2Fw9aA7IfYwCK7w+axHTwzEvcZvWdcsXAwMfRCSIjyrjAz7vabwx+A+4eLow1hvR2Q9XIfEw8+Q6gQ90w1gls5wzsvb1RcoI9LwxLXXAI99Q64leRTWn7dyDlqbVHFZl8avpFHFaWddKHXkGSFFUjWmxcTgtU8NAIjegIhzkp/3R+tn9TnQ8gDTjyzbekY1zS5lADBtLEGI3J0hlPRtrHpKJGreCwINfrHyA47OZbALa2EACt2kJ9qmTg1dw - -xewDdw35QwW/TKA2BFS0w0wQzNzVJw2zg/NzQw1fmHV9w9zgy1HdcjLcoKcOutNHEQ+YQN1DQdg62BEgLRlQz+9fGw+Xw1kA9NfYYoAXFGgffWvUhvQzQ3bQ2QIzUI8DQ2nw4Zw/Dw58nBlvQjQyl1EuQ7+XaCTHmw0gwyXw05EChfewIxbg3tDm4g2RHrII6J/dY3cEwy9PXX2FLfWgQ2ylDb/Q+AxXCTDQ6II1H/fduYkI8mvXeg1rw1wQ1Etb - -sIxrw+62D42NrwyG0bXxmIvfUGXViawFS6RXWlV0FFqFTN3Fiiqlbed7WszQG1dlgzYvMSkDdwGOKdI0OfSn+FPNKb8I7ikHviGm8WVg8eFdlWfathUUef4LdFp3Wap3b6WeWiLq6pfpKQAJ9BnvsAlLGN3RAysBLYcACwAPMTXTuf6XeUHfVVqAI60Q64emggQxKG71J5KI0I/mvW4Un/Q6qPUTAxiXT8zCQkMzUI3mIxasPLtDtSlQzTTsJTh7 - -/kQI9XXaSGKQI+NfYAw9kfVDw//Q+jw3bwwew8rWY0w3ug3UzBA3CI+k9BelgpRsVHfcVYMJbj7mkkImJbhtwwU0QacIuVEeQJuAKAuPczT3SEzoGeAIK8LK0KGbWWVXiUBzql5dSmufLGaYshq0PvgEW8PWUtD5NE/eQJjEw4J+o9wx9PZRdETA5NXfTTPfwOXaEeMn2+WAQNeXXMQ/wVnW0XfgEsQ1+A9HwxYw2kfarQ2Z/Suw9IA3Hw2DfeGI - -wYynF3c3gGXwwXPbGI+bw/Mw2f1kzw2GIxdg+Oiirg4og6ijNeeJgQ+yLrGAzKg/ZsMOw34/ZKg3Y/YTwwGQzrw/AQ9hfVkg/zQ2jPRKg30AxmQ591aIaSdtDY/T6gxJdq2w/uQ4nA6UKelmLtQ6CQzrFYLQwmI0rw7DQ54w1Dto7w6OI4FvTsw7EfbkAxZw/8QxMw3V3b1mJ0NDDfWMzXLnD5wz+XaCgLmw+4kD3A547vofczQ2Mw2TkDFw6AA1 - -Kg7TwwxPdzvcMwwSAiWI+J/e/poR0Ouw2bQ5aAyPA9eI+NQ/XcSTw5+g9VrQS3TcAxNQ9lw3VQ/n+BIPV7PULw1Ow8GI1jtSWIHpgymfTcA2mI90IwbQ8wI7iyO2I5jvRWI5BI9og7nvQvXTBI6k3XBIxuw5OMQxLri/aQjZoCXvzVWcihwzWch6DHDuQrzg97Vxebd0YRI37HLXQ2tSte7U8/bGdeUfARw5rMq2nd//PKDgyZbSZT3wwyTJnQ2Q - -kf9A/vwwSpVD0pXLSQ8V3HT2lTrUF7tZ09TA7elNWUgeSw9RVa5AmVpZ6jAXVjGNlIAdOhoQqKXsWAcSqI/ficeQAd+BTQIyKd3ZZHuHZGIJJNO+MwiDo5nq0FERWFGISgwiqH6iEjmk8ntuYF0Qz6Q+bPdXtn5w0aPUTA14FUhFa6iCqwHjZQgBvuxLRWgSXYiMIgvUJA1BlfEiO6w4zA5GI3wgwzfeHw9wg5VQ5Uw4wI0Hw7NfdzQ2qQ0ew1p1 - -lNfYqPdRqvvg38QxOQyGvsdQwcI+mvTyI/vfFQQ/Zwysw+KI00I9gXo9Q/5w/owwKXWmIwXvYDQwkw1nQhAQwow9mQ1II7zAj1AwRklbwwIQ0lw8mwwmPn0Q+OQw7gxmw9LfdUvRw6ECYnwI+8Qx1I8Qw4Ww5I6B+w3T/Z1I7YeCT/Sb/RLzA2w9kvfnw8VwwRrhII6GI+0I14w32w7z/dz/ctI5RfcGwxayZoI1UveCTYWIyZgw52jAI1jwybQ7 - -QI/mw9tI1xUqjw4jwwJufP3csjQh5ko2PnQ0JTfRqSNvTtJWNvdwFa2lSSKuJnPYI0tKqwjYb+q3LaXPBsLltJY6HbCZU3LSQtaPdSIRscVBOnXpyPkaTkFjabvGDbcIiC5ehtp94RK/j3epBAZmQVySDmKdqxFuhkKgFRxlJ0okDFEljfpMB8GwiQ/cidPIp1fwmXFntDEP+4L7zmAI7EI1pJOOsHqpdmI51Q1kiT/sOwQydQy4zSQg0OgxlnVa - -TaxA0xftjKOUckaJNTcbtgjL7jihBbUIkQ2yI45pIug95I84WQIgn5I7jjd/QyHwyGI1yg4AAxAA/59DtfSdfTtFPTvZ8PNUw50RQM7Qrg7ufaaasWw5hnZMIymI81QzrI8Ug3Lw27w0dfXRyLfVGk2S87pUg/cvZuyH7w3LIy/qPsI2cI4cI77w8jwycI/wQ/TqDVA+KI9OI3Yg5rw87I1t5bbw8NnZjw77I6cI9bw4IQ+/caM2c4CsxeUdTbf5 - -jyZchvhbNamEYkbXBJVlNTZg4kcWtjeGzrcmZMGmAOpYYSfgf5cJfmZogtoRQ+7dyrTS5rkdFlgXcYJIAFc/K0AEJJIfsJ0mrXKFq5VYwV9MgMmRVdTX2OafmikPqlLcjG96ik+Gf2XTI4dQ66g2GvZNnWkIzgbdJw0o7cMbXJw5Qg8B3R6fXxHADZiATeRODag6ePafBGLI5yI8JA9EiB7ww7I5BrQtI0mI5mI9hvVFI559tQIxTw2hI80g+rQ/ - -n+E+I7MAxbwxTlLjQ7Tnfpw2pA9K3Wowxeg/3I5+xAaaqow2C9ONI+xVnjQ8UTVRQ5iKiLlevw2vw554jq7fxTRbpmBPjT4tsXUgqlu+XqKvtcQUQ+qLe8qP7fDz0KcYBcAP9nPKOES0rTbCZtIo5foAPXfTMjKfwGYgie4PDkGW0vYoAqQHrdAMZNvjPQ/ROvUnwxkcqTPUBQ1E4ETA+53brbDxcDupRQDnxIcewDnCB5I3QWiuJpaQ3pwyoVvh - -g9uw9gfV+eZII1dQ1wXfBg34fWxOVDTTo3eTnQ7AwFhFGfZ9uT+g/zsH+g/aYEQoyOfR4fay6esesWgSnwttfS0IyQoyfQGQowzPVE4Anw8Qo/Io0frnTPTB/Ip+loo8RyTWPTMVYt7T3gzbFe1OU8w+8w7viKm8RzmZM9aFtcM9YmJs3pLabfD0W6oMsekj0YWTfBA0JBheHDkACOWr/9BqcHiuMygF5lKXOlWSMWeRPWSROH7dm9DFbEBqEthZ - -ATmPEhV3I3VffT/UT/Y1fXgPWcQ/+XS+raCzc9vSa/ZFQ8gI9FQ6d3a0eRZTCMxOAndHoPMTFsWFwA6zmkkzKAwEGI86A/UIyflumI4tIzUg3NfddfW/rDNI/Vw0UAxbI43HAthW1QzLQ87KDogzq8XuIxWfQeI6eIyzveeI9MVlZ/XSEMmPbp0T+fQxenZWqko5uIxcQ0tI9Mo2+4LMoyrg2ko8MI6vVXbpXKbfGEbM5ImunNORZRVbFfaHag8a - -e7RytqtJaxAS6hFHcIp2IN3cXI4WJiRjNlRfk2jhSOpdeVYh65L7qKJJNXfRsnbkBVksHABfsNHYsqYsvSsnA4FXAi+XWLbG5w1lvdsTG7g99mE6DMlnWFQ2Czdko2EQzkIxEQ7QPRQ5PpJNT4IwPemBKkrDNbfPI+5xLMPeDw1UIzMw1Gg50AwNQ5Ow/ziBlI6J8bwI0Ao/wI9sw7lIxSI78hPoA44gxSoxjw3lI/2Q8epeCo9EFBDffSo1So5s - -Ix4w+WQ+MA6oo4OvTwI1oNGSo31I4kfXmfb2fV21AUg3dnYhI37PWihhzQ7Mw9Yw22Q0V/KmwxWfemw7TfXKo7FqKMw4qo9LPfyOZWPa3rbFtV8rdbtZEGHuBe8LWnPJiw6t3OZnRhuskqsIrcNOaIrSh4Ay/UaeYzSE52TZnevRRS9givjEYXc7PEYYfHSSQ9HhgSNCJVoI3BlcGcnsIpmiVEDMFn3FQxPrmWWVSHAMD+amSamIjgo3xw+0EIjI - -AolFD8SGfY2nH2I5Zwyzg+v/RkI1wHQGtRPfQ4jZYiNSuKhGWJiX8lUSg5ykXLMKSg+T7VUha6WohyPFgNUowhg2xOawo/+gyQI27I17w5wo4lw6rA1Wo9OQz1I2So9Fw82owIo6enIlI21I2CQxAtq1I/bg32o8a9D2o4Oo2Paia5ElbY/bS0rgI+EvZlKFe+LE40kVgzN7S+fDglUtSpx6ezUOiYYRbBrqjIgJKMq0afMGApbv98FHNKk2OwxE - -Z3RIJSKJXRKIM8Py6BqEnh/qtrVlKHBvUlnsvXAo7YOg1aZdArWh7eEQ1CFAFyB3NPP8UIHUSLpIPlHsp4jdB3ZhRTs9B5ydT8QPaDInKjPrcAJZiAYrEtjhGAB2/INQq0AIqMoDMHaAEj5jT0tvRg9DDEo9tFDVIJsCOv1fyFuVxK6+MNvIEMeOI7rkETA7uPRWqXvxKbDngZALI70PKSLRio4PCNKPTsPTlQ0jw3yIwwbXuw8KI8HI8eI5nw2y - -BpFvdrI01YiEgymg2EgzdQ9ufRLQ+VfOjXZ52lGjvExnNPQJo34lTImgoPUl3YraAlA7bQ2oo0vXYl3SUILJo/wo9kA0qPRzw1Uve4g1uMOSI+WvS7/Upo6P7LUdKZw6SUH8up4g4jnWrgW2IyZo1dnWDfYDfa4lUZnaEvIRdEncAXHHEvKsMo2HfxwKHaXakEoIN24gVWFRyWx1XAgix1bx1fcUDykAGJvykKx2c57ux2QVg4R1SCw+YycIOXBC - -Dl1mhWLLKNBnhYQxH+lFTD9AGx/I3saaBCdiEAXNzQNvyMNYDapQS8pMhmVfcTysvFb8o+ho/EgJho3rgq+w9ZI28FG+A0XvUTA81Pb++QjGS2/esSatEtocm3aP+oyJCGDwwzAx6wTKPWhvczfb5I8So2KI8DgwVQ+ug/xCPMELqgFaXu0w7TQ1i4FOTMrI5bI7/DDTQxQWHTQ01Q1xozEgNi3XRo69g4YgzIg4eQ6GfdlQxto1gvBZo2aAwKI8 - -JffDcMig6ug+xo8ZIqdoxIg/fI6Z/daQw2I2WPJeI10fbxNPmIw1bkieTJo4Zo2eQyqo8sI90w1po7LQ1toxdQ9bI8rwxOIzXXaNo/NfTdfXoA07I2HI7NnCII5yo+56YHI8i3T7I27CuWw90vVnA3gfZK6Le6cUg9Zo1HA+ygxKo2Zw/pWJgfQlw5ygEZo4HA8Igxng5+I1do+aQ7fnbDwyewzpyIMJFE4Euw6cA1CBBxfejoxwveJA31o01MAN - -o0Dgz1Q9No2e/Y9feNoxDXRsw4to9zow9fa7RXzo19g1No8so3tPqjUSyfWzvukbZqHfn6K3iCgmfVOUg1JPrVbNbJqTbNUzbbsoxr+dLhdBJdqbc5bWA1PLhZEbdQ7ka7XtTdtjepvjJvm5sj/I1qeT8IWJQ+CI1B1LsjbPchyfdRsU6gfSfQ7ja9Dncg9UZOuvWv3Rk5Q1jApXaGNtO4QSFhcZDVdjXKdKBY8XaUntK0GDMEP4nobpyJaYjmU4 - -BL9V+BXWTTHxEFaAm5BTI9G8HYrZ6yP2LLdw2Ccfoo6H3bJCK66prbn1UZ4PQ/2Y+o5WFe+rTko/cnSgI+1fcfWWqkBbyQlQ/nSi/gf43H6I+Sgz32qW7UvIz5IyvI+aA34g0DgyeIwxo7aA53o/+Pd3nfPSGe/Rjw77RDOw5+PWTfbLAyxoyPo8LQ6TowLQzAgonw7yo/t2NKo515Xjw4HErio/u/QZwx7lC/I6mgx9owRg9tQ4kTsuQzy3UMww - -nvfFbEvo08EVtI+0vSrTCfI52/TE/b+3QqpCuPcg3UIw8sA7dXYcUHbAyIozMfQa3WFw8ew34SP6XVO/NIOpHRARo/h6X+vb/o2XAd0g19Q5Ew6W8D/oxVzH/o+QslztMxMJOfQJWe+fe/vVyODs/eefYcfVcfWRoGUw8+XV8eDwCaO/RMqLIwzEijmQ6W1Nt3ajhD4NQxwpXw7Gw3DTXGwHqXY7IHY1YaXV2fRvo8sSCA/T01vxnbQQy9QyFKsI - -w6A/S2XZDQxTo8pvM+/ZIaL+/ZcQ94A9cQ7O/Y36CXOARoq5XnDPY8Q3lras/bRXYaAhrTPkfacfT8CtDgKgYxufVefcOI8WQ1COZ3A27A4e2TzXZ8QyhQ8BxZVo1eAxmw6BfUT/boRIMwxew7DfeRg7eQzFA1vo3xo8qo7vo0fXbtI4Xw4QGvQIy4/S9g2zo37MT1o0zfTISe+I/Mw4XA/LI5ZgyHxlzvSMo8fozAYCBI1WyIZOsgw8j6WrI8Yw - -zKo9igZEY6MI144DEY9kg8LqoGms4hViPtK0TQme/3UCvh6wmmA5WDfvLXz2LplSJge9Ax08EvwwzeE1wxSwwGif1wwFbauSQSwxGsNN3PYLSh4CYoxA7cWFIl2b7NdWpc0Y2pQ6zbk7FV0YzA1D0Y+f8kAhIVGi89Ss8Kl2SzbXqHZvrYkfFl8dqbaH7Q/5r3Hfdda3HcqbfPw1FAuWciB5byZc29c0yvwuVfCdTKWkxVTKadCTsLo5lWtTc8rT - -hJUeLahJR/5uAIhdwoncnmA3JZgt/bTrCYMXm+nS0vTWrr/He6DdplhSLbaGReJLTv8ADAXIaIzhAxqxBS0AGIPtticfCD4mQuceKb4FdD5PrwxxsONFRV3T//WuPUMQ0gI+Xo9FQytzS7ZI7yMWRoePfqEBtLtXMOUo2XXQpaJjjeLI8OxQuQ4BI5EOHqA1OI5e/SGEFTo0rCLvfWeg2QTWSYwEuHf/aEYoiINSY/ZwoEA5/6QyYzpA2eI6EY1l - -Q6zo/q3cEY/HvSDnXFI8Qvey8dyY8rfVG/R+Ixc4ZgQx0ajFI6QfVDQ4i1b2I0jozLfVow/jwybw7wo4Ew2aCBSYx2vRcLDRPTrfRSmPKY+Yw2QQ2AYwUJWTQ0xXdKY+Ewy5w5NI7MI08Q06aI3A2dET/pfLvfUgEoUphLmMfeQQ7oI1GAwsI39PZRpL7g46Yx63a9gUbkTp0SmbozMcW9WVZYr5RFFn/otsap4BYhXsN6V6nr23WsIQQjai4tbT - -X10N9A52lQJvQV0FEyRxnoKfbpktCMX8A3GNumHgH+iCkZF3dv+nowSFDlmnP4CqK1CUQtj3BNaSmWDdSSOPc0/kh8A2sCQwNPERj8FdYBQ3b1OMoInm0RRXZlw83MLAIx6Yyfg8Xo899aXo7Co66fb/BLToJ7dkNjkAzcIHaio+xggHvk/g+LeqMjtYkbiY9XTd9cKFI06A7aAyQvXGfT6w+6A6gvZ6Azy/BYgx6w9TfcuYwBgweQ/9o+9fR6A7 - -uY7xfbJ/Zyg9uYzUoz8YcnA+eQ4uY0eY5eY3gPTmI2eY+Z2Cvo0mfQFA4rI1aPAuYxmyAtg6po+yXUNPcAw6a5oAwW1QyAw5ug2rA8yY6+Y3kkdwPetI4zfUwvT53BBY2uY3UI+y8XyY7r1DQhk/oyyAi30H5Ix/o+dfSQQwFI6bAx2I2tI2LA04/RqPVLw5po/h6c+Y6WQ1UgyRYyhY/ng+Do7NvDZA28oPhY0fIw6FNEnK7vXRY52o2po/2/he - -A5goQPBAWQKyo5PoySYxyo2WQ8qQQGw/f/Yjo51Iz9o70o/IwwoNBpo0JPWJYx7KJVI5JY+foy8vemScWcrujeKQHj0I34iT6HtpvFnj5XV/3EVXYjiuXAdsyMSXvZyPMXZwgH0XcjWUmkfdBZcLpifdvvTyOvqWYdkYYhTJKZuvSTMXThSoYKoCUtfj5zXg9kUY24XlJuYYmAsLkMsS9A9oXoDbPlpY8MR+RZZ6ruaatST5Co/CUkHmKhcVXleP - -qWCQKoVWwbqTurOInjrgAk/PvvjcrDSLdJCTmpMC10gzBYsnZ5yMADkbAPkdMHNAnJk7AH3GuuNJM+tFCII4LC7HCpOFwDQHdho9ewxyxNv1VrZKv/UTA59/c0EU2Ji+sof/Xj+F2uLfRASXQZBJ1o66wwqBXDo4VXHxY9uY1vfU//UVIzbA24Y7KPW4/fOI6Tw9DQ9GQ2BYwDnUfoxTvbGA0AA4lUGrww1Y9PnYtYyofbwfQwgQEY+z3RAA6vuC - -HJZlIQyfUqWS/VTl1pVFeM3alMXZ4ZsjvveBXlo00oEVrjHtfuBQMCwEIA1jtABPRj1YMgrrvXif2CcUnaon9bSg2IENTSKCJrJno2WRdQY+Qw3Jwh0dDimcMDLPJuZrazI0+o72Yy+o3Co2+o7v/cB3A0BJxTu82UrKD3kFMbSWo8ZJXCZnPkCwg37DZVvoEQ9CAQpA4Po3So7xYwrA7tgIgQ/KY6soT/oxbA+5wETo0iORB/S4clB/RlvQ4Y1p - -jWsaJVA1ofa5w+Lw4fXdgFXq0I1A/+THedRtnctY0pMcnXfewMR2PWYrJA9a3RWXWorFxg4NAw8QzR/dUvfnox4Pa+KHholMI7KYz0w3wY2XUFyoyQ3sbval2DIY92XbOha1vdBPXh/YgYxR/XsA6Fw6WI6Cpmkwx+A6Gw23A2/LBKY12w2nw3SYxyY+4YzISXjw1KrpRY16QxNY0S3dT/XzQxj/afI34Y/QybNQ6T/Y/efeY/+/RbBdzw3GA1YY - -2UA6j/bHbKfo/ew9MAybgyHI5xY6fiHdg/fo5T3boGnFA2hXQK7K/o9MfaK2XM/XgY8h/WX3X8fTiPjaEQBQ/HXbgODJY5GwJq/YeffqpC33UTcSNYi5A54ruM/Rb3ZeaCCWA1A8MUELYx73dlA973XfVgogHhQ2ww8FGU/II2vf9rmikNBLnQw6rnZSTWDY4g4RDY+oo9no2u/WPyZWwLPY9LnepsqcrF2XUJg8bYwcIGPY5Y4hPY3GBVjuMyXY - -lQlrAzWCPuvOIUOKhAvDZdQ7WQ8qY6rpkXY0h/eL5jeY+uY8eY/iIJVPZzndUcNmw9do4mgy/Y6c/UI3dVPdkUl4A4CvZYY8m4JIo3Q3Y6iEMeNLYzHGFD1bAylIo/Q3eA446Q1EaA1w6GFI+5bdCUwRTx7tl0OUTZG+KiPb/aifw17hhg9r7csstRgsRlWfmcceMdkhqhtsaInnlpCfejmQdjZ5WftjW8fgLKev3YKWXXvTZfVReRLKfZYx6nGX - -/UJAiccXIFc67pKWUWDaQ45dPtvAiWDQKVkW1lFfRFgqI45gTmA1Ssg39uUeveIRaVXn/A0uvYuveFWT23pLknS6hX/frDgLtKp0R9AeQtYHtifwOtOd9dd1FujoRMgslTLmutc/N31rvaEg1dn2MXGEHKYNEMwEAenbc3Z3cIVbRbeLPWcCCEn0K09GggcyPKzRYbPQ9g5CIM9/X+vdg3UQuCmo0tg9CoyiXROAyMQygI0wA3QPUGKuxYXfBiJp - -hwQzgQASXV90Edg2/g/zTMTY89AqaA89g9NY+NY4kfd2w7sQxZgwdY6IXpgQ7LKjGQ8MozyYwHzYBY6IXorwzGfdtY/1IyoIwgTaz/ZrY446k4Y/uXVNI3II1do6Eg1Ig3//aLY00ap2I8BCjjo+oA4nvS0/fh4j0aluYyFZCaw6z+TugfKaEbQ7MfaW0Ax/Sd5CW3bEgwLcgfQ1JgwqScCo5vXQtGsFQxsA4rY8lw+s42sA8s4/0UOCY0r/Yiiu - -PAyi0lG3cM8q+g8p5PJg+oPW4A7KXRM48s8gBfd445cPSHg+W/TLA2RvVEAxRvReDU8429/S849kQQ9TQxJQjVcA7VZbWTmfFbYPregkpIQyC4ymmN+PKRJW0GKVg2N7QLeY7rQSrVOo95LdiirOBXC4zXg55tcfiJFo0brcX6MZlX849/lEQ0i0Y1uPPOLSg7YufKvHbVoMSZddTVgjcmdR5PY4trf9RKAe+5gmrADekXI0YnYWJuDcTAWFdakS - -0ljetMREk2BK0OtjK3ycgcSV5SlIKDgnUZiN0igFQVHD3WDr9b+vZnY2Y3caTVsQ0TA4qAx2jIwKhS1oWrVp5MATaePTBsD5keVnZWrUVpHjwzqYwtY8OQ5mFHOap//brwxFqlsQ2sIyZPYVw9vI7IPYa4zrPRrvTaOOVrAuwwOdKQ/LUw5QffUw0RvSD/da47UfZkw9ofDwg1a4+ySAZPYuPd64+64364yI+jNfqKBNl/RCvpl/e/A63Q07rGbU - -QK6md5NPXuSSLPXhjRgK/Qz0C0aJCCgx/FGDFvsNKyBg6puAJqcPmgGLRbSPY/sMFOPCkDLsCwMjNAJWeKiYEXfJMyQdI1uNuc44U/Ytgxig+FQzCo4jY/2Y+YxCi5Bf4jjAIlsvqzfVxYRbJeAv53WWo/sNMGg7OY9EOXYyKvI0BI4eY0/Yz8YTq4wkyMU4/YYwNQ/Ko97Y2To1TY7eQ6/oeE/bxox04zV8jW43Ig1aA+1BlJYxWw2GZHew1s48 - -1I19o5zwzXY7sibh/cII+4wzbvdAw7yg59o5mvREw/qYz3IywIwj+XW48oNLXA+dQzMfTjnS64/W4++4+jvdrLSpgxZA6eQ+gYK4Y/e4yaY+EgwRY6k/RxY67vdVoOB4wxYxjowXPTZo8HPauY17w5Y/QLvW+/a1A7Z3rWI4HY7B45QI/zwwzvdh4wYCrvHX2zR4HiNqlNZSVwg4Vl67rlXhssVdA3/VQIMbR4+iKVvfuMg0ZxffA7oksyvVI42o - -492GSuXmtThx4wpzo1Xq03dENlz5ZrhddBdYecSQy/w0JBgzspBZF7kJZKER9P8APGdGvaM8LkA1nUQ50SZxw+xftxw+DZQqyO6WfwTCNWGJmcXTHFiof8aDrZObI3Yy6ULSSQgIyAvXUpUjY+IHDLgq2xYpmOi9fliKGJJtNPSuCrtAk48CbEqQ1bbVUI9HY0WI0GEoKY3y3fngB9xSkIwbwwATnTYwTAycKt+Y/FI+OrD3fe1Y7XAGhYwNoxYf - -VztJomm0NKxYz+Y6xrKu/RH2MvY4l42F49u/d+/Te/QIYz3o12o8sSOYPU34pYPaF4/XhNWo9rY3u/cV4x8vSu2bagDno2l47l42xY6tZuMkClA6w3Om6VzQ3QQyFKoBXeufY0/WoY1U4/q46uwzSmPX3YPAy4NKO8Npw0yCExY7RY9xYxQI9E3YRY95468aL545N4w+PXn9OEY8Do7141GI9lw2fnWE4GTYxGIyt44FI2xowXwyHxohY59fY/Y/ - -BYyFXuIo/JA7vnRt4+FIM7Y3l3YZwxhY2EfV/o6J4pdo6N49ZA6qdSxY0tI1IY0fXRrA8fYxsLSLwxdgG9knn3TA4weUfVkAc49pAxwoEB/TlAxkWDa44M4+VwwvY9V40vYxp+Pj3U2/SNAxIfUDKE3Y0byBrTJ5w4RvcpvEZ42xyHxHP646uPUIw9j45fipIhV449EAx1JJXYzt3eu/Xkw/c46T435Gmn3fl0Aa6Lz3W840BfdWEp+XYwffNDWw - -NZpPQG4y8hBj4xW/Wc43Uw5j4ye48RYzxg0kw8VrQ0wzjvQwXU3hAl44omm5A4T3TPdtQI2Po4BPXbvTL482/Y1SqTY5d49kyjg49/GfKbUj9C4owxVQm7kvHbPkpq7ZnI6z1UAVbmcWxgcFY8v3RcMXWdYvYtSA8UpNvPfZRVbjZaxkjRYjRZK6k74674+VfjbjTyhWBwyYSYh5ZHXDhI3quiCKZbpQjbq9I2XWTnQ2lrtlruS40m+J2FllKgvz - -Ui4u3/SqiKSA3qUQnJUTGs8/Ynycv9pUfHAA1jWkD9tZNIMsaBtAr5dIRePvXioTowXwfWqLelY+U1H/SoS5SO+IV6kKJOqAMF1OEck9AHW2OszBKUlgwnb1A8ZWq8JZmb0mL1kFi+B2gznY5sfSbulSEKs/cI+BiQH6GtCDf4wJVUS2wjHXXBehEUizoc2zpOYwZxt1vMR7ck4+vIzto5yYwXaqvI03TBz/Rhg58fVt4zvI3LEvqA9v46BI34Y7 - -q427Y7KPfRo3uY0rQ9eeKs4z8fRVw8xvYfo1cQzdIBGgz9XTG/ZU43jo8sgKUeudrLpaVu47hY4qBBN4GWCLzww04/m/TVI1hQ3oYzQbSKGo9w03A3GoUJ3nu4yQwwW3Wn7LCqRiCBA40rgxILvjA1V9CF41WI1wI6fNvQfQ8fTQoB7ThHY73I/sfZ145efXbJW1QxqPf946A4+qXYkqOaA7Uo8KrL/fQX3bWowzo6mI2q/CA43/fRQEwFw3jvfU - -/YR/egYyU40KY9oLmXYycA3rY2tIwDPbu8hKpl6BdMIwetgFA++XCNIwNI614WoIxMfboY0ww2fcIL49JYw63dAEzLfcJo2yY3N41IE99owm/VQkBL4+9Oih9eQY1D3fVrFfo1bY+J/WWI3q44EY0ICnJY+49Fwg1ow2f1hO48d47UI6xkGxcHBY84E8/Y9yI8GIxv43Vw7f4/QY/uYzMfSYE39CNTw3WYHf/WzA4EE8a4wwI9fI6zA3qyvMkTZP - -bjRd1qqLKQoctudshXlajPGeS7hj9I29dY6xjNKukE6A4G2uavzSRwxXQ3rOR8/fzHDi6gxQw4lhvzfW3HrlQyTODI+rhIH44b+qFNZ0TedvP+pb1SUNvZ5Hd8/eLaNn4wXQ9nQ5T9n4Bf26TpDXT/PdI3KLcvzQ9I9cKe9dWg9qmY34UX3Le7hqn42pnrQjTvPf4YVcqHBKuZVmM0ElgajPs2bHU4InUF2/Jr+BFUQpkewIGVAMD8IQHepce7IK - -PEn+FNsCId4qxPrE5L4Rg8Ym1QYWDEwY7uKlXcB0dG7nY2UIg2DTPRfQzBFVe9dkI6248BVAsGCJcu3igmxr9/V7vvWQtOkAk4+YMhUIwvNbyIwhg5/g1h3ReYy8woLQ4ZFXLg6dg9S3Vf40cODYE+tox4YwigQpY/G/aqo7pw/QE+ZqCLA3m/WdfXd47SNiT4+847ujAAY2foOefaQ3XraG+xAN47M45PAxrYK/YyVEEvfXOfb34zi1YhUNAZkP - -4+EuE5OLs/Wc/c4fTbWTtpOyE2R/pyExWLhwfSB/byaMwEwX3dpId/vZyJoQ+qKDBSE7QSFSE7LY/6SDtmtxgwNZuaPWxva/tHFlJaeCTPgugsVeZz4/j415fo6XYWXRREN81AoY3+QxKelxupx0KGeBJAK2Q+zYyfABaEzkcgy5VOprSYxl+P0bn7Js0RI6E4OmafALqYeCmmM9PKY4TlI+nU3TLBoEFgtcfS4w+yY9CpGv7TrzJAYIeI6Mo8rg - -GtECImLLJFGExFaet+BnhcsqLE3vJtsH2D7ruSivXsGorPUGII8nEvHDsQSWAnACb2GnfGTnXourH+SC1Ym+WnGdwtdUGDkQ+paCtqZTmZ3iJWpELVEo4KChRL3GWE65g+wROphBWQGf9ADrrb4Oy1C2IXeIDj8BdMJjeVTAnTIEeOBv6dZmDmE7h3sSXvXsMJWHS7XQ7bOE6rJhiYeDyfXsE8kN09tk1fXsDm+vNAL+JJEvCG1S6JofZHW9q8Va - -9LI2IQ6aNnKNWcSm472ToNADG6CosiZtG/kAkDDppIGo/Dmsx+iZPjwEoIXVZVfpQHlcH5KVYsFD7v9Mp2gx8fT0bYALYfYxbY0m2KP43DCSWOn1gNEnf8COvlgJog0LWq4ydoGrGeLgzqvgd4xuY+zo4BIzFA5Dw9CE8Hw1Hw6IA6SY9U40jOfL4wBPZ6PVt48PoyNYyhI+t421ncN4ws4+R3Et479o5EE49XVVQ+RE+LnfWI/AQ0U43hEw6Qxt - -Y3yiGxpcGMj94wwZicHSyYz1Jvdw8kY3WIwQYwVw7mQxFw21vQRPbEZTmQ9COmSEyBQw+wwxg7bpDVo6OAxl/C04wL/VmXfZA4T3XO+YU4wXg9+47z44bwwuIwzmOIE9c4+M46ALrCEx43jz498452srIE70gzlI7v44qY7WQ4W/Z0gxzA/xFIgExUA+k46bgy0AxjokMA1RE8b/VtfVhE4Z/TFAwEE3Plaa4+l40dXTIA4E/T0o2Io8SY5TYxYE - -93o0KI0HI1Po1+I2VQ4pDcxowlE6RE2voxV40q3Qe41Ww5ew8Oo57/fkA97/T5JQ646t4yYg7wo45E8B4wXA3nPtZExQQ+Ko6eY+zXa+45ZE2isJHg3B/a4AzKXSZE1jIfNI23rrdve4A3KXWQ0C/411E2M4/dvYMneZWXKg1p9UmA5RwWKfXQkV2uZFHULhlvdeltSVIZIzXHFQrownFTmmIm8XmmHnFRjVeF2f/lFkaajVciwxqFScw2SrcWla - -8LQao8e7cvpEYI/6RQHQ3qbca7cylKWSe1w4qUKnI1iUlSw1lNeFHaIFWvdTPaa34eVtdyNYP5qP5oQ8cPw+3Xl9WnwzdpsitiU+LbA8Dw7kXQ3dI1uaWG0ZW3G0Ex0/Kf0jH49oNVlKknJVnCAhw3JcO2nQSYry0S/A+MUqNgJLdiaPI8XXcYJKMmPMNZZvtxEaBGNZB7kKr4GZRF8Dbc3T3/iBOPbECsBO1ApFgEyIDt8CCCGkVsOcX+E3341D - -6W3UF+/YUrdl44Ro6Z46h7dfQ6+o5Z456g2QBSJKHD6byfsnkru8uzmQk4zCSulQ2CE+/gxkQ0FI6v40PoxTYweg14Y1tXZdVu5Ez145YE/Hgxng/4Y/SYynwzvo45wy43eU4xdoxKgyhml+Y8nPaGE2q9R543tIzCihiE3F0Bk471oz4Y0bg8nY2GAwWYFQE5eY/4w+a43zqv3oyPnZ15dU/Tfo97vW04+u4zdo1Pzv2fRZA2pgxFw5jow+JTz4 - -/xg8OI6II0Do0xCSL4xc49COtVE06Y41SLHE5c46M48ZEzCmDoY3JUAB4w5A3u1ObY7sA1+fSmQ9Ew209C0WPufb3fahLLj2YQY9RXZvY9BmVArIYYyt2LDcHT4/xXZ/4w04+B/TCpJB/etMp4A9nPSEY2XebF4/O/eKUKWodYE2zPXO/eqzAu/QlA/lA1EbMzYwQwx3voH6ArEz2LrgY/fY0YPdrA7LIyVQyc/Vsgfs/Rc/U5E3B48xoHXY6RXe - -g/d7YzojoAkXwE9qPXLQwfY06kMBEyfY7043VEzSmPnY1cEPWYkiE4NQy2ssc4zKJSs47zY8iEzpEwRvXpE71MEyY+ow4j44OfQ5wzZw1vXaVw0O/S3Y5B0AAk9RY9syC94xN47VE6rgx7/WIE7+4xXA7dfarvVm/VbA7rEzRCS/E4So9po9hY+MjRlE+vE9hEzlhr7ExRE5lE4hg7t47NI/RY1p/fxFMhE+4E5xqLSY6cOFxpdAk6CgXVI0Z9P1 - -E0Z9KoE7TleeeFwk4mTDAtXsmUtJYajKD0CJQ8zKcLqOkPYs1jRI5/I5/GaB5a8rTScBMnfcI2qxfiwxqxVNog4qStE30Y9pQ6Yo0YqeYow7FaSrQXPHOkNTeKcwxSrY8LUdKgZtVJqWFYFKSNZnQ52fsZPIk6VNX8VRJIwg/pVZJUY0iBVm6a5ldd5vePLZDcfbeZsjS0WFlWnvMtTcyeD17ZOnUrldLFPLlRwFbr4823MonZrOb9A9SOPWnTgm - -aBeB1iaqbdJ2QAxHaFbFNUBJfv8iYI2LfCM5JKHQFFcULs6qWWdYqHeDZsaFYaFRkbaDZikbXLo+W6RVIRUdUlMo8KZyghhI9kpjaKdeOf8+F9eCifskAQe3dSlBrqrRujZGFU1B7kUuAEW2JuAFO+DO9mUpimmYP1mKbGa2RJATxBvTE/KJf71Fbce1lCOiP9gx/vSvZVBsOOfXAYy/Q7K9q9w+lnZaTS5dduPUxfnqBBq9og9F6feeXJELNrRO - -tVP247cmjLaFfZYhEw4E8uXSzo+7Y6VAzyo6BlVrE3FE82uLSYw41ILQ5FEyHlGwkyhI8UA28k31E6pE+aY4No48k/6A6JOWWXYPnfkhD9PbaYyj3Tf4++Xflw2VEyD41AQ/h4zuA/MI79PXaY+WPl/Ez7wyLXUCk70/a1BAA43dfY7/b8k3lrURY8oE8j/fTw3WwycI67E2Rg8AA1bE3/suCYzfY+h8hxE3GwwXvSOA6svUe4y0vaAYw+43kfam - -/dQwyCk2x/Rowy7I36vDmQ3RggXE5pE/sLa+43ZyD/E+W/UraIz4xxsFgY/HRLHE/3sm8beFA2/o7m2VoY6aw3nE29g4fY7Ng1XDdnE21E7nE/kmXMk1d9f5AznE+/fYg44zhK7chfw4vklNw+TkFvw/YyXIzaP5vEbaLDaoqedE5kk48I40YxZbYmmIC4zo7sitXbULDg9g7e5LTBwHg7eviPgtMd7f6kxlXJoQ9/bZtIHYk5MzUw5RVGUypW5s - -ivw0j9M5DQdTduaUkXPJKTSFfjrA+pv56n+vvlHJXJbzdO2YO6o2J44WJrmUGoQD+8OBoxU4DMREIAF8ZDhSIOmHeyjzWhIpf7dr1NDtmvTExEuk9BlFyCyBW7ScSE0BfbP0aQk8tfaP4/o9jcFqjDZigKqAwazeBEIarayI67bjfaDVusNfW6w/bI5vE80I9+I1xE1gYTaQ4do5hE8YY4T/T63drck04+eXVbg4awyGQyTfQr45t48pg+HE+5A7 - -ukwBPfukzwrcsfWJg1uIF2k4r46841CZCSE53ned41+PWcPUz449g7cDgREwPo+r40WGrFLTcw9Yowt8aqdVV8WCtV3+HOE9qMiuE8VaSC3g2pOHaOVaR8taGwFQ7flaUIoRlaeVaWu+XyFQOOVKBGvBcEwxvBbQJi5GBZiFAuEZiAl7gDUk+BMugCbFEMk3X3tmjKc5IUoozIE+SaxPi9rqqmFpzMECdhRcW/fQJNVo7+A0WxKP4zk9vH8jRprU - -GB1HWqA2LpOH/Wq46HzMD/dFE0odmrEz4/b7Y1RY2do9bQ9uI/+iYaLH+YzWw8Sk+rwyToz/Ir1WKEKSGAy6Y8ikxEE/0PQik0cI6JE0V/IQk0BvtVw0O/R7THgEwvXVXbPr/eXEwxkyh4xTfWikzVYfRk1j3TB/RYYxgkxYcXpk5rvTXwtFAzmlGCkyEw26Y4QfYTDOGbDpKidI1mw6SkyFA+Sk+tY/VY+IfbNSJWWJ9PJR2l/bveI1wI33AwM4 - -4XvUWxPDQxIw3nw7n8EpE/zoM//QZE5wVk2Q4yk+2ZS+I1uXUaY0jCiz2AaQGySNE7M8k0dQ6GA4Fk5WuCVk55k17/fEJDeVUJY67Yy9fdYYztnXRExPXTLvZ5E4MA2lk3NY9KYzpk7040bw71mD6dibEwlk7nw0TQ94E1Ck8qo30I8Nk2IA5k4+S3fjQ+Nk0jQ2RkboE4lkxNk7cueMNTLhPCZfhJXIrRFHTvymlNVZDabfOdqNa7a7teFbRCVV - -52bOSVG2JzviZnero5YqUzbmYk3u7QUkyuLbKHR+4CSwyQWbEaeVNU5IOJI5Gk6Xg45xRSZTFHfq7atKpr49wYoiPaTIJUE6TIHGk8LUB13ZEyW3uSwRcH41YDEa7meftVtqmQVmQa3hEukG7iSzAugqheOcnUH1NnH3AYrPvaIg2p9TOyABwAEZTdKzSTMCEPsRgpOPW0QpqkGHMiG+DC0OJHHaPWxXZb3cI7AzQu0/ec/Z9tbCY2Xo0P7fsmmi - -KOuDmBdI1QXZ4+zljiets7Qk4zmFP1Y86/bF9frExGA84Y6ugq8k6WZYI8Iu4zG/ZHww+/V4E4vowHYxpk3GI8h44/ogfo/xo0f42E8Ork12I72Q0nA/bYxOw9wyS/EwpFVeY22Q7gk1rgw2QwDiKPlaHYxNI+II4IE9Po/zff7E6aE/oYw9VSFE5bg07gxLJDukyL5IKkyr48ek++kzrFV+46gCGFEA1HGrI2nw6EEx7Reek1sbksfsNI5OYO2k - -y+k7bg6JY4AY9KXbTgw0fXsIzRY6qdTB437RbbAGtzTS0m+2WnE+AYz+Rl+3Y9/fQvZz3Yak93A/0Dv549JPb4A8tAxX+a5E2R/UBEyXEwWKWaQwHA/7PZ94zyeIfJsVEzt40oLV/QA3k+yUVwgzOmRU/W3k0p/YwE0BxPXk5+fY3k//EzYw1jQ0tk3fbrs4yFQ9GE+yY1CY5GqCP6O7A8yk9NI6B4+oIxww2DPWHzfxY+RY+Yhhyk1vk3UelZow - -h41joxU0K2Y2WXdvk1Ak7uQ1aQVQwwfkzmTCEE6b/TxExoTK4E/yY5tI2IE47E94Y27fnSk/VrDeI9VQ9jvYm/bNk3dHN1k08kwwYzj/Z/Y4/ebIo3vfWFySbkwRg2bk16uH3k9C9GKowBIzSgwrk64PIgUxzVCN47R3Nrk62I3048To5+Y7/k6IKWuI1jw18k4pDfrk6aPVVQ8QU+pDS09Z3Br7gqZqkGnLW3ZWhuZNiNJWKOhjE6K/lPzfLvOG - -YxphQdsZw5mjE9rhDcKbwuV9I3YI038aOEf5HdBw1lZUF4mgjSlrtME0vLfxVcRw4IObAku1SbcKQIUyH40gtQ5HSJnGGdXRVeoUw6xl26V3LbkExXPIvLSCBW9kWpscvHbVoBDuZk/JxVdyTYdbSjqAtSb/laS45gjfr412VNGzgc0PkE9LhjCZf9I+KbfnrMXQ+WMrME41arfw5J0b6QXw+BNyt5/TxMBiMaiAEiUEmiY8XZmQpvsK9jXjobw3 - -DQIBsMC8YOFTFT5gCua1wlpokKzI/QyZI5rgLfvbMjvfatCqSefYFQ4nqM3E41IKP477HjcFr/pLEcrRReBEQOqFs2Gq4zSgFio11o9rQ9hE4SYw0U4Z/UKcUJk2f48uw9t4zhY0cPRQUzrEwQ/cf44ZkwRdAgQFBI7jo9/40rY7fpaQU5Lpf0vcWQ30MDaE/O46nkw+w+Vk9nw1b/XRgoUU4Fk0tTUfwxwFZbo7HNRePJaugkk2UgX+Jc1wxDI4 - -3/a6IpyOAk3ve7XSYowIPjKMt7PiLIGqfoAFDLHXKCFlM37Msdn+xCvlrf8qlxcCCHagC7qlB7BzEEQ2v3E6U4666jUA3gXV5E6P4+nUcTscbWN+UsUo0EEIPVPABMLI2Ok1FgGcucO4xcuQNHW0U3towOw9CE2k46rk5Qk20ox0I9d4/RMjLk8TXQHA8hI7YYxu4zAw3do/io8G/bAU6R6h8kxMU90A9wE82w+Zk0eA/RceZWSmk9W9c40cvLUE - -LtxI9tKh/IytTfyZXrSkC+Y8fkMyoHozC2NcZJ4ox6o0UpmbaM3KCIpjIAMt7DQiGeAB9GGeQGzGgQSBmxdKzWIqMsqbYQJMgPTE9PEmILk5pIbzaHkSN42dOi5k6P47HxR/4aarPtpctWU2InsNHctALk67uBePfbIygU/LI7wgx64z4g8gU/4E3yXQpkxLNC6XT64ybA+0HWkKMoA0MU3vE7h461k0CUxGNN5E3Ok2gk6LffTQ2GU3yo4II1oA - -wGU1N4zFSrXkx1ihIRbeoWEpQgfhlMWIjukUT3vUosCkZoy41e3u1kYkckJYBLGo8XWqoBg6nyJAuAGNZPxJBq/v03NmnApbl9Y7dfqqU40oGmYBqU1AggRPtZAPJILcqD2A6+AHLk1DvfaU05ga8E9jddj7de9Z8E9J9H95PlnOJwWOqPsuVK5IUaEFTTUU2LE15vcQI11sOv4zMfbcQkuU/LQ+XTHVLsG6I4GKKU/mk9HhoaAGzsq+hPBLHh2I - -+hMv6E3vNmnFf4LPUUaI9EHCz5PlYEEntFCAgwJTDjLRn6fY2kW/k36BBGPbltOcrG4hCzk32Y7j7Q3uDZRtVxXtFADXcOTZoSP82L5QwLkztIJ6vVOI9GfdVRXPozoo4jfViUz4E/uQzk47fI0YwykY98UGPEx5E8GU/UAwhI71k2Tw3mQ+943QI2fI/5k2R3YsU+3o/Wo2Psp8GkkA9K7QATsqk8vk6qk5OI50UzzQ2/E8+k6rUNsQ34E9rLRG - -Q9pg50IXfE4SU+qY6sU9iAQMUwmkH8up2w/7AzmI0SU0+44MU7yXToPWmI8SU6HE4uU9Ok8mREbg2nYwBNBVtH5I/59nqE8g3acLSeg/Jo7oo4zJb83XW/ZFA4ivdpU3BU1ywEF46gEwzYxrk7rE8f4+urkow6yExZU30UxJ0GzE7ZU5qnjSvXEpgvBZPzQJQ4RJO31SM7DxQwFVgZUYxgVXPayU38JRsjdptavvbAAorpelFSc9XVtf6xV1NfMY - -6AHYVza9kxitGAHWvaVWSeNjVe7YYUwelpYVq5Nm/6Z9TRB4OeLDrhWNJMcoPrhReE198KeEpy8AwEOMRF87EYACzBDVAI1OOwEKhOEQVDm3bAlTKeNGHYSJF8U/NAD8UzjA3bk3+Uilk67yKP4/E7ffAeYYAMnTawzHWDxSasfbCUzGoV2iE+UtWbfqAz6U0zw0rE5FI6kA7NUzbE+LkwS2hgU/8k+do2dQ3+40UfaiEz4YwJU0og4rEzck8MU/ - -tU2Hw/NU5tQ7vozjaRbE2dU45wwHRDJU1/Y2OcH0o+GU9Ww5tU6gkzOI15kwUAz7/Tv44tU8gRnxU4fDKuU4xY1ZI0YYwAw0uYxbRj9U64fToo52vXhU2MUzbQ/PoxDU9lE3Zk+3VTBU3Io7DU3Ck+pk9Eg+bQ+DU2FydJkzxY0HIwyo7FExtU+lA8DU22xBuk89Q38vT6U8tU2yBim3brkzs/QNk4bEzZwzdU9bk35E1WI4tQxsgFKQhCvabE1N - -Q6NQ6zUzu48ak3KnB/A/I4ybXWMg6Cfg9bBcY3F1mwkpDI8VFF5PYAGUoNSTVozzSD0czxSWMjMjW4Xo3PT1wruvR1Zd74wrU5C5cvRepHm3PffTpHXKYU6dlkIU8pwNUE4NjD4k6LFBDEyfA7O3j7fScHiHIfUmrytM1g0N3YWJqkDKn3KCRcy5hGDESAMtXsKyCdxGIEqWVQlxWI0qxndwJLsEJqU7/eJjmtEqcoTsD4/kU4iYAYfTQYxvDAa/ - -ciuYHhVj7Rzg2dacOUy2jG0aPJSFORF1hUQ4vcgb4YDJIALk/65bRozuY5eY6lE/Do1BU6GfcukyuY9pU8jUwKIPxE7pg4RU3k4/jU5tQwAU6GQwbE/WQ5Sk3+5LYE45Tt4w9oRbgwyzKrwk8rQ4//dNk8Lw/vk22Y394zTU7YZBXkxa4yhU8JE9+iZKA+Ck/9Pabg1wIwlhm5k4sI+l4YpoyJ/RDnT+QyE/cPUzlUnkA6klDVkxugXSk5CPS7Ew - -Fk7/yc9o0RU2RPSRU++iuhUyHI2Sk5rIyB403WjbI6XA8rEwlEyXU/oBrGPevU3V40l43jzC8fZZkx4E4xo+FE8z/TNVkXU1Dfa0owhU3uYzk44ZwyeXcUwxgQw9o7zfS+g/z43/ExEYwfUw0vq3k5bY23bkg09lHI5UwzoRXwwkY1Xw1Tppg01xTt9qVkQ3PPQAGbMYzzDX3Hfcue9E+NUog7WxvsLDf5FPak4zUMXFW6FYmYyKKhddSDE3TVSG - -Qq85D9kyzxZIkwf1HhIxbldiot4U5jWMbxTVZbXcrjUeVfuvPQvrMI03ZnvwvTi/UVpfarv/I1f0mak4LlQZncoUzEUXz9RKfeLxZnAS2IaStf+POStUUbSfPSLdPr4DEMozWlpMNC/JMjCohK6igQAMWAHWU7jAXAbcQwpimT8ox+EyIiISJIzgp8cI7/M1Ex44JRPuRfmFk/cBkVk6P49DJXzoY6E8uyRAlLV7iosGfUbnU4GI1Sg3GUwt41tY - -wrI6a5pTUx+47m2atY2+Y1SUxbkyU0JR7QYqh405bk+/k+rE+VvTrg+k03sQ4g/Wwo01E2k0w/43fI+047JU+KgxzU0tQ+nA80A8GU0q6GwE9f45NQ21kw00yJkwsw800/U0wQXRSo3ZEwgU1fk9aBn9U4U0y9XcU0wOwy6U2uU0Qk/LkzMfVek0RE5gk/ZUwMI+042/I9xUzmIw0PkiEz/U06PaU04g8Wr2t/U2h4504/f4xs0zSU5Zk0RYVozX - -EE8OBm/3f4NitarGieZNnAjcBJNKI8xsZyvYK6NYSSrU6Z6pWGiPPUvvRvvRDRVCMWuMRmY2VKs3YuuMfm3HT1XyhVL/PmbOWjRv3WQqH9aMPkEunbCIxS1fuQCzQLm0oH1q+qm9TNBLAz7h/7kDGENFt8Y137OKIDWEteweuEqfMly6RtmK4Cl/PaZk0HE0DqofE+fgM5YsKQ3oJaPIwQbZBjQnNCGtZFKfsEra6ipw0n6hiYYw6TUU8cKEGI8u - -fYNsPpIOkQxsFkKSEEyoizEJkzNYyuY8dfXNo5BY2NYwPU+f41TU9tU1BY8Jk1dU2Gw9S3YdnS+fXho4/4343T6YE7kzBnbPGdHk1TCAc47PJGk/UpU6941JEwVw7PJBZE9QfWU8chQ+q0zAY8Io8NXW8igq07ho3nOKSxPg02E4Mto3dQ6toxwE2gY00/ZATCoY114/VTUNY/bwwyxJ600QE6gfZBU59uf600R/QcHkPwzwSoAMFBdYZnUJI7vr - -dUY8YI3G0/6RS9E3frYa7Sy/Z9E032cDE1i9ibozzzTaEG09QiZfkPSVfkq2i4Xcn/au2XigHPYduTiZsRSAAhZPhWv4sIV6hg6tG0VQxONFMvcDaBNy5jOLD9QPmZPTEwksKNyP3OMoTsU/UFnKU/RHrkvybMI+a2nzE86faAvcnUyQ5AKyNzHr3GNjY+BaZtwegyaHaY3o8/g+xQgTY3MPfLE2RUxYw6dU/FE8XU7/QztU/HduLQ5JoyNDWvXV - -JAxdUw+k+Poy3U2yY2XeQGw3Gg6rw8Fk3Gw7dU3RxX8UzwExjQ3oEx/45wI34/e/prd449o89U7Ig5k0zlE85EE/U9u04PTlmfaUg0h4xXU63TaZo3q3eZozgU8hIw1k0JfSB06SU9WI8LfRYYyuIwh09Fk5nbNik6rvSh04xnBBw2oNUOBbIk4S/Q/rclonxvdRTUoUxQpZhSi0E7SVp4Uyv5sUEwpRjw0x8foKpXE0WGQNYsJ2NW2GqjPqfQYO - -PUFyLQMGXKD9idreIrEIoYkWurxmbYWNPIBFvBwPWTk17km27bUYD+va0dAdoxkchH3c12emZMk9t2Y1ArQjYwLExZ4wK5C3vK+8vsAtdvZBvbGOa4OXTAzjY10paRcvW0VE0z4gxy01B6cKYyIg8M00EgyDo9dfc9fcJUxVEwng9FvZfJEmxhG3Sc44sfcAU2xU7+giG01wEwgk6JU1Iw4Jg+V0P2/b50/+/chI8lA/J01cikTo6F03J095YAp0 - -1mPYitOT1PjGSd7aTfLbEqqkMreZXsBEEdiVXeVI8w8NPA8w+JLkV/WaWSOORRHMW+lXJcpIztOYx+kAXLm0uu8gGgLtxJfTG+AC+hADBkCHAKbGACXogkyKKfMjhRv96IveCDY8vWUHg0EQ7TeheA8nY46xKP4xKQ+QAf7KBAfRw1eJPGT0JDSmq4+8guBncLk2u03/U9Lgzsw7jU7eoLu0/Hg6jo+mfcLrpLkwJmjJ0wyUwbkzAGjt03DUyT3a - -q3aPE9B038ulwk2e45zyqjfWjoxmfW2fSOI7rY/1o+u00946BQwYA9jU4B02RY7kw0HY0bIxccZi/sgkyJU/TI8riXikz5JXtU7gU3po/hU5Tgon4/FMnwU5EUbxI6vzNKLdrxbVtVyNTVtbuLavdQnIxzhaBjP1tVM/AxI2vehUzFDocorES6HLY2MaWlY2czUgVBjQl2QNSPEYACikSLZLOZmCztrqur+CGo47OQHDsACk4YtdwICY/QPvm2Z9 - -1RVlj1YpdfSLo30oPa3PWrviU6P45upU0lUKvtH5QOkU2IrAQHOkgk47qjHP7ck0+BYwX3OhJHy0//Uwbg2w/Ty0yufVy0yTow7kz+cHBwjz05bqliE/Mw0u43q47zo7z03iU0t49LpTNibLpZNvfwclSvRDoDXQUKAfXQUlo4y4le8d5yHn2Gi5M7aFPRliKJRjC6DgG7RxbGHQjV8CkDl1MR8U7i04YkPi0xfAQmo+gbZRY4ShKP43fQ6YJSPk - -AnGmSLZeXJr5NG1aOkxNU30vBk+ohE41nu3UxhKsTU1B9Wr4xaSQd4y4g2EY9iE+GHH5IzWo6IYKCGRqOStMlHrUcLmQ+TUTa0MD7On2+l90SJkaVrEbgoFGPp5aJ47I5cBan8APMAJiRFdJXiuB95HsAO95CojW+3qcGhw7FPKsFHHiQNxCvTE99SnqcczE/QqnBncKo3To07qrB02kfbAKKP4xaw/TTFtuPUgEYTeQ4Wa5G4hNB3dObIJA63ox - -LI/iYwt0y6/UG03U44dIzDU2FyeTUwRU5/wEzoxmfUFEymI+t03GqcLrve0yoo2B0/do2zU9oo0jU63TRh0xGUwB08A09GU9HE2v4wNo8v08AMwa0oe40DU3l4wSE/WXe1Bvn00qPTgk1aQfPQI/03QZH5I1M0xfnVu04AM2t46TfYpA8RE5Poy/U1EOApA9M07IndyZT60kJso3HaELk9CbSpX3w4kyVak2o2ERw/IU4O6eHPM4Uw3/WE/Aoneb - -U93CLPLQTVo6bRrU2FMaDoWSpuDofuwAKMkHDky414o9N1vvaDLdKfsKAXOfuHmUIZiFt7EZuSWSDhOAuIYMIgllCiEj1ggb+Lj5R4zKyQ93I2anSYjLK+U+qdecePYMPtf2UwnUx9wzj7bQVb+U882aKVfxMIREG4jchqHrnvmhSWUVDVHhCCuJmCnfOMhCneBssa9F6nSrHebHYG4vknTSnY1+cAwCcnYEnSlPEzxMynd0naefQuAWLYNDEEjo - -i0zQKyeEM00qJEMyWiU3hP1grMqR/WAkM80nZRUF6Xd2tDDpR0nV4nV0nYkM0V/Oa/iqJo+vEFEngndTqNanW6Aj7YKHSh4ZGXgSl0OUM+CncIwEuBH+oE7AOJkW2TR7LAaasTHaUnfs+m4orAwD1WAjoJgFETHSKncJNHxTJvoE7KasuOx2St0Rg0LoM/mimUEILgEg2A8af6U9MM7KndqnTdUwYMx7wUYM9B/U6ne6neanZ9hOsMyeSHTAFN0e - -7jE5WV8kXrHItpj4LgeFfGXFlzcJvZfrZM8KKHdltan7VYk9NiEuLU8M+mFHtk8WdY7fNcRZ8MwNw9NiO8Mxa7YMrluLYWPW5XXk3ZZXfl6vL+GSuFAuD6NED8BqcMewPuqM7AMD7Y7ObGIEjCoMGGpwBmbW0QrrkPVAORTvQJGo6eBhO5iHfwMK6D4lljotsM0nuEH+kWnkp05ig4Xtazk1sk+zkz9wysacr3KXMIOk/VxWT1H20P1fZt6lDVIw - -oyZ09w+P4M1uEIEM38nTCcNwBK+NNl8sxOVbINQDtBekQnRNIYg4T7DDf5RbpLGYq+UFY6pYYq4oJKM4NsQdVfqMp0uUNPBf0xQORn6TYYP2LJObpjHaYHQ4CI6PZNQLXtEcou/fVPjhkqF0M6KnWovvqaEDLdL9gGkA8+MUnTNHSMM1aMyJoDUM/obISM95hMMM0ZmM6MyjuK6MwSMwlgIg/J6M6mrXF0wcDKrtcbNHsU3uaAcU04k7+JZG04cU - -zfrblzfpQ2vzXnvB8jFf9ab+STEdsmbECY8XfMANWiGH1rPPHmAJAQdntBoQPnjoF1HvsGkETriFjUEUXr0YO1ArLoA9iLcSGRmB4nYnIMUM3EVqtQoBvVSEMSMylfZEYGnXeSM024yE48MQ2iXcQ+Fe8bwDdjDGyPXgZBB3NOpYUYN2SuyM41QTDflknWg2YKMhInfyM3qKADFC1xsGneVBF0vCZ8FanbDHZCncM8jEJHlzO6KrQ/gEDu4M00M5 - -4M8m4BkJrt0PYiHG+EbyZCihjODW+PSnFNcSjfFGpEZWO3GsDqO2MzeMy/QLzrlGkJWOfLgc+M9eMweUdacQzFE2M1RwPznA6M+tMhJYe2QH+M1qM6UMw0w+aM2XJEWMcKsMXvV5FYTujt6V14iGdc5LOME7L+tEUS7ckQ43oRiflcZXQMGO6SkJ4EFLsWU7luCkEbGIDylo/uPHVFOGLHNC7qATk1tNQ9CjaCW6cTiM+342nVDdnIBcGnmr0xWK - -QMqAseFkpEKWSi9mAmsG+4J91aFQ5ko8a/T2M3CY2zkznIgjmvlnDQWFHsmeUNrWrCmEWbQZ0yKMTHiI1DHCGtyM0goLyM4aKXqnQUncInVCneknXfIMEkCLAgLCufCIUKH9HQUM5kMxV2F9qN7CPCnXdU7GTD6xKOhGtIIIKRZM/2aJWjtHohaMyMM8bkzOM4ZM1ZM+/ecSM7THeqnZ5eI5Mzu4JcFN0SnmnSkCCNpKpMwanUJHX0neInRtPVCg - -cKM+7gm2OB7TG4MwQndDpkvJJulEW/DMIHjzAIMLPOPttRkIc5Qv3yAa6N0gPO0cEM/0nUOnBVmFGnQVM0PYFDcvlMzPtF2sKlM4JmOlMxp2aa6SfLnmmNUhj4Y3tHa5vDVHcZI7QUtEM5THV3infEewnV5KlqkBRHWymCzkOu+FOpq5M0ZmApFXHHWqgJ6TF1Uh27ajLEaVYs9VXPklM5UM80M/YHSNM/Q8j0gpEoBKnS6nSsQ2Alkfui1M5mGX - -QnatqAwnWEOJmnRUhK0NEdM7iHeincASNKVFVM0WQBVM57HRxkiuM3uvsI3mW7NeaBH2KZpYdAA2rPdLiLHWinQEnSVM6EM8E6D9M8LHfrnaW4N+MysCL+MwtbCDMxSnVw3ZanRUM5uM8eMyjDC9M0TfuKM4qM35tEKMyjM7l0cNTP4ndBvLdM8VHrqndSnctWNsuEnHfCnRwncrGZL5AFM0ZM9ZMx7KDtMxFEI7wEmwT+ELJ7QaM8FSRuMxCnTj - -CYkeIGM3NHe2TP8nWdHSFhFzMwmrDpM5UnWpM12REzM3RMI4QC8wtynZUTA6zmQTQZM5ZM85MwcKSsMx6nScKZpM0InSTM2DcDMMyaneByarM8TMzIne6QeQodQoY305iof9kK+piKxuW3rifdf9Uwpa/rqlWUmHhPBRaboV7O3PQNMiRQ7GcWRQz6rhozRypv/cQcIU5HRYBNxVUx0Zhw3oQsvvZ3rII0/Duub40ahVI0zxgSTuA5RRvPZ7412G - -u74wcjRwU9cInAToZnnHM1vPUnM5sNM747bjfbo1GDWnM0RyEoRvHMynM17SLfxZ6jGCA+23q6yZagTlIdyikK8pwOjIlScHlS5HBeIRis/wx30xH+jP8aSNFqLfUAFr4HobrmRvluB+6LsGlrdvg6VEotv3SZDOiM5X8EHkp6iNoJSOiPnHW6jKx6r7JfDwo9HVcnbEM5Co0JMxQPSJM1SM5zI+zk8AnSN+eFwAbvnpHBB3KPVmrmHgIwkSjHiM - -dRZyM0tKOFM9UKL6KWcxIuM1KM5tHTrMyLM4QNgeM8lMzylELM/qnefM/zM46M0ZmJZLfDXN4MwinX3oVSnbpM6/M5Q0DDM4s2HLQOkM9kncukAiJgA+fSLCiqKrFD8YStM5uMxzM9gXgdM5dMzrsG6nfanbsM7hrj1M89HRtIKTM96nTcTUmJHPMzEM1THV1WFjM+4/lOsZgs9cnXEMwDcuVMzVM/mlKJwZZcfP2MRoNeslmnewMiOlGSnUn2pm - -PSXCQQs71Myq7hc+ANMz6nS4HRtM8M4DaPB6M+/M2UnXWOTuM6NM8YTq3SVTM1DVNfk2HHfjLEIs+XwdrM5fM0qM661njHSEmNbILpo26YAqMwKM0uM9KMyDqkjHOyo0awDos1fM8qM36kQfrBSdga4dNofk5rNoYU5oSIIi+Rmk9UzNjRQ8jmM3ZhjuZQX03d8kSb+XSguYeaHJf29quvRrcOCfdfA7pUY1rjR43vLWhVguBANrqDkU3vR/WoP3 - -RhdWy2sLrBy2hbnnO4Y7cF1gf6svx0k/iZWSFegPkdC6MBcYN0AAZKFPRmEo7jAUPElGqgjGZQ/CZI8aI4BwrUYDVCqGAZJ5Ows+srG3aLcGFLHR1M6KM2e1l+Uy24z+U/2M0TsQfyYihjnUxUU1V4bjdMjgBOM85dDC3en0xfM7pM9pM3PwGfM6sKZTM5WkE5M0FMw0M4eM4QnW/M5HlR/M/hNdsM799GeLM+Qnanb5MxiQjgsz4M6wCbwbOxcB - -UJNGorjVCT2CQs9Nga0nd/HV9JEmGZQ3kAs5mPa+9dVQE0syKM22OKFflk0Hcs/Us3POE8s/FMxjOGX0ytk7BVi2zawTaAbtjEd7M5lZUg+VQkt0LiIOe3LV4jF/WjI4+300llTOVG0aOqALtjJOGI+hMqoGhct1EDsFPezfjQhKUu7oYVcAT6MCCC5YJ2ipyAYM8AijuGMO4YI0hECRPWRvIkPJVmPcdZWKP448nYpjL7rs7SGTA5/SMnxbO5FB - -3QDve3JjHiDBvSfMwpLIqneAs55BBZxtinQDHRAswtHRKMwwwcVkbGqhNM1QVFIPA/M6tM0jM8JHqtHbrHRepl+WNKs1/XnrydLHVy6NjMwlyQLM96MwmXv2jUzHXRJipmFTM15M3PmRIsxHHUos/HgOFMxMs/DsJPMyDHY4rKBzA6Myss2Is2RoLA3SiLu2IJ5hNq3MVM4V0aALskM+6s0s0LGRVEM51HCOJfX9lJjaqM+/RZ6s+D+oueOuElZW - -BgY8DHbDHdn7SUEgq2NXDIA+D6YIWnc0Jiws8WYs5cIrrEnuMioDEivSLI2FITmgf2rI/h8tLGQGTOZ/0Xws3gs0ms/QtPxM8cmsapALM3vo+YGIAktv0Vq0H9HbOMwKs7HRuas0Is7pjRUnS/M5gne/gtVMx7HbFI2fM/2sywRB/mHmqB8INvDCOs6zrm2Mz+M5e2S+nPys2SAAiJk6syTHS6s1WZGzM0eM2K6XqM8zMxLM/Ws6Is/DoqwyGLM1 - -FDLL3Hus86swes//oBDMytoPOs4nbA2s8hnKInVcswMnWoHhus0PFDCnMCmL6xZxEFQYAPsmOgBdM678p8WOTuALMxupOos7KM2hIoJFpWs6EU5a6TY3LEgAzAs/AMQs9VHaKM1rvU2s0iQC2s846TN8n9KN8s7VHZA7ipJglIFaQBSFYCfZQ40NZWVidk5aoUye7Cuqk3WUU6Skk7YIy1w7lZKZDRGk4QWUm0/pQwbo7PaeFU3VNSWXMwRaeLSo - -za+LXQM69cTvzXpDeGIQ5lRRQ0O9dExdDqbGY9X1O06b/3QEk8ozW9lqiZR9k+ddXEkxibFGdTsLk2lS7cjAA7r6ZN6YFhZljtQpr44SSdl/gUgqnDBI3FZ1YsfPU07SLdHKMvN4iUmIfTGllXAAI4+MI3GIEjF1ERk1rvu9ORIWLnAOcoFT0hUsxLQFUs4khekVtH1gRwDVM8i7DGhX9WYnGoVOKP479OfDyT8kBPZLNVI0Mv9cGrbkMsxbJa/g - -4iU/E9UCnadHTqBUKs4us71CmjM7os9fM3aLFSIZROeu8LvLF4nVwOdTM3O+ZbHSdM3UnVCdTW1DBM6BM00jVlOmBs0yE3DuNVs9E4JFM+cEBinXdM5vYO8s5SnQpqOynU1swTM5FMs1M8gszqEVpBNVsxTM/1qKQcBJWUtMywKc6nfTM6g5Jpac2s6BfTAeXAs+zMzOXW6s82MEO/PSsWEKcSnTCnbm2YtswmBYVOKAs6ZM74nRMxP5s8ts5ZMV - -LM3ZM/hwPts6/mQFsytsykuLZM9AIJVgG+xJts1dZYBAuHI4MEo5PV0dgBA44qtPPXTSCJs8QkZDVQiZZPwyEcdcI1Pwy5sjwjSkxUDkwlzf3dfPgZHI1wjjHOtr0nyPv+kVbNiDA0JYIT03CsxfzYQZoMAJDwIFyNQAkeHLifNUQs3vGVAM9SvwIthTujgKizblbFAgg1AHAjAy5ZzkALBZJ5PVyd90riLVRTlhs2XaDzgLKKeS08Og5lnTig1g - -4sOFCeWpRMHtGRqKCJpjwEsyXdFs10nnUUwNY9++lMs1os7J+CaswrMwy4M+s1UM10OJLs/Ms8Knfus0kMoDgCYs6oswlqJrMxand0qUqs6dM6Vs9os7fMxFM/PWAKnZ5wrqM0eszUGFDzb1MNrsyVs8H9j5MxQnZXabTM0rM+anZChX27cFQics5Ak/0WLes3A496s+0nc/HDLs2tMy3El7s4+s6As+2s7HnLAjAHs6VM5Ms/rs8jHZeMzsM6Jg - -FX9dOs/uJLqLPHsw6LALM5/M85St/MxwnfVsxHs0TM0goOLs1H8JTHh6SGazEBY4koBrsyLzLUs79M21syceANs4PGWXs6DMyAs2cs3BswlM9y+E0szaKSBYdNePXs80s43s1z7O9M3S0rXcUflXKMTpsW9AXDoecKHtYeaARfgdr3v5g2qOs4sw5HscjblNk7rAiMXJ0TmjR/Wuo01kgRGDasNCtyb/rn5Yyps68sh9I3aUdyU66qXHQyqdA3Ld - -KtqDs46oxvLYjWYvWnMjuLszHtt9gJeFeT1P4idvyNgAKcCfGdBSQ7GdLU9KmAAhTCm6KT0sfekKmMh5EXfG0QoObBxWlIJBerFeVFXs+NFYIkFm0N5YJovYp02skyjZc+o6p0+O01CFLStDYZfS2MD+C5vU++iiSAx2ILswp/CpM2tsztHWM0yv9ZLcEnsy6CHVsxAjSus90M8rs3EZHk3qkM49eKgszss4NYtpWV1IFxyLkM07CSFMxmnQZBSI - -zn6M/UM4bs/6nfmnSJFsnMRYYpMohl1sdM3GnQGncBvOAcxiTEUaMd6MIc1DEKIcyJFuMM908FAc8GM8JGJsowME06HSaUCgGeQFf3rfRJTuGa6k3zfL8w8oEGiwy8LQHGOG01/AzeoUpI5C0x7jRIABXGCcYLIQGLZBIQBhfNuAMjKIPSLZGHe3WDTJIiP1IDX4NCUFW1QSs7pvW9+LF2eVPZ6KkBs05Geyo2sBKrsxjM4JM5E7ZrbSvM9+UxYM - -/2M7SI06Ev0vA+9ZCU29ZCVrOY2Fgc8EpJOk/zTEQc0kOr7swgs3rsyos+Ec8dM0WZVg3Lrs8YswuM2rs7Bsx3s6rbmjtWEc4KM/s40NgIROJeHSk7gTZLUc3os9uM4Is3uMxgkK0cxls2wrTKM8Ec7nsxpMwUc3Uc/oszZioYswMc2Ks+jM8McwcHhWnZX6OYLTyHeRya1ae+uB5g0qkKASOOPgsqHhw8jfKOlSXWOOlYd5BNAVdiZyWgfiOrFJ - -cbKjPo4AEFyK+6EA4VWABDMFoUkGgH2XKCqGmUHEMumsuuONIGeSUFWM/XpirCodOpl7uT6B1QZ7eQ0c6FYvdIl1PW0s/Acx0s7/BLcEssUcWrT4CgWoz53SOMptJlgc4ZJb8nerHeLGj/M5ns5H/t3syBYat2LtUW+swwKlDlr9fXlMw9MzVM09M03zb8c4Ws1ZIMhVWRppYGf6SK3yD1Ya13UtjWR4BsU/85CLU/LqoVMfivr13a+wpx9fiBZm - -M734knLIHnP5CAhAF6ivwpYn+gqoDJ1XEMoNHDsyBHomW0r1ICZIrPZB5s1boKt8fI7Wy5TAcz8NRS07Jw1S0zqrVmUH+nULSv6AQVzNXaGY8hEWNFs3Q+DWHVXTSO43/UMBoyWDvk7sVU+WiGoOjvsEaKgNQn49iDMNiRPU1NbaLZZssdgfWPuPeySL5Zo3Izu+G8xPDZr+zXlswAnbinVt/q0M3gcsXgrYzKP40C3Y5I9hulALMkc/HeP08LSy - -cn0+HHgZSP97K4M3Ks4jMzeVfPQLOs5DM58SkA0NkcxM4l2s91FFmBTOM36c4DHQfEzw+KG8K9oxglsKsyYqWfNRFAORiN+xGcxNjDEHs4Wc1WcyXYHWwozREB+I2kgWcyinUWc/fAIGc9d9T8JLPxRWcwN7GMwT2c3PkH2c/BM0ccXlQPJxcCrWGJupbaVcSsVeRWPddNFae44C4ojPtAokPmE6/seyDd04g18VsVZRJYJQ5wRaKkqjPhBLFuqN - -ZGBBaopMKEAErICYAIt4k4+BDTY7OX5wOzFMkAX//NgVSimIIImBMB1WGkRoWnbrxJkBsGyQQQdGs9Bs0KQ12M8E45uPb2M7avSCcxPI33LBtyd0eXfgxLigDFOkU3P4ySagZSPhNDeWtmc2Vs0rs6ns/KaNHTPvGoUM9ByVFM9cs6zMwjM/Ns9zaQWsxSc3PkEMM0rs3vo5X8Lmc2NM9Ic/2aLwc1Gsw8pDGszBs2wnYic+TM91GpPM/AUr+c3T - -FWlM7Ts/uOHjHYtM8+aKqEXQs38c9gmjO/uAJShyNWIGJFlEtYRc00czsoPdM95s0Osw32qwvO27fvGv9M20nQShKlJu+c4pcy4aWkKJes8eUKb/epc93iO7gjIRGqs4LM2VYQpc/pc0pc6pBCns2uppUSb8A8QjWk/C/WoJlP740x8lpsQcIbH4wUE9T9ibU7HZcdoG13SabTG+cLUFEk/P9pyplAieA1JK0kZdJ2TrMnXfeEI0my+dzBOvkRpM - -BoLO98WjgyhpYwGVR8Uk8Bj4o2WP/s392jvpMDUMhU/THk0swkQ+VBENMZ6cK0qIOszGnaP41Qo8ypKSvouToyM+AhKfBDh+Hqc+rSIhc5Hs6Os1MiKbsyzMw2c52c02c8hc2es8Zc8E1B7s8ZqJic97JoaULQc3KnfQc/TFNQs3Jc0Uc2tHf+kKDpJcs6cneHs5Xs0xc4NM4Ns/ynSP8r2HS143cYmHswpE+KnQ7s7Hs8uM5qs9eiEItdjgEZc6 - -hcz8k1jMxl+GQc6KnYNVVUUiCszkE64UxxTYxs7nNY9kylslqo4M9bAGPrtUyHa0BvmAzcY/DoBpY1c2FpYwdpqV05xYWb8spbqdOd03HJbs/kJxgGiRAohKgOKcFOoJC78himO+EwSs/jgfNZDUYFtgMvSK1s7oDd+c3Rc+xc6P4/ko+6I0RaDk0t1fZtNCcGT6LXGc2WigZSOkCA1c9ns0BsBtDHls4ZM7Is9aBmLsyx+HNs0eM0bA76cyine4 - -kBLyXhcyzcyaVIzc3LEnLMzKCB2PMhVW3WDIs4Lc22s42c798rTc/LMwrs4jhL7s2y2e7syhczQLczczandexkcs0JBFoxm7s55oLLc+ZIs3sz3EnbfHdbvEiEhc2ChJJczB/OnE+BwQJc8Sc6bc16uLzc+dM4dSa78igs4rs11czydUSc0Rc5bc/bszHs35M0FUP1c5QBJ+s9wc8Uc8bs8pcw+sxLkHss0icwA3Dbs9qnVtGvNc2TM4NM9E4Aqn - -bMs4FM8ZM4xc1Hcz6nUB9pbsyUc8H9krcylM9tM9tcx7c02JJZc9E7EZcwvmOdcyMM8dc1ghClsxzc8ss6us9zMwSGBnc1uMzLc1zc8rc0Qnf/M/IBIzyfXc9DpqWKTvEDusyes+us63c/V8Yesx3c+LM13c79uQdkao4ypKe8LCxQ2KHfZbUPXkboyy/fv7lqurefOmY8QjfFHZqTg9Zj2ZhL5XqOmqgd7jlsg3Tkn0DbQHI7nvDBSyU8iYh4nA - -cDdptR4qccmfzuvv9r/KsuoxyTVR04qKs4LSyZd5cztid29aiZXvs7f0MO9fJChzlSrIUm+tWWmRAWf2keyhwqI/1H8pGvTTYkm7qFGDIp4/LEIlTHWCCwoLAQkb6ckMiiEJUzIJqdX1a6tdSs2JYNakv9OEv01m0RfEhhEJpuKP4wio8B3NnYIfZMNUwoOOigM6FEMswQWAiU0f03iY2/M74iaB2Bfk8as3HcwVs8FM0bs4wnZzc40M8rcxqs/E - -WFqs2uM4wjOOsyS0JRyNBDV5s+7HQzkLx+Ons15KhREFArFws89Hd/k+THU9HRQszYVHaswms01HUPKbxM0LVER4DiE+xjfqMspzAh4CV7Y3ff+M9GwFRwOUrX4SG6s5o8zyAf96i2c9ZwOC0DYVEY84JCctnA92M8saonLyiCoWZr2vHHQTHQQM3RUOWQprCJLrIfJuRcwIXDrwqscOustHABtmt3jCVBG86ujc+7BVGWTrWDztLAiA1s3jM+EU - -F1s1PDI+Xb/rHdMMQwLQfEw8yH0/GCtg2BE8wgqlE8zdHWAsyHs32KFIpkS8HGmEzfkynd4nREMxINkwGUTuM5YMTJP+s6Rc+JhOIcxMM3RBCyEcsM+7c1rM2dgDWcwSEL6QrngUVsyIczRc56ILzrmiOcaWOaBawcwmnbjxco8ymswJM0Nc6sM/THQJc9As1TdmrgSXs66XqE84andnc60848s8xOS3s3rc9lkws87bHdmWT3s23s6SOo/dQjnM - -PHftCqi+DlAKGxTB0nkXWIjUr1ZsEumJhCwcCVHDky9YYAOovgRdBaAOswtlsBufgegpgtoeBmXYs3vpJ9czvA9l3lNYQkdvInJFhY0JAP4WRwQBjuWerOYW7Q7D4c3ZdbUbKIyAfp/9Ro46Z4SSvbz5fNZb4s/C8xzMeTwK3Bdy4TMrocMHeFp9YROLErmXsqPe3pXGP31goQAToatXmKJE+sGAuIZtE75ecXmbeNi8KcyG6mJ5Q4toF1OJzThi - -xBBBfLswU9ky5EXc16MxylXHU6DJe9w1kI5zg2p06WNIzWi/SHgBntgn+Bptwc7SGu+KQ8/j4K545UI/Leuhc00nXts2UCQBs3+bVehWNc0I8+ZM/Q86aswIs+HHYos/uM1rcxQnEpVths6iMUiQry80GMxRhVQcx6s4F0Kqs7qs9UqHzAHq80YFSw84ss5nc9/hbxM55M668+uMz3c0jM2muWahScyAFU2qxg804galP4aHJaouotErr0GOQYf3 - -c7uDTOSpdVbMgLbkNBAeAnmk03M4y4nuqFNZMZiEVAIvcH5CKK8LIQBekF7kOKlmfEo/FKofd/LSl4B1Ajh4GrQjvRiOiEEc4Ys/ubDeFgYs5osyY+YCc0AfaK82Y3BP4vnInUhu6+EklNVGBtqKCTPK86hUp1Vt0c2Ys7Rffzc/HczTM+v0Cq8yynWskBfM+Ks1Mc3Xc6w87Ls8GLdss8Nc+FSWO8ww89ZBKAcw8WHncw1sypc/GTRwBKrcx/xE - -3TOeRmhs6RhNUc8jrV7cx+syQUyI86bGktc12fsbc67uPnkzzRJrMyNc1nwj1s3bc31swus6U800qDO8/xXMGs9fZOJc1yM7gc21mLQ8+THaJc3+zurs+Ns5ss8KboWnbbcx1WJ+85wnCQc2Pkkgsx+8/q3Te874Mzbczb3a1M5QU9KukWWhxMBihGJ4emU97jsC/cwsRf9txsVqjOF+abvF+w431Q31c6brR829CQ9A/ROtEs3f/CElZrDFvc2j - -suUaRIvWW0zs5QTQthjEGxORGVRxrtjMoslvaBKoF7qHFDjAAHArg+QElLHS8zpPqpln5abs6MCIPS0hW87LqDw1NW80khUh84vvOQswvM6P48Ro7UobycMFIM6vaielQ1ffOou0/M2hDUNuE0O8+Uc4UczfM1Tc1Hsyrs/rszas0ESNds9jHSCk9ynfqM7us29hBq83WKdnc3bs/8nF583inQ3sz8s99SM587ynR/VEVc3ic+NczZ8//M0Ys4mn - -eSc00c67c31zLzMzqBX7HXB89h821czinV2cxSsA+80BQgUJTXc3kc/e83F8ybc0+85qNrkc3Egebcy7c56Y389kpZnfgWqOtivS7fcmMyWCdf9XzU0ADQIRZjE0ZHWYc5a6IMg1vgSJ9XSVQKAdw7HXQTtTo4IvPmEAQfo00ZszOVK3vEHKQADDDMJPIjsFDuBo+htCEAOTnY464Q+/sIMyYNyVvQ//syrZF9IH5aReIDhLBkM2q824Utas9suK - -P4/VowwVcbqAcnPH08TiBZSYsNPK8xcgDgc7Z801c4QdVO82U80xo/kMxhc2ZM4TM+Ms+rM0WZHt86ynfWWU985hc3JdQhM2H4s3PUuMS0TUn4+nNfVXPIAR0uaOhlco8y4xOHi+sP0AG0CHU4NToGgVjPPBJaNFUQ5RNSLIn3bADpH2plceUs0jc1tIPExhImeeFnvQNTfDyCp6jnQODDojikOImOVFCYM0K86b9UOU8Cc+YxGrEK2Rb12XltDH - -5fs1M9oA/TaTc4ZuuZ82PRZkc9PjjAkWk/ChNCxRWUc0Mc9syHermCnQmpCl1CnKLO85McxL88KwtjVA1+DQ88TRFxpanc/7c3Ls/Q8/Tc5u8wtc7e8y6E3anS+M1DM23bhtc3ALjNcyEM0J3uh8+BswfJNl8ySc4rM98ChNs8zPiopHzsHxHBB8y3cw2gzL86wxd484a83mcyuKYJbF3mZMntRSTxcyNs8LYq7Rv98+98zmcx0c7NjJ0MyiSBg3 - -admtb84V8+ttBF4DU8zpBkp+F3s7s82ic1hNIrsyn8/y6Jb0Udc/hNZ0nW98/t85jfmBs2I8zGuVp83nwvi3VknfkNDJEFl1L+rmKQKWs+X6Lp8bfqN08KB3MggrLTHeM7vobDCikscBM8r8zls5EeNktk2vojwtlXHb8xss6pIryEcNYqTZsJyLPXZqnaP87JIuP8+fEF0fDSyqkY8yU0cw8yKufdT8Ax0TU0E75HR/CHWuaMLpJ3R/yisje/Tg - -XZYBfMdbT/Tt1ZTMLnAMn/rjF4pb+qRQ+YUxjRV5hcQ4PCPSUfB8Jco00IvbxTcVpQo05u7ONftQpuHquOjUtwHjJIZs2L9S5lAu9T0CLIAC4AEKJGIAHxJO7kVwiHqcDRM47OeqCvWUKUembPvS0m9pkakDqUGDXoHxdH1kqiOgXNFVDxM8ms8VwAJM6P45YvbnDArhPpCR0ecEOU5YKcruErRDUHR+Hd8//Mw984FoCa8yZM4X879815SEwCzk - -87ts6wC9MVkZc3qsyB0CF8w6zlAUzXcwqsyGbDH8/t3nH8/5My689LcydtExYDS4gggBqPWr8zb+O2IG9gNKHHn87MSnEgL2CqPBJnKAHc7Nc0DM2OcDIC9hs35Kb/7OF87JczGnW78zynQIC5HRPIs7uM1H88/MwUnZNAKcobZIN7CCH8+58Ibc5tbo4C7NMzdMA0M9L84Egh3UtNM7xc+RWERNFlsw2sKbHHC0RRc+B6G6nbP85lUKCpjb8wCY - -DU89Q83383Snen85wA5n88GRC387d2Iz1NsKllMxOs7EHHUakL867cZ8cAsmdNHV1cyXc5SMB5M97CNr8xwCywC0kM5LcwLcwzIGYC9LM7ds7Hc/lsxUCzIZIoC5oC+pfBnc0/M0KFG0CzMUEa7DLs10C5OMeG4/JnO6bmitLrOe5c4LHAkxSd3JyU2bSAmk1UkwDk1oU2puQMyJLU0YRr/CWYU9GY3H4wvcxxVesC9q7u3Yqx0XBw4o07X8T3LU - -dCbxeTJs2FFJGM/Yk3cI0LDeEyY67ciAxdPg70z6OqNYE7aBMtKwEJ9nPcAPiuH/kJ1EKu3DY0/XYXZQC1gORzJ5M4CYzWQgyCPTUCLvRTLqjLBos8qzcmbRjTRbIO8WEySBVsiO01fQ628wgc5Z44TTXElNXITbLdL7n5JNU8uLAPK8/NZEVZtNHdn8+IC8u8/oC2XaCbApf436nRoC70C3tyves7Ncw6JWzczincqnQS3Jxc3JzEoY8WROVs0l - -RpVs41SHQs2L2JXGtyccQc7r874Mx08cFfB8SQ0oHSxus87rc59M7YLt+syMokdSkThQI89GnU5ivw86WuF/fmAKd1GkH804C3NM+w888s+e89Ws3xM6o81dCCSC71xFlzu5ctuBWCAg25t4Gdbc3oPXcSmorF380GZEcOHbCpjhA8s7m8MHACUM6tQgY86Xc4r0J1HAUC8pvBP85sxlP8+TSeW7PkC7X8/y2XYoFLvGPVOqeeIPTaM5UnY//nus - -4SC37tSLrjCCyWRtVmOO6pb833odUM7EirUMz46Sj2cqC6mQeFCdLgFGC0vWDGCyRiCJc/5wL1aQ0w4mbj7seq6HCWUM8eVfI1DGxXOWC8aM7GQOGCyCGX8szJgWnraGY9/rsw9gV4tGEW4aZJsvGYzJstQ09GXIOC55FOrtQfdTvdSj0+GMy1Ug8RZG+C/c6WyunQ8vdWFDalUzSw/qFcfiLYo2lLRm8VHKLbUPqxRpxSRyXTeL0Y6bpVgGabqK - -m3o1Nou3I8XZDLG+3idamIADcEoGgCNZF87HNWUWAEd9ayvgSIHo+rdUC8wOoM8xMzGkF+4HTHvqw9KCyKC/SxNkRs683qC6msxEc+QPVEc4Bc6JM9SM+JM6BvZiXQTbEWWQ0MnR7E0gDBcwpM94jRDUC607ys+DHZHszF82UC3Mswnc0SnbZ8zF88BM07yhyC9wyb2s3YCzF84zgPns9aOKXAEXs2L89F87ns2Sc/Qszh+Dx3qlwhI87I8ztsyw - -C7+8xH89785Rc1n87DHTn8/zSu4CzAEJqC77c5Nc8w8+tM9xC/McW24MyC3eEHRgsYC4I84qC4Z0KT87uGBTBFcSkVs37c6WCPUc0pC0lQ3yC/Z8+L81DTLXCQ0czyC+T8491G5853c+bs36vFpC7yC3l9la81Xc2TcpZC8ZC6BvqoC3m9syrbEdJFDX4/Mf8xvHZGYxWHECs5qiDT1byKkcIUl8VIU3bVDlZfC0HRI6TGjmPQ8bCwwdT4GwwRQx - -gOrCNWG1xDNHI8XdgACSVIJJANYLkdB0aF87P/ZFmnIJJJKMke3A9ag+XNL8KgsMkMszANMWKiFh8inDnKk87rs3z9BQOHS0qYAo6QqP47fTW1Y2ENONPsp2BB3Bd8ZdVJiY1jqhDUO8gpTc3RC/OnsO8661l4ndX87DQHtjr684u87Xc3TcGkCzL87Jjumc6SM9THVB8wOVLU9oBCyo88BCxEC5KnZDkOlSMg86VYCNwMq6Vnc/b82eLOGtGY8y - -LbMPBGtC7tM/3WHW+RP0/ZQb53ZB8/tC4tCyGKJ9gJS0Ph4g0BKdCxNs5FljVC9zgQ3+HUYC9CwdCz5kLmRYjAHEnGe+F4C7fKD4CyoXKVld9+GY+LnxH/M8LM9Tc4RmCG5O1mMiLpvNGkArMCJJmo86HDKlOs5Hs5qc/QaW449YC+EC1F89DC8Qmjs820Ka3s/rc+O0JaC3wC3686zc3kC16CyyhH+5ANCwGC56CzJEDTC3L8+lsyO88PzTx4wy - -veyvZ8MbSA6kHpDkSUGoZ7lF+TgasahYYXhFCzv7t2nasIkCAwiPRoDmpGDR08OaVwM03PdVjScJDfAxMg6qgyoXSV8MZMPONRfbUumn8kO0GZjI8WU6k2B/7ltxM6MNcAJZAMuQU8YDM2bgAPXI6MUiyQM9HP3xoAwMVC/6IFx0HX0B33tODvVHfGpJ8zRggXQOPsMxRSPvGoE4424wBcxm7RBC2vM+JM4EzXS0yzQ3CzRAlNLRryUCOk7Bc1ys - -5tfUO4xQ83OY7+yZhCwMczZC7mkK+2Gb8/0nUHcwzBiWs05gknuKodWTCyGILfkkbyiG5kf8XEC73877AyeIDJAeLPgsTB+aN9C2P84uAvIc5Ac+6yqSHdhc2cnSsVl7C6gED4llJC/VM990qyC1O0B3C5sMxq/KxCwrxEhNvU8woc83C+0cxJC8Is7hIFXC0rypfALXCwbLo285CC9p3MOc+0M6skovC6Mc9bIPW87hIKvC8Gc5L7MltoN/VbU6 - -54Wl/asDW8kfulme/iw49mNj/9f9rDx0THEXwCPlLXb3nF/XqOhN/eHOjH/ZLxbSJZRw7AblUCI8XWj6BeBBXKJheEzthOmHdpjM2TEwKmAGpcQ0bdbC/rcLmznbC1AgiVgGHMh3I6mkEMad+sxms+A1NOHaPsSa86P46Afc45fAlnVLhd8yPHBjSL75U4M4NEq5bjDfj389lsxXC4TM3O8wr83XC3P87TC1Z8+2spKs3Q0UmnTnJkXCLq8/ls/q - -8yZc8ws6gi4QYcmcx4MwV7ems5JQtwi/rEuwC5qnkw43zKQjUUnKA4HcmKcFcJQtTsQdQtV3iVKw3DmocAHZZmW7o0vH2/D9TNfrBVbWZKC4Q/XYVsgFx+s4YNMqFYIT4c8o4Uk7dxrJ2UyHSoZC2T8ypC6opstC+M88cmqP4+6fdsvJ/AFv0dLuZmDjBGHltNQC/GiGoTvCc6RC0jHc3c3jCy/M5jC+DMys8xHc1+85wC5xC71SJe89ic8wC6q8 - -6iAE5QiJc+E8a785UC7EixEi5c6j+cy58RVtGfM0Ei/Kxba8wGs8cEVns31CzSmLYiwQC3Ws7xC7H8/GC36s2qM3RsJaVfqlEncxh84X7kvC7ZgApHc4oGHs2zjc7c/F88V8wt5dJC5vJOmFn6nVweTlM8IxdTswmFD0i9u80rs7wC5Eiz3CyyC+55UUC5Xc2nCxqec7MwmdRD08xpAsi4v5vsCzHctINYAqhRI2n41xni7hpJQ0IOZME1WXK5c3 - -uPojBedmvQtl3gcpEasEyT3PehKTobWgIcAMoAL+8J0hn7uJAuI6io/+iiEGVXNrjhfYK8cyYi92AmLmGjc5Mi8S8lyPYnqLB81h85mGaP45Xo5tpV9gNZlON04HmdC8KwfKQ82qhL1C/jCwRCzMi+Qc+Miw2hD986ki0LCTw89a6Jl0A0M+YC40Cy1s5xYwNcz7c6kC2ZWDds6ds7NSDb8wl889KWSi9jHYCo2+8z+s/B8zIScds+Si/Si0bcwn - -8zl8yRc3GC/wtKmC8iczYGIaCwggEOI2OsytcwMi8Hcxns6Hcyu8+Hc7knbtgCb87n84683lJd0i09BqMi11c2iiwIGIqi33C/Lcyqi3AlbMlQI4zaWdfCtFMYyzS9HoNrlxQ/ROhxQ8pqZLNjDqLTzesjcYXtc1ppYALNooXkM3VMJNPoRzTlWmNelXbUz8g5hOAOmFeyuj6LqcNPcBGDCz0L0jEq0D0NmixO+HpIWAQia4wkZMCORukWMR5AOS - -AXC/sdqe851M60syzs+zI5sk0HCxzs4iY9svKzA11M7IlUHaq1iuTBPCiwrxDL0+u8xwi7RNduswPc+ZC6ts/hC7nszUnSKiyJzOjC1WiwHehnC4ZuOJEE+JAmiy0s+Ezi0i63C1nC87wzSC7wnd2izThWai/iJe2C5pDcZngUds7owV/bZQBWArIpDuYfbNh8cP0iAg5tuU2m8z6Ou7kMA1tbmL5lIzshphlsGNlVOlVMeWi9ShR2AwZidCiA/k - -xM5IiIlBEHmd+MZjTnGi6Ec/Qiwr86P4xa/fJ5eXiXzI3M2EYap0puzdAfM80qrS+Bo+fOU1yI4Q8q0c/pC1DCy/MzF87cQnGixUSX8s0CfYI4/bNoB+JgPm3nXWyqjPmKyJiVG65DiVHdEuZKHYAH4sB/Yr4sBdxG1Lf/MhtoNhoFWM+1YjHArEidmi9Cqer82JC9LWuX831M6P461Yz5EX80jVs/3jjL7lkqRmBJ1C2yM5fUI2QHQC0ii7ns8l - -swzCyL88QdV+88NCwXrpxFnTC27894C0UCNhoiiixdczQLess+tC1EC/yC3Ui4inSk88Vs2nc5GncVcwpC90C/Jixr82GVFAs97SBVvF0WjP85Ji5Ns7qCO+83mjPqIIJi8DC8JizVGpcnYQs31M1+syh84Zi7XjZh84dM3+s0oEa5Y6dAwqMToEXXZQZNEJQ/MEihdS5hcpnqTWkRIzfc9/0gjE6+ak/+R+totiDHTWbii53elkpkmGrELvsFSN - -J4sGu6aybMGUXpEavQ/XYR4gJztOCxsVIC5s64eh0GPcFM0YCAcwKC4ine5qQZi9h86P4yjY/33AoBFggrCsS1TEMWSSmaZ8wlRvy+G1xQnC0ac0nCw2iy0cw581982EixxCy2/VgKfLs7hC1CnEvZnxC0SC8os5983rM3oCzwOkaC9UUXkndeiz0czexcRi2k881cxTC+7irNi6Uc3ns+w0FRC5nCIti5VCzz2Wws+Xs3Xs3kUAKizNgCl5nJCw - -qC7VM93c+0mKyi63Tdti7Xs5vKb4i1uENWi7yixAjWmcwb83Os4w9bpC4Ui00CwAndy2UB8y1i2ls6YsyBopUlBii11i/EIfwCwSi8vwAJi6di/iixSi6Di1Ni6zC8W7F+oUorZtMMFNtqsU9A9rtLwvbzJkX/TflYrxXP4f3foG7vvKiai+ZUXF+XBXlZURi/fm0yZRSvrPCvkDRaji4hXmpsx7oyssWKWQDNLBeCvHA3M01IVDwA8cc8zcmWN7 - -qIzoM+sCWSF8anLWB5Znj6m+UMw0Nvk+TKGXgBr/gJiCguoA8s+C68aO7nXgyi2gh38DBCCmuLWRXDYyXo8xA4HC2E47+U/K4571Qp7FK8wn6m6EvcGRQA0Qi3rnbN01k7YQdaByQwaI77LLKn9SnXgc8QGEsYqmB80QziDr1LCeNrGN2OPshOnAFnKt3grqZjgi0MCn8xCzAn2SLR+OZMjNLN1GZdAn3Ss1xPSbPccLYpGWSvKFiTsFtIFtaMgf - -cWkGqkZn3ULVAzM8BQnXGRfEG2IJ0RENdZBwO92HOBH3ekXaani5F0G2ug6XfQ1AZkTaKTo/iNQLHi31mBcLO1Yhx+EHNhZIKetGv7dtOnHizqA+IkC6XLFwPyo+y8XGAs2mdpGpyTH+oHcJv0HWqrEuCAKaQ3cJsxsxMFepD0UGnmnk3G1TM+/H24PzIpwqcZjWAoEAgBxGWVsugEhQeOYuETRPI2SZ8E7i88jl9aH9VLbi8lshgECUC0aGQvi2 - -DkFRhJqqZsgeTBEUXs7ARgqDzhPZAOAPcP6dUhvU3BBRDMbHw2CRrLJCC7eW19cIgIIlOqSMBfTYIZvME9iLGbWJZR/izhAp5TLiJiZ4mQNom2hGfDuGGNgNVoKBONfk3PSBJ4A48/hbFYgoazPWzimIFvI+RqZoaNdXNAJILll7yiKLSiyMLYxp7ZzTgLcVOaKmvs/ixHROlssCHSfBDXip6xYE6Zbi5wrtbixrTC0wMRfbxrKuwl5qi7zO4pCq - -NO30vYkGrQWd8CfqOXiwo8AaaqQS9JmMx+JR6Wfi013QMpIv4Ffi+3zEKBL8hZxKi/i+QSxISwMqNwJJp+o6s2dynIS5REEocxo+F2CxqtmO8YTVddkwsc8nKCdUEcON4vEaYsVQHqioFtTXgCxJA03JWVBqJkgQkBQpEvMP6AiVcm1Zbtdcw3AiBFLTSrayDuf8tlNa1w9s9fvdR9E99EwNiXD0xPwxm06+5amTT5c5rkkmYxDk5g4/ZsqwFQ67 - -aP5iYc5aUENw16FSPaYw078VecC5MzTqbTdEyyUH7Fc6uvRs65lVhM9wEsm+vMHWeE6IM2KU1J5sFAJeerGIPHwSXnvQABTQHeBEPMDBLI3lu01EuLkOsCCZCGPu340YsLZCu9OihRVDwuEMIQ3HVaYUtsdTTFWNtbEbbv+c1ko9Ec+0s7EcyCc9OA8wA6jqMTdUg/jL6Po7HEVkMs2zWEk43Fs4Ibrvi87i4m2jtLQh8nwSxCc9uzD/iz0MKqkH - -GsAQkJIS0oSznAPghif+PTrIXymeAvPiyioCpnAxKtesr0S/VIJQAafi50Mk13aDkI8S0wSwpcI5PDgS/FYHgS8tueuCq6gGkvIYQT/iwbDEzsIgICZQsuWM/0IySMm2QkfvW8UiIY5TCGaFwS4/ArTmi1I/CSwgLIiS0lUoLsHkDH1mBD6oPALsS4aHEvGTrwrPZDKmCcS4oSxokOcS1sIJvi43hMA4Nh6XitHQS0LyVSS2Pplvi7SS6wSwfmMQ - -wldLvMOispEoNAQ3LPGfXiziS/wS7cKtySzKCUtQ7wS23nVjxAGcSVjDDkYQZcZQf7YU64es3eN9e3QyJ42LNOdsRTDQl3pXBsKhfSvdljqBA7fClvLemDW2C+lgvyUy/9q9dOT5XJ0W88+PkU4XVo+qPQ7ymOuOCUSzuU0Upsn3C1ymSMUQ1KyKcGxoJVm5GGmgmK8HAC9fvTBMPJticOHtye0S5QkEFsH9SjfaJN0siS0hCYoE40AYtHW7vTAS - -4PI9mHRnTezg2YM4z85MS+YxIsMK2xc0JZyGTcOVPtMPSX+o5ys7LioFHjtZuhC1I8Kbi4viy3uE78IISzk0jPLkSSwjoDoSKSS1HuXni/8S0KS1qEjKCfBE+Y6aUzE34j8mKSBKouF8HfUXN+qT9mcp4CnGM0ixF3RP+e+5nD1NLpNGS9ASzXhPbQt2S6OS7m0c+uIazB7oYc2El0tiSxmwIV0bwSxfYPXQvyxLniy7UGniybXuWENrGFKUC5WE - -Tbd0nLSWiiS5GSwyLQzFKeSxGS7Q8/wk/rfaVieZvtXRg3ZbNaq4ee/CU1flI4ww4+Yti+S7n4iZfWEjEMC+eGb5tOPdrR4I3M/Cs+8qF5GMQKj9wtLdCrEKI3G0NqyKXu3A1gu8o7jARZMMusLsJCPmO1AhUgKkhnkEldQGmqSZ4htGkGKnIGbrZHT1KMkiDJJ59QiC+DJTEc7wHcBVDsFLDbUP43PfUEIW8nWjsHsSzHC/mS4NAvLVdWbSWS2D - -kE1HsqGe5nry7RoIEOS3nqVAwIvi5xS/nwKcSxokGEPlWZDA4D+CO7xA6RK+zlDEChasAOhyqrXXrbxPZpHp2spIiuS1jxPHi0AEnwS5KS9pIrsS03iwIfN5TJ5md+dR3i3IkXBKshI18QYASyPKdGjcIvs1xIHyCwoMLMgixMtiAbmOEMOhaUfi2qyPUhl57UygEQSzsqAoSzbiGcS7fi+IGivi5gS85S9WS0BHaVcdFjhOSw481pYFMOsKS2dM - -K2Sw5BG2UzRgtys7qVWQgM2S7FSxlFIOsmpS7FuuBriFS7ZS7Dwka7NSS8pS68s3MUOxSzQQpjFg0c9GnTZirLsjM+vy6Aa6JVS3dMVaPCVS6cim0w7QSzxSxPDeJSxGMK3ixhmFbGdxSypnG1S4jhBJS51S3XYN1S3cSy5SYdHNfYcjiy5Yy6nnImMZRVz9SIk4YXhS+XqnJbjWI0/nM8oXh+Xqco7tnIbjQjg82GtVZdI0xLNq1ZasIsrU0sLi - -Q02YSSvRVrU3EXrZ6ml1mcDSoul6qUUkeFVGJqDpAaIYjCI5PQwY0zOVO0aF2znPMD7uPRHGwIANYC1yhNZOLWLlPdo5eWWCxNDyUB/HVAguhS+mCgUI9qySw9DZSySSxvZIA+pOVgiS0pxNCDVnQMPps7Xv5FCdAtQAfjZWXAFxA0xS+sxoFHo9QHCGiJSzfi78hRsSyySx7LN9SANSyUoUNS5pS+KS1lSzZBflJqFS3lSzuEDpyaqWOqUM6dYX - -qQT0LlS3WS4fmgjSxiS12KRzS8SS7WS8WpqCS397LhZFxUyQM4NZRoEQCsy3fjF/YN2jqJOJQs9LZDfKjPpOufL/vMfIMBLArpzJLgAESAJ/tb2zmd+ATg497lBQJp5HE8/WYzMYLEivcFBEbJVLAcSx1gKMhoCXvDQaQFGCS8+knGS6zgwmS5kIwz8x8E0z85RS2BE845n4vHHjZ6JFOQvGrpfVLVi3Bc6sfewTAL87qLETS9IS1G2W+SBHS8oS - -9DpDHS2JS5LcDHS5eQ8NS1bi4ySwy4LioHmhDa8TEjX1ghvLlZCAnSE2S/2NFdxMVlYx6Q2S2doN5wyOSw9oBnKbTNZeS7VDhVKNNdT4KOGS+jJFIBrzS90nvzS61eo3S9+KM3S21xHzS+LS8bFd7Q5MnWXgz7QwzIn8M7aqSB4M6k5rC7BJfBdSQFYmM38bKm+dCgOtqFCSHaS0uiy5lMRSt2XAFvsLWOeykJ0rAAP2TpTEddpgNg8gQfEcrI0p - -ZTGh7G0QhsXGyUDC+IybFguGXi7TSxXi+NFSqabkCB2SxxEMjS8LEzgvsso3xA6JZIlQwJA7CCXmS3jS6sffozs+OXDQA3xJuSntM1X/DDS0LS8BvOzfRXS9pGrmI8JS+SS/ZADk0n3GVAy6ZS3dHLvi4eS6xoETbcZSz2S9/oYM9iHi3nS7LoAXS3JS1V3U1DO7i7bqTCSt95T2BGAyz6saANjS3aIS71yB8S52ELpCGDKBygPY1K8Sx7i2Qyzh - -3IAy55o0vgCAyy8xrgywo4Pgy45eC1S/cSzbcNHS3Ay5HS3HS6z4CuNnjSvVS9EiEnS/5S2HafSS61S2NS80UHIy78hTnS2VoByS+vi4QKOoy8bdhwS4Pi/cXXfGiwy7zvbQy57i2x6pQy2FSyIS28S71yOISzlS7DS7lpsZS6Qy70SjzU4pNAhVjBVoIk9pCibff4xb+w+14l0sYN6eLCz5CzP3eZ0eEeRXZUOi4aS+9CdXRrC/drjeSKbrjfR8 - -4ai/e5dzNiF/eDlgUaAq2NttnxoIuiyBS8U9IU4CcYAI0kEAGNAAT3GkYbU4Grdi0AKEI+i0+pikJCyQoFlIGhS0GSzqJBJkLCkyCNnAS3wRI6KogS9IzpewZjnSq6AGfeig4xA92M+BC6vM2ri8Q+FekL5geF0ez8911BJciumapIayMxIqoFHvlMFgHo1S0ryuGw/HS9Kne1S/NzFTS7sncvwAsy3xS4kTuBtOczEFcpHCkIy6NS4bk+7i1gyz - -Ay/AYAeS7PXOgy6pfvyS6uSxpS7/mnwy1q5pYA1UzH8S+ni/tfSYyxfi33Ew8y8niE8y+uS9hoMv0NGPehDaXS3uS0TFB3Sz5QxRaTuS/nixslCLS4jS73S8WI5cy+pS3pSxGqglS4tHXJ8VF3JTS6+EtTS4G8gZS0Bkt+dQ0c+DAhSS/IyyQFBiy2RmEGZKoy6Hoo0JIqsC6ElzfEyS22U0JBCTeMzS5uZNwS2fcAFaYLS1Qy8BvDnS3VHvwyyR - -WX1gqlSxcGOlS7cS6nS31S03eOYy0zS7Ay7nAFIy/zauedBnS0ySHSlI7i8ySzSSwE6voy7G0swyxXXdMVkgIN2MEqmLLfo52Doy+wS1ZcKIy75S7iy78hbwy+yS6xkFoy9qGQJSxxS+5S6hoCqyycUuu/ZQszBHiiyyroKsyyayz1S/sy8qHHay1JSxIy7qy5N0Isy/1Sx1Sysy6oHacy8e+KB4IfDMSywXxP6y/vi/hNdGgxWS7no9mdgzS1zS - -4Sqqgy2cy4GyzHizfS2uS4DgOsy3Xi5lS7fS8HgGmy84LhFhajqeOYaXPfLxcydkFhRptdLNNmAwFgj+S9nJQX40PuUubnnlsifaDbOC9r2GQC+TCfuzC8uXk5goKTRwwR5WVwwVw4yW9QBftfA0R49H1Eai/+/tCA8NStR8/ZkjdA/R43mDUFPQ4eSFPf7jlzMfcIamU2+/vf9V+LRHnudZaReWWCWHfTSfcwfqhk9bplw3bvxNaS9OQpICRfer - -/zNrEIDTADMLE2JhSLToDwiMVND9ibxmS/EDzPdMNBsI9FCKbS2QcGggSIzH0xkCy+eS39PA4y+fi04y8jS72k5OJha4qXSHYM5RhLkQ/tzQbiwo8MLs3N0/zTMGyxqnbJSzyS4YsFmy2IyyfcOmy7pSz4peOZf8y7tUEB9jOS5XS9gy6my0hywnS++xjFS/JS0TU3sy/QS4Pi5JPMfi8k1UkGRzcUISyCkLpIbcy5fQdaBjBy1oqgxy/nSwwy6a - -y6VS/kgy8y04y4yyzWS8yy70i00qT+yzYyyYfUgy1XSzUPqxywIyw3S3Sy2eS7Q87IS2QS3X0UiS9Jy9eSwfEaoS/Jy3RywYCoi/TulnPvf7pp56tvAwhIe9pnsjhyiPf2g9MAjswWITk1GQ2PXXNrOGbNq3ZTuBOWbLbpuFCglNDblVX4vDg1CZVvswJVSFC7xQx3WSJcX4JAcEiOjekyyjs+8qDSPJxgIvyN7kIqMmH1meQOhfsZVTpDBiZhw7 - -D71HGQPc/O7CmhS0kibJIlflDQccoJfgYDJAIwAn/EONFZLi0Z+LPNHMS3T84mS8K80nUx7S9J9MOcvWFZUNrRS1+Fo6TNflIdvTz86FhoFHv2lJ1Vtmy8myMxy2lQC1y0RGa5S4/AgA0diy9fi08WBsyxkqIKy9zS0NQzCy43i5b5n8xCNS/u4F6yxDyu/Q//iRHSE1emwS+CDNqy9PU5cS8ErLfJNkoizSy6iBqFIJzffS7hS2AVJcOk5dLFdI - -ZS+6ZHtZlcS+ty4f+RZS9Aya7i4KLkWPGWrOYMkfXdUwKA+PncfuhKH0qhy/uOIRS41xdKUPgS/tVkRyzHYosKgQEupSKbrDGeC5SxRy5xy4Z7awHYmsLowj5Sziy56y7D+q0y6viyuAk/i5zSySSxlAMAHASywexLxy4zS7jgKzyg0uIdoLoCJQyJz2ljy6jy/WS6Cy42S+xy11y3My1/U9xy/Qy+IPapy0IS1WS51y6Dy91y5kg5Gy/ISw3qaJ - -y2OS56aYJzPJywzy8NRRhywXi8Rqdzy/TyzWXdljfzyypy6zy+oSyKbf2qsGdUciyXQ0aiWAqn/Ixsc4LxWJgRpntP3d4y0l6vCAwbNpEy7Vps0GY3ZQFPRrjcFi/h0uEy5ZCsOy5CLGC/elgqX/voQ2ajE5i4dA2EHiC+Vh5ibxe3ApEszLFmlslRAcUCHWFPTAvGsAgIPUyUT01PQyLdNbmPL/sADkeercAHn2ElLMNFon+s7rpiGdbea0qMyJ - -Nr0278qfSxhIFYNufAL0nO0cfiS8my9cyzHNlDHGS8Fwaf7rkriz2Yyri70y32M7/BIo5S1yJGsKUCXaWqqPE0rk1xT/S9EjoFHs4izL06Ry2nS4zyygyk1S1Ty1Yy6Yy1QaUyy3ZS5i/vcURiYZI4CBztfSw3i5my6rpBFS5C8dwyYPywKSxny/5BZdy1/i0gQ2ny0Pyymy2WOTPy8AS4sbNFZb2HF+S9H1PC/Q5gigDZ+/pycKarcXjAtFRAPb - -ahIOmCwEBsqiwmUR9E7kAwIKWwn9nP07dsoKjPHVvCHMvJIOytCWqoq+Plyo0JJRAj1wDxwNXtqSy4iAOSyxvZXny8p0wXy+RSz2VeIHMahBubCCkOlpIWrTSgPwMCck7hqnXy7zE1+i8vI37MR1yz1eLMy0JSycy7EKAGywfixQy8goJjIKmQHH5N+y2IS/ZbDoBthy9AyzB0yeS8I+B1DPknIpy1eS03S3cUAiy3/y3nymI0gCcKkMs6gO2qYA - -ti3S2LSx+A8wKx/y+N4OEKTjy93S63S73S8ZVLMCyW/EUfFkyanQ4aSGtk+k1NRJqeLOTGReMRGxUYKlGxc9S2N8+8qCu6dKpVKAJKdnpqQEwIQAPr6iKlksAgyQyD7Z0/shKGnOpNIafSx1XcqC6movQqiy5Wt8V8NfGSxqrSPI8qc5mo4Qba6yA9Elh7ZdrOHC5/SLFKTqoT2xTXy41HnXy1sUWHS61nrX1iBoyMalxAXgSLNFM0ALsGk3vJ+6 - -Ndyd7qJWUwhS51WcYK7zLK7FJ4MVtTIIEDzglYK/ktnu8CDkPzIhJbOjy9y84Vy67S9wHSS9SAKwK5C/1EoSGIVCaFIQ8x1hUcyLACcsS97sJBy8bi9By/hy/3zYSQDVS6Ky3EWD53Gmy1xS5Ny7xSyaVD0KxvizKy/bi9dy4nS60KzrTHJy8LyyXka/IBLy7zy0tKG1y9oogVSy7iwb2X8xAYy4qy//Td6y1Sy5QIjEjbyywyS/yyyoDBKy9Syw - -B4GySxoy0ay4ZLIwy4ojIHmIMchmy4KS6VBL8Sx8yymiORyy3y5Ty7Sy7S3YiNFkcZSy70DKiyw6y+XuRhy99yzcRicAl5dX6jgqBqNyzgCFmBTQywghMSAoimCcK7oy8tyw+4m9y4hyx6y/1yyhy+ny3Cy0awB0K9XcGKy4gy5CK0VEb8REMK3bi8sK8/HK6y11Sxay0Ly5WSyLy/6wGgK+ay5T6WSK1Gy2kAqTS7Ky6MK5BqTMPZcK0YyyB0Es - -KyYCEyKwcK62YpKyzSy4fi30Kw8S0sy6pQtsKzaSRNy6nS4KK0WGs0k/u3b1oCzIyrSS45eiMgxATBWjtdEPuiH3LPjZs+lrXW2BuV/dZYxJxNqK+6UA/C8u3hgfiu7PqKzYhSP3XYhQjBfdZodPvKji/CdzC2VNpji/aWRlXQifRR42lpbOMQA1RNZeB2uwZSsg7/A0ADa2Qe0Bvpy9hus4zExYe85qX48T0yLdJ5yH9gHiuG+ANWAN8ZGiVL/k - -C7kFvBDYWn+BArvY0YF1bWDSxYK5kK+AgEBqjYIZE9Cf+UxEAlvo3ywxKsjS+gJW7sWOKXCyyOM3R7PPS/QDA0K2z4E6/c0KzbbAsK5lQwsDBcKy2FWyK9PVDGy3Yy5q8zTSwvy1Py+iK5Iy5iK10K9uS7gS58y/yK+KKyIy18rBZcVtMGtmp/6fmK6OK1JyxKjC4isPgRCaYoy8Iy9NyxLS6p4TZXf+AfU2dxkezKZz+TfwxpnLTMdZfeWhtO3f - -W3aYDkHaBylgGS8js4UQzOVEYehXYfYAFslvzBGrDQnLAZtKahIosiHjXPUYkYCKYuRyqitI/y+OiB0GMqRPcVJ5KFSK4lRQ+VIdy674Jiy77C10y/7CyEncAK9HxVCFP7fC3IebupBEyNQVHeVf6Nki0HS7HCz3GKgBohE+0K+MKzmTLMKxSK0kiIMKzcy4ay3oy3cKw+SoOK48KwDzuiS0IK3bY71y1IS7HS22Sw/Sw7KUJOXPwPWK/iy0dy2B - -K9Dy31y/RKxVUAUK2Oo0fbVg48doNJQyddQyrftTdEkyJK6bo8xKQlkqxKSKAYGDLjfMk2vcCy5lH0THAWGmAEWgLbSl3vO7InPhOh2Nt9T1EIlTCG5FsWfuynvKU+y5ag8xJDyqEKik4rY9y3raNPYGmPM4OkS4pUCG25nUYcmixskw7DWJM1g4hQHNpHNaJvAUPBjZ9Xk0qPWcg0K9xBUWS7Iy0hy8nSyp2rMy2WS0KjLXXl8K/ay3H5LRK0oS - -wRy5tyqCK4vy89SHhK7nhSeS7XS/yiD3eX8K8KZFbS3Ny4YIvFS6osYwK1lK6QFIcSzbS3gugo3D8FdsEJAlTXS3NKelK8ng7DgspJhTIE9o/Py5Py2iK3kZLSSBaXQp5SkRZgy6OS8cy0PDbtYHZK6i+JLMxFK5JSySKzdJH1K+l0ANKzqyzDy+Iy78xGNK9VCjXaJxK3RK8FK8yE8d5NrGMZCOzS1yS1yy0Qyx5S09y7zsH8ifcK7uS5hy3hqe - -zUNHwA1KzQK2lK/RORdy+VKy66DTFkCy8EJUCIDJGimuJcFC2BbdK84tb5SpwK47S2dK9VKxdK5pSxuSzOIFUKZvlWLy7hK7SK2zy/CK6iK+Ny43y/sK8efRzyz1K/HgCgK2o8IcKyKKx2K2sy0FK3iy9PjqFK1Ry7wCVNK8hyziCMSK2iyz/qBDK8oy8Gdr9y7NmPuS5gK2Gy+1RsTKwhy6wyKGy0eS33s/rfQaS2NSiCAxZxaXfnWaMmVXQjcu - -lq3PR5Y4rU5qiHn/Qf8zdI+zK8fCR3w90E1mdeOEWhMydUrUE431AS/e6mWOndTVeb0wiZaj06PwyGiarVMVtfiOMy/eQ09cCwrpacC2EBcQmfQRf5c7s7EPLcoaOPc6ZnGs3rsemAco8XVkBRdyfoUrKoKLWNE2HCAA3lpuAMhZMKJIBdikpBSxd05Uq/TFCGTrGYnGdFSRfgwK0uIAumLiRb76OorNKSM7CsjSys7U2mYqGdGOegzD+FOT1GGQ - -EMswFyoq83LE+r0re8AT8Dw4EB4IiK4IK2YDpt2cMGA6stttpodjQy+3y68y4naU+MBcICaansQAtK35S78hW9K467BY2p/CMItByK6ySxMDgHi9+skHi0my12Ky1K7MkPXEQCeGbnq+ZYDKz7YOdCuAoOW6DYiQOK48ywCy/fAAwgAfFiDJP6zMPKw8K4dK+OwBGqC/PWBJPfDqlK19KzQw14KIHK9rAm55tTvWRKyPK7PK6awOvK8bxJvKyni6 - -Ty0OK+OwOdgO6JC2cgnuNPKwdKwLy5hwGfK0zklToXhKStkzLIjfyqvjQ6cCdk8Uk9sZDcVcQ0hIQ8C447tZscwqOdsc5YLTstfwMHk8sKOTE1ayzBM8JXsCaSBAq0ryzYS2U1QSbMzDR1jhX/tGkNiwewphpRMHKzvZDtRMpPReK5Ao7UaA/uLurWFLkHmtNZH8EFUnB2QOpeZXGMx+r4+D06nKkPS0sIwMFUAyyDJmDd9WASSldED8RquM9/R5 - -sASSzIJgqczYjUqc1v/TdtfqlgPBgSjsm+J4K22MFOghpeEfEF6TJ4i5HOo44WsS1/Rqyy424OyywgdBCcQiSwtAwKmf8y2v8enKw7S+cMJCS/lK37K/WxJoq6LSyg8N6fB9y8KIKeAmrkfirP7cHtAOB6IxM26YMoq08zvqgn+M5rCBM8NAarqM9PAXFutKSKkPqDgHTOPggJ4WDgy8RK3CK2Y8Cwq10gmwq6wy21kqEUj+bUEq1l0tbkVzAzcH - -bgiLCxGOc3smbcC48g4/+QFhRfUvObioYPXPdrNkUaQc7KFfdXFbe7dSJd7JlPFOZTOb6TYCI00tNFgjMGU2sSVA+kMSVIH1nHtbYkuAi2EIy22CBbCHYDjMMCCEsQARaCdJnemT0S18S//LZ5tAd7AhYjwMir7cjS7S0yFsxguGgdVHK/s1IqJjFk8hC8LHlWopbeDeWqxK7ooHYq90nqoq16uIsq5MK+SK9mdgyK/bi3EgxS6XScOxfmYYPI3h - -Jyz2ApAS/AS2Py9OS9DK8hIzfEE3K4ECIFGNo6b3K7JjZq6V0KK9flL43tDr3y3jy55cTQhl4q3eAniAl2BKnGYxK+AS1epEnobZ0h3XWtc5OLZ1RN6UMniDFeqjGAlHM7uIYcYwS14g98SwzlFXi/UOsVEO0mNWPAiqw3MUiq8GwPPK1WcIvK77MCBID0q+tmsGwANOBRyGsrOCCWpc4Sq4iq70qyfAKSq7nwnRNM/Y6iUiqxYPg2uC3fbfTeW3 - -g36xTCraqJqnsOqJoilQ6JrQ3XTfLhiYzfOqJkXirYS+U1e6xeu+fyFfyiv8w9Jxb3PPoI68M3CXscU6X7Dtya0tBmMwpK0gVOOGGbaGeST3Fp9nNdppfkg/uKjgXXGM+zUaI9CpGvKro+pgDu1AoR2LJeqw4G1DkJxnaoG1mDOkFHlazwB9y+1K2gqJJw0PI2mozZvZS084K9S05yUj+rYn1jO07CGEU9qt7vck7jS7Xy0wsq2ky6w1By9++vHS - -3lEEjK+sILGq0as9hK+9K9oqyxK/hy3Gq70K3yy4TKx1MLjKz8K8qy8DK5Ly+nSz6y98K5I5Ooy17y6tIBynpHilUpE3QVsaRZeoJy0QKw+CmQgPeaJAYHUYKwy44y8Jy//E88QN4ilhWjfloQK9Yy8QK6J4grAhkJWDsFbk7laeWq9GEuhy8fK9OU34q4SMExEPjYsZ4h+y/MpRsq3SK59K/Sy/MpbsK0oy1aQVXK8VK6+JIU8csq5nK2pKrNy5 - -8gLuq+JQYpSwrhGaxALZe3S0pyxVKGLw6ouGEq4uHN6Fu8y7uSxoqyTy8ESe+MNJ4tiK5bqriK36xMwK2Sy3oqyNrY6qoCKy2q8k4gTALxK1J6ZZyAEEbWq6a6U8S8wS0YsE8K2bi0vi7qCDBq9iq/Bq6WS+p7dqGqPyxkJNmq709sz2KPyd9muk1g0yzGS1OS5+qw2mNz+D+q5iq30S8Sq4eq+VfMeq77ru7zIazGpaIsJhsLSBK7xMHIwDnNPQ - -K7oq0lS5uk/aq7fsFzrFBMpty+8K9QKyZc5urLxq7iha8K5QK2zS00gmbwTp9dCPq3ZrV3rl3pU3APkbxZjddP19clMfQU5iYXrIQZXeN9ebM4zHM7vLgpfqriI46W9dfA+Oy52zWt2nEy8FMYDVYWuVwRfMLqtycLdpcMzbo1fTkxQwvPdExufcyu3Qv3XuMTgwq8MZ/Vdx0bPTHfCzfC75q3yvYzDXWZlFC77LjpszSKfDkc6TLEuKN80AC0gV - -NZKY98RiXrU9M+sEgOImgcgbK8Df81mJAUPVhlHJROfkoW0qyMhm7kolaX75fzyRiqEosLa/jM0tOK/vlUUK+mo3YjT6qzqre+hM6Ck8ktri+dODL7pdVB4gCF9VIq7w4ELk7WK7cQosq10YrjK3WYwTyPuq5fgFsMylS4XS/FEBsIwNq1RK8F0HeI8PpQ8q8jK+9KwwcToq7wK4ySOwK5jKw7Swtq8Jq0Sq7ixG3OILgN8WnRIhu7IA3A5Sx/JZ - -RpEei/O0hZK96SEG6EbBdiy1oq6sq/UNUVq1pICVq/lVVdq4Yq6mq+EHXdq8xMAScMWvoNqy9q50scRsxyMmDExnQ/GcbZYI5DYb+l9sy8/Y4U+oRrk5TaxdePu3jKcMHb04N89XhOO1qosFTA77yy9S+8qPHVIDYUPhG2bPFyuDLNsAHjk8wxCEwDtvSZgagg6vsUizY4020q1OXHJVvhGmXkhi9WtFK0dvWwFGqrJ02KQBX82BdBwMi28y6faV - -yy2jG+qsqKArCi0ZiK8se2A+KNFZnHK16WEH1RizSLk7pUATK1uqw0c0Ay0vgPk1KTK6u8FRhOCavKy0wy2IwCzywWq3MKzm7AjKza8ZZICcK+Oq/Oq82uENy7ZiuJq6zS9ty8Hi5tK9Zhhxq3+q1xq4gy53i175l9fIRq5OS1FS1fK98uFWxLlDRoYLxiXxCDQK+a+GkUzNK3kKs+yJhYLCcuOK0uIQyXToJLOuuKBIOiKzFqu7O/IB2S/OChHi - -88q1ICCh9VmK3Tq9Hqz2JLI/szq46joAFW9K9mK/TqyTCnoPaI+GnAOnqwkq/rfRqK1Zdhp7lLo9EnqGDcvcikPTrNnWDaO9S5PUxJTuMXNSwagVfw5sjRnMxvPRI02nJYDuausOOhsoeu31KjPh3SOECpBZNgAA/1PPMP1ENYAAv6NF1KovS8HoLbC97iM8KDicCCBjAzienPkDPOD78jtqxRxntq2D1UPGBQK8bq1kccjS0L079wzd6QtXQFEZ - -twYBuERnULq13qAsqyjK78hb1q8WqyroHa3smqxnK0Yq0KS82q6i8Eqy4uK06y2Ry2OK9eqzVKzMK+ZEHGXRI4KlJu/yzzgJ/y/wKwgU7Eq1GGNEYNJMoCS0EQEietkUhPy6uS9pS92XphqyVAAjHmeecXK+2kOHaFafKvq51/Gz845PFvq1tyx8K97CjNLNga14yrga5eSxJqybqxtrCXNX64YqK08wSiRi8wSpfSRgXKS3omk/C81FqRsU5Nsl - -/Yl/erXRUdi7Jkn/QOHjiMXilUzQDAXBeOWwJmQHDIAKAXKrIE/uEVgfXnnrdP7CpZgbOWFrgp1MbGeO07hRq88SywS9qTHeq22rFgDXYK87Sw4K2PfbZvdv/YzLnStVrVWYsOAoA/8QClXjnXHBmhK8xS6fkKsS41i0iU3Nq1jK3U0mSSymqzdq/KaIBKxINk9qyoq11A9Ry9Wq/hq4iBF9q64ayQK5cq2QTeVqxsy6KQC9K+9HLvi+eqx4q/ev - -lCS6wK1/y9Ky/Lq6gzDMZckKHvLp/xBMcB7lJxKrnwDEnJSqyJHFiqzSq+nyoty5oy67GVSq/ka8Sq6Eq5oaw+q58S9Sq+Ua6AayYIuAa4/Kzqi4Oemw9qPs9GZr3kSC8xr/oora0LUHfVfleHfRxLgCvu/A7rXba4Uc064s6TncrKduypWVEN84AQa7XdFq2pTSLdArgtfrHntNy+VQMLbmJUAMwICwIl0NnK0NR9jAqWpRqGsGdzCZI2MUrJIg - -YCGp4POPYMS8Qa1ubEokWeq+4q+uIcjS+v00TTZeTqAHsrEZIPpGilos1Ya7/S8GMODOXYa504bbi5FK26ywYq14aw6aVsy0CK9rOP8axiS4Ea4OqyESc/hZjUEoq5Nq4/q4aekeq0cSzmOUsq7Ca99q32Pmka6YPG8FhqM1nwiJq+1LWJqx78WVK0xBdFFB7lKtq89q+Ca8qaFga7QqjPMpmqwySxKK2wrUQa5Saxca46ywKKzOK36kefA3ZWa7 - -o8brB+S1aQtb0yK0RCfnqWY7o4W04HBsW0107nUBGiND4li7IsjKIajo7DCvaEI9sttu7Mob4AHpaqwwfSxfFF2jPy6ILrFAgoca5Tq1fyEOcQ3UCBK51IMbxGePfkK+xK4Sy8jS1YMz5EZPmJacd242lpOu/dICHHK0joKCE6XjZlQxuq71S9hq8RqFEa9ca0W/Mv7clK8TNn2qx3y6VBHAaxKS9lS48pWQa9vq0Jq7foIsq1XK90HmqrD/fiDy - -88K2FK/OS4NUl/nMOvBTSzfq38azxK8aaxjy0sy78ayNK/4GTSROcoCSvrcisTK3FS8ikr7K1bqzpS2DK1lGgJq1QK+tKzdFVVK/Sy7Q8/nK2wyzxyzdyywK8Aa+wK+6awrq56ayty6bsGty0JCynS3sK66a8GMqdy72a/hSwmqyia2Saym4lAa5Iig33aCaysq94a8usVOawaa+leWOay4a0VqvbYZ5fVoXWwWeJYljrBqTvHfSTzqkq6xQ4Rs7 - -mjXji+ZqyDkZIttryyk2eWDeZfWHJWW1oWDaCfW+2vea2Q46LFrvUtcg7x0aAavZQeAauV/pkcfknLSwbWXFhjL0vA4oPvpI8XdNZNnUJqcECpM1pYJAMK8Fu2MossSPBtXgzFA6KQ+dDnUuTKDPAJ1jgjAD/zk8NWQcFH+BiQn8HiWmauOSifp86Eijmzq2O0xzqyQ5C5GBYWQ8UJP4/3jsP3PSCMbsvWNPHwGTczdjKxS1hK+7IKVYMlOBqahC - -QiT0ecXC2MF1IGXgoD0G0M/SoBxa+6BFxaysyOQy/J2nxa3gcgJay6AuJa2YS3vEVWZBgwKqwQzWdrek5dNJa8iE19PeMlPJa/QOZi6ffM2H2JLY9TMFF3Bpa6eClpaz6mgZa7dIMmfvv6hUAhfEG6IpIrl7BWOIMUKC1Wi0wFeHYUojtXtmGTZa2aerjfEUi+mFC5iDuEiNgJpak+iJyTKa0K/tLcXjsyB+swvur5ayfoFFgHo+j6CzwFFMZIdq - -OpiVWKvxM+nvLEdlRA+y2WnQvqIOKiOjQ8YFn5axFa27ofGPQGKk8cFVoJHHSdtJha1MZeX6GuxJALIdULien9iGFa/MZpJzMla4q7ZUgkaFsKcHtRlla7Va6/tO5iCdVB2xCJHOuU9dSxNCrdS+xOqNYQsvh/3ZsThmbHmPXBCETYPpKWQVIftcVaflYCcOPVafiiuXAEixHNazVaTiivuFMSigCtUSiuaJkwhoZwMAEBV8YreZKkFTeeCtbzeU - -oQ4PgwqFfN7f9SkqbU+5SOqMHEb5ZBEpbLsSoK3XVuZANPai1a0lazcZO1a30RLHoF1a1hEDOVO7MkVYlgSM0nNO+D3SM3vBQEPmgIMBOSVaSRDX7fDDolpP6Dqx6s/4MeGL8Sgo0pdYO6gEtEh6s+NFfsACMoJpa87gY9vdjsYAK1ig9BK5+6bBK2gI2+QbXAN3kFVc//hH99gT8bhdvRa7z822OBWowFK31zDMaIbndrcGrg32XX9aGJcIFmL3 - -/AOwGiTtYaJb+SoSTFa+uIDycGjrQ0pprIhxAWT7TZuiyao2dSSs3TFd2NveBStqen9Gja3K8aZa9H3VIUR0pr4YDA8M6w/D4CZa6yPZUPpfQCOjjLlNy9Ov5U/3PXhIra9ra5GwHMJvZ7gF5SNZsK4k/YGZ4laPZGwIja/B2SK6ByHAqwJxa9B4Nxa6Ja8m6e+jTUwG3hN3uEyQC7a38RbAGBeRaYk5ZnQLeQ/bRLkHyJlBk8laROE7DefRBpHa - -98tXyq2nAAZbf4dEzhVbOvglcX41PvYMdtyjI2XCDDcGKwA4eZABSfEja47az7a1OcH7a1JRAHa19a+8qMALNT4ZJJFw8neygU4G/eNW2MnLIhqmJJTMjF+sDEsBIq1+KfzbEfOKhayo8yaNdIIv6kICyDAkcBrvhRU7KbXOaNoKhK0Ra+Z48iC+UK3kI9IHN1C/FoNCi5f1arxnM5ZTawC4Axa2dmDWK8qQx/8Xza2za9flOTidva13Irva6pWE - -iGG5awROCKwJza2DgNzazNIV2fmLUBB4D+a/9+SxaxzrPvqjCwrPJFOIClYICmCho7xaxQQPxa1sWO2bS3iACSv3qfpa+ja4Za2Za06mA3cd7wMORHI0AOYMfa5vZt9vjD4y25lIEBeptZa9A68JdLA65h1fzegdIOqsWFa9vRg/0PQSDb7fUUNlNbl1QZXv+EPY4aaIGKvFgtCPa3tCmPayRWcmEMg63Za5vxKr1Fl8eQw8ZjVPALQ696+PQ66n - -NJWcEw64Xqy09d+oWC1coFTI4OHolwo2Yi8E4AFcCiqLLNHGkQgCCYAnsmMCBeytNC7V/awNSXEvJcqMBKhQFm4dK03BiQg+vDrwkuc0i0irxjgCJAmYLAIta3RyXMlcyw0zeVe3oKwU37fQ5P5y36qY9ayw6xI5jA6+YChexGTBCAkWILjYgC5lImdKpMJiVLvaFQKnDwG3VlL/uAXJpMLh/iz7rE0L1mBKvL1ElZtEMyGpZvWM08FBhLPf8g4m - -PrbBoJZh3gSJmJ9gAKxSM8udXja2gSZzqxvMwjjTeRPf1aEOtBbu5ELzoHRa6va9Ta1nSL8CPgdQza3oJEza/rBQQc++cOfa0/a9U2WvSfva5U611ASpa4g6hK7OU6/za+za1vWMRkgk+WWCO49DMaFUoDZojjPQFOM+aOFSuuek35LU674EC5LNj2DrWK/LPDgMbPjl6jkDu9WSQTeTXm3yAM4A13Mpa1/axJa/xM8qsB0pnTGjHYuWEDpa3UJH - -pa/pKuoTOlMJNQTruf3a/qkGPyRTApdkDWGLxmjFSqVeItEJTmPUOih9bbcQHBi7sNexrc6037R+aCofNw1EmKmYpZwtELazasA5KY2q8Va6hUqB/NucCM61EioPkkICmC60UXlvWZeildZd7osffl064c8Y8qb06wQmLs60SodQKa8Oqgck2CtllAfJGLUHZyh4gPxPUC66M6ydml4cIuwVQOBjkC1xpHHpn+n6GiAy2Hoq7jVsCGmWah1dLa3s - -6w13Ey65MNGZnCUitM6x6WAe4HM6+ZMgacv7HLnSTwxW865ITQS6xMDsK6y4WmsjHovK5a5vZrIgEk6gj3H4JPvtGGuaSKDM8DlALXaEvfK+KEe6Oxa0q6xq6+TZjIxGfa6xa/0RGDymXutK6x6RLK68a66Cij1dCWkEK63uIDK60ZcHTK0IQ7Pc5pkpSrYco1yJs/bQYit6k+1oi36B1FmirVyq/Zgzyq8aJveKLz+MG62tMnhEusVV8Izf9Ooc - -ufSgVaRHxEVaUqkPnI1urF/VqjeSX2RjYA/Y/laSW7H1JGq2SJiQ6soy5Ym613+CQ7efK8k1YTgG5g/ywyrygt8R18BVcMrRBlsnKVvdkJsTTKkHyw7GmAKw5vZMjEFvWeELd4vAQ7dywxBJB+CkxAJIinTrAEgFc8fjMBOkCLsEO65vAKltUo9nNAEO6zA5OKvKfkL/HVt3LJQ9frZmIRZy8KJm8jkyA49aw/awv2PCapVIHAbQ665a6066y460 - -gVCZKJy8POGJi8mRAP3ydbOCKoKI3PdSeCg2WVeTk0yyCTJPu9t4cwhQCha0oCz3a4Qo0RuLD0MqcRHUzrQIn3Q+9fGiMJ2ieHqMS8JMz0y2k67vyZzq10s/+leICK4qDUK4gGNkaNa/SvayN4Gva/MoLLE46axmoki67k1HcTLjSd/+C/5H9kG9FW5hBM65fa/B+hbCq41Ls6DylHUZRs67BdEhKWqq0oibh6+R6zknVg6wPa9eqDXlSzawM6/h - -63UZXHuHi6/Xmgow+eeKAgFi62s64RXWLaypNLcFo17cWC5exIzXRysKe6YpoGQcD6sSniQ5uk5saRk7nCnHOpC6zuei2xPoICcSbq8TqiMF0FgrTJqNZYOBYVxCKAWRrYO4ZByiJHzAkjqZJlj5VJRH6jryaKVqd5wLxkBU3DopAk6xe5ANPGKE/b8dwgD+6388S+uCtClsEInTK56+5iVW2RwAtpWTjWBKcDqSCnomfEhGgrY5LB4DgY/LQDE4 - -HnVMiSLyaCZ6zA8FmGQ0OAYoMcKFgWDZGT6EFp6+uIBJPPVrHFyDdOC3uKVPPZAUCICimNSKOHSFr7eMLtObBJDipE3S67M62msA0OMOApiSHFBUGPd2yLCpD4TAbMVZ5eisJoyvDTN9VBJCTrmLPI1RAtT6PURXF6xzpZsoi065Ja48q7OwzKWLYAp/a9R61OzRRjURuJbqsaYp0iwywER6xCcFfa/h/ZSxJHHqQBEu1Kt68/a+W2X+uO2CKkNI - -FNUstUjE1Prd9ZjPrX0FNkaVnFczeQHrWoQ1HrUitGrydBvIuBYG1YKJrW8fHa545klg2GJs4vCpbb3c736HPiGSkIGJjKkOyij6JndDQt8fvtbFulNaymkO266mYQFgzKkMftYmkLGkAU1dRg4v1d4vHbFa6ApAq8VaYMhqlEYdeOxyVTrLAsBSJLALMVaUBk5fPCBkyscyBIr5tBiQ+ikCqJkG61XLcOC0M2f2HAoFd3PDcZpTsY0mnWUZu65Z - -MCg4JM6zzaxDPQd61t6wI+P0OLu6DOVDr4HQiDgSEdPHPyCCEJRjKvcFoOjjHlo5UaI2okFuqRs0BHET1gmsMrTyUigFJc5A+IOCIrSNHqC5+rJHLI/sMRXnVB9iMjS8Fs0UhfC2Aiulaa2Tazo+NXy3cTVcQFTaw1y0L7c79Uv47qLO06zva9SCdLI5LcM76wfa8zax760061sIJra19dP+0SXa27azjviQ6zg68BrsPbH769yhny60+CsjUPEn - -QF3MA5hsUf3KVUbBJ606wyZlGUOp3JGz2mLnmp4HLcvPSJb1N74KJdNmmW/a0fCO3gp+5KyfbcgoSWCEQDTOE563SxLTScH3RjMONXkFIFqGYvDX/ay6hFoEn/QLFgKBIula3rg+F68q8JXVrqqYhzP8KN/YD4BMqXWA62/wJF+BguYDiUflFdJF8cCxvLcuMKUrXZFoPagoGellICJ/sQ22aoIbtMCY7uKrHha3rvnikYlM3r67F67garfE/y4F - -bgFXvPDVD6U4N6/r6wf69mds6IApmLgcNTMJEOK9xGv674GETIOKrHmICYS5G2UBIw/6y/gU/64oOGBdTSc2CkFscwV1JYLVxbJKxJyiqjeYaMX1oiZBNUGO8kKJ6c0RHCNG36MD4ml7Ua5PpiaDvHidBDGCxYLmDDQU1n3VvpGX6NAtGG609Lr/2CgsOsyszCX0gJsJlVmWGPcbS0i1SiEhGuFI4BQG/pic8JP/fla3bC1eSUPC1eWrPFg6akFm - -DKKJhS/iADWuy8rFA9hMxY8rqlmauZANf62/6yn6fcqJ/6/6HF1oD/6+Xa6/AozsizQKEAOFTB2Widair+B/8sbFIRodXEcKYsEvFHeHrdCuFMaE0XlvTRisCFt3aVeHJylmsus9rhayYQPha8ucyBC0a/cvM2B6xMSxRS2Vy3y5S1hS66HEnEiFMP3HY6Vb67ykZTYLb69alrgcC+pDeWph64scNXCIHEqR66za5762hrfLa0ba4pa4tgTl6qgU - -Hq1GJ6xg0HC69haw41DY669Qig68EgsM62p6yLazflo862i6/uykrToZ0ES6+YtNBA/Yw8+aNviLJBNuqSf5RxcBiTG+Er4gu9APp662YmTIEZ668PaAE+uGSs3vqs+ZIDszDESinYPba17ay2WP+kq/a1gDWwCLP+pReJ/Ej3kKh8NLoujcRs0Ik6xyCaPY5ewQVmiPQbpU+OGT8El7cGpoAw6yyqcZuq3WOJmc3695a0nAnvMINJIydutcm47G - -ba8CkAF5dPAG366la5lKL5tOjEZe+N56zFEM0PrJoEiqLTSDHiLjyqqID0G2hxAm0AE7MozBrsKe4pOZfnazsdLqKk1IGw/j644g1rtQulSG8G9QA4CGzD6pUgkB4D8G+9HJ2cQAIJ44DtYEhNEj2G+zUZYFBMIrYP+EEFUd8qqjqH/QNyIAviV2uNW4LU9lTqfpwM56zMG2K4Hha5Cid6E0mJA5a7cLszkJfwH6IENgEZuG62pRa2s846IX5CQg - -XL7ElPiZ7UPwTBpjrbcV+UpCJAMw+7iCBGD7LCTuKuheADKkG4bA+zta05QBHRUbtJ60cSY06wLazW5mFmKyFc8KjALChomN69s6/T6jqIDuOK1MtO2V4RE869pGqtWNHEqZHeCcAT4FN06OKhZay7UMqiCo0Nb+JM3PKvHIUIl+DDQOyG61uCo0OmshU+PHBIqiJi6/TsNi66w0M2LjDkGgiqm4ff+F2BIRKHcSrngcGSfpbJBSfVrM9ScpsEUG - -9dwB0JqX2r/5L9UKx7tgkvWwOqzL58wU8tccgGAn8zHnPiOcfjiPRsJ+np3xCYQLRtet1bTldGGwJ1IMwnofNdaOlHPRIGM8FdwPEcNZYIGrFg9du1dyAhhrGmfgryYeEAJ63ScE46JgoM57hTULyM5aHE6G87UByGzfxDkibOOCI4KVq3H69yBpxGffDrIJMLa4p2CfkXjZAaG20OgYE3ey/bCoVjMQg41ePsAmrbucMGQYC+UlP1DWamPHD/8f - -R61+NEM6+DcjRWhNrExSHNmA0675mi762jrfKJOzycjoi2irCeBH6zdnGuvD9zZNWP0FuCgnyG6jjU6WAMw2t3QtKHHnFCq1iJqc6xQwGc8MWXS3hC1JI2U1MJvx68I3ToWdwKwy85xtD3mMpJhdJhn68+ugIpJ8glnnUUKE1wGhWAYgvUG4r4buZsXgX+BGBdLw/GtUAIyTfa91rDT5JfhuZpNgaYwc7qORBKdE6wZ640GxynttNXwOn3WIVINJ - -QTBG9VPXBG1sgrp4wYMSioBo8GQJDPFEolMwvc5QlzEPLxAplBTlLJ65dVHQyTCJnBEIIc8WCisoM+G0A68ba6lJjBMKxEMCqUe5E3TWWxAkYNL7R1cxRihqG6Y/DpMjmxAa0IJRFPjqwAulQhiQuqmRjAwzIHTQhBKM/WEuG4/6lxrrYJKZEac8AexNFmGUWt869ReI06NtgZIinasFSOMdDki620Ehgaed8hmAm2qAM8DjqnXJGyG0OGy6G+d8 - -mhuMPNIWopsgUGG0V3OjGXhAq7YiRTFTAtKSNaOBAGgpG/mG+mG8esgWLnq+GuGRZuNlG3mG2mG6qESD6iJdDZQuwK+cGkxwir8YAMK7YppdC9MFVG52PAMGx1gCWxN4gK7YjbErnVmHBP07FysCraxbSEk8FE/X0ii7XAokNmi9qGjY4XVGyUMAtMERAM43LiFtPvCVG6mG5uwKqEQh5D+MPu7LDs0lG3zFAWwAHg28IKULSXlGaG61yKp63OGz - -C6wIzJtAJIzqsEHxmEuYNw1NTSI5Gxq/C6BNy6+YsP6EL2KiH6/DVEGa26qMsoJS8jaobUSv063h6xR65ga0mxO7sCeUBdIFJayJ63EG1t5aBq5OYuaAkKzNE8FJGx9iNhiiwbNCAJ5S/eJeegxRNoJGwn66ObMrxO1AECOeorJ5lv3lUyJGc62BG8rxKj1KVoBL6GUCKnQlFG4+G7+AMrxNyIKaRQe4C/AHtlJxG06TAI2h+A+LQIYLF6WKWvvJ - -M13ld2NozGyLibEbJaQIljsseD+mL1pPm3N88MseHY1YqcSHYfSVPiUELG1mXCLG26jKz3SkbGKIMruJfmRs0y0OlzG7KJjzG4qcdR5O00IKAbuqWTG4OGxTG5fhiyuOj1HJmcNWLwbKjG5HOujG6iILnLCDItGuNQdIGXn86z06/kG1bGxO8LiAm2DLOpZla6tWVgGJ/sErChLBAb7X1CTqQ9764qG7mLhAJDCAoSPj4imx6z9G4x66iIKVVEdK - -NS5BrjGkqIc62PVESgFLEp7AOgilRoRKi4kGw3M60NT0UKWyULgOSyVx61UoFaG2bgK0NVOvHNbJpYGRA2zyFC6+p64KgNSxP+vCSJBHROEUylWOTGwOZE9lF9+GnfDcjBVdTCnOy6z6G+rcnYkA0BMaYsoSvWGxZyJSWIL4ApwrF4ItiPuhIsaEPG4aqVQQPpCdSxJHqLqKor4dwJKCpoUGxWG8hXV7kgRLBVEDdqQtG5sCEtG+rcgvG5EUh+s4 - -e5WWG/u9NwCJWG/iIBvG9tUgm+cLrifG8S63GGwbcv6IFfG0gCGbYLV2TPGwxQpe4BFHIR8QhxD4EIDgq/G4RLu/GwBXYLbNGkIoKV/Hun68lG1tGyngaUgAGxIa0E2Co6Gw+Gy3GxFHIHKxlEp+4DCbcA5JkG2zWEnAsNwGb1ATmDFEFnZHyGxcGEQWE08/RdGuOIAJLVLNgPuTSs9G9c601rIjddW2Th+DayVMiInG8WgYHfnpoIDImrbmqrNC - -7UeG2R6yeGwR69F8KsaCetPP5J5db7HRz6yn6/ctU9lMjC67rMzvMvax7G4okF7G4Y1dF8MBIKYLRU/IMAvuJp4WTgmr+G+6tAp5Ax2KXKj2rHueaUG0NjrF9CUPFRvISpmPsP5CcBG1VHKBGw0WBBMHl1CzOJCBLQQl6XfAm9M0E9lHFyDnntN0HfqwOGw4m8OGw+LlG5FZFjJUN3Kis69zG1ooEoPL01JGZGk8otkFi3GrGyVDWbw/iIMEm4hI - -AEmBNi7FM83G44m/KAkxwQ9kAMgG6WPBWHom5e4AYm/KAk7ACC4JWGABkMMJqom6s8HGmu6tNZgVyRn9IEtPTJyh3Se1kQ/4PKApvRlhGt47Yz/TEGxLa3X0PKAkv0Fy8URAhk00LCo7AsMGFDtewK1R64s6y/cSUPM27qo4emShMgk9Gx4QKQ6xoDEAkEbChGpAsdI+bvqG0VQIaG+ShEAkCb7eZyIu7Ig85rjB5G8hLF5G2w3ZFANkOFFaIagD - -rpjlVi6SEFG6WaXpoAIEB/xGR8QwrF6G6s612G/UiHhi01ZDjSFJIWAm5tG8SwNtG5SIHW+dgw3CjjymvS8afG6nXshXdb4IAnDraGOkddVJL0DGG2vG09lL8YwyoJAIHdyzvGyEETCoNm3ZtRPERv0FgWfeNG7VGxWKvVG7bMOlTNRKDA4tiTK1G6ra4NGyD1HhwAgpKkCJCVPa6wpiAe68krQnYER5MprROjVxpNdbsq65q60a61eLn8Jn08MO - -sPaEZX69VCqQcBYQIv5O7iIGkBjePwFA9y9fUnra1t0CprTErgNODYjl+xLKKxoGHrGZfrfWEgJdGAoGX650EUi6WQVKsc5rWJ+5KFvuYuJaWLBDdWxGqm3gxKNAJ+5IqIHIRF5YNp8eQsnKm1NwAqm8gkCaMfc/EQUDnNDviiLoOI0rOXBr4i/QLRCWZJMk+qi2aetha649AFa615ZW22S1CFd6Eas1y68PLA9G58oC/QNCACfFmGQGBxBuoRNG - -5im1NG0mwC2g6sZGM9AgIPCm7lG8tMyWiQGst0LC7ouCm+WG2fG7l87HTAuqS3ABxGbcmzLazG+i/QP7SrseLOhRJhfS7oFG6/mMFGzWCDADLqcSgCIFWIdG8C6xgm6FUtgkK1uG5kNvxkxKpaG/aG0QmwMcNoVXuxIyOIu+TkG2jecuG6jpJQkCnwqXorXcTDzJnGz7yNacb/uFvuPc3Y55eKG41ACKFM+4FSrKfhAadBRCA3Qlba4Mm5qGzWCJ - -u+kBONp4+g9fpG5s60hKYZG4+0AIEBDUBJAZ+xOqGxem+09Fem8WwDem86TbsKEBIw/a5z69YaJhYFSrK7oRYclMqQPAqqQLt61M60mwO1YicsRms2RRM7ay4MnU6z+m6Bm0YGwklCYG7HZMBm7Bm5+k/oqWiJJD67SitAq/IBBj6zkhAyIw+dExyfXsACYMtwBMKU2sChRH8RXAFTFaaN3hxjJAG1o64YsPfoRctUm6xNkpoven2kuc3OWqi+Es - -pB2E5WExVdjojUuc1xm0rTjxm5ctS0YHWE+eozWE5jMKDGgiSDFLdJpk6lHONEwG5K0id2b82M2QK78o0G+pyWRnMZER62mT4pfgpdoGeQr6ot1FNO1kO62sNplUA+KKUGDwfboCJ5oxQLPpmzQoEWm7FcYpm3KYX/QkZmzZm+A6x+pvEXFpmxILHOwPZcEWU6sgOg5tVPe5m5JlIrVJ8LCFYB5m4qgH5m/ccAFm75m9g2k5m6suPpm5wfUck5Fm - -yQG65m13iqvRGFm+kSUAhD05fYYNa6KtG7sxRc1m3nZRpBvWPuxEO6xf9qgGyjkyQGwVm0tPUVm55m3B4BdgMnK+gG7QSgNraSlAR4KRtBL3I6kOKIPVm3IoT7YuElfVmxuIystADAvrNN24AUgnmE+eLL1m2S8P1mx1m6LaHHzE3hNtwAxmCC4IB8svhsVm5jdHQoizhFpm6ycaJfIFmGf9NOhh18EWtnPI55myIjdeDFRNEO6wyCCKfpW1Plmy - -gG6Vm9eaw1m5v0DjIGLFmdm21m3Vm0O64gMBycLdrJdm3WaZZXQDBD0iJkgC/0HRCBNm9ImLUBFgG59m5rKdgoB9m7dm39m3iior4YDm/8yO9myDmyQG19m3iSAmUdgGwZeBf/CDUC1whA9Ed0jDm59m4dMNDmwDm5Dm2jmxuIBjm+Vm2t+E7UCowLDm3tGpDysQG+Vm4zSGqkNp4PgG1s+hUuDd8Plm0d5NTm4FavpiXTmxrSDTm8Vm0zm9j8Az - -m80nmla9ObLtmyQGwziEJwBVxK76rzm50gCqJslCIpm8NOCeCgPIvSWntDBFUIp+pplrzm/nxD8Ns4YFLm/6K4rm0YGItm/SyHw+Poiui0NLm6rm21THtmwomFZYGrm/rmwY2djPXLm1tm9V0AsIyewIpmznoUjLGYZOnKKQG7bm8vmPbm1QG7r0DydM7m2Tm1uwOdomlm7hqF9aMyLPgGz7m+Tm17m7dm4HgJflEHm5Dm1PMq7mxnKZ9mxHm4gi - -lHm7dmzf3EXCARwOO605KoShBABOO63lCboCCCIIJKEVEZO61nm+KgGqgGuTj7Uja2P9KHlYMfYzs7NOCIngIaiGm8UO68aE9qWAQCIlZRiiLacZYpD1mHtmwu9Koyptm0Fm0tm+3m0ErQ6gKIlO+4GBMB3m73m13mwPmz3m0i1ftmx21Idm7zm23myPm6tm8Pm86oqPm8vAOPmyPijzm1tm36jhPmyvm53m0Bhjtm4Pm2PmzQylPMqqWuPiE3TM - -Ygl90EJtKRhMMqs2JhG7mfm0tmNu5EO66c0gcoEbmFTWrJyKSoKLUJt6Lfm5orpxICxIPnmw2pLYglaOC9BBtGiOVJ9PD76azm1E4PTm1Skm3sOzAWGi8RxagyaIFmBG4wG8Vm6o6SVmMTlhNm00WBiSPOgnAGygW+BRGgW8gWzN8bAW9OwZWWNqiDazHAW55m64qK4WrSSFAW/Ba/z2IQW3gWz7yjCrC5xNQW/QG1QW+gWwwW3QW+gW3Nm1Nc28 - -hPlm2wW5AW75m4yMfNmxwW7NmxROOwW+QW562FMqXRIPwW8QW9jGf/7Qtm/lmzgWw0WEQW0FmztlmE07oCGlm1fZrTaCWqugWwgW0FcvIW73m4oWyoSDNm1tm8TbCKzKHcYfm7CSJzmFUAjFE/piUxcKh1Ebylpm6wDGhWoAW4XlP/m/YW0us44W3YW1q1C4W7YW1YWw4iC3m8Vm3X4jGSIqVB5II2mJy7L+mGKoryIBCIvpKVrm3tm3L3e/JAwZ - -lEWxi3a+E4zWFEW3iSjEW0aebGkFTdPTM4TqOhoiJ5uRHD+1BVJLKhGw4EcpI/mT/m6aCugG9/m1jxL/m6UW/7CiNIHSmH/m2UW60diUW7fm1hYLbeckJiGDOZAMT6Hgo0kqovWJOqJ+m1za8DoLyIEe6yLdFYkkKJHe6PKABheEmjPLdK0aFgSKjKM3a/e3ZVwEB2srkKloEYi7MjFX2NReLfsPYhLx5Z+ajWIFJxGhohOceHxBM8MpaQu0xPa4 - -tzVPa6WNJXOkL8JI64Gq3RS1McZr2TjHUh6/9EGva+/QwnK+h68v4730IH6yJazh3IHG+zawPoG8W29yZoSQqG18WyZ8C+G0ra+eYDq62xa2a60YbKw67iQCaVJ8W4fa5oeJCW6fa9RiKCW6a63a6wlSPCW+kG6ympQm/sPBGAkCWyba1qXMLGz9YawOS1LaqsgZG8x6Ygs8QOgoWHTTkNdXsXJMmzg69wkDutX/iLDJuyKCWmxy6zW8Lq8boYL/ - -y9OHdfayEYBRG9UgDYVJiG1faAam9f08SG9QPjUGzYVGyW0hbchKB5awUdX1YkTODYVIp66rbpFuOt6796YdgDtXiBdkM8WHjCvHM7SI1qSG7WPsGjsLImVTykUmxCkJfmVirDMcTpdPZVreRkDXgt616kFmG+B6piW0VgN0EpAIMdYJcfA6HnaW20Sx7a46W8ja9eOdlwiWuaDaPuvdvwzGEcWE4Vgx0GMVgyykNAG1EirAGyI6/TIP0+Qo67C1 - -XI6/GiHVZIo68+MBNYchKDO60ZGhxcIS1Wlm7O69TMEBOEkJMWw0b2bJEOMFGdMGRxItwONq0RrJly4InfoIF/mzcIIjHZWWzO6/j8ifXj4cHaJnpbZV3uU/K3q7BfCqq/NqAf+pStZrQUIG9SW9g6/DVG6W06mD0G06WynxQMWzOVEgWJyAGDwBjihBLJXOnaAIztsQDUZRJtNThA/DAA2gsnHZsvcha0CmzDfF2ZJ2JtSGfxZgm2lnRLsip6tZ - -16w24PBEBko5Ec/37eMS0CcymS5RS/EcxQ5PaIAdgIhKxXQO0LVn7L8gIU68h68U6wVLBva254y8W7ooDCW2AHAOyL164KSDKVLcmwEm1EmwQLtVWGFABqEBdKpk0sy6zy62Gm4LXNHTA8ULZgH06uCGwCGzSRgl9IhWzGrKhLJRUCP61N6w1TH/ikakdQJCZiX5Gql6116/4NAhW1YNlhWyfWDS6RVgGRW39URRW7PNKvjNRWyfQKRWyeW+RW5+ - -k3IQ8da/mE/fw3CcDBk3ctc/m4LhFd5LC1VGW0XMgmW0uc+jOCm65m0DlXvCfWPTSsPh43BE3pY6+kAY9a2gm4xWwyipfzBhILRW2xW/RW4tUDOVNTEXToAZpGdPJLID8AECEBXI3YDuUcQcEw0bS3nnk+eIRN74Mr65PgIyG6YcDSaUbuscG8YrvXCSz0gP44bawpa6oIXQNEcW59wycW2Y3LJyWM0YNyY+izmi2KPWmKj2laZ894G4fM5RdNtg - -1Gq11q3uYEiW7a6+i7RFbpiW5AJJwm6EGz76wtbN3G4J6/RBcIm8Ja78W3bvf1G1wMOgXKhKuLa1KIDwEtn6/qmzWgpXU8J69ba+crLbawnYC5W4iG14ygc68pG1ra5Wsk1W60Gy1W6wyDiW4Q04z9Vz+LWE+t+CJm7C1dQ0rEmCSFnCNFv+egioMCoFtcoRa965woaFhdwoeXVqCTF+posQBC0/da5J5nna51W6cGwcKBEG15WyCbWOW+8qDLgg - -+6Ddpg4kpbOLIQBOmL0aJKOB4AT7U137CeGttjseFtlOLakg/QGfaIlsumZLu+kLa3e4gwFM9/RpW+IwLLGgiHck690ywHC4Xy8Bc6mSw5I+6I9TwFCiwCzLpbGEU9KUq+HlFW++iyXK9DUr8nZ+myImwVW6Wi71W9a69u63q65XG+gm8dG3SGIBW8ikMjVdBq45ayjXZ5hHP+N06+i6/rxOam/l0MsGyyJAaW1kMhCkIdsCcFZSxLXXftmJYA3l - -rPYbpsSdF60N65f65SSRzWwj3CpxSxW8eW39Wy9iyjG42U4MCsEvCRW8LW1gWNpW21hoaW89UGqlg/8L9uLJIMyxIw1PTW/yGwgG5XxMrW3mfQFQP6HuaqTVjGQJrW60o4Hj6/OE6T6yykKQcBLQpjdL60mo6yH2HdoBWsGGW4tiJAhCI62HgFNW+TJuikGf3dtUam69haAXFWltVG3C6WRzdG6WUViH/EFKNYhfBu6yhAPZWvLW5rWzRAEFayrW - -2ouuNJIL6+8qMZiOAXEdPISuJ/w2pQOfpPQJuojY+hjK/RAi+bECxrOrdBDAr1EtHjYcJsjSI5qWZ8gact6clV3CdAsT8Lra77VmKm1YG9jayk6ytg3YG2UK6cW2Gcx2jDi4sqNIBmsYIvZhjO03DW0U63b6yJKKyfOkMYlWzu69eG1Iotwm19Myza4za4qG8DG7N60s6776zaEFpkg9DP3855Wxja8CW1OCg7G5TW81VSkG+umyzkEVS1q+DsyY - -F2Osc+R3F7BXvWzuGzTFrlEMWrd6SFWoEpGwra+1W3y653sL9YTIYFxUgs69/a8+mz8kzV6wK63V698W0Ja67a+8WwaqJhW0xW5fzH0+GOm/86xl1iFBAMm+/W6SW1z+q6W4jPWvW8A6xvW6sOnA2zO2mfW9uG7PKglqPOm1trPZG7kG6Nxp+AHdaOLW+g1hpokH5PH6xbG1PgI/W/S696rcI3okm54mzocQ7BZ1IGlESaZfXijlG2VG/0UASmwN - -G57UNLpLGm7KeVCTStVUuYlO6I2lpHRK1G5eQx/a/e5qhG8seJRuH1G4X60MG6C4UA22pW/RBcI2+/a6PBPaGpHW0EyiFjsd7Uo23KkwkGwGiCVa5OzG9PRo20fCFo2zYGFg2/mCIo24Y24H0eohYDLoKHdtE+52dPrVYI2d68FFQvrd3sKvZMdojsVUeBaTwYj6+RycnKNta6RrajefjeXtAETcdrm9i1fHnfx7Xtm5RAQm+Vbm/lm34W7Hsz7A - -IEW7OjZLBEABpctWeCE1ESf+Uo4GRm8jeXlaebW9m6xjeaRm5pUDwtZx6ajecBCVicZuc5ctRfwCem0qMPnm558X82Kp4PfbOEuI2EOu8LcCUFm3IWjgvOJGzIW5phIgW9oWyU/KkPa0WyhAOZG1ha1nKD2wAX64MG5DUPVhAnW7UaBnULvMvYgOSVTgVr6tmqcDoFa9THeypWYxPWYn3du+VJBD0ceTKKLkJUglClBZyNHUXmIIEmP0vI1gXkZi - -6oI67LXcf4CMjS6Bc8B3MTeAZcTbBKjSs3mEGqI8UG+W/cW8U62E4Cu09io1va3eCk3QWc0Hvax82zlAF82/nwH+W2hrQBY80m1KIK0m8UEKPW9jW4/ojDG/cgPAlovW/fW/76yfDv4m+rG4Em7C25EG/C22RG9yW2OuLyWzxoPCW2VWtB8LzRJ0poa6y/6Vl2s9awFa3BQoxrFeJC36z5a4lSiS25Fa/U9Q1oNaW1fyL0Klg2zha7aIJruk2m8W - -gQ2sB2wMy28kG3W7genHTAOgEKi6yS8XkG7/DA46/DeUHaEO/IK2+A2/8AiOIO365V+J36yo2wzW47tMTnniG8O8P2iVJAAq2xrW6/wE2jkv62qPLryBq2z+G1q2yeIMf61IGuLGl+Jqo2wo/jPC4HaPGAtTMBIY9+G2om4a27hIA46c8m5MqBjIAQ26rJk1LqYG12YDEidA7HzNGEa0NAIQ2x628Zesj5r16vTeNRMIA27jW7/wKPlVw/Mq+NtH - -Pg2xkG0dG5G2z5kMa8MwyyhNHUuvUcFXG1kG6PlZh5BGeHdkFWsG6283AIG21m25aInwEi4uP8K1gUAG24VnJ622voLFgDECt3BnU+Wqyua24q6x11b+GbW5JO6J69mA247G5wXvw7Gd9bGxu9oFLTNy2yOlN225Y4BlVksNly2zo2+C67LqCGKMnMcQwNblDh4DbyjS2zla22lNO2/i8BEbI0oPO2+Fa61a4O2zFdKufEKhNzgdi27Y6yg67i2/ - -diD/pdz2Hu21RghqG7R66EUMMLLtrbKG10/ZZMFjW+CW22lGXXhzyNKWKGnZtFa/HTfGNv0ahUuMihe29ORK6Oc4i4D9XIwEg6zoSEBW2CzHNQCOYOQNM3A/6mI1K7xwBK61VI57gP2IBD0Ac21ZrcQLVfW0RW0girx+AYZPY4M5IJFmBVmJOVpxA6qy1v4DGxgzGOSYk0YMKxe8kIs6lvuOi9LaG5F3OoWgso5OYLXW+FxCIin2KH6GxFEEcJDa - -yyeoFtW6suDG4sM6Hi3WscppULyaN361cXShCIYQdzbBYchkRPNUeTCMrW4LYmbGhzlDb1D1OPjLOV8IhUA16xHANtOk8TsaqNEWMArQEYIrc2Nrc1Yg36zRNlLcpmBDRZAlgJwYLxmCqdpWsJAgBK4KXikdNeCYJeY6K2yD4ixCBdtTQoj2G2pmHwFPOaygFR36zEeP4eAQEpSqmNiNUsbrYF8GzCG674H2vGbqkgCJoC3C4brYJNHBlwbC2JE0 - -+k8wv83VQPimMEfRtgDq2x91pu4IE6L7xd2DFoNKDIlhUFv60xQnikdGvvSzCULni0GNdLxUPrAC5g2I83mMnrAAErCICGNdEstsIG/bRJG2UKi1PDNV2y7zP3y7xUJr6yHAJlHMfYc12zkia12yuNrxUE62/MkOVJKPm8RNqvUe6OnAkA9QAN2w6cI9eGlhCN21f4AjAu1LU6cNWQLxUFymEyG/9oK7FIE6KMyRbGKdmmyBihlqFYkFukbqMjns - -68376kTyV+tTcUN62y8aGLtRo/Me1o5WJNBDrFXcNUuKXJWE71qlgCgXARXk3ei1QLBYMG23bSLdHIQoO0CXvwCyKlTdp927Ded92wAIMSaypvNtE7PBt7ArBYD37J1vOAiEcgcWuN/TGqiFwGeJi9G29yG+1soHMGFgLrWsp+FY/nFSObAL0DJwA7tIHzA3+BB4mzFG02YHj23twUKRm/ixeJt5dPNZAuNct2zcUOT23NWJT20T6pBAm/iMV7SX - -zcm22ZIIivI9XHdlLozHS0rNuPfG02YJz27sxbTiva5cfIWWOMjgFEoi8QLBYNm2/O3O6xB/yZ5WkRG2IcDKYnyE02YLL25RKCuYuYOH7iLx5Ge4mPcWAQyCXScsVFyJhKXvDJFyFhWjUwC/Q/SXOr2x/AMRkhBKc00ef5DTukOojW2+jot3Bo+PdbC50MCbNHnxJFjE726226OsA6Prp4xFKkiQVoHt72yKGyT6D9lFIpsLlEuSR1G8WYMH28L8 - -KH2wI0Mc2x+aEW8IBvnFSFb20b2wr26sggn27gcBbUNa2Qb23L25r2ww0Jn2xcINn2zh871vToQ7c4hVaYqBBAOmTeflaUqGHSiOdEgKkJAiNLnQXTYd3Lw606xFJW5ctfNQm32wOE0qouU2wxm6NiGU2zuHn321ykPvgCqkP0yKtCeVWTo6xU21o61QQKckFP25ctdo67P20P2yC1QP2+cteP2z324P22v2yv2x5iGv2wv24CeJv217Ahv25Ame - -v26v20f21v25//kf27v22P2xf2zP23v20f20xm2RwkmXCzQlFUGRAX/1EO6/7xPJVhcqI/28UwHCSGAMICLSYQPXgA1+CUyPnmycchE+fVmGPTLnE4juAbKuAOyeWD3iMNrLmW5SADfgLmXYCfOgGwgO8BhGKUAxMUi1SYgqyvMgO0O6+ojAv1WpY4WWzh5EWEGAQIEM08iuDIMQO6K6/nm8ymgsdGYudnm+YuORMC6JlQO+0YD7UgShLgO4EgjY - -W4juFQO8JwMYqZwO7gO5OSk/5IEtPVm6gOxn6HEHLmW2zzDloLOip960i1X7JgD1OsA+AO4pTfCpG30MAO0Eyi021v0W/23UMPY0L3jvVm483I9rQ62L+ZCLHXZm9Zm1Fm+VEDFm4Fm73mzbgAoRCyxLi0DXm0uE1Xm6eqvhQkuBJJBAgK0Fm8T6Figkk7WLpckVpDmAJCEJoyQG6xKEHLudwMXm8U9qEFLNy+O68MPiDST4O55m4ZvNCVGRYM2B - -prWPviKVgdO674OypanyPnnm+nm68dZ83hHSfnm6BGQsoKv4Ui1Y4vA4QLCs5QGzuEYbpMilLdm7VwM/OE7m79m2Dm97Fojm3N9VSRtIW7zm/f/kNjnTG3E2xli5tEFYcUFm2p4jsyakU19eCpnF45i3mKWW4jTSBSPi7dlmCNW62HShaumSkuc2Jm6MwTC1ZctfctToYFJcrxm+cGENWwJm/laWx0gm67m63YoDNa3nSIY68Vabk1VS7Pk1SxJV - -JmxgEAsYIpWz2W+HW7n2xr2zb2zRAJw0IX26c28n22M2wn2NW2FUnGLIGwEKeHHQxvoRfbkGaMB49kQVPzJDSchvTHZtGOgri8VJEEwOPQqj9W14CHhWAk0kokdQWCS8UotA0LKRS7BFUiCyRa7BK2Vc2R6AFWGjSbiuQJTFecrmS9b6xlRGva9kMmg+sBm9z62ptkSO+t6yQSebG/kNDbnUVa+O2/C63BaWlSRSO2OE+KgRm24p2M4tVA21s6x/ - -W8GMjmm/8m8UGzg22IaiIgNf5Znk7BWw9G6p+JxG+JgABxORcbq8X0dimqVTYqrpNw2wbALw23qGFx2zYCb/a9u5Bm+UilLyaEqO20GzdJCMvEEKjWWg5uuS2/zsGGuoDi+IG8qm+aW+8lIx2+NZnz0xwoKl65FcTcIOqW5IQv/Wwo2Lu2TdOOlwOiETB2+a2385uCO8J8XaO8myAC22/7aaW4EON9Efu2xKG2w6y8xN36xFvsVwUoBXa28Umxa2 - -01QD0GxhxGANG626ObJxGYeuPqoBq+J+2hnq9GO4zW0228yE9OhLnyGX5idsOYhAa27GO8cxHmO2cnaUer8s00a/f87B5Y3BjFowFYDMcwCVfaowqq8uC27FSltXA1HTbc2pdok9SraPrTY21Y2+ZtUKHXRJduGT2OVM9UKwzM9UY64OkCY6zqJkKmAP6Agq1lg2Fozlg0CIyN7TeVPYo1IK9XHf/GYbXTcfmmFAHxPqyH4ldErjnazxVuZAAXG5 - -q2yWOx4HbFCAz2gWO3bAI8Oz8HDgVIyFqCqDXKHGgHXKJlAFtvkUQur+N/tUNgEm8VZMLaksgPFU8uXsKCHhsjPK68JdDmO4LEal6+VGFWPQ24xBK2MS7YG1eW/YG5zq7jc571SC6vonGYa8bbYy2MnnI821ys73OLwA3Ta2pSg4DQtwJSOz87q44W8W+VoFKSf8W7CW8thhpULePbQstGVm/W1s65e2+im6BGHGmwqOzBHi+G9rKnqm7v7Kh8If - -67fqMxO9YrvGO2GRImO/jWwe2wy2N9DOf6wA4OZvGSG4y/JCW0BO63Y4M0JCyLrW36bABO4JOy8rCBO3S0g5mlA6wJO8PkIpO+isKBOypO8Rycco1yJg5taKCFKJkx2Ylg8CtVR2XG1SsVYQqASlK1rOZO9pbZpbdh4Nn2SZtcrVKDVewFXiWiAgVc8J//m/FvuO69BtY6+KG7Za+pO9HW0pO0SrK63AdW7UaGReAHpc6MElcOsqguOZSvisGBDo - -s1wY+C2qZYwkDqAmAkD25J8Eh1IBk6qiJNuBZA4uw28VW2qrAxODhO0JG16hGeW6BCxeW1BO0iO9eW2Vy7g8/33FyRrTmIymfnSlGOZIqx0BfDW11C73OEWiVhO7kCSRO6762kgr+2zFM+Za/QQc+2T1O5l+DM69/Wy/W72FXhGw4mPTIflOwn63YxI8SyTW8zkMZ1iza3/YHhO9WPNlOyWxLlO/SO6Q20tOxImkVW6tO+rawTyJNO5HOtNO8E1Q - -w7ZOOysc+UGOyw3fEKuE9EvIhXaW6++jfXhB3sLa5KC47/K4HNXohVx41gkv2uXHtpLXsqIxYcyAOOZAEM221G2ra/q+CEG4tO4yO8FOwn2EuGHilYUQq0aBKALq0XqAN3002SnToD/7tSknBwuhdmuJY/krE4EuwEtZfVmC+EdROzR676Oao8QFOzqAk7aiB6zYG0DW+B61apZzq8MPbB8Z9Mwm80fq71gbZWHOg3cW+hO8ogCMs4769E9Wg2yz - -fIpFMROzeG2EGx4QTQ26T211KKSOyPbXKO0lRmA+Rz670W3t69TWxFvjJtP+QTN6wem7ROxt6yqW/Z6wxNKN64+m606/zPdJOyFa2rWyrO/PW+N69aO5pO8pOwz1LLO9/a/LOzHWzrW6Fa9rO3LO7oRKbOzJO+bO5+kyVaVztGVaaRm0jeSZlHxW1laesO2pcJsO6h8JxxB7OyOE+7O3ABJjeWiQ3tYJT60VOVFLTQWKUGN8cDa21BAxPQ4XfQeO - -+HW2yO7jO5VINbO5rO1xU1eOzN7Msqui8uyABeHBx/Mb4Pv6Kr4OcYIcFHAAU0xZ8o/ozB+yo782jO3wm/3mbbefqTeipNlW3ScIRXTdvQack3hOZCNZKwDW5BK6EQy3WzBK6AK4KPR3W2yNHkgHB67N4AuWSePa/TU1O2yMza8Wgi8+OX6O+PW8DO4VO11O6rO7rOwmYD8W2Xa5MVgu23VayI1lwuBAI36UOCKx225TW7/DLtW+vW7iW9o3kfWx - -LWxVBHtHBjW9NWiBGwMgLkZWJa6KSCegmEWFH6wWqJRAnR4lbaxL6Baa+CK/Ym9H64/OxhSQyOzPO/G222myC7UP+IvOzxa2Q/BW2/65cfqmfO26Go2299DCkG/jWCbANH+ZK25226g2/0qi8yXAu82pBTW8K2xKkdw1C2ivyO8DeQ224q2yr6qRlSu/pOLPONDc6yAuyfO3Am3AFAbG9NbhfO4KmJe4+I23iOezzCfkA/O0gQrrAeRG5i26xnTs - -696GzlW48YZEdnu8v9APm28fW6Au4DfKtcL53eNW6oxWbS/02ySvmwfA7BVEvEuKgYbMGO75O+5a5S6yZdIXcMny4B6t1O0ouzIu6Iu3DzuC24+25FMiGiMksJAhMxG/e27q67ou9ia8ou7Iu4K6UoEULCwagdG+eES4Q7mstRcqVKHYFFeMY152S4uyJqW0Y8MY4FgzdmB52LD6ysc2PFCAq+CKoiQ926waQEkvOl02AQLygKAqwTfNmkMe2Xmk - -HGkCl05TecELV961qkD7ZKpbd3sHlg+FowcVX66wk+dzeZYvFku48qTku842/OBdsVfVm8E26b642WyQG1mW/uFPhvLikJ2E0q6JXAoikICreE4DZClD8+vBTbptrKb9O8Yu2CWyiW2Yu5ou4YuwlmKnO4ekJeQOx/Cjlp/ZH8DCbFEwxLw0hlVGAXA1XW+K1SKEsNrMBEsW2GRArxSlrLVY6DYxxxjOgtVA31PbcGH7mFniNMWGWsMjS7p821Y3 - -3wPBzZ/SDrsoH4BuFGhO/mS+6fsknbIq29aS0iR1O95AyEGzPWwCW5gJpPO/828eGzjTEWkIPJshm/0W9OrjjO0+mzA20aRBEGyspBamVz4H8W9zO0069DGzSO5ZGx8Ww8u3iS4F6ZZa1U2OCuxlW7PW0/4MyO8K6AhY28u5lBavGwICIC2x2hRR2yy69ZSloVFiu4sGz95rFIB6+jou90u9Ivp7ayOW16WxbO9/a2JMZZANrWzbO1rO3E0hqG4y - -u2MkOMLlzeF9nUbO1s64yu8NwZtoBzcX4qGoHi+G5qk0iMxxxk6WJWsEH3DiCKKu9BFgw6yalpmZFZS67Zuyu+65pt8y3TOTghKBLyu0hKYyuwPKKELBWsUvWDt6ya60lWx2js405UqMqNPHPGa/JSu+i7eLJTSEHgfZlwBeITKu21W2TOXZWj4Q6t2A2QC6SJsDvJO35O7hIGV2+GkBV23KEWDcAO25XC1a27f6/AMMZIkWO/a2yeO1NgIN2yAS - -MVwBsYScm/TfJfO0F/A92xR4HKRJyS1yC/S8bioXqKkTPOXtCm26PEk3AE3duCDAQxd+4CGKNu2xFvqGQRSgGRoBaO/ra+B26IxPRENK5IgLBqO2eO65W7GvF7MMlrPWkL3OF0MQt67qJK4CG6JcNQJU2JPirNqRs0abO2XzCuuFAU06hGTJNmkBZyLvjjCOzd8PMEJ2sYZ26vRiKXTIfZuKKu+Ntmr5hhcaXm2aNqY+LMRlby2xUgGJqUhNto4D - -snoZsOCYLuu+66vuu0sJV4BluuzZ26rW5nRkAayEHWASCQZa3w0ExZzK5wM+LU30/FCs11Km2NTHZWDVaO6QnQ+ypTD0yFHU/rbQ7ouC01tWrK/MYxzbSrK4VtcrK0a7Sm0+Q074S034QabRvdfxI+lotPc+Q02huxBuyhuwKFY0u2zecE4O968ilVpbWuBXLeaOjRjAKZO1ZOyRu0osKXWIakL9612kGsdBGJkykMaJpG1WG1dA1JRuwakMqFGy - -2YswqLeWKOaitTg7X6k8qxvKOVedoAGxjfCHrZHrcHrfMlSyw8zeZOle3g3DfIveNGiLire0u+HW1GNKBwIYCILHjcO0euxqFFUoLeu9IGwn2KCEDG4ZK8KNaUNYAhPjWSFPRlDwF2DoDLfY+ik7quihRk7BWD+qVaSL5cZ4ejXO52GyQ4hyVaxWyLW0VO9YG2BC6TOx3O/ja6AKyd8z8zBEBPIpMt6rH5YKvN9vf3W++W4PW/ydizCR6u4EG1hh - -d8226iO2XTKO5XwIAu+7a3tO3Cu72m4XG/2mz87vHOwCu5HRLmG+6OnoM+l7dF6GiW798tWu/XW/AuzvO/72p7a+8G+CcLgmhGuzGO5JOxuRZN6xA66w3U+tKQuz3POrO8Fa6rW1Cy+PSuiu1trJRNdLW5okKLW2RO+Ym5fOyxwq5uzLW0NuwhuBVGA+XISMCaWyVaWaWxKw3SEYwuwo8GbgIr7QGO4SWKS0NIllrK33iLbeTOO9qJimkKELT4u9 - -CQZXsBmxEwsqmE9UGGyw4/QbfgymkOD6zrcNYSwnCYJu5yHfaidPaTKKiNETw+QwWlOPpFXWEYaUHvVQkcIL3WD0260EMtuzNu0MgTErqX64LDhZ3JYvgMu32+L5lPMGORSvptEktt1IQ+K2osvIQOag5pebj6FsKfT4H/4L1EhBQL+GbhAdUs+eFmTAoiLEakBgBWz3OIu7o24wtK3O5BO15u9BO63WwFWxAvaPEQfmBjSw4xMIquqSPdGIzO1c - -u26jALgbcuys7tlu2zChH8R8uxx672VkGuyt63/W/7a0Au4YRGgu6Nxth8vum9A25BOfxZomuwxKEF/HvO4g2wfO7ewDmm1mu8Tu/DlGTuxO21ZG+ruw+PZru1Cu8ymjruyX23/6Ydkxd6wLsHY2042zCBdw5ZuPLnVj2zclIdRmY7NrBGg7NZ5Ow9ayhAGWGxru4zizcO302+Tu2GWlDu1MMAGUVGIqoAM37IWatU4LDMJ6AKnXsli3PUUvjB3Y - -+qXTUdNjuy2gzxBserC3RCdOgu29iZgzQrhW81u8zs8TO55u1BK95u+k66Ra8QC9IHCGswYneRo/iarG2EFAJcu3jS8seBjc2U62luyflrvW+g25umwTbfLu1Q5LBoIAqZb8fXu3ou7NOwGs4oXFau5Z7aVuyIirPOzrO4JoL8xDqO2UYGRAa8trKuzJWalecJ23/XCi23tW5UqFnWU1u7udMJlT5O25aw1u6A66D+O9Olnu3K6xJO9yLkJ264CJ - -SmKBtevuwq6wfu5+aj363EYX360FNUsixjAImu/xHPCrdKJhKJhHzn6JkFo/PSyFo2WkG/u7u/YviLQsnqQAOiN8hi6oPfu8KqxSDproyro7sg7IXQFHlTXdowTBJNHO92W3EoeZACkGwouw1u7tXBxtpqUPPu9pu3NXH9Ui+hFm0vBON0GUP4l54LpKIqoNzQA1bZpebYJJpQT+JDOzRj8L+EgUpJNOqzWMh7GNO1xCBtVFRZN6m9q8DVCr5W+Y - -MzBO6Ra6iC+SZLyUMmqT8qnO0yRVr4K7iO5yYGva2YYJ1q5vaw7sj8u/znCjW/lW0vO8e0iSW3IXMluykztx68+2VEBsruypG0mO3c61OhPn+Ooew/W8Au1OG/c66/W2VWzba86+uK6/i62RARgkH6O2O20bu/C6yy21TiQLuy72jcsze0GmkAW2f16z0cowmyTsLsG+ADIiGITW/DUJ0lFuGyzfM3u8vOzSW4Pa4xVGOm9dGy86+OVioe99ma2P - -qzG8mO7/wGhrgmu23u+c6+Qu9nyAgm1lW05uw+vIXQcGGylGx8m9mjgxGw0GzTotPG//G02G6YbAwe2oLoS6xCm3mm1La5ke2JgKmm6w25oe55G+uHhou96IPB2fhK1b7qlW2H68TWxyC20e9mdrzu0Mmy0ezhApfgdsZSSu0c9iw23vGwrGCmG7vG4imwKmnlu9MewWG1nfgHfVjrEJ0YvxtMgwPfrMgwjuR/80ryzAYnzzXdlrQ03ELguLWMdY - -lU/FU13uUZDbJ2a6618/Wsi3Frtboz5Hd5HVv83ceyailRIyO3Lg+fGmEFzU4o5R2bG1eRu8qJkN1dRuxxu4ENaOOyGW3WIWbTUJ5uyUCEEcUSwDu5CaI0KuMezMe6DOyKWrVNNG0esMHmRlbaGesAEwEm6Bv6LwiCo+ZtAIL+E3eul5QnuzNG9LBKhEnfaN6CeGkMcOHephXIVVuxCGxXXZVq16q04K2KQyTYfoRdliOjbCDu1pum6EqumHvQlX - -u7Xy6bApyGXXuz829h64izFYe4iW9Bm5M6y8nQcSXCu1quzlu8Za06uyCbSxqi4e3163ITQKMIROzhYOTW2QrgJcD7vv4e2L0hzOxgM1lOl86zsm1lKLyOxEe0aG0ZBL1u5QQO5GwYe/YiD3zl/W8/Wzybq8mwSWzQpBTabXO7La/o20JZBw21H26igZae36GjybpMG06m4fPHjKaFgPYm0/Wx6ezM+fyWx7GbfKLnhf622ae/AUDYGpqO14ykx6 - -1c62Q62Pu+mOy45Rx25kSlIe9tmAaO7hHbKW7PO3DCqtDIz2nfblUGzymy6m9S2xu27EdiEOl6m/u6z6mzsoNYe6fUhQLFPsDBW/dG5yK/BW9o21PnTWewuK8Gm5R2xS1Cbu8VPKFU3s1kps3OaZqDiWEXyZZabWZhVZHX5c3/66g40tiSw5cuPKJKx84qES0J7uPw41Ncw058VREbYIzbkS9AxF2lRtohkE9oU1IniaHShWtSfGmDg9ZVJhs2Jo - -nYgSEL5Rgpu6W4NZqe0tjNhJVIG2e4Su7y6xgewUQlW2BYAINEIxuhXGN8qZKoBNad8qPMFlEHOWjhYciowD3m8ha2bXovG4ZwGafZmcPi27x0nKLPrbqcXDMBKVDDlIB8OMjS41C+aaxd8Ou/f4EDL7oNrYQ3Bye/4K3k+S+YSDvSEG+x644exyyV3uwvO6Lu/DCkqe2C20au2PW3Uggoe8PuwemyA2hc2lRe+e23PO/xM3fW6i2/tWwy4L1W8x - -e4vu0g2x1MOxe6iWxqeyKFJzO0We/2Wyx64+Av6kKshEWMcme19hsLu9Im2Je/EvPq25Gu5vu+C9JLu0hkVyY14nX/O31u3o/Epe3tFDfskDu3GCSDu1Nzn2m4Qm0oBZxG6Wm3UeyciDqewx4qObYgoeUe0Ue2Ze9smxZe1U/TSG7jdNmGGD2/LuwLAii62c40KO5yK4wSa4vnzO5TG9HGzEsP3qc+6VnAQS3A6e2honWLrPu0fu5q9ihG5qFqLG - -/LGzWCA16/sWzgKbrgdE642G6PGyaAmiCfYvLXer1pFyO7fa5RG88kmZ25Ku/UyLi2yfG7le1i2wcIPKu04613QmDJtCe6oipWwNSrHzMgUVb1pHMewim7VewZdPg6++aICOZXA6tcE5e7RCLP+sf6ORuNFVKicr1pGY2zI23Ve+1e54uUNe/iu55e6y62NeyAtYNe1cuLjHQ0RBzhBWe0a9Jm4PVex1e8i2aYvvi2xJzK0IES25m4BVexf4JiWo - -rYIPuySoCyrI464de1Ve4KwJKOw4iBM8I2kiskOg63Ei1ednrA9KW2qO4pak/IAVe05BEVe1TpjcG7qO8AQBJexFAHuu5le6pu7uMIfu2ge80WJWwGuuwedRuu8CeHv6zXaJU+KFUrp2yMvCv0L9Yl6O7aO18ADZZQlewV66klH8TZDe+FRpAhJ2QOWm/LcnSyMWgbBDbGIPKuwj7QEiCCdDaO0UCVCOzB0LK22la15266m/ODd/gHF61hMSq2yB - -IntwKWZSaO+Du5+ixu0Cl29IYJIaCX6+tu6IYuGRLl2/dQDEWpWsmA6xIFOigHdHHFlMWCia27ccJu2fqvNLexSfkqRb6u7EdhWQstM7P6zze0TPPV29a22Gu2+M7CHaOu+3zLBAh122B3fSVO8FSMG+y29umZ7Ek622eCC621lxrOuwScgdIZogSmu5d2034o8dIDeypu1TTl2YMG28agEyyDFwGde2K24qJY91JemkZHFwMO9qGpoBQ660AocG - -z5kIz23/tbciVCGyCvZCoOjtkm27i8XFIBtwDp7c2c/u9RdqA9fsEG0KG7W22222tDGLe0oxLli0u2yW9iu26ENFf63be74NEgxNGvtKGze29pRP9K9FkH7e8FONlOIYQWnJuWOBmOu6gKLgJz2yBwIvSBpjmp+KFilPIEwCKL1AqQBMoDctdki+wyMqG3xCEIEKXAL3nQB25WkEB21v4FD4MOMmxkPsiWT6tqG6kJNJVeOu1h29vew+wLpojR2w - -UBWr63tlL5Svs2aR22BW7x4m6GyeXNIQu65vwxL/pMtwI1DMnEqx209BgBBOusjaoMViPYfs4Gio0G6suBRAgG14BgZDCwQYVgOsbvGGy+CIOBMigHDnu2u1WkJ2u/ICgOu5Zmbl8nDntfe+5xE8eoCu21AHA++A+wqvH2KHA+08egQqL48Og+3XOkNQRK4F6xMWGya8D5cvg+0UKIQ+7I8C2G/gQA8UAMw+GGwkJQg+8jnl8ggBxD5Ccwm3W4OQ - -+4w+4E6Md2wAEjQ1mVcf6CBw+xA+2l9gtEM4chOkJoBPw+3NgRg+5Q+8WuKAgrceNxtYtgKA+zT5AQ+76Fgj2+ADEj29uJETbfQ+/A+4I+4HMMT2xQu+ke+I+2A+0o++vEkoWbxOoA+Pj6Qo+ww+9o+83JNg2JTGc4YPi8BY+1o+5g+83JFKAi34tCSD7EkmrOTwGTLtmGx6vi4+ztqH88IcwftaOlHHMKG9myyG2BzPnHa301bm9Jzepu9uu6eu - -/5/MyPb2yZQmmQ/eDDMw+9eaPvmIY/i1mPZqVu+lVSlWvNbCDY3KJEPh3GxAFVdTdIIRLAYEwoxIqQKoiuTHryzI/sEb6cWWrFcTuxOxlr5vPwFJFbGYhDU++z252vOeGwKtd/YFmRFXi/ugAyNGk9PHYi4+66kLEYXusuyPNrcO0pjpwG+G+jrB+Gz5mMQhK1snVHidqBqFG+wE19uEKdtIAJ8XM+424As+/v/PkqGrdCO26qaawszs+9J5JagI - -s+wuKNBeyHMeShIfq/jfqc+zihM+tHoUVc+6mIOc+w2vv+G2oCDc+7T8QvdfwsjGk1JvpIK4Lvq0LgtiUJK2LDdcM41GfES2JI8ce1GM2frefPtSw7G8d4LcVZIMY0lsn7NZIrIszZHNUitRbrV6k6itfpO75Lfkrhyq0nrZ/u6iRt/u8PiMD6+a5BV8fi+2hooS+96JgS+3hu/6Ju/u1GJkU0F/uwxu6/uzi+7S+2WkLFg+V8Q2kO0OUELRWlY8 - -PKlLhFnFSkvQ8R2674uy6kELyQccp9BZiHd4u17Gcdu1mkHikTcKLEu0yisjUFZyBdO+RycyirK+9du7Sigq+9jmHK+6dOzK+6q+0q+1ykDFwPk1HqIPstWW66du4SJByw34u+Eu/KrFl0/K+xq+28kFq+x5oyq+1a+2mEwbWzW6wiQ0yitba1du2mE5du12uNa+wa+yAeO92Oa+ya++1LWa+/q+x+Mf0HXlVrAq+Aq9hm6G+wMArN0N1NNstZG+ - -91IKupRSingxGhjKPBM5o1hmyC4XKOS5o1G+/G+5XsLG+2WuLgC+RySYS2iTkYSy1aZast5o626x5o7S+XDgMsc7Siosc34vD5o2T6826+DFJW65QOZXcJq+/a+3uBehm9YS5V8crKKD6xUkFPvLj2C/u3SkOKJtuBQO+736Exu66JhG1fvZFG1Sxu3uEzGVUn012kLtu+UgLOO/O+9OO4u+/tu8u+/36Ku+5EvKKq/Aq2u++1olW8byikKJmA5A - -oRVi+yKFQAG09u3ilM9c0O8e66xg8ag8Z0YwMY3e+8yDl/KwS41zCinPIYqUbtd09WPg7viDi4zoc49O+btc9OwN7QsZOWPV+PCRJTaHWHNS4SyBgoywwRshGRjb9r09VZtYZlZitXB+3gkpYozl09Cw7viFbtUszf3rQ7tf++/C+3bLoi+2HW3RoHc+9TfLlyWpu08+9c+w7SbCe77fPiRA0NigVN03OeyuQHAqAOu8mtXNvBEY5RCcDlADklL1 - -EqugBW0l8mMoxBBBRUGLOvDf/uNFUpu3y26RhLxHZTu6B69Tu2VO5we7BKyHC/DyRLzbcoMBy6ueMbsui9WFu0823b61UpLFs18a2B9e8uxtOyDO4Keza6xRe8u8yY240fc/OxvO4SiNV6x9qiouhiS7yO1guyjPANy8V6593mhIg2a6KO7cDEETPSWyPBMIPEyWwGaEym4S24AY/yW6s8BokN9AbFAy0G9tW+8lOS2ySbLNgP2tigeyXiyScCka - -+GEH5+32QNNIAbY8yu8nO9II16exIIlB5D2JDCO8c8LBwAz4k7RRqW5KW/w+MsSJDe+tckWWPNHeGewW2yfW1V4xSRJteZV+I6uwq7kcyCJ4M6VTFAMTe6OQOmpUESDoTFCBOdDmK6Wy2y1+yn4hoSwz2FqhXnPNbraA1Ag1EpQ+FzWUGKda9lXOda81MiszbCtRUrqcVei++dLfC47Xg15tRt7QFta8e44o6CI2yJvSw18wzJQ1frYFDRSYQcma - -woZojnLMboiqfE/h+15SB1+y8WH/TDRmFbe71++XXBR+4ekNhSInVDfPS3M6uqG/kO95IWVVhOIZiDsrm3GJM4LzoKlY1Qe2lO4qFApIsRaMllO6e1Q2+ZeWDuwtuyymQiO+8EyK8/5WxOWA/evFtKaymeGf3jm4EqVdHH0+zu9Xu9qxBq4+xaqLqySOwyqfgPeA6+qeyd2RumwfW+pa0vWw5pBIIKZSmS69C6xp6+rWwa28aW0+jB0pgxeu29re - -ikLa7RWvI2yQgNde/Km9wyScm/uWzfW8qXT9exPu/bRKdyhD+z/WxWBaleRGO/xKh19P6e5Q25L+8nWfqvDzgppjANy+4mwGe5D+zcrMLe2aO+L+0NO1ae2jYmA6yr+7fO7r+/y6/r+3xNdvu6ROar+84yyGMyfsxAMBg4yQ0ifrdSw317eoqWa7fHzK7tVm06uPMADZAps/VedTPjRSrKZMawFFe9WfEXEvS4gbspW/L+7V6yNOyhADqW62E5ok - -DPdP7u+ehLi8g+sOmglTQE/enn2LZsY/1GFLqt7NvBHnHNBi6NwItcRx+5xw4sAxbULvgzipBJ6xQLFJ6ybssr8d/O3YxMjS44i5c21gkd9vRP7fMHsCkN8ClwriPO5My+z4UhaxPOzCSqVDG2rKm/Dr6Mpa7GmKyQD/mDf/bAqATWyMKTaVOVu3kG2TtQtO7hO7p+77lHI28hW4XYPtO5tO2I2zFe/Qu+lW9PO4dO92Xvw20uuuEZK3OWX+wI28 - -T4KP+8bFTBujnyTzfAA7Uh+8X6Kyq1t+yGkw5yGGk2L+fnNaPPe5Yzonbsnodqh7NLMawW7r9OxZ6+X+4I20yoC5lJYkpXOlreH0CKuGP7kIlyp9BsMjIV2R3JRLBNOkKykEYuR2AOEI9tJPyCW2HWHlSs6yZe/XO+WdNJ28JNPjMGS0znuyVOxJ++zq+VO5zq+Ci0UhZixJgI/zI/+BvddBdwyp++hOyB3t9vThexHG+R60eirxa0P+5fMkPO11 - -ltUm7Im0Q632W8x61iW6ke86G35e5/JJpe1TW7NSKwu4HyOwuwxW1z+0v+/q65jkOe/KuNnL+1W4Kb+4Ge9nY8F+6suGcGyenqFe6Ze791Rfu3Pu3YMEvJJoB0J6xvY6oIU1FDaOOO6sZexy64YB8JO4lcv+uDwm/8EYRW3W8Rh2xARe9kJLkPL1OO6gL+9fW8RW04B0aqtvso/7SoDv80744KU1fqkEu+2267ZihW6xWsA6+/CQ5x1dW+yW+xRx - -mW+2W62j6wsgDhm7SiuT64vOEQ7TzecnCPIQ/VjSJEZPMtkYN0LDPMp/+5wTspW+4B+h24eW1H+wt68jCslzkZ4vH++WiPolOqlE+hFuqB+BlmQvuU5GDE7DlHu5ZWztmHPitrsErZNaUGuPBz0rWvEdtg5aww2ygnEw27rZCde1aO1ja65TRuPQQB8Ra0QB6Raxmi8B3IHDJkpITcyfZSgnIdpcPOwPWz4G3yPqroDyeyiuy8u2Lq5Ie+RexC2y - -qBd4e64e8BW9p+xPW4M67YBx0eyEe7PTKbtt9Gwx66eG84Bua24rW5nSQ4e1HGwv+5RW8A28UkvcB5PW/OOmh2w4B6UB6Ke1wm5cB19M8UBwCB7fW0TvkfO0Q2yk3TIe//W0RO7xKs8Bz2AlR6y/O5vO8IdNvO9P+yFBLoe95WztunVu4zWy8ByeOpwB8A2f9e2GZIv+9hW7yO1K207GzN8hL+5H+ySB+o0pewGtYIYcfiW5n65I2wVBHQu3aewU - -G+yQkTu+xq8w2yCI/EJI8Ay50LmGxIwADXZq2FI28M26I2xwUafgCgnFuCykxPhdMHEX0uKek2UVYTu+C1H2u3FTgLWxLXoeSmUe+AgIUe7oQoymxNiOqB8PABQ2xH+56e8KW07XEsqWW2+V+wIu8Q2wMxFX62aB2a23gu2o21ymySG3SxGJO3oyEZ+zrNTaB9PCLC69CuwM2+6B1MG6SG2GPFUUth5Q/WsXWXcmSrlSbMvY+okSzMNdkSz2sLpO - -0iVXb3aN7SuOyUroVWMFLcD5IFtVta+irL423D60oOAj60K+zCC85tYVcMGkxvysHFTaFUJvY1GaWB9yNVhu5IOYFlUro/zviWPd++8OO5a5Fj+IxyQ9O55m+WmKzrNTqEfre66skW2M9LEW7zm+E2826pxxpdOySZtdOyVXLES5DirZ+gh2i5+joRQDc39wOZAD7uxO20AwF6e6UaM6BzkVNUB/uQM7DK+6L0jNkAOGdM2gFA2q65GfTPAWPZ9a - -HjYU6pqkJsgh6OeK4jAQKKAyv6iLxOJHB523K21520dRMmrCd5GjrJlyWJ+yTO3nuzTu53O+UK3ei+6I0zsL37GeUCNLAWNlR2Bhe/GcwJMJJO0EK76O4Re68B8CB4Lu5jWyYu1Su9BBxcB7BB3p+w+2whB6unP3u255Eoe+Ke3zuw+m3VW2QQA1W8qu4xe2JMcQ657G23cHIm+pqiqu68Sr1uzXG/Su3yu3/skyB2hG/O2WPqBhB1w2ximzw26L - -OyxByTgh6By562RRqhW6j8OhW9w+KMe41u3kmbvu8iu88u6RO53AONu4Nuxza0Ke9+m74uXPrnX69azFwwAjFf0e6Pu4VAxKmNbRPmu9Rewyu/yBgde+K22V8NpB3RB481BQ67yAlL+gvuxja5qk3eBwze1cG/Iuxvu99DFZB5cG2AEOu20Je/Ge0ubQ9cnG+5AStYexZG6Va1/xCiG/oXlVoFtM61uxGe80e8pBb6oge4IidKj9eYB9i64YB5HI - -vuxKl28d68ra86ezlO7tO8rgGbe68/LyqE4e7dq0sG7xICsG7Sq7DeSKkPTeCmQN0GzSu56W0Xa6awH3ezX82m20re7qW13cN5lZ6wMu22p4hxsO2odJ23MeLJ22wnM+22igK+2zZZVl+9yu/0vL2YDPe4B2xuhBDe/Dy7COWN+f78HWu8xjEWtokGUJ+xeu1le6f8Kve+8K17JKs5fde80Mo9e1N+f78KRWNh26uNvIVU/IHpByHe+81MR2wXXi - -f62VDHtB0eJapC5tB/ve7h2+Vexw65Ve0r6QoKBdB1eaNJVcsITZ+nFCzL8NXhM6Aif8zoMQ8bAkmqG1eO+4O+32+8qNAAe72+0K9IDB3KOTO+1O+06JjR1ZwG736N964goDRu1968pbXDB38ezj4KVHMRu7R2URu8sVRRu/8Iz8I06dJakN8I2iIbVdnaJt4xAna1IOy6oPaJiTB8CteTBx965TB8TB9TB8qJlTBwRu5YvC42wuBTsVeGJuykB/ - -uymkH+k92+xV8e2+4zgp2+0Fg1gpty++qm0m+0kBwhdDRyYCtbsOzkhMW60zkjdO86cJV6OFB6bFqjedk2/fiCOE7X2xc0DE4A323k20EBAU23jeU/6TjeUTefHxQTeYE23423rB4TeU50ZfYgwat0LRd+zqwKdB0deyhAGBQEgQo9Bwfe49+wz0HpEUztsAivdnsEAMNZFWAAdPJ+7Jg9DVOBALKve94xALClIzgiqOtcnMG/z7HynOZKyKm3XW - -8x27D2lJB6eW8jS5Ri7lnZUDsL4KiY7XQGfpuG5CBBwxa+tmEbixIezM+gKeyP0Kme7hB7EG/hB94aqfu4BO99DOZG3J67uqcZjfOB7Ye8aXKpe+S6zRB9oFpAu/fQhEmxHzsi20ornjGxYm+6vMGm8b3briLeiuH+8NO56e8Ge8GSF7OzdeWgBxYByhWxSe2hW/NHcPB2b+14B8JWV6/vubEaexG22HUVr+/Nu4EOJtu1F9MIB/uJEnO11u9II1 - -iB5NdFrW7CHSyu91u0lWgoezRW79WxNu0Lu96B5Iu9fBy6mLfB+G2wm2xvBxwoMl+4fB91etQuyke2M/RrO5/Byc6yNu4ruzPzh/B3HW9w6zpnZBu7Bu3T66EaEu6wd+wGif5bcYI/Ah/m6ekk/GulZnafZA6oylGclNcMdS1jcX2bAiN2yqdkz2sLtEyVOS7u4ENaGk+lsrM9Rszet+xtTVYabbuwjI2qhRcXT/sdcXZc467uxtW/bB0ke/jG/7 - -o4VkCAh7JOy7B1MME3KDMXLJljGgIBADvaCsMB/kMrWLcAHZs4bqWokDIOKvlB+wr1EkASfXgHVHtn8hsTMXB90mLZ62EYP8lnaVngB8iXaVO4QB1J+6AK6Vi+quAykGaU3Qo8k7nRIC66NnB9Ta2phOQ85q4yF3ZlQ7he5HG48BzEVTwB3Ge9Mm5BBxCu6iu03WmyB1n624h7sBxJB06aNtO6NRt8mioh/hERamxRnWEsT0Wxfa30W6/tGmO2Ng - -AsNGL+3p+1+m1Eh6SxGoh6zW737Na64khzQlNEhykh6qW2kh9kyuUE/LhHnNZKipB+wPrX/K0M9dTmbC46FtfGB8uO+lLSfiAZlVf+5fPsWB8m4zOBzsYOz68Ehzz6yzWzkh2y7jpWyAFlHNCw0n/kAHpcIAIPSDvyMALDfeAt4l7Dpfif6yE0YHDS58EtEYGb1F8ePZKj0Sz3u5SdsjnEoe8jSxE4xQ5K9W17DVgIznUbjDIcyBYh2p+63hHnB9 - -+W0761BB1UI8kUlfB1HVhXBwpOxqnVJe/Ye+4h506/oe/Ee+eivB6tPWxU60HG3DDHr+8oB1Bmw6O2Luyluy87l4hyyB7za/ch9flNJMlEivMexcIPOkzyB4tGyDUCMlnkh1vzTNE9j9nuLRxyeW8UKJlvZO5g3W+y6kND62cyGK+736PjB7G6+96DZDdXWcOLJ1/b1/QLgjPOBS2AKW9OB99O8meL9O81e7lG0ZiWukC5lGx/GkYS1gquFnKANQ - -Kgb4I2AAgAKpPiUyzMjOAoCZ4o4cijmv8DQhQPIh9CnSmW18cz+aR6W47a/6Tloh1MBx+B5J+7Tu0j+xri3ElOmwiv1VGc025N09pR2vsh5sB8VwHGtTYh1/Q05fv8u0oAmpa15403B/T+y3B1DtjlezyW+H8crGNNHSGmw2e38h1vQLz+5am0gM6YGqoBxCxNCWMOW56W8yIe6WwXa23hKq7Stk+t7czmfM9QKFXku1O5hCrczB8Uu1uc2vZKit - -IW8ZGhzuc7MVRHrRu+WS0LGB2ee5CaH8G70Gza5Dwh198O0mrwiMITt5CDoITeQEeQE7aBntqpPvTJDtXPnHaXCDoTK4jjMh38YHPqf7ocCNk4rYp65KrMp68w9J/BaEh7de4vM+eW9oh9MB5Pa8iO6AK9MSy7ZBZ3GI/KL00i/NG6jRY1saZFWxsB9FW+XHP0EVhK6R6/FuxdXYlu/sB+u2zVayWexgelchxP+e9nTkDMeOwpeyRBzIm0SB1HlM - -ae84tU9a6RB+JezUe0yzMwPQn7FUm2eh7Je2v+7LGzNgMJyvuhzJey9HQSgtZezqB6ehweh+ehxyB3glcqBx6Q5uh1CWz+h57uyqBw/OsYe6DG3gngUe/hGzqB2NGDBG4GDOqZOr00lu8Re0H6xwu3Bh5TUMqXTLuxJa7XAChh54DO7XC67OzO+T+/VkAxBxI20SWxwBzcBxp+PoVUqBw7RCBh4r7A5G5Eeyybkhh+uBHALvgm4iuwOmztG8Se8W - -uzV8Kae08h7sm1k/dNe1GqgZqrWm1UkCgIXu6w5vLLSOfPLzO/rG/o+1hOQSuzy695e5HKgChwBZY5e50G8RMPUexMe2TcpRh3AXXQhcLOydM9hh2JYLhh6KB/9O0Sm7/O+S62/BwbCAEh0Zh02e95Bw/B0hqxVsykAqPjQsSLch4sClS62rMOZuK73Dvs+9I18JSAMJFzb4yVZcDcgRjGSmmL3rfocxlLSCIxUhzo7iyHU4S7JxRirTrkPd6xy+ - -7y+zih+bW0U22osCU20qkHL3A+ehDW/bW90RYgMHbW9mE8oJFVaUoRU3g4HDCdosCI3YozUh/WB6Uhzm6/O8RtEwn7SdE/5hzjVYzfVcVTo7tt7S5tYWB6TfLzB1R4NYSxYSn83aC2J2OYNW54VvkQ5B5JcXZ7W+32736Au+1iPIxJCuwDv6yXlKeqoIG7029ruw3B5DIMV6z0e0TyZeOy5lJ2dQFnrxYeMtIU4EwgKIfqyYoqlGQMMx+opJL/PD - -YYH8HeK4nvAJ+altnSE+VfSzuhwQm6VkHYFcwVNdhyxh0M/i5TfMvDwq6zsxzI30y7/BENEJzk2ZCEzu7Jto3qKBwHa8dj+5ye1FDKU66Ms+cB3he+8B4JB6ch8xBwxh2jW1Dh8ChxbBcfB6+G2Rez8h8jeTrTI3u4EexT++QsD8W7yiIbu1Zh1QlilBuou4ULMIB3G294okTh7XKgZe0ZQlluxhhwnOxpe7g28pe4nRuTh7+JoSB0iyIvdqpB/L - -O55oOAu3TcFxO0HiFhB2xe1KeyA6+SOzBB79G8GO+fW+Q2OPWxDh44hzGyizh1nEPye28B1Lh40PI5h1r1Mxh0XG+yegiBxlu0QWGrh1sfnUXUPs0ImZU3ktw5UQcDoW9wTJ9QI+bnI/NoYpiN889BIQ4sw2QZDGlFlWp4ScDas3eifd7fRJZpLS2xxKn/bZdqrXfC+cwoUd+xQfmC8/OeoYQ8Oes5TDNM6bFhoeqm86H+/bByrh/aG7kShCKC5l - -K+GlF1Ilyu4+O+dlptE92k2ycahP2chEhYlO71oMlOycfIL4GHMpzCNikKsu/ZMEph05ayph0/4XEe3P+4n66ErJoxITTIqc29h6mix9h+YxOj6Ar9EdoNeQnfBm6EhEksPLtqhzOh1cvQ6a7ATT4h88uw5vj+W0Lh0hB/hewlW7JB8DoOaG3R68Lh8wBwxeyPuxzh7CByx6PCB05kAEexumxAS3lW3CB6RexLu0sm1EihF4Cg3vRexAu31Ox86x - -xe/vOzz1uZezuPN2lEjh1xe2Xsmfh7GtXPWzRe6g++W28FB49qz8B58u91AAq2+865K60Ch74h/+W7gux/hwow6pBxyO7utFdG8869jtIgu3xe/vWz9zJq6eOm4dCOKYrA27eh97G+rh3/h6eRM+h/eW6zh38B9/B+eoigRzUmwgR71JACh5h4KT+2Lh0EewKB1Mey1ezKYq1W3C26xexKBzVe2QRz1WwLh8CW8ltlN/Tl/W/A+iA+W9cyc9/bGk - -Hkvs6G89QsafVZCLBivjR84iA89A9iJbNivKiPH44PPRoCaPPS802IRziJRpHu3BtrNLXq7ZDpfdYLNl01oM3iP4Vtofg6+mwtnKNzfD4Ms0h+4wLShyQR7lG76TQwm3QR1UBy5lD/kNiRDg6pXYcqlJ/ZF2AFjeoSVDKoL1zYhSyJvG6mPdTKE62mvG6hJsKru+rBhzhh9eh2Bqr5e+M9Mu/C9h7gbXoa96q3Se7o9pJaKERS7CrTCbBMVEWqmn - -s4+Y1O9OhwjW6ly00K/nB/3h28h3sB8Hup8W5LKhu0gg26Za2Ku/Yh0wB18u4Je7wB7g6yLu6jh2KlJF9uiBwC64Ja2UR6Im40ezsmyFB5HgIqe2gIHUR5xGURLeDhz9GzPh0FB9xhw0R8NTOGe90R20R1/h+JBz/h7i6/aB0k+CXBxLaxVW6gu/Thxi67QRxQR8jh1vh0K21UR6T+wouwiW10R1oewdtrIyjLhzgR7blMeh6cONXB9JG4TEIDYj - -pewW+NsYlvW3kG6Th252hgRxwh71O3aG4Zey7lLsR6e5t/O5bGwfh8eO2V5n0RxXh88Rzt1MIB9gq1sm9A5mjG+Q25EoFg23SO7SBwm2xahw5h/fBwi6zjW6CRzzxAwR6fA9Wmp17L5i6YQrLy14UwsjXIR22Wxx8urNk6QmWubdI68/Qt6Hvw0/LjPwwzeDDE3Y0f2nahyG5iwExTIwV3xt3aZGeUkbbZg1B+1SlKh+38w1JxYKig8PDKHRNOZz - -1bPfjNSjNh+eexCR8CRwYqtRB00xGuB00yQNYPW2DheM6ij0AHbkcQMEAULPhDnWwz0zcFPTAOX8r5pJ8EvzAAbINbYP8yIjUjLG7aexihw+VCtO4Eh1Xh+ErLXhymi85K5BC1g4iZtJiZvwwobbcp2OhEtfaM8wm3+wkR81O/+uB/Q/qhwuU8cNi/h8hB7glHzh0XB+Ph5kh0a7Fzh+E0kzh3ARy5B5AJHV+yxeyA69guLRh4ae3JawLh9rKkeO - -zdh9aG1GR3MRzGR30R+sR/sMv6R4xe/LO4/h90Rxs0REhzBm/JB5OG1mR8TNsmR00exsLWLO5EhxLO/5upTh/GR8vh2pO3Dibk0Fg22Tjc4h6Q6yUR9/ZqlW3SW4CR7yRzCfBjhwRh78698R/vBzkR3oey8R8WO385gARw/h1mO89UJ6O/2R9iB3JezGO385vXBzCuy0R4Ye62myZh2TIAuR9oe/oFvp48yB6IXkWR/URwMR0KZtQRwqSduR60R7 - -/7LqRxZhzsR+vB3ktTSG60e8Me+m2+eR3gupeR0MewNWeD0n4k8hJZMVU+4L9E+g7lFU39E81GZrxfOewvHdIK+13f29Sw03Js7eLR+5RPHWOB5YyTNjddddjmUk0cmY6Dk4BR0Y2NUTbcI7JbWnybUY8ok2h++B+7l07MVeJuydO/O+5G65tMgyFfaIJr8gZO1PFGUHj/YX/5CH+/LsYeO3T++p66Zh/tM85h70eyth0gVA4+PPcGC9WWNDuBpU - -1MCpDjEg+6IaALoagS8n8YMosHAFAhUqE6/rWN/mBKkL7Aosh7SG9BCKavR8CXah+2eyUivqRzXh69h0aR7/jS5K4/IpAgTJWp6WPE45nUwXMoULX8E+sB+FuzqhyzAuIe8ch3BB10uzKm2V0Uah/PO6y1gBh5vuwvhyRe80R2SqmnuyPzsC26J695M3Nh0kG76R8YR+O6mORxChwE0O5R1nG/y1h6Oy5qpWR8XG4FR6MR2V5tRRxxASuR7vB9MR - -9gc3zylcRyPYwlOk5RyJdglR5FGTQ6zWR5vuypW2pe0ViNhB1ZR78R9PO58R2SFJSu+ZRxMoSFR6xh1HxpURwzh4ZB7Th4sm4sR1VRz38OP+24e+lu7cR1Th3fBzYex5R0uR/T+zlR4gR3B25+Roi25Em3bY4eR+fh4YvO+h00G6lPHZe8NRxouz1e85a6uR8h8KxB/RO+xByazmcR1Lu3TpCNeyM2zaHp0e0u/t6CYuHKNew1RyB274e4+Yzee3 - -BW38h0jh08obOjvWezNe/zh4mR0a07JR7ee42e0stfrU6quuMLuqusw4OsY43lFg+QJI4t5JGBz5DYNjR5bUSwyH7Y0h+ScDu7VdExUY/Yk/se+4yfLVC9u7zhpaidWqgNiZUTUnQ2zzRRDCeLU+4IDEwHGA9cZPaWbu/Y27MczkrvMcymkFGkMeBZ42ysczm+25o9stba+yjsLE3h/Gbxnr60jRIbxoMksb/Vmz6yhAKdRxImEdR6Gm/P/EKRxU - -AP5CFsGBJaKrVuy4gW2LJOkhSKU4B/7tiI51Wa16pmhD0gORaDoG0EoDsnoBUasMmLtpq6ZBtKqe4klJ2UMXh6TW3KxdJuoER8PI8ER7SexfgyTYUWapCQSLQQqtZOQlw2m5+MI7DQB1cuwUCKvffOh68hx0634h7+W2KeyhB/BByVR3ZR8hhyrO9meyV2FGJku2mBh2XB4SHtJfOG3O7R6wzFgR1wB7KDDzh1xhx8RwCR4jhCHR5FG5Jh0kmwmR - -6GR08oX/G4xG5AiMSu9Dh1Ce+cJgVuwRe7ye1q0CaeirR3SG/8K+zh3rpDnR73u7C28HyieXPAglChwghJddIVuwnG1T+6XR8F7KIBxi24HyDah1dRyXRwQ4nXR54h+v+x5wNVR3N6+Eih3B9xG+Cu4uh3yeyBW0i25feyKIURh/Qu1zO9/h7x/X8m6Ve03R7foEJB1fJGIB0Wo6f+cyU+ZxYtJWxsRyhbH2ZT1YC/advG6ngc0D26Uo2HLC42HA - -bK7h0xtSnzlYLumry8Bw90saLC6f82qtpSA+WuZb403Q1fdei+UN9ZCWtyR4hB0MR8GWCVe9ah7QoNmhyuBluqK8DYplmI3OVQQ/pMS0mZRPh9GC9ZiezmSmftChytDa3p8kgAeyKBUlQ1dscR6tu/nMTkexAm+BK2H4BrR56q5v/SOgwYazZbmU9McUjiPhmIf3jimKmftJtFEDh5he6sTEijazO53uwjh1U6/Ie/VGlCIAwtJYe/Lh1cB5qNpH - -R0CByPh5Dh/5mslRxLhw4h2wx5JexCR3Ye4hB5LhwIxxWR+FR3XoG6RyLh/oexV+0PYJKIx8B6/B6La0Bmwxh0vh5cR4Ahz/B/AYH6R5PTlcR+6vOGR7FRxcR4ddsgx7Nu1CR9lR9FR1SB9Nu7pezFIlFBwM4PMfuYx7azJYxwURaFe7Yx+Ys6MDcNAccg4cg3iYV6K5IRUd6YxgT+ww748tSzcMa+u+si3Sls5LJrlYDI9olslGYzhXDbvLhH5P - -Xh5m/R+RnEYx3pex2G5wu8yApDuy5lOITj8pJw8d/xYTijC+k0ALY7ez0In+kn6TElnvuS9AFvmAnSEXW9qQHaouvYAOFTKUlCBzSrDTCZBhvhhxARw3W/yAFgxy7S1Vq+fg6Og4zLir4KGkuYsDiC7upeBEW3fBYdVOhwZR93h3RIsL0e8+OOvatDBzB1Ph1wxwrh1Z8MtR145tLu5ZR4em08BxIx9pa15R/wu8fOw0x7xe2T+80x1sx9CBwMc1 - -2R/sx6yEkEx/68bXCr5+TCGTsdQCLchpOIYqrQY/AoACywh5jVKQuzsx5kiE0xxfW7/R+BZJ7kMsMEQDSsXLu6YDdvKEmpDAu+heU47ORfgIRPtksuwO6E655Zt8fL0sMo+8IJvuh8UR0PawzPttRyI26PBApR9n3O0xzSe3wq6udd0xyUU4YptCGKp5QVzKnzrNiEPKHaR6Mx4kR6XHGh633h1LHoXB/Dh5PR1/O3QxzJB/p+0cB1YUJ6RzU64c - -B6Yu6BhyDG97R13R2rO7sxysR+iWwwx3Ph9ORPsR7DGzC27Ph5bO4Um/aB5fmWPh8yx5yx5lkU8R+HR3Sxx/R7N5eXhwVO4VR5tFe8R+qx0qx0tKPPR4pe/ox87E6WR3U68SO7R3FC27WWAaqgkh+LO/U6/yxyfa4Kx0VR96R9ax40R7Dh3IewcZWJB2kR7bRzmR8Ke78u2Th+mR1bO4bayCu54eylihwx6Rh0GR22R8GRMGx4uG9vhzdG+ZB8A6 - -zGR5Hh3cR7yx3lR/t/BNR+ae7Kx6hB+i7VlR8uR5iu9Dh5mx11R2YxwLOw6xyax8mxxGe5Zeyme4Wx+t67GR49h9q6+WxzqHlARwaeysm5ax2WR46xzyR+1RwFR3PR9Dh8cxx8x6kRzbR0iOf6x7pa8nG1B9Ssx4AR9RRjThzlu6gjlK4QWA/myaYXY9epwZVji15q1/3SCfoQsYLU0ux7dbIZxUT/sEs1QjgeaxVQjHjiNqo/Azkhm6Kz67i/GT - -RgS7nnRgSYCYIctYhVKVuexyM2cYhfwckex4nkDqS0eIj4x49A+95oFUwbfVNE6F+RjVh2zVn4mM2WIchdY1qS4tZfKVr4s9MTpcIQBxuknsc060MCFXRhLrcx0w8bZWwczfExzf0COR+5+OzRxIADvMveQPEAMmUBQHFsGJeekZKL+IidakjLl7DgImbreQkUM4+tpxtDsEk6BIwHLR4sx9K21tFjVeyZ84DxGErIpR0ER2fg6KQzrR2ER6CU3Z - -eUcou/CHLBbTKqu1NPIxQx6BByRmCF9TsByqx3wxwUR2/hw7R10u9au/kR+/fYUR2yu4wx6tDMZU0wZKwAtWexnMLIVmyx6rUlRx+Ao9XR3MR1fh34FlARxSB/uJIHR2RBxieZVR9Rx//oPOm9THDPhivO6/tHOR3k+S5azi28pmEZx2gRyGR4vu9rKk5x7Um67R1Mx1sECA3Wum03u1jh26EJxB+Zx/fB5Zx11pIFx88x38R2Q2/i3Vu6/BBxmx - -+/O2kezHR+2x4yx5Ue+BWmwu+NwBPRyJx/XRylx+IB2lxzPWnWwfNjI/3JmTXNjAoWv+pJbAtFlWEjAJ48APavKsyfa8kS2y8Udl/9dwcs64U6iznsYp4Y5zoK4fy4a1x7KhW4Xbwa0y4VV/aSh5owv9Dsuy71fmbXfDmEjmdV3tbB/KG0lx+7u1ah6lx1GZMhx+gAImnGsfJluAb4ENZCMjAqoNLWAeQOjgZgACCx137KclhQoZ66NgVVkm1j8N - -gQKLUMaOGFx/sdpHHsBSv43keZgERwxxxix7oa8xx/oa/wq2JticFF2dJgILoJqTa4PkFqYA/Al3h4kR4XeFFu5Nx68uzmx4wB78B6ZR8iW+i7REG+9Hcm+Jauxyx2hB0bRJgu3D5ackIau3Kx7Dx5Wx0XG+VR4R6zDxxmx0LayKy5bSBgEKDx8au5N8ooB7huHKeWHLdbR7eGxJhxhYO1JA2Felx+6x2rg/6e5dx9Tx2cNhQMyVtSPwx3XmG+Vl - -NY9cyNw92lRnzDmdTOqq1/WTDXYSdyzGhJF6WQUByhocpW2TxzzOzRAOr+wzx8N7J8x22XGlAPBOOpdQCHGdxFZRLkdBajnifJAXLpK2lyuaVmJCH9bZrWKB6KTbIjdtqCu4Wvpxwgu6gxx3Ryca0gCm0x/dxyKQ49xzix/gx0WK39Oe6QKhFSE0yk7WjIAbVfpR6p+zqh3IUF+W0q85QbILOzC2uvO826lHsuFASsx/LO+5x9sR2mR8Kxxgu26Q - -PZlgKOxHR9GR0/Nmah9XGy0kfnR4Tx34R0EhzWx+KGAfbC5+1am5tQZqR5uR9CWynR2PR53RxKx8bO2YY3FxwIB5fhkzRx4ygKR0Gx4nx8ZfmVR85ZZOR0Za3WR8Fx3nR6Ox3yx98WEguxD1Cgu4NSGdx0Vu7o3b3x7c1VcyR2x+KGzAu6t7hkdRLx5Cu7MR6GR7px21KPPR5fh8oGr1YSEXTRwTYNn5XR4Xavxiy4f88zDDuKNcodPBIVm7pbnt - -vx/pywvgfg3Gl+dx9T9oRtSbRwaMjt0BhioWtdOgZUF/Qc7Oj9Kgwh887LxY+PmXPWfdAM3RPoTcPg2YUYaUjmtU1fDk84MmQngXRl30swh1/++HW08u7Tx8GWEvx91eHNx9AADvsJffnEwLifCKOD9oqWgFOAB9TPUvLKR137P47XQwp3sENqWHB/MQBZMoWIHnSOwZl6u7WR7tZM5+yxCEETOix+sk3Acwqh1+B6WNNptNMHg+wOK5ZjSxFqXS - -xLdsD9xw6R7BCoSOzDxyVRxDx+NolDx5/a27R97JgHR32W0aJN30O/eTXx4i629DGxcPwqfZxxlRx5upQJ4NJHnxz79GQJ5lR8oJ+KO2Ah89s6z9bb44Ey5uMe8LMG8zqxvBx+lRyGO+QJ7+uN2NmKO6PVrfWHAJ9RXtbaKjQiHy9Mgbi5I/pJvsOKJMaktSLHh/nX0LzoGhNOK4l0xqXXEFusV/iCNkax1z64rbdsu3EeyvgBI0uujUTCdbx6Pf - -Q9xyER6xxyeTk05eI6lZdLQg/0DF7upvseio57x7QB4sQAghdzuwneVySvvhyUSdFu5827CVdpxzsLBJAP71Okh1ax0Wx6jx5lu9Wx4/ayEJ9O6oQu1ySfOMlUJ02xzUJ30RxEJ6P7EyU38sxbfQHnjO7H+Sy5HmtsYNx1CwaSAVBtCYJ56x8R61NAJmR10J8Qu3LxyqAInUHmUOITKStDd+EMAPUadK1C/kN+IohLKKAmtUP0RFDS6lO4X+4HOh - -sDgOSKMe6+YQXx4xB7yBdpVjEJ6Qg7wq7gx09x90x2HK9xdeGsg+OX0s84xFzzG6vfxxznB2Oggacy4venOdPxx4hzJwkHxyegqX87Qx/Sx6T+xPxyeGkGZPPR3ox3yO7Z+0XxwDx+Fx+REC0JwVYG6xz2x73eJXx9FG4IB8qx1AJ13Gznx1QJ6oJw3icXx+cJxI23kkfPRzae4Xx5Tgt5Y5JcOIk0b4yGByTVpIR/KLeHJf3CsGFWsQXbwbknvg - -OBFgGDoCxi2mh6luwiJzbYQphwL60y+eO+FJJJNYCkES2iHaANgADtxF2Wg+sMLR4bqd9Sh3Xa5vNlc0D+wp5F8eN1PBc6uXLKZx/tcWcJxuRxcJ+BO5gx7dx7QJyp0/QJz5uwK5IT3BCdeA4JYa3zq5UlqWyckMe3+4o6oqVH6LW1O//8BGxyh8kCJ6/O7aW2Rh82R9oolox4rh0Ixw41DAJ15BxIu5O25RezfO+6J85B4ix2qjT6x9Hx7hByiB - -yHx6iJ+TxxMm1+hx5x2E5A9h2jx/hO1xh7MJ60J2XxzRO2YY5FR+2m+GJ3Ge16J/yRxG22CR7c+HvB+OKXXx1P+ytR51Rynx9b+y1dAt+P/4N5Qhj5TbwZsQWyJw/gRf/HkQdHfRSfc9BdBtC5U2bfY31az9U2zbucz14rcIh9cedkZRchyrQb3lDAfxljwHKosBCezRh7FR4DO3mJ3jW90h7UaFn3JsMO0mupecZKOqAOfrJohOmUMDMDJ85ojb - -0HiVYHS6K8hmHBy5AKiEEPPAklP2yUjGAEGyUJ3I7Th8Amu4brHbfAawcM/tcJ2zI05KypRyaR2pRyMq7iqbRpskCZCc5d80tG3ynSMx17xzOh0ssq82/UUzebCv+/P+38tBHx+RBxziHeJ7826UJzCJzZ+4jx1zOwPR0EG2MIsae/mx7qx8UJ8hJ5nbE+JxRO8WdBhJ/pbAYCChJ0RJ3IJyRJ6yEvZqxabY2navwzxeW4LnrjbssTxMJ5THkGCs - -3BRR1Y6xAJ32XZhJ5pwoVwNcSuRO1RJzxKquJwn2GoLKw0qw0lrau6AO00tiKOZRCwmd4sK+Kw0bWAgJGAr1qMknBx+4DImfAfgCPG2D0Qjuh8WO+BBzqyO8kA6snY1ddx1cJwaJ7Ac0aJ7oh4qhyeiC9TD+rQ5EAOeRCGvs1Dtew6TWbRzj+9bNhMx77Rx0MHFoLzh86x+Lu9zhw3x7/WzUR3Dhzwx8We6S2/5J5Z6y7R02eypxx52FIjOpx9Lh - -8FJ7S20kOi6J8oxzUR6ox5wyAPx57R6GJ6iB2mxzFx0SzAGJ6CJxlx5ox5sxyjh+mx0SzNAu7Y0pPx9ou5jx0SzPBJ4vdtIJ7VRxSBwYx5OlA5x48Rzp+4n67ZB3Y6zrpsuJwz+3tR2YJ6g68Nu4eqka6NRJ9WRz1J4tHhiJ5QuzGx6Za08oSXx+hG1me15x55JxtG1qR2LG0VJ9lJ1iOtZYEC0KOYL7aclxwIhNlx/fa8EJ1MJ1NR8ph/SG42x8 - -ax+t6zVG300ILUNAYW0J8dJ0LO4YeedJyhs9kQbRJE8vkFXaq4RPvWna7l7Fcvo/x8SyKM3afdEkE5GDRDqxsIq5q4vPQC054qQ8fsaSxVQkOOUL6gZfZWy4FPTh0iT5VsTntA5CMVZq7ZxevHed3J5h4wM3iZW77KS9kgAryOsxVt+fgJOokkJtwOePZ2GIG4eltDRMLkzBMJ7tJ2t68zRxZ66GeAAHXdJ3AJ7YkjOGIhTm2bGm0j0aDO9kKAMq - -ODiRDMu2WVXYQJz2iLicShKpJGDQLCHQ4iA7i6NOIMB73GCgnDQA1zRdCG3E+q74HbDTdx9Xh3dx7EJ7bx/EJ10x/gx40pV2+dCGAM0Ap+8Ndi266SRZOY3aJ3AK4OLAhEzQx16Rw0J3JB10qZdJ16xzmfP8Jw8h6bJxkhy5LN8h2FJ7UR7HR65x55BO5x6+h6+yI1R9U2E7RjhJ3eY/5R9ZhzFZBXW0WWGiUt+dTkGwrR9UoH/hRmh7Su5vAKxU - -Erh7m8NTe5COyZhi5xxja9rKhYK+Z26uJUPHm0h6g3cXLDkJ1i4PpIFlJ2ZR6jHGqu3/4DVILWCquh4la+6aemC/aeT8G7ngZ1J7RR4PY3fnR5B2XJ8Zh11R84tcXJx7CgJrouXhsntKbVOo7Ju4HAg8s4sVRjBzpbbhm3dO4GvGGQQctbYO8ctcE4Ak1Wk1WQ7cVaeLBxta9E1Ym+yG++m+4a+/Ommq+y6kHHFGiTtPiIlbYGk9m8Vd9swjeE/M - -KpfhLqKpbB/vBx7mxzRR6g5e3J03J+Rafee4ekD/kPStGeSY01L31vKEtU4OrduVYjZGNtx+go1GNJOsG90N2kALssqwLdJGGNJNa6r0PyW/e2dVW7QPo0s0Txwr+5O9OrR6ZJ4aR5+J6ALapR/BEq+Ga8XMw0Pzgw4xONksiCnOU/rJ/aR6POz9xD8J6wg90tpMJ5TJywx5nR9Vzj9IrKe6B234e6URxkh2ceL70ZoB/h3Aixy4h69G/0rbv+3E - -dkHnX4kdEewH0GegUuB9UG7ymxkmyWJ0MCmAp7n6wkGNkUgvB36GsSB0exDn6+qm6ZQTHZtSB4xNZXFqPg2eqC7rS5+G7rQPJwaHQBPDhRzo7ki4wFLQ9bAwRREBfV7m0oFOJ/OJ3kZDIpwam6VxBblJ8hyhQ/MJ1Yc6WwlmeI/s+PjNzGkLWJhA9cYMAUMKyGAJaRu4EmEb5QAp2etUhMZuEl+jaqzWCh6QRwyh1fXttR4Sm5w21bx/Ap0pR4gp - -3cncgpw3uB5nNeZuJvDvRmhFUqFsZYCorFwJ/gp0G+IQp4TY8WhXqx5AJ/zayC3M3IrKx/bJ0WxyQpz6R/u2z4e1yXjQp93x/tR8VBE2fu2R62xxC6+Ix3/h1Eiu/h71Rz3R5ke84x5wnDfhxsR/NJ5n64tJwox9lR3ktXSh+qzMU8C/B8Mp3eR/Q2+LJzDPV/B+ox9X4NFjuwp6YGHMpwruxox3uR6VG75aTd6g8R8yW0Sod0p2isNspyQ2yWx2 - -hrnXJ69K2HJ3hMNUoGHk6AhjoxwsxMwp02R2Gx1k0IwpzbRgGcTICAQ4og2A5ingR4EVM8p8vWzT+/Ucziu/8KBTu0YR1+ltT+9g5T+h9yO1NtOQRy3R1YNlpoya5ESrZ1OT+k9/rP5LaX6MyFZj+JX23mE2m6/Gwt/dBrB0rBzHqAW657O6OE5+qa7O63sDQ7U3sGbW2LB1/axLB81adNa8ZMDsO5Spysc8vJ+sc+m+xl089Ur6+8kB6mqakB6E - -u+RyUyp+bzmAq/BwoVbCyp5vZG2kGy++PiFKljCtelbbdTQC+9zhUvc3ua8BS5RR1Nx38m3fGz7yNHW0/3JCpz8p7Yp96AGrdpU1FmWA9EpzQDD8LVACY+p2XG2bM20xITScKnurCcfBd8dN21+lmdoqnu56J0ixwfQeTXqhhwVwP7SSZJwrJ4aJ0AK/nuxB6yQ5DUcahGY9mEWJwLWfiagzWbjUJkpx3+/VVvhhibJxW7bSx3hJ+Qp3825wxyqx - -6RJ1h61hJ4WKgGR1HYKme7lRz/a0fazWR6sR+1+zXRwQ4mi1HDxyThz4Y2nxzWJ1FR57ExTJ+WR03GxYx8jUCv/OQSfhJ+RJ5nbO/O0wuyjjnlJziJzIJ6spwTG0tJ5Jx9Rla3u+wh4lR6lJ5VJ8YyqlR3WJxo+JZRULfIy/R5o73CeEZJmByscwkB9Sium+2ih2EB+l01iVcyp4G+wZQHSfuvJ56+2Q6nCQz7aFEB5vZFzB2vCD2+xOc0KFSZbW - -tdGJXfJtMr2HqJMptCV09Sh9Y+B0uwPxwJJ/Mp5Ym3fJwz0A/1OjDoC7JAXG7aM8cVITEI0rTxsY0820wvZgwtPbSGUwAApyuTlP5DikJp0jbJxJB32U/Rxy6p2ZJ26p5+ByaJ4wJ3caznMmqTDzs8/AUg8trRAmUp8J9Ta5SfJbR2Gp5Gp2CJ3ClvPR7eSy09Rl0Hu9szmwzmyYJwUpwmJ/GeC5lHCANZyZEwH/kFsAOO+PD5jJ1Y+sBGDOLbei - -00oWWjIEZDIJzAApzxWfwJJbIDO09DidSB1w6j8deisGjeyZhjQJzBp7ja+6p+TO56p2aa/J5TA6l2mdxA8n8nHnOPJEGp/aJwgIIHRRBBzSx/bR4lx/hp06x2bJ0kh/jxwZ+0Re4ZpxUpy7JynJ0Imymp45R3FJ4u2+PgpqJ3L40Ox6g+xHW6MR5lR6ZxwXgMqe3VR2ZxwuuJWJ/xO8NJ98AZBh/wY79gyrOu5J0wx4pxzDNvuR24SGSJ6Mp2ph - -zX5DFpzCeyjh6UpydJwnR4Ue9K6Imx2mp+Wp/Yx5mqDZZcqpy8p1oEhslD5Rz6MHx6kmp+lJyPu8Ox0Ch7xJ9Gp96J4VJ3pp/lJ6wor7J4NK4lJ0kPg2GyPG3PGzFR15p1px6zfuZh57UIz+/Je3FlizR5yK2w+3SGm3B1NexdR0Su5TggyJ3b+9OC773Am05kk2J2Ze7aao9YqQ42zHFZFbe1NTbuyNjUC+89u1CBT5Daue15h09EyLhWN+01OT - -zhDjR17rXS+0a4ri+y1aQYS/au+wBwhdIctUPPAuE8Vae4M0Rnc4i/E1dLB90LFCtWd7aszQuGxiwb7m+srHOrUJboKkAXh+WNmcO/AexAJ4Vp1Gu2ALrdRzy62w+7YJ8xuqaMD4gJKElolLgAHQxH0kzf+hQq3xR3GE5erKYGSqSe78hvgBap0s6U6WQrVYFp1xCHE69LWrDh+Zm1Ep9Bpwgp3QJxZJwwJ2Y3G47l7dJBggf8RtzUfGDnqd71ep - -p4bJ0wwIf086R9+i9xewLh2Ku+UpyBm0NJ0ge/+Qy3xzM5gWJ02R10e/qx15px5p0UR4WJ1Lp5mRymR1f642R6H6zXlWwh6BG9GkG1J5XB/4eOrpxHMh3u/3x3wJ73ap1J6WJxxReDpx9UwWx2Zpw7Jzaxwq61yK/8hiVp2uoNZp3bJ1axyKe4CJ4xe+Vp9aKLcp7SW94a4Wp3VJ47Gw1J5vW72RxInPWR9pexWpygx+mpz1J3axwLzKHp8Yx7Up - -xHpzekkPMuiRzlWetJW3ctXLWgtWxvjnFYao9huzTeECrUep2W6+51LSWiiQ94vCkB3xmhyp36+7stZEuydu96+3q+2Aq2dO66+4eBfD6znNLmBw6kcpjJ+C+YSwLB+Fg60yiUgflGaIWrLQXiPjyJ4NO1lp2Hp5uGxmp4Kx3AJ7i8pgAIt3uU4BAyrKWlGIu0AKCqFGjJKJDR9C2MRJiOHsALJ7gkO1ezXaAJiMvSAYB/TPpHDPKp7GGyMBxMB+ - -+J/DY7Bp8aJwXu1CFN2/JiZiC6a8a8zTD+o2Z+RzpwNdMtgLo7XFWykR4lx5Vp6UJ/7x1nx9MYZtR+M632p/TW0gR2AR3Hp33EwcpxaG9Kx77Wd3B/YBweWxCB6LygOpwRW5pkOCB8gRlNJ0xBz2lL0pz0R2ChH8pyS681azapzO/lyO3fG+fGyFp76xytJ1qB/hG2lp+2p2Dx3cbVPBz3GwXJ+QZ50pykxwXsP1+1z+JuC3qxd+1uGVewGzTfPD - -Byk1UmkKQ7YCkIU26BGBuc6UXNg/NBCKe4kmXAqyN7DN2sAfTalaTDnPtcBOQzWExJW6AgwOEybW8Bk4T6yj9mQ0/ddd38fRJJPsMYYfBx9Fxx2p5VIMkx3cm/QZ2qpxhpg8YKyUgQAKjljJ1cgOLPPPLdN+8FjiRw7PL0AZIgalOzWEBpwcgmSkLHzLuOWM4OdR/ah1R26OyT3B5fOxkc1BpwaRzEpzTpzMB3oh6aJzPa0TTeJkYlyIy0yPHOK5 - -jGSA/pxGgstgPvkSPWw6xy7p+/RziJ55pwZxwNO7rTMae0ox4hxyb+xr+4r+5rRPmp8HbV2pxYm6gm0NR6mx3BXCmx3NRyYx1mx9VCWQJ71J/mR+sR6Wx2W6olJ0eO0z++AZ+76/8W1kRxQm56J/cp4Th4QZ8sR7axzeVUjh5qk7lJ8Lp3ZB8z4irpzAkf0Z7FJ0GR10e7Zxwum+rh68R4USJpx/7pwAhkFR5dG8UZyBcurUwCkGi+yi45x2dhRy - -e+8BPOyHcJwOe++XlWt+yGh3eaMbtZ++6iw/3g0YcwukHaHTe+wTIOPSz9LlFbcgmWok3U3idKjmymnyUHa5huh/iG9cSzWCUGa4ujhdeNx+0Z5Gu+85jCJ/VJxTVHAJ7NRDxR1sGkL0FEAGwiHUnLqBIkDpoSgpJwz0+yPE5irfJEy0HEckwGYlsncBA6TR5RpsZy3tKSrM1+/NmGPcZJp9Tp+ZJyEZ5ZJ/z8I01P5YodwFUgOqh2YMCAWzjSzM - -q4hGAbJ4/pwUm8kRyZR9iHhhB/GJ/P6U+DYrp8WR3BcMVRy1G+xhy5Kugfv5wtPu4/B96Oyh28g29gZ1gtOtexNezXUlMRx1pz8R+AYH5B/hvGaxFS24ORxCZ0XRGSZ5SQH64atLeDp385hP6+SZyaZ9EE8WclMZMGmO+HhtLrfm94cJKlf1q1BrMZML4EImsE2sE/wOj0Fl0uKhymkG1hweBUDs+26WVECXVkkzLXoSjq15OxHhzpJwaZ1NABaZ - -8aZwT6voynAJwDBoqlM8zawiM6ioZKH0CDeBHGbmjKJ4Nc/rABsFVmZY4uCGvOcgCLnpEDGeNWroc2drewtu4iXdjYTqJ7Fey9w89h9Ep0xx8rJ9rR6rJ+yfmcnp7dhZ3Bdwzp05xPklfBJ+PEZ8MvABa73hwT+0Z9JqJ5qZ0Lh7xJwUrqpO2YJwpewuh2RJ1nR8/HF8p8Cp7mpw7pykZ96x2ox4L+54B7xe1Up337O0TieRzXK2bG9UZy0Z7RiC - -9e0aO2eAuSJ2hG4Mp32EOmezKW56eFr28SJ3LG4cCo3yvUE/c9Xghx/Ky6oLDByyWW4vCM1GfxJfLtTePi470Y9qTtDoIlY6Yp1sG6qOyeZ4DQDZoXeZ+yB4+p7whzNYNVOMaAKyAHxJFugEQ1A2SGzstNFlzbDHyyhqvSLL1Fav2PsGBdfJ6WO0PVgioHNrFWIuTr+68dFJ4Z3JR58oFSZ0EZzSZ32h7MBxfp44G26LU0pqYa4/TYk+vZVgIqn2 - -Zzl+8tvogK23o0kiIRpwXB7pp0Kx5Kx0MZzA65Hp3YdiSZ/FR/Mp5rp+fO/ep33B3ru1yB2PVBwuwYZ/s67KOwFJxQLO8pxbx2W+363Xxh3ee2NWI8p/tJyXh4dJ9qetcpyRzu1mN4R4m2gAh62p9cR6VR6MR+bp1cpzJZxvzg0Z6JZ5tDjWZ6wOXSnuBp8MR3Q0Rph/OgnmjkBh/ruzCU4D8+Oc9T63gGwj9hjFCDBz+Z86+6gUHXp9K+y2+3a+ - -9UGF+Z1KeFkolKJjZO/G1V2kGwZ3V8cjB2zByGJj/u/FZ/2+0DB6FZ9+Z4lZ3qkMku78e9LIsSR706Z/dQ3+JiIJX7P3px7u35ZwtKP/+0gVCQAJAQRx/Mt1g7K5xgM+6Mc/PoRceEid/SD7WYsrhjKRhCerHEcpA8yRYJCVJasxuTmHx3jO4oiNYx/cm1RZ42Z7cJ2zs1FQ8Q+OZRBBSTk0t28/liKXGtli5966BJ+hOx+xG32Dye+OZxBc0Fx0 - -0pwTh9Wp+QpwUrs1R8WO7ZZyCW4bp8jrZoB6sUJ0u8iWyVR/oZyZe9qi5Y24uLYUdQqq8xs6OBR1gIilVsPj2pQzR8XazdZ1Lx9NZ4YZ9BZ+0BLStWnUA8AOqcKIAPLvjoIc4+L7qFPhNHy71fo9s6XwXEcnUGz3sFZcKhanS5EhJ7Wp41fToZzQZ7NZ5rR3EJ82Z3gx62Z7eWwsB4flFYWewbh3uAUIxrYhxZ4IVrmYP9x+/p4HEvjZwTx3GpzF - -u1Vp2kZ2iJ0B9ZRpzzO7PuBGp8bFWMC3DWX0yqYNfG+R8TvWAsm+ZxJ0pW/DSMPh7Gp2DZ+WiOJJPAANXKC2iNLdJwiNKMqYWmoAJ4sAiM137KD7eqzI27AEYCuFI7cNSWzBepjYJp0h9WzdrAOuQzI3+6yp298aB6WCdAgEZ4xx0TZ02Z9ixzoTUykdD8J8At+m41q0xsGJPF8RBnMK9QgnhVyZwkZzdMDcu5p+6nhe5Z/Qx+JOxmp2VWoge8MZ - -+jOtZx7PGbB2+Ye20pzZp2uhyFJ5vYE4x2AQzHZ+1J484cEp/mG+MpxJxwTZypZ5J64I21Zix0GwZZ2W2+HZznZ7Rxzlp4lJ2eZ7WZ5Qp/vu0xSY5ZyMZy3x4Lh3kZ02p9zZ3rG4Pp7galRO/bp6dJ6jW2pZ35pysR8Ve+RZ3dR38h6YJ8PZ7SEqPZ8dR52e4RHB3GLbW28tYU26RfMU2wIZ8mE2du8a+2kuxF8Cih7W8bo7s1h/xu0e+4nrXHrc - -qkDOILHxIkux5o/4uxEu4Eu6jeWrBygJJm66NiHxm//iP1h5AvtRWNxm0/Z83p/3io269+x1HI/atoyFPoXmm2mHh7Kp28x01JzcOwNp5dRyJJ4luEYetWALtjDKTJoAF8qNQxFGgOt7AaokjKIlTBWkUxYNhUd7KwkCmW4uMWEYMlcfATu1Ue1GUSgxY6myKWwIp5Tp4EZ3NZ3Xh8aR2mi2pR2DW+tAgQxHmR7O0/LBfBGvTZ4uJBpAMjag5p3v - -h/Jx95x7S69Yp4UZ9QyBee/DCt1OJQw7gZ7GG9ToU+Jokx+VI2ru/vp4MwqI53QXV4hxeZw+hRhLI1HOKTX2aLhG8QZ0Fp0wK0gZyRh39IdZe6QZ0MpyZh0ox3yrrAZz1R+YeyIgtSW6nZ1pdMCSj/p/yIpc65Lp0vjv7JydZ76J8dZ8Ix71O60p3g/cY5zx69yQm1cXB28nZ3o511R0oxwXG645/LLXXJ/452Yezx6z45z8422RZtUO8e/2kEcZ - -0fZ4hk6Hrfd6wPa7GJhwZ5B5LNmPRm+P21NNq0EdNoBekpB5Iqu3Uu7fgEuc/f28IZ3EvBt4yk21qMuJWwL6SPTsNh12kEAe5TKTxblwU7w4ZX0Um+QGsqYpxfJ5m21Lx6E50NrOE53AJ3FLCvcB9GIt4tzBHT9Dn2Jd+Pf1LYMToi2+K7nLFQJOuBIudUWZ9E6XyZTEcpJ/F5Z/5Z1LbBnZxgxyyEMfp8ri9Jp3Bp+fp+IHPhx12dFkuBoJNQDO - -sUSbsL9Ycw59d6D8nVbRzjZwmp02igHx5Ke3MR5qk+Up8+zImfppx5qZ3ox+HJ5MCHO+SOZ4C68nx8Wp+NqTY5zg6/bxBIp7V2KpO1uZ/KezspzYx9B/dKGCDZ2Fe1dR3HR8f5EC59k8/qZ/Vux5unXJ7hJyMR7uhyi5z854p2Gi5zCp2ZbYuozOsPsZ8yFV2+3up5TfHVyVB7DuE7ikOW6y2602+5WlQpbaTBxxWPD5E0u+zeRXrWo7jaUZoUzM - -euPAWEW07if3p+CZ8i52MoG059i56BbHAJz+APBfpE2JeeiITrpKKK1JWiHoAFKWrL66Cx9aos/ONWeqSw25iOfyAiMPI3VCDaNOPFpwoYE71RUZ9ReITZ9gxzJwy7Z7mba2Zxc2+Vc+cGPQcAvazHWH6VOczLaJ3gp8Gp9zfJBJyLs1GpvbpzOZ/GpxQp8nJ8A63kRzxJ7OZ+65zZp/MZ4xVJXZ5OJNUZ2gZ4Px0AZ2vB6/B84tYsZyFx9c0agZ - -7uR+zOua21dZ2OcECRxycWbp7fpaMZ8VplGZzGO4m5/EiJkR8KZ+5p2fAFrp3Q6+bPjS26kMoGJ+Tu845+p6MVu16B0450yuc3Z4Op2DmKsVZGVfCra6kEreQda13+E9pxviDOEwI62gENJm2U/aGW6kg+LR2uBOikMO6+uE3PJ/W+6EB9S5+EBw3p6ftVt7b6kzdwF+5qk1Yn0Y3oWbDrJyBXJWaxDKp1xJy2x/jh8451nZ2kGxUonAJ6xugqU0 - -bAIwAGxHB7kU2StdiAL8JU1NrZ3yh6OgJRw5EJK1inEciRfHOwFaWGoThnfC5ZynKI1fSKZ7qe6+J/WZ1Tp9RZ6fp7Tp/Bp/Tp6iO2L6FTXQXTJiOyFJoEsuCkGc5/mAoOZxVnUPh7zZ2TZL9fcuZ2Zp0854KZzPx3CWyPp+ztZXZ3Thx1p+sZ+O0Pkp4VpzKx2QZwTxyom2AZ9B/bVJxTh+R52ndA0Z0e27q54eZy2R7Zp6vO1+5/Ze/2236J+P - -pb0pwx50UZ4uJ/oxXEe80Zyj/pm54zW385igZweZ2hrhaB9sx+Mc0R550Z2eR4ox9kG6bx5TW/h53VxsZZzeh6Gx94a+4mx/OzHp9fO2Vpw/h9C51oB7MxzPWxyPOpZw+h9qR4zdkgZ6MqWZTJFPdvy3vc9xJrFZY5nrWdUXZWjbJkqwPCppfaJeYmhn2QSB5siR04LbyU/wsvh0xQ8UddWEbQISgsNQVtWZlaS/TiQ2S0Mop3S/Re++T8tFtT4l - -ZN++flD2sBS/fokz7ISHBvPkJde+Nx3XZ65Z6/zC5lCUQ0OWqeHATiokBQHpT9ovXKEkDIaAIreDtXH1gjhMETRIEuV1st8oEWGxjhFReAVViNpys510p1fUA7Z4rJzcJxQ51+J1Q5ygp3BO2iC6YvCZbT28/s1DygJhFVkJ1cu30Abb9nkJ9jjdCJ965265xOZ7RBzVRwVJzpx6ru4CW35J23x8dZ4shZR54iJ/x55iTLc51HR0oB8C55J+as59 - -QZ6R5+nZy152ou4MZxJZ+uZ30uAfqrR50tUXx555G1x51OyLd5ysYmsZ8yi63Z9rKu3Z1GJ0JZ+tOwdZ9jvTh5wRp9Dhych3yJyBi1WO59qNgh4L/PkkxSpW2ytqHY89d1jUEldA4Mzx9vVT2SX+u8fdSBu2NjUKSr9R0VNcOpwg8UTeQl0y5LS1h1DfDIQ+c8Idp1azFmu4twyX4xRp/954yh0gVHfeM0aLUpp/kGK8FK8BoYlu2B7IrT4e2cRP - -WejcbAsCmyhXEsJR+7hS/UFCIyP/vLR+cp5Y6X16qKx9C2/TDm1566p1s52fpx6pxfp5VO/3HPI4B6ZdrJwWcKoEM+KDB5z7YkzZz65+dZ+tO/Sx/xZ4yx+h5wCJyIxx0R7Jx+yx8jxyVRyh507JylJ9dZ2b58Jyp956b56hB+b5+MZ/b547R7b553x0MmzNJ37R6IJ2QpyPh50RwwxyIJ8wxyF5qFp9Mxx7R87RwA2wxe/75zMx+em3hB5La4W5 - -96u8SW9yxzH540p9u52uxFR66XB4n55Zh0GJxW56n5xMR9I2mnVq7pQAiO7pQk2hPg731Z1dEqAYpIwIWmX52jmGbNrrztrziIWqKZQRA/N8Cw3NtmhTBIAy7SyFfiWOOVRHDJK0hASX51raJC5HJK/yoTkvDSUobyAT4UnKEuzYEU+Ka5gMq7FIm0MGMJep+tW+AJ1u55n5wehNn5+VW1f6nAJ+ybCxbJhA0WaunLDJeAnNC2iPNFG4KxAbcT2d - -WmDIwLkCNju9b4No/jLlGgiwEwqgZ4Ci1NZ/1R53B91XZL51Jp5SM2TOzJ5dJ9FczYaYo4Ous7W2MBC3g0gFTwEQxYHZ/2Z5xKEch37xyUp9UJ2SO4h5+8hxn5+W5w41KH54FJ2WJzx53PW2n55MR9AFxO2xW59Jx6/h5lB4QGlQpwdRz5x+8xxg2+NJ1EG1sZ1Gx3Rh7C567J/AmJx57w/tMZ8Je0Wp4K56fh8G59aZPR52J5/d5/UR4wFywF6x - -55c/ROYZnsTJCuWCel/bgfifC6HjuOi1xLrl/YMa0IFzIKwgjZKyi0a3fx3wMJ4VkfoL1/q057q5xOG8Wx9xh3RAnAJ/ZZgKyA+kXToN8ZEWeN7mST3ICEDhSJQDX1zfG5FUWIsJg9vVQe6HMt2vdtrORIkTp++h4+y/pJ+H8YdSePNfq55ixzgxwtZ7ko0tZ93O3SI4BPHBCxv0UBmv/Lra5+Sx81O1zfIpfLhp6dZ/pp/p5+kZ6CJxDh+g5nPW - -7GJ3fO9mJwt58zh/ARwhJ1nQnHJy5p+AiKfwI3QEpiiFR3v9KEThUJ3KFO+UuFUAwFxHyRWsQUF1kF7NR0oF4kTi+y5fPOIUNkFxrh6f2EyBE750FJ0mJ7RptY51sR7gzXch3Mx2Ix7Hp4QRzKcVIx9wx3MZzJe60Fzr56Ix19Mw5p3u1Hb5z0p8UF+QR3Px8t50FUJoB3EJdVJ8cfXgRzNQ8Hp4pZyZe1cZeEeyARw2x7455fJ29tMG59mdp2x+ - -Lh3t53o+wlx4JZ+Xx+nx9HR7Q2wMZ9GJycF/Fx9cF6CZTue71XjCNPzUw/VTKOvRsQ6dOx82/vsb+ZskdqsRi8zvc3dPpcDODBQKa4OHA2jbECNfC6d2nk2YEbbOy2VzTWBmwazifbpq8Ycu5fQiF64fJqsSmMw/zAZwO0MKFXfaYzRWltrnk2FZy1LZ+cO67p7cF4Du1cF/zO7YJypALT4XBZMKdmhcuQACv6DJ1cfsDKOKcFIRZDraS74PJ3Oe - -J5IiKsGv1gpVLKNJy3GzCaoqx12Y2+Jw2Z07Z/NZ+9h0Xy43h4cu5AvcXgrQ6SKlZxPvRINvhGSx2BJwjW5Sinqh/j+/B50D51wxzEF+cB1v+1SO/ax6pZ9v+LP+wVO9v+3JmiVp6VJ8guyPx5T+4mR3UtYkoNUFw8kBCYB65xNJ9aFwuJ3h5wWp275xlp1u59qMrUFxPR9EFzXbksFyUpwPZyn5WaF8Px7r3W6FybO63Z/Px86J6t54t57MF8FS - -YlJ8iB6Z+/EF+Gx1GF4DZ8lJ5vh9qqCvhyzkD5Z91J70F4iBDBJz/O0NJzmF+tLBmFyZdHZ5E0RyN7vY5xW536F8sZ3GR86UM1R3rYoUFxq2zWF25anyG/WF+UF74pac06/YQjSNi84mA9KS/ZXW02ZOJz5QXvHekXQfHbXMAAJ488yi+V5XbephvWi7TatAfDmCtAQV3jV3vMvkwIWgAodYa0DbkJNV8xPs6brjNoebrvF/umkzbh4KazSYQOHt - -RZLfgZuF8l58pzKl53dBxpRPDDiDIIf8RY2q05/Gx7dh9MJy2F2UF2EdXAJ9baAxLCgVLz0Hqp/LeBpMPLvsUQsdw6P00QoEPkKrAED2ts1GbeMJNB9INE48IJqjezTe14NA+rWQVLbZxsDms5wKABs5/ny9L54B5zs56aJ0Xuz8zPlmEn0CIq/8CC+9qG3V9FGc51Qppr57N54dZ20ulc5xQp+lW3LZ2/p1r5xRFxkR9Dhxb587p6uZwMZxH5x7 - -RxPZ7HZ+XJ/5a00zbh59CZ4CbiAZ2I5zw59xwLph1ehwhh+CIClpyQZ8FpzpMtgkkWPMdqIZvOi27mmwCm/JPUWu1KZ5xh6VJhgZ4L22RdDHB0x2ySoF3ZwUZyJF/5ewws1imOCDFmRJ053AJlzISBZ9BmMKgmLEru55KGyxvemFNZF4sNOw4aWp0Lp8RbYZOlKOyiUeGwwLZ8aQMSG+l+4ZxKWOA9Z2zZyRZQj3IyBABGQUJ27p6g+yJh3KB7tA - -o0+oUJ2cLTJh8KOxrUvFF+xZaFFysBOFF/H59p596fJKO0actKO+EvW6F+7p62/V561gwuuEniU3W51A4w1oD2uxGeBc662R94a8JOyze2WYtswUwF6n3UbezJpGcneC56kxy1F4M0Mbe+1F1Ch+Ch8tM3v6w1FyyIB/+LuZ66e6JheVCVVFxGyBSmzFF1qhO2Vn8GxS1nYAqTHI6B8Q54We5689caweznwFMtF/wp6tF9Jh9pZ2erMKW9tF76ez - -yB3JF4Ay6e0nwpwWe0dF2GVEs5/VZ1xB9ym86m5dFxSsNdF6p3OdF/dF2TKa2C34x4GdepsRgsTNw7g4yl8ZOqmX2zm/Kj55Js3kyaNiScY0bfCg47k6T6FUnZbghxqHcqHRnsBF54S4iKp/gPW8I5YvClg4YLYpxYoQ/tXDd66oQ582OoQyUrrKORbfJf+9qoxMZJC46B+++5bzhcPHVv0UwFQES8c9U4aLOe+Q7vtdenp0e7bVh+1ohE1TRJSd - -ohm+3G+3m+ylh6NW/tHU7WzO6/i1ZMNHeCIo653IFtCm4clT6zOc7DwhuBeaK+8kVasJI5QtmA+XKYp7VZ1yBzdF0rNfme69F94OHAJ2uAN7qPdnjq6gjMFv6CjKANQr4AJqABKrdHu/0bmBMFoxrgqALshdQFmXN30NAEBJR9NR6Xh2HzgVF1avfLJ2Q5yKF5150gp9+Jygp9wezctMShLMguB3ciHvsmB4i/ER4EF/gpyRck8W9Sx+GpzWp3OZ - -4QF2i29p+7955/MXUxwsqAMc4Lpyhm4rTIkx2vh47pxNJLYF0HTC7FxoUZmu3VZ2TPJMF62XtIu47FxA0yXF8pMt1e8phxXF/nFyYvDlZ6DByU54IMIC8dWE8JWxeIKJWw4HbC1acMKSEMI62KJgDB+FZ8AmTbrWk3gv8TYuv43ij3ADZ05h0sh07F1yx1lF0YZ5J0uAXMaAEn2GwIMYUpeEo0nKQADTQM/uBe+auObDgY2J0sWyEXJztCu5CL+M - -upVDp0lF6Qo4pB0je0B68hFx+gKhFzjay/5zJp2/5y2jKhSC3IQSSGQbUSLlOgls2SBJ85J5ye6sHb7x4nK+828zZyf+5Xrgb5+kR7VW/fh3amm0Z+ZFwV1FzIcpx5ee+IREQZz5ZlBh2NR1MF+62ynF8DsrKB5XW7NF14Jsp50eZ0g6NeZ29exnF9Hp3pe0OWyVB4Xa4hrVNu93Z0Ql8qW3Z6ykBMrO0ZZ/ZZxo1cVF3kxm2CAcx/Ux7nsxWrjH - -qrpFxvAFWJ0sx+gNeTpwSc+Uzrwx6d53QZzC50mF9dR+4ezVp3757NJwH56UR8VJ8Vp5w5175yp57wB64hxMZ9nZ2R58eO9m57CQi855wXsbpzo/icpyF21i5yuJ5V9h8p2ol5dZz5JYth+XFx7lJ7py9G1mBf3Z/lW4iUP5J7Il1tO/K2om+epF4hh5bp+nFxYcdXFyXh4Zw1Yl0KzN4a8rF8qB6p3FCZ37p/q3V4R3phz4R6AZ4E57zAoJF/G5 - -4fh1Al7R6riB+OR8FR3El9KVAkl+JZ5El9452456vVad6826eXg9AiLqoxh+8h+7qOZhR0C43++4xJS18azmNUdQYp2w0x8++XHfGIV+R5bNSoZ1U6ehuzFU0LIouex7LqVtV9Wptpx1ta0lxzvGkS5UgViQ229vkLgyDtZ7t/K33g3itRSrYYk9nFamh8N7VUh5Dgxm8ZCrdW8bvtazFxIEBRJbGh7oc2WPaA7TqWTpfbcx7e8Fecoh2nQNTy52 - -aZwjgAE55kl47pHAJzK1Hj3NAiqf+tKyIxuuhSNBZM9nP03D1Z6Cx8eweo0cofrnwIiCnrujO2+BsFDLTZDNApxH+ysQxAdcTp/2UXqJ+s58KFwa544K0a51lna2Zwhe9v7LVRdcORMq+cmogEHW1TxPoAF7BwBKnf4G90Z2RDa5Fx4l1qaiVp5XF2+gbKZ+Hp0ge7bp2mylY5y0p71RzwkNwlzMR5lpwZF1Ip7ElwAZx1F6DZwfh4yl6yBxpZwU - -4145yY55cF/t59OhBUF3G586F1K27Lp7sFxxAc4tU0F9ox/QlzRF5EF3YxwZFzwy5AF7bJwQlzylzkCOPW7RF+MVbb+x5c7+u2nvCDk1soyrOew0zjBQhRzcI8LvMcRY4yd5FZUMALDTYk9s9ejR7J2ShM7EJBlSk/dZ+5efJwi50ql9xJ7Sx3AJ7NFCSNPKlMvcFugHWiD65ANYAvltnUK0nJYKfEW+lQXZtGZJPbUdymNJM1guME5wVcxAeIoB - -xp515zKQ547ZxCl1rR1Cl+zs2pRzJ+61DQX0LHK7KF+8rn2Lnv06HF0qF0EF46gpHF0OZ//Fz655zZ7yJ7r50dJ40J8v+wJZ1Hx99524l/bJ7il5aF3C5+Il0t541p8mF5Gxy6FyKux2lzcR6Yl5woiVpwK5xiuwIPVRF+WlwFG5JZ/rp9iJ53ZxJZ62p1JZyol9rp7QF0Ol9xF9la6We3mpwax2rgXHJ74l1iW0ul5JzCul2nF6xF41J4oJxAtX - -il/Il9IlzGp1Kl5Ol1Rp2el9zZ6mp/LOxf0e956Jjj5F7GTG0Z4G5+INZn4+EXtMncVFG+l5EBSOnbhJMFUwCJdiR4L1fEPQ+TGdAyvPX+l2D9kJszf5uPHelOUMdYL/Nj59H7cmsG7NVWpTHzKHQ/85PIR7B1EIM3sEiIMwG4XdkCTJ4iGE9SzHOxGZ9Vp2Il1Lxy+l+A5wLWJD5vRHPUadKCmluP9nI75XvunUADAOFgJ3yh/9sFvQecKC+q/O - -ctIgAN2IK9kCEy2YwCh1o52OiGMB7gB0KF3+5+Q58pR17F915wkp1gi0hFceiTdjnv1uBEQVOBvJZhp3b63mhNY8hck1T53SzhNZ5hB3/p2QF5Zp4Hxyel0ijKgF/Nh6ae7Ix3X0D2R4gF2yl8Z50xB7y59mO99DOYlwdJ+aB+wF5NRxG8nf2hQCDlJI1Bjf54r3UHJ2Jh2JxNORzZlyNF5KZy4l1I4Nuly9a2TypBZ94h3Ol0W5xdZ/a28R56Il - -y2lzMF5xe3MF4Cp3Flzr5yql2P+1HZ7SEjil/ul4458n57+WtnF7guxi5+jEXXFy3JzRRwY53ul1uq7p54YB2OZ/RF6WZRl54+h4r5I+lxe5nxl9hRsK4v75wZlw8p7Ue4YB3ZF1uhy2Bb4ZzQuwq/Pw54zXauhL5l0q2wH9K9518Vppx6ZFoJ5wKGzb0RNl4znqo2zFlz9q0/8/cRWxsyqbUS/WTUIESwS9mPPW2Ed2BqfRfnJeqhR8F5qhRux3 - -nPI1SVxTWDq+5LuDE7iR50E6VKlW3DBw5EXmEx/9I0tl/XjAwM9HI+5HZv8/zSH0TTkFpELXdlmf+0kaZIlIYc1Xg0QmXQRSDE0G8f9J2CZ+w5x051Nl+om0YZ0hZE/iTt7BwiJ8LuWSJXOiAuJGDFeQITq4bqR3KzYB7xILPSWS8vsgLSLDpsCdJqdx0DZ13OmNl84Fzbx6KF/Xh+KF8BVMrEPnIkaYoEuT8Xm91gbMX0mGc5/BIsWl+qF8Al7b - -RwSlxTcOKZ7gfGNl8d58sZE9Z5qJw1J1UUpH4yh9AFLn/1IRM+l50FF/zl016MElwp5zCZy5lOYrOn2IAgJO+FoOpq6hEMjdavYNfW2IYF64QxexLgJ9rONXqe78lH1sAmLfShvq5jTqrbnVp0y5Cy5U/59SZwB57SZ3TpxOWMRpsSReTZlw6vTlyOTdLUAohszl/MYP9x+EFw2K8EK2xlqEKz84x7W29JNo09e3rgcDBJM3FGAJ4UByy1EaOgHl - -3AJ3ehjR1CNRACEHW2EreBW2KQAMtXEb4I0aB4JwNOAN0IVIKnfIiCjdDk2QP5rFWeCo3K161MsJ247P0dzezD+6+9XApyJlx7F2Jl3Ep97Fwkp/MB6L0gp5XYZdsh+/kSMGCyAp7l9SRU6JwNHQ1l37Mf3l3YyCOl6UJ4sZw459jh1/pycFw2p1WpykuAuZ6XR7mp0M2ySe1KyZNu+H69mp/lp43umlF0OIOOsBJNuSl9qO/awEwl7560n54v5z - -Pu6gezww3tewgF+85+Xl8vuzVBzfGNaE1MRxflyXQFfl3SZLVB7fl9ipa4LciPHQyciQ2kBylh9BZVoNNNW4pm+v4ZIaAJvNnm3QkeKbAKSIyw4JtRXEqBOKXcl8F+9xnoCavLTS+VPkU9QFulRoAZu55Gx/fl+aVNH+wZeDfl7rQnAJ8y5m0AKacJKTDQiIlcCo5naAGnl0/pJO0xcNZ0xaKSBho5/zcSsh7K8724tHQ5u/l7o5l2uR+bx5Zl5c - -J8Jl+7F0ml8TZyml4tZ59hz+B6tzfpYO2Iyye3j8aXUHml8IewHoAxa71FsruaEF80UFRF9r50CB5hJznKRVtPIVwxF+hBxPl5lF2Al5bJ3tJ2t5/jh4shYLpx0J6zGyZl+LiezZ03QQoVz5p+vB2i5+5tqUZ34Z5FGazZ9Ll1RB5YV7As/el43x9R57H5+YJzaFxCR+qmV1lx4Vyvl22l+4V9OZzN54EG8oVx75x5J6el6Zp3Qp8ywHzlzAKq75 - -5ZR1hh38u2N6/EV3JxySF1p54Mm0kVwBW3Up01RwnF7OZyEV/xO6C52B2zKe17JwUV5kQ/1W7MEJKbcZhaDR5MzVEbaxvhmbOCBWw00DFwNKqw5RJK91tWfyuFDbcM4KSrbsIl52cwxe+w3rdZtZitY7LloQ4zmeAKmLeT66zYo+aHWXrb8Z6okw8VYBux00BLC1a4QrXWc0ym2N5JJREJ6WNHhyYJzY6/kVzUp4kmC5lEgWIztpKdpr4Cv6FYrE - -YUu/9FiGQ2gG0BzhA2/PVC3vKxIUWIiCjXEReApCx7xlxpZ/xlwSmZMx575/YQKTl0rJ+Tl5Q5w3h1Tl8nBwq44TrH4HR9x9C4IZWC4M0pl5sBzl84659Gq7cQnxZ+H51Il+FpylW7Zp9Wm0awIPl6cVrNl8ql+el8gl8YV1W26yx9pl3Ql5ZZzyjPYV+xa6JF/Bh4OW10wkH51w50Z51qR4Ch9fO61l61BZo57EV+SV55JyoCYvvXbM5aUZqeXc - -/ex0dbicn4+6edhw2hw7phWFQgl/tWepmk9oZ/SV4NwGvO/pl15bHAJypMOCqEsrkohK+MRBlmrIFaBG7qBkALyh/e3ZlwCZ4rnSZiyASI8bSMXLKhzZ/Qg7FzXF9JR4iYDBF5CO+6hNbl/+5+hF3bl0B5w7lwYhxEhMN7MBB9pR0hytEcvZIAAF3a5xpp+RiXAnaHZ3cu+iV4Up8hzgFx32pz6V2JcEUp+yNoIlxVp9Vl3Py4kl/gu/Flyfh+G5 - -5Mpy959sZxAZxKl4cpyoF3IKRVl18FVI57iuyDPWFl9SV1wHolF4Npy0kc9Z9PBzz+4ZOtp6zl624BzYV0Ah4urCQl97a2Ql/pe65p9yLlLe3qWyc8NVaxXJ7xF7nq7ZlBvO7LSKmp2JMTHWzJ21TILnKnNuynKIGOz3Kb7ayuZ9Eh6De6fl8qQYhxyqO4aOxYJOedESlz6HkvgLHB6dewkFxKe1K6+F4MHJ6DzFCJynR9PZw9G0Np2EFxbl1/Gn - -mV3sNC0kem555lxuV2JhwqB4vhSwV30p8A7odsNl62nmgrw7Glw2px7TDEh9EmRA4FXRxBZ++5+6TgyxF6h6QlwxwmmV/t6x0h0rO/w9YBV8zW4rOzQlwL+tEpq8fltemOsH3J8veI57vDfGcZ/OlU7cctMpirQKFbd67jF/d6xX0+hV71PGhV9Fh+qOVFh1KqyOlQAq0Ju/fbUcIJOo2S0DlLQ1h4F54CM8F5zuLVFHXuLf3HZ+R43WY2+LMdWD - -FxD9J7QxwFSEk5ql9fCa/K5Dqdf5q8mR0ExyV5qiVHSMCe42hgGQfCPhzTqpEf3p6rGx1l79mFQl+ohzaC5rF+j3Iq0N0ANpMLr/PEANZRMbAGpkXMMN+8ERoU+xCRoHUBIUK11sttNeRPAedbn+ZGlwYl+pe7D2uGFz5W27F4mly4F4a53cJ/bx62Z+shzctFHC+2YwMx7PYcL/WBy6N59Xu05Mk6R2qF1q4/khJllxbJ3tR5sV4+Y7LZxiVyMR - -0gR1EBpzlyHlMae9jlyB0D6Jz1u+vB8lV0RlzGF2STMx84K6EYJxjdPDJ9zNrQIa5XefJ3XJxlV4FoFzh3AJywqJ3XMaKkaouh2KMAKyKf3XFBLFPRmIEt+kZHqK/0JLkOLGnEctf6812RnuGJZG+501l9kRoJly0xzfF03WxFQ6/5/21S8CJfTPnIo7zZbUJa5zBVLekwWIMw54uoKDh7IVwiUlLl0SV92x5el9x512l8Zpyyx1gmGd57tV/Kx1 - -wUgFl6Se0vrptV5Lx15+9fZOlF8i6Wq635F4yW/WmP3R+GV0ASkuV5wl+Km4PGjvl26Hi9V5aO29Vyx54uR7dF20jCjsA9V9JZ1d54CB2rF+5+4DV9lqgqlwZF8aB46m/5F8yPEYHcJpzM+XdVx5+0DVyG0ZnrE8e79I6SZSJTY9l4VFVD0+HPNkEztjVOnQHGO+R4Sw95h1G+T3JwmhkUXU0XddmpWGafetqCRifhPFwkx8JFzsVGl+/dV5DV3A - -J0YUniuE/J1KRCFyGwxp9iXFTOn2Pci61V8umA+9QxKP6DvMJNN2yumVbRI15ykl7WKfz03W5x8Vx15/Xl2NXRJl0tZ4OhxQ5LICTd3etZ/JSvAKUtVx91L/F88W+ch0RB3fe6Rl8Y2+x53fh7Lu+0pyY58mMj4V5mp7/h71RzbVwBh3bV8bFXMjbO3eqsa7YXxlhChIVcIv+AA56gVy45w7VyUKJxFyJZ/u5y5lHlVDfPUNZMWJtvaJdStD6JZs - -//ZKw8vYzad/ScMI3MfIAftNVMxP78V02VXsDLV8eOy8B6d3twp7z+E7S3czOCl05V5Cly5V67Z71QVA2vJSMqfOtzYBJ7HhaQsuIV54G6HwGil5ouHIPmpl3qx2Vl1XuoyV7WYsfhyru7GF/zp9KzjgF/UpxUR/J5xiBxsVqXlwJcJscMNl1HW1wp7LV1Sl8sZ8WO/iB3kFzPVy3Pk/KwQ40lzSPLV9kevV69TVPPkUq+JECoIUWxSDp7na5GZ5 - -GVw6B2Dp5ylx457PV2Rl4ekBd+AF1Ly8FAuPK0Gh2ACHDyyDDCbahPT07dW7bEIB+La6i2WK1YgwXZewYZixzrCIxguV5ny8eVx2e4rVx+J8EZ7RZ6EZ6WNKCjvs53zoD3kCyZ02oD/ENQ4HrVzPtCuJhs67SV+58NCJ/m5xHw2SJ0gZwBZetV0dV6nR9Chwse+cF0ZB6KB4vl9KZ+lp2JMaA5x2e3HFyfB3We14ZzQ1zpl565yl5ruVw6h7PZ4z - -hLbm0ilQKq9i++dpwy+39645SAD65H5zyFbE5+2C54k1G6zuhqvx4bFv0AszqgGngU1OrQVepz2+G0W63Z1XDdQ1zpZzDSK/PiRjJ8ZFosk9ALwai/uAk2IHnMQ9K7kEe3J5ZsuHFPvPQ5wkCpe3N9RgxUDqayHDLG5wO05HU07V/+LdEJ0XV2Tl57Fw3l6rV7/BJCRS1yCyWX25/zDrH5X/eOs21/F5he9g0vHCzzp0gK0zOFnJ8iV7Wlzm7Dxe - -wZp44l+qZ5kZ93Vxoe48hymR/yl46RFW53yl8fI441/Hp2DgzR2N+k7zmWgcmOkFN+xkPTPdbO3BnYT/nKWBufJ4oF/yl0HV3u54KJ0gVHT9GwJkCInilcnLJEtlg9AzQKOatzBPGblwxgh5LrsorrAm2nEcpY18j0NY1wo0vnF4S+mPVxcp2SM5wV45V6418rVzavTy5Z4117S5+1ipzMYhy9ZErKHnUdMq9tZ1cu34mgbV1HF0A0KoVxl+BsV6 - -cB1R4GAF02x6kZwSB30Z/4l2FV4slKP6G167haIPahch875Lc12Xl3R5Olp7Re9x5/fl5cpy3dWEkxtqhvcjhxtAidCQrFwA6RavTKgQGIZxsmOZR5Hl2Lx1H+2M1/bB2cp3c1681/LZ1QID5nJr+PWgOj6FMXJJJE05aMgLMykxl7MW8KYkBSDvEYwg2S8vsML4mJx6c5zlD8acJwnmGdxzXl1wV8XV8ml6XV8a53u4dOFF8fC626gcw4xN58o5 - -mmOrAEFwWl6POxu+LY8ZN588TXKl7bR9FV9el+dVxh56Zp/E17Vp82pzIl8tJ3DIgC43Cw73BPSAyUxeYc3P51HlxEF1Ol+K1zK14i169GAvMHFTHxYZdquF+sU4NahJkeSHyy3KHlC/lABxMGWCL1lSq58VgaccrtBB+3WRZFnJwJlzpF99V8NVy4158V241yrVz8V9J9Ft7KCGr3cQ3o03+6iekBAlEWXrV5TFtxZ8f03AyCRB+Y5+l0CQlMfV - -wtlwqIfap94R5dkKXZ1PF4ZZ1Dtqw12A5xelxdV9aB+DVxl+6c17mR7GfENV3m11bJ9tmIW18RTfFXN9LjqFR3iNOGdFLWOsOFhwFzTOsIm1e0rvW10F2Q/iB3PGw7hV7HrSkvBe8vhcPtoZ9c1zRAOwl4+KTWu0YZ8tAHheFrmWzQLUAF0hrm45OGADoplCpj8wYFU4WncG5okMmWUWZ/dOSeWOxUL0s2LbODpznV/xSndZ6617Xl9wV87Z/S19 - -Cl4y1/+yyFqYKCLBAwrGYxakCgPQ50E16BB77ADIq16Vys7q65zFu+YVzPF1oV7Qx4nF3fWyqp9P0EW1+bJ7qM7PlwQ4lQgI9V+RFyh3PLa9+10B16K14b566J5FF7WppSu2NsteG4nF4dVzrlhFF+g10h1/B18Sl1xFwXZ7a6+h10812ulzG1/Nl9J572p+4l3mR78R8YV6mRzE115R8Zl5aByYV3Lp7Y5/GV3h14flzAF0mfOVF4x12gF8ovPg - -1yWkGW52x1/Gq4GRxGJwyx4h10w1ypG6FJ+LO/Qp7+10kh1+13lpzBeBg1zHF9RFyt50Cp6XRxB16bJ6hBzh10Rl+B1wJWYSV9e8Ezc7lp98pz+12WaQ8g3+fjYBNOEf26WI1/hR9LKwulpjVyvzUdljkl8f9JPPZoRrsZ3LU/i5tgjT5PYFC3R08/0tXQxbiQJsyaxVVGVkBxEyUEbZNjYcLh7+/r+hakypEFfRSdbXqS+T/o9ATVKS2weGZ27u - -xq110uyp1+VV6vl1J10YZ4DMJwIL9GITij0CC+QE4wgwiCaofy8I/+hrCouojJhrBdF1V4YoV+kIBsCX+14lMIB4HWUZJDC1841/u17S1zwV0e16ml/BEplhZJM+qQNdKXgi7aw4YW3Rrls1wFVyjTHB5yFV9CV0xF4K1x5Z4Sl33V7ll7iV8S20qZw4l5q1wsRxSB81VQlV8N5ppxwt10VlyG0ZD5/brbg0hpQ5ok3nsA+++90I3q3Ex4zV6ulx - -1p/WBeKV7PF1q16QGZyUu98VK8H/PtEANsldtADFymZiDyAI/+gVLpP2bpHEmUQkCgSIERtsf+7Rky2ULuZ2tO2HztkhyBV12h9fF2610rV7Ep5615Tl9613MxZ0AcC0BQ8nNV/VxWXxNVZ/5V5ye3zfCAF3/FxHsRM1yL54ol4WJ7MZ5Q3jvp7/IMPV3g20W2a/G0o52xXn+25Al6kl6CpwqpwCp7isXnV+E56SzfoR2mG6Ep8uKF7Jyc18JqyV - -62lET2AjQrUspzMHAul1ZYPRh016nv+3KGwEl193R+nICID/+0f+wgpAZhxEp2NF4lBy02MlB9uhegl5uVz5l4VW0lBztO9uhfKW2FF1vl04l/L1+r1+vl1dV5vlxdG2ejgLx5XBtk3dwFwZQYZzgN9c08O7o0fR6XQ0lrq513l5Emk9i/Z5Y8oaKOyynAXZXRd6V/3KbzhMgNyp0rF3917tO+q6wlM4qW+QlHAJyfsLZRInUHoUoQAPFVrITGmU - -PEDBsfDGIo/+ujMNjExrZJgqHEcon3WqrC9oGeFkEp+lvMRZ0sI7ZV7E10fp6D12A1zRZ8cW/2hwK5KFTPFtCxJHfUV2Z8BU5VgVfIEtVyOMqzl4N1zTx+q1yuh6uVzhBwcdFu12Ew9c1+sFxy6+Syad1++11EtddF0mq2Kl55Z5yB8qByP13ZV31WyXHf+eEw+VJvnP1+olpUV4QWXZowTBWy/ecakbrJHe9La77V9LZ49F+P11Rh3RJpzhxIl3 - -AJy7mHFDg/pE+sECIgb6u10nqI1K1FahK/V9xHJ0/kTItEJJLR3CgygJNIGf53JvUV4l6TW+uW9WZ3I5/nYXV1zS17M1+D1/M17ArS2jEqMmPtLqYQvDdxx5zLiO/H3W/ml+hOwUYKE18FV7Yh/zTPkp8Dx5gF3nun3Zz316x10ZlyGJ2d10i50J557Wn2x0c6yDIkUFygl3Ix/rEh4e2HBNGzVGl6fOxsTcQN2Cu8Vl+057gN4P1+NR2QNx5zL/ - -pwFJy6xwgFx1p4Zx32W0MFykFybyqGV3TSgm5z5JZG162V0oHCYx2UG9kmwk12bx5IN/omz0ON6FjkZ0IBEC61INwoN5SV8yB3Snlqx/8R8wvYXR8sh77p+i60Kl3Q25/185e8QFzLpwW50g7ngjTYU8510x0e7M3jWF9F1ufIfR1LlbMVKg0g/c+IubseyVGfg+V9Axxs3tCVsU0ME4ME59F8YU1Q43Q49y/YH+y/ccH+0rF7oN9PFwKlz064YN - -1rF2NFPTQOLbmrDd4AP34m4+H51JqcOMbRcNbCJi3+Pp3B75bMjATwJs9E7XNiDodtYf+0L1+NWXf573R0zGwXV12zEX1yfp5aVxA13SZy8CK8akEwYTmjrKBIVPiani0PCSUtV9H/JCV/FWx+109V7QpyxFxFvScB3Ke8UV9Im8UR7j14qZ/659t9vY5+qmbLl+gu7h5waey78lbVx451Kxy1R1ZaxUF/lVQ+F+sNyk100e/lVVsF4aG0sNzsN6 - -wF9BDrVF4oN+vBwY50cFwJe3iV8ke3G6cxewGx1QN9w54qlzybof1+uZvQNzWa6ZLfh2zymWEOEmwZQNyQNzNO5JR8tmBbV+yO6g+6dJ7/+/BhMJ12c11ll3w24L1xwpxHZ5OLbnZ2mG1dwSiV5I55pFzI57VW8gFwRBwt5fj19GV4Za+Lpx8h08NxUWD4V2FGIaByPB4SNzZR7bpxkBrc813Ucw45bXRych6K+odLfVXzC9SRwsC5INTUE4VIQI - -ktalzcsobfTmmrua/nsU/A28F+iSM/A+DBVSFYx40LU9rqP4B4g0vZDWauhXHZF1qb46ihKYYQHW+PFzoR00wIeO46lzsVESN0yK5VV8ugPJOgMCFuQbXYVohDF7lH16StGwiR4J6gwIloI67OjUEXWzt3oM4Hq+M2Y9D5KKVzaVtXZ1fF+YICNV4DW/KhxhF7L5+IHB9EuuDgN8FER0i/KMy7y7cUtsj18E1xE8dXievh4vh2mF3hp4eV5W5+AR - -5+yv7E65F0Wx5ul8GR/N593R81RzWFzj2yoDG0Z6i55eY5t5+Ql6cFw8F82l+QF0ylyIlxbp0lp7PJFNJ/I5weV1K1+3R8Z55WN5kEgOl9C53sp448MA57UZ3mxz8YaPl+gF1sN0iuzINxVu9yQGsFz2N/MN7VR/Wx60ZdwN4k162NzRR1YVxsZ/WV/1xhnx5PVw62/TFC1pyYK21p0FByZl68x+sp0Q1/nZ8Kl/OGyaelq55uNzJ59lR0ox4Q1/ - -Me3uNyQM29E69u8PS1a7R8M3aqa18b1w3dk+yR1SUIghwPzLOC4qtpMCzP5h5y8LKz+l3Ly01Sc+Xo5179GvEy8bNlRgcD/POxx+tnqgWLNo2CctfsZ6hqieWEbuSerpRrzhl+bQ0nQnq05zQNzRAEeNy1e3uN3Hly9nAQqpqq5NRIx+r8EPMfBdiCsqsggxcV2BmwlyJ3QSYbRs2xq8Il2/W/VDiUkhcnF5LWzBhLu16A17UN3fF9s556N+X1yY - -JSQC8tnFgoaEOiJpv9rg79cGN3e14xvLyZ6AFx3Z1tV77l1Wl2EtNsS3WlzpB1ia5d++N1+lW6MF8B21OZx5umgN+6RxkV8pN09sjFJ8mPI3Z7hBywN5mN/JN7PxwllzCE26F8RB9QF1ul5B1yAl2kKP2Nwbp8jxxmx/sNxOm2813SnvZN9Gx91JyLp6aagiu2mJ806zB11xh0rp9J18D52LyA1p9oV00gKIfLyF2cF/pN/c53BfbGl/cF/zO5HZ - -xpN8WNzi69pN4el/FN69Z0Q0+VFX+x0EpbR5jNSxi/TZcxxVbyV+/8/I09se2blRMLiKw3nZdY0UFY5oXtTi2cM6v3SDJ+QsRZfRFfWZyPhs8CA6Nrn+VpcC14yZdEzIzWsdZvvbknCOQdG81S7DOBps9LuhjGiMZ0+Nx7U19ch/bB7p58dgHAJ/jHlh/nxJNgAO9EjJ1aCpDITEsfHGIriuGCjon6N1uVeJDWOkS18LoOACaI+ROY7ewXol6w6l - -P10xN5s5yxNzL57Jp1CFNGdPdtZAc2eWnR7OImDIlb11yj1w4mJil/5N8K1+Tx6EV2Fp+usqbV2o8IA11zZ+9NwON9WJ8wN5bV4wNyyO5Ea1P1xMpyZhyeh2Kl/X1RmjXJKW716EyymNkuyz1fonTG5wseqXWGzy54dNzcO0753AJyUQ/LeGjLgJ0sjwAEwPAWPYACt4t7uFzJzhA5DZTWsGNxUPhe78qCuV1Uv3KZzTvQe2o52XUDhjsxchUkBl - -TD3ES7qb+5wAN+613M16E45D16AN48J5R7IEfDkJx/Imalqr6gE7mCV9FWzcZquA/y10p9uplz0idE14SJ/5N+3V2J1wgynpl3gN1N11MNy2pzcN7Ol2bVzW58kNMI55Cm8sN8+2bswqo1/dR3ZZ5ZZ+6vPCG+ba2oB38ibrp5WVw6W36h+FCiSN8/W7asn+V/6h+gR0mV3GO9WVy7N0cN0eR0uRZ5axme+qO9gNx1R85l2Np2o12ll5FV1RAnUG - -8zNyCl5Q1yIBjolyUkUll0ZNy312JN1UI6NN91l2rN7V8HxFyElw3Z5kV2C52iu04V++4pqJ4ZLdmN589hWV2sp7IbJQF4Mi5oB/313MN0T13V9t+Vw4itbp3U1xZZzcN1ZZ29N3zZ+456bN0t9FgN8Ee9rN4ZNzGV4J1wzWZqkxqNxw2WeV8JZ4BOxSN+uprvx2uF6CPi6HS7Q15cEt9UvN3SOs/YVWQdonBi+Sskbp0Rc01iYRYXTiYVvNx94X - -7h1+pIfN4JKZZ4XF3oeK8y08eK5L+p4Yfp0dB9HbfWHYSltuUhqV/ZqK1VqiV/RZdjske2BkwZe54cOzVtfiL5X7vBf+S/CyiF+WzjeLM3wxRsbUk2q2mOF/Kg9vu0FmPhYIpFADdYd15PNyhAOPN+5OLCZ7iRDAXISuENZHToDKAFnQL/9AdiCeQF/J/e3e/+syityTKLCmjZwk80RdBIqyTlpjN40AXwl8o8s6pzzN2D1+A16X13RZ16NwE0wf - -yT+mNKUCzp8NdvTRv7e66V2HFx3+1pjrjqkgt3E3GkFxp15x1yDN2M6xCWxlR6Sl2lVxG5+9HGINzxF9G15ItxS68Th9MR4YNzhkjElwqxy8x6vCYfW21u9iV9ot2wN7PCfgNyNl/uZ0Yt7ot2Sl7Zpyul9Lp4Kl+YN7Fl4vu2KuygtwnN7JN34V6GR5qk0mNxMNwIl1Yt6mZBT1/T166B+bV8mV9t5ywl5W2z4t2fV1051kl6wN1iV6Et4nZ2E5 - -xEtyQM2KvbNYYdATNYd+tsU3roNrattoNrAqpI11YsyqhVGmnQhxbU0kNniVk2y1eoRAt4YXRn7Vj4V+pI02TGmmUBgIM16Sj3RhxsH3Rp95h0YGMenVpZ/ViT0MT6NekTOBrBkLqJPCkHWWlU10YV9R1wYt6cl0nZxEtxcl+Lbo7DDU1F31o/s5GSsjwBesMahAhRfwImwK3F4KtWBpmNqVyWQE8qz6ewxF9P0aZZ+El+JF01gagZ/HUdM1+158 - -X17bl/UN/blyeiCt4vFtH/TCi0IZ85eXIhUlEJ7gpwIt+6V/iUTkp6u0ygNzJ1yyJAh1+GV9nN7cVgP18DN/YtxZB/3V6z1w0pxFl3H590eAmVyCt74Vxc+Pst9vl94t/XamEtxZF2iB5q6Ye/YbJc4O3w514V8oe7LV47VwPV9uZ1Qu97N6kV38t+1l5eh/Bh959It18I0dst2JFySt6t1/dJybpnsXVFsZps6+tnXgYjfOPukgHYS/jXTP7W4k - -mnK2kbh9UQf/N6ltvrpQFMasDb/NzHYRgxNS+T+1JhWsMTThWjy52ElxStx1oL8t8CN0hxzRp+5CPylrnIjg9CHNDAANMRAF1OOmOaobWgzMjJV6K0GUlabRygAp7ITaqkXRyC6tXQVCRB/msIQYIFOmMUQFe90BuFRu6NYX1/V14AN8wt35W2X11A1/opV2iYFcPFKeaUxFqaHuTffY9NyGNxyPN7l9GNxp1w2wGnN1m18Pp1OZ7ItwR50SJ83N - -7JrS1l3CVzHN6NFyysU/3NAEA1+2yPU86s610O13tR92ffp1FMiaxO7at+YkKkPuADDmtxqMFCOcGe2dwHatyd0ZUSfAHctyZxVzvVZsU4xJ83pGql07jki854nuoZ+NjkHLrD82IM9vwDY6yWtybepDIPmtxWt4WtzGuHAJxehBfyyFlO/9E7kcIa+z0NLIH6tseo4yQwEeL0ShtJg6fQkCrj6PTNx7SOei/Cx2ZN76p+H0wrVwml0ct8xN6k6/ - -fFxNV5YiHVOBCdaUWJHGWs1/s1NHcLoHVLNwjW8KiJEOXLN6iQdK17oZ9EV0dV7Kt5em6g+2B15J1+rkEk1wOR1rN3x19It2G57R16rp7DC9k1/W5w3BM+uyM7B5Uy4nuG82i5TdwvYfn5y6Yp0mN2H65nN4Bh+d1xIAAFlACEBI3DBAMFlFo5kwEMt1qRtln3Oxw/XYbUwLngom8iMNUS1+IEOZcKamk4YoTl9JvPgPTBcS2gpDl0VpydN2hF2d - -Nx6NxdN16N8N05tpeOqIFHq0lV9Eax6V243et81O9OhmVnUgNwah4tQeBtwb5wnfH2N+it7Kx8BOOd7Uxt+Ix+ol2Yl5ZMIptynmMpt6AZ6ptxBt7MEJcI/F+SifWjVm3fqPiC0tNflFKDr21yhRKCOJpt6jO72l5Gu+bp8f13qBIrWINEL5nv03KzQL8pMn3NjKHj3FECjGMG22BZYrgi2S8qxoHnhyzmXj4GBpxS1xklgc1+6q/llK6N23O4gI - -8DWws1+YxJhcs6CjydCNHLyfumBFpknMbSJtzy1xGyLs1yWlxqF9GN1VlyB1wXaqgNxFt5nRtvkqVEjpuaLx/fYuLx0JBwVty+109IEYZ1eE5q6t+BVQlXAAFUxgu+nvsISPBQMN5t8v6kd8BHtJQWDV5wyvOr1CfGPsFsfV0zWzZK9Jikl6273Gxt7fF0et6xN1xt+X19H045I4Q3MGQKTnMXDCa2ZyGbe1wxa6IlCrBWE1zxZxE1zDxwl16Alw - -St4Th6wB3rMX+TnC1y81181zPl0l17+t3t53Sl2gNig20ou0MB6ewgUJZul/aW5dV0p62gqGrHaXN5A22ba3VZL7GL1rSxt2Nt7vl3smB8hG73HON8Dt0PDRNt2DtyoNKyErfu46xbOaXaUYj58v1DEk1Ik1TRwU3T94RQtSgEKwK+zWPNy6ezSq11C18IN6MR/iB2+V6Z6/xaUYZ22gDlVI3sYZJnRtscXvXKHAAH54IM3CsGJkpZDnFO4srsEI - -tbjpyTLryJhsgPFQ1dh6Nt3pJ8BEs+Vytu0t6tNt6NV8243Ntw/FyQ5HolPFtPWxF7Z83IKye4OBLhqEtV6OFi9N+qINi7eZdREV4MN9aBhjOFpXbxwBrt2+18dty5pqrNxZN7bRyN148uwrN6G5wKx6mc3Jt+t579fQ3N/VRzZNxpt+JYDZt7Zt8Um3G1wel9HN6YN/xFxLp6BtxMm1G1z81frNzllziN8k14Zl2HN4MRzFV5Yt4PN4oV18txFV - -6cB6MN/it3Kt11O6dt/wztp2qP116uDrt73+9bmWMVqlV/z5nll4HJGlJ2bt/UJ7Il5KlyK1x1oRMDeJzDBIfM3p5qyZq8ckRaKxgcgqSxDPgmA2oR0ieSoR8qhSNBp4NpC80EGg/NyQZacfo54bFMTOy3JEfp125WX9dG5U+8LFwR6Mau1XlzXqvc/IjuHOiKt5hjDoNMq2VJaccc4d1yh58Xt/bB6bV3AJ/HwR/ZOY3A8cTzBGU9KUug+hiyAK - -6iqqV7n3HQ1EMfGUxIyPTV56WmVUmLaeJCE7ewWCB1AZ7gZLutxJO+4RdS1zM17zN0AN/zNyDW8BVPQEE3wXGcS7x6oAqtEnKYd3AMrt1RbWG15Q80Ch2rt6c5KTKAF0pZt+gENZt00U7HtyMN1sV39N93N6Htz5BzN16+twiB/FYJkID2MNGTU5p2cN6pW9IB3J1yxe3iN3QlyDV9AZ5lV3tW2Qd2uZx4B44B63N/GTB0JQ/t0L+6fWy/t/vCwx - -RsiFxCUKaSysg6wRxMg7wd0ZxaEs0IRZzC0Hpjpq6iF9fwEBPogCOZYxAo0SFzWm/AZ4/tzKt04txht6mRrZsfgDbxaMoQOdqp/ZAMANgAFLToWahiZ7dW/twHF4HZKp9NLjp/Gsdk/M3BLDZZJF+NOzYi0HN3glwMbQwt+/t0wtyX1y6t6wt+X17SM0KPS0RKwJ911Pc3HBKrJEFy1/AN1d0LIZqSt8QKBnt5KrFnt3+t1ORyjh07t4qOsmRB4t - -2p532XVAd3rt9/k/bt8tnAOV9PVzpt0h11Jx4oFxs0Wg1wmt+vGr5p57J8BSI9IP2t4Ip9CR885+WJyUd2peybp5OKvzW1a3ZJjiJ58FBylK/xZhJYOR2Y363WV+kd7d+ifmC+cOfiJYiZZpiIN8KZCcm80d4qJq0d1UF+3x4VTf0t8fO+1u0DN4nt4GuwEt+bxld++XgDd+6eqznt7xZzmx4Ll0W2ept1Zt87t9y+OXN0nt0AhGwB+7RhWN3Fe6 - -b51Edwri5tJwqp3iu31F2hNzIdeIt+i7ahN3nZzIdfLa6mt11+ywu/g5yWOMB232t9BGhZlwtJ0cdyGVxb9patygoQ7N0xAmlR72txpGKWt8x1xk1/xOx8d1MiYXt3V+08d4sd4GV2gdyaFxKV15J7ZN+BUTkd28V+Fpx+t2Ox1h1yZp3JN/4Vzid3tV2eRFox0dY+m1nEs7k2ewWYHfffrpLvDpy7WOwci4IFey58IvS5UVlFWJs+IU7nQ9lrrY - -N3o+A8MZoXk552trqefvZkiea0DdLX/dXRndA+fRTWEfn49DJ4spMsg/wcjex58KIEs/UMP2y4/+Wux2ePmw4w5ghyaxlUzgIXfdEJKZO3b7KF9J0OLH7KNo42kaVi87LXTi85dAWIOn6QSgENo+nmVGDqHYCSvtzcd2KcC8N1lV0od2wMCqoCHfN2XLDMDAWB/kNWADeUoklXe6zhA7owKB6ClmOGJmap20vNeORPOsAo8ItfS8R0WcR4L1wIaC - -gd66kh2Wrvut1L5xxt1aV5hF1A14Ta12iZinZst8WWb71QxWEIew3Vzb626V4bJ0y+Dlt2zl24hwkd04zFUNabJycdyT+y+tzQZywB3sd2dt3s/tJtwmR9+10uZ9Zl9NlyC53Htygd5v6b1l0CdylmmIt7uN7DPdScQsO3oZFBHkr195l1fDfjjiKLbgd4HDNUDdte1r10b14FRzgd03qNnYi+g9pZxbN6Q+hBW5CwvKF9Ie4Od6WoWIt4cd0l26 - -p1z+t22d/Wp8Lt42p1Wd5sd79HF4Bmed8Du9Pl/DXLed7pe/ed1zlwGV6HQqNR1UHfGtxid79YnZl05a1nkR9Nwpx5tbZr19dV4udz6x+g16kkePTfvl/cG6Bd7kd4U9XGdzkh7Ql5Il1+d8y4DcGyVF1AMDKZ5XS9d+7FupEzOWtyZFxZmHvu4Ud4CoIvCVjC8A15HN7FJxat0+ei3Doz15sp9Ye6IlBsJFjpKo5wglw4mEgl6ON7IN5Q0Ed5wD - -NxSYg4/pQZxC5/33X/6W5y2bSKxI8wTaUTXpIL559SOMjR1BRy32S4DISh0ES+nIzCKRIU05hcNSbSJyz1aG+CFY7FFqqS5by44tGajOtS5ydz8LfiKS/+3tSyBwwdS8vPdYXli/SF14SAyc1n6W+WFutrmefjUJF7vItsbvxAVmavjD1wDCsod18kd+Ao3JV8Il84xzjNzPPFu2KSAGYbsjwAzt4JJOe3UwItV09RWhniMTbI2UFT7QApy6KjjZ - -ahLEoJRqJ4T15xd/guNZV+ra2/twet6dN7Nt+dN5Lt5dN+EZy7ZLGQHhfgh8TPOonTCHFxIV8kEFtt2cyCLq6Wd2Th8nt5tmH8Tc2d6Il62d3REqPl+qmd+tzp122d74t3EtxR1/J1zmp60Jlkd4t2AB12vlxUd83B5gmxESUxvI2d/4eEnNwpt1ed6tYBKytCtwSGLEd5t2Xqx0Ed33l0rN+nt4D55Up12d4+Y5EPGkFzCd6HNxgd+cB6ll/rM3 - -LSZQOrkXaIjYr1V9oapq9gcmBizaWT9J2vsyv3XkUYK6Kv812HqnfR1pn4xaaRrU3V5y6ea1zNhUGt+5l1oVOrbsEgRYOWQKyFw9/NId6Dpwv50x12puxvt+oUqEsCdaiTAGvFGRWvLgq+QMeEh4+KCIv+6IKlOPNVwXDV5/L6+9kI24EwAf9MqNd6tcCnt744zhd0Fe5oWeaV6Jl5/t0Bc/Ftz/t5k626LVYJGk/PA13XmM6sLCAsrtyGmELkYH - -G4Z51SjMsd6b6F2NxmN57Aexd10Z+nEqEd0PjoCoSRd/uV/WNzVd2VnM9Vxwl+NZphOSdtw2d0Td7OxKrFLhdwV6Lsd2Nd4rd5m8sZF6Td4E/mkYy5HZePvCF+vctftlFFq7M/wlIfJyX/qby17msaPOtFO7fKYp4P+wrd7Vd/21yTd7RWqrd06dwLZB95PtPEp5hsMKqMtfpDfeKHibm8zrMaVcMFUYbQrqirxp9CrFCdEi2AvZVb+EDtwLt23U - -NOV4md8/55ld5xt9ld16N1B61TO/mAglBJ1YzHWJ+2QM1Kzd/Em9pp0UJ/5N0N14Xd2rd4Tdw7dwddxHt5MN4Bt1Md5+twkrmiV9Xd9id3N16xdwntzXd9IljHQ8IuQLhQOnYry09LvLSwVwXhtmKcuUefugGZmRpVcqN9vwG5d/q+FidwvW06d80nBFy1K8NsAHIQMYlCzBKVYiY+nN7IYKzhA1F0RZ+JQJIUrUBp+SJviBCLtn4MWBhmFtzh8E - -nN6Lt26N+3OxLtyet/ISN7uEotZdVTb9ReciErc1AGsSZtt9TawzAOd+y/p3yZ/Swrzl3s1eMd9CBxYt2td/5N4Ol/z16JN+Gt8WJ6Ud4sbCcM6uXrZd8O8q5XTyQHSbEqJDasLAewWgzv14rN8D5wA9xah2v5+VQU5Zp5RR011K0Iu8pq6ht7KHiQzoCqpS9gG2LnykHlhav2EpJ7DgtWLpJ+GbMUCEmWF8D1y6NzUNxld83W+fd9nXaet8b659 - -9bGVPcOalt20pXjVRtt3AN9s18T0S8t28274EqH51b53+eaI95GN/tbf7M5C11VtzLZxI9w5R5fVwz0EITpohNbOF4+BRWjHwUz0CgSB/YlK1Nqt/e3aQCGGtr5ENraJ3a5ygLDV9nyA8mNjO53V7me+Se1KhzWV9oa4XV46tx/t86txwew0N6etwxZ7lnSrxkg6ECV6QNMEw/njU/d3b6y36V5I4+17otYHG7JtxFF5rN/s1wqG6E94x56p54G4 - -iE98vUXcF1Xxz53HE96ACfeR9S63nCoLdyiu1E92DV96e6KWzJt/E96UZOYp9VW9Ki8mpwdtzk6+zqtDt8yArDt9Bd28V7me6hRr7N6OW7CVzU9/H2h7N86W7SHQco88Z4BSL0V/B+yvZFzpEsl6oRdS+/S+4D6yNhyu+2Nh4qUPKq95lQsXdPYAlwAkZCRR79u+Birqc/3p+id2EV7U91HJ6VBzyBnAJwzsgSfvzGmmeBLIFIQLm4/EAB5nFWA7 - -IAPWJtb+DiPp8WABaQFt8Bp8FzKBp1cGI5hxTMI+d5Wp615w5V+ld+xt4ndymd2xN1A1zlnQq45ccWdMOb60tuDHGIqFPwt9y14It8toEI91BJ5PuMfBzQd2Rxb5x5jhyDSHAd4xty7t0Sd1Ke1C93bp5Ld9R3nAF1wN5aF41d1pl6mFwo91mp91d4Nd+Hp2Lh1cNyaF2i95X/O7J9gs3p+ycd1pt1u5zXB3DGwiWaJe6gR3ehxk99GN5cN1qe9b - -52vtw2lyIm2I9+Pl6id2066wx6ZpXadycbvgF0QR6AolWF5ed/Ad1sd/SQYy99gRwIN3J19i9yp5/wNwZXkc18gd1FV0cF6K92oJ0UV92d+k17GNwQFxYN9YU0x0dZ1y7FU8VeN+/0FC+Z2UkxFzftp/rowIza34ayZS3Hb2e2oU6NvZ9I2/c5EQq3/a/81JRu3xgc8uEx7INbsC1QmW03dvV9rkHRAW2+qu46QqFuYSPTjOiyNNyq99Qp2eY6YJ - -4QR68s3AJ1KTCrIHAABlVEMAKyAOzJLFADw3NAPO2zi4Me8ii0S+NtthZ2RRE3eVsnDl0Nvp/JV30q2bS3S9/AlifdzFt2Z4ywt5A12Y3BI3C3IfZ2PhF0xsMQ4nKkOnvEtV5RKAN18gN6FV2lJxb56jW5i94qZ+Rd8wG9iWxIl5iVwMtyjZOK9wql/CTt0d9/HGax7XB3S8diNxdyPO94cR7319FB33DGL5+ax9gpU/KyZ10puQ0V173B3d6cYx - -Ek7uF/WQfPNzI99HHIeO2BVxcOxW9wcR+Kx4o91MMGStEvBOahDfpJIAIkAPKlFuwfFCpkmKVYi4MS+UpbpqXOH1N+K4uJEPe2+RGVYhGat9ut7ap6AZPP2OPB0Ore5u+oxIw96898w91ldxfd5uSM1wYhkZxKD4FwHQTQgpLSn4dwI94FaC9Nz7lyU95wNz5J2xFzBd+ONyC6/Xx/V+88d8lN/1dxhdwsdxIYvNR5xMBf4JjxPu21Cd1COfKWyq - -61q6z7t6Eew/Ex5Fzde7RTh6J1Ht9Ip1iGxPBzCxh9V0jXjat9B97mqM66zpnRvw4Spfb+yEBeEcZ4N1IR8IR/JiKl+V9wVtqBG0ioOV7Atv1zIdxc14J93GMVB917QlJ90YZ+I3PMMMCjlUPfvsJDmiUQnGbutjqw7CRt5ojQjQIYLNW8YkcsXS4/krPAGY549XFMOGiqArFmrm9raLP0Xep5ZZ/4Z8890md2896ct9aV+ctzQ50Oh2fwP7oaj6 - -cn8pxTi4NDh9wFV7zoGC90652+t7Dx13N5lW6Il3Cd1hd0gFy0m/EG2sx9nV8H9hS9/Sl3RRxU65r7MVhbZexFx2OYKgTUBd4b1xAF4Cd22p2Ihj5921TH592Ym4F95FGQO11OhECsE12+a9ZXN41950sXBl0hlyMl7WpfuC22OzO8coaEDUXBN2uzQJ1BuzeiMR9QBx9qoil2t6US+ZAJ197595DjBAJw19w+p/e9198JvMovyEwIJcANEwDXsS - -h2mpMDQILD8A4Rwt3fPWczZJgEELi58EqbS3RGc5YMbgjUs0u93+UsYN71e6ClyhF/B9zNt4h90nd8h966yGStK+8rImZMQ6JPMSxz7sePsJ2965VMItymt51+/Cd/oN+cRx7Y8MN9G9z4ijsdyBt9x95tJ6VexIB+gdwHJz0u9NR3+d3td1j92Me2nR5XRyXN4ld95p9aZr/10ed5OG1Et+ZtiFR3zd2yxpAZywd1PN/ZF67N18h2E92n56C27p - -Z2W9+MRyC2/l9+zYs998SF2z9zz98bFTC+wLmbao2N94XFQLfB4u+89QkfLkk9FFaFHWxvv3Swok8VNaal0PXqjR+69zEUQiYVV3oxBjF108xxYJ5z99C1y5R+Bh0YZ3TbNolNd+OlVJ7kHobh+IgYUvfciwqIXO4P1hnMbimLNBFLXlQe+hS6DWuyQo029OdQj97gFzBBST90rTtW91Tu+6N+89/Nt1A16a564THyOposDbBJ2DHpzMeGJ29/fK - -WGN1pN3/dwR92UJ6nN4098s96VfD794p57K3Nit4XN0dZ3oV/nN57tzbt7n968+3fcxLIm8+51dH2wYPfWXjKaysFLfh4JrOAfV7HO8Pp/n97Nh9ZN+o102DhzbNQxBLKPgAIUQtlVN2ck37LahCgSDi17n3IM8LJqBDRmDkDnhy793eCG79xK412U4fd4oiGsd5FtzWdNFt/792fd0h96w95fdyB5++FEiJ/FCP8lVYfgUCMzp5ltyC913fb3l1 - -el+nNzq93sx12x5K16317UiJ/dxf9yf9zYt3nN2ZTDc0wLK1jvJT5zVt25dxcR3AJ/e6P2+NU1KPRiwtYqMr5nsK1PWgODojzWr96SG4vwpHtY+TKLQoOKG09BvfwBcqgCh4J5bQA15679e6V+H79+J+wH92F96mdw29715x53RTSDxk7tgg8Fv5g0tc/6t3e18NgILAcxaxsd5K99Ed/zu9Phyb5+FNwq97Qp9y95I9zjOmJ90Z9OGe4aeJ243o - -3Vz9yYe+eRtSB3H5Fg10+VzwD50NPkdwoFv8B/IdzrN/jG3rNxpx1V1ze5qFNwWN0+lzdt7mp5mR2HR1Fx+QDwi95EOJu9wu93r55Wlyy99WN0kFzE92l99au7Vl9NJyR57id5txVRdzD0BVJ3y99Vexsp+YDxeRcghx6RWqbcHQ6WSZzx9u7TYI4HQzc9dRs0PXpalyNjV4DzQ05OC+4dCvdW0VxAh6m08j020V4F1yMg8WDc2NirlHVIIJlkrF - -xx1/bHMusQiN9Rd06dxx/GKoDurehctbDBXI0HKd9GDe3SP0wstwaQC1gHi0AzMzpbh2AP47S+y9JYva17Y1xmStEGIQ3L104+J65e8i66T4fHdzbl3UN3W9y495fd/L53aVyjPDHeWSRYLPhbGKFu/w90l97F2rjqlG9179+Ed5QR4Ht0fl9j13cp2p5+Dp9OZ85N6QF0FB2wD753fl81CtwcF2ZlzwN7x53Nd0gd4j9wT18AR8smyON46tPC90 - -pt4i9xPd+755Ed9NdzS90tdusIqXd1LdyllxXd14t/p94R907J/AFyVUFUDwbMRwD6OV0R938h4/h0sDzUD8kIjFJ4PTQOGsPTcmDRnfTrruv8xxtASZar5e4D42yj28fGM65lRQ0+eN417OOC20VxMVR21/awiCFzd8T6IEcHFbaq97QTt7I9+Fx78Dx2CoVwBi9z5Jz05whAOPRlJ0nZRFTQHzBJ8qZYALcAGEMjzWqULY1Hcwit0B3MYEObEW - -xXmdGbZ14nZ9WxApOwq31dygD++B8v9z996v9yh95TO7++RDRnKqUhO+mATgBA1O6Vd03V8Y2Jx9sJxzoD6SuZ+d2EV/CV7Ge3R1zMF/cNwOx3kUHHJ+q9/5x48UT795wtPMD5GR7qD7Md0Tt2sN6FRwUd439+taGsD9KNjeV+R1/WNyel7U99ZZ5aD+jx5fB86D8XJF2N6xh/eamu3UgsVbiXt7QrKfyXVKJkO+//u+m+/np0U1aXp7SihfZwG+ - -8KORZO+R2bZO206YJVxTrO6oLn6/raIs96qD0wx7U97UJwmx67d3KU8y5n/OM3KHGIqS0i0AGeQDStCeQHR1ENNl+oMbAnzrKmSb1Etn6PqlGScJW4oXh8wV+MStTwMsD7UD/dhx5N3UJwKD7nu0KD4H98nd+X154Fy7ZGTsPT4Mjjck7tF8b410QD1tt4scMZRyJN0p18tJ3c59l94HU58D88D4O95ChswD0n95payi90wD9N10S935x2EyOB92 - -Ee3Wx9sFwcD3ID5R9xnajFIiaDzsFxbp5y99tV8ONyh9Rbt+9V2Rh8ol8757oZ4mJ0ol6wp3il5Ld5fY8+Dy5B6+D/Ld+rd8v/v1l6MdyXd8P+zdp86Fw+D8ItANdy/gAVp6mJ3UJ8XRyed3BD92D7mD5Xxt2yw8LJ7oxzXhLMUvsxbd2BKJU3TkjHbjX9WMHM5uXoFc9r6Ryd46RSD8+IIcyN1QnjbIr2uVJhvlZ2gis7cY8x/P5xra/ID2hKDm - -D61R0YZxEMqgOF54BdiPk4JbOAM3JbUKzBIsAENNgjGzYbgg68l7PWD2FvCU+TA5DY16pgN/d4W28xtyhD61R72D/gB2gD60D2ct/z8JPq17dH2QLejH/PIDw4AiIbIJ29+Pnkf950F/lt/qD/XupmDwBd5JG/Jt1dR8uD+mt/nytf975JxeD/R92kdzWF+6DxllvMd2mt6t9nP9yx96Cd8Ud8u97ZDwPN1Xd5h52f93q943d72N/Xd5PdyuNxO9 - -21pHQ98Et4Iu6JxzJx+JxzFDxMdwYtxNxz75zQD99RRea47TTDk86bj5U48e+lU4GmFDF5AGWL977W3ZO9IrQ5O/xYBxVyfwF2hvUt/SJFPFIyuNhQABlUt9/aS9f0I/h1T95Dd1Ix7752oF6CqMeHE2Sj4urXKPNXPylvy8MDLBZWz8Y2w6q6gLEmOqQMr6+LgP8YInKUkc3zt0157tZFoN5Fx/Q93B9w4944dyctxpD+F91pD35u1F9yVzM0Kt - -wt4J8DxCu8gAHZ4Wd4/pz0UWj14bV2Gt2K18g91oD/i9/ZD1usxH6zuD+eD09D8W58kFwZXo8d9D965Dzn95W9xaxwnxy5D41+7D91KQTug0K9+SBzEN3Yt5m13dD9ENwYN1DD0R13eD4GR0q9+hdwS97BDxjpC9DwShBtd6q9zHN+GN6Xa8R9x7t5td19N91D1lD9dt6jD7dtwZp5b54wD7y94jD68Wyox1TD9EiDCV4DD+9D47JwO9/jD5aF8z - -D6uD6zD9rnjEAedk7iw/M8FH7UN9+9Z48MxM955IP0ly99ihl4EaI7+74yYMl2iJWFbYkaSuC/Lo1rrQtp38Z+ao8XsERV8hk4O+1uBWGD1KJpLF8bICRu9D0vRJ/azBhdryAaLOICLSYJ99D5hd8DDymF2uD6SDy5lBntmMAFKdoqlD/gEMjOPcK/ePtxIeJ/yA7A3Y7FENjmosf3KPxACSEOAslqXWUBROV6+xKniQP4wYoJxe0TO4ctyF9999 - -wOD79952oIV6lrVXedChp+C3sTwkmlHYuX495sB7Au6pl6tVwlto818SF3pN5xOwZN5oV4bt4WNwCtwgdMiN1FDwMewMN5CN+Eh3215uZ8c18Ct9DD1B16sD0cp9BD8XD/Vp8XN8Fl5XJ0NJkY5yYt1GV73D/epz2p+Kl1bNw2vs1F2u91wu1MD17p+Xgc3N1o51E1/r5/eh1SV3PD1uDz3VxPD3XOy7Ugla0otwHt7z93r9zn90GJ7MNw890Pp+ - -Dd8bu/fO+ed1eDyT9xot8E6Hz952l7Ytwj3Xcd0z144NKm53hvSfF15exPolsD/6qEQ54dF/wtJNd3d5ceZzVu9R92+Lu6h62u1dF3v1yfmGL1/1QNGeycq+m14w12tF7gl69e4prfOd8BdwArE1919VzWu5LO55FysG5+shvl8H18WV9lBx3SVMMwek91p/910J94Fe87d/fIAL188D/Yl5rd8rd9rd2cbcn63Yl2UOoOtyrd+Qj9Pklce07cTj - -F2qOQKFQzeeYvAXrfE56Ju2YLSdp+cZzq+6H1Eip3Ooy8I19p3CtV660YKqMVzOsHW14FtdjBwTB2ClWx1Zup/aIxlsnSiqYS0W+/m+9S8FzF+5o7ywxO542++GVUZOy2W4W8WGh30RBCrcdO8cZ0WB+qbaa7TMY1tk66urBddc8pZDQ4j9f+zC44mBy6oM8jglZyO+6NiEU5xhiYmWwUZodwL6Z6GWy7W5dHW7W/XsBmqP7gFbRD08L0l+/sQVm - -QL/jihErF9TJwwj+vCEwj7Qj0YZzeQMVdomdFmUNJBsrWCsGElwLumg8cVKzSD7aULXzHdPIJQnvOcuIILfoZDqPh2euNtfD7nVykl1EiqpDz2h+pD84d/W9xOWC7kMqKGJiSYFa8JysB06G4qF/AN2v2CWd83130N4Vt4H595N+Xd6XtxMDxDd1XD6sx8glyoF7fGJTaqcN+3N+whzyjM1dyHpwSN/bG+Ct4St0pZ3p57T1/Uj51d3j17vD70d3 - -sjxLIeaqQ9u6r8ihVz9B/uE7GVUGJgykFlZ1yJrxu/O59rtF9lx9gRvc4N2vtqqsGvsnl24SPd2u4IWV+u91NAC5p1El0YZ5KEujwI+hvQIHLENAWMj6OgZPVOCERTEltWD8CbK/8UB7a9iDC7I0cCxM/vd791ydV1DZjq/Svi6NB8QwI0j3Kh/2D+gDx89w2977F6L0tIcsS+DKQ0nFCTKMzgEtV6yUOzd6tdx6D/75y6D8kd5fD82N0lN2R9/m - -Jxxd8QvWcdwfp/xPZt9+6vNFFxglyq6Bq/JYdyzNxMF5qO114TJF0RZxjySvU9hNRFe2ge3oB+z1wCN1EN6Du9r+4tuxQjwPZ2UOiaVwyNf8NxYlw14zF60NF2lazCHTo5zqB1F+5fu8fu4JFnRN1aB9k9ytFw9F3AR1G17ul0bN9Ue/+d6LOMXJH1d+zl9SCbbV05ZyKIf3N8AUXEDxIY0+Dw6d8n9zZNzTD6f91bt9W55FJ3Al0Bt2GjxDN63J - -3CG1St4Yx4Ql1nF5N136vMP15xFpXDyopOTp5qj2Lp5jD6r18DoS4lz5XVZN6BD7wUfQj46O1QjyCR5Ud0nAqnRydF8RS/0p7qJ+oN4xBxanffD7Fp2ox6PD4sp6pZ/wl9fhy8x+ZEy/Dxm1yc+FID6W/T2jzAj18R7FRxYlebN9zD6CGeOsBTYb9qo57n1mCTnIVhzsVbOj/m8esl744AVhwmh8lg9np0y5zzfHi55aHfkkKnFUn7T5bTG002VO - -aibX0yJvfWt7xV9sY5LlWkcTsU5gkRTV5QM8nQ+zzajt0fxY4D07sDMlzU6Us9TxqQB+yqFXGVUTFy9c9e+006T2sH+Zw0ga8Z5W12VOU++70Y7SEASlDF5xjfPGh8uj6O+5O+8xu7R2TG6xN0OfSkwZ5brasVPDR0OVOLnVowZryTy5z9t4NwGOj6gt8XfYvyOGDAVVES0nNnlYAAZKH3ybtjGgJRe+baaRL3LpzMI8t7gjcFBHF8CoN8ek997U - -e3N8Q7+KiN+uXMF9wnd7HD4Sj0H9w299BCz8zFcENJwKvJQ5J564KSUDSjxLNMwAcBm34gT6j80FyFD8fD/C67MNxT13LV+Wj3UZ0sj73B1sSo2NwMw46l+k1iT1wR264CmvD85u9yj9I52jrbp5+SyYYD3WN1wNgIDzIJyDV5mc1Hp4qlw6RKsj1pj0muwsxMtdzAZ3it3zwX191ZZ0Rp9KuqWld6kG25yEB9gaZO57uBfVQKfFDkCHFZ2O+weE - -9R1dTfOlZ5+Zx4j7lZ+m+2TRxvZ9q+7ypz6+8up8S5xTfAJd8bU6ZCI9ogDQFzEFa16Dd4fV31Jx3N70t06dwhTEt7BK0KGbudMg+hpIsVQKsZVaZRIkK2+K+jMBNWK0WXOkALsnB7Pkaj7ULYQOxetglxQJ9xd51F3ij8AvfzEyv95PfZfd7Cl+0YaB3O3ikBU0BJw8wUC9/0j3Ss6ZD9BB5+13cDxMj5Gp2tjyXD9Md3RFyMj7oV/vD7Cu//d1 - -J5wMw0+Dx1D9R146DyEypY98XJMj98Ee/aj3VsdZV91RxFJ7Al7We+yj4ul3PV5GuwvV+2d1DlzIx5aB9p/TMN0nF12j3hhxCd/3DyfV9tjy3d5yj1px7td7dj+IN9Yt1Dj85D24t3ZWsbt9oD5f99B1+E96dZ1tj5rt7XD8fwZE12kLDjj3Dj3qF42lyR13bRwvDxxW/u+/sVUP6CbrWHay0rvSR28wwU14jVQHNcdLWVh9h+13rSUlx6k35zU2 - -14FtRstQ3QDYLSuj6sl83gydojLsNjDB+Z7ikHZ685g9Fg3D690HoK++YSwK+3FCeYS1vJ5Fjxhm2GJjFj9cj0LD5GySLD6BNxarvihGkt0YYUkJI7nFS4vwFPtBrJV+3VyRly6l4BLIGUeJ0rqklnQHsXuatbceoqoC0AC+QeTN9gJ4LbOSbLQOVRA+78px+maQI18Co5z1YiIp7IpwaEuHD2Jp7BF1UN/jTJ992Lt5eW+Nj1mo5fd+ml0KPYSC - -Qu00bGriZoTwMKgBys3KDxdDwkZ+g5o4JU+t9arXchwJ1195zJN8Ht/+t+CRwbNzg2xflxPV2v++gy/7ONfOQuN1zFF8NxM+8Wjzz18f+9L1y6exnYw0REYgDXsOQCNLd4O12Vu28bfeVyLrLBDyoBwiG11W+oB69qz3j8iWaFyiX2hU9x+V/xyr7jwam8SdC091mh93jxIWL3j2Pjz7NzY937NxBstM2E4zF9t3MDs2u81W0Pj3iOiUNxwp7kZA - -O16Km0Pu8DV3Qd6DV5PF0qj6m14Xj0Ht3dtzApyV99px3QD3vD7o29G5x6DyPu2JMf0e+kVzcFwem2JMUbV+/j+65mnt3zp2TD0uZ4ot9la9vD3MZ0pj2it7bt6i6/fl2Uj2Ctwx19KlzAp88N65j2Xjy/Q5K6HZWoATx+hRmV/8p12buph68d+Cp2E92kV7Ja1QR9YD9q5x+DywpzYl46jzgT/sFw0d0aj9Xj/OLlqzildzo/pZj3yDUwTwwpxx - -j6wT0IDyQMyUCZjYEgijnXFNmJWsEwy7LBzPJ591WO512kElj43FyOkDXrWda6G+BUl8XydFFa7+/tkyVXBkSyfxSRDMR08TVfXHXEcWDk9ZDQ0ddPHa5bU5bSKHZ2B+0V3ptXeN5Uk2AmUt7RYo8B+4N7aA7UCw0axVi47viJi44Cwyy51Bj3rtfbsO9c/L8tY2yDLm/bff+2Qh9bUMi+9uC97rZTj7yJo85DrreilNfbW2pUEURr6gb5eoNkEM - -CjPq5dywT3oZz/D9t9wAPH4hYOTteQO00okDhb6jcEtUAKIpaP4nAXHm4s0Mqd9dpvaI+HAxQb7f71CNt3nV40xEpD3T12BaeTd3Xl5Td6riwLN1Lt1Jl+0Ye+MDL8AJt7X1583fLGZnD9LN+qeD0N6/p/Dj0ZNxCpz+t28p9sDz0Yf15DGN6C52z1yyl71R/wykMt7Et/LLWpj3MTx1dycj3cuRhu9XzP+u1yZQYMcdrFtA2CZ0sT7akPMT+Et+ - -cl+kxzCmTWSDDwEDMEkDPeQPhPBdiM5APr4HAXI4zPDDi1GIkIe7j+lDnByZLwln1zESVBB7UXnQ9yNjwAfYiC8KDxNjyh93X+/33N19DnqdMnr1gV+LBTTQMDyj1wNAil91CV7dDy3D8Ph3he7751GN8qD7TD7i934TgGj/I9/RRuZWfM3QwZY7uCnGGqkfUyLHs6Ypxl91B1/298Ja6ox3AJzyJNJBnBLJU1PoSiPhIA1qzGl5lJeScqU7ODcf - -IoUT5gWMUT7TgFJ+cyWc51ar0AdFxdF4CAvhRXuu/GSD7aHu14wt8cty0Dy0j20Dyh9yQB7++R7Cg2JFKDzHWGt+NLcotj9s13UrnSj8LhwMF8rNxjj0958WF+FD+mFwXN999CzpLu19Sl1pxwRjwAhxQd+gOVeZ69e27s7HN7H6os6lvlFvu8re02Vy/l0YN2XZ6TW+ZoE1+3NoD7UpP0Df5V5l9ImYzXAKuxAoHWWCN0AamerFz6e/VeTNB2KT - -7GVBGT3dF1GT0Iw6KT4R+HGTxFaWhm3zBz2E16Z4scB7ElsHZDm3jm+Dm4jm7VLJxEFrcEnm8Vm1jBHRMINdNy+8m6/IZ+X1LuC+zbvG+YIQksXTM952GELSvbnAM6doRwo160BCt94KT/dF3uIjGTymTwK206d0lcOgVKCqOesK2MghOHrHuK8E05RdiGi03yh1OXCEYHdwP6EdbF68T5cZNOxF0pgpD5V+4LxmFl3Y1b8T06ff8T3HDyKD3998 - -3l2R6Bno76I6kp/MHo6sBFxOqTwFV9TKHCT70Nzf98A9/PD5lDylD6WN1rt6FJwwD3i99JN3Kt++T5ST/TD0xO5R1+6/eoJ7Zl7jD+FJ/i9zGF4mJ8jD0FNz6R62m6oNzs0AiT5ZN+p59FN1iJxE9//dzIDzFN8el//j1z7LONyPN86u9gpKpe7BTxUGxCt25pyeD/sD7iriItyGx5BT4lp1ax7cVp5j2ZD2iT0lJzbD+PZ8bjyMF/wx3UZTAJwp - -N6xT0pN25NxxTw8B90F0A52yj1/h4pN6vtYS53OowfZ5nrQoQ0da1jF71PBwj0HrSXreMV4Ce+++6MZLcZwNISIrT8Zwlso+Re0Y3i4+A7aN96+j8X6G8e7f+zo7vBV9OjwKFWzFzX4C3g5vZ1mcEG1QcVThu4J1ZFsuO6Y9LGE05fgUV/tfIYP51dZfuezXiq1D7I5d5O0BT/y56pN9Ix8kTw+Gp/w2uGFVU4zoBNZH4hdvFDAWNy8EAiuITU7A - -Bs0NZxD19y8TxfFKuT5JzP1j95j1QWHwN0y95/sLuT5fQ2RS8et4eTwnDwIV0DjPTO5aJ5gpzL6M+9HrJxyZ1CCPKDzwffs7ZnjwinoLp7cVttd+aD0b52Jx1gF0x4ZUT8mMtiT+5l8G52k16cDzMj/sp7eR2Bt/gFyS95bN+Vj2oPFO96NT+wh0F/BNT9fvpIw8CK486ETeSfWGV8Dz+EJW+RycXp5B9Dyw2A7Vt1wS46YW/KoUeFylfXHOmYQ4 - -xKK053yj7JhJ+h5RTwFT79TUL0NOTtNFs0ANhePfeIqoP5nu98T7kNvBH2iCPmOnGBAItbFxZhn7Jo4CJl9Dr/kNVxkcll+5V602zNlT28E4OU+7Sy4d1A138V/5u7abLMQxz8xLinzMiUAw8t8C9+6V7w1EGt/RT2ST/Kl3qFyGjxZDz+28id/wB5iJ/9+YXt9NFyK65RuCjDwjj8fl4VnL2aMYfcOj/fl3/hcJO3De5quJk1yl64Hj4nJ5pUx8 - -N/QT/ZKvWtAle66Oy1GDqj4aV7DcD1+w0kK1+6qEdAj6VYNzWz7aEKgNZXMUbAz1I94L/J0vBwy2yrKAGT6qhALeu3j+Pj4me5Puzr14Zh3uZzgl6BZ3OV/zT94l4QCWPB0Z95//pqB46T1zT4ZaUAjzGexke8Ilzsj72rGhhahvIihsz95r+xwoLDe0rTkzT/iN9DVxUWFqj1aQOzT85ZwNV3KZ+Jp37TwDcp8NwwT+JQVwh7bOznF5zTyC6vWt - -BHT6yu50sWyR2YT7I69ly6Y/Z3FwI65s5hdQT1fs8tdg4JcNALxWDoIJTAXTBI64I65nTzI6+0t+X6G+KJo65ctS7j0e8u62Kxm8jmML+Kk2xU5wLauC1cE4HUqEOEyv1fRyVdO3saxk1Z5o9inAYj14u6ouKK+yFgxOo1Tj8kvLoS8Haz3HaoZ9XzJTi/rrv4/MOHjTO7u3eqSCL+DKKwzV98j9f0A6T6T14R24zR3HTynOy5lH54Ou3OP4ttEQ - -ztmeHLA5/0hy8YPntDsrpFZrPcceCrp8jYAWzWJjOCsZo7/ElV22h9ASQ9j7ucXUTwe118V1151616AN7aVwt6twMP0xxXy7lZk2MH1PT0T/et8+525J2MjxTDx+TwDNuxT/QD7+T5+T+i57pJ3FligT2sRw95/Mj1R55aD7T93It9lR2VVwJ3IFNyotyae0XN6/Bzi56u+e57sZbbnraZT0962itLhJTJnjIK3Di90a1vhGZQzqoYLCue9ymzFR - -Rw9j3gz9kZ13D06d9QAkWulS81pV7uAH0AKgI2wAK+7fSANbDERoWYYpRGL7NALJxDANSW3MeAMzIUEdD+9vB8xhMnGsozxtu0Y8h/Tw114e124F/CY8Q+Gi5KUlvFoCZ84VRUhyhcGCEQH0jxqT2Xwvh98GtyBT2H5/8t8w15WTBZx/8Kx2N8ovLg1yo/IDjyTT4669Sm9AnpnF/3j7bNx6h4vD8yB8vDw91cF6zTeErT2+h3HN2WrP6O1vBxoz - -9B/SL19mu52XaqjzvBzv+6pZ5qjxWZ9vB9Nq60rYOj/JR0F65CK0t6wmXZ/DxdFyNZoD1xohywbDlF7TW8uh9hcOKj2zhyhd3kxmNzXeV2Su2Eh0oPA3cbjUPc0BUi+x98ymx/G1eLuoz4EObvLLKB6TT4e690z0kz30z0tewMzzuFYGh+J2uBk2fAvVm0dqMuitihId3BgG99myjm+O6/9xHOixkNDXm6upa2sHQ7YEW4rjhZnFuvOXm0a2Jv0E - -iQPkpAXm8EOxEO0FmwxifsrmY+DS2pjhHerDViE3NjXm3AFMXNtt0Asz0BzBBWmkXcQ7VwZyW62zHLvfoytyiXiVsvdSy2usT0HX94Rl6prT0z62+Lu6/0z14zy7xmv54ZYuOGNJaNrEPQMLJMMsqhwxNrakJaB3JR9sO+9AbW+XSl1skFQHMkB9oLoirlHjEt73NxpVnP96DTwOU4nUx+6RgD20j8qhzwezEWtmQDnjWKPTOLG1o9CT8E11WcbJ - -j2OV8WvumjwXD3nj/Azxvh4gz6yjzaD1p5xiN42ki4z/0oyx1zMT9bV5FbOoD6u9z3Ny7sMmMm/9/q3eDl2otztVxDj122+n9/r7Ca5MAGxyigBkwKp27guWlcKpy25/ta2fZ3cZxMl8sPK+a35q4UyMHh0O/K35z5zlKvZYWDKvbhj0aD5VIHf93Ll4Rj0gVPA2jFTCh2HjilDwBqcBiXksRLYMcreEuW2/V9mjGJh14aMBKl9T8tcbvQDaXRTZ - -r4z/yF2sD+Sz6YM8Vy1Sz0Sj20j+rV7rbA7wMQ7Jnd+7Vrs6MspgJN1tt/KItYzxjTxgF2pNwjD4uD9Mj4VF5bt5MZ0Bt3G95AR3Xd+tlHsDw5N/iN3Gl48aW6j82zy+V7Nd3aD0mE68cP97JOpwlh3wZx7jMlh+bW1Rm18IDRm2yHYyhMhVzsc/WWuefCx08oKwRl7F13mNx2z2pu22z5dT6QGSojd+AAdiKacNZKOX7fcAD65JrEPbmN+kS7xM - -VgHDexRk6ScI2D5T0WSkAaV4bT/WRnPj9eOYmz/T8yUKyMbZDT2Y3GrDSeWkZGk792Xu560Vtzail6nj3xohLQIMjz290Xd4n9yWz6Ph1RT1jj7pN6XD2N122lwX9wdj1x1zgN5lp/mN+hT68DyWxxgzz0u1eR4+R+2z2fD8whZGTwE4IK9yKjxUewoDlbT3vjymj/gTwfiAme7EhzA6vyB54l56TyYN07Nw7a7Y9wbT1/13arCL+3Eh1Rz6XF69 - -93oNyDt17JJRz4opzaZzPTZFmKTbFpmy7m7Hm59T74OzKiX62mzHCXEH1jiKXYkO+VmwcFRdEWO63mT0bWv9mxDm1tm7Meo6kJgqJkW1DtQMiok7ZEvEazwazwpKK67ZGAe67TVZ5EN2ewzEh9xz0meypV0gVAVAF5GIfTFFO4WSIOTgGgHJ8hY3FUxs8l2/Vw5VeW6IqQPv2av2IWWAHe9seiMSUNj46e8ldw1p/ez0Vy27Swj+66ty+z0ggfG2 - -rvV1B7IWrZxKHXcTSj7BzCtjxWl/ltyBzyiTxhTz/j2U4wQdwEV6Lp78NwwN5j98GJ2MNzj12p56dTxx56J57XN4cj0dJgQzxz97bT5VlwA949jz84wWExi6PX20kW0iGD2B6kW8niuQRMzeFiinnrfMVWqjGE9oZsWojMZsbIi/YVVFVAoi2CZ1e953DyQz0K5y5lBx/PLvomAB2WmoQLphjGIlnHKrEAo5kp47MW7aBO59fJW1Y96ZV0SI3G+B - -yW31VxjYQNly2e9zuRfMBNNxKTw4d1KT8mdwJj4OD6WNKw8s1CNsEMdCoWrWCYvMjD+z48t0Wd1l1MJN+j12l94dt4Wj9ATyn91mD16D/BD6hD4MT+XDz5Nw957GwTZRx5umhT8hT/4t82exnMAuK78j2s65+EDAlwI55Gjwk94TT5IfGdz8jzzqavDz29F6D5yUrpyFWOlZYLQlg8Yj02W0xApTz//bdIT8U17osI4closAWWuXSJjxLjUPREHw - -XWwzzt+HOB7EihGjy9j6SFyT21iJ3AJ9vsH8DPeQE7mAJ8PUAJI9rgVorEA3lpTE6yviskB62k3NuzAobZzXADeCZIwN/gJE6w615yzysh95J54SvYdy891992NV3lT4CT66yIdiL0x+DBgAd9eTq9nvq0P0Dynj19z5dD5FIJVd0Mj7tj3Vtzh69qT/Mx/6V8R1+Cgn5TzqTzm5zJ16+1+iT4xT0Vt37z2oVzDh18D+w1xbLu1NxrIjLD2S/U8j - -ui3fiF+6kISF2Dd6tj/0NxEV1zD+6z4PjAy5kTRoZiKD8MALH0AASfmsa2baGgVKvd2/VyY16gICEER/TRxl3yYkFaCUuK5sX/zaiNyMFlx9ogD6L+3WY2ldzHD4bzyw98bz52oBfuI9OqUBH6N6Iq9K1QaWK/F2Az6JtxGmByz57z55R/id7nj9+T70Zy0F3K98/j9x18Ue4nR7o56wN3Mj/gRiix5o2+1Bpt9+V3SaB4k6zX66aT9VzwZ98J9z - -B92bTzE64we5bTwPjyF+1T1yI5++rhZz0gD3wu3gT0pF0O+pTrk3z3Eh/fz5+k/PZ1lh4vZyQG402FQxxFnbdm7qIC5sYTcLdm1LCtdm81m7GW9jIPGW2nT6t+8Gh6yHTLvO7hwM5CWbBNtmFVvjt/Ozzr91yW4/zwb+FNALfz83z+FhLCZ1+AKDolPRpGjPQ7MoQMmABeBAeQH0k/FO6d/dRpsvWMQizqva9iL2UT32gn7L1F2LbOVzyFz0Ip+9 - -9yD15tD7dz6F9ztD9SzyeiD3vHNFfDVF405HeVXtfUmhccUtVws7neTwMT4Fkdyz6gdzDDxlD4dd3IV0xFySD+PZ8TT7gNyKzyoV8oL7Yzy8Dxjx5YD5zD7Ie2zD77z/5N7jT/BT7bRzNT8rN8Bz9eD2eD2/j2Al/qe6eD5yjf856j9/tj77u+Nl+Ud/uD7C9+sD2ON2Djw3d5Mjwvz+Mj/9NxCtwROLl9yv5xwebV18Kzzn53BBktd1baxoL6YL - -xbBSoL5dVisx7/jw6F6PN61cfH99gur9N0dtztj2BTw4t65Gblz8RyVMl9TeD2O14T9h4BCQ2u8UT8jKqyyR2nybzD58Z19Z40dV8+/S0WXHZrORhj73uZtTfL99GB04qZg7TmcZx1NW12HOwIj57rUIjxTz2aJsqJrU5/qJlzj0Gk1d9prrTFbRDLlGk8eGe2jRxkXcxwrDQ8x6ST+RT5kL+Dj6uz5uSNMFjEwNaAONFF1EIB8CHNKKoMmULKJ7 - -nW2GxDX6LfCCRx6v2EumJ5S3AQBg1iXl/2j8aTQQd2Fz8UKxmo6ERyeTj8qBubJBMsOM/CzZeXBGuBd3cjT/AN9r60Wz4Up/k9z8dhkLzr6ESN3FliBzz7zx7KG6BxCN/m14it8t17wjPGjyxd9vW4iL3kL5+k7+OyyihvJ8P22f23P24xm/lRA/25JuzHrYBPKOzTDob4Ee4I+GmRe97C1z79yd13b55VVwFlDTQCsquOGL1ZEYUmgVlF1P1YLx - -Ya8i5FyAltMJpV3bobl/QV46WpjkP8zYgj3V90kI45hpmt/XW48Lx0xyxxy2Z3u4VuqB9FLOhU1owLg03Lq4oIM5hIL06dGPz4Tj17z7IL64tzkL1yz/Sj1c9puD6d1zEL+9j3y58EL1wD8zT2aL/VW86+qwL+oLxEL+yk7PD4e0yRzxgL4qp+4L92R4xz7Rz69j11J4omkQjylB02jwlp7xhxHN3Jh1bCNph/GmzLTxeV9ImctQyFZCwe4eVPn8 - -7V9zgj54z5a65WeyFFwb1/GL+uV5Smyte1Zc4Gh3C1alLqwGxNm02rlZCKc0qMgHWW+HDCBGOUu62B2qnWUu1i1Te+EKyrmkLmW0chliYjKWHWFEfm1ACok255m0VZHOaq2L0Fm22B1llL1wJ2B//q1QQJfQavZzGD3stcfnE+x7sElVHMslqDehu50g9yCodgj+zaxImNFF6TT0mL+sL3KlNBpaEwIT3KNENvFAOTkCqGFIFLIJbC7MOXF+isyM - -qExuWqZVyl+n7KzaPL8CLTWXuW+fj5Qd97FGSz00DxaV3dz7wL6mz/wL9D10DfpGIKByZ116YpuCCS3AGqLxu12/d/ODyQ19quybV9qL3+D5AT6jjwL9zGlWpj1itwaTyNT+Kl9aT6G4hqz7tJiIDwz9yqz97txFaSip7mEy9p+FjxNa1YSwtrrRJwz8WY69DlrDY9r9yxD66zvT9xuZ/AT6qzyuL83QKFDkGz55nKcAG5nSHNL9UonHGXYQ0q7d - -W07OBRCGd8BQWGap63a6CkV6ULf7sIJmKzz4+hjDyga50y/qJ1wL4et/xj8+L4JjxOWNcdXNFTrkM6NV8L/tgpeqGqh/v9+6V1J6y9N7xJx8tx78a5F41T1jDzsDz+T46O+uDwaL3uD3RezB13Bz2Ht1Qd9uDzmj0VzxW54GjzZL22QCYvGvZ0a+1iL63sPsO3aPHpz9Eu5K+9W2bSd32aSwkTTWnaSd8TvBx8JL+HW5C97ZLy393gq8K1MIz9YD - -lEwD+AHluHX7OO+EPhB3/gDSw0bTYAZ6sE/tiU2LIzwXl2Km+rML+zXGL/OL7JHAnB6CZJKL1ix0113wV+YxOMAMEYmEBCyswn6r0AddMFQbayz3e12UYE314Bz+6j73eN7z+7z55Dx3D6xD5Pz1N13djxLRM39+O92lD9zsUFz2Wm4Ez4xB8vD4uLzK68uL1HT4xd2fzx3jyfjyuV0Bvhxz8qj0F+9dgcU3FfIHQj5mjxd1Ks9/+V+qj0kj5qkQ - -7T9TT0W2QMG+Q164l7Kjz6Bo7TzTT3L1+dLwWjyEz3kzzaWwdL6Wj2UOqajyrkLrXsAcqtL10I7ezzHJw/z8Bh9LwraT2Gum7s+p50uz+HNww16Rd/Q/FotwvRw3R3fa9fDstD31J25e/Wm74L/Bz9bD2nz+aT7/DF1TxDtwpe56j+ztTQtylV2O97GXgHT/4L4id2wp6kzzobeDN97CoGT8KYIzXAtd1gjymL4VL2mN1Wx5mCSRd0GL/yJ+yl9x - -qzRz1JRw4hovR3leyfz4nRzqB36L8Q1+RXUTL5+OpFp/Wj8Rh52PFq5w01uOo9CQ8XrZXp6ypNXp4iQzW+6ZgjS5+oj4W+xBDwt8d5L7WL1drWGJhITwPF1OBb1orOo9TeLpTwkfPNp2Znbd7Thuh0L1DWl0L8uFNi4m4D0nI1PS1lNSv1wl2RpT54u6veNpT/e+/0YxzbsBj6NOXn2VML/B4OW1yNOX1zy969CrYRu6jB5jB2RJdRJWZTydonj5 - -7g7fxu/CtU0rui4zo7lIjwdISawipQ3uC9XAkUt8gCHL3U2IeCezVZw6N+7u1LL2cOnAJ38AHvsJzGjU4BXKHJMNdyanhkGxjfpNrlyliwIEG1lMY8IvSN/Vwz4LC7D4lk9oos56Ajwbu9sTDzL7yW6VL64F2KF9/t9J9OmnJtg9RC3Lt86oHQ5BggM2JhIL0fKYCL7f9xlzyTD5dj8bVz8NwTL06D5hT4q95lT3PzynN5Dz25D0zLzhT3Q15V9w - -VRzqx1lz7yzwOKrVz2+D4XZ+fLzwz5PuKgzwXd4n9w5L6vDybt37BX5T5lzxYL9GN5gT5HRpRBwQRweDzDlDpNzPzxdT8jL1ZL0jD1vL569njLxRT6ArzhCnGz66LycxxVGsajxMF0iLxzT/NLy5YCaj0iLwnpwXM0pd/c/WW3E715P5qBR6G+ML90+RSlsuh+3h+2AiD7W7oqRL967L1L90r+QzbQrDwPyuJ1cMdchR6xcXbL1dE9Hz2F55a7UW - -df8M1jxkEy/L/AqNxyt+eFTfs5+IFeFUrF/hz1EzzRALSL+j3ADUjArjvsKIAArECQADLIOyADOGNZRDdWzqt3ngHCHMKzBEbOafh8hO3L2owIvlBK9r5jw53YoiOXNwPL85V7oz/Ep8Q+GKoAAhIUkLSNSxZ1McRX3EUo+pL0Wd9OFVSx7lt/zZw4e2/L0YL3qTwHzzAz5oL2dZyHz7G9+g23BL6Fx1rz4FD0Dz8kV7YL3vL55N6mp+81zVzzfL - -6+T+Bz8Qz6Yx5eY8+12YV34r41z5ONy+d3oLw2z5sjyR90hd5vL7K94vdqATzul2javFD2qz/y99QDy+T/ll8gz0el2JZ9ONwFZzwvY/lX9J/bM+jV0VD0j52CJcXpDKN9AImUY+xEFql4ltcPrR+j2JT9Ju8nrRnrYMr4/c3m/MLvsShz1/STDWVWfrmOmamozInz6Vj7ElwVlw1ZyLdN+8IV2UpPu7kBfpGVALBON7kG10p/w1ECndAFqEot2u - -QBwe8mC1lEmH/NAE29/+okDwkXv3NWjKpnu6vu7B960x6Hj6fd7Ft+NV/lT+95BxNxv0yDJEd8RELP9hze/RYzwFV8mxlqTw9DyhT4n97RT1H5+Er9pt+5D0eeRWF8ovGtR84NIS2aVVwA3Pmt5J96bTzbT9sj4YB4pV/Gd8pRSIryaj1aWyF6+EzyQT0Q15tAhN6yJB/cr6Ch9QR3dDQrO9Ql8pV75ZyrF9LwsbT9iGyN63Yx3GlytPLqBwS265 - -OZI0YfD2p9IpKttexx9yym5+k5Oj0veMZTzFgz2kMy+13F98fNNsD1fjnm8HrqkOyQG3dp8uE9Xm74O+2XiICLzDSD4tX2CtT7J6WyUzIUxwWjELdblU/xXMCMxCOxVrk0QG4eAQMJXWk+Z5T+Hh/zzyyr82qIH145J5x906d2LINhpjpDKaMMPZbqkpvaHQiI98b8EIQt6ft4TOOa4maG2xMzjlzzoKuNsLwvvkd3I3c95S13TD5V8q3z3xj+3z - -xHjy4K13z/1U3lvkwONPFLF9xeTzp0DVi8Pzzy14qJP0T+/dwXd9pL5Uz+oV5bp/pL24h/mrzQvUA9/ILwcB5kr7Mx8iT0vLyMSFW50ZLxGNwKz84e/Wr3yz42rziT0/KwtS5t2ukxStKk7sF0VxSrbt14pKQ9kZmiBLdrM7FLduNxzjLy6z5jL06d+EVkHWFJ1RLKDoUrMMMj6OU4HxYfeEte5/e3Q9oPVABkJJQK8achYMJeS1JfKreQA1wBT/ - -LJKsj8YryXV6Yr43l+Yr0LN+K1TacPwDUarR3uEywn6t5mr4It4im47z21L+Wry3DyYLwfL5ja54V6ErxDzz3VzBzy4L1UuR5i9NjEbdvO3MlirSHKYp3Az8pj/OR06d5RWvDwIOTsDGIsFkZubeQFmnNK8EwIOz58Z3bBIKLUJovd24q3L8nTE2yF5FNvjDYK3Kc6KtdHDzGr+Lt3Gr9S0zgSJ7dpuIPsk14K0VRQKW6yfE+rxpL3xKFd8Sac7d - -8eMNfBxwj8aY7Sl16X7Z9nI7mFXKP6Ue96UgWC0AC7MhLIFECvacLRyu1LS8seLV9jADqQBbEEYMnwldaoDaLwD17z6yKsorFw+LxTd0498mS60j/wL7+J7nDMv0EQwL9h1Bbr28+WW4l9yj12RxNdD3s16+uQb9zyx++r5ZN4od8FD/Lp1tRwY2xDLYugOjL5/iqgj13j2gzzuR6GGtGe8RzyPD2NT8kh2prw/AuMLC2j0Fr+BV08jKFr1Lpeaq - -aC1V32/oO/mLwS1cLF7dm1jm/vGYjmwVRB+yhfSrBl8aow6sKUXZqgydT75j/gnIpV3z6w+XHPF70CBn3Gu1sYUohqv+IiiKCpAB5lCf4S9SmnVLyXrI/DUx6ZVx5sMy4fx5RrzxANChL5RL/DwiIr2xYtGr80D0+LzKT5pDy8CE+Ey55oLUncxNOg8NdsfOEdIuZr8E14ZGFIL7mr5tjynz6nzwgz5iTxFt0CN2sL3mr6tr3id46d87zykr1ukY - -grx4r7tr1UI5+r8jjyf98yj/DD8el2Bd56L1Ud0ATxTT2IDxrpxOl0FJwNL09r3rp48/sqz15jzOly9r3ot2wN5Md5Cr/vL1uN1It84LyfD4Qz6KlxTL6lD0Q2wDr3RTxtj0gz31p9Urwsx24L3b8T5T0lD+gN/oD8hlfyZzrz0Hz74ryaetoLyZL4hJ8Hz3jrwCDzEAW4uzWByTmfNOYs9X0r5jIkUL/l8Uce++PCce55C7VfgUblby1kHki5bV - -oEGB05c78/cnJVsi0kQmRIx+u3jV2bSHPw4ycG9k4QWe0L22yqUk3DF923HVGaTSDlD4PPBH0X5/ckpPDBDhxEt0VhyiNN8kr2x+2oV/EL0YZzd+MzQCSAO8ZPtxHNWYlcJ0CEZKFJ0kYOX6d0hLKxnSLtq/2zjl2p+G3AbEiW30wld/Wz29OWEL+JL2Cl5JL0w97GrwCT5Hj5uSKjKB0jy+cMq52WK3s0i/Z7DW01L1tt25QnOD39z8Mjy7z10m - -8Tj54rxlD0JT2Bz3CL2jr6WzwTD9jDyid4Hz1x9zQF62r3jD38h6FL+ZL2jjwHp+ZlwXr4XD0XrxsD1trz4L9wT1bFej67Aq23T7ip5jeUQy+k53o62Bk9UCtMz32O9fiL2O5MBibM9ioSMfBXVnEYdO1gu6Z2T73MIeO19rwbt1kLxzV2sGLOGFuVAiss6iuFDpr+PoAFlCireAP95vPKjgFHgFZxO8JkaMThZ2TkaMZD6wB846djiWj+Rm4wgq - -JpxVgGje2aV7xj0NrzwLyNr7tD2Nrzxt+4uQXrkpdO1PUqFtakjegJ9zyjT44r2RoyDvVOr/hE7Zr33DUO7Y0iCu93e9/fL+lz75DwSd++t19jyUm8IJ6R95gzx0Z5nZ7Dz9522qx9oN+Gdjtd8dj5/0XY1+3GgAbwDDwHZlDL4/LyHt8IDwNj2q1wEL+36mgb1qD/2x+Ld7AfMjrxaD1Cr0Xt+Wz1Xj2/G6Ue8YD4Sd39OzL1wPGiMD9Up4+Y7a - -r3yr10z3ZL8FPM6h00zx5r0rdwKW0U97XdxQb0363rT5me3j98Vz6WOxtL/6dCsCs3R0hDyWJX/D+Ibxdr4+T128OKL6fjwuD++D0XZ4x96XOEyr7eDzQb/Jh+Am+8m9V0Us959N7Xx+wLxkd5jzf7J6/jysd/5N8Cu6Qb87AdN5/0F11L/tt1WrziVxiT3ebH291/rz9q6Dq/XPB/aRslyA7T+1OxUHDovzj6zB7rD4mD2GJu6Jo6kLqz33iJEb - -3Fg3hu8lZ9ZO0PJ+Eb3CVf4TywZ5093fSt09yIlIdE5S/baHS7sB66+Vg6kJJVgyHO2jVftE0TmaAe27FeHQ0xV7zx5ExaQM9iKnZT5ypSkxT0r/6W72CyyN2JTYIUqME9D0wv1zFsg9E6gh4flAqqxBN4SoleGsBsABo4qMYd1+DD+HW14b3AJ8tXEjKMZqdE2P6UUcAEWajfpFkBd2mO5zzqtyMgM/y62sMd5ClO8SstHAIim0CSpHdzrzW56w - -F68U2IZ4xw6xTe+FEKer3S1+erx415VL3vq1TOxmxFHOrXoywVU8cPXnQ4r5dD8R2FZry4r3f2MTDxUr1WNyjj6Hz5nr8/Lx0hJ/L2Wx64b3IgVsR9vL24byGj//r0FD0id7dr9fL7Nz+2l0DDw5D1+VwKJxkZ03dx3A6MzzNL6te/impajzDr1ywAyryJ93AZ4Md8FoJ59ixzxmO4SXAMd4CmEMd559nxBx8G/kZ0gT/4zG9L9dL21M2qN0yb3i - -r2Ez0n8x0d8zV0yb42V8/l+Hg4Y589AL1QHvGNlHN36+9L07T1UZ/9r+lD6M84obyHN2aD0Xj+fnt5+7te/h6RbD3R91bD4jISGL4xO4Tr69Nz+d6rRx3x9cD+BD+i95EN9fj2nr4ZL9ffJqb5ZMaPl8okFCz4mLzib2Xr/N17wjOSb3qO+aT81VQzT+7T9LT8Oj8d1yjRP+6/X6yv0C7yhDjzvW0bECYJMDmW1R/jhylkEGbzFa9MWRIbylkOTe - -wb7ZTey6b+mMRGbxg69es/DrzGOwvV5ZAIje4B60aZW624SDx8D7aIDvT3bY/pjzTxS/zxSb+LL6wORaneWXl5r+ob/duamj33MmLTxud+L1wfjxX+2KzEXL8L4yRd5RZyFewdVx5exHNx2b2xd12b319d3vTnlrwMXs8rkPYWET81/4k/2e8rlW9Ry8KcX9yjR1RTeYk5j5/5DYYT0KSnro99ij0b3IkzzUAPSymyQiBfpQ2ED9sU2olh26TjV/ - -ReXg42MEwydzLVHJuZXHanp7Wyn6eWTr6veGBjwMY/ZO221/qo7KCJnp93gxIrZYTykb9AmSi+9AVxEB1upwFo8Z2ZRyXEBwN2A2+1W+9q+xGD+GbFGD9q+8rL9Z4qrL+Bbyj6zKOWopzCQzlMZDulubj+LexAZco0rF/Wb7ChB5d0pZ15dy5lEOmGyANStHfuOvyCAWPKOOY3BUxoWeEt8/XYbFYC1ikB+PuW4M1++vGAKTdjlSGSQWM6z4KPBn - -x5cb4119cbz/TyQ5Fw8kL8CUioloKO1f9RDFwPOiktV1205D915D1R9yxT61TxaHqUaPbcCO91Gjxvu1Gt9gF34JLC0GCd3kr0HR35D2pbwFD5C2xD5Le95gb2ll6x9ycN59DyjDxzD9Je5Arxjrxw59H5ygF5fLyd54JT8b578b06D/Cb0ll/cN38N9mt/5D58dz0FwEr+y95Yt8O920xeQT9MD8Ib8XrxGt8S9z5b0jr8Fb/qT7q93BL4xnH5C - -ygsdqrw0E9dlyJIztkzm6Y+N0zbXqFSzbaMY8pQ4nT9UdVeb+3yu213wsjnSOfVWItgMhu9LORASCzwuz7DD4ONyFb95byH1y5lOU4HobuRetA2v8AEMBFJ1e8ZHFcIqKIx5dRb7tXOKkHf2oj3ENZzhvFFVDNgNRDReQf8l6SN9JmW7T9waFADFoz06t04d8496Nr5YiCwiJXV942DrL0HrwnOftwOYh28b2nj3Doktr4BLyCr9GNzCJ4sN2z4J - -Zb3z101zz9N7R995Dz4ptuTz8d39r51D81ipAINVu9rOC/BzyD/kNKU6hfu+KbzqkYgT0aB97T+kz+X6yOV7Sl4ybw0OBNbxUYGp52yb4Db/ODYzT2RbNIlrej/jmTZba5lawr6FbWOsHvJ/yHf4b+6k6UKJvPQIWk2wevBqeja5d6Db9HW0Db3pYEmEpvt3Ir9UAEtOumggzt0PMMt1oZJkjKEs21c3gHgN5BE5MmDsHEcigFTmiMLCTRcoKtBu - -T4lD/LV2wd/P9/Y95KT1JL17rweT53z+95PJpx2jKuiikBC9thaUwN8JucWHr8/d/LpPPLyob2ST8GVxy9/ob24b4Cb9WR0Kz6rb2jLxIb/ZL8v5+aLz9jyNL6wdzItx0JeJ59Dr9Kb45rz841scBIkSfdDFLamkJfAheBcR1YEB1qJpHGPAV6Kt/VyRJOEbgrP56gL2RL8Wx7db/xT5GtxK9HAJ0OWj1YFWgD1gx7ItWAO+kcuGGyAD7QS5Q840 - -0BzMRaJ5bycr8f6LytHJKOZY2B944L9nrwv1qFz5pr/UT9prxDT7pr/z8I+kNfg6uhFwiWy117uoPFsIV8xr0Wd6ENK+r5Jt2db8AT2ixjXN1nr65Bxpj22N7Jb2ZLxYV4ib5TgnKN0qklXV2/iHOQXiD5SLyGx+BL2kr3Nzx6z+8uWiRKzQB9Etphn1EJTEQeQDyyDLWPZ9w0bWODtbMkjk2Y9iq5w/64t69wCFP93A+DP93+68dN9nb5/Tx618 - -ANzfQ7xb+md7Y+ea6CVT3fdxWOtrgGErTLb/4983qOjT/8bxST8ZL4YLwzD0xF7rb1aLz4rw/LyCbyqqHqx9DN816dYu1JsetAdIesYQ4FAJ4Mp0yN4MtOL7p9woL2iTzgb/+t3AJw1MR2Wry4jPjOEwPMfBOGOfrMtXpOGPWJs+bu1zPg4IbZ/x/IHDEm2EWxaW9/Vz7vp6o8T9b7M/j+58b/htD3zb57rxRr97r/Gr+95LldxpbEc+/o1F49yU - -D2nfAsCtOD7Lbz0RECrzWr45b5dj2S9wQu5Vz4hD21d/pGmNL02N5Xd85r1XZ6QT3lG1gYaCyzOd6udwU90fz8Z9/G21IB2SB3dbxtGhCGwJBzvD6Q7zhWxb+yre82V2ir+gB3LaxQ7zr+8Y70WV4OV6aOzP4rxd9wFIxch1z6rFKkW7ImWJIJqNAoctpm1E4AK2qpm/1Eiw0OXCDbr5EOw7r2EmeWvKBk47sK3r4rB/iyPTDTRKQldqW08xzOW0 - -5Kt2NL3bT5Xl8OV9ftImZ0fTBhfIQAPYAHU1PQIJNYOqcLgAOuQTGgDbhQtEFDkEUYDT17TN7tXO6Oi4NFwXAMnKSB8xWwuzuvz0X61Imw6t7Q7wh9wLb/dz/HD+95LTd6KBS5Kppma1C1w2hnHXZJ/mzzw7zqIfndzIL24r7WryZ+EcDwgd/Vl/qLyywt+yYab5X/Obb/6R0I7wX9/9D8ZjXbd0BD7cD+WjwRT0LJb/bynR/1r9JF9GtyrN9Nx9 - -tJw81/jT+XRz4loydvnN0Zb2j9zyWxj90Ar/tdwhz0hT1n5qPr4sr32l/wb0PN0/L9wb3qL+Ur21T3QyKpb0Udwnb2Pr9trzkr2qD79YmCr2lzxjT0jjxbp9S94i99rr1S9xcDzC7/jr/jD0PMuf876uhbpSDq6jJ3ZhQoU2g9qKfb2aQvjQqDsDq431E0b4GGEp98DF6axb3pHSc+Js5Ob3abblbQCZzxsyyTUvRY6ixydu2FlT/YCtUeJSgnAg - -9ygVzOL6Hz9C7/cqLC7zRLyuVKYzWKJOXGL5lMc/HifBv6B5lOvAEnMeQSP43jWqDKjyq5/iZ+fND6XdT0fE7xgBwP42Y7zY75xbzoz0PL9TdyPL6nd0KPYaeGUqd0j0BnankuyZ9w7/fb8NOHw7w5bz878Ed9Dh2C75MT4TDwJh6cm3Wm+cmwV91UrzIB3arxCJk9bxbZ1zW4Rz9Ib+TJg/h8wd71r+0hxBVzSrxY738j1Y7zre39b4k6Afz0YB - -zEz5Q77Y76GFFd6+iw2KkFih1y++7W83FzBesNW9/z1dzOUWw0WwI63FiriWgGwgEvN42xmB1mE7p4HzrBcDZVwTp90nz/tV3o79HW+q70GO06d6XOlmWD5nImnCdPFZRC8YGvaDjHv8AHodzqt18APUUDWG/FnhuGyq568xHzo1CUhUT8Tt5LJzh8PeL//1zdz/zb/Q74Lbz7rybzwys3QPdH6FmdxAlLTUrsiljLQM7+a7/VdKlzzA70CLxEFa - -/L2M7xLk8drwc79/b5Dr8cd9NdzWd/jL31L3Xb9+14g2DWzzVb5g281T6ax7Cb32jxFbzPNk5Dx+7+Xr2hL/f96wj48/RqkHrL4VZ0T6yxJEoZ/8tURm6aOuVaVakPPiDakOXMEdlxIOueBbOjYyoE6z87r1+75sjxcl31NsacOv6KsGFuwYS5S0aDh2HLdPNFC4MfKJFDEv2yt/V0euxI2ICNhK+Sbx2h7/c91FN4k95q71/T+Jlzxb1CFJw8Vo - -mZbqINlT0D1EWly4SqOWJb8qAmPzyGjz/b58DyGj+YL8vL85bz+r4X9+5b9pbwC7/lR0oDzd53874CoLJ7wFN7Er4pj9I76HR9qx69t0eDw3RENL4jz7fj9GF0Gj56b14L0k3Gxb+0RzJb2879AzwYL98D88714r1Z7+Hz7CXvoTy5bTBlyAew1OWAe8braHa8ET2OsAt+wcZwjB1FS0jB24vDhVwRV2S0FfbTRVycDMF1xsQTtAW0Xf8mWtPJXc - -Fs8a05zZ78/b78h+nzzOVK+djArufBez0I6MD6NLTQAdPOqAAjA8Gz327304ElxF3Qi2wuRck6hBBboyuAiMvRtzy7wCU7pj86NzQ73O73Q7+Hjww71Rr2493DPBm2LOIB0T0n6u2EyVd/md3iO7Lb632Krt7rt2Ed56L6db9b59V7wTT2NJ+cDxQD6cd0Il7hb3EzyoD8cD9y+LV725hxi7xZHsF5GNBg9MC0SoBS9pIFA7zW70lJ+N7+NNxI72 - -kx8e67G6KoFYJJNbaF54E00r+7AcGkaBCu6UjA4aVguqYkMu8U+Q9+WWNgDcQwDZEX5iFS11X+987+j7fBBIv96gDwSjzJLw9zy+z189xLubqYaXu67lz53Yk+Pm2WJbwHlckZ2Cb+828Bz8e7wI72/b//d8j70mGZXFoyHSUGR4Mp/CwUJt/C+rrxbt4vLy+T2+F9lo82bJzGu96SEwOwiL0AByAJXnvIAjzWozgH5aSfZyAa7M5ytZI+Znznha - -cqwD+2D38D1D+6qj7D+7O7/rz2Hjzoh4u74w7/hPLwDYcyd5dU3JrLqK8a5Xb5dD+RTjmr7tb6dZ+WdyLd4z99ImdDxwxt4t7/VRk3x4fDCEd+rt9swYTz0k97s78Cl0nR8db2zFDo5/s72Vup3V+Fpw6T6fz/HN3ZDz9D+qb2T9+zL5ZL/c7x3bxWj+5mmh7zJ63pb2KxwZb8iL1Vb7Dr0GV36V6ZL35bzeaENd63b7C22ZbxJFyle61p1wb4hd - -yC77WwNTJ27pPKO8pRX6j4ujuEpxw27qF8rb5ob4pHUQj1Wt0/K+t16+Z06qeH7beNwVNd4S0VNdnNS34UdKuYIz4LQnLx5tc7rXqz2Wle6kBWlYBvJ5sF5FKS58T6wT6yctWjovNT8bB7rB9jeWbB40GA/0Pc+BFhzBtgNER+auulVs/HcLrEDwPx11p2r1xCDCOt3bD+cAM2iOUcXToLLdCojSFDon+hNQo+ho5saF0WguBkJLSMYjqu/ADnwq - -4CnUy2x9Fhb3fSwn75NG88bfz723zwu760728r3mUNvFUmWSU7/5TSgrfFPU6vZtb3xoktEr9zzdD++r1k9/dD4nr47t/C70KcU4b3xT7x1+p75CB28D+wDysD4l7/ZR5F9kWb2MD/MR0YlxpZxWb8V9xBh/Ar/CuzT910/Tmm1Gd/qj8QhDdj3NLzb76Ir0fL/J7y/B+o7zU77oDy+h5S9yDj5Dt3IL1AF667x9j0iB2e70p53Id6hL/Pz0UXtY - -byB1XXN82ZGDz5xDw/zzgH8MSozL5Er3XjzCN82b4IHwhD92b+DL72b9tV7fD6lJmf7xDD3DD0wvF+pf4S0mcZHz+o7i5L2up2mEyxyda5Dj64jeUf8hsOyOE1IZycWGeQoU5xeGqYqRIZ/laRiQBPZAtT9UGCdUN5mBEvJS50whoYSxrL5zVApiCXp5tT6Fg95g3y++1onibIYjVu+xYj0fZ4dLRTmb6iGi824ngSpkNjkJkYonNoZ3IH1SL1Rx - -7ENy5lBHnDPBFK8Mb4IsFu46xekBgqnRSs9Eg6TtPiyeJ4A+MacmlVj6BjPSS6TlU758B9z+3FnGb75HkXrzzf70178L71Rr5F9xQ5O4gu/Q+w7/74CerJ8+mJb8MF+Ad4nC8TLxWr5Ab7kr/oL/yzz2tuat6ZwGSQu/6hOr+ib5FD9ptzAb9QyR77wPp4hzwjz4lN1c718dwMp9db0oLyrN3s72nVQab/sdxbRoed4zh0s74sH+eZ9db1qz7upz - -ljwPT8I4cjyty++tayEcA1aVuEwrvLYljy+zD6/Fh+1oiJu8mh3PlAw+XtqjiasigIkBMCkLbdwTd3M72MoNZj0cd3AJ6e3cK1L2zlMXDUS0ITtQAkbADAOFDwOxLzqt+1gMCY3aIo7XQe8gWICoRn1Ca/dyCNrmG9Wj3n1+r9pAJIjL5Sg9f7+Rr9UH3f70Lb/VVy1yJhkn2SPD14gGH/1CkHR/7+HRNrcLwJwj75CL84b+NtNMH7TL5Kb77b1t - -56KZ71p6aL3dry0kSht4xVAmu7iH9eUSYb9ZD3z1/drz58N6Dz87uItwDzxxD1WR/Ie7sH4Dr0IH05r5qD4Et5yHwGb8+5g6D/fDnhj1Dz/URywMZ1nrFb/M8MzF2++y6oKNh+Kq+E1Xzj/Oj3Gh0Uu2uj1vtVvZ1ZT7YvD4HzeBZakKG63CrSFZ/GD9R2SlZ1UY7VOaCVQtvqmkRiMVxZ6RL6q1zfD47G/WBb9Vz861xDxheDmzJgVk+QC+Qamn - -A+sHorLNRPU4KJDyz4SViBU+CtXW5iBtUPF2zvuOawPbHvXj1L12XhzXN0x70fb1/tzq7y2jNPhNeZm9CjnV25cf7dD32j6MGJb83APLb/IL0iT1a77gthM785YNy84l13e79+D/bdxs70u0Lp76TD0/j0cj1gz+EG9p14uZ71dzeV4954Pxxrb4YtymVzNlyIb+h7yQF9l1FglywH0G7+Cb5c15MYjirzwi9zd8eshL16UNxQN2vL9CN8XZ+CNy - -Qd4Z76eN+e7aZnd7NXSFaOp0HNQCe/i5/RAJjF+F+0TB6RaYzB+bW5YH4AwD372pz+BTrLbCxgiNWxZCHzFzxonOe+4k9XWaklAjDreFziF9oZzuH7CN+BZ9jN6HV/Dmnr4BSALumhSQ6QHO37NE2MlC4lc/XYZAD81VOBTo+4oat9hAra6q45ixb8pr00d9Sb6Sb4J+nluxXR1FUL97x4hP974KDy8r0bz0u713z+v92HWIaproPKDjOkDrrdud - -AGJb9P0A2H4iT3a72oL7e7/tr83D5ZN/4rx4L7ELwyEUwHzM76c75wxwAH49D/b7w5D14b5HZwsH15b5qe8vo8Wtx5b9CdyAbwUd4pH4iJyQHwmRxH7yA94kr8ZN68V3H7+9rwxKMPD0ErwyH5t92ZHwn9/tb/gH4BDzcD+dt0hL6I76OH1x3hCb4vdqwb1kV94L9FDwBt+AH/Zb+Z79rb7AF4i73nrzCr/+1/uH9CL6+70vdq5H6J9+3b9kOpFH - -05H3Pl3REmJ7+e7/lt4lHzYbw/L+dr0AbxjT+lH9wT5E56SlAZT4FzXMlxFtYlbaTz4Aq1pm/WL21lFqCjO680Q4UnLWLzFaeuc4Oz6vZ7Xpx6+2mEwMA6424W8Q6H0irZGkBK+9rLzFLTq+y58VfZ5ywwkvCEu+4H6q2xT61/l6yp64HxtT6iQz2z+CefwTyXEFsnDLBxk1YoZyT68oZ13+FOE3lh/E1eEj1ZMEdabhm3fgKELDazLj6wvJ5cH0 - -2sKhUmFg14H5aFa4D3qbbwngVxFLNC/96ch8JH26L06dy+hG+Gi8YHO+F30Ud+F5GOVYrahODwFtz4S5G8nt2Kvu4H9iNju7j6EfKVw4FEYMIMB1B6vsfrQFbZxfMH0hrIJwNJ6IitJuqlnVpHASH0L70SH/RH+95GKD2AhZq2JLBOJcqgHovuq/r+hOwV6AwDrnD+peoaFxsUY6BBnR1wxzF65v+xXh8aFyCrxDh9TH7Px5Dx+7UOqGjjh2rnUk - -T0BL6mNw0z1LO3fIM0RLQ1yA616O1pO0FO1+r6nJwVe0i+S1wM5B0MF8q5/DtK/6w122PODV3cFHyfABVB6m223cBZ73okB1B+axFYr1XRzKH7WFxtB1vezvxuKQO4z1V9zymI7Y1A+7Alaj8IQdweN/xMm6GxgQkxws3e4Fr+wh2TzDbH2jILZYlAr2SF8XlxJoM7H/TmZQEmWbynKB0fax28fTXtAOSr7I74YRx/QAHH07UCeEJVW4Ib974KIf - -Ib1AcnBHH0HH0Mz3G7xNpam4OHH3VIW+2xPEF7eweu1JFHHH/BEOnHya6W9a0F2wT8PNgGnH6fcBnHxaIMf6zggfjiGTzKXH98+gXdBd28RMGLtWNbLXH5HHzRwKn2/L2yK/F7H6lXD7H2l8O1AD22yO26HH5yaF3H3bH2jrVE9g/JcODmrrx/QMPH67H2PewcqtRIbBsPNgNPHxneLPH+ztPPH2FNGg+3NgQqoqVrCh9V+EqvH5Pe6z2elHCorL - -09BUkQeMGWuwviYGeKz2S522zTKLoEnTGfH2vH4E4sDquflJbatEyikMNe200GE3ewzOtw++DgDND2iB2/H+LGkQiLbomU+3k3M1kSXN3/HxVYPrnqjcKuG0bUM3AzwxQ3e+/HwAnyEoH92/xM+XglrpGAn7KG7bohKcbYWaU1fO5hDH0/tiUwCbwpgn70PNgn0XnbAQJDH/gnzuwPpifc2H3GMxtZ3ey+21DH87jDI+5bqYEm4aM27iLgnwPyN8 - -AjuwIwn3zXdpkWyWQ4g3doS27B/c5i+UJ47gcsqS173ksTsSfV4x6oMUjNzI61MsbL1YuvSKN9b178+az5SjUdVx88kd7o7IcqPc2SckW9Vr5UMJ+ADY9YfrXa9DkKNwxsanYeH2VnL0ycjNZfwclX/ZYn9wd9Yn5I47Yn1ex5KWY1Nzqnnya61jjya2yvb1iqDHg6K4+x7CfT5FuoRRRJMnfb2HEZfWJKGR4ykq5iKfh0o5Y7EGpsdbjtgex/jt - -sJcWWDTMg+ZfefJ7Qn51B/Qn1Lx+D27I+796JZIMO1yKOG+qulVFc/Ot7IF1DOOQYALluN/7tXEa9734LSE4DkkqE6xRoSsMpQ4uYiziHIQl7H6w4Ym/Tw5K9pVkjH0ggdoz8x7+416x7+IHLqpvlnOWbLJ7b9RALI6uxDADzSH+5xL/4PSHyGj/jj3bp5JH6jL3Z7z0H8ZH+877gb2mRxJ757700pxwH6Cb1Mn6tD6k6gUJY4mQgb2tD8B1xzZy - -hJ9sn8JG/OV2xD586y1Jxqx9ll5MDwArxZb/5H+Cd7q9xq95Ht+BLwxT1rbw1d/Ib7AdxoV9Wr82H6JH6KI2ht40Z08D28n0lR0x56/tFlH1ZxyCnzVFyZby2V0ot3Va1G5/8K3A7/HF2wH+XIvCn+Mb9E94Ar9jTyrb3p9+in7KgxvA1p9cGQc2evGatdrHMBqJ4bg3K4xyIoZsEgtw5PvenKFRQnQa8pfaT5/H/SMBp0Bko+v2euJzO9J7p9VV - -tu4XcW06NwBAexRJHSvRlN+aPdNvuC/ejizry+9uxjmL5FrQTjAV5i89nI2p9Wbh7TrElwSi0qaQBbrr9CaAD7cwqST6inyAr/kr/P70gVI9Miy4uPcDNFp+7Kt7LQILy4jBTLxYbLzy9ya4euEWLVGMX46E6ycMHHhUctTgPdaoM873UjxkF4peEjs4jHxHoh0nzNb9tD1fr3wLwXb5KF9v7KeYMAj8ErTOus4REuA3fb5sByMfTXby6R0YL4n9 - -3lt/RT9MnysH6Cr9EL3aL6iWGkLwPl9M72fFd8n35H66mgOwB+QS+y5Lw1iTxz63mnwQqEOKZplynr6Bz4DD8ll9q5LbV4tHt9N5q9+ll6VWwn5zZb7FN5PZx9D7PzwZXj7p39D/pb8ZjXxH7S992n9rt9DhylHy4b0J75e79/jxcFyzD/Mnwwb0dVx6wT8b9a79Mj7elzel7oRP5j+OPHsNP188DBDtTh/rUmapuboosJXSwy4wy9n7W0SkYqN3 - -G3GXvdkt+pzI4XT88+NE9HAUO3jzzhmg8GnKmA7RsS+/vVx06yZHfQi8zYeTHfZSfW5fTrpcYcowR+E7yBtpE740JE3twmQaZXV+AWK4SeGlXvSNYVdZUifvDmJXvYNa+MqAyn0ks3rj2cHmr1Rar4A54C71zH9T5yLdJlPeEci0AJn2DOOdmnNbaG9iUO+MoAGN3fl79GqSKJdEzeZIFw758Ep/AFtyvafYUKOD++7HyZbnUD5AJM+J5RO6+nR6 - -n1UH6jH0D7207yAUNzqxbxRPLwfGDL6If7Kc52Mn2XH4+t0E954+R/b3UhoYfKBLwin3xHAH69jr8kL19dE6F6Vp8aL8kV2z95Ph71LwJH6iTx064Ph0On70+Ppn6YoGzHyfHhlT5qn03b0WJ+iNymn/cnyXt4QbzfjzcnxTD8Wny9HAJ9y8n/dH7Ar/Dj65b1udauH3Q2EUCNs0/TH5HG4zH9ImxIJ2glgWn5kR3jsqf97Wz1EajK917Gx0F6rb - -45n2tmlg61LH+f/rOn/UZxJO34g5/p/qF5Ch5Z76Wjz1DvdJ4iwYfzTXM60MMdd/WBa0MDgofNvZSoUVn3iWmhLn7RzQoeUyJBx50MDiF7AysZQxkY+H0cIYsjg9wEvS44xKPun3SAzk3lvi10TAYYegOkPgYlXQwz2j+z5qysDUWBu/N4ZtxJ4VWzmihCWWhktzHtNaz9qyiiebo5nSoDpdA62EGIeTJzjh0GjE6dxNQumUPczWw7HpEbPPLjHh - -ekJz0GSuEeB9KzUDSzJIiiSKx9J8ErToagyldn2EGZu1zwHxJCOM17Hx6Anc288u/O0n5xn72h9xn/f7/Tu3DPBZisIVynlT3W6nfIJdeGn9FW1P1FzuxJnwK1zbJ4Ph65n3GN9qCMZn19/v6kEFn8TnSmN13x72H++70XD1aF/B+nfL+FN3HRypnw6d8zH5UJ35p4WF2Z78lD3OnyXr+Onzr5zqFzlKdoL7jh9Tn7THxn766R9X+0zn8vLykVy1 - -T+Tn73V8RlyQd0TnyKjvYzxNJ/B+my9+8YZ2n7oDyjn6s0xglLjn/nt+Tp66rZLn2XD7GxwTn7Ln+eD/jnzjn/9j3eu+TBZfgJTBZ/mNLbWOjgYinWmOjIIzneaoJe8GsCTtSZfY7knHo49iVXlwTr5c7XEyt3lOA0kCGxWgq91N2fwE/2su54PPEG9/3vcwOg7wcIWrlr6iwd1RPOVkkXZ3UX7LtdrDx9QD0eHOrhgcsQcJzB1n8UHsqxohn7la - -chn8sL+9506FzCb7+r4Hb2pkeoQD7qKYWkm6DU4N5CEuGA5RJpgfjQhmAiemw1Wrp8h4YAcfA4oFXohackO25FUBevIPH1QWLLH/re5l0NCDdeUlZlrBg33z+dOCfyfBE5L02Mn3TG4UK0LAXyH38n0SN34g4yH6AH/lRymR8BxX/G6le8uN2wrVTLxGxJZ7YSb8fz9imwY702V8SIB1u7HW9whzD1HsW1jewjo76siNB1SkIErECG+5B2WuI9MJ - -kOI8GzT4k0M0+cU6IJXH+3ceU55voPzeyolGFr9FkDD22wAm8hCJFnXn6Gu7iizRwI/n5W2z3cH+oK/n8D4tIYAm7yakwps7QMxJs4u6/t+/cMwulbr+WwrxLr0Ukxa92/K5Lr/OSdlb2WdWtKoxqTUmhntb6H634vI1wPb+wz7025/nyEjaVOnre2/nwv65FL39LEJaNbDGrEHbkTBTDPBMreHh2G5CB7DzecyX3Dd8BM4JbiwLsrZqSrFIPiXj - -XZw1IF2zLJ/AIE7qgQX3/n3bfI3n1Nj/5u2NcchzW7XpSTqOQBG938L/mS5MgrHVsM7+kysln4uny5H1Cn+1p8Z73mN4878F3KNF+qa8o72xO6Ge+SE3Bd0rOyxvAWb/rLD1B/uZPMxng68ssrOIPpJNvLCfnzfJ44uHLe9NIIQ7Yre7mEFwXxVcDwXz/nyGu/wX7ti3L5C4X2Rwtg+nwX+/60/siLqkzK6MCywM/xpFTVagtdebyOC99R7Pafxd - -xyOJMeiG6EdQQA2hBEPkNGAEOSL+S1XH2I9a4XH9wX5QLf4Xyn6bu0lMb3RtpeQKlLLVADMzJtviTAEgWKfT8z4fgWIZwH+piwX/xuuRAhnKVima4QB0gKD+O4MP8NFASW3ULkX+yUNXwY5K7nb5Fz8+z3JLy0TxLuXmAoQD5IGYVnUJC2aUl3n33ouJn7tt+G14vngmn3/d/Hr5jTyCh0nr8W1wid5l95zH+jn5rb5On+8nzp123R+ELyELwp78 - -aT5OyfxHyeH3p7/ZnxQH3cnz5rymOyUF1r7yZj1ke2197rN79r1XF3HWaV61Pe1QsEc77DL8rTzUmG3j09OVQ/HU77tR7Aj2Ib0ilMde2ob8tL65UCUz2orD47P5rygIef6+EUEKymQ2OlSCHDxc0FynSYX1i+Oc10aIA271G73GwEmb2tByHo7aIJje94xL3gPhNf1e3wJGgCLvO0DT+sEE2zJWwNHewcG2tIJzuJSX3viLl+5m4LSXzkJ/SX56 - -IJmb/ttNmb6lvBwaI5B4D0OprufF1mb/cSn/QI8G2k4QgqmeAiGT1De/3sJJ7bJoD4XzXJ6uhbjezijzKX4AoNqZ/qu2Vmyb3JyXw36/6b4AoFF2yoEDF2xfh4yXzl+9JzbFBy8qyv65zuISX3FBZT4BAwFbgEMDFPvDc8Z6IMVL7LW/y4Kt227FIwCF89FiX33vjD28FHLGwoGUqaj3Pu+De2l8DH2y7276XzCX1rpEKsDnm93SxJg9xB3vz+WU - -MhRcjCr0YLWwK2b871EdAK2G8FfAA0QzG8PR3bY6I3TxSVCSDD62Yt8fL/xPQBsKoKZs0E9XTC9w9H5E8OdgIErAXHKygHFD4pn9E0Jj26akI9UjFSuj7//EpJVEWpI3m+WE6Vp6Xr1pQjT28mAmNjA8n2FD08n0k0DY+0MOHY+5etxqn5pb+7ML4+1BQG9mFRAorn9v8EBGUThl8cJ5n4Dz1J73evMLBEuX2odCCUd+72AofXnqsMuOvQejABr2 - -Dr/sJt6CRsDvMCEZZbcn2ZnwuKHz29JfEoIDymPnjxEd9J0BBGyTUNeObZuK8nzsX9nephG+3JEW/CR63Wnxa8nb2+synu8A41IZn6CJpewVNxIwAszlYoD5p7+JPeNmPMdH1nhDOhmXwNR/NVZBBGz4WiSB+YEmX+d8vXxJOQf94qUDUte4Kjyr1zBviviiv6kUWJgFMqeUqb0xAYYcW8zU0GIpYrKmFGX36B9X66YidXwCW9lZTUFEqCX1Wb+C - -X+3TbLQCG4GZwFevLSIAaO6JisbskPC0jCsYNBHAFUvjvj4PjygIaqgC2BpVgZ5zHR4k6b5rT7wUXPSKW0bJIjJZdgL6/z4AFZ8cNqG6xENKCe+PfJX/Eh7Tcg4BGXaMI+N2lCBZ15a2rybKNsKYlsgP+hM3V2xXzLd1mt5LYt/ECB/PH8YPDuOdxGL7KNndG+DL1I83Cr8o21CrO9GzG8K7jQSV2sH8Y3aT1KJEC0QvtN5zG857pmX/DG6IgrrH - -aH1MO7/gz6p79fEIeIFLtOzG6PV9kr8GvN3GEKpPonOkkQ2r7nr3C9F75as/vMkM4ijxT5zn0rCtDsGTsL9+HvrzvLx878RbbXtNl6mYNqxFX2H5bgPRvEZGkwKticEe6o3b++zCHG2LJOfNP2p0672fcC671UEJUmHykKR/i74FhT4xn996qfxPhbJE0HDM6jz51F1LEnj6iSs+YpFglm4z1LEu4QBDqB8JsT4bWjySJxQnM6IObDYHFvGiGewI - -uN7PGzH71UEHtX8cWAdX9GCZlx1tJ18X9HG6nG4uHJ8+JFwV/RzNx996vdX22TbRfDLzMdXwAm1afMKYn3yOCcB1DHH5Mt75JZeXEkaJDEJJ5va775pj5JZeHWaZ/NVoHKG/OX3woH8YLpIACyFK6BBz1kL8m4G3GxfEuRuKppgsX9F8PAuIvGzr1CFW0oKCK9waDwd5aJwQZ4OqJDngGol1Qb4gm6mOVhq+LiXfew19xID/iIJ/VCuNkNoJtoLQ - -s9PRzc7zlxywm3wMKvhMr2npFv8X65r+tR90G+a1yfLocwnzxoKwKW1ywm1eqQcLAtEYGUnWCHgj3lF/UiFGWfEaoi6YsyVywOUzzlB3TW7bMOC7C2wlx4GC2VYzHPn6o73xhUwHOCubC+LbAx5F7lF15F8rXyZvO3qplgFMZKzpYrX9bXwpZVLHQ2AoEBDqfFLX65UK8rPWNe7T20K0uB6aBy7tRBMDMBMYm6JYPNox0zz5+/UiF+/Xkm0f8b+D - -zP72KBz5X3poLrl5s9EoQ/aYx7fmYD0LL/iIHh/ptmDPXZut7I50772w3WW6zsIDhg62cj2dxgR0zX58mzCIhZDD8m0AXlFn8Zx80HSSm1uqdygob0V7R+n54OLlqm+FYI4ScxdAoX8mMUVcw1znYioc12WX25nwMcC5SlF5uXrMeDzuXyFWGFnBbpGENO+cmDuBfL8eLipnSqWrFiVar+oX2+MzMiiV2IP4GbUMWN5I74+0KoTFewJt6AX3NvXx - -R54mm2nGXpigu6wYb+wV6FUifX+okkSoJyHlH70uN6dX0VrLOAqfX7fX27wn3L7c7wMcJx5Zx6U0EuYH+uN/1F9uLt3KN/X+0X8mG1crxnX2+5m7n2XNbNmr1ovRASNXrNmr64cNXiG98IJK2JxtYVi8x3txt7/pXc4YfnBlc0wS5u4sxF/V4tv1/f7fV+n96mUHJUl/RMTil/aQ34csfEHumg5V/dQ3/EHs8A39JOIn2cThaz4Fq8zMai5Z/vu1 - -8302cz5S+9OH2bmAz2C2qUaypeEX8JK00V9m06NjZVoqlUwWPfRV1aHaTF5cw6Cw2nSeCwyreSnL9fStAV2ML/vJ4TGSo38jbyRV49uxcjwMr5yq/TeUSL9op7Jxauj7Bj842709we+7lg7aH3NW7ibBscE7b/aH9Y33YS7Y35qJvY3x36BY36HLx0l6zx10l8iD6lU6I3xc9dvda0V143+WBzVtX4D9A8f9E2EyS8e3OnYIsiqdMgX4yJoDk/Ch - -0KfWr+qjbtMC5SZZvwzS70Dbok3xQFYHFWRTS8M+rjzDF3PylLrwtOefbW8ZxnsOVOdt1/PpD0L6F7+S1AUlyQr3pTwVH6Fh0mB4P7/7UMP7053ct+0nLyUrp9p3N++r8oip2cVTJuxOz/OsFOzw7gB6xc8H+yq8Mr7o396xfo35Yj7JxeQz5cG5Qz1HL9Qz5aH418daH7JxWTj6434Uu/M38Y33u+6Y3+Tj1RJcitNHL2itJML3d7fB4BbL4ro0 - -tE0rD2ZnZlb6a9z9l7Qr2SpTAX3k34gX9KHTL94FFfc3+VZBLDww5eLlUS7zp2YBHxPwxtlyRDCTV5PT80lxBu1Ah4EyWLD9G004j509ebFTz8tAX7Lozc3z7L2IrSbL2SbPVhyiw0S4rU6ZF52UGEzj4zj1h+8dLT8w0B++cw9I30Fh6WPQEb3GVXK17i33k164S5B+4h+8TF8o4F4lcPg+kb3Uh8TF27tRZnf8Z5miOv4YWm5v4f3py0X4XynC - -oBhKX8HxhXzRL954A+kXxaK+QD6gCxAFWA2AyhtjAtjr275hZP6d7Y0mdw+hlmS8lTih4qpF3Nrqwi1kLt8Du+5Wzh8GfewccNiNrGVI3n8CT64TOTgk+iGC3YPkNEgOHoteT7XyzmiJTX/u75AF3/7+dIXB12U97296U9/OnqBL6pB4yu1Jn63X3Xb49r3+7woH7ebajr4PDz9r/xlWY5zDj/+kp8X7zL0We29r4/ztPn0Kj93D22V/CEZ5awJX - -6369GbxkeOq78kz0Z78GH4mb9Fa+n+BSTA/j+AbzQHwNMNqZ//iISJGp5ybb/Ux7dYpIiMtwByPKp4O87edaJajyk3Y74K3e1PSFqvTGj5fJ32vJXnxzhKn00uH62j1v4ANB0ve0NB5hzyq38obAtBx1DEtBzGlVyr0Ql3RUHs2y5xJlKHQY8yr6DLxFkA9B4loPJwJNI9ArxFkIdB4bpMhyD9V8O348aeq30WfC/d4OT6SOn88HF0IAcXlwVQaw - -g312Bprpey/pvyxXPYxgZryyGzgBl7+lzaiwagVoS6t6fDtxB5oYlpk/ORD9eXrhw3oCZyN2H422Cfb1/Jd6yd+H4+6rqEX/QM8DI7cKWfww1FPiR0KMmvT6qN8q3w4x2pu5u3yu3xGSIxRyLdBgqsostwIEA1kp5puBqJJLGIKnHM2/D9H809H7iDccL/gWoTl1sjkgG0mKYQCCV9ap/p96PsQX127r92h/ij7RHx3z+jH+HnBubO3ZiyI4wgce - -2GcMOcjfTZ47sMy9fu70QGLJn72n7QH1jT1Ln5bp0WxzAH+URz7Rxd51ln22rzJ3E1pzjX7IyM95+sX3QH78d48D+Z2H3nyVXyCBwKZpuD3y7+pN62nxOny/b+PZ7mN4Cnx+XwTj+AFwpn2Hz1BT82x//75xT5Z30Wx8651J31vtDWn3SzcCn6p30Pn3UZep39JbyDxx5Qh9TWZvLlU9UAr7ISZQ1cY22QSfx3ML/vAxnsR/x/my5xZoWy/qd24h - -jo4+UBBJXUpXcwIZNYTYXfwM2szphMFkXX9p+WrY2hsg39iFt0Xf11pztFkt3x9Ybh9Cwb187knA7iVy5yawkJg118V2Q/Mr/X9zFH9FH8Tj10F8dtHAJ9ZRq9jRGDFWA6oAMfOZWukp5sRppHuIvbzhA/SsltIBpxHSZALsjJIP2IGTHBasCBexBhE8R5TY08lmXX5HjdNb4497Nbzpr7KTybz8eT6B59xS1x79WxoxaqQOk0nzL7xGgtjkB9Bx - -0H01i30H+Rm66rUT7xTn3Mn6Wj66rZC7zcF2z95pc31T5WzyvDwLn4zScNT2Fb3Wr48nxGfKyHwWF03uxGfPDX9cBy0F9LHxFH2uH5LH5lT0D3w6d65b4Vz0aT4OX1mF/zn0QF/p30l7/zHx958mn4cX0j3x5fKOn4MF2D30/0VuH4IxyRKdC25xVjqL8PN10Rx8RzFEzGN/7bwDj8bHx3jF+DOoJzPNzgpeA96ckQEnzXPYGgcxYujb5h5tjWI7 - -y+OEnNpqoEckPSJsUL1SYCnuaReKLDN6+appy9OHHyn0HtE+S4RYv2zdVzWBwDx0vc+0VU1B3/bBycn1T3zRAObb3AJ36NK7gJKOF1EKoQIL0JoStDwCKTNmeKT0mYYgW+BDVL7Fm5iO592bGsD4h1yQxn+sjwxN2d54WH3zN1TdyAN7xb4VTxQ5PCJgqfTYr17vtX4KRqdx37ycP6CnVTztXcsX6N10lHxC74FH3n9w674pbzbpwdRYrHwsj8oX - -587wgHxGFyDD0ld10H8p3+cX1Mj75H6VX9Zn4QT5Bz2FHwqb9E9+MN2p5zZ70d14dbyJ1mpjzHxwuH4cN9cN1NT1sSiaDxX31DVwDb3YLwcN0db57T/X30ONyAR7X3xLS2S/n/x/iYZuK2OYYky5RKfifXOy2ltvcmY/wsnJfoU1MGmwM5EXoone3w+onQU5cdsWQYiL1bD4SQ3/bwd1dF7n6057jbzEHxGR7X32+FxHnBajhzQCo5u4EIaAGdiA - -wiDq6qUQuM5/e63c/GyFXKBC7HfOcgJAOokAtKHXYJ4Ryq72Q71xeqtL2rR4t31tD9KT3Nb9frwtb9DTx6fX7JvTcfDTznUbefaAz2Dn++i1IdESQ3IXzKlSE94H70Pl8N1/8J0rb+vL/Wl2trwZ3+ul+FH0aL1ZnxFD3773tr9QdxFL5Urwjr5aL3Zr9cX05l9J33lX1jLxCL/APzAPx0PvDL9Z39mn3c7/j96sL5Xr6n334LwZ70T33QP5Ib5F - -b2FD4Er1ON0sr5eX1gGB7Jyvz6Pn44z5jnxxkojVwvmpgH7zpNNzxyH9+51Vz3W79Ol25e1D3wmjzb39jz5N78Dr4m27N76WmzvX52j0/h6Fl9+VzZj0/8B5l9tX/eZ/Z76s6MFfTInxw49JW7kbfpfS6K68PlOGgDgfSNyGzssNY0r3dLoune+fJYN1QmWSveA1RVx3/A8185IRQYn8brDvy/DBfpq4YSYOe4bDxzvKLr2nvGB3+8HBy+5JDtW7 - -wsryPn7sNwth9sHyZ92SuIhTC8YGF1LStLgt13SK3KAvyHTbFrdtlrAAKSUEd/V+hS62+C34I2HSQ7+ir8/3zzuZpF4fp7R35wL007wbz7f7z9n8SH3/TxTUtMDVVy7zs0rKHluhq5zu7z4G7cjyzO/739824n98J78f9yobws7yJ31Mn0/DxYbxcn5T31cn0GEkr37MPxkr2WNxQF5cnyfL4gP1Tn7aDzMP6sP82rwXN/Hty873Zt0D09H312n9 - -775mO/Ct5/h9VX8snwNT/It2WRKBL3epwhL+Wn+4r8OOj1r/QdxTD1rtw23yKl4U8TcP4oF6umzT38bbw6D9aZJMP/7N8QP9G77BG5UNybN0fh3sHztXxsNzoP2ib4CP7fhxCP+PR/9VYx87Nw3aK2W9TlV0EN7BV0Fq712sXqz4noDDt/A74PwLU/YebtlpmA05Bt73sSfdUt2l3ygIB4RtdAeXAabnhDEgn/XbIXO3bQZcfC7fCyw3zP4SiPzX - -xldI1b4w555hMLwrzkXQGH4Tt00ZwkPyhN6tX49H7eqmt7NoLHsXsmxZ0miNEPAOLUQpQMO1gtpOucjQhvOcXQe8itgPoizY/PLGcUH1cP+5qZzL85a/b3w0T3Ft0732x7+5V6Sj1tgNp01cW1XtUdKCVXT0P4fM5XmWrR/D7yGj/Z31lF3c5+BT6d37AH+yXHut5lF5BL1gZ6p30Ln98UHqD4PX/Dn7HJ+FH6gH5OZ2GjxBT0y9/wP1+TzXd0eX - -ypj79ff93/n8nJj6IfBpH3+r7kR7lprZH11d+63w874k9/zHw850kP+3104YivGzDL8G33Fp+nXyeN38byf97qbzkcDaQFMP6phzYD6Ab7Dx4LL+WP1UUjwUy+fG4P3TqD9F4NNfOfETGrzr9xszLK0k38ykgMb23ciOizuMXoJ+ryzWFtvHUDRU5q5ue4sCxJd/QRdtu9twqx8zc7MN3jJDCr4Ubjyn7yhN3ud0YZ99GFnQOEwKyYpK8DJ0nKpX - -GgL65KS0pI3Bw7KdKaTiF2iOEUFiEIsoCzAE0M7Ss/Un41z2eZeRfn3L+H8fqP30XyVywMX/wL7SzzZ0suwR0pSIL/eZp7jAECP8r6a3/YhHFsSTH9qbw/Lzp3zpn7f9y6382nxWPwrb+FL05Lw2P9au0hP29V+KV4yj7h5GhP99SKCL3Jn69DxuD7Ct2MD/hP++injz1ee7lX6BT8Np5O7zx1wlX9qP1n32jX0VOlDL8MPzNz3GV7GPzBr1pBFW - -3/xFLzd95Axjz4Nlyjz1xP1xT9Wzypt+mN95AysL5BD2330333Jx5hP9uX5v3xJP9kL7vL7h19AR1tsEstuCL+5N+IP9Cn8ul/dj/PX1gvKRP1jz9mPzjz8GP0jz2RP8oP1Jh/Et7jSKwwYHn29PpZNg+/ihvgSom3cqxTdA4DVD9TvMej6wFQcY02naDI2r9/7hgTV6VpX9IxxTQyc5dceq7WoXjVrhdAzullbM5k2Tu3uyP9XyU80xCDyLlyRp - -DHM0tYd+PitYUgMGwJfuyslwJwJSVj3V32+74ZP7pP2oXzmP06d6WgBLINZRhj6AakkfTNQMP8EFEAJybC1j/yAz/qf91ATJNgVUbUKD2rnwArvFeVJx56hzw+VOPn9H7wBSZUHyjH99nz6ny+LwXb+mzxQDPORHsh2IXynFoKkOo0T73/aZ1pL6dr1JjjR38Z3/0H7jz+FH0xP2gV8L50kqq/om93xc4fR561PzcR8JP9u1eOH1tP2Ol28xAyiu - -8N5dui1PzqvPmP0QP88h//Fl9X/QbxdP5Ge1dP8PGw/X3iAcTzzC9rdcz28pwFZtioDqwDq4SKkEdDjV+y0Q9d9nAThtorS79Tk8IofPXiy5zzxkX4r33tP7CVNb7xPnzH73AJ3JBivyFsloWSEPSAztjmQpyUnGAIx+kRNzrZ7/cvpkD9QBvUSR3yXHE6opGzDMk7NNtQP98T5Gr1wq9zNw1780740P71P7JLyeiJfpOuDpSQMye9rV/v7KTUNX - -VzaP2APwMJp8a7MXxAd/77yob/J35n9//L1y9+tr3DL7Ur+tj7Zn6mb35lzZnyTL8PzUo4613O7nhunw1Nt1mE1NpVt4Pb3sP9yH/zPxsX3AJ23luK8N8jl5GOaOd0GQkwEZiNjZqjlqlL6Cx175QxaH50LOsDeP3lENSIO5WMqFpRxyIb7T0e2b7rz2Rrxfr9JL3TP8D7xOWPjKEL8PTiNBW0TEuWHeX8vNr/GczliCSXJAPydr3tj1DOZa35QP - -za769NzHP1XR+qn9gP45L29V8KH1w53jhxIuxsn5GFxFN1ru04zxR91mP1RLzIH86j3NJxEr+IH8ob42HzrHx5D679RKH0B9XCn8nNyz10bb4djw/LwnPxgN7MnzQPxn33D37hTw+X+MD69rwG3y5/unb+ZN09j5jz3zz5Qb4iu9gzzn37zzyjzxmP4455PPwTzwx7/pPyG333PxN7yZP5mP7qL8vP2FNzdr1AbwjL8i6woP5vP70HxsPzOHyb73 - -n36Vz/kYpb7wN6xj305b1vP1eYCUr53P4fLyjr8LPwQb3W1bHPxh12fuyNpNAPwCfR2r+VN7sNEa92Q3EcY4cPD83/SrcI36/rcjt9rK0Dl5m023d6tk2uO+Llc2t9IU8YNT7MzyTWxVTUUv5Cyx0Ux0Z5579kQBpaMLl3d/ryI5c94UZsC2yTdYNx2P+yV6zDQpUSmNhiD0WqIMJ7kdnI4y18/LP8zHMNx2N4haxCsTFVoC5dwr3xGt9xT86l5E - -95l2nAJ6UQvMMEQ1MI3DmVa2gLNRM92nWSPFVuxpy3axO1HxWiV6/ctxj8IKCBQ3aUWDFiqlT5ZZwCU8fd0gCp9n91P80j1/376ny8CMeQBK8wuqi29xXQDLuZy4O/S5zP11C+waOJt2hem+r9U92EV6Gq0J3ysX7fP4Lh4LP787xlR53o9BP4jz5PPx0hC4vzPP89j2aMw4v7j324v6KIzxPy2exZXLYzzy9xPP14v9iNRfP87KDpP/IrBGP1eX - -0PP7xP5utI5H/rb9CBxhXDXP25j4KmPIH3D98hL1cRzzl+lXxkBuLObG3FgOoYYfqAb8wTNnyKcg0zEIoTMDVWqInfQz3xWy8/RYDuj67kEnxFY2/CXgxn6Yzon1ftU3TI7fVQnqwpfdnd/rWCZ5t94NwIqz8l7+8qGsfLA5/wTmKJMEHMcXtD6GuqBzbJ+diQey05dMopEWOjHQLsqAEBN+0AVxcGLc96Y/cPPypffR7xxbyovxxn2ov4D717P2 - -071K8JXV20jO/73gD69toPYNXl/t31Ryl1At297Xb+MP5in4139JH3jn0MT3RP0C7/Wn0AZz/LyJHynZ+IN0iV6uX5nP/Cn4Ur7Edv8v5XP+WfhOr9qH9OG3jT86P3IP8i60jL9GP2uV3pPyoP8a9Pr7+1L2XboJhyXqX5N8BzxzH3tb/Gnyuz3ob1n7xDX+ah6nx67r0zVwLz/9+XHd0ivyvP3IjIrP51fv3t8SP7ZY3S6gon8KotDBfDBT4P7e - -oUlXRpzvgZY5XUU3XCWqZY9u3VId7knHVD3SJPkmjrkNEP+OrWUAhFXR76t9u72wVKfRX9331Vvb9kWzLOTgq9A7493yryohT7lPzRL6dPHUnBNQoSPCHy4rWOVNKfQbm0rOGPXL4DS3QHbcqKGkIxj6v2DQHO9JJN8M2auUPyY735sWwT+xn++nQcvwx35RrzqrfheGPNSw1gJn+EYvs1AryHER7bz2/rwNdD9YrucUqD/8bzOnxmn0Znw6xz8t - -0tPwwPx316FD9Gj65N4JP+Zb7Ev9D32wv6cX6wP2ll3FNznrxJ37mP3FSQK915NxvL26PxRP6vP/JP+cPwXjxATz5HxWv4+X8m3+MH9Vbz8v6oP/XJ2T3xFn87T7w56G562v83319b2tPwaTxq92BWjX547wS3geonXUAvkv9EdkOF7PgcUPYtdH1oYkXKtpiwUxReSqd6Kd/mjTEn88F7YVlIniEH+w31ua4desKlBljo//tcDBEwq5VChihA+D - -y5+v3w2v+WX8QXxA5wNNhJaDLIGDTowENQMtYAFJaFjekCqAmbtacN4w0UCJlg2q8EZmNfJMEeIZ4FnJqyX3nJ0xn3SsiXe3jkC6Tm02LoqB7Py0700P+jHwFlMpmcmr4bR5/SOy17nVjKrD7362IBp+7zP50H5mv7Gx1Zp8mj+Cn6p36vt7N1y163OH6HzxK11gb+cNyh3EK9zEiqiNzqahQP5+V0wby6e1oXzyz/RP2Nyll60vj3wvFm3xol8x - -qIl62DtzrL2Sv/dt4J2zoB5Fe2NGxFp7I7wJWZgV4Y757jDIBy2h1vj2yE+Cz2YAnRz5mh8t8ryaHybzfGOJv0LWyfrzTe9+Q/28Jxv8yAtxv/rgH+v77gsqXsxv6Pj3wvLqu6iG7qZy0kbRv8VW3PL9LgGSZwaazSkInir2dwspxWXTrblP621Qv/px0p05v5P6/au65v72TKqXxUJwau2j38sSHpv+vKWrH1QYxKu59e6DGhT36uN7ns3l66gS - -xz1HMgmkv3uIMSQkpv+igBehxUP6qm9HH7raPcX3bT1GL+GL1XWzIP2lv3WPxnXyIP4mj44x5ke+x7YQz/458uJ/KFu4VwCnwCvy/j/8K3nKtmj8hP5Wn0WN6uDyJ11EVyoXxib+C776V5+V41z4eN6Wp6J1wxW1bHwAu96R4Nv0FNWsjdJEY+LVi9i2O2t7RGVXqJvCrT4vJcXSrLwEvI4H9dp6bn0G+2sc3E1ZXsNNH3wT6S51j6/dO+PJ5OE2 - -pRrQ7aSp3akPip7xW5k2whdJB71I+uVaVoH82B4dv1sO1CdNuE3mdMxyYdH0Ctfiivtv2PJ7j69cH5uFJEvGG+2m+85o6tvwFcOtv2jqLRWrm+7oj3RiC7sDXr+m+9Op13fCm+/bSDAq+m+wW+xphM4HwBb+ih0Bb1UukuHNyp4iQ8OLxXp4y+6Kr60OeHrQM38RV52O++bzok+Nw+5DdxBheFYIr3fs7JV31vzJ+OUp2Nv+evwLWJaBKwAHuU4r - -dlmM+HJpWiNyAACEE3JaT0k+xBNrI2mO0+abIJGii9mN6ZTNIESe91p1Zvw5TeG32JxKa1GBv4+L5frxov31P1ov6e19syd+UlkNZBc1XtX8zB2mVMX2reauakZ3413wZ5zagBqD77t0sn7HWEcGG5v1yl6xP3Zx/oB7Ue5vho6lw/j81p9HT8XQN7j7Qb4QH7yJhRv6RzzT16+VmLL+Xk6iNz7vwuAbmH+7Qqa08Yl2DL3JR2QbydeVDLwKj8r1 - -5Od7uD6p3zHvxOd585WSJ0mt2cn9znxmjyIHxrYlmBYbv6CN5L1yHv6eNwDI24U7oU2mTVw02ES+rksP5tTF8T/Bj0z+Rx83wue+Bu8/5rYj06iYVNR6scPc3H7DnEdAVPb0/yP/iD1pn61v7QUsHvy+bHAJwAUBaKt3SA0AJ/9Ib4PQJrsGk37CHnIa6h+qpQHc9IJCQAT4DeP/1wOGpCeEIsghY9w530y5OCO65x/7hUh7Qrv1pr8t33nb6t35 - -2oH7uGnU7a4gVyzX1/tggnGN078Yv2yM9aJp0YECrzPWwgP4sX9NPypW89b/6LtHr4dr+KZhijx8jD9V0EV5/v+Rz7cG2hd9nNxiXyOu21F0efWsPzmJz2JBHDynJzeVSLn5JByrgzAf7pt48Z3kbx0970r9S/T2sKUL3U6YDWoCVep4Gyn7JqxaAcZILpKlFq98H2Wn4zR9Af7GxyHVxjHlragzQNWiNNQGm0gu+ujk349sI3DMW4S5DVQNQVHH - -fIY0DeP3Qq7SKF71tYv0gx8JF4Cl9973qT2Cenvvznbwfv/0X/nb1ov2+L3lvjmBSFW5NbSm2nOYuDnHrvydhBqL2Z3wMqaJP6A2z796OZxrr3ye22v06l9Ht4Vt3of7Kl3/v5rr6bwacj6cZ7035YLUhV5Yf/v8mbL0bn46SK3MKMYIPIjjb6Nb8/W3tM7Vt5/v0YZ07kG65IPXLm0hd+J6ACCj7VADTbOGDKbqj96qUeqk1GJLyLv29QL0mHzk - -+W1qf79kz0GL5/kqpF/mjxUhaBv0SqF9n+ovyt3/Nb/ISDlfSCnnKBDhjmWHXxIcBsG1q6APyYv1TMAKkZc5zJ16Ol0D5wAl0p35zd2Er+sP4/P0h50pn63xyMP80fzMd7n30z2v0v80uMCv9dfF48wXLy3b/94nmsz+QyLL3p65EzyKy3bv7IP6LL8Jv3zW6Rv+QlnQt+6O7LV7wl+2j0OtocP3/X6QRwJWe5H9n98CP0pZ+Vvw0f5Afxkv9mxZ - -eY3Af/Gv/Xo4oX98h8Rvwiv1sX6cfz9Yecf70Z+Y56W5yWr2WlyhJwCP+XPy3D4Ol9VvwWP+6F7Id7636gP50f4uz8Lt8qFM77/QPzMH0wu0CfwcHqOCyh9j1oBRV6PTz09zyips3wEB3Y36aH93sFQz1E1ezfHO5zzj1M9aQh7eH4JqWTv9Sre09/+j3AmXI3y2NW5LdxEHxu4TGS1HyzB/TB82W0MLxG62sVaZ14s31aH2s3ztu3hR/qJluwK3 - -6GYj7YvGjFwpxVyitwj0aHYpUb5h6OzlVhwBXi5ywdnIkAXLX5THU0h0Pr8PcNzz0rhyDL4Cf0pYEYZ+5lKvBP2XKIz8aKltx5+8EOmIQgNQMkqaxklQfELwOg5KJ9gwfcNAGnfu7HWJcBQ6v5Y7zRxzMf/Lv+kf26v7W90cv28r7sCRMbd2Nrr8cTwXCsRWcXmd83MYOME3V/veLYa2hvyd320fzxH1ZDy2IoJzYJ34Yt2R19MK2dlIkx8+d/Ta - -1Uf6UJ6ib/nXzZN0sP9Fe5fX+lp/PhyKP3H3wkr5DX7dP5UF6eh+Y526WFaTzeL/EOf8J/Uf3X392v47J+1v8V3Z9b2Nb6jXx8v8Vv0oP55H2cD2t13YDwFbST55bFU8Z4Sf7Tz3N7fTz6pxeitWkb3sZ5034t+5tE54T3Tr4AVJxI601rThV2zUK2hO3cfA/lj33rylLg87Gv364fyz9wxv9tr2r31YzWDwdYZ205swAL6gEwiBntDsFEMCBelW - -GxNrzpQ4s449BGB2QNeEY+4vXO+xj1Mf7nfD2T4fPBk8d2aqIf4fbw7340T8PLy2jL9BqP7T1wKblzH+GDfn9nV5caUf7fv/IUq0HGDh4Gf6WfzBPwrb5AF+Bf48v4Sv7QH9Bf3Lny933Ufybv78v0otyulzofyc6loHqZ742f/1T8WI6Nt385pul5dgEG59oP+lu3/hxiMERf90R9aZIG78oSI80ekl2Mf+bTyC6nw+8Cn6G393u89t6NxrJ3z2 - -l0Hv5nv16hL8n/NR2CN0pk9ZH/RT4LL3I7+8v+hnzsf6Wm3sf6mP/D34smyXj/hiVPz4kF5Fb/kVxFgGmf2YYyYfzpHPByW8f0JH+RvyhP0EZfVdwSv1fL37b0mv6vVVgv6cRcLDwOlYBj8MZFj72K7aQr9UgeVD2zECFbcMlxG044k2DRwhuwFYC5f1RszCD4PS1ub417IxV6vdbql3+pZkbdejykxcLr/9k1LC8wJehw/tekQ359TtA38G9xBJ - -M38M4GtqxEORL+llgX1zzxMbxuP4pu7pf7gV32TlrauWSIIaoS5doLDG4Yq0AzAFRb2GbaOgM0JhC0HuLq1YrGVeF7XKFLz04WFXOL/NqE7qhZz6hd22CDafzpdclyp0n0WH473yfb1CFANNmiNtQAynD83IMOVe21J0ET7362BM4r1Vd5sX0mx4rb8/P8fP8qH3E1/hv5NT2UZ8DGyIJ0wOL7Hw4Apgd3WdxEz8gr8q8N754/vzNf7v186L2J6X - -1GDir+NqwxT+LO2h5xNLxI2/gRzPz/n33Luw5vzxdNPP5Ev7yR3RXBmf5Jf8pn9dJ4eH768qsXzoVwh/Bvj/xHNksrE990Z2Fny9F4fPIwgNnN0Wx8fj8uV1wl18f/LOwrX4vj0ZvxW3/T+puD6xO+Ap3AwKXGTB3zH6x1JJDf69VwSq6tL5Lcs2h5vjwDf98XzNF49QPbyi3j3LT4g5smL0H12TAWmJdkz5Hv+yLfVf15V2PstpZ/uV6iUqub64 - -T/9Ltj72aHaX6BaHY2NZxW1JTzV8fFj7R1WtTyBbyZ5yJiX7Ox3T7Rmw6WudFmv2yrAjEGI3T0k26fwOxmwrf0m68k2w3T9fn0m62k5zLf5Amek1RgiN1h2k2zxWxUhJdvyk1VM7UIT4tH7O645owTJGdp7ykHw19ak89iqPXgHh5tAcmSM0ttvBTCVLEPxlP2yrwqWzTfyhN2LTzDpy5lCSVKxbOpdVx/HmRsxuvUnOjgbxgHfeMaqxLbeBdjD8 - -cmCh2kKpJBTIOzFAJogL4DWnF853A4jir4klGkf21fxkf4cv8rv/TP/z8ESMXeHgTAcMyxs7b99darB8nTcv5qOMaVjtb1Hrw+T90H0Cb9cPwqG/Bf7oL8mfyJ7wtfzMn+zn1Wz8HV4A6+nv6Rh/mfxd03Hyt63wpP+hLwUdzmvxsPxGf5Fn5uDwF98ke5GowZP/p71ar1Pl2AQ25d6851KtyPSX4Tmnf4YP6Xx0IB7FR5qZ9b7/zL8xd+BW4Hp4 - -vz9qB8xd6xuHw42KVnf+8FtTuj0GhypYFcZ9XgwitXX7yUrk1hwWB/vZ/4H7wj3yf8SL8zeU8HyTv8BPMVH2RV9zfwuozuj+7FTWNdFFafc/2CXTvxvf+7uxnf4wFMf12HfFqctO+NC/PFykCpHcUxntrRjCNRKT0tR5IErAq2HscDePzgQCBg07W/BqKApwFe6jf2Ip9JmdrWz1F0AtRMBz9JI/MHaf2Nj81756v1erzhF/OwCKXTJMw0ZnYmo1 - -L0Gv1ys6qkHFgI/byf9+ln63f8N+rt5+Htz1v0ib1Wn1rPyR2Npi3HJ1pf+xP9MFyJf3UzNQ63NXz/mE3Z8Dj6HvxpZ0itgRf8QEUtxbnF/3P5iW4Rf/7v97vx0aqZx/4YAlmaA3xCh5CvzuPNmR1QTzyO+oP3s6xJf1TCCdf19fHJZ+C1ApZyMf2o/2Ziwsf5Mf9sj1+XNQ1y2vazw8ufy7T1ng3xh74/yw8Cev2Zh7P76eR7SCPdf33B4kj6Wj - -x2jxDFQ9jxeR2XFzszATelyHwQN9wuzMf6bv04LyAj7+h6L162oicf9DLzk/2Aj7e0tFp+nX8JfywP5hv57CB4/5n34HJ7lv5gl1CPzOV8HN/gl7Mj4IP3Jv7Su2G27CPzUZ8KrJVF5Piq6gJI0bMD0JO+q74vGZgP4DN67T8ze2km4ajzVv2VWqAf53UPwOfZr7bR9M//WQuAfy3f2ofxLT/v65/Qhs0R53xWvaqj0M/9SO/8f8JB0/l8pv0gb+ - -FH6Jv0vn09s4t5pyv8svhzf+UGZmA7if7i6R+b6U3w2pb0L+r8oRR3Urj577JxekuwuO4KqzaJlaJgzB9w1736L8/4na12kHih8hj04vMVZ+xu24vPpz4374az0S+6AG3vZC3TBDB7ibJQ8r4H1yfzTealg8y5zf+7U3z0Vxkb/Uh3ilCzj4yRwYc/cZwDlzPyvAX/13OX77gWQKtnKUevw4Jd0sYyrORRs/bLx6+CF7wi3wepznrezebsIDTJ3r - -D8dH9x1fbb5XsOtT8HO0D66S+8S+9oqWQrx2Oz8FxbM6b+WYunrX11oNorSwv1AT/Pf/s/1gVylv0YZzLeM4ALqBNifPdSTBSIZtODmt03JPMHMv9KzfujhuNGSKEdIiuFMXGmuIOHANImBtabd9YXFyrF6crhGr2Zp/Qp61fzQ/+Bv7TP3nf97PwzP+wtyFs6HOlq+6tb5aP/NZM/p5VT96f7+z1Xf0rytxH5ZN3/j0gP7v/jtd9RvxXN/dfzCb - -cxF2WR0zv4oPy2z1ulLt6wm/6RCto/7CL1mxFWfzWb93L8s5y8P/G/x1v0P1zm/6rF5jj0/a6m/9Zg7SR5HL9s37M38W+15o7EB6rL0Dv1akuYSzC/9EbwBn8ad8M3pBScHF4iQjOCeDPz9O3Kp09FwcKHG/6W/wW/8zv249m0AMPnjsAEb/KyKdU4JWSN3ZXundzGi9MjcxKTKJQ4q26yLv5fwO3fnqB/a5Ubul+6+565kAoQPb5v2iG4H6SIf7 - -af06/4SH5Bv4w7z8O/lnCEjYpl3bJJAYUSqR5of6/14G4G/641JzULw/yob2769HF+4h0/vxglKMH+DzRzb6Zlzxf2+d+MfxMBZsn08v2pU7Lv3Hv0rn73vynANUz1p3xCn5zuINF+M/x9iGMH1gP3xroKX1yX8KX0Nv/o53L3rbBxK25h/3453L3iqZ4Ne6nLrGV1h/zjlGZ2xsu13JI8u/0/1XgkLT2MGw9+0PZyfa7i236XwJv2fl+ZH9Cb6Z - -X40/8DLwGjyDfx76NJzfk/wSEYUz86m4M8Sj9xnb/lgJ7X/bV9bv7uMDB/28P6DN9lHN2uz0/ygCG7Hw2fyb3E7e8PCDuOI8N17T6uheR/4HSJR/0p/5p/4qETnJzHe/y6Alv45v2hQwfn6XJxnq+Ar6tpF8G7KiKc68ay/pH5DN+9HCZvzmW2Zv7I24NTyOIDYX4fn2/z+Fr1X3zq8biX8Dmftf4775Zl2SQYk770pP4l1Y/wQTyIyNJ/4qj7qj - -4te+B/xZX2n75Zv/Rv5lI699yk/5TL7U/7//opF57uy4/+vj8PmarOBMn4B/9tfxMf1Tf5JvwDfwxd4QH8V/8UTY5P5Nv6w0/Ek2tl49EztTVlNaoHyyUOM90CVS2fwgh6+RT8M2tFBocylNSoT3FFb7Q5kSw6uk2O+rjwDF799lxswYUy8mT8/SP3xIk3+39+31reQc0Hsi0bUzvw4Dk3ljzXPHfCUVITPS8fiUeb7QzwRvuDFxgWQAv98+6g+Z - -dljrKyDE2C318M6ro0n2Z8Z7c35BJfZP3GSGj5U2J4G+ydgYLwyeFcBZwTf/9fwV/5H79Ze5V/yO/wz0HRjOKOMpQMCAH0TLgqjsXsADhzbIZgTCH9GqWfEJuvKeWJkJKTg6fXNy1XFz1d3CyVTEl0OA6l/46kA6/+1f16n5/31kf9/3zkf+6t7Y+aYYI9xMdDwPO5Pmf/2V3nwd4rtsohE0nP0VpIbv3hv1gd4EL7i2z+/9Dj6hf6B5CmP73Pyz - -/yUG4lX6yj/5p/Ww9GfxR5y4V13Z3GlzGf8On6B//Kf3edydj/kp49f6j77UfyEr7zz/R26Z3+0J+t6zUf88f6ICSOHyeXGxyFiv9GNxo/8rLU7V9HZ5791yXkpfyaL2k/xWf/m/1m/3gPzOR6mwCm/8O/xLS8O3XkY5Qv134UADaFPxsexWEX81yGY0VNy9R4xI0P7gFfweb7i9pBR1cCpzDTCJcAHazvJ4380LhAv25LjwM4yJ7ea50pMso9WR - -TBA0d313v+rP67t8b/+7uwNv8O/8K53esPHUHvuj+APehKHnB01/yrS5GDU4KcFIqzawHVLuRYORIiJ/wKmsWhWpMoDLV6yl0okZqX36b8B6xu4c+fx1f6+f4aP91f+IHAo5c3uJIILLBcpL0f/Q8eC+WNx37fiA1i/6f/Ya6uf6Jf0F/1SV6fMVn97sP/eSjhz0gCUy24tP+Q/21F/wE+Fb7+7xwoLR/82m8+1RJ/ysN1V+76b5fF2CP2cP7TPY - -z1BfF9yXwKr7LL/Ju6jFxuj7hu1zxxue5ex4uyhufiVb6f2mJCOVb2gL9ZZ7X/0f/wB6+h/9qXz9/1MMMpgGsfKcYAwxgmiDjERSBgwA8bi0EsfDZJ5hCMfeoWIhLlwsv7lXf6ehR8VI5ewS6IokxyaT619xRJeQmXXffse/0V36ez8XX+xy/W/Xo5I2eQCEjgEueWjGMOCIP/xDgg138f/eHE0Dm7shfw0v620dK1emovaifmBL2rX60B8v3+Yu - -OagfuiT0uP5OY840usfrVHHos6zOP49t9dL23AAskrqrOz4AGHKl1CemXNbKMo1GUrA5JRURYahx7WHcoiRykwzm7A36U9HBQ0ci4f2QAE0ZgJ7uIgAn//rpiCjEQ6DlkCQMQyXcfqAWBwegP6Q5YgxV/I0RrONhPDTLBRp7Cxp/ayALTOF0+ijRp6NuAj/eHhFNJ05yAY/8c7+7q/eh/ktwUVGQ/q1VtQFVPeQ/k++gdc4bVRK7+rjUHm1CuJkW - -M7Iu5R+OUanY5PjeV0k7Y/ecVf+x9USubrPf2+v6kKdN7+9PtPvdl8nwn/6Z+tOcgJi8HpKDg3R3k7N+hMUgGWDb5arUhxb1qDPUTsYOCKLcplP73SAH/IcLeOWQAp07tfclXVC89BjRUWMoN1Xor+CjAD/fASe4HlmUkkpoWhI7CQ+0xCgd0AAF4rOg2lOZy8A8p2McXRoUDzb28mCYAD99+3qfHAAY6f0W24b9MGQO+jMScpjwtxRFxexQzXev - -Q/UNBMxhAYA5XOcxgBrivTOjjsAMcDQSHdja87ptaU/ltiBQVAeH8yRQ50gLw/hjihuMCPuhaKUCx8T/hu+8CTBgDk58Uc1cRWQmvtmDmmD4iYesEvqwGkIMzWBvFzVzsqi8Q9/QWIhaXwOLadT8m/+kwAsQ/tMAJx/6aL9LEQM/xKdpsOvDo14ma93QUykdU2joBf0mZYpilh/+Em3aNPsH310z5Pg0mf+gkfHozsPf3/d7Bo8XfOA6PBioNPNH - -eAxFr9w3++z/VpnvJcHNRoaH87v2wtPFuACSXzgN7OjtYt+IIA/C7mPf31SIb58iS+gK1ExeKdEjr7ZYqdUrS6brA+hAlaREJ5m38DEm/2Xboru3fjg26f74PkGqw+BStqYpxUn7R1tgQBhXrLVPiLdBJgCLlR18iN4EVhpDKOAacC3LFYeA1AqdpqLLQC7XB4pFOEqp9cZOmM13i8tY3icUHqrlfXaBHr/kg+40I8yEePGPOV7M3/yx/7Da8ZgB - -QtvBQgHwqlC2LjKskX4gEHctMKCVxv35ogD9as41/J3nkid07v5G783kOzd/SM/NP/21e5QX9qABBG/FU9tUoHUvh2u96juFF/AcvoZfzWCrXw94h+OofV8wAMfzEv57OtNB+eJbbMrsvDz3v4n38UlihgPHMrkeVxZv4FldQn+eZ7BMnrhzwM6wGD9uY+GCPYAkHPfwuL7ifctbuToA83FCVpzhv5AWgLggbYAkWPipn1tV5a9c0zEkbfMlyGQ1 - -w4w7FYBzSeMjvIlXgqSRHM5H19LHOVi3GXPER52LSBI98VM+vR/A/6v9zx6O7gq9s++NhvePXtI/wyK5Th9IwB/NraMAYaD0x66X5c5H+TZ/Ig3rI/0Y879398PS9O/aSfggTxI36yecnwB1EvATcqz3yePyWD9WZWd9HUc9iwTQJkCoUcsHaoNmGHzvghyYV4tsoZGaqIPAq3qo008n5mR0Tf0xl/VfrgiKQFUzf1JaascxXYkZCsizkuBoL92j - -emQTFuWp+uzOy4R/8LCmb58H8bnB5lRAZZTZCy0NnLSbbNt7gXGiezQZRW/1bBP/tgX2Yn6kf8peOKY/N8LklVGUnS9RAO6QWccKhiFF1GYdiiyBXgaXLmEMBJRiHhITI04+gBC2AHdMFJ+H2hgf9ddR+UQ3LQslKj2O1Cehsnz+4IAl8/gaP1eV6egCz7e8PJQOGBM8FtYLrEJFvw224IIAffwHJJyf68U/e7v1YM/ioigA/7mS8RBOSCCbsriB - -Lybv4JgCW0+Ka/a2HpWfwG5b569oNetu/P1zi8nw+P7DH8Wt+5a/chLrxvwbv4pACmIOlK/C+vpP/yNj79EcYqUju/XFbu231ex6fH9K++2mPPCnuiu2igGqpdVv+juIGZvmif1KbZsCtg8uELVE6Pp4HweD6ycUP7+BjfTjdmpxX7P74JJKW+OL/clqBhR3xf7hkYGSO8KnV2arSangy5IloUvOR9yeDTOAVUVKjKd0KVqiD3aB3tPf18/5S8cq - -t+nkArQASXKHIgA2RhhFMV6QUlcP4sCf0iyExiNM/uQceynUEAumaJXJ/QcdFEZudJY4BbwDWqd/dusolVR4iqAITbQPK9qH+mP/JbvpCAMP37ZH9NyQ2b3b1TisKEzJYbu9zik2TMC9rnpAOvygH9Eoc+eSnda7n5AIln4rndhD62voMsAYglyMXZpSdsb+LrXRyblixHk/6Nuc8+UEK/Vl0s1+0ZAH0f9AheTjXLkAfl6x5AHNets1+4Y/E+gO - -tAN5AHBNUpN2IzfUbEHk51flgFOd5c2JubHTgGbm07zbqc8vw+iRbBY5jEB37p7dWodUCGhFUiAotqGf/6KgDwNuyoA7kAU16yBqhwCd6l4LMkLQdPcAF+DiZVQlawDOybTSEzoH3pa4wEVm2qIkRIRCcfCgzgj8oYCWXJGEh3g6pwiS60PdXzu6/JV0ATtAOx/57QDcf+B0Ajp3u0YRptA36cxeml0WRQ0BxsFIAFsg4I5+2IAvh/nlzzfn4cL9 - -tY+hbfEJbrWXz5e7Elc0MOhsAjgAQcjyJW4mwCNr+wUXO2dh251JvLdaJ0m2Ls7Y2/uB32FPq0PF06s7ijV8UC//29t7JMdhYBuy3IjfvhvzgE5JSxXjAPNAUAsGzGhkJjp1AzySkYMOlfDmZ1ZWhChtx16HEgP8wFwfyBpahCwGC6IliYobrmH1PdKSCZQr2Q9rLO/o6/ywAEQb8HT+noAvV3vTTFG5IXPcyQMcNqIdUCOYzWAG2j9EUa9y/LEA - -fuAJ9c46S9DP2EJHUhgHiAMkB5JgDB6ESKfVyAa3B0xW4KOQeoBA/LU4fgv8XIXaL399zuzcAvTUGNLzsf71p9jwBYv/J87pC5yo64THcLseDKPK+fmsnysw5Zz9zd+2IHP3bq2V0eP52L91a+Xd/Nubsmv27v4bwCeIuW8A9NfrHZxt35Cu1GlOcv/VqCK8f3oD6az9wuOE9/GT/gNZ0HPh4m8F4BiVXdKrn8Sn1gGGyVdQ+B0tbdHo2NQgK7Nr - -AcbuM7rQi6NmW2qXYzutcRulQOKK9gI61Fi7yZtj86sLVHtzlqDBkzYVLsKxe3hwLFqj9mnKj4PbUu4ufsfaR1hI62XOZmB8RDOp/rV2tgggJSw4t/tRkAt0wPBAbt7ljrDpYcGl2V//WynlJXRYTx9hd+ZIPhGUlKNPNRQz5+1cVPer8HPBnmdj3ngEtCwdZ++hKAxWMmnGyTARMALMQUwCTDsEwIk1uwEvIyNMlLiYfUksWzfiClBIRag3+VX1 - -CHR7ygU4KKd1oegoACWAR/33dAFQgCVd+MIAld3j1ChMla3kgoa25yaQlCCJnyDAH2idRvY1ATACXrXf19R5W/8zf+Lmmb7vuvnnxX7f2U+vu5dfB87v4/15S5zP8/YK4UA4A/kTjysU6KpcH8eWx/Gf/q3DwLI7mZ8FdO18An93qoX0yn4rwCy22hffJPPpEgKQP7Kg5l8kPpIRoXqJES+IoC5h35WsBfKwWtzjyS6aAHshVWdTnYvYPXg3BVrL - -BBqheDxVZgssg9iSTRSKELVgMihMHLlhf1lf6Ar96muIt0F9VBQAEF6BhMB9fAdhHRM6JzGlp8LQ+hrzm6LTFY7M7aXLZhTg9y/+fTgHSAirlHZ1pi2wP4BZC7FAGO+dzq96qIDFIBLf/ZSAXRH3Pf7sPcO62ZV9fibnBemKEaKcAd6Ml0ArsCN/72s16Jp9oxu/D/N8ntkV0MP5o59q4eBh/GPXlEr3M87HICmL2D0A9o/l5AP/V5t396f+ck/O - -5AeU/wEUg72QcJ+R6vVhfph11uQFCddQdeFYzOK1seHxPw5RZc3dua4Ay5AdEr1I67nY9syO9cPQY/r850s74Yl9OoBFDARIAZH/j5/7bldUKeGN/Cj0PN7wL26AncEUBk1/NSDlCgLoC7awDDj+Du3E+Aa/PxV97obdmf+Gk/OKLvIl0sgGLz8Of+Ms/G5Af1LyXn6XIdAQBqtvRyAfnPzXn41w8h3+NiAw4HmLAObu6MD9xHuqf/TlATGn3y26 - -M79rf+InfegAZ8tyOQH7H8Yx+kxhB4XtcgPcsBq+8xUBKHXWaTlSgKd07xK94/OFkA0IqhLSwPuZgg8qROV58es0kx0Tv+bT992SmIhSF17v6D2NXQlIDWqSrtXJCAY1ZQe+h9BNNMkIQ/BfhqhJSSQErGM8oyouVOWVvhJVyt52hVJjGpgjfN0oBAJtl4YO1rZenBoPZvpbLzC7Ijn9DTuQvgCdYAhVxMp7mh8Fm+xewJZvssl0Mb7RoDmT+BLn - -Qc/m8/0WYSX0pvXWacvQpDg29m+yYSytfiKgRdNxjtd8CCQTjYhplAVvdHt/jSh1Sv6RNc05+pkAp07qjei7ADliY2AAl5JfyEL3ZQzLCVENqBgyOnAnBlNcXfooO7BhXy9T4TBtDUNF+aBU5EbN+aygTqxEDyVbGbRttYf+EfOcYAX7CyX+7uACag+nq/RiPlKVEuqjiepxwe/+6ZLFKCZHOh5288Du+n6QbnTpiAN506pR99reJZ/WyAcxDSiC - -7+Z8bLqgZ/FgAS4b0oR550lrEBGzLdV7lrvX+T5eo8EvgO13Ix/k/wCj9bqF9wk2ZW/fCan9O1RY53l8yK+9MvRmiPXumODYmlhkIgPjsZEvpo1ENvZ/wdQEOQPYZMnvy2xR9587gCr2mkHcE0slACi7avywIoO8PMFENmggTofD3BQfMgDcfTYCP9cD5Vg53twoOJ0MduFoSmQ9Mpq6okJoKGAojATllB8yCP58yMBmwkCltDuv0jQT2sw3POfd - -Dd81kWQQi77AcdTGivIETEjixcFz8beT0f8qNg3Qbemr5UYRrrX5bPO6G2DX7t5XW4CSSDpFaC9cBc8KoIQlXH5jd4VV+e3vU1dtM2Hbe73KhHfAtGAgpNM4HWnV7D2UhrIWhiXF5M5zzOAD2486bYErwcjGATg0JyJWiB5ugZD3XtAevLFa0A5dQBAg52sAQuGd0A3BqLJNLa+ywbYAkNCDXQE4S1EvTAkA3LMltcW3kaRk+0q4BYA/ElIHj+3M - -X4PL9mc+7iHM8AZegIHs7vuFdvWF1/H7voEey13pYgc9RAopjJ7Pv6UACt7Tw9QVO6P3B/egfP3WI4xADwXi2wbPR3IuAMrYARm902+cS9ZgpFLv1gix4Wt7GgvGGC6atm1xye4YqA1oYdt7JzAepEAn+RO19u4yk4QZrAV90FawHoI8ra+HWA5wXO0azzZbVNlYeijDPR38Hu/jwb6tf1fdqo39KbAdH3hmwGSv4pAuoDvVoaIngleRzQNld+Ib - -9rSlxAsd2OAHJX8IZ+heLRzAd1gL1RT9tdNa+A4ArnXE6d2aBBJoBNX8qgAW4AKK1F4wA17F5mqYC4UzaMWzAWjo9LBpy4u1eWEnJHIhDcBS4pLxe/MRS/PkArltiSOjdrT+cP7cGnhIfyP35Y3psIucSUMRgNKmFcRZuZFU80gDPKQvnjS2rhhrwBBPeTy/EDnsVymLn7vFdPO+NN4Oa4CFvxuP7ua8tr+Hu/PdqNr/w0nqy79shUVgvXFXH2AI - -wR6NwDR5+VobfRYOFexPy6vsRG4O8UA3qAQMcFhgExb1jJ+G8/CeIDh/0vC7VADUz+smgFDAdWKwpUAf/gIv+YMdC0QEBv0mw6Fb8yn+O8AH7Aaf62QIzct8xXAUuAsPADLgNKf5SR47ESXRBX/LIYaWSmKDt1focBlDK4RqxgQ0qLBWMUXevjLfX0n2nW2RpaJ9Wl+Dl9QoutUXWXgYEH8MXKiORQNMq7y25gSrLhR9C8HHewvidLwVwEdaAhL+ - -xcvUOrig2k86JLAJR0wfsiRjdAdPDQKySjI11eXg1OxSFRIXyMI4x9jT+tKAF7MLeWWNpDW6lakeGe7C39qP6xjJCbQDTnSe5PXKnox33Pf4ko80R2uW0Qbkk0Hz8oBAh0ToEekA6J7K1L3CwG8vdHABWmfbUHuKUAC34N98m2eSofM3fvMF0ir6SiZn00B//BRhv3Z0T96EiQakWzYAxcrnNmlZrBl8JL622S/YkhHpX28/6KD99P+uTPRb1iEu - -22d42P9w3eJKvHfdmSrzDd6Tw9Z8B4DrefAeNvz4wHOasC3sR1LbsFuk/gF3SDq9T5UeJPNE+t8mS5LTARcPrsddKezUqufEH17bYDe3+BYAmfAa81STwF4VsWt2fUA95rN87BFpw/KgH0MZMqJcADq6nTqDn7heG4Ze0THTpU8QOVZfAD8WgnkOfZnvc5EgfC358VsQ9ZGH6ASvB00z7UntB5eFOXd8/iQ5H6RgVjR/bYHydPzAb8XjDIDHPBuO - -+iAwB9riP/3i2aba9dJe3OXbIjnJ3yjf7GwD9MOMffFyDno/zDF6iYdpEyN+WPuAajpAQ/5v1gTBY7g+RL/u1GxYN7af8yrGw7TMtgEdgIqqiWUkHg2jcnLz/uIXBUgC1M9XHAzCXWTQEaZ160B4h8U4AUBA1wEJFkxtlDiECYv2zLgaQgb0/2k+4rp8MUg401G3Pon/RlUKA6F+rWkGfCVwqRMEbHoTRNJ9CTXHPVhiRgXaBpW9c2iCSmrDogsN - -dAP5rVzMr9mGcoTjXHVzU9gGBh8FEA8hAikzjcOwel7LwcZCBNMAlzKLh2GT7hy3QM5C0IQLfYJreE4eId7xv+K5xXb8MmDBldSRzpIn+EcAApgONnKFriKadJJB+jEhbAnm8d1cAG0P9R2maMfc9/iLbx+ZgceBFDQ02vanyEnQmB/Ct6gHviFN2H0/tsuEp/4QT8UUaql/WOLpjXFLU7xYCMo+T9vdC/r65w0N76X8VQepB/NVAbNJ1Wv4WacK - -n+h8AiK1sfAKuP5Jsc2N+t+lan/mwgIMj5PiQkUByl/LE3DCPwZ/7oe5Y1u1bnOV/rW7x9gEE3sjf+SSXR13r8f3qf6J98tL2GxA2PTpmAPN/7J/8OiBnvnLogZmfzcS5mwCoOeYj/c9NitfxNnpcoDRO+63rbCfgy9xLc7Yl9ePQm4A/ogS7V1lqZ8ZRuSu/CUZ5HmdWCIoY7mtauObuebanG/N1ffx5s5clWrO+LtultSyNqixN8lE69lPKTfG - -H/zl+5+nkikBC2nQ5vp8Z0FP4fjt5maDhLfzmiqdHz96wF9//SW+A7FaE053AtCv9pTFOYJAZ4gTvJkBD7GCV46g+4RcthJg6iexrFEIxVA3pLTokuRcyaVCGGE34C85yGVAOHtEerhapgADIOuIPZPD3+mBxqbiFve2newDZKsomV6L7iH9Px+kh/GEAa170UxgOvh4s8B5IdCJDaoR39bGhASiBl78H0/lGuBnMY3QDZ3cAaPHxfm1v0V/5Yb8 - -LO+SQAstTgcXz1t5yX9x/+HYfbTPgelx5/4aW866+wSAmvKqkv1KV6PF9xAezxfE6freAKLgZzEDT4ewO7QQAYRAGNN5ltskiBgGxAyTo4FzFHxa08IlOxCPB8iGohzTeKJPt4yeDWAjXxJzuG1rb7JlZWAjsKcSvhbay3EyKl9d8+yTzW2YMiXwgQHwKUc5OpkHVxCEze31R7jP9nSG7N7Qf1lVa3ZZhE3sgYBpN7F3ATfaxUsA1Sc0S+7kobxA - -W7e0bj6bQZhoO2KPFMgZid128THtlMG4BXlMx4FnH0vXYPdg+72HFgZRABAjRmg5A3sfb2j6gWXtga0ExICP7QPr2NqwX0RNB4lz7bjkDW4Ak5AsLftOQO7yYhigBSBdtISBYvBgKXIH1s4VyBqDQMcgSJrAXIEr2MtyBUq7XFtrmuyvnCluxf5mBwgfz/rFa35zhh3twIQtGrS6enzuEI/6sZVfrEbZAm4UB2QL6vZBb92S+vt7fKDuzsDB1CFr - -J93+upnL7vl1gK7zJ6ooCMBvqifnAXYcmDXYKZhOLAA6QAGbBWQKrj5/YDcJAx/rEIwFWQKawEWqda72NOiGtKEOgOn0ge1AWt08d7AntiltyDgA2f8G3M5fcDK1nokDvj6T3tTpYpJfdvCPTRiIL4xa1EO2dMgYTgNBFgQwF2+QgaUNYCTx9jaW1HS46PMbpwgFhTY4CJ1kfj41dt++WAmDUv1iYB3KdBYxw81oBn8P5JipAFDIEymJtSIq/wPo - -Zin12jJZ2fYJPuJtPXQ3nE8HCfZK/wXzm3n0RPfm5X2EYoHPswRQn/bfNKNTJxJ3AM0RpMGx6ye+mDxCkj5j1EZELKRvvZfnr+Oj/Yj9oZL90JHrRCvg/524Fb+qwuVyURhVFEPmXx0j5LaxBo4Adpbj/HtlD4B4vkQSY4f6Geg4LndBAr7Xsg5I2strfHEHtYyJr4qP9buoW+EKFTvQQWDPi6X9buoikGKO4JBdmGO5yZ9EA+t3UQ0rJIrHFxL8 - -NVbReqPfZreHlQK9BY6rE0WYoffXtwLBXzZCpwRxDYBatvW75NyQLiUi8kCdYBJOPBqgZUgna0ATcoCn2dafYNDK/11/FocQFNwIah6Fvzpk3EbOSGctTh0e1BWqHn0AXpeySXk4AQJChTxEswwnxT4/MEOusg2AuMzJ33zU1Yir0lZMDt9f9PjWmmdw5dN4lj2fMxDdlnwF0TPJ+AxX0+PQNIMHgCFwyxxrXpGJc2I/ZF5hCF0ReZ69Yf98E2fR - -9Pq2t2rBId34O3S+9Hah4lLDXBtx8Vd++G0Nvd4eFAv1pqp6ytq+miFHIzZCAv3rSqaE9QYu8n3eQcjak2U7KQn8qGmuOZR64qcexrlojY11ieUSPRCSuQ01hoFraJ/POY3DTB8hX2WxoFfUdRk6SRLfU2lDRxdCpuX8pRUxNAyI2qTQK4cpnHsRsalNA35vlgWTfI5hN8Nck5e/BYKFXXFr85OECBR+cKERqgR1QMbehdQ8BLOJcvWqxBaMFFZC - -oWczm8eojfxYDLeDoGC+ndr96KGWZkjFZgLs2jdjBxk0mwERKCKPKFKwE6mETN6dA4L7tlbACR1hTIDkPa6eAxEdh4AMmfwSEB0yW9qwVvPt7ZygQqCWx3JG2l4JUgZ8yhVIGWa8JLePUvSq3o3N1Fw6/d9uXwKxPeEXsaVlVijqWgOjUVF/BHuBZZ0FD7uVwOOeuP3ZlXu+gPD363nt6b+uuhZP1h3gKaQC/oItN+kfMc1GuTgL4+4L/534OFiK - -PsrlbsBe6qbet1NeI+GNOToVewi37VQc58Bge5QLfoZ/zpL4MmlQM2ikHMGUCOdTFejq3spj6EbIG0KCrQMhRSruMvBQGtAvTzAQiBKwFpt9VaBkJMRugWPpksXZbH48u+c1hQouo0XSuzTy/xescOuRXL2KF31FcIuV1uiCu8DEVwndBli4JxdgZEWWACPELh/mAT56x89lsBoBxMuSvXG00I5Kn5/ZcHqwRngAZs0VAG10DbTiO+IHe4OAsibo - -Fd0DH8BZNAInuMAPCC6gFtgPCS34AFlxJUQxuCSJKcIDa6ZBVDVKBGHOF5oYwAgSCsHIYcKPKBgwGkYQWfiWatZWPvmu1yUq1D8PN2akPXO/pogPzv5aL9ybO+PCZ0oGwVW495Ipci4SVsORUgZY7WVIFPv8VmKIdnXAgfucTbq5GQDZ8OGmffjCGEAL+QFop8we+R/+KX/phsV2X7Z+9pG2wtfRVHuhz27jLPXs4EeQMvQfVDvz1JDauCV6ou4z - -/SQEjd1XH3av89W6wWdAxDARmQCFvZf+tJA2o5ncq1qq2z24BVM4eaeWOoMeCE2jjSg7a+tM38UHMc9drGT2Rupp3tBoklUHQD5OleyeLADk8Zc+ADAjnYAAXy+LRxDskm0A/nB7QvD5Ce0JQ4FaDWAhMWwKJrDDwP6xF1NHCxKfBKuqSn0K77+F0FqBJKfPAdP3QP/Yy6eBkRizS3T6woqBDi3SFSx38AioAn+gbGtRdZ6nkCM72Bzwfpdky+Wu - -MBHWpXuEyt4E5+GWDzViC1KZI2MyP7Al5OUkElfZ2kkGBwN4/AaQC6IFwEbSDQDjeMJgF+9vGXx38SNMde1+SaLWVDqNjwyIFnv9qWms/xLs6FZdCBIjrTRrSOMhAm9riWcCtoGkAobaBsaSfd3hofwu744gdKiefTrUZ3nBgKsvaRM9qHCGOAwtaJd307AFVVs8/W3PMFsvoTe0BgF0f8wQanQXfh3oMwJtg43QcLr2gP7IrSFkX1cL5Dh02mBr - -udfKDm3e0suApOw00+7R6CigRWu0YD5oi8/GgC0HfFKGT1BvlbPd8Ld+73fNo4Efe2uFrA9AgcejyfEmvix4hyYEBhtMdip6/Ievo4KCeYEzBxqe+BTAysdm9Z378ISGUIu+Fk2TWTD3twaILkw1Ylm6Lzddfi73mOsbsN8wWBmUhOr5vO3WKASRwZD+OxjmFCaPWQi6z4eFZLjicgXa44oRL0ftYr5ZsI+RyXD5gfBhEG4DpR8pSuI6YdW7MwAG - -mW4OcwbjAw5OKOaOiKGQOoEvJbQI7O3O0XDvRgkRBZkBdFscvUMvuEBqmvXYnrtmWI0MffSgBv/xJvahiZYCBJivbV3kaPw7/51B8bloAVAf6gFpAJCkydegbu6xRA5BgdbQNQYEKIxiY+Aw/A46D6QMch7pV9ARAUsvaiLC0n0rWTpkD/I2CQPP3fk/IHqvZNCRyS+n0deL/uKrBtL7AtRJLCf6Az7bkTfxo4Co9sI72ByKWyvp3j2rN6qJA0E+ - -Td7TFCtPjxrQQOt0Xr6+zbJigfvHB+l61lc2oANsfApOP05B8djJb99S2jdgIJ9kt6GQago3sWoO/eiIIDu2AmPXaabtK84d8lUsgZMwLa/ZXRwU2BnNONNgYV1QzYGb/8s2B19hCGAnvx1krrv8dC2WnGA5LvJlODoX4cdFe2W9QwQQ7pbjkn27CncTU8XNeGSRpltmHIJO58hr0jEkXWvM0GE+rru/d0p+oLPRdwNZ225YF5sCwpe/LAkWnkh3 - -yQuQfeQBPg0kwBCmLCEDFUAVyh/3g65UU4Eio+XqjggFsXd6/NsB6uA9iFZSCKiZt7eL39Ei7kuXDHQFT4kJ0B6kQTzAe3W0ZWa69Bu4CO8zJGkgwKmdGrysDGnairAzdAUVhSRhKt5pQwu5PXIHbuxvwkj4RgDBTe6xAhj/qol3aDZLIdA6BiYAtf/orAwZLYo1d4U+oYfTp/tB/1ihBxBdpXceBve9TrG/w8IGTRdV4OGgHGN3pZAGKl7G6QRI - -S76HCUvqr1C9MD2XldeSr5GUx/g7EnZvYm6khWSJj/agjmLEhNL4e5MBr2QoLKSAYl9ngoFX59KnUMT/Q/Xtz1FCopa+szt8uFxcT1jtL0XAQ13t+tCksKQtduE/x1p7fkCIKABUHPPGgqGn966C95x0BKzISdAeR2z2i62PNj2B0nA9SILJwIjm7rzhbyBMbbLVuJqz0DTTeGgU4oZsWLaAthSmCbwdOk3YBEBCD2ASgIGHgK6tpy4CmjTU6Cmy - -t0PT58K9CgMv2nU0oFl33GVCTq1M+iL0BCoum2J2FW61xVrtCq1hKVfhG0kDfaFcd5C02feQN7vA309nSLZpTjUS9MDuAnQansEhbCYrYOKlVc7Qkw4GRhTjAclMBcQ/KhYGLT1z2B/hoFOBaKIJTgU6d05oCX351hgLDSUS0Fg9FRlC1th9vww74cVvrzJBhUBQYkyz4ueAXmATC7BOrjFkYVre/U0UXAQzZGv7JyMCUyedEQTzASH9zF9CxJg/ - -vYKWkX5VHZcFeN5egoGmBKgqG2gWXaAf35RgCj0BuyA+NPoegKegFPk8bGebxbDP0gkL07q5CNcuy+e4A9tbIlJ2SwGvICwx+jH/TfiIGPzvoSFUY45O+DA7yjkDtzK8xs/8GJ+cx/MQPkQWHHn52AdvMec9fLn/r1KAcf4HjpsKeWRlbjgcUe1hn72QERwBwF3Ns/LRx1ucZBhAnbuTAqVx6t5XyMbZtORIS+ZfcZaLgHX3gjzs+IWmeXRKDrpj - -x9w7Q6ngJtAYS//GZ/gnjDdQ4X88lroryrdTYLDAL5OAAH8kAePeuc4oMmQOhvaRa8lKut/ZaroitB2DN6xWtHFwHhAxWnst60zIFbbBtWIiHAStWHcrwEcAyHVr5OAhAxxcCwwMYIFsMDcwgfkHdGoPWugrNLxydWaemC7YOnlAmFcIEmmddyKhpfJzqjH0nAIG0JJd/+enbfQNFOfTVBBNcCy72V79HfPuRfAQGC8VBFeBhFA3FsmiCVjJ50RB - -1eB5gbbf1s1wIBvatcC6YAuvA901G9s0iWhFzN8hQN7fTuCOZdx39xPt8DUBELoFGJifRztIwfZdP0u5dDOb/qrpVYGYkxpJ++jg3dKyO+uzcubC2dgoWIhTD3gZPLTUTpGoCdMKL7fN4aNsCzCv78lcpam9dDV5ptFpS6m6R+JKIea0lTtOi3PQHnpWoD6eamyVFfbq6u36+B45BNeBOrAPxgaCZiMM55kY06gRDUMwAAwIDsxAAIpYlUhIsJ/G - -BhrwkErMj1S1mk+8b8FiLv1r8B2KAe8OO2aHLqOzwLi9ZeqJ0DanOAkLOOwe3AYGuv8C7+HQPRUeJbsCAIT54ChoENXhbRqENwLmbQ+n95B0mErSogYINwa76ho9PkBda/PINqOZwCX4ZzB5f+V8Pe3fnzA1RQFLep3ReXMvZggckf1Oq7L5czFOwzA0h/nS21apA9P9x0AadAkN3nqKH8Zgxb9GvW7IA3MgTzW2Gi7AYNzr2+kHcPBt3wMai5/E - -1++B60DGG8jgCGnVKdExBvYB9yOlpKqWmYYLhbho1cytJXuCGqAW7YJw7N+MiPzIXzvszuFgKx0iUKgQXUCSd4rwen/tKychxhOiC3BggT3wLGUBk3t5mB3/A+VbhqqxRci2ENWgAwKoHRZI0aAX9AwUVlCAj2AqREM9gL396pMDQqK/kOTMei7yU4agi8CCfUvLAlxxmh/y1L6N/8kPaaeAnKnnrQLnQGeADMY+ImPYANl+ozQIHzB5lfaiRyQd - -GLPwPU/Tz8D/foAHPMvARkrymT5+U9UcB1KA7K1nVazBT7mwCfYB4eWZQLj5QMvM6ORcG/Q//xAzDj+gOGDaqf8t1S9nIVp/p6W3af7GsDxr2817Ylxrm8AIEG81s/6A3PAqpDKZm1ZAEv8DRLmATsbgQZ8Thl4En/8MP+gCgAIQUhejgdZ7/9T/+5izcT6keF2SLhCmsjwuNdoZVwj7y2YPy1NIsk04u+S94BOL0vDJTi9uiIgDaMngvcDFvgQR - -VR5Qug2pF6CF+ZEKuAYKkJna43HWMzhIQMCEGM0d6/++//J07vPcHjjjWUYQpcaqgTOoJXniJABcBAPRovGZZCBMBzFIkBfAC4EWJ5IBugOiEAUX4Ra8/QIJ+fB4xGJcyod4T7FG62zyve0/h6AKg37Dg87y2Ng9NYDuP3mrtBOJR1mqg3AhVgY0wNQYG4mtVBBdcA2AfvchwJAE8oD5H+/baQggSEr1iQGTEDQ/eQx/U1ciyALDb4Zf8CK+9KAm - -lAYKwCNr6oq9hn+PCXeD/mM/0YIFIf8kl+rCXFj8NwwNYoGZMATP+nc3ByDoizlYToxQD3MevDMcYQRquzrsBAiCgv47cnCYQVUXG0YGa5Fy9ugVCeTVq01nYEKcq1AKcCxQAjyquPmWoFu8EAa6ERbYfIHYQJzQbaoRm4CGvqRXMsxSm0oI8TB7F0Vy1MczDy5xU16raQoRBXRKGEQU6dysSS7q0Vd8X4FB94mU0QBAzEaYOGkmdQQTpiDnERQz - -fAgJfiYHUXOuNCXHGrgakx6b2fJfLguGEJwFC4qICdaBIgg+H9mKQJBwFlyg/KqmuyX0AYwXHL3ZkrIBuBy1URQQYnWGUEFIMQpp+Uc/EEXjdt32L7/bUB5+FmfBPXj9Gy0EE5n9OzKlVAra/pvT2+G5ET9cB+bGHH0XiK2124FDl9L6A3rA73wFAUzrn604CIvW2xbC40i+gNgWY22dL54l2NQJAcYILSjjuupMAgyYYfNUN5QOgr5B3sHO2xQo - -SCylBX0QN40l9C6BbJfPd3mLW02H4FCUQRBnfreMQWmIJ5L6edsrg2BYgg5PvQwVSEFi74Gmk2TeBfEr1nzAEGLwMCmY+mxCCAnl/mgW5WF0zroCmrWROLmyyy7zuV0OjW5ldM3vB5XXKAiUZkTe81uHM97qihGc4F8j95Kqqv8eoCBP5wtO6GPddGmmhzOiASlfyPTK8l9QRBI4cNMAcYIK4X51JwUyw1d9bl8iY+g+zimAAkMcBhSGF9LxmXcI - -DhSQSt4HY8VgQcgUHaaCYKgPieLiUIvgZ0QwFar8b9NSgmjUTzAftDwocjlOg6+w1TAteSsc8AHSaW0CthBw3AnYQSoIN2JIOHsbRBDRAtm1kcIO2L4oD87j+lOfPA5JoALbgEamdf4Y7nHaF2nAZ0igGYM84yONOAwjgdQR2Z66shsJq+661NzAVrXzXhgX+9MU2zH3DWwLezxt2KYm8LWBfnrG/gQjCimi6S18wS+0N/ZwcAmwOTxb09Jo2+sp - -vbGAIhUDqEFtKBYLuwFXUpnpwYDvEEwp529AYGAjO1LxION4G/0CZYqgkg4FAVsfhCMIPf9j84o9A3iBH33y775PzdeqclgIJ4LqyzT/3xVapbqBASedTav/9TM8Jjt1j0+wefK/jl9cQ/2Lo0Y9c+v9nJ44P/Z1JJ79k9+W2/EglSAOJIOSd4+EDqBg1AwTAkFiKAllBG+AWQAachbAAKlChYP7P6xONOyKAK4IHEg1b4Ho7tG8CJtqQ98McwJ9 - -Rw4V5N4Mhm/HT1k4FW4VZTACpYBwOA/aAa6yGZ0BaJlhOAOyAP57kUIF74wmZskGBD7A7YQU+wNNxQn50+O+tKAiR/qmn2w37QLI7Xe+T/O13s5AOvn4lSC1pM+Bve6Hntf0Tn5Sy8sJBE3HHPHtpF3Yr6JcDTSBXlbFLAZHX0fEE8MMCWSdiAzNwFOQO3IGWdsj5evk3DwQXlazVL4Gnwf2BTxffjKr/n3f9YKVNXr+0WQR1gU2JnEaRWA85wBN - -YoD1gaAING07gy8w6BuBGTtvgDrkeHi2sDSv+v/gB1wKFIPuYg6khAh4b3/fL/rhsSTBCnSDXzcZzAvFtn9fyukE0E1zKykqfAELm23RSsrNK9Jv+CKHde0oEDxCB5eN9uku/gPUDdr43wCB5eN8UaBkNHbbTshuw+o7paIAm+2myASVhiRz56qYTBtcexS/cRenue3usoeU9WnO7yKHymGdIJR2A3DtA+uR0g+9KIL63AACVQBaQAY74Y0AP6gG - -4AA5oBoAAsA4eDAI+ADy3BigAGAAE+/DdNKPfW++AiABMiAaA4DIAI37D/gosyC+G4kGAdmQZiKF0NbcyC2ZBu4ARe4Ho3EFkG8yDhZBnMggxiGLIOyAB8yDJZBJ8GaWQfMGGFkGPBJ8HwCsgvmQWsr3uIiqyDhZBLDSbIAInHHjQBP819KAawATWQRkAG1kFPrATRypA0Q2QfZZh5kEyyDhZBct0SdcvUAGxAAyYAE+AaWVY3QEbIKoGBRABFgE - -TkYNkADTbBCADOWhXZBf8+G+8Hw3EtHKYgBN6glYAQOQZzoFdkGeyDLRyTQAfOoMkQHpkGWyChZBxsguSgI8Ei9ACm8ArQAWDqbkAEeINAoCy+1dTOMjddAoGnILZAAGgA04gw6AVziJ+8R+sL9SRDZBCTAAwABTIPkwBWNMIiAB0RBG0tk4FdkHKyDP0wTtkemQTKABIACAyoxMsk8vQoAFISA7kG7gB0zgR7YHuQe3IPQuR1RJ4KK2GmW0YIJk - -F7kEmsgSaACrQYBrPZnCZrS4AAAAAFBcGRj0D+IBV5B1AACwIAAAEpLQA9bYOuMFGgAtoA3isl5BA55W5aBvIOPkGE4Bt5BAPABWQXLIMK7JD4ROAAodYYBYPW2HLAD8q0umA1cgmkAFkAE3mTBABhMAiggx/ZpzGm4ACKCDsNMmQAP+QX+IPeiBIFgAIAXaARQQc0aDy3BMAAlWG4Cg4BQRAAEgUGcgBV/Q48gz+QUAoMe+KXyC7AAzngJbHNsl - -Ww0xFdlR5BN3XCeQRXEFpABLY5SnA3aYR/SAF4DQAAk0B6iE9lmFkAAYAGjkEfGBzF+iwAeCmOkAGIUFMbA91glaIIfCIwAFsSTcgAJhg4AAdqwBOUCv6DAAAM0AIAADNAEAAA== -``` -%% \ No newline at end of file diff --git a/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.svg b/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.svg deleted file mode 100644 index e8d438f..0000000 --- a/Ilustraciónes/Drawing 2025-09-02 09.39.04.excalidraw.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/Ilustraciónes/img_02-09-25_20.excalidraw.md b/Ilustraciónes/img_02-09-25_20.excalidraw.md new file mode 100644 index 0000000..6f0d158 --- /dev/null +++ b/Ilustraciónes/img_02-09-25_20.excalidraw.md @@ -0,0 +1,26683 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + + +# Excalidraw Data + +## Text Elements +## Embedded Files +b83eb83ae201f0c9ed3d63946f08397261769728: [[../Pasted Image 20250902211302_215.png]] + +%% +## Drawing +```json +{ + "type": "excalidraw", + "version": 2, + "source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.15.1", + "elements": [ + { + "id": "mNDsFMl9IuFz-T7xF9QTQ", + "type": "freedraw", + "x": -619.25, + "y": -520.4453125, + "width": 193, + "height": 241, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a2", + "roundness": null, + "seed": 1684725725, + "version": 53, + "versionNonce": 863743667, + "isDeleted": false, + "boundElements": null, + "updated": 1756839526078, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 5 + ], + [ + -3, + 12 + ], + [ + -3, + 25 + ], + [ + -4, + 42 + ], + [ + -4, + 62 + ], + [ + -5, + 84 + ], + [ + -6, + 105 + ], + [ + -8, + 127 + ], + [ + -10, + 146 + ], + [ + -13, + 164 + ], + [ + -15, + 178 + ], + [ + -17, + 189 + ], + [ + -19, + 197 + ], + [ + -19, + 202 + ], + [ + -18, + 205 + ], + [ + -16, + 208 + ], + [ + -12, + 209 + ], + [ + -5, + 210 + ], + [ + 3, + 208 + ], + [ + 13, + 205 + ], + [ + 25, + 201 + ], + [ + 37, + 197 + ], + [ + 49, + 192 + ], + [ + 61, + 187 + ], + [ + 74, + 181 + ], + [ + 87, + 174 + ], + [ + 101, + 166 + ], + [ + 129, + 149 + ], + [ + 141, + 140 + ], + [ + 151, + 130 + ], + [ + 160, + 120 + ], + [ + 167, + 111 + ], + [ + 171, + 101 + ], + [ + 174, + 92 + ], + [ + 174, + 83 + ], + [ + 168, + 62 + ], + [ + 162, + 49 + ], + [ + 153, + 36 + ], + [ + 141, + 23 + ], + [ + 127, + 10 + ], + [ + 110, + -1 + ], + [ + 92, + -10 + ], + [ + 73, + -18 + ], + [ + 54, + -24 + ], + [ + 36, + -28 + ], + [ + 20, + -31 + ], + [ + 8, + -31 + ], + [ + -2, + -28 + ], + [ + -9, + -23 + ], + [ + -9, + -23 + ] + ], + "pressures": [ + 0.37664794921875, + 0.39910888671875, + 0.4157257080078125, + 0.4162139892578125, + 0.4176788330078125, + 0.4181671142578125, + 0.4196319580078125, + 0.4196319580078125, + 0.4181671142578125, + 0.4181671142578125, + 0.4171905517578125, + 0.4171905517578125, + 0.4191436767578125, + 0.4235382080078125, + 0.4284210205078125, + 0.4308624267578125, + 0.4308624267578125, + 0.4264678955078125, + 0.4264678955078125, + 0.4274444580078125, + 0.4318389892578125, + 0.4347686767578125, + 0.4372100830078125, + 0.4372100830078125, + 0.438201904296875, + 0.441131591796875, + 0.442108154296875, + 0.442596435546875, + 0.442596435546875, + 0.4318389892578125, + 0.4152374267578125, + 0.40008544921875, + 0.38543701171875, + 0.37957763671875, + 0.37957763671875, + 0.38104248046875, + 0.39031982421875, + 0.4103546142578125, + 0.4123077392578125, + 0.4123077392578125, + 0.4103546142578125, + 0.4098663330078125, + 0.4098663330078125, + 0.4103546142578125, + 0.4103546142578125, + 0.40203857421875, + 0.38446044921875, + 0.3556365966796875, + 0.319000244140625, + 0.2330169677734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -9, + -23 + ] + }, + { + "id": "Jl1rxbHQZt6Rn7XtBI-bU", + "type": "freedraw", + "x": -411.25, + "y": -327.4453125, + "width": 142, + "height": 81, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a3", + "roundness": null, + "seed": 2102386163, + "version": 67, + "versionNonce": 1055644445, + "isDeleted": false, + "boundElements": null, + "updated": 1756839527353, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 1 + ], + [ + -8, + 6 + ], + [ + -9, + 7 + ], + [ + -9, + 8 + ], + [ + -10, + 9 + ], + [ + -10, + 10 + ], + [ + -10, + 8 + ], + [ + -10, + 5 + ], + [ + -10, + -1 + ], + [ + -10, + -9 + ], + [ + -10, + -19 + ], + [ + -9, + -31 + ], + [ + -8, + -41 + ], + [ + -6, + -50 + ], + [ + -4, + -57 + ], + [ + 0, + -63 + ], + [ + 4, + -67 + ], + [ + 8, + -70 + ], + [ + 14, + -71 + ], + [ + 20, + -69 + ], + [ + 27, + -65 + ], + [ + 41, + -48 + ], + [ + 46, + -37 + ], + [ + 50, + -27 + ], + [ + 51, + -17 + ], + [ + 52, + -11 + ], + [ + 52, + -6 + ], + [ + 52, + -4 + ], + [ + 52, + -3 + ], + [ + 52, + -4 + ], + [ + 51, + -8 + ], + [ + 51, + -14 + ], + [ + 51, + -23 + ], + [ + 51, + -32 + ], + [ + 51, + -43 + ], + [ + 52, + -53 + ], + [ + 53, + -61 + ], + [ + 55, + -67 + ], + [ + 57, + -70 + ], + [ + 60, + -71 + ], + [ + 64, + -70 + ], + [ + 69, + -66 + ], + [ + 74, + -60 + ], + [ + 79, + -54 + ], + [ + 84, + -47 + ], + [ + 89, + -40 + ], + [ + 93, + -34 + ], + [ + 96, + -30 + ], + [ + 98, + -26 + ], + [ + 99, + -23 + ], + [ + 100, + -22 + ], + [ + 101, + -22 + ], + [ + 102, + -23 + ], + [ + 104, + -25 + ], + [ + 106, + -28 + ], + [ + 108, + -31 + ], + [ + 110, + -34 + ], + [ + 111, + -36 + ], + [ + 113, + -36 + ], + [ + 114, + -34 + ], + [ + 116, + -31 + ], + [ + 124, + -15 + ], + [ + 128, + -10 + ], + [ + 132, + -7 + ], + [ + 132, + -7 + ] + ], + "pressures": [ + 0.2554931640625, + 0.2603759765625, + 0.316558837890625, + 0.3458709716796875, + 0.3605194091796875, + 0.3658905029296875, + 0.3697967529296875, + 0.38250732421875, + 0.38836669921875, + 0.39178466796875, + 0.39324951171875, + 0.39666748046875, + 0.39959716796875, + 0.40252685546875, + 0.40545654296875, + 0.40594482421875, + 0.40594482421875, + 0.40496826171875, + 0.40447998046875, + 0.40301513671875, + 0.40057373046875, + 0.39959716796875, + 0.39227294921875, + 0.38983154296875, + 0.38983154296875, + 0.39129638671875, + 0.39666748046875, + 0.40350341796875, + 0.4069366455078125, + 0.4069366455078125, + 0.4069366455078125, + 0.4074249267578125, + 0.4079132080078125, + 0.4084014892578125, + 0.4093780517578125, + 0.4098663330078125, + 0.4098663330078125, + 0.4098663330078125, + 0.4088897705078125, + 0.4079132080078125, + 0.4079132080078125, + 0.4079132080078125, + 0.4118194580078125, + 0.4118194580078125, + 0.4137725830078125, + 0.4137725830078125, + 0.4132843017578125, + 0.4132843017578125, + 0.4132843017578125, + 0.4132843017578125, + 0.4127960205078125, + 0.40057373046875, + 0.38739013671875, + 0.38739013671875, + 0.38739013671875, + 0.38983154296875, + 0.38983154296875, + 0.38934326171875, + 0.38446044921875, + 0.38201904296875, + 0.38201904296875, + 0.38739013671875, + 0.322418212890625, + 0.191009521484375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 132, + -7 + ] + }, + { + "id": "H0zyI6mAO1UY6xGRwOeiU", + "type": "freedraw", + "x": -121.25, + "y": -533.4453125, + "width": 139, + "height": 254, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a4", + "roundness": null, + "seed": 1333491677, + "version": 49, + "versionNonce": 2106431347, + "isDeleted": false, + "boundElements": null, + "updated": 1756839528427, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + -1 + ], + [ + -2, + 0 + ], + [ + -2, + 5 + ], + [ + -3, + 12 + ], + [ + -5, + 24 + ], + [ + -6, + 40 + ], + [ + -9, + 60 + ], + [ + -11, + 82 + ], + [ + -14, + 106 + ], + [ + -16, + 130 + ], + [ + -19, + 152 + ], + [ + -20, + 172 + ], + [ + -21, + 188 + ], + [ + -21, + 202 + ], + [ + -21, + 213 + ], + [ + -19, + 221 + ], + [ + -16, + 228 + ], + [ + -12, + 232 + ], + [ + -6, + 235 + ], + [ + 2, + 236 + ], + [ + 10, + 235 + ], + [ + 20, + 231 + ], + [ + 30, + 225 + ], + [ + 40, + 217 + ], + [ + 52, + 208 + ], + [ + 63, + 197 + ], + [ + 74, + 186 + ], + [ + 85, + 174 + ], + [ + 94, + 161 + ], + [ + 102, + 147 + ], + [ + 109, + 133 + ], + [ + 113, + 119 + ], + [ + 116, + 104 + ], + [ + 118, + 90 + ], + [ + 118, + 75 + ], + [ + 116, + 59 + ], + [ + 111, + 41 + ], + [ + 95, + 8 + ], + [ + 84, + -5 + ], + [ + 72, + -14 + ], + [ + 58, + -18 + ], + [ + 44, + -18 + ], + [ + 28, + -13 + ], + [ + 12, + -4 + ], + [ + -4, + 9 + ], + [ + -18, + 23 + ], + [ + -18, + 23 + ] + ], + "pressures": [ + 0.2222747802734375, + 0.2935943603515625, + 0.40350341796875, + 0.4181671142578125, + 0.4225616455078125, + 0.4230499267578125, + 0.4230499267578125, + 0.4220733642578125, + 0.4147491455078125, + 0.4074249267578125, + 0.40399169921875, + 0.40106201171875, + 0.39910888671875, + 0.39862060546875, + 0.39862060546875, + 0.39813232421875, + 0.39422607421875, + 0.39324951171875, + 0.39324951171875, + 0.39324951171875, + 0.39666748046875, + 0.40155029296875, + 0.4093780517578125, + 0.4147491455078125, + 0.4176788330078125, + 0.4196319580078125, + 0.4201202392578125, + 0.4210968017578125, + 0.4220733642578125, + 0.4225616455078125, + 0.4245147705078125, + 0.4259796142578125, + 0.4274444580078125, + 0.4284210205078125, + 0.4337921142578125, + 0.437713623046875, + 0.438201904296875, + 0.438201904296875, + 0.4352569580078125, + 0.4342803955078125, + 0.4342803955078125, + 0.4279327392578125, + 0.38885498046875, + 0.318511962890625, + 0.2335052490234375, + 0.081573486328125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -18, + 23 + ] + }, + { + "id": "uBjvcSq9RXEpdscowuFeA", + "type": "freedraw", + "x": 79.75, + "y": -374.4453125, + "width": 84, + "height": 66, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a5", + "roundness": null, + "seed": 487495347, + "version": 13, + "versionNonce": 1001472061, + "isDeleted": false, + "boundElements": null, + "updated": 1756839528872, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -9, + 3 + ], + [ + -16, + 6 + ], + [ + -24, + 10 + ], + [ + -32, + 16 + ], + [ + -49, + 32 + ], + [ + -58, + 40 + ], + [ + -67, + 49 + ], + [ + -75, + 57 + ], + [ + -80, + 63 + ], + [ + -84, + 66 + ], + [ + -84, + 66 + ] + ], + "pressures": [ + 0.453338623046875, + 0.4235382080078125, + 0.4206085205078125, + 0.4201202392578125, + 0.4186553955078125, + 0.3658905029296875, + 0.329254150390625, + 0.2784423828125, + 0.206146240234375, + 0.0444488525390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -84, + 66 + ] + }, + { + "id": "EQga2ViGRRx10oxvzSk9-", + "type": "freedraw", + "x": 9.75, + "y": -375.4453125, + "width": 70, + "height": 53, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a6", + "roundness": null, + "seed": 969020669, + "version": 13, + "versionNonce": 937569043, + "isDeleted": false, + "boundElements": null, + "updated": 1756839529065, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 3 + ], + [ + 4, + 8 + ], + [ + 7, + 15 + ], + [ + 18, + 32 + ], + [ + 26, + 39 + ], + [ + 35, + 46 + ], + [ + 46, + 50 + ], + [ + 58, + 53 + ], + [ + 70, + 53 + ], + [ + 70, + 53 + ] + ], + "pressures": [ + 0.37567138671875, + 0.39520263671875, + 0.38934326171875, + 0.38934326171875, + 0.39617919921875, + 0.39715576171875, + 0.38299560546875, + 0.339996337890625, + 0.2442474365234375, + 0.091339111328125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 70, + 53 + ] + }, + { + "id": "Ap7EFle-XyMmO-KYbzXxQ", + "type": "freedraw", + "x": 264.75, + "y": -507.4453125, + "width": 197, + "height": 265, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a7", + "roundness": null, + "seed": 147505747, + "version": 47, + "versionNonce": 749068541, + "isDeleted": false, + "boundElements": null, + "updated": 1756839529813, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 1 + ], + [ + -2, + 7 + ], + [ + -2, + 18 + ], + [ + -2, + 36 + ], + [ + -2, + 59 + ], + [ + -2, + 84 + ], + [ + -3, + 110 + ], + [ + -4, + 135 + ], + [ + -6, + 159 + ], + [ + -8, + 180 + ], + [ + -10, + 197 + ], + [ + -12, + 208 + ], + [ + -14, + 214 + ], + [ + -14, + 217 + ], + [ + -11, + 218 + ], + [ + -6, + 217 + ], + [ + 1, + 215 + ], + [ + 11, + 210 + ], + [ + 23, + 204 + ], + [ + 36, + 197 + ], + [ + 49, + 189 + ], + [ + 62, + 181 + ], + [ + 74, + 172 + ], + [ + 84, + 163 + ], + [ + 94, + 152 + ], + [ + 103, + 140 + ], + [ + 111, + 125 + ], + [ + 118, + 108 + ], + [ + 124, + 89 + ], + [ + 129, + 68 + ], + [ + 131, + 47 + ], + [ + 130, + 26 + ], + [ + 126, + 6 + ], + [ + 119, + -13 + ], + [ + 108, + -28 + ], + [ + 74, + -46 + ], + [ + 52, + -47 + ], + [ + 26, + -40 + ], + [ + -26, + -8 + ], + [ + -61, + 29 + ], + [ + -66, + 43 + ], + [ + -64, + 53 + ], + [ + -56, + 61 + ], + [ + -56, + 61 + ] + ], + "pressures": [ + 0.3697967529296875, + 0.4250030517578125, + 0.4982757568359375, + 0.4982757568359375, + 0.4982757568359375, + 0.4958343505859375, + 0.4958343505859375, + 0.4933929443359375, + 0.4846038818359375, + 0.456268310546875, + 0.4333038330078125, + 0.4230499267578125, + 0.4230499267578125, + 0.4303741455078125, + 0.450408935546875, + 0.450408935546875, + 0.451385498046875, + 0.451873779296875, + 0.457244873046875, + 0.460662841796875, + 0.461151123046875, + 0.461151123046875, + 0.456268310546875, + 0.451385498046875, + 0.447479248046875, + 0.441131591796875, + 0.4333038330078125, + 0.4274444580078125, + 0.4225616455078125, + 0.4220733642578125, + 0.4220733642578125, + 0.4259796142578125, + 0.4318389892578125, + 0.448944091796875, + 0.466033935546875, + 0.4748382568359375, + 0.4748382568359375, + 0.467987060546875, + 0.460174560546875, + 0.453338623046875, + 0.4333038330078125, + 0.3712615966796875, + 0.2491302490234375, + 0.1074676513671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -56, + 61 + ] + }, + { + "id": "OuUnE2ffy4vqXp82iVkU9", + "type": "freedraw", + "x": 436.75, + "y": -368.4453125, + "width": 122, + "height": 191, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a8", + "roundness": null, + "seed": 1091929533, + "version": 31, + "versionNonce": 1946685683, + "isDeleted": false, + "boundElements": null, + "updated": 1756839530218, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + -1, + -2 + ], + [ + 0, + -1 + ], + [ + 1, + 2 + ], + [ + 2, + 9 + ], + [ + 6, + 18 + ], + [ + 19, + 44 + ], + [ + 28, + 59 + ], + [ + 47, + 87 + ], + [ + 54, + 101 + ], + [ + 59, + 113 + ], + [ + 62, + 126 + ], + [ + 62, + 137 + ], + [ + 59, + 148 + ], + [ + 54, + 158 + ], + [ + 48, + 167 + ], + [ + 40, + 174 + ], + [ + 32, + 180 + ], + [ + 25, + 185 + ], + [ + 17, + 188 + ], + [ + 10, + 189 + ], + [ + 2, + 188 + ], + [ + -5, + 185 + ], + [ + -15, + 180 + ], + [ + -25, + 174 + ], + [ + -37, + 167 + ], + [ + -49, + 160 + ], + [ + -60, + 153 + ], + [ + -60, + 153 + ] + ], + "pressures": [ + 0.40203857421875, + 0.4191436767578125, + 0.38885498046875, + 0.466522216796875, + 0.4958343505859375, + 0.510009765625, + 0.510009765625, + 0.4914398193359375, + 0.4704437255859375, + 0.38592529296875, + 0.324859619140625, + 0.2764892578125, + 0.2613525390625, + 0.2613525390625, + 0.312652587890625, + 0.4064483642578125, + 0.4919281005859375, + 0.5520172119140625, + 0.575469970703125, + 0.575469970703125, + 0.574981689453125, + 0.5622711181640625, + 0.5398101806640625, + 0.508056640625, + 0.4709320068359375, + 0.4201202392578125, + 0.325836181640625, + 0.213958740234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -60, + 153 + ] + }, + { + "id": "EmKuFH5w5bogkdH2WvPrk", + "type": "freedraw", + "x": 230.75, + "y": -188.4453125, + "width": 38, + "height": 415, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "a9", + "roundness": null, + "seed": 1196994611, + "version": 24, + "versionNonce": 180444083, + "isDeleted": false, + "boundElements": null, + "updated": 1756839532366, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 0, + 0 + ], + [ + 0, + 3 + ], + [ + -1, + 10 + ], + [ + -3, + 23 + ], + [ + -5, + 41 + ], + [ + -7, + 65 + ], + [ + -9, + 95 + ], + [ + -11, + 128 + ], + [ + -12, + 166 + ], + [ + -12, + 206 + ], + [ + -12, + 245 + ], + [ + -12, + 281 + ], + [ + -13, + 311 + ], + [ + -14, + 337 + ], + [ + -16, + 357 + ], + [ + -19, + 374 + ], + [ + -23, + 388 + ], + [ + -28, + 399 + ], + [ + -33, + 408 + ], + [ + -38, + 414 + ], + [ + -38, + 414 + ] + ], + "pressures": [ + 0.193939208984375, + 0.3101959228515625, + 0.3737030029296875, + 0.38641357421875, + 0.40594482421875, + 0.4191436767578125, + 0.4264678955078125, + 0.4328155517578125, + 0.438690185546875, + 0.438690185546875, + 0.4318389892578125, + 0.3741912841796875, + 0.342437744140625, + 0.341461181640625, + 0.340484619140625, + 0.339019775390625, + 0.317535400390625, + 0.2755126953125, + 0.2286224365234375, + 0.1636505126953125, + 0.093292236328125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -38, + 414 + ] + }, + { + "id": "P0nSg9EY5BOvc0Ny5fy8_", + "type": "freedraw", + "x": 229.75, + "y": -162.4453125, + "width": 384, + "height": 430, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aA", + "roundness": null, + "seed": 1456360179, + "version": 74, + "versionNonce": 575276819, + "isDeleted": false, + "boundElements": null, + "updated": 1756839533228, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2, + -1 + ], + [ + 4, + -2 + ], + [ + 6, + -3 + ], + [ + 10, + -4 + ], + [ + 14, + -4 + ], + [ + 21, + -5 + ], + [ + 29, + -7 + ], + [ + 39, + -8 + ], + [ + 52, + -9 + ], + [ + 66, + -10 + ], + [ + 83, + -11 + ], + [ + 102, + -11 + ], + [ + 122, + -11 + ], + [ + 144, + -11 + ], + [ + 167, + -11 + ], + [ + 191, + -10 + ], + [ + 214, + -8 + ], + [ + 237, + -5 + ], + [ + 259, + -2 + ], + [ + 281, + 2 + ], + [ + 302, + 5 + ], + [ + 321, + 8 + ], + [ + 338, + 11 + ], + [ + 351, + 14 + ], + [ + 361, + 16 + ], + [ + 368, + 17 + ], + [ + 372, + 17 + ], + [ + 374, + 18 + ], + [ + 374, + 19 + ], + [ + 375, + 20 + ], + [ + 375, + 24 + ], + [ + 374, + 29 + ], + [ + 373, + 37 + ], + [ + 372, + 47 + ], + [ + 370, + 60 + ], + [ + 369, + 75 + ], + [ + 369, + 94 + ], + [ + 369, + 115 + ], + [ + 369, + 137 + ], + [ + 372, + 185 + ], + [ + 375, + 209 + ], + [ + 377, + 231 + ], + [ + 380, + 268 + ], + [ + 378, + 283 + ], + [ + 375, + 296 + ], + [ + 369, + 307 + ], + [ + 362, + 316 + ], + [ + 355, + 323 + ], + [ + 346, + 330 + ], + [ + 338, + 335 + ], + [ + 329, + 338 + ], + [ + 319, + 341 + ], + [ + 309, + 343 + ], + [ + 297, + 344 + ], + [ + 284, + 346 + ], + [ + 269, + 347 + ], + [ + 251, + 350 + ], + [ + 231, + 353 + ], + [ + 209, + 356 + ], + [ + 159, + 368 + ], + [ + 133, + 375 + ], + [ + 107, + 382 + ], + [ + 82, + 390 + ], + [ + 58, + 398 + ], + [ + 38, + 406 + ], + [ + 21, + 412 + ], + [ + 8, + 416 + ], + [ + 1, + 419 + ], + [ + -4, + 419 + ], + [ + -2, + 416 + ], + [ + 3, + 410 + ], + [ + 3, + 410 + ] + ], + "pressures": [ + 0.2247161865234375, + 0.2266693115234375, + 0.2310638427734375, + 0.2545166015625, + 0.2779541015625, + 0.3009185791015625, + 0.327301025390625, + 0.3517303466796875, + 0.3697967529296875, + 0.38787841796875, + 0.4098663330078125, + 0.4274444580078125, + 0.4367218017578125, + 0.439666748046875, + 0.440643310546875, + 0.442596435546875, + 0.445526123046875, + 0.446014404296875, + 0.446502685546875, + 0.446502685546875, + 0.446502685546875, + 0.446502685546875, + 0.439178466796875, + 0.4342803955078125, + 0.4313507080078125, + 0.4303741455078125, + 0.4293975830078125, + 0.4303741455078125, + 0.4323272705078125, + 0.4362335205078125, + 0.4362335205078125, + 0.441619873046875, + 0.453338623046875, + 0.4831390380859375, + 0.515380859375, + 0.530029296875, + 0.530029296875, + 0.513916015625, + 0.4846038818359375, + 0.448455810546875, + 0.3121490478515625, + 0.216400146484375, + 0.14849853515625, + 0.1568145751953125, + 0.2325286865234375, + 0.316070556640625, + 0.3580780029296875, + 0.37957763671875, + 0.38397216796875, + 0.38494873046875, + 0.38592529296875, + 0.39178466796875, + 0.39471435546875, + 0.39813232421875, + 0.40106201171875, + 0.4113311767578125, + 0.4318389892578125, + 0.4689788818359375, + 0.4987640380859375, + 0.529052734375, + 0.5544586181640625, + 0.566192626953125, + 0.573516845703125, + 0.578887939453125, + 0.578887939453125, + 0.578399658203125, + 0.578399658203125, + 0.571563720703125, + 0.5495758056640625, + 0.37518310546875, + 0.2432708740234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 3, + 410 + ] + }, + { + "id": "buIJWcnn-yjtLPTI2rexi", + "type": "freedraw", + "x": 289.75, + "y": -131.4453125, + "width": 75, + "height": 123, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aB", + "roundness": null, + "seed": 1743494739, + "version": 60, + "versionNonce": 1143077651, + "isDeleted": false, + "boundElements": null, + "updated": 1756839535889, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 0 + ], + [ + -2, + -1 + ], + [ + -3, + -1 + ], + [ + -4, + -2 + ], + [ + -5, + -3 + ], + [ + -8, + -4 + ], + [ + -11, + -5 + ], + [ + -14, + -6 + ], + [ + -19, + -6 + ], + [ + -25, + -5 + ], + [ + -31, + -4 + ], + [ + -37, + 0 + ], + [ + -44, + 4 + ], + [ + -50, + 11 + ], + [ + -55, + 18 + ], + [ + -59, + 25 + ], + [ + -61, + 32 + ], + [ + -62, + 38 + ], + [ + -62, + 43 + ], + [ + -60, + 47 + ], + [ + -58, + 50 + ], + [ + -55, + 53 + ], + [ + -53, + 55 + ], + [ + -50, + 55 + ], + [ + -48, + 55 + ], + [ + -45, + 55 + ], + [ + -43, + 53 + ], + [ + -40, + 51 + ], + [ + -37, + 47 + ], + [ + -33, + 43 + ], + [ + -30, + 38 + ], + [ + -26, + 35 + ], + [ + -23, + 32 + ], + [ + -20, + 31 + ], + [ + -17, + 32 + ], + [ + -14, + 35 + ], + [ + -11, + 40 + ], + [ + -7, + 47 + ], + [ + -2, + 56 + ], + [ + 2, + 65 + ], + [ + 7, + 74 + ], + [ + 10, + 82 + ], + [ + 12, + 90 + ], + [ + 13, + 96 + ], + [ + 12, + 102 + ], + [ + 10, + 107 + ], + [ + 6, + 111 + ], + [ + 0, + 114 + ], + [ + -6, + 116 + ], + [ + -13, + 117 + ], + [ + -21, + 116 + ], + [ + -28, + 114 + ], + [ + -36, + 111 + ], + [ + -43, + 107 + ], + [ + -48, + 102 + ], + [ + -53, + 97 + ], + [ + -55, + 93 + ], + [ + -55, + 93 + ] + ], + "pressures": [ + 0.3746795654296875, + 0.4279327392578125, + 0.462615966796875, + 0.4811859130859375, + 0.4850921630859375, + 0.4870452880859375, + 0.4885101318359375, + 0.4899749755859375, + 0.4924163818359375, + 0.4968109130859375, + 0.506103515625, + 0.508544921875, + 0.510498046875, + 0.511474609375, + 0.511474609375, + 0.513916015625, + 0.514404296875, + 0.514404296875, + 0.513916015625, + 0.513916015625, + 0.513916015625, + 0.514404296875, + 0.514404296875, + 0.512451171875, + 0.509521484375, + 0.506591796875, + 0.504638671875, + 0.504638671875, + 0.504150390625, + 0.504150390625, + 0.503662109375, + 0.503173828125, + 0.503173828125, + 0.4987640380859375, + 0.4875335693359375, + 0.4875335693359375, + 0.4875335693359375, + 0.4885101318359375, + 0.4889984130859375, + 0.4894866943359375, + 0.4889984130859375, + 0.4894866943359375, + 0.4894866943359375, + 0.4899749755859375, + 0.4938812255859375, + 0.514404296875, + 0.5393218994140625, + 0.571563720703125, + 0.593536376953125, + 0.6096649169921875, + 0.6160125732421875, + 0.6160125732421875, + 0.6067352294921875, + 0.583770751953125, + 0.5368804931640625, + 0.441131591796875, + 0.2437591552734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -55, + 93 + ] + }, + { + "id": "XcU7S5f2s5h0YmWkkYwiw", + "type": "freedraw", + "x": 330.75, + "y": -94.4453125, + "width": 4.0001, + "height": 1.0001, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aE", + "roundness": null, + "seed": 301041235, + "version": 10, + "versionNonce": 1349792371, + "isDeleted": false, + "boundElements": null, + "updated": 1756839539067, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 0 + ], + [ + -3, + 0 + ], + [ + -4, + 0 + ], + [ + -4, + -1 + ], + [ + -3, + -1 + ], + [ + -2, + 0 + ], + [ + 0, + 0 + ], + [ + 0.0001, + 0.0001 + ] + ], + "pressures": [ + 0.340484619140625, + 0.529541015625, + 0.5319976806640625, + 0.5319976806640625, + 0.3444061279296875, + 0.2735595703125, + 0.12750244140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0.0001, + 0.0001 + ] + }, + { + "id": "vHcL1ymxJ59BaIgYWVak1", + "type": "freedraw", + "x": 331.75, + "y": -51.4453125, + "width": 1, + "height": 1, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aF", + "roundness": null, + "seed": 1967813043, + "version": 5, + "versionNonce": 2016877501, + "isDeleted": false, + "boundElements": null, + "updated": 1756839539245, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -1, + -1 + ], + [ + -1, + -1 + ] + ], + "pressures": [ + 0.4191436767578125, + 0.4264678955078125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1, + -1 + ] + }, + { + "id": "r47m9HLwa8cD2f2edRKpa", + "type": "freedraw", + "x": 365.75, + "y": -122.4453125, + "width": 61, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aG", + "roundness": null, + "seed": 1143410813, + "version": 44, + "versionNonce": 23999677, + "isDeleted": false, + "boundElements": null, + "updated": 1756839539775, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + -1 + ], + [ + 3, + -2 + ], + [ + 7, + -3 + ], + [ + 12, + -4 + ], + [ + 18, + -5 + ], + [ + 23, + -5 + ], + [ + 29, + -4 + ], + [ + 34, + -2 + ], + [ + 38, + 0 + ], + [ + 42, + 3 + ], + [ + 45, + 7 + ], + [ + 46, + 11 + ], + [ + 46, + 15 + ], + [ + 41, + 22 + ], + [ + 38, + 26 + ], + [ + 35, + 28 + ], + [ + 32, + 31 + ], + [ + 30, + 32 + ], + [ + 28, + 33 + ], + [ + 29, + 34 + ], + [ + 30, + 36 + ], + [ + 33, + 38 + ], + [ + 37, + 42 + ], + [ + 41, + 45 + ], + [ + 45, + 50 + ], + [ + 50, + 54 + ], + [ + 54, + 59 + ], + [ + 57, + 64 + ], + [ + 60, + 69 + ], + [ + 61, + 73 + ], + [ + 61, + 77 + ], + [ + 60, + 80 + ], + [ + 57, + 82 + ], + [ + 53, + 84 + ], + [ + 48, + 85 + ], + [ + 43, + 85 + ], + [ + 37, + 85 + ], + [ + 31, + 84 + ], + [ + 25, + 83 + ], + [ + 19, + 80 + ], + [ + 14, + 77 + ], + [ + 14, + 77 + ] + ], + "pressures": [ + 0.4235382080078125, + 0.4225616455078125, + 0.440155029296875, + 0.445526123046875, + 0.448455810546875, + 0.449920654296875, + 0.449920654296875, + 0.449432373046875, + 0.446502685546875, + 0.437713623046875, + 0.4342803955078125, + 0.4342803955078125, + 0.4342803955078125, + 0.439178466796875, + 0.459197998046875, + 0.467987060546875, + 0.4743499755859375, + 0.4743499755859375, + 0.4743499755859375, + 0.467010498046875, + 0.4318389892578125, + 0.4318389892578125, + 0.4318389892578125, + 0.4318389892578125, + 0.4318389892578125, + 0.4323272705078125, + 0.4352569580078125, + 0.4367218017578125, + 0.4372100830078125, + 0.437713623046875, + 0.438690185546875, + 0.452362060546875, + 0.4782562255859375, + 0.512939453125, + 0.5393218994140625, + 0.5451812744140625, + 0.5451812744140625, + 0.530517578125, + 0.4870452880859375, + 0.40155029296875, + 0.2403411865234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 14, + 77 + ] + }, + { + "id": "9ds_fyPSCOUGo4r5fukZE", + "type": "freedraw", + "x": 461.75, + "y": -123.4453125, + "width": 57, + "height": 86, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aH", + "roundness": null, + "seed": 2066475389, + "version": 38, + "versionNonce": 814040221, + "isDeleted": false, + "boundElements": null, + "updated": 1756839540274, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + -3, + -1 + ], + [ + -4, + -1 + ], + [ + -6, + 0 + ], + [ + -13, + 4 + ], + [ + -17, + 8 + ], + [ + -22, + 15 + ], + [ + -27, + 23 + ], + [ + -31, + 33 + ], + [ + -34, + 43 + ], + [ + -36, + 53 + ], + [ + -35, + 62 + ], + [ + -33, + 69 + ], + [ + -30, + 75 + ], + [ + -26, + 80 + ], + [ + -20, + 83 + ], + [ + -14, + 84 + ], + [ + -8, + 85 + ], + [ + -1, + 83 + ], + [ + 5, + 81 + ], + [ + 11, + 77 + ], + [ + 15, + 72 + ], + [ + 19, + 66 + ], + [ + 21, + 58 + ], + [ + 21, + 50 + ], + [ + 20, + 42 + ], + [ + 18, + 33 + ], + [ + 14, + 26 + ], + [ + 9, + 20 + ], + [ + 4, + 16 + ], + [ + -2, + 14 + ], + [ + -8, + 14 + ], + [ + -14, + 14 + ], + [ + -19, + 17 + ], + [ + -23, + 20 + ], + [ + -23, + 20 + ] + ], + "pressures": [ + 0.1822052001953125, + 0.39813232421875, + 0.438201904296875, + 0.467010498046875, + 0.467010498046875, + 0.454315185546875, + 0.453826904296875, + 0.453338623046875, + 0.452362060546875, + 0.452362060546875, + 0.451385498046875, + 0.445037841796875, + 0.4293975830078125, + 0.4147491455078125, + 0.4103546142578125, + 0.4093780517578125, + 0.4069366455078125, + 0.40594482421875, + 0.40594482421875, + 0.40594482421875, + 0.4084014892578125, + 0.4191436767578125, + 0.4240264892578125, + 0.4254913330078125, + 0.4328155517578125, + 0.440643310546875, + 0.443572998046875, + 0.444549560546875, + 0.446990966796875, + 0.447967529296875, + 0.447967529296875, + 0.4264678955078125, + 0.37615966796875, + 0.2887115478515625, + 0.13970947265625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -23, + 20 + ] + }, + { + "id": "U1KYDwY6DmvuGezMMlUyN", + "type": "freedraw", + "x": 387.75, + "y": -23.4453125, + "width": 9, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aI", + "roundness": null, + "seed": 233341277, + "version": 15, + "versionNonce": 146239059, + "isDeleted": false, + "boundElements": null, + "updated": 1756839540934, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 1, + 3 + ], + [ + 0, + 8 + ], + [ + 0, + 14 + ], + [ + 0, + 22 + ], + [ + 0, + 30 + ], + [ + 1, + 36 + ], + [ + 2, + 43 + ], + [ + 4, + 47 + ], + [ + 5, + 51 + ], + [ + 7, + 54 + ], + [ + 9, + 54 + ], + [ + 9, + 54 + ] + ], + "pressures": [ + 0.38299560546875, + 0.4972991943359375, + 0.503173828125, + 0.509521484375, + 0.518310546875, + 0.528564453125, + 0.5354156494140625, + 0.5354156494140625, + 0.529541015625, + 0.4977874755859375, + 0.441131591796875, + 0.335601806640625, + 0.1568145751953125, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 9, + 54 + ] + }, + { + "id": "e4CHDP7GAw1vthl7tEJXk", + "type": "freedraw", + "x": 357.75, + "y": 27.5546875, + "width": 69, + "height": 49, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aJ", + "roundness": null, + "seed": 1024996755, + "version": 43, + "versionNonce": 60847357, + "isDeleted": false, + "boundElements": null, + "updated": 1756839541412, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + 2 + ], + [ + 3, + 3 + ], + [ + 6, + 6 + ], + [ + 14, + 12 + ], + [ + 19, + 15 + ], + [ + 24, + 18 + ], + [ + 29, + 22 + ], + [ + 33, + 25 + ], + [ + 37, + 28 + ], + [ + 40, + 30 + ], + [ + 41, + 31 + ], + [ + 42, + 32 + ], + [ + 42, + 31 + ], + [ + 43, + 29 + ], + [ + 44, + 26 + ], + [ + 46, + 21 + ], + [ + 48, + 16 + ], + [ + 51, + 11 + ], + [ + 55, + 7 + ], + [ + 58, + 3 + ], + [ + 62, + 0 + ], + [ + 65, + -4 + ], + [ + 67, + -6 + ], + [ + 68, + -8 + ], + [ + 69, + -9 + ], + [ + 69, + -10 + ], + [ + 69, + -11 + ], + [ + 69, + -12 + ], + [ + 69, + -13 + ], + [ + 67, + -15 + ], + [ + 64, + -16 + ], + [ + 61, + -17 + ], + [ + 49, + -16 + ], + [ + 40, + -14 + ], + [ + 31, + -11 + ], + [ + 22, + -8 + ], + [ + 14, + -5 + ], + [ + 8, + -3 + ], + [ + 4, + -2 + ], + [ + 2, + -1 + ], + [ + 2, + -1 + ] + ], + "pressures": [ + 0.4162139892578125, + 0.442108154296875, + 0.459686279296875, + 0.4821624755859375, + 0.4914398193359375, + 0.4929046630859375, + 0.4929046630859375, + 0.4836273193359375, + 0.456756591796875, + 0.4293975830078125, + 0.4132843017578125, + 0.4127960205078125, + 0.4113311767578125, + 0.4181671142578125, + 0.437713623046875, + 0.445037841796875, + 0.446502685546875, + 0.449432373046875, + 0.455291748046875, + 0.467987060546875, + 0.4719085693359375, + 0.4719085693359375, + 0.466522216796875, + 0.462127685546875, + 0.462127685546875, + 0.462127685546875, + 0.463592529296875, + 0.465057373046875, + 0.466522216796875, + 0.466522216796875, + 0.455291748046875, + 0.4323272705078125, + 0.4225616455078125, + 0.4191436767578125, + 0.4215850830078125, + 0.4298858642578125, + 0.4298858642578125, + 0.4293975830078125, + 0.3551483154296875, + 0.1113739013671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 2, + -1 + ] + }, + { + "id": "3fabQJlStT6DKnOTHe_3d", + "type": "freedraw", + "x": 363.75, + "y": 121.5546875, + "width": 57, + "height": 90, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aK", + "roundness": null, + "seed": 561715645, + "version": 55, + "versionNonce": 2125908083, + "isDeleted": false, + "boundElements": null, + "updated": 1756839542143, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2, + -5 + ], + [ + 3, + -9 + ], + [ + 5, + -14 + ], + [ + 6, + -19 + ], + [ + 6, + -30 + ], + [ + 5, + -36 + ], + [ + 2, + -41 + ], + [ + -3, + -47 + ], + [ + -8, + -51 + ], + [ + -13, + -53 + ], + [ + -19, + -54 + ], + [ + -25, + -53 + ], + [ + -30, + -52 + ], + [ + -34, + -50 + ], + [ + -38, + -47 + ], + [ + -41, + -44 + ], + [ + -43, + -40 + ], + [ + -44, + -36 + ], + [ + -43, + -32 + ], + [ + -41, + -27 + ], + [ + -37, + -22 + ], + [ + -31, + -16 + ], + [ + -25, + -10 + ], + [ + -10, + 1 + ], + [ + -3, + 6 + ], + [ + 4, + 11 + ], + [ + 9, + 15 + ], + [ + 12, + 19 + ], + [ + 13, + 23 + ], + [ + 12, + 27 + ], + [ + 9, + 31 + ], + [ + 5, + 33 + ], + [ + -2, + 35 + ], + [ + -9, + 36 + ], + [ + -16, + 35 + ], + [ + -23, + 33 + ], + [ + -29, + 30 + ], + [ + -34, + 27 + ], + [ + -38, + 23 + ], + [ + -41, + 19 + ], + [ + -42, + 15 + ], + [ + -43, + 11 + ], + [ + -41, + 7 + ], + [ + -39, + 4 + ], + [ + -35, + 1 + ], + [ + -30, + -2 + ], + [ + -25, + -4 + ], + [ + -18, + -6 + ], + [ + -12, + -7 + ], + [ + -5, + -8 + ], + [ + 1, + -8 + ], + [ + 6, + -9 + ], + [ + 6, + -9 + ] + ], + "pressures": [ + 0.37567138671875, + 0.4245147705078125, + 0.454803466796875, + 0.4714202880859375, + 0.4787445068359375, + 0.4997406005859375, + 0.504150390625, + 0.506591796875, + 0.507568359375, + 0.510498046875, + 0.511474609375, + 0.515869140625, + 0.518798828125, + 0.520751953125, + 0.521728515625, + 0.521728515625, + 0.519775390625, + 0.518798828125, + 0.514892578125, + 0.511474609375, + 0.509521484375, + 0.509521484375, + 0.509033203125, + 0.508544921875, + 0.505615234375, + 0.504638671875, + 0.502197265625, + 0.4860687255859375, + 0.465545654296875, + 0.465545654296875, + 0.467987060546875, + 0.4889984130859375, + 0.508056640625, + 0.516357421875, + 0.522216796875, + 0.523681640625, + 0.523681640625, + 0.521240234375, + 0.519775390625, + 0.510498046875, + 0.4968109130859375, + 0.4914398193359375, + 0.4914398193359375, + 0.4933929443359375, + 0.4948577880859375, + 0.4968109130859375, + 0.4982757568359375, + 0.4982757568359375, + 0.4723968505859375, + 0.40203857421875, + 0.2764892578125, + 0.0283203125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 6, + -9 + ] + }, + { + "id": "7YecQY9A196pSIZbcheDs", + "type": "freedraw", + "x": 417.75, + "y": 95.5546875, + "width": 2, + "height": 2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aL", + "roundness": null, + "seed": 1482655667, + "version": 6, + "versionNonce": 1661739155, + "isDeleted": false, + "boundElements": null, + "updated": 1756839542490, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 0 + ], + [ + -2, + 2 + ], + [ + -2, + 2 + ] + ], + "pressures": [ + 0.63018798828125, + 0.6130828857421875, + 0.6057586669921875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2, + 2 + ] + }, + { + "id": "VaTUyD3ejI4Gka6S_xUsn", + "type": "freedraw", + "x": 416.75, + "y": 145.5546875, + "width": 6, + "height": 4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aM", + "roundness": null, + "seed": 1729451987, + "version": 8, + "versionNonce": 1279088211, + "isDeleted": false, + "boundElements": null, + "updated": 1756839542670, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 1 + ], + [ + -2, + 1 + ], + [ + 0, + 0 + ], + [ + 1, + -1 + ], + [ + 4, + -3 + ], + [ + 4, + -3 + ] + ], + "pressures": [ + 0.522216796875, + 0.5344390869140625, + 0.5344390869140625, + 0.461151123046875, + 0.3483123779296875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 4, + -3 + ] + }, + { + "id": "hbo4Vsz9bO2RbIh9Zcj4L", + "type": "freedraw", + "x": 487.75, + "y": 78.5546875, + "width": 52, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aN", + "roundness": null, + "seed": 1984175507, + "version": 38, + "versionNonce": 1364278387, + "isDeleted": false, + "boundElements": null, + "updated": 1756839543131, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + -2 + ], + [ + -3, + -3 + ], + [ + -6, + -4 + ], + [ + -8, + -4 + ], + [ + -11, + -2 + ], + [ + -15, + 2 + ], + [ + -20, + 7 + ], + [ + -24, + 13 + ], + [ + -28, + 21 + ], + [ + -31, + 29 + ], + [ + -32, + 38 + ], + [ + -32, + 46 + ], + [ + -29, + 53 + ], + [ + -25, + 59 + ], + [ + -20, + 63 + ], + [ + -15, + 67 + ], + [ + -10, + 69 + ], + [ + -5, + 70 + ], + [ + 0, + 71 + ], + [ + 4, + 70 + ], + [ + 9, + 68 + ], + [ + 13, + 65 + ], + [ + 16, + 60 + ], + [ + 18, + 54 + ], + [ + 20, + 46 + ], + [ + 19, + 38 + ], + [ + 18, + 28 + ], + [ + 15, + 19 + ], + [ + 11, + 10 + ], + [ + 6, + 4 + ], + [ + -4, + -3 + ], + [ + -9, + -3 + ], + [ + -14, + -1 + ], + [ + -18, + 2 + ], + [ + -21, + 7 + ], + [ + -21, + 7 + ] + ], + "pressures": [ + 0.3693084716796875, + 0.445526123046875, + 0.445526123046875, + 0.450897216796875, + 0.450897216796875, + 0.4230499267578125, + 0.40155029296875, + 0.40155029296875, + 0.4088897705078125, + 0.4118194580078125, + 0.4127960205078125, + 0.4127960205078125, + 0.39471435546875, + 0.3551483154296875, + 0.324371337890625, + 0.318023681640625, + 0.317047119140625, + 0.317047119140625, + 0.319488525390625, + 0.329254150390625, + 0.3561248779296875, + 0.38348388671875, + 0.39569091796875, + 0.40545654296875, + 0.4147491455078125, + 0.4225616455078125, + 0.4308624267578125, + 0.4347686767578125, + 0.4362335205078125, + 0.4362335205078125, + 0.4347686767578125, + 0.4137725830078125, + 0.3536834716796875, + 0.2559814453125, + 0.070343017578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -21, + 7 + ] + }, + { + "id": "heXvSDNYwRj3pxDEjkEHg", + "type": "freedraw", + "x": 567.75, + "y": 69.5546875, + "width": 58, + "height": 79, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aO", + "roundness": null, + "seed": 1978465203, + "version": 42, + "versionNonce": 591316435, + "isDeleted": false, + "boundElements": null, + "updated": 1756839544623, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3, + 0 + ], + [ + -4, + 0 + ], + [ + -6, + 0 + ], + [ + -7, + -1 + ], + [ + -8, + -1 + ], + [ + -9, + -1 + ], + [ + -10, + -1 + ], + [ + -11, + 0 + ], + [ + -14, + 1 + ], + [ + -19, + 5 + ], + [ + -24, + 10 + ], + [ + -29, + 17 + ], + [ + -34, + 25 + ], + [ + -37, + 34 + ], + [ + -39, + 43 + ], + [ + -40, + 51 + ], + [ + -39, + 58 + ], + [ + -37, + 65 + ], + [ + -34, + 70 + ], + [ + -31, + 74 + ], + [ + -26, + 76 + ], + [ + -21, + 78 + ], + [ + -15, + 78 + ], + [ + -9, + 77 + ], + [ + -4, + 75 + ], + [ + 1, + 72 + ], + [ + 6, + 68 + ], + [ + 10, + 63 + ], + [ + 14, + 56 + ], + [ + 17, + 48 + ], + [ + 18, + 38 + ], + [ + 18, + 29 + ], + [ + 17, + 20 + ], + [ + 14, + 12 + ], + [ + 10, + 6 + ], + [ + 5, + 2 + ], + [ + -2, + -1 + ], + [ + -9, + -1 + ], + [ + -19, + 1 + ], + [ + -19, + 1 + ] + ], + "pressures": [ + 0.14605712890625, + 0.445526123046875, + 0.448944091796875, + 0.4802093505859375, + 0.510986328125, + 0.5354156494140625, + 0.5354156494140625, + 0.5349273681640625, + 0.522216796875, + 0.501220703125, + 0.4836273193359375, + 0.4836273193359375, + 0.4836273193359375, + 0.4889984130859375, + 0.4948577880859375, + 0.4948577880859375, + 0.4948577880859375, + 0.4933929443359375, + 0.4889984130859375, + 0.4836273193359375, + 0.4758148193359375, + 0.465545654296875, + 0.457244873046875, + 0.448455810546875, + 0.448455810546875, + 0.448944091796875, + 0.449432373046875, + 0.454315185546875, + 0.457244873046875, + 0.459197998046875, + 0.460662841796875, + 0.462127685546875, + 0.464569091796875, + 0.467987060546875, + 0.4699554443359375, + 0.4699554443359375, + 0.457733154296875, + 0.39373779296875, + 0.13922119140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -19, + 1 + ] + }, + { + "id": "sp-eLLfW_fIs9ZVZ6nwmg", + "type": "freedraw", + "x": -126.25, + "y": -181.4453125, + "width": 302, + "height": 25, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aP", + "roundness": null, + "seed": 2018487571, + "version": 25, + "versionNonce": 317767197, + "isDeleted": false, + "boundElements": null, + "updated": 1756839546357, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + 0 + ], + [ + 2, + 0 + ], + [ + 4, + 0 + ], + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 20, + 2 + ], + [ + 29, + 3 + ], + [ + 41, + 4 + ], + [ + 55, + 5 + ], + [ + 72, + 6 + ], + [ + 90, + 7 + ], + [ + 110, + 9 + ], + [ + 131, + 10 + ], + [ + 152, + 12 + ], + [ + 174, + 13 + ], + [ + 197, + 14 + ], + [ + 219, + 16 + ], + [ + 241, + 18 + ], + [ + 260, + 19 + ], + [ + 277, + 21 + ], + [ + 291, + 23 + ], + [ + 302, + 25 + ], + [ + 302, + 25 + ] + ], + "pressures": [ + 0.2618408203125, + 0.3009185791015625, + 0.323394775390625, + 0.341461181640625, + 0.3541717529296875, + 0.3668670654296875, + 0.38201904296875, + 0.40008544921875, + 0.4181671142578125, + 0.4372100830078125, + 0.444549560546875, + 0.449920654296875, + 0.451873779296875, + 0.454803466796875, + 0.455291748046875, + 0.455291748046875, + 0.453338623046875, + 0.446014404296875, + 0.4289093017578125, + 0.39031982421875, + 0.317535400390625, + 0.1846466064453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 302, + 25 + ] + }, + { + "id": "aML10GdwL1kwr1vz1GsxJ", + "type": "freedraw", + "x": -133.25, + "y": -186.4453125, + "width": 37, + "height": 470, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aQ", + "roundness": null, + "seed": 467901149, + "version": 25, + "versionNonce": 636262643, + "isDeleted": false, + "boundElements": null, + "updated": 1756839546947, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5, + 18 + ], + [ + -8, + 30 + ], + [ + -10, + 46 + ], + [ + -13, + 66 + ], + [ + -16, + 91 + ], + [ + -19, + 119 + ], + [ + -21, + 151 + ], + [ + -22, + 185 + ], + [ + -22, + 219 + ], + [ + -22, + 253 + ], + [ + -21, + 286 + ], + [ + -20, + 317 + ], + [ + -20, + 346 + ], + [ + -21, + 371 + ], + [ + -23, + 393 + ], + [ + -26, + 412 + ], + [ + -29, + 429 + ], + [ + -32, + 443 + ], + [ + -34, + 454 + ], + [ + -36, + 462 + ], + [ + -37, + 467 + ], + [ + -37, + 470 + ], + [ + -37, + 470 + ] + ], + "pressures": [ + 0.343414306640625, + 0.332183837890625, + 0.3483123779296875, + 0.3536834716796875, + 0.3536834716796875, + 0.3551483154296875, + 0.3551483154296875, + 0.3541717529296875, + 0.3502655029296875, + 0.332183837890625, + 0.3033599853515625, + 0.2188568115234375, + 0.1724395751953125, + 0.1699981689453125, + 0.14703369140625, + 0.1245574951171875, + 0.1167449951171875, + 0.1167449951171875, + 0.1191864013671875, + 0.13238525390625, + 0.13238525390625, + 0.02294921875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -37, + 470 + ] + }, + { + "id": "_9IYY7lwrk0YWm6jn6EjU", + "type": "freedraw", + "x": 173.75, + "y": -176.4453125, + "width": 60, + "height": 396, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aR", + "roundness": null, + "seed": 532363315, + "version": 25, + "versionNonce": 1410311421, + "isDeleted": false, + "boundElements": null, + "updated": 1756839547877, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 2 + ], + [ + -1, + 14 + ], + [ + -3, + 27 + ], + [ + -5, + 44 + ], + [ + -8, + 65 + ], + [ + -12, + 90 + ], + [ + -15, + 116 + ], + [ + -19, + 144 + ], + [ + -23, + 174 + ], + [ + -26, + 203 + ], + [ + -29, + 233 + ], + [ + -33, + 260 + ], + [ + -36, + 286 + ], + [ + -39, + 310 + ], + [ + -42, + 331 + ], + [ + -44, + 348 + ], + [ + -47, + 363 + ], + [ + -49, + 375 + ], + [ + -52, + 385 + ], + [ + -54, + 391 + ], + [ + -57, + 395 + ], + [ + -60, + 396 + ], + [ + -60, + 396 + ] + ], + "pressures": [ + 0.2535400390625, + 0.38397216796875, + 0.437713623046875, + 0.451873779296875, + 0.467010498046875, + 0.4782562255859375, + 0.4846038818359375, + 0.4870452880859375, + 0.4870452880859375, + 0.4870452880859375, + 0.4885101318359375, + 0.4885101318359375, + 0.466033935546875, + 0.448944091796875, + 0.447967529296875, + 0.446014404296875, + 0.445526123046875, + 0.443084716796875, + 0.4191436767578125, + 0.37664794921875, + 0.2921295166015625, + 0.085968017578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -60, + 396 + ] + }, + { + "id": "mUaUvKVnkT1YxGeaZCq5U", + "type": "freedraw", + "x": 92.75, + "y": 191.5546875, + "width": 277, + "height": 62, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aS", + "roundness": null, + "seed": 601770429, + "version": 20, + "versionNonce": 1711714685, + "isDeleted": false, + "boundElements": null, + "updated": 1756839548187, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6, + 3 + ], + [ + -14, + 6 + ], + [ + -24, + 9 + ], + [ + -36, + 14 + ], + [ + -64, + 22 + ], + [ + -81, + 26 + ], + [ + -99, + 30 + ], + [ + -141, + 37 + ], + [ + -162, + 40 + ], + [ + -185, + 44 + ], + [ + -207, + 49 + ], + [ + -228, + 54 + ], + [ + -245, + 58 + ], + [ + -259, + 61 + ], + [ + -268, + 62 + ], + [ + -274, + 60 + ], + [ + -277, + 54 + ], + [ + -277, + 54 + ] + ], + "pressures": [ + 0.326812744140625, + 0.440643310546875, + 0.452362060546875, + 0.460662841796875, + 0.4767913818359375, + 0.510986328125, + 0.514892578125, + 0.514892578125, + 0.513916015625, + 0.514404296875, + 0.514892578125, + 0.514892578125, + 0.514892578125, + 0.514404296875, + 0.4948577880859375, + 0.40350341796875, + 0.12945556640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -277, + 54 + ] + }, + { + "id": "CO2u-sk5YR0XqPrltWp0S", + "type": "freedraw", + "x": -627.25, + "y": -179.4453125, + "width": 31, + "height": 390, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aT", + "roundness": null, + "seed": 1272723005, + "version": 26, + "versionNonce": 717882141, + "isDeleted": false, + "boundElements": null, + "updated": 1756839549021, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + -1 + ], + [ + 2, + -2 + ], + [ + 4, + -3 + ], + [ + 5, + -3 + ], + [ + 5, + -1 + ], + [ + 6, + 6 + ], + [ + 8, + 20 + ], + [ + 10, + 41 + ], + [ + 13, + 67 + ], + [ + 15, + 98 + ], + [ + 17, + 129 + ], + [ + 18, + 161 + ], + [ + 19, + 192 + ], + [ + 20, + 223 + ], + [ + 21, + 252 + ], + [ + 22, + 278 + ], + [ + 23, + 302 + ], + [ + 24, + 323 + ], + [ + 25, + 342 + ], + [ + 26, + 358 + ], + [ + 28, + 371 + ], + [ + 30, + 381 + ], + [ + 31, + 387 + ], + [ + 31, + 387 + ] + ], + "pressures": [ + 0.2931060791015625, + 0.2984771728515625, + 0.3009185791015625, + 0.3478240966796875, + 0.38641357421875, + 0.4181671142578125, + 0.4298858642578125, + 0.4303741455078125, + 0.4303741455078125, + 0.4284210205078125, + 0.4240264892578125, + 0.4157257080078125, + 0.40399169921875, + 0.39178466796875, + 0.39129638671875, + 0.38739013671875, + 0.3732147216796875, + 0.3468475341796875, + 0.3028717041015625, + 0.2550048828125, + 0.2232513427734375, + 0.15289306640625, + 0.064971923828125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 31, + 387 + ] + }, + { + "id": "z3sDrcquj5KIFN-_2n5J2", + "type": "freedraw", + "x": -625.25, + "y": -186.4453125, + "width": 358, + "height": 462, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aU", + "roundness": null, + "seed": 670015453, + "version": 82, + "versionNonce": 1758894909, + "isDeleted": false, + "boundElements": null, + "updated": 1756839549821, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4, + -4 + ], + [ + 8, + -7 + ], + [ + 13, + -10 + ], + [ + 22, + -12 + ], + [ + 31, + -15 + ], + [ + 44, + -17 + ], + [ + 58, + -19 + ], + [ + 73, + -19 + ], + [ + 89, + -18 + ], + [ + 107, + -15 + ], + [ + 124, + -10 + ], + [ + 143, + -6 + ], + [ + 162, + -1 + ], + [ + 182, + 3 + ], + [ + 203, + 6 + ], + [ + 223, + 9 + ], + [ + 243, + 11 + ], + [ + 262, + 12 + ], + [ + 280, + 12 + ], + [ + 296, + 12 + ], + [ + 309, + 11 + ], + [ + 320, + 10 + ], + [ + 328, + 10 + ], + [ + 333, + 10 + ], + [ + 335, + 10 + ], + [ + 336, + 10 + ], + [ + 336, + 11 + ], + [ + 335, + 12 + ], + [ + 335, + 15 + ], + [ + 334, + 17 + ], + [ + 333, + 21 + ], + [ + 332, + 24 + ], + [ + 332, + 29 + ], + [ + 331, + 36 + ], + [ + 331, + 46 + ], + [ + 331, + 59 + ], + [ + 332, + 73 + ], + [ + 333, + 90 + ], + [ + 334, + 108 + ], + [ + 336, + 129 + ], + [ + 339, + 149 + ], + [ + 342, + 170 + ], + [ + 346, + 190 + ], + [ + 350, + 209 + ], + [ + 354, + 227 + ], + [ + 356, + 243 + ], + [ + 358, + 257 + ], + [ + 358, + 283 + ], + [ + 358, + 294 + ], + [ + 357, + 304 + ], + [ + 355, + 313 + ], + [ + 353, + 320 + ], + [ + 351, + 326 + ], + [ + 349, + 331 + ], + [ + 346, + 335 + ], + [ + 343, + 338 + ], + [ + 339, + 341 + ], + [ + 333, + 343 + ], + [ + 325, + 346 + ], + [ + 314, + 350 + ], + [ + 301, + 354 + ], + [ + 286, + 360 + ], + [ + 270, + 366 + ], + [ + 253, + 374 + ], + [ + 236, + 382 + ], + [ + 220, + 390 + ], + [ + 204, + 398 + ], + [ + 188, + 406 + ], + [ + 170, + 413 + ], + [ + 152, + 419 + ], + [ + 133, + 425 + ], + [ + 113, + 429 + ], + [ + 95, + 433 + ], + [ + 80, + 437 + ], + [ + 68, + 440 + ], + [ + 60, + 442 + ], + [ + 56, + 443 + ], + [ + 56, + 442 + ], + [ + 59, + 439 + ], + [ + 59, + 439 + ] + ], + "pressures": [ + 0.331695556640625, + 0.3536834716796875, + 0.3634490966796875, + 0.3717498779296875, + 0.37518310546875, + 0.37762451171875, + 0.37811279296875, + 0.37908935546875, + 0.38153076171875, + 0.38934326171875, + 0.40203857421875, + 0.4127960205078125, + 0.4191436767578125, + 0.4240264892578125, + 0.4269561767578125, + 0.4269561767578125, + 0.4245147705078125, + 0.4171905517578125, + 0.40447998046875, + 0.38446044921875, + 0.3610076904296875, + 0.3448944091796875, + 0.331207275390625, + 0.327301025390625, + 0.327301025390625, + 0.37615966796875, + 0.4250030517578125, + 0.445526123046875, + 0.447967529296875, + 0.448455810546875, + 0.449432373046875, + 0.456268310546875, + 0.462127685546875, + 0.464569091796875, + 0.4704437255859375, + 0.4743499755859375, + 0.4787445068359375, + 0.4787445068359375, + 0.4704437255859375, + 0.451873779296875, + 0.4298858642578125, + 0.4123077392578125, + 0.39813232421875, + 0.3678436279296875, + 0.3546600341796875, + 0.3468475341796875, + 0.3468475341796875, + 0.3536834716796875, + 0.3639373779296875, + 0.3737030029296875, + 0.38446044921875, + 0.39764404296875, + 0.4132843017578125, + 0.4254913330078125, + 0.4254913330078125, + 0.4235382080078125, + 0.4181671142578125, + 0.4123077392578125, + 0.40155029296875, + 0.38836669921875, + 0.38739013671875, + 0.38739013671875, + 0.39569091796875, + 0.4152374267578125, + 0.438690185546875, + 0.462615966796875, + 0.4743499755859375, + 0.4763031005859375, + 0.4763031005859375, + 0.467010498046875, + 0.446502685546875, + 0.4342803955078125, + 0.4303741455078125, + 0.4269561767578125, + 0.4259796142578125, + 0.4206085205078125, + 0.39813232421875, + 0.2711181640625, + 0.1123504638671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 59, + 439 + ] + }, + { + "id": "Mm8FpYQaEOqGbt66MfPSK", + "type": "freedraw", + "x": -499.25, + "y": -174.4453125, + "width": 84, + "height": 101, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aV", + "roundness": null, + "seed": 2072817661, + "version": 45, + "versionNonce": 790821395, + "isDeleted": false, + "boundElements": null, + "updated": 1756839550673, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6, + 1 + ], + [ + -13, + 3 + ], + [ + -21, + 7 + ], + [ + -25, + 10 + ], + [ + -29, + 14 + ], + [ + -34, + 17 + ], + [ + -39, + 21 + ], + [ + -44, + 25 + ], + [ + -50, + 30 + ], + [ + -55, + 35 + ], + [ + -60, + 40 + ], + [ + -63, + 43 + ], + [ + -64, + 45 + ], + [ + -63, + 46 + ], + [ + -60, + 46 + ], + [ + -56, + 45 + ], + [ + -51, + 44 + ], + [ + -46, + 43 + ], + [ + -40, + 42 + ], + [ + -34, + 41 + ], + [ + -28, + 41 + ], + [ + -22, + 42 + ], + [ + -15, + 44 + ], + [ + -7, + 47 + ], + [ + 0, + 52 + ], + [ + 7, + 57 + ], + [ + 13, + 62 + ], + [ + 17, + 66 + ], + [ + 20, + 71 + ], + [ + 20, + 76 + ], + [ + 18, + 80 + ], + [ + 14, + 85 + ], + [ + 7, + 90 + ], + [ + -1, + 94 + ], + [ + -10, + 97 + ], + [ + -19, + 99 + ], + [ + -27, + 100 + ], + [ + -35, + 101 + ], + [ + -43, + 100 + ], + [ + -49, + 98 + ], + [ + -54, + 96 + ], + [ + -58, + 92 + ], + [ + -58, + 92 + ] + ], + "pressures": [ + 0.3439178466796875, + 0.38153076171875, + 0.4333038330078125, + 0.441131591796875, + 0.442108154296875, + 0.445526123046875, + 0.447479248046875, + 0.447479248046875, + 0.446990966796875, + 0.446990966796875, + 0.449920654296875, + 0.458221435546875, + 0.461151123046875, + 0.444061279296875, + 0.440643310546875, + 0.440643310546875, + 0.441619873046875, + 0.442108154296875, + 0.442108154296875, + 0.443084716796875, + 0.444061279296875, + 0.444549560546875, + 0.445037841796875, + 0.445037841796875, + 0.445037841796875, + 0.443084716796875, + 0.438690185546875, + 0.4250030517578125, + 0.4230499267578125, + 0.4230499267578125, + 0.4323272705078125, + 0.445526123046875, + 0.465545654296875, + 0.4880218505859375, + 0.508056640625, + 0.514404296875, + 0.514404296875, + 0.512939453125, + 0.4958343505859375, + 0.458221435546875, + 0.38055419921875, + 0.2349700927734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -58, + 92 + ] + }, + { + "id": "ugq6b1dhSrCDRh4Sp3yA7", + "type": "freedraw", + "x": -462.25, + "y": -145.4453125, + "width": 3, + "height": 2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aW", + "roundness": null, + "seed": 862179667, + "version": 6, + "versionNonce": 361057843, + "isDeleted": false, + "boundElements": null, + "updated": 1756839550922, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 1 + ], + [ + -3, + 2 + ], + [ + -2, + 2 + ], + [ + -2, + 2 + ] + ], + "pressures": [ + 0.505615234375, + 0.4875335693359375, + 0.4850921630859375, + 0.2291107177734375, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2, + 2 + ] + }, + { + "id": "DKZk3UP0HGtgREgXwhVJd", + "type": "freedraw", + "x": -453.25, + "y": -100.4453125, + "width": 2, + "height": 3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aX", + "roundness": null, + "seed": 706190707, + "version": 7, + "versionNonce": 128840797, + "isDeleted": false, + "boundElements": null, + "updated": 1756839551162, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 1, + -3 + ], + [ + 1, + -3 + ] + ], + "pressures": [ + 0.4767913818359375, + 0.4806976318359375, + 0.3116607666015625, + 0.1235809326171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 1, + -3 + ] + }, + { + "id": "sPLY0EfNEP6PaBecg1prZ", + "type": "freedraw", + "x": -429.25, + "y": -169.4453125, + "width": 49, + "height": 78, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aY", + "roundness": null, + "seed": 2063089949, + "version": 41, + "versionNonce": 1747825587, + "isDeleted": false, + "boundElements": null, + "updated": 1756839551715, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + -1 + ], + [ + 3, + -2 + ], + [ + 6, + -3 + ], + [ + 11, + -4 + ], + [ + 18, + -4 + ], + [ + 24, + -4 + ], + [ + 31, + -2 + ], + [ + 38, + 0 + ], + [ + 43, + 4 + ], + [ + 47, + 8 + ], + [ + 49, + 12 + ], + [ + 49, + 16 + ], + [ + 47, + 20 + ], + [ + 43, + 25 + ], + [ + 39, + 30 + ], + [ + 28, + 37 + ], + [ + 24, + 39 + ], + [ + 21, + 40 + ], + [ + 19, + 41 + ], + [ + 18, + 41 + ], + [ + 18, + 42 + ], + [ + 20, + 43 + ], + [ + 22, + 44 + ], + [ + 26, + 46 + ], + [ + 31, + 48 + ], + [ + 35, + 51 + ], + [ + 39, + 53 + ], + [ + 42, + 55 + ], + [ + 44, + 56 + ], + [ + 45, + 58 + ], + [ + 43, + 63 + ], + [ + 38, + 66 + ], + [ + 32, + 69 + ], + [ + 24, + 71 + ], + [ + 17, + 73 + ], + [ + 10, + 74 + ], + [ + 6, + 74 + ], + [ + 2, + 72 + ], + [ + 2, + 72 + ] + ], + "pressures": [ + 0.1055145263671875, + 0.3688201904296875, + 0.3688201904296875, + 0.4084014892578125, + 0.438690185546875, + 0.451873779296875, + 0.455291748046875, + 0.457733154296875, + 0.457733154296875, + 0.455780029296875, + 0.447479248046875, + 0.441619873046875, + 0.441619873046875, + 0.446014404296875, + 0.462615966796875, + 0.4865570068359375, + 0.514404296875, + 0.519775390625, + 0.519775390625, + 0.516357421875, + 0.4987640380859375, + 0.4699554443359375, + 0.4699554443359375, + 0.4709320068359375, + 0.4714202880859375, + 0.4719085693359375, + 0.4733734130859375, + 0.4743499755859375, + 0.4743499755859375, + 0.4714202880859375, + 0.4714202880859375, + 0.4816741943359375, + 0.4909515380859375, + 0.4924163818359375, + 0.4924163818359375, + 0.4767913818359375, + 0.4215850830078125, + 0.2408294677734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 2, + 72 + ] + }, + { + "id": "7UXMm3v-ymJmke3gsTq8f", + "type": "freedraw", + "x": -356.25, + "y": -153.4453125, + "width": 52, + "height": 62, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aZ", + "roundness": null, + "seed": 1459921651, + "version": 33, + "versionNonce": 783802301, + "isDeleted": false, + "boundElements": null, + "updated": 1756839552102, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4, + 0 + ], + [ + -7, + 0 + ], + [ + -13, + 2 + ], + [ + -17, + 4 + ], + [ + -21, + 9 + ], + [ + -23, + 15 + ], + [ + -25, + 23 + ], + [ + -24, + 31 + ], + [ + -21, + 39 + ], + [ + -16, + 46 + ], + [ + -11, + 51 + ], + [ + -4, + 56 + ], + [ + 2, + 59 + ], + [ + 8, + 61 + ], + [ + 13, + 62 + ], + [ + 17, + 61 + ], + [ + 20, + 59 + ], + [ + 23, + 56 + ], + [ + 25, + 52 + ], + [ + 27, + 47 + ], + [ + 27, + 41 + ], + [ + 25, + 34 + ], + [ + 23, + 27 + ], + [ + 19, + 21 + ], + [ + 14, + 15 + ], + [ + 9, + 10 + ], + [ + 3, + 8 + ], + [ + -4, + 7 + ], + [ + -11, + 10 + ], + [ + -17, + 15 + ], + [ + -17, + 15 + ] + ], + "pressures": [ + 0.4162139892578125, + 0.4850921630859375, + 0.4850921630859375, + 0.4885101318359375, + 0.4689788818359375, + 0.457733154296875, + 0.450408935546875, + 0.444061279296875, + 0.4328155517578125, + 0.4196319580078125, + 0.4103546142578125, + 0.40155029296875, + 0.38983154296875, + 0.38690185546875, + 0.38592529296875, + 0.38446044921875, + 0.38446044921875, + 0.38934326171875, + 0.39813232421875, + 0.4074249267578125, + 0.4206085205078125, + 0.439666748046875, + 0.452362060546875, + 0.460174560546875, + 0.460174560546875, + 0.457244873046875, + 0.4328155517578125, + 0.37713623046875, + 0.2750244140625, + 0.064971923828125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -17, + 15 + ] + }, + { + "id": "KqfitK3mpCy9PwSJiNeIr", + "type": "freedraw", + "x": -452.25, + "y": -61.4453125, + "width": 13, + "height": 61, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aa", + "roundness": null, + "seed": 474403965, + "version": 16, + "versionNonce": 234669949, + "isDeleted": false, + "boundElements": null, + "updated": 1756839552409, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 1 + ], + [ + -3, + 4 + ], + [ + -3, + 7 + ], + [ + -3, + 12 + ], + [ + -1, + 17 + ], + [ + 1, + 24 + ], + [ + 3, + 31 + ], + [ + 6, + 37 + ], + [ + 8, + 44 + ], + [ + 9, + 50 + ], + [ + 10, + 55 + ], + [ + 10, + 59 + ], + [ + 9, + 61 + ], + [ + 9, + 61 + ] + ], + "pressures": [ + 0.3062896728515625, + 0.454803466796875, + 0.455291748046875, + 0.461151123046875, + 0.4753265380859375, + 0.4806976318359375, + 0.4806976318359375, + 0.4723968505859375, + 0.452850341796875, + 0.4186553955078125, + 0.3693084716796875, + 0.2862701416015625, + 0.1587677001953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 9, + 61 + ] + }, + { + "id": "gKz07tlp7pZ9xiKJllMT7", + "type": "freedraw", + "x": -488.25, + "y": -13.4453125, + "width": 82, + "height": 69, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ab", + "roundness": null, + "seed": 1908722749, + "version": 43, + "versionNonce": 1519382579, + "isDeleted": false, + "boundElements": null, + "updated": 1756839552852, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 1 + ], + [ + 0, + 4 + ], + [ + 3, + 9 + ], + [ + 8, + 16 + ], + [ + 15, + 24 + ], + [ + 22, + 32 + ], + [ + 29, + 39 + ], + [ + 35, + 45 + ], + [ + 41, + 50 + ], + [ + 46, + 53 + ], + [ + 49, + 55 + ], + [ + 51, + 56 + ], + [ + 53, + 55 + ], + [ + 55, + 54 + ], + [ + 56, + 51 + ], + [ + 58, + 47 + ], + [ + 60, + 40 + ], + [ + 62, + 33 + ], + [ + 65, + 25 + ], + [ + 68, + 17 + ], + [ + 71, + 10 + ], + [ + 74, + 4 + ], + [ + 77, + -1 + ], + [ + 79, + -5 + ], + [ + 80, + -8 + ], + [ + 79, + -11 + ], + [ + 78, + -12 + ], + [ + 75, + -13 + ], + [ + 70, + -13 + ], + [ + 65, + -12 + ], + [ + 59, + -11 + ], + [ + 53, + -10 + ], + [ + 46, + -7 + ], + [ + 40, + -5 + ], + [ + 34, + -2 + ], + [ + 20, + 5 + ], + [ + 13, + 8 + ], + [ + 7, + 11 + ], + [ + 2, + 13 + ], + [ + 2, + 13 + ] + ], + "pressures": [ + 0.4191436767578125, + 0.456756591796875, + 0.4694671630859375, + 0.4738616943359375, + 0.4743499755859375, + 0.4743499755859375, + 0.4743499755859375, + 0.4709320068359375, + 0.457244873046875, + 0.441619873046875, + 0.4254913330078125, + 0.4147491455078125, + 0.4093780517578125, + 0.4074249267578125, + 0.4074249267578125, + 0.4152374267578125, + 0.4210968017578125, + 0.4323272705078125, + 0.439178466796875, + 0.442108154296875, + 0.442108154296875, + 0.442108154296875, + 0.440155029296875, + 0.4323272705078125, + 0.4191436767578125, + 0.39959716796875, + 0.39129638671875, + 0.39129638671875, + 0.40008544921875, + 0.4142608642578125, + 0.4333038330078125, + 0.452850341796875, + 0.467010498046875, + 0.4792327880859375, + 0.4865570068359375, + 0.4865570068359375, + 0.4787445068359375, + 0.40106201171875, + 0.328277587890625, + 0.215423583984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 2, + 13 + ] + }, + { + "id": "b85bIxXjPllINaCZSdWdD", + "type": "freedraw", + "x": -440.25, + "y": 69.5546875, + "width": 78, + "height": 103, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ac", + "roundness": null, + "seed": 1113702259, + "version": 50, + "versionNonce": 631164947, + "isDeleted": false, + "boundElements": null, + "updated": 1756839553549, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + -1 + ], + [ + -8, + -5 + ], + [ + -13, + -9 + ], + [ + -19, + -12 + ], + [ + -27, + -15 + ], + [ + -35, + -16 + ], + [ + -43, + -17 + ], + [ + -51, + -15 + ], + [ + -58, + -13 + ], + [ + -65, + -10 + ], + [ + -71, + -6 + ], + [ + -75, + -2 + ], + [ + -78, + 2 + ], + [ + -78, + 6 + ], + [ + -76, + 10 + ], + [ + -71, + 15 + ], + [ + -63, + 21 + ], + [ + -53, + 26 + ], + [ + -42, + 31 + ], + [ + -31, + 37 + ], + [ + -21, + 42 + ], + [ + -12, + 48 + ], + [ + -6, + 54 + ], + [ + -2, + 60 + ], + [ + -2, + 66 + ], + [ + -4, + 72 + ], + [ + -9, + 77 + ], + [ + -16, + 82 + ], + [ + -23, + 85 + ], + [ + -30, + 86 + ], + [ + -38, + 86 + ], + [ + -46, + 83 + ], + [ + -53, + 78 + ], + [ + -59, + 72 + ], + [ + -64, + 63 + ], + [ + -67, + 54 + ], + [ + -67, + 45 + ], + [ + -66, + 37 + ], + [ + -63, + 30 + ], + [ + -59, + 24 + ], + [ + -53, + 19 + ], + [ + -47, + 14 + ], + [ + -40, + 9 + ], + [ + -34, + 4 + ], + [ + -28, + 0 + ], + [ + -25, + -3 + ], + [ + -25, + -3 + ] + ], + "pressures": [ + 0.39129638671875, + 0.456756591796875, + 0.459197998046875, + 0.459197998046875, + 0.456756591796875, + 0.454803466796875, + 0.454803466796875, + 0.456756591796875, + 0.460174560546875, + 0.464569091796875, + 0.467498779296875, + 0.4714202880859375, + 0.4738616943359375, + 0.4753265380859375, + 0.4753265380859375, + 0.4723968505859375, + 0.466033935546875, + 0.457733154296875, + 0.445526123046875, + 0.4308624267578125, + 0.4069366455078125, + 0.38006591796875, + 0.336090087890625, + 0.2569580078125, + 0.14117431640625, + 0.0512847900390625, + 0.0512847900390625, + 0.199310302734375, + 0.3053131103515625, + 0.37762451171875, + 0.4118194580078125, + 0.4181671142578125, + 0.4181671142578125, + 0.4176788330078125, + 0.4171905517578125, + 0.4162139892578125, + 0.4127960205078125, + 0.39324951171875, + 0.37860107421875, + 0.3722381591796875, + 0.3712615966796875, + 0.3712615966796875, + 0.3727264404296875, + 0.37518310546875, + 0.37518310546875, + 0.3629608154296875, + 0.2452239990234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -25, + -3 + ] + }, + { + "id": "ThHoiSqAhW_cKYivJuQEy", + "type": "freedraw", + "x": -411.25, + "y": 51.5546875, + "width": 0, + "height": 7, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ad", + "roundness": null, + "seed": 291645267, + "version": 6, + "versionNonce": 366699571, + "isDeleted": false, + "boundElements": null, + "updated": 1756839553930, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 0, + 3 + ], + [ + 0, + 7 + ], + [ + 0, + 7 + ] + ], + "pressures": [ + 0.446990966796875, + 0.3571014404296875, + 0.0459136962890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0, + 7 + ] + }, + { + "id": "K-3xBrzXzoxyzI38kT2kM", + "type": "freedraw", + "x": -411.25, + "y": 102.5546875, + "width": 5, + "height": 11, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ae", + "roundness": null, + "seed": 274740083, + "version": 10, + "versionNonce": 108178323, + "isDeleted": false, + "boundElements": null, + "updated": 1756839554124, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 2 + ], + [ + -1, + 4 + ], + [ + -1, + 6 + ], + [ + 0, + 8 + ], + [ + 1, + 10 + ], + [ + 3, + 11 + ], + [ + 4, + 11 + ], + [ + 4, + 11 + ] + ], + "pressures": [ + 0.4293975830078125, + 0.4699554443359375, + 0.4699554443359375, + 0.465057373046875, + 0.4293975830078125, + 0.337554931640625, + 0.12847900390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 4, + 11 + ] + }, + { + "id": "ZmQUmn3CZfD5Etsw1SYcN", + "type": "freedraw", + "x": -372.25, + "y": 51.5546875, + "width": 47, + "height": 67, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "af", + "roundness": null, + "seed": 76882643, + "version": 36, + "versionNonce": 487769107, + "isDeleted": false, + "boundElements": null, + "updated": 1756839554542, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -3, + 0 + ], + [ + -4, + 1 + ], + [ + -6, + 4 + ], + [ + -8, + 8 + ], + [ + -10, + 14 + ], + [ + -12, + 22 + ], + [ + -12, + 31 + ], + [ + -12, + 40 + ], + [ + -9, + 48 + ], + [ + -6, + 55 + ], + [ + -3, + 60 + ], + [ + 2, + 64 + ], + [ + 6, + 66 + ], + [ + 11, + 67 + ], + [ + 15, + 66 + ], + [ + 19, + 64 + ], + [ + 22, + 61 + ], + [ + 25, + 56 + ], + [ + 27, + 51 + ], + [ + 28, + 46 + ], + [ + 28, + 39 + ], + [ + 28, + 33 + ], + [ + 26, + 26 + ], + [ + 24, + 19 + ], + [ + 21, + 13 + ], + [ + 17, + 9 + ], + [ + 12, + 6 + ], + [ + 6, + 4 + ], + [ + -1, + 5 + ], + [ + -7, + 7 + ], + [ + -14, + 10 + ], + [ + -19, + 15 + ], + [ + -19, + 15 + ] + ], + "pressures": [ + 0.4162139892578125, + 0.4802093505859375, + 0.4802093505859375, + 0.4802093505859375, + 0.466522216796875, + 0.4337921142578125, + 0.40399169921875, + 0.38641357421875, + 0.37957763671875, + 0.3546600341796875, + 0.3053131103515625, + 0.2510986328125, + 0.212982177734375, + 0.201263427734375, + 0.201263427734375, + 0.206146240234375, + 0.2305755615234375, + 0.2672119140625, + 0.3033599853515625, + 0.327301025390625, + 0.3590545654296875, + 0.38397216796875, + 0.4103546142578125, + 0.4284210205078125, + 0.440155029296875, + 0.440155029296875, + 0.440155029296875, + 0.4367218017578125, + 0.4264678955078125, + 0.40155029296875, + 0.3444061279296875, + 0.2378997802734375, + 0.0483551025390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -19, + 15 + ] + }, + { + "id": "PG_XP9QvL1HNyPqKXggNP", + "type": "freedraw", + "x": -309.25, + "y": 45.5546875, + "width": 40, + "height": 54, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ag", + "roundness": null, + "seed": 191437651, + "version": 31, + "versionNonce": 1273890045, + "isDeleted": false, + "boundElements": null, + "updated": 1756839555238, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 1 + ], + [ + -3, + 2 + ], + [ + -5, + 6 + ], + [ + -7, + 12 + ], + [ + -9, + 19 + ], + [ + -9, + 28 + ], + [ + -9, + 35 + ], + [ + -7, + 42 + ], + [ + -4, + 47 + ], + [ + 0, + 51 + ], + [ + 5, + 53 + ], + [ + 9, + 54 + ], + [ + 13, + 54 + ], + [ + 16, + 52 + ], + [ + 19, + 50 + ], + [ + 21, + 47 + ], + [ + 22, + 42 + ], + [ + 22, + 37 + ], + [ + 21, + 31 + ], + [ + 19, + 25 + ], + [ + 14, + 18 + ], + [ + 10, + 12 + ], + [ + 4, + 8 + ], + [ + -1, + 5 + ], + [ + -5, + 3 + ], + [ + -14, + 6 + ], + [ + -18, + 9 + ], + [ + -18, + 9 + ] + ], + "pressures": [ + 0.335113525390625, + 0.39569091796875, + 0.38787841796875, + 0.37567138671875, + 0.3693084716796875, + 0.3693084716796875, + 0.3732147216796875, + 0.38397216796875, + 0.38739013671875, + 0.38739013671875, + 0.38250732421875, + 0.3712615966796875, + 0.3605194091796875, + 0.3546600341796875, + 0.3546600341796875, + 0.3629608154296875, + 0.37713623046875, + 0.39422607421875, + 0.40594482421875, + 0.4103546142578125, + 0.4230499267578125, + 0.4303741455078125, + 0.437713623046875, + 0.444061279296875, + 0.444061279296875, + 0.443572998046875, + 0.4176788330078125, + 0.1235809326171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -18, + 9 + ] + }, + { + "id": "hCzH6unCiJMTTmp17c6DF", + "type": "freedraw", + "x": -69.25, + "y": -162.4453125, + "width": 77, + "height": 98, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ah", + "roundness": null, + "seed": 1067755965, + "version": 45, + "versionNonce": 703417427, + "isDeleted": false, + "boundElements": null, + "updated": 1756839556736, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -8, + -1 + ], + [ + -11, + -1 + ], + [ + -15, + -1 + ], + [ + -20, + -2 + ], + [ + -26, + -2 + ], + [ + -33, + -2 + ], + [ + -41, + -2 + ], + [ + -49, + -1 + ], + [ + -58, + 1 + ], + [ + -66, + 4 + ], + [ + -72, + 7 + ], + [ + -76, + 10 + ], + [ + -77, + 14 + ], + [ + -77, + 18 + ], + [ + -75, + 23 + ], + [ + -71, + 28 + ], + [ + -65, + 32 + ], + [ + -58, + 34 + ], + [ + -51, + 36 + ], + [ + -43, + 38 + ], + [ + -36, + 39 + ], + [ + -30, + 40 + ], + [ + -24, + 41 + ], + [ + -18, + 44 + ], + [ + -13, + 48 + ], + [ + -8, + 54 + ], + [ + -4, + 60 + ], + [ + -2, + 67 + ], + [ + -2, + 74 + ], + [ + -5, + 81 + ], + [ + -10, + 86 + ], + [ + -17, + 91 + ], + [ + -25, + 94 + ], + [ + -34, + 96 + ], + [ + -44, + 96 + ], + [ + -52, + 95 + ], + [ + -59, + 94 + ], + [ + -65, + 91 + ], + [ + -68, + 86 + ], + [ + -70, + 81 + ], + [ + -70, + 76 + ], + [ + -69, + 72 + ], + [ + -69, + 72 + ] + ], + "pressures": [ + 0.39910888671875, + 0.460662841796875, + 0.4870452880859375, + 0.4924163818359375, + 0.4938812255859375, + 0.4938812255859375, + 0.4938812255859375, + 0.4948577880859375, + 0.4968109130859375, + 0.502197265625, + 0.504638671875, + 0.507568359375, + 0.507568359375, + 0.504638671875, + 0.4982757568359375, + 0.4938812255859375, + 0.4904632568359375, + 0.4860687255859375, + 0.4855804443359375, + 0.4836273193359375, + 0.4831390380859375, + 0.4826507568359375, + 0.4821624755859375, + 0.4806976318359375, + 0.4763031005859375, + 0.460174560546875, + 0.441131591796875, + 0.4279327392578125, + 0.4279327392578125, + 0.4328155517578125, + 0.450897216796875, + 0.4826507568359375, + 0.510986328125, + 0.5324859619140625, + 0.5461578369140625, + 0.5485992431640625, + 0.5485992431640625, + 0.5373687744140625, + 0.503173828125, + 0.4347686767578125, + 0.326812744140625, + 0.15338134765625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -69, + 72 + ] + }, + { + "id": "Cv5wHu16UtDpuALd_eOIR", + "type": "freedraw", + "x": -26.25, + "y": -140.4453125, + "width": 2, + "height": 2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ai", + "roundness": null, + "seed": 1424921491, + "version": 5, + "versionNonce": 934412253, + "isDeleted": false, + "boundElements": null, + "updated": 1756839557183, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 2 + ], + [ + -2, + 2 + ] + ], + "pressures": [ + 0.2774658203125, + 0.38153076171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2, + 2 + ] + }, + { + "id": "V4RXm6xdMb7Xrz-wfVAv9", + "type": "freedraw", + "x": -32.25, + "y": -98.4453125, + "width": 2, + "height": 7, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aj", + "roundness": null, + "seed": 1930390685, + "version": 8, + "versionNonce": 1810478621, + "isDeleted": false, + "boundElements": null, + "updated": 1756839557356, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + -1 + ], + [ + -2, + -2 + ], + [ + -2, + -4 + ], + [ + -2, + -6 + ], + [ + -1, + -7 + ], + [ + -1, + -7 + ] + ], + "pressures": [ + 0.4113311767578125, + 0.4093780517578125, + 0.38543701171875, + 0.2955474853515625, + 0.1573028564453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1, + -7 + ] + }, + { + "id": "rsOFUoS76rf8hEfgd7YlR", + "type": "freedraw", + "x": 14.75, + "y": -149.4453125, + "width": 51, + "height": 65, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ak", + "roundness": null, + "seed": 1425969885, + "version": 43, + "versionNonce": 653559699, + "isDeleted": false, + "boundElements": null, + "updated": 1756839557844, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1 + ], + [ + 1, + -3 + ], + [ + 3, + -4 + ], + [ + 6, + -6 + ], + [ + 10, + -7 + ], + [ + 18, + -6 + ], + [ + 22, + -4 + ], + [ + 26, + -1 + ], + [ + 30, + 2 + ], + [ + 32, + 6 + ], + [ + 33, + 9 + ], + [ + 33, + 13 + ], + [ + 31, + 16 + ], + [ + 29, + 19 + ], + [ + 27, + 21 + ], + [ + 25, + 22 + ], + [ + 25, + 23 + ], + [ + 26, + 23 + ], + [ + 28, + 24 + ], + [ + 30, + 26 + ], + [ + 33, + 28 + ], + [ + 36, + 31 + ], + [ + 38, + 34 + ], + [ + 41, + 37 + ], + [ + 43, + 40 + ], + [ + 46, + 43 + ], + [ + 48, + 45 + ], + [ + 49, + 47 + ], + [ + 50, + 49 + ], + [ + 49, + 51 + ], + [ + 47, + 52 + ], + [ + 43, + 54 + ], + [ + 36, + 56 + ], + [ + 29, + 57 + ], + [ + 21, + 58 + ], + [ + 13, + 58 + ], + [ + 7, + 58 + ], + [ + 2, + 57 + ], + [ + 0, + 55 + ], + [ + -1, + 52 + ], + [ + -1, + 52 + ] + ], + "pressures": [ + 0.4250030517578125, + 0.454315185546875, + 0.4113311767578125, + 0.4127960205078125, + 0.4167022705078125, + 0.4176788330078125, + 0.4176788330078125, + 0.4157257080078125, + 0.4118194580078125, + 0.4118194580078125, + 0.4147491455078125, + 0.4254913330078125, + 0.4284210205078125, + 0.4352569580078125, + 0.448944091796875, + 0.450408935546875, + 0.4191436767578125, + 0.3536834716796875, + 0.2564697265625, + 0.2569580078125, + 0.2608642578125, + 0.2735595703125, + 0.3028717041015625, + 0.330718994140625, + 0.3571014404296875, + 0.37811279296875, + 0.38055419921875, + 0.38055419921875, + 0.3722381591796875, + 0.3688201904296875, + 0.3688201904296875, + 0.37762451171875, + 0.4113311767578125, + 0.454803466796875, + 0.4802093505859375, + 0.4968109130859375, + 0.4968109130859375, + 0.4811859130859375, + 0.4079132080078125, + 0.2491302490234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1, + 52 + ] + }, + { + "id": "_arfT5deCswor4w72ZMID", + "type": "freedraw", + "x": 113.75, + "y": -143.4453125, + "width": 46, + "height": 58, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "al", + "roundness": null, + "seed": 1531969235, + "version": 31, + "versionNonce": 1405659517, + "isDeleted": false, + "boundElements": null, + "updated": 1756839558257, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 0 + ], + [ + -5, + -1 + ], + [ + -8, + -1 + ], + [ + -18, + 2 + ], + [ + -25, + 6 + ], + [ + -31, + 12 + ], + [ + -37, + 18 + ], + [ + -42, + 24 + ], + [ + -44, + 30 + ], + [ + -44, + 36 + ], + [ + -42, + 41 + ], + [ + -33, + 50 + ], + [ + -28, + 53 + ], + [ + -22, + 55 + ], + [ + -17, + 57 + ], + [ + -12, + 57 + ], + [ + -8, + 56 + ], + [ + -4, + 54 + ], + [ + -1, + 52 + ], + [ + 1, + 49 + ], + [ + 2, + 45 + ], + [ + 2, + 40 + ], + [ + 0, + 35 + ], + [ + -3, + 29 + ], + [ + -8, + 24 + ], + [ + -14, + 20 + ], + [ + -20, + 18 + ], + [ + -27, + 18 + ], + [ + -27, + 18 + ] + ], + "pressures": [ + 0.37762451171875, + 0.452850341796875, + 0.459686279296875, + 0.460174560546875, + 0.462127685546875, + 0.4855804443359375, + 0.514892578125, + 0.5329742431640625, + 0.5373687744140625, + 0.5373687744140625, + 0.518310546875, + 0.4958343505859375, + 0.466033935546875, + 0.449920654296875, + 0.4352569580078125, + 0.4230499267578125, + 0.4079132080078125, + 0.40594482421875, + 0.40594482421875, + 0.4118194580078125, + 0.4284210205078125, + 0.452362060546875, + 0.466033935546875, + 0.4694671630859375, + 0.4694671630859375, + 0.450408935546875, + 0.37518310546875, + 0.2203216552734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -27, + 18 + ] + }, + { + "id": "WAOsOUQP-iIAJdNswx2go", + "type": "freedraw", + "x": -2.25, + "y": -70.4453125, + "width": 7, + "height": 66, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "am", + "roundness": null, + "seed": 998256189, + "version": 13, + "versionNonce": 247084499, + "isDeleted": false, + "boundElements": null, + "updated": 1756839559104, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4, + 13 + ], + [ + -5, + 21 + ], + [ + -6, + 30 + ], + [ + -7, + 39 + ], + [ + -7, + 47 + ], + [ + -7, + 53 + ], + [ + -6, + 58 + ], + [ + -5, + 62 + ], + [ + -3, + 64 + ], + [ + -2, + 66 + ], + [ + -2, + 66 + ] + ], + "pressures": [ + 0.4362335205078125, + 0.4816741943359375, + 0.4977874755859375, + 0.5378570556640625, + 0.5539703369140625, + 0.5539703369140625, + 0.5529937744140625, + 0.516357421875, + 0.442596435546875, + 0.2818756103515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2, + 66 + ] + }, + { + "id": "Nw8QTc98wsqTH-ZG9Kc9V", + "type": "freedraw", + "x": -47.25, + "y": -17.4453125, + "width": 87, + "height": 81, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "an", + "roundness": null, + "seed": 1873747219, + "version": 41, + "versionNonce": 34775325, + "isDeleted": false, + "boundElements": null, + "updated": 1756839559545, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + 0, + 1 + ], + [ + 4, + 7 + ], + [ + 9, + 13 + ], + [ + 14, + 20 + ], + [ + 20, + 28 + ], + [ + 25, + 36 + ], + [ + 29, + 43 + ], + [ + 32, + 50 + ], + [ + 34, + 56 + ], + [ + 36, + 60 + ], + [ + 37, + 62 + ], + [ + 38, + 63 + ], + [ + 39, + 61 + ], + [ + 40, + 58 + ], + [ + 42, + 54 + ], + [ + 45, + 48 + ], + [ + 47, + 41 + ], + [ + 50, + 34 + ], + [ + 53, + 28 + ], + [ + 56, + 23 + ], + [ + 60, + 18 + ], + [ + 63, + 14 + ], + [ + 66, + 9 + ], + [ + 70, + 5 + ], + [ + 74, + 1 + ], + [ + 78, + -4 + ], + [ + 81, + -8 + ], + [ + 84, + -11 + ], + [ + 86, + -13 + ], + [ + 86, + -16 + ], + [ + 85, + -17 + ], + [ + 82, + -18 + ], + [ + 77, + -18 + ], + [ + 72, + -17 + ], + [ + 65, + -16 + ], + [ + 58, + -14 + ], + [ + 51, + -12 + ], + [ + 51, + -12 + ] + ], + "pressures": [ + 0.38397216796875, + 0.454315185546875, + 0.468475341796875, + 0.4982757568359375, + 0.500244140625, + 0.500244140625, + 0.4938812255859375, + 0.467987060546875, + 0.4250030517578125, + 0.38983154296875, + 0.3717498779296875, + 0.3624725341796875, + 0.3541717529296875, + 0.318023681640625, + 0.328765869140625, + 0.341461181640625, + 0.3458709716796875, + 0.3478240966796875, + 0.3478240966796875, + 0.3478240966796875, + 0.3492889404296875, + 0.3492889404296875, + 0.3507537841796875, + 0.3507537841796875, + 0.3507537841796875, + 0.3439178466796875, + 0.338043212890625, + 0.338043212890625, + 0.339508056640625, + 0.341461181640625, + 0.342926025390625, + 0.3527069091796875, + 0.3600311279296875, + 0.3614959716796875, + 0.3614959716796875, + 0.3580780029296875, + 0.324859619140625, + 0.2232513427734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 51, + -12 + ] + }, + { + "id": "SnobLp0i5kwKFcp5MF44I", + "type": "freedraw", + "x": -78.25, + "y": 123.5546875, + "width": 63, + "height": 117, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ao", + "roundness": null, + "seed": 539540957, + "version": 57, + "versionNonce": 1576001523, + "isDeleted": false, + "boundElements": null, + "updated": 1756839560561, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2, + -3 + ], + [ + 4, + -5 + ], + [ + 7, + -9 + ], + [ + 10, + -13 + ], + [ + 14, + -17 + ], + [ + 16, + -21 + ], + [ + 18, + -25 + ], + [ + 18, + -29 + ], + [ + 16, + -33 + ], + [ + 12, + -37 + ], + [ + 7, + -42 + ], + [ + 1, + -45 + ], + [ + -6, + -47 + ], + [ + -12, + -48 + ], + [ + -18, + -47 + ], + [ + -23, + -45 + ], + [ + -28, + -41 + ], + [ + -33, + -36 + ], + [ + -36, + -31 + ], + [ + -37, + -24 + ], + [ + -36, + -17 + ], + [ + -34, + -8 + ], + [ + -28, + 0 + ], + [ + -22, + 8 + ], + [ + -14, + 16 + ], + [ + -5, + 23 + ], + [ + 3, + 29 + ], + [ + 11, + 36 + ], + [ + 18, + 42 + ], + [ + 23, + 48 + ], + [ + 25, + 54 + ], + [ + 25, + 59 + ], + [ + 22, + 63 + ], + [ + 17, + 66 + ], + [ + 10, + 68 + ], + [ + 2, + 69 + ], + [ + -6, + 69 + ], + [ + -14, + 68 + ], + [ + -21, + 65 + ], + [ + -28, + 60 + ], + [ + -33, + 53 + ], + [ + -37, + 44 + ], + [ + -38, + 33 + ], + [ + -38, + 23 + ], + [ + -36, + 13 + ], + [ + -31, + 5 + ], + [ + -25, + -2 + ], + [ + -18, + -6 + ], + [ + -11, + -9 + ], + [ + -4, + -11 + ], + [ + 4, + -12 + ], + [ + 11, + -13 + ], + [ + 18, + -14 + ], + [ + 24, + -15 + ], + [ + 24, + -15 + ] + ], + "pressures": [ + 0.15484619140625, + 0.2452239990234375, + 0.2760009765625, + 0.2994537353515625, + 0.318023681640625, + 0.329742431640625, + 0.335601806640625, + 0.3541717529296875, + 0.39080810546875, + 0.4142608642578125, + 0.4245147705078125, + 0.4303741455078125, + 0.445037841796875, + 0.464080810546875, + 0.4763031005859375, + 0.4821624755859375, + 0.4826507568359375, + 0.4826507568359375, + 0.4811859130859375, + 0.4792327880859375, + 0.4728851318359375, + 0.453338623046875, + 0.4274444580078125, + 0.4123077392578125, + 0.4103546142578125, + 0.4088897705078125, + 0.39813232421875, + 0.3717498779296875, + 0.331207275390625, + 0.2525634765625, + 0.2222747802734375, + 0.218353271484375, + 0.218353271484375, + 0.2481536865234375, + 0.3033599853515625, + 0.3605194091796875, + 0.4118194580078125, + 0.450408935546875, + 0.4738616943359375, + 0.4816741943359375, + 0.4816741943359375, + 0.4772796630859375, + 0.457733154296875, + 0.40350341796875, + 0.317047119140625, + 0.2364349365234375, + 0.195892333984375, + 0.191497802734375, + 0.191497802734375, + 0.213958740234375, + 0.2383880615234375, + 0.2520751953125, + 0.2520751953125, + 0.2261810302734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 24, + -15 + ] + }, + { + "id": "Ar2nQOtEBi0xDxGNlR2ny", + "type": "freedraw", + "x": -7.25, + "y": 98.5546875, + "width": 5, + "height": 3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ap", + "roundness": null, + "seed": 651738931, + "version": 7, + "versionNonce": 1802761885, + "isDeleted": false, + "boundElements": null, + "updated": 1756839560871, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + -2, + -1 + ], + [ + -3, + 0 + ], + [ + -5, + 2 + ], + [ + -5, + 2 + ] + ], + "pressures": [ + 0.4196319580078125, + 0.4284210205078125, + 0.333648681640625, + 0.0410308837890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -5, + 2 + ] + }, + { + "id": "tLrLm89Vt5rY0AuSbYc8B", + "type": "freedraw", + "x": -24.25, + "y": 149.5546875, + "width": 6, + "height": 5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aq", + "roundness": null, + "seed": 1582478173, + "version": 9, + "versionNonce": 1363602291, + "isDeleted": false, + "boundElements": null, + "updated": 1756839561068, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 1 + ], + [ + -2, + 1 + ], + [ + -1, + 2 + ], + [ + 1, + 3 + ], + [ + 2, + 4 + ], + [ + 4, + 5 + ], + [ + 4, + 5 + ] + ], + "pressures": [ + 0.448455810546875, + 0.509521484375, + 0.509521484375, + 0.4245147705078125, + 0.2872467041015625, + 0.0351715087890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 4, + 5 + ] + }, + { + "id": "j22Q9zsALi920k2zkzWoH", + "type": "freedraw", + "x": 31.75, + "y": 79.5546875, + "width": 49, + "height": 108, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "au", + "roundness": null, + "seed": 1077422909, + "version": 37, + "versionNonce": 1022297171, + "isDeleted": false, + "boundElements": null, + "updated": 1756839563321, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -1, + -1 + ], + [ + -3, + -1 + ], + [ + -5, + -1 + ], + [ + -9, + 1 + ], + [ + -13, + 5 + ], + [ + -17, + 12 + ], + [ + -22, + 23 + ], + [ + -25, + 36 + ], + [ + -27, + 50 + ], + [ + -28, + 65 + ], + [ + -27, + 77 + ], + [ + -25, + 87 + ], + [ + -21, + 96 + ], + [ + -17, + 101 + ], + [ + -13, + 105 + ], + [ + -8, + 107 + ], + [ + -3, + 107 + ], + [ + 2, + 105 + ], + [ + 7, + 102 + ], + [ + 11, + 96 + ], + [ + 15, + 89 + ], + [ + 18, + 82 + ], + [ + 20, + 74 + ], + [ + 21, + 65 + ], + [ + 19, + 54 + ], + [ + 16, + 44 + ], + [ + 11, + 34 + ], + [ + 6, + 26 + ], + [ + 1, + 20 + ], + [ + -5, + 16 + ], + [ + -10, + 14 + ], + [ + -16, + 14 + ], + [ + -21, + 17 + ], + [ + -21, + 17 + ] + ], + "pressures": [ + 0.2760009765625, + 0.3737030029296875, + 0.40008544921875, + 0.456268310546875, + 0.463104248046875, + 0.463104248046875, + 0.452850341796875, + 0.4342803955078125, + 0.4289093017578125, + 0.4289093017578125, + 0.4347686767578125, + 0.444549560546875, + 0.447967529296875, + 0.447967529296875, + 0.438201904296875, + 0.4220733642578125, + 0.4088897705078125, + 0.39764404296875, + 0.38739013671875, + 0.38055419921875, + 0.37860107421875, + 0.3741912841796875, + 0.3727264404296875, + 0.3727264404296875, + 0.37518310546875, + 0.38397216796875, + 0.39910888671875, + 0.4127960205078125, + 0.4171905517578125, + 0.4171905517578125, + 0.4137725830078125, + 0.38592529296875, + 0.3067779541015625, + 0.074249267578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -21, + 17 + ] + }, + { + "id": "H3BGOnIYoD0l4kw0nkE4H", + "type": "freedraw", + "x": 78.75, + "y": 82.5546875, + "width": 31, + "height": 100, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "av", + "roundness": null, + "seed": 1826769811, + "version": 35, + "versionNonce": 1788978557, + "isDeleted": false, + "boundElements": null, + "updated": 1756839563786, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + -3, + -2 + ], + [ + -5, + -1 + ], + [ + -7, + 2 + ], + [ + -9, + 7 + ], + [ + -11, + 14 + ], + [ + -12, + 23 + ], + [ + -11, + 33 + ], + [ + -10, + 44 + ], + [ + -8, + 53 + ], + [ + -6, + 62 + ], + [ + -3, + 68 + ], + [ + 0, + 73 + ], + [ + 3, + 76 + ], + [ + 5, + 77 + ], + [ + 8, + 78 + ], + [ + 10, + 77 + ], + [ + 11, + 75 + ], + [ + 13, + 72 + ], + [ + 15, + 67 + ], + [ + 16, + 61 + ], + [ + 17, + 54 + ], + [ + 18, + 45 + ], + [ + 19, + 36 + ], + [ + 19, + 26 + ], + [ + 18, + 16 + ], + [ + 17, + 6 + ], + [ + 15, + -3 + ], + [ + 12, + -10 + ], + [ + 8, + -17 + ], + [ + 4, + -21 + ], + [ + -2, + -22 + ], + [ + -2, + -22 + ] + ], + "pressures": [ + 0.316070556640625, + 0.37518310546875, + 0.3673553466796875, + 0.3478240966796875, + 0.329254150390625, + 0.319000244140625, + 0.3014068603515625, + 0.2916412353515625, + 0.2916412353515625, + 0.3033599853515625, + 0.3106842041015625, + 0.3121490478515625, + 0.312652587890625, + 0.313629150390625, + 0.315093994140625, + 0.319488525390625, + 0.327789306640625, + 0.3444061279296875, + 0.3610076904296875, + 0.3634490966796875, + 0.3634490966796875, + 0.3614959716796875, + 0.3614959716796875, + 0.3717498779296875, + 0.38983154296875, + 0.39471435546875, + 0.39520263671875, + 0.39520263671875, + 0.38739013671875, + 0.3527069091796875, + 0.2828521728515625, + 0.14019775390625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -2, + -22 + ] + }, + { + "id": "osVxe_ISo1BcAwJbU8BKf", + "type": "freedraw", + "x": -484.25, + "y": 311.5546875, + "width": 53, + "height": 151, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "aw", + "roundness": null, + "seed": 1967794749, + "version": 38, + "versionNonce": 173063517, + "isDeleted": false, + "boundElements": null, + "updated": 1756839571195, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4, + -1 + ], + [ + -10, + 0 + ], + [ + -14, + 0 + ], + [ + -18, + 2 + ], + [ + -22, + 5 + ], + [ + -27, + 10 + ], + [ + -32, + 18 + ], + [ + -37, + 29 + ], + [ + -42, + 45 + ], + [ + -49, + 81 + ], + [ + -51, + 98 + ], + [ + -52, + 112 + ], + [ + -51, + 124 + ], + [ + -49, + 133 + ], + [ + -46, + 140 + ], + [ + -42, + 145 + ], + [ + -36, + 148 + ], + [ + -30, + 150 + ], + [ + -23, + 149 + ], + [ + -17, + 147 + ], + [ + -10, + 143 + ], + [ + -5, + 136 + ], + [ + -1, + 128 + ], + [ + 1, + 119 + ], + [ + 1, + 110 + ], + [ + -2, + 101 + ], + [ + -7, + 95 + ], + [ + -13, + 91 + ], + [ + -20, + 90 + ], + [ + -26, + 93 + ], + [ + -33, + 98 + ], + [ + -39, + 106 + ], + [ + -43, + 115 + ], + [ + -46, + 123 + ], + [ + -46, + 130 + ], + [ + -46, + 130 + ] + ], + "pressures": [ + 0.318023681640625, + 0.37908935546875, + 0.39276123046875, + 0.39520263671875, + 0.39520263671875, + 0.39520263671875, + 0.39569091796875, + 0.39862060546875, + 0.40496826171875, + 0.4088897705078125, + 0.4171905517578125, + 0.4186553955078125, + 0.4230499267578125, + 0.4230499267578125, + 0.4230499267578125, + 0.4215850830078125, + 0.4201202392578125, + 0.4171905517578125, + 0.4137725830078125, + 0.4074249267578125, + 0.40594482421875, + 0.40203857421875, + 0.40155029296875, + 0.39959716796875, + 0.39666748046875, + 0.39324951171875, + 0.39227294921875, + 0.39227294921875, + 0.39813232421875, + 0.39910888671875, + 0.39910888671875, + 0.39520263671875, + 0.37664794921875, + 0.322418212890625, + 0.212493896484375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -46, + 130 + ] + }, + { + "id": "PliZL3pPRjr7ZcTfXm3hw", + "type": "freedraw", + "x": -436.25, + "y": 372.5546875, + "width": 2, + "height": 6, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ax", + "roundness": null, + "seed": 675072541, + "version": 10, + "versionNonce": 378132477, + "isDeleted": false, + "boundElements": null, + "updated": 1756839571897, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 0 + ], + [ + -2, + -1 + ], + [ + -1, + -1 + ], + [ + -1, + 0 + ], + [ + -1, + 2 + ], + [ + -1, + 5 + ], + [ + -1, + 5 + ] + ], + "pressures": [ + 0.4836273193359375, + 0.5368804931640625, + 0.5368804931640625, + 0.508056640625, + 0.37762451171875, + 0.2515869140625, + 0.13580322265625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -1, + 5 + ] + }, + { + "id": "lBODQJ-3-GBRX6Qd1JlL8", + "type": "freedraw", + "x": -438.25, + "y": 417.5546875, + "width": 1, + "height": 3, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "ay", + "roundness": null, + "seed": 497532093, + "version": 6, + "versionNonce": 429013469, + "isDeleted": false, + "boundElements": null, + "updated": 1756839572071, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + -1 + ], + [ + 0, + -2 + ], + [ + 0, + -3 + ], + [ + 0, + -3 + ] + ], + "pressures": [ + 0.3473358154296875, + 0.502197265625, + 0.2545166015625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0, + -3 + ] + }, + { + "id": "1gNXFYsqrzdbsPcU2ekJo", + "type": "freedraw", + "x": -358.25, + "y": 320.5546875, + "width": 59, + "height": 115, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "az", + "roundness": null, + "seed": 1906910877, + "version": 98, + "versionNonce": 1692663037, + "isDeleted": false, + "boundElements": null, + "updated": 1756839573068, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -2, + 0 + ], + [ + -3, + 0 + ], + [ + -5, + 1 + ], + [ + -7, + 2 + ], + [ + -10, + 6 + ], + [ + -14, + 11 + ], + [ + -18, + 18 + ], + [ + -22, + 26 + ], + [ + -26, + 33 + ], + [ + -30, + 41 + ], + [ + -32, + 47 + ], + [ + -34, + 51 + ], + [ + -34, + 55 + ], + [ + -34, + 57 + ], + [ + -33, + 58 + ], + [ + -32, + 59 + ], + [ + -29, + 59 + ], + [ + -26, + 59 + ], + [ + -23, + 58 + ], + [ + -19, + 57 + ], + [ + -15, + 55 + ], + [ + -12, + 54 + ], + [ + -8, + 52 + ], + [ + -5, + 51 + ], + [ + -1, + 51 + ], + [ + 2, + 50 + ], + [ + 5, + 51 + ], + [ + 8, + 52 + ], + [ + 10, + 53 + ], + [ + 11, + 54 + ], + [ + 12, + 56 + ], + [ + 12, + 58 + ], + [ + 11, + 62 + ], + [ + 10, + 66 + ], + [ + 8, + 69 + ], + [ + 7, + 72 + ], + [ + 6, + 74 + ], + [ + 6, + 75 + ], + [ + 7, + 77 + ], + [ + 8, + 77 + ], + [ + 9, + 77 + ], + [ + 10, + 76 + ], + [ + 11, + 76 + ], + [ + 12, + 75 + ], + [ + 13, + 74 + ], + [ + 14, + 73 + ], + [ + 15, + 72 + ], + [ + 15, + 70 + ], + [ + 17, + 68 + ], + [ + 17, + 65 + ], + [ + 18, + 63 + ], + [ + 19, + 61 + ], + [ + 19, + 60 + ], + [ + 19, + 59 + ], + [ + 19, + 58 + ], + [ + 19, + 56 + ], + [ + 20, + 54 + ], + [ + 20, + 51 + ], + [ + 21, + 48 + ], + [ + 21, + 45 + ], + [ + 21, + 43 + ], + [ + 22, + 40 + ], + [ + 22, + 37 + ], + [ + 22, + 36 + ], + [ + 22, + 34 + ], + [ + 23, + 33 + ], + [ + 23, + 32 + ], + [ + 23, + 31 + ], + [ + 23, + 30 + ], + [ + 24, + 28 + ], + [ + 24, + 27 + ], + [ + 24, + 25 + ], + [ + 25, + 24 + ], + [ + 25, + 23 + ], + [ + 25, + 22 + ], + [ + 25, + 23 + ], + [ + 25, + 24 + ], + [ + 25, + 26 + ], + [ + 25, + 28 + ], + [ + 24, + 33 + ], + [ + 23, + 39 + ], + [ + 22, + 48 + ], + [ + 22, + 58 + ], + [ + 21, + 70 + ], + [ + 20, + 81 + ], + [ + 20, + 92 + ], + [ + 19, + 100 + ], + [ + 19, + 107 + ], + [ + 19, + 111 + ], + [ + 19, + 113 + ], + [ + 19, + 114 + ], + [ + 19, + 115 + ], + [ + 20, + 114 + ], + [ + 21, + 113 + ], + [ + 21, + 113 + ] + ], + "pressures": [ + 0.313140869140625, + 0.39520263671875, + 0.438201904296875, + 0.462615966796875, + 0.467987060546875, + 0.467987060546875, + 0.467987060546875, + 0.467987060546875, + 0.4704437255859375, + 0.4714202880859375, + 0.4714202880859375, + 0.4709320068359375, + 0.4709320068359375, + 0.4694671630859375, + 0.465057373046875, + 0.456756591796875, + 0.442108154296875, + 0.4342803955078125, + 0.4342803955078125, + 0.4342803955078125, + 0.4352569580078125, + 0.438690185546875, + 0.439666748046875, + 0.442108154296875, + 0.443084716796875, + 0.443084716796875, + 0.442596435546875, + 0.441619873046875, + 0.441131591796875, + 0.438690185546875, + 0.4279327392578125, + 0.4201202392578125, + 0.4201202392578125, + 0.4210968017578125, + 0.4225616455078125, + 0.4264678955078125, + 0.4357452392578125, + 0.4362335205078125, + 0.4362335205078125, + 0.4313507080078125, + 0.4093780517578125, + 0.40252685546875, + 0.39862060546875, + 0.39862060546875, + 0.39862060546875, + 0.40008544921875, + 0.40106201171875, + 0.40252685546875, + 0.40301513671875, + 0.40301513671875, + 0.40301513671875, + 0.40252685546875, + 0.39569091796875, + 0.38250732421875, + 0.37567138671875, + 0.3707733154296875, + 0.3629608154296875, + 0.3590545654296875, + 0.3546600341796875, + 0.3497772216796875, + 0.3492889404296875, + 0.3492889404296875, + 0.3488006591796875, + 0.3483123779296875, + 0.3488006591796875, + 0.3483123779296875, + 0.3488006591796875, + 0.3488006591796875, + 0.3488006591796875, + 0.3488006591796875, + 0.3439178466796875, + 0.339019775390625, + 0.337066650390625, + 0.337066650390625, + 0.337554931640625, + 0.338043212890625, + 0.339019775390625, + 0.3683319091796875, + 0.37567138671875, + 0.38397216796875, + 0.39129638671875, + 0.40252685546875, + 0.4098663330078125, + 0.4162139892578125, + 0.4201202392578125, + 0.4210968017578125, + 0.4215850830078125, + 0.4235382080078125, + 0.4254913330078125, + 0.4254913330078125, + 0.4240264892578125, + 0.4132843017578125, + 0.38299560546875, + 0.2921295166015625, + 0.1714630126953125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 21, + 113 + ] + }, + { + "id": "9TIB9DZPEltVdtwWrVv4e", + "type": "freedraw", + "x": -272.25, + "y": 345.5546875, + "width": 59, + "height": 73, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b00", + "roundness": null, + "seed": 494707133, + "version": 41, + "versionNonce": 686734611, + "isDeleted": false, + "boundElements": null, + "updated": 1756839573568, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + -2 + ], + [ + -4, + -2 + ], + [ + -7, + -1 + ], + [ + -10, + -1 + ], + [ + -13, + 1 + ], + [ + -17, + 3 + ], + [ + -21, + 6 + ], + [ + -26, + 10 + ], + [ + -29, + 14 + ], + [ + -32, + 17 + ], + [ + -34, + 19 + ], + [ + -35, + 20 + ], + [ + -34, + 20 + ], + [ + -32, + 19 + ], + [ + -29, + 18 + ], + [ + -25, + 18 + ], + [ + -21, + 19 + ], + [ + -16, + 21 + ], + [ + -11, + 24 + ], + [ + -7, + 28 + ], + [ + -3, + 32 + ], + [ + 1, + 37 + ], + [ + 5, + 41 + ], + [ + 8, + 45 + ], + [ + 11, + 49 + ], + [ + 12, + 53 + ], + [ + 11, + 56 + ], + [ + 8, + 60 + ], + [ + 4, + 63 + ], + [ + -3, + 66 + ], + [ + -11, + 68 + ], + [ + -20, + 70 + ], + [ + -29, + 71 + ], + [ + -36, + 71 + ], + [ + -41, + 69 + ], + [ + -45, + 66 + ], + [ + -47, + 62 + ], + [ + -47, + 58 + ], + [ + -47, + 58 + ] + ], + "pressures": [ + 0.1802520751953125, + 0.443084716796875, + 0.466522216796875, + 0.4763031005859375, + 0.4836273193359375, + 0.4880218505859375, + 0.4899749755859375, + 0.4904632568359375, + 0.4899749755859375, + 0.4899749755859375, + 0.4894866943359375, + 0.4894866943359375, + 0.466522216796875, + 0.4191436767578125, + 0.4191436767578125, + 0.4201202392578125, + 0.4215850830078125, + 0.4220733642578125, + 0.4220733642578125, + 0.4240264892578125, + 0.4240264892578125, + 0.4206085205078125, + 0.4132843017578125, + 0.4088897705078125, + 0.4064483642578125, + 0.4088897705078125, + 0.4142608642578125, + 0.444549560546875, + 0.4938812255859375, + 0.5412750244140625, + 0.565216064453125, + 0.576934814453125, + 0.576934814453125, + 0.572540283203125, + 0.5573883056640625, + 0.504150390625, + 0.39715576171875, + 0.213470458984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -47, + 58 + ] + }, + { + "id": "mDme5S28PiLKpsCniwY5e", + "type": "freedraw", + "x": -388.25, + "y": 464.5546875, + "width": 9, + "height": 79, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b01", + "roundness": null, + "seed": 1230689363, + "version": 17, + "versionNonce": 1201643869, + "isDeleted": false, + "boundElements": null, + "updated": 1756839574190, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1, + 0 + ], + [ + -3, + 2 + ], + [ + -4, + 5 + ], + [ + -5, + 11 + ], + [ + -5, + 20 + ], + [ + -5, + 31 + ], + [ + -5, + 41 + ], + [ + -5, + 51 + ], + [ + -4, + 60 + ], + [ + -3, + 67 + ], + [ + -1, + 73 + ], + [ + 1, + 77 + ], + [ + 3, + 79 + ], + [ + 4, + 79 + ], + [ + 4, + 79 + ] + ], + "pressures": [ + 0.334625244140625, + 0.4977874755859375, + 0.503173828125, + 0.515869140625, + 0.523681640625, + 0.525146484375, + 0.529052734375, + 0.529052734375, + 0.524658203125, + 0.504638671875, + 0.4694671630859375, + 0.4147491455078125, + 0.318511962890625, + 0.14166259765625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 4, + 79 + ] + }, + { + "id": "gBJuAPZWpDHaLcRsGlaV_", + "type": "freedraw", + "x": -421.25, + "y": 500.5546875, + "width": 86, + "height": 92, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b02", + "roundness": null, + "seed": 35827229, + "version": 42, + "versionNonce": 46866941, + "isDeleted": false, + "boundElements": null, + "updated": 1756839574626, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1 + ], + [ + 2, + 4 + ], + [ + 6, + 10 + ], + [ + 11, + 19 + ], + [ + 16, + 30 + ], + [ + 22, + 41 + ], + [ + 27, + 52 + ], + [ + 32, + 63 + ], + [ + 37, + 73 + ], + [ + 41, + 81 + ], + [ + 45, + 87 + ], + [ + 47, + 90 + ], + [ + 48, + 92 + ], + [ + 50, + 92 + ], + [ + 51, + 91 + ], + [ + 54, + 88 + ], + [ + 56, + 84 + ], + [ + 60, + 78 + ], + [ + 63, + 71 + ], + [ + 66, + 64 + ], + [ + 69, + 56 + ], + [ + 73, + 48 + ], + [ + 76, + 40 + ], + [ + 80, + 32 + ], + [ + 82, + 23 + ], + [ + 84, + 17 + ], + [ + 85, + 11 + ], + [ + 86, + 8 + ], + [ + 86, + 6 + ], + [ + 85, + 5 + ], + [ + 83, + 6 + ], + [ + 79, + 7 + ], + [ + 64, + 12 + ], + [ + 55, + 17 + ], + [ + 45, + 21 + ], + [ + 36, + 24 + ], + [ + 28, + 27 + ], + [ + 21, + 29 + ], + [ + 16, + 29 + ], + [ + 16, + 29 + ] + ], + "pressures": [ + 0.4953460693359375, + 0.5354156494140625, + 0.5388336181640625, + 0.5407867431640625, + 0.5407867431640625, + 0.5378570556640625, + 0.517822265625, + 0.4972991943359375, + 0.468475341796875, + 0.447479248046875, + 0.444061279296875, + 0.441131591796875, + 0.4342803955078125, + 0.4210968017578125, + 0.4210968017578125, + 0.4274444580078125, + 0.4372100830078125, + 0.441131591796875, + 0.443084716796875, + 0.445526123046875, + 0.446014404296875, + 0.446014404296875, + 0.446014404296875, + 0.442108154296875, + 0.438201904296875, + 0.4352569580078125, + 0.4347686767578125, + 0.4342803955078125, + 0.4347686767578125, + 0.440155029296875, + 0.465545654296875, + 0.465545654296875, + 0.463592529296875, + 0.4709320068359375, + 0.4787445068359375, + 0.4787445068359375, + 0.466033935546875, + 0.4210968017578125, + 0.319000244140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 16, + 29 + ] + }, + { + "id": "ygAkBRlUtTNG0HScedtuY", + "type": "freedraw", + "x": -397.25, + "y": 664.5546875, + "width": 85, + "height": 114, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b03", + "roundness": null, + "seed": 765363901, + "version": 55, + "versionNonce": 1962576755, + "isDeleted": false, + "boundElements": null, + "updated": 1756839575350, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2, + -1 + ], + [ + 3, + -3 + ], + [ + 5, + -6 + ], + [ + 6, + -9 + ], + [ + 7, + -13 + ], + [ + 7, + -17 + ], + [ + 5, + -21 + ], + [ + 1, + -26 + ], + [ + -4, + -30 + ], + [ + -11, + -34 + ], + [ + -18, + -36 + ], + [ + -25, + -37 + ], + [ + -32, + -36 + ], + [ + -37, + -33 + ], + [ + -42, + -29 + ], + [ + -45, + -25 + ], + [ + -47, + -20 + ], + [ + -46, + -13 + ], + [ + -43, + -6 + ], + [ + -38, + 2 + ], + [ + -30, + 9 + ], + [ + -21, + 15 + ], + [ + -11, + 21 + ], + [ + -1, + 26 + ], + [ + 10, + 32 + ], + [ + 20, + 37 + ], + [ + 29, + 43 + ], + [ + 35, + 48 + ], + [ + 38, + 53 + ], + [ + 37, + 58 + ], + [ + 34, + 64 + ], + [ + 29, + 69 + ], + [ + 22, + 73 + ], + [ + 14, + 76 + ], + [ + 5, + 77 + ], + [ + -4, + 77 + ], + [ + -13, + 75 + ], + [ + -22, + 71 + ], + [ + -29, + 65 + ], + [ + -35, + 59 + ], + [ + -40, + 52 + ], + [ + -42, + 46 + ], + [ + -42, + 41 + ], + [ + -40, + 36 + ], + [ + -36, + 31 + ], + [ + -31, + 26 + ], + [ + -25, + 21 + ], + [ + -19, + 16 + ], + [ + -11, + 10 + ], + [ + -4, + 4 + ], + [ + 2, + -3 + ], + [ + 6, + -9 + ], + [ + 6, + -9 + ] + ], + "pressures": [ + 0.37567138671875, + 0.4113311767578125, + 0.4264678955078125, + 0.4362335205078125, + 0.440155029296875, + 0.442108154296875, + 0.452850341796875, + 0.456268310546875, + 0.459197998046875, + 0.460174560546875, + 0.463104248046875, + 0.468475341796875, + 0.4728851318359375, + 0.4821624755859375, + 0.4860687255859375, + 0.4860687255859375, + 0.4821624755859375, + 0.4753265380859375, + 0.4719085693359375, + 0.4714202880859375, + 0.4694671630859375, + 0.468475341796875, + 0.468475341796875, + 0.4689788818359375, + 0.4689788818359375, + 0.460662841796875, + 0.4372100830078125, + 0.4289093017578125, + 0.4269561767578125, + 0.4269561767578125, + 0.4367218017578125, + 0.464569091796875, + 0.4787445068359375, + 0.4894866943359375, + 0.4894866943359375, + 0.4885101318359375, + 0.4865570068359375, + 0.4855804443359375, + 0.4836273193359375, + 0.4806976318359375, + 0.4733734130859375, + 0.466522216796875, + 0.461639404296875, + 0.458709716796875, + 0.458709716796875, + 0.458709716796875, + 0.458709716796875, + 0.458709716796875, + 0.455780029296875, + 0.4137725830078125, + 0.2960357666015625, + 0.1211395263671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 6, + -9 + ] + }, + { + "id": "YrtKiXPw5aINiQOMVIkGg", + "type": "freedraw", + "x": -348.25, + "y": 652.5546875, + "width": 1, + "height": 2, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b04", + "roundness": null, + "seed": 751733427, + "version": 4, + "versionNonce": 1822145011, + "isDeleted": false, + "boundElements": null, + "updated": 1756839576165, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + 2 + ], + [ + 1, + 2 + ] + ], + "pressures": [ + 0.467010498046875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 1, + 2 + ] + }, + { + "id": "HEW7ZwRiNO2RPc7DlBLDr", + "type": "freedraw", + "x": -328.25, + "y": 701.5546875, + "width": 4, + "height": 4, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b05", + "roundness": null, + "seed": 198580531, + "version": 9, + "versionNonce": 1176461565, + "isDeleted": false, + "boundElements": null, + "updated": 1756839576339, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + 3 + ], + [ + -2, + 4 + ], + [ + -3, + 4 + ], + [ + -2, + 3 + ], + [ + 0, + 2 + ], + [ + 1, + 0 + ], + [ + 1, + 0 + ] + ], + "pressures": [ + 0.39569091796875, + 0.501708984375, + 0.500244140625, + 0.4719085693359375, + 0.3092193603515625, + 0.15142822265625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 1, + 0 + ] + }, + { + "id": "tv7GP-8Bdqvb7sZg4jyeU", + "type": "freedraw", + "x": -266.25, + "y": 637.5546875, + "width": 62, + "height": 92, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b06", + "roundness": null, + "seed": 1781466557, + "version": 34, + "versionNonce": 2101537821, + "isDeleted": false, + "boundElements": null, + "updated": 1756839576768, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6, + -3 + ], + [ + -10, + -4 + ], + [ + -14, + -4 + ], + [ + -23, + -1 + ], + [ + -28, + 3 + ], + [ + -32, + 9 + ], + [ + -36, + 16 + ], + [ + -38, + 25 + ], + [ + -40, + 35 + ], + [ + -40, + 46 + ], + [ + -38, + 56 + ], + [ + -35, + 66 + ], + [ + -30, + 74 + ], + [ + -24, + 81 + ], + [ + -17, + 85 + ], + [ + -11, + 87 + ], + [ + -4, + 88 + ], + [ + 3, + 86 + ], + [ + 8, + 83 + ], + [ + 12, + 77 + ], + [ + 15, + 70 + ], + [ + 16, + 63 + ], + [ + 15, + 55 + ], + [ + 11, + 47 + ], + [ + 5, + 40 + ], + [ + -4, + 32 + ], + [ + -13, + 26 + ], + [ + -23, + 22 + ], + [ + -32, + 20 + ], + [ + -40, + 19 + ], + [ + -46, + 20 + ], + [ + -46, + 20 + ] + ], + "pressures": [ + 0.39910888671875, + 0.450897216796875, + 0.455291748046875, + 0.455291748046875, + 0.4362335205078125, + 0.4284210205078125, + 0.4284210205078125, + 0.4289093017578125, + 0.4313507080078125, + 0.4347686767578125, + 0.4357452392578125, + 0.4347686767578125, + 0.4347686767578125, + 0.4289093017578125, + 0.4176788330078125, + 0.39471435546875, + 0.37713623046875, + 0.3644256591796875, + 0.3536834716796875, + 0.3478240966796875, + 0.3473358154296875, + 0.3473358154296875, + 0.3473358154296875, + 0.3483123779296875, + 0.3492889404296875, + 0.3571014404296875, + 0.3610076904296875, + 0.3610076904296875, + 0.3444061279296875, + 0.2852935791015625, + 0.14654541015625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -46, + 20 + ] + }, + { + "id": "_oTR3FH2SAHD9XEY8iUos", + "type": "freedraw", + "x": -224.25, + "y": 623.5546875, + "width": 58, + "height": 75, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b07", + "roundness": null, + "seed": 2114078941, + "version": 32, + "versionNonce": 912682717, + "isDeleted": false, + "boundElements": null, + "updated": 1756839577206, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4, + 1 + ], + [ + -7, + 3 + ], + [ + -14, + 9 + ], + [ + -17, + 15 + ], + [ + -19, + 22 + ], + [ + -20, + 31 + ], + [ + -19, + 40 + ], + [ + -16, + 50 + ], + [ + -12, + 59 + ], + [ + -7, + 66 + ], + [ + -1, + 71 + ], + [ + 5, + 74 + ], + [ + 10, + 75 + ], + [ + 15, + 75 + ], + [ + 19, + 73 + ], + [ + 22, + 69 + ], + [ + 24, + 64 + ], + [ + 25, + 59 + ], + [ + 25, + 53 + ], + [ + 23, + 46 + ], + [ + 20, + 40 + ], + [ + 16, + 34 + ], + [ + 9, + 28 + ], + [ + 2, + 23 + ], + [ + -5, + 19 + ], + [ + -13, + 16 + ], + [ + -20, + 15 + ], + [ + -27, + 15 + ], + [ + -33, + 16 + ], + [ + -33, + 16 + ] + ], + "pressures": [ + 0.4333038330078125, + 0.4723968505859375, + 0.4772796630859375, + 0.457244873046875, + 0.4225616455078125, + 0.38641357421875, + 0.3546600341796875, + 0.342437744140625, + 0.342437744140625, + 0.342437744140625, + 0.342437744140625, + 0.339996337890625, + 0.336578369140625, + 0.335113525390625, + 0.335113525390625, + 0.3492889404296875, + 0.3702850341796875, + 0.39764404296875, + 0.4274444580078125, + 0.452362060546875, + 0.4811859130859375, + 0.4992523193359375, + 0.507568359375, + 0.507568359375, + 0.505615234375, + 0.4836273193359375, + 0.442108154296875, + 0.3746795654296875, + 0.2198333740234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -33, + 16 + ] + }, + { + "id": "3lKPCJ59oveBEOdbJwdv5", + "type": "freedraw", + "x": -614.25, + "y": 293.5546875, + "width": 549, + "height": 569, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b08", + "roundness": null, + "seed": 1421089693, + "version": 97, + "versionNonce": 1436739251, + "isDeleted": false, + "boundElements": null, + "updated": 1756839578350, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4, + 8 + ], + [ + -7, + 19 + ], + [ + -8, + 39 + ], + [ + -8, + 66 + ], + [ + -8, + 101 + ], + [ + -5, + 142 + ], + [ + 1, + 187 + ], + [ + 11, + 236 + ], + [ + 25, + 286 + ], + [ + 41, + 335 + ], + [ + 59, + 381 + ], + [ + 76, + 422 + ], + [ + 91, + 455 + ], + [ + 103, + 481 + ], + [ + 111, + 500 + ], + [ + 116, + 513 + ], + [ + 120, + 521 + ], + [ + 122, + 526 + ], + [ + 123, + 527 + ], + [ + 122, + 526 + ], + [ + 120, + 520 + ], + [ + 108, + 495 + ], + [ + 97, + 475 + ], + [ + 85, + 451 + ], + [ + 71, + 423 + ], + [ + 57, + 392 + ], + [ + 43, + 357 + ], + [ + 31, + 321 + ], + [ + 19, + 283 + ], + [ + 9, + 244 + ], + [ + 1, + 205 + ], + [ + -6, + 166 + ], + [ + -11, + 130 + ], + [ + -14, + 98 + ], + [ + -16, + 69 + ], + [ + -17, + 46 + ], + [ + -17, + 28 + ], + [ + -17, + 8 + ], + [ + -16, + 5 + ], + [ + -15, + 5 + ], + [ + -13, + 7 + ], + [ + -9, + 11 + ], + [ + -1, + 17 + ], + [ + 9, + 24 + ], + [ + 22, + 30 + ], + [ + 38, + 36 + ], + [ + 56, + 41 + ], + [ + 74, + 45 + ], + [ + 93, + 48 + ], + [ + 112, + 50 + ], + [ + 131, + 50 + ], + [ + 151, + 48 + ], + [ + 170, + 45 + ], + [ + 189, + 39 + ], + [ + 209, + 32 + ], + [ + 228, + 24 + ], + [ + 248, + 15 + ], + [ + 266, + 6 + ], + [ + 282, + -3 + ], + [ + 309, + -21 + ], + [ + 319, + -28 + ], + [ + 327, + -35 + ], + [ + 333, + -39 + ], + [ + 337, + -41 + ], + [ + 340, + -42 + ], + [ + 343, + -42 + ], + [ + 346, + -41 + ], + [ + 354, + -35 + ], + [ + 359, + -32 + ], + [ + 365, + -28 + ], + [ + 371, + -23 + ], + [ + 378, + -17 + ], + [ + 385, + -9 + ], + [ + 393, + 1 + ], + [ + 401, + 14 + ], + [ + 411, + 28 + ], + [ + 420, + 44 + ], + [ + 431, + 60 + ], + [ + 441, + 78 + ], + [ + 453, + 95 + ], + [ + 465, + 112 + ], + [ + 477, + 130 + ], + [ + 489, + 148 + ], + [ + 500, + 166 + ], + [ + 509, + 185 + ], + [ + 517, + 205 + ], + [ + 523, + 226 + ], + [ + 529, + 266 + ], + [ + 529, + 285 + ], + [ + 529, + 302 + ], + [ + 529, + 317 + ], + [ + 529, + 330 + ], + [ + 530, + 341 + ], + [ + 532, + 351 + ], + [ + 532, + 351 + ] + ], + "pressures": [ + 0.085479736328125, + 0.4181671142578125, + 0.4181671142578125, + 0.4220733642578125, + 0.4240264892578125, + 0.4274444580078125, + 0.4308624267578125, + 0.4308624267578125, + 0.4210968017578125, + 0.38348388671875, + 0.3546600341796875, + 0.3541717529296875, + 0.3536834716796875, + 0.3522186279296875, + 0.3522186279296875, + 0.3536834716796875, + 0.3536834716796875, + 0.3448944091796875, + 0.339019775390625, + 0.2935943603515625, + 0.2931060791015625, + 0.2931060791015625, + 0.2970123291015625, + 0.2970123291015625, + 0.2906646728515625, + 0.2906646728515625, + 0.2921295166015625, + 0.3082427978515625, + 0.323883056640625, + 0.331207275390625, + 0.331207275390625, + 0.319976806640625, + 0.3116607666015625, + 0.3116607666015625, + 0.318023681640625, + 0.325347900390625, + 0.329254150390625, + 0.329742431640625, + 0.330718994140625, + 0.330718994140625, + 0.341949462890625, + 0.3688201904296875, + 0.38641357421875, + 0.39373779296875, + 0.39715576171875, + 0.40057373046875, + 0.40399169921875, + 0.4074249267578125, + 0.4127960205078125, + 0.4132843017578125, + 0.4142608642578125, + 0.4142608642578125, + 0.4137725830078125, + 0.4137725830078125, + 0.4147491455078125, + 0.4147491455078125, + 0.4113311767578125, + 0.40350341796875, + 0.39910888671875, + 0.39617919921875, + 0.39080810546875, + 0.39031982421875, + 0.39031982421875, + 0.38983154296875, + 0.38739013671875, + 0.38739013671875, + 0.38934326171875, + 0.38983154296875, + 0.39129638671875, + 0.39520263671875, + 0.40496826171875, + 0.40545654296875, + 0.4074249267578125, + 0.4084014892578125, + 0.4084014892578125, + 0.4127960205078125, + 0.4142608642578125, + 0.4142608642578125, + 0.40252685546875, + 0.39862060546875, + 0.3644256591796875, + 0.3101959228515625, + 0.2691650390625, + 0.2476654052734375, + 0.2339935302734375, + 0.2325286865234375, + 0.2227630615234375, + 0.205657958984375, + 0.2344818115234375, + 0.2760009765625, + 0.2857818603515625, + 0.2857818603515625, + 0.2515869140625, + 0.0942840576171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 532, + 351 + ] + }, + { + "id": "VdHomv1jLivpDWUG1wnnX", + "type": "freedraw", + "x": -130.25, + "y": 727.5546875, + "width": 264, + "height": 64, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b09", + "roundness": null, + "seed": 956896755, + "version": 20, + "versionNonce": 1035850291, + "isDeleted": false, + "boundElements": null, + "updated": 1756839578546, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -8, + 10 + ], + [ + -28, + 28 + ], + [ + -38, + 36 + ], + [ + -49, + 42 + ], + [ + -61, + 46 + ], + [ + -75, + 49 + ], + [ + -93, + 52 + ], + [ + -115, + 54 + ], + [ + -142, + 56 + ], + [ + -170, + 58 + ], + [ + -196, + 60 + ], + [ + -218, + 62 + ], + [ + -235, + 63 + ], + [ + -247, + 64 + ], + [ + -255, + 63 + ], + [ + -261, + 60 + ], + [ + -264, + 55 + ], + [ + -264, + 55 + ] + ], + "pressures": [ + 0.198333740234375, + 0.4880218505859375, + 0.510498046875, + 0.510498046875, + 0.508544921875, + 0.504638671875, + 0.4880218505859375, + 0.464569091796875, + 0.446014404296875, + 0.440155029296875, + 0.440155029296875, + 0.442596435546875, + 0.446990966796875, + 0.446990966796875, + 0.4152374267578125, + 0.2994537353515625, + 0.12945556640625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -264, + 55 + ] + }, + { + "id": "zcoCkLncLqGoGKhKHIOpg", + "type": "freedraw", + "x": -185.25, + "y": 578.5546875, + "width": 49, + "height": 45, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0A", + "roundness": null, + "seed": 956244339, + "version": 13, + "versionNonce": 1576128893, + "isDeleted": false, + "boundElements": null, + "updated": 1756839588372, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -13, + -6 + ], + [ + -18, + -8 + ], + [ + -22, + -11 + ], + [ + -30, + -19 + ], + [ + -34, + -23 + ], + [ + -37, + -27 + ], + [ + -40, + -31 + ], + [ + -43, + -35 + ], + [ + -46, + -40 + ], + [ + -49, + -45 + ], + [ + -49, + -45 + ] + ], + "pressures": [ + 0.3448944091796875, + 0.321929931640625, + 0.330718994140625, + 0.342926025390625, + 0.3546600341796875, + 0.3571014404296875, + 0.3571014404296875, + 0.3473358154296875, + 0.3087310791015625, + 0.214935302734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -49, + -45 + ] + }, + { + "id": "POhdSHfxJ0k4y-HbH2G7T", + "type": "freedraw", + "x": -263.25, + "y": 559.5546875, + "width": 54, + "height": 65, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0B", + "roundness": null, + "seed": 1535071805, + "version": 53, + "versionNonce": 2018510419, + "isDeleted": false, + "boundElements": null, + "updated": 1756839588994, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2, + -1 + ], + [ + -4, + -4 + ], + [ + -6, + -9 + ], + [ + -7, + -12 + ], + [ + -9, + -16 + ], + [ + -10, + -22 + ], + [ + -11, + -28 + ], + [ + -12, + -36 + ], + [ + -12, + -43 + ], + [ + -12, + -49 + ], + [ + -12, + -54 + ], + [ + -12, + -57 + ], + [ + -12, + -59 + ], + [ + -11, + -59 + ], + [ + -10, + -59 + ], + [ + -8, + -58 + ], + [ + -6, + -56 + ], + [ + -3, + -53 + ], + [ + 1, + -51 + ], + [ + 5, + -49 + ], + [ + 11, + -47 + ], + [ + 17, + -46 + ], + [ + 29, + -46 + ], + [ + 34, + -47 + ], + [ + 37, + -48 + ], + [ + 41, + -50 + ], + [ + 42, + -51 + ], + [ + 41, + -53 + ], + [ + 41, + -55 + ], + [ + 40, + -57 + ], + [ + 39, + -59 + ], + [ + 38, + -61 + ], + [ + 37, + -61 + ], + [ + 36, + -62 + ], + [ + 35, + -61 + ], + [ + 34, + -61 + ], + [ + 33, + -59 + ], + [ + 31, + -56 + ], + [ + 30, + -51 + ], + [ + 28, + -46 + ], + [ + 25, + -40 + ], + [ + 22, + -34 + ], + [ + 18, + -27 + ], + [ + 13, + -21 + ], + [ + 8, + -15 + ], + [ + 4, + -10 + ], + [ + 0, + -6 + ], + [ + -4, + -3 + ], + [ + -6, + 1 + ], + [ + -8, + 3 + ], + [ + -8, + 3 + ] + ], + "pressures": [ + 0.2891998291015625, + 0.2593994140625, + 0.2642822265625, + 0.2794189453125, + 0.2803955078125, + 0.2828521728515625, + 0.2843170166015625, + 0.2852935791015625, + 0.2862701416015625, + 0.2852935791015625, + 0.2843170166015625, + 0.2823638916015625, + 0.2823638916015625, + 0.2784423828125, + 0.2618408203125, + 0.2408294677734375, + 0.2413177490234375, + 0.2413177490234375, + 0.2418060302734375, + 0.2418060302734375, + 0.2403411865234375, + 0.2388763427734375, + 0.2335052490234375, + 0.2393646240234375, + 0.2447357177734375, + 0.2481536865234375, + 0.2535400390625, + 0.2637939453125, + 0.2662353515625, + 0.2681884765625, + 0.2696533203125, + 0.2701416015625, + 0.2716064453125, + 0.2745361328125, + 0.2745361328125, + 0.2667236328125, + 0.2633056640625, + 0.2608642578125, + 0.2584228515625, + 0.2579345703125, + 0.2515869140625, + 0.2476654052734375, + 0.2457122802734375, + 0.2442474365234375, + 0.2442474365234375, + 0.2476654052734375, + 0.2476654052734375, + 0.2476654052734375, + 0.191497802734375, + 0.0410308837890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -8, + 3 + ] + }, + { + "id": "xCoH1lWobndwypuqMQT5t", + "type": "freedraw", + "x": -216.77941176470767, + "y": 703.1429227941176, + "width": 188.23529411764707, + "height": 118.82352941176464, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0C", + "roundness": null, + "seed": 407084413, + "version": 24, + "versionNonce": 479848957, + "isDeleted": false, + "boundElements": null, + "updated": 1756839662549, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.705882352941217, + 12.941176470588061 + ], + [ + 7.058823529411825, + 17.647058823529278 + ], + [ + 9.411764705882433, + 22.352941176470495 + ], + [ + 11.764705882352928, + 25.88235294117635 + ], + [ + 17.647058823529505, + 35.29411764705878 + ], + [ + 21.17647058823536, + 38.82352941176464 + ], + [ + 25.882352941176464, + 44.70588235294099 + ], + [ + 31.764705882352928, + 50.58823529411757 + ], + [ + 42.35294117647061, + 57.64705882352928 + ], + [ + 52.94117647058829, + 64.70588235294099 + ], + [ + 65.88235294117646, + 74.11764705882342 + ], + [ + 83.52941176470597, + 84.70588235294099 + ], + [ + 103.52941176470597, + 94.11764705882342 + ], + [ + 121.17647058823536, + 102.3529411764705 + ], + [ + 137.6470588235295, + 108.23529411764707 + ], + [ + 152.9411764705883, + 112.94117647058806 + ], + [ + 167.05882352941182, + 114.11764705882342 + ], + [ + 175.2941176470589, + 116.47058823529392 + ], + [ + 180, + 117.64705882352928 + ], + [ + 184.70588235294122, + 117.64705882352928 + ], + [ + 188.23529411764707, + 118.82352941176464 + ], + [ + 188.23529411764707, + 118.82352941176464 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 188.23529411764707, + 118.82352941176464 + ] + }, + { + "id": "YSyaM2y7Uao-UrvLbIAFw", + "type": "freedraw", + "x": -50.89705882353121, + "y": 745.4958639705881, + "width": 161.17647058823536, + "height": 135.29411764705878, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0D", + "roundness": null, + "seed": 677072573, + "version": 48, + "versionNonce": 833185725, + "isDeleted": false, + "boundElements": null, + "updated": 1756839663375, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 5.882352941176578, + -1.176470588235361 + ], + [ + 12.941176470588289, + -1.176470588235361 + ], + [ + 23.52941176470597, + -1.176470588235361 + ], + [ + 41.17647058823536, + -1.176470588235361 + ], + [ + 60, + -1.176470588235361 + ], + [ + 82.35294117647072, + -1.176470588235361 + ], + [ + 102.35294117647072, + -1.176470588235361 + ], + [ + 118.82352941176487, + -1.176470588235361 + ], + [ + 134.11764705882365, + -1.176470588235361 + ], + [ + 144.70588235294122, + -3.5294117647058556 + ], + [ + 152.9411764705883, + -3.5294117647058556 + ], + [ + 157.6470588235295, + -3.5294117647058556 + ], + [ + 160, + -3.5294117647058556 + ], + [ + 161.17647058823536, + -3.5294117647058556 + ], + [ + 161.17647058823536, + -2.3529411764704946 + ], + [ + 161.17647058823536, + 0 + ], + [ + 158.82352941176487, + 4.705882352941217 + ], + [ + 152.9411764705883, + 12.941176470588289 + ], + [ + 143.52941176470586, + 23.529411764705856 + ], + [ + 134.11764705882365, + 37.647058823529505 + ], + [ + 121.17647058823536, + 51.76470588235293 + ], + [ + 107.05882352941171, + 64.70588235294122 + ], + [ + 91.76470588235293, + 75.29411764705878 + ], + [ + 80, + 85.88235294117658 + ], + [ + 68.23529411764707, + 92.94117647058829 + ], + [ + 60, + 100 + ], + [ + 51.76470588235304, + 104.70588235294122 + ], + [ + 45.88235294117658, + 109.41176470588243 + ], + [ + 41.17647058823536, + 111.76470588235293 + ], + [ + 38.82352941176475, + 112.94117647058829 + ], + [ + 37.647058823529505, + 114.11764705882342 + ], + [ + 37.647058823529505, + 110.58823529411757 + ], + [ + 37.647058823529505, + 104.70588235294122 + ], + [ + 37.647058823529505, + 95.29411764705878 + ], + [ + 34.117647058823536, + 81.17647058823536 + ], + [ + 30.58823529411768, + 64.70588235294122 + ], + [ + 25.882352941176578, + 49.41176470588243 + ], + [ + 22.35294117647061, + 32.94117647058829 + ], + [ + 18.823529411764753, + 20 + ], + [ + 12.941176470588289, + 9.411764705882433 + ], + [ + 9.411764705882433, + -1.176470588235361 + ], + [ + 7.058823529411825, + -9.411764705882433 + ], + [ + 4.705882352941217, + -15.294117647058783 + ], + [ + 3.5294117647059693, + -18.82352941176464 + ], + [ + 3.5294117647059693, + -21.17647058823536 + ], + [ + 3.5294117647059693, + -21.17647058823536 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 3.5294117647059693, + -21.17647058823536 + ] + }, + { + "id": "5O3wleQqv0E5Lha0_akvQ", + "type": "freedraw", + "x": -85.01470588235463, + "y": -275.68060661764724, + "width": 42.352941176470495, + "height": 24.70588235294116, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0E", + "roundness": null, + "seed": 645291133, + "version": 29, + "versionNonce": 2092349587, + "isDeleted": false, + "boundElements": null, + "updated": 1756839685435, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 9.41176470588232, + 0 + ], + [ + 17.64705882352939, + -1.1764705882353041 + ], + [ + 21.176470588235247, + -1.1764705882353041 + ], + [ + 23.529411764705856, + -1.1764705882353041 + ], + [ + 23.529411764705856, + 0 + ], + [ + 22.352941176470495, + 2.3529411764705515 + ], + [ + 21.176470588235247, + 4.70588235294116 + ], + [ + 20, + 7.058823529411768 + ], + [ + 20, + 10.588235294117624 + ], + [ + 20, + 14.117647058823536 + ], + [ + 20, + 17.64705882352939 + ], + [ + 20, + 20 + ], + [ + 20, + 22.35294117647055 + ], + [ + 21.176470588235247, + 23.529411764705856 + ], + [ + 22.352941176470495, + 23.529411764705856 + ], + [ + 23.529411764705856, + 23.529411764705856 + ], + [ + 25.882352941176464, + 23.529411764705856 + ], + [ + 28.23529411764696, + 23.529411764705856 + ], + [ + 30.588235294117567, + 23.529411764705856 + ], + [ + 34.11764705882342, + 23.529411764705856 + ], + [ + 36.47058823529403, + 23.529411764705856 + ], + [ + 38.82352941176464, + 21.176470588235247 + ], + [ + 40, + 21.176470588235247 + ], + [ + 41.17647058823525, + 20 + ], + [ + 42.352941176470495, + 18.823529411764696 + ], + [ + 42.352941176470495, + 17.64705882352939 + ], + [ + 42.352941176470495, + 17.64705882352939 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 42.352941176470495, + 17.64705882352939 + ] + }, + { + "id": "6H4h62o7Kn-XPmZp1IVZ6", + "type": "freedraw", + "x": 76.1617647058805, + "y": 486.6723345588234, + "width": 110.58823529411757, + "height": 151.7647058823528, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0F", + "roundness": null, + "seed": 1492774867, + "version": 48, + "versionNonce": 1445013203, + "isDeleted": false, + "boundElements": null, + "updated": 1756839713537, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1764705882351336, + 0 + ], + [ + 0, + -1.176470588235361 + ], + [ + 1.176470588235361, + -2.352941176470722 + ], + [ + 2.352941176470722, + -4.705882352941217 + ], + [ + 4.705882352941217, + -8.235294117647072 + ], + [ + 7.058823529411939, + -12.941176470588289 + ], + [ + 10.588235294117794, + -21.17647058823536 + ], + [ + 14.11764705882365, + -30.588235294117794 + ], + [ + 20, + -43.529411764705856 + ], + [ + 24.705882352941217, + -60 + ], + [ + 30.588235294117794, + -76.47058823529414 + ], + [ + 35.29411764705901, + -92.94117647058829 + ], + [ + 40, + -105.88235294117658 + ], + [ + 42.35294117647072, + -114.11764705882365 + ], + [ + 43.52941176470608, + -117.6470588235295 + ], + [ + 43.52941176470608, + -118.82352941176475 + ], + [ + 42.35294117647072, + -115.2941176470589 + ], + [ + 37.647058823529505, + -98.82352941176475 + ], + [ + 36.470588235294144, + -84.70588235294122 + ], + [ + 36.470588235294144, + -70.58823529411768 + ], + [ + 38.823529411764866, + -57.647058823529505 + ], + [ + 43.52941176470608, + -43.529411764705856 + ], + [ + 48.23529411764707, + -31.764705882352928 + ], + [ + 54.11764705882365, + -20 + ], + [ + 60, + -9.411764705882433 + ], + [ + 63.52941176470608, + 0 + ], + [ + 65.88235294117658, + 7.058823529411711 + ], + [ + 65.88235294117658, + 14.117647058823422 + ], + [ + 63.52941176470608, + 20 + ], + [ + 58.823529411764866, + 25.88235294117635 + ], + [ + 54.11764705882365, + 29.411764705882206 + ], + [ + 48.23529411764707, + 31.764705882352928 + ], + [ + 43.52941176470608, + 32.94117647058806 + ], + [ + 38.823529411764866, + 32.94117647058806 + ], + [ + 35.29411764705901, + 32.94117647058806 + ], + [ + 32.94117647058829, + 32.94117647058806 + ], + [ + 35.29411764705901, + 31.764705882352928 + ], + [ + 41.17647058823536, + 30.588235294117567 + ], + [ + 49.41176470588243, + 29.411764705882206 + ], + [ + 60, + 27.05882352941171 + ], + [ + 71.76470588235316, + 25.88235294117635 + ], + [ + 82.35294117647072, + 22.352941176470495 + ], + [ + 92.94117647058829, + 20 + ], + [ + 101.17647058823536, + 16.470588235294144 + ], + [ + 109.41176470588243, + 12.941176470588061 + ], + [ + 109.41176470588243, + 12.941176470588061 + ] + ], + "pressures": [ + 0.3737030029296875, + 0.326812744140625, + 0.3649139404296875, + 0.38494873046875, + 0.40447998046875, + 0.4191436767578125, + 0.4225616455078125, + 0.4245147705078125, + 0.4245147705078125, + 0.4196319580078125, + 0.40350341796875, + 0.39276123046875, + 0.38836669921875, + 0.38836669921875, + 0.39862060546875, + 0.4103546142578125, + 0.4103546142578125, + 0.4079132080078125, + 0.4093780517578125, + 0.4098663330078125, + 0.4103546142578125, + 0.4118194580078125, + 0.4123077392578125, + 0.4162139892578125, + 0.4210968017578125, + 0.4220733642578125, + 0.4220733642578125, + 0.4176788330078125, + 0.4152374267578125, + 0.4152374267578125, + 0.4191436767578125, + 0.4274444580078125, + 0.441131591796875, + 0.451385498046875, + 0.463104248046875, + 0.4699554443359375, + 0.4767913818359375, + 0.466033935546875, + 0.467010498046875, + 0.466033935546875, + 0.454315185546875, + 0.4313507080078125, + 0.39471435546875, + 0.319976806640625, + 0.1748809814453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 109.41176470588243, + 12.941176470588061 + ] + }, + { + "id": "jodp0Tp7VhtW16JCiuUWM", + "type": "freedraw", + "x": 209.1029411764688, + "y": 379.6135110294116, + "width": 68.23529411764707, + "height": 122.35294117647061, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0G", + "roundness": null, + "seed": 1288556051, + "version": 47, + "versionNonce": 624081213, + "isDeleted": false, + "boundElements": null, + "updated": 1756839714073, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.3529411764704946, + -1.176470588235361 + ], + [ + -4.705882352941217, + -2.3529411764706083 + ], + [ + -7.058823529411711, + -3.5294117647058556 + ], + [ + -9.411764705882206, + -3.5294117647058556 + ], + [ + -12.941176470588289, + -3.5294117647058556 + ], + [ + -16.470588235294144, + -2.3529411764706083 + ], + [ + -20, + 1.1764705882352473 + ], + [ + -24.705882352941217, + 5.882352941176464 + ], + [ + -29.411764705882206, + 10.58823529411768 + ], + [ + -32.94117647058829, + 17.64705882352939 + ], + [ + -35.29411764705878, + 23.529411764705856 + ], + [ + -36.470588235294144, + 29.41176470588232 + ], + [ + -35.29411764705878, + 34.117647058823536 + ], + [ + -34.11764705882342, + 38.82352941176475 + ], + [ + -32.94117647058829, + 42.35294117647061 + ], + [ + -30.588235294117567, + 45.882352941176464 + ], + [ + -29.411764705882206, + 47.058823529411825 + ], + [ + -29.411764705882206, + 48.23529411764696 + ], + [ + -28.235294117647072, + 49.41176470588232 + ], + [ + -27.05882352941171, + 48.23529411764696 + ], + [ + -24.705882352941217, + 47.058823529411825 + ], + [ + -21.176470588235134, + 43.52941176470597 + ], + [ + -17.647058823529278, + 41.17647058823525 + ], + [ + -12.941176470588289, + 38.82352941176475 + ], + [ + -9.411764705882206, + 38.82352941176475 + ], + [ + -4.705882352941217, + 41.17647058823525 + ], + [ + 0, + 45.882352941176464 + ], + [ + 5.882352941176578, + 52.941176470588175 + ], + [ + 10.588235294117794, + 63.52941176470597 + ], + [ + 16.470588235294144, + 72.94117647058818 + ], + [ + 20, + 83.52941176470597 + ], + [ + 22.352941176470722, + 92.94117647058818 + ], + [ + 23.529411764705856, + 99.99999999999989 + ], + [ + 23.529411764705856, + 105.88235294117646 + ], + [ + 23.529411764705856, + 110.58823529411768 + ], + [ + 21.17647058823536, + 114.11764705882354 + ], + [ + 12.941176470588289, + 117.64705882352939 + ], + [ + 5.882352941176578, + 118.82352941176475 + ], + [ + -2.3529411764704946, + 118.82352941176475 + ], + [ + -11.764705882352928, + 117.64705882352939 + ], + [ + -22.352941176470495, + 115.2941176470589 + ], + [ + -31.764705882352928, + 112.94117647058818 + ], + [ + -40, + 110.58823529411768 + ], + [ + -44.70588235294122, + 104.7058823529411 + ], + [ + -44.70588235294122, + 104.7058823529411 + ] + ], + "pressures": [ + 0.320465087890625, + 0.4069366455078125, + 0.4298858642578125, + 0.458221435546875, + 0.4787445068359375, + 0.4933929443359375, + 0.4977874755859375, + 0.4977874755859375, + 0.4987640380859375, + 0.501708984375, + 0.502197265625, + 0.502197265625, + 0.500244140625, + 0.4968109130859375, + 0.4943695068359375, + 0.4933929443359375, + 0.4929046630859375, + 0.4929046630859375, + 0.4899749755859375, + 0.4894866943359375, + 0.4919281005859375, + 0.4938812255859375, + 0.4938812255859375, + 0.4929046630859375, + 0.4899749755859375, + 0.4894866943359375, + 0.4894866943359375, + 0.4904632568359375, + 0.4909515380859375, + 0.4909515380859375, + 0.4885101318359375, + 0.4875335693359375, + 0.4875335693359375, + 0.4948577880859375, + 0.511962890625, + 0.524169921875, + 0.525146484375, + 0.524169921875, + 0.523681640625, + 0.518798828125, + 0.505615234375, + 0.4719085693359375, + 0.4333038330078125, + 0.38934326171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -44.70588235294122, + 104.7058823529411 + ] + }, + { + "id": "lwPkSVKFvpjPuCkVcFamS", + "type": "freedraw", + "x": 333.80882352941, + "y": 369.0252757352939, + "width": 91.76470588235293, + "height": 97.6470588235295, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0H", + "roundness": null, + "seed": 1241075197, + "version": 22, + "versionNonce": 1436263965, + "isDeleted": false, + "boundElements": null, + "updated": 1756839714708, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.176470588235361, + 0 + ], + [ + -2.3529411764704946, + 0 + ], + [ + -5.88235294117635, + 1.176470588235361 + ], + [ + -10.588235294117567, + 3.5294117647058556 + ], + [ + -16.470588235294144, + 9.41176470588232 + ], + [ + -23.529411764705856, + 16.470588235294144 + ], + [ + -32.94117647058829, + 27.058823529411825 + ], + [ + -42.352941176470495, + 40 + ], + [ + -50.58823529411757, + 51.76470588235293 + ], + [ + -56.470588235294144, + 63.529411764705856 + ], + [ + -58.82352941176464, + 74.11764705882365 + ], + [ + -55.29411764705878, + 82.3529411764705 + ], + [ + -48.23529411764707, + 89.41176470588243 + ], + [ + -36.470588235294144, + 95.29411764705878 + ], + [ + -22.352941176470495, + 97.6470588235295 + ], + [ + -7.058823529411711, + 97.6470588235295 + ], + [ + 8.235294117647072, + 96.47058823529414 + ], + [ + 22.352941176470722, + 92.94117647058829 + ], + [ + 32.94117647058829, + 87.05882352941171 + ], + [ + 32.94117647058829, + 87.05882352941171 + ] + ], + "pressures": [ + 0.2955474853515625, + 0.3531951904296875, + 0.37957763671875, + 0.4137725830078125, + 0.4240264892578125, + 0.4333038330078125, + 0.449432373046875, + 0.4689788818359375, + 0.4870452880859375, + 0.501220703125, + 0.501220703125, + 0.4977874755859375, + 0.4880218505859375, + 0.4787445068359375, + 0.463592529296875, + 0.447479248046875, + 0.4333038330078125, + 0.37713623046875, + 0.2701416015625, + 0.00244140625, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 32.94117647058829, + 87.05882352941171 + ] + }, + { + "id": "Mi67Brv4zXNiVU_iwangX", + "type": "freedraw", + "x": 251.4558823529395, + "y": 437.260569852941, + "width": 81.17647058823536, + "height": 34.11764705882365, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0I", + "roundness": null, + "seed": 250905309, + "version": 16, + "versionNonce": 793646557, + "isDeleted": false, + "boundElements": null, + "updated": 1756839714987, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.176470588235361, + 0 + ], + [ + -2.352941176470722, + 1.176470588235361 + ], + [ + 0, + 1.176470588235361 + ], + [ + 3.5294117647058556, + 0 + ], + [ + 10.588235294117567, + -1.176470588235361 + ], + [ + 21.176470588235134, + -4.705882352941217 + ], + [ + 32.94117647058806, + -10.588235294117567 + ], + [ + 45.88235294117635, + -16.470588235294144 + ], + [ + 58.82352941176464, + -22.35294117647061 + ], + [ + 68.23529411764707, + -27.05882352941171 + ], + [ + 74.11764705882342, + -30.58823529411768 + ], + [ + 77.64705882352928, + -31.764705882352928 + ], + [ + 78.82352941176464, + -32.94117647058829 + ], + [ + 78.82352941176464, + -32.94117647058829 + ] + ], + "pressures": [ + 0.2330169677734375, + 0.39178466796875, + 0.40350341796875, + 0.449920654296875, + 0.4748382568359375, + 0.4787445068359375, + 0.4787445068359375, + 0.467498779296875, + 0.438201904296875, + 0.39080810546875, + 0.322906494140625, + 0.2295989990234375, + 0.0068359375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 78.82352941176464, + -32.94117647058829 + ] + }, + { + "id": "ZFB_yVbMvZGWXr5xfeSzO", + "type": "freedraw", + "x": 251.4558823529395, + "y": 467.84880514705856, + "width": 84.70588235294122, + "height": 43.529411764705856, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0J", + "roundness": null, + "seed": 924713629, + "version": 12, + "versionNonce": 2124720349, + "isDeleted": false, + "boundElements": null, + "updated": 1756839715207, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.1764705882351336, + -1.1764705882351336 + ], + [ + 8.235294117647072, + -4.705882352940989 + ], + [ + 16.470588235294144, + -9.411764705882206 + ], + [ + 27.05882352941171, + -15.294117647058783 + ], + [ + 40, + -22.352941176470495 + ], + [ + 54.11764705882342, + -29.411764705882206 + ], + [ + 67.05882352941171, + -35.29411764705878 + ], + [ + 77.64705882352928, + -40 + ], + [ + 84.70588235294122, + -43.529411764705856 + ], + [ + 84.70588235294122, + -43.529411764705856 + ] + ], + "pressures": [ + 0.328277587890625, + 0.38055419921875, + 0.38885498046875, + 0.40399169921875, + 0.40447998046875, + 0.40447998046875, + 0.37908935546875, + 0.2813873291015625, + 0.01318359375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 84.70588235294122, + -43.529411764705856 + ] + }, + { + "id": "pz6ek9hgaI_6Nx3H9e4NV", + "type": "freedraw", + "x": -39.13235294117817, + "y": 367.84880514705867, + "width": 544.7058823529411, + "height": 432.9411764705883, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0K", + "roundness": null, + "seed": 975951261, + "version": 103, + "versionNonce": 1894679955, + "isDeleted": false, + "boundElements": null, + "updated": 1756839717244, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 9.41176470588232, + 1.1764705882352473 + ], + [ + 14.117647058823536, + 3.5294117647058556 + ], + [ + 20, + 7.058823529411711 + ], + [ + 24.705882352941103, + 14.117647058823536 + ], + [ + 30.588235294117567, + 27.05882352941171 + ], + [ + 36.47058823529403, + 47.05882352941171 + ], + [ + 43.529411764705856, + 75.2941176470589 + ], + [ + 52.941176470588175, + 110.58823529411768 + ], + [ + 62.35294117647061, + 148.23529411764696 + ], + [ + 71.76470588235281, + 187.05882352941182 + ], + [ + 79.99999999999989, + 222.3529411764706 + ], + [ + 85.88235294117646, + 251.7647058823528 + ], + [ + 91.76470588235281, + 275.2941176470589 + ], + [ + 95.29411764705867, + 292.9411764705882 + ], + [ + 97.64705882352939, + 305.88235294117646 + ], + [ + 98.82352941176475, + 312.9411764705882 + ], + [ + 99.99999999999989, + 317.6470588235294 + ], + [ + 98.82352941176475, + 315.2941176470589 + ], + [ + 95.29411764705867, + 308.23529411764696 + ], + [ + 89.41176470588232, + 294.11764705882354 + ], + [ + 81.17647058823525, + 275.2941176470589 + ], + [ + 72.94117647058818, + 250.58823529411768 + ], + [ + 64.7058823529411, + 221.17647058823525 + ], + [ + 56.47058823529403, + 190.58823529411768 + ], + [ + 49.41176470588232, + 158.82352941176475 + ], + [ + 44.7058823529411, + 128.23529411764696 + ], + [ + 41.17647058823525, + 98.82352941176475 + ], + [ + 40, + 70.58823529411768 + ], + [ + 38.82352941176464, + 45.882352941176464 + ], + [ + 38.82352941176464, + 23.529411764705856 + ], + [ + 38.82352941176464, + 7.058823529411711 + ], + [ + 38.82352941176464, + -3.5294117647059693 + ], + [ + 40, + -9.411764705882433 + ], + [ + 40, + -11.764705882352928 + ], + [ + 42.352941176470495, + -12.941176470588289 + ], + [ + 44.7058823529411, + -14.117647058823536 + ], + [ + 49.41176470588232, + -15.294117647058897 + ], + [ + 55.29411764705878, + -16.470588235294144 + ], + [ + 62.35294117647061, + -18.823529411764753 + ], + [ + 71.76470588235281, + -22.35294117647061 + ], + [ + 84.7058823529411, + -27.058823529411825 + ], + [ + 98.82352941176475, + -31.764705882352928 + ], + [ + 117.64705882352939, + -37.64705882352939 + ], + [ + 137.6470588235294, + -43.52941176470597 + ], + [ + 158.82352941176475, + -49.41176470588243 + ], + [ + 181.17647058823525, + -54.117647058823536 + ], + [ + 202.3529411764706, + -58.82352941176475 + ], + [ + 221.17647058823525, + -63.52941176470597 + ], + [ + 238.82352941176475, + -68.23529411764707 + ], + [ + 256.47058823529403, + -74.11764705882354 + ], + [ + 274.11764705882354, + -78.82352941176475 + ], + [ + 290.5882352941177, + -83.52941176470597 + ], + [ + 305.88235294117646, + -88.23529411764707 + ], + [ + 322.3529411764706, + -92.94117647058829 + ], + [ + 337.6470588235294, + -97.6470588235295 + ], + [ + 352.9411764705882, + -102.35294117647061 + ], + [ + 369.4117647058823, + -105.88235294117646 + ], + [ + 384.7058823529411, + -109.41176470588243 + ], + [ + 398.82352941176475, + -112.94117647058829 + ], + [ + 410.5882352941177, + -114.11764705882354 + ], + [ + 421.17647058823525, + -115.2941176470589 + ], + [ + 430.5882352941177, + -115.2941176470589 + ], + [ + 437.6470588235294, + -115.2941176470589 + ], + [ + 444.7058823529411, + -114.11764705882354 + ], + [ + 451.7647058823528, + -111.76470588235293 + ], + [ + 468.23529411764696, + -105.88235294117646 + ], + [ + 478.82352941176475, + -102.35294117647061 + ], + [ + 490.5882352941177, + -97.6470588235295 + ], + [ + 502.3529411764706, + -91.76470588235293 + ], + [ + 514.1176470588235, + -84.70588235294122 + ], + [ + 523.5294117647057, + -75.2941176470589 + ], + [ + 531.7647058823528, + -65.88235294117646 + ], + [ + 538.8235294117648, + -56.470588235294144 + ], + [ + 542.3529411764706, + -44.70588235294122 + ], + [ + 544.7058823529411, + -32.94117647058829 + ], + [ + 544.7058823529411, + -20 + ], + [ + 542.3529411764706, + -7.058823529411825 + ], + [ + 531.7647058823528, + 15.294117647058783 + ], + [ + 523.5294117647057, + 25.882352941176464 + ], + [ + 512.9411764705882, + 38.82352941176464 + ], + [ + 498.82352941176475, + 51.764705882352814 + ], + [ + 482.3529411764706, + 65.88235294117646 + ], + [ + 464.7058823529411, + 81.17647058823525 + ], + [ + 444.7058823529411, + 96.47058823529403 + ], + [ + 424.7058823529411, + 112.94117647058818 + ], + [ + 403.52941176470574, + 128.23529411764696 + ], + [ + 383.52941176470574, + 142.3529411764706 + ], + [ + 364.7058823529411, + 154.11764705882354 + ], + [ + 348.23529411764696, + 164.7058823529411 + ], + [ + 334.11764705882354, + 174.11764705882354 + ], + [ + 322.3529411764706, + 182.3529411764706 + ], + [ + 309.4117647058823, + 188.23529411764696 + ], + [ + 285.88235294117646, + 199.9999999999999 + ], + [ + 262.3529411764706, + 207.05882352941182 + ], + [ + 239.9999999999999, + 211.7647058823528 + ], + [ + 230.58823529411768, + 212.94117647058818 + ], + [ + 221.17647058823525, + 212.94117647058818 + ], + [ + 212.94117647058818, + 212.94117647058818 + ], + [ + 204.7058823529411, + 212.94117647058818 + ], + [ + 198.82352941176475, + 211.7647058823528 + ], + [ + 198.82352941176475, + 211.7647058823528 + ] + ], + "pressures": [ + 0.3004302978515625, + 0.2457122802734375, + 0.2647705078125, + 0.2916412353515625, + 0.322906494140625, + 0.3644256591796875, + 0.39031982421875, + 0.40008544921875, + 0.40008544921875, + 0.39324951171875, + 0.38055419921875, + 0.3697967529296875, + 0.3649139404296875, + 0.3649139404296875, + 0.3649139404296875, + 0.3639373779296875, + 0.3439178466796875, + 0.322418212890625, + 0.2789306640625, + 0.2716064453125, + 0.2613525390625, + 0.2515869140625, + 0.2476654052734375, + 0.2388763427734375, + 0.2388763427734375, + 0.2466888427734375, + 0.2613525390625, + 0.2633056640625, + 0.2647705078125, + 0.2647705078125, + 0.2681884765625, + 0.2999420166015625, + 0.330230712890625, + 0.3448944091796875, + 0.3448944091796875, + 0.342437744140625, + 0.342437744140625, + 0.342437744140625, + 0.342437744140625, + 0.3497772216796875, + 0.3668670654296875, + 0.37811279296875, + 0.38983154296875, + 0.39569091796875, + 0.39666748046875, + 0.39666748046875, + 0.38104248046875, + 0.3722381591796875, + 0.3712615966796875, + 0.3712615966796875, + 0.3717498779296875, + 0.3717498779296875, + 0.3737030029296875, + 0.37908935546875, + 0.38787841796875, + 0.39813232421875, + 0.39813232421875, + 0.39715576171875, + 0.38104248046875, + 0.3571014404296875, + 0.342926025390625, + 0.336090087890625, + 0.336090087890625, + 0.335601806640625, + 0.335601806640625, + 0.340972900390625, + 0.3639373779296875, + 0.3722381591796875, + 0.3737030029296875, + 0.3741912841796875, + 0.3741912841796875, + 0.3741912841796875, + 0.38201904296875, + 0.38641357421875, + 0.38641357421875, + 0.38641357421875, + 0.38104248046875, + 0.37908935546875, + 0.37908935546875, + 0.37908935546875, + 0.37908935546875, + 0.38104248046875, + 0.38592529296875, + 0.39129638671875, + 0.4123077392578125, + 0.449920654296875, + 0.4894866943359375, + 0.524658203125, + 0.5437164306640625, + 0.5437164306640625, + 0.5402984619140625, + 0.519775390625, + 0.4997406005859375, + 0.447479248046875, + 0.40350341796875, + 0.319488525390625, + 0.3072662353515625, + 0.2931060791015625, + 0.2491302490234375, + 0.1573028564453125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 198.82352941176475, + 211.7647058823528 + ] + }, + { + "id": "gLn8gGeEIFkM7l2YRWZDr", + "type": "freedraw", + "x": 27.926470588233656, + "y": 484.3193933823527, + "width": 224.70588235294133, + "height": 18.82352941176464, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0L", + "roundness": null, + "seed": 291667155, + "version": 24, + "versionNonce": 2045851731, + "isDeleted": false, + "boundElements": null, + "updated": 1756839718711, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -8.235294117647072, + 2.352941176470722 + ], + [ + -12.941176470588289, + 2.352941176470722 + ], + [ + -21.17647058823536, + 3.5294117647058556 + ], + [ + -25.882352941176578, + 3.5294117647058556 + ], + [ + -31.76470588235304, + 3.5294117647058556 + ], + [ + -38.823529411764866, + 3.5294117647058556 + ], + [ + -48.235294117647186, + 2.352941176470722 + ], + [ + -61.17647058823536, + 2.352941176470722 + ], + [ + -76.47058823529426, + 2.352941176470722 + ], + [ + -92.94117647058829, + 1.176470588235361 + ], + [ + -110.5882352941178, + 0 + ], + [ + -129.41176470588243, + -2.3529411764704946 + ], + [ + -148.2352941176472, + -4.705882352941217 + ], + [ + -165.88235294117658, + -8.235294117647072 + ], + [ + -182.35294117647072, + -10.588235294117567 + ], + [ + -197.6470588235295, + -12.941176470588289 + ], + [ + -209.41176470588243, + -14.117647058823422 + ], + [ + -217.6470588235295, + -15.294117647058783 + ], + [ + -222.35294117647072, + -14.117647058823422 + ], + [ + -224.70588235294133, + -12.941176470588289 + ], + [ + -223.52941176470597, + -10.588235294117567 + ], + [ + -223.52941176470597, + -10.588235294117567 + ] + ], + "pressures": [ + 0.324859619140625, + 0.39031982421875, + 0.4171905517578125, + 0.457733154296875, + 0.467010498046875, + 0.4728851318359375, + 0.4763031005859375, + 0.4792327880859375, + 0.4816741943359375, + 0.4831390380859375, + 0.4870452880859375, + 0.4953460693359375, + 0.503173828125, + 0.505615234375, + 0.506591796875, + 0.509521484375, + 0.509521484375, + 0.502197265625, + 0.454803466796875, + 0.3522186279296875, + 0.1221160888671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -223.52941176470597, + -10.588235294117567 + ] + }, + { + "id": "9s6uPk6PRERJTYbq7e2hN", + "type": "freedraw", + "x": -229.72058823529585, + "y": 505.49586397058806, + "width": 89.41176470588232, + "height": 111.76470588235293, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0M", + "roundness": null, + "seed": 1307017107, + "version": 59, + "versionNonce": 1071152637, + "isDeleted": false, + "boundElements": null, + "updated": 1756839719406, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.3529411764706083, + 0 + ], + [ + -4.705882352941217, + 1.176470588235361 + ], + [ + -5.882352941176464, + 1.176470588235361 + ], + [ + -7.058823529411825, + 0 + ], + [ + -8.235294117647072, + -1.176470588235361 + ], + [ + -10.58823529411768, + -3.5294117647058556 + ], + [ + -12.941176470588289, + -7.058823529411711 + ], + [ + -17.64705882352939, + -11.764705882352928 + ], + [ + -22.35294117647061, + -17.647058823529505 + ], + [ + -27.058823529411825, + -23.529411764705856 + ], + [ + -31.764705882352928, + -29.411764705882433 + ], + [ + -35.2941176470589, + -34.11764705882365 + ], + [ + -38.82352941176475, + -37.647058823529505 + ], + [ + -41.17647058823536, + -38.82352941176464 + ], + [ + -42.35294117647061, + -40 + ], + [ + -41.17647058823536, + -40 + ], + [ + -38.82352941176475, + -40 + ], + [ + -32.94117647058829, + -41.17647058823536 + ], + [ + -24.705882352941217, + -41.17647058823536 + ], + [ + -15.294117647058897, + -42.352941176470495 + ], + [ + -5.882352941176464, + -43.529411764705856 + ], + [ + 3.5294117647058556, + -45.88235294117658 + ], + [ + 14.117647058823536, + -47.05882352941171 + ], + [ + 23.529411764705856, + -49.41176470588243 + ], + [ + 31.764705882352928, + -51.76470588235293 + ], + [ + 37.64705882352939, + -54.11764705882365 + ], + [ + 42.35294117647061, + -56.470588235294144 + ], + [ + 44.7058823529411, + -58.82352941176464 + ], + [ + 45.882352941176464, + -62.352941176470495 + ], + [ + 47.05882352941171, + -64.70588235294122 + ], + [ + 47.05882352941171, + -69.41176470588243 + ], + [ + 45.882352941176464, + -72.94117647058829 + ], + [ + 43.529411764705856, + -76.47058823529414 + ], + [ + 41.17647058823525, + -80 + ], + [ + 38.82352941176464, + -82.3529411764705 + ], + [ + 37.64705882352939, + -82.3529411764705 + ], + [ + 35.29411764705878, + -82.3529411764705 + ], + [ + 34.117647058823536, + -82.3529411764705 + ], + [ + 31.764705882352928, + -80 + ], + [ + 29.41176470588232, + -76.47058823529414 + ], + [ + 25.882352941176464, + -70.58823529411757 + ], + [ + 23.529411764705856, + -62.352941176470495 + ], + [ + 20, + -52.94117647058829 + ], + [ + 16.470588235294144, + -43.529411764705856 + ], + [ + 10.58823529411768, + -31.764705882352928 + ], + [ + -2.3529411764706083, + -7.058823529411711 + ], + [ + -10.58823529411768, + 3.5294117647058556 + ], + [ + -18.823529411764753, + 14.117647058823422 + ], + [ + -24.705882352941217, + 21.17647058823536 + ], + [ + -29.41176470588232, + 25.88235294117635 + ], + [ + -32.94117647058829, + 28.235294117647072 + ], + [ + -34.117647058823536, + 29.411764705882433 + ], + [ + -31.764705882352928, + 27.05882352941171 + ], + [ + -28.235294117647072, + 24.705882352941217 + ], + [ + -23.529411764705856, + 18.82352941176464 + ], + [ + -17.64705882352939, + 11.764705882352928 + ], + [ + -17.64705882352939, + 11.764705882352928 + ] + ], + "pressures": [ + 0.39324951171875, + 0.4181671142578125, + 0.4181671142578125, + 0.4176788330078125, + 0.4367218017578125, + 0.440643310546875, + 0.442108154296875, + 0.442596435546875, + 0.442596435546875, + 0.441131591796875, + 0.4372100830078125, + 0.4313507080078125, + 0.4313507080078125, + 0.4333038330078125, + 0.438690185546875, + 0.4328155517578125, + 0.4289093017578125, + 0.4284210205078125, + 0.4289093017578125, + 0.4289093017578125, + 0.4293975830078125, + 0.4293975830078125, + 0.4303741455078125, + 0.4303741455078125, + 0.4298858642578125, + 0.4298858642578125, + 0.4293975830078125, + 0.4293975830078125, + 0.4318389892578125, + 0.437713623046875, + 0.445526123046875, + 0.450408935546875, + 0.452362060546875, + 0.455780029296875, + 0.461151123046875, + 0.4772796630859375, + 0.4880218505859375, + 0.4885101318359375, + 0.4885101318359375, + 0.4870452880859375, + 0.4855804443359375, + 0.4850921630859375, + 0.4850921630859375, + 0.4846038818359375, + 0.4846038818359375, + 0.4841156005859375, + 0.4826507568359375, + 0.4826507568359375, + 0.4826507568359375, + 0.4826507568359375, + 0.4811859130859375, + 0.467010498046875, + 0.440643310546875, + 0.2989654541015625, + 0.2281341552734375, + 0.080108642578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -17.64705882352939, + 11.764705882352928 + ] + }, + { + "id": "abAOGYPFN4zwVbbY7_DmA", + "type": "freedraw", + "x": 150.27941176470415, + "y": 697.260569852941, + "width": 89.41176470588243, + "height": 124.70588235294122, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0N", + "roundness": null, + "seed": 51349811, + "version": 42, + "versionNonce": 250471251, + "isDeleted": false, + "boundElements": null, + "updated": 1756839723316, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -4.705882352941217 + ], + [ + 2.3529411764704946, + -18.82352941176464 + ], + [ + 3.5294117647058556, + -27.05882352941171 + ], + [ + 5.88235294117635, + -43.529411764705856 + ], + [ + 7.058823529411711, + -49.41176470588243 + ], + [ + 8.235294117647072, + -52.94117647058829 + ], + [ + 9.411764705882433, + -55.29411764705878 + ], + [ + 10.588235294117567, + -55.29411764705878 + ], + [ + 12.941176470588289, + -55.29411764705878 + ], + [ + 15.294117647058783, + -54.11764705882342 + ], + [ + 18.82352941176464, + -50.58823529411757 + ], + [ + 23.529411764705856, + -43.529411764705856 + ], + [ + 28.235294117647072, + -35.29411764705878 + ], + [ + 32.94117647058829, + -24.705882352941217 + ], + [ + 37.647058823529505, + -11.764705882352928 + ], + [ + 41.17647058823536, + 1.176470588235361 + ], + [ + 42.352941176470495, + 14.11764705882365 + ], + [ + 42.352941176470495, + 27.05882352941171 + ], + [ + 40, + 38.82352941176464 + ], + [ + 36.470588235294144, + 49.41176470588243 + ], + [ + 31.764705882352928, + 57.647058823529505 + ], + [ + 27.05882352941171, + 63.529411764705856 + ], + [ + 21.17647058823536, + 67.05882352941171 + ], + [ + 17.647058823529505, + 69.41176470588243 + ], + [ + 15.294117647058783, + 68.23529411764707 + ], + [ + 12.941176470588289, + 65.88235294117658 + ], + [ + 12.941176470588289, + 61.17647058823536 + ], + [ + 15.294117647058783, + 55.29411764705878 + ], + [ + 18.82352941176464, + 49.41176470588243 + ], + [ + 25.88235294117635, + 43.529411764705856 + ], + [ + 32.94117647058829, + 38.82352941176464 + ], + [ + 41.17647058823536, + 36.470588235294144 + ], + [ + 49.41176470588243, + 34.11764705882365 + ], + [ + 58.82352941176464, + 34.11764705882365 + ], + [ + 67.05882352941171, + 34.11764705882365 + ], + [ + 74.11764705882342, + 35.29411764705878 + ], + [ + 80, + 35.29411764705878 + ], + [ + 84.70588235294122, + 36.470588235294144 + ], + [ + 89.41176470588243, + 37.647058823529505 + ], + [ + 89.41176470588243, + 37.647058823529505 + ] + ], + "pressures": [ + 0.4279327392578125, + 0.39617919921875, + 0.39715576171875, + 0.39764404296875, + 0.40252685546875, + 0.40252685546875, + 0.40155029296875, + 0.40155029296875, + 0.40496826171875, + 0.4084014892578125, + 0.4103546142578125, + 0.4113311767578125, + 0.4113311767578125, + 0.4079132080078125, + 0.40399169921875, + 0.39031982421875, + 0.3658905029296875, + 0.340972900390625, + 0.328277587890625, + 0.327789306640625, + 0.327301025390625, + 0.327301025390625, + 0.338531494140625, + 0.3483123779296875, + 0.3614959716796875, + 0.3614959716796875, + 0.3663787841796875, + 0.3707733154296875, + 0.3707733154296875, + 0.3707733154296875, + 0.3707733154296875, + 0.3693084716796875, + 0.3693084716796875, + 0.3717498779296875, + 0.3732147216796875, + 0.3732147216796875, + 0.3595428466796875, + 0.3121490478515625, + 0.212982177734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 89.41176470588243, + 37.647058823529505 + ] + }, + { + "id": "qOoxve_sJYZCc_zvx7N-J", + "type": "freedraw", + "x": 210.27941176470415, + "y": 640.7899816176468, + "width": 96.47058823529414, + "height": 100, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0O", + "roundness": null, + "seed": 1173711507, + "version": 51, + "versionNonce": 2125711741, + "isDeleted": false, + "boundElements": null, + "updated": 1756839723887, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.5294117647058556, + 1.176470588235361 + ], + [ + 7.058823529411711, + 4.705882352941217 + ], + [ + 11.764705882352928, + 10.588235294117567 + ], + [ + 17.647058823529505, + 20 + ], + [ + 23.529411764705856, + 30.588235294117567 + ], + [ + 28.235294117647072, + 41.17647058823536 + ], + [ + 30.588235294117567, + 52.94117647058829 + ], + [ + 32.94117647058829, + 64.70588235294122 + ], + [ + 34.11764705882342, + 75.29411764705878 + ], + [ + 32.94117647058829, + 84.70588235294122 + ], + [ + 32.94117647058829, + 91.76470588235293 + ], + [ + 30.588235294117567, + 96.47058823529414 + ], + [ + 29.411764705882433, + 100 + ], + [ + 28.235294117647072, + 100 + ], + [ + 27.05882352941171, + 98.82352941176464 + ], + [ + 25.88235294117635, + 96.47058823529414 + ], + [ + 25.88235294117635, + 91.76470588235293 + ], + [ + 24.705882352941217, + 84.70588235294122 + ], + [ + 24.705882352941217, + 77.6470588235295 + ], + [ + 25.88235294117635, + 69.41176470588243 + ], + [ + 25.88235294117635, + 61.17647058823536 + ], + [ + 27.05882352941171, + 52.94117647058829 + ], + [ + 28.235294117647072, + 47.05882352941171 + ], + [ + 29.411764705882433, + 41.17647058823536 + ], + [ + 30.588235294117567, + 36.470588235294144 + ], + [ + 30.588235294117567, + 32.94117647058829 + ], + [ + 31.764705882352928, + 30.588235294117567 + ], + [ + 32.94117647058829, + 28.235294117647072 + ], + [ + 34.11764705882342, + 28.235294117647072 + ], + [ + 36.470588235294144, + 29.411764705882433 + ], + [ + 38.82352941176464, + 32.94117647058829 + ], + [ + 43.529411764705856, + 36.470588235294144 + ], + [ + 48.23529411764707, + 40 + ], + [ + 52.94117647058829, + 43.529411764705856 + ], + [ + 56.470588235294144, + 47.05882352941171 + ], + [ + 58.82352941176464, + 49.41176470588243 + ], + [ + 61.17647058823536, + 51.76470588235293 + ], + [ + 63.529411764705856, + 52.94117647058829 + ], + [ + 65.88235294117658, + 54.11764705882365 + ], + [ + 67.05882352941171, + 54.11764705882365 + ], + [ + 68.23529411764707, + 54.11764705882365 + ], + [ + 70.58823529411757, + 54.11764705882365 + ], + [ + 72.94117647058829, + 52.94117647058829 + ], + [ + 76.47058823529414, + 51.76470588235293 + ], + [ + 80, + 50.588235294117794 + ], + [ + 85.88235294117658, + 48.23529411764707 + ], + [ + 90.58823529411757, + 47.05882352941171 + ], + [ + 96.47058823529414, + 44.70588235294122 + ], + [ + 96.47058823529414, + 44.70588235294122 + ] + ], + "pressures": [ + 0.3658905029296875, + 0.40594482421875, + 0.4123077392578125, + 0.4123077392578125, + 0.4113311767578125, + 0.40008544921875, + 0.38739013671875, + 0.3717498779296875, + 0.3629608154296875, + 0.3624725341796875, + 0.3624725341796875, + 0.3722381591796875, + 0.3722381591796875, + 0.3658905029296875, + 0.3619842529296875, + 0.3614959716796875, + 0.3614959716796875, + 0.3688201904296875, + 0.37860107421875, + 0.38836669921875, + 0.39813232421875, + 0.40155029296875, + 0.40496826171875, + 0.4103546142578125, + 0.4162139892578125, + 0.4206085205078125, + 0.4240264892578125, + 0.4240264892578125, + 0.4240264892578125, + 0.444061279296875, + 0.447479248046875, + 0.447479248046875, + 0.444061279296875, + 0.4337921142578125, + 0.4137725830078125, + 0.39910888671875, + 0.39422607421875, + 0.39324951171875, + 0.39324951171875, + 0.38641357421875, + 0.37615966796875, + 0.3697967529296875, + 0.3697967529296875, + 0.3707733154296875, + 0.37713623046875, + 0.37713623046875, + 0.3658905029296875, + 0.2408294677734375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 96.47058823529414, + 44.70588235294122 + ] + }, + { + "id": "yEoyVByHs6YBZnrLNOVDQ", + "type": "freedraw", + "x": 292.63235294117464, + "y": 657.260569852941, + "width": 31.764705882352928, + "height": 22.352941176470495, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0P", + "roundness": null, + "seed": 1042501181, + "version": 10, + "versionNonce": 1798948893, + "isDeleted": false, + "boundElements": null, + "updated": 1756839724455, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 8.235294117647072, + -3.5294117647058556 + ], + [ + 14.11764705882365, + -5.882352941176578 + ], + [ + 18.823529411764866, + -9.411764705882433 + ], + [ + 24.705882352941217, + -12.941176470588289 + ], + [ + 28.235294117647072, + -16.470588235294144 + ], + [ + 30.588235294117794, + -18.82352941176464 + ], + [ + 31.764705882352928, + -22.352941176470495 + ], + [ + 31.764705882352928, + -22.352941176470495 + ] + ], + "pressures": [ + 0.330230712890625, + 0.4899749755859375, + 0.4899749755859375, + 0.4899749755859375, + 0.466522216796875, + 0.4064483642578125, + 0.2828521728515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 31.764705882352928, + -22.352941176470495 + ] + }, + { + "id": "KZDQAS51FqPq5LDjTa6lL", + "type": "freedraw", + "x": 304.3970588235276, + "y": 623.1429227941176, + "width": 65.88235294117658, + "height": 52.94117647058829, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Q", + "roundness": null, + "seed": 150086877, + "version": 38, + "versionNonce": 37616637, + "isDeleted": false, + "boundElements": null, + "updated": 1756839724851, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 2.352941176470722, + 0 + ], + [ + 5.882352941176578, + 0 + ], + [ + 10.588235294117794, + 0 + ], + [ + 17.647058823529505, + 1.1764705882351336 + ], + [ + 24.705882352941217, + 1.1764705882351336 + ], + [ + 32.94117647058829, + 3.5294117647058556 + ], + [ + 41.17647058823536, + 4.705882352940989 + ], + [ + 48.23529411764707, + 5.88235294117635 + ], + [ + 55.29411764705901, + 7.058823529411711 + ], + [ + 60, + 8.235294117646845 + ], + [ + 63.52941176470608, + 9.411764705882206 + ], + [ + 65.88235294117658, + 10.588235294117567 + ], + [ + 65.88235294117658, + 11.764705882352928 + ], + [ + 63.52941176470608, + 15.294117647058783 + ], + [ + 61.17647058823536, + 17.647058823529278 + ], + [ + 56.470588235294144, + 22.352941176470495 + ], + [ + 50.588235294117794, + 27.05882352941171 + ], + [ + 44.70588235294122, + 30.588235294117567 + ], + [ + 40, + 34.11764705882342 + ], + [ + 35.29411764705901, + 36.47058823529392 + ], + [ + 32.94117647058829, + 37.64705882352928 + ], + [ + 31.764705882353155, + 37.64705882352928 + ], + [ + 30.588235294117794, + 36.47058823529392 + ], + [ + 29.411764705882433, + 34.11764705882342 + ], + [ + 29.411764705882433, + 30.588235294117567 + ], + [ + 29.411764705882433, + 25.88235294117635 + ], + [ + 28.235294117647072, + 21.176470588235134 + ], + [ + 28.235294117647072, + 15.294117647058783 + ], + [ + 28.235294117647072, + 10.588235294117567 + ], + [ + 28.235294117647072, + 4.705882352940989 + ], + [ + 27.05882352941194, + -1.176470588235361 + ], + [ + 25.882352941176578, + -5.882352941176578 + ], + [ + 25.882352941176578, + -10.588235294117794 + ], + [ + 24.705882352941217, + -12.941176470588289 + ], + [ + 24.705882352941217, + -15.29411764705901 + ], + [ + 24.705882352941217, + -15.29411764705901 + ] + ], + "pressures": [ + 0.2882232666015625, + 0.4753265380859375, + 0.501708984375, + 0.521240234375, + 0.527099609375, + 0.527099609375, + 0.524658203125, + 0.510498046875, + 0.4797210693359375, + 0.4303741455078125, + 0.38006591796875, + 0.3556365966796875, + 0.3512420654296875, + 0.3444061279296875, + 0.3444061279296875, + 0.3678436279296875, + 0.39910888671875, + 0.4303741455078125, + 0.455291748046875, + 0.4704437255859375, + 0.4714202880859375, + 0.4714202880859375, + 0.467987060546875, + 0.466033935546875, + 0.465057373046875, + 0.465057373046875, + 0.461639404296875, + 0.461639404296875, + 0.462127685546875, + 0.462127685546875, + 0.462615966796875, + 0.462615966796875, + 0.455780029296875, + 0.4289093017578125, + 0.38983154296875, + 0.2979888916015625, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 24.705882352941217, + -15.29411764705901 + ] + }, + { + "id": "c6_5ZX32ua4-tVoddfJU-", + "type": "freedraw", + "x": 362.0441176470571, + "y": 607.8488051470586, + "width": 65.88235294117658, + "height": 78.82352941176487, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0R", + "roundness": null, + "seed": 1034084541, + "version": 35, + "versionNonce": 1268114739, + "isDeleted": false, + "boundElements": null, + "updated": 1756839725403, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1.1764705882351336 + ], + [ + -1.176470588235361, + -2.3529411764704946 + ], + [ + -1.176470588235361, + -3.5294117647058556 + ], + [ + 0, + -4.705882352940989 + ], + [ + 0, + -5.88235294117635 + ], + [ + 1.176470588235361, + -7.058823529411711 + ], + [ + 3.5294117647058556, + -8.235294117647072 + ], + [ + 4.705882352941217, + -8.235294117647072 + ], + [ + 8.235294117647072, + -7.058823529411711 + ], + [ + 11.764705882352928, + -3.5294117647058556 + ], + [ + 17.647058823529505, + 3.5294117647058556 + ], + [ + 23.529411764705856, + 11.764705882352928 + ], + [ + 29.411764705882433, + 20 + ], + [ + 35.29411764705878, + 28.235294117647072 + ], + [ + 41.17647058823536, + 35.29411764705901 + ], + [ + 45.88235294117658, + 38.823529411764866 + ], + [ + 50.58823529411757, + 42.35294117647072 + ], + [ + 55.29411764705878, + 42.35294117647072 + ], + [ + 58.82352941176464, + 42.35294117647072 + ], + [ + 62.352941176470495, + 38.823529411764866 + ], + [ + 63.529411764705856, + 34.11764705882365 + ], + [ + 64.70588235294122, + 28.235294117647072 + ], + [ + 64.70588235294122, + 20 + ], + [ + 63.529411764705856, + 10.588235294117794 + ], + [ + 61.17647058823536, + 1.176470588235361 + ], + [ + 58.82352941176464, + -9.411764705882206 + ], + [ + 55.29411764705878, + -18.82352941176464 + ], + [ + 51.76470588235293, + -27.05882352941171 + ], + [ + 48.23529411764707, + -32.94117647058806 + ], + [ + 47.05882352941171, + -35.29411764705878 + ], + [ + 45.88235294117658, + -36.470588235294144 + ], + [ + 45.88235294117658, + -35.29411764705878 + ], + [ + 45.88235294117658, + -35.29411764705878 + ] + ], + "pressures": [ + 0.2286224365234375, + 0.2926177978515625, + 0.332183837890625, + 0.3737030029296875, + 0.40594482421875, + 0.4352569580078125, + 0.455780029296875, + 0.461151123046875, + 0.4758148193359375, + 0.4860687255859375, + 0.4860687255859375, + 0.4841156005859375, + 0.4777679443359375, + 0.4694671630859375, + 0.458709716796875, + 0.445526123046875, + 0.4220733642578125, + 0.39373779296875, + 0.37811279296875, + 0.37518310546875, + 0.37518310546875, + 0.38348388671875, + 0.39715576171875, + 0.4181671142578125, + 0.438201904296875, + 0.457733154296875, + 0.467010498046875, + 0.467010498046875, + 0.459686279296875, + 0.4240264892578125, + 0.339019775390625, + 0.204193115234375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 45.88235294117658, + -35.29411764705878 + ] + }, + { + "id": "y5yR6cFEtmx9-cImvwGMJ", + "type": "freedraw", + "x": 446.7499999999983, + "y": 611.3782169117644, + "width": 2.352941176470722, + "height": 31.764705882353155, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0S", + "roundness": null, + "seed": 1747874931, + "version": 9, + "versionNonce": 307952061, + "isDeleted": false, + "boundElements": null, + "updated": 1756839725570, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.176470588235361, + 2.352941176470722 + ], + [ + -2.352941176470722, + 11.764705882353155 + ], + [ + -2.352941176470722, + 17.647058823529505 + ], + [ + -2.352941176470722, + 23.529411764706083 + ], + [ + -1.176470588235361, + 28.235294117647072 + ], + [ + 0, + 31.764705882353155 + ], + [ + 0, + 31.764705882353155 + ] + ], + "pressures": [ + 0.4284210205078125, + 0.40008544921875, + 0.3732147216796875, + 0.3522186279296875, + 0.3062896728515625, + 0.199798583984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 0, + 31.764705882353155 + ] + }, + { + "id": "i_nfmeFoclx7itMc8INtp", + "type": "freedraw", + "x": 436.1617647058807, + "y": 560.7899816176468, + "width": 8.235294117647072, + "height": 11.764705882352928, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0T", + "roundness": null, + "seed": 1902866045, + "version": 10, + "versionNonce": 338018397, + "isDeleted": false, + "boundElements": null, + "updated": 1756839725757, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.529411764706083, + 1.176470588235361 + ], + [ + -4.705882352941217, + 2.352941176470722 + ], + [ + -5.882352941176578, + 3.5294117647058556 + ], + [ + -4.705882352941217, + 7.058823529411711 + ], + [ + -3.529411764706083, + 9.411764705882433 + ], + [ + -1.176470588235361, + 10.588235294117567 + ], + [ + 2.3529411764704946, + 11.764705882352928 + ], + [ + 2.3529411764704946, + 11.764705882352928 + ] + ], + "pressures": [ + 0.38153076171875, + 0.449920654296875, + 0.4709320068359375, + 0.4709320068359375, + 0.4137725830078125, + 0.326324462890625, + 0.085968017578125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 2.3529411764704946, + 11.764705882352928 + ] + }, + { + "id": "bwHPBfAl_5VDe3WoYV-m6", + "type": "freedraw", + "x": 484.3970588235276, + "y": 579.6135110294115, + "width": 49.41176470588243, + "height": 51.76470588235293, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0U", + "roundness": null, + "seed": 1290603805, + "version": 44, + "versionNonce": 1544091997, + "isDeleted": false, + "boundElements": null, + "updated": 1756839726285, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1764705882351336, + -2.3529411764704946 + ], + [ + -2.3529411764704946, + -2.3529411764704946 + ], + [ + -3.5294117647058556, + -3.5294117647058556 + ], + [ + -3.5294117647058556, + -4.705882352940989 + ], + [ + -2.3529411764704946, + -5.88235294117635 + ], + [ + -1.1764705882351336, + -5.88235294117635 + ], + [ + -1.1764705882351336, + -7.058823529411711 + ], + [ + -2.3529411764704946, + -7.058823529411711 + ], + [ + -4.705882352940989, + -5.88235294117635 + ], + [ + -7.058823529411711, + -3.5294117647058556 + ], + [ + -9.411764705882206, + 1.176470588235361 + ], + [ + -12.941176470588061, + 7.058823529411939 + ], + [ + -15.294117647058783, + 15.29411764705901 + ], + [ + -15.294117647058783, + 23.529411764706083 + ], + [ + -14.117647058823422, + 30.588235294117794 + ], + [ + -12.941176470588061, + 37.647058823529505 + ], + [ + -9.411764705882206, + 41.17647058823536 + ], + [ + -4.705882352940989, + 43.52941176470608 + ], + [ + -1.1764705882351336, + 44.70588235294122 + ], + [ + 2.352941176470722, + 43.52941176470608 + ], + [ + 5.882352941176578, + 40 + ], + [ + 8.235294117647072, + 35.29411764705901 + ], + [ + 10.588235294117794, + 30.588235294117794 + ], + [ + 11.764705882353155, + 23.529411764706083 + ], + [ + 11.764705882353155, + 17.647058823529505 + ], + [ + 10.588235294117794, + 11.764705882352928 + ], + [ + 10.588235294117794, + 5.882352941176578 + ], + [ + 9.411764705882433, + 1.176470588235361 + ], + [ + 8.235294117647072, + -2.3529411764704946 + ], + [ + 7.058823529411939, + -2.3529411764704946 + ], + [ + 7.058823529411939, + -1.1764705882351336 + ], + [ + 7.058823529411939, + 2.352941176470722 + ], + [ + 8.235294117647072, + 7.058823529411939 + ], + [ + 10.588235294117794, + 12.941176470588289 + ], + [ + 12.941176470588289, + 18.823529411764866 + ], + [ + 16.470588235294144, + 22.352941176470722 + ], + [ + 20, + 25.882352941176578 + ], + [ + 23.529411764706083, + 28.235294117647072 + ], + [ + 28.235294117647072, + 28.235294117647072 + ], + [ + 31.764705882353155, + 27.05882352941194 + ], + [ + 34.11764705882365, + 23.529411764706083 + ], + [ + 34.11764705882365, + 23.529411764706083 + ] + ], + "pressures": [ + 0.2681884765625, + 0.2374114990234375, + 0.2354583740234375, + 0.212982177734375, + 0.192474365234375, + 0.2335052490234375, + 0.2828521728515625, + 0.3712615966796875, + 0.4352569580078125, + 0.4352569580078125, + 0.4284210205078125, + 0.4245147705078125, + 0.4210968017578125, + 0.4167022705078125, + 0.4074249267578125, + 0.39031982421875, + 0.3600311279296875, + 0.336090087890625, + 0.333160400390625, + 0.332672119140625, + 0.333160400390625, + 0.338043212890625, + 0.3453826904296875, + 0.3497772216796875, + 0.3595428466796875, + 0.38006591796875, + 0.40594482421875, + 0.4157257080078125, + 0.4186553955078125, + 0.4240264892578125, + 0.456268310546875, + 0.456268310546875, + 0.4284210205078125, + 0.4220733642578125, + 0.4220733642578125, + 0.4274444580078125, + 0.4313507080078125, + 0.4313507080078125, + 0.4167022705078125, + 0.331207275390625, + 0.1006317138671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 34.11764705882365, + 23.529411764706083 + ] + }, + { + "id": "Zac0UMldwIMLTltR4etOg", + "type": "freedraw", + "x": 525.5735294117629, + "y": 549.0252757352939, + "width": 74.11764705882365, + "height": 81.17647058823536, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0V", + "roundness": null, + "seed": 1578501661, + "version": 27, + "versionNonce": 1651094355, + "isDeleted": false, + "boundElements": null, + "updated": 1756839726579, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.5294117647058556, + 0 + ], + [ + -1.176470588235361, + 1.176470588235361 + ], + [ + 2.352941176470722, + 3.5294117647058556 + ], + [ + 9.411764705882433, + 7.058823529411711 + ], + [ + 18.82352941176464, + 12.941176470588289 + ], + [ + 28.235294117647072, + 18.82352941176464 + ], + [ + 38.82352941176464, + 24.705882352941217 + ], + [ + 48.23529411764707, + 31.764705882352928 + ], + [ + 56.470588235294144, + 37.647058823529505 + ], + [ + 62.35294117647072, + 44.70588235294122 + ], + [ + 68.23529411764707, + 50.58823529411757 + ], + [ + 70.5882352941178, + 57.647058823529505 + ], + [ + 70.5882352941178, + 63.529411764705856 + ], + [ + 68.23529411764707, + 69.41176470588243 + ], + [ + 64.70588235294122, + 74.11764705882365 + ], + [ + 57.647058823529505, + 77.6470588235295 + ], + [ + 49.41176470588243, + 80 + ], + [ + 41.17647058823536, + 81.17647058823536 + ], + [ + 34.11764705882365, + 80 + ], + [ + 27.05882352941171, + 76.47058823529414 + ], + [ + 22.352941176470722, + 71.76470588235293 + ], + [ + 18.82352941176464, + 67.05882352941171 + ], + [ + 17.647058823529505, + 61.17647058823536 + ], + [ + 18.82352941176464, + 56.470588235294144 + ], + [ + 18.82352941176464, + 56.470588235294144 + ] + ], + "pressures": [ + 0.4714202880859375, + 0.506591796875, + 0.516357421875, + 0.518798828125, + 0.521728515625, + 0.522705078125, + 0.522705078125, + 0.4933929443359375, + 0.443084716796875, + 0.39422607421875, + 0.342926025390625, + 0.3092193603515625, + 0.3033599853515625, + 0.3033599853515625, + 0.3619842529296875, + 0.4176788330078125, + 0.4782562255859375, + 0.5334625244140625, + 0.5603179931640625, + 0.5603179931640625, + 0.5349273681640625, + 0.462127685546875, + 0.3634490966796875, + 0.191986083984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 18.82352941176464, + 56.470588235294144 + ] + }, + { + "id": "VtQhsz_dYXRLCH46YcX6y", + "type": "freedraw", + "x": 572.6323529411746, + "y": 553.7311580882351, + "width": 75.29411764705878, + "height": 30.588235294117567, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0W", + "roundness": null, + "seed": 683489939, + "version": 37, + "versionNonce": 707473117, + "isDeleted": false, + "boundElements": null, + "updated": 1756839726984, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1764705882351336, + 0 + ], + [ + -1.1764705882351336, + -1.176470588235361 + ], + [ + 0, + -2.352941176470722 + ], + [ + 3.529411764706083, + -4.705882352941217 + ], + [ + 5.882352941176578, + -7.058823529411711 + ], + [ + 10.588235294117794, + -10.588235294117567 + ], + [ + 15.29411764705901, + -15.294117647058783 + ], + [ + 20, + -18.82352941176464 + ], + [ + 24.705882352941217, + -23.529411764705856 + ], + [ + 27.05882352941194, + -27.05882352941171 + ], + [ + 28.235294117647072, + -29.411764705882433 + ], + [ + 29.411764705882433, + -30.588235294117567 + ], + [ + 28.235294117647072, + -30.588235294117567 + ], + [ + 25.882352941176578, + -29.411764705882433 + ], + [ + 22.352941176470722, + -27.05882352941171 + ], + [ + 16.470588235294144, + -22.352941176470722 + ], + [ + 10.588235294117794, + -17.647058823529505 + ], + [ + 7.058823529411939, + -14.11764705882365 + ], + [ + 3.529411764706083, + -9.411764705882433 + ], + [ + 2.352941176470722, + -5.882352941176578 + ], + [ + 2.352941176470722, + -3.5294117647058556 + ], + [ + 2.352941176470722, + -2.352941176470722 + ], + [ + 4.705882352941217, + -1.176470588235361 + ], + [ + 8.235294117647072, + -1.176470588235361 + ], + [ + 14.11764705882365, + -2.352941176470722 + ], + [ + 21.17647058823536, + -3.5294117647058556 + ], + [ + 29.411764705882433, + -4.705882352941217 + ], + [ + 37.647058823529505, + -5.882352941176578 + ], + [ + 47.05882352941194, + -7.058823529411711 + ], + [ + 55.29411764705901, + -8.235294117647072 + ], + [ + 61.17647058823536, + -9.411764705882433 + ], + [ + 67.05882352941194, + -10.588235294117567 + ], + [ + 70.5882352941178, + -11.764705882352928 + ], + [ + 74.11764705882365, + -14.11764705882365 + ], + [ + 74.11764705882365, + -14.11764705882365 + ] + ], + "pressures": [ + 0.4269561767578125, + 0.4176788330078125, + 0.4176788330078125, + 0.4186553955078125, + 0.4186553955078125, + 0.4147491455078125, + 0.40496826171875, + 0.39129638671875, + 0.38836669921875, + 0.38836669921875, + 0.40008544921875, + 0.4132843017578125, + 0.440643310546875, + 0.464080810546875, + 0.464080810546875, + 0.453826904296875, + 0.453826904296875, + 0.4811859130859375, + 0.4963226318359375, + 0.4963226318359375, + 0.4948577880859375, + 0.4924163818359375, + 0.4904632568359375, + 0.4811859130859375, + 0.4719085693359375, + 0.466033935546875, + 0.443084716796875, + 0.4308624267578125, + 0.4303741455078125, + 0.4303741455078125, + 0.4245147705078125, + 0.39080810546875, + 0.326324462890625, + 0.217376708984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 74.11764705882365, + -14.11764705882365 + ] + }, + { + "id": "3bySa6qR8ClOaRuBE_g26", + "type": "freedraw", + "x": 594.9852941176454, + "y": 433.73115808823513, + "width": 72.94117647058806, + "height": 55.29411764705878, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0X", + "roundness": null, + "seed": 776526749, + "version": 25, + "versionNonce": 1917445171, + "isDeleted": false, + "boundElements": null, + "updated": 1756839727408, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.705882352941217, + 0 + ], + [ + -7.058823529411711, + 0 + ], + [ + -3.5294117647058556, + -1.176470588235361 + ], + [ + 1.176470588235361, + -3.5294117647058556 + ], + [ + 9.411764705882206, + -5.882352941176578 + ], + [ + 18.82352941176464, + -8.235294117647072 + ], + [ + 30.588235294117567, + -10.588235294117567 + ], + [ + 40, + -11.764705882352928 + ], + [ + 49.411764705882206, + -10.588235294117567 + ], + [ + 57.64705882352928, + -7.058823529411711 + ], + [ + 62.352941176470495, + -2.352941176470722 + ], + [ + 65.88235294117635, + 3.5294117647058556 + ], + [ + 65.88235294117635, + 10.588235294117567 + ], + [ + 63.529411764705856, + 17.647058823529278 + ], + [ + 61.17647058823536, + 23.529411764705856 + ], + [ + 57.64705882352928, + 30.588235294117567 + ], + [ + 55.29411764705878, + 35.29411764705878 + ], + [ + 54.11764705882342, + 38.82352941176464 + ], + [ + 52.94117647058829, + 41.17647058823536 + ], + [ + 54.11764705882342, + 42.352941176470495 + ], + [ + 57.64705882352928, + 43.529411764705856 + ], + [ + 63.529411764705856, + 43.529411764705856 + ], + [ + 63.529411764705856, + 43.529411764705856 + ] + ], + "pressures": [ + 0.2271575927734375, + 0.4362335205078125, + 0.4782562255859375, + 0.5329742431640625, + 0.5608062744140625, + 0.569122314453125, + 0.569122314453125, + 0.567657470703125, + 0.562774658203125, + 0.5603179931640625, + 0.5588531494140625, + 0.5481109619140625, + 0.525146484375, + 0.518310546875, + 0.518310546875, + 0.5388336181640625, + 0.5515289306640625, + 0.5515289306640625, + 0.5437164306640625, + 0.4885101318359375, + 0.341461181640625, + 0.066925048828125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 63.529411764705856, + 43.529411764705856 + ] + }, + { + "id": "rM_K_Chw6uqJxrjtekIfr", + "type": "freedraw", + "x": 676.1617647058807, + "y": 520.7899816176468, + "width": 3.5294117647058556, + "height": 2.3529411764704946, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Y", + "roundness": null, + "seed": 53392243, + "version": 4, + "versionNonce": 169390771, + "isDeleted": false, + "boundElements": null, + "updated": 1756839727583, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.5294117647058556, + -2.3529411764704946 + ], + [ + 3.5294117647058556, + -2.3529411764704946 + ] + ], + "pressures": [ + 0.4719085693359375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 3.5294117647058556, + -2.3529411764704946 + ] + }, + { + "id": "45ODerUVrdwJ__OJBjnyJ", + "type": "freedraw", + "x": 387.92647058823366, + "y": 666.6723345588234, + "width": 52.94117647058829, + "height": 78.82352941176464, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0Z", + "roundness": null, + "seed": 1266409971, + "version": 28, + "versionNonce": 1183018163, + "isDeleted": false, + "boundElements": null, + "updated": 1756839728596, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.705882352941217, + 7.058823529411711 + ], + [ + -7.058823529411939, + 10.588235294117567 + ], + [ + -8.235294117647072, + 12.941176470588061 + ], + [ + -8.235294117647072, + 15.294117647058783 + ], + [ + -8.235294117647072, + 16.470588235294144 + ], + [ + -10.588235294117794, + 17.647058823529278 + ], + [ + -12.941176470588289, + 17.647058823529278 + ], + [ + -17.647058823529505, + 17.647058823529278 + ], + [ + -23.529411764706083, + 18.82352941176464 + ], + [ + -30.588235294117794, + 18.82352941176464 + ], + [ + -37.647058823529505, + 18.82352941176464 + ], + [ + -43.52941176470608, + 17.647058823529278 + ], + [ + -48.23529411764707, + 15.294117647058783 + ], + [ + -50.588235294117794, + 11.764705882352928 + ], + [ + -51.76470588235293, + 5.88235294117635 + ], + [ + -52.94117647058829, + -1.176470588235361 + ], + [ + -51.76470588235293, + -10.588235294117794 + ], + [ + -51.76470588235293, + -20 + ], + [ + -50.588235294117794, + -28.235294117647072 + ], + [ + -50.588235294117794, + -35.29411764705901 + ], + [ + -49.41176470588243, + -41.17647058823536 + ], + [ + -50.588235294117794, + -45.88235294117658 + ], + [ + -50.588235294117794, + -50.588235294117794 + ], + [ + -50.588235294117794, + -55.29411764705901 + ], + [ + -50.588235294117794, + -60 + ], + [ + -50.588235294117794, + -60 + ] + ], + "pressures": [ + 0.0337066650390625, + 0.4171905517578125, + 0.4171905517578125, + 0.4328155517578125, + 0.446990966796875, + 0.447967529296875, + 0.4362335205078125, + 0.441619873046875, + 0.451873779296875, + 0.462615966796875, + 0.4694671630859375, + 0.4782562255859375, + 0.4782562255859375, + 0.4782562255859375, + 0.4753265380859375, + 0.462127685546875, + 0.440155029296875, + 0.4215850830078125, + 0.39959716796875, + 0.37860107421875, + 0.3600311279296875, + 0.3502655029296875, + 0.337066650390625, + 0.2931060791015625, + 0.195892333984375, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -50.588235294117794, + -60 + ] + }, + { + "id": "6AeK4ZZ8JLKprKM1kdu-T", + "type": "freedraw", + "x": 318.5147058823512, + "y": 561.9664522058822, + "width": 7.058823529411711, + "height": 3.5294117647058556, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0a", + "roundness": null, + "seed": 1677728755, + "version": 6, + "versionNonce": 690625747, + "isDeleted": false, + "boundElements": null, + "updated": 1756839728901, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.5294117647058556, + 2.3529411764704946 + ], + [ + -7.058823529411711, + 3.5294117647058556 + ], + [ + -7.058823529411711, + 2.3529411764704946 + ], + [ + -7.058823529411711, + 2.3529411764704946 + ] + ], + "pressures": [ + 0.4342803955078125, + 0.5554351806640625, + 0.5315093994140625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -7.058823529411711, + 2.3529411764704946 + ] + }, + { + "id": "nnGJUEyom8NUrcbwrSudq", + "type": "freedraw", + "x": -420.30882352941353, + "y": -210.97472426470608, + "width": 9.411764705882433, + "height": 9.41176470588232, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0b", + "roundness": null, + "seed": 1586578451, + "version": 11, + "versionNonce": 1996601469, + "isDeleted": false, + "boundElements": null, + "updated": 1756839741295, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + -1.1764705882353041 + ], + [ + 1.176470588235361, + -2.3529411764705515 + ], + [ + 3.5294117647059693, + -3.5294117647058556 + ], + [ + 4.705882352941217, + -5.882352941176464 + ], + [ + 5.882352941176578, + -7.058823529411768 + ], + [ + 7.058823529411825, + -7.058823529411768 + ], + [ + 8.235294117647072, + -8.235294117647015 + ], + [ + 9.411764705882433, + -9.41176470588232 + ], + [ + 9.411764705882433, + -9.41176470588232 + ] + ], + "pressures": [ + 0.0371246337890625, + 0.02001953125, + 0.02197265625, + 0.029296875, + 0.0410308837890625, + 0.0439605712890625, + 0.0449371337890625, + 0.0449371337890625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 9.411764705882433, + -9.41176470588232 + ] + }, + { + "id": "MAZC9ABuy1DAAYegOYpzB", + "type": "freedraw", + "x": -154.42647058823684, + "y": -498.0335477941178, + "width": 415.2941176470588, + "height": 311.764705882353, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0c", + "roundness": null, + "seed": 553745725, + "version": 46, + "versionNonce": 1595496925, + "isDeleted": false, + "boundElements": null, + "updated": 1756839745625, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -31.764705882352928, + 8.235294117647072 + ], + [ + -58.82352941176464, + 23.529411764705912 + ], + [ + -69.41176470588232, + 31.764705882352985 + ], + [ + -78.82352941176464, + 42.35294117647061 + ], + [ + -84.70588235294122, + 55.2941176470589 + ], + [ + -88.23529411764707, + 70.58823529411768 + ], + [ + -89.41176470588232, + 89.41176470588238 + ], + [ + -88.23529411764707, + 110.58823529411768 + ], + [ + -82.35294117647061, + 131.76470588235298 + ], + [ + -72.94117647058818, + 154.11764705882354 + ], + [ + -60, + 176.47058823529414 + ], + [ + -43.529411764705856, + 196.47058823529414 + ], + [ + -24.705882352941217, + 214.1176470588236 + ], + [ + -3.5294117647058556, + 229.41176470588238 + ], + [ + 20, + 243.5294117647059 + ], + [ + 44.70588235294122, + 254.1176470588236 + ], + [ + 68.23529411764707, + 262.3529411764706 + ], + [ + 92.94117647058829, + 267.0588235294118 + ], + [ + 114.11764705882354, + 269.4117647058824 + ], + [ + 132.9411764705883, + 267.0588235294118 + ], + [ + 150.58823529411768, + 260.00000000000006 + ], + [ + 165.88235294117646, + 249.41176470588238 + ], + [ + 180, + 236.47058823529414 + ], + [ + 191.76470588235293, + 218.82352941176475 + ], + [ + 204.70588235294122, + 197.64705882352945 + ], + [ + 217.6470588235294, + 172.9411764705883 + ], + [ + 231.76470588235293, + 144.70588235294122 + ], + [ + 244.70588235294122, + 114.11764705882354 + ], + [ + 255.2941176470589, + 82.35294117647061 + ], + [ + 262.3529411764706, + 51.764705882352985 + ], + [ + 264.7058823529411, + 23.529411764705912 + ], + [ + 260.0000000000001, + -1.1764705882352473 + ], + [ + 248.23529411764707, + -21.176470588235247 + ], + [ + 227.05882352941182, + -35.29411764705878 + ], + [ + 195.2941176470589, + -42.35294117647061 + ], + [ + 154.11764705882354, + -41.17647058823525 + ], + [ + 107.05882352941182, + -32.941176470588175 + ], + [ + 54.117647058823536, + -17.64705882352939 + ], + [ + 0, + 2.3529411764706083 + ], + [ + -50.58823529411768, + 25.882352941176464 + ], + [ + -95.29411764705878, + 49.411764705882376 + ], + [ + -128.23529411764707, + 71.76470588235298 + ], + [ + -150.58823529411768, + 91.76470588235298 + ], + [ + -150.58823529411768, + 91.76470588235298 + ] + ], + "pressures": [ + 0.2623291015625, + 0.2623291015625, + 0.2662353515625, + 0.2691650390625, + 0.2706298828125, + 0.2706298828125, + 0.2706298828125, + 0.2706298828125, + 0.2706298828125, + 0.2540283203125, + 0.2261810302734375, + 0.188568115234375, + 0.188568115234375, + 0.198333740234375, + 0.203704833984375, + 0.203704833984375, + 0.204681396484375, + 0.204681396484375, + 0.210052490234375, + 0.217376708984375, + 0.2271575927734375, + 0.2339935302734375, + 0.2637939453125, + 0.2999420166015625, + 0.3111724853515625, + 0.324859619140625, + 0.339996337890625, + 0.339996337890625, + 0.339996337890625, + 0.3458709716796875, + 0.3458709716796875, + 0.342437744140625, + 0.330718994140625, + 0.3092193603515625, + 0.3048248291015625, + 0.3004302978515625, + 0.2852935791015625, + 0.2823638916015625, + 0.2823638916015625, + 0.2823638916015625, + 0.2764892578125, + 0.214447021484375, + 0.1050262451171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -150.58823529411768, + 91.76470588235298 + ] + }, + { + "id": "Nv-ZcmOB7b9Ei6XkgwucF", + "type": "freedraw", + "x": 40.86764705882206, + "y": -420.38648897058835, + "width": 169.41176470588243, + "height": 80, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0d", + "roundness": null, + "seed": 401098397, + "version": 29, + "versionNonce": 2091038835, + "isDeleted": false, + "boundElements": null, + "updated": 1756839749580, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -4.705882352941217, + -1.1764705882353041 + ], + [ + -5.882352941176578, + -2.3529411764705515 + ], + [ + -5.882352941176578, + -1.1764705882353041 + ], + [ + -3.5294117647059693, + 2.3529411764705515 + ], + [ + -1.176470588235361, + 5.882352941176464 + ], + [ + 3.5294117647058556, + 11.764705882352928 + ], + [ + 10.588235294117567, + 18.823529411764696 + ], + [ + 18.82352941176464, + 27.058823529411768 + ], + [ + 28.23529411764696, + 35.29411764705884 + ], + [ + 38.82352941176464, + 43.52941176470591 + ], + [ + 50.58823529411757, + 50.588235294117624 + ], + [ + 63.529411764705856, + 57.64705882352939 + ], + [ + 76.47058823529414, + 63.529411764705856 + ], + [ + 89.4117647058822, + 68.23529411764707 + ], + [ + 101.17647058823513, + 72.94117647058823 + ], + [ + 111.76470588235293, + 75.29411764705884 + ], + [ + 121.17647058823513, + 76.47058823529409 + ], + [ + 130.58823529411757, + 74.11764705882354 + ], + [ + 137.64705882352928, + 70.58823529411762 + ], + [ + 143.52941176470586, + 63.529411764705856 + ], + [ + 149.4117647058822, + 54.117647058823536 + ], + [ + 154.11764705882342, + 43.52941176470591 + ], + [ + 158.82352941176464, + 31.764705882352928 + ], + [ + 161.17647058823513, + 20 + ], + [ + 163.52941176470586, + 10.588235294117624 + ], + [ + 162.3529411764705, + -3.5294117647059124 + ], + [ + 162.3529411764705, + -3.5294117647059124 + ] + ], + "pressures": [ + 0.1651153564453125, + 0.2442474365234375, + 0.315093994140625, + 0.342437744140625, + 0.342437744140625, + 0.3439178466796875, + 0.3448944091796875, + 0.3448944091796875, + 0.3458709716796875, + 0.3512420654296875, + 0.3571014404296875, + 0.3595428466796875, + 0.3629608154296875, + 0.3634490966796875, + 0.3634490966796875, + 0.3634490966796875, + 0.3624725341796875, + 0.3619842529296875, + 0.3610076904296875, + 0.3605194091796875, + 0.3575897216796875, + 0.3546600341796875, + 0.3512420654296875, + 0.343414306640625, + 0.328277587890625, + 0.2965240478515625, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 162.3529411764705, + -3.5294117647059124 + ] + }, + { + "id": "KWNcfyO3kJ-HA0UIoi6U-", + "type": "freedraw", + "x": 158.51470588235134, + "y": -425.0923713235295, + "width": 58.823529411764866, + "height": 56.47058823529409, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0e", + "roundness": null, + "seed": 1611626419, + "version": 47, + "versionNonce": 687564189, + "isDeleted": false, + "boundElements": null, + "updated": 1756839750305, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.5294117647058556, + 1.1764705882352473 + ], + [ + 5.882352941176578, + 1.1764705882352473 + ], + [ + 9.411764705882433, + 2.3529411764706083 + ], + [ + 12.941176470588289, + 2.3529411764706083 + ], + [ + 16.470588235294144, + 1.1764705882352473 + ], + [ + 21.17647058823536, + 0 + ], + [ + 24.705882352941217, + -1.1764705882353041 + ], + [ + 28.235294117647072, + -2.3529411764706083 + ], + [ + 31.764705882352928, + -4.705882352941217 + ], + [ + 35.29411764705901, + -7.058823529411825 + ], + [ + 38.823529411764866, + -9.411764705882376 + ], + [ + 42.35294117647072, + -11.764705882352928 + ], + [ + 44.70588235294122, + -14.117647058823536 + ], + [ + 47.05882352941194, + -15.29411764705884 + ], + [ + 48.23529411764707, + -16.470588235294144 + ], + [ + 48.23529411764707, + -17.64705882352939 + ], + [ + 48.23529411764707, + -16.470588235294144 + ], + [ + 49.41176470588243, + -15.29411764705884 + ], + [ + 49.41176470588243, + -12.941176470588289 + ], + [ + 50.588235294117794, + -8.235294117647072 + ], + [ + 50.588235294117794, + -2.3529411764706083 + ], + [ + 51.76470588235293, + 3.5294117647058556 + ], + [ + 52.94117647058829, + 9.41176470588232 + ], + [ + 54.11764705882365, + 16.470588235294088 + ], + [ + 56.470588235294144, + 22.35294117647061 + ], + [ + 57.647058823529505, + 29.41176470588232 + ], + [ + 58.823529411764866, + 34.117647058823536 + ], + [ + 58.823529411764866, + 37.64705882352939 + ], + [ + 58.823529411764866, + 38.823529411764696 + ], + [ + 55.29411764705901, + 37.64705882352939 + ], + [ + 51.76470588235293, + 36.47058823529409 + ], + [ + 48.23529411764707, + 32.941176470588175 + ], + [ + 42.35294117647072, + 29.41176470588232 + ], + [ + 37.647058823529505, + 24.70588235294116 + ], + [ + 31.764705882352928, + 18.823529411764696 + ], + [ + 24.705882352941217, + 14.117647058823536 + ], + [ + 18.823529411764866, + 9.41176470588232 + ], + [ + 14.11764705882365, + 4.70588235294116 + ], + [ + 9.411764705882433, + 1.1764705882352473 + ], + [ + 7.058823529411939, + -2.3529411764706083 + ], + [ + 5.882352941176578, + -4.705882352941217 + ], + [ + 4.705882352941217, + -5.882352941176464 + ], + [ + 4.705882352941217, + -3.5294117647059124 + ], + [ + 5.882352941176578, + -2.3529411764706083 + ], + [ + 5.882352941176578, + -2.3529411764706083 + ] + ], + "pressures": [ + 0.0947723388671875, + 0.1782989501953125, + 0.212005615234375, + 0.2388763427734375, + 0.2593994140625, + 0.2828521728515625, + 0.3048248291015625, + 0.319976806640625, + 0.328277587890625, + 0.335601806640625, + 0.338531494140625, + 0.338531494140625, + 0.339996337890625, + 0.339996337890625, + 0.339019775390625, + 0.337554931640625, + 0.331207275390625, + 0.2945709228515625, + 0.2926177978515625, + 0.2916412353515625, + 0.2916412353515625, + 0.2926177978515625, + 0.2955474853515625, + 0.2989654541015625, + 0.3004302978515625, + 0.3014068603515625, + 0.3014068603515625, + 0.3004302978515625, + 0.3004302978515625, + 0.320465087890625, + 0.3463592529296875, + 0.3473358154296875, + 0.3463592529296875, + 0.3463592529296875, + 0.342926025390625, + 0.336090087890625, + 0.330718994140625, + 0.327301025390625, + 0.325836181640625, + 0.319488525390625, + 0.3009185791015625, + 0.2784423828125, + 0.2559814453125, + 0.1167449951171875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + 5.882352941176578, + -2.3529411764706083 + ] + }, + { + "id": "YoCRMh1csAYNZl3HxkwlD", + "type": "freedraw", + "x": 20.867647058822058, + "y": -392.15119485294133, + "width": 72.94117647058829, + "height": 52.94117647058823, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0f", + "roundness": null, + "seed": 638214749, + "version": 52, + "versionNonce": 460597277, + "isDeleted": false, + "boundElements": null, + "updated": 1756839751103, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.176470588235361, + 0 + ], + [ + -4.705882352941217, + 1.176470588235361 + ], + [ + -5.882352941176578, + 1.176470588235361 + ], + [ + -5.882352941176578, + 0 + ], + [ + -5.882352941176578, + -1.1764705882352473 + ], + [ + -5.882352941176578, + -4.705882352941103 + ], + [ + -7.058823529411825, + -9.41176470588232 + ], + [ + -7.058823529411825, + -12.941176470588175 + ], + [ + -7.058823529411825, + -18.82352941176464 + ], + [ + -8.235294117647072, + -28.235294117647015 + ], + [ + -8.235294117647072, + -32.941176470588175 + ], + [ + -8.235294117647072, + -37.64705882352939 + ], + [ + -9.411764705882433, + -40 + ], + [ + -10.58823529411768, + -42.35294117647055 + ], + [ + -10.58823529411768, + -44.7058823529411 + ], + [ + -10.58823529411768, + -45.882352941176464 + ], + [ + -11.764705882353041, + -45.882352941176464 + ], + [ + -10.58823529411768, + -47.05882352941171 + ], + [ + -9.411764705882433, + -47.05882352941171 + ], + [ + -5.882352941176578, + -47.05882352941171 + ], + [ + -1.176470588235361, + -47.05882352941171 + ], + [ + 4.705882352941103, + -47.05882352941171 + ], + [ + 11.764705882352928, + -47.05882352941171 + ], + [ + 18.82352941176464, + -45.882352941176464 + ], + [ + 25.882352941176464, + -45.882352941176464 + ], + [ + 31.764705882352928, + -47.05882352941171 + ], + [ + 36.47058823529403, + -47.05882352941171 + ], + [ + 38.82352941176464, + -47.05882352941171 + ], + [ + 40, + -47.05882352941171 + ], + [ + 41.17647058823525, + -47.05882352941171 + ], + [ + 40, + -47.05882352941171 + ], + [ + 40, + -45.882352941176464 + ], + [ + 37.64705882352939, + -44.7058823529411 + ], + [ + 32.941176470588175, + -40 + ], + [ + 28.23529411764696, + -35.29411764705878 + ], + [ + 22.352941176470495, + -29.41176470588232 + ], + [ + 16.47058823529403, + -23.529411764705856 + ], + [ + 11.764705882352928, + -17.64705882352939 + ], + [ + 8.235294117646959, + -12.941176470588175 + ], + [ + 4.705882352941103, + -9.41176470588232 + ], + [ + 1.1764705882352473, + -4.705882352941103 + ], + [ + -2.3529411764706083, + -1.1764705882352473 + ], + [ + -5.882352941176578, + 1.176470588235361 + ], + [ + -11.764705882353041, + 3.5294117647059124 + ], + [ + -16.470588235294144, + 4.705882352941217 + ], + [ + -21.17647058823536, + 5.882352941176521 + ], + [ + -25.882352941176578, + 5.882352941176521 + ], + [ + -29.411764705882433, + 5.882352941176521 + ], + [ + -31.76470588235304, + 4.705882352941217 + ], + [ + -31.76470588235304, + 4.705882352941217 + ] + ], + "pressures": [ + 0.195892333984375, + 0.197845458984375, + 0.2237396240234375, + 0.2877349853515625, + 0.3009185791015625, + 0.3009185791015625, + 0.3043365478515625, + 0.3121490478515625, + 0.320465087890625, + 0.328277587890625, + 0.3522186279296875, + 0.3614959716796875, + 0.3697967529296875, + 0.3727264404296875, + 0.3727264404296875, + 0.3737030029296875, + 0.3741912841796875, + 0.3737030029296875, + 0.3536834716796875, + 0.3536834716796875, + 0.3536834716796875, + 0.3536834716796875, + 0.3531951904296875, + 0.3522186279296875, + 0.3488006591796875, + 0.3483123779296875, + 0.3478240966796875, + 0.3473358154296875, + 0.3478240966796875, + 0.3502655029296875, + 0.3556365966796875, + 0.3688201904296875, + 0.3697967529296875, + 0.3697967529296875, + 0.3697967529296875, + 0.3693084716796875, + 0.3688201904296875, + 0.3654022216796875, + 0.3619842529296875, + 0.3571014404296875, + 0.3512420654296875, + 0.337066650390625, + 0.320953369140625, + 0.3053131103515625, + 0.2740478515625, + 0.2398529052734375, + 0.207611083984375, + 0.14410400390625, + 0.066925048828125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -31.76470588235304, + 4.705882352941217 + ] + }, + { + "id": "dcwsWrI6qFl_LxLxLOuR4", + "type": "freedraw", + "x": -52.07352941176623, + "y": -194.50413602941188, + "width": 7.058823529411825, + "height": 1.1764705882353041, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0g", + "roundness": null, + "seed": 1981056221, + "version": 9, + "versionNonce": 1810739699, + "isDeleted": false, + "boundElements": null, + "updated": 1756839751709, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.5294117647058556, + 0 + ], + [ + -5.882352941176464, + 0 + ], + [ + -7.058823529411825, + 0 + ], + [ + -5.882352941176464, + 0 + ], + [ + -5.882352941176464, + 1.1764705882353041 + ], + [ + -4.705882352941217, + 1.1764705882353041 + ], + [ + -4.705882352941217, + 1.1764705882353041 + ] + ], + "pressures": [ + 0.200775146484375, + 0.332183837890625, + 0.3614959716796875, + 0.324371337890625, + 0.2188568115234375, + 0.1016082763671875, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -4.705882352941217, + 1.1764705882353041 + ] + }, + { + "id": "j7-By1ItouJZd3dSgCYbp", + "type": "freedraw", + "x": 305.5735294117633, + "y": -270.97472426470597, + "width": 15.29411764705901, + "height": 3.5294117647059124, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0h", + "roundness": null, + "seed": 1762267443, + "version": 11, + "versionNonce": 358007133, + "isDeleted": false, + "boundElements": null, + "updated": 1756839752004, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.176470588235361, + -1.1764705882353041 + ], + [ + -3.529411764706083, + -1.1764705882353041 + ], + [ + -5.882352941176578, + -2.3529411764706083 + ], + [ + -8.235294117647072, + -3.5294117647059124 + ], + [ + -10.588235294117794, + -3.5294117647059124 + ], + [ + -12.941176470588289, + -3.5294117647059124 + ], + [ + -15.29411764705901, + -3.5294117647059124 + ], + [ + -15.29411764705901, + -2.3529411764706083 + ], + [ + -15.29411764705901, + -2.3529411764706083 + ] + ], + "pressures": [ + 0.37811279296875, + 0.40106201171875, + 0.40106201171875, + 0.4103546142578125, + 0.4333038330078125, + 0.446014404296875, + 0.446502685546875, + 0.4264678955078125, + 0, + 0 + ], + "simulatePressure": false, + "lastCommittedPoint": [ + -15.29411764705901, + -2.3529411764706083 + ] + }, + { + "id": "YZXQQ8_bwzMCglO35QsJp", + "type": "image", + "x": -1142.370421584852, + "y": -411.22927503493065, + "width": 1738.7892930069297, + "height": 743.6201534500503, + "angle": 0, + "strokeColor": "transparent", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0i", + "roundness": null, + "seed": 147587709, + "version": 3, + "versionNonce": 1212237629, + "isDeleted": false, + "boundElements": null, + "updated": 1756840350996, + "link": null, + "locked": false, + "status": "pending", + "fileId": "b83eb83ae201f0c9ed3d63946f08397261769728", + "scale": [ + 1, + 1 + ], + "crop": null + }, + { + "id": "zGuwelvuhnjNjRmwZrX7-", + "type": "freedraw", + "x": -437.6025259204795, + "y": 153.20529927052894, + "width": 342.69242011402923, + "height": 185.90503836251253, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0k", + "roundness": null, + "seed": 620897779, + "version": 434, + "versionNonce": 2080284307, + "isDeleted": false, + "boundElements": null, + "updated": 1756840370789, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.1199098696537249, + 0 + ], + [ + 2.2398197393074497, + 0 + ], + [ + 3.359729608961061, + 0 + ], + [ + 4.479639478614786, + 0 + ], + [ + 6.719459217922235, + 0 + ], + [ + 7.839369087575847, + 0 + ], + [ + 10.079188826883296, + 0 + ], + [ + 12.319008566190746, + 0 + ], + [ + 14.558828305497968, + 0 + ], + [ + 16.798648044805418, + 0 + ], + [ + 19.038467784112868, + 0 + ], + [ + 21.27828752342009, + 0 + ], + [ + 23.51810726272754, + 0 + ], + [ + 25.75792700203499, + 0 + ], + [ + 27.997746741342212, + 0 + ], + [ + 30.23756648064966, + 0 + ], + [ + 33.59729608961072, + 0 + ], + [ + 35.83711582891817, + 0 + ], + [ + 39.19684543787923, + 0 + ], + [ + 42.556575046840294, + 0 + ], + [ + 44.796394786147744, + 0 + ], + [ + 48.156124395108804, + 0 + ], + [ + 50.39594413441603, + 0 + ], + [ + 53.75567374337709, + 0 + ], + [ + 55.99549348268454, + 0 + ], + [ + 59.3552230916456, + 0 + ], + [ + 61.59504283095305, + 0 + ], + [ + 64.95477243991411, + 0 + ], + [ + 67.19459217922156, + 0 + ], + [ + 69.43441191852878, + 0 + ], + [ + 72.79414152748984, + 0 + ], + [ + 76.1538711364509, + 0 + ], + [ + 78.39369087575835, + 0 + ], + [ + 81.75342048471941, + 0 + ], + [ + 83.99324022402686, + 0 + ], + [ + 86.23305996333431, + 1.1199098696537249 + ], + [ + 89.59278957229537, + 1.1199098696537249 + ], + [ + 91.8326093116026, + 1.1199098696537249 + ], + [ + 95.19233892056366, + 1.1199098696537249 + ], + [ + 98.55206852952472, + 2.239819739307336 + ], + [ + 101.91179813848578, + 2.239819739307336 + ], + [ + 105.27152774744684, + 3.359729608961061 + ], + [ + 110.87107709571535, + 3.359729608961061 + ], + [ + 115.35071657433025, + 3.359729608961061 + ], + [ + 122.07017579225237, + 3.359729608961061 + ], + [ + 128.7896350101745, + 3.359729608961061 + ], + [ + 136.62900409775023, + 3.359729608961061 + ], + [ + 143.34846331567235, + 3.359729608961061 + ], + [ + 150.06792253359447, + 3.359729608961061 + ], + [ + 155.66747188186298, + 3.359729608961061 + ], + [ + 160.14711136047765, + 4.479639478614786 + ], + [ + 165.74666070874616, + 4.479639478614786 + ], + [ + 172.46611992666828, + 5.599549348268397 + ], + [ + 176.94575940528318, + 5.599549348268397 + ], + [ + 182.54530875355147, + 6.719459217922122 + ], + [ + 189.26476797147382, + 6.719459217922122 + ], + [ + 195.98422718939594, + 6.719459217922122 + ], + [ + 201.58377653766422, + 6.719459217922122 + ], + [ + 208.30323575558634, + 6.719459217922122 + ], + [ + 215.0226949735087, + 6.719459217922122 + ], + [ + 220.62224432177698, + 6.719459217922122 + ], + [ + 225.10188380039187, + 6.719459217922122 + ], + [ + 228.46161340935294, + 6.719459217922122 + ], + [ + 230.70143314866016, + 6.719459217922122 + ], + [ + 232.9412528879676, + 6.719459217922122 + ], + [ + 235.18107262727506, + 6.719459217922122 + ], + [ + 237.42089236658228, + 6.719459217922122 + ], + [ + 239.66071210588973, + 6.719459217922122 + ], + [ + 241.90053184519718, + 6.719459217922122 + ], + [ + 244.14035158450463, + 6.719459217922122 + ], + [ + 246.38017132381185, + 6.719459217922122 + ], + [ + 248.6199910631193, + 6.719459217922122 + ], + [ + 249.7399009327729, + 6.719459217922122 + ], + [ + 251.97972067208036, + 6.719459217922122 + ], + [ + 253.09963054173397, + 6.719459217922122 + ], + [ + 255.33945028104142, + 6.719459217922122 + ], + [ + 256.45936015069503, + 6.719459217922122 + ], + [ + 258.6991798900025, + 6.719459217922122 + ], + [ + 260.93899962930993, + 6.719459217922122 + ], + [ + 262.05890949896354, + 6.719459217922122 + ], + [ + 264.298729238271, + 6.719459217922122 + ], + [ + 265.4186391079246, + 6.719459217922122 + ], + [ + 267.65845884723205, + 6.719459217922122 + ], + [ + 269.8982785865395, + 6.719459217922122 + ], + [ + 271.0181884561931, + 6.719459217922122 + ], + [ + 273.25800819550057, + 6.719459217922122 + ], + [ + 275.4978279348078, + 6.719459217922122 + ], + [ + 277.73764767411524, + 6.719459217922122 + ], + [ + 279.9774674134227, + 6.719459217922122 + ], + [ + 283.33719702238375, + 6.719459217922122 + ], + [ + 285.57701676169097, + 6.719459217922122 + ], + [ + 288.93674637065226, + 6.719459217922122 + ], + [ + 292.2964759796133, + 6.719459217922122 + ], + [ + 295.6562055885744, + 6.719459217922122 + ], + [ + 299.01593519753544, + 6.719459217922122 + ], + [ + 303.4955746761501, + 6.719459217922122 + ], + [ + 306.8553042851112, + 6.719459217922122 + ], + [ + 310.21503389407223, + 6.719459217922122 + ], + [ + 312.4548536333797, + 6.719459217922122 + ], + [ + 315.81458324234075, + 6.719459217922122 + ], + [ + 316.93449311199436, + 6.719459217922122 + ], + [ + 318.0544029816482, + 6.719459217922122 + ], + [ + 319.1743128513018, + 6.719459217922122 + ], + [ + 320.2942227209554, + 6.719459217922122 + ], + [ + 321.41413259060926, + 6.719459217922122 + ], + [ + 322.53404246026287, + 6.719459217922122 + ], + [ + 323.6539523299165, + 6.719459217922122 + ], + [ + 324.7738621995703, + 6.719459217922122 + ], + [ + 325.8937720692239, + 6.719459217922122 + ], + [ + 327.01368193887754, + 6.719459217922122 + ], + [ + 328.1335918085314, + 6.719459217922122 + ], + [ + 329.253501678185, + 6.719459217922122 + ], + [ + 330.3734115478386, + 6.719459217922122 + ], + [ + 330.3734115478386, + 7.839369087575847 + ], + [ + 330.3734115478386, + 8.959278957229458 + ], + [ + 330.3734115478386, + 10.079188826883183 + ], + [ + 330.3734115478386, + 11.199098696536907 + ], + [ + 330.3734115478386, + 12.319008566190519 + ], + [ + 330.3734115478386, + 13.438918435844244 + ], + [ + 330.3734115478386, + 14.558828305497968 + ], + [ + 330.3734115478386, + 16.798648044805304 + ], + [ + 330.3734115478386, + 19.038467784112754 + ], + [ + 330.3734115478386, + 20.158377653766365 + ], + [ + 330.3734115478386, + 22.398197393073815 + ], + [ + 330.3734115478386, + 24.63801713238115 + ], + [ + 330.3734115478386, + 26.8778368716886 + ], + [ + 330.3734115478386, + 29.117656610995937 + ], + [ + 330.3734115478386, + 31.357476350303273 + ], + [ + 330.3734115478386, + 33.59729608961072 + ], + [ + 330.3734115478386, + 35.83711582891806 + ], + [ + 329.253501678185, + 38.076935568225394 + ], + [ + 329.253501678185, + 40.316755307532844 + ], + [ + 329.253501678185, + 42.55657504684018 + ], + [ + 329.253501678185, + 44.79639478614763 + ], + [ + 329.253501678185, + 47.036214525454966 + ], + [ + 329.253501678185, + 49.2760342647623 + ], + [ + 329.253501678185, + 51.51585400406975 + ], + [ + 329.253501678185, + 52.63576387372348 + ], + [ + 329.253501678185, + 53.75567374337709 + ], + [ + 329.253501678185, + 54.87558361303081 + ], + [ + 329.253501678185, + 55.99549348268454 + ], + [ + 329.253501678185, + 57.11540335233815 + ], + [ + 329.253501678185, + 58.23531322199187 + ], + [ + 329.253501678185, + 60.47513296129921 + ], + [ + 329.253501678185, + 62.71495270060666 + ], + [ + 329.253501678185, + 64.954772439914 + ], + [ + 329.253501678185, + 67.19459217922144 + ], + [ + 329.253501678185, + 70.5543217881825 + ], + [ + 329.253501678185, + 73.91405139714357 + ], + [ + 329.253501678185, + 76.1538711364509 + ], + [ + 329.253501678185, + 78.39369087575835 + ], + [ + 329.253501678185, + 80.63351061506569 + ], + [ + 329.253501678185, + 82.87333035437302 + ], + [ + 329.253501678185, + 85.11315009368047 + ], + [ + 329.253501678185, + 86.23305996333409 + ], + [ + 329.253501678185, + 87.35296983298781 + ], + [ + 329.253501678185, + 88.47287970264154 + ], + [ + 329.253501678185, + 90.71269944194887 + ], + [ + 329.253501678185, + 91.8326093116026 + ], + [ + 329.253501678185, + 94.07242905090993 + ], + [ + 329.253501678185, + 96.31224879021738 + ], + [ + 330.3734115478386, + 98.55206852952472 + ], + [ + 331.49332141749244, + 100.79188826883205 + ], + [ + 331.49332141749244, + 103.0317080081395 + ], + [ + 331.49332141749244, + 105.27152774744684 + ], + [ + 332.61323128714605, + 107.51134748675429 + ], + [ + 332.61323128714605, + 108.6312573564079 + ], + [ + 332.61323128714605, + 109.75116722606163 + ], + [ + 332.61323128714605, + 110.87107709571535 + ], + [ + 332.61323128714605, + 111.99098696536896 + ], + [ + 332.61323128714605, + 113.11089683502269 + ], + [ + 333.73314115679966, + 115.35071657433014 + ], + [ + 333.73314115679966, + 117.59053631363747 + ], + [ + 333.73314115679966, + 119.83035605294481 + ], + [ + 333.73314115679966, + 122.07017579225226 + ], + [ + 333.73314115679966, + 124.3099955315596 + ], + [ + 333.73314115679966, + 125.42990540121332 + ], + [ + 333.73314115679966, + 127.66972514052065 + ], + [ + 333.73314115679966, + 128.78963501017438 + ], + [ + 333.73314115679966, + 129.9095448798281 + ], + [ + 333.73314115679966, + 131.02945474948172 + ], + [ + 333.73314115679966, + 132.14936461913544 + ], + [ + 333.73314115679966, + 133.26927448878916 + ], + [ + 333.73314115679966, + 134.38918435844278 + ], + [ + 333.73314115679966, + 135.5090942280965 + ], + [ + 333.73314115679966, + 136.62900409775023 + ], + [ + 333.73314115679966, + 137.74891396740384 + ], + [ + 333.73314115679966, + 138.86882383705756 + ], + [ + 333.73314115679966, + 139.9887337067113 + ], + [ + 333.73314115679966, + 142.22855344601862 + ], + [ + 333.73314115679966, + 144.46837318532607 + ], + [ + 333.73314115679966, + 145.58828305497968 + ], + [ + 333.73314115679966, + 146.7081929246334 + ], + [ + 333.73314115679966, + 147.82810279428713 + ], + [ + 333.73314115679966, + 148.94801266394074 + ], + [ + 333.73314115679966, + 150.06792253359447 + ], + [ + 333.73314115679966, + 151.1878324032482 + ], + [ + 333.73314115679966, + 152.3077422729018 + ], + [ + 333.73314115679966, + 153.42765214255553 + ], + [ + 333.73314115679966, + 154.54756201220926 + ], + [ + 333.73314115679966, + 156.7873817515166 + ], + [ + 333.73314115679966, + 157.90729162117032 + ], + [ + 333.73314115679966, + 159.02720149082404 + ], + [ + 333.73314115679966, + 160.14711136047765 + ], + [ + 333.73314115679966, + 161.26702123013138 + ], + [ + 333.73314115679966, + 162.3869310997851 + ], + [ + 333.73314115679966, + 163.5068409694387 + ], + [ + 333.73314115679966, + 164.62675083909244 + ], + [ + 333.73314115679966, + 165.74666070874616 + ], + [ + 333.73314115679966, + 166.8665705783999 + ], + [ + 333.73314115679966, + 167.9864804480535 + ], + [ + 333.73314115679966, + 169.10639031770722 + ], + [ + 333.73314115679966, + 170.22630018736095 + ], + [ + 333.73314115679966, + 171.34621005701456 + ], + [ + 333.73314115679966, + 172.46611992666828 + ], + [ + 333.73314115679966, + 173.586029796322 + ], + [ + 333.73314115679966, + 174.70593966597562 + ], + [ + 333.73314115679966, + 175.82584953562935 + ], + [ + 333.73314115679966, + 176.94575940528307 + ], + [ + 333.73314115679966, + 178.0656692749368 + ], + [ + 334.8530510264535, + 180.30548901424413 + ], + [ + 334.8530510264535, + 181.42539888389786 + ], + [ + 334.8530510264535, + 182.54530875355147 + ], + [ + 334.8530510264535, + 183.6652186232052 + ], + [ + 334.8530510264535, + 184.78512849285892 + ], + [ + 334.8530510264535, + 185.90503836251253 + ], + [ + 333.73314115679966, + 185.90503836251253 + ], + [ + 332.61323128714605, + 185.90503836251253 + ], + [ + 331.49332141749244, + 185.90503836251253 + ], + [ + 330.3734115478386, + 185.90503836251253 + ], + [ + 329.253501678185, + 185.90503836251253 + ], + [ + 328.1335918085314, + 185.90503836251253 + ], + [ + 327.01368193887754, + 185.90503836251253 + ], + [ + 325.8937720692239, + 185.90503836251253 + ], + [ + 323.6539523299165, + 185.90503836251253 + ], + [ + 321.41413259060926, + 185.90503836251253 + ], + [ + 319.1743128513018, + 185.90503836251253 + ], + [ + 316.93449311199436, + 185.90503836251253 + ], + [ + 314.69467337268713, + 185.90503836251253 + ], + [ + 312.4548536333797, + 185.90503836251253 + ], + [ + 310.21503389407223, + 185.90503836251253 + ], + [ + 307.9752141547648, + 185.90503836251253 + ], + [ + 306.8553042851112, + 185.90503836251253 + ], + [ + 304.6154845458037, + 185.90503836251253 + ], + [ + 302.3756648064965, + 185.90503836251253 + ], + [ + 300.13584506718905, + 185.90503836251253 + ], + [ + 297.8960253278816, + 185.90503836251253 + ], + [ + 295.6562055885744, + 185.90503836251253 + ], + [ + 293.41638584926693, + 185.90503836251253 + ], + [ + 291.1765661099595, + 185.90503836251253 + ], + [ + 288.93674637065226, + 185.90503836251253 + ], + [ + 285.57701676169097, + 185.90503836251253 + ], + [ + 283.33719702238375, + 185.90503836251253 + ], + [ + 279.9774674134227, + 185.90503836251253 + ], + [ + 275.4978279348078, + 185.90503836251253 + ], + [ + 272.1380983258467, + 184.78512849285892 + ], + [ + 269.8982785865395, + 184.78512849285892 + ], + [ + 266.53854897757844, + 184.78512849285892 + ], + [ + 263.17881936861716, + 184.78512849285892 + ], + [ + 260.93899962930993, + 184.78512849285892 + ], + [ + 257.5792700203489, + 184.78512849285892 + ], + [ + 254.2195404113878, + 184.78512849285892 + ], + [ + 250.85981080242675, + 184.78512849285892 + ], + [ + 247.5000811934657, + 184.78512849285892 + ], + [ + 245.26026145415824, + 184.78512849285892 + ], + [ + 241.90053184519718, + 184.78512849285892 + ], + [ + 239.66071210588973, + 184.78512849285892 + ], + [ + 236.30098249692867, + 184.78512849285892 + ], + [ + 232.9412528879676, + 184.78512849285892 + ], + [ + 229.58152327900655, + 184.78512849285892 + ], + [ + 226.22179367004549, + 184.78512849285892 + ], + [ + 221.7421541914308, + 183.6652186232052 + ], + [ + 216.1426048431623, + 183.6652186232052 + ], + [ + 211.6629653645474, + 183.6652186232052 + ], + [ + 206.06341601627912, + 183.6652186232052 + ], + [ + 201.58377653766422, + 183.6652186232052 + ], + [ + 194.8643173197421, + 183.6652186232052 + ], + [ + 188.14485810181998, + 183.6652186232052 + ], + [ + 182.54530875355147, + 182.54530875355147 + ], + [ + 178.0656692749368, + 182.54530875355147 + ], + [ + 172.46611992666828, + 182.54530875355147 + ], + [ + 169.10639031770722, + 182.54530875355147 + ], + [ + 165.74666070874616, + 182.54530875355147 + ], + [ + 162.3869310997851, + 181.42539888389786 + ], + [ + 159.02720149082404, + 181.42539888389786 + ], + [ + 155.66747188186298, + 181.42539888389786 + ], + [ + 147.82810279428725, + 180.30548901424413 + ], + [ + 145.5882830549798, + 180.30548901424413 + ], + [ + 144.4683731853262, + 180.30548901424413 + ], + [ + 143.34846331567235, + 180.30548901424413 + ], + [ + 142.22855344601874, + 180.30548901424413 + ], + [ + 139.9887337067113, + 180.30548901424413 + ], + [ + 137.74891396740406, + 180.30548901424413 + ], + [ + 136.62900409775023, + 180.30548901424413 + ], + [ + 134.38918435844278, + 180.30548901424413 + ], + [ + 128.7896350101745, + 180.30548901424413 + ], + [ + 126.54981527086704, + 179.1855791445904 + ], + [ + 123.19008566190598, + 178.0656692749368 + ], + [ + 119.83035605294492, + 178.0656692749368 + ], + [ + 117.59053631363747, + 178.0656692749368 + ], + [ + 115.35071657433025, + 178.0656692749368 + ], + [ + 113.1108968350228, + 178.0656692749368 + ], + [ + 110.87107709571535, + 178.0656692749368 + ], + [ + 108.6312573564079, + 178.0656692749368 + ], + [ + 105.27152774744684, + 178.0656692749368 + ], + [ + 103.03170800813962, + 178.0656692749368 + ], + [ + 99.67197839917856, + 178.0656692749368 + ], + [ + 96.3122487902175, + 178.0656692749368 + ], + [ + 92.95251918125643, + 178.0656692749368 + ], + [ + 89.59278957229537, + 178.0656692749368 + ], + [ + 86.23305996333431, + 178.0656692749368 + ], + [ + 82.87333035437302, + 178.0656692749368 + ], + [ + 79.51360074541196, + 178.0656692749368 + ], + [ + 76.1538711364509, + 178.0656692749368 + ], + [ + 73.91405139714368, + 178.0656692749368 + ], + [ + 71.67423165783623, + 178.0656692749368 + ], + [ + 68.31450204887517, + 178.0656692749368 + ], + [ + 66.07468230956772, + 178.0656692749368 + ], + [ + 63.8348625702605, + 178.0656692749368 + ], + [ + 61.59504283095305, + 178.0656692749368 + ], + [ + 59.3552230916456, + 178.0656692749368 + ], + [ + 57.11540335233815, + 178.0656692749368 + ], + [ + 54.875583613030926, + 178.0656692749368 + ], + [ + 53.75567374337709, + 178.0656692749368 + ], + [ + 51.515854004069865, + 178.0656692749368 + ], + [ + 49.276034264762416, + 178.0656692749368 + ], + [ + 47.036214525454966, + 178.0656692749368 + ], + [ + 44.796394786147744, + 178.0656692749368 + ], + [ + 42.556575046840294, + 178.0656692749368 + ], + [ + 40.316755307532844, + 178.0656692749368 + ], + [ + 36.95702569857178, + 178.0656692749368 + ], + [ + 34.717205959264334, + 178.0656692749368 + ], + [ + 32.47738621995711, + 179.1855791445904 + ], + [ + 31.357476350303273, + 179.1855791445904 + ], + [ + 30.23756648064966, + 179.1855791445904 + ], + [ + 29.11765661099605, + 179.1855791445904 + ], + [ + 27.997746741342212, + 180.30548901424413 + ], + [ + 26.8778368716886, + 180.30548901424413 + ], + [ + 23.51810726272754, + 180.30548901424413 + ], + [ + 21.27828752342009, + 180.30548901424413 + ], + [ + 20.15837765376648, + 181.42539888389786 + ], + [ + 19.038467784112868, + 181.42539888389786 + ], + [ + 17.91855791445903, + 181.42539888389786 + ], + [ + 16.798648044805418, + 181.42539888389786 + ], + [ + 15.678738175151807, + 181.42539888389786 + ], + [ + 14.558828305497968, + 181.42539888389786 + ], + [ + 13.438918435844357, + 181.42539888389786 + ], + [ + 12.319008566190746, + 181.42539888389786 + ], + [ + 11.199098696536907, + 182.54530875355147 + ], + [ + 8.959278957229458, + 182.54530875355147 + ], + [ + 7.839369087575847, + 182.54530875355147 + ], + [ + 6.719459217922235, + 182.54530875355147 + ], + [ + 5.599549348268511, + 182.54530875355147 + ], + [ + 4.479639478614786, + 183.6652186232052 + ], + [ + 3.359729608961061, + 183.6652186232052 + ], + [ + 2.2398197393074497, + 183.6652186232052 + ], + [ + 1.1199098696537249, + 183.6652186232052 + ], + [ + 0, + 183.6652186232052 + ], + [ + 0, + 182.54530875355147 + ], + [ + 0, + 181.42539888389786 + ], + [ + 0, + 180.30548901424413 + ], + [ + 0, + 179.1855791445904 + ], + [ + 0, + 176.94575940528307 + ], + [ + -1.1199098696536112, + 174.70593966597562 + ], + [ + -1.1199098696536112, + 172.46611992666828 + ], + [ + -1.1199098696536112, + 170.22630018736095 + ], + [ + -1.1199098696536112, + 166.8665705783999 + ], + [ + -1.1199098696536112, + 163.5068409694387 + ], + [ + -1.1199098696536112, + 161.26702123013138 + ], + [ + -1.1199098696536112, + 157.90729162117032 + ], + [ + -1.1199098696536112, + 154.54756201220926 + ], + [ + -1.1199098696536112, + 151.1878324032482 + ], + [ + -2.239819739307336, + 147.82810279428713 + ], + [ + -2.239819739307336, + 143.34846331567235 + ], + [ + -2.239819739307336, + 137.74891396740384 + ], + [ + -2.239819739307336, + 134.38918435844278 + ], + [ + -3.359729608961061, + 129.9095448798281 + ], + [ + -3.359729608961061, + 124.3099955315596 + ], + [ + -4.479639478614672, + 119.83035605294481 + ], + [ + -4.479639478614672, + 114.23080670467641 + ], + [ + -5.599549348268397, + 109.75116722606163 + ], + [ + -6.719459217922122, + 104.15161787779323 + ], + [ + -7.839369087575733, + 99.67197839917844 + ], + [ + -7.839369087575733, + 94.07242905090993 + ], + [ + -7.839369087575733, + 89.59278957229526 + ], + [ + -7.839369087575733, + 86.23305996333409 + ], + [ + -7.839369087575733, + 82.87333035437302 + ], + [ + -7.839369087575733, + 80.63351061506569 + ], + [ + -7.839369087575733, + 78.39369087575835 + ], + [ + -7.839369087575733, + 76.1538711364509 + ], + [ + -6.719459217922122, + 73.91405139714357 + ], + [ + -5.599549348268397, + 71.67423165783612 + ], + [ + -4.479639478614672, + 69.43441191852878 + ], + [ + -3.359729608961061, + 67.19459217922144 + ], + [ + -3.359729608961061, + 64.954772439914 + ], + [ + -2.239819739307336, + 62.71495270060666 + ], + [ + -1.1199098696536112, + 60.47513296129921 + ], + [ + 0, + 58.23531322199187 + ], + [ + 1.1199098696537249, + 55.99549348268454 + ], + [ + 1.1199098696537249, + 53.75567374337709 + ], + [ + 2.2398197393074497, + 51.51585400406975 + ], + [ + 2.2398197393074497, + 49.2760342647623 + ], + [ + 3.359729608961061, + 47.036214525454966 + ], + [ + 4.479639478614786, + 44.79639478614763 + ], + [ + 5.599549348268511, + 42.55657504684018 + ], + [ + 6.719459217922235, + 40.316755307532844 + ], + [ + 7.839369087575847, + 38.076935568225394 + ], + [ + 8.959278957229458, + 35.83711582891806 + ], + [ + 8.959278957229458, + 33.59729608961072 + ], + [ + 10.079188826883296, + 31.357476350303273 + ], + [ + 10.079188826883296, + 29.117656610995937 + ], + [ + 10.079188826883296, + 26.8778368716886 + ], + [ + 10.079188826883296, + 24.63801713238115 + ], + [ + 11.199098696536907, + 22.398197393073815 + ], + [ + 11.199098696536907, + 20.158377653766365 + ], + [ + 12.319008566190746, + 17.91855791445903 + ], + [ + 12.319008566190746, + 15.678738175151693 + ], + [ + 13.438918435844357, + 10.079188826883183 + ], + [ + 13.438918435844357, + 7.839369087575847 + ], + [ + 13.438918435844357, + 6.719459217922122 + ], + [ + 13.438918435844357, + 5.599549348268397 + ], + [ + 13.438918435844357, + 4.479639478614786 + ], + [ + 13.438918435844357, + 3.359729608961061 + ], + [ + 13.438918435844357, + 2.239819739307336 + ], + [ + 13.438918435844357, + 1.1199098696537249 + ], + [ + 12.319008566190746, + 1.1199098696537249 + ], + [ + 12.319008566190746, + 2.239819739307336 + ], + [ + 12.319008566190746, + 3.359729608961061 + ], + [ + 11.199098696536907, + 4.479639478614786 + ], + [ + 11.199098696536907, + 5.599549348268397 + ], + [ + 11.199098696536907, + 6.719459217922122 + ], + [ + 11.199098696536907, + 6.719459217922122 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 11.199098696536907, + 6.719459217922122 + ] + }, + { + "id": "Y1x7GsbVJtow4Wd51JiBw", + "type": "freedraw", + "x": -389.4464015253707, + "y": 158.80484861879734, + "width": 29.117656610995937, + "height": 44.79639478614763, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0l", + "roundness": null, + "seed": 1744852435, + "version": 19, + "versionNonce": 1611494461, + "isDeleted": false, + "boundElements": null, + "updated": 1756840371289, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 2.2398197393074497 + ], + [ + -2.2398197393074497, + 6.719459217922122 + ], + [ + -4.479639478614899, + 10.079188826883296 + ], + [ + -6.719459217922122, + 14.558828305497968 + ], + [ + -11.199098696537021, + 20.15837765376648 + ], + [ + -14.558828305498082, + 25.757927002034876 + ], + [ + -19.038467784112754, + 30.23756648064966 + ], + [ + -21.278287523420204, + 33.59729608961072 + ], + [ + -23.518107262727654, + 36.95702569857178 + ], + [ + -24.638017132381265, + 39.19684543787923 + ], + [ + -25.757927002034876, + 40.316755307532844 + ], + [ + -26.877836871688714, + 41.43666517718657 + ], + [ + -26.877836871688714, + 42.556575046840294 + ], + [ + -27.997746741342326, + 43.676484916493905 + ], + [ + -29.117656610995937, + 44.79639478614763 + ], + [ + -29.117656610995937, + 44.79639478614763 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -29.117656610995937, + 44.79639478614763 + ] + }, + { + "id": "zhW4prr8pqMUj8ykwhd_Z", + "type": "freedraw", + "x": -378.2473028288339, + "y": 181.20304601187115, + "width": 36.95702569857167, + "height": 54.87558361303081, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0m", + "roundness": null, + "seed": 1939949821, + "version": 20, + "versionNonce": 930062525, + "isDeleted": false, + "boundElements": null, + "updated": 1756840371882, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 3.359729608961061 + ], + [ + -1.1199098696536112, + 5.599549348268511 + ], + [ + -3.359729608961061, + 8.959278957229571 + ], + [ + -5.599549348268511, + 13.438918435844357 + ], + [ + -7.839369087575733, + 16.798648044805418 + ], + [ + -12.319008566190632, + 21.27828752342009 + ], + [ + -14.558828305497855, + 26.8778368716886 + ], + [ + -19.038467784112754, + 31.357476350303386 + ], + [ + -22.398197393073815, + 34.71720595926445 + ], + [ + -24.638017132381265, + 38.07693556822551 + ], + [ + -29.117656610995937, + 42.556575046840294 + ], + [ + -31.357476350303386, + 45.916304655801355 + ], + [ + -33.59729608961061, + 49.276034264762416 + ], + [ + -34.71720595926445, + 51.51585400406975 + ], + [ + -35.83711582891806, + 53.7556737433772 + ], + [ + -36.95702569857167, + 54.87558361303081 + ], + [ + -36.95702569857167, + 54.87558361303081 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -36.95702569857167, + 54.87558361303081 + ] + }, + { + "id": "j8i85Kd27Fw436EggthaS", + "type": "freedraw", + "x": -330.0911784337252, + "y": 182.32295588152488, + "width": 82.87333035437314, + "height": 96.31224879021738, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0n", + "roundness": null, + "seed": 415389053, + "version": 34, + "versionNonce": 114213853, + "isDeleted": false, + "boundElements": null, + "updated": 1756840372524, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 1.1199098696537249 + ], + [ + -5.599549348268511, + 6.719459217922122 + ], + [ + -8.959278957229571, + 11.199098696536907 + ], + [ + -14.558828305497855, + 16.798648044805304 + ], + [ + -19.038467784112754, + 23.51810726272754 + ], + [ + -25.757927002034876, + 31.357476350303273 + ], + [ + -32.477386219957, + 38.07693556822551 + ], + [ + -36.95702569857167, + 45.91630465580124 + ], + [ + -40.31675530753273, + 51.51585400406975 + ], + [ + -44.79639478614763, + 54.87558361303081 + ], + [ + -48.15612439510869, + 59.3552230916456 + ], + [ + -51.51585400406975, + 62.71495270060666 + ], + [ + -53.7556737433772, + 64.954772439914 + ], + [ + -55.995493482684424, + 67.19459217922144 + ], + [ + -58.23531322199187, + 70.5543217881825 + ], + [ + -61.595042830952934, + 72.79414152748984 + ], + [ + -64.954772439914, + 77.27378100610463 + ], + [ + -67.19459217922144, + 79.51360074541196 + ], + [ + -69.43441191852867, + 82.87333035437302 + ], + [ + -71.67423165783612, + 85.11315009368047 + ], + [ + -73.91405139714357, + 87.35296983298781 + ], + [ + -76.15387113645102, + 88.47287970264154 + ], + [ + -77.27378100610463, + 89.59278957229526 + ], + [ + -78.39369087575824, + 90.71269944194887 + ], + [ + -79.51360074541208, + 91.8326093116026 + ], + [ + -79.51360074541208, + 92.95251918125632 + ], + [ + -80.63351061506569, + 94.07242905090993 + ], + [ + -81.7534204847193, + 94.07242905090993 + ], + [ + -81.7534204847193, + 95.19233892056366 + ], + [ + -82.87333035437314, + 95.19233892056366 + ], + [ + -82.87333035437314, + 96.31224879021738 + ], + [ + -82.87333035437314, + 96.31224879021738 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -82.87333035437314, + 96.31224879021738 + ] + }, + { + "id": "tQdYEXIK4JPrfMu7Vgxau", + "type": "freedraw", + "x": -284.17487377792395, + "y": 198.00169405667657, + "width": 78.39369087575824, + "height": 80.63351061506569, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0o", + "roundness": null, + "seed": 1825255581, + "version": 20, + "versionNonce": 1972011101, + "isDeleted": false, + "boundElements": null, + "updated": 1756840373067, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6.719459217922122, + 7.839369087575847 + ], + [ + -11.199098696536794, + 12.319008566190519 + ], + [ + -16.798648044805304, + 17.91855791445903 + ], + [ + -22.398197393073815, + 23.518107262727426 + ], + [ + -30.237566480649548, + 30.237566480649548 + ], + [ + -36.95702569857167, + 35.83711582891806 + ], + [ + -42.55657504684018, + 42.55657504684018 + ], + [ + -50.39594413441591, + 48.15612439510869 + ], + [ + -55.995493482684424, + 54.87558361303081 + ], + [ + -62.714952700606545, + 60.47513296129921 + ], + [ + -66.0746823095676, + 64.954772439914 + ], + [ + -70.5543217881825, + 68.31450204887506 + ], + [ + -72.79414152748973, + 71.67423165783612 + ], + [ + -75.03396126679718, + 76.1538711364509 + ], + [ + -77.27378100610463, + 78.39369087575824 + ], + [ + -78.39369087575824, + 79.51360074541196 + ], + [ + -78.39369087575824, + 80.63351061506569 + ], + [ + -78.39369087575824, + 80.63351061506569 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -78.39369087575824, + 80.63351061506569 + ] + }, + { + "id": "wurtjjM2CG0DcORCCSnJ7", + "type": "freedraw", + "x": -169.94406707324742, + "y": 198.00169405667657, + "width": 115.35071657433014, + "height": 90.71269944194887, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0p", + "roundness": null, + "seed": 740412701, + "version": 22, + "versionNonce": 1236654397, + "isDeleted": false, + "boundElements": null, + "updated": 1756840373563, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -2.2398197393074497, + 4.479639478614672 + ], + [ + -5.599549348268511, + 6.719459217922122 + ], + [ + -11.199098696537021, + 10.079188826883183 + ], + [ + -16.798648044805304, + 15.67873817515158 + ], + [ + -24.638017132381265, + 22.398197393073815 + ], + [ + -33.597296089610836, + 30.237566480649548 + ], + [ + -43.67648491649402, + 39.19684543787912 + ], + [ + -57.11540335233826, + 49.2760342647623 + ], + [ + -68.31450204887506, + 58.23531322199187 + ], + [ + -79.51360074541208, + 64.954772439914 + ], + [ + -87.35296983298781, + 71.67423165783612 + ], + [ + -92.95251918125632, + 76.1538711364509 + ], + [ + -98.55206852952483, + 80.63351061506569 + ], + [ + -104.15161787779311, + 83.99324022402675 + ], + [ + -108.63125735640801, + 86.23305996333409 + ], + [ + -110.87107709571546, + 87.35296983298781 + ], + [ + -113.11089683502269, + 88.47287970264154 + ], + [ + -114.23080670467652, + 89.59278957229515 + ], + [ + -115.35071657433014, + 90.71269944194887 + ], + [ + -115.35071657433014, + 90.71269944194887 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -115.35071657433014, + 90.71269944194887 + ] + }, + { + "id": "viHv2ShSrycfOBEoJFwZU", + "type": "freedraw", + "x": -150.90559928913467, + "y": 239.43835923386303, + "width": 70.5543217881825, + "height": 63.834862570260384, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0q", + "roundness": null, + "seed": 1077177853, + "version": 21, + "versionNonce": 1203339411, + "isDeleted": false, + "boundElements": null, + "updated": 1756840374146, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -7.83936908757596, + 6.719459217922235 + ], + [ + -11.199098696537021, + 10.079188826883296 + ], + [ + -16.798648044805304, + 15.678738175151693 + ], + [ + -22.398197393073815, + 21.278287523420204 + ], + [ + -30.237566480649775, + 27.997746741342326 + ], + [ + -38.07693556822551, + 33.59729608961072 + ], + [ + -44.79639478614763, + 40.316755307532844 + ], + [ + -50.39594413441614, + 44.79639478614763 + ], + [ + -55.99549348268465, + 49.276034264762416 + ], + [ + -60.47513296129932, + 52.63576387372348 + ], + [ + -62.71495270060677, + 54.875583613030926 + ], + [ + -64.954772439914, + 57.11540335233826 + ], + [ + -66.07468230956783, + 59.3552230916456 + ], + [ + -67.19459217922144, + 60.47513296129932 + ], + [ + -68.31450204887506, + 61.59504283095305 + ], + [ + -69.4344119185289, + 62.71495270060666 + ], + [ + -69.4344119185289, + 63.834862570260384 + ], + [ + -70.5543217881825, + 63.834862570260384 + ], + [ + -70.5543217881825, + 63.834862570260384 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -70.5543217881825, + 63.834862570260384 + ] + }, + { + "id": "xta4ArZoTVTE7199ssVEj", + "type": "freedraw", + "x": -82.59109724025961, + "y": 158.80484861879734, + "width": 321.41413259060914, + "height": 199.34395679835688, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0r", + "roundness": null, + "seed": 1206564819, + "version": 259, + "versionNonce": 491286333, + "isDeleted": false, + "boundElements": null, + "updated": 1756840377405, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 4.479639478614672, + 0 + ], + [ + 6.719459217922122, + -1.1199098696536112 + ], + [ + 8.959278957229571, + -1.1199098696536112 + ], + [ + 11.199098696537021, + -1.1199098696536112 + ], + [ + 13.438918435844244, + -2.239819739307336 + ], + [ + 15.678738175151693, + -2.239819739307336 + ], + [ + 17.918557914459143, + -2.239819739307336 + ], + [ + 20.158377653766365, + -2.239819739307336 + ], + [ + 23.518107262727426, + -2.239819739307336 + ], + [ + 26.877836871688487, + -2.239819739307336 + ], + [ + 31.357476350303386, + -2.239819739307336 + ], + [ + 35.83711582891806, + -2.239819739307336 + ], + [ + 41.43666517718657, + -2.239819739307336 + ], + [ + 45.91630465580124, + -2.239819739307336 + ], + [ + 50.39594413441614, + -2.239819739307336 + ], + [ + 55.995493482684424, + -2.239819739307336 + ], + [ + 60.47513296129932, + -2.239819739307336 + ], + [ + 66.07468230956783, + -2.239819739307336 + ], + [ + 70.5543217881825, + -2.239819739307336 + ], + [ + 76.15387113645102, + -2.239819739307336 + ], + [ + 80.63351061506569, + -2.239819739307336 + ], + [ + 86.2330599633342, + -2.239819739307336 + ], + [ + 89.59278957229526, + -2.239819739307336 + ], + [ + 94.07242905090993, + -2.239819739307336 + ], + [ + 97.43215865987099, + -2.239819739307336 + ], + [ + 100.79188826883205, + -2.239819739307336 + ], + [ + 104.15161787779311, + -2.239819739307336 + ], + [ + 107.51134748675418, + -2.239819739307336 + ], + [ + 109.75116722606163, + -2.239819739307336 + ], + [ + 113.11089683502269, + -2.239819739307336 + ], + [ + 116.47062644398375, + -2.239819739307336 + ], + [ + 119.83035605294481, + -2.239819739307336 + ], + [ + 123.19008566190587, + -2.239819739307336 + ], + [ + 126.54981527086693, + -2.239819739307336 + ], + [ + 129.909544879828, + -2.239819739307336 + ], + [ + 133.26927448878905, + -2.239819739307336 + ], + [ + 136.6290040977501, + -2.239819739307336 + ], + [ + 141.108643576365, + -2.239819739307336 + ], + [ + 146.70819292463352, + -2.239819739307336 + ], + [ + 150.06792253359458, + -2.239819739307336 + ], + [ + 154.54756201220926, + -2.239819739307336 + ], + [ + 159.02720149082393, + -2.239819739307336 + ], + [ + 164.62675083909244, + 0 + ], + [ + 169.10639031770734, + 0 + ], + [ + 172.4661199266684, + 0 + ], + [ + 178.06566927493668, + 0 + ], + [ + 181.42539888389774, + 0 + ], + [ + 185.90503836251264, + 0 + ], + [ + 189.2647679714737, + 0 + ], + [ + 192.62449758043476, + 0 + ], + [ + 195.98422718939582, + 0 + ], + [ + 199.34395679835688, + 0 + ], + [ + 202.70368640731795, + 0 + ], + [ + 204.9435061466254, + 0 + ], + [ + 207.18332588593262, + 0 + ], + [ + 209.42314562524007, + 1.1199098696537249 + ], + [ + 211.66296536454752, + 1.1199098696537249 + ], + [ + 213.90278510385497, + 1.1199098696537249 + ], + [ + 216.1426048431622, + 1.1199098696537249 + ], + [ + 218.38242458246964, + 1.1199098696537249 + ], + [ + 220.6222443217771, + 1.1199098696537249 + ], + [ + 222.8620640610843, + 1.1199098696537249 + ], + [ + 225.10188380039176, + 1.1199098696537249 + ], + [ + 227.3417035396992, + 1.1199098696537249 + ], + [ + 229.58152327900643, + 1.1199098696537249 + ], + [ + 230.70143314866027, + 1.1199098696537249 + ], + [ + 231.82134301831388, + 1.1199098696537249 + ], + [ + 234.06116275762133, + 1.1199098696537249 + ], + [ + 235.18107262727494, + 1.1199098696537249 + ], + [ + 236.30098249692855, + 1.1199098696537249 + ], + [ + 238.540802236236, + 1.1199098696537249 + ], + [ + 240.78062197554345, + 1.1199098696537249 + ], + [ + 244.14035158450451, + 1.1199098696537249 + ], + [ + 246.38017132381196, + 1.1199098696537249 + ], + [ + 249.73990093277303, + 1.1199098696537249 + ], + [ + 251.97972067208025, + 1.1199098696537249 + ], + [ + 254.2195404113877, + 1.1199098696537249 + ], + [ + 256.45936015069515, + 1.1199098696537249 + ], + [ + 257.57927002034876, + 1.1199098696537249 + ], + [ + 258.69917989000237, + 1.1199098696537249 + ], + [ + 259.8190897596562, + 1.1199098696537249 + ], + [ + 262.05890949896343, + 1.1199098696537249 + ], + [ + 263.17881936861727, + 1.1199098696537249 + ], + [ + 265.4186391079247, + 1.1199098696537249 + ], + [ + 267.65845884723194, + 2.2398197393074497 + ], + [ + 269.8982785865394, + 2.2398197393074497 + ], + [ + 272.13809832584684, + 3.359729608961061 + ], + [ + 274.37791806515406, + 3.359729608961061 + ], + [ + 276.6177378044615, + 4.479639478614786 + ], + [ + 277.7376476741151, + 4.479639478614786 + ], + [ + 278.85755754376896, + 4.479639478614786 + ], + [ + 279.9774674134226, + 4.479639478614786 + ], + [ + 281.0973772830762, + 4.479639478614786 + ], + [ + 282.21728715273, + 4.479639478614786 + ], + [ + 284.45710689203725, + 4.479639478614786 + ], + [ + 286.6969266313447, + 4.479639478614786 + ], + [ + 288.93674637065214, + 4.479639478614786 + ], + [ + 291.1765661099596, + 4.479639478614786 + ], + [ + 293.4163858492668, + 4.479639478614786 + ], + [ + 294.53629571892066, + 4.479639478614786 + ], + [ + 295.65620558857427, + 4.479639478614786 + ], + [ + 296.7761154582279, + 4.479639478614786 + ], + [ + 297.8960253278817, + 4.479639478614786 + ], + [ + 297.8960253278817, + 5.599549348268511 + ], + [ + 297.8960253278817, + 6.719459217922122 + ], + [ + 297.8960253278817, + 7.839369087575847 + ], + [ + 299.0159351975353, + 7.839369087575847 + ], + [ + 299.0159351975353, + 8.959278957229571 + ], + [ + 299.0159351975353, + 10.079188826883296 + ], + [ + 299.0159351975353, + 11.199098696536907 + ], + [ + 299.0159351975353, + 12.319008566190632 + ], + [ + 299.0159351975353, + 13.438918435844357 + ], + [ + 299.0159351975353, + 15.678738175151693 + ], + [ + 299.0159351975353, + 17.91855791445903 + ], + [ + 299.0159351975353, + 21.278287523420204 + ], + [ + 299.0159351975353, + 23.51810726272754 + ], + [ + 297.8960253278817, + 26.8778368716886 + ], + [ + 297.8960253278817, + 30.23756648064966 + ], + [ + 297.8960253278817, + 33.59729608961072 + ], + [ + 296.7761154582279, + 35.83711582891817 + ], + [ + 296.7761154582279, + 39.19684543787923 + ], + [ + 296.7761154582279, + 41.43666517718657 + ], + [ + 296.7761154582279, + 43.676484916493905 + ], + [ + 295.65620558857427, + 45.916304655801355 + ], + [ + 295.65620558857427, + 48.15612439510869 + ], + [ + 295.65620558857427, + 51.51585400406975 + ], + [ + 295.65620558857427, + 53.7556737433772 + ], + [ + 294.53629571892066, + 55.99549348268454 + ], + [ + 294.53629571892066, + 59.3552230916456 + ], + [ + 293.4163858492668, + 62.71495270060666 + ], + [ + 292.2964759796132, + 66.07468230956772 + ], + [ + 292.2964759796132, + 69.43441191852878 + ], + [ + 291.1765661099596, + 72.79414152748996 + ], + [ + 291.1765661099596, + 76.15387113645102 + ], + [ + 290.05665624030576, + 79.51360074541208 + ], + [ + 290.05665624030576, + 82.87333035437314 + ], + [ + 290.05665624030576, + 86.2330599633342 + ], + [ + 290.05665624030576, + 89.59278957229526 + ], + [ + 291.1765661099596, + 95.19233892056366 + ], + [ + 291.1765661099596, + 97.4321586598711 + ], + [ + 291.1765661099596, + 99.67197839917844 + ], + [ + 292.2964759796132, + 101.91179813848589 + ], + [ + 292.2964759796132, + 104.15161787779323 + ], + [ + 292.2964759796132, + 106.39143761710056 + ], + [ + 293.4163858492668, + 108.63125735640801 + ], + [ + 293.4163858492668, + 111.99098696536907 + ], + [ + 294.53629571892066, + 115.35071657433014 + ], + [ + 295.65620558857427, + 118.7104461832912 + ], + [ + 296.7761154582279, + 122.07017579225226 + ], + [ + 299.0159351975353, + 127.66972514052077 + ], + [ + 301.2557549368428, + 132.14936461913544 + ], + [ + 303.49557467615, + 136.62900409775023 + ], + [ + 306.85530428511106, + 139.9887337067113 + ], + [ + 307.9752141547649, + 142.22855344601874 + ], + [ + 309.0951240244185, + 144.46837318532607 + ], + [ + 310.2150338940721, + 145.5882830549798 + ], + [ + 311.33494376372596, + 146.7081929246334 + ], + [ + 312.45485363337957, + 147.82810279428713 + ], + [ + 312.45485363337957, + 150.06792253359458 + ], + [ + 312.45485363337957, + 151.1878324032482 + ], + [ + 312.45485363337957, + 153.42765214255564 + ], + [ + 313.5747635030332, + 154.54756201220926 + ], + [ + 313.5747635030332, + 155.66747188186298 + ], + [ + 313.5747635030332, + 157.90729162117032 + ], + [ + 314.694673372687, + 160.14711136047777 + ], + [ + 314.694673372687, + 161.2670212301315 + ], + [ + 314.694673372687, + 162.3869310997851 + ], + [ + 314.694673372687, + 163.50684096943883 + ], + [ + 314.694673372687, + 164.62675083909255 + ], + [ + 314.694673372687, + 165.74666070874616 + ], + [ + 315.81458324234063, + 166.8665705783999 + ], + [ + 315.81458324234063, + 167.9864804480536 + ], + [ + 315.81458324234063, + 169.10639031770722 + ], + [ + 315.81458324234063, + 170.22630018736095 + ], + [ + 315.81458324234063, + 171.34621005701467 + ], + [ + 315.81458324234063, + 172.4661199266684 + ], + [ + 315.81458324234063, + 173.586029796322 + ], + [ + 316.93449311199447, + 174.70593966597573 + ], + [ + 316.93449311199447, + 175.82584953562946 + ], + [ + 316.93449311199447, + 176.94575940528307 + ], + [ + 316.93449311199447, + 178.0656692749368 + ], + [ + 316.93449311199447, + 180.30548901424413 + ], + [ + 316.93449311199447, + 181.42539888389786 + ], + [ + 316.93449311199447, + 182.54530875355158 + ], + [ + 316.93449311199447, + 183.6652186232052 + ], + [ + 316.93449311199447, + 184.78512849285892 + ], + [ + 316.93449311199447, + 185.90503836251264 + ], + [ + 316.93449311199447, + 187.02494823216637 + ], + [ + 315.81458324234063, + 187.02494823216637 + ], + [ + 315.81458324234063, + 188.14485810181998 + ], + [ + 314.694673372687, + 188.14485810181998 + ], + [ + 313.5747635030332, + 189.2647679714737 + ], + [ + 312.45485363337957, + 189.2647679714737 + ], + [ + 309.0951240244185, + 190.38467784112743 + ], + [ + 302.3756648064964, + 192.62449758043476 + ], + [ + 299.0159351975353, + 193.7444074500885 + ], + [ + 295.65620558857427, + 194.8643173197421 + ], + [ + 290.05665624030576, + 194.8643173197421 + ], + [ + 285.5770167616911, + 195.98422718939582 + ], + [ + 279.9774674134226, + 195.98422718939582 + ], + [ + 275.4978279348079, + 197.10413705904955 + ], + [ + 269.8982785865394, + 197.10413705904955 + ], + [ + 265.4186391079247, + 197.10413705904955 + ], + [ + 258.69917989000237, + 197.10413705904955 + ], + [ + 251.97972067208025, + 197.10413705904955 + ], + [ + 245.26026145415813, + 197.10413705904955 + ], + [ + 236.30098249692855, + 197.10413705904955 + ], + [ + 226.22179367004537, + 197.10413705904955 + ], + [ + 217.26251471281603, + 197.10413705904955 + ], + [ + 210.54305549489368, + 197.10413705904955 + ], + [ + 202.70368640731795, + 197.10413705904955 + ], + [ + 195.98422718939582, + 195.98422718939582 + ], + [ + 190.3846778411273, + 195.98422718939582 + ], + [ + 185.90503836251264, + 195.98422718939582 + ], + [ + 180.30548901424413, + 195.98422718939582 + ], + [ + 175.82584953562946, + 195.98422718939582 + ], + [ + 172.4661199266684, + 195.98422718939582 + ], + [ + 169.10639031770734, + 195.98422718939582 + ], + [ + 165.74666070874628, + 195.98422718939582 + ], + [ + 162.38693109978522, + 195.98422718939582 + ], + [ + 159.02720149082393, + 195.98422718939582 + ], + [ + 155.66747188186287, + 195.98422718939582 + ], + [ + 151.1878324032482, + 195.98422718939582 + ], + [ + 145.58828305497968, + 195.98422718939582 + ], + [ + 141.108643576365, + 195.98422718939582 + ], + [ + 128.78963501017438, + 195.98422718939582 + ], + [ + 122.07017579225226, + 195.98422718939582 + ], + [ + 115.35071657433014, + 195.98422718939582 + ], + [ + 109.75116722606163, + 195.98422718939582 + ], + [ + 103.0317080081395, + 195.98422718939582 + ], + [ + 96.31224879021738, + 195.98422718939582 + ], + [ + 89.59278957229526, + 195.98422718939582 + ], + [ + 82.87333035437314, + 195.98422718939582 + ], + [ + 75.03396126679718, + 195.98422718939582 + ], + [ + 68.31450204887506, + 193.7444074500885 + ], + [ + 59.355223091645485, + 193.7444074500885 + ], + [ + 52.63576387372336, + 192.62449758043476 + ], + [ + 44.79639478614763, + 191.50458771078104 + ], + [ + 38.07693556822551, + 191.50458771078104 + ], + [ + 32.477386219957, + 191.50458771078104 + ], + [ + 27.997746741342326, + 190.38467784112743 + ], + [ + 22.398197393073815, + 190.38467784112743 + ], + [ + 19.038467784112754, + 190.38467784112743 + ], + [ + 15.678738175151693, + 190.38467784112743 + ], + [ + 12.319008566190632, + 190.38467784112743 + ], + [ + 8.959278957229571, + 190.38467784112743 + ], + [ + 6.719459217922122, + 190.38467784112743 + ], + [ + 4.479639478614672, + 190.38467784112743 + ], + [ + 2.2398197393074497, + 189.2647679714737 + ], + [ + 0, + 189.2647679714737 + ], + [ + -1.1199098696536112, + 189.2647679714737 + ], + [ + -2.2398197393074497, + 189.2647679714737 + ], + [ + -3.359729608961061, + 189.2647679714737 + ], + [ + -4.479639478614672, + 189.2647679714737 + ], + [ + -4.479639478614672, + 188.14485810181998 + ], + [ + -4.479639478614672, + 187.02494823216637 + ], + [ + -4.479639478614672, + 187.02494823216637 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -4.479639478614672, + 187.02494823216637 + ] + }, + { + "id": "iQuDk5goh0JukjU2Y14MQ", + "type": "freedraw", + "x": -41.154432063073045, + "y": 178.96322627256382, + "width": 51.51585400406975, + "height": 48.15612439510869, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0s", + "roundness": null, + "seed": 882476029, + "version": 19, + "versionNonce": 916906227, + "isDeleted": false, + "boundElements": null, + "updated": 1756840378084, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -5.599549348268511, + 5.599549348268397 + ], + [ + -8.959278957229571, + 10.079188826883183 + ], + [ + -13.438918435844244, + 13.438918435844244 + ], + [ + -19.038467784112754, + 17.91855791445903 + ], + [ + -24.638017132381265, + 21.27828752342009 + ], + [ + -27.997746741342326, + 25.757927002034876 + ], + [ + -32.477386219957, + 29.117656610995937 + ], + [ + -35.83711582891806, + 32.477386219957 + ], + [ + -39.19684543787912, + 35.83711582891806 + ], + [ + -41.43666517718657, + 38.07693556822551 + ], + [ + -43.67648491649402, + 40.316755307532844 + ], + [ + -45.91630465580124, + 42.55657504684018 + ], + [ + -48.15612439510869, + 44.79639478614763 + ], + [ + -49.2760342647623, + 45.91630465580124 + ], + [ + -50.39594413441614, + 47.036214525454966 + ], + [ + -51.51585400406975, + 48.15612439510869 + ], + [ + -51.51585400406975, + 48.15612439510869 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -51.51585400406975, + 48.15612439510869 + ] + }, + { + "id": "NdwA3pFLswi4g9opPj_zx", + "type": "freedraw", + "x": 5.881782462382034, + "y": 187.92250522979327, + "width": 99.67197839917844, + "height": 123.19008566190598, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0t", + "roundness": null, + "seed": 1820557363, + "version": 18, + "versionNonce": 1149091539, + "isDeleted": false, + "boundElements": null, + "updated": 1756840378560, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + -3.3597296089612882, + 6.719459217922235 + ], + [ + -6.719459217922349, + 10.079188826883296 + ], + [ + -12.319008566190632, + 17.918557914459143 + ], + [ + -19.038467784112754, + 25.757927002034876 + ], + [ + -27.997746741342326, + 35.83711582891817 + ], + [ + -39.19684543787935, + 49.276034264762416 + ], + [ + -51.51585400406975, + 63.834862570260384 + ], + [ + -63.834862570260384, + 78.39369087575835 + ], + [ + -76.15387113645102, + 92.95251918125632 + ], + [ + -85.11315009368059, + 104.15161787779323 + ], + [ + -92.95251918125632, + 113.1108968350228 + ], + [ + -96.31224879021738, + 116.47062644398386 + ], + [ + -99.67197839917844, + 120.95026592259865 + ], + [ + -99.67197839917844, + 123.19008566190598 + ], + [ + -99.67197839917844, + 123.19008566190598 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -99.67197839917844, + 123.19008566190598 + ] + }, + { + "id": "Gx3mvwWLzKRZ55DngqiMC", + "type": "freedraw", + "x": 52.91799698783689, + "y": 200.2415137959839, + "width": 143.34846331567223, + "height": 137.74891396740395, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0u", + "roundness": null, + "seed": 249849363, + "version": 22, + "versionNonce": 1520220147, + "isDeleted": false, + "boundElements": null, + "updated": 1756840379082, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1.1199098696536112, + 0 + ], + [ + 1.1199098696536112, + 2.239819739307336 + ], + [ + -1.1199098696536112, + 4.479639478614786 + ], + [ + -5.599549348268511, + 8.959278957229571 + ], + [ + -11.199098696536794, + 15.678738175151693 + ], + [ + -19.038467784112754, + 23.51810726272754 + ], + [ + -27.997746741342326, + 33.59729608961072 + ], + [ + -39.19684543787912, + 44.79639478614763 + ], + [ + -52.63576387372336, + 57.11540335233826 + ], + [ + -68.31450204887506, + 71.67423165783623 + ], + [ + -82.87333035437314, + 83.99324022402675 + ], + [ + -96.31224879021738, + 96.31224879021738 + ], + [ + -110.87107709571524, + 108.63125735640801 + ], + [ + -123.19008566190587, + 118.7104461832912 + ], + [ + -132.14936461913544, + 127.66972514052065 + ], + [ + -137.74891396740395, + 132.14936461913544 + ], + [ + -139.98873370671117, + 134.3891843584429 + ], + [ + -142.22855344601862, + 136.62900409775023 + ], + [ + -142.22855344601862, + 137.74891396740395 + ], + [ + -142.22855344601862, + 137.74891396740395 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -142.22855344601862, + 137.74891396740395 + ] + }, + { + "id": "wPV6Rdcnu5CTRlhU5Aw-E", + "type": "freedraw", + "x": 117.87276942775088, + "y": 206.96097301390603, + "width": 94.07242905090993, + "height": 109.75116722606163, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0v", + "roundness": null, + "seed": 1345296179, + "version": 18, + "versionNonce": 715650515, + "isDeleted": false, + "boundElements": null, + "updated": 1756840379546, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -6.719459217922122, + 6.719459217922122 + ], + [ + -12.319008566190405, + 14.558828305497968 + ], + [ + -20.158377653766365, + 22.398197393073815 + ], + [ + -29.117656610995937, + 33.59729608961072 + ], + [ + -38.07693556822528, + 43.676484916493905 + ], + [ + -49.2760342647623, + 54.87558361303081 + ], + [ + -59.355223091645485, + 67.19459217922144 + ], + [ + -68.31450204887506, + 75.03396126679729 + ], + [ + -76.15387113645079, + 83.99324022402675 + ], + [ + -82.87333035437291, + 92.95251918125632 + ], + [ + -87.35296983298781, + 98.55206852952472 + ], + [ + -90.71269944194887, + 101.91179813848589 + ], + [ + -92.95251918125632, + 106.39143761710056 + ], + [ + -94.07242905090993, + 108.63125735640801 + ], + [ + -94.07242905090993, + 109.75116722606163 + ], + [ + -94.07242905090993, + 109.75116722606163 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -94.07242905090993, + 109.75116722606163 + ] + }, + { + "id": "h_xyUxGTz1VQtCD5nH3dd", + "type": "freedraw", + "x": 141.39087669047854, + "y": 240.55826910351675, + "width": 80.63351061506569, + "height": 73.91405139714357, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0w", + "roundness": null, + "seed": 992795923, + "version": 14, + "versionNonce": 1101979763, + "isDeleted": false, + "boundElements": null, + "updated": 1756840380115, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -12.319008566190632, + 12.319008566190632 + ], + [ + -29.117656610995937, + 24.63801713238115 + ], + [ + -39.19684543787935, + 33.59729608961072 + ], + [ + -48.15612439510869, + 42.556575046840294 + ], + [ + -58.23531322199187, + 51.51585400406975 + ], + [ + -67.19459217922144, + 58.23531322199187 + ], + [ + -72.79414152748996, + 62.71495270060666 + ], + [ + -77.27378100610463, + 67.19459217922144 + ], + [ + -79.51360074541208, + 70.5543217881825 + ], + [ + -80.63351061506569, + 72.79414152748984 + ], + [ + -80.63351061506569, + 73.91405139714357 + ], + [ + -80.63351061506569, + 73.91405139714357 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -80.63351061506569, + 73.91405139714357 + ] + }, + { + "id": "IzP0H-r5QxbleqULqgdJH", + "type": "freedraw", + "x": 178.3479023890502, + "y": 237.1985394945557, + "width": 78.39369087575824, + "height": 87.35296983298781, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0x", + "roundness": null, + "seed": 506568627, + "version": 22, + "versionNonce": 378877331, + "isDeleted": false, + "boundElements": null, + "updated": 1756840380705, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 3.359729608961061 + ], + [ + -2.2398197393074497, + 7.839369087575847 + ], + [ + -4.479639478614672, + 10.079188826883183 + ], + [ + -6.719459217922122, + 12.319008566190632 + ], + [ + -8.959278957229571, + 15.678738175151693 + ], + [ + -11.199098696536794, + 19.038467784112754 + ], + [ + -13.438918435844244, + 22.398197393073815 + ], + [ + -16.798648044805304, + 26.8778368716886 + ], + [ + -21.278287523419976, + 31.357476350303386 + ], + [ + -25.757927002034876, + 36.95702569857178 + ], + [ + -31.357476350303386, + 43.676484916493905 + ], + [ + -39.19684543787912, + 49.276034264762416 + ], + [ + -47.03621452545485, + 55.99549348268454 + ], + [ + -54.87558361303081, + 62.71495270060666 + ], + [ + -62.714952700606545, + 68.31450204887506 + ], + [ + -69.43441191852867, + 75.03396126679729 + ], + [ + -73.91405139714357, + 80.63351061506569 + ], + [ + -77.27378100610463, + 85.11315009368047 + ], + [ + -78.39369087575824, + 87.35296983298781 + ], + [ + -78.39369087575824, + 87.35296983298781 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -78.39369087575824, + 87.35296983298781 + ] + }, + { + "id": "1CrvmTDyLnyxWmwMP7Ai6", + "type": "freedraw", + "x": 178.3479023890502, + "y": 277.51529480208853, + "width": 16.798648044805304, + "height": 45.916304655801355, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0y", + "roundness": null, + "seed": 555560147, + "version": 19, + "versionNonce": 1079602493, + "isDeleted": false, + "boundElements": null, + "updated": 1756840381243, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 6.719459217922122 + ], + [ + -1.1199098696536112, + 8.959278957229571 + ], + [ + -2.2398197393074497, + 11.199098696536907 + ], + [ + -3.359729608961061, + 13.438918435844244 + ], + [ + -3.359729608961061, + 14.558828305497968 + ], + [ + -5.599549348268511, + 16.798648044805418 + ], + [ + -5.599549348268511, + 19.038467784112754 + ], + [ + -7.839369087575733, + 21.27828752342009 + ], + [ + -10.079188826883183, + 24.63801713238115 + ], + [ + -11.199098696536794, + 27.997746741342212 + ], + [ + -12.319008566190632, + 31.357476350303386 + ], + [ + -13.438918435844244, + 34.71720595926445 + ], + [ + -14.558828305497855, + 38.07693556822551 + ], + [ + -15.678738175151693, + 41.43666517718657 + ], + [ + -16.798648044805304, + 43.676484916493905 + ], + [ + -16.798648044805304, + 45.916304655801355 + ], + [ + -16.798648044805304, + 45.916304655801355 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -16.798648044805304, + 45.916304655801355 + ] + }, + { + "id": "Hkp4X-atCZvwMKy8rPpiE", + "type": "freedraw", + "x": -437.6025259204795, + "y": 114.0084538326497, + "width": 328.13359180853115, + "height": 41.43666517718657, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b10", + "roundness": null, + "seed": 2035043859, + "version": 253, + "versionNonce": 1731351517, + "isDeleted": false, + "boundElements": null, + "updated": 1756840400028, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 3.359729608961061, + 0 + ], + [ + 4.479639478614786, + 0 + ], + [ + 5.599549348268511, + 0 + ], + [ + 6.719459217922235, + 0 + ], + [ + 7.839369087575847, + 0 + ], + [ + 10.079188826883296, + 0 + ], + [ + 12.319008566190746, + 0 + ], + [ + 14.558828305497968, + 0 + ], + [ + 16.798648044805418, + 0 + ], + [ + 20.15837765376648, + 0 + ], + [ + 23.51810726272754, + 0 + ], + [ + 25.75792700203499, + 0 + ], + [ + 29.11765661099605, + 0 + ], + [ + 32.47738621995711, + 0 + ], + [ + 35.83711582891817, + 0 + ], + [ + 39.19684543787923, + 0 + ], + [ + 42.556575046840294, + 0 + ], + [ + 45.916304655801355, + 0 + ], + [ + 49.276034264762416, + 0 + ], + [ + 52.63576387372348, + 0 + ], + [ + 55.99549348268454, + 0 + ], + [ + 58.23531322199199, + 0 + ], + [ + 61.59504283095305, + 0 + ], + [ + 64.95477243991411, + -1.1199098696536112 + ], + [ + 67.19459217922156, + -1.1199098696536112 + ], + [ + 69.43441191852878, + -1.1199098696536112 + ], + [ + 72.79414152748984, + -1.1199098696536112 + ], + [ + 75.03396126679729, + -1.1199098696536112 + ], + [ + 77.27378100610474, + -1.1199098696536112 + ], + [ + 80.6335106150658, + -1.1199098696536112 + ], + [ + 83.99324022402686, + -1.1199098696536112 + ], + [ + 87.35296983298792, + -1.1199098696536112 + ], + [ + 90.71269944194898, + -1.1199098696536112 + ], + [ + 95.19233892056366, + -1.1199098696536112 + ], + [ + 98.55206852952472, + -1.1199098696536112 + ], + [ + 103.03170800813962, + -2.239819739307336 + ], + [ + 108.6312573564079, + -2.239819739307336 + ], + [ + 113.1108968350228, + -2.239819739307336 + ], + [ + 119.83035605294492, + -4.479639478614672 + ], + [ + 125.42990540121343, + -5.599549348268397 + ], + [ + 129.9095448798281, + -5.599549348268397 + ], + [ + 135.50909422809661, + -5.599549348268397 + ], + [ + 138.86882383705768, + -5.599549348268397 + ], + [ + 143.34846331567235, + -5.599549348268397 + ], + [ + 148.94801266394086, + -5.599549348268397 + ], + [ + 154.54756201220937, + -5.599549348268397 + ], + [ + 162.3869310997851, + -5.599549348268397 + ], + [ + 169.10639031770722, + -5.599549348268397 + ], + [ + 175.82584953562935, + -5.599549348268397 + ], + [ + 182.54530875355147, + -5.599549348268397 + ], + [ + 190.38467784112743, + -5.599549348268397 + ], + [ + 197.10413705904955, + -5.599549348268397 + ], + [ + 203.82359627697167, + -5.599549348268397 + ], + [ + 210.5430554948938, + -5.599549348268397 + ], + [ + 218.38242458246975, + -5.599549348268397 + ], + [ + 222.86206406108442, + -6.719459217922122 + ], + [ + 228.46161340935294, + -6.719459217922122 + ], + [ + 235.18107262727506, + -6.719459217922122 + ], + [ + 239.66071210588973, + -6.719459217922122 + ], + [ + 246.38017132381185, + -6.719459217922122 + ], + [ + 254.2195404113878, + -6.719459217922122 + ], + [ + 260.93899962930993, + -6.719459217922122 + ], + [ + 267.65845884723205, + -6.719459217922122 + ], + [ + 273.25800819550057, + -6.719459217922122 + ], + [ + 277.73764767411524, + -6.719459217922122 + ], + [ + 283.33719702238375, + -6.719459217922122 + ], + [ + 286.6969266313448, + -6.719459217922122 + ], + [ + 290.05665624030587, + -6.719459217922122 + ], + [ + 292.2964759796133, + -6.719459217922122 + ], + [ + 293.41638584926693, + -6.719459217922122 + ], + [ + 294.53629571892054, + -6.719459217922122 + ], + [ + 295.6562055885744, + -6.719459217922122 + ], + [ + 296.776115458228, + -6.719459217922122 + ], + [ + 297.8960253278816, + -6.719459217922122 + ], + [ + 299.01593519753544, + -6.719459217922122 + ], + [ + 299.01593519753544, + -5.599549348268397 + ], + [ + 300.13584506718905, + -5.599549348268397 + ], + [ + 301.25575493684266, + -4.479639478614672 + ], + [ + 302.3756648064965, + -4.479639478614672 + ], + [ + 303.4955746761501, + -3.359729608961061 + ], + [ + 304.6154845458037, + -2.239819739307336 + ], + [ + 305.73539441545756, + -1.1199098696536112 + ], + [ + 306.8553042851112, + -1.1199098696536112 + ], + [ + 307.9752141547648, + 0 + ], + [ + 309.0951240244186, + 1.1199098696537249 + ], + [ + 310.21503389407223, + 2.2398197393074497 + ], + [ + 311.33494376372585, + 3.3597296089611746 + ], + [ + 312.4548536333797, + 4.479639478614786 + ], + [ + 312.4548536333797, + 5.599549348268511 + ], + [ + 313.5747635030333, + 7.839369087575847 + ], + [ + 314.69467337268713, + 10.079188826883296 + ], + [ + 315.81458324234075, + 12.319008566190632 + ], + [ + 318.0544029816482, + 13.438918435844357 + ], + [ + 319.1743128513018, + 14.558828305498082 + ], + [ + 320.2942227209554, + 15.678738175151693 + ], + [ + 321.41413259060926, + 15.678738175151693 + ], + [ + 322.53404246026287, + 15.678738175151693 + ], + [ + 323.6539523299165, + 15.678738175151693 + ], + [ + 324.7738621995703, + 16.798648044805418 + ], + [ + 325.8937720692239, + 16.798648044805418 + ], + [ + 325.8937720692239, + 17.918557914459143 + ], + [ + 325.8937720692239, + 19.038467784112754 + ], + [ + 327.01368193887754, + 20.15837765376648 + ], + [ + 327.01368193887754, + 21.278287523420204 + ], + [ + 327.01368193887754, + 22.398197393073815 + ], + [ + 327.01368193887754, + 23.51810726272754 + ], + [ + 327.01368193887754, + 24.638017132381265 + ], + [ + 327.01368193887754, + 25.757927002034876 + ], + [ + 327.01368193887754, + 26.8778368716886 + ], + [ + 327.01368193887754, + 27.997746741342326 + ], + [ + 327.01368193887754, + 29.11765661099605 + ], + [ + 327.01368193887754, + 30.23756648064966 + ], + [ + 327.01368193887754, + 31.357476350303386 + ], + [ + 325.8937720692239, + 32.47738621995711 + ], + [ + 324.7738621995703, + 32.47738621995711 + ], + [ + 324.7738621995703, + 33.59729608961072 + ], + [ + 323.6539523299165, + 34.71720595926445 + ], + [ + 322.53404246026287, + 34.71720595926445 + ], + [ + 321.41413259060926, + 34.71720595926445 + ], + [ + 320.2942227209554, + 34.71720595926445 + ], + [ + 319.1743128513018, + 34.71720595926445 + ], + [ + 318.0544029816482, + 34.71720595926445 + ], + [ + 315.81458324234075, + 34.71720595926445 + ], + [ + 311.33494376372585, + 34.71720595926445 + ], + [ + 309.0951240244186, + 34.71720595926445 + ], + [ + 306.8553042851112, + 34.71720595926445 + ], + [ + 304.6154845458037, + 34.71720595926445 + ], + [ + 302.3756648064965, + 34.71720595926445 + ], + [ + 300.13584506718905, + 34.71720595926445 + ], + [ + 297.8960253278816, + 34.71720595926445 + ], + [ + 294.53629571892054, + 34.71720595926445 + ], + [ + 291.1765661099595, + 34.71720595926445 + ], + [ + 286.6969266313448, + 33.59729608961072 + ], + [ + 281.0973772830763, + 32.47738621995711 + ], + [ + 274.3779180651542, + 32.47738621995711 + ], + [ + 267.65845884723205, + 31.357476350303386 + ], + [ + 262.05890949896354, + 30.23756648064966 + ], + [ + 255.33945028104142, + 30.23756648064966 + ], + [ + 250.85981080242675, + 30.23756648064966 + ], + [ + 245.26026145415824, + 30.23756648064966 + ], + [ + 240.78062197554357, + 29.11765661099605 + ], + [ + 235.18107262727506, + 29.11765661099605 + ], + [ + 230.70143314866016, + 29.11765661099605 + ], + [ + 225.10188380039187, + 29.11765661099605 + ], + [ + 221.7421541914308, + 29.11765661099605 + ], + [ + 217.2625147128159, + 29.11765661099605 + ], + [ + 212.78287523420124, + 29.11765661099605 + ], + [ + 206.06341601627912, + 29.11765661099605 + ], + [ + 199.343956798357, + 29.11765661099605 + ], + [ + 191.50458771078104, + 29.11765661099605 + ], + [ + 184.78512849285892, + 26.8778368716886 + ], + [ + 178.0656692749368, + 26.8778368716886 + ], + [ + 169.10639031770722, + 26.8778368716886 + ], + [ + 161.2670212301315, + 26.8778368716886 + ], + [ + 154.54756201220937, + 25.757927002034876 + ], + [ + 147.82810279428725, + 25.757927002034876 + ], + [ + 141.10864357636513, + 25.757927002034876 + ], + [ + 135.50909422809661, + 25.757927002034876 + ], + [ + 129.9095448798281, + 25.757927002034876 + ], + [ + 125.42990540121343, + 25.757927002034876 + ], + [ + 120.95026592259853, + 25.757927002034876 + ], + [ + 116.47062644398386, + 25.757927002034876 + ], + [ + 113.1108968350228, + 25.757927002034876 + ], + [ + 110.87107709571535, + 25.757927002034876 + ], + [ + 108.6312573564079, + 25.757927002034876 + ], + [ + 106.39143761710068, + 25.757927002034876 + ], + [ + 104.15161787779323, + 25.757927002034876 + ], + [ + 101.91179813848578, + 25.757927002034876 + ], + [ + 99.67197839917856, + 25.757927002034876 + ], + [ + 97.4321586598711, + 25.757927002034876 + ], + [ + 94.07242905091005, + 25.757927002034876 + ], + [ + 91.8326093116026, + 25.757927002034876 + ], + [ + 89.59278957229537, + 25.757927002034876 + ], + [ + 86.23305996333431, + 25.757927002034876 + ], + [ + 83.99324022402686, + 25.757927002034876 + ], + [ + 80.6335106150658, + 25.757927002034876 + ], + [ + 78.39369087575835, + 25.757927002034876 + ], + [ + 75.03396126679729, + 25.757927002034876 + ], + [ + 71.67423165783623, + 25.757927002034876 + ], + [ + 69.43441191852878, + 25.757927002034876 + ], + [ + 67.19459217922156, + 25.757927002034876 + ], + [ + 64.95477243991411, + 25.757927002034876 + ], + [ + 62.71495270060666, + 25.757927002034876 + ], + [ + 61.59504283095305, + 25.757927002034876 + ], + [ + 59.3552230916456, + 25.757927002034876 + ], + [ + 58.23531322199199, + 25.757927002034876 + ], + [ + 57.11540335233815, + 25.757927002034876 + ], + [ + 55.99549348268454, + 25.757927002034876 + ], + [ + 54.875583613030926, + 25.757927002034876 + ], + [ + 52.63576387372348, + 25.757927002034876 + ], + [ + 51.515854004069865, + 25.757927002034876 + ], + [ + 49.276034264762416, + 25.757927002034876 + ], + [ + 47.036214525454966, + 25.757927002034876 + ], + [ + 45.916304655801355, + 25.757927002034876 + ], + [ + 43.676484916493905, + 25.757927002034876 + ], + [ + 41.43666517718668, + 25.757927002034876 + ], + [ + 39.19684543787923, + 25.757927002034876 + ], + [ + 38.07693556822562, + 25.757927002034876 + ], + [ + 36.95702569857178, + 25.757927002034876 + ], + [ + 34.717205959264334, + 25.757927002034876 + ], + [ + 33.59729608961072, + 25.757927002034876 + ], + [ + 31.357476350303273, + 25.757927002034876 + ], + [ + 30.23756648064966, + 25.757927002034876 + ], + [ + 27.997746741342212, + 26.8778368716886 + ], + [ + 25.75792700203499, + 26.8778368716886 + ], + [ + 23.51810726272754, + 26.8778368716886 + ], + [ + 22.39819739307393, + 26.8778368716886 + ], + [ + 20.15837765376648, + 26.8778368716886 + ], + [ + 19.038467784112868, + 26.8778368716886 + ], + [ + 16.798648044805418, + 26.8778368716886 + ], + [ + 14.558828305497968, + 26.8778368716886 + ], + [ + 12.319008566190746, + 26.8778368716886 + ], + [ + 10.079188826883296, + 26.8778368716886 + ], + [ + 7.839369087575847, + 26.8778368716886 + ], + [ + 5.599549348268511, + 26.8778368716886 + ], + [ + 4.479639478614786, + 26.8778368716886 + ], + [ + 2.2398197393074497, + 26.8778368716886 + ], + [ + 1.1199098696537249, + 26.8778368716886 + ], + [ + 0, + 26.8778368716886 + ], + [ + -1.1199098696536112, + 26.8778368716886 + ], + [ + -1.1199098696536112, + 25.757927002034876 + ], + [ + -1.1199098696536112, + 24.638017132381265 + ], + [ + -1.1199098696536112, + 23.51810726272754 + ], + [ + -1.1199098696536112, + 21.278287523420204 + ], + [ + -1.1199098696536112, + 20.15837765376648 + ], + [ + -1.1199098696536112, + 17.918557914459143 + ], + [ + -1.1199098696536112, + 15.678738175151693 + ], + [ + 0, + 14.558828305498082 + ], + [ + 0, + 12.319008566190632 + ], + [ + 0, + 10.079188826883296 + ], + [ + 1.1199098696537249, + 8.959278957229571 + ], + [ + 1.1199098696537249, + 6.719459217922235 + ], + [ + 1.1199098696537249, + 5.599549348268511 + ], + [ + 1.1199098696537249, + 3.3597296089611746 + ], + [ + 2.2398197393074497, + 2.2398197393074497 + ], + [ + 2.2398197393074497, + 1.1199098696537249 + ], + [ + 3.359729608961061, + 1.1199098696537249 + ], + [ + 4.479639478614786, + 1.1199098696537249 + ], + [ + 5.599549348268511, + 1.1199098696537249 + ], + [ + 6.719459217922235, + 1.1199098696537249 + ], + [ + 7.839369087575847, + 2.2398197393074497 + ], + [ + 8.959278957229458, + 3.3597296089611746 + ], + [ + 10.079188826883296, + 4.479639478614786 + ], + [ + 11.199098696536907, + 6.719459217922235 + ], + [ + 11.199098696536907, + 8.959278957229571 + ], + [ + 12.319008566190746, + 10.079188826883296 + ], + [ + 12.319008566190746, + 11.199098696536907 + ], + [ + 12.319008566190746, + 12.319008566190632 + ], + [ + 12.319008566190746, + 13.438918435844357 + ], + [ + 12.319008566190746, + 14.558828305498082 + ], + [ + 12.319008566190746, + 14.558828305498082 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 12.319008566190746, + 14.558828305498082 + ] + }, + { + "id": "AypMmjBqWQrB6xNqg-bGD", + "type": "freedraw", + "x": -93.79019593679641, + "y": 116.24827357195716, + "width": 319.1743128513017, + "height": 38.076935568225394, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b11", + "roundness": null, + "seed": 361414813, + "version": 223, + "versionNonce": 761263123, + "isDeleted": false, + "boundElements": null, + "updated": 1756840403979, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 2.239819739307336 + ], + [ + 0, + 4.479639478614786 + ], + [ + 0, + 6.719459217922122 + ], + [ + 0, + 7.839369087575847 + ], + [ + 0, + 8.959278957229458 + ], + [ + 0, + 11.199098696536907 + ], + [ + 0, + 13.438918435844244 + ], + [ + 0, + 15.678738175151693 + ], + [ + 0, + 17.91855791445903 + ], + [ + 0, + 20.158377653766365 + ], + [ + 0, + 22.398197393073815 + ], + [ + 0, + 24.63801713238115 + ], + [ + 0, + 25.757927002034876 + ], + [ + 0, + 26.8778368716886 + ], + [ + 0, + 27.997746741342212 + ], + [ + 0, + 29.117656610995937 + ], + [ + 1.1199098696536112, + 29.117656610995937 + ], + [ + 1.1199098696536112, + 30.23756648064966 + ], + [ + 2.2398197393072223, + 30.23756648064966 + ], + [ + 3.359729608961061, + 30.23756648064966 + ], + [ + 5.599549348268283, + 31.357476350303273 + ], + [ + 8.959278957229344, + 31.357476350303273 + ], + [ + 12.319008566190405, + 31.357476350303273 + ], + [ + 15.678738175151466, + 31.357476350303273 + ], + [ + 19.038467784112527, + 31.357476350303273 + ], + [ + 22.398197393073815, + 31.357476350303273 + ], + [ + 25.757927002034876, + 31.357476350303273 + ], + [ + 29.117656610995937, + 31.357476350303273 + ], + [ + 32.477386219957, + 31.357476350303273 + ], + [ + 36.95702569857167, + 31.357476350303273 + ], + [ + 41.43666517718634, + 31.357476350303273 + ], + [ + 47.03621452545485, + 31.357476350303273 + ], + [ + 51.51585400406975, + 31.357476350303273 + ], + [ + 58.23531322199187, + 31.357476350303273 + ], + [ + 64.954772439914, + 31.357476350303273 + ], + [ + 71.67423165783612, + 31.357476350303273 + ], + [ + 79.51360074541185, + 31.357476350303273 + ], + [ + 86.23305996333397, + 30.23756648064966 + ], + [ + 92.9525191812561, + 30.23756648064966 + ], + [ + 99.67197839917844, + 30.23756648064966 + ], + [ + 107.51134748675418, + 29.117656610995937 + ], + [ + 111.99098696536885, + 29.117656610995937 + ], + [ + 117.59053631363736, + 29.117656610995937 + ], + [ + 122.07017579225203, + 29.117656610995937 + ], + [ + 125.42990540121332, + 29.117656610995937 + ], + [ + 128.78963501017438, + 29.117656610995937 + ], + [ + 132.14936461913544, + 27.997746741342212 + ], + [ + 135.5090942280965, + 27.997746741342212 + ], + [ + 138.86882383705756, + 27.997746741342212 + ], + [ + 142.22855344601862, + 27.997746741342212 + ], + [ + 145.58828305497968, + 27.997746741342212 + ], + [ + 148.94801266394074, + 27.997746741342212 + ], + [ + 154.54756201220926, + 27.997746741342212 + ], + [ + 159.02720149082393, + 27.997746741342212 + ], + [ + 164.62675083909244, + 27.997746741342212 + ], + [ + 169.1063903177071, + 27.997746741342212 + ], + [ + 175.82584953562923, + 27.997746741342212 + ], + [ + 182.54530875355135, + 27.997746741342212 + ], + [ + 188.14485810181986, + 26.8778368716886 + ], + [ + 194.86431731974199, + 26.8778368716886 + ], + [ + 199.34395679835688, + 24.63801713238115 + ], + [ + 204.94350614662517, + 24.63801713238115 + ], + [ + 208.30323575558623, + 23.518107262727426 + ], + [ + 211.6629653645473, + 23.518107262727426 + ], + [ + 215.02269497350835, + 23.518107262727426 + ], + [ + 218.3824245824694, + 23.518107262727426 + ], + [ + 221.74215419143047, + 23.518107262727426 + ], + [ + 223.98197393073792, + 23.518107262727426 + ], + [ + 226.22179367004537, + 23.518107262727426 + ], + [ + 229.58152327900643, + 23.518107262727426 + ], + [ + 232.9412528879675, + 23.518107262727426 + ], + [ + 236.30098249692855, + 23.518107262727426 + ], + [ + 239.66071210588962, + 23.518107262727426 + ], + [ + 243.02044171485068, + 23.518107262727426 + ], + [ + 245.26026145415813, + 23.518107262727426 + ], + [ + 248.6199910631192, + 22.398197393073815 + ], + [ + 250.85981080242664, + 22.398197393073815 + ], + [ + 254.2195404113877, + 22.398197393073815 + ], + [ + 256.4593601506949, + 22.398197393073815 + ], + [ + 258.69917989000237, + 22.398197393073815 + ], + [ + 260.9389996293098, + 22.398197393073815 + ], + [ + 262.05890949896343, + 22.398197393073815 + ], + [ + 263.17881936861704, + 22.398197393073815 + ], + [ + 264.2987292382709, + 22.398197393073815 + ], + [ + 265.4186391079245, + 22.398197393073815 + ], + [ + 266.5385489775781, + 22.398197393073815 + ], + [ + 267.65845884723194, + 22.398197393073815 + ], + [ + 268.77836871688555, + 22.398197393073815 + ], + [ + 269.89827858653916, + 22.398197393073815 + ], + [ + 271.018188456193, + 22.398197393073815 + ], + [ + 272.1380983258466, + 22.398197393073815 + ], + [ + 274.37791806515406, + 22.398197393073815 + ], + [ + 275.4978279348077, + 22.398197393073815 + ], + [ + 277.7376476741151, + 22.398197393073815 + ], + [ + 278.85755754376873, + 22.398197393073815 + ], + [ + 279.9774674134226, + 22.398197393073815 + ], + [ + 281.0973772830762, + 22.398197393073815 + ], + [ + 283.33719702238363, + 22.398197393073815 + ], + [ + 284.45710689203725, + 22.398197393073815 + ], + [ + 285.57701676169086, + 22.398197393073815 + ], + [ + 286.6969266313447, + 22.398197393073815 + ], + [ + 287.8168365009983, + 22.398197393073815 + ], + [ + 288.9367463706519, + 22.398197393073815 + ], + [ + 290.05665624030576, + 22.398197393073815 + ], + [ + 293.4163858492668, + 22.398197393073815 + ], + [ + 295.65620558857404, + 23.518107262727426 + ], + [ + 296.7761154582279, + 23.518107262727426 + ], + [ + 297.8960253278815, + 23.518107262727426 + ], + [ + 299.0159351975351, + 23.518107262727426 + ], + [ + 300.13584506718894, + 23.518107262727426 + ], + [ + 301.25575493684255, + 24.63801713238115 + ], + [ + 302.3756648064964, + 24.63801713238115 + ], + [ + 303.49557467615, + 24.63801713238115 + ], + [ + 305.73539441545745, + 25.757927002034876 + ], + [ + 307.97521415476467, + 26.8778368716886 + ], + [ + 310.2150338940721, + 26.8778368716886 + ], + [ + 311.33494376372573, + 26.8778368716886 + ], + [ + 312.45485363337957, + 26.8778368716886 + ], + [ + 313.5747635030332, + 27.997746741342212 + ], + [ + 314.6946733726868, + 27.997746741342212 + ], + [ + 314.6946733726868, + 26.8778368716886 + ], + [ + 314.6946733726868, + 24.63801713238115 + ], + [ + 314.6946733726868, + 22.398197393073815 + ], + [ + 314.6946733726868, + 20.158377653766365 + ], + [ + 314.6946733726868, + 17.91855791445903 + ], + [ + 314.6946733726868, + 15.678738175151693 + ], + [ + 314.6946733726868, + 13.438918435844244 + ], + [ + 314.6946733726868, + 11.199098696536907 + ], + [ + 314.6946733726868, + 8.959278957229458 + ], + [ + 314.6946733726868, + 6.719459217922122 + ], + [ + 314.6946733726868, + 4.479639478614786 + ], + [ + 314.6946733726868, + 2.239819739307336 + ], + [ + 314.6946733726868, + 0 + ], + [ + 314.6946733726868, + -1.1199098696537249 + ], + [ + 314.6946733726868, + -2.2398197393074497 + ], + [ + 314.6946733726868, + -3.359729608961061 + ], + [ + 314.6946733726868, + -4.479639478614786 + ], + [ + 313.5747635030332, + -4.479639478614786 + ], + [ + 313.5747635030332, + -5.599549348268511 + ], + [ + 313.5747635030332, + -6.719459217922122 + ], + [ + 312.45485363337957, + -6.719459217922122 + ], + [ + 311.33494376372573, + -6.719459217922122 + ], + [ + 310.2150338940721, + -6.719459217922122 + ], + [ + 307.97521415476467, + -6.719459217922122 + ], + [ + 306.85530428511106, + -6.719459217922122 + ], + [ + 304.6154845458036, + -6.719459217922122 + ], + [ + 302.3756648064964, + -6.719459217922122 + ], + [ + 300.13584506718894, + -6.719459217922122 + ], + [ + 296.7761154582279, + -5.599549348268511 + ], + [ + 293.4163858492668, + -5.599549348268511 + ], + [ + 290.05665624030576, + -4.479639478614786 + ], + [ + 286.6969266313447, + -4.479639478614786 + ], + [ + 283.33719702238363, + -3.359729608961061 + ], + [ + 279.9774674134226, + -3.359729608961061 + ], + [ + 275.4978279348077, + -3.359729608961061 + ], + [ + 268.77836871688555, + -3.359729608961061 + ], + [ + 262.05890949896343, + -3.359729608961061 + ], + [ + 253.09963054173386, + -3.359729608961061 + ], + [ + 244.1403515845043, + -3.359729608961061 + ], + [ + 231.82134301831388, + -3.359729608961061 + ], + [ + 222.8620640610843, + -3.359729608961061 + ], + [ + 211.6629653645473, + -3.359729608961061 + ], + [ + 201.5837765376641, + -3.359729608961061 + ], + [ + 192.62449758043454, + -3.359729608961061 + ], + [ + 182.54530875355135, + -3.359729608961061 + ], + [ + 175.82584953562923, + -3.359729608961061 + ], + [ + 170.22630018736072, + -3.359729608961061 + ], + [ + 161.26702123013138, + -3.359729608961061 + ], + [ + 156.78738175151648, + -3.359729608961061 + ], + [ + 153.42765214255542, + -3.359729608961061 + ], + [ + 148.94801266394074, + -3.359729608961061 + ], + [ + 143.34846331567223, + -3.359729608961061 + ], + [ + 138.86882383705756, + -3.359729608961061 + ], + [ + 134.38918435844266, + -3.359729608961061 + ], + [ + 129.909544879828, + -3.359729608961061 + ], + [ + 125.42990540121332, + -3.359729608961061 + ], + [ + 122.07017579225203, + -3.359729608961061 + ], + [ + 118.71044618329097, + -3.359729608961061 + ], + [ + 115.35071657432991, + -3.359729608961061 + ], + [ + 111.99098696536885, + -3.359729608961061 + ], + [ + 108.63125735640779, + -3.359729608961061 + ], + [ + 105.27152774744673, + -3.359729608961061 + ], + [ + 103.0317080081395, + -3.359729608961061 + ], + [ + 99.67197839917844, + -3.359729608961061 + ], + [ + 96.31224879021715, + -3.359729608961061 + ], + [ + 92.9525191812561, + -3.359729608961061 + ], + [ + 89.59278957229503, + -3.359729608961061 + ], + [ + 87.35296983298781, + -3.359729608961061 + ], + [ + 85.11315009368036, + -3.359729608961061 + ], + [ + 82.87333035437291, + -2.2398197393074497 + ], + [ + 80.63351061506569, + -2.2398197393074497 + ], + [ + 78.39369087575824, + -2.2398197393074497 + ], + [ + 75.03396126679718, + -2.2398197393074497 + ], + [ + 72.79414152748973, + -2.2398197393074497 + ], + [ + 70.55432178818228, + -2.2398197393074497 + ], + [ + 67.19459217922122, + -2.2398197393074497 + ], + [ + 64.954772439914, + -2.2398197393074497 + ], + [ + 61.595042830952934, + -2.2398197393074497 + ], + [ + 58.23531322199187, + -2.2398197393074497 + ], + [ + 54.87558361303081, + -2.2398197393074497 + ], + [ + 51.51585400406975, + -2.2398197393074497 + ], + [ + 48.15612439510869, + -2.2398197393074497 + ], + [ + 44.7963947861474, + -2.2398197393074497 + ], + [ + 40.31675530753273, + -2.2398197393074497 + ], + [ + 34.71720595926422, + -2.2398197393074497 + ], + [ + 30.237566480649548, + -2.2398197393074497 + ], + [ + 25.757927002034876, + -2.2398197393074497 + ], + [ + 21.278287523419976, + -2.2398197393074497 + ], + [ + 16.798648044805304, + -2.2398197393074497 + ], + [ + 13.438918435844244, + -2.2398197393074497 + ], + [ + 10.079188826883183, + -2.2398197393074497 + ], + [ + 6.719459217922122, + -2.2398197393074497 + ], + [ + 4.479639478614672, + -2.2398197393074497 + ], + [ + 2.2398197393072223, + -2.2398197393074497 + ], + [ + 0, + -2.2398197393074497 + ], + [ + -1.1199098696538385, + -2.2398197393074497 + ], + [ + -2.2398197393074497, + -2.2398197393074497 + ], + [ + -3.359729608961061, + -2.2398197393074497 + ], + [ + -4.479639478614899, + -2.2398197393074497 + ], + [ + -4.479639478614899, + -2.2398197393074497 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -4.479639478614899, + -2.2398197393074497 + ] + }, + { + "id": "UlGV_UxNQBQ4zpGsBxALB", + "type": "freedraw", + "x": -429.76315683290363, + "y": 119.60800318091822, + "width": 4.479639478614786, + "height": 10.079188826883183, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b12", + "roundness": null, + "seed": 1848265555, + "version": 12, + "versionNonce": 418148627, + "isDeleted": false, + "boundElements": null, + "updated": 1756840405050, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.359729608961061, + 3.359729608961061 + ], + [ + -4.479639478614786, + 4.479639478614786 + ], + [ + -4.479639478614786, + 5.599549348268397 + ], + [ + -4.479639478614786, + 6.719459217922122 + ], + [ + -4.479639478614786, + 7.839369087575847 + ], + [ + -4.479639478614786, + 8.959278957229571 + ], + [ + -4.479639478614786, + 10.079188826883183 + ], + [ + -3.359729608961061, + 10.079188826883183 + ], + [ + -2.239819739307336, + 10.079188826883183 + ], + [ + -2.239819739307336, + 10.079188826883183 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -2.239819739307336, + 10.079188826883183 + ] + }, + { + "id": "ePF9oG-_Fw7_BO79ngbs-", + "type": "freedraw", + "x": -388.32649165571706, + "y": 114.0084538326497, + "width": 17.918557914459143, + "height": 16.798648044805418, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b13", + "roundness": null, + "seed": 1954252883, + "version": 21, + "versionNonce": 395852317, + "isDeleted": false, + "boundElements": null, + "updated": 1756840405515, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 0 + ], + [ + -2.2398197393074497, + 1.1199098696537249 + ], + [ + -3.359729608961061, + 2.2398197393074497 + ], + [ + -4.479639478614672, + 3.3597296089611746 + ], + [ + -6.719459217922122, + 4.479639478614786 + ], + [ + -7.839369087575733, + 5.599549348268511 + ], + [ + -8.959278957229571, + 6.719459217922235 + ], + [ + -10.079188826883183, + 7.839369087575847 + ], + [ + -11.199098696536794, + 8.959278957229571 + ], + [ + -12.319008566190632, + 10.079188826883296 + ], + [ + -13.438918435844244, + 11.199098696536907 + ], + [ + -13.438918435844244, + 12.319008566190632 + ], + [ + -14.558828305498082, + 13.438918435844357 + ], + [ + -15.678738175151693, + 14.558828305498082 + ], + [ + -15.678738175151693, + 15.678738175151693 + ], + [ + -16.798648044805304, + 15.678738175151693 + ], + [ + -16.798648044805304, + 16.798648044805418 + ], + [ + -17.918557914459143, + 16.798648044805418 + ], + [ + -17.918557914459143, + 16.798648044805418 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -17.918557914459143, + 16.798648044805418 + ] + }, + { + "id": "H_WfbBHd0WTQt8rLvm1Cc", + "type": "freedraw", + "x": -356.9690153054137, + "y": 122.96773278987928, + "width": 14.558828305498082, + "height": 14.558828305497968, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b14", + "roundness": null, + "seed": 31200989, + "version": 16, + "versionNonce": 1382132189, + "isDeleted": false, + "boundElements": null, + "updated": 1756840405930, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696538385, + 1.1199098696537249 + ], + [ + -2.2398197393074497, + 2.239819739307336 + ], + [ + -4.479639478614899, + 3.359729608961061 + ], + [ + -5.599549348268511, + 4.479639478614786 + ], + [ + -7.83936908757596, + 5.599549348268511 + ], + [ + -8.959278957229571, + 7.839369087575847 + ], + [ + -10.079188826883183, + 8.959278957229571 + ], + [ + -12.319008566190632, + 10.079188826883183 + ], + [ + -12.319008566190632, + 11.199098696536907 + ], + [ + -13.438918435844244, + 12.319008566190632 + ], + [ + -13.438918435844244, + 13.438918435844244 + ], + [ + -14.558828305498082, + 13.438918435844244 + ], + [ + -14.558828305498082, + 14.558828305497968 + ], + [ + -14.558828305498082, + 14.558828305497968 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -14.558828305498082, + 14.558828305497968 + ] + }, + { + "id": "okw1xi_jId3Q6u7PYWMJi", + "type": "freedraw", + "x": -285.29478364757756, + "y": 112.8885439629961, + "width": 24.638017132381265, + "height": 24.63801713238115, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b15", + "roundness": null, + "seed": 1901893277, + "version": 19, + "versionNonce": 1404992595, + "isDeleted": false, + "boundElements": null, + "updated": 1756840406401, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 2.239819739307336 + ], + [ + -2.2398197393074497, + 5.599549348268397 + ], + [ + -4.479639478614672, + 7.839369087575847 + ], + [ + -6.719459217922122, + 8.959278957229458 + ], + [ + -7.839369087575733, + 11.199098696536907 + ], + [ + -10.079188826883183, + 12.319008566190519 + ], + [ + -12.319008566190632, + 14.558828305497968 + ], + [ + -14.558828305497855, + 15.678738175151693 + ], + [ + -15.678738175151693, + 16.798648044805304 + ], + [ + -17.918557914459143, + 19.038467784112754 + ], + [ + -19.038467784112754, + 20.158377653766365 + ], + [ + -21.278287523420204, + 21.27828752342009 + ], + [ + -22.398197393073815, + 22.398197393073815 + ], + [ + -23.518107262727426, + 23.518107262727426 + ], + [ + -23.518107262727426, + 24.63801713238115 + ], + [ + -24.638017132381265, + 24.63801713238115 + ], + [ + -24.638017132381265, + 24.63801713238115 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -24.638017132381265, + 24.63801713238115 + ] + }, + { + "id": "W3L3L4qYjHfqu3lWn98k3", + "type": "freedraw", + "x": -213.62055198974144, + "y": 118.48809331126449, + "width": 21.278287523419976, + "height": 22.398197393073815, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b16", + "roundness": null, + "seed": 1077134227, + "version": 17, + "versionNonce": 134186525, + "isDeleted": false, + "boundElements": null, + "updated": 1756840406864, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 1.1199098696537249 + ], + [ + -2.2398197393072223, + 2.2398197393074497 + ], + [ + -5.599549348268283, + 5.599549348268511 + ], + [ + -10.079188826883183, + 10.079188826883296 + ], + [ + -11.199098696536794, + 11.199098696536907 + ], + [ + -13.438918435844244, + 12.319008566190632 + ], + [ + -14.558828305497855, + 13.438918435844357 + ], + [ + -15.678738175151693, + 14.558828305497968 + ], + [ + -16.798648044805304, + 16.798648044805418 + ], + [ + -17.918557914458916, + 17.91855791445903 + ], + [ + -19.038467784112754, + 19.038467784112754 + ], + [ + -19.038467784112754, + 20.15837765376648 + ], + [ + -20.158377653766365, + 21.27828752342009 + ], + [ + -21.278287523419976, + 22.398197393073815 + ], + [ + -21.278287523419976, + 22.398197393073815 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -21.278287523419976, + 22.398197393073815 + ] + }, + { + "id": "q6obVr3Hbj2UFwK-5ecNc", + "type": "freedraw", + "x": -176.66352629116955, + "y": 130.80710187745512, + "width": 12.319008566190632, + "height": 17.91855791445903, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b17", + "roundness": null, + "seed": 568353501, + "version": 10, + "versionNonce": 320207037, + "isDeleted": false, + "boundElements": null, + "updated": 1756840407287, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -3.359729608961061, + 5.599549348268397 + ], + [ + -7.83936908757596, + 10.079188826883183 + ], + [ + -10.079188826883183, + 12.319008566190632 + ], + [ + -12.319008566190632, + 14.558828305497968 + ], + [ + -12.319008566190632, + 16.798648044805304 + ], + [ + -12.319008566190632, + 17.91855791445903 + ], + [ + -11.199098696537021, + 17.91855791445903 + ], + [ + -11.199098696537021, + 17.91855791445903 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -11.199098696537021, + 17.91855791445903 + ] + }, + { + "id": "718vPJ_Sr4_IoWBjUcp1m", + "type": "freedraw", + "x": -115.06848346021661, + "y": 133.04692161676246, + "width": 8.959278957229571, + "height": 7.839369087575847, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b18", + "roundness": null, + "seed": 1353887101, + "version": 10, + "versionNonce": 604348253, + "isDeleted": false, + "boundElements": null, + "updated": 1756840407613, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 2.2398197393074497 + ], + [ + -3.359729608961061, + 3.359729608961061 + ], + [ + -4.479639478614672, + 4.479639478614786 + ], + [ + -6.719459217922122, + 5.599549348268511 + ], + [ + -7.839369087575733, + 6.719459217922122 + ], + [ + -8.959278957229571, + 6.719459217922122 + ], + [ + -8.959278957229571, + 7.839369087575847 + ], + [ + -8.959278957229571, + 7.839369087575847 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -8.959278957229571, + 7.839369087575847 + ] + }, + { + "id": "PfcXN0IQYLI4Mybv3GpbQ", + "type": "freedraw", + "x": -54.59335049891729, + "y": 125.20755252918661, + "width": 10.079188826883183, + "height": 12.319008566190632, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b19", + "roundness": null, + "seed": 530656285, + "version": 15, + "versionNonce": 1098495891, + "isDeleted": false, + "boundElements": null, + "updated": 1756840408268, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696538385, + 0 + ], + [ + -1.1199098696538385, + 1.1199098696537249 + ], + [ + -2.2398197393074497, + 1.1199098696537249 + ], + [ + -3.359729608961061, + 2.2398197393074497 + ], + [ + -3.359729608961061, + 3.3597296089611746 + ], + [ + -4.479639478614899, + 4.479639478614786 + ], + [ + -6.719459217922122, + 6.719459217922235 + ], + [ + -6.719459217922122, + 7.839369087575847 + ], + [ + -7.83936908757596, + 8.959278957229571 + ], + [ + -8.959278957229571, + 10.079188826883296 + ], + [ + -8.959278957229571, + 11.199098696536907 + ], + [ + -10.079188826883183, + 12.319008566190632 + ], + [ + -10.079188826883183, + 12.319008566190632 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -10.079188826883183, + 12.319008566190632 + ] + }, + { + "id": "lYPIavS19bk4AHUCuSu8y", + "type": "freedraw", + "x": 11.481331810650317, + "y": 121.84782292022555, + "width": 10.079188826883183, + "height": 19.038467784112754, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1A", + "roundness": null, + "seed": 441003731, + "version": 19, + "versionNonce": 1750387517, + "isDeleted": false, + "boundElements": null, + "updated": 1756840408643, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 2.2398197393074497 + ], + [ + 0, + 3.359729608961061 + ], + [ + -1.1199098696536112, + 4.479639478614786 + ], + [ + -3.359729608961061, + 5.599549348268511 + ], + [ + -4.479639478614672, + 6.719459217922235 + ], + [ + -6.719459217922122, + 8.959278957229571 + ], + [ + -6.719459217922122, + 10.079188826883296 + ], + [ + -7.839369087575733, + 11.199098696536907 + ], + [ + -7.839369087575733, + 12.319008566190632 + ], + [ + -8.959278957229571, + 13.438918435844357 + ], + [ + -8.959278957229571, + 14.558828305497968 + ], + [ + -8.959278957229571, + 15.678738175151693 + ], + [ + -10.079188826883183, + 16.798648044805418 + ], + [ + -10.079188826883183, + 17.91855791445903 + ], + [ + -10.079188826883183, + 19.038467784112754 + ], + [ + -10.079188826883183, + 19.038467784112754 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -10.079188826883183, + 19.038467784112754 + ] + }, + { + "id": "NULOk5fyiBu5xeMZHEesB", + "type": "freedraw", + "x": 64.11709568437391, + "y": 127.44737226849406, + "width": 7.83936908757596, + "height": 20.158377653766365, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1B", + "roundness": null, + "seed": 1967054845, + "version": 15, + "versionNonce": 124671411, + "isDeleted": false, + "boundElements": null, + "updated": 1756840409048, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 2.239819739307336 + ], + [ + 0, + 4.479639478614786 + ], + [ + 0, + 6.719459217922122 + ], + [ + -1.1199098696538385, + 8.959278957229458 + ], + [ + -2.2398197393074497, + 11.199098696536907 + ], + [ + -3.359729608961061, + 13.438918435844244 + ], + [ + -4.479639478614899, + 15.678738175151693 + ], + [ + -5.599549348268511, + 16.798648044805304 + ], + [ + -6.719459217922122, + 17.91855791445903 + ], + [ + -6.719459217922122, + 19.038467784112754 + ], + [ + -7.83936908757596, + 20.158377653766365 + ], + [ + -7.83936908757596, + 20.158377653766365 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -7.83936908757596, + 20.158377653766365 + ] + }, + { + "id": "5NS4JrnEMzQQkIYbSVtI7", + "type": "freedraw", + "x": 159.30943460493745, + "y": 118.48809331126449, + "width": 26.877836871688487, + "height": 27.997746741342326, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1C", + "roundness": null, + "seed": 872727795, + "version": 19, + "versionNonce": 249613085, + "isDeleted": false, + "boundElements": null, + "updated": 1756840409473, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696536112, + 3.359729608961061 + ], + [ + -2.2398197393072223, + 4.479639478614786 + ], + [ + -4.479639478614672, + 6.719459217922122 + ], + [ + -6.719459217922122, + 7.839369087575847 + ], + [ + -7.839369087575733, + 10.079188826883296 + ], + [ + -8.959278957229571, + 12.319008566190632 + ], + [ + -11.199098696536794, + 13.438918435844357 + ], + [ + -13.438918435844244, + 15.678738175151693 + ], + [ + -14.558828305497855, + 17.91855791445903 + ], + [ + -16.798648044805304, + 20.15837765376648 + ], + [ + -17.918557914458916, + 21.27828752342009 + ], + [ + -20.158377653766365, + 23.51810726272754 + ], + [ + -22.398197393073815, + 24.638017132381265 + ], + [ + -24.638017132381037, + 25.757927002034876 + ], + [ + -25.757927002034876, + 26.8778368716886 + ], + [ + -26.877836871688487, + 27.997746741342326 + ], + [ + -26.877836871688487, + 27.997746741342326 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -26.877836871688487, + 27.997746741342326 + ] + }, + { + "id": "_KNvFkTNri9N6vzR-eDwf", + "type": "freedraw", + "x": 196.26646030350935, + "y": 119.60800318091822, + "width": 6.719459217922122, + "height": 16.798648044805304, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1D", + "roundness": null, + "seed": 2062837725, + "version": 17, + "versionNonce": 955149683, + "isDeleted": false, + "boundElements": null, + "updated": 1756840409975, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 1.1199098696537249 + ], + [ + 0, + 2.239819739307336 + ], + [ + 0, + 3.359729608961061 + ], + [ + 0, + 4.479639478614786 + ], + [ + 0, + 5.599549348268397 + ], + [ + -1.1199098696538385, + 7.839369087575847 + ], + [ + -1.1199098696538385, + 8.959278957229571 + ], + [ + -2.2398197393074497, + 11.199098696536907 + ], + [ + -3.359729608961061, + 12.319008566190632 + ], + [ + -4.479639478614899, + 13.438918435844244 + ], + [ + -4.479639478614899, + 14.558828305497968 + ], + [ + -5.599549348268511, + 15.678738175151693 + ], + [ + -5.599549348268511, + 16.798648044805304 + ], + [ + -6.719459217922122, + 16.798648044805304 + ], + [ + -6.719459217922122, + 16.798648044805304 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -6.719459217922122, + 16.798648044805304 + ] + }, + { + "id": "KMt2k2QWtCmA3UPC7O8XN", + "type": "freedraw", + "x": 215.3049280876221, + "y": 129.6871920078014, + "width": 12.319008566190632, + "height": 14.558828305497968, + "angle": 0, + "strokeColor": "#2f9e44", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b1E", + "roundness": null, + "seed": 179432627, + "version": 16, + "versionNonce": 541313459, + "isDeleted": false, + "boundElements": null, + "updated": 1756840410537, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -1.1199098696538385, + 1.1199098696537249 + ], + [ + -2.2398197393074497, + 2.2398197393074497 + ], + [ + -3.359729608961061, + 3.359729608961061 + ], + [ + -4.479639478614899, + 4.479639478614786 + ], + [ + -5.599549348268511, + 5.599549348268511 + ], + [ + -6.719459217922122, + 7.839369087575847 + ], + [ + -7.83936908757596, + 8.959278957229571 + ], + [ + -8.959278957229571, + 10.079188826883183 + ], + [ + -10.07918882688341, + 11.199098696536907 + ], + [ + -11.199098696537021, + 12.319008566190632 + ], + [ + -11.199098696537021, + 13.438918435844357 + ], + [ + -12.319008566190632, + 13.438918435844357 + ], + [ + -12.319008566190632, + 14.558828305497968 + ], + [ + -12.319008566190632, + 14.558828305497968 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + -12.319008566190632, + 14.558828305497968 + ] + }, + { + "id": "wz8PWjuHhxRkUkaiN7ti5", + "type": "freedraw", + "x": -380.48712256814133, + "y": -53.978026615403394, + "width": 367.3304372464104, + "height": 310.21503389407223, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "index": "b0z", + "roundness": null, + "seed": 1820933299, + "version": 31, + "versionNonce": 704840189, + "isDeleted": true, + "boundElements": null, + "updated": 1756840382253, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 22.398197393073815, + 29.117656610995937 + ], + [ + 80.63351061506569, + 89.5927895722952 + ], + [ + 103.0317080081395, + 107.51134748675423 + ], + [ + 127.66972514052065, + 125.42990540121332 + ], + [ + 152.3077422729018, + 143.34846331567235 + ], + [ + 176.94575940528307, + 163.5068409694387 + ], + [ + 203.82359627697156, + 181.42539888389786 + ], + [ + 228.46161340935282, + 199.34395679835688 + ], + [ + 255.33945028104142, + 217.2625147128159 + ], + [ + 277.7376476741151, + 232.9412528879676 + ], + [ + 300.13584506718894, + 248.6199910631192 + ], + [ + 318.05440298164797, + 262.05890949896354 + ], + [ + 332.61323128714594, + 272.1380983258467 + ], + [ + 343.81232998368296, + 281.0973772830762 + ], + [ + 358.3711582891808, + 292.2964759796131 + ], + [ + 362.8507977677957, + 296.7761154582279 + ], + [ + 365.09061750710293, + 299.0159351975353 + ], + [ + 366.2105273767568, + 301.25575493684266 + ], + [ + 367.3304372464104, + 302.3756648064964 + ], + [ + 367.3304372464104, + 303.49557467615 + ], + [ + 367.3304372464104, + 304.6154845458037 + ], + [ + 367.3304372464104, + 305.73539441545745 + ], + [ + 367.3304372464104, + 306.85530428511106 + ], + [ + 367.3304372464104, + 307.9752141547648 + ], + [ + 367.3304372464104, + 309.0951240244185 + ], + [ + 367.3304372464104, + 310.21503389407223 + ], + [ + 367.3304372464104, + 310.21503389407223 + ] + ], + "pressures": [], + "simulatePressure": true, + "lastCommittedPoint": [ + 367.3304372464104, + 310.21503389407223 + ] + } + ], + "appState": { + "theme": "light", + "viewBackgroundColor": "#ffffff", + "currentItemStrokeColor": "#2f9e44", + "currentItemBackgroundColor": "#a5d8ff", + "currentItemFillStyle": "solid", + "currentItemStrokeWidth": 1, + "currentItemStrokeStyle": "solid", + "currentItemRoughness": 1, + "currentItemOpacity": 100, + "currentItemFontFamily": 5, + "currentItemFontSize": 20, + "currentItemTextAlign": "left", + "currentItemStartArrowhead": null, + "currentItemEndArrowhead": "arrow", + "currentItemArrowType": "round", + "currentItemFrameRole": null, + "scrollX": 1455.040642500857, + "scrollY": 607.3359923663202, + "zoom": { + "value": 0.892929 + }, + "currentItemRoundness": "round", + "gridSize": 20, + "gridStep": 5, + "gridModeEnabled": false, + "gridColor": { + "Bold": "rgba(217, 217, 217, 0.5)", + "Regular": "rgba(230, 230, 230, 0.5)" + }, + "currentStrokeOptions": null, + "frameRendering": { + "enabled": true, + "clip": true, + "name": true, + "outline": true, + "markerName": true, + "markerEnabled": true + }, + "objectsSnapModeEnabled": false, + "activeTool": { + "type": "freedraw", + "customType": null, + "locked": false, + "fromSelection": false, + "lastActiveTool": null + } + }, + "files": {} +} +``` +%% \ No newline at end of file diff --git a/Ilustraciónes/img_02-09-25_20.excalidraw.svg b/Ilustraciónes/img_02-09-25_20.excalidraw.svg new file mode 100644 index 0000000..ea2c7a4 --- /dev/null +++ b/Ilustraciónes/img_02-09-25_20.excalidraw.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/Introducción Quimica/Estequinetría de las reacciónes químicas.md b/Introducción Quimica/Estequinetría de las reacciónes químicas.md index 32dee7d..d6ee903 100644 --- a/Introducción Quimica/Estequinetría de las reacciónes químicas.md +++ b/Introducción Quimica/Estequinetría de las reacciónes químicas.md @@ -14,7 +14,7 @@ Los **átomos** están formados por protones(+), electrones(-) y neutrones (0). - Las **átomos** del mismo elemento tienen el mismo número de protones. - Mismo número de **electrones** (igual que el numero de protones). - Pueden tener diferentes números de neutrones (**isótopos**). -![[../Ilustraciónes/Drawing 2025-09-01 19.07.05.excalidraw.svg|200]] + --------------- # Iones Los átomos de los elementos pueden ganar y perder electrones formando **iones** diff --git a/Introducción Quimica/Introducción Química.md b/Introducción Quimica/Introducción Química.md new file mode 100644 index 0000000..eb45f78 --- /dev/null +++ b/Introducción Quimica/Introducción Química.md @@ -0,0 +1,4 @@ +# [[Sustancias Inorgánicas/0.Sustancias Inorgánicas Introducción|Sustancias Inorgánicas]] +#### [[Introducción Quimica/Estequinetría de las reacciónes químicas|Estequinetría de las reacciónes químicas]] + +#### [[Introducción Quimica/Sustancias orgánicas|Sustancias orgánicas]] \ No newline at end of file diff --git a/Introducción Quimica/Sustancias Inorgánicas.md b/Introducción Quimica/Sustancias Inorgánicas.md deleted file mode 100644 index 5479479..0000000 --- a/Introducción Quimica/Sustancias Inorgánicas.md +++ /dev/null @@ -1,163 +0,0 @@ -# Números o estados de oxidación (n.o) -Número de electrones ganado o perdido por un átomo de ese elemento cuando forma un ion, o bien el número de electrones que pone en juego un átomo de un elemento para formar un compuesto -## Reglas -- **Elemento libre:** - - El n.o de cualquier elemento libre es 0. - - Ejemplo: O₂, N₂, Fe → NOX = 0 -- **Ion monoatómico:** - - Un solo átomo con carga. - - Su n.o es igual a la **carga del ion**. - - Ejemplo: Na⁺ → NOX = +1, Cl⁻ → NOX = -1 -- **Ion poliatómico:** - - Varios átomos unidos químicamente **con carga global**. - - La suma de los n.o de todos los átomos = **carga del ion**. - - Ejemplo: SO₄²⁻ → S = +6, O = -2 -- **Compuesto neutro:** - - Varios átomos unidos químicamente **sin carga global**. - - La suma de los n.o de todos los átomos = 0. - - Ejemplo: H₂O → H = +1, O = -2 - -> [!NOTE] **Aclaración:** -> Si la suma de los n.o de los átomos unidos es 0 → compuesto neutro. -> Si la suma de los n.o ≠ 0 → ion poliatómico. - ->[!QUESTION] -> Cual es el n.o del N en : $N_2O_4$, $NH_3$ , $KNO_3$ , $NO_3$ - -> [!IMPORTANT] Importante: -> Prefijos y sufijos para cada elemento según su numero de diferentes N.O's expresado de mayor a mayor a menor -> - N.O 1: -> - -ico -> - N.O 2: -> - -ico (**Grande**) -> - -oso (**Pequeño**) -> - N.O 3: -> - -ico (**Mayor**) -> - -oso -> - hipo- ... -ico (**Pequeño**) -> - N.O 4: -> - per- ... -ico (**Mayor**) -> - -ico -> - -oso -> - hipo- ... -oso (**Pequeño**) - ---------------------------- -# Sustancias simples -Constituidas por átomos de un solo elemento. -Si no indica carga su numero de oxidación o n.o es 0. - -| H2 | Hidrógeno | Dihidrógeno | -| --- | ------------------ | ---------------- | -| F2 | Flúor | Diflúor | -| O2 | Oxígeno | Dioxígeno | -| O3 | Ozono | Trioxígeno | -| S8 | Azufre rómbico | Ciclo-octaazufre | -| S6 | Azufre monoclínico | Hezaazufre | -| P4 | Fósforo blanco | Tetrafósforo | - ----------------------------------------- -# Combinaciones binarias del Hidrógeno -Elementos que combinan el Hidógeno -## Hidrácidos -Compuesto formado por hidrogeno i un elemento no metalico -Al disolverse en agua dan disoluciones ácidas. -#### Formulación -- **HX** (Donde X => halógeno) -- **H$_2$E** (Donde E => elemento del grupo VIA excepto O) - -| Fórmula | Nombre sistematico | En dión acuosa | Fórmula | -| ------- | ---------------------- | ------------------ | -------- | -| HF | Fluoruro de hidrógeno | Ácido fluorhídrico | HF(aq) | -| H2Se | Seleniuro de hidrógeno | Ácido selenhidrico | H2Se(aq) | -| H2Te | Telururo de hidrógeno | Ácido telurhidrico | H2Te(aq) | ->[!INFO] Nomenclatura ->- Elemento-uro + de + hidrogeno ->- **Disolución acuosa**: Ácido + Elemento-hídrico - -## Hidrácidos con otros no metales -| Fórmula | Nombre trad. y CAS | Nombre estequiométrico | IUPAC nueva | -| ------- | ------------------ | --------------------------- | ----------- | -| NH3 | **Amoníaco** | Trihidruro de nitrógeno | Azano | -| N2H4 | Hidrazina | Tetrahidruro de dinitrógeno | Diazano | -| PH3 | **Fosfina** | Trihidruro de fósforo | Fosfano | -| P2H4 | Disfosfina | Tetrahidruro de difósforo | Difosfano | -| AsH3 | Arsina | Trihidruro de arsénico | Arsano | -| SbH3 | Estibina | Trihidruro de antimonio | Estibano | -| CH4 | **Metano** | Tetrahidruro de carbono | Metano | -| SiH4 | Silano | Tetrahidruro de silicio | Silano | -| BH3 | Borano | Trihidruro de boro | Borano | -| B2H6 | Diborano | Hexahidruro de diboro | Diborano | -## Hidrácidos con metales - ->[!INFO] Nomenclatura ->- **Hidruro** + de + nombre del metal **(n.o del elemento en Números romanos)** - -| Fórmula | N. estequiométrica IUPAC | N. Stock | N. Tradicional | -| ------- | ------------------------ | --------------------- | ----------------- | -| LiH | Hidruro de litio | Hidruro de litio | | -| NaH | Hidruro de sodio | Hidruro de sodio | Hidruro sódico | -| CsH | Hidruro de cesio | Hidruro de cesio | Hidruro césico | -| BeH2 | Hidruro de berilio | Hidruro de berilio | Hidruro berílico | -| CaH2 | Hidruro de calcio | Hidruro de calcio | Hidruro cálcico | -| SnH4 | Tetrahidruro de estaño | Hidruro de estaño(IV) | Hidruro estannico | ->[!WARNING] Recuerda ->El n.o de hidrogeno cuando se junta con un metal es de -1 - -**Ejemplo**: -- Hidruro de hierro(III) => Fe³⁺H⁻ => Fe³⁺H⁻3 -- Hidruro ferroso => Fe²⁺(**Ferr -oso**)H => Fe²⁺H2 -- Hidruro de potasio => K⁺H⁻ -------------------- -## Combinaciones binarias y pseudobinarias del oxigeno -### Óxidos -Elementos combinados con oxigeno -#### Formulación: EyOx ->[!INFO] Nomenclatura ->Óxido + de + Elemento (**n.o del Elemento en numeros romanos**) - -| Fórmula | N. estequiométrico | N. Stock | N. tradicional | -| ------- | ------------------------- | ----------------------- | ------------------------------------- | -| FeO | Monóxido de hierro | Óxido de hierro(II) | Óxido ferroso | -| Fe₂O₃ | Trióxido de dihierro | Óxido de hierro(III) | Óxido férrico | -| N₂O | Óxido de dinitrógeno | Óxido de nitrógeno(I) | Óxido nitroso (Anhídrido hiponitroso) | -| NO | Monóxido de nitrógeno | Óxido de nitrógeno(II) | Óxido nítrico | -| N₂O₃ | Trióxido de dinitrógeno | Óxido de nitrógeno(III) | Anhídrido nitroso | -| NO₂ | Dióxido de nitrógeno | Óxido de nitrógeno(IV) | Dióxido de nitrógeno | -| N₂O₄ | Tetraóxido de dinitrógeno | Óxido de nitrógeno(IV) | Tetraóxido de nitrógeno | -| N₂O₅ | Pentaóxido de dinitrógeno | Óxido de nitrógeno(V) | Anhídrido nítrico | - -### Peróxidos O2²⁻, hiperóxidos (o2⁻) y ozónicos (O2⁻) -## Peróxidos (O₂²⁻) -- **Li₂O₂** → peróxido de litio -- **H₂O₂** → peróxido de hidrógeno (agua oxigenada) -- **BaO₂** → peróxido de bario -- **CuO₂** → peróxido de cobre(II) -## Hiperóxidos o superóxidos (O₂⁻) -- **KO₂** → hiperóxido o superóxido de potasio -- **RbO₂** → hiperóxido o superóxido de rubidio -- **NaO₂** → hiperóxido o superóxido de sodio -- **BaO₄** → hiperóxido o superóxido de bario -- **MgO₄** → hiperóxido o superóxido de magnesio -## Ozónidos (O₃⁻) -- **KO₃** → ozónido de potasio -- **RbO₃** → ozónido de rubidio -- **CsO₃** → ozónido de cesio - --------------- -## Otras combinaciones binarias y pseudobinarias - -#### Formulación: AyBx (A => metal de n.o x, B => metal de n.o de y) ->[!INFO] Nomenclatura ->NoMetal-uro + de + Metal (N.O si es variable en numeros romanos) - -| Fórmula | N. estequiométrico | N. Stock | N. tradicional | -| --------- | -------------------- | ------------------------ | -------------------------------- | -| **CaF₂** | Difluoruro de calcio | Fluoruro de calcio | Fluoruro cálcico | -| **FeCl₃** | Tricloruro de hierro | Cloruro de hierro(III) | Cloruro férrico | -| **WC** | Carburo de wolframio | Carburo de wolframio(IV) | Carburo wolfrámico (carburundum) | -### No metal - No metal -... -### Pseudobinarias -... -### Oxoácidos -... \ No newline at end of file diff --git a/Introducción Quimica/Sustancias Inorgánicas/0.Sustancias Inorgánicas Introducción.md b/Introducción Quimica/Sustancias Inorgánicas/0.Sustancias Inorgánicas Introducción.md new file mode 100644 index 0000000..5440380 --- /dev/null +++ b/Introducción Quimica/Sustancias Inorgánicas/0.Sustancias Inorgánicas Introducción.md @@ -0,0 +1,47 @@ +# Números o estados de oxidación (n.o) +Número de electrones ganado o perdido por un átomo de ese elemento cuando forma un ion, o bien el número de electrones que pone en juego un átomo de un elemento para formar un compuesto +## Reglas +- **Elemento libre:** + - El n.o de cualquier elemento libre es 0. + - Ejemplo: O₂, N₂, Fe → NOX = 0 +- **Ion monoatómico:** + - Un solo átomo con carga. + - Su n.o es igual a la **carga del ion**. + - Ejemplo: Na⁺ → NOX = +1, Cl⁻ → NOX = -1 +- **Ion poliatómico:** + - Varios átomos unidos químicamente **con carga global**. + - La suma de los n.o de todos los átomos = **carga del ion**. + - Ejemplo: SO₄²⁻ → S = +6, O = -2 +- **Compuesto neutro:** + - Varios átomos unidos químicamente **sin carga global**. + - La suma de los n.o de todos los átomos = 0. + - Ejemplo: H₂O → H = +1, O = -2 + +> [!NOTE] **Aclaración:** +> Si la suma de los n.o de los átomos unidos es 0 → compuesto neutro. +> Si la suma de los n.o ≠ 0 → ion poliatómico. + +> [!IMPORTANT] Importante: +> Prefijos y sufijos para cada elemento según su numero de diferentes N.O's +> - N.O 1: +> - -ico +> - N.O 2: +> - -oso (**Pequeño**) +> - -ico (**Grande**) +> - N.O 3: +> - per- ... -ico (**Pequeño**) +> - -oso +> - -ico (**Mayor**) +> - N.O 4: +> - per- ... -ico (**Pequeño**) +> - -ico +> - -oso +> - hipo- ... -oso (**Mayor**) + +# Combinaciónes +## [[1.Sustancias Simples|Sustancias Simples]] +## [[2.Combinaciones del Hidrógeno|Combinaciones del Hidrógeno]] +## [[3.Combinaciones del Oxigeno|Combinaciones del Oxigeno]] +## [[4.Otras combinaciónes|Otras combinaciónes]] + + diff --git a/Introducción Quimica/Sustancias Inorgánicas/1.Sustancias Simples.md b/Introducción Quimica/Sustancias Inorgánicas/1.Sustancias Simples.md new file mode 100644 index 0000000..3c77349 --- /dev/null +++ b/Introducción Quimica/Sustancias Inorgánicas/1.Sustancias Simples.md @@ -0,0 +1,12 @@ +# Sustancias simples +Constituidas por átomos de un solo elemento. +Si no indica carga su numero de oxidación o n.o es 0. + +| H2 | Hidrógeno | Dihidrógeno | +| --- | ------------------ | ---------------- | +| F2 | Flúor | Diflúor | +| O2 | Oxígeno | Dioxígeno | +| O3 | Ozono | Trioxígeno | +| S8 | Azufre rómbico | Ciclo-octaazufre | +| S6 | Azufre monoclínico | Hezaazufre | +| P4 | Fósforo blanco | Tetrafósforo | diff --git a/Introducción Quimica/Sustancias Inorgánicas/2.Combinaciones del Hidrógeno.md b/Introducción Quimica/Sustancias Inorgánicas/2.Combinaciones del Hidrógeno.md new file mode 100644 index 0000000..95d65da --- /dev/null +++ b/Introducción Quimica/Sustancias Inorgánicas/2.Combinaciones del Hidrógeno.md @@ -0,0 +1,51 @@ +# Combinaciones binarias del Hidrógeno +Elementos que combinan el Hidógeno +## Hidrácidos +Compuesto formado por hidrogeno i un elemento no metalico +Al disolverse en agua dan disoluciones ácidas. +#### Formulación +- **HX** (Donde X => halógeno) +- **H$_2$E** (Donde E => elemento del grupo VIA excepto O) + +| Fórmula | Nombre sistematico | En dión acuosa | Fórmula | +| ------- | ---------------------- | ------------------ | -------- | +| HF | Fluoruro de hidrógeno | Ácido fluorhídrico | HF(aq) | +| H2Se | Seleniuro de hidrógeno | Ácido selenhidrico | H2Se(aq) | +| H2Te | Telururo de hidrógeno | Ácido telurhidrico | H2Te(aq) | +>[!INFO] Nomenclatura +>- Elemento-uro + de + hidrogeno +>- **Disolución acuosa**: Ácido + Elemento-hídrico + +## Hidrácidos con otros no metales +| Fórmula | Nombre trad. y CAS | Nombre estequiométrico | IUPAC nueva | +| ------- | ------------------ | --------------------------- | ----------- | +| NH3 | **Amoníaco** | Trihidruro de nitrógeno | Azano | +| N2H4 | Hidrazina | Tetrahidruro de dinitrógeno | Diazano | +| PH3 | **Fosfina** | Trihidruro de fósforo | Fosfano | +| P2H4 | Disfosfina | Tetrahidruro de difósforo | Difosfano | +| AsH3 | Arsina | Trihidruro de arsénico | Arsano | +| SbH3 | Estibina | Trihidruro de antimonio | Estibano | +| CH4 | **Metano** | Tetrahidruro de carbono | Metano | +| SiH4 | Silano | Tetrahidruro de silicio | Silano | +| BH3 | Borano | Trihidruro de boro | Borano | +| B2H6 | Diborano | Hexahidruro de diboro | Diborano | +## Hidrácidos con metales + +>[!INFO] Nomenclatura +>- **Hidruro** + de + nombre del metal **(n.o del elemento en Números romanos)** + +| Fórmula | N. estequiométrica IUPAC | N. Stock | N. Tradicional | +| ------- | ------------------------ | --------------------- | ----------------- | +| LiH | Hidruro de litio | Hidruro de litio | | +| NaH | Hidruro de sodio | Hidruro de sodio | Hidruro sódico | +| CsH | Hidruro de cesio | Hidruro de cesio | Hidruro césico | +| BeH2 | Hidruro de berilio | Hidruro de berilio | Hidruro berílico | +| CaH2 | Hidruro de calcio | Hidruro de calcio | Hidruro cálcico | +| SnH4 | Tetrahidruro de estaño | Hidruro de estaño(IV) | Hidruro estannico | +>[!WARNING] Recuerda +>El n.o de hidrogeno cuando se junta con un metal es de -1 + +**Ejemplo**: +- Hidruro de hierro(III) => Fe³⁺H⁻ => Fe³⁺H⁻3 +- Hidruro ferroso => Fe²⁺(**Ferr -oso**)H => Fe²⁺H2 +- Hidruro de potasio => K⁺H⁻ \ No newline at end of file diff --git a/Introducción Quimica/Sustancias Inorgánicas/3.Combinaciones del Oxigeno.md b/Introducción Quimica/Sustancias Inorgánicas/3.Combinaciones del Oxigeno.md new file mode 100644 index 0000000..4b56252 --- /dev/null +++ b/Introducción Quimica/Sustancias Inorgánicas/3.Combinaciones del Oxigeno.md @@ -0,0 +1,34 @@ +## Combinaciones binarias y pseudobinarias del oxigeno +### Óxidos +Elementos combinados con oxigeno +#### Formulación: EyOx +>[!INFO] Nomenclatura +>Óxido + de + Elemento (**n.o del Elemento en numeros romanos**) + +| Fórmula | N. estequiométrico | N. Stock | N. tradicional | +| ------- | ------------------------- | ----------------------- | ------------------------------------- | +| FeO | Monóxido de hierro | Óxido de hierro(II) | Óxido ferroso | +| Fe₂O₃ | Trióxido de dihierro | Óxido de hierro(III) | Óxido férrico | +| N₂O | Óxido de dinitrógeno | Óxido de nitrógeno(I) | Óxido nitroso (Anhídrido hiponitroso) | +| NO | Monóxido de nitrógeno | Óxido de nitrógeno(II) | Óxido nítrico | +| N₂O₃ | Trióxido de dinitrógeno | Óxido de nitrógeno(III) | Anhídrido nitroso | +| NO₂ | Dióxido de nitrógeno | Óxido de nitrógeno(IV) | Dióxido de nitrógeno | +| N₂O₄ | Tetraóxido de dinitrógeno | Óxido de nitrógeno(IV) | Tetraóxido de nitrógeno | +| N₂O₅ | Pentaóxido de dinitrógeno | Óxido de nitrógeno(V) | Anhídrido nítrico | + +### Peróxidos O2²⁻, hiperóxidos (o2⁻) y ozónicos (O2⁻) +## Peróxidos (O₂²⁻) +- **Li₂O₂** → peróxido de litio +- **H₂O₂** → peróxido de hidrógeno (agua oxigenada) +- **BaO₂** → peróxido de bario +- **CuO₂** → peróxido de cobre(II) +## Hiperóxidos o superóxidos (O₂⁻) +- **KO₂** → hiperóxido o superóxido de potasio +- **RbO₂** → hiperóxido o superóxido de rubidio +- **NaO₂** → hiperóxido o superóxido de sodio +- **BaO₄** → hiperóxido o superóxido de bario +- **MgO₄** → hiperóxido o superóxido de magnesio +## Ozónidos (O₃⁻) +- **KO₃** → ozónido de potasio +- **RbO₃** → ozónido de rubidio +- **CsO₃** → ozónido de cesio diff --git a/Introducción Quimica/Sustancias Inorgánicas/4.Otras combinaciónes.md b/Introducción Quimica/Sustancias Inorgánicas/4.Otras combinaciónes.md new file mode 100644 index 0000000..6b0e195 --- /dev/null +++ b/Introducción Quimica/Sustancias Inorgánicas/4.Otras combinaciónes.md @@ -0,0 +1,24 @@ +# Otras combinaciones binarias y pseudobinarias +## No metales con metales (seles binarias) +#### Formulación: AyBx (A => metal de n.o x, B => metal de n.o de y) + +| Fórmula | N. estequiométrico | N. Stock | N. tradicional | +| --------- | -------------------- | ------------------------ | -------------------------------- | +| **CaF₂** | Difluoruro de calcio | Fluoruro de calcio | Fluoruro cálcico | +| **FeCl₃** | Tricloruro de hierro | Cloruro de hierro(III) | Cloruro férrico | +| **WC** | Carburo de wolframio | Carburo de wolframio(IV) | Carburo wolfrámico (carburundum) | + +>[!INFO] Nomenclatura Stock +>NoMetal-uro + de + Metal (n.o si es variable en numeros romanos) + + +## No metal - No metal +#### Formulación: B$_y$C$_x$ (B no metal de valencia x, C no metal de valencia y) + +>[!REMEMBER] Recuerda +>En cualquier combinación binaria entre no metales se coloque más a la izquierda de la fórmula el elemento que va antes en la siguiente lista: +>**B Si C Sb As P N H Te Se S At I Br Cl O F** +### Pseudobinarias +... +### Oxoácidos +... \ No newline at end of file diff --git a/Pasted Image 20250902211302_215.png b/Pasted Image 20250902211302_215.png new file mode 100644 index 0000000..74ebf1a Binary files /dev/null and b/Pasted Image 20250902211302_215.png differ diff --git a/Perlite/Changelog.md b/Perlite/Changelog.md deleted file mode 100644 index df26bfc..0000000 --- a/Perlite/Changelog.md +++ /dev/null @@ -1,277 +0,0 @@ -## 1.6 -- get rid of mb_strlen, fixed issue [#151](https://github.com/secure-77/Perlite/issues/151) thanks to @Sephral -- hide X / Twitter when not set, issue [#152](https://github.com/secure-77/Perlite/issues/152), thanks to @EKNr1 -- implemented settings.php, issue [#119](https://github.com/secure-77/Perlite/issues/119), thanks to @EKNr1 -- implemented pretty urls, issue [#140](https://github.com/secure-77/Perlite/issues/140) -- removed not used Dockerfile -- fixed issue [#148](https://github.com/secure-77/Perlite/issues/148) -- fixed issue [#149](https://github.com/secure-77/Perlite/issues/149) -- implemented highlight support [#150](https://github.com/secure-77/Perlite/issues/150) -- implemented TOC mobile support [#141](https://github.com/secure-77/Perlite/issues/141) -- implemented Tags in side view [#122](https://github.com/secure-77/Perlite/issues/122) -- added possibility to allow access to MD files in hidden folders via HIDDEN_FILE_ACCESS variable, thanks to @EKNr1 for the idea. -- updated katex to 0.16.22 -- updated highlight.js to 11.11.1 -- updated mermaid to 11.6.0 - -\ -**Important Update Note**\ -As Perlite is now using pretty URLs you need to change your Nginx / Webserver config to make perlite work again after this release! This affects also the docker version, you need to get the latest [perlite.conf](https://github.com/secure-77/Perlite/blob/main/web/config/perlite.conf) -Please take a look at the [updated wiki](https://github.com/secure-77/Perlite/wiki/01---Setup-(no-Docker)#adjust-the-nginx-config) for more details. - - -## 1.5.9 -- added YouTube link support [#133](https://github.com/secure-77/Perlite/issues/133) thanks to @rsubr -- added image postion support thanks to @ar0x4 -- fixed direct page links [#90](https://github.com/secure-77/Perlite/issues/90) -- added support for webp images [#126](https://github.com/secure-77/Perlite/issues/126) -- fixed kartex problem PR [#131](https://github.com/secure-77/Perlite/pull/131) thanks to @Yaro2709 -- fixed obsidian edit link thanks to klgzzz -- changed site title to use the env. variable site_title -- fixed issue [#128](https://github.com/secure-77/Perlite/issues/128) thanks to @rgaricano -- added m4a support thanks to @rgaricano -- added img link support to external urls issue [#89](https://github.com/secure-77/Perlite/issues/89) -- added tasks support, issue [#118](https://github.com/secure-77/Perlite/issues/118) -- updated mermaid to 11.2.1 -- updated katex to 0.16.11 -- updated highlight.js to 11.10.0 -- changed base image for perlite_web to nginx:stable, issue [#100](https://github.com/secure-77/Perlite/issues/100) - - -## 1.5.8 -- merged PR #111 thanks to @selfiens -- merged PR #112 thanks to @selfiens -- merged PR #106 thanks to @Shardbyte -- updated obsidian app.css -- fixed yaml frontmatter [#107](https://github.com/secure-77/Perlite/issues/107) -- added support for alternate image text [#92](https://github.com/secure-77/Perlite/issues/92) -- added support for collapsed callouts [#113](https://github.com/secure-77/Perlite/issues/113) -- added support for embedded pdf and videos [#105](https://github.com/secure-77/Perlite/issues/105) -- added random node function [#109](https://github.com/secure-77/Perlite/issues/109) -- added support for absolut pathes [#90](https://github.com/secure-77/Perlite/issues/90) -- updated Demo Documetns and Themes -- updated build.sh to force composer updates -- updated highlight.js to 11.9.0 -- updated katex to 0.16.9 -- updated vis-network to 9.1.9 -- added new custom logo and social media section -- fixed issue Folder arrow marker randomly disappears [#94](https://github.com/secure-77/Perlite/issues/94) -- changed to show TOC and local Graph at the same time - - -## 1.5.7 -- added social media meta tags and variables -- added github action for docker build process and arm support, issue #65 -- improved loading performance, the graph linking will only be done at the first page load, issue #97 -- provided a python script to perform as alternative for the link generation, issue #97 -- included mermaid 10.3.0 via cdn as composer had issues to load it -- updated highlight.js to 11.8.0 -- updated katex to 0.16.8 -- updated jquery to 3.7.1 -- fixed issue #74 (custom heading links) -- fixed heading references in links to other notes -- implemented copy code button issue #68 -- added a little padding for the headers -- merged PR #102 (thx to @selfiens) -- seperated php composer into two files (npm-assets and php-assets) -- fixed issue #91 - - -## 1.5.6 -- fixed heading references (issue #74) -- added safemode environment variable (PR #88) thanks to @NotGovernor -- added default side panel size related of screen size (issue #85) - - -## 1.5.5 -- updated some html structure to fit the latest app.css and theme styles -- updated app.css -- removed Bootstrap dependency -- fixed ampersand problem in global graph (issue #47) -- added default font size environment variable (issue #80) -- added escape key function for modal close button (PR #82) thank to @stellarix -- added homepage environment variable (PR #84) thanks to @NotGovernor -- added composer -- added build script -- updated highlight.js to 11.7.0 -- updated jquery to 3.7.0 -- updated mermaid to 8.12.1 -- updated vis-network to 9.1.6 - - -## 1.5.4 -- fixed img max width -- fixed image modal (issue #58) -- fixed double links to nodes (issue #45) thanks to @catrone3 -- added svg format, thanks to @lennartbrandin -- added variable for allowed file link types, thanks to @dbohn -- changed the gprah render solver from barnesHut to forceAtlas2Based to improve perfomance (issue #66) -- added graph loading text -- added option and default behavior to disable Pop Hovers -- added default behavior to show table of content instead of local graph - - -## 1.5.3 -- support file links with exclamation mark and aliases (issue #55) -- support image resizing (issue #54) -- fixed $refName missing php variable (PR #56) - - -## 1.5.2 -- fixed $closing variable error -- set focus to search field -- fixed #Header reference in internal links (Issue #32) -- fixed error with links to non existing files (Graph) -- fixed ampersand problem in internal links and graph (Issue #47) -- added mousehover for internal links, feature request #43 -- added popup feature for internal links on mobile (setting), feature request #43 -- fixed padding-right issue on mobile view -- moved some instructions to the wiki -- added light mode (in the settings) -- updated katex to 0.16.4 -- fixed problem with two _ (underscorces) per line in katex context - - -## 1.5.1 -- fixed tags containing a hyphen or slash (Issue #39) -- fixed docker-compose-dev.yml config -- fixed callouts and contiuned quotes (Issue #40 and #27) -- fixed logo position -- Demo Vault is default if no NOTES_PATH is defined -- fixed line breaks if LINE_BREAKS isn´t defined - - -## 1.5 -- Complete redesign based on obsidian css -- support for Obsidian themes -- added tag search -- added metadata support -- added different settings for the graph styling -- added different settings for the viewer, like text size -- settings stored in local browser storage -- updated JQuery to version 3.6.1 -- updated HighlightJS to version 11.6.0 -- updated Docker image to use latest php:fpm-alpine version (8.1.11) -- updatet Nginx config to allow Themes -- added docker compose variable for markdown linebreaks - - -## 1.4.5 RC -- added "edit button", enable it via cookie, thx to @Tooa - - -## 1.4.4 -- some code cleanup -- replaced mermaid.min.js with the correct one (29.1.) -- implemented start page (README.md) for non mobile view -- hide graph display, when node has no graph -- some visual graph updates -- changed order: folders are now always on top -- fixed sort order to be case insensitive -- adjusted the docker image and container naming -- updated the nginx version to 1.22 and php to 7.4.30 for docker -- adjusted blockquote style and added callouts support (thanks to @Tooa) -- fixed sidebar menu height -- fixed problem with direct links and `&` chars -- fixed a graph linking error when some files are missing from the metadata.json - - -## 1.4.3 -- added mermaid 8.7.0 (mermaid.min.js) -- changed order for folders and files with underscores (they are now on top) -- added sec77/perlite:latest to the docker hub -- changed the docker compose files, the hub images is used now -- updated vis-js to version 9.1.2 -- fixed problems with multiple links in one line - - -## 1.4.2 -- enabled simple line break in parsedown -- fixed sidebar height -- fixed max img width & height -- removed # from title -- added Perlite Discord Server -- added support for custom internal Obsidian link names -- improved style of tables -- url update in browser - - -## 1.4.1 -- some code cleanup -- added separate perlite.svg for the about header -- changed nginx docker config -- fixed multibyte utf basename to support chinese characters in file name and path -- fixed menu collapse problem when folder name contains dots or begins with a number -- fixed image size in mobile view -- fixed image line break issue -- fixed full graph view when current node has no links and no-link filter is enabled -- changed color of current node in the graph view -- LaTeX support - - added katex.min.js - - added katex.min.css - - added fonts - - added auto-render.min.js -- fixed navigator when file or folder names are to long - - -## 1.4 -- updated highlight.js to 11.4.0 -- updated Bootstrap JS files to 5.1.3 -- changed default (dark) theme from darkly to Bootswatch theme "slate" -- fixed direct links when Perlite is in a subfolder of the root direcotry -- removed the flatly theme, a11y-light theme and disabled the "light mode" -- many layout redesigns like - - changed the header size - - moved the searchbar to the navbar - - added Nerd Fonts as default Font - - added a right navbar for the graph - - highlight current navbar entry - - set focus on current navbar entry if called by a link - - other small layout changes -- added separated scrollbars for navbar and content -- added rel="noopener noreferrer" attributes for external links -- added icon for external links -- added a visual graph via vis.js - - metadata.json parsing (only adds nodes if they really exists in the folder structure) - - show graph and direct links for every note in the right navbar - - added modal for full graph view - - added filter (hide nodes without link) in the full graph view (saved via cookie) -- improved the search - - enabled case insensitive - - included filename for the search - - removed the "open recent search" (because its unnecessary) -- updated the Readme -- updated the Demo Documents - - -## 1.3 -- added support for inplace links -- added support for PDF files / links -- changed in place image behaviour -- new logo -- added favicon -- adjust image view in about modal -- changed "About" behaviour -- added changelog -- outsourced docker instructions from readme -- changes link behaviour (added link get parameter to fix problems with unwanted queries) -- removed "not allowed" content -- added cookie for theme settings -- adjust mobile margins - - -## 1.2 -- added Docker -- added direct Links -- changed base dir logic -- update Readme - - -## 1.1 -- added mobile responsive -- added search -- added theme support and darkmode - - -## 1.0 -- First prod. ready release diff --git a/Perlite/LICENSE b/Perlite/LICENSE deleted file mode 100644 index 78a519b..0000000 --- a/Perlite/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 secure-77 - -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. diff --git a/Perlite/README.md b/Perlite/README.md deleted file mode 100644 index 72fbb1b..0000000 --- a/Perlite/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Perlite - -![GitHub release (latest by date)](https://img.shields.io/github/v/release/secure-77/perlite) ![GitHub](https://img.shields.io/github/license/secure-77/perlite) ![GitHub last commit](https://img.shields.io/github/last-commit/secure-77/Perlite) - - -A web based markdown viewer optimized for [Obsidian](https://obsidian.md/) Notes - -Just put your whole Obsidian vault or markdown folder/file structure in your web directory. The page builds itself. - -Its an open source alternative to [obsidian publish](https://obsidian.md/publish). - -Read more about Perlite and staging tips on my blog post: [Perlite on Secure77](https://secure77.de/perlite). -If you want to discuss Perlite you can join the [Perlite Discord Server](https://discord.gg/pkJ347ssWT) - - -## Demo - -[Perlite Demo](https://perlite.secure77.de/) - - -![Demo Screenshot](https://raw.githubusercontent.com/secure-77/Perlite/main/screenshots/screenshot.png "Demo Screenshot") - -![Graph Screenshot](https://raw.githubusercontent.com/secure-77/Perlite/main/screenshots/graph.png "Graph Screenshot") - -## Features - -- Auto build up, based on your folder (vault) structure -- No Database required -- Obsidian Themes Support -- Fully Responsive -- No manual parsing or converting necessary -- Full interactive Graph -- LaTeX and Mermaid Support -- Link to Obsidian Vault -- Search -- Obsidian tags, links, images and preview Support -- Dark and Light Mode - - -## Install -Please make sure you read the [required settings](https://github.com/secure-77/Perlite/wiki/03---Perlite-Settings#required-settings) first! - -You can download the latest release from github or git clone the project and use docker. - -- For non Docker please check [Setup](https://github.com/secure-77/Perlite/wiki/01---Setup-(no-Docker)) -- For Docker, please check [Docker Setup](https://github.com/secure-77/Perlite/wiki/02---Setup-Docker) - - -## Wiki -Please check the [wiki](https://github.com/secure-77/Perlite/wiki), here you will find further information, for example: - -- [Themes](https://github.com/secure-77/Perlite/wiki/Themes) -- [Graph Setup and Settings](https://github.com/secure-77/Perlite/wiki/Graph) -- [Perlite Settings](https://github.com/secure-77/Perlite/wiki/03---Perlite-Settings) -- [Troubleshooting](https://github.com/secure-77/Perlite/wiki/Troubleshooting) - - -## Security -- The [Safemode](https://github.com/erusev/parsedown#security) from Parsedown is active, but I would not recommend to allow untrusted user input. -- You should prevent that the .md files are direct accessible via the browser (only the php engine need access to it) or at least make sure that the md files will be downloaded and not be rendered by browser -- You should prevent that the metadata.json file is direct accessible via the browser (only the php engine need access to it). The extracted metadata.json contains the whole obsidian structure, so this file could be sensitive if you plan to exclude some files or folders from Perlite. However, the parsing is done by the php engine and it checks for every path if the file really exists in the provided vault, so files you excluded from the vault will also not be visible in the graph, but they are still present in the metadata.json. This is why you should prevent access to it. - - -## Contributing -Want to contribute? Awesome! Please use the [dev branch](https://github.com/secure-77/Perlite/tree/dev) for pull requests. - - -## Why Perlite? -[Wiki](https://en.wikipedia.org/wiki/Perlite): -*Perlite is an amorphous volcanic glass ... typically formed by the hydration of obsidian.* - - -## Previous Versions and Changelog - -- [Changelog](https://github.com/secure-77/Perlite/blob/main/Changelog.md) -- [Perlite 1.4.4 Demo](https://perlite.secure77.de/1.4.4) -- [Perlite 1.3 Demo](https://perlite.secure77.de/1.3) diff --git a/Perlite/SECURITY.md b/Perlite/SECURITY.md deleted file mode 100644 index bdce158..0000000 --- a/Perlite/SECURITY.md +++ /dev/null @@ -1,5 +0,0 @@ -# Security Policy - -## Reporting a Vulnerability - -If you have found a vulnerability, please send an email to sec77@ secure77.de or contact me via direct message on Discord sec77#5109 diff --git a/Perlite/perlite/.js/auto-render.min.js b/Perlite/perlite/.js/auto-render.min.js deleted file mode 100644 index 32a7dd8..0000000 --- a/Perlite/perlite/.js/auto-render.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={757:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};r.d(o,{default:function(){return p}});var i=r(757),a=r.n(i);const l=function(e,t,n){let r=n,o=0;const i=e.length;for(;re.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;n=e.search(o),-1!==n;){n>0&&(r.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));const o=t.findIndex((t=>e.startsWith(t.left)));if(n=l(t[o].right,e,t[o].left.length),-1===n)break;const i=e.slice(0,n+t[o].right.length),a=s.test(i)?i:e.slice(t[o].left.length,n);r.push({type:"math",data:a,rawData:i,display:t[o].display}),e=e.slice(n+t[o].right.length)}return""!==e&&r.push({type:"text",data:e}),r};const c=function(e,t){const n=d(e,t.delimiters);if(1===n.length&&"text"===n[0].type)return null;const r=document.createDocumentFragment();for(let e=0;e-1===e.indexOf(" "+t+" ")))&&f(r,t)}}};var p=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},f(e,n)};return o=o.default}()})); \ No newline at end of file diff --git a/Perlite/perlite/.js/highlight.min.js b/Perlite/perlite/.js/highlight.min.js deleted file mode 100644 index 6e1a09e..0000000 --- a/Perlite/perlite/.js/highlight.min.js +++ /dev/null @@ -1,1244 +0,0 @@ -/*! - Highlight.js v11.11.1 (git: 08cb242e7d) - (c) 2006-2024 Josh Goebel and other contributors - License: BSD-3-Clause - */ -var hljs=function(){"use strict";function e(n){ -return n instanceof Map?n.clear=n.delete=n.set=()=>{ -throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{ -throw Error("set is read-only") -}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{ -const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a) -})),n}class n{constructor(e){ -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} -ignoreMatch(){this.isMatchIgnored=!0}}function t(e){ -return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") -}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] -;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope -;class r{constructor(e,n){ -this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ -this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{ -if(e.startsWith("language:"))return e.replace("language:","language-") -;if(e.includes(".")){const t=e.split(".") -;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") -}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)} -closeNode(e){i(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ -this.buffer+=``}}const s=(e={})=>{const n={children:[]} -;return Object.assign(n,e),n};class o{constructor(){ -this.rootNode=s(),this.stack=[this.rootNode]}get top(){ -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ -this.top.children.push(e)}openNode(e){const n=s({scope:e}) -;this.add(n),this.stack.push(n)}closeNode(){ -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ -return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), -n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ -o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e} -addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ -this.closeNode()}__addSublanguage(e,n){const t=e.root -;n&&(t.scope="language:"+n),this.add(t)}toHTML(){ -return new r(this,this.options).value()}finalize(){ -return this.closeAllNodes(),!0}}function c(e){ -return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")} -function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")} -function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{ -const n=e[e.length-1] -;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} -})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"} -function p(e){return RegExp(e.toString()+"|").exec("").length-1} -const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ -;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t -;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break} -i+=a.substring(0,e.index), -a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0], -"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)} -const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",w="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",N={ -begin:"\\\\[\\s\\S]",relevance:0},k={scope:"string",begin:"'",end:"'", -illegal:"\\n",contains:[N]},x={scope:"string",begin:'"',end:'"',illegal:"\\n", -contains:[N]},O=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n, -contains:[]},t);i.contains.push({scope:"doctag", -begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", -end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) -;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) -;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i -},M=O("//","$"),A=O("/\\*","\\*/"),S=O("#","$");var C=Object.freeze({ -__proto__:null,APOS_STRING_MODE:k,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:{ -scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:O, -C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number", -begin:w,relevance:0},C_NUMBER_RE:w,END_SAME_AS_BEGIN:e=>Object.assign(e,{ -"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:S,IDENT_RE:f, -MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0}, -NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y, -PHRASAL_WORDS_MODE:{ -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -},QUOTE_STRING_MODE:x,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, -end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]}, -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", -SHEBANG:(e={})=>{const n=/^#![ ]*\// -;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n, -end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, -TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E, -UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){ -"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){ -void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){ -n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", -e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, -void 0===e.relevance&&(e.relevance=0))}function I(e,n){ -Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){ -if(e.match){ -if(e.begin||e.end)throw Error("begin & end are not supported with match") -;e.begin=e.match,delete e.match}}function B(e,n){ -void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return -;if(e.starts)throw Error("beforeMatch cannot be used with starts") -;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] -})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={ -relevance:0,contains:[Object.assign(t,{endsParent:!0})] -},e.relevance=0,delete t.beforeMatch -},F=["of","and","for","in","not","or","if","then","parent","list","value"] -;function z(e,n,t="keyword"){const a=Object.create(null) -;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{ -Object.assign(a,z(e[t],n,t))})),a;function i(e,t){ -n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") -;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){ -return n?Number(n):(e=>F.includes(e.toLowerCase()))(e)?0:1}const U={},P=e=>{ -console.error(e)},K=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{ -U[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),U[`${e}/${n}`]=!0) -},H=Error();function G(e,n,{key:t}){let a=0;const i=e[t],r={},s={} -;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1]) -;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function Z(e){(e=>{ -e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, -delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ -_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope -}),(e=>{if(Array.isArray(e.begin)){ -if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), -H -;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"), -H;G(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{ -if(Array.isArray(e.end)){ -if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"), -H -;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"), -H;G(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function W(e){ -function n(n,t){ -return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) -}class t{constructor(){ -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} -addRule(e,n){ -n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), -this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|" -}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex -;const n=this.matcherRe.exec(e);if(!n)return null -;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] -;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){ -this.rules=[],this.multiRegexes=[], -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ -if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t -;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), -n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ -this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ -const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex -;let t=n.exec(e) -;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ -const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} -return t&&(this.regexIndex+=t.position+1, -this.regexIndex===this.count&&this.considerAll()),t}} -if(e.compilerExtensions||(e.compilerExtensions=[]), -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") -;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r -;if(r.isCompiled)return o -;[R,L,Z,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))), -r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null -;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), -l=r.keywords.$pattern, -delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=z(r.keywords,e.case_insensitive)), -o.keywordPatternRe=n(l,!0), -s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), -r.end&&(o.endRe=n(o.end)), -o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)), -r.illegal&&(o.illegalRe=n(r.illegal)), -r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{ -variants:null},n)))),e.cachedVariants?e.cachedVariants:Q(e)?a(e,{ -starts:e.starts?a(e.starts):null -}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) -})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i -;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" -}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" -}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function Q(e){ -return!!e&&(e.endsWithParent||Q(e.starts))}class X extends Error{ -constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} -const V=t,J=a,Y=Symbol("nomatch"),ee=t=>{ -const a=Object.create(null),i=Object.create(null),r=[];let s=!0 -;const o="Could not find the language '{}', did you forget to load/include a language module?",c={ -disableAutodetect:!0,name:"Plain text",contains:[]};let p={ -ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", -cssSelector:"pre code",languages:null,__emitter:l};function _(e){ -return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i="" -;"object"==typeof n?(a=e, -t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."), -q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), -i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};O("before:highlight",r) -;const s=r.result?r.result:f(r.language,r.code,t) -;return s.code=r.code,O("after:highlight",s),s}function f(e,t,i,r){ -const l=Object.create(null);function c(){if(!O.keywords)return void A.addText(S) -;let e=0;O.keywordPatternRe.lastIndex=0;let n=O.keywordPatternRe.exec(S),t="" -;for(;n;){t+=S.substring(e,n.index) -;const i=v.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,O.keywords[a]);if(r){ -const[e,a]=r -;if(A.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{ -const t=v.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0] -;e=O.keywordPatternRe.lastIndex,n=O.keywordPatternRe.exec(S)}var a -;t+=S.substring(e),A.addText(t)}function d(){null!=O.subLanguage?(()=>{ -if(""===S)return;let e=null;if("string"==typeof O.subLanguage){ -if(!a[O.subLanguage])return void A.addText(S) -;e=f(O.subLanguage,S,!0,M[O.subLanguage]),M[O.subLanguage]=e._top -}else e=E(S,O.subLanguage.length?O.subLanguage:null) -;O.relevance>0&&(C+=e.relevance),A.__addSublanguage(e._emitter,e.language) -})():c(),S=""}function g(e,n){ -""!==e&&(A.startScope(n),A.addText(e),A.endScope())}function u(e,n){let t=1 -;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue} -const a=v.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(S=i,c(),S=""),t++}} -function b(e,n){ -return e.scope&&"string"==typeof e.scope&&A.openNode(v.classNameAliases[e.scope]||e.scope), -e.beginScope&&(e.beginScope._wrap?(g(S,v.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), -S=""):e.beginScope._multi&&(u(e.beginScope,n),S="")),O=Object.create(e,{parent:{ -value:O}}),O}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n) -;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e) -;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){ -for(;e.endsParent&&e.parent;)e=e.parent;return e}} -if(e.endsWithParent)return m(e.parent,t,a)}function _(e){ -return 0===O.matcher.regexIndex?(S+=e[0],1):(D=!0,0)}function h(e){ -const n=e[0],a=t.substring(e.index),i=m(O,e,a);if(!i)return Y;const r=O -;O.endScope&&O.endScope._wrap?(d(), -g(n,O.endScope._wrap)):O.endScope&&O.endScope._multi?(d(), -u(O.endScope,e)):r.skip?S+=n:(r.returnEnd||r.excludeEnd||(S+=n), -d(),r.excludeEnd&&(S=n));do{ -O.scope&&A.closeNode(),O.skip||O.subLanguage||(C+=O.relevance),O=O.parent -}while(O!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length} -let y={};function w(a,r){const o=r&&r[0];if(S+=a,null==o)return d(),0 -;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){ -if(S+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`) -;throw n.languageName=e,n.badRule=y.rule,n}return 1} -if(y=r,"begin"===r.type)return(e=>{ -const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]] -;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t) -;return a.skip?S+=t:(a.excludeBegin&&(S+=t), -d(),a.returnBegin||a.excludeBegin||(S=t)),b(a,e),a.returnBegin?0:t.length})(r) -;if("illegal"===r.type&&!i){ -const e=Error('Illegal lexeme "'+o+'" for mode "'+(O.scope||"")+'"') -;throw e.mode=O,e}if("end"===r.type){const e=h(r);if(e!==Y)return e} -if("illegal"===r.type&&""===o)return S+="\n",1 -;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches") -;return S+=o,o.length}const v=N(e) -;if(!v)throw P(o.replace("{}",e)),Error('Unknown language: "'+e+'"') -;const k=W(v);let x="",O=r||k;const M={},A=new p.__emitter(p);(()=>{const e=[] -;for(let n=O;n!==v;n=n.parent)n.scope&&e.unshift(n.scope) -;e.forEach((e=>A.openNode(e)))})();let S="",C=0,T=0,R=0,D=!1;try{ -if(v.__emitTokens)v.__emitTokens(t,A);else{for(O.matcher.considerAll();;){ -R++,D?D=!1:O.matcher.considerAll(),O.matcher.lastIndex=T -;const e=O.matcher.exec(t);if(!e)break;const n=w(t.substring(T,e.index),e) -;T=e.index+n}w(t.substring(T))}return A.finalize(),x=A.toHTML(),{language:e, -value:x,relevance:C,illegal:!1,_emitter:A,_top:O}}catch(n){ -if(n.message&&n.message.includes("Illegal"))return{language:e,value:V(t), -illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T, -context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:x},_emitter:A};if(s)return{ -language:e,value:V(t),illegal:!1,relevance:0,errorRaised:n,_emitter:A,_top:O} -;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{ -const n={value:V(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)} -;return n._emitter.addText(e),n})(e),i=n.filter(N).filter(x).map((n=>f(n,e,!1))) -;i.unshift(t);const r=i.sort(((e,n)=>{ -if(e.relevance!==n.relevance)return n.relevance-e.relevance -;if(e.language&&n.language){if(N(e.language).supersetOf===n.language)return 1 -;if(N(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s -;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{ -let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" -;const t=p.languageDetectRe.exec(n);if(t){const n=N(t[1]) -;return n||(K(o.replace("{}",t[1])), -K("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} -return n.split(/\s+/).find((e=>_(e)||N(e)))})(e);if(_(t))return -;if(O("before:highlightElement",{el:e,language:t -}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) -;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), -console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), -console.warn("The element with unescaped HTML:"), -console.warn(e)),p.throwUnescapedHTML))throw new X("One of your code blocks includes unescaped HTML.",e.innerHTML) -;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a) -;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t -;e.classList.add("hljs"),e.classList.add("language-"+a) -})(e,t,r.language),e.result={language:r.language,re:r.relevance, -relevance:r.relevance},r.secondBest&&(e.secondBest={ -language:r.secondBest.language,relevance:r.secondBest.relevance -}),O("after:highlightElement",{el:e,result:r,text:a})}let w=!1;function v(){ -if("loading"===document.readyState)return w||window.addEventListener("DOMContentLoaded",(()=>{ -v()}),!1),void(w=!0);document.querySelectorAll(p.cssSelector).forEach(y)} -function N(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} -function k(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ -i[e.toLowerCase()]=n}))}function x(e){const n=N(e) -;return n&&!n.disableAutodetect}function O(e,n){const t=e;r.forEach((e=>{ -e[t]&&e[t](n)}))}Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:v, -highlightElement:y, -highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"), -q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=J(p,e)}, -initHighlighting:()=>{ -v(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, -initHighlightingOnLoad:()=>{ -v(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") -},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){ -if(P("Language definition for '{}' could not be registered.".replace("{}",e)), -!s)throw n;P(n),i=c} -i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&k(i.aliases,{ -languageName:e})},unregisterLanguage:e=>{delete a[e] -;for(const n of Object.keys(i))i[n]===e&&delete i[n]}, -listLanguages:()=>Object.keys(a),getLanguage:N,registerAliases:k, -autoDetection:x,inherit:J,addPlugin:e=>{(e=>{ -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ -e["before:highlightBlock"](Object.assign({block:n.el},n)) -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ -e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}, -removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{ -s=!1},t.safeMode=()=>{s=!0},t.versionString="11.11.1",t.regex={concat:b, -lookahead:d,either:m,optional:u,anyNumberOfTimes:g} -;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t -},ne=ee({});ne.newInstance=()=>ee({});const te=e=>({IMPORTANT:{scope:"meta", -begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ -scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/}, -FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, -ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", -contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ -scope:"number", -begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", -relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/} -}),ae=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],ie=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),re=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),se=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),oe=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),le=re.concat(se).sort().reverse() -;var ce="[0-9](_*[0-9])*",de=`\\.(${ce})`,ge="[0-9a-fA-F](_*[0-9a-fA-F])*",ue={ -className:"number",variants:[{ -begin:`(\\b(${ce})((${de})|\\.)?|(${de}))[eE][+-]?(${ce})[fFdD]?\\b`},{ -begin:`\\b(${ce})((${de})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ -begin:`(${de})[fFdD]?\\b`},{begin:`\\b(${ce})[fFdD]\\b`},{ -begin:`\\b0[xX]((${ge})\\.?|(${ge})?\\.(${ge}))[pP][+-]?(${ce})[fFdD]?\\b`},{ -begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${ge})[lL]?\\b`},{ -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], -relevance:0};function be(e,n,t){return-1===t?"":e.replace(n,(a=>be(e,n,t-1)))} -const me="[A-Za-z$_][0-9A-Za-z$_]*",pe=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],_e=["true","false","null","undefined","NaN","Infinity"],he=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],fe=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ee=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ye=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],we=[].concat(Ee,he,fe) -;function ve(e){const n=e.regex,t=me,a={begin:/<[A-Za-z0-9\\._:-]+/, -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ -const t=e[0].length+e.index,a=e.input[t] -;if("<"===a||","===a)return void n.ignoreMatch();let i -;">"===a&&(((e,{after:n})=>{const t="e+"\\s*\\(")), -n.concat("(?!",N.join("|"),")")),t,n.lookahead(/\s*\(/)), -className:"title.function",relevance:0};var N;const k={ -begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t, -excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},x={ -match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"}, -contains:[{begin:/\(\)/},f] -},O="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={ -match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(O)], -keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]} -;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{ -PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/, -contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ -label:"use_strict",className:"meta",relevance:10, -begin:/^\s*['"]use (strict|asm)['"]/ -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{ -scope:"attr",match:t+n.lookahead(":"),relevance:0},M,{ -begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", -keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{ -className:"function",begin:O,returnBegin:!0,end:"\\s*=>",contains:[{ -className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{ -className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/, -excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0 -},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{ -match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin, -"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{ -begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},w,{ -beginKeywords:"while if switch catch for"},{ -begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", -returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t, -className:"title.function"})]},{match:/\.\.\./,relevance:0},k,{match:"\\$"+t, -relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, -contains:[f]},v,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},E,x,{match:/\$[(.]/}]}} -const Ne=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),ke=["Protocol","Type"].map(Ne),xe=["init","self"].map(Ne),Oe=["Any","Self"],Me=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ae=["false","nil","true"],Se=["assignment","associativity","higherThan","left","lowerThan","none","right"],Ce=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Te=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Re=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),De=m(Re,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Ie=b(Re,De,"*"),Le=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Be=m(Le,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),$e=b(Le,Be,"*"),Fe=b(/[A-Z]/,Be,"*"),ze=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,$e,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],je=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] -;var Ue=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={ -begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} -;Object.assign(t,{className:"variable",variants:[{ -begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ -className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE] -},r=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={ -begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, -end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(o);const l={begin:/\$?\(\(/, -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] -},c=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 -}),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, -contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ -name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, -keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"], -literal:["true","false"], -built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] -},contains:[c,e.SHEBANG(),d,l,r,s,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{ -className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},grmr_c:e=>{ -const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] -}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ -className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ -match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ -className:"number",variants:[{match:/\b(0b[01']+)/},{ -match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/ -},{ -match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/ -},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0 -},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 -},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ -keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], -type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"], -literal:"true false NULL", -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" -},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:b.concat(["self"]),relevance:0}]),relevance:0},p={ -begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ -begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})], -relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/, -keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/, -end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s] -}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, -disableAutodetect:!0,illegal:"=]/,contains:[{ -beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c, -strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{ -contains:[{begin:/\\\n/}] -}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ -className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{ -begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", -end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ -className:"number",variants:[{ -begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)" -},{ -begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)" -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ -keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" -},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ -className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ -className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 -},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ -type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], -keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], -literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], -_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] -},b={className:"function.dispatch",relevance:0,keywords:{ -_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] -}, -begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) -},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{ -begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], -keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, -contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", -begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, -keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ -begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ -begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{ -className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, -contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u, -relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}] -},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++", -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{ -match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], -className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ -keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"]), -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], -literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ -begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ -begin:"\\b(0b[01']+)"},{ -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" -}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] -},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/, -keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/, -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ -},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{ -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/, -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) -;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], -o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ -illegal:/\n/})];const g={variants:[{className:"string", -begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1 -},c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},u={begin:"<",end:">", -contains:[{beginKeywords:"in out"},t] -},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={ -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ -begin:"\x3c!--|--\x3e"},{begin:""}]}] -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", -end:"$",keywords:{ -keyword:"if else elif endif define undef warning error line region endregion pragma checksum" -}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" -},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", -relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, -contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", -begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ -className:"string",begin:/"/,end:/"/}]},{ -beginKeywords:"new return throw await else",relevance:0},{className:"function", -begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", -relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, -contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params", -begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, -contains:[g,a,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{ -const n=e.regex,t=te(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{ -name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{ -keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"}, -contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ -},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 -},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ -begin:":("+re.join("|")+")"},{begin:":(:)?("+se.join("|")+")"}] -},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b"},{ -begin:/:/,end:/[;}{]/, -contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" -},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, -excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", -relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ -},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:ie.join(" ")},contains:[{ -begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ -className:"selector-tag",begin:"\\b("+ae.join("|")+")\\b"}]}},grmr_diff:e=>{ -const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{ -className:"meta",relevance:10, -match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) -},{className:"comment",variants:[{ -begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), -end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, -end:/$/}]}},grmr_go:e=>{const n={ -keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], -type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], -literal:["true","false","iota","nil"], -built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{const n=e.regex -;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1, -keywords:{ -keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], -literal:["true","false","null"]}, -contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ -scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", -begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, -end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ -scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)), -relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={ -className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ -begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/, -end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ -begin:/\$\{(.*?)\}/}]},r={className:"literal", -begin:/\bon|off|true|false|yes|no\b/},s={className:"string", -contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ -begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] -},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0 -},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ -name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, -contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ -begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), -className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ -const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+be("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ -keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"], -literal:["false","true","null"], -type:["char","boolean","long","float","int","byte","short","double"], -built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ -begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} -;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, -className:"string",contains:[e.BACKSLASH_ESCAPE] -},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ -match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ -1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ -begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", -3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", -3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ -beginKeywords:"new throw return else",relevance:0},{ -begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ -2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, -end:/\)/,keywords:i,relevance:0, -contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,ue,e.C_BLOCK_COMMENT_MODE] -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},ue,r]}},grmr_javascript:ve, -grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", -beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{ -literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/, -relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0 -},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], -illegal:"\\S"}},grmr_kotlin:e=>{const n={ -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", -literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" -},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={ -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'", -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, -contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={ -className:"meta", -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" -},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, -end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] -},l=ue,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={ -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, -contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g], -{name:"Kotlin",aliases:["kt","kts"],keywords:n, -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword", -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", -begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$", -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, -endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0 -},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{ -begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ -3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, -illegal:"extends implements",contains:[{ -beginKeywords:"public protected internal private constructor" -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, -excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env", -end:"$",illegal:"\n"},l]}},grmr_less:e=>{ -const n=te(e),t=le,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({ -className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n, -relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only", -attribute:ie.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c, -relevance:0} -;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{ -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", -excludeEnd:!0} -},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{ -className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0 -},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({ -begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0, -contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:", -returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ -},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+oe.join("|")+")\\b", -end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}] -},m={className:"keyword", -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", -starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={ -className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a -}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{ -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0, -returnEnd:!0,illegal:"[<='$\"]",relevance:0, -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{ -begin:"\\b("+ae.join("|")+")\\b",className:"selector-tag" -},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{ -className:"selector-pseudo",begin:":("+re.join("|")+")"},{ -className:"selector-pseudo",begin:":(:)?("+se.join("|")+")"},{begin:/\(/, -end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={ -begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]} -;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH), -{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}, -grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] -},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10 -})];return{name:"Lua",aliases:["pluto"],keywords:{ -$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil", -keyword:"and break do else elseif end for goto if in local not or repeat return then until while", -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" -},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)", -contains:[e.inherit(e.TITLE_MODE,{ -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", -begin:"\\(",endsWithParent:!0,contains:i}].concat(i) -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", -begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={ -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{ -const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={ -variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{ -begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, -relevance:2},{ -begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ -begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ -},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], -variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] -},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ -begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] -}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) -;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) -})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", -contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", -end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o, -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ -begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal", -match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}, -grmr_objectivec:e=>{const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n, -keyword:["@interface","@class","@protocol","@implementation"]};return{ -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], -keywords:{"variable.language":["this","super"],$pattern:n, -keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], -literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], -built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], -type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] -},illegal:"/,end:/$/,illegal:"\\n" -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", -begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t, -contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, -relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={ -$pattern:/[\w.]+/, -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot class close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl field fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map method mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/, -end:/\}/},s={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},o={scope:"variable", -variants:[{begin:/\$\d/},{ -begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") -},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[s]},l={ -className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{ -match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{ -match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{ -match:/\b0b[0-1][0-1_]*\b/}],relevance:0 -},c=[e.BACKSLASH_ESCAPE,i,o],d=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],g=(e,a,i="\\1")=>{ -const r="\\1"===i?i:n.concat(i,a) -;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t) -},u=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),b=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ -endsWithParent:!0}),r,{className:"string",contains:c,variants:[{ -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ -begin:"-?\\w+\\s*=>",relevance:0}]},l,{ -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", -keywords:"split return print reverse grep",relevance:0, -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ -begin:g("s|tr|y",n.either(...d,{capture:!0}))},{begin:g("s|tr|y","\\(","\\)")},{ -begin:g("s|tr|y","\\[","\\]")},{begin:g("s|tr|y","\\{","\\}")}],relevance:2},{ -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ -begin:u("(?:m|qr)?",/\//,/\//)},{begin:u("m|qr",n.either(...d,{capture:!0 -}),/\1/)},{begin:u("m|qr",/\(/,/\)/)},{begin:u("m|qr",/\[/,/\]/)},{ -begin:u("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method", -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE,s] -},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5, -contains:[e.TITLE_MODE,s,l]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$", -end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$", -className:"comment"}]}];return i.contains=b,r.contains=b,{name:"Perl", -aliases:["pl","pm"],keywords:a,contains:b}},grmr_php:e=>{ -const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=n.concat(/[A-Z]+/,t),s={ -scope:"variable",match:"\\$+"+a},o={scope:"subst",variants:[{begin:/\$\w+/},{ -begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null -}),c="[ \t\n]",d={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ -illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(o)}),l,{ -begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/, -contains:e.QUOTE_STRING_MODE.contains.concat(o),"on:begin":(e,n)=>{ -n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{ -n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({ -begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},g={scope:"number",variants:[{ -begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ -begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" -}],relevance:0 -},u=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],p={ -keyword:b,literal:(e=>{const n=[];return e.forEach((e=>{ -n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) -})),n})(u),built_in:m},_=e=>e.map((e=>e.replace(/\|\d+$/,""))),h={variants:[{ -match:[/new/,n.concat(c,"+"),n.concat("(?!",_(m).join("\\b|"),"\\b)"),i],scope:{ -1:"keyword",4:"title.class"}}]},f=n.concat(a,"\\b(?!\\()"),E={variants:[{ -match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{2:"variable.constant" -}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ -match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),f],scope:{1:"title.class", -3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))], -scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class", -3:"variable.language"}}]},y={scope:"attr", -match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},w={relevance:0, -begin:/\(/,end:/\)/,keywords:p,contains:[y,s,E,e.C_BLOCK_COMMENT_MODE,d,g,h] -},v={relevance:0, -match:[/\b/,n.concat("(?!fn\\b|function\\b|",_(b).join("\\b|"),"|",_(m).join("\\b|"),"\\b)"),a,n.concat(c,"*"),n.lookahead(/(?=\()/)], -scope:{3:"title.function.invoke"},contains:[w]};w.contains.push(v) -;const N=[y,E,e.C_BLOCK_COMMENT_MODE,d,g,h],k={ -begin:n.concat(/#\[\s*\\?/,n.either(i,r)),beginScope:"meta",end:/]/, -endScope:"meta",keywords:{literal:u,keyword:["new","array"]},contains:[{ -begin:/\[/,end:/]/,keywords:{literal:u,keyword:["new","array"]}, -contains:["self",...N]},...N,{scope:"meta",variants:[{match:i},{match:r}]}]} -;return{case_insensitive:!1,keywords:p, -contains:[k,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{ -contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, -keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, -contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ -begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ -begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},s,v,E,{ -match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},h,{ -scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, -excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" -},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", -begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:p, -contains:["self",k,s,E,e.C_BLOCK_COMMENT_MODE,d,g]}]},{scope:"class",variants:[{ -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ -beginKeywords:"use",relevance:0,end:";",contains:[{ -match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},d,g]} -},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{ -begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*", -end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0 -},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null, -skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null, -contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text", -aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{ -const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ -$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] -},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/, -end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={ -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, -contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, -contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, -end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/, -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, -contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, -contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] -},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={ -className:"number",relevance:0,variants:[{ -begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{ -begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{ -begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})` -},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})` -}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, -contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ -className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, -end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, -contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{ -name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, -illegal:/(<\/|\?)|=>/,contains:[r,u,{scope:"variable.language",match:/\bself\b/ -},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword" -},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword", -3:"title.function"},contains:[m]},{variants:[{ -match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], -scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ -className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}}, -grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt", -starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{ -begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{ -const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) -;return{name:"R",keywords:{$pattern:t, -keyword:"function if in break next repeat else for while", -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" -},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, -starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), -endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ -scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 -}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] -}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], -variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ -}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', -relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ -1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"}, -match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{ -2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"}, -match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ -match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", -contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ -const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ -"variable.constant":["__FILE__","__LINE__","__ENCODING__"], -"variable.language":["self","super"], -keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], -built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], -literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ -begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] -}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 -}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, -end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ -begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ -begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, -end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ -begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ -begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ -begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), -contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, -contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number", -relevance:0,variants:[{ -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ -begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ -className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, -keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ -match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", -4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ -2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ -1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, -className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ -match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ -begin:e.IDENT_RE+"::"},{className:"symbol", -begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", -begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable", -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ -className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0, -relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", -keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c], -illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ -begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", -end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l) -;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m} -},{className:"meta.prompt", -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", -starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby", -aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, -contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}}, -grmr_rust:e=>{ -const n=e.regex,t=/(r#)?/,a=n.concat(t,e.UNDERSCORE_IDENT_RE),i=n.concat(t,e.IDENT_RE),r={ -className:"title.function.invoke",relevance:0, -begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,i,n.lookahead(/\s*\(/)) -},s="([ui](8|16|32|64|128|size)|f(32|64))?",o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l, -keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"], -literal:["true","false","Some","None","Ok","Err"],built_in:o},illegal:""},r]}}, -grmr_scss:e=>{const n=te(e),t=se,a=re,i="@[a-z-]+",r={className:"variable", -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", -case_insensitive:!0,illegal:"[=/|']", -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{ -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", -begin:"\\b("+ae.join("|")+")\\b",relevance:0},{className:"selector-pseudo", -begin:":("+a.join("|")+")"},{className:"selector-pseudo", -begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/, -contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute", -begin:"\\b("+oe.join("|")+")\\b"},{ -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" -},{begin:/:/,end:/[;}{]/,relevance:0, -contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH] -},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{ -begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, -keyword:"and or not only",attribute:ie.join(" ")},contains:[{begin:i, -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" -},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE] -},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session", -aliases:["console","shellsession"],contains:[{className:"meta.prompt", -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, -subLanguage:"bash"}}]}),grmr_sql:e=>{ -const n=e.regex,t=e.COMMENT("--","$"),a=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],i=a,r=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!a.includes(e))),s={ -match:n.concat(/\b/,n.either(...i),/\s*\(/),relevance:0,keywords:{built_in:i}} -;function o(e){ -return n.concat(/\b/,n.either(...e.map((e=>e.replace(/\s+/,"\\s+")))),/\b/)} -const l={scope:"keyword", -match:o(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]), -relevance:0};return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ -$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t -;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) -})(r,{when:e=>e.length<3}),literal:["true","false","unknown"], -type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"], -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] -},contains:[{scope:"type", -match:o(["double precision","large object","with timezone","without timezone"]) -},l,s,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{ -begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{ -match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{scope:"operator", -match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}, -grmr_swift:e=>{const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/",{ -contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={match:[/\./,m(...ke,...xe)], -className:{2:"keyword"}},r={match:b(/\./,m(...Me)),relevance:0 -},s=Me.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{ -className:"keyword", -match:m(...Me.filter((e=>"string"!=typeof e)).concat(Oe).map(Ne),...xe)}]},l={ -$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Ce),literal:Ae},c=[i,r,o],g=[{ -match:b(/\./,m(...Te)),relevance:0},{className:"built_in", -match:b(/\b/,m(...Te),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{ -className:"operator",relevance:0,variants:[{match:Ie},{match:`\\.(\\.|${De})+`}] -}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0, -variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{ -match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/ -},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{ -match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}] -}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/) -}),w=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/ -}),v=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),w(e)] -}),N=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),w(e)]}),k={ -className:"string", -variants:[v(),v("#"),v("##"),v("###"),N(),N("#"),N("##"),N("###")] -},x=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0, -contains:[e.BACKSLASH_ESCAPE]}],O={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//, -contains:x},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t, -contains:[...x,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},A={ -scope:"regexp",variants:[M("###"),M("##"),M("#"),O]},S={match:b(/`/,$e,/`/) -},C=[S,{className:"variable",match:/\$\d+/},{className:"variable", -match:`\\$${Be}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{ -contains:[{begin:/\(/,end:/\)/,keywords:je,contains:[...p,f,k]}]}},{ -scope:"keyword",match:b(/@/,m(...ze),d(m(/\(/,/\s+/)))},{scope:"meta", -match:b(/@/,$e)}],R={match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type", -match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Be,"+") -},{className:"type",match:Fe,relevance:0},{match:/[?!]+/,relevance:0},{ -match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Fe)),relevance:0}]},D={ -begin://,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D) -;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{ -match:b($e,/\s*:/),keywords:"_|0",relevance:0 -},...a,A,...c,...g,...p,f,k,...C,...T,R]},L={begin://, -keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l, -contains:[{begin:m(d(b($e,/\s*:/)),d(b($e,/\s+/,$e,/\s*:/))),end:/:/, -relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params", -match:$e}]},...a,...c,...p,f,k,...T,R,I],endsParent:!0,illegal:/["']/},$={ -match:[/(func|macro)/,/\s+/,m(S.match,$e,Ie)],className:{1:"keyword", -3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},F={ -match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, -contains:[L,B,n],illegal:/\[|%/},z={match:[/operator/,/\s+/,Ie],className:{ -1:"keyword",3:"title"}},j={begin:[/precedencegroup/,/\s+/,Fe],className:{ -1:"keyword",3:"title"},contains:[R],keywords:[...Se,...Ae],end:/}/},U={ -begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,$e,/\s*/], -beginScope:{1:"keyword",3:"title.class"},keywords:l,contains:[L,...c,{begin:/:/, -end:/\{/,keywords:l,contains:[{scope:"title.class.inherited",match:Fe},...c], -relevance:0}]};for(const e of k.variants){ -const n=e.contains.find((e=>"interpol"===e.label));n.keywords=l -;const t=[...c,...g,...p,f,k,...C];n.contains=[...t,{begin:/\(/,end:/\)/, -contains:["self",...t]}]}return{name:"Swift",keywords:l,contains:[...a,$,F,{ -match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{ -1:"keyword",3:"keyword",5:"title.function"}},{match:[/class\b/,/\s+/,/var\b/], -scope:{1:"keyword",3:"keyword"}},U,z,j,{beginKeywords:"import",end:/$/, -contains:[...a],relevance:0},A,...c,...g,...p,f,k,...C,...T,R,I]}}, -grmr_typescript:e=>{ -const n=e.regex,t=ve(e),a=me,i=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],r={ -begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"} -},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{ -keyword:"interface extends",built_in:i},contains:[t.exports.CLASS_REFERENCE] -},o={$pattern:me, -keyword:pe.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]), -literal:_e,built_in:we.concat(i),"variable.language":ye},l={className:"meta", -begin:"@"+a},c=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n)) -;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} -;Object.assign(t.keywords,o),t.exports.PARAMS_CONTAINS.push(l) -;const d=t.contains.find((e=>"attr"===e.scope)),g=Object.assign({},d,{ -match:n.concat(a,n.lookahead(/\s*\?:/))}) -;return t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,d,g]), -t.contains=t.contains.concat([l,r,s,g]), -c(t,"shebang",e.SHEBANG()),c(t,"use_strict",{className:"meta",relevance:10, -begin:/^\s*['"]use strict['"]/ -}),t.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(t,{ -name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t},grmr_vbnet:e=>{ -const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={ -className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ -begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ -begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}] -},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] -}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) -;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, -classNameAliases:{label:"symbol"},keywords:{ -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", -literal:"true false nothing"}, -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0, -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ -className:"label",begin:/^\w+:/},o,l,{className:"meta", -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, -end:/$/,keywords:{ -keyword:"const disable else elseif enable end externalsource if region then"}, -contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/) -;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, -keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] -},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/], -className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ -match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ -begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", -3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, -className:"type"},{className:"keyword", -match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ -},{className:"number",relevance:0, -match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ -}]}},grmr_xml:e=>{ -const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={ -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/, -contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] -},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{ -className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={ -endsWithParent:!0,illegal:/`]+/}]}]}]};return{ -name:"HTML, XML", -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], -case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{ -className:"meta",begin://,contains:[i,r,o,s]}]}] -},e.COMMENT(//,{relevance:10}),{begin://, -relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, -relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{ -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", -begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{ -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ -className:"tag",begin:/<>|<\/>/},{className:"tag", -begin:n.concat(//,/>/,/\s/)))), -end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{ -className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ -className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} -},grmr_yaml:e=>{ -const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ -className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}], -contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{ -begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{variants:[{ -begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{ -begin:/[^\s,{}[\]]+/}]}),r={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n, -relevance:0},s={begin:/\{/,end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={ -begin:"\\[",end:"\\]",contains:[r],illegal:"\\n",relevance:0},l=[{ -className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{ -begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{ -begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta", -begin:"^---\\s*$",relevance:10},{className:"string", -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, -relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", -begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ -className:"number", -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,{ -className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/, -scope:"char.escape",relevance:0}]},a],c=[...l] -;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0, -aliases:["yml"],contains:l}}});const Pe=ne;for(const e of Object.keys(Ue)){ -const n=e.replace("grmr_","").replace("_","-");Pe.registerLanguage(n,Ue[e])} -return Pe}() -;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file diff --git a/Perlite/perlite/.js/jquery.min.js b/Perlite/perlite/.js/jquery.min.js deleted file mode 100644 index 7f37b5d..0000000 --- a/Perlite/perlite/.js/jquery.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 015?"\u2026"+e.slice(n-15,n):e.slice(0,n),a=o+15":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;const a=function(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?a(e.body[0]):e:"font"===e.type?a(e.body):e};var l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(i,(e=>s[e]))},hyphenate:function(e){return e.replace(o,"-$1").toLowerCase()},getBaseElem:a,isCharacterBox:function(e){const t=a(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){const t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?":"!==t[2]?null:/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}};const h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;const t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class m{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(const t in h)if(h.hasOwnProperty(t)){const r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:c(r)}}reportNonstrict(e,t,r){let o=this.strict;if("function"==typeof o&&(o=o(e,t,r)),o&&"ignore"!==o){if(!0===o||"error"===o)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===o?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+o+"': "+t+" ["+e+"]")}}useStrictBehavior(e,t,r){let n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))}isTrusted(e){if(e.url&&!e.protocol){const t=l.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}const t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)}}class p{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return u[d[this.id]]}sub(){return u[g[this.id]]}fracNum(){return u[f[this.id]]}fracDen(){return u[b[this.id]]}cramp(){return u[y[this.id]]}text(){return u[x[this.id]]}isTight(){return this.size>=2}}const u=[new p(0,0,!1),new p(1,0,!0),new p(2,1,!1),new p(3,1,!0),new p(4,2,!1),new p(5,2,!0),new p(6,3,!1),new p(7,3,!0)],d=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],f=[2,3,4,5,6,7,6,7],b=[3,3,5,5,7,7,7,7],y=[1,1,3,3,5,5,7,7],x=[0,1,2,3,2,3,2,3];var w={DISPLAY:u[0],TEXT:u[2],SCRIPT:u[4],SCRIPTSCRIPT:u[6]};const v=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];const k=[];function S(e){for(let t=0;t=k[t]&&e<=k[t+1])return!0;return!1}v.forEach((e=>e.blocks.forEach((e=>k.push(...e)))));const M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};class A{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createDocumentFragment();for(let t=0;te.toText())).join("")}}var T={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}};const B={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},C={"\xc5":"A","\xd0":"D","\xde":"o","\xe5":"a","\xf0":"d","\xfe":"o","\u0410":"A","\u0411":"B","\u0412":"B","\u0413":"F","\u0414":"A","\u0415":"E","\u0416":"K","\u0417":"3","\u0418":"N","\u0419":"N","\u041a":"K","\u041b":"N","\u041c":"M","\u041d":"H","\u041e":"O","\u041f":"N","\u0420":"P","\u0421":"C","\u0422":"T","\u0423":"y","\u0424":"O","\u0425":"X","\u0426":"U","\u0427":"h","\u0428":"W","\u0429":"W","\u042a":"B","\u042b":"X","\u042c":"B","\u042d":"3","\u042e":"X","\u042f":"R","\u0430":"a","\u0431":"b","\u0432":"a","\u0433":"r","\u0434":"y","\u0435":"e","\u0436":"m","\u0437":"e","\u0438":"n","\u0439":"n","\u043a":"n","\u043b":"n","\u043c":"m","\u043d":"n","\u043e":"o","\u043f":"n","\u0440":"p","\u0441":"c","\u0442":"o","\u0443":"y","\u0444":"b","\u0445":"x","\u0446":"n","\u0447":"n","\u0448":"w","\u0449":"w","\u044a":"a","\u044b":"m","\u044c":"a","\u044d":"e","\u044e":"m","\u044f":"r"};function N(e,t,r){if(!T[t])throw new Error("Font metrics not found for font: "+t+".");let n=e.charCodeAt(0),o=T[t][n];if(!o&&e[0]in C&&(n=C[e[0]].charCodeAt(0),o=T[t][n]),o||"text"!==r||S(n)&&(o=T[t][77]),o)return{depth:o[0],height:o[1],italic:o[2],skew:o[3],width:o[4]}}const q={};const I=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],R=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],H=function(e,t){return t.size<2?e:I[e-1][t.size-1]};class O{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||O.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=R[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){const t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(const r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return new O(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:H(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:R[e-1]})}havingBaseStyle(e){e=e||this.style.text();const t=H(O.BASESIZE,e);return this.size===t&&this.textSize===O.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){let e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==O.BASESIZE?["sizing","reset-size"+this.size,"size"+O.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=function(e){let t;if(t=e>=5?0:e>=3?1:2,!q[t]){const e=q[t]={cssEmPerMu:B.quad[t]/18};for(const r in B)B.hasOwnProperty(r)&&(e[r]=B[r][t])}return q[t]}(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}O.BASESIZE=6;var E=O;const L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},V=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},P=function(e,t){let r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{let o;if(o=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=o.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=o.fontMetrics().quad}o!==t&&(r*=o.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},F=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((e=>e)).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");const e=t.getColor();e&&(this.style.color=e)}},Y=function(e){const t=document.createElement(e);t.className=G(this.classes);for(const e in this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);for(const e in this.attributes)this.attributes.hasOwnProperty(e)&&t.setAttribute(e,this.attributes[e]);for(let e=0;e/=\x00-\x1f]/,W=function(e){let t="<"+e;this.classes.length&&(t+=' class="'+l.escape(G(this.classes))+'"');let r="";for(const e in this.style)this.style.hasOwnProperty(e)&&(r+=l.hyphenate(e)+":"+this.style[e]+";");r&&(t+=' style="'+l.escape(r)+'"');for(const e in this.attributes)if(this.attributes.hasOwnProperty(e)){if(X.test(e))throw new n("Invalid attribute name '"+e+"'");t+=" "+e+'="'+l.escape(this.attributes[e])+'"'}t+=">";for(let e=0;e",t};class _{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return Y.call(this,"span")}toMarkup(){return W.call(this,"span")}}class j{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return l.contains(this.classes,e)}toNode(){return Y.call(this,"a")}toMarkup(){return W.call(this,"a")}}class ${constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(const t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){let e=''+l.escape(this.alt)+'=n[0]&&e<=n[1])return r.name}}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=Z[this.text])}hasClass(e){return l.contains(this.classes,e)}toNode(){const e=document.createTextNode(this.text);let t=null;this.italic>0&&(t=document.createElement("span"),t.style.marginRight=F(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=G(this.classes));for(const e in this.style)this.style.hasOwnProperty(e)&&(t=t||document.createElement("span"),t.style[e]=this.style[e]);return t?(t.appendChild(e),t):e}toMarkup(){let e=!1,t="0&&(r+="margin-right:"+this.italic+"em;");for(const e in this.style)this.style.hasOwnProperty(e)&&(r+=l.hyphenate(e)+":"+this.style[e]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');const n=l.escape(this.text);return e?(t+=">",t+=n,t+="
",t):n}}class J{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(let t=0;t':''}}class ee{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){const e=document.createElementNS("http://www.w3.org/2000/svg","line");for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){let e="","\\gt",!0),ie(ae,he,xe,"\u2208","\\in",!0),ie(ae,he,xe,"\ue020","\\@not"),ie(ae,he,xe,"\u2282","\\subset",!0),ie(ae,he,xe,"\u2283","\\supset",!0),ie(ae,he,xe,"\u2286","\\subseteq",!0),ie(ae,he,xe,"\u2287","\\supseteq",!0),ie(ae,ce,xe,"\u2288","\\nsubseteq",!0),ie(ae,ce,xe,"\u2289","\\nsupseteq",!0),ie(ae,he,xe,"\u22a8","\\models"),ie(ae,he,xe,"\u2190","\\leftarrow",!0),ie(ae,he,xe,"\u2264","\\le"),ie(ae,he,xe,"\u2264","\\leq",!0),ie(ae,he,xe,"<","\\lt",!0),ie(ae,he,xe,"\u2192","\\rightarrow",!0),ie(ae,he,xe,"\u2192","\\to"),ie(ae,ce,xe,"\u2271","\\ngeq",!0),ie(ae,ce,xe,"\u2270","\\nleq",!0),ie(ae,he,we,"\xa0","\\ "),ie(ae,he,we,"\xa0","\\space"),ie(ae,he,we,"\xa0","\\nobreakspace"),ie(le,he,we,"\xa0","\\ "),ie(le,he,we,"\xa0"," "),ie(le,he,we,"\xa0","\\space"),ie(le,he,we,"\xa0","\\nobreakspace"),ie(ae,he,we,null,"\\nobreak"),ie(ae,he,we,null,"\\allowbreak"),ie(ae,he,ye,",",","),ie(ae,he,ye,";",";"),ie(ae,ce,pe,"\u22bc","\\barwedge",!0),ie(ae,ce,pe,"\u22bb","\\veebar",!0),ie(ae,he,pe,"\u2299","\\odot",!0),ie(ae,he,pe,"\u2295","\\oplus",!0),ie(ae,he,pe,"\u2297","\\otimes",!0),ie(ae,he,ve,"\u2202","\\partial",!0),ie(ae,he,pe,"\u2298","\\oslash",!0),ie(ae,ce,pe,"\u229a","\\circledcirc",!0),ie(ae,ce,pe,"\u22a1","\\boxdot",!0),ie(ae,he,pe,"\u25b3","\\bigtriangleup"),ie(ae,he,pe,"\u25bd","\\bigtriangledown"),ie(ae,he,pe,"\u2020","\\dagger"),ie(ae,he,pe,"\u22c4","\\diamond"),ie(ae,he,pe,"\u22c6","\\star"),ie(ae,he,pe,"\u25c3","\\triangleleft"),ie(ae,he,pe,"\u25b9","\\triangleright"),ie(ae,he,be,"{","\\{"),ie(le,he,ve,"{","\\{"),ie(le,he,ve,"{","\\textbraceleft"),ie(ae,he,ue,"}","\\}"),ie(le,he,ve,"}","\\}"),ie(le,he,ve,"}","\\textbraceright"),ie(ae,he,be,"{","\\lbrace"),ie(ae,he,ue,"}","\\rbrace"),ie(ae,he,be,"[","\\lbrack",!0),ie(le,he,ve,"[","\\lbrack",!0),ie(ae,he,ue,"]","\\rbrack",!0),ie(le,he,ve,"]","\\rbrack",!0),ie(ae,he,be,"(","\\lparen",!0),ie(ae,he,ue,")","\\rparen",!0),ie(le,he,ve,"<","\\textless",!0),ie(le,he,ve,">","\\textgreater",!0),ie(ae,he,be,"\u230a","\\lfloor",!0),ie(ae,he,ue,"\u230b","\\rfloor",!0),ie(ae,he,be,"\u2308","\\lceil",!0),ie(ae,he,ue,"\u2309","\\rceil",!0),ie(ae,he,ve,"\\","\\backslash"),ie(ae,he,ve,"\u2223","|"),ie(ae,he,ve,"\u2223","\\vert"),ie(le,he,ve,"|","\\textbar",!0),ie(ae,he,ve,"\u2225","\\|"),ie(ae,he,ve,"\u2225","\\Vert"),ie(le,he,ve,"\u2225","\\textbardbl"),ie(le,he,ve,"~","\\textasciitilde"),ie(le,he,ve,"\\","\\textbackslash"),ie(le,he,ve,"^","\\textasciicircum"),ie(ae,he,xe,"\u2191","\\uparrow",!0),ie(ae,he,xe,"\u21d1","\\Uparrow",!0),ie(ae,he,xe,"\u2193","\\downarrow",!0),ie(ae,he,xe,"\u21d3","\\Downarrow",!0),ie(ae,he,xe,"\u2195","\\updownarrow",!0),ie(ae,he,xe,"\u21d5","\\Updownarrow",!0),ie(ae,he,fe,"\u2210","\\coprod"),ie(ae,he,fe,"\u22c1","\\bigvee"),ie(ae,he,fe,"\u22c0","\\bigwedge"),ie(ae,he,fe,"\u2a04","\\biguplus"),ie(ae,he,fe,"\u22c2","\\bigcap"),ie(ae,he,fe,"\u22c3","\\bigcup"),ie(ae,he,fe,"\u222b","\\int"),ie(ae,he,fe,"\u222b","\\intop"),ie(ae,he,fe,"\u222c","\\iint"),ie(ae,he,fe,"\u222d","\\iiint"),ie(ae,he,fe,"\u220f","\\prod"),ie(ae,he,fe,"\u2211","\\sum"),ie(ae,he,fe,"\u2a02","\\bigotimes"),ie(ae,he,fe,"\u2a01","\\bigoplus"),ie(ae,he,fe,"\u2a00","\\bigodot"),ie(ae,he,fe,"\u222e","\\oint"),ie(ae,he,fe,"\u222f","\\oiint"),ie(ae,he,fe,"\u2230","\\oiiint"),ie(ae,he,fe,"\u2a06","\\bigsqcup"),ie(ae,he,fe,"\u222b","\\smallint"),ie(le,he,de,"\u2026","\\textellipsis"),ie(ae,he,de,"\u2026","\\mathellipsis"),ie(le,he,de,"\u2026","\\ldots",!0),ie(ae,he,de,"\u2026","\\ldots",!0),ie(ae,he,de,"\u22ef","\\@cdots",!0),ie(ae,he,de,"\u22f1","\\ddots",!0),ie(ae,he,ve,"\u22ee","\\varvdots"),ie(le,he,ve,"\u22ee","\\varvdots"),ie(ae,he,me,"\u02ca","\\acute"),ie(ae,he,me,"\u02cb","\\grave"),ie(ae,he,me,"\xa8","\\ddot"),ie(ae,he,me,"~","\\tilde"),ie(ae,he,me,"\u02c9","\\bar"),ie(ae,he,me,"\u02d8","\\breve"),ie(ae,he,me,"\u02c7","\\check"),ie(ae,he,me,"^","\\hat"),ie(ae,he,me,"\u20d7","\\vec"),ie(ae,he,me,"\u02d9","\\dot"),ie(ae,he,me,"\u02da","\\mathring"),ie(ae,he,ge,"\ue131","\\@imath"),ie(ae,he,ge,"\ue237","\\@jmath"),ie(ae,he,ve,"\u0131","\u0131"),ie(ae,he,ve,"\u0237","\u0237"),ie(le,he,ve,"\u0131","\\i",!0),ie(le,he,ve,"\u0237","\\j",!0),ie(le,he,ve,"\xdf","\\ss",!0),ie(le,he,ve,"\xe6","\\ae",!0),ie(le,he,ve,"\u0153","\\oe",!0),ie(le,he,ve,"\xf8","\\o",!0),ie(le,he,ve,"\xc6","\\AE",!0),ie(le,he,ve,"\u0152","\\OE",!0),ie(le,he,ve,"\xd8","\\O",!0),ie(le,he,me,"\u02ca","\\'"),ie(le,he,me,"\u02cb","\\`"),ie(le,he,me,"\u02c6","\\^"),ie(le,he,me,"\u02dc","\\~"),ie(le,he,me,"\u02c9","\\="),ie(le,he,me,"\u02d8","\\u"),ie(le,he,me,"\u02d9","\\."),ie(le,he,me,"\xb8","\\c"),ie(le,he,me,"\u02da","\\r"),ie(le,he,me,"\u02c7","\\v"),ie(le,he,me,"\xa8",'\\"'),ie(le,he,me,"\u02dd","\\H"),ie(le,he,me,"\u25ef","\\textcircled");const ke={"--":!0,"---":!0,"``":!0,"''":!0};ie(le,he,ve,"\u2013","--",!0),ie(le,he,ve,"\u2013","\\textendash"),ie(le,he,ve,"\u2014","---",!0),ie(le,he,ve,"\u2014","\\textemdash"),ie(le,he,ve,"\u2018","`",!0),ie(le,he,ve,"\u2018","\\textquoteleft"),ie(le,he,ve,"\u2019","'",!0),ie(le,he,ve,"\u2019","\\textquoteright"),ie(le,he,ve,"\u201c","``",!0),ie(le,he,ve,"\u201c","\\textquotedblleft"),ie(le,he,ve,"\u201d","''",!0),ie(le,he,ve,"\u201d","\\textquotedblright"),ie(ae,he,ve,"\xb0","\\degree",!0),ie(le,he,ve,"\xb0","\\degree"),ie(le,he,ve,"\xb0","\\textdegree",!0),ie(ae,he,ve,"\xa3","\\pounds"),ie(ae,he,ve,"\xa3","\\mathsterling",!0),ie(le,he,ve,"\xa3","\\pounds"),ie(le,he,ve,"\xa3","\\textsterling",!0),ie(ae,ce,ve,"\u2720","\\maltese"),ie(le,ce,ve,"\u2720","\\maltese");const Se='0123456789/@."';for(let e=0;e<14;e++){const t=Se.charAt(e);ie(ae,he,ve,t,t)}const Me='0123456789!@*()-=+";:?/.,';for(let e=0;e<25;e++){const t=Me.charAt(e);ie(le,he,ve,t,t)}const ze="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let e=0;e<52;e++){const t=ze.charAt(e);ie(ae,he,ge,t,t),ie(le,he,ve,t,t)}ie(ae,ce,ve,"C","\u2102"),ie(le,ce,ve,"C","\u2102"),ie(ae,ce,ve,"H","\u210d"),ie(le,ce,ve,"H","\u210d"),ie(ae,ce,ve,"N","\u2115"),ie(le,ce,ve,"N","\u2115"),ie(ae,ce,ve,"P","\u2119"),ie(le,ce,ve,"P","\u2119"),ie(ae,ce,ve,"Q","\u211a"),ie(le,ce,ve,"Q","\u211a"),ie(ae,ce,ve,"R","\u211d"),ie(le,ce,ve,"R","\u211d"),ie(ae,ce,ve,"Z","\u2124"),ie(le,ce,ve,"Z","\u2124"),ie(ae,he,ge,"h","\u210e"),ie(le,he,ge,"h","\u210e");let Ae="";for(let e=0;e<52;e++){const t=ze.charAt(e);Ae=String.fromCharCode(55349,56320+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56372+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56424+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56580+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56684+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56736+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56788+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56840+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56944+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),e<26&&(Ae=String.fromCharCode(55349,56632+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,56476+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae))}Ae=String.fromCharCode(55349,56668),ie(ae,he,ge,"k",Ae),ie(le,he,ve,"k",Ae);for(let e=0;e<10;e++){const t=e.toString();Ae=String.fromCharCode(55349,57294+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,57314+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,57324+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae),Ae=String.fromCharCode(55349,57334+e),ie(ae,he,ge,t,Ae),ie(le,he,ve,t,Ae)}const Te="\xd0\xde\xfe";for(let e=0;e<3;e++){const t=Te.charAt(e);ie(ae,he,ge,t,t),ie(le,he,ve,t,t)}const Be=[["mathbf","textbf","Main-Bold"],["mathbf","textbf","Main-Bold"],["mathnormal","textit","Math-Italic"],["mathnormal","textit","Math-Italic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["mathscr","textscr","Script-Regular"],["","",""],["","",""],["","",""],["mathfrak","textfrak","Fraktur-Regular"],["mathfrak","textfrak","Fraktur-Regular"],["mathbb","textbb","AMS-Regular"],["mathbb","textbb","AMS-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathitsf","textitsf","SansSerif-Italic"],["mathitsf","textitsf","SansSerif-Italic"],["","",""],["","",""],["mathtt","texttt","Typewriter-Regular"],["mathtt","texttt","Typewriter-Regular"]],Ce=[["mathbf","textbf","Main-Bold"],["","",""],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathtt","texttt","Typewriter-Regular"]],Ne=function(e,t,r){return se[r][e]&&se[r][e].replace&&(e=se[r][e].replace),{value:e,metrics:N(e,t,r)}},qe=function(e,t,r,n,o){const s=Ne(e,t,r),i=s.metrics;let a;if(e=s.value,i){let t=i.italic;("text"===r||n&&"mathit"===n.font)&&(t=0),a=new K(e,i.height,i.depth,t,i.skew,i.width,o)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+e+"' in style '"+t+"' and mode '"+r+"'"),a=new K(e,0,0,0,0,0,o);if(n){a.maxFontSize=n.sizeMultiplier,n.style.isTight()&&a.classes.push("mtight");const e=n.getColor();e&&(a.style.color=e)}return a},Ie=(e,t)=>{if(G(e.classes)!==G(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){const t=e.classes[0];if("mbin"===t||"mord"===t)return!1}for(const r in e.style)if(e.style.hasOwnProperty(r)&&e.style[r]!==t.style[r])return!1;for(const r in t.style)if(t.style.hasOwnProperty(r)&&e.style[r]!==t.style[r])return!1;return!0},Re=function(e){let t=0,r=0,n=0;for(let o=0;ot&&(t=s.height),s.depth>r&&(r=s.depth),s.maxFontSize>n&&(n=s.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},He=function(e,t,r,n){const o=new _(e,t,r,n);return Re(o),o},Oe=(e,t,r,n)=>new _(e,t,r,n),Ee=function(e){const t=new A(e);return Re(t),t},Le=function(e,t,r){let n,o="";switch(e){case"amsrm":o="AMS";break;case"textrm":o="Main";break;case"textsf":o="SansSerif";break;case"texttt":o="Typewriter";break;default:o=e}return n="textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular",o+"-"+n},De={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ve={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]};var Pe={fontMap:De,makeSymbol:qe,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Ne(e,"Main-Bold",t).metrics?qe(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===se[t][e].font?qe(e,"Main-Regular",t,r,n):qe(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:He,makeSvgSpan:Oe,makeLineSpan:function(e,t,r){const n=He([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=F(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){const o=new j(e,t,r,n);return Re(o),o},makeFragment:Ee,wrapFragment:function(e,t){return e instanceof A?He([],[e],t):e},makeVList:function(e,t){const{children:r,depth:n}=function(e){if("individualShift"===e.positionType){const t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth;let o=n;for(let e=1;e0)return qe(s,h,o,t,i.concat(c));if(l){let e,n;if("boldsymbol"===l){const t=function(e,t,r,n,o){return"textord"!==o&&Ne(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}}(s,o,0,0,r);e=t.fontName,n=[t.fontClass]}else a?(e=De[l].fontName,n=[l]):(e=Le(l,t.fontWeight,t.fontShape),n=[l,t.fontWeight,t.fontShape]);if(Ne(s,e,o).metrics)return qe(s,e,o,t,i.concat(n));if(ke.hasOwnProperty(s)&&"Typewriter"===e.slice(0,10)){const r=[];for(let a=0;a{const r=He(["mspace"],[],t),n=P(e,t);return r.style.marginRight=F(n),r},staticSvg:function(e,t){const[r,n,o]=Ve[e],s=new Q(r),i=new J([s],{width:F(n),height:F(o),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+1e3*o,preserveAspectRatio:"xMinYMin"}),a=Oe(["overlay"],[i],t);return a.height=o,a.style.height=F(o),a.style.width=F(n),a},svgData:Ve,tryCombineChars:e=>{for(let t=0;t{const r=t.classes[0],n=e.classes[0];"mbin"===r&&l.contains(tt,n)?t.classes[0]="mord":"mbin"===n&&l.contains(et,r)&&(e.classes[0]="mord")}),{node:i},a,h),st(o,((e,t)=>{const r=lt(t),n=lt(e),o=r&&n?e.hasClass("mtight")?Xe[r][n]:Ye[r][n]:null;if(o)return Pe.makeGlue(o,s)}),{node:i},a,h),o},st=function(e,t,r,n,o){n&&e.push(n);let s=0;for(;sr=>{e.splice(t+1,0,r),s++})(s)}n&&e.pop()},it=function(e){return e instanceof A||e instanceof j||e instanceof _&&e.hasClass("enclosing")?e:null},at=function(e,t){const r=it(e);if(r){const e=r.children;if(e.length){if("right"===t)return at(e[e.length-1],"right");if("left"===t)return at(e[0],"left")}}return e},lt=function(e,t){return e?(t&&(e=at(e,t)),nt[e.classes[0]]||null):null},ht=function(e,t){const r=["nulldelimiter"].concat(e.baseSizingClasses());return Qe(t.concat(r))},ct=function(e,t,r){if(!e)return Qe();if(_e[e.type]){let n=_e[e.type](e,t);if(r&&t.size!==r.size){n=Qe(t.sizingClasses(r),[n],t);const e=t.sizeMultiplier/r.sizeMultiplier;n.height*=e,n.depth*=e}return n}throw new n("Got group of unknown type: '"+e.type+"'")};function mt(e,t){const r=Qe(["base"],e,t),n=Qe(["strut"]);return n.style.height=F(r.height+r.depth),r.depth&&(n.style.verticalAlign=F(-r.depth)),r.children.unshift(n),r}function pt(e,t){let r=null;1===e.length&&"tag"===e[0].type&&(r=e[0].tag,e=e[0].body);const n=ot(e,t,"root");let o;2===n.length&&n[1].hasClass("tag")&&(o=n.pop());const s=[];let i,a=[];for(let e=0;e0&&(s.push(mt(a,t)),a=[]),s.push(n[e]));a.length>0&&s.push(mt(a,t)),r?(i=mt(ot(r,t,!0)),i.classes=["tag"],s.push(i)):o&&s.push(o);const l=Qe(["katex-html"],s);if(l.setAttribute("aria-hidden","true"),i){const e=i.children[0];e.style.height=F(l.height+l.depth),l.depth&&(e.style.verticalAlign=F(-l.depth))}return l}function ut(e){return new A(e)}class dt{constructor(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){const e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(const t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(let t=0;t0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(let t=0;t",e}toText(){return this.children.map((e=>e.toText())).join("")}}class gt{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return l.escape(this.toText())}toText(){return this.text}}var ft={MathNode:dt,TextNode:gt,SpaceNode:class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}toNode(){if(this.character)return document.createTextNode(this.character);{const e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",F(this.width)),e}}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},newDocumentFragment:ut};const bt=function(e,t,r){return!se[t][e]||!se[t][e].replace||55349===e.charCodeAt(0)||ke.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=se[t][e].replace),new ft.TextNode(e)},yt=function(e){return 1===e.length?e[0]:new ft.MathNode("mrow",e)},xt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";const r=t.font;if(!r||"mathnormal"===r)return null;const n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathsfit"===r)return"sans-serif-italic";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";let o=e.text;if(l.contains(["\\imath","\\jmath"],o))return null;se[n][o]&&se[n][o].replace&&(o=se[n][o].replace);return N(o,Pe.fontMap[r].fontName,n)?Pe.fontMap[r].variant:null};function wt(e){if(!e)return!1;if("mi"===e.type&&1===e.children.length){const t=e.children[0];return t instanceof gt&&"."===t.text}if("mo"===e.type&&1===e.children.length&&"true"===e.getAttribute("separator")&&"0em"===e.getAttribute("lspace")&&"0em"===e.getAttribute("rspace")){const t=e.children[0];return t instanceof gt&&","===t.text}return!1}const vt=function(e,t,r){if(1===e.length){const n=St(e[0],t);return r&&n instanceof dt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}const n=[];let o;for(let r=0;r=1&&("mn"===o.type||wt(o))){const e=s.children[0];e instanceof dt&&"mn"===e.type&&(e.children=[...o.children,...e.children],n.pop())}else if("mi"===o.type&&1===o.children.length){const e=o.children[0];if(e instanceof gt&&"\u0338"===e.text&&("mo"===s.type||"mi"===s.type||"mn"===s.type)){const e=s.children[0];e instanceof gt&&e.text.length>0&&(e.text=e.text.slice(0,1)+"\u0338"+e.text.slice(1),n.pop())}}}n.push(s),o=s}return n},kt=function(e,t,r){return yt(vt(e,t,r))},St=function(e,t){if(!e)return new ft.MathNode("mrow");if(je[e.type]){return je[e.type](e,t)}throw new n("Got group of unknown type: '"+e.type+"'")};function Mt(e,t,r,n,o){const s=vt(e,r);let i;i=1===s.length&&s[0]instanceof dt&&l.contains(["mrow","mtable"],s[0].type)?s[0]:new ft.MathNode("mrow",s);const a=new ft.MathNode("annotation",[new ft.TextNode(t)]);a.setAttribute("encoding","application/x-tex");const h=new ft.MathNode("semantics",[i,a]),c=new ft.MathNode("math",[h]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");const m=o?"katex":"katex-mathml";return Pe.makeSpan([m],[c])}const zt=function(e){return new E({style:e.displayMode?w.DISPLAY:w.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},At=function(e,t){if(t.displayMode){const r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Pe.makeSpan(r,[e])}return e},Tt=function(e,t,r){const n=zt(r);let o;if("mathml"===r.output)return Mt(e,t,n,r.displayMode,!0);if("html"===r.output){const t=pt(e,n);o=Pe.makeSpan(["katex"],[t])}else{const s=Mt(e,t,n,r.displayMode,!1),i=pt(e,n);o=Pe.makeSpan(["katex"],[s,i])}return At(o,r)};const Bt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Ct={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]};var Nt=function(e,t,r,n,o){let s;const i=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(s=Pe.makeSpan(["stretchy",t],[],o),"fbox"===t){const e=o.color&&o.getColor();e&&(s.style.borderColor=e)}}else{const e=[];/^[bx]cancel$/.test(t)&&e.push(new ee({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&e.push(new ee({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));const r=new J(e,{width:"100%",height:F(i)});s=Pe.makeSvgSpan([],[r],o)}return s.height=i,s.style.height=F(i),s},qt=function(e){const t=new ft.MathNode("mo",[new ft.TextNode(Bt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},It=function(e,t){const{span:r,minWidth:n,height:o}=function(){let r=4e5;const n=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){const s="ordgroup"===(o=e.base).type?o.body.length:1;let i,a,l;if(s>5)"widehat"===n||"widecheck"===n?(i=420,r=2364,l=.42,a=n+"4"):(i=312,r=2340,l=.34,a="tilde4");else{const e=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][e],i=[0,239,300,360,420][e],l=[0,.24,.3,.3,.36,.42][e],a=n+e):(r=[0,600,1033,2339,2340][e],i=[0,260,286,306,312][e],l=[0,.26,.286,.3,.306,.34][e],a="tilde"+e)}const h=new Q(a),c=new J([h],{width:"100%",height:F(l),viewBox:"0 0 "+r+" "+i,preserveAspectRatio:"none"});return{span:Pe.makeSvgSpan([],[c],t),minWidth:0,height:l}}{const e=[],o=Ct[n],[s,i,a]=o,l=a/1e3,h=s.length;let c,m;if(1===h){c=["hide-tail"],m=[o[3]]}else if(2===h)c=["halfarrow-left","halfarrow-right"],m=["xMinYMin","xMaxYMin"];else{if(3!==h)throw new Error("Correct katexImagesData or update code here to support\n "+h+" children.");c=["brace-left","brace-center","brace-right"],m=["xMinYMin","xMidYMin","xMaxYMin"]}for(let n=0;n0&&(r.style.minWidth=F(n)),r};function Rt(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Ht(e){const t=Ot(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Ot(e){return e&&("atom"===e.type||ne.hasOwnProperty(e.type))?e:null}const Et=(e,t)=>{let r,n,o;e&&"supsub"===e.type?(n=Rt(e.base,"accent"),r=n.base,e.base=r,o=function(e){if(e instanceof _)return e;throw new Error("Expected span but got "+String(e)+".")}(ct(e,t)),e.base=n):(n=Rt(e,"accent"),r=n.base);const s=ct(r,t.havingCrampedStyle());let i=0;if(n.isShifty&&l.isCharacterBox(r)){const e=l.getBaseElem(r);i=te(ct(e,t.havingCrampedStyle())).skew}const a="\\c"===n.label;let h,c=a?s.height+s.depth:Math.min(s.height,t.fontMetrics().xHeight);if(n.isStretchy)h=It(n,t),h=Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:i>0?{width:"calc(100% - "+F(2*i)+")",marginLeft:F(2*i)}:void 0}]},t);else{let e,r;"\\vec"===n.label?(e=Pe.staticSvg("vec",t),r=Pe.svgData.vec[1]):(e=Pe.makeOrd({mode:n.mode,text:n.label},t,"textord"),e=te(e),e.italic=0,r=e.width,a&&(c+=e.depth)),h=Pe.makeSpan(["accent-body"],[e]);const o="\\textcircled"===n.label;o&&(h.classes.push("accent-full"),c=s.height);let l=i;o||(l-=r/2),h.style.left=F(l),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-c},{type:"elem",elem:h}]},t)}const m=Pe.makeSpan(["mord","accent"],[h],t);return o?(o.children[0]=m,o.height=Math.max(m.height,o.height),o.classes[0]="mord",o):m},Lt=(e,t)=>{const r=e.isStretchy?qt(e.label):new ft.MathNode("mo",[bt(e.label,e.mode)]),n=new ft.MathNode("mover",[St(e.base,t),r]);return n.setAttribute("accent","true"),n},Dt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((e=>"\\"+e)).join("|"));$e({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{const r=Ke(t[0]),n=!Dt.test(e.funcName),o=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:o,base:r}},htmlBuilder:Et,mathmlBuilder:Lt}),$e({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{const r=t[0];let n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Et,mathmlBuilder:Lt}),$e({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:o}},htmlBuilder:(e,t)=>{const r=ct(e.base,t),n=It(e,t),o="\\utilde"===e.label?.12:0,s=Pe.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:o},{type:"elem",elem:r}]},t);return Pe.makeSpan(["mord","accentunder"],[s],t)},mathmlBuilder:(e,t)=>{const r=qt(e.label),n=new ft.MathNode("munder",[St(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});const Vt=e=>{const t=new ft.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};$e({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){let{parser:n,funcName:o}=e;return{type:"xArrow",mode:n.mode,label:o,body:t[0],below:r[0]}},htmlBuilder(e,t){const r=t.style;let n=t.havingStyle(r.sup());const o=Pe.wrapFragment(ct(e.body,n,t),t),s="\\x"===e.label.slice(0,2)?"x":"cd";let i;o.classes.push(s+"-arrow-pad"),e.below&&(n=t.havingStyle(r.sub()),i=Pe.wrapFragment(ct(e.below,n,t),t),i.classes.push(s+"-arrow-pad"));const a=It(e,t),l=-t.fontMetrics().axisHeight+.5*a.height;let h,c=-t.fontMetrics().axisHeight-.5*a.height-.111;if((o.depth>.25||"\\xleftequilibrium"===e.label)&&(c-=o.depth),i){const e=-t.fontMetrics().axisHeight+i.height+.5*a.height+.111;h=Pe.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:c},{type:"elem",elem:a,shift:l},{type:"elem",elem:i,shift:e}]},t)}else h=Pe.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:c},{type:"elem",elem:a,shift:l}]},t);return h.children[0].children[0].children[1].classes.push("svg-align"),Pe.makeSpan(["mrel","x-arrow"],[h],t)},mathmlBuilder(e,t){const r=qt(e.label);let n;if(r.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){const o=Vt(St(e.body,t));if(e.below){const s=Vt(St(e.below,t));n=new ft.MathNode("munderover",[r,s,o])}else n=new ft.MathNode("mover",[r,o])}else if(e.below){const o=Vt(St(e.below,t));n=new ft.MathNode("munder",[r,o])}else n=Vt(),n=new ft.MathNode("mover",[r,n]);return n}});const Pt=Pe.makeSpan;function Ft(e,t){const r=ot(e.body,t,!0);return Pt([e.mclass],r,t)}function Gt(e,t){let r;const n=vt(e.body,t);return"minner"===e.mclass?r=new ft.MathNode("mpadded",n):"mord"===e.mclass?e.isCharacterBox?(r=n[0],r.type="mi"):r=new ft.MathNode("mi",n):(e.isCharacterBox?(r=n[0],r.type="mo"):r=new ft.MathNode("mo",n),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}$e({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:Je(o),isCharacterBox:l.isCharacterBox(o)}},htmlBuilder:Ft,mathmlBuilder:Gt});const Ut=e=>{const t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};$e({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){let{parser:r}=e;return{type:"mclass",mode:r.mode,mclass:Ut(t[0]),body:Je(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),$e({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){let{parser:r,funcName:n}=e;const o=t[1],s=t[0];let i;i="\\stackrel"!==n?Ut(o):"mrel";const a={type:"op",mode:o.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==n,body:Je(o)},h={type:"supsub",mode:s.mode,base:a,sup:"\\underset"===n?null:s,sub:"\\underset"===n?s:null};return{type:"mclass",mode:r.mode,mclass:i,body:[h],isCharacterBox:l.isCharacterBox(h)}},htmlBuilder:Ft,mathmlBuilder:Gt}),$e({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"pmb",mode:r.mode,mclass:Ut(t[0]),body:Je(t[0])}},htmlBuilder(e,t){const r=ot(e.body,t,!0),n=Pe.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(e,t){const r=vt(e.body,t),n=new ft.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});const Yt={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Xt=e=>"textord"===e.type&&"@"===e.text;function Wt(e,t,r){const n=Yt[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{const e={type:"atom",text:n,mode:"math",family:"rel"},o={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[e],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[o],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{const e={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[e],[])}default:return{type:"textord",text:" ",mode:"math"}}}$e({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder(e,t){const r=t.havingStyle(t.style.sup()),n=Pe.wrapFragment(ct(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=F(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(e,t){let r=new ft.MathNode("mrow",[St(e.label,t)]);return r=new ft.MathNode("mpadded",[r]),r.setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new ft.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),$e({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){let{parser:r}=e;return{type:"cdlabelparent",mode:r.mode,fragment:t[0]}},htmlBuilder(e,t){const r=Pe.wrapFragment(ct(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(e,t){return new ft.MathNode("mrow",[St(e.fragment,t)])}}),$e({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;const o=Rt(t[0],"ordgroup").body;let s="";for(let e=0;e=1114111)throw new n("\\@char with invalid code point "+s);return a<=65535?i=String.fromCharCode(a):(a-=65536,i=String.fromCharCode(55296+(a>>10),56320+(1023&a))),{type:"textord",mode:r.mode,text:i}}});const _t=(e,t)=>{const r=ot(e.body,t.withColor(e.color),!1);return Pe.makeFragment(r)},jt=(e,t)=>{const r=vt(e.body,t.withColor(e.color)),n=new ft.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};$e({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){let{parser:r}=e;const n=Rt(t[0],"color-token").color,o=t[1];return{type:"color",mode:r.mode,color:n,body:Je(o)}},htmlBuilder:_t,mathmlBuilder:jt}),$e({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){let{parser:r,breakOnTokenText:n}=e;const o=Rt(t[0],"color-token").color;r.gullet.macros.set("\\current@color",o);const s=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:o,body:s}},htmlBuilder:_t,mathmlBuilder:jt}),$e({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){let{parser:n}=e;const o="["===n.gullet.future().text?n.parseSizeGroup(!0):null,s=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:s,size:o&&Rt(o,"size").value}},htmlBuilder(e,t){const r=Pe.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=F(P(e.size,t)))),r},mathmlBuilder(e,t){const r=new ft.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",F(P(e.size,t)))),r}});const $t={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Zt=e=>{const t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},Kt=(e,t,r,n)=>{let o=e.gullet.macros.get(r.text);null==o&&(r.noexpand=!0,o={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,o,n)};$e({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){let{parser:t,funcName:r}=e;t.consumeSpaces();const o=t.fetch();if($t[o.text])return"\\global"!==r&&"\\\\globallong"!==r||(o.text=$t[o.text]),Rt(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",o)}}),$e({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e,o=t.gullet.popToken();const s=o.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new n("Expected a control sequence",o);let i,a=0;const l=[[]];for(;"{"!==t.gullet.future().text;)if(o=t.gullet.popToken(),"#"===o.text){if("{"===t.gullet.future().text){i=t.gullet.future(),l[a].push("{");break}if(o=t.gullet.popToken(),!/^[1-9]$/.test(o.text))throw new n('Invalid argument number "'+o.text+'"');if(parseInt(o.text)!==a+1)throw new n('Argument number "'+o.text+'" out of order');a++,l.push([])}else{if("EOF"===o.text)throw new n("Expected a macro definition");l[a].push(o.text)}let{tokens:h}=t.gullet.consumeArg();return i&&h.unshift(i),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h),h.reverse()),t.gullet.macros.set(s,{tokens:h,numArgs:a,delimiters:l},r===$t[r]),{type:"internal",mode:t.mode}}}),$e({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e;const n=Zt(t.gullet.popToken());t.gullet.consumeSpaces();const o=(e=>{let t=e.gullet.popToken();return"="===t.text&&(t=e.gullet.popToken()," "===t.text&&(t=e.gullet.popToken())),t})(t);return Kt(t,n,o,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),$e({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e;const n=Zt(t.gullet.popToken()),o=t.gullet.popToken(),s=t.gullet.popToken();return Kt(t,n,s,"\\\\globalfuture"===r),t.gullet.pushToken(s),t.gullet.pushToken(o),{type:"internal",mode:t.mode}}});const Jt=function(e,t,r){const n=N(se.math[e]&&se.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},Qt=function(e,t,r,n){const o=r.havingBaseStyle(t),s=Pe.makeSpan(n.concat(o.sizingClasses(r)),[e],r),i=o.sizeMultiplier/r.sizeMultiplier;return s.height*=i,s.depth*=i,s.maxFontSize=o.sizeMultiplier,s},er=function(e,t,r){const n=t.havingBaseStyle(r),o=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=F(o),e.height-=o,e.depth+=o},tr=function(e,t,r,n,o,s){const i=function(e,t,r,n){return Pe.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,o,n),a=Qt(Pe.makeSpan(["delimsizing","size"+t],[i],n),w.TEXT,n,s);return r&&er(a,n,w.TEXT),a},rr=function(e,t,r){let n;n="Size1-Regular"===t?"delim-size1":"delim-size4";return{type:"elem",elem:Pe.makeSpan(["delimsizinginner",n],[Pe.makeSpan([],[Pe.makeSymbol(e,t,r)])])}},nr=function(e,t,r){const n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],o=new Q("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),s=new J([o],{width:F(n),height:F(t),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),i=Pe.makeSvgSpan([],[s],r);return i.height=t,i.style.height=F(t),i.style.width=F(n),{type:"elem",elem:i}},or={type:"kern",size:-.008},sr=["|","\\lvert","\\rvert","\\vert"],ir=["\\|","\\lVert","\\rVert","\\Vert"],ar=function(e,t,r,n,o,s){let i,a,h,c,m="",p=0;i=h=c=e,a=null;let u="Size1-Regular";"\\uparrow"===e?h=c="\u23d0":"\\Uparrow"===e?h=c="\u2016":"\\downarrow"===e?i=h="\u23d0":"\\Downarrow"===e?i=h="\u2016":"\\updownarrow"===e?(i="\\uparrow",h="\u23d0",c="\\downarrow"):"\\Updownarrow"===e?(i="\\Uparrow",h="\u2016",c="\\Downarrow"):l.contains(sr,e)?(h="\u2223",m="vert",p=333):l.contains(ir,e)?(h="\u2225",m="doublevert",p=556):"["===e||"\\lbrack"===e?(i="\u23a1",h="\u23a2",c="\u23a3",u="Size4-Regular",m="lbrack",p=667):"]"===e||"\\rbrack"===e?(i="\u23a4",h="\u23a5",c="\u23a6",u="Size4-Regular",m="rbrack",p=667):"\\lfloor"===e||"\u230a"===e?(h=i="\u23a2",c="\u23a3",u="Size4-Regular",m="lfloor",p=667):"\\lceil"===e||"\u2308"===e?(i="\u23a1",h=c="\u23a2",u="Size4-Regular",m="lceil",p=667):"\\rfloor"===e||"\u230b"===e?(h=i="\u23a5",c="\u23a6",u="Size4-Regular",m="rfloor",p=667):"\\rceil"===e||"\u2309"===e?(i="\u23a4",h=c="\u23a5",u="Size4-Regular",m="rceil",p=667):"("===e||"\\lparen"===e?(i="\u239b",h="\u239c",c="\u239d",u="Size4-Regular",m="lparen",p=875):")"===e||"\\rparen"===e?(i="\u239e",h="\u239f",c="\u23a0",u="Size4-Regular",m="rparen",p=875):"\\{"===e||"\\lbrace"===e?(i="\u23a7",a="\u23a8",c="\u23a9",h="\u23aa",u="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(i="\u23ab",a="\u23ac",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(i="\u23a7",c="\u23a9",h="\u23aa",u="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(i="\u23ab",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(i="\u23a7",c="\u23ad",h="\u23aa",u="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(i="\u23ab",c="\u23a9",h="\u23aa",u="Size4-Regular");const d=Jt(i,u,o),g=d.height+d.depth,f=Jt(h,u,o),b=f.height+f.depth,y=Jt(c,u,o),x=y.height+y.depth;let v=0,k=1;if(null!==a){const e=Jt(a,u,o);v=e.height+e.depth,k=2}const S=g+x+v,M=S+Math.max(0,Math.ceil((t-S)/(k*b)))*k*b;let z=n.fontMetrics().axisHeight;r&&(z*=n.sizeMultiplier);const A=M/2-z,T=[];if(m.length>0){const e=M-g-x,t=Math.round(1e3*M),r=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(m,Math.round(1e3*e)),o=new Q(m,r),s=(p/1e3).toFixed(3)+"em",i=(t/1e3).toFixed(3)+"em",a=new J([o],{width:s,height:i,viewBox:"0 0 "+p+" "+t}),l=Pe.makeSvgSpan([],[a],n);l.height=t/1e3,l.style.width=s,l.style.height=i,T.push({type:"elem",elem:l})}else{if(T.push(rr(c,u,o)),T.push(or),null===a){const e=M-g-x+.016;T.push(nr(h,e,n))}else{const e=(M-g-x-v)/2+.016;T.push(nr(h,e,n)),T.push(or),T.push(rr(a,u,o)),T.push(or),T.push(nr(h,e,n))}T.push(or),T.push(rr(i,u,o))}const B=n.havingBaseStyle(w.TEXT),C=Pe.makeVList({positionType:"bottom",positionData:A,children:T},B);return Qt(Pe.makeSpan(["delimsizing","mult"],[C],B),w.TEXT,n,s)},lr=.08,hr=function(e,t,r,n,o){const s=function(e,t,r){t*=1e3;let n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),i=new Q(e,s),a=new J([i],{width:"400em",height:F(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Pe.makeSvgSpan(["hide-tail"],[a],o)},cr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],mr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],pr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],ur=[0,1.2,1.8,2.4,3],dr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],gr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"stack"}],fr=[{type:"small",style:w.SCRIPTSCRIPT},{type:"small",style:w.SCRIPT},{type:"small",style:w.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],br=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},yr=function(e,t,r,n){for(let o=Math.min(2,3-n.style.size);ot)return r[o]}return r[r.length-1]},xr=function(e,t,r,n,o,s){let i;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),i=l.contains(pr,e)?dr:l.contains(cr,e)?fr:gr;const a=yr(e,t,i,n);return"small"===a.type?function(e,t,r,n,o,s){const i=Pe.makeSymbol(e,"Main-Regular",o,n),a=Qt(i,t,n,s);return r&&er(a,n,t),a}(e,a.style,r,n,o,s):"large"===a.type?tr(e,a.size,r,n,o,s):ar(e,t,r,n,o,s)};var wr={sqrtImage:function(e,t){const r=t.havingBaseSizing(),n=yr("\\surd",e*r.sizeMultiplier,fr,r);let o=r.sizeMultiplier;const s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness);let i,a,l=0,h=0,c=0;return"small"===n.type?(c=1e3+1e3*s+80,e<1?o=1:e<1.4&&(o=.7),l=(1+s+lr)/o,h=(1+s)/o,i=hr("sqrtMain",l,c,s,t),i.style.minWidth="0.853em",a=.833/o):"large"===n.type?(c=1080*ur[n.size],h=(ur[n.size]+s)/o,l=(ur[n.size]+s+lr)/o,i=hr("sqrtSize"+n.size,l,c,s,t),i.style.minWidth="1.02em",a=1/o):(l=e+s+lr,h=e+s,c=Math.floor(1e3*e+s)+80,i=hr("sqrtTall",l,c,s,t),i.style.minWidth="0.742em",a=1.056),i.height=h,i.style.height=F(l),{span:i,advanceWidth:a,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,o,s){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(cr,e)||l.contains(pr,e))return tr(e,t,!1,r,o,s);if(l.contains(mr,e))return ar(e,ur[t],!1,r,o,s);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:ur,customSizedDelim:xr,leftRightDelim:function(e,t,r,n,o,s){const i=n.fontMetrics().axisHeight*n.sizeMultiplier,a=5/n.fontMetrics().ptPerEm,l=Math.max(t-i,r+i),h=Math.max(l/500*901,2*l-a);return xr(e,h,!0,n,o,s)}};const vr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},kr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Sr(e,t){const r=Ot(e);if(r&&l.contains(kr,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function Mr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}$e({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{const r=Sr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:vr[e.funcName].size,mclass:vr[e.funcName].mclass,delim:r.text}},htmlBuilder:(e,t)=>"."===e.delim?Pe.makeSpan([e.mclass]):wr.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{const t=[];"."!==e.delim&&t.push(bt(e.delim,e.mode));const r=new ft.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");const n=F(wr.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),$e({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Sr(t[0],e).text,color:r}}}),$e({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=Sr(t[0],e),n=e.parser;++n.leftrightDepth;const o=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);const s=Rt(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:o,left:r.text,right:s.delim,rightColor:s.color}},htmlBuilder:(e,t)=>{Mr(e);const r=ot(e.body,t,!0,["mopen","mclose"]);let n,o,s=0,i=0,a=!1;for(let e=0;e{Mr(e);const r=vt(e.body,t);if("."!==e.left){const t=new ft.MathNode("mo",[bt(e.left,e.mode)]);t.setAttribute("fence","true"),r.unshift(t)}if("."!==e.right){const t=new ft.MathNode("mo",[bt(e.right,e.mode)]);t.setAttribute("fence","true"),e.rightColor&&t.setAttribute("mathcolor",e.rightColor),r.push(t)}return yt(r)}}),$e({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{const r=Sr(t[0],e);if(!e.parser.leftrightDepth)throw new n("\\middle without preceding \\left",r);return{type:"middle",mode:e.parser.mode,delim:r.text}},htmlBuilder:(e,t)=>{let r;if("."===e.delim)r=ht(t,[]);else{r=wr.sizedDelim(e.delim,1,t,e.mode,[]);const n={delim:e.delim,options:t};r.isMiddle=n}return r},mathmlBuilder:(e,t)=>{const r="\\vert"===e.delim||"|"===e.delim?bt("|","text"):bt(e.delim,e.mode),n=new ft.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n}});const zr=(e,t)=>{const r=Pe.wrapFragment(ct(e.body,t),t),n=e.label.slice(1);let o,s=t.sizeMultiplier,i=0;const a=l.isCharacterBox(e.body);if("sout"===n)o=Pe.makeSpan(["stretchy","sout"]),o.height=t.fontMetrics().defaultRuleThickness/s,i=-.5*t.fontMetrics().xHeight;else if("phase"===n){const e=P({number:.6,unit:"pt"},t),n=P({number:.35,unit:"ex"},t);s/=t.havingBaseSizing().sizeMultiplier;const a=r.height+r.depth+e+n;r.style.paddingLeft=F(a/2+e);const l=Math.floor(1e3*a*s),c="M400000 "+(h=l)+" H0 L"+h/2+" 0 l65 45 L145 "+(h-80)+" H400000z",m=new J([new Q("phase",c)],{width:"400em",height:F(l/1e3),viewBox:"0 0 400000 "+l,preserveAspectRatio:"xMinYMin slice"});o=Pe.makeSvgSpan(["hide-tail"],[m],t),o.style.height=F(a),i=r.depth+e+n}else{/cancel/.test(n)?a||r.classes.push("cancel-pad"):"angl"===n?r.classes.push("anglpad"):r.classes.push("boxpad");let s=0,l=0,h=0;/box/.test(n)?(h=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),s=t.fontMetrics().fboxsep+("colorbox"===n?0:h),l=s):"angl"===n?(h=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),s=4*h,l=Math.max(0,.25-r.depth)):(s=a?.2:0,l=s),o=Nt(r,n,s,l,t),/fbox|boxed|fcolorbox/.test(n)?(o.style.borderStyle="solid",o.style.borderWidth=F(h)):"angl"===n&&.049!==h&&(o.style.borderTopWidth=F(h),o.style.borderRightWidth=F(h)),i=r.depth+l,e.backgroundColor&&(o.style.backgroundColor=e.backgroundColor,e.borderColor&&(o.style.borderColor=e.borderColor))}var h;let c;if(e.backgroundColor)c=Pe.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:i},{type:"elem",elem:r,shift:0}]},t);else{const e=/cancel|phase/.test(n)?["svg-align"]:[];c=Pe.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:o,shift:i,wrapperClasses:e}]},t)}return/cancel/.test(n)&&(c.height=r.height,c.depth=r.depth),/cancel/.test(n)&&!a?Pe.makeSpan(["mord","cancel-lap"],[c],t):Pe.makeSpan(["mord"],[c],t)},Ar=(e,t)=>{let r=0;const n=new ft.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[St(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){const r=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+r+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};$e({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){let{parser:n,funcName:o}=e;const s=Rt(t[0],"color-token").color,i=t[1];return{type:"enclose",mode:n.mode,label:o,backgroundColor:s,body:i}},htmlBuilder:zr,mathmlBuilder:Ar}),$e({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,r){let{parser:n,funcName:o}=e;const s=Rt(t[0],"color-token").color,i=Rt(t[1],"color-token").color,a=t[2];return{type:"enclose",mode:n.mode,label:o,backgroundColor:i,borderColor:s,body:a}},htmlBuilder:zr,mathmlBuilder:Ar}),$e({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\fbox",body:t[0]}}}),$e({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"enclose",mode:r.mode,label:n,body:o}},htmlBuilder:zr,mathmlBuilder:Ar}),$e({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){let{parser:r}=e;return{type:"enclose",mode:r.mode,label:"\\angl",body:t[0]}}});const Tr={};function Br(e){let{type:t,names:r,props:n,handler:o,htmlBuilder:s,mathmlBuilder:i}=e;const a={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:o};for(let e=0;e{if(!e.parser.settings.displayMode)throw new n("{"+e.envName+"} can be used only in display mode.")};function Or(e){if(-1===e.indexOf("ed"))return-1===e.indexOf("*")}function Er(e,t,r){let{hskipBeforeAndAfter:o,addJot:s,cols:i,arraystretch:a,colSeparationType:l,autoTag:h,singleRow:c,emptySingleRow:m,maxNumCols:p,leqno:u}=t;if(e.gullet.beginGroup(),c||e.gullet.macros.set("\\cr","\\\\\\relax"),!a){const t=e.gullet.expandMacroAsText("\\arraystretch");if(null==t)a=1;else if(a=parseFloat(t),!a||a<0)throw new n("Invalid \\arraystretch: "+t)}e.gullet.beginGroup();let d=[];const g=[d],f=[],b=[],y=null!=h?[]:void 0;function x(){h&&e.gullet.macros.set("\\@eqnsw","1",!0)}function w(){y&&(e.gullet.macros.get("\\df@tag")?(y.push(e.subparse([new Ir("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):y.push(Boolean(h)&&"1"===e.gullet.macros.get("\\@eqnsw")))}for(x(),b.push(Rr(e));;){let t=e.parseExpression(!1,c?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),t={type:"ordgroup",mode:e.mode,body:t},r&&(t={type:"styling",mode:e.mode,style:r,body:[t]}),d.push(t);const o=e.fetch().text;if("&"===o){if(p&&d.length===p){if(c||l)throw new n("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else{if("\\end"===o){w(),1===d.length&&"styling"===t.type&&0===t.body[0].body.length&&(g.length>1||!m)&&g.pop(),b.length0&&(x+=.25),c.push({pos:x,isDashed:e[t]})}for(v(i[0]),r=0;r0&&(p+=y,le)))for(r=0;r=a)continue;(o>0||e.hskipBeforeAndAfter)&&(i=l.deflt(c.pregap,u),0!==i&&(z=Pe.makeSpan(["arraycolsep"],[]),z.style.width=F(i),M.push(z)));let d=[];for(r=0;r0){const e=Pe.makeLineSpan("hline",t,m),r=Pe.makeLineSpan("hdashline",t,m),n=[{type:"elem",elem:h,shift:0}];for(;c.length>0;){const t=c.pop(),o=t.pos-k;t.isDashed?n.push({type:"elem",elem:r,shift:o}):n.push({type:"elem",elem:e,shift:o})}h=Pe.makeVList({positionType:"individualShift",children:n},t)}if(0===T.length)return Pe.makeSpan(["mord"],[h],t);{let e=Pe.makeVList({positionType:"individualShift",children:T},t);return e=Pe.makeSpan(["tag"],[e],t),Pe.makeFragment([h,e])}},Vr={c:"center ",l:"left ",r:"right "},Pr=function(e,t){const r=[],n=new ft.MathNode("mtd",[],["mtr-glue"]),o=new ft.MathNode("mtd",[],["mml-eqn-num"]);for(let s=0;s0){const t=e.cols;let r="",n=!1,o=0,i=t.length;"separator"===t[0].type&&(a+="top ",o=1),"separator"===t[t.length-1].type&&(a+="bottom ",i-=1);for(let e=o;e0?"left ":"",a+=c[c.length-1].length>0?"right ":"";for(let e=1;e-1?"alignat":"align",s="split"===e.envName,i=Er(e.parser,{cols:r,addJot:!0,autoTag:s?void 0:Or(e.envName),emptySingleRow:!0,colSeparationType:o,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display");let a,l=0;const h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){let e="";for(let r=0;r0&&c&&(n=1),r[e]={type:"align",align:t,pregap:n,postgap:0}}return i.colSeparationType=c?"align":"alignat",i};Br({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){const r=(Ot(t[0])?[t[0]]:Rt(t[0],"ordgroup").body).map((function(e){const t=Ht(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),o={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Er(e.parser,o,Lr(e.envName))},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){const t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")];let r="c";const o={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){const t=e.parser;if(t.consumeSpaces(),"["===t.fetch().text){if(t.consume(),t.consumeSpaces(),r=t.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",t.nextToken);t.consume(),t.consumeSpaces(),t.expect("]"),t.consume(),o.cols=[{type:"align",align:r}]}}const s=Er(e.parser,o,Lr(e.envName)),i=Math.max(0,...s.body.map((e=>e.length)));return s.cols=new Array(i).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[s],left:t[0],right:t[1],rightColor:void 0}:s},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){const t=Er(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){const r=(Ot(t[0])?[t[0]]:Rt(t[0],"ordgroup").body).map((function(e){const t=Ht(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");let o={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if(o=Er(e.parser,o,"script"),o.body.length>0&&o.body[0].length>1)throw new n("{subarray} can contain only one column");return o},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){const t=Er(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},Lr(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Fr,htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){l.contains(["gather","gather*"],e.envName)&&Hr(e);const t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Or(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Er(e.parser,t,"display")},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Fr,htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){Hr(e);const t={autoTag:Or(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Er(e.parser,t,"display")},htmlBuilder:Dr,mathmlBuilder:Pr}),Br({type:"array",names:["CD"],props:{numArgs:0},handler(e){return Hr(e),function(e){const t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();const r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}let r=[];const o=[r];for(let a=0;a-1);else{if(!("<>AV".indexOf(o)>-1))throw new n('Expected one of "<>AV=|." after @',l[t]);for(let e=0;e<2;e++){let r=!0;for(let h=t+1;h{const r=e.font,n=t.withFont(r);return ct(e.body,n)},Yr=(e,t)=>{const r=e.font,n=t.withFont(r);return St(e.body,n)},Xr={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};$e({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=Ke(t[0]);let s=n;return s in Xr&&(s=Xr[s]),{type:"font",mode:r.mode,font:s.slice(1),body:o}},htmlBuilder:Ur,mathmlBuilder:Yr}),$e({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{let{parser:r}=e;const n=t[0],o=l.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:Ut(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:o}}}),$e({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{parser:r,funcName:n,breakOnTokenText:o}=e;const{mode:s}=r,i=r.parseExpression(!0,o);return{type:"font",mode:s,font:"math"+n.slice(1),body:{type:"ordgroup",mode:r.mode,body:i}}},htmlBuilder:Ur,mathmlBuilder:Yr});const Wr=(e,t)=>{let r=t;return"display"===e?r=r.id>=w.SCRIPT.id?r.text():w.DISPLAY:"text"===e&&r.size===w.DISPLAY.size?r=w.TEXT:"script"===e?r=w.SCRIPT:"scriptscript"===e&&(r=w.SCRIPTSCRIPT),r},_r=(e,t)=>{const r=Wr(e.size,t.style),n=r.fracNum(),o=r.fracDen();let s;s=t.havingStyle(n);const i=ct(e.numer,s,t);if(e.continued){const e=8.5/t.fontMetrics().ptPerEm,r=3.5/t.fontMetrics().ptPerEm;i.height=i.height0?3*c:7*c,u=t.fontMetrics().denom1):(h>0?(m=t.fontMetrics().num2,p=c):(m=t.fontMetrics().num3,p=3*c),u=t.fontMetrics().denom2),l){const e=t.fontMetrics().axisHeight;m-i.depth-(e+.5*h){let r=new ft.MathNode("mfrac",[St(e.numer,t),St(e.denom,t)]);if(e.hasBarLine){if(e.barSize){const n=P(e.barSize,t);r.setAttribute("linethickness",F(n))}}else r.setAttribute("linethickness","0px");const n=Wr(e.size,t.style);if(n.size!==t.style.size){r=new ft.MathNode("mstyle",[r]);const e=n.size===w.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",e),r.setAttribute("scriptlevel","0")}if(null!=e.leftDelim||null!=e.rightDelim){const t=[];if(null!=e.leftDelim){const r=new ft.MathNode("mo",[new ft.TextNode(e.leftDelim.replace("\\",""))]);r.setAttribute("fence","true"),t.push(r)}if(t.push(r),null!=e.rightDelim){const r=new ft.MathNode("mo",[new ft.TextNode(e.rightDelim.replace("\\",""))]);r.setAttribute("fence","true"),t.push(r)}return yt(t)}return r};$e({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=t[1];let i,a=null,l=null,h="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":i=!0;break;case"\\\\atopfrac":i=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":i=!1,a="(",l=")";break;case"\\\\bracefrac":i=!1,a="\\{",l="\\}";break;case"\\\\brackfrac":i=!1,a="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text"}return{type:"genfrac",mode:r.mode,continued:!1,numer:o,denom:s,hasBarLine:i,leftDelim:a,rightDelim:l,size:h,barSize:null}},htmlBuilder:_r,mathmlBuilder:jr}),$e({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=t[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:o,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),$e({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){let t,{parser:r,funcName:n,token:o}=e;switch(n){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:o}}});const $r=["display","text","script","scriptscript"],Zr=function(e){let t=null;return e.length>0&&(t=e,t="."===t?null:t),t};$e({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){let{parser:r}=e;const n=t[4],o=t[5],s=Ke(t[0]),i="atom"===s.type&&"open"===s.family?Zr(s.text):null,a=Ke(t[1]),l="atom"===a.type&&"close"===a.family?Zr(a.text):null,h=Rt(t[2],"size");let c,m=null;h.isBlank?c=!0:(m=h.value,c=m.number>0);let p="auto",u=t[3];if("ordgroup"===u.type){if(u.body.length>0){const e=Rt(u.body[0],"textord");p=$r[Number(e.text)]}}else u=Rt(u,"textord"),p=$r[Number(u.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:o,continued:!1,hasBarLine:c,barSize:m,leftDelim:i,rightDelim:l,size:p}},htmlBuilder:_r,mathmlBuilder:jr}),$e({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){let{parser:r,funcName:n,token:o}=e;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Rt(t[0],"size").value,token:o}}}),$e({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0],s=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Rt(t[1],"infix").size),i=t[2],a=s.number>0;return{type:"genfrac",mode:r.mode,numer:o,denom:i,continued:!1,hasBarLine:a,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:_r,mathmlBuilder:jr});const Kr=(e,t)=>{const r=t.style;let n,o;"supsub"===e.type?(n=e.sup?ct(e.sup,t.havingStyle(r.sup()),t):ct(e.sub,t.havingStyle(r.sub()),t),o=Rt(e.base,"horizBrace")):o=Rt(e,"horizBrace");const s=ct(o.base,t.havingBaseStyle(w.DISPLAY)),i=It(o,t);let a;if(o.isOver?(a=Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:i}]},t),a.children[0].children[0].children[1].classes.push("svg-align")):(a=Pe.makeVList({positionType:"bottom",positionData:s.depth+.1+i.height,children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:s}]},t),a.children[0].children[0].children[0].classes.push("svg-align")),n){const e=Pe.makeSpan(["mord",o.isOver?"mover":"munder"],[a],t);a=o.isOver?Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"kern",size:.2},{type:"elem",elem:n}]},t):Pe.makeVList({positionType:"bottom",positionData:e.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:e}]},t)}return Pe.makeSpan(["mord",o.isOver?"mover":"munder"],[a],t)};$e({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){let{parser:r,funcName:n}=e;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:Kr,mathmlBuilder:(e,t)=>{const r=qt(e.label);return new ft.MathNode(e.isOver?"mover":"munder",[St(e.base,t),r])}}),$e({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[1],o=Rt(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:o})?{type:"href",mode:r.mode,href:o,body:Je(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{const r=ot(e.body,t,!1);return Pe.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{let r=kt(e.body,t);return r instanceof dt||(r=new dt("mrow",[r])),r.setAttribute("href",e.href),r}}),$e({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=Rt(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");const o=[];for(let e=0;e{let{parser:r,funcName:o,token:s}=e;const i=Rt(t[0],"raw").string,a=t[1];let l;r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");const h={};switch(o){case"\\htmlClass":h.class=i,l={command:"\\htmlClass",class:i};break;case"\\htmlId":h.id=i,l={command:"\\htmlId",id:i};break;case"\\htmlStyle":h.style=i,l={command:"\\htmlStyle",style:i};break;case"\\htmlData":{const e=i.split(",");for(let t=0;t{const r=ot(e.body,t,!1),n=["enclosing"];e.attributes.class&&n.push(...e.attributes.class.trim().split(/\s+/));const o=Pe.makeSpan(n,r,t);for(const t in e.attributes)"class"!==t&&e.attributes.hasOwnProperty(t)&&o.setAttribute(t,e.attributes[t]);return o},mathmlBuilder:(e,t)=>kt(e.body,t)}),$e({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;return{type:"htmlmathml",mode:r.mode,html:Je(t[0]),mathml:Je(t[1])}},htmlBuilder:(e,t)=>{const r=ot(e.html,t,!1);return Pe.makeFragment(r)},mathmlBuilder:(e,t)=>kt(e.mathml,t)});const Jr=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};{const t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new n("Invalid size: '"+e+"' in \\includegraphics");const r={number:+(t[1]+t[2]),unit:t[3]};if(!V(r))throw new n("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r}};$e({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{let{parser:o}=e,s={number:0,unit:"em"},i={number:.9,unit:"em"},a={number:0,unit:"em"},l="";if(r[0]){const e=Rt(r[0],"raw").string.split(",");for(let t=0;t{const r=P(e.height,t);let n=0;e.totalheight.number>0&&(n=P(e.totalheight,t)-r);let o=0;e.width.number>0&&(o=P(e.width,t));const s={height:F(r+n)};o>0&&(s.width=F(o)),n>0&&(s.verticalAlign=F(-n));const i=new $(e.src,e.alt,s);return i.height=r,i.depth=n,i},mathmlBuilder:(e,t)=>{const r=new ft.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);const n=P(e.height,t);let o=0;if(e.totalheight.number>0&&(o=P(e.totalheight,t)-n,r.setAttribute("valign",F(-o))),r.setAttribute("height",F(n+o)),e.width.number>0){const n=P(e.width,t);r.setAttribute("width",F(n))}return r.setAttribute("src",e.src),r}}),$e({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=Rt(t[0],"size");if(r.settings.strict){const e="m"===n[1],t="mu"===o.value.unit;e?(t||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+o.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):t&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:o.value}},htmlBuilder(e,t){return Pe.makeGlue(e.dimension,t)},mathmlBuilder(e,t){const r=P(e.dimension,t);return new ft.SpaceNode(r)}}),$e({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r,funcName:n}=e;const o=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:o}},htmlBuilder:(e,t)=>{let r;"clap"===e.alignment?(r=Pe.makeSpan([],[ct(e.body,t)]),r=Pe.makeSpan(["inner"],[r],t)):r=Pe.makeSpan(["inner"],[ct(e.body,t)]);const n=Pe.makeSpan(["fix"],[]);let o=Pe.makeSpan([e.alignment],[r,n],t);const s=Pe.makeSpan(["strut"]);return s.style.height=F(o.height+o.depth),o.depth&&(s.style.verticalAlign=F(-o.depth)),o.children.unshift(s),o=Pe.makeSpan(["thinbox"],[o],t),Pe.makeSpan(["mord","vbox"],[o],t)},mathmlBuilder:(e,t)=>{const r=new ft.MathNode("mpadded",[St(e.body,t)]);if("rlap"!==e.alignment){const t="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",t+"width")}return r.setAttribute("width","0px"),r}}),$e({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){let{funcName:r,parser:n}=e;const o=n.mode;n.switchMode("math");const s="\\("===r?"\\)":"$",i=n.parseExpression(!1,s);return n.expect(s),n.switchMode(o),{type:"styling",mode:n.mode,style:"text",body:i}}}),$e({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new n("Mismatched "+e.funcName)}});const Qr=(e,t)=>{switch(t.style.size){case w.DISPLAY.size:return e.display;case w.TEXT.size:return e.text;case w.SCRIPT.size:return e.script;case w.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};$e({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{let{parser:r}=e;return{type:"mathchoice",mode:r.mode,display:Je(t[0]),text:Je(t[1]),script:Je(t[2]),scriptscript:Je(t[3])}},htmlBuilder:(e,t)=>{const r=Qr(e,t),n=ot(r,t,!1);return Pe.makeFragment(n)},mathmlBuilder:(e,t)=>{const r=Qr(e,t);return kt(r,t)}});const en=(e,t,r,n,o,s,i)=>{e=Pe.makeSpan([],[e]);const a=r&&l.isCharacterBox(r);let h,c,m;if(t){const e=ct(t,n.havingStyle(o.sup()),n);c={elem:e,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-e.depth)}}if(r){const e=ct(r,n.havingStyle(o.sub()),n);h={elem:e,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-e.height)}}if(c&&h){const t=n.fontMetrics().bigOpSpacing5+h.elem.height+h.elem.depth+h.kern+e.depth+i;m=Pe.makeVList({positionType:"bottom",positionData:t,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:h.elem,marginLeft:F(-s)},{type:"kern",size:h.kern},{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:F(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(h){const t=e.height-i;m=Pe.makeVList({positionType:"top",positionData:t,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:h.elem,marginLeft:F(-s)},{type:"kern",size:h.kern},{type:"elem",elem:e}]},n)}else{if(!c)return e;{const t=e.depth+i;m=Pe.makeVList({positionType:"bottom",positionData:t,children:[{type:"elem",elem:e},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:F(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}}const p=[m];if(h&&0!==s&&!a){const e=Pe.makeSpan(["mspace"],[],n);e.style.marginRight=F(s),p.unshift(e)}return Pe.makeSpan(["mop","op-limits"],p,n)},tn=["\\smallint"],rn=(e,t)=>{let r,n,o,s=!1;"supsub"===e.type?(r=e.sup,n=e.sub,o=Rt(e.base,"op"),s=!0):o=Rt(e,"op");const i=t.style;let a,h=!1;if(i.size===w.DISPLAY.size&&o.symbol&&!l.contains(tn,o.name)&&(h=!0),o.symbol){const e=h?"Size2-Regular":"Size1-Regular";let r="";if("\\oiint"!==o.name&&"\\oiiint"!==o.name||(r=o.name.slice(1),o.name="oiint"===r?"\\iint":"\\iiint"),a=Pe.makeSymbol(o.name,e,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),r.length>0){const e=a.italic,n=Pe.staticSvg(r+"Size"+(h?"2":"1"),t);a=Pe.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:0},{type:"elem",elem:n,shift:h?.08:0}]},t),o.name="\\"+r,a.classes.unshift("mop"),a.italic=e}}else if(o.body){const e=ot(o.body,t,!0);1===e.length&&e[0]instanceof K?(a=e[0],a.classes[0]="mop"):a=Pe.makeSpan(["mop"],e,t)}else{const e=[];for(let r=1;r{let r;if(e.symbol)r=new dt("mo",[bt(e.name,e.mode)]),l.contains(tn,e.name)&&r.setAttribute("largeop","false");else if(e.body)r=new dt("mo",vt(e.body,t));else{r=new dt("mi",[new gt(e.name.slice(1))]);const t=new dt("mo",[bt("\u2061","text")]);r=e.parentIsSupSub?new dt("mrow",[r,t]):ut([r,t])}return r},on={"\u220f":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22c0":"\\bigwedge","\u22c1":"\\bigvee","\u22c2":"\\bigcap","\u22c3":"\\bigcup","\u2a00":"\\bigodot","\u2a01":"\\bigoplus","\u2a02":"\\bigotimes","\u2a04":"\\biguplus","\u2a06":"\\bigsqcup"};$e({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220f","\u2210","\u2211","\u22c0","\u22c1","\u22c2","\u22c3","\u2a00","\u2a01","\u2a02","\u2a04","\u2a06"],props:{numArgs:0},handler:(e,t)=>{let{parser:r,funcName:n}=e,o=n;return 1===o.length&&(o=on[o]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:o}},htmlBuilder:rn,mathmlBuilder:nn}),$e({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Je(n)}},htmlBuilder:rn,mathmlBuilder:nn});const sn={"\u222b":"\\int","\u222c":"\\iint","\u222d":"\\iiint","\u222e":"\\oint","\u222f":"\\oiint","\u2230":"\\oiiint"};$e({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:rn,mathmlBuilder:nn}),$e({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:rn,mathmlBuilder:nn}),$e({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222b","\u222c","\u222d","\u222e","\u222f","\u2230"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e,n=r;return 1===n.length&&(n=sn[n]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:rn,mathmlBuilder:nn});const an=(e,t)=>{let r,n,o,s,i=!1;if("supsub"===e.type?(r=e.sup,n=e.sub,o=Rt(e.base,"operatorname"),i=!0):o=Rt(e,"operatorname"),o.body.length>0){const e=o.body.map((e=>{const t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),r=ot(e,t.withFont("mathrm"),!0);for(let e=0;e{let{parser:r,funcName:n}=e;const o=t[0];return{type:"operatorname",mode:r.mode,body:Je(o),alwaysHandleSupSub:"\\operatornamewithlimits"===n,limits:!1,parentIsSupSub:!1}},htmlBuilder:an,mathmlBuilder:(e,t)=>{let r=vt(e.body,t.withFont("mathrm")),n=!0;for(let e=0;ee.toText())).join("");r=[new ft.TextNode(e)]}const o=new ft.MathNode("mi",r);o.setAttribute("mathvariant","normal");const s=new ft.MathNode("mo",[bt("\u2061","text")]);return e.parentIsSupSub?new ft.MathNode("mrow",[o,s]):ft.newDocumentFragment([o,s])}}),Nr("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),Ze({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Pe.makeFragment(ot(e.body,t,!1)):Pe.makeSpan(["mord"],ot(e.body,t,!0),t)},mathmlBuilder(e,t){return kt(e.body,t,!0)}}),$e({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){let{parser:r}=e;const n=t[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(e,t){const r=ct(e.body,t.havingCrampedStyle()),n=Pe.makeLineSpan("overline-line",t),o=t.fontMetrics().defaultRuleThickness,s=Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*o},{type:"elem",elem:n},{type:"kern",size:o}]},t);return Pe.makeSpan(["mord","overline"],[s],t)},mathmlBuilder(e,t){const r=new ft.MathNode("mo",[new ft.TextNode("\u203e")]);r.setAttribute("stretchy","true");const n=new ft.MathNode("mover",[St(e.body,t),r]);return n.setAttribute("accent","true"),n}}),$e({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"phantom",mode:r.mode,body:Je(n)}},htmlBuilder:(e,t)=>{const r=ot(e.body,t.withPhantom(),!1);return Pe.makeFragment(r)},mathmlBuilder:(e,t)=>{const r=vt(e.body,t);return new ft.MathNode("mphantom",r)}}),$e({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"hphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{let r=Pe.makeSpan([],[ct(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(let e=0;e{const r=vt(Je(e.body),t),n=new ft.MathNode("mphantom",r),o=new ft.MathNode("mpadded",[n]);return o.setAttribute("height","0px"),o.setAttribute("depth","0px"),o}}),$e({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{let{parser:r}=e;const n=t[0];return{type:"vphantom",mode:r.mode,body:n}},htmlBuilder:(e,t)=>{const r=Pe.makeSpan(["inner"],[ct(e.body,t.withPhantom())]),n=Pe.makeSpan(["fix"],[]);return Pe.makeSpan(["mord","rlap"],[r,n],t)},mathmlBuilder:(e,t)=>{const r=vt(Je(e.body),t),n=new ft.MathNode("mphantom",r),o=new ft.MathNode("mpadded",[n]);return o.setAttribute("width","0px"),o}}),$e({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){let{parser:r}=e;const n=Rt(t[0],"size").value,o=t[1];return{type:"raisebox",mode:r.mode,dy:n,body:o}},htmlBuilder(e,t){const r=ct(e.body,t),n=P(e.dy,t);return Pe.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){const r=new ft.MathNode("mpadded",[St(e.body,t)]),n=e.dy.number+e.dy.unit;return r.setAttribute("voffset",n),r}}),$e({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(e){let{parser:t}=e;return{type:"internal",mode:t.mode}}}),$e({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,r){let{parser:n}=e;const o=r[0],s=Rt(t[0],"size"),i=Rt(t[1],"size");return{type:"rule",mode:n.mode,shift:o&&Rt(o,"size").value,width:s.value,height:i.value}},htmlBuilder(e,t){const r=Pe.makeSpan(["mord","rule"],[],t),n=P(e.width,t),o=P(e.height,t),s=e.shift?P(e.shift,t):0;return r.style.borderRightWidth=F(n),r.style.borderTopWidth=F(o),r.style.bottom=F(s),r.width=n,r.height=o+s,r.depth=-s,r.maxFontSize=1.125*o*t.sizeMultiplier,r},mathmlBuilder(e,t){const r=P(e.width,t),n=P(e.height,t),o=e.shift?P(e.shift,t):0,s=t.color&&t.getColor()||"black",i=new ft.MathNode("mspace");i.setAttribute("mathbackground",s),i.setAttribute("width",F(r)),i.setAttribute("height",F(n));const a=new ft.MathNode("mpadded",[i]);return o>=0?a.setAttribute("height",F(o)):(a.setAttribute("height",F(o)),a.setAttribute("depth",F(-o))),a.setAttribute("voffset",F(o)),a}});const hn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];$e({type:"sizing",names:hn,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{let{breakOnTokenText:r,funcName:n,parser:o}=e;const s=o.parseExpression(!1,r);return{type:"sizing",mode:o.mode,size:hn.indexOf(n)+1,body:s}},htmlBuilder:(e,t)=>{const r=t.havingSize(e.size);return ln(e.body,r,t)},mathmlBuilder:(e,t)=>{const r=t.havingSize(e.size),n=vt(e.body,r),o=new ft.MathNode("mstyle",n);return o.setAttribute("mathsize",F(r.sizeMultiplier)),o}}),$e({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{let{parser:n}=e,o=!1,s=!1;const i=r[0]&&Rt(r[0],"ordgroup");if(i){let e="";for(let t=0;t{const r=Pe.makeSpan([],[ct(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(let e=0;e{const r=new ft.MathNode("mpadded",[St(e.body,t)]);return e.smashHeight&&r.setAttribute("height","0px"),e.smashDepth&&r.setAttribute("depth","0px"),r}}),$e({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){let{parser:n}=e;const o=r[0],s=t[0];return{type:"sqrt",mode:n.mode,body:s,index:o}},htmlBuilder(e,t){let r=ct(e.body,t.havingCrampedStyle());0===r.height&&(r.height=t.fontMetrics().xHeight),r=Pe.wrapFragment(r,t);const n=t.fontMetrics().defaultRuleThickness;let o=n;t.style.idr.height+r.depth+s&&(s=(s+c-r.height-r.depth)/2);const m=a.height-r.height-s-l;r.style.paddingLeft=F(h);const p=Pe.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+m)},{type:"elem",elem:a},{type:"kern",size:l}]},t);if(e.index){const r=t.havingStyle(w.SCRIPTSCRIPT),n=ct(e.index,r,t),o=.6*(p.height-p.depth),s=Pe.makeVList({positionType:"shift",positionData:-o,children:[{type:"elem",elem:n}]},t),i=Pe.makeSpan(["root"],[s]);return Pe.makeSpan(["mord","sqrt"],[i,p],t)}return Pe.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder(e,t){const{body:r,index:n}=e;return n?new ft.MathNode("mroot",[St(r,t),St(n,t)]):new ft.MathNode("msqrt",[St(r,t)])}});const cn={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};$e({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){let{breakOnTokenText:r,funcName:n,parser:o}=e;const s=o.parseExpression(!0,r),i=n.slice(1,n.length-5);return{type:"styling",mode:o.mode,style:i,body:s}},htmlBuilder(e,t){const r=cn[e.style],n=t.havingStyle(r).withFont("");return ln(e.body,n,t)},mathmlBuilder(e,t){const r=cn[e.style],n=t.havingStyle(r),o=vt(e.body,n),s=new ft.MathNode("mstyle",o),i={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return s.setAttribute("scriptlevel",i[0]),s.setAttribute("displaystyle",i[1]),s}});Ze({type:"supsub",htmlBuilder(e,t){const r=function(e,t){const r=e.base;if(r)return"op"===r.type?r.limits&&(t.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?rn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===w.DISPLAY.size||r.limits)?an:null:"accent"===r.type?l.isCharacterBox(r.base)?Et:null:"horizBrace"===r.type&&!e.sub===r.isOver?Kr:null;return null}(e,t);if(r)return r(e,t);const{base:n,sup:o,sub:s}=e,i=ct(n,t);let a,h;const c=t.fontMetrics();let m=0,p=0;const u=n&&l.isCharacterBox(n);if(o){const e=t.havingStyle(t.style.sup());a=ct(o,e,t),u||(m=i.height-e.fontMetrics().supDrop*e.sizeMultiplier/t.sizeMultiplier)}if(s){const e=t.havingStyle(t.style.sub());h=ct(s,e,t),u||(p=i.depth+e.fontMetrics().subDrop*e.sizeMultiplier/t.sizeMultiplier)}let d;d=t.style===w.DISPLAY?c.sup1:t.style.cramped?c.sup3:c.sup2;const g=t.sizeMultiplier,f=F(.5/c.ptPerEm/g);let b,y=null;if(h){const t=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(i instanceof K||t)&&(y=F(-i.italic))}if(a&&h){m=Math.max(m,d,a.depth+.25*c.xHeight),p=Math.max(p,c.sub2);const e=4*c.defaultRuleThickness;if(m-a.depth-(h.height-p)0&&(m+=t,p-=t)}const r=[{type:"elem",elem:h,shift:p,marginRight:f,marginLeft:y},{type:"elem",elem:a,shift:-m,marginRight:f}];b=Pe.makeVList({positionType:"individualShift",children:r},t)}else if(h){p=Math.max(p,c.sub1,h.height-.8*c.xHeight);const e=[{type:"elem",elem:h,marginLeft:y,marginRight:f}];b=Pe.makeVList({positionType:"shift",positionData:p,children:e},t)}else{if(!a)throw new Error("supsub must have either sup or sub.");m=Math.max(m,d,a.depth+.25*c.xHeight),b=Pe.makeVList({positionType:"shift",positionData:-m,children:[{type:"elem",elem:a,marginRight:f}]},t)}const x=lt(i,"right")||"mord";return Pe.makeSpan([x],[i,Pe.makeSpan(["msupsub"],[b])],t)},mathmlBuilder(e,t){let r,n,o=!1;e.base&&"horizBrace"===e.base.type&&(n=!!e.sup,n===e.base.isOver&&(o=!0,r=e.base.isOver)),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);const s=[St(e.base,t)];let i;if(e.sub&&s.push(St(e.sub,t)),e.sup&&s.push(St(e.sup,t)),o)i=r?"mover":"munder";else if(e.sub)if(e.sup){const r=e.base;i=r&&"op"===r.type&&r.limits&&t.style===w.DISPLAY||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(t.style===w.DISPLAY||r.limits)?"munderover":"msubsup"}else{const r=e.base;i=r&&"op"===r.type&&r.limits&&(t.style===w.DISPLAY||r.alwaysHandleSupSub)||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(r.limits||t.style===w.DISPLAY)?"munder":"msub"}else{const r=e.base;i=r&&"op"===r.type&&r.limits&&(t.style===w.DISPLAY||r.alwaysHandleSupSub)||r&&"operatorname"===r.type&&r.alwaysHandleSupSub&&(r.limits||t.style===w.DISPLAY)?"mover":"msup"}return new ft.MathNode(i,s)}}),Ze({type:"atom",htmlBuilder(e,t){return Pe.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){const r=new ft.MathNode("mo",[bt(e.text,e.mode)]);if("bin"===e.family){const n=xt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});const mn={mi:"italic",mn:"normal",mtext:"normal"};Ze({type:"mathord",htmlBuilder(e,t){return Pe.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){const r=new ft.MathNode("mi",[bt(e.text,e.mode,t)]),n=xt(e,t)||"italic";return n!==mn[r.type]&&r.setAttribute("mathvariant",n),r}}),Ze({type:"textord",htmlBuilder(e,t){return Pe.makeOrd(e,t,"textord")},mathmlBuilder(e,t){const r=bt(e.text,e.mode,t),n=xt(e,t)||"normal";let o;return o="text"===e.mode?new ft.MathNode("mtext",[r]):/[0-9]/.test(e.text)?new ft.MathNode("mn",[r]):"\\prime"===e.text?new ft.MathNode("mo",[r]):new ft.MathNode("mi",[r]),n!==mn[o.type]&&o.setAttribute("mathvariant",n),o}});const pn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},un={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Ze({type:"spacing",htmlBuilder(e,t){if(un.hasOwnProperty(e.text)){const r=un[e.text].className||"";if("text"===e.mode){const n=Pe.makeOrd(e,t,"textord");return n.classes.push(r),n}return Pe.makeSpan(["mspace",r],[Pe.mathsym(e.text,e.mode,t)],t)}if(pn.hasOwnProperty(e.text))return Pe.makeSpan(["mspace",pn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder(e,t){let r;if(!un.hasOwnProperty(e.text)){if(pn.hasOwnProperty(e.text))return new ft.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return r=new ft.MathNode("mtext",[new ft.TextNode("\xa0")]),r}});const dn=()=>{const e=new ft.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};Ze({type:"tag",mathmlBuilder(e,t){const r=new ft.MathNode("mtable",[new ft.MathNode("mtr",[dn(),new ft.MathNode("mtd",[kt(e.body,t)]),dn(),new ft.MathNode("mtd",[kt(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});const gn={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},fn={"\\textbf":"textbf","\\textmd":"textmd"},bn={"\\textit":"textit","\\textup":"textup"},yn=(e,t)=>{const r=e.font;return r?gn[r]?t.withTextFontFamily(gn[r]):fn[r]?t.withTextFontWeight(fn[r]):"\\emph"===r?"textit"===t.fontShape?t.withTextFontShape("textup"):t.withTextFontShape("textit"):t.withTextFontShape(bn[r]):t};$e({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){let{parser:r,funcName:n}=e;const o=t[0];return{type:"text",mode:r.mode,body:Je(o),font:n}},htmlBuilder(e,t){const r=yn(e,t),n=ot(e.body,r,!0);return Pe.makeSpan(["mord","text"],n,r)},mathmlBuilder(e,t){const r=yn(e,t);return kt(e.body,r)}}),$e({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){let{parser:r}=e;return{type:"underline",mode:r.mode,body:t[0]}},htmlBuilder(e,t){const r=ct(e.body,t),n=Pe.makeLineSpan("underline-line",t),o=t.fontMetrics().defaultRuleThickness,s=Pe.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:o},{type:"elem",elem:n},{type:"kern",size:3*o},{type:"elem",elem:r}]},t);return Pe.makeSpan(["mord","underline"],[s],t)},mathmlBuilder(e,t){const r=new ft.MathNode("mo",[new ft.TextNode("\u203e")]);r.setAttribute("stretchy","true");const n=new ft.MathNode("munder",[St(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),$e({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){let{parser:r}=e;return{type:"vcenter",mode:r.mode,body:t[0]}},htmlBuilder(e,t){const r=ct(e.body,t),n=t.fontMetrics().axisHeight,o=.5*(r.height-n-(r.depth+n));return Pe.makeVList({positionType:"shift",positionData:o,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return new ft.MathNode("mpadded",[St(e.body,t)],["vcenter"])}}),$e({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){const r=xn(e),n=[],o=t.havingStyle(t.style.text());for(let t=0;te.body.replace(/ /g,e.star?"\u2423":"\xa0");var wn=We;const vn="[ \r\n\t]",kn="(\\\\[a-zA-Z@]+)"+vn+"*",Sn="[\u0300-\u036f]",Mn=new RegExp(Sn+"+$"),zn="("+vn+"+)|\\\\(\n|[ \r\t]+\n?)[ \r\t]*|([!-\\[\\]-\u2027\u202a-\ud7ff\uf900-\uffff]"+Sn+"*|[\ud800-\udbff][\udc00-\udfff]"+Sn+"*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|"+kn+"|\\\\[^\ud800-\udfff])";class An{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(zn,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){const e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new Ir("EOF",new qr(this,t,t));const r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new n("Unexpected character: '"+e[t]+"'",new Ir(e[t],new qr(this,t,t+1)));const o=r[6]||r[3]||(r[2]?"\\ ":" ");if(14===this.catcodes[o]){const t=e.indexOf("\n",this.tokenRegex.lastIndex);return-1===t?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=t+1,this.lex()}return new Ir(o,new qr(this,t,this.tokenRegex.lastIndex))}}class Tn{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new n("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");const e=this.undefStack.pop();for(const t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,r){if(void 0===r&&(r=!1),r){for(let t=0;t0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{const t=this.undefStack[this.undefStack.length-1];t&&!t.hasOwnProperty(e)&&(t[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t}}var Bn=Cr;Nr("\\noexpand",(function(e){const t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Nr("\\expandafter",(function(e){const t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Nr("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Nr("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Nr("\\@ifnextchar",(function(e){const t=e.consumeArgs(3);e.consumeSpaces();const r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Nr("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Nr("\\TextOrMath",(function(e){const t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));const Cn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Nr("\\char",(function(e){let t,r=e.popToken(),o="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if(r=e.popToken(),"\\"===r.text[0])o=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");o=r.text.charCodeAt(0)}else t=10;if(t){if(o=Cn[r.text],null==o||o>=t)throw new n("Invalid base-"+t+" digit "+r.text);let s;for(;null!=(s=Cn[e.future().text])&&s{let s=e.consumeArg().tokens;if(1!==s.length)throw new n("\\newcommand's first argument must be a macro name");const i=s[0].text,a=e.isDefined(i);if(a&&!t)throw new n("\\newcommand{"+i+"} attempting to redefine "+i+"; use \\renewcommand");if(!a&&!r)throw new n("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");let l=0;if(s=e.consumeArg().tokens,1===s.length&&"["===s[0].text){let t="",r=e.expandNextToken();for(;"]"!==r.text&&"EOF"!==r.text;)t+=r.text,r=e.expandNextToken();if(!t.match(/^\s*[0-9]+\s*$/))throw new n("Invalid number of arguments: "+t);l=parseInt(t),s=e.consumeArg().tokens}return a&&o||e.macros.set(i,{tokens:s,numArgs:l}),""};Nr("\\newcommand",(e=>Nn(e,!1,!0,!1))),Nr("\\renewcommand",(e=>Nn(e,!0,!1,!1))),Nr("\\providecommand",(e=>Nn(e,!0,!0,!0))),Nr("\\message",(e=>{const t=e.consumeArgs(1)[0];return console.log(t.reverse().map((e=>e.text)).join("")),""})),Nr("\\errmessage",(e=>{const t=e.consumeArgs(1)[0];return console.error(t.reverse().map((e=>e.text)).join("")),""})),Nr("\\show",(e=>{const t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),wn[r],se.math[r],se.text[r]),""})),Nr("\\bgroup","{"),Nr("\\egroup","}"),Nr("~","\\nobreakspace"),Nr("\\lq","`"),Nr("\\rq","'"),Nr("\\aa","\\r a"),Nr("\\AA","\\r A"),Nr("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xa9}"),Nr("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),Nr("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xae}"),Nr("\u212c","\\mathscr{B}"),Nr("\u2130","\\mathscr{E}"),Nr("\u2131","\\mathscr{F}"),Nr("\u210b","\\mathscr{H}"),Nr("\u2110","\\mathscr{I}"),Nr("\u2112","\\mathscr{L}"),Nr("\u2133","\\mathscr{M}"),Nr("\u211b","\\mathscr{R}"),Nr("\u212d","\\mathfrak{C}"),Nr("\u210c","\\mathfrak{H}"),Nr("\u2128","\\mathfrak{Z}"),Nr("\\Bbbk","\\Bbb{k}"),Nr("\xb7","\\cdotp"),Nr("\\llap","\\mathllap{\\textrm{#1}}"),Nr("\\rlap","\\mathrlap{\\textrm{#1}}"),Nr("\\clap","\\mathclap{\\textrm{#1}}"),Nr("\\mathstrut","\\vphantom{(}"),Nr("\\underbar","\\underline{\\text{#1}}"),Nr("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),Nr("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}"),Nr("\\ne","\\neq"),Nr("\u2260","\\neq"),Nr("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}"),Nr("\u2209","\\notin"),Nr("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}"),Nr("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}"),Nr("\u225a","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225a}}"),Nr("\u225b","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225b}}"),Nr("\u225d","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225d}}"),Nr("\u225e","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225e}}"),Nr("\u225f","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225f}}"),Nr("\u27c2","\\perp"),Nr("\u203c","\\mathclose{!\\mkern-0.8mu!}"),Nr("\u220c","\\notni"),Nr("\u231c","\\ulcorner"),Nr("\u231d","\\urcorner"),Nr("\u231e","\\llcorner"),Nr("\u231f","\\lrcorner"),Nr("\xa9","\\copyright"),Nr("\xae","\\textregistered"),Nr("\ufe0f","\\textregistered"),Nr("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),Nr("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),Nr("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),Nr("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),Nr("\\vdots","{\\varvdots\\rule{0pt}{15pt}}"),Nr("\u22ee","\\vdots"),Nr("\\varGamma","\\mathit{\\Gamma}"),Nr("\\varDelta","\\mathit{\\Delta}"),Nr("\\varTheta","\\mathit{\\Theta}"),Nr("\\varLambda","\\mathit{\\Lambda}"),Nr("\\varXi","\\mathit{\\Xi}"),Nr("\\varPi","\\mathit{\\Pi}"),Nr("\\varSigma","\\mathit{\\Sigma}"),Nr("\\varUpsilon","\\mathit{\\Upsilon}"),Nr("\\varPhi","\\mathit{\\Phi}"),Nr("\\varPsi","\\mathit{\\Psi}"),Nr("\\varOmega","\\mathit{\\Omega}"),Nr("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),Nr("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),Nr("\\boxed","\\fbox{$\\displaystyle{#1}$}"),Nr("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),Nr("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),Nr("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;"),Nr("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}"),Nr("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");const qn={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Nr("\\dots",(function(e){let t="\\dotso";const r=e.expandAfterFuture().text;return r in qn?t=qn[r]:("\\not"===r.slice(0,4)||r in se.math&&l.contains(["bin","rel"],se.math[r].group))&&(t="\\dotsb"),t}));const In={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Nr("\\dotso",(function(e){return e.future().text in In?"\\ldots\\,":"\\ldots"})),Nr("\\dotsc",(function(e){const t=e.future().text;return t in In&&","!==t?"\\ldots\\,":"\\ldots"})),Nr("\\cdots",(function(e){return e.future().text in In?"\\@cdots\\,":"\\@cdots"})),Nr("\\dotsb","\\cdots"),Nr("\\dotsm","\\cdots"),Nr("\\dotsi","\\!\\cdots"),Nr("\\dotsx","\\ldots\\,"),Nr("\\DOTSI","\\relax"),Nr("\\DOTSB","\\relax"),Nr("\\DOTSX","\\relax"),Nr("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Nr("\\,","\\tmspace+{3mu}{.1667em}"),Nr("\\thinspace","\\,"),Nr("\\>","\\mskip{4mu}"),Nr("\\:","\\tmspace+{4mu}{.2222em}"),Nr("\\medspace","\\:"),Nr("\\;","\\tmspace+{5mu}{.2777em}"),Nr("\\thickspace","\\;"),Nr("\\!","\\tmspace-{3mu}{.1667em}"),Nr("\\negthinspace","\\!"),Nr("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Nr("\\negthickspace","\\tmspace-{5mu}{.277em}"),Nr("\\enspace","\\kern.5em "),Nr("\\enskip","\\hskip.5em\\relax"),Nr("\\quad","\\hskip1em\\relax"),Nr("\\qquad","\\hskip2em\\relax"),Nr("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Nr("\\tag@paren","\\tag@literal{({#1})}"),Nr("\\tag@literal",(e=>{if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Nr("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Nr("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Nr("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Nr("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Nr("\\newline","\\\\\\relax"),Nr("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");const Rn=F(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Nr("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Rn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Nr("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Rn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Nr("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Nr("\\@hspace","\\hskip #1\\relax"),Nr("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Nr("\\ordinarycolon",":"),Nr("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Nr("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Nr("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Nr("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Nr("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Nr("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Nr("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Nr("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Nr("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Nr("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Nr("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Nr("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Nr("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Nr("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Nr("\u2237","\\dblcolon"),Nr("\u2239","\\eqcolon"),Nr("\u2254","\\coloneqq"),Nr("\u2255","\\eqqcolon"),Nr("\u2a74","\\Coloneqq"),Nr("\\ratio","\\vcentcolon"),Nr("\\coloncolon","\\dblcolon"),Nr("\\colonequals","\\coloneqq"),Nr("\\coloncolonequals","\\Coloneqq"),Nr("\\equalscolon","\\eqqcolon"),Nr("\\equalscoloncolon","\\Eqqcolon"),Nr("\\colonminus","\\coloneq"),Nr("\\coloncolonminus","\\Coloneq"),Nr("\\minuscolon","\\eqcolon"),Nr("\\minuscoloncolon","\\Eqcolon"),Nr("\\coloncolonapprox","\\Colonapprox"),Nr("\\coloncolonsim","\\Colonsim"),Nr("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Nr("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Nr("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Nr("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Nr("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Nr("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Nr("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Nr("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Nr("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Nr("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Nr("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Nr("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Nr("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Nr("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Nr("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Nr("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Nr("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Nr("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Nr("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Nr("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Nr("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Nr("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Nr("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Nr("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Nr("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Nr("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Nr("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Nr("\\imath","\\html@mathml{\\@imath}{\u0131}"),Nr("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Nr("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Nr("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Nr("\u27e6","\\llbracket"),Nr("\u27e7","\\rrbracket"),Nr("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Nr("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Nr("\u2983","\\lBrace"),Nr("\u2984","\\rBrace"),Nr("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Nr("\u29b5","\\minuso"),Nr("\\darr","\\downarrow"),Nr("\\dArr","\\Downarrow"),Nr("\\Darr","\\Downarrow"),Nr("\\lang","\\langle"),Nr("\\rang","\\rangle"),Nr("\\uarr","\\uparrow"),Nr("\\uArr","\\Uparrow"),Nr("\\Uarr","\\Uparrow"),Nr("\\N","\\mathbb{N}"),Nr("\\R","\\mathbb{R}"),Nr("\\Z","\\mathbb{Z}"),Nr("\\alef","\\aleph"),Nr("\\alefsym","\\aleph"),Nr("\\Alpha","\\mathrm{A}"),Nr("\\Beta","\\mathrm{B}"),Nr("\\bull","\\bullet"),Nr("\\Chi","\\mathrm{X}"),Nr("\\clubs","\\clubsuit"),Nr("\\cnums","\\mathbb{C}"),Nr("\\Complex","\\mathbb{C}"),Nr("\\Dagger","\\ddagger"),Nr("\\diamonds","\\diamondsuit"),Nr("\\empty","\\emptyset"),Nr("\\Epsilon","\\mathrm{E}"),Nr("\\Eta","\\mathrm{H}"),Nr("\\exist","\\exists"),Nr("\\harr","\\leftrightarrow"),Nr("\\hArr","\\Leftrightarrow"),Nr("\\Harr","\\Leftrightarrow"),Nr("\\hearts","\\heartsuit"),Nr("\\image","\\Im"),Nr("\\infin","\\infty"),Nr("\\Iota","\\mathrm{I}"),Nr("\\isin","\\in"),Nr("\\Kappa","\\mathrm{K}"),Nr("\\larr","\\leftarrow"),Nr("\\lArr","\\Leftarrow"),Nr("\\Larr","\\Leftarrow"),Nr("\\lrarr","\\leftrightarrow"),Nr("\\lrArr","\\Leftrightarrow"),Nr("\\Lrarr","\\Leftrightarrow"),Nr("\\Mu","\\mathrm{M}"),Nr("\\natnums","\\mathbb{N}"),Nr("\\Nu","\\mathrm{N}"),Nr("\\Omicron","\\mathrm{O}"),Nr("\\plusmn","\\pm"),Nr("\\rarr","\\rightarrow"),Nr("\\rArr","\\Rightarrow"),Nr("\\Rarr","\\Rightarrow"),Nr("\\real","\\Re"),Nr("\\reals","\\mathbb{R}"),Nr("\\Reals","\\mathbb{R}"),Nr("\\Rho","\\mathrm{P}"),Nr("\\sdot","\\cdot"),Nr("\\sect","\\S"),Nr("\\spades","\\spadesuit"),Nr("\\sub","\\subset"),Nr("\\sube","\\subseteq"),Nr("\\supe","\\supseteq"),Nr("\\Tau","\\mathrm{T}"),Nr("\\thetasym","\\vartheta"),Nr("\\weierp","\\wp"),Nr("\\Zeta","\\mathrm{Z}"),Nr("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Nr("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Nr("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Nr("\\bra","\\mathinner{\\langle{#1}|}"),Nr("\\ket","\\mathinner{|{#1}\\rangle}"),Nr("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Nr("\\Bra","\\left\\langle#1\\right|"),Nr("\\Ket","\\left|#1\\right\\rangle");const Hn=e=>t=>{const r=t.consumeArg().tokens,n=t.consumeArg().tokens,o=t.consumeArg().tokens,s=t.consumeArg().tokens,i=t.macros.get("|"),a=t.macros.get("\\|");t.macros.beginGroup();const l=t=>r=>{e&&(r.macros.set("|",i),o.length&&r.macros.set("\\|",a));let s=t;if(!t&&o.length){"|"===r.future().text&&(r.popToken(),s=!0)}return{tokens:s?o:n,numArgs:0}};t.macros.set("|",l(!1)),o.length&&t.macros.set("\\|",l(!0));const h=t.consumeArg().tokens,c=t.expandTokens([...s,...h,...r]);return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}};Nr("\\bra@ket",Hn(!1)),Nr("\\bra@set",Hn(!0)),Nr("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Nr("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Nr("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Nr("\\angln","{\\angl n}"),Nr("\\blue","\\textcolor{##6495ed}{#1}"),Nr("\\orange","\\textcolor{##ffa500}{#1}"),Nr("\\pink","\\textcolor{##ff00af}{#1}"),Nr("\\red","\\textcolor{##df0030}{#1}"),Nr("\\green","\\textcolor{##28ae7b}{#1}"),Nr("\\gray","\\textcolor{gray}{#1}"),Nr("\\purple","\\textcolor{##9d38bd}{#1}"),Nr("\\blueA","\\textcolor{##ccfaff}{#1}"),Nr("\\blueB","\\textcolor{##80f6ff}{#1}"),Nr("\\blueC","\\textcolor{##63d9ea}{#1}"),Nr("\\blueD","\\textcolor{##11accd}{#1}"),Nr("\\blueE","\\textcolor{##0c7f99}{#1}"),Nr("\\tealA","\\textcolor{##94fff5}{#1}"),Nr("\\tealB","\\textcolor{##26edd5}{#1}"),Nr("\\tealC","\\textcolor{##01d1c1}{#1}"),Nr("\\tealD","\\textcolor{##01a995}{#1}"),Nr("\\tealE","\\textcolor{##208170}{#1}"),Nr("\\greenA","\\textcolor{##b6ffb0}{#1}"),Nr("\\greenB","\\textcolor{##8af281}{#1}"),Nr("\\greenC","\\textcolor{##74cf70}{#1}"),Nr("\\greenD","\\textcolor{##1fab54}{#1}"),Nr("\\greenE","\\textcolor{##0d923f}{#1}"),Nr("\\goldA","\\textcolor{##ffd0a9}{#1}"),Nr("\\goldB","\\textcolor{##ffbb71}{#1}"),Nr("\\goldC","\\textcolor{##ff9c39}{#1}"),Nr("\\goldD","\\textcolor{##e07d10}{#1}"),Nr("\\goldE","\\textcolor{##a75a05}{#1}"),Nr("\\redA","\\textcolor{##fca9a9}{#1}"),Nr("\\redB","\\textcolor{##ff8482}{#1}"),Nr("\\redC","\\textcolor{##f9685d}{#1}"),Nr("\\redD","\\textcolor{##e84d39}{#1}"),Nr("\\redE","\\textcolor{##bc2612}{#1}"),Nr("\\maroonA","\\textcolor{##ffbde0}{#1}"),Nr("\\maroonB","\\textcolor{##ff92c6}{#1}"),Nr("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Nr("\\maroonD","\\textcolor{##ca337c}{#1}"),Nr("\\maroonE","\\textcolor{##9e034e}{#1}"),Nr("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Nr("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Nr("\\purpleC","\\textcolor{##aa87ff}{#1}"),Nr("\\purpleD","\\textcolor{##7854ab}{#1}"),Nr("\\purpleE","\\textcolor{##543b78}{#1}"),Nr("\\mintA","\\textcolor{##f5f9e8}{#1}"),Nr("\\mintB","\\textcolor{##edf2df}{#1}"),Nr("\\mintC","\\textcolor{##e0e5cc}{#1}"),Nr("\\grayA","\\textcolor{##f6f7f7}{#1}"),Nr("\\grayB","\\textcolor{##f0f1f2}{#1}"),Nr("\\grayC","\\textcolor{##e3e5e6}{#1}"),Nr("\\grayD","\\textcolor{##d6d8da}{#1}"),Nr("\\grayE","\\textcolor{##babec2}{#1}"),Nr("\\grayF","\\textcolor{##888d93}{#1}"),Nr("\\grayG","\\textcolor{##626569}{#1}"),Nr("\\grayH","\\textcolor{##3b3e40}{#1}"),Nr("\\grayI","\\textcolor{##21242c}{#1}"),Nr("\\kaBlue","\\textcolor{##314453}{#1}"),Nr("\\kaGreen","\\textcolor{##71B307}{#1}");const On={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class En{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Tn(Bn,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new An(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){let t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),({tokens:n,end:r}=this.consumeArg(["]"]))}else({tokens:n,start:t,end:r}=this.consumeArg());return this.pushToken(new Ir("EOF",r.loc)),this.pushTokens(n),t.range(r,"")}consumeSpaces(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}}consumeArg(e){const t=[],r=e&&e.length>0;r||this.consumeSpaces();const o=this.future();let s,i=0,a=0;do{if(s=this.popToken(),t.push(s),"{"===s.text)++i;else if("}"===s.text){if(--i,-1===i)throw new n("Extra }",s)}else if("EOF"===s.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[a]:"}")+"'",s);if(e&&r)if((0===i||1===i&&"{"===e[a])&&s.text===e[a]){if(++a,a===e.length){t.splice(-a,a);break}}else a=0}while(0!==i||r);return"{"===o.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:o,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");const r=t[0];for(let e=0;ethis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){const t=this.popToken(),r=t.text,o=t.noexpand?null:this._getExpansion(r);if(null==o||e&&o.unexpandable){if(e&&null==o&&"\\"===r[0]&&!this.isDefined(r))throw new n("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);let s=o.tokens;const i=this.consumeArgs(o.numArgs,o.delimiters);if(o.numArgs){s=s.slice();for(let e=s.length-1;e>=0;--e){let t=s[e];if("#"===t.text){if(0===e)throw new n("Incomplete placeholder at end of macro body",t);if(t=s[--e],"#"===t.text)s.splice(e+1,1);else{if(!/^[1-9]$/.test(t.text))throw new n("Not a valid argument number",t);s.splice(e,2,...i[+t.text-1])}}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(!1===this.expandOnce()){const e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Ir(e)]):void 0}expandTokens(e){const t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(!1===this.expandOnce(!0)){const e=this.stack.pop();e.treatAsRelax&&(e.noexpand=!1,e.treatAsRelax=!1),t.push(e)}return this.countExpansion(t.length),t}expandMacroAsText(e){const t=this.expandMacro(e);return t?t.map((e=>e.text)).join(""):t}_getExpansion(e){const t=this.macros.get(e);if(null==t)return t;if(1===e.length){const t=this.lexer.catcodes[e];if(null!=t&&13!==t)return}const r="function"==typeof t?t(this):t;if("string"==typeof r){let e=0;if(-1!==r.indexOf("#")){const t=r.replace(/##/g,"");for(;-1!==t.indexOf("#"+(e+1));)++e}const t=new An(r,this.settings),n=[];let o=t.lex();for(;"EOF"!==o.text;)n.push(o),o=t.lex();n.reverse();return{tokens:n,numArgs:e}}return r}isDefined(e){return this.macros.has(e)||wn.hasOwnProperty(e)||se.math.hasOwnProperty(e)||se.text.hasOwnProperty(e)||On.hasOwnProperty(e)}isExpandable(e){const t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:wn.hasOwnProperty(e)&&!wn[e].primitive}}const Ln=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,Dn=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Vn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},Pn={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"};class Fn{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new En(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{const e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){const t=this.nextToken;this.consume(),this.gullet.pushToken(new Ir("}")),this.gullet.pushTokens(e);const r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r}parseExpression(e,t){const r=[];for(;;){"math"===this.mode&&this.consumeSpaces();const n=this.fetch();if(-1!==Fn.endOfExpression.indexOf(n.text))break;if(t&&n.text===t)break;if(e&&wn[n.text]&&wn[n.text].infix)break;const o=this.parseAtom(t);if(!o)break;"internal"!==o.type&&r.push(o)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(e){let t,r=-1;for(let o=0;o=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);const r=se[this.mode][t].group,n=qr.range(e);let s;if(re.hasOwnProperty(r)){const e=r;s={type:"atom",mode:this.mode,family:e,loc:n,text:t}}else s={type:r,mode:this.mode,loc:n,text:t};o=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),o={type:"textord",mode:"text",loc:qr.range(e),text:t}}if(this.consume(),r)for(let t=0;t - -/*! - * Perlite (https://github.com/secure-77/Perlite) - * Author: sec77 (https://secure77.de) - * Licensed under MIT (https://github.com/secure-77/Perlite/blob/main/LICENSE) -*/ - - -//// load default settings - -// define perlite location on webserver -//var uriPath = '/perlite/' -var uriPath = '/' - - -// define home file -var homeFile = "README"; - -if ($('#index').data('option')) { - - homeFile = $('#index').data('option'); -} - -// disable pophovers -if ($('#disablePopHovers').data('option') == true && localStorage.getItem("disablePopUp") === null) { - - $('#disablePopUp').addClass('is-enabled') - localStorage.setItem('disablePopUp', 'true'); - -} - -// show toc -if ($('#showTOC').data('option') == false || localStorage.getItem("showTOC") === false) { - - localStorage.setItem("showTOC", "false") - $('#outline').css('display', 'none') -} - -if ($('#showLocalGraph').data('option') == false || localStorage.getItem("showLocalGraph") === false) { - - localStorage.setItem("showLocalGraph", "false") - $('#localGraph').css('display', 'none') -} - - -/** - * unslugURL - * @param {String} targetPath - */ -function unslugURL(targetPath) { - - decodedURI = decodeURIComponent(targetPath); - decodedURI = decodedURI.replaceAll('-', ' ') - decodedURI = decodedURI.replaceAll('~', '-') - decodedURI = decodedURI.replaceAll('%80', '~') - - // when perlite is in subdirectory remove it for content retrieval - if (decodedURI.startsWith(uriPath)) { - decodedURI = decodedURI.substring(uriPath.length - 1) - } - - return decodedURI; -} - -/** - * slugURL - * @param {String} targetPath - */ -function slugURL(targetPath) { - - encodedURI = decodeURIComponent(targetPath) - encodedURI = encodedURI.replaceAll('~', '%80') - encodedURI = encodedURI.replaceAll('-', '~') - encodedURI = encodedURI.replaceAll(' ', '-') - - // remove absolute path - if (encodedURI.substring(0, 1) == '/') { - encodedURI = encodedURI.substring(1) - } - - // when perlite is in subdirectory remove it for content retrieval - if (encodedURI.startsWith(uriPath)) { - encodedURI = encodedURI.substring(uriPath.length - 1) - } - - - return encodedURI; -} - - - -/** - * scroll to anchor - * @param {String} aid - */ -function scrollToAnchor(aid) { - var aTag = $("a[name='" + aid + "']"); - $('html,body,div').animate({ scrollTop: aTag.offset().top }, 'slow'); -} - - -/** - * get markdown content - * @param {String} str - * @param {Boolean} home - * @param {Boolean} popHover - * @param {String} anchor - */ -function getContent(str, home = false, popHover = false, anchor = "") { - - // reset content if request is empty - if (str.length == 0) { - document.getElementById("mdContent").innerHTML = ""; - document.getElementsByClassName("modal-body")[0].innerHTML = ""; - return; - } else { - - requestPath = uriPath + "content.php?mdfile=" + str; - - if (home) { - if ($("div.no-mobile").css("display") == "none") { - return - } - requestPath = uriPath + "content.php?home"; - - } - - mdContent = $("#mdContent")[0] - - - $.ajax({ - url: requestPath, success: function (result) { - - if (popHover == false) { - - // set content - $("#mdContent").html(result); - - // set word and char count - $("#wordCount").text($(".wordCount").text() + ' words'); - $("#charCount").text($(".charCount").text() + ' characters'); - - // set Browser, document title and nav path - var title = $("div.mdTitleHide").first().text(); - if (title) { - - //hrefTitle = '' + title + '' - title = title.substring(1) - titleElements = title.split('/') - title = titleElements.splice(-1) - parentTitle = titleElements.join(' / ') - if (parentTitle) { - parentTitle = parentTitle + ' / '; - } - $("div.view-header-title-parent").text(parentTitle); - $("div.view-header-title").text(title); - $(".inline-title").text(title); - - $("title").text(title + ' - ' + $("p.vault").text() + ' - ' + $("p.perliteTitle").text()); - - // set edit button url - $('.clickable-icon.view-action[aria-label="Click to edit"]') - .attr("href", "obsidian://open?vault=" + encodeURIComponent($("p.vault").text()) + "&file=" + encodeURIComponent(title)) - } - - // Outlines - var toc = ""; - var level = 0; - - document.getElementById("mdContent").innerHTML = - document.getElementById("mdContent").innerHTML.replace( - /([^<]+)<\/h([\d])>/gi, - function (str, openLevel, titleText, closeLevel) { - - if (openLevel != closeLevel) { - return str; - } - if (openLevel > level) { - toc += (new Array(openLevel - level + 1)).join('
'); - } else if (openLevel < level) { - toc += (new Array(level - openLevel + 1)).join("
"); - } - - level = parseInt(openLevel); - - var anchor = titleText.replace(/ /g, "_"); - toc += ''; - - return "" - + "" + "" + titleText + ""; - - } - ); - - if (level) { - toc += (new Array(level + 1)).join(""); - } - - document.getElementById("toc").innerHTML = toc; - - - // add Image Click popup - $(".pop").on("click", function () { - - var path = $(this).find("img").attr("src"); - result = ''; - $("#img-content").html(result); - $(".modal").css("width", "unset"); - $(".modal").css("height", "unset"); - $(".modal").css("max-width", "100%"); - $(".modal").css("max-height", "100%"); - $(".img-modal-title").text("Image preview"); - $("#img-modal").css("display", "flex"); - - }); - - - // trigger graph render on side bar - renderGraph(false, str); - - //resize graph on windows rezise - $(window).resize(function () { - renderGraph(false, str, false); - }); - - - // update the url - if (home == false) { - - target = slugURL(str) - window.history.pushState({}, "", location.protocol + '//' + location.host + uriPath + target + anchor); - - } - - // add Tag section - $('#tags').html("") - $('.tag').each(function (index) { - const count = index + 1; - const originalHTML = $(this).prop('outerHTML'); - const countTag = '
' + count + '
'; - $('#tags').append(originalHTML); - }); - - // hide them when no tags are found - if ($('#tags').html() == "") { - $('#tags_container').css('display', 'none') - } else { - $('#tags_container').css('display', 'block') - } - - - // on Tag click -> start search - $('.tag').click(function (e) { - - e.preventDefault(); - - target = $(e.target); - $('.workspace-tab-header[data-type="search"]').click(); - $('*[type="search"]').val(this.text); - search(this.text); - - // on mobile go to search - if ($(window).width() < 990) { - - $('.workspace').addClass('is-left-sidedock-open'); - $('.mod-left-split').removeClass('is-sidedock-collapse'); - $('.mod-left').removeClass('is-collapsed'); - $('.workspace-ribbon.side-dock-ribbon.mod-left').css('display', 'flex'); - - } - - }); - - // Toogle Front Matter Meta Container - $('.metadata-properties-heading').click(function (e) { - - e.preventDefault(); - - if ($('.metadata-container').hasClass('is-collapsed')) { - $('.metadata-container').removeClass('is-collapsed'); - } else { - $('.metadata-container').addClass('is-collapsed'); - } - - }); - - // Toogle Collapsable Callout Container - $('.callout-fold').on('click', function (e) { - - e.preventDefault(); - e.stopPropagation(); - target = $(e.target); - - for (let i = 0; i < 5; i++) { - if (target.is('.callout', 'is-collapsible')) { - break; - } - target = target.parent() - } - - calloutContent = target.find('.callout-content') - calloutIcon = target.find('.callout-fold') - - if (calloutContent.hasClass('is-collapsed-callout')) { - calloutContent.removeClass('is-collapsed-callout'); - } else { - calloutContent.addClass('is-collapsed-callout'); - } - - if (calloutIcon.hasClass('is-collapsed')) { - calloutIcon.removeClass('is-collapsed'); - } else { - calloutIcon.addClass('is-collapsed'); - } - - if (target.hasClass('is-collapsed')) { - target.removeClass('is-collapsed'); - } else { - target.addClass('is-collapsed'); - } - - }); - - // popHover (on hover internal links) - target = $('.disablePopUp') - - if (!target.hasClass('is-enabled')) { - - var currentMousePos = { x: -1, y: -1 }; - $(document).mousemove(function (event) { - currentMousePos.x = event.pageX; - currentMousePos.y = event.pageY; - }); - - stopThis = false; - // enter the hover box - $('.popover.hover-popover').mouseenter(function (e) { - stopThis = true - $('.popover.hover-popover').css('display', 'unset'); - }) - // leave the hover box - $('.popover.hover-popover').mouseleave(function (e) { - e.preventDefault(); - - hoverTimer = setTimeout(function () { - - $('.popover.hover-popover').css('display', 'none'); - stopThis = false; - - }, 500); - }) - - // leave the link - $('.internal-link').mouseleave(function (e) { - e.preventDefault(); - - hoverTimer = setTimeout(function () { - - if (stopThis == false) { - $('.popover.hover-popover').css('display', 'none'); - } - }, 1200); - }) - - $('.internal-link').mouseenter(function (e) { - e.preventDefault(); - - // update position for hover element - $('.popover.hover-popover').css({ top: currentMousePos.y, left: currentMousePos.x }); - - const urlParams = new URLSearchParams(this.href.split('?')[1]); - if (urlParams.has('link')) { - var target = urlParams.get('link'); - target = encodeURIComponent(target); - } else { - target = unslugURL(window.location.pathname) - } - - // get content of link - if (target) { - getContent(target, false, true) - } - - }); - - } - - - //check setting if metadata is collapsed or not - if ($('.metadataOption').hasClass('is-enabled')) { - $('.metadata-properties-heading').trigger('click') - } - mdContent = $("#mdContent")[0] - - // handle pop up and hover - } else { - - // set content - $("#mdHoverContent").html(result); - $("#popUpContent").html(result); - - // set title - var title = $("div.mdTitleHide")[1].innerText; - title = title.substring(1) - titleElements = title.split('/') - title = titleElements.splice(-1) - $(".inline-title.pophover-title").text(title); - $(".popup-modal-title").text(title); - - - // show pophover - $('.popover.hover-popover').css('display', 'unset'); - - mdContent = $("#mdHoverContent")[0] - - } - - // highlight code - hljs.highlightAll(); - - var snippets = document.getElementsByTagName('pre'); - var numberOfSnippets = snippets.length; - for (var i = 0; i < numberOfSnippets; i++) { - //code = snippets[i].getElementsByTagName('code')[0].innerText; - - snippets[i].classList.add('hljs'); // append copy button to pre tag - - snippets[i].innerHTML = '' + snippets[i].innerHTML; // append copy button - - snippets[i].getElementsByClassName('copy-code-button')[0].addEventListener("click", function () { - this.innerText = 'Copying..'; - button = this; - code = $(button).next()[0].innerText - navigator.clipboard.writeText(code).then(function () { - button.innerText = 'Copied!'; - }, function (err) { - button.innerText = 'Cant Copy!'; - console.error('Async: Could not copy Code: ', err); - }); - - setTimeout(function () { - button.innerText = 'Copy'; - }, 1000) - - }); - } - - - // run mobile settings - isMobile(); - - //render LaTeX (Katex) - renderMathInElement(mdContent, - { - delimiters: [ - { left: "$$", right: "$$", display: true }, - { left: "\\[", right: "\\]", display: true }, - { left: "$", right: "$", display: false }, - { left: "\\(", right: "\\)", display: false } - ] - } - ); - - // clean internal links in mermaid elements - var mermaids = document.getElementsByClassName("language-mermaid"); - - for (var i = 0; i < mermaids.length; i++) { - - var mermaidLinks = mermaids[i].getElementsByTagName('a'); - - for (f = 0; f < mermaidLinks.length;) { - - var linkElement = mermaidLinks[f] - - if (linkElement.getAttribute("href").startsWith(uriPath)) { - - var textonly = '[[' + linkElement.innerHTML + ']]'; - linkElement.replaceWith(textonly) - } - - } - - } - - //render mermaid - mermaid.init(undefined, document.querySelectorAll(".language-mermaid")); - - //scroll to anchor - - if (anchor != "") { - scrollToAnchor(anchor.substring(1)); - } - - - } - }); - } -}; - -/** - * Gets the state of the graph setting inputs as a list. - * The options in order are: \ - * [showNoLinks, showTags, sizeDepsOnConns] - * @returns {Array} - */ -function getGraphConfig() { - var showNoLinks = !$(".graphNoLinkOption").hasClass('is-enabled') - var showTags = $(".graphShowTagsOption").hasClass("is-enabled") - var sizeDepsOnConns = $(".graphSizeDepsOnConnsOption").hasClass("is-enabled") - - return [showNoLinks, showTags, sizeDepsOnConns]; -} - -/** - * vis js stuff - * @param {Boolean} modal - * @param {String} path - * @param {Boolean} filter_emptyNodes - * @param {Boolean} show_tags - * @param {Boolean} sizeDepsOnConns - */ -function renderGraph(modal, path = "", filter_emptyNodes = false, show_tags = true, sizeDepsOnConns = false) { - - // no graph found exit - if ($("#allGraphNodes").length == 0 || $("#allGraphNodes").text == '[]') { - console.log("Graph: no data found") - return; - } - - - var visNodes = document.getElementById('allGraphNodes').textContent; - var visEdges = document.getElementById('allGraphEdges').textContent; - - var jsonNodes = JSON.parse(visNodes); - var jsonEdges = JSON.parse(visEdges); - - var currId = 0; - path = decodeURIComponent(path); - if (path == 'home') { - path = '/' + homeFile; - } - - - // reset backlings count - - $('#backlinksCount').text(0); - - // get current node - for (const x in jsonNodes) { - if (path == ('/' + (jsonNodes[x]['title']).replace('&', '&'))) { - currId = jsonNodes[x]['id']; - break; - } - else if (modal == false) { - currId = -1; - } - } - - // cancel graph display if no node was found - if (currId == -1) { - return; - } - - // Graph Defaults - - nodeSize = parseInt($('.slider.nodeSize').val()) - varLinkDistance = parseInt($('.slider.linkDistance').val()) - varLinkThickness = parseFloat($('.slider.linkThickness').val()) - varGraphStyle = $('#graphStyleDropdown').val() - - - var options = { - interaction: { - hover: true, - }, - layout: { - improvedLayout: true, - clusterThreshold: 10000, - }, - physics: { - solver: 'forceAtlas2Based', - solver: 'barnesHut', - enabled: true, - stabilization: { - enabled: true, - iterations: 1000, - updateInterval: 10, - onlyDynamicEdges: false, - fit: true - } - }, - // configure: { - // enabled: true, - // filter: 'nodes,edges', - // container: container, - // showButton: true - // } , - edges: { - length: varLinkDistance, - width: varLinkThickness, - color: getComputedStyle(document.querySelector('.graph-view.color-line')).color, - smooth: { - type: varGraphStyle, - enabled: true, - } - }, - - nodes: { - shape: 'dot', - size: nodeSize, - scaling: { - min: 10, - max: 30 - }, - font: { - size: 16, - color: getComputedStyle(document.querySelector('.graph-view.color-text')).color, - }, - borderWidth: 1, - color: { - background: getComputedStyle(document.querySelector('.graph-view.color-fill')).color, - border: getComputedStyle(document.querySelector('.graph-view.color-fill')).color, - highlight: { - border: getComputedStyle(document.querySelector('.graph-view.color-fill')).color, - background: getComputedStyle(document.querySelector('.graph-view.color-fill')).color, - }, - hover: { - border: getComputedStyle(document.querySelector('.graph-view.color-fill')).color, - background: getComputedStyle(document.querySelector('.graph-view.color-fill-highlight')).color, - }, - }, - }, - - groups: { - tag: { - color: { - background: getComputedStyle(document.querySelector('.graph-view.color-fill-tag')).color, - border: getComputedStyle(document.querySelector('.graph-view.color-fill-tag')).color, - highlight: { - border: getComputedStyle(document.querySelector('.graph-view.color-fill-tag')).color, - background: getComputedStyle(document.querySelector('.graph-view.color-fill-tag')).color, - }, - } - } - } - }; - - var network; - - // show the whole graph - if (modal) { - - var container_modal = document.getElementById('graph_all'); - - var nodes = new vis.DataSet(jsonNodes); - var edges = new vis.DataSet(jsonEdges); - - edgeView = edges; - nodeView = nodes; - - if (filter_emptyNodes) { - nodeView = new vis.DataView(nodes, { - filter: function (node) { - connEdges = edgeView.get({ - filter: function (edge) { - if (node.id == currId) { - return true; - } - return ( - (edge.to == node.id) || (edge.from == node.id)); - } - }); - return connEdges.length > 0; - } - }); - - } - - // filter out tags - if (!show_tags) { - nodeView = new vis.DataView(nodes, { - filter: function (node) { - return !(node.group && node.group === "tag"); - } - }) - } - - // overwrite scaling function to make all nodes the same size - if (!sizeDepsOnConns) { - options["nodes"]["scaling"]["customScalingFunction"] = function (min, max, total, value) { - var maxSize = options["nodes"]["scaling"]["max"] - var minSize = options["nodes"]["scaling"]["min"] - - var diff = maxSize - minSize; - - return Math.max(0, (nodeSize - minSize) / diff); // reverse vis size calculation - } - } - - // provide the data in the vis format - var data = { - nodes: nodeView, - edges: edgeView - }; - - network = new vis.Network(container_modal, data, options); - - // show loading status - document.getElementById("loading-text").innerText = "loading graph: 0%"; - document.getElementById("loading-text").style.display = "unset"; - - network.on("stabilizationProgress", function (params) { - var widthFactor = params.iterations / params.total; - document.getElementById("loading-text").innerText = "loading graph: " + Math.round(widthFactor * 100) + "%"; - }); - - network.once("stabilizationIterationsDone", function () { - document.getElementById("loading-text").innerText = "loading graph: 100%"; - // really clean the dom element - setTimeout(function () { - document.getElementById("loading-text").style.display = "none"; - }, 500); - }); - - - - - //network.selectNodes([currId]); - var node = network.body.nodes[currId]; - node.setOptions({ - font: { - size: 20 - }, - color: { - background: getComputedStyle(document.querySelector('.graph-view.color-fill-focused')).color, - }, - }); - - - - // local Graph - } else { - - var myNodes = []; - var myEdges = []; - - options['edges']['length'] = 250; - - // add current node - for (const x in jsonNodes) { - jsonNodes[x]['label'] = (jsonNodes[x]['label']).replace('&', '&') - jsonNodes[x]['title'] = (jsonNodes[x]['title']).replace('&', '&') - if (path == ('/' + jsonNodes[x]['title'])) { - myNodes.push(jsonNodes[x]) - curNode = myNodes[0] - curNode.size = '20'; - curNode.color = { - background: getComputedStyle(document.querySelector('.graph-view.color-fill-focused')).color, - }; - - break; - } - } - - - function idExists(id) { - return myNodes.some(function (el) { - return el.id === id; - }); - } - - - // search linked nodes - for (const y in jsonEdges) { - if (currId == jsonEdges[y]['from']) { - - // add "To" node to the nodes - for (const x in jsonNodes) { - if (jsonEdges[y]['to'] == jsonNodes[x]['id']) { - if (!idExists(jsonNodes[x]['id'])) { - myNodes.push(jsonNodes[x]) - } - break; - } - } - - // add the link - myEdges.push(jsonEdges[y]); - - // search the backlinks - } else if (currId == jsonEdges[y]['to']) { - - // add "From" node to the nodes - for (const x in jsonNodes) { - if (jsonEdges[y]['from'] == jsonNodes[x]['id']) { - if (!idExists(jsonNodes[x]['id'])) { - myNodes.push(jsonNodes[x]) - } - break; - } - } - - // add the backlink - myEdges.push(jsonEdges[y]); - curr = $('#backlinksCount').text(); - $('#backlinksCount').text(parseInt(curr) + 1); - } - - } - - // build network structure - - var nodes = new vis.DataSet(myNodes); - var edges = new vis.DataSet(myEdges); - - // filter out tags - if (!show_tags) { - nodeView = new vis.DataView(nodes, { - filter: function (node) { - return !(node.group && node.group === "tag"); - } - }) - } - - // overwrite scaling function to make all nodes the same size - options["nodes"]["scaling"]["customScalingFunction"] = function (min, max, total, value) { - var maxSize = options["nodes"]["scaling"]["max"] - var minSize = options["nodes"]["scaling"]["min"] - - var diff = maxSize - minSize; - - return Math.max(0, (nodeSize - minSize) / diff); // reverse vis size calculation - } - - var data = { - nodes: nodes, - edges: edges - }; - - // update linked mentions - $("#nodeCount").text(nodes.length - 1); - - var container = document.getElementById('mynetwork'); - network = new vis.Network(container, data, options); - - - } - - // jump to file function - if (network) { - - network.on("click", function (properties) { - - if (!properties.nodes.length) return; - var node = nodes.get(properties.nodes[0]); - - if (node.group && node.group === "tag") { - $('.workspace-tab-header[data-type="search"]').click(); - $('*[type="search"]').val(node.title); - search(node.title); - - } else { - var glink = uriPath + node.title; - window.open(glink, "_self"); - } - }); - } - -}; - -/** - * change mobile settings - */ -function isMobile() { - - if ($(window).width() < 990) { - - hideLeftMobile(); - - //disable mousehover on mobile - $('.internal-link').unbind("mouseenter"); - $('.internal-link').unbind("mouseleave"); - - //override click for internal-links to use popUp instead - if ($('.popUpSetting').hasClass('is-enabled')) { - $('.internal-link').click(function (e) { - e.preventDefault(); - const urlParams = new URLSearchParams(this.href.split('?')[1]); - if (urlParams.has('link')) { - var target = urlParams.get('link'); - target = encodeURIComponent(target); - } else { - - const path = new URL(this.href).pathname; - target = unslugURL(path) - - } - - - if (target) { - getContent(target, false, true) - } - $("#popUp").css("display", "flex"); - $(".goToLink").html(' go to site

') - }) - - } - } - -}; - -function hideLeftMobile() { - - $('.workspace').removeClass('is-left-sidedock-open'); - $('.mod-left-split').addClass('is-sidedock-collapse'); - $('.mod-left').addClass('is-collapsed'); - //$('.workspace-ribbon.side-dock-ribbon.mod-left').css('display', 'none'); - -}; - -/** - * search - * @param {String} str - */ -function search(str) { - if (str.length == 0) { - $("div.search-results-children").html(""); - return; - } else { - - str = encodeURIComponent(str); - - $.ajax({ - url: uriPath + "content.php?search=" + str, success: function (result) { - - $("div.search-results-children").html(result); - let preCodes = $("div.search-results-children").find("pre code") - for (var i = 0; i < preCodes.length; i++) { - hljs.highlightElement(preCodes[i]); - } - } - }); - } -}; - -// edit button - -/** - * @param {String} name - * @returns {string} - */ -function getCookie(name) { - const value = `; ${document.cookie}`; - const parts = value.split(`; ${name}=`); - if (parts.length === 2) return parts.pop().split(';').shift(); -}; - -/** - * helper - * @param {String} oldClass - * @param {String} newClass - */ -function replaceClass(oldClass, newClass) { - var elem = $("." + oldClass); - elem.removeClass(oldClass); - elem.addClass(newClass); -}; - -/** - * search entry - * @param {Event} e - */ -function toggleSearchEntry(e) { - - el = $(e.target); - //e.preventDefault(); - - if (el.hasClass('svg-icon right-triangle')) { - el = el.parent().parent().parent() - } else if (el.hasClass('tree-item-icon collapse-icon')) { - el = el.parent().parent() - } else { - return - } - - if (el.hasClass('is-collapsed')) { - el.removeClass('is-collapsed'); - el.find('.search-result-file-matches').css("display", "unset"); - - } else { - el.addClass('is-collapsed'); - el.find('.search-result-file-matches').css("display", "none"); - } - -}; - -/** - * nav menu collapse functions - * @param {Event} e - */ -function toggleNavFolder(e) { - el = $(e.target); - - - if (el.hasClass('nav-folder-title-content')) { - elIcon = el.prev() - el = el.parent() - el = el.next(el) - } else if (el.hasClass('collapse-icon')) { - elIcon = el - el = el.parent() - el = el.next(el) - } else if (el.hasClass('mod-collapsible')) { - elIcon = el.children()[0] - elIcon = $(elIcon) - el = el.next(el) - } else if (el.hasClass('svg-icon right-triangle')) { - elIcon = el.parent() - el = el.parent().parent() - el = el.next(el) - } else if (el.is('path')) { - el = el.parent().parent().parent() - el = el.next(el) - - } - - if (elIcon.hasClass('is-collapsed')) { - elIcon.removeClass('is-collapsed'); - - } else { - elIcon.addClass('is-collapsed'); - } - - if (el.hasClass('collapse')) { - el.removeClass('collapse'); - - } else { - el.addClass('collapse'); - } - - return -}; - -/** - * - * @param {String} target - * @param {Boolean} openAll - */ -function openNavMenu(target, openAll = false) { - - // open nav menu to target - var navId = decodeURIComponent(target); - linkname = navId.match(/([^\/]*)\/*$/)[1] - - // search and open tree reverse - navId = navId.replace(/[^a-zA-Z0-9\-]/g, '_'); - var next = $('#' + navId).parent().closest('.collapse'); - - do { - next.removeClass('collapse'); - elIcon = next.prev().children()[0] - elIcon = $(elIcon) - elIcon.removeClass('is-collapsed'); - next = next.parent().closest('.collapse'); - } - while (next.length != 0); - - - // set focus to link - var searchText = linkname; - - $("div").filter(function () { - return $(this).text() === searchText; - }).parent().addClass('perlite-link-active is-active'); - -}; - -function hideTooltip() { - $('.tooltip').css("display", "none") -}; - - - -// on document ready stuff -$(document).ready(function () { - - - // load settings from storage - // ---------------------------------------- - - // text size - if (localStorage.getItem('Font_size')) { - $('body').css('--font-text-size', localStorage.getItem('Font_size') + 'px'); - } - - $('.slider.font-size').val(parseInt($('body').css('--font-text-size'))); - - - // popHovers - if (localStorage.getItem('disablePopUp') === 'true') { - $('.disablePopUp').addClass('is-enabled') - } else if (localStorage.getItem('disablePopUp') === 'false') { - $('.disablePopUp').removeClass('is-enabled') - } - - // inline title - if (localStorage.getItem('InlineTitle') === 'hide') { - $('.inlineTitleOption').removeClass('is-enabled') - $('body').removeClass('show-inline-title') - } - - // metadata - if (localStorage.getItem('Metadata') === 'hide') { - $('.metadataOption').addClass('is-enabled') - $('.metadata-container').addClass('is-collapsed'); - } - - // light mode - if (localStorage.getItem('lightMode') === 'true') { - $('body').removeClass('theme-dark') - $('body').addClass('theme-light') - $('.darkModeOption').removeClass('is-enabled') - } - - // popUp Setting - if (localStorage.getItem('popUpEnabled') === 'true') { - $('.popUpSetting').addClass('is-enabled') - } - - - - // graph settings & defaults - - if (localStorage.getItem('Graph_Style')) { - $('#graphStyleDropdown').val(localStorage.getItem('Graph_Style')) - } else { - $('#graphStyleDropdown').val('dynamic') - } - - if (localStorage.getItem('Graph_NodeSize')) { - $('.slider.nodeSize').val(localStorage.getItem('Graph_NodeSize')) - } else { - $('.slider.nodeSize').val(12) - } - - if (localStorage.getItem('Graph_LinkDistance')) { - $('.slider.linkDistance').val(localStorage.getItem('Graph_LinkDistance')) - } else { - $('.slider.linkDistance').val(150) - } - - if (localStorage.getItem('Graph_LinkThickness')) { - $('.slider.linkThickness').val(localStorage.getItem('Graph_LinkThickness')) - } else { - $('.slider.linkThickness').val(1) - } - - if (localStorage.getItem('Graph_Orphans') === 'hide') { - $('.graphNoLinkOption').removeClass('is-enabled') - } - - if (localStorage.getItem('Graph_Tags') === 'hide') { - $('.graphShowTagsOption').removeClass('is-enabled') - } - - if (localStorage.getItem('Graph_NodeScaling') === 'depsOnSize') { - $('.graphSizeDepsOnConnsOption').addClass('is-enabled') - } - - if (localStorage.getItem('Graph_Autoreload') === 'no') { - $('.graphAutoReloadOption').removeClass('is-enabled') - } - - - // panel sizes - if (localStorage.getItem('leftSizePanel')) { - $('.workspace-split.mod-horizontal.mod-left-split').css("width", localStorage.getItem('leftSizePanel')) - } else { - $('.workspace-split.mod-horizontal.mod-left-split').css("width", window.innerWidth / 6) - } - - if (localStorage.getItem('rightSizePanel')) { - $('.workspace-split.mod-horizontal.mod-right-split').css("width", localStorage.getItem('rightSizePanel')) - } else { - $('.workspace-split.mod-horizontal.mod-right-split').css("width", window.innerWidth / 6) - } - - - //check for graph and hide local graph if none exists - if ($("#allGraphNodes").length == 0 || $("#allGraphNodes").text == '[]') { - - $('.clickable-icon.side-dock-ribbon-action[aria-label="Open graph view"]').css('display', 'none') - $('.clickable-icon.view-action[aria-label="Open outline"]').css('display', 'none') - $('.clickable-icon.view-action[aria-label="Open localGraph"]').css('display', 'none') - $('#localGraph').css('display', 'none') - $('#outline').css('display', 'inline') - - } - - - // direct links - const queryString = window.location.search; - const urlParams = new URLSearchParams(queryString); - - var target = ""; - if (urlParams.has('link')) { - var target = urlParams.get('link'); - - } else { - - target = unslugURL(window.location.pathname) - - } - - if (window.location.pathname != uriPath | urlParams.has('link')) { - - target = encodeURIComponent(target) - - var hash = window.location.hash; - - getContent(target, false, false, hash); - openNavMenu(target); - - } else { - - // load index page - getContent("home", true); - } - // on search submit - $('*[type="search"]').on('keypress', function (e) { - if (e.which == 13) { - search(this.value); - return false; - } - - }); - - - //mark current active menu item - $('.perlite-link').click(function (e) { - - e.preventDefault(); - $('.perlite-link').removeClass('perlite-link-active is-active'); - - $(this).addClass('perlite-link-active is-active'); - }); - - - - // toggle left sidedock - $('.sidebar-toggle-button.mod-left.sidebar').click(function (e) { - - e.preventDefault(); - - - if ($('.sidebar-toggle-button.mod-left.sidebar').hasClass('is-collapsed')) { - $('.workspace').addClass('is-left-sidedock-open'); - $('.mod-left-split').removeClass('is-sidedock-collapse'); - $('.mod-left').removeClass('is-collapsed'); - - } else { - - $('.workspace').removeClass('is-left-sidedock-open'); - $('.mod-left-split').addClass('is-sidedock-collapse'); - $('.mod-left').addClass('is-collapsed'); - } - - }); - - - $('.sidebar-toggle-button.mod-left.mobile-display').click(function (e) { - - if ($('.workspace-ribbon.side-dock-ribbon.mod-left').is(':hidden')) { - $('.workspace-ribbon.side-dock-ribbon.mod-left').css('display', 'flex') - } else { - $('.workspace-ribbon.side-dock-ribbon.mod-left').css('display', 'none') - } - - }) - - - - // toggle right sidedock - $('.sidebar-toggle-button.mod-right').click(function (e) { - - e.preventDefault(); - - if ($('.sidebar-toggle-button.mod-right').hasClass('is-collapsed')) { - $('.workspace').addClass('is-right-sidedock-open'); - $('.mod-right-split').removeClass('is-sidedock-collapse'); - $('.mod-right').removeClass('is-collapsed'); - - } else { - - $('.workspace').removeClass('is-right-sidedock-open'); - $('.mod-right-split').addClass('is-sidedock-collapse'); - $('.mod-right').addClass('is-collapsed'); - } - - }); - - - // click search - $('.workspace-tab-header[data-type="search"]').click(function (e) { - e.preventDefault(); - - $('.workspace-leaf-content[data-type="search"]').parent().css("display", "unset"); - $('.workspace-leaf-content[data-type="file-explorer"]').parent().css("display", "none"); - $('.workspace-tab-header[data-type="search"]').addClass('is-active mod-active'); - $('.workspace-tab-header[data-type="file-explorer"]').removeClass('is-active mod-active'); - - // set focus to search field - $('input[type=search]').focus(); - - }); - - // click file-explorer - $('.workspace-tab-header[data-type="file-explorer"]').click(function (e) { - e.preventDefault(); - $('.workspace-leaf-content[data-type="file-explorer"]').parent().css("display", "unset"); - $('.workspace-leaf-content[data-type="search"]').parent().css("display", "none"); - $('.workspace-tab-header[data-type="file-explorer"]').addClass('is-active mod-active'); - $('.workspace-tab-header[data-type="search"]').removeClass('is-active mod-active'); - }); - - // click expand-search-all - $('.clickable-icon.nav-action-button[aria-label="Collapse results"]').click(function (e) { - e.preventDefault(); - - if ($('.tree-item.search-result').hasClass('is-collapsed')) { - $('.tree-item.search-result').removeClass('is-collapsed'); - $('.search-result-file-matches').css("display", "unset"); - $('.clickable-icon.nav-action-button[aria-label="Collapse results"]').removeClass('is-active'); - - } else { - $('.tree-item.search-result').addClass('is-collapsed'); - $('.search-result-file-matches').css("display", "none"); - $('.clickable-icon.nav-action-button[aria-label="Collapse results"]').addClass('is-active'); - } - }); - - - // click expand-file-explorer-all - $('.clickable-icon.nav-action-button[aria-label="Expand all"]').click(function (e) { - e.preventDefault(); - target = $(e.target) - - $('.nav-folder-children.collapse').removeClass('collapse') - $('.nav-folder').removeClass('is-collapsed'); - $('.collapse-icon').removeClass('is-collapsed'); - $('.clickable-icon.nav-action-button[aria-label="Collapse all"]').css('display', 'unset'); - target.css('display', 'none'); - - }); - - - // click collapse file-explorer-all - $('.clickable-icon.nav-action-button[aria-label="Collapse all"]').click(function (e) { - e.preventDefault(); - target = $(e.target) - - parents = $('.nav-folder-children').parent() - - parents.each(function (index, value) { - parent = $(this) - if (!$(this).hasClass('mod-root')) { - parent.find('.nav-folder-children').addClass('collapse'); - parent.find('.collapse-icon').addClass('is-collapsed'); - } - }) - - $('.nav-folder').addClass('is-collapsed'); - $('.clickable-icon.nav-action-button[aria-label="Expand all"]').css('display', 'unset'); - target.css('display', 'none'); - - }); - - - // copy URL function - $('.clickable-icon.view-action[aria-label="Copy URL"]').click(function (e) { - e.preventDefault(); - target = $(e.target) - var text = window.location.href; - $('.tooltip').css("top", target.offset().top + 39); - $('.tooltip').css("left", target.offset().left); - $('.tooltip').css("height", "25px"); - $('.tooltip').css("display", "unset"); - - navigator.clipboard.writeText(text).then(function () { - $('.tooltip').text("URL copied to clipboard!"); - }, function (err) { - $('.tooltip').text("Could not copy URL"); - console.error('Async: Could not copy URL: ', err); - }); - - setTimeout(hideTooltip, 1500); - }); - - - - // rezise Handler right - const rightDockContainer = $('.workspace-split.mod-horizontal.mod-right-split') - $('.workspace-leaf-resize-handle.right-dock').mousedown(function (e) { - - e.preventDefault() - - $(document).mouseup(function (e) { - $(document).unbind('mousemove') - localStorage.setItem('rightSizePanel', rightDockContainer.css("width")) - }); - - $(document).mousemove(function (e) { - e.preventDefault() - rightDockContainer.css("width", $(document).width() - e.pageX) - - }); - - }); - - - // rezise Handler left - const leftDockContainer = $('.workspace-split.mod-horizontal.mod-left-split') - $('.workspace-leaf-resize-handle.left-dock').mousedown(function (e) { - - e.preventDefault() - - - $(document).mouseup(function (e) { - $(document).unbind('mousemove') - localStorage.setItem('leftSizePanel', leftDockContainer.css("width")) - }); - - $(document).mousemove(function (e) { - e.preventDefault() - leftDockContainer.css("width", e.pageX) - - }); - - }); - - - - // Global Settings and Event Handler - // -------------------------------- - - // load themes - var dropDownValues = ''; - var perliteDefault = "" - $('.theme').each(function (i) { - themeName = $(this).data('themename'); - themeId = $('.theme')[i].id; - dropDownValues += '' - - // get current active - if (!$('.theme')[i].disabled) { - perliteDefault = $('.theme')[i].id; - } - - }) - - - // fill dropdown - $('#themeDropdown').html(dropDownValues); - - // change theme - $("#themeDropdown").change(function (e) { - target = $(e.target) - - // disable all themes - $('.theme').attr("disabled", 'disabled'); - - //enable selected if its not default - selectedTheme = target.val() - - if (selectedTheme !== 'Default') { - $('#' + target.val()).attr('disabled', false); - } - - localStorage.setItem('Theme', target.val()); - - }); - - //set active theme - if (localStorage.getItem('Theme')) { - $('#themeDropdown').val(localStorage.getItem('Theme')); - $("#themeDropdown").trigger('change'); - - } else { - $('#themeDropdown').val(perliteDefault); - } - - - // reset Theme - $('#resetTheme').click(function () { - $('#themeDropdown').val(perliteDefault); - $('#themeDropdown').change(); - localStorage.removeItem('Theme'); - }) - - // text size input slider - $('.slider.font-size').click(function (e) { - e.preventDefault(); - target = $(e.target) - - $('body').css('--font-text-size', target.val() + 'px') - localStorage.setItem('Font_size', target.val()); - - $('.slider.font-size').val(parseInt($('body').css('--font-text-size'))); - - }); - - // Textsize Restore Defaults Button - $('.clickable-icon[aria-label="Restore text settings"]').click(function (e) { - e.preventDefault(); - - $('body').css('--font-text-size', '15px') - localStorage.removeItem('Font_size') - $('.slider.font-size').val(parseInt($('body').css('--font-text-size'))); - - }); - - // Panelsize Restore Defaults Button - $('.clickable-icon[aria-label="Restore panel settings"]').click(function (e) { - e.preventDefault(); - - localStorage.removeItem('rightSizePanel') - localStorage.removeItem('leftSizePanel') - - $('.workspace-split.mod-horizontal.mod-left-split').css("width", "450px") - $('.workspace-split.mod-horizontal.mod-right-split').css("width", "450px") - }); - - - - // inLine Title Option - $('.inlineTitleOption').click(function (e) { - e.preventDefault(); - target = $('.inlineTitleOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - $('body').removeClass('show-inline-title') - localStorage.setItem('InlineTitle', 'hide'); - - } else { - target.addClass('is-enabled') - $('body').addClass('show-inline-title') - localStorage.removeItem('InlineTitle'); - - } - }); - - - // Disable PopHover Option - $('.disablePopUp').click(function (e) { - e.preventDefault(); - target = $('.disablePopUp') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - localStorage.setItem('disablePopUp', 'false'); - - } else { - target.addClass('is-enabled') - localStorage.setItem('disablePopUp', 'true'); - - } - }); - - // Darkmode / Lightmode change - $('.darkModeOption').click(function (e) { - e.preventDefault(); - target = $('.darkModeOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - - $('body').removeClass('theme-dark') - $('body').addClass('theme-light') - localStorage.setItem('lightMode', 'true'); - - } else { - target.addClass('is-enabled') - $('body').removeClass('theme-light') - $('body').addClass('theme-dark') - localStorage.removeItem('lightMode'); - - } - }); - - // PopUp change (mobile only) - $('.popUpSetting').click(function (e) { - e.preventDefault(); - target = $('.popUpSetting') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - localStorage.removeItem('popUpEnabled'); - - } else { - target.addClass('is-enabled') - localStorage.setItem('popUpEnabled', 'true'); - - } - }); - - - // collapse Metadata Option - $('.metadataOption').click(function (e) { - e.preventDefault(); - target = $('.metadataOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - if ($('.metadata-container').hasClass('is-collapsed')) { - $('.metadata-container').removeClass('is-collapsed'); - } - localStorage.removeItem('Metadata'); - - } else { - target.addClass('is-enabled') - - if (!$('.metadata-container').hasClass('is-collapsed')) { - $('.metadata-container').addClass('is-collapsed'); - localStorage.setItem('Metadata', 'hide'); - } - } - }); - - - // Graph Settings and Event Handler - // -------------------------------- - // open Graph - $('.clickable-icon.side-dock-ribbon-action[aria-label="Open graph view"]').click(function (e) { - e.preventDefault(); - - str = document.getElementsByClassName('perlite-link-active'); - isMobile(); - - if (str[0] != undefined) { - str = str[0].getAttribute('onclick'); - str = str.substring(0, str.length - 3); - str = str.substring(12, str.length); - - } else { - str = ""; - } - - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - - if ($('.view-header-nav-buttons[data-section="close"]').is(':hidden')) { - // show graph and close button - $('.view-header-nav-buttons[data-section="close"]').css('display', 'flex'); - $('#graph_content').css('display', 'unset'); - $('.markdown-reading-view').css('display', 'none'); - - // hide right side-dock - $('.workspace').removeClass('is-right-sidedock-open'); - $('.mod-right-split').addClass('is-sidedock-collapse'); - $('.mod-right').addClass('is-collapsed'); - - } else { - - $('.view-header-nav-buttons[data-section="close"]').click(); - - } - - - }); - - // close Graph - $('.view-header-nav-buttons[data-section="close"]').click(function (e) { - e.preventDefault(); - - // hide graph and close button - $('.view-header-nav-buttons[data-section="close"]').css('display', 'none'); - $('#graph_content').css('display', 'none'); - $('.markdown-reading-view').css('display', 'flex'); - - // show right side-dock - $('.workspace').addClass('is-right-sidedock-open'); - $('.mod-right-split').removeClass('is-sidedock-collapse'); - $('.mod-right').removeClass('is-collapsed'); - }); - // open Graph settings - $('.clickable-icon.graph-controls-button.mod-open[aria-label="Open graph settings"]').click(function (e) { - e.preventDefault(); - - target = $(e.target) - $('.graph-controls').removeClass('is-close') - }); - - // close Graph settings - $('.clickable-icon.graph-controls-button.mod-close[aria-label="Close"]').click(function (e) { - e.preventDefault(); - $('.graph-controls').addClass('is-close') - }); - - // Graph Show Links Option (Orphans) - $('.graphNoLinkOption').click(function (e) { - e.preventDefault(); - target = $('.graphNoLinkOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, true, showTags, sizeDepsOnConns); - } - - localStorage.setItem('Graph_Orphans', 'hide'); - - - } else { - target.addClass('is-enabled') - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, false, showTags, sizeDepsOnConns); - } - localStorage.removeItem('Graph_Orphans'); - } - }); - - // Graph Show Tags Option - $('.graphShowTagsOption').click(function (e) { - e.preventDefault(); - target = $('.graphShowTagsOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, false, sizeDepsOnConns); - } - - localStorage.setItem('Graph_Tags', 'hide'); - - } else { - target.addClass('is-enabled') - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, true, sizeDepsOnConns); - } - localStorage.removeItem('Graph_Tags'); - } - }); - - // Graph Node Size Depends On Node Connection Number Option - $('.graphSizeDepsOnConnsOption').click(function (e) { - e.preventDefault(); - target = $('.graphSizeDepsOnConnsOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, false); - } - - localStorage.setItem('Graph_NodeScaling', 'default'); - - } else { - target.addClass('is-enabled') - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, true); - } - localStorage.setItem('Graph_NodeScaling', 'depsOnSize'); - } - }); - - // Graph Auto-reload Option - $('.graphAutoReloadOption').click(function (e) { - e.preventDefault(); - target = $('.graphAutoReloadOption') - - if (target.hasClass('is-enabled')) { - target.removeClass('is-enabled') - localStorage.setItem('Graph_Autoreload', 'no'); - - } else { - target.addClass('is-enabled') - localStorage.removeItem('Graph_Autoreload'); - } - }); - - // Graph Node Size Option - $('.nodeSize').click(function (e) { - e.preventDefault(); - target = $(e.target) - - $('#nodeSizeVal').text(target.val()) - - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - } - - localStorage.setItem('Graph_NodeSize', target.val()); - - }); - // Graph Link Distance Option - $('.linkDistance').click(function (e) { - e.preventDefault(); - target = $(e.target) - - $('#linkDistanceVal').text(target.val()) - var showNoLinks = !$(".graphNoLinkOption").hasClass('is-enabled') - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - } - localStorage.setItem('Graph_LinkDistance', target.val()); - - }); - // Graph Link Thickness Option - $('.linkThickness').click(function (e) { - e.preventDefault(); - target = $(e.target) - - $('#linkThicknessVal').text(target.val()) - var showNoLinks = !$(".graphNoLinkOption").hasClass('is-enabled') - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - } - localStorage.setItem('Graph_LinkThickness', target.val()); - - }); - - // Graph Style Change - $("#graphStyleDropdown").change(function (e) { - e.preventDefault(); - target = $(e.target) - if ($('.graphAutoReloadOption').hasClass('is-enabled')) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - } - localStorage.setItem('Graph_Style', target.val()); - }); - - // Graph Reload Button - $("#graphReload").click(function (e) { - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - - }); - - // Graph Restore Defaults Button - $('.clickable-icon.graph-controls-button.mod-reset[aria-label="Restore default settings"]').click(function (e) { - e.preventDefault(); - - if (!$('.graphNoLinkOption').hasClass('is-enabled')) { - $('.graphNoLinkOption').addClass('is-enabled') - } - - if (!$(".graphShowTagsOption").hasClass("is-enabled")) { - $(".graphShowTagsOption").addClass("is-enabled") - } - - if ($(".graphSizeDepsOnConnsOption").hasClass("is-enabled")) { - $(".graphSizeDepsOnConnsOption").removeClass("is-enabled") - } - - if (!$('.graphAutoReloadOption').hasClass('is-enabled')) { - $('.graphAutoReloadOption').addClass('is-enabled') - } - - $('.slider.linkThickness').val(1) - $('.slider.linkDistance').val(150) - $('.slider.nodeSize').val(12) - $('#graphStyleDropdown').val('dynamic') - - localStorage.removeItem('Graph_Orphans'); - localStorage.removeItem('Graph_ShowTags'); - localStorage.removeItem('Graph_NodeScaling') - localStorage.removeItem('Graph_Autoreload'); - localStorage.removeItem('Graph_Style'); - localStorage.removeItem('Graph_LinkDistance'); - localStorage.removeItem('Graph_LinkThickness'); - localStorage.removeItem('Graph_NodeSize'); - - - [showNoLinks, showTags, sizeDepsOnConns] = getGraphConfig() - renderGraph(true, str, showNoLinks, showTags, sizeDepsOnConns); - - }); - - - - - - // Modal Event Handler - // -------------------------------- - - // info modal - $('.clickable-icon.side-dock-ribbon-action[aria-label="Help"]').click(function (e) { - $.ajax({ - url: uriPath + "content.php?about", success: function (result) { - - $("div.aboutContent").html(result); - $("#about").css("display", "flex"); - //$(".modal-title").html('Perlite'); - // hljs.highlightAll(); - - } - }); - - }); - - // setting modal - $('.clickable-icon.side-dock-ribbon-action[aria-label="Settings"]').click(function (e) { - - $("#settings").css("display", "flex"); - - }); - - // open random note - $('.clickable-icon.side-dock-ribbon-action[aria-label="Open random note"]').click(function (e) { - - var nodes = JSON.parse($("#allGraphNodes").text()) - nodesCount = nodes.length - - min = Math.ceil(0); - max = Math.floor(nodesCount); - - // don't load tags as random nodes - do { - tag = true - randomNode = Math.floor(Math.random() * (max - min) + min) - if (nodes[randomNode]['title'].substring(0, 1) != "#") { - tag = false - } - - } while (tag); - - target = '/' + nodes[randomNode]['title'] - target = encodeURIComponent(target); - getContent(target) - - }); - - // open random note - $('.clickable-icon.side-dock-ribbon-action[aria-label="Open TOC"]').click(function (e) { - - console.log("open TOC") - - $("#popUpContent").html($("#toc").html()) - $(".popup-modal-title").text($(".popup-modal-title").text() + ' - Content'); - $("#popUp").css("display", "flex") - - }); - - /** - * close modal - * @param {String[]} elementIds - */ - function hideElements(elementIds) { - elementIds.forEach(function (id) { - $("#" + id).css("display", "none"); - }); - } - - $('.modal-close-button').click(function (e) { - hideElements(["settings", "about", "popUp", "img-modal"]); - }); - - $(document).keydown(function (e) { - if (e.key === "Escape") { - hideElements(["settings", "about", "popUp", "img-modal"]); - } - }); - - // local Graph & Tag & Toc (outline) Switch - $('.clickable-icon.view-action[aria-label="Open outline"]').click(function (e) { - - - if ($('#outline').css('display') == 'inline') { - localStorage.setItem("showTOC", "false") - $('#outline').css('display', 'none') - - - } else { - localStorage.setItem("showTOC", "true") - $('#outline').css('display', 'inline') - } - - }); - - $('.clickable-icon.view-action[aria-label="Open localGraph"]').click(function (e) { - - if ($('#localGraph').css('display') == 'inline') { - localStorage.setItem("showLocalGraph", "false") - $('#localGraph').css('display', 'none') - } else { - localStorage.setItem("showLocalGraph", "true") - $('#localGraph').css('display', 'inline') - } - }); - - $('.clickable-icon.view-action[aria-label="Open Tags"]').click(function (e) { - - if ($('#tags_container').css('display') == 'block') { - localStorage.setItem("showLocalTags", "false") - $('#tags_container').css('display', 'none') - } else { - localStorage.setItem("showLocalTags", "true") - $('#tags_container').css('display', 'block') - } - }); - - - // init mermaid - mermaid.initialize({ startOnLoad: false, 'securityLevel': 'Strict', 'theme': 'dark' }); - - - // handle browser history - window.addEventListener("popstate", function (event) { - - target = unslugURL(window.location.pathname) - getContent(target) - - }); - -}); - diff --git a/Perlite/perlite/.js/vis-network.min.js b/Perlite/perlite/.js/vis-network.min.js deleted file mode 100644 index 513a4fd..0000000 --- a/Perlite/perlite/.js/vis-network.min.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * vis-network - * https://visjs.github.io/vis-network/ - * - * A dynamic, browser-based visualization library. - * - * @version 9.1.9 - * @date 2023-11-03T01:44:38.007Z - * - * @copyright (c) 2011-2017 Almende B.V, http://almende.com - * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs - * - * @license - * vis.js is dual licensed under both - * - * 1. The Apache 2.0 License - * http://www.apache.org/licenses/LICENSE-2.0 - * - * and - * - * 2. The MIT License - * http://opensource.org/licenses/MIT - * - * vis.js may be distributed under either license. - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).vis=t.vis||{})}(this,(function(t){"use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var n=function(t){return t&&t.Math===Math&&t},o=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||e||Function("return this")(),r=function(t){try{return!!t()}catch(t){return!0}},s=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})),a=s,h=Function.prototype,l=h.apply,d=h.call,c="object"==typeof Reflect&&Reflect.apply||(a?d.bind(l):function(){return d.apply(l,arguments)}),u=s,f=Function.prototype,p=f.call,v=u&&f.bind.bind(p,p),g=u?v:function(t){return function(){return p.apply(t,arguments)}},y=g,m=y({}.toString),b=y("".slice),w=function(t){return b(m(t),8,-1)},k=w,_=g,x=function(t){if("Function"===k(t))return _(t)},E="object"==typeof document&&document.all,O={all:E,IS_HTMLDDA:void 0===E&&void 0!==E},C=O.all,S=O.IS_HTMLDDA?function(t){return"function"==typeof t||t===C}:function(t){return"function"==typeof t},T={},M=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]})),P=s,D=Function.prototype.call,I=P?D.bind(D):function(){return D.apply(D,arguments)},B={},N={}.propertyIsEnumerable,F=Object.getOwnPropertyDescriptor,z=F&&!N.call({1:2},1);B.f=z?function(t){var e=F(this,t);return!!e&&e.enumerable}:N;var A,j,R=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},L=r,H=w,W=Object,q=g("".split),V=L((function(){return!W("z").propertyIsEnumerable(0)}))?function(t){return"String"===H(t)?q(t,""):W(t)}:W,U=function(t){return null==t},Y=U,X=TypeError,G=function(t){if(Y(t))throw new X("Can't call method on "+t);return t},K=V,$=G,Z=function(t){return K($(t))},Q=S,J=O.all,tt=O.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:Q(t)||t===J}:function(t){return"object"==typeof t?null!==t:Q(t)},et={},it=et,nt=o,ot=S,rt=function(t){return ot(t)?t:void 0},st=function(t,e){return arguments.length<2?rt(it[t])||rt(nt[t]):it[t]&&it[t][e]||nt[t]&&nt[t][e]},at=g({}.isPrototypeOf),ht="undefined"!=typeof navigator&&String(navigator.userAgent)||"",lt=o,dt=ht,ct=lt.process,ut=lt.Deno,ft=ct&&ct.versions||ut&&ut.version,pt=ft&&ft.v8;pt&&(j=(A=pt.split("."))[0]>0&&A[0]<4?1:+(A[0]+A[1])),!j&&dt&&(!(A=dt.match(/Edge\/(\d+)/))||A[1]>=74)&&(A=dt.match(/Chrome\/(\d+)/))&&(j=+A[1]);var vt=j,gt=vt,yt=r,mt=o.String,bt=!!Object.getOwnPropertySymbols&&!yt((function(){var t=Symbol("symbol detection");return!mt(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&>&><41})),wt=bt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,kt=st,_t=S,xt=at,Et=Object,Ot=wt?function(t){return"symbol"==typeof t}:function(t){var e=kt("Symbol");return _t(e)&&xt(e.prototype,Et(t))},Ct=String,St=function(t){try{return Ct(t)}catch(t){return"Object"}},Tt=S,Mt=St,Pt=TypeError,Dt=function(t){if(Tt(t))return t;throw new Pt(Mt(t)+" is not a function")},It=Dt,Bt=U,Nt=function(t,e){var i=t[e];return Bt(i)?void 0:It(i)},Ft=I,zt=S,At=tt,jt=TypeError,Rt={exports:{}},Lt=o,Ht=Object.defineProperty,Wt=function(t,e){try{Ht(Lt,t,{value:e,configurable:!0,writable:!0})}catch(i){Lt[t]=e}return e},qt="__core-js_shared__",Vt=o[qt]||Wt(qt,{}),Ut=Vt;(Rt.exports=function(t,e){return Ut[t]||(Ut[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.33.0",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Yt=Rt.exports,Xt=G,Gt=Object,Kt=function(t){return Gt(Xt(t))},$t=Kt,Zt=g({}.hasOwnProperty),Qt=Object.hasOwn||function(t,e){return Zt($t(t),e)},Jt=g,te=0,ee=Math.random(),ie=Jt(1..toString),ne=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ie(++te+ee,36)},oe=Yt,re=Qt,se=ne,ae=bt,he=wt,le=o.Symbol,de=oe("wks"),ce=he?le.for||le:le&&le.withoutSetter||se,ue=function(t){return re(de,t)||(de[t]=ae&&re(le,t)?le[t]:ce("Symbol."+t)),de[t]},fe=I,pe=tt,ve=Ot,ge=Nt,ye=function(t,e){var i,n;if("string"===e&&zt(i=t.toString)&&!At(n=Ft(i,t)))return n;if(zt(i=t.valueOf)&&!At(n=Ft(i,t)))return n;if("string"!==e&&zt(i=t.toString)&&!At(n=Ft(i,t)))return n;throw new jt("Can't convert object to primitive value")},me=TypeError,be=ue("toPrimitive"),we=function(t,e){if(!pe(t)||ve(t))return t;var i,n=ge(t,be);if(n){if(void 0===e&&(e="default"),i=fe(n,t,e),!pe(i)||ve(i))return i;throw new me("Can't convert object to primitive value")}return void 0===e&&(e="number"),ye(t,e)},ke=Ot,_e=function(t){var e=we(t,"string");return ke(e)?e:e+""},xe=tt,Ee=o.document,Oe=xe(Ee)&&xe(Ee.createElement),Ce=function(t){return Oe?Ee.createElement(t):{}},Se=Ce,Te=!M&&!r((function(){return 7!==Object.defineProperty(Se("div"),"a",{get:function(){return 7}}).a})),Me=M,Pe=I,De=B,Ie=R,Be=Z,Ne=_e,Fe=Qt,ze=Te,Ae=Object.getOwnPropertyDescriptor;T.f=Me?Ae:function(t,e){if(t=Be(t),e=Ne(e),ze)try{return Ae(t,e)}catch(t){}if(Fe(t,e))return Ie(!Pe(De.f,t,e),t[e])};var je=r,Re=S,Le=/#|\.prototype\./,He=function(t,e){var i=qe[We(t)];return i===Ue||i!==Ve&&(Re(e)?je(e):!!e)},We=He.normalize=function(t){return String(t).replace(Le,".").toLowerCase()},qe=He.data={},Ve=He.NATIVE="N",Ue=He.POLYFILL="P",Ye=He,Xe=Dt,Ge=s,Ke=x(x.bind),$e=function(t,e){return Xe(t),void 0===e?t:Ge?Ke(t,e):function(){return t.apply(e,arguments)}},Ze={},Qe=M&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),Je=tt,ti=String,ei=TypeError,ii=function(t){if(Je(t))return t;throw new ei(ti(t)+" is not an object")},ni=M,oi=Te,ri=Qe,si=ii,ai=_e,hi=TypeError,li=Object.defineProperty,di=Object.getOwnPropertyDescriptor,ci="enumerable",ui="configurable",fi="writable";Ze.f=ni?ri?function(t,e,i){if(si(t),e=ai(e),si(i),"function"==typeof t&&"prototype"===e&&"value"in i&&fi in i&&!i[fi]){var n=di(t,e);n&&n[fi]&&(t[e]=i.value,i={configurable:ui in i?i[ui]:n[ui],enumerable:ci in i?i[ci]:n[ci],writable:!1})}return li(t,e,i)}:li:function(t,e,i){if(si(t),e=ai(e),si(i),oi)try{return li(t,e,i)}catch(t){}if("get"in i||"set"in i)throw new hi("Accessors not supported");return"value"in i&&(t[e]=i.value),t};var pi=Ze,vi=R,gi=M?function(t,e,i){return pi.f(t,e,vi(1,i))}:function(t,e,i){return t[e]=i,t},yi=o,mi=c,bi=x,wi=S,ki=T.f,_i=Ye,xi=et,Ei=$e,Oi=gi,Ci=Qt,Si=function(t){var e=function(i,n,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(i);case 2:return new t(i,n)}return new t(i,n,o)}return mi(t,this,arguments)};return e.prototype=t.prototype,e},Ti=function(t,e){var i,n,o,r,s,a,h,l,d,c=t.target,u=t.global,f=t.stat,p=t.proto,v=u?yi:f?yi[c]:(yi[c]||{}).prototype,g=u?xi:xi[c]||Oi(xi,c,{})[c],y=g.prototype;for(r in e)n=!(i=_i(u?r:c+(f?".":"#")+r,t.forced))&&v&&Ci(v,r),a=g[r],n&&(h=t.dontCallGetSet?(d=ki(v,r))&&d.value:v[r]),s=n&&h?h:e[r],n&&typeof a==typeof s||(l=t.bind&&n?Ei(s,yi):t.wrap&&n?Si(s):p&&wi(s)?bi(s):s,(t.sham||s&&s.sham||a&&a.sham)&&Oi(l,"sham",!0),Oi(g,r,l),p&&(Ci(xi,o=c+"Prototype")||Oi(xi,o,{}),Oi(xi[o],r,s),t.real&&y&&(i||!y[r])&&Oi(y,r,s)))},Mi=Math.ceil,Pi=Math.floor,Di=Math.trunc||function(t){var e=+t;return(e>0?Pi:Mi)(e)},Ii=function(t){var e=+t;return e!=e||0===e?0:Di(e)},Bi=Ii,Ni=Math.max,Fi=Math.min,zi=function(t,e){var i=Bi(t);return i<0?Ni(i+e,0):Fi(i,e)},Ai=Ii,ji=Math.min,Ri=function(t){return t>0?ji(Ai(t),9007199254740991):0},Li=function(t){return Ri(t.length)},Hi=Z,Wi=zi,qi=Li,Vi=function(t){return function(e,i,n){var o,r=Hi(e),s=qi(r),a=Wi(n,s);if(t&&i!=i){for(;s>a;)if((o=r[a++])!=o)return!0}else for(;s>a;a++)if((t||a in r)&&r[a]===i)return t||a||0;return!t&&-1}},Ui={includes:Vi(!0),indexOf:Vi(!1)},Yi={},Xi=Qt,Gi=Z,Ki=Ui.indexOf,$i=Yi,Zi=g([].push),Qi=function(t,e){var i,n=Gi(t),o=0,r=[];for(i in n)!Xi($i,i)&&Xi(n,i)&&Zi(r,i);for(;e.length>o;)Xi(n,i=e[o++])&&(~Ki(r,i)||Zi(r,i));return r},Ji=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],tn=Qi,en=Ji,nn=Object.keys||function(t){return tn(t,en)},on={};on.f=Object.getOwnPropertySymbols;var rn=M,sn=g,an=I,hn=r,ln=nn,dn=on,cn=B,un=Kt,fn=V,pn=Object.assign,vn=Object.defineProperty,gn=sn([].concat),yn=!pn||hn((function(){if(rn&&1!==pn({b:1},pn(vn({},"a",{enumerable:!0,get:function(){vn(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},i=Symbol("assign detection"),n="abcdefghijklmnopqrst";return t[i]=7,n.split("").forEach((function(t){e[t]=t})),7!==pn({},t)[i]||ln(pn({},e)).join("")!==n}))?function(t,e){for(var i=un(t),n=arguments.length,o=1,r=dn.f,s=cn.f;n>o;)for(var a,h=fn(arguments[o++]),l=r?gn(ln(h),r(h)):ln(h),d=l.length,c=0;d>c;)a=l[c++],rn&&!an(s,h,a)||(i[a]=h[a]);return i}:pn,mn=yn;Ti({target:"Object",stat:!0,arity:2,forced:Object.assign!==mn},{assign:mn});var bn=i(et.Object.assign),wn=g([].slice),kn=g,_n=Dt,xn=tt,En=Qt,On=wn,Cn=s,Sn=Function,Tn=kn([].concat),Mn=kn([].join),Pn={},Dn=Cn?Sn.bind:function(t){var e=_n(this),i=e.prototype,n=On(arguments,1),o=function(){var i=Tn(n,On(arguments));return this instanceof o?function(t,e,i){if(!En(Pn,e)){for(var n=[],o=0;o=.1;)(p=+r[c++%s])>d&&(p=d),f=Math.sqrt(p*p/(1+l*l)),e+=f=a<0?-f:f,i+=l*f,!0===u?t.lineTo(e,i):t.moveTo(e,i),d-=p,u=!u}var Xn={circle:Wn,dashedLine:Yn,database:Un,diamond:function(t,e,i,n){t.beginPath(),t.lineTo(e,i+n),t.lineTo(e+n,i),t.lineTo(e,i-n),t.lineTo(e-n,i),t.closePath()},ellipse:Vn,ellipse_vis:Vn,hexagon:function(t,e,i,n){t.beginPath();var o=2*Math.PI/6;t.moveTo(e+n,i);for(var r=1;r<6;r++)t.lineTo(e+n*Math.cos(o*r),i+n*Math.sin(o*r));t.closePath()},roundRect:qn,square:function(t,e,i,n){t.beginPath(),t.rect(e-n,i-n,2*n,2*n),t.closePath()},star:function(t,e,i,n){t.beginPath(),i+=.1*(n*=.82);for(var o=0;o<10;o++){var r=o%2==0?1.3*n:.5*n;t.lineTo(e+r*Math.sin(2*o*Math.PI/10),i-r*Math.cos(2*o*Math.PI/10))}t.closePath()},triangle:function(t,e,i,n){t.beginPath(),i+=.275*(n*=1.15);var o=2*n,r=o/2,s=Math.sqrt(3)/6*o,a=Math.sqrt(o*o-r*r);t.moveTo(e,i-(a-s)),t.lineTo(e+r,i+s),t.lineTo(e-r,i+s),t.lineTo(e,i-(a-s)),t.closePath()},triangleDown:function(t,e,i,n){t.beginPath(),i-=.275*(n*=1.15);var o=2*n,r=o/2,s=Math.sqrt(3)/6*o,a=Math.sqrt(o*o-r*r);t.moveTo(e,i+(a-s)),t.lineTo(e+r,i-s),t.lineTo(e-r,i-s),t.lineTo(e,i+(a-s)),t.closePath()}};var Gn={exports:{}};!function(t){function e(t){if(t)return function(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}(t)}t.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+t]=this._callbacks["$"+t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){this.off(t,i),e.apply(this,arguments)}return i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i,n=this._callbacks["$"+t];if(!n)return this;if(1==arguments.length)return delete this._callbacks["$"+t],this;for(var o=0;o=a?t?"":void 0:(n=yo(r,s))<55296||n>56319||s+1===a||(o=yo(r,s+1))<56320||o>57343?t?go(r,s):n:t?mo(r,s,s+2):o-56320+(n-55296<<10)+65536}},wo={codeAt:bo(!1),charAt:bo(!0)},ko=S,_o=o.WeakMap,xo=ko(_o)&&/native code/.test(String(_o)),Eo=ne,Oo=Yt("keys"),Co=function(t){return Oo[t]||(Oo[t]=Eo(t))},So=xo,To=o,Mo=tt,Po=gi,Do=Qt,Io=Vt,Bo=Co,No=Yi,Fo="Object already initialized",zo=To.TypeError,Ao=To.WeakMap;if(So||Io.state){var jo=Io.state||(Io.state=new Ao);jo.get=jo.get,jo.has=jo.has,jo.set=jo.set,Zn=function(t,e){if(jo.has(t))throw new zo(Fo);return e.facade=t,jo.set(t,e),e},Qn=function(t){return jo.get(t)||{}},Jn=function(t){return jo.has(t)}}else{var Ro=Bo("state");No[Ro]=!0,Zn=function(t,e){if(Do(t,Ro))throw new zo(Fo);return e.facade=t,Po(t,Ro,e),e},Qn=function(t){return Do(t,Ro)?t[Ro]:{}},Jn=function(t){return Do(t,Ro)}}var Lo={set:Zn,get:Qn,has:Jn,enforce:function(t){return Jn(t)?Qn(t):Zn(t,{})},getterFor:function(t){return function(e){var i;if(!Mo(e)||(i=Qn(e)).type!==t)throw new zo("Incompatible receiver, "+t+" required");return i}}},Ho=M,Wo=Qt,qo=Function.prototype,Vo=Ho&&Object.getOwnPropertyDescriptor,Uo=Wo(qo,"name"),Yo={EXISTS:Uo,PROPER:Uo&&"something"===function(){}.name,CONFIGURABLE:Uo&&(!Ho||Ho&&Vo(qo,"name").configurable)},Xo={},Go=M,Ko=Qe,$o=Ze,Zo=ii,Qo=Z,Jo=nn;Xo.f=Go&&!Ko?Object.defineProperties:function(t,e){Zo(t);for(var i,n=Qo(e),o=Jo(e),r=o.length,s=0;r>s;)$o.f(t,i=o[s++],n[i]);return t};var tr,er=st("document","documentElement"),ir=ii,nr=Xo,or=Ji,rr=Yi,sr=er,ar=Ce,hr="prototype",lr="script",dr=Co("IE_PROTO"),cr=function(){},ur=function(t){return"<"+lr+">"+t+""},fr=function(t){t.write(ur("")),t.close();var e=t.parentWindow.Object;return t=null,e},pr=function(){try{tr=new ActiveXObject("htmlfile")}catch(t){}var t,e,i;pr="undefined"!=typeof document?document.domain&&tr?fr(tr):(e=ar("iframe"),i="java"+lr+":",e.style.display="none",sr.appendChild(e),e.src=String(i),(t=e.contentWindow.document).open(),t.write(ur("document.F=Object")),t.close(),t.F):fr(tr);for(var n=or.length;n--;)delete pr[hr][or[n]];return pr()};rr[dr]=!0;var vr,gr,yr,mr=Object.create||function(t,e){var i;return null!==t?(cr[hr]=ir(t),i=new cr,cr[hr]=null,i[dr]=t):i=pr(),void 0===e?i:nr.f(i,e)},br=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})),wr=Qt,kr=S,_r=Kt,xr=br,Er=Co("IE_PROTO"),Or=Object,Cr=Or.prototype,Sr=xr?Or.getPrototypeOf:function(t){var e=_r(t);if(wr(e,Er))return e[Er];var i=e.constructor;return kr(i)&&e instanceof i?i.prototype:e instanceof Or?Cr:null},Tr=gi,Mr=function(t,e,i,n){return n&&n.enumerable?t[e]=i:Tr(t,e,i),t},Pr=r,Dr=S,Ir=tt,Br=mr,Nr=Sr,Fr=Mr,zr=ue("iterator"),Ar=!1;[].keys&&("next"in(yr=[].keys())?(gr=Nr(Nr(yr)))!==Object.prototype&&(vr=gr):Ar=!0);var jr=!Ir(vr)||Pr((function(){var t={};return vr[zr].call(t)!==t}));Dr((vr=jr?{}:Br(vr))[zr])||Fr(vr,zr,(function(){return this}));var Rr={IteratorPrototype:vr,BUGGY_SAFARI_ITERATORS:Ar},Lr=ao,Hr=to?{}.toString:function(){return"[object "+Lr(this)+"]"},Wr=to,qr=Ze.f,Vr=gi,Ur=Qt,Yr=Hr,Xr=ue("toStringTag"),Gr=function(t,e,i,n){if(t){var o=i?t:t.prototype;Ur(o,Xr)||qr(o,Xr,{configurable:!0,value:e}),n&&!Wr&&Vr(o,"toString",Yr)}},Kr={},$r=Rr.IteratorPrototype,Zr=mr,Qr=R,Jr=Gr,ts=Kr,es=function(){return this},is=g,ns=Dt,os=S,rs=String,ss=TypeError,as=function(t,e,i){try{return is(ns(Object.getOwnPropertyDescriptor(t,e)[i]))}catch(t){}},hs=ii,ls=function(t){if("object"==typeof t||os(t))return t;throw new ss("Can't set "+rs(t)+" as a prototype")},ds=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,i={};try{(t=as(Object.prototype,"__proto__","set"))(i,[]),e=i instanceof Array}catch(t){}return function(i,n){return hs(i),ls(n),e?t(i,n):i.__proto__=n,i}}():void 0),cs=Ti,us=I,fs=Yo,ps=function(t,e,i,n){var o=e+" Iterator";return t.prototype=Zr($r,{next:Qr(+!n,i)}),Jr(t,o,!1,!0),ts[o]=es,t},vs=Sr,gs=Gr,ys=Mr,ms=Kr,bs=Rr,ws=fs.PROPER,ks=bs.BUGGY_SAFARI_ITERATORS,_s=ue("iterator"),xs="keys",Es="values",Os="entries",Cs=function(){return this},Ss=function(t,e,i,n,o,r,s){ps(i,e,n);var a,h,l,d=function(t){if(t===o&&v)return v;if(!ks&&t&&t in f)return f[t];switch(t){case xs:case Es:case Os:return function(){return new i(this,t)}}return function(){return new i(this)}},c=e+" Iterator",u=!1,f=t.prototype,p=f[_s]||f["@@iterator"]||o&&f[o],v=!ks&&p||d(o),g="Array"===e&&f.entries||p;if(g&&(a=vs(g.call(new t)))!==Object.prototype&&a.next&&(gs(a,c,!0,!0),ms[c]=Cs),ws&&o===Es&&p&&p.name!==Es&&(u=!0,v=function(){return us(p,this)}),o)if(h={values:d(Es),keys:r?v:d(xs),entries:d(Os)},s)for(l in h)(ks||u||!(l in f))&&ys(f,l,h[l]);else cs({target:e,proto:!0,forced:ks||u},h);return s&&f[_s]!==v&&ys(f,_s,v,{name:o}),ms[e]=v,h},Ts=function(t,e){return{value:t,done:e}},Ms=wo.charAt,Ps=co,Ds=Lo,Is=Ss,Bs=Ts,Ns="String Iterator",Fs=Ds.set,zs=Ds.getterFor(Ns);Is(String,"String",(function(t){Fs(this,{type:Ns,string:Ps(t),index:0})}),(function(){var t,e=zs(this),i=e.string,n=e.index;return n>=i.length?Bs(void 0,!0):(t=Ms(i,n),e.index+=t.length,Bs(t,!1))}));var As=I,js=ii,Rs=Nt,Ls=function(t,e,i){var n,o;js(t);try{if(!(n=Rs(t,"return"))){if("throw"===e)throw i;return i}n=As(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw i;if(o)throw n;return js(n),i},Hs=ii,Ws=Ls,qs=Kr,Vs=ue("iterator"),Us=Array.prototype,Ys=function(t){return void 0!==t&&(qs.Array===t||Us[Vs]===t)},Xs=S,Gs=Vt,Ks=g(Function.toString);Xs(Gs.inspectSource)||(Gs.inspectSource=function(t){return Ks(t)});var $s=Gs.inspectSource,Zs=g,Qs=r,Js=S,ta=ao,ea=$s,ia=function(){},na=[],oa=st("Reflect","construct"),ra=/^\s*(?:class|function)\b/,sa=Zs(ra.exec),aa=!ra.test(ia),ha=function(t){if(!Js(t))return!1;try{return oa(ia,na,t),!0}catch(t){return!1}},la=function(t){if(!Js(t))return!1;switch(ta(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return aa||!!sa(ra,ea(t))}catch(t){return!0}};la.sham=!0;var da=!oa||Qs((function(){var t;return ha(ha.call)||!ha(Object)||!ha((function(){t=!0}))||t}))?la:ha,ca=_e,ua=Ze,fa=R,pa=function(t,e,i){var n=ca(e);n in t?ua.f(t,n,fa(0,i)):t[n]=i},va=ao,ga=Nt,ya=U,ma=Kr,ba=ue("iterator"),wa=function(t){if(!ya(t))return ga(t,ba)||ga(t,"@@iterator")||ma[va(t)]},ka=I,_a=Dt,xa=ii,Ea=St,Oa=wa,Ca=TypeError,Sa=function(t,e){var i=arguments.length<2?Oa(t):e;if(_a(i))return xa(ka(i,t));throw new Ca(Ea(t)+" is not iterable")},Ta=$e,Ma=I,Pa=Kt,Da=function(t,e,i,n){try{return n?e(Hs(i)[0],i[1]):e(i)}catch(e){Ws(t,"throw",e)}},Ia=Ys,Ba=da,Na=Li,Fa=pa,za=Sa,Aa=wa,ja=Array,Ra=ue("iterator"),La=!1;try{var Ha=0,Wa={next:function(){return{done:!!Ha++}},return:function(){La=!0}};Wa[Ra]=function(){return this},Array.from(Wa,(function(){throw 2}))}catch(t){}var qa=function(t,e){try{if(!e&&!La)return!1}catch(t){return!1}var i=!1;try{var n={};n[Ra]=function(){return{next:function(){return{done:i=!0}}}},t(n)}catch(t){}return i},Va=function(t){var e=Pa(t),i=Ba(this),n=arguments.length,o=n>1?arguments[1]:void 0,r=void 0!==o;r&&(o=Ta(o,n>2?arguments[2]:void 0));var s,a,h,l,d,c,u=Aa(e),f=0;if(!u||this===ja&&Ia(u))for(s=Na(e),a=i?new this(s):ja(s);s>f;f++)c=r?o(e[f],f):e[f],Fa(a,f,c);else for(d=(l=za(e,u)).next,a=i?new this:[];!(h=Ma(d,l)).done;f++)c=r?Da(l,o,[h.value,f],!0):h.value,Fa(a,f,c);return a.length=f,a};Ti({target:"Array",stat:!0,forced:!qa((function(t){Array.from(t)}))},{from:Va});var Ua=et.Array.from,Ya=i(Ua),Xa=Z,Ga=Kr,Ka=Lo;Ze.f;var $a=Ss,Za=Ts,Qa="Array Iterator",Ja=Ka.set,th=Ka.getterFor(Qa);$a(Array,"Array",(function(t,e){Ja(this,{type:Qa,target:Xa(t),index:0,kind:e})}),(function(){var t=th(this),e=t.target,i=t.kind,n=t.index++;if(!e||n>=e.length)return t.target=void 0,Za(void 0,!0);switch(i){case"keys":return Za(n,!1);case"values":return Za(e[n],!1)}return Za([n,e[n]],!1)}),"values"),Ga.Arguments=Ga.Array;var eh=wa,ih={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},nh=o,oh=ao,rh=gi,sh=Kr,ah=ue("toStringTag");for(var hh in ih){var lh=nh[hh],dh=lh&&lh.prototype;dh&&oh(dh)!==ah&&rh(dh,ah,hh),sh[hh]=sh.Array}var ch=eh,uh=i(ch),fh=i(ch);function ph(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var vh={exports:{}},gh=Ti,yh=M,mh=Ze.f;gh({target:"Object",stat:!0,forced:Object.defineProperty!==mh,sham:!yh},{defineProperty:mh});var bh=et.Object,wh=vh.exports=function(t,e,i){return bh.defineProperty(t,e,i)};bh.defineProperty.sham&&(wh.sham=!0);var kh=vh.exports,_h=kh,xh=i(_h),Eh=w,Oh=Array.isArray||function(t){return"Array"===Eh(t)},Ch=TypeError,Sh=function(t){if(t>9007199254740991)throw Ch("Maximum allowed index exceeded");return t},Th=Oh,Mh=da,Ph=tt,Dh=ue("species"),Ih=Array,Bh=function(t){var e;return Th(t)&&(e=t.constructor,(Mh(e)&&(e===Ih||Th(e.prototype))||Ph(e)&&null===(e=e[Dh]))&&(e=void 0)),void 0===e?Ih:e},Nh=function(t,e){return new(Bh(t))(0===e?0:e)},Fh=r,zh=vt,Ah=ue("species"),jh=function(t){return zh>=51||!Fh((function(){var e=[];return(e.constructor={})[Ah]=function(){return{foo:1}},1!==e[t](Boolean).foo}))},Rh=Ti,Lh=r,Hh=Oh,Wh=tt,qh=Kt,Vh=Li,Uh=Sh,Yh=pa,Xh=Nh,Gh=jh,Kh=vt,$h=ue("isConcatSpreadable"),Zh=Kh>=51||!Lh((function(){var t=[];return t[$h]=!1,t.concat()[0]!==t})),Qh=function(t){if(!Wh(t))return!1;var e=t[$h];return void 0!==e?!!e:Hh(t)};Rh({target:"Array",proto:!0,arity:1,forced:!Zh||!Gh("concat")},{concat:function(t){var e,i,n,o,r,s=qh(this),a=Xh(s,0),h=0;for(e=-1,n=arguments.length;em;m++)if((a||m in v)&&(f=g(u=v[m],m,p),t))if(e)w[m]=f;else if(f)switch(t){case 3:return!0;case 5:return u;case 6:return m;case 2:Bl(w,u)}else switch(t){case 4:return!1;case 7:Bl(w,u)}return r?-1:n||o?o:w}},Fl={forEach:Nl(0),map:Nl(1),filter:Nl(2),some:Nl(3),every:Nl(4),find:Nl(5),findIndex:Nl(6),filterReject:Nl(7)},zl=Ti,Al=o,jl=I,Rl=g,Ll=M,Hl=bt,Wl=r,ql=Qt,Vl=at,Ul=ii,Yl=Z,Xl=_e,Gl=co,Kl=R,$l=mr,Zl=nn,Ql=Jh,Jl=il,td=on,ed=T,id=Ze,nd=Xo,od=B,rd=Mr,sd=vl,ad=Yt,hd=Yi,ld=ne,dd=ue,cd=gl,ud=_l,fd=Sl,pd=Gr,vd=Lo,gd=Fl.forEach,yd=Co("hidden"),md="Symbol",bd="prototype",wd=vd.set,kd=vd.getterFor(md),_d=Object[bd],xd=Al.Symbol,Ed=xd&&xd[bd],Od=Al.RangeError,Cd=Al.TypeError,Sd=Al.QObject,Td=ed.f,Md=id.f,Pd=Jl.f,Dd=od.f,Id=Rl([].push),Bd=ad("symbols"),Nd=ad("op-symbols"),Fd=ad("wks"),zd=!Sd||!Sd[bd]||!Sd[bd].findChild,Ad=function(t,e,i){var n=Td(_d,e);n&&delete _d[e],Md(t,e,i),n&&t!==_d&&Md(_d,e,n)},jd=Ll&&Wl((function(){return 7!==$l(Md({},"a",{get:function(){return Md(this,"a",{value:7}).a}})).a}))?Ad:Md,Rd=function(t,e){var i=Bd[t]=$l(Ed);return wd(i,{type:md,tag:t,description:e}),Ll||(i.description=e),i},Ld=function(t,e,i){t===_d&&Ld(Nd,e,i),Ul(t);var n=Xl(e);return Ul(i),ql(Bd,n)?(i.enumerable?(ql(t,yd)&&t[yd][n]&&(t[yd][n]=!1),i=$l(i,{enumerable:Kl(0,!1)})):(ql(t,yd)||Md(t,yd,Kl(1,{})),t[yd][n]=!0),jd(t,n,i)):Md(t,n,i)},Hd=function(t,e){Ul(t);var i=Yl(e),n=Zl(i).concat(Ud(i));return gd(n,(function(e){Ll&&!jl(Wd,i,e)||Ld(t,e,i[e])})),t},Wd=function(t){var e=Xl(t),i=jl(Dd,this,e);return!(this===_d&&ql(Bd,e)&&!ql(Nd,e))&&(!(i||!ql(this,e)||!ql(Bd,e)||ql(this,yd)&&this[yd][e])||i)},qd=function(t,e){var i=Yl(t),n=Xl(e);if(i!==_d||!ql(Bd,n)||ql(Nd,n)){var o=Td(i,n);return!o||!ql(Bd,n)||ql(i,yd)&&i[yd][n]||(o.enumerable=!0),o}},Vd=function(t){var e=Pd(Yl(t)),i=[];return gd(e,(function(t){ql(Bd,t)||ql(hd,t)||Id(i,t)})),i},Ud=function(t){var e=t===_d,i=Pd(e?Nd:Yl(t)),n=[];return gd(i,(function(t){!ql(Bd,t)||e&&!ql(_d,t)||Id(n,Bd[t])})),n};Hl||(xd=function(){if(Vl(Ed,this))throw new Cd("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?Gl(arguments[0]):void 0,e=ld(t),i=function(t){this===_d&&jl(i,Nd,t),ql(this,yd)&&ql(this[yd],e)&&(this[yd][e]=!1);var n=Kl(1,t);try{jd(this,e,n)}catch(t){if(!(t instanceof Od))throw t;Ad(this,e,n)}};return Ll&&zd&&jd(_d,e,{configurable:!0,set:i}),Rd(e,t)},rd(Ed=xd[bd],"toString",(function(){return kd(this).tag})),rd(xd,"withoutSetter",(function(t){return Rd(ld(t),t)})),od.f=Wd,id.f=Ld,nd.f=Hd,ed.f=qd,Ql.f=Jl.f=Vd,td.f=Ud,cd.f=function(t){return Rd(dd(t),t)},Ll&&sd(Ed,"description",{configurable:!0,get:function(){return kd(this).description}})),zl({global:!0,constructor:!0,wrap:!0,forced:!Hl,sham:!Hl},{Symbol:xd}),gd(Zl(Fd),(function(t){ud(t)})),zl({target:md,stat:!0,forced:!Hl},{useSetter:function(){zd=!0},useSimple:function(){zd=!1}}),zl({target:"Object",stat:!0,forced:!Hl,sham:!Ll},{create:function(t,e){return void 0===e?$l(t):Hd($l(t),e)},defineProperty:Ld,defineProperties:Hd,getOwnPropertyDescriptor:qd}),zl({target:"Object",stat:!0,forced:!Hl},{getOwnPropertyNames:Vd}),fd(),pd(xd,md),hd[yd]=!0;var Yd=bt&&!!Symbol.for&&!!Symbol.keyFor,Xd=Ti,Gd=st,Kd=Qt,$d=co,Zd=Yt,Qd=Yd,Jd=Zd("string-to-symbol-registry"),tc=Zd("symbol-to-string-registry");Xd({target:"Symbol",stat:!0,forced:!Qd},{for:function(t){var e=$d(t);if(Kd(Jd,e))return Jd[e];var i=Gd("Symbol")(e);return Jd[e]=i,tc[i]=e,i}});var ec=Ti,ic=Qt,nc=Ot,oc=St,rc=Yd,sc=Yt("symbol-to-string-registry");ec({target:"Symbol",stat:!0,forced:!rc},{keyFor:function(t){if(!nc(t))throw new TypeError(oc(t)+" is not a symbol");if(ic(sc,t))return sc[t]}});var ac=Oh,hc=S,lc=w,dc=co,cc=g([].push),uc=Ti,fc=st,pc=c,vc=I,gc=g,yc=r,mc=S,bc=Ot,wc=wn,kc=function(t){if(hc(t))return t;if(ac(t)){for(var e=t.length,i=[],n=0;nt.length)&&(e=t.length);for(var i=0,n=new Array(e);i1?arguments[1]:void 0)}});var Bf=Nn("Array").map,Nf=at,Ff=Bf,zf=Array.prototype,Af=function(t){var e=t.map;return t===zf||Nf(zf,t)&&e===zf.map?Ff:e},jf=i(Af),Rf=Kt,Lf=nn;Ti({target:"Object",stat:!0,forced:r((function(){Lf(1)}))},{keys:function(t){return Lf(Rf(t))}});var Hf=i(et.Object.keys),Wf=Ti,qf=Date,Vf=g(qf.prototype.getTime);Wf({target:"Date",stat:!0},{now:function(){return Vf(new qf)}});var Uf=i(et.Date.now),Yf=r,Xf=function(t,e){var i=[][t];return!!i&&Yf((function(){i.call(null,e||function(){return 1},1)}))},Gf=Fl.forEach,Kf=Xf("forEach")?[].forEach:function(t){return Gf(this,t,arguments.length>1?arguments[1]:void 0)};Ti({target:"Array",proto:!0,forced:[].forEach!==Kf},{forEach:Kf});var $f=Nn("Array").forEach,Zf=ao,Qf=Qt,Jf=at,tp=$f,ep=Array.prototype,ip={DOMTokenList:!0,NodeList:!0},np=function(t){var e=t.forEach;return t===ep||Jf(ep,t)&&e===ep.forEach||Qf(ip,Zf(t))?tp:e},op=i(np),rp=Ti,sp=Oh,ap=g([].reverse),hp=[1,2];rp({target:"Array",proto:!0,forced:String(hp)===String(hp.reverse())},{reverse:function(){return sp(this)&&(this.length=this.length),ap(this)}});var lp=Nn("Array").reverse,dp=at,cp=lp,up=Array.prototype,fp=function(t){var e=t.reverse;return t===up||dp(up,t)&&e===up.reverse?cp:e},pp=fp,vp=i(pp),gp=St,yp=TypeError,mp=function(t,e){if(!delete t[e])throw new yp("Cannot delete property "+gp(e)+" of "+gp(t))},bp=Ti,wp=Kt,kp=zi,_p=Ii,xp=Li,Ep=Pu,Op=Sh,Cp=Nh,Sp=pa,Tp=mp,Mp=jh("splice"),Pp=Math.max,Dp=Math.min;bp({target:"Array",proto:!0,forced:!Mp},{splice:function(t,e){var i,n,o,r,s,a,h=wp(this),l=xp(h),d=kp(t,l),c=arguments.length;for(0===c?i=n=0:1===c?(i=0,n=l-d):(i=c-2,n=Dp(Pp(_p(e),0),l-d)),Op(l+i-n),o=Cp(h,n),r=0;rl-n+i;r--)Tp(h,r-1)}else if(i>n)for(r=l-n;r>d;r--)a=r+i-1,(s=r+n-1)in h?h[a]=h[s]:Tp(h,a);for(r=0;r1?arguments[1]:void 0)}});var Rp=Nn("Array").includes,Lp=tt,Hp=w,Wp=ue("match"),qp=function(t){var e;return Lp(t)&&(void 0!==(e=t[Wp])?!!e:"RegExp"===Hp(t))},Vp=TypeError,Up=ue("match"),Yp=Ti,Xp=function(t){if(qp(t))throw new Vp("The method doesn't accept regular expressions");return t},Gp=G,Kp=co,$p=function(t){var e=/./;try{"/./"[t](e)}catch(i){try{return e[Up]=!1,"/./"[t](e)}catch(t){}}return!1},Zp=g("".indexOf);Yp({target:"String",proto:!0,forced:!$p("includes")},{includes:function(t){return!!~Zp(Kp(Gp(this)),Kp(Xp(t)),arguments.length>1?arguments[1]:void 0)}});var Qp=Nn("String").includes,Jp=at,tv=Rp,ev=Qp,iv=Array.prototype,nv=String.prototype,ov=function(t){var e=t.includes;return t===iv||Jp(iv,t)&&e===iv.includes?tv:"string"==typeof t||t===nv||Jp(nv,t)&&e===nv.includes?ev:e},rv=i(ov),sv=Kt,av=Sr,hv=br;Ti({target:"Object",stat:!0,forced:r((function(){av(1)})),sham:!hv},{getPrototypeOf:function(t){return av(sv(t))}});var lv=et.Object.getPrototypeOf,dv=i(lv),cv=Fl.filter;Ti({target:"Array",proto:!0,forced:!jh("filter")},{filter:function(t){return cv(this,t,arguments.length>1?arguments[1]:void 0)}});var uv=Nn("Array").filter,fv=at,pv=uv,vv=Array.prototype,gv=function(t){var e=t.filter;return t===vv||fv(vv,t)&&e===vv.filter?pv:e},yv=i(gv),mv=M,bv=r,wv=g,kv=Sr,_v=nn,xv=Z,Ev=wv(B.f),Ov=wv([].push),Cv=mv&&bv((function(){var t=Object.create(null);return t[2]=2,!Ev(t,2)})),Sv=function(t){return function(e){for(var i,n=xv(e),o=_v(n),r=Cv&&null===kv(n),s=o.length,a=0,h=[];s>a;)i=o[a++],mv&&!(r?i in n:Ev(n,i))||Ov(h,t?[i,n[i]]:n[i]);return h}},Tv={entries:Sv(!0),values:Sv(!1)},Mv=Tv.values;Ti({target:"Object",stat:!0},{values:function(t){return Mv(t)}});var Pv=i(et.Object.values),Dv="\t\n\v\f\r                 \u2028\u2029\ufeff",Iv=G,Bv=co,Nv=Dv,Fv=g("".replace),zv=RegExp("^["+Nv+"]+"),Av=RegExp("(^|[^"+Nv+"])["+Nv+"]+$"),jv=function(t){return function(e){var i=Bv(Iv(e));return 1&t&&(i=Fv(i,zv,"")),2&t&&(i=Fv(i,Av,"$1")),i}},Rv={start:jv(1),end:jv(2),trim:jv(3)},Lv=o,Hv=r,Wv=g,qv=co,Vv=Rv.trim,Uv=Dv,Yv=Lv.parseInt,Xv=Lv.Symbol,Gv=Xv&&Xv.iterator,Kv=/^[+-]?0x/i,$v=Wv(Kv.exec),Zv=8!==Yv(Uv+"08")||22!==Yv(Uv+"0x16")||Gv&&!Hv((function(){Yv(Object(Gv))}))?function(t,e){var i=Vv(qv(t));return Yv(i,e>>>0||($v(Kv,i)?16:10))}:Yv;Ti({global:!0,forced:parseInt!==Zv},{parseInt:Zv});var Qv=i(et.parseInt),Jv=Ti,tg=Ui.indexOf,eg=Xf,ig=x([].indexOf),ng=!!ig&&1/ig([1],1,-0)<0;Jv({target:"Array",proto:!0,forced:ng||!eg("indexOf")},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return ng?ig(this,t,e)||0:tg(this,t,e)}});var og=Nn("Array").indexOf,rg=at,sg=og,ag=Array.prototype,hg=function(t){var e=t.indexOf;return t===ag||rg(ag,t)&&e===ag.indexOf?sg:e},lg=i(hg),dg=Tv.entries;Ti({target:"Object",stat:!0},{entries:function(t){return dg(t)}});var cg=i(et.Object.entries);Ti({target:"Object",stat:!0,sham:!M},{create:mr});var ug=et.Object,fg=function(t,e){return ug.create(t,e)},pg=i(fg),vg=et,gg=c;vg.JSON||(vg.JSON={stringify:JSON.stringify});var yg=function(t,e,i){return gg(vg.JSON.stringify,null,arguments)},mg=i(yg),bg="function"==typeof Bun&&Bun&&"string"==typeof Bun.version,wg=TypeError,kg=function(t,e){if(ti,s=Eg(n)?n:Mg(n),a=r?Sg(arguments,i):[],h=r?function(){xg(s,this,a)}:s;return e?t(h,o):t(h)}:t},Ig=Ti,Bg=o,Ng=Dg(Bg.setInterval,!0);Ig({global:!0,bind:!0,forced:Bg.setInterval!==Ng},{setInterval:Ng});var Fg=Ti,zg=o,Ag=Dg(zg.setTimeout,!0);Fg({global:!0,bind:!0,forced:zg.setTimeout!==Ag},{setTimeout:Ag});var jg=i(et.setTimeout),Rg=Kt,Lg=zi,Hg=Li,Wg=function(t){for(var e=Rg(this),i=Hg(e),n=arguments.length,o=Lg(n>1?arguments[1]:void 0,i),r=n>2?arguments[2]:void 0,s=void 0===r?i:Lg(r,i);s>o;)e[o++]=t;return e};Ti({target:"Array",proto:!0},{fill:Wg});var qg,Vg=Nn("Array").fill,Ug=at,Yg=Vg,Xg=Array.prototype,Gg=function(t){var e=t.fill;return t===Xg||Ug(Xg,t)&&e===Xg.fill?Yg:e},Kg=i(Gg);function $g(){return $g=Object.assign||function(t){for(var e=1;e-1}var jy=function(){function t(t,e){this.manager=t,this.set(e)}var e=t.prototype;return e.set=function(t){t===ly&&(t=this.compute()),hy&&this.manager.element.style&&vy[t]&&(this.manager.element.style[ay]=t),this.actions=t.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var t=[];return Fy(this.manager.recognizers,(function(e){zy(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))})),function(t){if(Ay(t,uy))return uy;var e=Ay(t,fy),i=Ay(t,py);return e&&i?uy:e||i?e?fy:py:Ay(t,cy)?cy:dy}(t.join(" "))},e.preventDefaults=function(t){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)e.preventDefault();else{var n=this.actions,o=Ay(n,uy)&&!vy[uy],r=Ay(n,py)&&!vy[py],s=Ay(n,fy)&&!vy[fy];if(o){var a=1===t.pointers.length,h=t.distance<2,l=t.deltaTime<250;if(a&&h&&l)return}if(!s||!r)return o||r&&i&Py||s&&i&Dy?this.preventSrc(e):void 0}},e.preventSrc=function(t){this.manager.session.prevented=!0,t.preventDefault()},t}();function Ry(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}function Ly(t){var e=t.length;if(1===e)return{x:ny(t[0].clientX),y:ny(t[0].clientY)};for(var i=0,n=0,o=0;o=oy(e)?t<0?Cy:Sy:e<0?Ty:My}function Uy(t,e,i){return{x:e/t||0,y:i/t||0}}function Yy(t,e){var i=t.session,n=e.pointers,o=n.length;i.firstInput||(i.firstInput=Hy(e)),o>1&&!i.firstMultiple?i.firstMultiple=Hy(e):1===o&&(i.firstMultiple=!1);var r=i.firstInput,s=i.firstMultiple,a=s?s.center:r.center,h=e.center=Ly(n);e.timeStamp=ry(),e.deltaTime=e.timeStamp-r.timeStamp,e.angle=qy(a,h),e.distance=Wy(a,h),function(t,e){var i=e.center,n=t.offsetDelta||{},o=t.prevDelta||{},r=t.prevInput||{};e.eventType!==_y&&r.eventType!==xy||(o=t.prevDelta={x:r.deltaX||0,y:r.deltaY||0},n=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=o.x+(i.x-n.x),e.deltaY=o.y+(i.y-n.y)}(i,e),e.offsetDirection=Vy(e.deltaX,e.deltaY);var l,d,c=Uy(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=c.x,e.overallVelocityY=c.y,e.overallVelocity=oy(c.x)>oy(c.y)?c.x:c.y,e.scale=s?(l=s.pointers,Wy((d=n)[0],d[1],Ny)/Wy(l[0],l[1],Ny)):1,e.rotation=s?function(t,e){return qy(e[1],e[0],Ny)+qy(t[1],t[0],Ny)}(s.pointers,n):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,function(t,e){var i,n,o,r,s=t.lastInterval||e,a=e.timeStamp-s.timeStamp;if(e.eventType!==Ey&&(a>ky||void 0===s.velocity)){var h=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,d=Uy(a,h,l);n=d.x,o=d.y,i=oy(d.x)>oy(d.y)?d.x:d.y,r=Vy(h,l),t.lastInterval=e}else i=s.velocity,n=s.velocityX,o=s.velocityY,r=s.direction;e.velocity=i,e.velocityX=n,e.velocityY=o,e.direction=r}(i,e);var u,f=t.element,p=e.srcEvent;Ry(u=p.composedPath?p.composedPath()[0]:p.path?p.path[0]:p.target,f)&&(f=u),e.target=f}function Xy(t,e,i){var n=i.pointers.length,o=i.changedPointers.length,r=e&_y&&n-o==0,s=e&(xy|Ey)&&n-o==0;i.isFirst=!!r,i.isFinal=!!s,r&&(t.session={}),i.eventType=e,Yy(t,i),t.emit("hammer.input",i),t.recognize(i),t.session.prevInput=i}function Gy(t){return t.trim().split(/\s+/g)}function Ky(t,e,i){Fy(Gy(e),(function(e){t.addEventListener(e,i,!1)}))}function $y(t,e,i){Fy(Gy(e),(function(e){t.removeEventListener(e,i,!1)}))}function Zy(t){var e=t.ownerDocument||t;return e.defaultView||e.parentWindow||window}var Qy=function(){function t(t,e){var i=this;this.manager=t,this.callback=e,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(e){zy(t.options.enable,[t])&&i.handler(e)},this.init()}var e=t.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Ky(this.element,this.evEl,this.domHandler),this.evTarget&&Ky(this.target,this.evTarget,this.domHandler),this.evWin&&Ky(Zy(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&$y(this.element,this.evEl,this.domHandler),this.evTarget&&$y(this.target,this.evTarget,this.domHandler),this.evWin&&$y(Zy(this.element),this.evWin,this.domHandler)},t}();function Jy(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var n=0;ni[e]})):n.sort()),n}var am={touchstart:_y,touchmove:2,touchend:xy,touchcancel:Ey},hm=function(t){function e(){var i;return e.prototype.evTarget="touchstart touchmove touchend touchcancel",(i=t.apply(this,arguments)||this).targetIds={},i}return Zg(e,t),e.prototype.handler=function(t){var e=am[t.type],i=lm.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:by,srcEvent:t})},e}(Qy);function lm(t,e){var i,n,o=rm(t.touches),r=this.targetIds;if(e&(2|_y)&&1===o.length)return r[o[0].identifier]=!0,[o,o];var s=rm(t.changedTouches),a=[],h=this.target;if(n=o.filter((function(t){return Ry(t.target,h)})),e===_y)for(i=0;i-1&&n.splice(t,1)}),um)}}function pm(t,e){t&_y?(this.primaryTouch=e.changedPointers[0].identifier,fm.call(this,e)):t&(xy|Ey)&&fm.call(this,e)}function vm(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,n=0;n-1&&this.requireFail.splice(e,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(t){return!!this.simultaneous[t.id]},e.emit=function(t){var e=this,i=this.state;function n(i){e.manager.emit(i,t)}i<8&&n(e.options.event+km(i)),n(e.options.event),t.additionalEvent&&n(t.additionalEvent),i>=8&&n(e.options.event+km(i))},e.tryEmit=function(t){if(this.canEmit())return this.emit(t);this.state=mm},e.canEmit=function(){for(var t=0;te.threshold&&o&e.direction},i.attrTest=function(t){return Em.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},i.emit=function(e){this.pX=e.deltaX,this.pY=e.deltaY;var i=Om(e.direction);i&&(e.additionalEvent=this.options.event+i),t.prototype.emit.call(this,e)},e}(Em),Sm=function(t){function e(e){return void 0===e&&(e={}),t.call(this,$g({event:"swipe",threshold:10,velocity:.3,direction:Py|Dy,pointers:1},e))||this}Zg(e,t);var i=e.prototype;return i.getTouchAction=function(){return Cm.prototype.getTouchAction.call(this)},i.attrTest=function(e){var i,n=this.options.direction;return n&(Py|Dy)?i=e.overallVelocity:n&Py?i=e.overallVelocityX:n&Dy&&(i=e.overallVelocityY),t.prototype.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers===this.options.pointers&&oy(i)>this.options.velocity&&e.eventType&xy},i.emit=function(t){var e=Om(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)},e}(Em),Tm=function(t){function e(e){return void 0===e&&(e={}),t.call(this,$g({event:"pinch",threshold:0,pointers:2},e))||this}Zg(e,t);var i=e.prototype;return i.getTouchAction=function(){return[uy]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},i.emit=function(e){if(1!==e.scale){var i=e.scale<1?"in":"out";e.additionalEvent=this.options.event+i}t.prototype.emit.call(this,e)},e}(Em),Mm=function(t){function e(e){return void 0===e&&(e={}),t.call(this,$g({event:"rotate",threshold:0,pointers:2},e))||this}Zg(e,t);var i=e.prototype;return i.getTouchAction=function(){return[uy]},i.attrTest=function(e){return t.prototype.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)},e}(Em),Pm=function(t){function e(e){var i;return void 0===e&&(e={}),(i=t.call(this,$g({event:"press",pointers:1,time:251,threshold:9},e))||this)._timer=null,i._input=null,i}Zg(e,t);var i=e.prototype;return i.getTouchAction=function(){return[dy]},i.process=function(t){var e=this,i=this.options,n=t.pointers.length===i.pointers,o=t.distancei.time;if(this._input=t,!o||!n||t.eventType&(xy|Ey)&&!r)this.reset();else if(t.eventType&_y)this.reset(),this._timer=setTimeout((function(){e.state=8,e.tryEmit()}),i.time);else if(t.eventType&xy)return 8;return mm},i.reset=function(){clearTimeout(this._timer)},i.emit=function(t){8===this.state&&(t&&t.eventType&xy?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=ry(),this.manager.emit(this.options.event,this._input)))},e}(_m),Dm={domEvents:!1,touchAction:ly,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},Im=[[Mm,{enable:!1}],[Tm,{enable:!1},["rotate"]],[Sm,{direction:Py}],[Cm,{direction:Py},["swipe"]],[xm],[xm,{event:"doubletap",taps:2},["tap"]],[Pm]];function Bm(t,e){var i,n=t.element;n.style&&(Fy(t.options.cssProps,(function(o,r){i=sy(n.style,r),e?(t.oldCssProps[i]=n.style[i],n.style[i]=o):n.style[i]=t.oldCssProps[i]||""})),e||(t.oldCssProps={}))}var Nm=function(){function t(t,e){var i,n=this;this.options=ty({},Dm,e||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=new((i=this).options.inputClass||(yy?om:my?hm:gy?gm:cm))(i,Xy),this.touchAction=new jy(this,this.options.touchAction),Bm(this,!0),Fy(this.options.recognizers,(function(t){var e=n.add(new t[0](t[1]));t[2]&&e.recognizeWith(t[2]),t[3]&&e.requireFailure(t[3])}),this)}var e=t.prototype;return e.set=function(t){return ty(this.options,t),t.touchAction&&this.touchAction.update(),t.inputTarget&&(this.input.destroy(),this.input.target=t.inputTarget,this.input.init()),this},e.stop=function(t){this.session.stopped=t?2:1},e.recognize=function(t){var e=this.session;if(!e.stopped){var i;this.touchAction.preventDefaults(t);var n=this.recognizers,o=e.curRecognizer;(!o||o&&8&o.state)&&(e.curRecognizer=null,o=null);for(var r=0;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=window.console&&(window.console.warn||window.console.log);return o&&o.call(window.console,n,i),t.apply(this,arguments)}}var Rm=jm((function(t,e,i){for(var n=Object.keys(e),o=0;o=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function Ym(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i1?i-1:0),o=1;o2)return $m.apply(void 0,_f(n=[Km(e[0],e[1])]).call(n,vf(xf(e).call(e,2))));var o=e[0],r=e[1];if(o instanceof Date&&r instanceof Date)return o.setTime(r.getTime()),o;var s,a=Um(Pf(r));try{for(a.s();!(s=a.n()).done;){var h=s.value;Object.prototype.propertyIsEnumerable.call(r,h)&&(r[h]===Xm?delete o[h]:null===o[h]||null===r[h]||"object"!==bu(o[h])||"object"!==bu(r[h])||Df(o[h])||Df(r[h])?o[h]=Zm(r[h]):o[h]=$m(o[h],r[h]))}}catch(t){a.e(t)}finally{a.f()}return o}function Zm(t){return Df(t)?jf(t).call(t,(function(t){return Zm(t)})):"object"===bu(t)&&null!==t?t instanceof Date?new Date(t.getTime()):$m({},t):t}function Qm(t){for(var e=0,i=Hf(t);e>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)}}(),e=t(" "),i=t(" "),n=t(" "),o=0;o2&&void 0!==arguments[2]&&arguments[2];for(var n in t)if(void 0!==e[n])if(null===e[n]||"object"!==bu(e[n]))cb(t,e,n,i);else{var o=t[n],r=e[n];db(o)&&db(r)&&ub(o,r,i)}}var fb=bn;function pb(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Df(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o=0;o3&&void 0!==arguments[3]&&arguments[3];if(Df(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o in i)if(Object.prototype.hasOwnProperty.call(i,o)&&!rv(t).call(t,o))if(i[o]&&i[o].constructor===Object)void 0===e[o]&&(e[o]={}),e[o].constructor===Object?gb(e[o],i[o]):cb(e,i,o,n);else if(Df(i[o])){e[o]=[];for(var r=0;r2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)||!0===i)if("object"===bu(e[o])&&null!==e[o]&&dv(e[o])===Object.prototype)void 0===t[o]?t[o]=gb({},e[o],i):"object"===bu(t[o])&&null!==t[o]&&dv(t[o])===Object.prototype?gb(t[o],e[o],i):cb(t,e,o,n);else if(Df(e[o])){var r;t[o]=xf(r=e[o]).call(r)}else cb(t,e,o,n);return t}function yb(t,e){var i;return _f(i=[]).call(i,vf(t),[e])}function mb(t){return xf(t).call(t)}function bb(t){return t.getBoundingClientRect().left}function wb(t){return t.getBoundingClientRect().top}function kb(t,e){if(Df(t))for(var i=t.length,n=0;n3&&void 0!==arguments[3]?arguments[3]:{},o=function(t){return null!=t},r=function(t){return null!==t&&"object"===bu(t)};if(!r(t))throw new Error("Parameter mergeTarget must be an object");if(!r(e))throw new Error("Parameter options must be an object");if(!o(i))throw new Error("Parameter option must have a value");if(!r(n))throw new Error("Parameter globalOptions must be an object");var s=e[i],a=r(n)&&!function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(n)?n[i]:void 0,h=a?a.enabled:void 0;if(void 0!==s){if("boolean"==typeof s)return r(t[i])||(t[i]={}),void(t[i].enabled=s);if(null===s&&!r(t[i])){if(!o(a))return;t[i]=pg(a)}if(r(s)){var l=!0;void 0!==s.enabled?l=s.enabled:void 0!==h&&(l=a.enabled),function(t,e,i){r(t[i])||(t[i]={});var n=e[i],o=t[i];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(o[s]=n[s])}(t,e,i),t[i].enabled=l}}}var jb={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}};function Rb(t,e){var i;Df(e)||(e=[e]);var n,o=Um(t);try{for(o.s();!(n=o.n()).done;){var r=n.value;if(r){i=r[e[0]];for(var s=1;s0&&void 0!==arguments[0]?arguments[0]:1;ph(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return xu(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){if("string"==typeof t)return Lb[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i,n=this._isColorString(t);if(void 0!==n&&(t=n),!0===lb(t)){if(!0===Nb(t)){var o=t.substr(4).substr(0,t.length-5).split(",");i={r:o[0],g:o[1],b:o[2],a:1}}else if(!0===Fb(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===Bb(t)){var s=Eb(t);i={r:s.r,g:s.g,b:s.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var a=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:a}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+mg(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=bn({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",jg((function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)}),0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=bn({},t)),this.color=t;var e=Tb(t.r,t.g,t.b),i=2*Math.PI,n=this.r*e.s,o=this.centerCoordinates.x+n*Math.sin(i*e.h),r=this.centerCoordinates.y+n*Math.cos(i*e.h);this.colorPickerSelector.style.left=o-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=Tb(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=Pb(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=Tb(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var n=this.colorPickerCanvas.clientWidth,o=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,n,o),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),Kg(i).call(i),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){var t,e,i,n;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var o=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(o.webkitBackingStorePixelRatio||o.mozBackingStorePixelRatio||o.msBackingStorePixelRatio||o.oBackingStorePixelRatio||o.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var r=document.createElement("DIV");r.style.color="red",r.style.fontWeight="bold",r.style.padding="10px",r.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(r)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var s=this;this.opacityRange.onchange=function(){s._setOpacity(this.value)},this.opacityRange.oninput=function(){s._setOpacity(this.value)},this.brightnessRange.onchange=function(){s._setBrightness(this.value)},this.brightnessRange.oninput=function(){s._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=Hn(t=this._hide).call(t,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=Hn(e=this._apply).call(e,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=Hn(i=this._save).call(i,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=Hn(n=this._loadLast).call(n,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new tb(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",(function(e){e.isFirst&&t._moveSelector(e)})),this.hammer.on("tap",(function(e){t._moveSelector(e)})),this.hammer.on("panstart",(function(e){t._moveSelector(e)})),this.hammer.on("panmove",(function(e){t._moveSelector(e)})),this.hammer.on("panend",(function(e){t._moveSelector(e)}))}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e,i,n,o,r=this.colorPickerCanvas.clientWidth,s=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,r,s),this.centerCoordinates={x:.5*r,y:.5*s},this.r=.49*r;var a,h=2*Math.PI/360,l=1/this.r;for(n=0;n<360;n++)for(o=0;o3&&void 0!==arguments[3]?arguments[3]:1,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(){return!1};ph(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.hideOption=r,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},bn(this.options,this.defaultOptions),this.configureOptions=n,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new Hb(o),this.wrapper=void 0}return xu(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;if("string"==typeof t)this.options.filter=t;else if(Df(t))this.options.filter=t.join();else if("object"===bu(t)){if(null==t)throw new TypeError("options cannot be null");void 0!==t.container&&(this.options.container=t.container),void 0!==yv(t)&&(this.options.filter=yv(t)),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)}else"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0);!1===yv(this.options)&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){this._clean(),this.changedOptions=[];var t=yv(this.options),e=0,i=!1;for(var n in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,n)&&(this.allowCreation=!1,i=!1,"function"==typeof t?i=(i=t(n,[]))||this._handleObject(this.configureOptions[n],[n],!0):!0!==t&&-1===lg(t).call(t,n)||(i=!0),!1!==i&&(this.allowCreation=!0,e>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),e++);this._makeButton(),this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),o=1;o2&&void 0!==arguments[2]&&arguments[2],n=document.createElement("div");if(n.className="vis-configuration vis-config-label vis-config-s"+e.length,!0===i){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(Wb("i","b",t))}else n.innerText=t+":";return n}},{key:"_makeDropdown",value:function(t,e,i){var n=document.createElement("select");n.className="vis-configuration vis-config-select";var o=0;void 0!==e&&-1!==lg(t).call(t,e)&&(o=lg(t).call(t,e));for(var r=0;rr&&1!==r&&(a.max=Math.ceil(e*d),l=a.max,h="range increased"),a.value=e}else a.value=n;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var u=this;a.onchange=function(){c.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,f,a,c);""!==h&&this.popupHistory[p]!==l&&(this.popupHistory[p]=l,this._setupPopup(h,p))}},{key:"_makeButton",value:function(){var t=this;if(!0===this.options.showButton){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerText="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=!1,o=yv(this.options),r=!1;for(var s in t)if(Object.prototype.hasOwnProperty.call(t,s)){n=!0;var a=t[s],h=yb(e,s);if("function"==typeof o&&!1===(n=o(s,e))&&!Df(a)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,n=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==n){r=!0;var l=this._getValue(h);if(Df(a))this._handleArray(a,l,h);else if("string"==typeof a)this._makeTextInput(a,l,h);else if("boolean"==typeof a)this._makeCheckbox(a,l,h);else if(a instanceof Object){if(!this.hideOption(e,s,this.moduleOptions))if(void 0!==a.enabled){var d=yb(h,"enabled"),c=this._getValue(d);if(!0===c){var u=this._makeLabel(s,h,!0);this._makeItem(h,u),r=this._handleObject(a,h)||r}else this._makeCheckbox(a,c,h)}else{var f=this._makeLabel(s,h,!0);this._makeItem(h,f),r=this._handleObject(a,h)||r}}else console.error("dont know how to handle",a,s,h)}}return r}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i;t="false"!==(t="true"===t||t)&&t;for(var o=0;oo-this.padding&&(a=!0),r=a?this.x-i:this.x,s=h?this.y-e:this.y}else(s=this.y-e)+e+this.padding>n&&(s=n-e-this.padding),so&&(r=o-i-this.padding),rs.distance?" in "+t.printLocation(r.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):r.distance<=8?'. Did you mean "'+r.closestMatch+'"?'+t.printLocation(r.path,e):". Did you mean one of these: "+t.print(Hf(i))+t.printLocation(n,e),console.error('%cUnknown option detected: "'+e+'"'+o,Xb),Yb=!0}},{key:"findInOptions",value:function(e,i,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=1e9,s="",a=[],h=e.toLowerCase(),l=void 0;for(var d in i){var c=void 0;if(void 0!==i[d].__type__&&!0===o){var u=t.findInOptions(e,i[d],yb(n,d));r>u.distance&&(s=u.closestMatch,a=u.path,r=u.distance,l=u.indexMatch)}else{var f;-1!==lg(f=d.toLowerCase()).call(f,h)&&(l=d),r>(c=t.levenshteinDistance(e,d))&&(s=d,a=mb(n),r=c)}}return{closestMatch:s,path:a,distance:r,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i="\n\n"+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n")+"options = {\n",n=0;n0)return"before"==n?Math.max(0,h-1):h;if(o(s,e)<0&&o(a,e)>0)return"before"==n?h:Math.min(t.length-1,h+1);o(s,e)<0?d=h+1:c=h-1,l++}return-1},bridgeObject:zb,copyAndExtendArray:yb,copyArray:mb,deepExtend:gb,deepObjectAssign:Km,easingFunctions:jb,equalArray:function(t,e){if(t.length!==e.length)return!1;for(var i=0,n=t.length;i0&&void 0!==arguments[0]?arguments[0]:window.event,e=null;return t&&(t.target?e=t.target:t.srcElement&&(e=t.srcElement)),e instanceof Element&&(null==e.nodeType||3!=e.nodeType||(e=e.parentNode)instanceof Element)?e:null},getType:function(t){var e=bu(t);return"object"===e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Df(t)?"Array":t instanceof Date?"Date":"Object":"number"===e?"Number":"boolean"===e?"Boolean":"string"===e?"String":void 0===e?"undefined":e},hasParent:function(t,e){for(var i=t;i;){if(i===e)return!0;if(!i.parentNode)return!1;i=i.parentNode}return!1},hexToHSV:Ib,hexToRGB:Eb,insertSort:function(t,e){for(var i=0;i0&&e(n,t[o-1])<0;o--)t[o]=t[o-1];t[o]=n}return t},isDate:function(t){if(t instanceof Date)return!0;if(lb(t)){if(ib.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},isNumber:ab,isObject:db,isString:lb,isValidHex:Bb,isValidRGB:Nb,isValidRGBA:Fb,mergeOptions:Ab,option:xb,overrideOpacity:Ob,parseColor:Sb,preventDefault:function(t){t||(t=window.event),t&&(t.preventDefault?t.preventDefault():t.returnValue=!1)},pureDeepObjectAssign:Gm,recursiveDOMDelete:hb,removeClassName:function(t,e){var i=t.className.split(" "),n=e.split(" ");i=yv(i).call(i,(function(t){return!rv(n).call(n,t)})),t.className=i.join(" ")},removeCssText:function(t,e){for(var i=Mb(e),n=0,o=Hf(i);n2?i-2:0),o=2;o":!0,"--":!0},hw="",lw=0,dw="",cw="",uw=sw.NULL;function fw(){lw++,dw=hw.charAt(lw)}function pw(){return hw.charAt(lw+1)}function vw(t){var e=t.charCodeAt(0);return e<47?35===e||46===e:e<59?e>47:e<91?e>64:e<96?95===e:e<123&&e>96}function gw(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function yw(t,e,i){for(var n=e.split("."),o=t;n.length;){var r=n.shift();n.length?(o[r]||(o[r]={}),o=o[r]):o[r]=i}}function mw(t,e){for(var i,n,o=null,r=[t],s=t;s.parent;)r.push(s.parent),s=s.parent;if(s.nodes)for(i=0,n=s.nodes.length;i=0;i--){var a,h=r[i];h.nodes||(h.nodes=[]),-1===lg(a=h.nodes).call(a,o)&&h.nodes.push(o)}e.attr&&(o.attr=gw(o.attr,e.attr))}function bw(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=gw({},t.edge);e.attr=gw(i,e.attr)}}function ww(t,e,i,n,o){var r={from:e,to:i,type:n};return t.edge&&(r.attr=gw({},t.edge)),r.attr=gw(r.attr||{},o),null!=o&&o.hasOwnProperty("arrows")&&null!=o.arrows&&(r.arrows={to:{enabled:!0,type:o.arrows.type}},o.arrows=null),r}function kw(){for(uw=sw.NULL,cw="";" "===dw||"\t"===dw||"\n"===dw||"\r"===dw;)fw();do{var t=!1;if("#"===dw){for(var e=lw-1;" "===hw.charAt(e)||"\t"===hw.charAt(e);)e--;if("\n"===hw.charAt(e)||""===hw.charAt(e)){for(;""!=dw&&"\n"!=dw;)fw();t=!0}}if("/"===dw&&"/"===pw()){for(;""!=dw&&"\n"!=dw;)fw();t=!0}if("/"===dw&&"*"===pw()){for(;""!=dw;){if("*"===dw&&"/"===pw()){fw(),fw();break}fw()}t=!0}for(;" "===dw||"\t"===dw||"\n"===dw||"\r"===dw;)fw()}while(t);if(""!==dw){var i=dw+pw();if(aw[i])return uw=sw.DELIMITER,cw=i,fw(),void fw();if(aw[dw])return uw=sw.DELIMITER,cw=dw,void fw();if(vw(dw)||"-"===dw){for(cw+=dw,fw();vw(dw);)cw+=dw,fw();return"false"===cw?cw=!1:"true"===cw?cw=!0:isNaN(Number(cw))||(cw=Number(cw)),void(uw=sw.IDENTIFIER)}if('"'===dw){for(fw();""!=dw&&('"'!=dw||'"'===dw&&'"'===pw());)'"'===dw?(cw+=dw,fw()):"\\"===dw&&"n"===pw()?(cw+="\n",fw()):cw+=dw,fw();if('"'!=dw)throw Sw('End of string " expected');return fw(),void(uw=sw.IDENTIFIER)}for(uw=sw.UNKNOWN;""!=dw;)cw+=dw,fw();throw new SyntaxError('Syntax error in part "'+Tw(cw,30)+'"')}uw=sw.DELIMITER}function _w(t){for(;""!==cw&&"}"!=cw;)xw(t),";"===cw&&kw()}function xw(t){var e=Ew(t);if(e)Ow(t,e);else{var i=function(t){if("node"===cw)return kw(),t.node=Cw(),"node";if("edge"===cw)return kw(),t.edge=Cw(),"edge";if("graph"===cw)return kw(),t.graph=Cw(),"graph";return null}(t);if(!i){if(uw!=sw.IDENTIFIER)throw Sw("Identifier expected");var n=cw;if(kw(),"="===cw){if(kw(),uw!=sw.IDENTIFIER)throw Sw("Identifier expected");t[n]=cw,kw()}else!function(t,e){var i={id:e},n=Cw();n&&(i.attr=n);mw(t,i),Ow(t,e)}(t,n)}}}function Ew(t){var e=null;if("subgraph"===cw&&((e={}).type="subgraph",kw(),uw===sw.IDENTIFIER&&(e.id=cw,kw())),"{"===cw){if(kw(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,_w(e),"}"!=cw)throw Sw("Angle bracket } expected");kw(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function Ow(t,e){for(;"->"===cw||"--"===cw;){var i,n=cw;kw();var o=Ew(t);if(o)i=o;else{if(uw!=sw.IDENTIFIER)throw Sw("Identifier or subgraph expected");mw(t,{id:i=cw}),kw()}bw(t,ww(t,e,i,n,Cw())),e=i}}function Cw(){for(var t,e,i=null,n={dashed:!0,solid:!1,dotted:[1,5]},o={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},r=new Array,s=new Array;"["===cw;){for(kw(),i={};""!==cw&&"]"!=cw;){if(uw!=sw.IDENTIFIER)throw Sw("Attribute name expected");var a=cw;if(kw(),"="!=cw)throw Sw("Equal sign = expected");if(kw(),uw!=sw.IDENTIFIER)throw Sw("Attribute value expected");var h=cw;"style"===a&&(h=n[h]),"arrowhead"===a&&(a="arrows",h={to:{enabled:!0,type:o[h]}}),"arrowtail"===a&&(a="arrows",h={from:{enabled:!0,type:o[h]}}),r.push({attr:i,name:a,value:h}),s.push(a),kw(),","==cw&&kw()}if("]"!=cw)throw Sw("Bracket ] expected");kw()}if(rv(s).call(s,"dir")){var l={arrows:{}};for(t=0;t"===t.type&&(e.arrows="to"),e};op(o=i.edges).call(o,(function(t){var e,i,o,s,a,h,l;(e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges)&&op(o=t.from.edges).call(o,(function(t){var e=r(t);n.edges.push(e)}));(a=i,h=function(e,i){var o=ww(n,e.id,i.id,t.type,t.attr),s=r(o);n.edges.push(s)},Df(s=e)?op(s).call(s,(function(t){Df(a)?op(a).call(a,(function(e){h(t,e)})):h(t,a)})):Df(a)?op(a).call(a,(function(t){h(s,t)})):h(s,a),t.to instanceof Object&&t.to.edges)&&op(l=t.to.edges).call(l,(function(t){var e=r(t);n.edges.push(e)}))}))}return i.attr&&(n.options=i.attr),n}var Iw=Object.freeze({__proto__:null,DOTToGraph:Dw,parseDOT:nw});function Bw(t,e){var i,n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};null!=e&&(null!=e.fixed&&(n.nodes.fixed=e.fixed),null!=e.parseColor&&(n.nodes.parseColor=e.parseColor),null!=e.inheritColor&&(n.edges.inheritColor=e.inheritColor));var o=t.edges,r=jf(o).call(o,(function(t){var e={from:t.source,id:t.id,to:t.target};return null!=t.attributes&&(e.attributes=t.attributes),null!=t.label&&(e.label=t.label),null!=t.attributes&&null!=t.attributes.title&&(e.title=t.attributes.title),"Directed"===t.type&&(e.arrows="to"),t.color&&!1===n.edges.inheritColor&&(e.color=t.color),e}));return{nodes:jf(i=t.nodes).call(i,(function(t){var e={id:t.id,fixed:n.nodes.fixed&&null!=t.x&&null!=t.y};return null!=t.attributes&&(e.attributes=t.attributes),null!=t.label&&(e.label=t.label),null!=t.size&&(e.size=t.size),null!=t.attributes&&null!=t.attributes.title&&(e.title=t.attributes.title),null!=t.title&&(e.title=t.title),null!=t.x&&(e.x=t.x),null!=t.y&&(e.y=t.y),null!=t.color&&(!0===n.nodes.parseColor?e.color=t.color:e.color={background:t.color,border:t.color,highlight:{background:t.color,border:t.color},hover:{background:t.color,border:t.color}}),e})),edges:r}}var Nw=Object.freeze({__proto__:null,parseGephi:Bw}),Fw=Object.freeze({__proto__:null,cn:{addDescription:"单击空白处放置新节点。",addEdge:"添加连接线",addNode:"添加节点",back:"返回",close:"關閉",createEdgeError:"无法将连接线连接到群集。",del:"删除选定",deleteClusterError:"无法删除群集。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",edit:"编辑",editClusterError:"无法编辑群集。",editEdge:"编辑连接线",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",editNode:"编辑节点"},cs:{addDescription:"Kluknutím do prázdného prostoru můžete přidat nový vrchol.",addEdge:"Přidat hranu",addNode:"Přidat vrchol",back:"Zpět",close:"Zavřít",createEdgeError:"Nelze připojit hranu ke shluku.",del:"Smazat výběr",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.",editNode:"Upravit vrchol"},de:{addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzufügen",addNode:"Knoten hinzufügen",back:"Zurück",close:"Schließen",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",del:"Lösche Auswahl",deleteClusterError:"Cluster können nicht gelöscht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster können nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},en:{addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},es:{addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",addEdge:"Añadir arista",addNode:"Añadir nodo",back:"Atrás",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selección",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},fr:{addDescription:"Cliquez dans un endroit vide pour placer un nœud.",addEdge:"Ajouter un lien",addNode:"Ajouter un nœud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de créer un lien vers un cluster.",del:"Effacer la sélection",deleteClusterError:"Les clusters ne peuvent pas être effacés.",edgeDescription:"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.",edit:"Éditer",editClusterError:"Les clusters ne peuvent pas être édités.",editEdge:"Éditer le lien",editEdgeDescription:"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.",editNode:"Éditer le nœud"},it:{addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},nl:{addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},pt:{addDescription:"Clique em um espaço em branco para adicionar um novo nó",addEdge:"Adicionar aresta",addNode:"Adicionar nó",back:"Voltar",close:"Fechar",createEdgeError:"Não foi possível linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters não puderam ser removidos.",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",edit:"Editar",editClusterError:"Clusters não puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",editNode:"Editar nó"},ru:{addDescription:"Кликните в свободное место, чтобы добавить новый узел.",addEdge:"Добавить ребро",addNode:"Добавить узел",back:"Назад",close:"Закрывать",createEdgeError:"Невозможно соединить ребра в кластер.",del:"Удалить выбранное",deleteClusterError:"Кластеры не могут быть удалены",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",edit:"Редактировать",editClusterError:"Кластеры недоступны для редактирования.",editEdge:"Редактировать ребро",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",editNode:"Редактировать узел"},uk:{addDescription:"Kлікніть на вільне місце, щоб додати новий вузол.",addEdge:"Додати край",addNode:"Додати вузол",back:"Назад",close:"Закрити",createEdgeError:"Не можливо об'єднати краї в групу.",del:"Видалити обране",deleteClusterError:"Групи не можуть бути видалені.",edgeDescription:"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.",edit:"Редагувати",editClusterError:"Групи недоступні для редагування.",editEdge:"Редагувати край",editEdgeDescription:"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.",editNode:"Редагувати вузол"}});var zw=function(){function t(){ph(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return xu(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),n=Math.floor(e/4),o=Math.floor(e/8),r=Math.floor(e/16),s=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),l=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,s,i],[s,0,a,n],[s,n,h,o],[5*h,n,l,r]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i2){e*=.5;for(var s=0;e>2&&s=this.NUM_ITERATIONS&&(s=this.NUM_ITERATIONS-1);var a=this.coordinates[s];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,n,o,r)}else t.drawImage(this.image,i,n,o,r)}}]),t}(),Aw=function(){function t(e){ph(this,t),this.images={},this.imageBroken={},this.callback=e}return xu(t,[{key:"_tryloadBrokenUrl",value:function(t,e,i){void 0!==t&&void 0!==i&&(void 0!==e?(i.image.onerror=function(){console.error("Could not load brokenImage:",e)},i.image.src=e):console.warn("No broken url image defined"))}},{key:"_redrawWithImage",value:function(t){this.callback&&this.callback(t)}},{key:"load",value:function(t,e){var i=this,n=this.images[t];if(n)return n;var o=new zw;return this.images[t]=o,o.image.onload=function(){i._fixImageCoordinates(o.image),o.init(),i._redrawWithImage(o)},o.image.onerror=function(){console.error("Could not load image:",t),i._tryloadBrokenUrl(t,e,o)},o.image.src=t,o}},{key:"_fixImageCoordinates",value:function(t){0===t.width&&(document.body.appendChild(t),t.width=t.offsetWidth,t.height=t.offsetHeight,document.body.removeChild(t))}}]),t}(),jw={exports:{}},Rw=r((function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}})),Lw=r,Hw=tt,Ww=w,qw=Rw,Vw=Object.isExtensible,Uw=Lw((function(){Vw(1)}))||qw?function(t){return!!Hw(t)&&((!qw||"ArrayBuffer"!==Ww(t))&&(!Vw||Vw(t)))}:Vw,Yw=!r((function(){return Object.isExtensible(Object.preventExtensions({}))})),Xw=Ti,Gw=g,Kw=Yi,$w=tt,Zw=Qt,Qw=Ze.f,Jw=Jh,tk=il,ek=Uw,ik=Yw,nk=!1,ok=ne("meta"),rk=0,sk=function(t){Qw(t,ok,{value:{objectID:"O"+rk++,weakData:{}}})},ak=jw.exports={enable:function(){ak.enable=function(){},nk=!0;var t=Jw.f,e=Gw([].splice),i={};i[ok]=1,t(i).length&&(Jw.f=function(i){for(var n=t(i),o=0,r=n.length;or;r++)if((a=y(t[r]))&&vk(kk,a))return a;return new wk(!1)}n=gk(t,o)}for(h=u?t.next:n.next;!(l=dk(h,n)).done;){try{a=y(l.value)}catch(t){mk(n,"throw",t)}if("object"==typeof a&&a&&vk(kk,a))return a}return new wk(!1)},xk=at,Ek=TypeError,Ok=function(t,e){if(xk(e,t))return t;throw new Ek("Incorrect invocation")},Ck=Ti,Sk=o,Tk=hk,Mk=r,Pk=gi,Dk=_k,Ik=Ok,Bk=S,Nk=tt,Fk=U,zk=Gr,Ak=Ze.f,jk=Fl.forEach,Rk=M,Lk=Lo.set,Hk=Lo.getterFor,Wk=function(t,e,i){var n,o=-1!==t.indexOf("Map"),r=-1!==t.indexOf("Weak"),s=o?"set":"add",a=Sk[t],h=a&&a.prototype,l={};if(Rk&&Bk(a)&&(r||h.forEach&&!Mk((function(){(new a).entries().next()})))){var d=(n=e((function(e,i){Lk(Ik(e,d),{type:t,collection:new a}),Fk(i)||Dk(i,e[s],{that:e,AS_ENTRIES:o})}))).prototype,c=Hk(t);jk(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(t){var e="add"===t||"set"===t;!(t in h)||r&&"clear"===t||Pk(d,t,(function(i,n){var o=c(this).collection;if(!e&&r&&!Nk(i))return"get"===t&&void 0;var s=o[t](0===i?0:i,n);return e?this:s}))})),r||Ak(d,"size",{configurable:!0,get:function(){return c(this).collection.size}})}else n=i.getConstructor(e,t,o,s),Tk.enable();return zk(n,t,!1,!0),l[t]=n,Ck({global:!0,forced:!0},l),r||i.setStrong(n,t,o),n},qk=Mr,Vk=function(t,e,i){for(var n in e)i&&i.unsafe&&t[n]?t[n]=e[n]:qk(t,n,e[n],i);return t},Uk=st,Yk=vl,Xk=M,Gk=ue("species"),Kk=function(t){var e=Uk(t);Xk&&e&&!e[Gk]&&Yk(e,Gk,{configurable:!0,get:function(){return this}})},$k=mr,Zk=vl,Qk=Vk,Jk=$e,t_=Ok,e_=U,i_=_k,n_=Ss,o_=Ts,r_=Kk,s_=M,a_=hk.fastKey,h_=Lo.set,l_=Lo.getterFor,d_={getConstructor:function(t,e,i,n){var o=t((function(t,o){t_(t,r),h_(t,{type:e,index:$k(null),first:void 0,last:void 0,size:0}),s_||(t.size=0),e_(o)||i_(o,t[n],{that:t,AS_ENTRIES:i})})),r=o.prototype,s=l_(e),a=function(t,e,i){var n,o,r=s(t),a=h(t,e);return a?a.value=i:(r.last=a={index:o=a_(e,!0),key:e,value:i,previous:n=r.last,next:void 0,removed:!1},r.first||(r.first=a),n&&(n.next=a),s_?r.size++:t.size++,"F"!==o&&(r.index[o]=a)),t},h=function(t,e){var i,n=s(t),o=a_(e);if("F"!==o)return n.index[o];for(i=n.first;i;i=i.next)if(i.key===e)return i};return Qk(r,{clear:function(){for(var t=s(this),e=t.index,i=t.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete e[i.index],i=i.next;t.first=t.last=void 0,s_?t.size=0:this.size=0},delete:function(t){var e=this,i=s(e),n=h(e,t);if(n){var o=n.next,r=n.previous;delete i.index[n.index],n.removed=!0,r&&(r.next=o),o&&(o.previous=r),i.first===n&&(i.first=o),i.last===n&&(i.last=r),s_?i.size--:e.size--}return!!n},forEach:function(t){for(var e,i=s(this),n=Jk(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:i.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!h(this,t)}}),Qk(r,i?{get:function(t){var e=h(this,t);return e&&e.value},set:function(t,e){return a(this,0===t?0:t,e)}}:{add:function(t){return a(this,t=0===t?0:t,t)}}),s_&&Zk(r,"size",{configurable:!0,get:function(){return s(this).size}}),o},setStrong:function(t,e,i){var n=e+" Iterator",o=l_(e),r=l_(n);n_(t,e,(function(t,e){h_(this,{type:n,target:t,state:o(t),kind:e,last:void 0})}),(function(){for(var t=r(this),e=t.kind,i=t.last;i&&i.removed;)i=i.previous;return t.target&&(t.last=i=i?i.next:t.state.first)?o_("keys"===e?i.key:"values"===e?i.value:[i.key,i.value],!1):(t.target=void 0,o_(void 0,!0))}),i?"entries":"values",!i,!0),r_(e)}};Wk("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),d_);var c_=i(et.Map),u_=function(){function t(){ph(this,t),this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},bn(this.options,this.defaultOptions)}return xu(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)&&-1===lg(e).call(e,i)){var n=t[i];this.add(i,n)}}},{key:"clear",value:function(){this._groups=new c_,this._groupNames=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._groups.get(t);if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this._groupNames.length>0){var n=this._groupIndex%this._groupNames.length;++this._groupIndex,(i={}).color=this._groups.get(this._groupNames[n]),this._groups.set(t,i)}else{var o=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,(i={}).color=this._defaultGroups[o],this._groups.set(t,i)}return i}},{key:"add",value:function(t,e){return this._groups.has(t)||this._groupNames.push(t),this._groups.set(t,e),e}}]),t}();Ti({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var f_=i(et.Number.isNaN),p_=o.isFinite,v_=Number.isFinite||function(t){return"number"==typeof t&&p_(t)};Ti({target:"Number",stat:!0},{isFinite:v_});var g_=i(et.Number.isFinite),y_=Fl.some;Ti({target:"Array",proto:!0,forced:!Xf("some")},{some:function(t){return y_(this,t,arguments.length>1?arguments[1]:void 0)}});var m_=Nn("Array").some,b_=at,w_=m_,k_=Array.prototype,__=function(t){var e=t.some;return t===k_||b_(k_,t)&&e===k_.some?w_:e},x_=i(__);function E_(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var O_=fg,C_=i(O_);Ti({target:"Object",stat:!0},{setPrototypeOf:ds});var S_=et.Object.setPrototypeOf,T_=i(S_),M_=i(Ln);function P_(t,e){var i;return P_=T_?M_(i=T_).call(i):function(t,e){return t.__proto__=e,t},P_(t,e)}function D_(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=C_(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),xh(t,"prototype",{writable:!1}),e&&P_(t,e)}function I_(t,e){if(e&&("object"===bu(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return E_(t)}var B_=lv,N_=i(B_);function F_(t){var e;return F_=T_?M_(e=N_).call(e):function(t){return t.__proto__||N_(t)},F_(t)}function z_(t,e,i){return(e=ku(e))in t?xh(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}var A_={exports:{}},j_={exports:{}};!function(t){var e=pu,i=yu;function n(o){return t.exports=n="function"==typeof e&&"symbol"==typeof i?function(t){return typeof t}:function(t){return t&&"function"==typeof e&&t.constructor===e&&t!==e.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,n(o)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports}(j_);var R_=j_.exports,L_=np,H_=Qt,W_=Mf,q_=T,V_=Ze,U_=tt,Y_=gi,X_=Error,G_=g("".replace),K_=String(new X_("zxcasd").stack),$_=/\n\s*at [^:]*:[^\n]*/,Z_=$_.test(K_),Q_=R,J_=!r((function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",Q_(1,7)),7!==t.stack)})),tx=gi,ex=function(t,e){if(Z_&&"string"==typeof t&&!X_.prepareStackTrace)for(;e--;)t=G_(t,$_,"");return t},ix=J_,nx=Error.captureStackTrace,ox=co,rx=Ti,sx=at,ax=Sr,hx=ds,lx=function(t,e,i){for(var n=W_(e),o=V_.f,r=q_.f,s=0;s2&&fx(i,arguments[2]);var o=[];return vx(t,bx,{that:o}),cx(i,"errors",o),i};hx?hx(wx,mx):lx(wx,mx,{name:!0});var kx=wx.prototype=dx(mx.prototype,{constructor:ux(1,wx),message:ux(1,""),name:ux(1,"AggregateError")});rx({global:!0,constructor:!0,arity:2},{AggregateError:wx});var _x,xx,Ex,Ox,Cx="process"===w(o.process),Sx=da,Tx=St,Mx=TypeError,Px=function(t){if(Sx(t))return t;throw new Mx(Tx(t)+" is not a constructor")},Dx=ii,Ix=Px,Bx=U,Nx=ue("species"),Fx=function(t,e){var i,n=Dx(t).constructor;return void 0===n||Bx(i=Dx(n)[Nx])?e:Ix(i)},zx=/(?:ipad|iphone|ipod).*applewebkit/i.test(ht),Ax=o,jx=c,Rx=$e,Lx=S,Hx=Qt,Wx=r,qx=er,Vx=wn,Ux=Ce,Yx=kg,Xx=zx,Gx=Cx,Kx=Ax.setImmediate,$x=Ax.clearImmediate,Zx=Ax.process,Qx=Ax.Dispatch,Jx=Ax.Function,tE=Ax.MessageChannel,eE=Ax.String,iE=0,nE={},oE="onreadystatechange";Wx((function(){_x=Ax.location}));var rE=function(t){if(Hx(nE,t)){var e=nE[t];delete nE[t],e()}},sE=function(t){return function(){rE(t)}},aE=function(t){rE(t.data)},hE=function(t){Ax.postMessage(eE(t),_x.protocol+"//"+_x.host)};Kx&&$x||(Kx=function(t){Yx(arguments.length,1);var e=Lx(t)?t:Jx(t),i=Vx(arguments,1);return nE[++iE]=function(){jx(e,void 0,i)},xx(iE),iE},$x=function(t){delete nE[t]},Gx?xx=function(t){Zx.nextTick(sE(t))}:Qx&&Qx.now?xx=function(t){Qx.now(sE(t))}:tE&&!Xx?(Ox=(Ex=new tE).port2,Ex.port1.onmessage=aE,xx=Rx(Ox.postMessage,Ox)):Ax.addEventListener&&Lx(Ax.postMessage)&&!Ax.importScripts&&_x&&"file:"!==_x.protocol&&!Wx(hE)?(xx=hE,Ax.addEventListener("message",aE,!1)):xx=oE in Ux("script")?function(t){qx.appendChild(Ux("script"))[oE]=function(){qx.removeChild(this),rE(t)}}:function(t){setTimeout(sE(t),0)});var lE={set:Kx,clear:$x},dE=function(){this.head=null,this.tail=null};dE.prototype={add:function(t){var e={item:t,next:null},i=this.tail;i?i.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var cE,uE,fE,pE,vE,gE=dE,yE=/ipad|iphone|ipod/i.test(ht)&&"undefined"!=typeof Pebble,mE=/web0s(?!.*chrome)/i.test(ht),bE=o,wE=$e,kE=T.f,_E=lE.set,xE=gE,EE=zx,OE=yE,CE=mE,SE=Cx,TE=bE.MutationObserver||bE.WebKitMutationObserver,ME=bE.document,PE=bE.process,DE=bE.Promise,IE=kE(bE,"queueMicrotask"),BE=IE&&IE.value;if(!BE){var NE=new xE,FE=function(){var t,e;for(SE&&(t=PE.domain)&&t.exit();e=NE.get();)try{e()}catch(t){throw NE.head&&cE(),t}t&&t.enter()};EE||SE||CE||!TE||!ME?!OE&&DE&&DE.resolve?((pE=DE.resolve(void 0)).constructor=DE,vE=wE(pE.then,pE),cE=function(){vE(FE)}):SE?cE=function(){PE.nextTick(FE)}:(_E=wE(_E,bE),cE=function(){_E(FE)}):(uE=!0,fE=ME.createTextNode(""),new TE(FE).observe(fE,{characterData:!0}),cE=function(){fE.data=uE=!uE}),BE=function(t){NE.head||cE(),NE.add(t)}}var zE=BE,AE=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},jE=o.Promise,RE="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,LE=!RE&&!Cx&&"object"==typeof window&&"object"==typeof document,HE=o,WE=jE,qE=S,VE=Ye,UE=$s,YE=ue,XE=LE,GE=RE,KE=vt,$E=WE&&WE.prototype,ZE=YE("species"),QE=!1,JE=qE(HE.PromiseRejectionEvent),tO=VE("Promise",(function(){var t=UE(WE),e=t!==String(WE);if(!e&&66===KE)return!0;if(!$E.catch||!$E.finally)return!0;if(!KE||KE<51||!/native code/.test(t)){var i=new WE((function(t){t(1)})),n=function(t){t((function(){}),(function(){}))};if((i.constructor={})[ZE]=n,!(QE=i.then((function(){}))instanceof n))return!0}return!e&&(XE||GE)&&!JE})),eO={CONSTRUCTOR:tO,REJECTION_EVENT:JE,SUBCLASSING:QE},iO={},nO=Dt,oO=TypeError,rO=function(t){var e,i;this.promise=new t((function(t,n){if(void 0!==e||void 0!==i)throw new oO("Bad Promise constructor");e=t,i=n})),this.resolve=nO(e),this.reject=nO(i)};iO.f=function(t){return new rO(t)};var sO,aO,hO=Ti,lO=Cx,dO=o,cO=I,uO=Mr,fO=Gr,pO=Kk,vO=Dt,gO=S,yO=tt,mO=Ok,bO=Fx,wO=lE.set,kO=zE,_O=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}},xO=AE,EO=gE,OO=Lo,CO=jE,SO=eO,TO=iO,MO="Promise",PO=SO.CONSTRUCTOR,DO=SO.REJECTION_EVENT,IO=OO.getterFor(MO),BO=OO.set,NO=CO&&CO.prototype,FO=CO,zO=NO,AO=dO.TypeError,jO=dO.document,RO=dO.process,LO=TO.f,HO=LO,WO=!!(jO&&jO.createEvent&&dO.dispatchEvent),qO="unhandledrejection",VO=function(t){var e;return!(!yO(t)||!gO(e=t.then))&&e},UO=function(t,e){var i,n,o,r=e.value,s=1===e.state,a=s?t.ok:t.fail,h=t.resolve,l=t.reject,d=t.domain;try{a?(s||(2===e.rejection&&$O(e),e.rejection=1),!0===a?i=r:(d&&d.enter(),i=a(r),d&&(d.exit(),o=!0)),i===t.promise?l(new AO("Promise-chain cycle")):(n=VO(i))?cO(n,i,h,l):h(i)):l(r)}catch(t){d&&!o&&d.exit(),l(t)}},YO=function(t,e){t.notified||(t.notified=!0,kO((function(){for(var i,n=t.reactions;i=n.get();)UO(i,t);t.notified=!1,e&&!t.rejection&&GO(t)})))},XO=function(t,e,i){var n,o;WO?((n=jO.createEvent("Event")).promise=e,n.reason=i,n.initEvent(t,!1,!0),dO.dispatchEvent(n)):n={promise:e,reason:i},!DO&&(o=dO["on"+t])?o(n):t===qO&&_O("Unhandled promise rejection",i)},GO=function(t){cO(wO,dO,(function(){var e,i=t.facade,n=t.value;if(KO(t)&&(e=xO((function(){lO?RO.emit("unhandledRejection",n,i):XO(qO,i,n)})),t.rejection=lO||KO(t)?2:1,e.error))throw e.value}))},KO=function(t){return 1!==t.rejection&&!t.parent},$O=function(t){cO(wO,dO,(function(){var e=t.facade;lO?RO.emit("rejectionHandled",e):XO("rejectionhandled",e,t.value)}))},ZO=function(t,e,i){return function(n){t(e,n,i)}},QO=function(t,e,i){t.done||(t.done=!0,i&&(t=i),t.value=e,t.state=2,YO(t,!0))},JO=function(t,e,i){if(!t.done){t.done=!0,i&&(t=i);try{if(t.facade===e)throw new AO("Promise can't be resolved itself");var n=VO(e);n?kO((function(){var i={done:!1};try{cO(n,e,ZO(JO,i,t),ZO(QO,i,t))}catch(e){QO(i,e,t)}})):(t.value=e,t.state=1,YO(t,!1))}catch(e){QO({done:!1},e,t)}}};PO&&(zO=(FO=function(t){mO(this,zO),vO(t),cO(sO,this);var e=IO(this);try{t(ZO(JO,e),ZO(QO,e))}catch(t){QO(e,t)}}).prototype,(sO=function(t){BO(this,{type:MO,done:!1,notified:!1,parent:!1,reactions:new EO,rejection:!1,state:0,value:void 0})}).prototype=uO(zO,"then",(function(t,e){var i=IO(this),n=LO(bO(this,FO));return i.parent=!0,n.ok=!gO(t)||t,n.fail=gO(e)&&e,n.domain=lO?RO.domain:void 0,0===i.state?i.reactions.add(n):kO((function(){UO(n,i)})),n.promise})),aO=function(){var t=new sO,e=IO(t);this.promise=t,this.resolve=ZO(JO,e),this.reject=ZO(QO,e)},TO.f=LO=function(t){return t===FO||undefined===t?new aO(t):HO(t)}),hO({global:!0,constructor:!0,wrap:!0,forced:PO},{Promise:FO}),fO(FO,MO,!1,!0),pO(MO);var tC=jE,eC=eO.CONSTRUCTOR||!qa((function(t){tC.all(t).then(void 0,(function(){}))})),iC=I,nC=Dt,oC=iO,rC=AE,sC=_k;Ti({target:"Promise",stat:!0,forced:eC},{all:function(t){var e=this,i=oC.f(e),n=i.resolve,o=i.reject,r=rC((function(){var i=nC(e.resolve),r=[],s=0,a=1;sC(t,(function(t){var h=s++,l=!1;a++,iC(i,e,t).then((function(t){l||(l=!0,r[h]=t,--a||n(r))}),o)})),--a||n(r)}));return r.error&&o(r.value),i.promise}});var aC=Ti,hC=eO.CONSTRUCTOR;jE&&jE.prototype,aC({target:"Promise",proto:!0,forced:hC,real:!0},{catch:function(t){return this.then(void 0,t)}});var lC=I,dC=Dt,cC=iO,uC=AE,fC=_k;Ti({target:"Promise",stat:!0,forced:eC},{race:function(t){var e=this,i=cC.f(e),n=i.reject,o=uC((function(){var o=dC(e.resolve);fC(t,(function(t){lC(o,e,t).then(i.resolve,n)}))}));return o.error&&n(o.value),i.promise}});var pC=I,vC=iO;Ti({target:"Promise",stat:!0,forced:eO.CONSTRUCTOR},{reject:function(t){var e=vC.f(this);return pC(e.reject,void 0,t),e.promise}});var gC=ii,yC=tt,mC=iO,bC=function(t,e){if(gC(t),yC(e)&&e.constructor===t)return e;var i=mC.f(t);return(0,i.resolve)(e),i.promise},wC=Ti,kC=jE,_C=eO.CONSTRUCTOR,xC=bC,EC=st("Promise"),OC=!_C;wC({target:"Promise",stat:!0,forced:true},{resolve:function(t){return xC(OC&&this===EC?kC:this,t)}});var CC=I,SC=Dt,TC=iO,MC=AE,PC=_k;Ti({target:"Promise",stat:!0,forced:eC},{allSettled:function(t){var e=this,i=TC.f(e),n=i.resolve,o=i.reject,r=MC((function(){var i=SC(e.resolve),o=[],r=0,s=1;PC(t,(function(t){var a=r++,h=!1;s++,CC(i,e,t).then((function(t){h||(h=!0,o[a]={status:"fulfilled",value:t},--s||n(o))}),(function(t){h||(h=!0,o[a]={status:"rejected",reason:t},--s||n(o))}))})),--s||n(o)}));return r.error&&o(r.value),i.promise}});var DC=I,IC=Dt,BC=st,NC=iO,FC=AE,zC=_k,AC="No one promise resolved";Ti({target:"Promise",stat:!0,forced:eC},{any:function(t){var e=this,i=BC("AggregateError"),n=NC.f(e),o=n.resolve,r=n.reject,s=FC((function(){var n=IC(e.resolve),s=[],a=0,h=1,l=!1;zC(t,(function(t){var d=a++,c=!1;h++,DC(n,e,t).then((function(t){c||l||(l=!0,o(t))}),(function(t){c||l||(c=!0,s[d]=t,--h||r(new i(s,AC)))}))})),--h||r(new i(s,AC))}));return s.error&&r(s.value),n.promise}});var jC=Ti,RC=jE,LC=r,HC=st,WC=S,qC=Fx,VC=bC,UC=RC&&RC.prototype;jC({target:"Promise",proto:!0,real:!0,forced:!!RC&&LC((function(){UC.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=qC(this,HC("Promise")),i=WC(t);return this.then(i?function(i){return VC(e,t()).then((function(){return i}))}:t,i?function(i){return VC(e,t()).then((function(){throw i}))}:t)}});var YC=et.Promise,XC=iO;Ti({target:"Promise",stat:!0},{withResolvers:function(){var t=XC.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var GC=YC,KC=iO,$C=AE;Ti({target:"Promise",stat:!0,forced:!0},{try:function(t){var e=KC.f(this),i=$C(t);return(i.error?e.reject:e.resolve)(i.value),e.promise}});var ZC=GC,QC=pp;!function(t){var e=R_.default,i=_h,n=pu,o=O_,r=B_,s=L_,a=Lu,h=S_,l=ZC,d=QC,c=lf;function u(){t.exports=u=function(){return p},t.exports.__esModule=!0,t.exports.default=t.exports;var f,p={},v=Object.prototype,g=v.hasOwnProperty,y=i||function(t,e,i){t[e]=i.value},m="function"==typeof n?n:{},b=m.iterator||"@@iterator",w=m.asyncIterator||"@@asyncIterator",k=m.toStringTag||"@@toStringTag";function _(t,e,n){return i(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{_({},"")}catch(f){_=function(t,e,i){return t[e]=i}}function x(t,e,i,n){var r=e&&e.prototype instanceof P?e:P,s=o(r.prototype),a=new W(n||[]);return y(s,"_invoke",{value:j(t,i,a)}),s}function E(t,e,i){try{return{type:"normal",arg:t.call(e,i)}}catch(t){return{type:"throw",arg:t}}}p.wrap=x;var O="suspendedStart",C="suspendedYield",S="executing",T="completed",M={};function P(){}function D(){}function I(){}var B={};_(B,b,(function(){return this}));var N=r&&r(r(q([])));N&&N!==v&&g.call(N,b)&&(B=N);var F=I.prototype=P.prototype=o(B);function z(t){var e;s(e=["next","throw","return"]).call(e,(function(e){_(t,e,(function(t){return this._invoke(e,t)}))}))}function A(t,i){function n(o,r,s,a){var h=E(t[o],t,r);if("throw"!==h.type){var l=h.arg,d=l.value;return d&&"object"==e(d)&&g.call(d,"__await")?i.resolve(d.__await).then((function(t){n("next",t,s,a)}),(function(t){n("throw",t,s,a)})):i.resolve(d).then((function(t){l.value=t,s(l)}),(function(t){return n("throw",t,s,a)}))}a(h.arg)}var o;y(this,"_invoke",{value:function(t,e){function r(){return new i((function(i,o){n(t,e,i,o)}))}return o=o?o.then(r,r):r()}})}function j(t,e,i){var n=O;return function(o,r){if(n===S)throw new Error("Generator is already running");if(n===T){if("throw"===o)throw r;return{value:f,done:!0}}for(i.method=o,i.arg=r;;){var s=i.delegate;if(s){var a=R(s,i);if(a){if(a===M)continue;return a}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if(n===O)throw n=T,i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n=S;var h=E(t,e,i);if("normal"===h.type){if(n=i.done?T:C,h.arg===M)continue;return{value:h.arg,done:i.done}}"throw"===h.type&&(n=T,i.method="throw",i.arg=h.arg)}}}function R(t,e){var i=e.method,n=t.iterator[i];if(n===f)return e.delegate=null,"throw"===i&&t.iterator.return&&(e.method="return",e.arg=f,R(t,e),"throw"===e.method)||"return"!==i&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+i+"' method")),M;var o=E(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,M;var r=o.arg;return r?r.done?(e[t.resultName]=r.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=f),e.delegate=null,M):r:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,M)}function L(t){var e,i={tryLoc:t[0]};1 in t&&(i.catchLoc=t[1]),2 in t&&(i.finallyLoc=t[2],i.afterLoc=t[3]),a(e=this.tryEntries).call(e,i)}function H(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function W(t){this.tryEntries=[{tryLoc:"root"}],s(t).call(t,L,this),this.reset(!0)}function q(t){if(t||""===t){var i=t[b];if(i)return i.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0;--n){var o=this.tryEntries[n],r=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var s=g.call(o,"catchLoc"),a=g.call(o,"finallyLoc");if(s&&a){if(this.prev=0;--i){var n=this.tryEntries[i];if(n.tryLoc<=this.prev&&g.call(n,"finallyLoc")&&this.prev=0;--e){var i=this.tryEntries[e];if(i.finallyLoc===t)return this.complete(i.completion,i.afterLoc),H(i),M}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var i=this.tryEntries[e];if(i.tryLoc===t){var n=i.completion;if("throw"===n.type){var o=n.arg;H(i)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,i){return this.delegate={iterator:q(t),resultName:e,nextLoc:i},"next"===this.method&&(this.arg=f),M}},p}t.exports=u,t.exports.__esModule=!0,t.exports.default=t.exports}(A_);var JC=(0,A_.exports)(),tS=JC;try{regeneratorRuntime=JC}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=JC:Function("r","regeneratorRuntime = r")(JC)}var eS=i(tS),iS=Dt,nS=Kt,oS=V,rS=Li,sS=TypeError,aS=function(t){return function(e,i,n,o){iS(i);var r=nS(e),s=oS(r),a=rS(r),h=t?a-1:0,l=t?-1:1;if(n<2)for(;;){if(h in s){o=s[h],h+=l;break}if(h+=l,t?h<0:a<=h)throw new sS("Reduce of empty array with no initial value")}for(;t?h>=0:a>h;h+=l)h in s&&(o=i(o,s[h],h,r));return o}},hS={left:aS(!1),right:aS(!0)}.left;Ti({target:"Array",proto:!0,forced:!Cx&&vt>79&&vt<83||!Xf("reduce")},{reduce:function(t){var e=arguments.length;return hS(this,t,e,e>1?arguments[1]:void 0)}});var lS=Nn("Array").reduce,dS=at,cS=lS,uS=Array.prototype,fS=function(t){var e=t.reduce;return t===uS||dS(uS,t)&&e===uS.reduce?cS:e},pS=i(fS),vS=Oh,gS=Li,yS=Sh,mS=$e,bS=function(t,e,i,n,o,r,s,a){for(var h,l,d=o,c=0,u=!!s&&mS(s,a);c0&&vS(h)?(l=gS(h),d=bS(t,e,h,l,d,r-1)-1):(yS(d+1),t[d]=h),d++),c++;return d},wS=bS,kS=Dt,_S=Kt,xS=Li,ES=Nh;Ti({target:"Array",proto:!0},{flatMap:function(t){var e,i=_S(this),n=xS(i);return kS(t),(e=ES(i,0)).length=wS(e,i,i,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}});var OS=Nn("Array").flatMap,CS=at,SS=OS,TS=Array.prototype,MS=function(t){var e=t.flatMap;return t===TS||CS(TS,t)&&e===TS.flatMap?SS:e},PS=i(MS);Wk("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),d_);var DS=i(et.Set),IS=i(gu),BS=i(Sa),NS=hl,FS=Math.floor,zS=function(t,e){var i=t.length,n=FS(i/2);return i<8?AS(t,e):jS(t,zS(NS(t,0,n),e),zS(NS(t,n),e),e)},AS=function(t,e){for(var i,n,o=t.length,r=1;r0;)t[n]=t[--n];n!==r++&&(t[n]=i)}return t},jS=function(t,e,i,n){for(var o=e.length,r=i.length,s=0,a=0;s3)){if(iT)return!0;if(oT)return oT<603;var t,e,i,n,o="";for(t=65;t<76;t++){switch(e=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:i=3;break;case 68:case 71:i=4;break;default:i=2}for(n=0;n<47;n++)rT.push({k:e+n,v:i})}for(rT.sort((function(t,e){return e.v-t.v})),n=0;nZS(i)?1:-1}}(t)),i=KS(o),n=0;na;)void 0!==(i=o(n,e=r[a++]))&&kM(s,e,i);return s}});var _M=i(et.Object.getOwnPropertyDescriptors),xM={exports:{}},EM=Ti,OM=M,CM=Xo.f;EM({target:"Object",stat:!0,forced:Object.defineProperties!==CM,sham:!OM},{defineProperties:CM});var SM=et.Object,TM=xM.exports=function(t,e){return SM.defineProperties(t,e)};SM.defineProperties.sham&&(TM.sham=!0);var MM=i(xM.exports);let PM;const DM=new Uint8Array(16);function IM(){if(!PM&&(PM="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!PM))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return PM(DM)}const BM=[];for(let t=0;t<256;++t)BM.push((t+256).toString(16).slice(1));var NM,FM={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function zM(t,e,i){if(FM.randomUUID&&!e&&!t)return FM.randomUUID();const n=(t=t||{}).random||(t.rng||IM)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){i=i||0;for(let t=0;t<16;++t)e[i+t]=n[t];return e}return function(t,e=0){return BM[t[e+0]]+BM[t[e+1]]+BM[t[e+2]]+BM[t[e+3]]+"-"+BM[t[e+4]]+BM[t[e+5]]+"-"+BM[t[e+6]]+BM[t[e+7]]+"-"+BM[t[e+8]]+BM[t[e+9]]+"-"+BM[t[e+10]]+BM[t[e+11]]+BM[t[e+12]]+BM[t[e+13]]+BM[t[e+14]]+BM[t[e+15]]}(n)}function AM(t,e){var i=Hf(t);if(aM){var n=aM(t);e&&(n=yv(n).call(n,(function(e){return yM(t,e).enumerable}))),i.push.apply(i,n)}return i}function jM(t){for(var e=1;e=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function HM(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);ithis.max&&this.flush(),null!=this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&"number"==typeof this.delay&&(this._timeout=jg((function(){t.flush()}),this.delay))}},{key:"flush",value:function(){var t,e;op(t=Ap(e=this._queue).call(e,0)).call(t,(function(t){t.fn.apply(t.context||t.fn,t.args||[])}))}}],[{key:"extend",value:function(e,i){var n=new t(i);if(void 0!==e.flush)throw new Error("Target object already has a property flush");e.flush=function(){n.flush()};var o=[{name:"flush",original:void 0}];if(i&&i.replace)for(var r=0;ro&&(o=h,n=a)}return n}},{key:"min",value:function(t){var e=BS(this._pairs),i=e.next();if(i.done)return null;for(var n=i.value[1],o=t(i.value[1],i.value[0]);!(i=e.next()).done;){var r=pf(i.value,2),s=r[0],a=r[1],h=t(a,s);ho?1:no)&&(n=s,o=a)}}catch(t){r.e(t)}finally{r.f()}return n||null}},{key:"min",value:function(t){var e,i,n=null,o=null,r=LM(FT(e=this._data).call(e));try{for(r.s();!(i=r.n()).done;){var s=i.value,a=s[t];"number"==typeof a&&(null==o||ae.x&&t.tope.y}function mP(t){return"string"==typeof t&&""!==t}function bP(t,e,i,n){var o=n.x,r=n.y;if("function"==typeof n.distanceToBorder){var s=n.distanceToBorder(t,e),a=Math.sin(e)*s,h=Math.cos(e)*s;h===s?(o+=s,r=n.y):a===s?(o=n.x,r-=s):(o+=h,r-=a)}else n.shape.width>n.shape.height?(o=n.x+.5*n.shape.width,r=n.y-i):(o=n.x+i,r=n.y-.5*n.shape.height);return{x:o,y:r}}var wP=function(){function t(e){ph(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return xu(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var n=e;void 0!==e&&""!==e||(n=" ");var o=this.measureText(n,i),r=bn({},FT(o));r.text=e,r.width=o.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;tt&&(t=n.width),e+=n.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e"://,""://,""://,"":/<\/b>/,"":/<\/i>/,"":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/},_P=function(){function t(e){ph(this,t),this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}return xu(t,[{key:"mod",value:function(){return 0===this.modStack.length?"normal":this.modStack[0]}},{key:"modName",value:function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":this.bold&&this.ital?"boldital":this.bold?"bold":this.ital?"ital":void 0}},{key:"emitBlock",value:function(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}},{key:"add",value:function(t){" "===t&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)}},{key:"parseWS",value:function(t){return!!/[ \t]/.test(t)&&(this.mono?this.add(t):this.spacing=!0,!0)}},{key:"setTag",value:function(t){this.emitBlock(),this[t]=!0,this.modStack.unshift(t)}},{key:"unsetTag",value:function(t){this.emitBlock(),this[t]=!1,this.modStack.shift()}},{key:"parseStartTag",value:function(t,e){return!(this.mono||this[t]||!this.match(e))&&(this.setTag(t),!0)}},{key:"match",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=pf(this.prepareRegExp(t),2),n=i[0],o=i[1],r=n.test(this.text.substr(this.position,o));return r&&e&&(this.position+=o-1),r}},{key:"parseEndTag",value:function(t,e,i){var n=this.mod()===t;return!(!(n="mono"===t?n&&this.mono:n&&!this.mono)||!this.match(e))&&(void 0!==i?(this.position===this.text.length-1||this.match(i,!1))&&this.unsetTag(t):this.unsetTag(t),!0)}},{key:"replace",value:function(t,e){return!!this.match(t)&&(this.add(e),this.position+=length-1,!0)}},{key:"prepareRegExp",value:function(t){var e,i;if(t instanceof RegExp)i=t,e=1;else{var n=kP[t];i=void 0!==n?n:new RegExp(t),e=t.length}return[i,e]}}]),t}(),xP=function(){function t(e,i,n,o){var r=this;ph(this,t),this.ctx=e,this.parent=i,this.selected=n,this.hover=o;this.lines=new wP((function(t,i){if(void 0===t)return 0;var s=r.parent.getFormattingValues(e,n,o,i),a=0;""!==t&&(a=r.ctx.measureText(t).width);return{width:a,values:s}}))}return xu(t,[{key:"process",value:function(t){if(!mP(t))return this.lines.finalize();var e=this.parent.fontOptions;t=(t=t.replace(/\r\n/g,"\n")).replace(/\r/g,"\n");var i=String(t).split("\n"),n=i.length;if(e.multi)for(var o=0;o0)for(var s=0;s0)for(var u=0;u")||e.parseStartTag("ital","")||e.parseStartTag("mono","")||e.parseEndTag("bold","")||e.parseEndTag("ital","")||e.parseEndTag("mono",""))||i(n)||e.add(n),e.position++}return e.emitBlock(),e.blocks}},{key:"splitMarkdownBlocks",value:function(t){for(var e=this,i=new _P(t),n=!0,o=function(t){return!!/\\/.test(t)&&(i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.parent.getFormattingValues(this.ctx,this.selected,this.hover,e);for(var n=(t=(t=t.replace(/^( +)/g,"$1\r")).replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r")).split("\r");n.length>0;){var o=this.getLongestFit(n);if(0===o){var r=n[0],s=this.getLongestFitWord(r);this.lines.newLine(xf(r).call(r,0,s),e),n[0]=xf(r).call(r,s)}else{var a=o;" "===n[o-1]?o--:" "===n[a]&&a++;var h=xf(n).call(n,0,o).join("");o==n.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),n=xf(n).call(n,a)}}}}]),t}(),EP=["bold","ital","boldital","mono"],OP=function(){function t(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];ph(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=n}return xu(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),mP(t.label)?this.labelDirty=!0:t.label=void 0,void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===bu(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;kb(EP,(function(t){i.fontOptions[t]={}})),t.parseFontString(this.fontOptions,e)?this.fontOptions.vadjust=0:kb(e,(function(t,e){null!=t&&"object"!==bu(t)&&(i.fontOptions[e]=t)}))}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=Rb(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===bu(i)){var n=Rb(t,["widthConstraint","maximum"]);"number"==typeof n&&(e.maxWdt=Number(n));var o=Rb(t,["widthConstraint","minimum"]);"number"==typeof o&&(e.minWdt=Number(o))}var r=Rb(t,"heightConstraint");if("number"==typeof r)e.minHgt=Number(r);else if("object"===bu(r)){var s=Rb(t,["heightConstraint","minimum"]);"number"==typeof s&&(e.minHgt=Number(s));var a=Rb(t,["heightConstraint","valign"]);"string"==typeof a&&("top"!==a&&"bottom"!==a||(e.valign=a))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),gb(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=gP("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var s=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&s=this.elementOptions.scaling.label.maxVisible&&(s=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,n,o,e,i,r),this._drawBackground(t),this._drawText(t,e,this.size.yLine,r,s))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",o=arguments.length>4?arguments[4]:void 0,r=pf(this._setAlignment(t,e,i,n),2);e=r[0],i=r[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var s=0;s0&&(t.lineWidth=d.strokeWidth,t.strokeStyle=f,t.lineJoin="round"),t.fillStyle=u,d.strokeWidth>0&&t.strokeText(d.text,e+h,i+d.vadjust),t.fillText(d.text,e+h,i+d.vadjust),h+=d.width}i+=a.height}}}},{key:"_setAlignment",value:function(t,e,i,n){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=n;return[e,i]}},{key:"_getColor",value:function(t,e,i){var n=t||"#000000",o=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var r=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));n=Ob(n,r),o=Ob(o,r)}return[n,o]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=n-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===r&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,n){var o=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},r={color:o(this.fontOptions,n,"color"),size:o(this.fontOptions,n,"size"),face:o(this.fontOptions,n,"face"),mod:o(this.fontOptions,n,"mod"),vadjust:o(this.fontOptions,n,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===n&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?r.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(r,this.elementOptions.id,e,i));var s="";return void 0!==r.mod&&""!==r.mod&&(s+=r.mod+" "),s+=r.size+"px "+r.face,t.font=s.replace(/"/g,""),r.font=t.font,r.height=r.size,r}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,n){return new xP(t,this,e,i).process(n)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var n=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width0&&n.height0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){t.save(),t.fillStyle=e.color,this.enableShadow(t,e),Kg(t).call(t),this.disableShadow(t,e),t.restore(),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,n,o){void 0!==i&&this.resize(i,n,o),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,n,o){this._updateBoundingBox(t,e,i,n,o)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var n=this.textSize.width,o=this.textSize.height;return 0===n&&(n=14,o=14),{width:n,height:o}}}]),t}();function SP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var TP=function(t){D_(i,t);var e=SP(i);function i(t,n,o){var r;return ph(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return xu(i,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,r),qn(t,this.left,this.top,this.width,this.height,r.borderRadius),this.performFill(t,r),this.updateBoundingBox(e,i,t,n,o),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o)}},{key:"updateBoundingBox",value:function(t,e,i,n,o){this._updateBoundingBox(t,e,i,n,o);var r=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(r)}},{key:"distanceToBorder",value:function(t,e){t&&this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),i}(CP);function MP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var PP=function(t){D_(i,t);var e=MP(i);function i(t,n,o){var r;return ph(this,i),(r=e.call(this,t,n,o)).labelOffset=0,r.selected=!1,r}return xu(i,[{key:"setOptions",value:function(t,e,i){this.options=t,void 0===e&&void 0===i||this.setImages(e,i)}},{key:"setImages",value:function(t,e){e&&this.selected?(this.imageObj=e,this.imageObjAlt=t):(this.imageObj=t,this.imageObjAlt=e)}},{key:"switchImages",value:function(t){var e=t&&!this.selected||!t&&this.selected;if(this.selected=t,void 0!==this.imageObjAlt&&e){var i=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=i}}},{key:"_getImagePadding",value:function(){var t={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){var e=this.options.imagePadding;"object"==bu(e)?(t.top=e.top,t.right=e.right,t.bottom=e.bottom,t.left=e.left):(t.top=e,t.right=e,t.bottom=e,t.left=e)}return t}},{key:"_resizeImage",value:function(){var t,e;if(!1===this.options.shapeProperties.useImageSize){var i=1,n=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?i=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*n}else{var o=this._getImagePadding();t=this.imageObj.width+o.left+o.right,e=this.imageObj.height+o.top+o.bottom}this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,n){this.initContextForDraw(t,n),Wn(t,e,i,n.size),this.performFill(t,n)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=void 0!==e.opacity?e.opacity:1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale);var n=this._getImagePadding(),o=this.left+n.left,r=this.top+n.top,s=this.width-n.left-n.right,a=this.height-n.top-n.bottom;this.imageObj.drawImageAtPosition(t,i,o,r,s,a),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,n,o){var r=0;if(void 0!==this.height){r=.5*this.height;var s=this.labelModule.getTextSize(t,n,o);s.lineCount>=1&&(r+=s.height/2)}var a=i+r;this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,a,n,o,"hanging")}}]),i}(CP);function DP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var IP=function(t){D_(i,t);var e=DP(i);function i(t,n,o){var r;return ph(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return xu(i,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i),o=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=o/2,this.width=o,this.height=o,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,r),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,n,o)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t){return t&&this.resize(t),.5*this.width}}]),i}(PP);function BP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var NP=function(t){D_(i,t);var e=BP(i);function i(t,n,o,r,s){var a;return ph(this,i),(a=e.call(this,t,n,o)).setImages(r,s),a}return xu(i,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,this.height=n,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,n,o,r){this.switchImages(n),this.resize();var s=e,a=i;"top-left"===this.options.shapeProperties.coordinateOrigin?(this.left=e,this.top=i,s+=this.width/2,a+=this.height/2):(this.left=e-this.width/2,this.top=i-this.height/2),this._drawRawCircle(t,s,a,r),t.save(),t.clip(),this._drawImageAtPosition(t,r),t.restore(),this._drawImageLabel(t,s,a,n,o),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){"top-left"===this.options.shapeProperties.coordinateOrigin?(this.boundingBox.top=e,this.boundingBox.left=t,this.boundingBox.right=t+2*this.options.size,this.boundingBox.bottom=e+2*this.options.size):(this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t){return t&&this.resize(t),.5*this.width}}]),i}(PP);function FP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var zP=function(t){D_(i,t);var e=FP(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){var o,r;this.labelModule.getTextSize(t,e,i);var s=2*n.size;this.width=null!==(o=this.customSizeWidth)&&void 0!==o?o:s,this.height=null!==(r=this.customSizeHeight)&&void 0!==r?r:s,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,n,o,r,s,a){var h,l=this;return this.resize(t,r,s,a),this.left=n-this.width/2,this.top=o-this.height/2,this.initContextForDraw(t,a),(h=e,Object.prototype.hasOwnProperty.call(Xn,h)?Xn[h]:function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),i}(CP);function AP(t,e){var i=Hf(t);if(aM){var n=aM(t);e&&(n=yv(n).call(n,(function(e){return yM(t,e).enumerable}))),i.push.apply(i,n)}return i}function jP(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var n=this.getDimensionsFromLabel(t,e,i);this.height=2*n.height,this.width=n.width+n.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,r),Vn(t,this.left,this.top,this.width,this.height),this.performFill(t,r),this.updateBoundingBox(e,i,t,n,o),this.labelModule.draw(t,e,i,n,o)}},{key:"distanceToBorder",value:function(t,e){t&&this.resize(t);var i=.5*this.width,n=.5*this.height,o=Math.sin(e)*i,r=Math.cos(e)*n;return i*n/Math.sqrt(o*o+r*r)}}]),i}(CP);function KP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var $P=function(t){D_(i,t);var e=KP(i);function i(t,n,o){var r;return ph(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return xu(i,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,n,o,r){var s=this;return this.resize(t,n,o),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,n,o,r),{drawExternalLabel:function(){if(void 0!==s.options.label){s.labelModule.draw(t,s.left+s.iconSize.width/2+s.margin.left,i+s.height/2+5,n)}s.updateBoundingBox(e,i)}}}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,n,o,r){var s=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=[null!=this.options.icon.weight?this.options.icon.weight:n?"bold":"",(null!=this.options.icon.weight&&n?5:0)+s+"px",this.options.icon.face].join(" "),t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,r),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,r)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(CP);function ZP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var QP=function(t){D_(i,t);var e=ZP(i);function i(t,n,o,r,s){var a;return ph(this,i),(a=e.call(this,t,n,o)).setImages(r,s),a}return xu(i,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var n=2*this.options.size;return this.width=n,void(this.height=n)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,n,o,r){t.save(),this.switchImages(n),this.resize();var s=e,a=i;if("top-left"===this.options.shapeProperties.coordinateOrigin?(this.left=e,this.top=i,s+=this.width/2,a+=this.height/2):(this.left=e-this.width/2,this.top=i-this.height/2),!0===this.options.shapeProperties.useBorderWithImage){var h=this.options.borderWidth,l=this.options.borderWidthSelected||2*this.options.borderWidth,d=(n?l:h)/this.body.view.scale;t.lineWidth=Math.min(this.width,d),t.beginPath();var c=n?this.options.color.highlight.border:o?this.options.color.hover.border:this.options.color.border,u=n?this.options.color.highlight.background:o?this.options.color.hover.background:this.options.color.background;void 0!==r.opacity&&(c=Ob(c,r.opacity),u=Ob(u,r.opacity)),t.strokeStyle=c,t.fillStyle=u,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),Kg(t).call(t),this.performStroke(t,r),t.closePath()}this._drawImageAtPosition(t,r),this._drawImageLabel(t,s,a,n,o),this.updateBoundingBox(e,i),t.restore()}},{key:"updateBoundingBox",value:function(t,e){this.resize(),"top-left"===this.options.shapeProperties.coordinateOrigin?(this.left=t,this.top=e):(this.left=t-this.width/2,this.top=e-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(PP);function JP(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var tD=function(t){D_(i,t);var e=JP(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"draw",value:function(t,e,i,n,o,r){return this._drawShape(t,"square",2,e,i,n,o,r)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(zP);function eD(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var iD=function(t){D_(i,t);var e=eD(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"draw",value:function(t,e,i,n,o,r){return this._drawShape(t,"hexagon",4,e,i,n,o,r)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(zP);function nD(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var oD=function(t){D_(i,t);var e=nD(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"draw",value:function(t,e,i,n,o,r){return this._drawShape(t,"star",4,e,i,n,o,r)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(zP);function rD(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var sD=function(t){D_(i,t);var e=rD(i);function i(t,n,o){var r;return ph(this,i),(r=e.call(this,t,n,o))._setMargins(o),r}return xu(i,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,n,o,r){this.resize(t,n,o),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,r),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,o),this.disableShadow(t,r),this.updateBoundingBox(e,i,t,n,o)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(CP);function aD(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var hD=function(t){D_(i,t);var e=aD(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"draw",value:function(t,e,i,n,o,r){return this._drawShape(t,"triangle",3,e,i,n,o,r)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(zP);function lD(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var dD=function(t){D_(i,t);var e=lD(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"draw",value:function(t,e,i,n,o,r){return this._drawShape(t,"triangleDown",3,e,i,n,o,r)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),i}(zP);function cD(t,e){var i=Hf(t);if(aM){var n=aM(t);e&&(n=yv(n).call(n,(function(e){return yM(t,e).enumerable}))),i.push.apply(i,n)}return i}function uD(t){for(var e=1;et.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"checkOpacity",value:function(t){return 0<=t&&t<=1}},{key:"checkCoordinateOrigin",value:function(t){return void 0===t||"center"===t||"top-left"===t}},{key:"updateGroupOptions",value:function(e,i,n){var o;if(void 0!==n){var r=e.group;if(void 0!==i&&void 0!==i.group&&r!==i.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof r||"string"==typeof r&&""!=r){var s=n.get(r);void 0!==s.opacity&&void 0===i.opacity&&(t.checkOpacity(s.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+s.opacity),s.opacity=void 0));var a=yv(o=vP(i)).call(o,(function(t){return null!=i[t]}));a.push("font"),vb(a,e,s),e.color=Sb(e.color)}}}},{key:"parseOptions",value:function(e,i){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4?arguments[4]:void 0;if(vb(["color","fixed","shadow"],e,i,n),t.checkMass(i),void 0!==e.opacity&&(t.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),void 0!==i.opacity&&(t.checkOpacity(i.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+i.opacity),i.opacity=void 0)),i.shapeProperties&&!t.checkCoordinateOrigin(i.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+i.shapeProperties.coordinateOrigin),Ab(e,i,"shadow",o),void 0!==i.color&&null!==i.color){var s=Sb(i.color);ub(e.color,s)}else!0===n&&null===i.color&&(e.color=zb(o.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===n&&null===i.font&&(e.font=zb(o.font)),t.updateGroupOptions(e,i,r),void 0!==i.scaling&&Ab(e.scaling,i.scaling,"label",o.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.error("%cNegative or zero mass disallowed"+i+", setting mass to 1.",tw),t.mass=1}}}]),t}();function pD(t,e){var i=void 0!==gf&&fh(t)||t["@@iterator"];if(!i){if(Df(t)||(i=function(t,e){var i;if(!t)return;if("string"==typeof t)return vD(t,e);var n=xf(i=Object.prototype.toString.call(t)).call(i,8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Ya(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return vD(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function vD(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+t.opacity):this.options.opacity=t.opacity),void 0!==t.shape)for(var e in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&this.body.nodes[e].updateShape();if(void 0!==t.font||void 0!==t.widthConstraint||void 0!==t.heightConstraint)for(var i=0,n=Hf(this.body.nodes);i1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(ZM("id",t))this.body.data.nodes=t;else if(Df(t))this.body.data.nodes=new GM,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new GM}if(i&&kb(this.nodesListeners,(function(t,e){i.off(e,t)})),this.body.nodes={},this.body.data.nodes){var n=this;kb(this.nodesListeners,(function(t,e){n.body.data.nodes.on(e,t)}));var o=this.body.data.nodes.getIds();this.add(o,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[],o=0;o1&&void 0!==arguments[1]?arguments[1]:fD)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];kb(this.body.nodes,(function(i,n){var o=t.body.data.nodes.get(n);void 0!==o&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(o))}))}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Df(t)){for(var i=0;i0?(n=i/a)*n:i;return a===1/0?1/0:a*PD(o)}});var DD=i(et.Math.hypot);function ID(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var BD=function(){function t(){ph(this,t)}return xu(t,null,[{key:"transform",value:function(t,e){Df(t)||(t=[t]);for(var i=e.point.x,n=e.point.y,o=e.angle,r=e.length,s=0;s4&&void 0!==arguments[4]?arguments[4]:this.getViaNode();t.strokeStyle=this.getColor(t,e),t.lineWidth=e.width,!1!==e.dashes?this._drawDashedLine(t,e,o):this._drawLine(t,e,o)}},{key:"_drawLine",value:function(t,e,i,n,o){if(this.from!=this.to)this._line(t,e,i,n,o);else{var r=pf(this._getCircleData(t),3),s=r[0],a=r[1],h=r[2];this._circle(t,e,s,a,h)}}},{key:"_drawDashedLine",value:function(t,e,i,n,o){t.lineCap="round";var r=Df(e.dashes)?e.dashes:[5,5];if(void 0!==t.setLineDash){if(t.save(),t.setLineDash(r),t.lineDashOffset=0,this.from!=this.to)this._line(t,e,i);else{var s=pf(this._getCircleData(t),3),a=s[0],h=s[1],l=s[2];this._circle(t,e,a,h,l)}t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else{if(this.from!=this.to)Yn(t,this.from.x,this.from.y,this.to.x,this.to.y,r);else{var d=pf(this._getCircleData(t),3),c=d[0],u=d[1],f=d[2];this._circle(t,e,c,u,f)}this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}}},{key:"findBorderPosition",value:function(t,e,i){return this.from!=this.to?this._findBorderPosition(t,e,i):this._findBorderPositionCircle(t,e,i)}},{key:"findBorderPositions",value:function(t){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,t),to:this._findBorderPosition(this.to,t)};var e,i=pf(xf(e=this._getCircleData(t)).call(e,0,2),2),n=i[0],o=i[1];return{from:this._findBorderPositionCircle(this.from,t,{x:n,y:o,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,t,{x:n,y:o,low:.6,high:.8,direction:1})}}},{key:"_getCircleData",value:function(t){var e=this.options.selfReference.size;void 0!==t&&void 0===this.from.shape.width&&this.from.shape.resize(t);var i=bP(t,this.options.selfReference.angle,e,this.from);return[i.x,i.y,e]}},{key:"_pointOnCircle",value:function(t,e,i,n){var o=2*n*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){var n,o=i.x,r=i.y,s=i.low,a=i.high,h=i.direction,l=this.options.selfReference.size,d=.5*(s+a),c=0;!0===this.options.arrowStrikethrough&&(-1===h?c=this.options.endPointOffset.from:1===h&&(c=this.options.endPointOffset.to));var u=0;do{d=.5*(s+a),n=this._pointOnCircle(o,r,l,d);var f=Math.atan2(t.y-n.y,t.x-n.x),p=t.distanceToBorder(e,f)+c-Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2));if(Math.abs(p)<.05)break;p>0?h>0?s=d:a=d:h>0?a=d:s=d,++u}while(s<=a&&u<10);return GD(GD({},n),{},{t:d})}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this._body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this._body.view.scale):Math.max(this.options.width,.3/this._body.view.scale)}},{key:"getColor",value:function(t,e){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var i=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),n=this.from.options.color.highlight.border,o=this.to.options.color.highlight.border;return!1===this.from.selected&&!1===this.to.selected?(n=Ob(this.from.options.color.border,e.opacity),o=Ob(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?o=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(n=this.from.options.color.border),i.addColorStop(0,n),i.addColorStop(1,o),i}return"to"===e.inheritsColor?Ob(this.to.options.color.border,e.opacity):Ob(this.from.options.color.border,e.opacity)}return Ob(e.color,e.opacity)}},{key:"_circle",value:function(t,e,i,n,o){this.enableShadow(t,e);var r=0,s=2*Math.PI;if(!this.options.selfReference.renderBehindTheNode){var a=this.options.selfReference.angle,h=this.options.selfReference.angle+Math.PI,l=this._findBorderPositionCircle(this.from,t,{x:i,y:n,low:a,high:h,direction:-1}),d=this._findBorderPositionCircle(this.from,t,{x:i,y:n,low:a,high:h,direction:1});r=Math.atan2(l.y-n,l.x-i),s=Math.atan2(d.y-n,d.x-i)}t.beginPath(),t.arc(i,n,o,r,s,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,n,o,r){if(this.from!=this.to)return this._getDistanceToEdge(t,e,i,n,o,r);var s=pf(this._getCircleData(void 0),3),a=s[0],h=s[1],l=s[2],d=a-o,c=h-r;return Math.abs(Math.sqrt(d*d+c*c)-l)}},{key:"_getDistanceToLine",value:function(t,e,i,n,o,r){var s=i-t,a=n-e,h=((o-t)*s+(r-e)*a)/(s*s+a*a);h>1?h=1:h<0&&(h=0);var l=t+h*s-o,d=e+h*a-r;return Math.sqrt(l*l+d*d)}},{key:"getArrowData",value:function(t,e,i,n,o,r){var s,a,h,l,d,c,u,f=r.width;"from"===e?(h=this.from,l=this.to,d=r.fromArrowScale<0,c=Math.abs(r.fromArrowScale),u=r.fromArrowType):"to"===e?(h=this.to,l=this.from,d=r.toArrowScale<0,c=Math.abs(r.toArrowScale),u=r.toArrowType):(h=this.to,l=this.from,d=r.middleArrowScale<0,c=Math.abs(r.middleArrowScale),u=r.middleArrowType);var p=15*c+3*f;if(h!=l){var v=p/DD(h.x-l.x,h.y-l.y);if("middle"!==e)if(!0===this.options.smooth.enabled){var g=this._findBorderPosition(h,t,{via:i}),y=this.getPoint(g.t+v*("from"===e?1:-1),i);s=Math.atan2(g.y-y.y,g.x-y.x),a=g}else s=Math.atan2(h.y-l.y,h.x-l.x),a=this._findBorderPosition(h,t);else{var m=(d?-v:v)/2,b=this.getPoint(.5+m,i),w=this.getPoint(.5-m,i);s=Math.atan2(b.y-w.y,b.x-w.x),a=this.getPoint(.5,i)}}else{var k=pf(this._getCircleData(t),3),_=k[0],x=k[1],E=k[2];if("from"===e){var O=this.options.selfReference.angle,C=this.options.selfReference.angle+Math.PI,S=this._findBorderPositionCircle(this.from,t,{x:_,y:x,low:O,high:C,direction:-1});s=-2*S.t*Math.PI+1.5*Math.PI+.1*Math.PI,a=S}else if("to"===e){var T=this.options.selfReference.angle,M=this.options.selfReference.angle+Math.PI,P=this._findBorderPositionCircle(this.from,t,{x:_,y:x,low:T,high:M,direction:1});s=-2*P.t*Math.PI+1.5*Math.PI-1.1*Math.PI,a=P}else{var D=this.options.selfReference.angle/(2*Math.PI);a=this._pointOnCircle(_,x,E,D),s=-2*D*Math.PI+1.5*Math.PI+.1*Math.PI}}return{point:a,core:{x:a.x-.9*p*Math.cos(s),y:a.y-.9*p*Math.sin(s)},angle:s,length:p,type:u}}},{key:"drawArrowHead",value:function(t,e,i,n,o){t.strokeStyle=this.getColor(t,e),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,YD.draw(t,o)&&(this.enableShadow(t,e),Kg(t).call(t),this.disableShadow(t,e))}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}},{key:"drawBackground",value:function(t,e){if(!1!==e.background){var i={strokeStyle:t.strokeStyle,lineWidth:t.lineWidth,dashes:t.dashes};t.strokeStyle=e.backgroundColor,t.lineWidth=e.backgroundSize,this.setStrokeDashed(t,e.backgroundDashes),t.stroke(),t.strokeStyle=i.strokeStyle,t.lineWidth=i.lineWidth,t.dashes=i.dashes,this.setStrokeDashed(t,e.dashes)}}},{key:"setStrokeDashed",value:function(t,e){if(!1!==e)if(void 0!==t.setLineDash){var i=Df(e)?e:[5,5];t.setLineDash(i)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else void 0!==t.setLineDash?t.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}}]),t}();function $D(t,e){var i=Hf(t);if(aM){var n=aM(t);e&&(n=yv(n).call(n,(function(e){return yM(t,e).enumerable}))),i.push.apply(i,n)}return i}function ZD(t){for(var e=1;e2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),r=!1,s=1,a=0,h=this.to,l=this.options.endPointOffset?this.options.endPointOffset.to:0;t.id===this.from.id&&(h=this.from,r=!0,l=this.options.endPointOffset?this.options.endPointOffset.from:0),!1===this.options.arrowStrikethrough&&(l=0);var d=0;do{n=.5*(a+s),i=this.getPoint(n,o);var c=Math.atan2(h.y-i.y,h.x-i.x),u=h.distanceToBorder(e,c)+l-Math.sqrt(Math.pow(i.x-h.x,2)+Math.pow(i.y-h.y,2));if(Math.abs(u)<.2)break;u<0?!1===r?a=n:s=n:!1===r?s=n:a=n,++d}while(a<=s&&d<10);return ZD(ZD({},i),{},{t:n})}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,n,o,r,s){var a,h,l,d,c,u=1e9,f=t,p=e;for(h=1;h<10;h++)l=.1*h,d=Math.pow(1-l,2)*t+2*l*(1-l)*s.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*s.y+Math.pow(l,2)*n,h>0&&(u=(a=this._getDistanceToLine(f,p,d,c,o,r))1&&void 0!==arguments[1]?arguments[1]:this.via;if(this.from===this.to){var i=pf(this._getCircleData(),3),n=i[0],o=i[1],r=i[2],s=2*Math.PI*(1-t);return{x:n+r*Math.sin(s),y:o+r-r*(1-Math.cos(s))}}return{x:Math.pow(1-t,2)*this.fromPoint.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.toPoint.x,y:Math.pow(1-t,2)*this.fromPoint.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,n,o,r){return this._getDistanceToBezierEdge(t,e,i,n,o,r,this.via)}}]),i}(JD);function iI(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var nI=function(t){D_(i,t);var e=iI(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t,e,i=this.options.smooth.roundness,n=this.options.smooth.type,o=Math.abs(this.from.x-this.to.x),r=Math.abs(this.from.y-this.to.y);if("discrete"===n||"diagonalCross"===n){var s,a;s=a=o<=r?i*r:i*o,this.from.x>this.to.x&&(s=-s),this.from.y>=this.to.y&&(a=-a);var h=this.from.x+s,l=this.from.y+a;return"discrete"===n&&(o<=r?h=othis.to.x&&(t=-t),this.from.y>=this.to.y&&(e=-e);var w=this.from.x+t,k=this.from.y+e;return o<=r?w=this.from.x<=this.to.x?this.to.xw?this.to.x:w:k=this.from.y>=this.to.y?this.to.y>k?this.to.y:k:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,n,o,r){var s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,n,o,r,s)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),i}(JD);function oI(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var rI=function(t){D_(i,t);var e=oI(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"_getDistanceToBezierEdge2",value:function(t,e,i,n,o,r,s,a){for(var h=1e9,l=t,d=e,c=[0,0,0,0],u=1;u<10;u++){var f=.1*u;c[0]=Math.pow(1-f,3),c[1]=3*f*Math.pow(1-f,2),c[2]=3*Math.pow(f,2)*(1-f),c[3]=Math.pow(f,3);var p=c[0]*t+c[1]*s.x+c[2]*a.x+c[3]*i,v=c[0]*e+c[1]*s.y+c[2]*a.y+c[3]*n;if(u>0){var g=this._getDistanceToLine(l,d,p,v,o,r);h=gMath.abs(r)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(e=this.from.y,n=this.to.y,t=this.from.x-s*o,i=this.to.x+s*o):(e=this.from.y-s*r,n=this.to.y+s*r,t=this.from.x,i=this.to.x),[{x:t,y:e},{x:i,y:n}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,n,o,r){var s=pf(arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),2),a=s[0],h=s[1];return this._getDistanceToBezierEdge2(t,e,i,n,o,r,a,h)}},{key:"getPoint",value:function(t){var e=pf(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),2),i=e[0],n=e[1],o=t,r=[Math.pow(1-o,3),3*o*Math.pow(1-o,2),3*Math.pow(o,2)*(1-o),Math.pow(o,3)];return{x:r[0]*this.fromPoint.x+r[1]*i.x+r[2]*n.x+r[3]*this.toPoint.x,y:r[0]*this.fromPoint.y+r[1]*i.y+r[2]*n.y+r[3]*this.toPoint.y}}}]),i}(rI);function hI(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var lI=function(t){D_(i,t);var e=hI(i);function i(t,n,o){return ph(this,i),e.call(this,t,n,o)}return xu(i,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,n=this.from;t.id===this.from.id&&(i=this.from,n=this.to);var o=Math.atan2(i.y-n.y,i.x-n.x),r=i.x-n.x,s=i.y-n.y,a=Math.sqrt(r*r+s*s),h=(a-t.distanceToBorder(e,o))/a;return{x:(1-h)*n.x+h*i.x,y:(1-h)*n.y+h*i.y,t:0}}},{key:"_getDistanceToEdge",value:function(t,e,i,n,o,r){return this._getDistanceToLine(t,e,i,n,o,r)}}]),i}(KD),dI=function(){function t(e,i,n,o,r){if(ph(this,t),void 0===i)throw new Error("No body provided");this.options=zb(o),this.globalOptions=o,this.defaultOptions=r,this.body=i,this.imagelist=n,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new OP(this.body,this.options,!0),this.setOptions(e)}return xu(t,[{key:"setOptions",value:function(e){if(e){var i=void 0!==e.physics&&this.options.physics!==e.physics||void 0!==e.hidden&&(this.options.hidden||!1)!==(e.hidden||!1)||void 0!==e.from&&this.options.from!==e.from||void 0!==e.to&&this.options.to!==e.to;t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=lP(e.value));var n=[e,this.options,this.defaultOptions];return this.chooser=gP("edge",n),this.updateLabelModule(e),i=this.updateEdgeType()||i,this._setInteractionWidths(),this.connect(),i}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,n=this.options.color.inherit,o={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:n?void 0:this.options.color.color,inheritsColor:n,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var r=this.options.selectionWidth;"function"==typeof r?o.width=r(o.width):"number"==typeof r&&(o.width+=r),o.width=Math.max(o.width,.3/this.body.view.scale),o.color=this.options.color.highlight,o.shadow=this.options.shadow.enabled}else if(this.hover){var s=this.options.hoverWidth;"function"==typeof s?o.width=s(o.width):"number"==typeof s&&(o.width+=s),o.width=Math.max(o.width,.3/this.body.view.scale),o.color=this.options.color.hover,o.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(o,this.options.id,this.selected,this.hover),void 0!==o.color&&(o.inheritsColor=!1),!1===o.shadow&&(o.shadowColor===this.options.shadow.color&&o.shadowSize===this.options.shadow.size&&o.shadowX===this.options.shadow.x&&o.shadowY===this.options.shadow.y||(o.shadow=!0)));else o.shadow=this.options.shadow.enabled,o.width=Math.max(o.width,.3/this.body.view.scale);return o}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof eI&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof aI&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof nI&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof lI&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new eI(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new aI(this.options,this.body,this.labelModule):this.edgeType=new nI(this.options,this.body,this.labelModule):this.edgeType=new lI(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var n=this.options.scaling.customScalingFunction(t,e,i,this.options.value),o=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var r=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*r}this.options.width=this.options.scaling.min+n*o}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode();this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),n={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(n.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=n.from.core),e.fromArrowSrc&&(n.from.image=this.imagelist.load(e.fromArrowSrc)),e.fromArrowImageWidth&&(n.from.imageWidth=e.fromArrowImageWidth),e.fromArrowImageHeight&&(n.from.imageHeight=e.fromArrowImageHeight)),e.toArrow&&(n.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=n.to.core),e.toArrowSrc&&(n.to.image=this.imagelist.load(e.toArrowSrc)),e.toArrowImageWidth&&(n.to.imageWidth=e.toArrowImageWidth),e.toArrowImageHeight&&(n.to.imageHeight=e.toArrowImageHeight)),e.middleArrow&&(n.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e),e.middleArrowSrc&&(n.middle.image=this.imagelist.load(e.middleArrowSrc)),e.middleArrowImageWidth&&(n.middle.imageWidth=e.middleArrowImageWidth),e.middleArrowImageHeight&&(n.middle.imageHeight=e.middleArrowImageHeight)),e.fromArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.from),e.middleArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.middle),e.toArrow&&this.edgeType.drawArrowHead(t,e,this.selected,this.hover,n.to)}}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i,n=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),n.id!=o.id){this.labelModule.pointToSelf=!1,i=this.edgeType.getPoint(.5,e),t.save();var r=this._getRotation(t);0!=r.angle&&(t.translate(r.x,r.y),t.rotate(r.angle)),this.labelModule.draw(t,i.x,i.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var s=bP(t,this.options.selfReference.angle,this.options.selfReference.size,n);i=this._pointOnCircle(s.x,s.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(t,i.x,i.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();yP(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var n={left:t.x,top:t.y};return this.isOverlappingWith(n)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,n=this.to.x,o=this.to.y,r=t.left,s=t.top;return this.edgeType.getDistanceToEdge(e,i,n,o,r,s)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var n={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return n;if("horizontal"===this.options.font.align)return n;var o=this.from.y-this.to.y,r=this.from.x-this.to.x,s=Math.atan2(o,r);return(s<-1&&r<0||s>0&&r<0)&&(s+=Math.PI),n.angle=s,n}},{key:"_pointOnCircle",value:function(t,e,i,n){return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(pb(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],t,e,i),void 0!==e.endPointOffset&&void 0!==e.endPointOffset.from&&(g_(e.endPointOffset.from)?t.endPointOffset.from=e.endPointOffset.from:(t.endPointOffset.from=void 0!==n.endPointOffset.from?n.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),void 0!==e.endPointOffset&&void 0!==e.endPointOffset.to&&(g_(e.endPointOffset.to)?t.endPointOffset.to=e.endPointOffset.to:(t.endPointOffset.to=void 0!==n.endPointOffset.to?n.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),mP(e.label)?t.label=e.label:mP(t.label)||(t.label=void 0),Ab(t,e,"smooth",n),Ab(t,e,"shadow",n),Ab(t,e,"background",n),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=pg(n.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),Ab(t.scaling,e.scaling,"label",n.scaling)):!0===i&&null===e.scaling&&(t.scaling=pg(n.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var r=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=lg(r).call(r,"to"),t.arrows.middle.enabled=-1!=lg(r).call(r,"middle"),t.arrows.from.enabled=-1!=lg(r).call(r,"from")}else{if("object"!==bu(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+mg(e.arrows));Ab(t.arrows,e.arrows,"to",n.arrows),Ab(t.arrows,e.arrows,"middle",n.arrows),Ab(t.arrows,e.arrows,"from",n.arrows)}else!0===i&&null===e.arrows&&(t.arrows=pg(n.arrows));if(void 0!==e.color&&null!==e.color){var s=lb(e.color)?{color:e.color,highlight:e.color,hover:e.color,inherit:!1,opacity:1}:e.color,a=t.color;if(o)gb(a,n.color,!1,i);else for(var h in a)Object.prototype.hasOwnProperty.call(a,h)&&delete a[h];if(lb(a))a.color=a,a.highlight=a,a.hover=a,a.inherit=!1,void 0===s.opacity&&(a.opacity=1);else{var l=!1;void 0!==s.color&&(a.color=s.color,l=!0),void 0!==s.highlight&&(a.highlight=s.highlight,l=!0),void 0!==s.hover&&(a.hover=s.hover,l=!0),void 0!==s.inherit&&(a.inherit=s.inherit),void 0!==s.opacity&&(a.opacity=Math.min(1,Math.max(0,s.opacity))),!0===l?a.inherit=!1:void 0===a.inherit&&(a.inherit="from")}}else!0===i&&null===e.color&&(t.color=zb(n.color));!0===i&&null===e.font&&(t.font=zb(n.font)),Object.prototype.hasOwnProperty.call(e,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),t.selfReference.size=e.selfReferenceSize)}}]),t}(),cI=function(){function t(e,i,n){var o,r=this;ph(this,t),this.body=e,this.images=i,this.groups=n,this.body.functions.createEdge=Hn(o=this.create).call(o,this),this.edgesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items)},remove:function(t,e){r.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,n){if(e===t)return.5;var o=1/(e-t);return Math.max(0,(n-t)*o)}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},gb(this.options,this.defaultOptions),this.bindEventListeners()}return xu(t,[{key:"bindEventListeners",value:function(){var t,e,i=this;this.body.emitter.on("_forceDisableDynamicCurves",(function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===t&&(t="continuous");var n=!1;for(var o in i.body.edges)if(Object.prototype.hasOwnProperty.call(i.body.edges,o)){var r=i.body.edges[o],s=i.body.data.edges.get(o);if(null!=s){var a=s.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===t?r.setOptions({smooth:!1}):r.setOptions({smooth:{type:t}}),n=!0)}}!0===e&&!0===n&&i.body.emitter.emit("_dataChanged")})),this.body.emitter.on("_dataUpdated",(function(){i.reconnectEdges()})),this.body.emitter.on("refreshEdges",Hn(t=this.refresh).call(t,this)),this.body.emitter.on("refresh",Hn(e=this.refresh).call(e,this)),this.body.emitter.on("destroy",(function(){kb(i.edgesListeners,(function(t,e){i.body.data.edges&&i.body.data.edges.off(e,t)})),delete i.body.functions.createEdge,delete i.edgesListeners.add,delete i.edgesListeners.update,delete i.edgesListeners.remove,delete i.edgesListeners}))}},{key:"setOptions",value:function(t){if(void 0!==t){dI.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var n in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,n)&&this.body.edges[n].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.body.data.edges;if(ZM("id",t))this.body.data.edges=t;else if(Df(t))this.body.data.edges=new GM,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new GM}if(n&&kb(this.edgesListeners,(function(t,e){n.off(e,t)})),this.body.edges={},this.body.data.edges){kb(this.edgesListeners,(function(t,i){e.body.data.edges.on(i,t)}));var o=this.body.data.edges.getIds();this.add(o,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,n=this.body.data.edges,o=0;o1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;kb(t,(function(t){var e=i[t];void 0!==e&&e.remove()})),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;kb(this.body.edges,(function(e,i){var n=t.body.data.edges.get(i);void 0!==n&&e.setOptions(n)}))}},{key:"create",value:function(t){return new dI(t,this.body,this.images,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&(e[t].edges=[]);for(t in i)if(Object.prototype.hasOwnProperty.call(i,t)){var n=i[t];n.from=null,n.to=null,n.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];kb(this.body.edges,(function(i,n){var o=t.body.nodes[i.toId],r=t.body.nodes[i.fromId];void 0!==o&&!0===o.isCluster||void 0!==r&&!0===r.isCluster||void 0!==o&&void 0!==r||e.push(n)})),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.data.edges;if(null!=t){var e=this.body.edges,i=[];op(t).call(t,(function(t,n){void 0===e[n]&&i.push(n)})),this.add(i,!0)}}}]),t}(),uI=function(){function t(e,i,n){ph(this,t),this.body=e,this.physicsBody=i,this.barnesHutTree,this.setOptions(n),this._rng=Jm("BARNES HUT SOLVER")}return xu(t,[{key:"setOptions",value:function(t){this.options=t,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}},{key:"solve",value:function(){if(0!==this.options.gravitationalConstant&&this.physicsBody.physicsNodeIndices.length>0){var t,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,n=i.length,o=this._formBarnesHutTree(e,i);this.barnesHutTree=o;for(var r=0;r0&&this._getForceContributions(o.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=t.centerOfMass.x-e.x,n=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+n*n);o*t.calcSize>this.thetaInversed?this._calculateForces(o,i,n,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(o,i,n,e,t)}}},{key:"_calculateForces",value:function(t,e,i,n,o){0===t&&(e=t=.1),this.overlapAvoidanceFactor<1&&n.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,t-n.shape.radius));var r=this.options.gravitationalConstant*o.mass*n.options.mass/Math.pow(t,3),s=e*r,a=i*r;this.physicsBody.forces[n.id].x+=s,this.physicsBody.forces[n.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i,n=e.length,o=t[e[0]].x,r=t[e[0]].y,s=t[e[0]].x,a=t[e[0]].y,h=1;h0&&(ds&&(s=d),ca&&(a=c))}var u=Math.abs(s-o)-Math.abs(a-r);u>0?(r-=.5*u,a+=.5*u):(o+=.5*u,s-=.5*u);var f=Math.max(1e-5,Math.abs(s-o)),p=.5*f,v=.5*(o+s),g=.5*(r+a),y={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:v-p,maxX:v+p,minY:g-p,maxY:g+p},size:f,calcSize:1/f,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(y.root);for(var m=0;m0&&this._placeInTree(y.root,i);return y}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,n=t.mass+e.options.mass,o=1/n;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=o,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=o,t.mass=n;var r=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var n=t.children[i];switch(n.childrenCount){case 0:n.children.data=e,n.childrenCount=1,this._updateBranchMass(n,e);break;case 1:n.children.data.x===e.x&&n.children.data.y===e.y?(e.x+=this._rng(),e.y+=this._rng()):(this._splitBranch(n),this._placeInTree(n,e));break;case 4:this._placeInTree(n,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i,n,o,r,s=.5*t.size;switch(e){case"NW":i=t.range.minX,n=t.range.minX+s,o=t.range.minY,r=t.range.minY+s;break;case"NE":i=t.range.minX+s,n=t.range.maxX,o=t.range.minY,r=t.range.minY+s;break;case"SW":i=t.range.minX,n=t.range.minX+s,o=t.range.minY+s,r=t.range.maxY;break;case"SE":i=t.range.minX+s,n=t.range.maxX,o=t.range.minY+s,r=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:n,minY:o,maxY:r},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}(),fI=function(){function t(e,i,n){ph(this,t),this._rng=Jm("REPULSION SOLVER"),this.body=e,this.physicsBody=i,this.setOptions(n)}return xu(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t,e,i,n,o,r,s,a,h=this.body.nodes,l=this.physicsBody.physicsNodeIndices,d=this.physicsBody.forces,c=this.options.nodeDistance,u=-2/3/c,f=0;f0){var r=o.edges.length+1,s=this.options.centralGravity*r*o.options.mass;n[o.id].x=e*s,n[o.id].y=i*s}}}]),i}(yI),_I=function(){function t(e){ph(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},bn(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return xu(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",(function(){t.initPhysics()})),this.body.emitter.on("_layoutFailed",(function(){t.layoutFailed=!0})),this.body.emitter.on("resetPhysics",(function(){t.stopSimulation(),t.ready=!1})),this.body.emitter.on("disablePhysics",(function(){t.physicsEnabled=!1,t.stopSimulation()})),this.body.emitter.on("restorePhysics",(function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()})),this.body.emitter.on("startSimulation",(function(){!0===t.ready&&t.startSimulation()})),this.body.emitter.on("stopSimulation",(function(){t.stopSimulation()})),this.body.emitter.on("destroy",(function(){t.stopSimulation(!1),t.body.emitter.off()})),this.body.emitter.on("_dataChanged",(function(){t.updatePhysicsData()}))}},{key:"setOptions",value:function(t){if(void 0!==t)if(!1===t)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(!0===t)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,vb(["stabilization"],this.options,t),Ab(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation());var e=this.options.wind;e&&(("number"!=typeof e.x||f_(e.x))&&(e.x=0),("number"!=typeof e.y||f_(e.y))&&(e.y=0)),this.timestep=this.options.timestep}this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new bI(this.body,this.physicsBody,t),this.edgesSolver=new vI(this.body,this.physicsBody,t),this.gravitySolver=new kI(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new fI(this.body,this.physicsBody,t),this.edgesSolver=new vI(this.body,this.physicsBody,t),this.gravitySolver=new yI(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new pI(this.body,this.physicsBody,t),this.edgesSolver=new gI(this.body,this.physicsBody,t),this.gravitySolver=new yI(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new uI(this.body,this.physicsBody,t),this.edgesSolver=new vI(this.body,this.physicsBody,t),this.gravitySolver=new yI(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){var t;!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=Hn(t=this.simulationStep).call(t,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Uf();this.physicsTick(),(Uf()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&jg((function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0}),0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,n=0;nn&&(t=t>0?n:-n),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t];this.options.wind&&(i.x+=this.options.wind.x,i.y+=this.options.wind.y);var n=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:n.x,vy:n.y},!1===e.options.fixed.x?(n.x=this.calculateComponentVelocity(n.x,i.x,e.options.mass),e.x+=n.x*this.timestep):(i.x=0,n.x=0),!1===e.options.fixed.y?(n.y=this.calculateComponentVelocity(n.y,i.y,e.options.mass),e.y+=n.y*this.timestep):(i.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;"number"!=typeof e&&(e=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0!==this.physicsBody.physicsNodeIndices.length?(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,jg((function(){return t._stabilizationBatch()}),0)):this.ready=!0}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,r=1e9,s=-1e9;if(i.length>0)for(var a=0;a(e=t[i[a]]).shape.boundingBox.left&&(r=e.shape.boundingBox.left),se.shape.boundingBox.top&&(n=e.shape.boundingBox.top),o1&&void 0!==arguments[1]?arguments[1]:[],n=1e9,o=-1e9,r=1e9,s=-1e9;if(i.length>0)for(var a=0;a(e=t[i[a]]).x&&(r=e.x),se.y&&(n=e.y),o=t&&i.push(o.id)}for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var n={},o={};kb(this.body.nodes,(function(i,r){i.options&&!0===e.joinCondition(i.options)&&(n[r]=i,kb(i.edges,(function(e){void 0===t.clusteredEdges[e.id]&&(o[e.id]=e)})))})),this._cluster(n,o,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var o,r,s,a=[],h={},l=function(){var n={},l={},c=i.body.nodeIndices[d],u=i.body.nodes[c];if(void 0===h[c]){s=0,r=[];for(var f=0;f0&&Hf(l).length>0&&!0===v){var m=function(){for(var t=0;t1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];void 0===(e=this._checkOptions(e,o)).clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var r={},s={},a=o.id,h=xI.cloneOptions(o);r[a]=o;for(var l=0;l-1&&(s[y.id]=y)}this._cluster(r,s,e,n)}},{key:"_createClusterEdges",value:function(t,e,i,n){for(var o,r,s,a,h,l,d=Hf(t),c=[],u=0;u0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&void 0!==this.clusteredNodes[r]&&o.push(r);for(var s=0;so?e.x:o,r=e.ys?e.y:s;return{x:.5*(n+o),y:.5*(r+s)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var n=this.body.nodes[t];if(void 0===n)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==n.isCluster||void 0===n.containedNodes||void 0===n.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var o=this.findNode(t),r=lg(o).call(o,t)-1;if(r>=0){var s=o[r];return this.body.nodes[s]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=n.containedNodes,h=n.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var l={},d={x:n.x,y:n.y};for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)){var u=this.body.nodes[c];l[c]={x:u.x,y:u.y}}var f=e.releaseFunction(d,l);for(var p in a)if(Object.prototype.hasOwnProperty.call(a,p)){var v=this.body.nodes[p];void 0!==f[p]&&(v.x=void 0===f[p].x?n.x:f[p].x,v.y=void 0===f[p].y?n.y:f[p].y)}}else kb(a,(function(t){!1===t.options.fixed.x&&(t.x=n.x),!1===t.options.fixed.y&&(t.y=n.y)}));for(var g in a)if(Object.prototype.hasOwnProperty.call(a,g)){var y=this.body.nodes[g];y.vx=n.vx,y.vy=n.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var m=[],b=0;b0&&o<100;){var r=e.pop();if(void 0!==r){var s=this.body.edges[r];if(void 0!==s){o++;var a=s.clusteringEdgeReplacingIds;if(void 0===a)n.push(r);else for(var h=0;hn&&(n=r.edges.length),t+=r.edges.length,e+=Math.pow(r.edges.length,2),i+=1}t/=i;var s=(e/=i)-Math.pow(t,2),a=Math.sqrt(s),h=Math.floor(t+2*a);return h>n&&(h=n),h}},{key:"_createClusteredEdge",value:function(t,e,i,n,o){var r=xI.cloneOptions(i,"edge");gb(r,n),r.from=t,r.to=e,r.id="clusterEdge:"+zM(),void 0!==o&&gb(r,o);var s=this.body.functions.createEdge(r);return s.clusteringEdgeReplacingIds=[i.id],s.connect(),this.body.edges[s.id]=s,s}},{key:"_clusterEdges",value:function(t,e,i,n){if(e instanceof dI){var o=e,r={};r[o.id]=o,e=r}if(t instanceof fD){var s=t,a={};a[s.id]=s,t=a}if(null==i)throw new Error("_clusterEdges: parameter clusterNode required");for(var h in void 0===n&&(n=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,n),e)if(Object.prototype.hasOwnProperty.call(e,h)&&void 0!==this.body.edges[h]){var l=this.body.edges[h];this._backupEdgeOptions(l),l.setOptions({physics:!1})}for(var d in t)Object.prototype.hasOwnProperty.call(t,d)&&(this.clusteredNodes[d]={clusterId:i.id,node:this.body.nodes[d]},this.body.nodes[d].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return kb(t,(function(t){e(t)&&i.push(t)})),i}},{key:"_updateState",value:function(){var t,e=this,i=[],n={},o=function(t){kb(e.body.nodes,(function(e){!0===e.isCluster&&t(e)}))};for(t in this.clusteredNodes){if(Object.prototype.hasOwnProperty.call(this.clusteredNodes,t))void 0===this.body.nodes[t]&&i.push(t)}o((function(t){for(var e=0;e0}t.endPointsValid()&&o||(n[i]=i)})),o((function(t){kb(n,(function(i){delete t.containedEdges[i],kb(t.edges,(function(o,r){o.id!==i?o.clusteringEdgeReplacingIds=e._filter(o.clusteringEdgeReplacingIds,(function(t){return!n[t]})):t.edges[r]=null})),t.edges=e._filter(t.edges,(function(t){return null!==t}))}))})),kb(n,(function(t){delete e.clusteredEdges[t]})),kb(n,(function(t){delete e.body.edges[t]})),kb(Hf(this.body.edges),(function(t){var i=e.body.edges[t],n=e._isClusteredNode(i.fromId)||e._isClusteredNode(i.toId);if(n!==e._isClusteredEdge(i.id))if(n){var o=e._getClusterNodeForNode(i.fromId);void 0!==o&&e._clusterEdges(e.body.nodes[i.fromId],i,o);var r=e._getClusterNodeForNode(i.toId);void 0!==r&&e._clusterEdges(e.body.nodes[i.toId],i,r)}else delete e._clusterEdges[t],e._restoreEdge(i)}));for(var s=!1,a=!0,h=function(){var t=[];o((function(e){var i=Hf(e.containedNodes).length,n=!0===e.options.allowSingleNodeCluster;(n&&i<1||!n&&i<2)&&t.push(e.id)}));for(var i=0;i0,s=s||a};a;)h();s&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();var SI=function(){function t(e,i){var n;ph(this,t),void 0!==window&&(n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===n?function(t){t()}:n,this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},bn(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return xu(t,[{key:"bindEventListeners",value:function(){var t,e=this;this.body.emitter.on("dragStart",(function(){e.dragging=!0})),this.body.emitter.on("dragEnd",(function(){e.dragging=!1})),this.body.emitter.on("zoom",(function(){e.zooming=!0,window.clearTimeout(e.zoomTimeoutId),e.zoomTimeoutId=jg((function(){var t;e.zooming=!1,Hn(t=e._requestRedraw).call(t,e)()}),250)})),this.body.emitter.on("_resizeNodes",(function(){e._resizeNodes()})),this.body.emitter.on("_redraw",(function(){!1===e.renderingActive&&e._redraw()})),this.body.emitter.on("_blockRedraw",(function(){e.allowRedraw=!1})),this.body.emitter.on("_allowRedraw",(function(){e.allowRedraw=!0,e.redrawRequested=!1})),this.body.emitter.on("_requestRedraw",Hn(t=this._requestRedraw).call(t,this)),this.body.emitter.on("_startRendering",(function(){e.renderRequests+=1,e.renderingActive=!0,e._startRendering()})),this.body.emitter.on("_stopRendering",(function(){e.renderRequests-=1,e.renderingActive=e.renderRequests>0,e.renderTimer=void 0})),this.body.emitter.on("destroy",(function(){e.renderRequests=0,e.allowRedraw=!1,e.renderingActive=!1,!0===e.requiresTimeout?clearTimeout(e.renderTimer):window.cancelAnimationFrame(e.renderTimer),e.body.emitter.off()}))}},{key:"setOptions",value:function(t){if(void 0!==t){pb(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i,n=window;return!0===this.requiresTimeout?i=jg(t,e):n.requestAnimationFrame&&(i=n.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){var t;!0===this.renderingActive&&(void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(Hn(t=this._renderStep).call(t,this),this.simulationInterval)))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame((function(){t._redraw(!1)}),0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e={drawExternalLabels:null};0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var i=this.canvas.getContext(),n=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(i.clearRect(0,0,n,o),0===this.canvas.frame.clientWidth)return;if(i.save(),i.translate(this.body.view.translation.x,this.body.view.translation.y),i.scale(this.body.view.scale,this.body.view.scale),i.beginPath(),this.body.emitter.emit("beforeDrawing",i),i.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawEdges(i),!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag){var r=this._drawNodes(i,t).drawExternalLabels;e.drawExternalLabels=r}!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&(!1===this.zooming||!0===this.zooming&&!1===this.options.hideEdgesOnZoom)&&this._drawArrows(i),null!=e.drawExternalLabels&&e.drawExternalLabels(),!1===t&&this._drawSelectionBox(i),i.beginPath(),this.body.emitter.emit("afterDrawing",i),i.closePath(),i.restore(),!0===t&&i.clearRect(0,0,n,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e,i=this.body.nodes;for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&((e=i[n]).resize(t),e.updateBoundingBox(t,e.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e,i,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.nodes,r=this.body.nodeIndices,s=[],a=[],h=this.canvas.DOMtoCanvas({x:-20,y:-20}),l=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),d={top:h.y,left:h.x,bottom:l.y,right:l.x},c=[],u=0;u0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),o={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=o.x*this.body.view.scale,this.body.view.translation.y+=o.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==lg(t).call(t,"%")||-1!==lg(t).call(t,"px"))return t;if(-1===lg(t).call(t,"%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new Qb(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:Qb.DIRECTION_ALL}),MI(this.hammer,(function(e){t.body.eventListeners.onTouch(e)})),this.hammer.on("tap",(function(e){t.body.eventListeners.onTap(e)})),this.hammer.on("doubletap",(function(e){t.body.eventListeners.onDoubleTap(e)})),this.hammer.on("press",(function(e){t.body.eventListeners.onHold(e)})),this.hammer.on("panstart",(function(e){t.body.eventListeners.onDragStart(e)})),this.hammer.on("panmove",(function(e){t.body.eventListeners.onDrag(e)})),this.hammer.on("panend",(function(e){t.body.eventListeners.onDragEnd(e)})),this.hammer.on("pinch",(function(e){t.body.eventListeners.onPinch(e)})),this.frame.canvas.addEventListener("wheel",(function(e){t.body.eventListeners.onMouseWheel(e)})),this.frame.canvas.addEventListener("mousemove",(function(e){t.body.eventListeners.onMouseMove(e)})),this.frame.canvas.addEventListener("contextmenu",(function(e){t.body.eventListeners.onContext(e)})),this.hammerFrame=new Qb(this.frame),PI(this.hammerFrame,(function(e){t.body.eventListeners.onRelease(e)}))}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,n=this.frame.canvas.width,o=this.frame.canvas.height,r=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(r),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var s=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===s&&this.frame.canvas.height===a||this._getCameraState(r),this.frame.canvas.width!==s&&(this.frame.canvas.width=s,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(o/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();var II=function(){function t(e,i){var n,o,r=this;ph(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",Hn(n=this.fit).call(n,this)),this.body.emitter.on("animationFinished",(function(){r.body.emitter.emit("_stopRendering")})),this.body.emitter.on("unlockNode",Hn(o=this.releaseNode).call(o,this))}return xu(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t=function(t,e){var i=bn({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},null!=t?t:{});if(!Df(i.nodes))throw new TypeError("Nodes has to be an array of ids.");if(0===i.nodes.length&&(i.nodes=e),!("number"==typeof i.minZoomLevel&&i.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!("number"==typeof i.maxZoomLevel&&i.minZoomLevel<=i.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return i}(t,this.body.nodeIndices);var i,n,o=this.canvas.frame.canvas.clientWidth,r=this.canvas.frame.canvas.clientHeight;if(0===o||0===r)n=1,i=xI.getRange(this.body.nodes,t.nodes);else if(!0===e){var s=0;for(var a in this.body.nodes){if(Object.prototype.hasOwnProperty.call(this.body.nodes,a))!0===this.body.nodes[a].predefinedPosition&&(s+=1)}if(s>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=xI.getRange(this.body.nodes,t.nodes),n=12.662/(this.body.nodeIndices.length+7.4147)+.0964822,n*=Math.min(o/600,r/600)}else{this.body.emitter.emit("_resizeNodes"),i=xI.getRange(this.body.nodes,t.nodes);var h=o/(1.1*Math.abs(i.maxX-i.minX)),l=r/(1.1*Math.abs(i.maxY-i.minY));n=h<=l?h:l}n>t.maxZoomLevel?n=t.maxZoomLevel:n1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.error("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0!==t){if(null!=t.offset){if(null!=t.offset.x){if(t.offset.x=+t.offset.x,!g_(t.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else t.offset.x=0;if(null!=t.offset.y){if(t.offset.y=+t.offset.y,!g_(t.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else t.offset.x=0}else t.offset={x:0,y:0};if(null!=t.position){if(null!=t.position.x){if(t.position.x=+t.position.x,!g_(t.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else t.position.x=0;if(null!=t.position.y){if(t.position.y=+t.position.y,!g_(t.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else t.position.x=0}else t.position=this.getViewPosition();if(null!=t.scale){if(t.scale=+t.scale,!(t.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else t.scale=this.body.view.scale;void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}else t={}}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e,i,n=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),o=n.x-t.position.x,r=n.y-t.position.y;if(this.targetTranslation={x:this.sourceTranslation.x+o*this.targetScale+t.offset.x,y:this.sourceTranslation.y+r*this.targetScale+t.offset.y},0===t.animation.duration)if(null!=this.lockedOnNodeId)this.viewFunction=Hn(e=this._lockedRedraw).call(e,this),this.body.emitter.on("initRedraw",this.viewFunction);else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=Hn(i=this._transitionRedraw).call(i,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}},{key:"_lockedRedraw",value:function(){var t=this.body.nodes[this.lockedOnNodeId].x,e=this.body.nodes[this.lockedOnNodeId].y,i=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),n=i.x-t,o=i.y-e,r=this.body.view.translation,s={x:r.x+n*this.body.view.scale+this.lockedOnNodeOffset.x,y:r.y+o*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=s}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=jb[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1){var i;if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,null!=this.lockedOnNodeId)this.viewFunction=Hn(i=this._lockedRedraw).call(i,this),this.body.emitter.on("initRedraw",this.viewFunction);this.body.emitter.emit("animationFinished")}}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();function BI(t){var e,i=t&&t.preventDefault||!1,n=t&&t.container||window,o={},r={keydown:{},keyup:{}},s={};for(e=97;e<=122;e++)s[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)s[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)s[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)s["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)s["num"+e]={code:96+e,shift:!1};s["num*"]={code:106,shift:!1},s["num+"]={code:107,shift:!1},s["num-"]={code:109,shift:!1},s["num/"]={code:111,shift:!1},s["num."]={code:110,shift:!1},s.left={code:37,shift:!1},s.up={code:38,shift:!1},s.right={code:39,shift:!1},s.down={code:40,shift:!1},s.space={code:32,shift:!1},s.enter={code:13,shift:!1},s.shift={code:16,shift:void 0},s.esc={code:27,shift:!1},s.backspace={code:8,shift:!1},s.tab={code:9,shift:!1},s.ctrl={code:17,shift:!1},s.alt={code:18,shift:!1},s.delete={code:46,shift:!1},s.pageup={code:33,shift:!1},s.pagedown={code:34,shift:!1},s["="]={code:187,shift:!1},s["-"]={code:189,shift:!1},s["]"]={code:221,shift:!1},s["["]={code:219,shift:!1};var a=function(t){l(t,"keydown")},h=function(t){l(t,"keyup")},l=function(t,e){if(void 0!==r[e][t.keyCode]){for(var n=r[e][t.keyCode],o=0;o700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=e/t,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,r=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=e,this.body.view.translation={x:o,y:r},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,n=e/t,o=(1-n)*this.canvas.canvasViewCenter.x+i.x*n,r=(1-n)*this.canvas.canvasViewCenter.y+i.y*n;this.body.view.scale=e,this.body.view.translation={x:o,y:r},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t,e,i,n,o,r,s,a,h,l,d,c,u,f,p,v,g,y,m,b,w,k,_,x,E=this;(void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled)&&(!0===this.options.keyboard.bindToWindow?this.keycharm=BI({container:window,preventDefault:!0}):this.keycharm=BI({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(Hn(t=this.keycharm).call(t,"up",(function(){E.bindToRedraw("_moveUp")}),"keydown"),Hn(e=this.keycharm).call(e,"down",(function(){E.bindToRedraw("_moveDown")}),"keydown"),Hn(i=this.keycharm).call(i,"left",(function(){E.bindToRedraw("_moveLeft")}),"keydown"),Hn(n=this.keycharm).call(n,"right",(function(){E.bindToRedraw("_moveRight")}),"keydown"),Hn(o=this.keycharm).call(o,"=",(function(){E.bindToRedraw("_zoomIn")}),"keydown"),Hn(r=this.keycharm).call(r,"num+",(function(){E.bindToRedraw("_zoomIn")}),"keydown"),Hn(s=this.keycharm).call(s,"num-",(function(){E.bindToRedraw("_zoomOut")}),"keydown"),Hn(a=this.keycharm).call(a,"-",(function(){E.bindToRedraw("_zoomOut")}),"keydown"),Hn(h=this.keycharm).call(h,"[",(function(){E.bindToRedraw("_zoomOut")}),"keydown"),Hn(l=this.keycharm).call(l,"]",(function(){E.bindToRedraw("_zoomIn")}),"keydown"),Hn(d=this.keycharm).call(d,"pageup",(function(){E.bindToRedraw("_zoomIn")}),"keydown"),Hn(c=this.keycharm).call(c,"pagedown",(function(){E.bindToRedraw("_zoomOut")}),"keydown"),Hn(u=this.keycharm).call(u,"up",(function(){E.unbindFromRedraw("_moveUp")}),"keyup"),Hn(f=this.keycharm).call(f,"down",(function(){E.unbindFromRedraw("_moveDown")}),"keyup"),Hn(p=this.keycharm).call(p,"left",(function(){E.unbindFromRedraw("_moveLeft")}),"keyup"),Hn(v=this.keycharm).call(v,"right",(function(){E.unbindFromRedraw("_moveRight")}),"keyup"),Hn(g=this.keycharm).call(g,"=",(function(){E.unbindFromRedraw("_zoomIn")}),"keyup"),Hn(y=this.keycharm).call(y,"num+",(function(){E.unbindFromRedraw("_zoomIn")}),"keyup"),Hn(m=this.keycharm).call(m,"num-",(function(){E.unbindFromRedraw("_zoomOut")}),"keyup"),Hn(b=this.keycharm).call(b,"-",(function(){E.unbindFromRedraw("_zoomOut")}),"keyup"),Hn(w=this.keycharm).call(w,"[",(function(){E.unbindFromRedraw("_zoomOut")}),"keyup"),Hn(k=this.keycharm).call(k,"]",(function(){E.unbindFromRedraw("_zoomIn")}),"keyup"),Hn(_=this.keycharm).call(_,"pageup",(function(){E.unbindFromRedraw("_zoomIn")}),"keyup"),Hn(x=this.keycharm).call(x,"pagedown",(function(){E.unbindFromRedraw("_zoomOut")}),"keyup")))}}]),t}();function zI(t,e){var i=void 0!==gf&&fh(t)||t["@@iterator"];if(!i){if(Df(t)||(i=function(t,e){var i;if(!t)return;if("string"==typeof t)return AI(t,e);var n=xf(i=Object.prototype.toString.call(t)).call(i,8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Ya(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return AI(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function AI(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,i),this.selectionHandler.commitAndEmit(e,t),this.selectionHandler.generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler.generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,i),this.selectionHandler.commitAndEmit(e,t),this.selectionHandler.generateClickEvent("click",t,e),this.selectionHandler.generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler.generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler.generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t){!0===(arguments.length>1&&void 0!==arguments[1]&&arguments[1])?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],n=0;n=o.minX&&i.x<=o.maxX&&i.y>=o.minY&&i.y<=o.maxY}));op(r).call(r,(function(t){return e.selectionHandler.selectObject(e.body.nodes[t])}));var s=this.getPointer(t.center);this.selectionHandler.commitAndEmit(s,t),this.selectionHandler.generateClickEvent("dragEnd",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{var a=this.drag.selection;a&&a.length?(op(a).call(a,(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed})),this.selectionHandler.generateClickEvent("dragEnd",t,this.getPointer(t.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",t,this.getPointer(t.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}},{key:"onPinch",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:"zoom",value:function(t,e){if(!0===this.options.zoomView){var i=this.body.view.scale;t<1e-5&&(t=1e-5),t>10&&(t=10);var n=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));var o=this.body.view.translation,r=t/i,s=(1-r)*e.x+o.x*r,a=(1-r)*e.y+o.y*r;if(this.body.view.scale=t,this.body.view.translation={x:s,y:a},null!=n){var h=this.canvas.canvasToDOM(n);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=l[d[d.length-1]],r=!0)}if(void 0===this.popupObj&&!1===r){for(var u,f=this.body.edgeIndices,p=this.body.edges,v=[],g=0;g0&&(this.popupObj=p[v[v.length-1]],s="edge")}void 0!==this.popupObj?this.popupObj.id!==o&&(void 0===this.popup&&(this.popup=new Jb(this.canvas.frame)),this.popup.popupTargetType=s,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var n=this.selectionHandler.getNodeAt(t);i=void 0!==n&&n.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}(),RI=g,LI=Vk,HI=hk.getWeakData,WI=Ok,qI=ii,VI=U,UI=tt,YI=_k,XI=Qt,GI=Lo.set,KI=Lo.getterFor,$I=Fl.find,ZI=Fl.findIndex,QI=RI([].splice),JI=0,tB=function(t){return t.frozen||(t.frozen=new eB)},eB=function(){this.entries=[]},iB=function(t,e){return $I(t.entries,(function(t){return t[0]===e}))};eB.prototype={get:function(t){var e=iB(this,t);if(e)return e[1]},has:function(t){return!!iB(this,t)},set:function(t,e){var i=iB(this,t);i?i[1]=e:this.entries.push([t,e])},delete:function(t){var e=ZI(this.entries,(function(e){return e[0]===t}));return~e&&QI(this.entries,e,1),!!~e}};var nB,oB={getConstructor:function(t,e,i,n){var o=t((function(t,o){WI(t,r),GI(t,{type:e,id:JI++,frozen:void 0}),VI(o)||YI(o,t[n],{that:t,AS_ENTRIES:i})})),r=o.prototype,s=KI(e),a=function(t,e,i){var n=s(t),o=HI(qI(e),!0);return!0===o?tB(n).set(e,i):o[n.id]=i,t};return LI(r,{delete:function(t){var e=s(this);if(!UI(t))return!1;var i=HI(t);return!0===i?tB(e).delete(t):i&&XI(i,e.id)&&delete i[e.id]},has:function(t){var e=s(this);if(!UI(t))return!1;var i=HI(t);return!0===i?tB(e).has(t):i&&XI(i,e.id)}}),LI(r,i?{get:function(t){var e=s(this);if(UI(t)){var i=HI(t);return!0===i?tB(e).get(t):i?i[e.id]:void 0}},set:function(t,e){return a(this,t,e)}}:{add:function(t){return a(this,t,!0)}}),o}},rB=Yw,sB=o,aB=g,hB=Vk,lB=hk,dB=Wk,cB=oB,uB=tt,fB=Lo.enforce,pB=r,vB=xo,gB=Object,yB=Array.isArray,mB=gB.isExtensible,bB=gB.isFrozen,wB=gB.isSealed,kB=gB.freeze,_B=gB.seal,xB={},EB={},OB=!sB.ActiveXObject&&"ActiveXObject"in sB,CB=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},SB=dB("WeakMap",CB,cB),TB=SB.prototype,MB=aB(TB.set);if(vB)if(OB){nB=cB.getConstructor(CB,"WeakMap",!0),lB.enable();var PB=aB(TB.delete),DB=aB(TB.has),IB=aB(TB.get);hB(TB,{delete:function(t){if(uB(t)&&!mB(t)){var e=fB(this);return e.frozen||(e.frozen=new nB),PB(this,t)||e.frozen.delete(t)}return PB(this,t)},has:function(t){if(uB(t)&&!mB(t)){var e=fB(this);return e.frozen||(e.frozen=new nB),DB(this,t)||e.frozen.has(t)}return DB(this,t)},get:function(t){if(uB(t)&&!mB(t)){var e=fB(this);return e.frozen||(e.frozen=new nB),DB(this,t)?IB(this,t):e.frozen.get(t)}return IB(this,t)},set:function(t,e){if(uB(t)&&!mB(t)){var i=fB(this);i.frozen||(i.frozen=new nB),DB(this,t)?MB(this,t,e):i.frozen.set(t,e)}else MB(this,t,e);return this}})}else rB&&pB((function(){var t=kB([]);return MB(new SB,t,1),!bB(t)}))&&hB(TB,{set:function(t,e){var i;return yB(t)&&(bB(t)?i=xB:wB(t)&&(i=EB)),MB(this,t,e),i===xB&&kB(t),i===EB&&_B(t),this}});var BB,NB,FB,zB,AB,jB=i(et.WeakMap);function RB(t,e,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(t):n?n.value:e.get(t)}function LB(t,e,i,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(t,i):o?o.value=i:e.set(t,i),i}function HB(t,e){var i=void 0!==gf&&fh(t)||t["@@iterator"];if(!i){if(Df(t)||(i=function(t,e){var i;if(!t)return;if("string"==typeof t)return WB(t,e);var n=xf(i=Object.prototype.toString.call(t)).call(i,8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Ya(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return WB(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function WB(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0&&void 0!==arguments[0]?arguments[0]:function(){};ph(this,t),FB.set(this,new VB),zB.set(this,new VB),AB.set(this,void 0),LB(this,AB,e,"f")}return xu(t,[{key:"sizeNodes",get:function(){return RB(this,FB,"f").size}},{key:"sizeEdges",get:function(){return RB(this,zB,"f").size}},{key:"getNodes",value:function(){return RB(this,FB,"f").getSelection()}},{key:"getEdges",value:function(){return RB(this,zB,"f").getSelection()}},{key:"addNodes",value:function(){var t;(t=RB(this,FB,"f")).add.apply(t,arguments)}},{key:"addEdges",value:function(){var t;(t=RB(this,zB,"f")).add.apply(t,arguments)}},{key:"deleteNodes",value:function(t){RB(this,FB,"f").delete(t)}},{key:"deleteEdges",value:function(t){RB(this,zB,"f").delete(t)}},{key:"clear",value:function(){RB(this,FB,"f").clear(),RB(this,zB,"f").clear()}},{key:"commit",value:function(){for(var t,e,i={nodes:RB(this,FB,"f").commit(),edges:RB(this,zB,"f").commit()},n=arguments.length,o=new Array(n),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function XB(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i4&&void 0!==arguments[4]&&arguments[4],r=this._initBaseEvent(e,i);if(!0===o)r.nodes=[],r.edges=[];else{var s=this.getSelection();r.nodes=s.nodes,r.edges=s.edges}void 0!==n&&(r.previousSelection=n),"click"==t&&(r.items=this.getClickedItems(i)),void 0!==e.controlEdge&&(r.controlEdge=e.controlEdge),this.body.emitter.emit(t,r)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;if(void 0!==t){if(t instanceof fD){var i;if(!0===e)(i=this._selectionAccumulator).addEdges.apply(i,vf(t.edges));this._selectionAccumulator.addNodes(t)}else this._selectionAccumulator.addEdges(t);return!0}return!1}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),n=this._getAllNodesOverlappingWith(i);return n.length>0?!0===e?this.body.nodes[n[n.length-1]]:n[n.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,n=0;n1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),n=10,o=null,r=this.body.edges,s=0;s0&&(this.generateClickEvent("deselectEdge",e,t,o),i=!0),n.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",e,t,o),i=!0),n.nodes.added.length>0&&(this.generateClickEvent("selectNode",e,t),i=!0),n.edges.added.length>0&&(this.generateClickEvent("selectEdge",e,t),i=!0),!0===i&&this.generateClickEvent("select",e,t)}},{key:"getSelection",value:function(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}},{key:"getSelectedNodes",value:function(){return this._selectionAccumulator.getNodes()}},{key:"getSelectedEdges",value:function(){return this._selectionAccumulator.getEdges()}},{key:"getSelectedNodeIds",value:function(){var t;return jf(t=this._selectionAccumulator.getNodes()).call(t,(function(t){return t.id}))}},{key:"getSelectedEdgeIds",value:function(){var t;return jf(t=this._selectionAccumulator.getEdges()).call(t,(function(t){return t.id}))}},{key:"setSelection",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t||!t.nodes&&!t.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes){var i,n=YB(t.nodes);try{for(n.s();!(i=n.n()).done;){var o=i.value,r=this.body.nodes[o];if(!r)throw new RangeError('Node with id "'+o+'" not found');this.selectObject(r,e.highlightEdges)}}catch(t){n.e(t)}finally{n.f()}}if(t.edges){var s,a=YB(t.edges);try{for(a.s();!(s=a.n()).done;){var h=s.value,l=this.body.edges[h];if(!l)throw new RangeError('Edge with id "'+h+'" not found');this.selectObject(l)}}catch(t){a.e(t)}finally{a.f()}}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}},{key:"selectNodes",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,t.id)||this._selectionAccumulator.deleteNodes(t);for(var e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],n=this.body.nodeIndices,o=this.body.nodes,r=n.length-1;r>=0;r--){var s=o[n[r]].getItemsOnPoint(e);i.push.apply(i,s)}for(var a=this.body.edgeIndices,h=this.body.edges,l=a.length-1;l>=0;l--){var d=h[a[l]].getItemsOnPoint(e);i.push.apply(i,d)}return i}}]),t}();function KB(t){var e=function(){if("undefined"==typeof Reflect||!sM)return!1;if(sM.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(sM(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var i,n=F_(t);if(e){var o=F_(this).constructor;i=sM(n,arguments,o)}else i=n.apply(this,arguments);return I_(this,i)}}var $B=function(){function t(){ph(this,t)}return xu(t,[{key:"abstract",value:function(){throw new Error("Can't instantiate abstract class!")}},{key:"fake_use",value:function(){}},{key:"curveType",value:function(){return this.abstract()}},{key:"getPosition",value:function(t){return this.fake_use(t),this.abstract()}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),ZB=function(t){D_(i,t);var e=KB(i);function i(t){var n;return ph(this,i),(n=e.call(this)).layout=t,n}return xu(i,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){yT(t).call(t,(function(t,e){return t.x-e.x}))}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),i}($B),QB=function(t){D_(i,t);var e=KB(i);function i(t){var n;return ph(this,i),(n=e.call(this)).layout=t,n}return xu(i,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){yT(t).call(t,(function(t,e){return t.y-e.y}))}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),i}($B),JB=Fl.every;Ti({target:"Array",proto:!0,forced:!Xf("every")},{every:function(t){return JB(this,t,arguments.length>1?arguments[1]:void 0)}});var tN=Nn("Array").every,eN=at,iN=tN,nN=Array.prototype,oN=function(t){var e=t.every;return t===nN||eN(nN,t)&&e===nN.every?iN:e},rN=i(oN);function sN(t,e){var i=void 0!==gf&&fh(t)||t["@@iterator"];if(!i){if(Df(t)||(i=function(t,e){var i;if(!t)return;if("string"==typeof t)return aN(t,e);var n=xf(i=Object.prototype.toString.call(t)).call(i,8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Ya(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return aN(t,e)}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function aN(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i=e[n])&&(e[n]=e[i]+1)})),e}function lN(t,e,i,n){var o,r,s=pg(null),a=pS(o=vf(FT(n).call(n))).call(o,(function(t,e){return t+1+e.edges.length}),0),h=i+"Id",l="to"===i?1:-1,d=sN(n);try{var c,u=function(){var o=pf(r.value,2),d=o[0],c=o[1];if(!n.has(d)||!t(c))return 0;s[d]=0;for(var u,f,p=[c],v=0,g=function(){var t,o;if(!n.has(d))return 0;var r=s[u.id]+l;if(op(t=yv(o=u.edges).call(o,(function(t){return t.connected&&t.to!==t.from&&t[i]!==u&&n.has(t.toId)&&n.has(t.fromId)}))).call(t,(function(t){var n=t[h],o=s[n];(null==o||e(r,o))&&(s[n]=r,p.push(t[i]))})),v>a)return{v:{v:hN(n,s)}};++v};u=p.pop();)if(0!==(f=g())&&f)return f.v};for(d.s();!(r=d.n()).done;)if(0!==(c=u())&&c)return c.v}catch(t){d.e(t)}finally{d.f()}return s}var dN=function(){function t(){ph(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return xu(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(n){if(void 0!==i[n])return i[n];var o=e.levels[n];if(e.childrenReference[n]){var r=e.childrenReference[n];if(r.length>0)for(var s=0;s0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===n)return this.body.emitter.emit("refresh"),gb(e,this.optionsBackup)}return e}},{key:"_resetRNG",value:function(t){this.initialRandomSeed=t,this._rng=Jm(this.initialRandomSeed)}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===bu(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var n=t.edges.smooth;void 0!==n.type&&"dynamic"!==n.type&&(i=n.type),this.optionsBackup.edges={smooth:{enabled:void 0===n.enabled||n.enabled,type:void 0===n.type?"dynamic":n.type,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}},t.edges.smooth={enabled:void 0===n.enabled||n.enabled,type:i,roundness:void 0===n.roundness?.5:n.roundness,forceDirection:void 0!==n.forceDirection&&n.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this._resetRNG(this.initialRandomSeed);for(var e=t.length+50,i=0;io){for(var s=t.length;t.length>o&&n<=10;){n+=1;var a=t.length;if(n%3==0?this.body.modules.clustering.clusterBridges(r):this.body.modules.clustering.clusterOutliers(r),a==t.length&&n%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}n>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var h=0;h0){var t,e,i=!1,n=!1;for(e in this.lastNodeOnLevel={},this.hierarchical=new dN,this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,e)&&(void 0!==(t=this.body.nodes[e]).options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):n=!0);if(!0===n&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===n){var o=this.options.hierarchical.sortMethod;"hubsize"===o?this._determineLevelsByHubsize():"directed"===o?this._determineLevelsDirected():"custom"===o&&this._determineLevelsCustomCallback()}for(var r in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,r)&&this.hierarchical.ensureLevel(r);var s=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(s),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},n=function(e,i){var n=t.hierarchical.trees;for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&n[o]===e&&t.direction.shift(o,i)},o=function(){for(var e=[],i=0;i0)for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:1e9,n=1e9,o=1e9,r=1e9,s=-1e9;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var h=t.body.nodes[a],l=t.hierarchical.levels[h.id],d=t.direction.getPosition(h),c=pf(t._getSpaceAroundNode(h,e),2),u=c[0],f=c[1];n=Math.min(u,n),o=Math.min(f,o),l<=i&&(r=Math.min(d,r),s=Math.max(d,s))}return[r,s,n,o]},a=function(e,i,n){for(var o=t.hierarchical,r=0;r1)for(var h=0;h2&&void 0!==arguments[2]&&arguments[2],a=t.direction.getPosition(i),h=t.direction.getPosition(n),l=Math.abs(h-a),d=t.options.hierarchical.nodeSpacing;if(l>d){var c={},u={};r(i,c),r(n,u);var f=function(e,i){var n=t.hierarchical.getMaxLevel(e.id),o=t.hierarchical.getMaxLevel(i.id);return Math.min(n,o)}(i,n),p=s(c,f),v=s(u,f),g=p[1],y=v[0],m=v[2];if(Math.abs(g-y)>d){var b=g-y+d;b<-m+d&&(b=-m+d),b<0&&(t._shiftBlock(n.id,b),e=!0,!0===o&&t._centerParent(n))}}},l=function(n,o){for(var a=o.id,h=o.edges,l=t.hierarchical.levels[o.id],d=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},u=[],f=0;f0?f=Math.min(u,c-t.options.hierarchical.nodeSpacing):u<0&&(f=-Math.min(-u,d-t.options.hierarchical.nodeSpacing)),0!=f&&(t._shiftBlock(o.id,f),e=!0)}(b),function(i){var n=t.direction.getPosition(o),r=pf(t._getSpaceAroundNode(o),2),s=r[0],a=r[1],h=i-n,l=n;h>0?l=Math.min(n+(a-t.options.hierarchical.nodeSpacing),i):h<0&&(l=Math.max(n-(s-t.options.hierarchical.nodeSpacing),i)),l!==n&&(t.direction.setPosition(o,l),e=!0)}(b=m(n,h))};!0===this.options.hierarchical.blockShifting&&(function(i){var n=t.hierarchical.getLevels();n=vp(n).call(n);for(var o=0;o0&&Math.abs(c)0&&(h=this.direction.getPosition(n[r-1])+a),this.direction.setPosition(s,h,e),this._validatePositionAndContinue(s,e,h),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i,n=this.hierarchical.childrenReference[t];if(void 0!==n){for(var o=[],r=0;re&&void 0===this.positionedNodes[a.id]))return;var l=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+l,this.direction.setPosition(a,d,h),this._validatePositionAndContinue(a,h,d)}var c=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],c,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-nt}),"from",t)}(i),this.hierarchical.setMinLevelToZero(this.body.nodes)}},{key:"_generateMap",value:function(){var t=this;this._crawlNetwork((function(e,i){t.hierarchical.levels[i.id]>t.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)})),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments.length>1?arguments[1]:void 0,n={},o=function i(o,r){if(void 0===n[o.id]){var s;t.hierarchical.setTreeIndex(o,r),n[o.id]=!0;for(var a=t._getActiveEdges(o),h=0;h=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,s=!0,a=!1;return{s:function(){i=i.call(t)},n:function(){var t=i.next();return s=t.done,t},e:function(t){a=!0,r=t},f:function(){try{s||null==i.return||i.return()}finally{if(a)throw r}}}}function fN(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0&&!1!==this.options.deleteNode||0===i&&!1!==this.options.deleteEdge)&&(!0===s&&this._createSeperator(4),this._createDeleteButton(r)),this._bindElementEvents(this.closeDiv,Hn(t=this.toggleEditMode).call(t,this)),this._temporaryBindEvent("select",Hn(e=this.showManipulatorToolbar).call(e,this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){var t;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var e,i=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(i),this._createSeperator(),this._createDescription(i.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,Hn(e=this.toggleEditMode).call(e,this))}this._temporaryBindEvent("click",Hn(t=this._performAddNode).call(t,this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler.getSelectedNodes()[0];if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=gb({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,(function(e){null!=e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()}))}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){var t,e,i,n,o;if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var r,s=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(s),this._createSeperator(),this._createDescription(s.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,Hn(r=this.toggleEditMode).call(r,this))}this._temporaryBindUI("onTouch",Hn(t=this._handleConnect).call(t,this)),this._temporaryBindUI("onDragEnd",Hn(e=this._finishConnect).call(e,this)),this._temporaryBindUI("onDrag",Hn(i=this._dragControlNode).call(i,this)),this._temporaryBindUI("onRelease",Hn(n=this._finishConnect).call(n,this)),this._temporaryBindUI("onDragStart",Hn(o=this._dragStartEdge).call(o,this)),this._temporaryBindUI("onHold",(function(){}))}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"!==bu(this.options.editEdge)||"function"!=typeof this.options.editEdge.editWithoutDrag||(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0===this.edgeBeingEditedId)){if(!0===this.guiEnabled){var t,e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,Hn(t=this.toggleEditMode).call(t,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],void 0!==this.edgeBeingEditedId){var i,n,o,r,s=this.body.edges[this.edgeBeingEditedId],a=this._getNewTargetNode(s.from.x,s.from.y),h=this._getNewTargetNode(s.to.x,s.to.y);this.temporaryIds.nodes.push(a.id),this.temporaryIds.nodes.push(h.id),this.body.nodes[a.id]=a,this.body.nodeIndices.push(a.id),this.body.nodes[h.id]=h,this.body.nodeIndices.push(h.id),this._temporaryBindUI("onTouch",Hn(i=this._controlNodeTouch).call(i,this)),this._temporaryBindUI("onTap",(function(){})),this._temporaryBindUI("onHold",(function(){})),this._temporaryBindUI("onDragStart",Hn(n=this._controlNodeDragStart).call(n,this)),this._temporaryBindUI("onDrag",Hn(o=this._controlNodeDrag).call(o,this)),this._temporaryBindUI("onDragEnd",Hn(r=this._controlNodeDragEnd).call(r,this)),this._temporaryBindUI("onMouseMove",(function(){})),this._temporaryBindEvent("beforeDrawing",(function(t){var e=s.edgeType.findBorderPositions(t);!1===a.selected&&(a.x=e.from.x,a.y=e.from.y),!1===h.selected&&(h.x=e.to.x,h.y=e.to.y)})),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}else{var l=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(l.from.id,l.to.id)}}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodeIds(),i=this.selectionHandler.getSelectedEdgeIds(),n=void 0;if(e.length>0){for(var o=0;o0&&"function"==typeof this.options.deleteEdge&&(n=this.options.deleteEdge);if("function"==typeof n){var r={nodes:e,edges:i};if(2!==n.length)throw new Error("The function for delete does not support two arguments (data, callback)");n(r,(function(e){null!=e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){var t,e;(void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv)&&(this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",null!==(t=null===(e=this.options.locales[this.options.locale])||void 0===e?void 0:e.close)&&void 0!==t?t:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=gb({},this.options.controlNodeStyle);i.id="targetNode"+zM(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var n=this.body.functions.createNode(i);return n.shape.boundingBox={left:t,right:t,top:e,bottom:e},n}},{key:"_createEditButton",value:function(){var t;this._clean(),this.manipulationDOM={},hb(this.editModeDiv);var e=this.options.locales[this.options.locale],i=this._createButton("editMode","vis-edit vis-edit-mode",e.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(i),this._bindElementEvents(i,Hn(t=this.toggleEditMode).call(t,this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(hb(this.editModeDiv),hb(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanupDOMEventListeners",value:function(){var t,e,i=uN(Ap(t=this._domEventListenerCleanupQueue).call(t,0));try{for(i.s();!(e=i.n()).done;){(0,e.value)()}}catch(t){i.e(t)}finally{i.f()}}},{key:"_removeManipulationDOM",value:function(){this._clean(),hb(this.manipulationDiv),hb(this.editModeDiv),hb(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}},{key:"_createSeperator",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e,i=this._createButton("addNode","vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,Hn(e=this.addNodeMode).call(e,this))}},{key:"_createAddEdgeButton",value:function(t){var e,i=this._createButton("addEdge","vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,Hn(e=this.addEdgeMode).call(e,this))}},{key:"_createEditNodeButton",value:function(t){var e,i=this._createButton("editNode","vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,Hn(e=this.editNode).call(e,this))}},{key:"_createEditEdgeButton",value:function(t){var e,i=this._createButton("editEdge","vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,Hn(e=this.editEdgeMode).call(e,this))}},{key:"_createDeleteButton",value:function(t){var e,i;i=this.options.rtl?"vis-delete-rtl":"vis-delete";var n=this._createButton("delete",i,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(n),this._bindElementEvents(n,Hn(e=this.deleteSelected).call(e,this))}},{key:"_createBackButton",value:function(t){var e,i=this._createButton("back","vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(i),this._bindElementEvents(i,Hn(e=this.showManipulatorToolbar).call(e,this))}},{key:"_createButton",value:function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("button"),this.manipulationDOM[t+"Div"].className="vis-button "+e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=n,this.manipulationDOM[t+"Label"].innerText=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=t,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+mg(Hf(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t=0;s--)if(o[s]!==this.selectedControlNode.id){r=this.body.nodes[o[s]];break}if(void 0!==r&&void 0!==this.selectedControlNode)if(!0===r.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(r.id,n.to.id):this._performEditEdge(n.from.id,r.id)}else n.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=bn({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var n=this._getNewTargetNode(i.x,i.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);var o=this.body.functions.createEdge({id:"connectionEdge"+zM(),from:i.id,to:n.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[o.id]=o,this.body.edgeIndices.push(o.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(o.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),r=void 0,s=o.length-1;s>=0;s--){var a;if(-1===lg(a=this.temporaryIds.nodes).call(a,o[s])){r=this.body.nodes[o[s]];break}}if(t.controlEdge={from:n,to:r?r.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",t,e),void 0!==this.temporaryIds.nodes[0]){var h=this.body.nodes[this.temporaryIds.nodes[0]];h.x=this.canvas._XconvertDOMtoCanvas(e.x),h.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(t)}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),n=void 0;void 0!==this.temporaryIds.edges[0]&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var o=this.selectionHandler._getAllNodesOverlappingWith(i),r=void 0,s=o.length-1;s>=0;s--){var a;if(-1===lg(a=this.temporaryIds.nodes).call(a,o[s])){r=this.body.nodes[o[s]];break}}this._cleanupTemporaryNodesAndEdges(),void 0!==r&&(!0===r.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[n]&&void 0!==this.body.nodes[r.id]&&this._performAddEdge(n,r.id)),t.controlEdge={from:n,to:r?r.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",t,e),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:zM(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,(function(t){null!=t&&"addNode"===e.inMode&&e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar()}))}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,n={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(n,(function(t){null!=t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,n={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges.get(this.edgeBeingEditedId).label},o=this.options.editEdge;if("object"===bu(o)&&(o=o.editWithoutDrag),"function"==typeof o){if(2!==o.length)throw new Error("The function for edit does not support two arguments (data, callback)");o(n,(function(t){null==t||"editEdge"!==i.inMode?(i.body.edges[n.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())}))}else this.body.data.edges.getDataSet().update(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}(),vN="string",gN="boolean",yN="number",mN="array",bN="object",wN=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],kN={borderWidth:{number:yN},borderWidthSelected:{number:yN,undefined:"undefined"},brokenImage:{string:vN,undefined:"undefined"},chosen:{label:{boolean:gN,function:"function"},node:{boolean:gN,function:"function"},__type__:{object:bN,boolean:gN}},color:{border:{string:vN},background:{string:vN},highlight:{border:{string:vN},background:{string:vN},__type__:{object:bN,string:vN}},hover:{border:{string:vN},background:{string:vN},__type__:{object:bN,string:vN}},__type__:{object:bN,string:vN}},opacity:{number:yN,undefined:"undefined"},fixed:{x:{boolean:gN},y:{boolean:gN},__type__:{object:bN,boolean:gN}},font:{align:{string:vN},color:{string:vN},size:{number:yN},face:{string:vN},background:{string:vN},strokeWidth:{number:yN},strokeColor:{string:vN},vadjust:{number:yN},multi:{boolean:gN,string:vN},bold:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},boldital:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},ital:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},mono:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},__type__:{object:bN,string:vN}},group:{string:vN,number:yN,undefined:"undefined"},heightConstraint:{minimum:{number:yN},valign:{string:vN},__type__:{object:bN,boolean:gN,number:yN}},hidden:{boolean:gN},icon:{face:{string:vN},code:{string:vN},size:{number:yN},color:{string:vN},weight:{string:vN,number:yN},__type__:{object:bN}},id:{string:vN,number:yN},image:{selected:{string:vN,undefined:"undefined"},unselected:{string:vN,undefined:"undefined"},__type__:{object:bN,string:vN}},imagePadding:{top:{number:yN},right:{number:yN},bottom:{number:yN},left:{number:yN},__type__:{object:bN,number:yN}},label:{string:vN,undefined:"undefined"},labelHighlightBold:{boolean:gN},level:{number:yN,undefined:"undefined"},margin:{top:{number:yN},right:{number:yN},bottom:{number:yN},left:{number:yN},__type__:{object:bN,number:yN}},mass:{number:yN},physics:{boolean:gN},scaling:{min:{number:yN},max:{number:yN},label:{enabled:{boolean:gN},min:{number:yN},max:{number:yN},maxVisible:{number:yN},drawThreshold:{number:yN},__type__:{object:bN,boolean:gN}},customScalingFunction:{function:"function"},__type__:{object:bN}},shadow:{enabled:{boolean:gN},color:{string:vN},size:{number:yN},x:{number:yN},y:{number:yN},__type__:{object:bN,boolean:gN}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:gN,array:mN},borderRadius:{number:yN},interpolation:{boolean:gN},useImageSize:{boolean:gN},useBorderWithImage:{boolean:gN},coordinateOrigin:{string:["center","top-left"]},__type__:{object:bN}},size:{number:yN},title:{string:vN,dom:"dom",undefined:"undefined"},value:{number:yN,undefined:"undefined"},widthConstraint:{minimum:{number:yN},maximum:{number:yN},__type__:{object:bN,boolean:gN,number:yN}},x:{number:yN},y:{number:yN},__type__:{object:bN}},_N={configure:{enabled:{boolean:gN},filter:{boolean:gN,string:vN,array:mN,function:"function"},container:{dom:"dom"},showButton:{boolean:gN},__type__:{object:bN,boolean:gN,string:vN,array:mN,function:"function"}},edges:{arrows:{to:{enabled:{boolean:gN},scaleFactor:{number:yN},type:{string:wN},imageHeight:{number:yN},imageWidth:{number:yN},src:{string:vN},__type__:{object:bN,boolean:gN}},middle:{enabled:{boolean:gN},scaleFactor:{number:yN},type:{string:wN},imageWidth:{number:yN},imageHeight:{number:yN},src:{string:vN},__type__:{object:bN,boolean:gN}},from:{enabled:{boolean:gN},scaleFactor:{number:yN},type:{string:wN},imageWidth:{number:yN},imageHeight:{number:yN},src:{string:vN},__type__:{object:bN,boolean:gN}},__type__:{string:["from","to","middle"],object:bN}},endPointOffset:{from:{number:yN},to:{number:yN},__type__:{object:bN,number:yN}},arrowStrikethrough:{boolean:gN},background:{enabled:{boolean:gN},color:{string:vN},size:{number:yN},dashes:{boolean:gN,array:mN},__type__:{object:bN,boolean:gN}},chosen:{label:{boolean:gN,function:"function"},edge:{boolean:gN,function:"function"},__type__:{object:bN,boolean:gN}},color:{color:{string:vN},highlight:{string:vN},hover:{string:vN},inherit:{string:["from","to","both"],boolean:gN},opacity:{number:yN},__type__:{object:bN,string:vN}},dashes:{boolean:gN,array:mN},font:{color:{string:vN},size:{number:yN},face:{string:vN},background:{string:vN},strokeWidth:{number:yN},strokeColor:{string:vN},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:yN},multi:{boolean:gN,string:vN},bold:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},boldital:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},ital:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},mono:{color:{string:vN},size:{number:yN},face:{string:vN},mod:{string:vN},vadjust:{number:yN},__type__:{object:bN,string:vN}},__type__:{object:bN,string:vN}},hidden:{boolean:gN},hoverWidth:{function:"function",number:yN},label:{string:vN,undefined:"undefined"},labelHighlightBold:{boolean:gN},length:{number:yN,undefined:"undefined"},physics:{boolean:gN},scaling:{min:{number:yN},max:{number:yN},label:{enabled:{boolean:gN},min:{number:yN},max:{number:yN},maxVisible:{number:yN},drawThreshold:{number:yN},__type__:{object:bN,boolean:gN}},customScalingFunction:{function:"function"},__type__:{object:bN}},selectionWidth:{function:"function",number:yN},selfReferenceSize:{number:yN},selfReference:{size:{number:yN},angle:{number:yN},renderBehindTheNode:{boolean:gN},__type__:{object:bN}},shadow:{enabled:{boolean:gN},color:{string:vN},size:{number:yN},x:{number:yN},y:{number:yN},__type__:{object:bN,boolean:gN}},smooth:{enabled:{boolean:gN},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:yN},forceDirection:{string:["horizontal","vertical","none"],boolean:gN},__type__:{object:bN,boolean:gN}},title:{string:vN,undefined:"undefined"},width:{number:yN},widthConstraint:{maximum:{number:yN},__type__:{object:bN,boolean:gN,number:yN}},value:{number:yN,undefined:"undefined"},__type__:{object:bN}},groups:{useDefaultGroups:{boolean:gN},__any__:kN,__type__:{object:bN}},interaction:{dragNodes:{boolean:gN},dragView:{boolean:gN},hideEdgesOnDrag:{boolean:gN},hideEdgesOnZoom:{boolean:gN},hideNodesOnDrag:{boolean:gN},hover:{boolean:gN},keyboard:{enabled:{boolean:gN},speed:{x:{number:yN},y:{number:yN},zoom:{number:yN},__type__:{object:bN}},bindToWindow:{boolean:gN},autoFocus:{boolean:gN},__type__:{object:bN,boolean:gN}},multiselect:{boolean:gN},navigationButtons:{boolean:gN},selectable:{boolean:gN},selectConnectedEdges:{boolean:gN},hoverConnectedEdges:{boolean:gN},tooltipDelay:{number:yN},zoomView:{boolean:gN},zoomSpeed:{number:yN},__type__:{object:bN}},layout:{randomSeed:{undefined:"undefined",number:yN,string:vN},improvedLayout:{boolean:gN},clusterThreshold:{number:yN},hierarchical:{enabled:{boolean:gN},levelSeparation:{number:yN},nodeSpacing:{number:yN},treeSpacing:{number:yN},blockShifting:{boolean:gN},edgeMinimization:{boolean:gN},parentCentralization:{boolean:gN},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:bN,boolean:gN}},__type__:{object:bN}},manipulation:{enabled:{boolean:gN},initiallyActive:{boolean:gN},addNode:{boolean:gN,function:"function"},addEdge:{boolean:gN,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:bN,boolean:gN,function:"function"}},deleteNode:{boolean:gN,function:"function"},deleteEdge:{boolean:gN,function:"function"},controlNodeStyle:kN,__type__:{object:bN,boolean:gN}},nodes:kN,physics:{enabled:{boolean:gN},barnesHut:{theta:{number:yN},gravitationalConstant:{number:yN},centralGravity:{number:yN},springLength:{number:yN},springConstant:{number:yN},damping:{number:yN},avoidOverlap:{number:yN},__type__:{object:bN}},forceAtlas2Based:{theta:{number:yN},gravitationalConstant:{number:yN},centralGravity:{number:yN},springLength:{number:yN},springConstant:{number:yN},damping:{number:yN},avoidOverlap:{number:yN},__type__:{object:bN}},repulsion:{centralGravity:{number:yN},springLength:{number:yN},springConstant:{number:yN},nodeDistance:{number:yN},damping:{number:yN},__type__:{object:bN}},hierarchicalRepulsion:{centralGravity:{number:yN},springLength:{number:yN},springConstant:{number:yN},nodeDistance:{number:yN},damping:{number:yN},avoidOverlap:{number:yN},__type__:{object:bN}},maxVelocity:{number:yN},minVelocity:{number:yN},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:gN},iterations:{number:yN},updateInterval:{number:yN},onlyDynamicEdges:{boolean:gN},fit:{boolean:gN},__type__:{object:bN,boolean:gN}},timestep:{number:yN},adaptiveTimestep:{boolean:gN},wind:{x:{number:yN},y:{number:yN},__type__:{object:bN}},__type__:{object:bN,boolean:gN}},autoResize:{boolean:gN},clickToUse:{boolean:gN},locale:{string:vN},locales:{__any__:{any:"any"},__type__:{object:bN}},height:{string:vN},width:{string:vN},__type__:{object:bN}},xN={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},EN=function(t,e,i){var n;return!(!rv(t).call(t,"physics")||!rv(n=xN.physics.solver).call(n,e)||i.physics.solver===e||"wind"===e)},ON=Object.freeze({__proto__:null,allOptions:_N,configuratorHideOption:EN,configureOptions:xN}),CN=function(){function t(){ph(this,t)}return xu(t,[{key:"getDistances",value:function(t,e,i){for(var n={},o=t.edges,r=0;r2&&void 0!==arguments[2]&&arguments[2],n=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();for(var o=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),s=1e9,a=0,h=0,l=0,d=0,c=0;s>.01&&o1&&c<5;){c+=1,this._moveNode(a,h,l);var f=pf(this._getEnergy(a),3);d=f[0],h=f[1],l=f[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,n=0,o=e[0],r=0,s=0,a=0;a0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(n)):(n=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(n)),e[t].used.push(n),n}Kn(TN.prototype),TN.prototype.setOptions=function(t){var e=this;if(null===t&&(t=void 0),void 0!==t){!0===ew.validate(t,_N)&&console.error("%cErrors have been found in the supplied options object.",tw);if(pb(["locale","locales","clickToUse"],this.options,t),void 0!==t.locale&&(t.locale=function(t,e){try{var i=pf(e.split(/[-_ /]/,2),2),n=i[0],o=i[1],r=null!=n?n.toLowerCase():null,s=null!=o?o.toUpperCase():null;if(r&&s){var a,h=r+"-"+s;if(Object.prototype.hasOwnProperty.call(t,h))return h;console.warn(_f(a="Unknown variant ".concat(s," of language ")).call(a,r,"."))}if(r){var l=r;if(Object.prototype.hasOwnProperty.call(t,l))return l;console.warn("Unknown language ".concat(r))}return console.warn("Unknown locale ".concat(e,", falling back to English.")),"en"}catch(t){return console.error(t),console.warn("Unexpected error while normalizing locale ".concat(e,", falling back to English.")),"en"}}(t.locales||this.options.locales,t.locale)),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new Zb(this,this.body.container,xN,this.canvas.pixelRatio,EN)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var i={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};gb(i.nodes,this.nodesHandler.options),gb(i.edges,this.edgesHandler.options),gb(i.layout,this.layoutEngine.options),gb(i.interaction,this.selectionHandler.options),gb(i.interaction,this.renderer.options),gb(i.interaction,this.interactionHandler.options),gb(i.manipulation,this.manipulation.options),gb(i.physics,this.physics.options),gb(i.global,this.canvas.options),gb(i.global,this.options),this.configurator.setModuleOptions(i)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new Kb(this.canvas.frame),this.activator.on("change",(function(){e.body.emitter.emit("activate")}))):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},TN.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;for(var i in this.body.nodeIndices=[],this.body.edgeIndices=[],t)Object.prototype.hasOwnProperty.call(t,i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var o=e[n],r=t[o.fromId],s=t[o.toId],a=void 0!==r&&void 0!==s;!this.clustering._isClusteredEdge(n)&&!1===o.options.hidden&&a&&!1===r.options.hidden&&!1===s.options.hidden&&this.body.edgeIndices.push(o.id)}},TN.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",(function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")})),this.body.emitter.on("_dataUpdated",(function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")}))},TN.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=Dw(t.dot);this.setData(e)}else if(t&&t.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=Bw(t.gephi);this.setData(i)}else this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},TN.prototype.destroy=function(){for(var t in this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images,this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&delete this.body.nodes[t];for(var e in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,e)&&delete this.body.edges[e];hb(this.body.container)},TN.prototype._updateValueRange=function(t){var e,i=void 0,n=void 0,o=0;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e)){var r=t[e].getValue();void 0!==r&&(i=void 0===i?r:Math.min(r,i),n=void 0===n?r:Math.max(r,n),o+=r)}if(void 0!==i&&void 0!==n)for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&t[e].setValueRange(i,n,o)},TN.prototype.isActive=function(){return!this.activator||this.activator.active},TN.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},TN.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},TN.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},TN.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},TN.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},TN.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},TN.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},TN.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},TN.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},TN.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},TN.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)},TN.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)},TN.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)},TN.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)},TN.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)},TN.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},TN.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},TN.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},TN.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},TN.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},TN.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},TN.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},TN.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},TN.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},TN.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},TN.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},TN.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)},TN.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},TN.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},TN.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},TN.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},TN.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},TN.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},TN.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},TN.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},TN.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},TN.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},TN.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)},TN.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)},TN.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},TN.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},TN.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},TN.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},TN.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()},TN.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},TN.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},TN.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},TN.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},TN.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},TN.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},TN.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},TN.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t};var IN=Object.freeze({__proto__:null,cleanupElements:PN,drawBar:function(t,e,i,n,o,r,s,a){if(0!=n){n<0&&(e-=n*=-1);var h=DN("rect",r,s);h.setAttributeNS(null,"x",t-.5*i),h.setAttributeNS(null,"y",e),h.setAttributeNS(null,"width",i),h.setAttributeNS(null,"height",n),h.setAttributeNS(null,"class",o),a&&h.setAttributeNS(null,"style",a)}},drawPoint:function(t,e,i,n,o,r){var s;if("circle"==i.style?((s=DN("circle",n,o)).setAttributeNS(null,"cx",t),s.setAttributeNS(null,"cy",e),s.setAttributeNS(null,"r",.5*i.size)):((s=DN("rect",n,o)).setAttributeNS(null,"x",t-.5*i.size),s.setAttributeNS(null,"y",e-.5*i.size),s.setAttributeNS(null,"width",i.size),s.setAttributeNS(null,"height",i.size)),void 0!==i.styles&&s.setAttributeNS(null,"style",i.styles),s.setAttributeNS(null,"class",i.className+" vis-point"),r){var a=DN("text",n,o);r.xOffset&&(t+=r.xOffset),r.yOffset&&(e+=r.yOffset),r.content&&(a.textContent=r.content),r.className&&a.setAttributeNS(null,"class",r.className+" vis-label"),a.setAttributeNS(null,"x",t),a.setAttributeNS(null,"y",e)}return s},getDOMElement:function(t,e,i,n){var o;return Object.prototype.hasOwnProperty.call(e,t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==n?i.insertBefore(o,n):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==n?i.insertBefore(o,n):i.appendChild(o)),e[t].used.push(o),o},getSVGElement:DN,prepareElements:MN,resetElements:function(t){MN(t),PN(t),MN(t)}}),BN={Images:Aw,dotparser:Iw,gephiParser:Nw,allOptions:ON,convertDot:Dw,convertGephi:Bw},NN=Object.freeze({__proto__:null,DOMutil:IN,DataSet:GM,DataView:KM,Hammer:Qb,Network:TN,Queue:UM,data:QM,keycharm:NI,network:BN,util:iw});t.DOMutil=IN,t.DataSet=GM,t.DataView=KM,t.Hammer=Qb,t.Network=TN,t.Queue=UM,t.data=QM,t.default=NN,t.keycharm=NI,t.network=BN,t.util=iw,Object.defineProperty(t,"__esModule",{value:!0})})); -//# sourceMappingURL=vis-network.min.js.map diff --git a/Perlite/perlite/.js/vis-network.min.js.map b/Perlite/perlite/.js/vis-network.min.js.map deleted file mode 100644 index 9304f30..0000000 --- a/Perlite/perlite/.js/vis-network.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"vis-network.min.js","sources":["../node_modules/core-js-pure/internals/global.js","../node_modules/core-js-pure/internals/fails.js","../node_modules/core-js-pure/internals/function-bind-native.js","../node_modules/core-js-pure/internals/function-apply.js","../node_modules/core-js-pure/internals/function-uncurry-this.js","../node_modules/core-js-pure/internals/classof-raw.js","../node_modules/core-js-pure/internals/function-uncurry-this-clause.js","../node_modules/core-js-pure/internals/document-all.js","../node_modules/core-js-pure/internals/is-callable.js","../node_modules/core-js-pure/internals/descriptors.js","../node_modules/core-js-pure/internals/function-call.js","../node_modules/core-js-pure/internals/object-property-is-enumerable.js","../node_modules/core-js-pure/internals/create-property-descriptor.js","../node_modules/core-js-pure/internals/engine-v8-version.js","../node_modules/core-js-pure/internals/indexed-object.js","../node_modules/core-js-pure/internals/is-null-or-undefined.js","../node_modules/core-js-pure/internals/require-object-coercible.js","../node_modules/core-js-pure/internals/to-indexed-object.js","../node_modules/core-js-pure/internals/is-object.js","../node_modules/core-js-pure/internals/path.js","../node_modules/core-js-pure/internals/get-built-in.js","../node_modules/core-js-pure/internals/object-is-prototype-of.js","../node_modules/core-js-pure/internals/engine-user-agent.js","../node_modules/core-js-pure/internals/symbol-constructor-detection.js","../node_modules/core-js-pure/internals/use-symbol-as-uid.js","../node_modules/core-js-pure/internals/is-symbol.js","../node_modules/core-js-pure/internals/try-to-string.js","../node_modules/core-js-pure/internals/a-callable.js","../node_modules/core-js-pure/internals/get-method.js","../node_modules/core-js-pure/internals/ordinary-to-primitive.js","../node_modules/core-js-pure/internals/define-global-property.js","../node_modules/core-js-pure/internals/shared-store.js","../node_modules/core-js-pure/internals/shared.js","../node_modules/core-js-pure/internals/to-object.js","../node_modules/core-js-pure/internals/has-own-property.js","../node_modules/core-js-pure/internals/uid.js","../node_modules/core-js-pure/internals/well-known-symbol.js","../node_modules/core-js-pure/internals/to-primitive.js","../node_modules/core-js-pure/internals/to-property-key.js","../node_modules/core-js-pure/internals/document-create-element.js","../node_modules/core-js-pure/internals/ie8-dom-define.js","../node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","../node_modules/core-js-pure/internals/is-forced.js","../node_modules/core-js-pure/internals/function-bind-context.js","../node_modules/core-js-pure/internals/v8-prototype-define-bug.js","../node_modules/core-js-pure/internals/an-object.js","../node_modules/core-js-pure/internals/object-define-property.js","../node_modules/core-js-pure/internals/create-non-enumerable-property.js","../node_modules/core-js-pure/internals/export.js","../node_modules/core-js-pure/internals/math-trunc.js","../node_modules/core-js-pure/internals/to-integer-or-infinity.js","../node_modules/core-js-pure/internals/to-absolute-index.js","../node_modules/core-js-pure/internals/to-length.js","../node_modules/core-js-pure/internals/length-of-array-like.js","../node_modules/core-js-pure/internals/array-includes.js","../node_modules/core-js-pure/internals/hidden-keys.js","../node_modules/core-js-pure/internals/object-keys-internal.js","../node_modules/core-js-pure/internals/enum-bug-keys.js","../node_modules/core-js-pure/internals/object-keys.js","../node_modules/core-js-pure/internals/object-get-own-property-symbols.js","../node_modules/core-js-pure/internals/object-assign.js","../node_modules/core-js-pure/modules/es.object.assign.js","../node_modules/core-js-pure/es/object/assign.js","../node_modules/core-js-pure/internals/array-slice.js","../node_modules/core-js-pure/internals/function-bind.js","../node_modules/core-js-pure/modules/es.function.bind.js","../node_modules/core-js-pure/internals/entry-virtual.js","../node_modules/core-js-pure/es/function/virtual/bind.js","../node_modules/core-js-pure/es/instance/bind.js","../node_modules/core-js-pure/stable/instance/bind.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js","../lib/network/shapes.ts","../node_modules/component-emitter/index.js","../node_modules/core-js-pure/internals/to-string-tag-support.js","../node_modules/core-js-pure/internals/internal-state.js","../node_modules/core-js-pure/internals/classof.js","../node_modules/core-js-pure/internals/to-string.js","../node_modules/core-js-pure/internals/string-multibyte.js","../node_modules/core-js-pure/internals/weak-map-basic-detection.js","../node_modules/core-js-pure/internals/shared-key.js","../node_modules/core-js-pure/internals/function-name.js","../node_modules/core-js-pure/internals/object-define-properties.js","../node_modules/core-js-pure/internals/html.js","../node_modules/core-js-pure/internals/object-create.js","../node_modules/core-js-pure/internals/iterators-core.js","../node_modules/core-js-pure/internals/correct-prototype-getter.js","../node_modules/core-js-pure/internals/object-get-prototype-of.js","../node_modules/core-js-pure/internals/define-built-in.js","../node_modules/core-js-pure/internals/object-to-string.js","../node_modules/core-js-pure/internals/set-to-string-tag.js","../node_modules/core-js-pure/internals/iterators.js","../node_modules/core-js-pure/internals/iterator-create-constructor.js","../node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","../node_modules/core-js-pure/internals/a-possible-prototype.js","../node_modules/core-js-pure/internals/object-set-prototype-of.js","../node_modules/core-js-pure/internals/iterator-define.js","../node_modules/core-js-pure/internals/create-iter-result-object.js","../node_modules/core-js-pure/modules/es.string.iterator.js","../node_modules/core-js-pure/internals/iterator-close.js","../node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","../node_modules/core-js-pure/internals/is-array-iterator-method.js","../node_modules/core-js-pure/internals/inspect-source.js","../node_modules/core-js-pure/internals/is-constructor.js","../node_modules/core-js-pure/internals/create-property.js","../node_modules/core-js-pure/internals/get-iterator-method.js","../node_modules/core-js-pure/internals/get-iterator.js","../node_modules/core-js-pure/internals/array-from.js","../node_modules/core-js-pure/internals/check-correctness-of-iteration.js","../node_modules/core-js-pure/modules/es.array.from.js","../node_modules/core-js-pure/es/array/from.js","../node_modules/core-js-pure/stable/array/from.js","../node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js","../node_modules/core-js-pure/modules/es.array.iterator.js","../node_modules/core-js-pure/es/get-iterator-method.js","../node_modules/core-js-pure/modules/web.dom-collections.iterator.js","../node_modules/core-js-pure/internals/dom-iterables.js","../node_modules/core-js-pure/stable/get-iterator-method.js","../node_modules/core-js-pure/features/get-iterator-method.js","../node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js","../node_modules/@babel/runtime-corejs3/helpers/esm/classCallCheck.js","../node_modules/core-js-pure/modules/es.object.define-property.js","../node_modules/core-js-pure/es/object/define-property.js","../node_modules/core-js-pure/stable/object/define-property.js","../node_modules/core-js-pure/features/object/define-property.js","../node_modules/core-js-pure/actual/object/define-property.js","../node_modules/core-js-pure/internals/is-array.js","../node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","../node_modules/core-js-pure/internals/array-species-constructor.js","../node_modules/core-js-pure/internals/array-species-create.js","../node_modules/core-js-pure/internals/array-method-has-species-support.js","../node_modules/core-js-pure/modules/es.array.concat.js","../node_modules/core-js-pure/internals/object-get-own-property-names.js","../node_modules/core-js-pure/internals/array-slice-simple.js","../node_modules/core-js-pure/internals/object-get-own-property-names-external.js","../node_modules/core-js-pure/internals/define-built-in-accessor.js","../node_modules/core-js-pure/internals/well-known-symbol-wrapped.js","../node_modules/core-js-pure/internals/well-known-symbol-define.js","../node_modules/core-js-pure/internals/symbol-define-to-primitive.js","../node_modules/core-js-pure/internals/array-iteration.js","../node_modules/core-js-pure/modules/es.symbol.constructor.js","../node_modules/core-js-pure/internals/symbol-registry-detection.js","../node_modules/core-js-pure/modules/es.symbol.for.js","../node_modules/core-js-pure/modules/es.symbol.key-for.js","../node_modules/core-js-pure/internals/get-json-replacer-function.js","../node_modules/core-js-pure/modules/es.json.stringify.js","../node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js","../node_modules/core-js-pure/modules/es.symbol.async-iterator.js","../node_modules/core-js-pure/modules/es.symbol.has-instance.js","../node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js","../node_modules/core-js-pure/modules/es.symbol.iterator.js","../node_modules/core-js-pure/modules/es.symbol.match.js","../node_modules/core-js-pure/modules/es.symbol.match-all.js","../node_modules/core-js-pure/modules/es.symbol.replace.js","../node_modules/core-js-pure/modules/es.symbol.search.js","../node_modules/core-js-pure/modules/es.symbol.species.js","../node_modules/core-js-pure/modules/es.symbol.split.js","../node_modules/core-js-pure/modules/es.symbol.to-primitive.js","../node_modules/core-js-pure/modules/es.symbol.to-string-tag.js","../node_modules/core-js-pure/modules/es.symbol.unscopables.js","../node_modules/core-js-pure/modules/es.json.to-string-tag.js","../node_modules/core-js-pure/es/symbol/index.js","../node_modules/core-js-pure/stable/symbol/index.js","../node_modules/core-js-pure/modules/esnext.function.metadata.js","../node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js","../node_modules/core-js-pure/modules/esnext.symbol.dispose.js","../node_modules/core-js-pure/modules/esnext.symbol.metadata.js","../node_modules/core-js-pure/actual/symbol/index.js","../node_modules/core-js-pure/internals/symbol-is-registered.js","../node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js","../node_modules/core-js-pure/internals/symbol-is-well-known.js","../node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js","../node_modules/core-js-pure/modules/esnext.symbol.matcher.js","../node_modules/core-js-pure/modules/esnext.symbol.observable.js","../node_modules/core-js-pure/modules/esnext.symbol.is-registered.js","../node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js","../node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js","../node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js","../node_modules/core-js-pure/modules/esnext.symbol.replace-all.js","../node_modules/core-js-pure/full/symbol/index.js","../node_modules/core-js-pure/features/symbol/index.js","../node_modules/core-js-pure/stable/symbol/iterator.js","../node_modules/core-js-pure/es/symbol/iterator.js","../node_modules/core-js-pure/features/symbol/iterator.js","../node_modules/core-js-pure/actual/symbol/iterator.js","../node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js","../node_modules/core-js-pure/es/symbol/to-primitive.js","../node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime-corejs3/helpers/esm/createClass.js","../node_modules/core-js-pure/modules/es.array.is-array.js","../node_modules/core-js-pure/es/array/is-array.js","../node_modules/core-js-pure/stable/array/is-array.js","../node_modules/core-js-pure/actual/array/is-array.js","../node_modules/core-js-pure/internals/array-set-length.js","../node_modules/core-js-pure/modules/es.array.push.js","../node_modules/core-js-pure/es/array/virtual/push.js","../node_modules/core-js-pure/es/instance/push.js","../node_modules/core-js-pure/stable/instance/push.js","../node_modules/core-js-pure/features/instance/push.js","../node_modules/core-js-pure/modules/es.array.slice.js","../node_modules/core-js-pure/es/array/virtual/slice.js","../node_modules/core-js-pure/es/instance/slice.js","../node_modules/core-js-pure/stable/instance/slice.js","../node_modules/core-js-pure/features/instance/slice.js","../node_modules/core-js-pure/actual/instance/slice.js","../node_modules/core-js-pure/actual/array/from.js","../node_modules/@babel/runtime-corejs3/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime-corejs3/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime-corejs3/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime-corejs3/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime-corejs3/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime-corejs3/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime-corejs3/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js","../node_modules/core-js-pure/es/array/virtual/concat.js","../node_modules/core-js-pure/es/instance/concat.js","../node_modules/core-js-pure/stable/instance/concat.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js","../node_modules/core-js-pure/internals/own-keys.js","../node_modules/core-js-pure/modules/es.reflect.own-keys.js","../node_modules/core-js-pure/es/reflect/own-keys.js","../node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js","../node_modules/core-js-pure/modules/es.array.map.js","../node_modules/core-js-pure/es/array/virtual/map.js","../node_modules/core-js-pure/es/instance/map.js","../node_modules/core-js-pure/stable/instance/map.js","../node_modules/core-js-pure/modules/es.object.keys.js","../node_modules/core-js-pure/es/object/keys.js","../node_modules/core-js-pure/modules/es.date.now.js","../node_modules/core-js-pure/es/date/now.js","../node_modules/core-js-pure/internals/array-method-is-strict.js","../node_modules/core-js-pure/internals/array-for-each.js","../node_modules/core-js-pure/modules/es.array.for-each.js","../node_modules/core-js-pure/es/array/virtual/for-each.js","../node_modules/core-js-pure/stable/instance/for-each.js","../node_modules/core-js-pure/stable/array/virtual/for-each.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js","../node_modules/core-js-pure/modules/es.array.reverse.js","../node_modules/core-js-pure/es/array/virtual/reverse.js","../node_modules/core-js-pure/es/instance/reverse.js","../node_modules/core-js-pure/stable/instance/reverse.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js","../node_modules/core-js-pure/internals/delete-property-or-throw.js","../node_modules/core-js-pure/modules/es.array.splice.js","../node_modules/core-js-pure/es/array/virtual/splice.js","../node_modules/core-js-pure/es/instance/splice.js","../node_modules/core-js-pure/stable/instance/splice.js","../node_modules/core-js-pure/modules/es.array.includes.js","../node_modules/core-js-pure/es/array/virtual/includes.js","../node_modules/core-js-pure/internals/is-regexp.js","../node_modules/core-js-pure/internals/not-a-regexp.js","../node_modules/core-js-pure/internals/correct-is-regexp-logic.js","../node_modules/core-js-pure/modules/es.string.includes.js","../node_modules/core-js-pure/es/string/virtual/includes.js","../node_modules/core-js-pure/es/instance/includes.js","../node_modules/core-js-pure/stable/instance/includes.js","../node_modules/core-js-pure/modules/es.object.get-prototype-of.js","../node_modules/core-js-pure/es/object/get-prototype-of.js","../node_modules/core-js-pure/stable/object/get-prototype-of.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/get-prototype-of.js","../node_modules/core-js-pure/modules/es.array.filter.js","../node_modules/core-js-pure/es/array/virtual/filter.js","../node_modules/core-js-pure/es/instance/filter.js","../node_modules/core-js-pure/stable/instance/filter.js","../node_modules/core-js-pure/internals/object-to-array.js","../node_modules/core-js-pure/modules/es.object.values.js","../node_modules/core-js-pure/es/object/values.js","../node_modules/core-js-pure/internals/whitespaces.js","../node_modules/core-js-pure/internals/string-trim.js","../node_modules/core-js-pure/internals/number-parse-int.js","../node_modules/core-js-pure/modules/es.parse-int.js","../node_modules/core-js-pure/es/parse-int.js","../node_modules/core-js-pure/modules/es.array.index-of.js","../node_modules/core-js-pure/es/array/virtual/index-of.js","../node_modules/core-js-pure/es/instance/index-of.js","../node_modules/core-js-pure/stable/instance/index-of.js","../node_modules/core-js-pure/modules/es.object.entries.js","../node_modules/core-js-pure/es/object/entries.js","../node_modules/core-js-pure/modules/es.object.create.js","../node_modules/core-js-pure/es/object/create.js","../node_modules/core-js-pure/stable/object/create.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js","../node_modules/core-js-pure/es/json/stringify.js","../node_modules/core-js-pure/stable/json/stringify.js","../node_modules/core-js-pure/internals/engine-is-bun.js","../node_modules/core-js-pure/internals/validate-arguments-length.js","../node_modules/core-js-pure/internals/schedulers-fix.js","../node_modules/core-js-pure/modules/web.set-interval.js","../node_modules/core-js-pure/modules/web.set-timeout.js","../node_modules/core-js-pure/stable/set-timeout.js","../node_modules/core-js-pure/internals/array-fill.js","../node_modules/core-js-pure/modules/es.array.fill.js","../node_modules/core-js-pure/es/array/virtual/fill.js","../node_modules/@egjs/hammerjs/dist/hammer.esm.js","../node_modules/core-js-pure/es/instance/fill.js","../node_modules/core-js-pure/stable/instance/fill.js","../node_modules/vis-util/esnext/esm/vis-util.js","../lib/network/dotparser.js","../lib/network/gephiParser.ts","../lib/network/locales.ts","../lib/network/CachedImage.js","../lib/network/Images.js","../node_modules/core-js-pure/internals/array-buffer-non-extensible.js","../node_modules/core-js-pure/internals/object-is-extensible.js","../node_modules/core-js-pure/internals/freezing.js","../node_modules/core-js-pure/internals/internal-metadata.js","../node_modules/core-js-pure/internals/iterate.js","../node_modules/core-js-pure/internals/an-instance.js","../node_modules/core-js-pure/internals/collection.js","../node_modules/core-js-pure/internals/define-built-ins.js","../node_modules/core-js-pure/internals/set-species.js","../node_modules/core-js-pure/internals/collection-strong.js","../node_modules/core-js-pure/modules/es.map.constructor.js","../node_modules/core-js-pure/es/map/index.js","../lib/network/modules/Groups.js","../node_modules/core-js-pure/modules/es.number.is-nan.js","../node_modules/core-js-pure/es/number/is-nan.js","../node_modules/core-js-pure/internals/number-is-finite.js","../node_modules/core-js-pure/modules/es.number.is-finite.js","../node_modules/core-js-pure/es/number/is-finite.js","../node_modules/core-js-pure/modules/es.array.some.js","../node_modules/core-js-pure/es/array/virtual/some.js","../node_modules/core-js-pure/es/instance/some.js","../node_modules/core-js-pure/stable/instance/some.js","../node_modules/@babel/runtime-corejs3/helpers/esm/assertThisInitialized.js","../node_modules/core-js-pure/actual/object/create.js","../node_modules/core-js-pure/features/object/create.js","../node_modules/core-js-pure/modules/es.object.set-prototype-of.js","../node_modules/core-js-pure/es/object/set-prototype-of.js","../node_modules/core-js-pure/features/object/set-prototype-of.js","../node_modules/core-js-pure/actual/instance/bind.js","../node_modules/@babel/runtime-corejs3/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime-corejs3/helpers/esm/inherits.js","../node_modules/@babel/runtime-corejs3/helpers/esm/possibleConstructorReturn.js","../node_modules/core-js-pure/actual/object/get-prototype-of.js","../node_modules/core-js-pure/features/object/get-prototype-of.js","../node_modules/@babel/runtime-corejs3/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js","../node_modules/@babel/runtime-corejs3/helpers/typeof.js","../node_modules/core-js-pure/features/instance/for-each.js","../node_modules/core-js-pure/actual/instance/for-each.js","../node_modules/core-js-pure/internals/copy-constructor-properties.js","../node_modules/core-js-pure/internals/install-error-cause.js","../node_modules/core-js-pure/internals/error-stack-clear.js","../node_modules/core-js-pure/internals/error-stack-installable.js","../node_modules/core-js-pure/internals/error-stack-install.js","../node_modules/core-js-pure/internals/normalize-string-argument.js","../node_modules/core-js-pure/modules/es.aggregate-error.constructor.js","../node_modules/core-js-pure/internals/engine-is-node.js","../node_modules/core-js-pure/internals/task.js","../node_modules/core-js-pure/internals/a-constructor.js","../node_modules/core-js-pure/internals/species-constructor.js","../node_modules/core-js-pure/internals/engine-is-ios.js","../node_modules/core-js-pure/internals/queue.js","../node_modules/core-js-pure/internals/microtask.js","../node_modules/core-js-pure/internals/engine-is-ios-pebble.js","../node_modules/core-js-pure/internals/engine-is-webos-webkit.js","../node_modules/core-js-pure/internals/perform.js","../node_modules/core-js-pure/internals/promise-native-constructor.js","../node_modules/core-js-pure/internals/engine-is-deno.js","../node_modules/core-js-pure/internals/engine-is-browser.js","../node_modules/core-js-pure/internals/promise-constructor-detection.js","../node_modules/core-js-pure/internals/new-promise-capability.js","../node_modules/core-js-pure/modules/es.promise.constructor.js","../node_modules/core-js-pure/internals/host-report-errors.js","../node_modules/core-js-pure/internals/promise-statics-incorrect-iteration.js","../node_modules/core-js-pure/modules/es.promise.all.js","../node_modules/core-js-pure/modules/es.promise.catch.js","../node_modules/core-js-pure/modules/es.promise.race.js","../node_modules/core-js-pure/modules/es.promise.reject.js","../node_modules/core-js-pure/internals/promise-resolve.js","../node_modules/core-js-pure/modules/es.promise.resolve.js","../node_modules/core-js-pure/internals/is-pure.js","../node_modules/core-js-pure/modules/es.promise.all-settled.js","../node_modules/core-js-pure/modules/es.promise.any.js","../node_modules/core-js-pure/modules/es.promise.finally.js","../node_modules/core-js-pure/es/promise/index.js","../node_modules/core-js-pure/stable/promise/index.js","../node_modules/core-js-pure/modules/esnext.promise.with-resolvers.js","../node_modules/core-js-pure/actual/promise/index.js","../node_modules/core-js-pure/modules/esnext.promise.try.js","../node_modules/core-js-pure/full/promise/index.js","../node_modules/core-js-pure/features/promise/index.js","../node_modules/core-js-pure/features/instance/reverse.js","../node_modules/core-js-pure/actual/instance/reverse.js","../node_modules/@babel/runtime-corejs3/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime-corejs3/regenerator/index.js","../node_modules/core-js-pure/internals/array-reduce.js","../node_modules/core-js-pure/modules/es.array.reduce.js","../node_modules/core-js-pure/es/array/virtual/reduce.js","../node_modules/core-js-pure/es/instance/reduce.js","../node_modules/core-js-pure/stable/instance/reduce.js","../node_modules/core-js-pure/internals/flatten-into-array.js","../node_modules/core-js-pure/modules/es.array.flat-map.js","../node_modules/core-js-pure/es/array/virtual/flat-map.js","../node_modules/core-js-pure/es/instance/flat-map.js","../node_modules/core-js-pure/stable/instance/flat-map.js","../node_modules/core-js-pure/modules/es.set.constructor.js","../node_modules/core-js-pure/es/set/index.js","../node_modules/@babel/runtime-corejs3/core-js-stable/symbol/iterator.js","../node_modules/core-js-pure/es/get-iterator.js","../node_modules/core-js-pure/internals/array-sort.js","../node_modules/core-js-pure/internals/engine-ff-version.js","../node_modules/core-js-pure/internals/engine-is-ie-or-edge.js","../node_modules/core-js-pure/internals/engine-webkit-version.js","../node_modules/core-js-pure/modules/es.array.sort.js","../node_modules/core-js-pure/es/array/virtual/sort.js","../node_modules/core-js-pure/es/instance/sort.js","../node_modules/core-js-pure/stable/instance/sort.js","../node_modules/core-js-pure/es/array/virtual/keys.js","../node_modules/core-js-pure/stable/instance/keys.js","../node_modules/core-js-pure/stable/array/virtual/keys.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js","../node_modules/core-js-pure/es/array/virtual/values.js","../node_modules/core-js-pure/stable/instance/values.js","../node_modules/core-js-pure/stable/array/virtual/values.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js","../node_modules/core-js-pure/es/array/virtual/entries.js","../node_modules/core-js-pure/stable/instance/entries.js","../node_modules/core-js-pure/stable/array/virtual/entries.js","../node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js","../node_modules/core-js-pure/modules/es.reflect.construct.js","../node_modules/core-js-pure/es/reflect/construct.js","../node_modules/core-js-pure/es/object/get-own-property-symbols.js","../node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js","../node_modules/core-js-pure/es/object/get-own-property-descriptor.js","../node_modules/core-js-pure/stable/object/get-own-property-descriptor.js","../node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js","../node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js","../node_modules/core-js-pure/es/object/get-own-property-descriptors.js","../node_modules/core-js-pure/modules/es.object.define-properties.js","../node_modules/core-js-pure/es/object/define-properties.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/vis-data/esnext/esm/vis-data.js","../node_modules/core-js-pure/internals/number-parse-float.js","../node_modules/core-js-pure/modules/es.parse-float.js","../node_modules/core-js-pure/es/parse-float.js","../node_modules/core-js-pure/modules/es.object.get-own-property-names.js","../node_modules/core-js-pure/es/object/get-own-property-names.js","../node_modules/core-js-pure/stable/object/get-own-property-names.js","../lib/network/modules/components/shared/ComponentUtil.js","../lib/network/modules/components/shared/LabelAccumulator.js","../lib/network/modules/components/shared/LabelSplitter.js","../lib/network/modules/components/shared/Label.js","../lib/network/modules/components/nodes/util/NodeBase.js","../lib/network/modules/components/nodes/shapes/Box.js","../lib/network/modules/components/nodes/util/CircleImageBase.js","../lib/network/modules/components/nodes/shapes/Circle.js","../lib/network/modules/components/nodes/shapes/CircularImage.js","../lib/network/modules/components/nodes/util/ShapeBase.js","../lib/network/modules/components/nodes/shapes/CustomShape.js","../lib/network/modules/components/nodes/shapes/Database.js","../lib/network/modules/components/nodes/shapes/Diamond.js","../lib/network/modules/components/nodes/shapes/Dot.js","../lib/network/modules/components/nodes/shapes/Ellipse.js","../lib/network/modules/components/nodes/shapes/Icon.js","../lib/network/modules/components/nodes/shapes/Image.js","../lib/network/modules/components/nodes/shapes/Square.js","../lib/network/modules/components/nodes/shapes/Hexagon.js","../lib/network/modules/components/nodes/shapes/Star.js","../lib/network/modules/components/nodes/shapes/Text.js","../lib/network/modules/components/nodes/shapes/Triangle.js","../lib/network/modules/components/nodes/shapes/TriangleDown.js","../lib/network/modules/components/Node.js","../lib/network/modules/NodesHandler.js","../node_modules/core-js-pure/internals/is-data-descriptor.js","../node_modules/core-js-pure/modules/es.reflect.get.js","../node_modules/core-js-pure/es/reflect/get.js","../node_modules/core-js-pure/actual/object/get-own-property-descriptor.js","../node_modules/@babel/runtime-corejs3/helpers/esm/get.js","../node_modules/@babel/runtime-corejs3/helpers/esm/superPropBase.js","../node_modules/core-js-pure/modules/es.math.hypot.js","../node_modules/core-js-pure/es/math/hypot.js","../lib/network/modules/components/edges/util/end-points.ts","../lib/network/modules/components/edges/util/edge-base.ts","../lib/network/modules/components/edges/util/bezier-edge-base.ts","../lib/network/modules/components/edges/bezier-edge-dynamic.ts","../lib/network/modules/components/edges/bezier-edge-static.ts","../lib/network/modules/components/edges/util/cubic-bezier-edge-base.ts","../lib/network/modules/components/edges/cubic-bezier-edge.ts","../lib/network/modules/components/edges/straight-edge.ts","../lib/network/modules/components/Edge.js","../lib/network/modules/EdgesHandler.js","../lib/network/modules/components/physics/BarnesHutSolver.js","../lib/network/modules/components/physics/RepulsionSolver.js","../lib/network/modules/components/physics/HierarchicalRepulsionSolver.js","../lib/network/modules/components/physics/SpringSolver.js","../lib/network/modules/components/physics/HierarchicalSpringSolver.js","../lib/network/modules/components/physics/CentralGravitySolver.js","../lib/network/modules/components/physics/FA2BasedRepulsionSolver.js","../lib/network/modules/components/physics/FA2BasedCentralGravitySolver.js","../lib/network/modules/PhysicsEngine.js","../lib/network/NetworkUtil.js","../lib/network/modules/components/nodes/Cluster.js","../lib/network/modules/Clustering.js","../lib/network/modules/CanvasRenderer.js","../node_modules/core-js-pure/stable/set-interval.js","../lib/hammerUtil.js","../lib/network/modules/Canvas.js","../lib/network/modules/View.js","../lib/network/modules/view-handler/index.ts","../node_modules/keycharm/src/keycharm.js","../lib/network/modules/components/NavigationHandler.js","../lib/network/modules/InteractionHandler.js","../node_modules/core-js-pure/internals/collection-weak.js","../node_modules/core-js-pure/modules/es.weak-map.constructor.js","../node_modules/core-js-pure/es/weak-map/index.js","../lib/network/modules/selection/selection-accumulator.ts","../lib/network/modules/SelectionHandler.js","../lib/network/modules/components/DirectionStrategy.js","../node_modules/core-js-pure/modules/es.array.every.js","../node_modules/core-js-pure/es/array/virtual/every.js","../node_modules/core-js-pure/es/instance/every.js","../node_modules/core-js-pure/stable/instance/every.js","../lib/network/modules/layout-engine/index.ts","../lib/network/modules/LayoutEngine.js","../lib/network/modules/ManipulationSystem.js","../lib/network/options.ts","../lib/network/modules/components/algorithms/FloydWarshall.js","../lib/network/modules/KamadaKawai.js","../lib/network/Network.js","../lib/DOMutil.js","../lib/network/locale-utils.ts","../lib/index-legacy.ts"],"sourcesContent":["'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar path = require('../internals/path');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? global : STATIC ? global[TARGET] : (global[TARGET] || {}).prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (USE_NATIVE && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, global);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nrequire('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","'use strict';\nvar path = require('../internals/path');\n\nmodule.exports = function (CONSTRUCTOR) {\n return path[CONSTRUCTOR + 'Prototype'];\n};\n","'use strict';\nrequire('../../../modules/es.function.bind');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Function').bind;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../function/virtual/bind');\n\nvar FunctionPrototype = Function.prototype;\n\nmodule.exports = function (it) {\n var own = it.bind;\n return it === FunctionPrototype || (isPrototypeOf(FunctionPrototype, it) && own === FunctionPrototype.bind) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/bind');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/bind\");","/**\n * Draw a circle.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - The radius of the circle.\n */\nexport function drawCircle(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n ctx.arc(x, y, r, 0, 2 * Math.PI, false);\n ctx.closePath();\n}\n\n/**\n * Draw a square.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - Half of the width and height of the square.\n */\nexport function drawSquare(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n ctx.rect(x - r, y - r, r * 2, r * 2);\n ctx.closePath();\n}\n\n/**\n * Draw an equilateral triangle standing on a side.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - Half of the length of the sides.\n * @remarks\n * http://en.wikipedia.org/wiki/Equilateral_triangle\n */\nexport function drawTriangle(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n\n // the change in radius and the offset is here to center the shape\n r *= 1.15;\n y += 0.275 * r;\n\n const s = r * 2;\n const s2 = s / 2;\n const ir = (Math.sqrt(3) / 6) * s; // radius of inner circle\n const h = Math.sqrt(s * s - s2 * s2); // height\n\n ctx.moveTo(x, y - (h - ir));\n ctx.lineTo(x + s2, y + ir);\n ctx.lineTo(x - s2, y + ir);\n ctx.lineTo(x, y - (h - ir));\n ctx.closePath();\n}\n\n/**\n * Draw an equilateral triangle standing on a vertex.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - Half of the length of the sides.\n * @remarks\n * http://en.wikipedia.org/wiki/Equilateral_triangle\n */\nexport function drawTriangleDown(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n\n // the change in radius and the offset is here to center the shape\n r *= 1.15;\n y -= 0.275 * r;\n\n const s = r * 2;\n const s2 = s / 2;\n const ir = (Math.sqrt(3) / 6) * s; // radius of inner circle\n const h = Math.sqrt(s * s - s2 * s2); // height\n\n ctx.moveTo(x, y + (h - ir));\n ctx.lineTo(x + s2, y - ir);\n ctx.lineTo(x - s2, y - ir);\n ctx.lineTo(x, y + (h - ir));\n ctx.closePath();\n}\n\n/**\n * Draw a star.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - The outer radius of the star.\n */\nexport function drawStar(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n // http://www.html5canvastutorials.com/labs/html5-canvas-star-spinner/\n ctx.beginPath();\n\n // the change in radius and the offset is here to center the shape\n r *= 0.82;\n y += 0.1 * r;\n\n for (let n = 0; n < 10; n++) {\n const radius = n % 2 === 0 ? r * 1.3 : r * 0.5;\n ctx.lineTo(\n x + radius * Math.sin((n * 2 * Math.PI) / 10),\n y - radius * Math.cos((n * 2 * Math.PI) / 10)\n );\n }\n\n ctx.closePath();\n}\n\n/**\n * Draw a diamond.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - Half of the width and height of the diamond.\n * @remarks\n * http://www.html5canvastutorials.com/labs/html5-canvas-star-spinner/\n */\nexport function drawDiamond(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n\n ctx.lineTo(x, y + r);\n ctx.lineTo(x + r, y);\n ctx.lineTo(x, y - r);\n ctx.lineTo(x - r, y);\n\n ctx.closePath();\n}\n\n/**\n * Draw a rectangle with rounded corners.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param w - The width of the rectangle.\n * @param h - The height of the rectangle.\n * @param r - The radius of the corners.\n * @remarks\n * http://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-on-html-canvas\n */\nexport function drawRoundRect(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n r: number\n): void {\n const r2d = Math.PI / 180;\n if (w - 2 * r < 0) {\n r = w / 2;\n } //ensure that the radius isn't too large for x\n if (h - 2 * r < 0) {\n r = h / 2;\n } //ensure that the radius isn't too large for y\n ctx.beginPath();\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arc(x + w - r, y + r, r, r2d * 270, r2d * 360, false);\n ctx.lineTo(x + w, y + h - r);\n ctx.arc(x + w - r, y + h - r, r, 0, r2d * 90, false);\n ctx.lineTo(x + r, y + h);\n ctx.arc(x + r, y + h - r, r, r2d * 90, r2d * 180, false);\n ctx.lineTo(x, y + r);\n ctx.arc(x + r, y + r, r, r2d * 180, r2d * 270, false);\n ctx.closePath();\n}\n\n/**\n * Draw an ellipse.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param w - The width of the ellipse.\n * @param h - The height of the ellipse.\n * @remarks\n * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas\n *\n * Postfix '_vis' added to discern it from standard method ellipse().\n */\nexport function drawEllipse(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number\n): void {\n const kappa = 0.5522848,\n ox = (w / 2) * kappa, // control point offset horizontal\n oy = (h / 2) * kappa, // control point offset vertical\n xe = x + w, // x-end\n ye = y + h, // y-end\n xm = x + w / 2, // x-middle\n ym = y + h / 2; // y-middle\n\n ctx.beginPath();\n ctx.moveTo(x, ym);\n ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n ctx.closePath();\n}\n\n/**\n * Draw an isometric cylinder.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param w - The width of the database.\n * @param h - The height of the database.\n * @remarks\n * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas\n */\nexport function drawDatabase(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number\n): void {\n const f = 1 / 3;\n const wEllipse = w;\n const hEllipse = h * f;\n\n const kappa = 0.5522848,\n ox = (wEllipse / 2) * kappa, // control point offset horizontal\n oy = (hEllipse / 2) * kappa, // control point offset vertical\n xe = x + wEllipse, // x-end\n ye = y + hEllipse, // y-end\n xm = x + wEllipse / 2, // x-middle\n ym = y + hEllipse / 2, // y-middle\n ymb = y + (h - hEllipse / 2), // y-midlle, bottom ellipse\n yeb = y + h; // y-end, bottom ellipse\n\n ctx.beginPath();\n ctx.moveTo(xe, ym);\n\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n\n ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n\n ctx.lineTo(xe, ymb);\n\n ctx.bezierCurveTo(xe, ymb + oy, xm + ox, yeb, xm, yeb);\n ctx.bezierCurveTo(xm - ox, yeb, x, ymb + oy, x, ymb);\n\n ctx.lineTo(x, ym);\n}\n\n/**\n * Draw a dashed line.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The start position on the x axis.\n * @param y - The start position on the y axis.\n * @param x2 - The end position on the x axis.\n * @param y2 - The end position on the y axis.\n * @param pattern - List of lengths starting with line and then alternating between space and line.\n * @author David Jordan\n * @remarks\n * date 2012-08-08\n * http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas\n */\nexport function drawDashedLine(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n x2: number,\n y2: number,\n pattern: number[]\n): void {\n ctx.beginPath();\n ctx.moveTo(x, y);\n\n const patternLength = pattern.length;\n const dx = x2 - x;\n const dy = y2 - y;\n const slope = dy / dx;\n let distRemaining = Math.sqrt(dx * dx + dy * dy);\n let patternIndex = 0;\n let draw = true;\n let xStep = 0;\n let dashLength = +pattern[0];\n\n while (distRemaining >= 0.1) {\n dashLength = +pattern[patternIndex++ % patternLength];\n if (dashLength > distRemaining) {\n dashLength = distRemaining;\n }\n\n xStep = Math.sqrt((dashLength * dashLength) / (1 + slope * slope));\n xStep = dx < 0 ? -xStep : xStep;\n x += xStep;\n y += slope * xStep;\n\n if (draw === true) {\n ctx.lineTo(x, y);\n } else {\n ctx.moveTo(x, y);\n }\n\n distRemaining -= dashLength;\n draw = !draw;\n }\n}\n\n/**\n * Draw a hexagon.\n *\n * @param ctx - The context this shape will be rendered to.\n * @param x - The position of the center on the x axis.\n * @param y - The position of the center on the y axis.\n * @param r - The radius of the hexagon.\n */\nexport function drawHexagon(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number\n): void {\n ctx.beginPath();\n const sides = 6;\n const a = (Math.PI * 2) / sides;\n ctx.moveTo(x + r, y);\n for (let i = 1; i < sides; i++) {\n ctx.lineTo(x + r * Math.cos(a * i), y + r * Math.sin(a * i));\n }\n ctx.closePath();\n}\n\nconst shapeMap = {\n circle: drawCircle,\n dashedLine: drawDashedLine,\n database: drawDatabase,\n diamond: drawDiamond,\n ellipse: drawEllipse,\n ellipse_vis: drawEllipse,\n hexagon: drawHexagon,\n roundRect: drawRoundRect,\n square: drawSquare,\n star: drawStar,\n triangle: drawTriangle,\n triangleDown: drawTriangleDown,\n};\n\n/**\n * Returns either custom or native drawing function base on supplied name.\n *\n * @param name - The name of the function. Either the name of a\n * CanvasRenderingContext2D property or an export from shapes.ts without the\n * draw prefix.\n * @returns The function that can be used for rendering. In case of native\n * CanvasRenderingContext2D function the API is normalized to\n * `(ctx: CanvasRenderingContext2D, ...originalArgs) => void`.\n */\nexport function getShape(\n name: keyof CanvasRenderingContext2D | keyof typeof shapeMap\n): any {\n if (Object.prototype.hasOwnProperty.call(shapeMap, name)) {\n return (shapeMap as any)[name];\n } else {\n return function (ctx: CanvasRenderingContext2D, ...args: any[]): void {\n (CanvasRenderingContext2D.prototype as any)[name].call(ctx, args);\n };\n }\n}\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n if (it) {\n var target = STATIC ? it : it.prototype;\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nvar parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/array/from\");","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = getIteratorMethod;\n","'use strict';\nrequire('../modules/es.array.iterator');\nvar DOMIterables = require('../internals/dom-iterables');\nvar global = require('../internals/global');\nvar classof = require('../internals/classof');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype && classof(CollectionPrototype) !== TO_STRING_TAG) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n Iterators[COLLECTION_NAME] = Iterators.Array;\n}\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar parent = require('../es/get-iterator-method');\nrequire('../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../full/get-iterator-method');\n","module.exports = require(\"core-js-pure/features/get-iterator-method\");","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","'use strict';\nrequire('../../modules/es.object.define-property');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperty = module.exports = function defineProperty(it, key, desc) {\n return Object.defineProperty(it, key, desc);\n};\n\nif (Object.defineProperty.sham) defineProperty.sham = true;\n","'use strict';\nvar parent = require('../../es/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/object/define-property');\n","'use strict';\nvar parent = require('../../stable/object/define-property');\n\nmodule.exports = parent;\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor(this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty(this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/symbol');\n","'use strict';\nvar parent = require('../../es/symbol/iterator');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.symbol.iterator');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('iterator');\n","'use strict';\nmodule.exports = require('../../full/symbol/iterator');\n","'use strict';\nvar parent = require('../../stable/symbol/iterator');\n\nmodule.exports = parent;\n","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _Symbol$iterator from \"core-js-pure/features/symbol/iterator.js\";\nexport default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","'use strict';\nrequire('../../modules/es.date.to-primitive');\nrequire('../../modules/es.symbol.to-primitive');\nvar WrappedWellKnownSymbolModule = require('../../internals/well-known-symbol-wrapped');\n\nmodule.exports = WrappedWellKnownSymbolModule.f('toPrimitive');\n","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nimport _Symbol$toPrimitive from \"core-js-pure/features/symbol/to-primitive.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[_Symbol$toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n _Object$defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n _Object$defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nrequire('../../modules/es.array.is-array');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.isArray;\n","'use strict';\nvar parent = require('../../es/array/is-array');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/is-array');\n\nmodule.exports = parent;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.push');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').push;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/push');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.push;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.push) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/push');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/instance/push');\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.slice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').slice;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/slice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.slice;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.slice) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/slice');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/instance/slice');\n","'use strict';\nvar parent = require('../../stable/instance/slice');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/from');\n\nmodule.exports = parent;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import _sliceInstanceProperty from \"core-js-pure/features/instance/slice.js\";\nimport _Array$from from \"core-js-pure/features/array/from.js\";\nimport arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n var _context;\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return _Array$from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","import _Array$isArray from \"core-js-pure/features/array/is-array.js\";\nexport default function _arrayWithHoles(arr) {\n if (_Array$isArray(arr)) return arr;\n}","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _getIteratorMethod from \"core-js-pure/features/get-iterator-method.js\";\nimport _pushInstanceProperty from \"core-js-pure/features/instance/push.js\";\nexport default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof _Symbol && _getIteratorMethod(r) || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (_pushInstanceProperty(a).call(a, e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import _Array$isArray from \"core-js-pure/features/array/is-array.js\";\nimport arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) return arrayLikeToArray(arr);\n}","import _Symbol from \"core-js-pure/features/symbol/index.js\";\nimport _getIteratorMethod from \"core-js-pure/features/get-iterator-method.js\";\nimport _Array$from from \"core-js-pure/features/array/from.js\";\nexport default function _iterableToArray(iter) {\n if (typeof _Symbol !== \"undefined\" && _getIteratorMethod(iter) != null || iter[\"@@iterator\"] != null) return _Array$from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","module.exports = require(\"core-js-pure/stable/symbol\");","'use strict';\nrequire('../../../modules/es.array.concat');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').concat;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/concat');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.concat;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.concat) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/concat');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/slice\");","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar ownKeys = require('../internals/own-keys');\n\n// `Reflect.ownKeys` method\n// https://tc39.es/ecma262/#sec-reflect.ownkeys\n$({ target: 'Reflect', stat: true }, {\n ownKeys: ownKeys\n});\n","'use strict';\nrequire('../../modules/es.reflect.own-keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.ownKeys;\n","module.exports = require(\"core-js-pure/stable/array/is-array\");","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.map');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').map;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.map;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.map) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/map');\n\nmodule.exports = parent;\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nrequire('../../modules/es.object.keys');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.keys;\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","'use strict';\nrequire('../../modules/es.date.now');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Date.now;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach !== forEach }, {\n forEach: forEach\n});\n","'use strict';\nrequire('../../../modules/es.array.for-each');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').forEach;\n","'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/for-each');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.forEach;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.forEach)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","'use strict';\nvar parent = require('../../../es/array/virtual/for-each');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/for-each\");","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.reverse');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').reverse;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reverse');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.reverse;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reverse) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/reverse');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/reverse\");","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.splice');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').splice;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/splice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.splice;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.splice) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/splice');\n\nmodule.exports = parent;\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nrequire('../../../modules/es.array.includes');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').includes;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nrequire('../../../modules/es.string.includes');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('String').includes;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar arrayMethod = require('../array/virtual/includes');\nvar stringMethod = require('../string/virtual/includes');\n\nvar ArrayPrototype = Array.prototype;\nvar StringPrototype = String.prototype;\n\nmodule.exports = function (it) {\n var own = it.includes;\n if (it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.includes)) return arrayMethod;\n if (typeof it == 'string' || it === StringPrototype || (isPrototypeOf(StringPrototype, it) && own === StringPrototype.includes)) {\n return stringMethod;\n } return own;\n};\n","'use strict';\nvar parent = require('../../es/instance/includes');\n\nmodule.exports = parent;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nrequire('../../modules/es.object.get-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getPrototypeOf;\n","'use strict';\nvar parent = require('../../es/object/get-prototype-of');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/object/get-prototype-of\");","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.filter');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').filter;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/filter');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.filter;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.filter) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/filter');\n\nmodule.exports = parent;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nrequire('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt !== $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nrequire('../modules/es.parse-int');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseInt;\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.index-of');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').indexOf;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/index-of');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.indexOf;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.indexOf) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/index-of');\n\nmodule.exports = parent;\n","'use strict';\nvar $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nrequire('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","'use strict';\nrequire('../../modules/es.object.create');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function create(P, D) {\n return Object.create(P, D);\n};\n","'use strict';\nvar parent = require('../../es/object/create');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/object/create\");","'use strict';\nrequire('../../modules/es.json.stringify');\nvar path = require('../../internals/path');\nvar apply = require('../../internals/function-apply');\n\n// eslint-disable-next-line es/no-json -- safe\nif (!path.JSON) path.JSON = { stringify: JSON.stringify };\n\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nmodule.exports = function stringify(it, replacer, space) {\n return apply(path.JSON.stringify, null, arguments);\n};\n","'use strict';\nvar parent = require('../../es/json/stringify');\n\nmodule.exports = parent;\n","'use strict';\n/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] === '0' && (version[1] < 3 || version[1] === '3' && version[2] === '0');\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(global.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(global.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setTimeout;\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nrequire('../../../modules/es.array.fill');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').fill;\n","/*! Hammer.JS - v2.0.17-rc - 2019-12-16\n * http://naver.github.io/egjs\n *\n * Forked By Naver egjs\n * Copyright (c) hammerjs\n * Licensed under the MIT license */\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\n\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\nvar assign$1 = assign;\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = typeof document === \"undefined\" ? {\n style: {}\n} : document.createElement('div');\nvar TYPE_FUNCTION = 'function';\nvar round = Math.round,\n abs = Math.abs;\nvar now = Date.now;\n\n/**\n * @private\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n\nfunction prefixed(obj, property) {\n var prefix;\n var prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n\n i++;\n }\n\n return undefined;\n}\n\n/* eslint-disable no-new-func, no-nested-ternary */\nvar win;\n\nif (typeof window === \"undefined\") {\n // window is undefined in node.js\n win = {};\n} else {\n win = window;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n\n var touchMap = {};\n var cssSupports = win.CSS && win.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n return touchMap[val] = cssSupports ? win.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\nvar SUPPORT_TOUCH = 'ontouchstart' in win;\nvar SUPPORT_POINTER_EVENTS = prefixed(win, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\nvar COMPUTE_INTERVAL = 25;\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * @private\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * @private\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n\nfunction boolOrFn(val, args) {\n if (typeof val === TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n\n return val;\n}\n\n/**\n * @private\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * @private\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n } // pan-x OR pan-y\n\n\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n } // manipulation\n\n\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\n/**\n * @private\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n\nvar TouchAction =\n/*#__PURE__*/\nfunction () {\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n /**\n * @private\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n\n\n var _proto = TouchAction.prototype;\n\n _proto.set = function set(value) {\n // find out the touch-action by the event handlers\n if (value === TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n\n this.actions = value.toLowerCase().trim();\n };\n /**\n * @private\n * just re-set the touchAction value\n */\n\n\n _proto.update = function update() {\n this.set(this.manager.options.touchAction);\n };\n /**\n * @private\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n\n\n _proto.compute = function compute() {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n };\n /**\n * @private\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n\n\n _proto.preventDefaults = function preventDefaults(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection; // if the touch action did prevented once this session\n\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n // do not prevent defaults if this is a tap gesture\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n };\n /**\n * @private\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n\n\n _proto.preventSrc = function preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n };\n\n return TouchAction;\n}();\n\n/**\n * @private\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}\n\n/**\n * @private\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n\nfunction getCenter(pointers) {\n var pointersLength = pointers.length; // no need to loop when only one touch\n\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0;\n var y = 0;\n var i = 0;\n\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * @private\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * @private\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * @private\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * @private\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center; // let { offsetDelta:offset = {}, prevDelta = {}, prevInput = {} } = session;\n // jscs throwing error on defalut destructured values and without defaults tests fail\n\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * @private\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * @private\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input;\n var deltaTime = input.timeStamp - last.timeStamp;\n var velocity;\n var velocityX;\n var velocityY;\n var direction;\n\n if (input.eventType !== INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n* @private\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length; // store the first input to calculate the distance and direction\n\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n } // to compute scale and rotation we need to store the multiple touches\n\n\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput,\n firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input); // find the correct target\n\n var target = manager.element;\n var srcEvent = input.srcEvent;\n var srcEventTarget;\n\n if (srcEvent.composedPath) {\n srcEventTarget = srcEvent.composedPath()[0];\n } else if (srcEvent.path) {\n srcEventTarget = srcEvent.path[0];\n } else {\n srcEventTarget = srcEvent.target;\n }\n\n if (hasParent(srcEventTarget, target)) {\n target = srcEventTarget;\n }\n\n input.target = target;\n}\n\n/**\n * @private\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n } // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n\n\n input.eventType = eventType; // compute scale, rotation etc\n\n computeInputData(manager, input); // emit secret event\n\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * @private\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * @private\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n}\n\n/**\n * @private\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n\nvar Input =\n/*#__PURE__*/\nfunction () {\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget; // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n }\n /**\n * @private\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n\n\n var _proto = Input.prototype;\n\n _proto.handler = function handler() {};\n /**\n * @private\n * bind the events\n */\n\n\n _proto.init = function init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n /**\n * @private\n * unbind the events\n */\n\n\n _proto.destroy = function destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n\n return Input;\n}();\n\n/**\n * @private\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n // do not use === here, test fails\n return i;\n }\n\n i++;\n }\n\n return -1;\n }\n}\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n}; // in IE10 the pointer types is defined as an enum\n\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n\n};\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; // IE10 has prefixed support, and case-sensitive\n\nif (win.MSPointerEvent && !win.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n/**\n * @private\n * Pointer events input\n * @constructor\n * @extends Input\n */\n\n\nvar PointerEventInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(PointerEventInput, _Input);\n\n function PointerEventInput() {\n var _this;\n\n var proto = PointerEventInput.prototype;\n proto.evEl = POINTER_ELEMENT_EVENTS;\n proto.evWin = POINTER_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.store = _this.manager.session.pointerEvents = [];\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = PointerEventInput.prototype;\n\n _proto.handler = function handler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType === INPUT_TYPE_TOUCH; // get index of the event in the store\n\n var storeIndex = inArray(store, ev.pointerId, 'pointerId'); // start and mouse must be down\n\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n } // it not found, so the pointer hasn't been down (so it's probably a hover)\n\n\n if (storeIndex < 0) {\n return;\n } // update the event in the store\n\n\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n };\n\n return PointerEventInput;\n}(Input);\n\n/**\n * @private\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * @private\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function (a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n\nvar TouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(TouchInput, _Input);\n\n function TouchInput() {\n var _this;\n\n TouchInput.prototype.evTarget = TOUCH_TARGET_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.targetIds = {}; // this.evTarget = TOUCH_TARGET_EVENTS;\n\n return _this;\n }\n\n var _proto = TouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return TouchInput;\n}(Input);\n\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds; // when there is only one touch, the process can be simplified\n\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i;\n var targetTouches;\n var changedTouches = toArray(ev.changedTouches);\n var changedTargetTouches = [];\n var target = this.target; // get target touches from touches\n\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n }); // collect touches\n\n if (type === INPUT_START) {\n i = 0;\n\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n } // filter changed touches to only contain touches that exist in the collected target ids\n\n\n i = 0;\n\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n } // cleanup removed touches\n\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [// merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n/**\n * @private\n * Mouse events input\n * @constructor\n * @extends Input\n */\n\nvar MouseInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(MouseInput, _Input);\n\n function MouseInput() {\n var _this;\n\n var proto = MouseInput.prototype;\n proto.evEl = MOUSE_ELEMENT_EVENTS;\n proto.evWin = MOUSE_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.pressed = false; // mousedown state\n\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = MouseInput.prototype;\n\n _proto.handler = function handler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type]; // on start we want to have the left mouse button down\n\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n } // mouse must be down\n\n\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n };\n\n return MouseInput;\n}(Input);\n\n/**\n * @private\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction setLastTouch(eventData) {\n var _eventData$changedPoi = eventData.changedPointers,\n touch = _eventData$changedPoi[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n var lts = this.lastTouches;\n this.lastTouches.push(lastTouch);\n\n var removeLastTouch = function removeLastTouch() {\n var i = lts.indexOf(lastTouch);\n\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX;\n var y = eventData.srcEvent.clientY;\n\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x);\n var dy = Math.abs(y - t.y);\n\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n\n return false;\n}\n\nvar TouchMouseInput =\n/*#__PURE__*/\nfunction () {\n var TouchMouseInput =\n /*#__PURE__*/\n function (_Input) {\n _inheritsLoose(TouchMouseInput, _Input);\n\n function TouchMouseInput(_manager, callback) {\n var _this;\n\n _this = _Input.call(this, _manager, callback) || this;\n\n _this.handler = function (manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType === INPUT_TYPE_TOUCH;\n var isMouse = inputData.pointerType === INPUT_TYPE_MOUSE;\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n } // when we're in a touch event, record touches to de-dupe synthetic mouse event\n\n\n if (isTouch) {\n recordTouches.call(_assertThisInitialized(_assertThisInitialized(_this)), inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(_assertThisInitialized(_assertThisInitialized(_this)), inputData)) {\n return;\n }\n\n _this.callback(manager, inputEvent, inputData);\n };\n\n _this.touch = new TouchInput(_this.manager, _this.handler);\n _this.mouse = new MouseInput(_this.manager, _this.handler);\n _this.primaryTouch = null;\n _this.lastTouches = [];\n return _this;\n }\n /**\n * @private\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n\n\n var _proto = TouchMouseInput.prototype;\n\n /**\n * @private\n * remove the event listeners\n */\n _proto.destroy = function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n };\n\n return TouchMouseInput;\n }(Input);\n\n return TouchMouseInput;\n}();\n\n/**\n * @private\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n\nfunction createInputInstance(manager) {\n var Type; // let inputClass = manager.options.inputClass;\n\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n\n return new Type(manager, inputHandler);\n}\n\n/**\n * @private\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n\n return false;\n}\n\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * @private\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * @private\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n\n if (manager) {\n return manager.get(otherRecognizer);\n }\n\n return otherRecognizer;\n}\n\n/**\n * @private\n * get a usable string, used as event postfix\n * @param {constant} state\n * @returns {String} state\n */\n\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n\n return '';\n}\n\n/**\n * @private\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n/**\n * @private\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n\nvar Recognizer =\n/*#__PURE__*/\nfunction () {\n function Recognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = _extends({\n enable: true\n }, options);\n this.id = uniqueId();\n this.manager = null; // default is enable true\n\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n\n\n var _proto = Recognizer.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // also update the touchAction, in case something changed about the directions/enabled state\n\n this.manager && this.manager.touchAction.update();\n return this;\n };\n /**\n * @private\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.recognizeWith = function recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRecognizeWith = function dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n };\n /**\n * @private\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.requireFailure = function requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRequireFailure = function dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n\n return this;\n };\n /**\n * @private\n * has require failures boolean\n * @returns {boolean}\n */\n\n\n _proto.hasRequireFailures = function hasRequireFailures() {\n return this.requireFail.length > 0;\n };\n /**\n * @private\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n\n\n _proto.canRecognizeWith = function canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n };\n /**\n * @private\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n\n\n _proto.emit = function emit(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n } // 'panstart' and 'panmove'\n\n\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n } // panend and pancancel\n\n\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n };\n /**\n * @private\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n\n\n _proto.tryEmit = function tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n } // it's failing anyway\n\n\n this.state = STATE_FAILED;\n };\n /**\n * @private\n * can we emit?\n * @returns {boolean}\n */\n\n\n _proto.canEmit = function canEmit() {\n var i = 0;\n\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n\n i++;\n }\n\n return true;\n };\n /**\n * @private\n * update the recognizer\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign$1({}, inputData); // is is enabled and allow recognizing?\n\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n } // reset when we've reached the end\n\n\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone); // the recognizer has recognized a gesture\n // so trigger an event\n\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n };\n /**\n * @private\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {constant} STATE\n */\n\n /* jshint ignore:start */\n\n\n _proto.process = function process(inputData) {};\n /* jshint ignore:end */\n\n /**\n * @private\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n\n\n _proto.getTouchAction = function getTouchAction() {};\n /**\n * @private\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n\n\n _proto.reset = function reset() {};\n\n return Recognizer;\n}();\n\n/**\n * @private\n * A tap is recognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n\nvar TapRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(TapRecognizer, _Recognizer);\n\n function TapRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10\n }, options)) || this; // previous time and center,\n // used for tap counting\n\n _this.pTime = false;\n _this.pCenter = false;\n _this._timer = null;\n _this._input = null;\n _this.count = 0;\n return _this;\n }\n\n var _proto = TapRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n } // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType !== INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input; // if tap count matches we have recognized it,\n // else it has began recognizing...\n\n var tapCount = this.count % options.taps;\n\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.interval);\n return STATE_BEGAN;\n }\n }\n }\n\n return STATE_FAILED;\n };\n\n _proto.failTimeout = function failTimeout() {\n var _this3 = this;\n\n this._timer = setTimeout(function () {\n _this3.state = STATE_FAILED;\n }, this.options.interval);\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit() {\n if (this.state === STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return TapRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n\nvar AttrRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(AttrRecognizer, _Recognizer);\n\n function AttrRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _Recognizer.call(this, _extends({\n pointers: 1\n }, options)) || this;\n }\n /**\n * @private\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n\n\n var _proto = AttrRecognizer.prototype;\n\n _proto.attrTest = function attrTest(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n };\n /**\n * @private\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n\n\n _proto.process = function process(input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input); // on cancel input and we've recognized before, return STATE_CANCELLED\n\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n\n return state | STATE_CHANGED;\n }\n\n return STATE_FAILED;\n };\n\n return AttrRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * direction cons to string\n * @param {constant} direction\n * @returns {String}\n */\n\nfunction directionStr(direction) {\n if (direction === DIRECTION_DOWN) {\n return 'down';\n } else if (direction === DIRECTION_UP) {\n return 'up';\n } else if (direction === DIRECTION_LEFT) {\n return 'left';\n } else if (direction === DIRECTION_RIGHT) {\n return 'right';\n }\n\n return '';\n}\n\n/**\n * @private\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PanRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PanRecognizer, _AttrRecognizer);\n\n function PanRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _AttrRecognizer.call(this, _extends({\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n }, options)) || this;\n _this.pX = null;\n _this.pY = null;\n return _this;\n }\n\n var _proto = PanRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n var direction = this.options.direction;\n var actions = [];\n\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n\n return actions;\n };\n\n _proto.directionTest = function directionTest(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY; // lock to axis?\n\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x !== this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y !== this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n };\n\n _proto.attrTest = function attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && ( // replace with a super call\n this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n };\n\n _proto.emit = function emit(input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PanRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar SwipeRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(SwipeRecognizer, _AttrRecognizer);\n\n function SwipeRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n }, options)) || this;\n }\n\n var _proto = SwipeRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n };\n\n _proto.attrTest = function attrTest(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return _AttrRecognizer.prototype.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers === this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n };\n\n _proto.emit = function emit(input) {\n var direction = directionStr(input.offsetDirection);\n\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n };\n\n return SwipeRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PinchRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PinchRecognizer, _AttrRecognizer);\n\n function PinchRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'pinch',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n _proto.emit = function emit(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PinchRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar RotateRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(RotateRecognizer, _AttrRecognizer);\n\n function RotateRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'rotate',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = RotateRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n return RotateRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n\nvar PressRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(PressRecognizer, _Recognizer);\n\n function PressRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9\n }, options)) || this;\n _this._timer = null;\n _this._input = null;\n return _this;\n }\n\n var _proto = PressRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input; // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.time);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + \"up\", input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return PressRecognizer;\n}(Recognizer);\n\nvar defaults = {\n /**\n * @private\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * @private\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @private\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * @private\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * @private\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * @private\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * @private\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: \"none\",\n\n /**\n * @private\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: \"none\",\n\n /**\n * @private\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: \"none\",\n\n /**\n * @private\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: \"none\",\n\n /**\n * @private\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: \"none\",\n\n /**\n * @private\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: \"rgba(0,0,0,0)\"\n }\n};\n/**\n * @private\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * This is separated with other defaults because of tree-shaking.\n * @type {Array}\n */\n\nvar preset = [[RotateRecognizer, {\n enable: false\n}], [PinchRecognizer, {\n enable: false\n}, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n}, ['tap']], [PressRecognizer]];\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n/**\n * @private\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n\n if (!element.style) {\n return;\n }\n\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || \"\";\n }\n });\n\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n/**\n * @private\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n\n\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent(\"Event\");\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n/**\n* @private\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(element, options) {\n var _this = this;\n\n this.options = assign$1({}, defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = _this.add(new item[0](item[1]));\n\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n\n\n var _proto = Manager.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // Options that need a little more setup\n\n if (options.touchAction) {\n this.touchAction.update();\n }\n\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n\n return this;\n };\n /**\n * @private\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n\n\n _proto.stop = function stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n };\n /**\n * @private\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n var session = this.session;\n\n if (session.stopped) {\n return;\n } // run the touch-action polyfill\n\n\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers; // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n\n var curRecognizer = session.curRecognizer; // reset when the last recognizer is recognized\n // or when we're in a new session\n\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n session.curRecognizer = null;\n curRecognizer = null;\n }\n\n var i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i]; // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer === curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n } // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n\n\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n session.curRecognizer = recognizer;\n curRecognizer = recognizer;\n }\n\n i++;\n }\n };\n /**\n * @private\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n\n\n _proto.get = function get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event === recognizer) {\n return recognizers[i];\n }\n }\n\n return null;\n };\n /**\n * @private add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n\n\n _proto.add = function add(recognizer) {\n if (invokeArrayArg(recognizer, \"add\", this)) {\n return this;\n } // remove existing\n\n\n var existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n };\n /**\n * @private\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n\n\n _proto.remove = function remove(recognizer) {\n if (invokeArrayArg(recognizer, \"remove\", this)) {\n return this;\n }\n\n var targetRecognizer = this.get(recognizer); // let's make sure this recognizer exists\n\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, targetRecognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n };\n /**\n * @private\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n\n\n _proto.on = function on(events, handler) {\n if (events === undefined || handler === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n };\n /**\n * @private unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n\n\n _proto.off = function off(events, handler) {\n if (events === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n };\n /**\n * @private emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n\n\n _proto.emit = function emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n } // no handlers, so skip it all\n\n\n var handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n };\n /**\n * @private\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n\n\n _proto.destroy = function destroy() {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n };\n\n return Manager;\n}();\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Touch events input\n * @constructor\n * @extends Input\n */\n\nvar SingleTouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(SingleTouchInput, _Input);\n\n function SingleTouchInput() {\n var _this;\n\n var proto = SingleTouchInput.prototype;\n proto.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n proto.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.started = false;\n return _this;\n }\n\n var _proto = SingleTouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; // should we handle the touch events?\n\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type); // when done, reset the started state\n\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return SingleTouchInput;\n}(Input);\n\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\n/**\n * @private\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = \"DEPRECATED METHOD: \" + name + \"\\n\" + message + \" AT \\n\";\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n\n return method.apply(this, arguments);\n };\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n\nvar extend = deprecate(function (dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n\n i++;\n }\n\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * @private\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n\nvar merge = deprecate(function (dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * @private\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n\nfunction inherit(child, base, properties) {\n var baseP = base.prototype;\n var childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign$1(childP, properties);\n }\n}\n\n/**\n * @private\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * @private\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\nvar Hammer =\n/*#__PURE__*/\nfunction () {\n var Hammer =\n /**\n * @private\n * @const {string}\n */\n function Hammer(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n return new Manager(element, _extends({\n recognizers: preset.concat()\n }, options));\n };\n\n Hammer.VERSION = \"2.0.17-rc\";\n Hammer.DIRECTION_ALL = DIRECTION_ALL;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.DIRECTION_LEFT = DIRECTION_LEFT;\n Hammer.DIRECTION_RIGHT = DIRECTION_RIGHT;\n Hammer.DIRECTION_UP = DIRECTION_UP;\n Hammer.DIRECTION_HORIZONTAL = DIRECTION_HORIZONTAL;\n Hammer.DIRECTION_VERTICAL = DIRECTION_VERTICAL;\n Hammer.DIRECTION_NONE = DIRECTION_NONE;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.INPUT_START = INPUT_START;\n Hammer.INPUT_MOVE = INPUT_MOVE;\n Hammer.INPUT_END = INPUT_END;\n Hammer.INPUT_CANCEL = INPUT_CANCEL;\n Hammer.STATE_POSSIBLE = STATE_POSSIBLE;\n Hammer.STATE_BEGAN = STATE_BEGAN;\n Hammer.STATE_CHANGED = STATE_CHANGED;\n Hammer.STATE_ENDED = STATE_ENDED;\n Hammer.STATE_RECOGNIZED = STATE_RECOGNIZED;\n Hammer.STATE_CANCELLED = STATE_CANCELLED;\n Hammer.STATE_FAILED = STATE_FAILED;\n Hammer.Manager = Manager;\n Hammer.Input = Input;\n Hammer.TouchAction = TouchAction;\n Hammer.TouchInput = TouchInput;\n Hammer.MouseInput = MouseInput;\n Hammer.PointerEventInput = PointerEventInput;\n Hammer.TouchMouseInput = TouchMouseInput;\n Hammer.SingleTouchInput = SingleTouchInput;\n Hammer.Recognizer = Recognizer;\n Hammer.AttrRecognizer = AttrRecognizer;\n Hammer.Tap = TapRecognizer;\n Hammer.Pan = PanRecognizer;\n Hammer.Swipe = SwipeRecognizer;\n Hammer.Pinch = PinchRecognizer;\n Hammer.Rotate = RotateRecognizer;\n Hammer.Press = PressRecognizer;\n Hammer.on = addEventListeners;\n Hammer.off = removeEventListeners;\n Hammer.each = each;\n Hammer.merge = merge;\n Hammer.extend = extend;\n Hammer.bindFn = bindFn;\n Hammer.assign = assign$1;\n Hammer.inherit = inherit;\n Hammer.bindFn = bindFn;\n Hammer.prefixed = prefixed;\n Hammer.toArray = toArray;\n Hammer.inArray = inArray;\n Hammer.uniqueArray = uniqueArray;\n Hammer.splitStr = splitStr;\n Hammer.boolOrFn = boolOrFn;\n Hammer.hasParent = hasParent;\n Hammer.addEventListeners = addEventListeners;\n Hammer.removeEventListeners = removeEventListeners;\n Hammer.defaults = assign$1({}, defaults, {\n preset: preset\n });\n return Hammer;\n}();\n\n// style loader but by script tag, not by the loader.\n\nvar defaults$1 = Hammer.defaults;\n\nexport default Hammer;\nexport { INPUT_START, INPUT_MOVE, INPUT_END, INPUT_CANCEL, STATE_POSSIBLE, STATE_BEGAN, STATE_CHANGED, STATE_ENDED, STATE_RECOGNIZED, STATE_CANCELLED, STATE_FAILED, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL, DIRECTION_ALL, Manager, Input, TouchAction, TouchInput, MouseInput, PointerEventInput, TouchMouseInput, SingleTouchInput, Recognizer, AttrRecognizer, TapRecognizer as Tap, PanRecognizer as Pan, SwipeRecognizer as Swipe, PinchRecognizer as Pinch, RotateRecognizer as Rotate, PressRecognizer as Press, addEventListeners as on, removeEventListeners as off, each, merge, extend, assign$1 as assign, inherit, bindFn, prefixed, toArray, inArray, uniqueArray, splitStr, boolOrFn, hasParent, addEventListeners, removeEventListeners, defaults$1 as defaults };\n//# sourceMappingURL=hammer.esm.js.map\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/fill');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.fill;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.fill) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/fill');\n\nmodule.exports = parent;\n","/**\n * vis-util\n * https://github.com/visjs/vis-util\n *\n * utilitie collection for visjs\n *\n * @version 5.0.5\n * @date 2023-10-03T18:47:58.061Z\n *\n * @copyright (c) 2011-2017 Almende B.V, http://almende.com\n * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs\n *\n * @license\n * vis.js is dual licensed under both\n *\n * 1. The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * 2. The MIT License\n * http://opensource.org/licenses/MIT\n *\n * vis.js may be distributed under either license.\n */\n\nimport Emitter from 'component-emitter';\nimport RealHammer from '@egjs/hammerjs';\n\n/**\r\n * Use this symbol to delete properies in deepObjectAssign.\r\n */\r\nconst DELETE = Symbol(\"DELETE\");\r\n/**\r\n * Pure version of deepObjectAssign, it doesn't modify any of it's arguments.\r\n *\r\n * @param base - The base object that fullfils the whole interface T.\r\n * @param updates - Updates that may change or delete props.\r\n * @returns A brand new instance with all the supplied objects deeply merged.\r\n */\r\nfunction pureDeepObjectAssign(base, ...updates) {\r\n return deepObjectAssign({}, base, ...updates);\r\n}\r\n/**\r\n * Deep version of object assign with additional deleting by the DELETE symbol.\r\n *\r\n * @param values - Objects to be deeply merged.\r\n * @returns The first object from values.\r\n */\r\nfunction deepObjectAssign(...values) {\r\n const merged = deepObjectAssignNonentry(...values);\r\n stripDelete(merged);\r\n return merged;\r\n}\r\n/**\r\n * Deep version of object assign with additional deleting by the DELETE symbol.\r\n *\r\n * @remarks\r\n * This doesn't strip the DELETE symbols so they may end up in the final object.\r\n * @param values - Objects to be deeply merged.\r\n * @returns The first object from values.\r\n */\r\nfunction deepObjectAssignNonentry(...values) {\r\n if (values.length < 2) {\r\n return values[0];\r\n }\r\n else if (values.length > 2) {\r\n return deepObjectAssignNonentry(deepObjectAssign(values[0], values[1]), ...values.slice(2));\r\n }\r\n const a = values[0];\r\n const b = values[1];\r\n if (a instanceof Date && b instanceof Date) {\r\n a.setTime(b.getTime());\r\n return a;\r\n }\r\n for (const prop of Reflect.ownKeys(b)) {\r\n if (!Object.prototype.propertyIsEnumerable.call(b, prop)) ;\r\n else if (b[prop] === DELETE) {\r\n delete a[prop];\r\n }\r\n else if (a[prop] !== null &&\r\n b[prop] !== null &&\r\n typeof a[prop] === \"object\" &&\r\n typeof b[prop] === \"object\" &&\r\n !Array.isArray(a[prop]) &&\r\n !Array.isArray(b[prop])) {\r\n a[prop] = deepObjectAssignNonentry(a[prop], b[prop]);\r\n }\r\n else {\r\n a[prop] = clone(b[prop]);\r\n }\r\n }\r\n return a;\r\n}\r\n/**\r\n * Deep clone given object or array. In case of primitive simply return.\r\n *\r\n * @param a - Anything.\r\n * @returns Deep cloned object/array or unchanged a.\r\n */\r\nfunction clone(a) {\r\n if (Array.isArray(a)) {\r\n return a.map((value) => clone(value));\r\n }\r\n else if (typeof a === \"object\" && a !== null) {\r\n if (a instanceof Date) {\r\n return new Date(a.getTime());\r\n }\r\n return deepObjectAssignNonentry({}, a);\r\n }\r\n else {\r\n return a;\r\n }\r\n}\r\n/**\r\n * Strip DELETE from given object.\r\n *\r\n * @param a - Object which may contain DELETE but won't after this is executed.\r\n */\r\nfunction stripDelete(a) {\r\n for (const prop of Object.keys(a)) {\r\n if (a[prop] === DELETE) {\r\n delete a[prop];\r\n }\r\n else if (typeof a[prop] === \"object\" && a[prop] !== null) {\r\n stripDelete(a[prop]);\r\n }\r\n }\r\n}\n\n/**\r\n * Seedable, fast and reasonably good (not crypto but more than okay for our\r\n * needs) random number generator.\r\n *\r\n * @remarks\r\n * Adapted from {@link https://web.archive.org/web/20110429100736/http://baagoe.com:80/en/RandomMusings/javascript}.\r\n * Original algorithm created by Johannes Baagøe \\ in 2010.\r\n */\r\n/**\r\n * Create a seeded pseudo random generator based on Alea by Johannes Baagøe.\r\n *\r\n * @param seed - All supplied arguments will be used as a seed. In case nothing\r\n * is supplied the current time will be used to seed the generator.\r\n * @returns A ready to use seeded generator.\r\n */\r\nfunction Alea(...seed) {\r\n return AleaImplementation(seed.length ? seed : [Date.now()]);\r\n}\r\n/**\r\n * An implementation of [[Alea]] without user input validation.\r\n *\r\n * @param seed - The data that will be used to seed the generator.\r\n * @returns A ready to use seeded generator.\r\n */\r\nfunction AleaImplementation(seed) {\r\n let [s0, s1, s2] = mashSeed(seed);\r\n let c = 1;\r\n const random = () => {\r\n const t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32\r\n s0 = s1;\r\n s1 = s2;\r\n return (s2 = t - (c = t | 0));\r\n };\r\n random.uint32 = () => random() * 0x100000000; // 2^32\r\n random.fract53 = () => random() + ((random() * 0x200000) | 0) * 1.1102230246251565e-16; // 2^-53\r\n random.algorithm = \"Alea\";\r\n random.seed = seed;\r\n random.version = \"0.9\";\r\n return random;\r\n}\r\n/**\r\n * Turn arbitrary data into values [[AleaImplementation]] can use to generate\r\n * random numbers.\r\n *\r\n * @param seed - Arbitrary data that will be used as the seed.\r\n * @returns Three numbers to use as initial values for [[AleaImplementation]].\r\n */\r\nfunction mashSeed(...seed) {\r\n const mash = Mash();\r\n let s0 = mash(\" \");\r\n let s1 = mash(\" \");\r\n let s2 = mash(\" \");\r\n for (let i = 0; i < seed.length; i++) {\r\n s0 -= mash(seed[i]);\r\n if (s0 < 0) {\r\n s0 += 1;\r\n }\r\n s1 -= mash(seed[i]);\r\n if (s1 < 0) {\r\n s1 += 1;\r\n }\r\n s2 -= mash(seed[i]);\r\n if (s2 < 0) {\r\n s2 += 1;\r\n }\r\n }\r\n return [s0, s1, s2];\r\n}\r\n/**\r\n * Create a new mash function.\r\n *\r\n * @returns A nonpure function that takes arbitrary [[Mashable]] data and turns\r\n * them into numbers.\r\n */\r\nfunction Mash() {\r\n let n = 0xefc8249d;\r\n return function (data) {\r\n const string = data.toString();\r\n for (let i = 0; i < string.length; i++) {\r\n n += string.charCodeAt(i);\r\n let h = 0.02519603282416938 * n;\r\n n = h >>> 0;\r\n h -= n;\r\n h *= n;\r\n n = h >>> 0;\r\n h -= n;\r\n n += h * 0x100000000; // 2^32\r\n }\r\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\r\n };\r\n}\n\n/**\n * Setup a mock hammer.js object, for unit testing.\n *\n * Inspiration: https://github.com/uber/deck.gl/pull/658\n *\n * @returns {{on: noop, off: noop, destroy: noop, emit: noop, get: get}}\n */\nfunction hammerMock() {\n const noop = () => {};\n\n return {\n on: noop,\n off: noop,\n destroy: noop,\n emit: noop,\n\n get() {\n return {\n set: noop,\n };\n },\n };\n}\n\nconst Hammer$1 =\n typeof window !== \"undefined\"\n ? window.Hammer || RealHammer\n : function () {\n // hammer.js is only available in a browser, not in node.js. Replacing it with a mock object.\n return hammerMock();\n };\n\n/**\n * Turn an element into an clickToUse element.\n * When not active, the element has a transparent overlay. When the overlay is\n * clicked, the mode is changed to active.\n * When active, the element is displayed with a blue border around it, and\n * the interactive contents of the element can be used. When clicked outside\n * the element, the elements mode is changed to inactive.\n *\n * @param {Element} container\n * @class Activator\n */\nfunction Activator$1(container) {\n this._cleanupQueue = [];\n\n this.active = false;\n\n this._dom = {\n container,\n overlay: document.createElement(\"div\"),\n };\n\n this._dom.overlay.classList.add(\"vis-overlay\");\n\n this._dom.container.appendChild(this._dom.overlay);\n this._cleanupQueue.push(() => {\n this._dom.overlay.parentNode.removeChild(this._dom.overlay);\n });\n\n const hammer = Hammer$1(this._dom.overlay);\n hammer.on(\"tap\", this._onTapOverlay.bind(this));\n this._cleanupQueue.push(() => {\n hammer.destroy();\n // FIXME: cleaning up hammer instances doesn't work (Timeline not removed\n // from memory)\n });\n\n // block all touch events (except tap)\n const events = [\n \"tap\",\n \"doubletap\",\n \"press\",\n \"pinch\",\n \"pan\",\n \"panstart\",\n \"panmove\",\n \"panend\",\n ];\n events.forEach((event) => {\n hammer.on(event, (event) => {\n event.srcEvent.stopPropagation();\n });\n });\n\n // attach a click event to the window, in order to deactivate when clicking outside the timeline\n if (document && document.body) {\n this._onClick = (event) => {\n if (!_hasParent(event.target, container)) {\n this.deactivate();\n }\n };\n document.body.addEventListener(\"click\", this._onClick);\n this._cleanupQueue.push(() => {\n document.body.removeEventListener(\"click\", this._onClick);\n });\n }\n\n // prepare escape key listener for deactivating when active\n this._escListener = (event) => {\n if (\n \"key\" in event\n ? event.key === \"Escape\"\n : event.keyCode === 27 /* the keyCode is for IE11 */\n ) {\n this.deactivate();\n }\n };\n}\n\n// turn into an event emitter\nEmitter(Activator$1.prototype);\n\n// The currently active activator\nActivator$1.current = null;\n\n/**\n * Destroy the activator. Cleans up all created DOM and event listeners\n */\nActivator$1.prototype.destroy = function () {\n this.deactivate();\n\n for (const callback of this._cleanupQueue.splice(0).reverse()) {\n callback();\n }\n};\n\n/**\n * Activate the element\n * Overlay is hidden, element is decorated with a blue shadow border\n */\nActivator$1.prototype.activate = function () {\n // we allow only one active activator at a time\n if (Activator$1.current) {\n Activator$1.current.deactivate();\n }\n Activator$1.current = this;\n\n this.active = true;\n this._dom.overlay.style.display = \"none\";\n this._dom.container.classList.add(\"vis-active\");\n\n this.emit(\"change\");\n this.emit(\"activate\");\n\n // ugly hack: bind ESC after emitting the events, as the Network rebinds all\n // keyboard events on a 'change' event\n document.body.addEventListener(\"keydown\", this._escListener);\n};\n\n/**\n * Deactivate the element\n * Overlay is displayed on top of the element\n */\nActivator$1.prototype.deactivate = function () {\n this.active = false;\n this._dom.overlay.style.display = \"block\";\n this._dom.container.classList.remove(\"vis-active\");\n document.body.removeEventListener(\"keydown\", this._escListener);\n\n this.emit(\"change\");\n this.emit(\"deactivate\");\n};\n\n/**\n * Handle a tap event: activate the container\n *\n * @param {Event} event The event\n * @private\n */\nActivator$1.prototype._onTapOverlay = function (event) {\n // activate the container\n this.activate();\n event.srcEvent.stopPropagation();\n};\n\n/**\n * Test whether the element has the requested parent element somewhere in\n * its chain of parent nodes.\n *\n * @param {HTMLElement} element\n * @param {HTMLElement} parent\n * @returns {boolean} Returns true when the parent is found somewhere in the\n * chain of parent nodes.\n * @private\n */\nfunction _hasParent(element, parent) {\n while (element) {\n if (element === parent) {\n return true;\n }\n element = element.parentNode;\n }\n return false;\n}\n\n// utility functions\r\n// parse ASP.Net Date pattern,\r\n// for example '/Date(1198908717056)/' or '/Date(1198908717056-0700)/'\r\n// code from http://momentjs.com/\r\nconst ASPDateRegex = /^\\/?Date\\((-?\\d+)/i;\r\n// Color REs\r\nconst fullHexRE = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\r\nconst shortHexRE = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\nconst rgbRE = /^rgb\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *\\)$/i;\r\nconst rgbaRE = /^rgba\\( *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *(1?\\d{1,2}|2[0-4]\\d|25[0-5]) *, *([01]|0?\\.\\d+) *\\)$/i;\r\n/**\r\n * Test whether given object is a number.\r\n *\r\n * @param value - Input value of unknown type.\r\n * @returns True if number, false otherwise.\r\n */\r\nfunction isNumber(value) {\r\n return value instanceof Number || typeof value === \"number\";\r\n}\r\n/**\r\n * Remove everything in the DOM object.\r\n *\r\n * @param DOMobject - Node whose child nodes will be recursively deleted.\r\n */\r\nfunction recursiveDOMDelete(DOMobject) {\r\n if (DOMobject) {\r\n while (DOMobject.hasChildNodes() === true) {\r\n const child = DOMobject.firstChild;\r\n if (child) {\r\n recursiveDOMDelete(child);\r\n DOMobject.removeChild(child);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Test whether given object is a string.\r\n *\r\n * @param value - Input value of unknown type.\r\n * @returns True if string, false otherwise.\r\n */\r\nfunction isString(value) {\r\n return value instanceof String || typeof value === \"string\";\r\n}\r\n/**\r\n * Test whether given object is a object (not primitive or null).\r\n *\r\n * @param value - Input value of unknown type.\r\n * @returns True if not null object, false otherwise.\r\n */\r\nfunction isObject(value) {\r\n return typeof value === \"object\" && value !== null;\r\n}\r\n/**\r\n * Test whether given object is a Date, or a String containing a Date.\r\n *\r\n * @param value - Input value of unknown type.\r\n * @returns True if Date instance or string date representation, false otherwise.\r\n */\r\nfunction isDate(value) {\r\n if (value instanceof Date) {\r\n return true;\r\n }\r\n else if (isString(value)) {\r\n // test whether this string contains a date\r\n const match = ASPDateRegex.exec(value);\r\n if (match) {\r\n return true;\r\n }\r\n else if (!isNaN(Date.parse(value))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Copy property from b to a if property present in a.\r\n * If property in b explicitly set to null, delete it if `allowDeletion` set.\r\n *\r\n * Internal helper routine, should not be exported. Not added to `exports` for that reason.\r\n *\r\n * @param a - Target object.\r\n * @param b - Source object.\r\n * @param prop - Name of property to copy from b to a.\r\n * @param allowDeletion - If true, delete property in a if explicitly set to null in b.\r\n */\r\nfunction copyOrDelete(a, b, prop, allowDeletion) {\r\n let doDeletion = false;\r\n if (allowDeletion === true) {\r\n doDeletion = b[prop] === null && a[prop] !== undefined;\r\n }\r\n if (doDeletion) {\r\n delete a[prop];\r\n }\r\n else {\r\n a[prop] = b[prop]; // Remember, this is a reference copy!\r\n }\r\n}\r\n/**\r\n * Fill an object with a possibly partially defined other object.\r\n *\r\n * Only copies values for the properties already present in a.\r\n * That means an object is not created on a property if only the b object has it.\r\n *\r\n * @param a - The object that will have it's properties updated.\r\n * @param b - The object with property updates.\r\n * @param allowDeletion - If true, delete properties in a that are explicitly set to null in b.\r\n */\r\nfunction fillIfDefined(a, b, allowDeletion = false) {\r\n // NOTE: iteration of properties of a\r\n // NOTE: prototype properties iterated over as well\r\n for (const prop in a) {\r\n if (b[prop] !== undefined) {\r\n if (b[prop] === null || typeof b[prop] !== \"object\") {\r\n // Note: typeof null === 'object'\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n else {\r\n const aProp = a[prop];\r\n const bProp = b[prop];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n fillIfDefined(aProp, bProp, allowDeletion);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Copy the values of all of the enumerable own properties from one or more source objects to a\r\n * target object. Returns the target object.\r\n *\r\n * @param target - The target object to copy to.\r\n * @param source - The source object from which to copy properties.\r\n * @returns The target object.\r\n */\r\nconst extend = Object.assign;\r\n/**\r\n * Extend object a with selected properties of object b or a series of objects.\r\n *\r\n * @remarks\r\n * Only properties with defined values are copied.\r\n * @param props - Properties to be copied to a.\r\n * @param a - The target.\r\n * @param others - The sources.\r\n * @returns Argument a.\r\n */\r\nfunction selectiveExtend(props, a, ...others) {\r\n if (!Array.isArray(props)) {\r\n throw new Error(\"Array with property names expected as first argument\");\r\n }\r\n for (const other of others) {\r\n for (let p = 0; p < props.length; p++) {\r\n const prop = props[p];\r\n if (other && Object.prototype.hasOwnProperty.call(other, prop)) {\r\n a[prop] = other[prop];\r\n }\r\n }\r\n }\r\n return a;\r\n}\r\n/**\r\n * Extend object a with selected properties of object b.\r\n * Only properties with defined values are copied.\r\n *\r\n * @remarks\r\n * Previous version of this routine implied that multiple source objects could\r\n * be used; however, the implementation was **wrong**. Since multiple (\\>1)\r\n * sources weren't used anywhere in the `vis.js` code, this has been removed\r\n * @param props - Names of first-level properties to copy over.\r\n * @param a - Target object.\r\n * @param b - Source object.\r\n * @param allowDeletion - If true, delete property in a if explicitly set to null in b.\r\n * @returns Argument a.\r\n */\r\nfunction selectiveDeepExtend(props, a, b, allowDeletion = false) {\r\n // TODO: add support for Arrays to deepExtend\r\n if (Array.isArray(b)) {\r\n throw new TypeError(\"Arrays are not supported by deepExtend\");\r\n }\r\n for (let p = 0; p < props.length; p++) {\r\n const prop = props[p];\r\n if (Object.prototype.hasOwnProperty.call(b, prop)) {\r\n if (b[prop] && b[prop].constructor === Object) {\r\n if (a[prop] === undefined) {\r\n a[prop] = {};\r\n }\r\n if (a[prop].constructor === Object) {\r\n deepExtend(a[prop], b[prop], false, allowDeletion);\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n else if (Array.isArray(b[prop])) {\r\n throw new TypeError(\"Arrays are not supported by deepExtend\");\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n }\r\n return a;\r\n}\r\n/**\r\n * Extend object `a` with properties of object `b`, ignoring properties which\r\n * are explicitly specified to be excluded.\r\n *\r\n * @remarks\r\n * The properties of `b` are considered for copying. Properties which are\r\n * themselves objects are are also extended. Only properties with defined\r\n * values are copied.\r\n * @param propsToExclude - Names of properties which should *not* be copied.\r\n * @param a - Object to extend.\r\n * @param b - Object to take properties from for extension.\r\n * @param allowDeletion - If true, delete properties in a that are explicitly\r\n * set to null in b.\r\n * @returns Argument a.\r\n */\r\nfunction selectiveNotDeepExtend(propsToExclude, a, b, allowDeletion = false) {\r\n // TODO: add support for Arrays to deepExtend\r\n // NOTE: array properties have an else-below; apparently, there is a problem here.\r\n if (Array.isArray(b)) {\r\n throw new TypeError(\"Arrays are not supported by deepExtend\");\r\n }\r\n for (const prop in b) {\r\n if (!Object.prototype.hasOwnProperty.call(b, prop)) {\r\n continue;\r\n } // Handle local properties only\r\n if (propsToExclude.includes(prop)) {\r\n continue;\r\n } // In exclusion list, skip\r\n if (b[prop] && b[prop].constructor === Object) {\r\n if (a[prop] === undefined) {\r\n a[prop] = {};\r\n }\r\n if (a[prop].constructor === Object) {\r\n deepExtend(a[prop], b[prop]); // NOTE: allowDeletion not propagated!\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n else if (Array.isArray(b[prop])) {\r\n a[prop] = [];\r\n for (let i = 0; i < b[prop].length; i++) {\r\n a[prop].push(b[prop][i]);\r\n }\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n return a;\r\n}\r\n/**\r\n * Deep extend an object a with the properties of object b.\r\n *\r\n * @param a - Target object.\r\n * @param b - Source object.\r\n * @param protoExtend - If true, the prototype values will also be extended.\r\n * (That is the options objects that inherit from others will also get the\r\n * inherited options).\r\n * @param allowDeletion - If true, the values of fields that are null will be deleted.\r\n * @returns Argument a.\r\n */\r\nfunction deepExtend(a, b, protoExtend = false, allowDeletion = false) {\r\n for (const prop in b) {\r\n if (Object.prototype.hasOwnProperty.call(b, prop) || protoExtend === true) {\r\n if (typeof b[prop] === \"object\" &&\r\n b[prop] !== null &&\r\n Object.getPrototypeOf(b[prop]) === Object.prototype) {\r\n if (a[prop] === undefined) {\r\n a[prop] = deepExtend({}, b[prop], protoExtend); // NOTE: allowDeletion not propagated!\r\n }\r\n else if (typeof a[prop] === \"object\" &&\r\n a[prop] !== null &&\r\n Object.getPrototypeOf(a[prop]) === Object.prototype) {\r\n deepExtend(a[prop], b[prop], protoExtend); // NOTE: allowDeletion not propagated!\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n else if (Array.isArray(b[prop])) {\r\n a[prop] = b[prop].slice();\r\n }\r\n else {\r\n copyOrDelete(a, b, prop, allowDeletion);\r\n }\r\n }\r\n }\r\n return a;\r\n}\r\n/**\r\n * Test whether all elements in two arrays are equal.\r\n *\r\n * @param a - First array.\r\n * @param b - Second array.\r\n * @returns True if both arrays have the same length and same elements (1 = '1').\r\n */\r\nfunction equalArray(a, b) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (let i = 0, len = a.length; i < len; i++) {\r\n if (a[i] != b[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Get the type of an object, for example exports.getType([]) returns 'Array'.\r\n *\r\n * @param object - Input value of unknown type.\r\n * @returns Detected type.\r\n */\r\nfunction getType(object) {\r\n const type = typeof object;\r\n if (type === \"object\") {\r\n if (object === null) {\r\n return \"null\";\r\n }\r\n if (object instanceof Boolean) {\r\n return \"Boolean\";\r\n }\r\n if (object instanceof Number) {\r\n return \"Number\";\r\n }\r\n if (object instanceof String) {\r\n return \"String\";\r\n }\r\n if (Array.isArray(object)) {\r\n return \"Array\";\r\n }\r\n if (object instanceof Date) {\r\n return \"Date\";\r\n }\r\n return \"Object\";\r\n }\r\n if (type === \"number\") {\r\n return \"Number\";\r\n }\r\n if (type === \"boolean\") {\r\n return \"Boolean\";\r\n }\r\n if (type === \"string\") {\r\n return \"String\";\r\n }\r\n if (type === undefined) {\r\n return \"undefined\";\r\n }\r\n return type;\r\n}\r\n/**\r\n * Used to extend an array and copy it. This is used to propagate paths recursively.\r\n *\r\n * @param arr - First part.\r\n * @param newValue - The value to be aadded into the array.\r\n * @returns A new array with all items from arr and newValue (which is last).\r\n */\r\nfunction copyAndExtendArray(arr, newValue) {\r\n return [...arr, newValue];\r\n}\r\n/**\r\n * Used to extend an array and copy it. This is used to propagate paths recursively.\r\n *\r\n * @param arr - The array to be copied.\r\n * @returns Shallow copy of arr.\r\n */\r\nfunction copyArray(arr) {\r\n return arr.slice();\r\n}\r\n/**\r\n * Retrieve the absolute left value of a DOM element.\r\n *\r\n * @param elem - A dom element, for example a div.\r\n * @returns The absolute left position of this element in the browser page.\r\n */\r\nfunction getAbsoluteLeft(elem) {\r\n return elem.getBoundingClientRect().left;\r\n}\r\n/**\r\n * Retrieve the absolute right value of a DOM element.\r\n *\r\n * @param elem - A dom element, for example a div.\r\n * @returns The absolute right position of this element in the browser page.\r\n */\r\nfunction getAbsoluteRight(elem) {\r\n return elem.getBoundingClientRect().right;\r\n}\r\n/**\r\n * Retrieve the absolute top value of a DOM element.\r\n *\r\n * @param elem - A dom element, for example a div.\r\n * @returns The absolute top position of this element in the browser page.\r\n */\r\nfunction getAbsoluteTop(elem) {\r\n return elem.getBoundingClientRect().top;\r\n}\r\n/**\r\n * Add a className to the given elements style.\r\n *\r\n * @param elem - The element to which the classes will be added.\r\n * @param classNames - Space separated list of classes.\r\n */\r\nfunction addClassName(elem, classNames) {\r\n let classes = elem.className.split(\" \");\r\n const newClasses = classNames.split(\" \");\r\n classes = classes.concat(newClasses.filter(function (className) {\r\n return !classes.includes(className);\r\n }));\r\n elem.className = classes.join(\" \");\r\n}\r\n/**\r\n * Remove a className from the given elements style.\r\n *\r\n * @param elem - The element from which the classes will be removed.\r\n * @param classNames - Space separated list of classes.\r\n */\r\nfunction removeClassName(elem, classNames) {\r\n let classes = elem.className.split(\" \");\r\n const oldClasses = classNames.split(\" \");\r\n classes = classes.filter(function (className) {\r\n return !oldClasses.includes(className);\r\n });\r\n elem.className = classes.join(\" \");\r\n}\r\n/**\r\n * For each method for both arrays and objects.\r\n * In case of an array, the built-in Array.forEach() is applied (**No, it's not!**).\r\n * In case of an Object, the method loops over all properties of the object.\r\n *\r\n * @param object - An Object or Array to be iterated over.\r\n * @param callback - Array.forEach-like callback.\r\n */\r\nfunction forEach(object, callback) {\r\n if (Array.isArray(object)) {\r\n // array\r\n const len = object.length;\r\n for (let i = 0; i < len; i++) {\r\n callback(object[i], i, object);\r\n }\r\n }\r\n else {\r\n // object\r\n for (const key in object) {\r\n if (Object.prototype.hasOwnProperty.call(object, key)) {\r\n callback(object[key], key, object);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Convert an object into an array: all objects properties are put into the array. The resulting array is unordered.\r\n *\r\n * @param o - Object that contains the properties and methods.\r\n * @returns An array of unordered values.\r\n */\r\nconst toArray = Object.values;\r\n/**\r\n * Update a property in an object.\r\n *\r\n * @param object - The object whose property will be updated.\r\n * @param key - Name of the property to be updated.\r\n * @param value - The new value to be assigned.\r\n * @returns Whether the value was updated (true) or already strictly the same in the original object (false).\r\n */\r\nfunction updateProperty(object, key, value) {\r\n if (object[key] !== value) {\r\n object[key] = value;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Throttle the given function to be only executed once per animation frame.\r\n *\r\n * @param fn - The original function.\r\n * @returns The throttled function.\r\n */\r\nfunction throttle(fn) {\r\n let scheduled = false;\r\n return () => {\r\n if (!scheduled) {\r\n scheduled = true;\r\n requestAnimationFrame(() => {\r\n scheduled = false;\r\n fn();\r\n });\r\n }\r\n };\r\n}\r\n/**\r\n * Add and event listener. Works for all browsers.\r\n *\r\n * @param element - The element to bind the event listener to.\r\n * @param action - Same as Element.addEventListener(action, —, —).\r\n * @param listener - Same as Element.addEventListener(—, listener, —).\r\n * @param useCapture - Same as Element.addEventListener(—, —, useCapture).\r\n */\r\nfunction addEventListener(element, action, listener, useCapture) {\r\n if (element.addEventListener) {\r\n if (useCapture === undefined) {\r\n useCapture = false;\r\n }\r\n if (action === \"mousewheel\" && navigator.userAgent.includes(\"Firefox\")) {\r\n action = \"DOMMouseScroll\"; // For Firefox\r\n }\r\n element.addEventListener(action, listener, useCapture);\r\n }\r\n else {\r\n // @TODO: IE types? Does anyone care?\r\n element.attachEvent(\"on\" + action, listener); // IE browsers\r\n }\r\n}\r\n/**\r\n * Remove an event listener from an element.\r\n *\r\n * @param element - The element to bind the event listener to.\r\n * @param action - Same as Element.removeEventListener(action, —, —).\r\n * @param listener - Same as Element.removeEventListener(—, listener, —).\r\n * @param useCapture - Same as Element.removeEventListener(—, —, useCapture).\r\n */\r\nfunction removeEventListener(element, action, listener, useCapture) {\r\n if (element.removeEventListener) {\r\n // non-IE browsers\r\n if (useCapture === undefined) {\r\n useCapture = false;\r\n }\r\n if (action === \"mousewheel\" && navigator.userAgent.includes(\"Firefox\")) {\r\n action = \"DOMMouseScroll\"; // For Firefox\r\n }\r\n element.removeEventListener(action, listener, useCapture);\r\n }\r\n else {\r\n // @TODO: IE types? Does anyone care?\r\n element.detachEvent(\"on\" + action, listener); // IE browsers\r\n }\r\n}\r\n/**\r\n * Cancels the event's default action if it is cancelable, without stopping further propagation of the event.\r\n *\r\n * @param event - The event whose default action should be prevented.\r\n */\r\nfunction preventDefault(event) {\r\n if (!event) {\r\n event = window.event;\r\n }\r\n if (!event) ;\r\n else if (event.preventDefault) {\r\n event.preventDefault(); // non-IE browsers\r\n }\r\n else {\r\n // @TODO: IE types? Does anyone care?\r\n event.returnValue = false; // IE browsers\r\n }\r\n}\r\n/**\r\n * Get HTML element which is the target of the event.\r\n *\r\n * @param event - The event.\r\n * @returns The element or null if not obtainable.\r\n */\r\nfunction getTarget(event = window.event) {\r\n // code from http://www.quirksmode.org/js/events_properties.html\r\n // @TODO: EventTarget can be almost anything, is it okay to return only Elements?\r\n let target = null;\r\n if (!event) ;\r\n else if (event.target) {\r\n target = event.target;\r\n }\r\n else if (event.srcElement) {\r\n target = event.srcElement;\r\n }\r\n if (!(target instanceof Element)) {\r\n return null;\r\n }\r\n if (target.nodeType != null && target.nodeType == 3) {\r\n // defeat Safari bug\r\n target = target.parentNode;\r\n if (!(target instanceof Element)) {\r\n return null;\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Check if given element contains given parent somewhere in the DOM tree.\r\n *\r\n * @param element - The element to be tested.\r\n * @param parent - The ancestor (not necessarily parent) of the element.\r\n * @returns True if parent is an ancestor of the element, false otherwise.\r\n */\r\nfunction hasParent(element, parent) {\r\n let elem = element;\r\n while (elem) {\r\n if (elem === parent) {\r\n return true;\r\n }\r\n else if (elem.parentNode) {\r\n elem = elem.parentNode;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n}\r\nconst option = {\r\n /**\r\n * Convert a value into a boolean.\r\n *\r\n * @param value - Value to be converted intoboolean, a function will be executed as `(() => unknown)`.\r\n * @param defaultValue - If the value or the return value of the function == null then this will be returned.\r\n * @returns Corresponding boolean value, if none then the default value, if none then null.\r\n */\r\n asBoolean(value, defaultValue) {\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n if (value != null) {\r\n return value != false;\r\n }\r\n return defaultValue || null;\r\n },\r\n /**\r\n * Convert a value into a number.\r\n *\r\n * @param value - Value to be converted intonumber, a function will be executed as `(() => unknown)`.\r\n * @param defaultValue - If the value or the return value of the function == null then this will be returned.\r\n * @returns Corresponding **boxed** number value, if none then the default value, if none then null.\r\n */\r\n asNumber(value, defaultValue) {\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n if (value != null) {\r\n return Number(value) || defaultValue || null;\r\n }\r\n return defaultValue || null;\r\n },\r\n /**\r\n * Convert a value into a string.\r\n *\r\n * @param value - Value to be converted intostring, a function will be executed as `(() => unknown)`.\r\n * @param defaultValue - If the value or the return value of the function == null then this will be returned.\r\n * @returns Corresponding **boxed** string value, if none then the default value, if none then null.\r\n */\r\n asString(value, defaultValue) {\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n if (value != null) {\r\n return String(value);\r\n }\r\n return defaultValue || null;\r\n },\r\n /**\r\n * Convert a value into a size.\r\n *\r\n * @param value - Value to be converted intosize, a function will be executed as `(() => unknown)`.\r\n * @param defaultValue - If the value or the return value of the function == null then this will be returned.\r\n * @returns Corresponding string value (number + 'px'), if none then the default value, if none then null.\r\n */\r\n asSize(value, defaultValue) {\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n if (isString(value)) {\r\n return value;\r\n }\r\n else if (isNumber(value)) {\r\n return value + \"px\";\r\n }\r\n else {\r\n return defaultValue || null;\r\n }\r\n },\r\n /**\r\n * Convert a value into a DOM Element.\r\n *\r\n * @param value - Value to be converted into DOM Element, a function will be executed as `(() => unknown)`.\r\n * @param defaultValue - If the value or the return value of the function == null then this will be returned.\r\n * @returns The DOM Element, if none then the default value, if none then null.\r\n */\r\n asElement(value, defaultValue) {\r\n if (typeof value == \"function\") {\r\n value = value();\r\n }\r\n return value || defaultValue || null;\r\n },\r\n};\r\n/**\r\n * Convert hex color string into RGB color object.\r\n *\r\n * @remarks\r\n * {@link http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb}\r\n * @param hex - Hex color string (3 or 6 digits, with or without #).\r\n * @returns RGB color object.\r\n */\r\nfunction hexToRGB(hex) {\r\n let result;\r\n switch (hex.length) {\r\n case 3:\r\n case 4:\r\n result = shortHexRE.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1] + result[1], 16),\r\n g: parseInt(result[2] + result[2], 16),\r\n b: parseInt(result[3] + result[3], 16),\r\n }\r\n : null;\r\n case 6:\r\n case 7:\r\n result = fullHexRE.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n }\r\n : null;\r\n default:\r\n return null;\r\n }\r\n}\r\n/**\r\n * This function takes string color in hex or RGB format and adds the opacity, RGBA is passed through unchanged.\r\n *\r\n * @param color - The color string (hex, RGB, RGBA).\r\n * @param opacity - The new opacity.\r\n * @returns RGBA string, for example 'rgba(255, 0, 127, 0.3)'.\r\n */\r\nfunction overrideOpacity(color, opacity) {\r\n if (color.includes(\"rgba\")) {\r\n return color;\r\n }\r\n else if (color.includes(\"rgb\")) {\r\n const rgb = color\r\n .substr(color.indexOf(\"(\") + 1)\r\n .replace(\")\", \"\")\r\n .split(\",\");\r\n return \"rgba(\" + rgb[0] + \",\" + rgb[1] + \",\" + rgb[2] + \",\" + opacity + \")\";\r\n }\r\n else {\r\n const rgb = hexToRGB(color);\r\n if (rgb == null) {\r\n return color;\r\n }\r\n else {\r\n return \"rgba(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \",\" + opacity + \")\";\r\n }\r\n }\r\n}\r\n/**\r\n * Convert RGB \\<0, 255\\> into hex color string.\r\n *\r\n * @param red - Red channel.\r\n * @param green - Green channel.\r\n * @param blue - Blue channel.\r\n * @returns Hex color string (for example: '#0acdc0').\r\n */\r\nfunction RGBToHex(red, green, blue) {\r\n return (\"#\" + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1));\r\n}\r\n/**\r\n * Parse a color property into an object with border, background, and highlight colors.\r\n *\r\n * @param inputColor - Shorthand color string or input color object.\r\n * @param defaultColor - Full color object to fill in missing values in inputColor.\r\n * @returns Color object.\r\n */\r\nfunction parseColor(inputColor, defaultColor) {\r\n if (isString(inputColor)) {\r\n let colorStr = inputColor;\r\n if (isValidRGB(colorStr)) {\r\n const rgb = colorStr\r\n .substr(4)\r\n .substr(0, colorStr.length - 5)\r\n .split(\",\")\r\n .map(function (value) {\r\n return parseInt(value);\r\n });\r\n colorStr = RGBToHex(rgb[0], rgb[1], rgb[2]);\r\n }\r\n if (isValidHex(colorStr) === true) {\r\n const hsv = hexToHSV(colorStr);\r\n const lighterColorHSV = {\r\n h: hsv.h,\r\n s: hsv.s * 0.8,\r\n v: Math.min(1, hsv.v * 1.02),\r\n };\r\n const darkerColorHSV = {\r\n h: hsv.h,\r\n s: Math.min(1, hsv.s * 1.25),\r\n v: hsv.v * 0.8,\r\n };\r\n const darkerColorHex = HSVToHex(darkerColorHSV.h, darkerColorHSV.s, darkerColorHSV.v);\r\n const lighterColorHex = HSVToHex(lighterColorHSV.h, lighterColorHSV.s, lighterColorHSV.v);\r\n return {\r\n background: colorStr,\r\n border: darkerColorHex,\r\n highlight: {\r\n background: lighterColorHex,\r\n border: darkerColorHex,\r\n },\r\n hover: {\r\n background: lighterColorHex,\r\n border: darkerColorHex,\r\n },\r\n };\r\n }\r\n else {\r\n return {\r\n background: colorStr,\r\n border: colorStr,\r\n highlight: {\r\n background: colorStr,\r\n border: colorStr,\r\n },\r\n hover: {\r\n background: colorStr,\r\n border: colorStr,\r\n },\r\n };\r\n }\r\n }\r\n else {\r\n if (defaultColor) {\r\n const color = {\r\n background: inputColor.background || defaultColor.background,\r\n border: inputColor.border || defaultColor.border,\r\n highlight: isString(inputColor.highlight)\r\n ? {\r\n border: inputColor.highlight,\r\n background: inputColor.highlight,\r\n }\r\n : {\r\n background: (inputColor.highlight && inputColor.highlight.background) ||\r\n defaultColor.highlight.background,\r\n border: (inputColor.highlight && inputColor.highlight.border) ||\r\n defaultColor.highlight.border,\r\n },\r\n hover: isString(inputColor.hover)\r\n ? {\r\n border: inputColor.hover,\r\n background: inputColor.hover,\r\n }\r\n : {\r\n border: (inputColor.hover && inputColor.hover.border) ||\r\n defaultColor.hover.border,\r\n background: (inputColor.hover && inputColor.hover.background) ||\r\n defaultColor.hover.background,\r\n },\r\n };\r\n return color;\r\n }\r\n else {\r\n const color = {\r\n background: inputColor.background || undefined,\r\n border: inputColor.border || undefined,\r\n highlight: isString(inputColor.highlight)\r\n ? {\r\n border: inputColor.highlight,\r\n background: inputColor.highlight,\r\n }\r\n : {\r\n background: (inputColor.highlight && inputColor.highlight.background) ||\r\n undefined,\r\n border: (inputColor.highlight && inputColor.highlight.border) ||\r\n undefined,\r\n },\r\n hover: isString(inputColor.hover)\r\n ? {\r\n border: inputColor.hover,\r\n background: inputColor.hover,\r\n }\r\n : {\r\n border: (inputColor.hover && inputColor.hover.border) || undefined,\r\n background: (inputColor.hover && inputColor.hover.background) || undefined,\r\n },\r\n };\r\n return color;\r\n }\r\n }\r\n}\r\n/**\r\n * Convert RGB \\<0, 255\\> into HSV object.\r\n *\r\n * @remarks\r\n * {@link http://www.javascripter.net/faq/rgb2hsv.htm}\r\n * @param red - Red channel.\r\n * @param green - Green channel.\r\n * @param blue - Blue channel.\r\n * @returns HSV color object.\r\n */\r\nfunction RGBToHSV(red, green, blue) {\r\n red = red / 255;\r\n green = green / 255;\r\n blue = blue / 255;\r\n const minRGB = Math.min(red, Math.min(green, blue));\r\n const maxRGB = Math.max(red, Math.max(green, blue));\r\n // Black-gray-white\r\n if (minRGB === maxRGB) {\r\n return { h: 0, s: 0, v: minRGB };\r\n }\r\n // Colors other than black-gray-white:\r\n const d = red === minRGB ? green - blue : blue === minRGB ? red - green : blue - red;\r\n const h = red === minRGB ? 3 : blue === minRGB ? 1 : 5;\r\n const hue = (60 * (h - d / (maxRGB - minRGB))) / 360;\r\n const saturation = (maxRGB - minRGB) / maxRGB;\r\n const value = maxRGB;\r\n return { h: hue, s: saturation, v: value };\r\n}\r\n/**\r\n * Split a string with css styles into an object with key/values.\r\n *\r\n * @param cssText - CSS source code to split into key/value object.\r\n * @returns Key/value object corresponding to {@link cssText}.\r\n */\r\nfunction splitCSSText(cssText) {\r\n const tmpEllement = document.createElement(\"div\");\r\n const styles = {};\r\n tmpEllement.style.cssText = cssText;\r\n for (let i = 0; i < tmpEllement.style.length; ++i) {\r\n styles[tmpEllement.style[i]] = tmpEllement.style.getPropertyValue(tmpEllement.style[i]);\r\n }\r\n return styles;\r\n}\r\n/**\r\n * Append a string with css styles to an element.\r\n *\r\n * @param element - The element that will receive new styles.\r\n * @param cssText - The styles to be appended.\r\n */\r\nfunction addCssText(element, cssText) {\r\n const cssStyle = splitCSSText(cssText);\r\n for (const [key, value] of Object.entries(cssStyle)) {\r\n element.style.setProperty(key, value);\r\n }\r\n}\r\n/**\r\n * Remove a string with css styles from an element.\r\n *\r\n * @param element - The element from which styles should be removed.\r\n * @param cssText - The styles to be removed.\r\n */\r\nfunction removeCssText(element, cssText) {\r\n const cssStyle = splitCSSText(cssText);\r\n for (const key of Object.keys(cssStyle)) {\r\n element.style.removeProperty(key);\r\n }\r\n}\r\n/**\r\n * Convert HSV \\<0, 1\\> into RGB color object.\r\n *\r\n * @remarks\r\n * {@link https://gist.github.com/mjijackson/5311256}\r\n * @param h - Hue.\r\n * @param s - Saturation.\r\n * @param v - Value.\r\n * @returns RGB color object.\r\n */\r\nfunction HSVToRGB(h, s, v) {\r\n let r;\r\n let g;\r\n let b;\r\n const i = Math.floor(h * 6);\r\n const f = h * 6 - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - f * s);\r\n const t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0:\r\n (r = v), (g = t), (b = p);\r\n break;\r\n case 1:\r\n (r = q), (g = v), (b = p);\r\n break;\r\n case 2:\r\n (r = p), (g = v), (b = t);\r\n break;\r\n case 3:\r\n (r = p), (g = q), (b = v);\r\n break;\r\n case 4:\r\n (r = t), (g = p), (b = v);\r\n break;\r\n case 5:\r\n (r = v), (g = p), (b = q);\r\n break;\r\n }\r\n return {\r\n r: Math.floor(r * 255),\r\n g: Math.floor(g * 255),\r\n b: Math.floor(b * 255),\r\n };\r\n}\r\n/**\r\n * Convert HSV \\<0, 1\\> into hex color string.\r\n *\r\n * @param h - Hue.\r\n * @param s - Saturation.\r\n * @param v - Value.\r\n * @returns Hex color string.\r\n */\r\nfunction HSVToHex(h, s, v) {\r\n const rgb = HSVToRGB(h, s, v);\r\n return RGBToHex(rgb.r, rgb.g, rgb.b);\r\n}\r\n/**\r\n * Convert hex color string into HSV \\<0, 1\\>.\r\n *\r\n * @param hex - Hex color string.\r\n * @returns HSV color object.\r\n */\r\nfunction hexToHSV(hex) {\r\n const rgb = hexToRGB(hex);\r\n if (!rgb) {\r\n throw new TypeError(`'${hex}' is not a valid color.`);\r\n }\r\n return RGBToHSV(rgb.r, rgb.g, rgb.b);\r\n}\r\n/**\r\n * Validate hex color string.\r\n *\r\n * @param hex - Unknown string that may contain a color.\r\n * @returns True if the string is valid, false otherwise.\r\n */\r\nfunction isValidHex(hex) {\r\n const isOk = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex);\r\n return isOk;\r\n}\r\n/**\r\n * Validate RGB color string.\r\n *\r\n * @param rgb - Unknown string that may contain a color.\r\n * @returns True if the string is valid, false otherwise.\r\n */\r\nfunction isValidRGB(rgb) {\r\n return rgbRE.test(rgb);\r\n}\r\n/**\r\n * Validate RGBA color string.\r\n *\r\n * @param rgba - Unknown string that may contain a color.\r\n * @returns True if the string is valid, false otherwise.\r\n */\r\nfunction isValidRGBA(rgba) {\r\n return rgbaRE.test(rgba);\r\n}\r\n/**\r\n * This recursively redirects the prototype of JSON objects to the referenceObject.\r\n * This is used for default options.\r\n *\r\n * @param fields - Names of properties to be bridged.\r\n * @param referenceObject - The original object.\r\n * @returns A new object inheriting from the referenceObject.\r\n */\r\nfunction selectiveBridgeObject(fields, referenceObject) {\r\n if (referenceObject !== null && typeof referenceObject === \"object\") {\r\n // !!! typeof null === 'object'\r\n const objectTo = Object.create(referenceObject);\r\n for (let i = 0; i < fields.length; i++) {\r\n if (Object.prototype.hasOwnProperty.call(referenceObject, fields[i])) {\r\n if (typeof referenceObject[fields[i]] == \"object\") {\r\n objectTo[fields[i]] = bridgeObject(referenceObject[fields[i]]);\r\n }\r\n }\r\n }\r\n return objectTo;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n/**\r\n * This recursively redirects the prototype of JSON objects to the referenceObject.\r\n * This is used for default options.\r\n *\r\n * @param referenceObject - The original object.\r\n * @returns The Element if the referenceObject is an Element, or a new object inheriting from the referenceObject.\r\n */\r\nfunction bridgeObject(referenceObject) {\r\n if (referenceObject === null || typeof referenceObject !== \"object\") {\r\n return null;\r\n }\r\n if (referenceObject instanceof Element) {\r\n // Avoid bridging DOM objects\r\n return referenceObject;\r\n }\r\n const objectTo = Object.create(referenceObject);\r\n for (const i in referenceObject) {\r\n if (Object.prototype.hasOwnProperty.call(referenceObject, i)) {\r\n if (typeof referenceObject[i] == \"object\") {\r\n objectTo[i] = bridgeObject(referenceObject[i]);\r\n }\r\n }\r\n }\r\n return objectTo;\r\n}\r\n/**\r\n * This method provides a stable sort implementation, very fast for presorted data.\r\n *\r\n * @param a - The array to be sorted (in-place).\r\n * @param compare - An order comparator.\r\n * @returns The argument a.\r\n */\r\nfunction insertSort(a, compare) {\r\n for (let i = 0; i < a.length; i++) {\r\n const k = a[i];\r\n let j;\r\n for (j = i; j > 0 && compare(k, a[j - 1]) < 0; j--) {\r\n a[j] = a[j - 1];\r\n }\r\n a[j] = k;\r\n }\r\n return a;\r\n}\r\n/**\r\n * This is used to set the options of subobjects in the options object.\r\n *\r\n * A requirement of these subobjects is that they have an 'enabled' element\r\n * which is optional for the user but mandatory for the program.\r\n *\r\n * The added value here of the merge is that option 'enabled' is set as required.\r\n *\r\n * @param mergeTarget - Either this.options or the options used for the groups.\r\n * @param options - Options.\r\n * @param option - Option key in the options argument.\r\n * @param globalOptions - Global options, passed in to determine value of option 'enabled'.\r\n */\r\nfunction mergeOptions(mergeTarget, options, option, globalOptions = {}) {\r\n // Local helpers\r\n const isPresent = function (obj) {\r\n return obj !== null && obj !== undefined;\r\n };\r\n const isObject = function (obj) {\r\n return obj !== null && typeof obj === \"object\";\r\n };\r\n // https://stackoverflow.com/a/34491287/1223531\r\n const isEmpty = function (obj) {\r\n for (const x in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, x)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n // Guards\r\n if (!isObject(mergeTarget)) {\r\n throw new Error(\"Parameter mergeTarget must be an object\");\r\n }\r\n if (!isObject(options)) {\r\n throw new Error(\"Parameter options must be an object\");\r\n }\r\n if (!isPresent(option)) {\r\n throw new Error(\"Parameter option must have a value\");\r\n }\r\n if (!isObject(globalOptions)) {\r\n throw new Error(\"Parameter globalOptions must be an object\");\r\n }\r\n //\r\n // Actual merge routine, separated from main logic\r\n // Only a single level of options is merged. Deeper levels are ref'd. This may actually be an issue.\r\n //\r\n const doMerge = function (target, options, option) {\r\n if (!isObject(target[option])) {\r\n target[option] = {};\r\n }\r\n const src = options[option];\r\n const dst = target[option];\r\n for (const prop in src) {\r\n if (Object.prototype.hasOwnProperty.call(src, prop)) {\r\n dst[prop] = src[prop];\r\n }\r\n }\r\n };\r\n // Local initialization\r\n const srcOption = options[option];\r\n const globalPassed = isObject(globalOptions) && !isEmpty(globalOptions);\r\n const globalOption = globalPassed ? globalOptions[option] : undefined;\r\n const globalEnabled = globalOption ? globalOption.enabled : undefined;\r\n /////////////////////////////////////////\r\n // Main routine\r\n /////////////////////////////////////////\r\n if (srcOption === undefined) {\r\n return; // Nothing to do\r\n }\r\n if (typeof srcOption === \"boolean\") {\r\n if (!isObject(mergeTarget[option])) {\r\n mergeTarget[option] = {};\r\n }\r\n mergeTarget[option].enabled = srcOption;\r\n return;\r\n }\r\n if (srcOption === null && !isObject(mergeTarget[option])) {\r\n // If possible, explicit copy from globals\r\n if (isPresent(globalOption)) {\r\n mergeTarget[option] = Object.create(globalOption);\r\n }\r\n else {\r\n return; // Nothing to do\r\n }\r\n }\r\n if (!isObject(srcOption)) {\r\n return;\r\n }\r\n //\r\n // Ensure that 'enabled' is properly set. It is required internally\r\n // Note that the value from options will always overwrite the existing value\r\n //\r\n let enabled = true; // default value\r\n if (srcOption.enabled !== undefined) {\r\n enabled = srcOption.enabled;\r\n }\r\n else {\r\n // Take from globals, if present\r\n if (globalEnabled !== undefined) {\r\n enabled = globalOption.enabled;\r\n }\r\n }\r\n doMerge(mergeTarget, options, option);\r\n mergeTarget[option].enabled = enabled;\r\n}\r\n/**\r\n * This function does a binary search for a visible item in a sorted list. If we find a visible item, the code that uses\r\n * this function will then iterate in both directions over this sorted list to find all visible items.\r\n *\r\n * @param orderedItems - Items ordered by start.\r\n * @param comparator - -1 is lower, 0 is equal, 1 is higher.\r\n * @param field - Property name on an item (That is item[field]).\r\n * @param field2 - Second property name on an item (That is item[field][field2]).\r\n * @returns Index of the found item or -1 if nothing was found.\r\n */\r\nfunction binarySearchCustom(orderedItems, comparator, field, field2) {\r\n const maxIterations = 10000;\r\n let iteration = 0;\r\n let low = 0;\r\n let high = orderedItems.length - 1;\r\n while (low <= high && iteration < maxIterations) {\r\n const middle = Math.floor((low + high) / 2);\r\n const item = orderedItems[middle];\r\n const value = field2 === undefined ? item[field] : item[field][field2];\r\n const searchResult = comparator(value);\r\n if (searchResult == 0) {\r\n // jihaa, found a visible item!\r\n return middle;\r\n }\r\n else if (searchResult == -1) {\r\n // it is too small --> increase low\r\n low = middle + 1;\r\n }\r\n else {\r\n // it is too big --> decrease high\r\n high = middle - 1;\r\n }\r\n iteration++;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * This function does a binary search for a specific value in a sorted array.\r\n * If it does not exist but is in between of two values, we return either the\r\n * one before or the one after, depending on user input If it is found, we\r\n * return the index, else -1.\r\n *\r\n * @param orderedItems - Sorted array.\r\n * @param target - The searched value.\r\n * @param field - Name of the property in items to be searched.\r\n * @param sidePreference - If the target is between two values, should the index of the before or the after be returned?\r\n * @param comparator - An optional comparator, returning -1, 0, 1 for \\<, ===, \\>.\r\n * @returns The index of found value or -1 if nothing was found.\r\n */\r\nfunction binarySearchValue(orderedItems, target, field, sidePreference, comparator) {\r\n const maxIterations = 10000;\r\n let iteration = 0;\r\n let low = 0;\r\n let high = orderedItems.length - 1;\r\n let prevValue;\r\n let value;\r\n let nextValue;\r\n let middle;\r\n comparator =\r\n comparator != undefined\r\n ? comparator\r\n : function (a, b) {\r\n return a == b ? 0 : a < b ? -1 : 1;\r\n };\r\n while (low <= high && iteration < maxIterations) {\r\n // get a new guess\r\n middle = Math.floor(0.5 * (high + low));\r\n prevValue = orderedItems[Math.max(0, middle - 1)][field];\r\n value = orderedItems[middle][field];\r\n nextValue =\r\n orderedItems[Math.min(orderedItems.length - 1, middle + 1)][field];\r\n if (comparator(value, target) == 0) {\r\n // we found the target\r\n return middle;\r\n }\r\n else if (comparator(prevValue, target) < 0 &&\r\n comparator(value, target) > 0) {\r\n // target is in between of the previous and the current\r\n return sidePreference == \"before\" ? Math.max(0, middle - 1) : middle;\r\n }\r\n else if (comparator(value, target) < 0 &&\r\n comparator(nextValue, target) > 0) {\r\n // target is in between of the current and the next\r\n return sidePreference == \"before\"\r\n ? middle\r\n : Math.min(orderedItems.length - 1, middle + 1);\r\n }\r\n else {\r\n // didnt find the target, we need to change our boundaries.\r\n if (comparator(value, target) < 0) {\r\n // it is too small --> increase low\r\n low = middle + 1;\r\n }\r\n else {\r\n // it is too big --> decrease high\r\n high = middle - 1;\r\n }\r\n }\r\n iteration++;\r\n }\r\n // didnt find anything. Return -1.\r\n return -1;\r\n}\r\n/*\r\n * Easing Functions.\r\n * Only considering the t value for the range [0, 1] => [0, 1].\r\n *\r\n * Inspiration: from http://gizma.com/easing/\r\n * https://gist.github.com/gre/1650294\r\n */\r\nconst easingFunctions = {\r\n /**\r\n * Provides no easing and no acceleration.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n linear(t) {\r\n return t;\r\n },\r\n /**\r\n * Accelerate from zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInQuad(t) {\r\n return t * t;\r\n },\r\n /**\r\n * Decelerate to zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeOutQuad(t) {\r\n return t * (2 - t);\r\n },\r\n /**\r\n * Accelerate until halfway, then decelerate.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInOutQuad(t) {\r\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\r\n },\r\n /**\r\n * Accelerate from zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInCubic(t) {\r\n return t * t * t;\r\n },\r\n /**\r\n * Decelerate to zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeOutCubic(t) {\r\n return --t * t * t + 1;\r\n },\r\n /**\r\n * Accelerate until halfway, then decelerate.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInOutCubic(t) {\r\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\r\n },\r\n /**\r\n * Accelerate from zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInQuart(t) {\r\n return t * t * t * t;\r\n },\r\n /**\r\n * Decelerate to zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeOutQuart(t) {\r\n return 1 - --t * t * t * t;\r\n },\r\n /**\r\n * Accelerate until halfway, then decelerate.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInOutQuart(t) {\r\n return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;\r\n },\r\n /**\r\n * Accelerate from zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInQuint(t) {\r\n return t * t * t * t * t;\r\n },\r\n /**\r\n * Decelerate to zero velocity.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeOutQuint(t) {\r\n return 1 + --t * t * t * t * t;\r\n },\r\n /**\r\n * Accelerate until halfway, then decelerate.\r\n *\r\n * @param t - Time.\r\n * @returns Value at time t.\r\n */\r\n easeInOutQuint(t) {\r\n return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;\r\n },\r\n};\r\n/**\r\n * Experimentaly compute the width of the scrollbar for this browser.\r\n *\r\n * @returns The width in pixels.\r\n */\r\nfunction getScrollBarWidth() {\r\n const inner = document.createElement(\"p\");\r\n inner.style.width = \"100%\";\r\n inner.style.height = \"200px\";\r\n const outer = document.createElement(\"div\");\r\n outer.style.position = \"absolute\";\r\n outer.style.top = \"0px\";\r\n outer.style.left = \"0px\";\r\n outer.style.visibility = \"hidden\";\r\n outer.style.width = \"200px\";\r\n outer.style.height = \"150px\";\r\n outer.style.overflow = \"hidden\";\r\n outer.appendChild(inner);\r\n document.body.appendChild(outer);\r\n const w1 = inner.offsetWidth;\r\n outer.style.overflow = \"scroll\";\r\n let w2 = inner.offsetWidth;\r\n if (w1 == w2) {\r\n w2 = outer.clientWidth;\r\n }\r\n document.body.removeChild(outer);\r\n return w1 - w2;\r\n}\r\n// @TODO: This doesn't work properly.\r\n// It works only for single property objects,\r\n// otherwise it combines all of the types in a union.\r\n// export function topMost (\r\n// pile: Record[],\r\n// accessors: K1 | [K1]\r\n// ): undefined | V1\r\n// export function topMost (\r\n// pile: Record>[],\r\n// accessors: [K1, K2]\r\n// ): undefined | V1 | V2\r\n// export function topMost (\r\n// pile: Record>>[],\r\n// accessors: [K1, K2, K3]\r\n// ): undefined | V1 | V2 | V3\r\n/**\r\n * Get the top most property value from a pile of objects.\r\n *\r\n * @param pile - Array of objects, no required format.\r\n * @param accessors - Array of property names.\r\n * For example `object['foo']['bar']` → `['foo', 'bar']`.\r\n * @returns Value of the property with given accessors path from the first pile item where it's not undefined.\r\n */\r\nfunction topMost(pile, accessors) {\r\n let candidate;\r\n if (!Array.isArray(accessors)) {\r\n accessors = [accessors];\r\n }\r\n for (const member of pile) {\r\n if (member) {\r\n candidate = member[accessors[0]];\r\n for (let i = 1; i < accessors.length; i++) {\r\n if (candidate) {\r\n candidate = candidate[accessors[i]];\r\n }\r\n }\r\n if (typeof candidate !== \"undefined\") {\r\n break;\r\n }\r\n }\r\n }\r\n return candidate;\r\n}\n\nconst htmlColors = {\n black: \"#000000\",\n navy: \"#000080\",\n darkblue: \"#00008B\",\n mediumblue: \"#0000CD\",\n blue: \"#0000FF\",\n darkgreen: \"#006400\",\n green: \"#008000\",\n teal: \"#008080\",\n darkcyan: \"#008B8B\",\n deepskyblue: \"#00BFFF\",\n darkturquoise: \"#00CED1\",\n mediumspringgreen: \"#00FA9A\",\n lime: \"#00FF00\",\n springgreen: \"#00FF7F\",\n aqua: \"#00FFFF\",\n cyan: \"#00FFFF\",\n midnightblue: \"#191970\",\n dodgerblue: \"#1E90FF\",\n lightseagreen: \"#20B2AA\",\n forestgreen: \"#228B22\",\n seagreen: \"#2E8B57\",\n darkslategray: \"#2F4F4F\",\n limegreen: \"#32CD32\",\n mediumseagreen: \"#3CB371\",\n turquoise: \"#40E0D0\",\n royalblue: \"#4169E1\",\n steelblue: \"#4682B4\",\n darkslateblue: \"#483D8B\",\n mediumturquoise: \"#48D1CC\",\n indigo: \"#4B0082\",\n darkolivegreen: \"#556B2F\",\n cadetblue: \"#5F9EA0\",\n cornflowerblue: \"#6495ED\",\n mediumaquamarine: \"#66CDAA\",\n dimgray: \"#696969\",\n slateblue: \"#6A5ACD\",\n olivedrab: \"#6B8E23\",\n slategray: \"#708090\",\n lightslategray: \"#778899\",\n mediumslateblue: \"#7B68EE\",\n lawngreen: \"#7CFC00\",\n chartreuse: \"#7FFF00\",\n aquamarine: \"#7FFFD4\",\n maroon: \"#800000\",\n purple: \"#800080\",\n olive: \"#808000\",\n gray: \"#808080\",\n skyblue: \"#87CEEB\",\n lightskyblue: \"#87CEFA\",\n blueviolet: \"#8A2BE2\",\n darkred: \"#8B0000\",\n darkmagenta: \"#8B008B\",\n saddlebrown: \"#8B4513\",\n darkseagreen: \"#8FBC8F\",\n lightgreen: \"#90EE90\",\n mediumpurple: \"#9370D8\",\n darkviolet: \"#9400D3\",\n palegreen: \"#98FB98\",\n darkorchid: \"#9932CC\",\n yellowgreen: \"#9ACD32\",\n sienna: \"#A0522D\",\n brown: \"#A52A2A\",\n darkgray: \"#A9A9A9\",\n lightblue: \"#ADD8E6\",\n greenyellow: \"#ADFF2F\",\n paleturquoise: \"#AFEEEE\",\n lightsteelblue: \"#B0C4DE\",\n powderblue: \"#B0E0E6\",\n firebrick: \"#B22222\",\n darkgoldenrod: \"#B8860B\",\n mediumorchid: \"#BA55D3\",\n rosybrown: \"#BC8F8F\",\n darkkhaki: \"#BDB76B\",\n silver: \"#C0C0C0\",\n mediumvioletred: \"#C71585\",\n indianred: \"#CD5C5C\",\n peru: \"#CD853F\",\n chocolate: \"#D2691E\",\n tan: \"#D2B48C\",\n lightgrey: \"#D3D3D3\",\n palevioletred: \"#D87093\",\n thistle: \"#D8BFD8\",\n orchid: \"#DA70D6\",\n goldenrod: \"#DAA520\",\n crimson: \"#DC143C\",\n gainsboro: \"#DCDCDC\",\n plum: \"#DDA0DD\",\n burlywood: \"#DEB887\",\n lightcyan: \"#E0FFFF\",\n lavender: \"#E6E6FA\",\n darksalmon: \"#E9967A\",\n violet: \"#EE82EE\",\n palegoldenrod: \"#EEE8AA\",\n lightcoral: \"#F08080\",\n khaki: \"#F0E68C\",\n aliceblue: \"#F0F8FF\",\n honeydew: \"#F0FFF0\",\n azure: \"#F0FFFF\",\n sandybrown: \"#F4A460\",\n wheat: \"#F5DEB3\",\n beige: \"#F5F5DC\",\n whitesmoke: \"#F5F5F5\",\n mintcream: \"#F5FFFA\",\n ghostwhite: \"#F8F8FF\",\n salmon: \"#FA8072\",\n antiquewhite: \"#FAEBD7\",\n linen: \"#FAF0E6\",\n lightgoldenrodyellow: \"#FAFAD2\",\n oldlace: \"#FDF5E6\",\n red: \"#FF0000\",\n fuchsia: \"#FF00FF\",\n magenta: \"#FF00FF\",\n deeppink: \"#FF1493\",\n orangered: \"#FF4500\",\n tomato: \"#FF6347\",\n hotpink: \"#FF69B4\",\n coral: \"#FF7F50\",\n darkorange: \"#FF8C00\",\n lightsalmon: \"#FFA07A\",\n orange: \"#FFA500\",\n lightpink: \"#FFB6C1\",\n pink: \"#FFC0CB\",\n gold: \"#FFD700\",\n peachpuff: \"#FFDAB9\",\n navajowhite: \"#FFDEAD\",\n moccasin: \"#FFE4B5\",\n bisque: \"#FFE4C4\",\n mistyrose: \"#FFE4E1\",\n blanchedalmond: \"#FFEBCD\",\n papayawhip: \"#FFEFD5\",\n lavenderblush: \"#FFF0F5\",\n seashell: \"#FFF5EE\",\n cornsilk: \"#FFF8DC\",\n lemonchiffon: \"#FFFACD\",\n floralwhite: \"#FFFAF0\",\n snow: \"#FFFAFA\",\n yellow: \"#FFFF00\",\n lightyellow: \"#FFFFE0\",\n ivory: \"#FFFFF0\",\n white: \"#FFFFFF\",\n};\n\n/**\n * @param {number} [pixelRatio=1]\n */\nlet ColorPicker$1 = class ColorPicker {\n /**\n * @param {number} [pixelRatio=1]\n */\n constructor(pixelRatio = 1) {\n this.pixelRatio = pixelRatio;\n this.generated = false;\n this.centerCoordinates = { x: 289 / 2, y: 289 / 2 };\n this.r = 289 * 0.49;\n this.color = { r: 255, g: 255, b: 255, a: 1.0 };\n this.hueCircle = undefined;\n this.initialColor = { r: 255, g: 255, b: 255, a: 1.0 };\n this.previousColor = undefined;\n this.applied = false;\n\n // bound by\n this.updateCallback = () => {};\n this.closeCallback = () => {};\n\n // create all DOM elements\n this._create();\n }\n\n /**\n * this inserts the colorPicker into a div from the DOM\n *\n * @param {Element} container\n */\n insertTo(container) {\n if (this.hammer !== undefined) {\n this.hammer.destroy();\n this.hammer = undefined;\n }\n this.container = container;\n this.container.appendChild(this.frame);\n this._bindHammer();\n\n this._setSize();\n }\n\n /**\n * the callback is executed on apply and save. Bind it to the application\n *\n * @param {Function} callback\n */\n setUpdateCallback(callback) {\n if (typeof callback === \"function\") {\n this.updateCallback = callback;\n } else {\n throw new Error(\n \"Function attempted to set as colorPicker update callback is not a function.\"\n );\n }\n }\n\n /**\n * the callback is executed on apply and save. Bind it to the application\n *\n * @param {Function} callback\n */\n setCloseCallback(callback) {\n if (typeof callback === \"function\") {\n this.closeCallback = callback;\n } else {\n throw new Error(\n \"Function attempted to set as colorPicker closing callback is not a function.\"\n );\n }\n }\n\n /**\n *\n * @param {string} color\n * @returns {string}\n * @private\n */\n _isColorString(color) {\n if (typeof color === \"string\") {\n return htmlColors[color];\n }\n }\n\n /**\n * Set the color of the colorPicker\n * Supported formats:\n * 'red' --> HTML color string\n * '#ffffff' --> hex string\n * 'rgb(255,255,255)' --> rgb string\n * 'rgba(255,255,255,1.0)' --> rgba string\n * {r:255,g:255,b:255} --> rgb object\n * {r:255,g:255,b:255,a:1.0} --> rgba object\n *\n * @param {string | object} color\n * @param {boolean} [setInitial=true]\n */\n setColor(color, setInitial = true) {\n if (color === \"none\") {\n return;\n }\n\n let rgba;\n\n // if a html color shorthand is used, convert to hex\n const htmlColor = this._isColorString(color);\n if (htmlColor !== undefined) {\n color = htmlColor;\n }\n\n // check format\n if (isString(color) === true) {\n if (isValidRGB(color) === true) {\n const rgbaArray = color\n .substr(4)\n .substr(0, color.length - 5)\n .split(\",\");\n rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1.0 };\n } else if (isValidRGBA(color) === true) {\n const rgbaArray = color\n .substr(5)\n .substr(0, color.length - 6)\n .split(\",\");\n rgba = {\n r: rgbaArray[0],\n g: rgbaArray[1],\n b: rgbaArray[2],\n a: rgbaArray[3],\n };\n } else if (isValidHex(color) === true) {\n const rgbObj = hexToRGB(color);\n rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1.0 };\n }\n } else {\n if (color instanceof Object) {\n if (\n color.r !== undefined &&\n color.g !== undefined &&\n color.b !== undefined\n ) {\n const alpha = color.a !== undefined ? color.a : \"1.0\";\n rgba = { r: color.r, g: color.g, b: color.b, a: alpha };\n }\n }\n }\n\n // set color\n if (rgba === undefined) {\n throw new Error(\n \"Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: \" +\n JSON.stringify(color)\n );\n } else {\n this._setColor(rgba, setInitial);\n }\n }\n\n /**\n * this shows the color picker.\n * The hue circle is constructed once and stored.\n */\n show() {\n if (this.closeCallback !== undefined) {\n this.closeCallback();\n this.closeCallback = undefined;\n }\n\n this.applied = false;\n this.frame.style.display = \"block\";\n this._generateHueCircle();\n }\n\n // ------------------------------------------ PRIVATE ----------------------------- //\n\n /**\n * Hide the picker. Is called by the cancel button.\n * Optional boolean to store the previous color for easy access later on.\n *\n * @param {boolean} [storePrevious=true]\n * @private\n */\n _hide(storePrevious = true) {\n // store the previous color for next time;\n if (storePrevious === true) {\n this.previousColor = Object.assign({}, this.color);\n }\n\n if (this.applied === true) {\n this.updateCallback(this.initialColor);\n }\n\n this.frame.style.display = \"none\";\n\n // call the closing callback, restoring the onclick method.\n // this is in a setTimeout because it will trigger the show again before the click is done.\n setTimeout(() => {\n if (this.closeCallback !== undefined) {\n this.closeCallback();\n this.closeCallback = undefined;\n }\n }, 0);\n }\n\n /**\n * bound to the save button. Saves and hides.\n *\n * @private\n */\n _save() {\n this.updateCallback(this.color);\n this.applied = false;\n this._hide();\n }\n\n /**\n * Bound to apply button. Saves but does not close. Is undone by the cancel button.\n *\n * @private\n */\n _apply() {\n this.applied = true;\n this.updateCallback(this.color);\n this._updatePicker(this.color);\n }\n\n /**\n * load the color from the previous session.\n *\n * @private\n */\n _loadLast() {\n if (this.previousColor !== undefined) {\n this.setColor(this.previousColor, false);\n } else {\n alert(\"There is no last color to load...\");\n }\n }\n\n /**\n * set the color, place the picker\n *\n * @param {object} rgba\n * @param {boolean} [setInitial=true]\n * @private\n */\n _setColor(rgba, setInitial = true) {\n // store the initial color\n if (setInitial === true) {\n this.initialColor = Object.assign({}, rgba);\n }\n\n this.color = rgba;\n const hsv = RGBToHSV(rgba.r, rgba.g, rgba.b);\n\n const angleConvert = 2 * Math.PI;\n const radius = this.r * hsv.s;\n const x =\n this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h);\n const y =\n this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h);\n\n this.colorPickerSelector.style.left =\n x - 0.5 * this.colorPickerSelector.clientWidth + \"px\";\n this.colorPickerSelector.style.top =\n y - 0.5 * this.colorPickerSelector.clientHeight + \"px\";\n\n this._updatePicker(rgba);\n }\n\n /**\n * bound to opacity control\n *\n * @param {number} value\n * @private\n */\n _setOpacity(value) {\n this.color.a = value / 100;\n this._updatePicker(this.color);\n }\n\n /**\n * bound to brightness control\n *\n * @param {number} value\n * @private\n */\n _setBrightness(value) {\n const hsv = RGBToHSV(this.color.r, this.color.g, this.color.b);\n hsv.v = value / 100;\n const rgba = HSVToRGB(hsv.h, hsv.s, hsv.v);\n rgba[\"a\"] = this.color.a;\n this.color = rgba;\n this._updatePicker();\n }\n\n /**\n * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing.\n *\n * @param {object} rgba\n * @private\n */\n _updatePicker(rgba = this.color) {\n const hsv = RGBToHSV(rgba.r, rgba.g, rgba.b);\n const ctx = this.colorPickerCanvas.getContext(\"2d\");\n if (this.pixelRation === undefined) {\n this.pixelRatio =\n (window.devicePixelRatio || 1) /\n (ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1);\n }\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n\n // clear the canvas\n const w = this.colorPickerCanvas.clientWidth;\n const h = this.colorPickerCanvas.clientHeight;\n ctx.clearRect(0, 0, w, h);\n\n ctx.putImageData(this.hueCircle, 0, 0);\n ctx.fillStyle = \"rgba(0,0,0,\" + (1 - hsv.v) + \")\";\n ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);\n ctx.fill();\n\n this.brightnessRange.value = 100 * hsv.v;\n this.opacityRange.value = 100 * rgba.a;\n\n this.initialColorDiv.style.backgroundColor =\n \"rgba(\" +\n this.initialColor.r +\n \",\" +\n this.initialColor.g +\n \",\" +\n this.initialColor.b +\n \",\" +\n this.initialColor.a +\n \")\";\n this.newColorDiv.style.backgroundColor =\n \"rgba(\" +\n this.color.r +\n \",\" +\n this.color.g +\n \",\" +\n this.color.b +\n \",\" +\n this.color.a +\n \")\";\n }\n\n /**\n * used by create to set the size of the canvas.\n *\n * @private\n */\n _setSize() {\n this.colorPickerCanvas.style.width = \"100%\";\n this.colorPickerCanvas.style.height = \"100%\";\n\n this.colorPickerCanvas.width = 289 * this.pixelRatio;\n this.colorPickerCanvas.height = 289 * this.pixelRatio;\n }\n\n /**\n * create all dom elements\n * TODO: cleanup, lots of similar dom elements\n *\n * @private\n */\n _create() {\n this.frame = document.createElement(\"div\");\n this.frame.className = \"vis-color-picker\";\n\n this.colorPickerDiv = document.createElement(\"div\");\n this.colorPickerSelector = document.createElement(\"div\");\n this.colorPickerSelector.className = \"vis-selector\";\n this.colorPickerDiv.appendChild(this.colorPickerSelector);\n\n this.colorPickerCanvas = document.createElement(\"canvas\");\n this.colorPickerDiv.appendChild(this.colorPickerCanvas);\n\n if (!this.colorPickerCanvas.getContext) {\n const noCanvas = document.createElement(\"DIV\");\n noCanvas.style.color = \"red\";\n noCanvas.style.fontWeight = \"bold\";\n noCanvas.style.padding = \"10px\";\n noCanvas.innerText = \"Error: your browser does not support HTML canvas\";\n this.colorPickerCanvas.appendChild(noCanvas);\n } else {\n const ctx = this.colorPickerCanvas.getContext(\"2d\");\n this.pixelRatio =\n (window.devicePixelRatio || 1) /\n (ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1);\n this.colorPickerCanvas\n .getContext(\"2d\")\n .setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n }\n\n this.colorPickerDiv.className = \"vis-color\";\n\n this.opacityDiv = document.createElement(\"div\");\n this.opacityDiv.className = \"vis-opacity\";\n\n this.brightnessDiv = document.createElement(\"div\");\n this.brightnessDiv.className = \"vis-brightness\";\n\n this.arrowDiv = document.createElement(\"div\");\n this.arrowDiv.className = \"vis-arrow\";\n\n this.opacityRange = document.createElement(\"input\");\n try {\n this.opacityRange.type = \"range\"; // Not supported on IE9\n this.opacityRange.min = \"0\";\n this.opacityRange.max = \"100\";\n } catch (err) {\n // TODO: Add some error handling.\n }\n this.opacityRange.value = \"100\";\n this.opacityRange.className = \"vis-range\";\n\n this.brightnessRange = document.createElement(\"input\");\n try {\n this.brightnessRange.type = \"range\"; // Not supported on IE9\n this.brightnessRange.min = \"0\";\n this.brightnessRange.max = \"100\";\n } catch (err) {\n // TODO: Add some error handling.\n }\n this.brightnessRange.value = \"100\";\n this.brightnessRange.className = \"vis-range\";\n\n this.opacityDiv.appendChild(this.opacityRange);\n this.brightnessDiv.appendChild(this.brightnessRange);\n\n const me = this;\n this.opacityRange.onchange = function () {\n me._setOpacity(this.value);\n };\n this.opacityRange.oninput = function () {\n me._setOpacity(this.value);\n };\n this.brightnessRange.onchange = function () {\n me._setBrightness(this.value);\n };\n this.brightnessRange.oninput = function () {\n me._setBrightness(this.value);\n };\n\n this.brightnessLabel = document.createElement(\"div\");\n this.brightnessLabel.className = \"vis-label vis-brightness\";\n this.brightnessLabel.innerText = \"brightness:\";\n\n this.opacityLabel = document.createElement(\"div\");\n this.opacityLabel.className = \"vis-label vis-opacity\";\n this.opacityLabel.innerText = \"opacity:\";\n\n this.newColorDiv = document.createElement(\"div\");\n this.newColorDiv.className = \"vis-new-color\";\n this.newColorDiv.innerText = \"new\";\n\n this.initialColorDiv = document.createElement(\"div\");\n this.initialColorDiv.className = \"vis-initial-color\";\n this.initialColorDiv.innerText = \"initial\";\n\n this.cancelButton = document.createElement(\"div\");\n this.cancelButton.className = \"vis-button vis-cancel\";\n this.cancelButton.innerText = \"cancel\";\n this.cancelButton.onclick = this._hide.bind(this, false);\n\n this.applyButton = document.createElement(\"div\");\n this.applyButton.className = \"vis-button vis-apply\";\n this.applyButton.innerText = \"apply\";\n this.applyButton.onclick = this._apply.bind(this);\n\n this.saveButton = document.createElement(\"div\");\n this.saveButton.className = \"vis-button vis-save\";\n this.saveButton.innerText = \"save\";\n this.saveButton.onclick = this._save.bind(this);\n\n this.loadButton = document.createElement(\"div\");\n this.loadButton.className = \"vis-button vis-load\";\n this.loadButton.innerText = \"load last\";\n this.loadButton.onclick = this._loadLast.bind(this);\n\n this.frame.appendChild(this.colorPickerDiv);\n this.frame.appendChild(this.arrowDiv);\n this.frame.appendChild(this.brightnessLabel);\n this.frame.appendChild(this.brightnessDiv);\n this.frame.appendChild(this.opacityLabel);\n this.frame.appendChild(this.opacityDiv);\n this.frame.appendChild(this.newColorDiv);\n this.frame.appendChild(this.initialColorDiv);\n\n this.frame.appendChild(this.cancelButton);\n this.frame.appendChild(this.applyButton);\n this.frame.appendChild(this.saveButton);\n this.frame.appendChild(this.loadButton);\n }\n\n /**\n * bind hammer to the color picker\n *\n * @private\n */\n _bindHammer() {\n this.drag = {};\n this.pinch = {};\n this.hammer = new Hammer$1(this.colorPickerCanvas);\n this.hammer.get(\"pinch\").set({ enable: true });\n\n this.hammer.on(\"hammer.input\", (event) => {\n if (event.isFirst) {\n this._moveSelector(event);\n }\n });\n this.hammer.on(\"tap\", (event) => {\n this._moveSelector(event);\n });\n this.hammer.on(\"panstart\", (event) => {\n this._moveSelector(event);\n });\n this.hammer.on(\"panmove\", (event) => {\n this._moveSelector(event);\n });\n this.hammer.on(\"panend\", (event) => {\n this._moveSelector(event);\n });\n }\n\n /**\n * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown.\n *\n * @private\n */\n _generateHueCircle() {\n if (this.generated === false) {\n const ctx = this.colorPickerCanvas.getContext(\"2d\");\n if (this.pixelRation === undefined) {\n this.pixelRatio =\n (window.devicePixelRatio || 1) /\n (ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1);\n }\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n\n // clear the canvas\n const w = this.colorPickerCanvas.clientWidth;\n const h = this.colorPickerCanvas.clientHeight;\n ctx.clearRect(0, 0, w, h);\n\n // draw hue circle\n let x, y, hue, sat;\n this.centerCoordinates = { x: w * 0.5, y: h * 0.5 };\n this.r = 0.49 * w;\n const angleConvert = (2 * Math.PI) / 360;\n const hfac = 1 / 360;\n const sfac = 1 / this.r;\n let rgb;\n for (hue = 0; hue < 360; hue++) {\n for (sat = 0; sat < this.r; sat++) {\n x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue);\n y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue);\n rgb = HSVToRGB(hue * hfac, sat * sfac, 1);\n ctx.fillStyle = \"rgb(\" + rgb.r + \",\" + rgb.g + \",\" + rgb.b + \")\";\n ctx.fillRect(x - 0.5, y - 0.5, 2, 2);\n }\n }\n ctx.strokeStyle = \"rgba(0,0,0,1)\";\n ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r);\n ctx.stroke();\n\n this.hueCircle = ctx.getImageData(0, 0, w, h);\n }\n this.generated = true;\n }\n\n /**\n * move the selector. This is called by hammer functions.\n *\n * @param {Event} event The event\n * @private\n */\n _moveSelector(event) {\n const rect = this.colorPickerDiv.getBoundingClientRect();\n const left = event.center.x - rect.left;\n const top = event.center.y - rect.top;\n\n const centerY = 0.5 * this.colorPickerDiv.clientHeight;\n const centerX = 0.5 * this.colorPickerDiv.clientWidth;\n\n const x = left - centerX;\n const y = top - centerY;\n\n const angle = Math.atan2(x, y);\n const radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX);\n\n const newTop = Math.cos(angle) * radius + centerY;\n const newLeft = Math.sin(angle) * radius + centerX;\n\n this.colorPickerSelector.style.top =\n newTop - 0.5 * this.colorPickerSelector.clientHeight + \"px\";\n this.colorPickerSelector.style.left =\n newLeft - 0.5 * this.colorPickerSelector.clientWidth + \"px\";\n\n // set color\n let h = angle / (2 * Math.PI);\n h = h < 0 ? h + 1 : h;\n const s = radius / this.r;\n const hsv = RGBToHSV(this.color.r, this.color.g, this.color.b);\n hsv.h = h;\n hsv.s = s;\n const rgba = HSVToRGB(hsv.h, hsv.s, hsv.v);\n rgba[\"a\"] = this.color.a;\n this.color = rgba;\n\n // update previews\n this.initialColorDiv.style.backgroundColor =\n \"rgba(\" +\n this.initialColor.r +\n \",\" +\n this.initialColor.g +\n \",\" +\n this.initialColor.b +\n \",\" +\n this.initialColor.a +\n \")\";\n this.newColorDiv.style.backgroundColor =\n \"rgba(\" +\n this.color.r +\n \",\" +\n this.color.g +\n \",\" +\n this.color.b +\n \",\" +\n this.color.a +\n \")\";\n }\n};\n\n/**\n * Wrap given text (last argument) in HTML elements (all preceding arguments).\n *\n * @param {...any} rest - List of tag names followed by inner text.\n * @returns An element or a text node.\n */\nfunction wrapInTag(...rest) {\n if (rest.length < 1) {\n throw new TypeError(\"Invalid arguments.\");\n } else if (rest.length === 1) {\n return document.createTextNode(rest[0]);\n } else {\n const element = document.createElement(rest[0]);\n element.appendChild(wrapInTag(...rest.slice(1)));\n return element;\n }\n}\n\n/**\n * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options.\n * Boolean options are recognised as Boolean\n * Number options should be written as array: [default value, min value, max value, stepsize]\n * Colors should be written as array: ['color', '#ffffff']\n * Strings with should be written as array: [option1, option2, option3, ..]\n *\n * The options are matched with their counterparts in each of the modules and the values used in the configuration are\n */\nlet Configurator$1 = class Configurator {\n /**\n * @param {object} parentModule | the location where parentModule.setOptions() can be called\n * @param {object} defaultContainer | the default container of the module\n * @param {object} configureOptions | the fully configured and predefined options set found in allOptions.js\n * @param {number} pixelRatio | canvas pixel ratio\n * @param {Function} hideOption | custom logic to dynamically hide options\n */\n constructor(\n parentModule,\n defaultContainer,\n configureOptions,\n pixelRatio = 1,\n hideOption = () => false\n ) {\n this.parent = parentModule;\n this.changedOptions = [];\n this.container = defaultContainer;\n this.allowCreation = false;\n this.hideOption = hideOption;\n\n this.options = {};\n this.initialized = false;\n this.popupCounter = 0;\n this.defaultOptions = {\n enabled: false,\n filter: true,\n container: undefined,\n showButton: true,\n };\n Object.assign(this.options, this.defaultOptions);\n\n this.configureOptions = configureOptions;\n this.moduleOptions = {};\n this.domElements = [];\n this.popupDiv = {};\n this.popupLimit = 5;\n this.popupHistory = {};\n this.colorPicker = new ColorPicker$1(pixelRatio);\n this.wrapper = undefined;\n }\n\n /**\n * refresh all options.\n * Because all modules parse their options by themselves, we just use their options. We copy them here.\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n // reset the popup history because the indices may have been changed.\n this.popupHistory = {};\n this._removePopup();\n\n let enabled = true;\n if (typeof options === \"string\") {\n this.options.filter = options;\n } else if (Array.isArray(options)) {\n this.options.filter = options.join();\n } else if (typeof options === \"object\") {\n if (options == null) {\n throw new TypeError(\"options cannot be null\");\n }\n if (options.container !== undefined) {\n this.options.container = options.container;\n }\n if (options.filter !== undefined) {\n this.options.filter = options.filter;\n }\n if (options.showButton !== undefined) {\n this.options.showButton = options.showButton;\n }\n if (options.enabled !== undefined) {\n enabled = options.enabled;\n }\n } else if (typeof options === \"boolean\") {\n this.options.filter = true;\n enabled = options;\n } else if (typeof options === \"function\") {\n this.options.filter = options;\n enabled = true;\n }\n if (this.options.filter === false) {\n enabled = false;\n }\n\n this.options.enabled = enabled;\n }\n this._clean();\n }\n\n /**\n *\n * @param {object} moduleOptions\n */\n setModuleOptions(moduleOptions) {\n this.moduleOptions = moduleOptions;\n if (this.options.enabled === true) {\n this._clean();\n if (this.options.container !== undefined) {\n this.container = this.options.container;\n }\n this._create();\n }\n }\n\n /**\n * Create all DOM elements\n *\n * @private\n */\n _create() {\n this._clean();\n this.changedOptions = [];\n\n const filter = this.options.filter;\n let counter = 0;\n let show = false;\n for (const option in this.configureOptions) {\n if (Object.prototype.hasOwnProperty.call(this.configureOptions, option)) {\n this.allowCreation = false;\n show = false;\n if (typeof filter === \"function\") {\n show = filter(option, []);\n show =\n show ||\n this._handleObject(this.configureOptions[option], [option], true);\n } else if (filter === true || filter.indexOf(option) !== -1) {\n show = true;\n }\n\n if (show !== false) {\n this.allowCreation = true;\n\n // linebreak between categories\n if (counter > 0) {\n this._makeItem([]);\n }\n // a header for the category\n this._makeHeader(option);\n\n // get the sub options\n this._handleObject(this.configureOptions[option], [option]);\n }\n counter++;\n }\n }\n this._makeButton();\n this._push();\n //~ this.colorPicker.insertTo(this.container);\n }\n\n /**\n * draw all DOM elements on the screen\n *\n * @private\n */\n _push() {\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"vis-configuration-wrapper\";\n this.container.appendChild(this.wrapper);\n for (let i = 0; i < this.domElements.length; i++) {\n this.wrapper.appendChild(this.domElements[i]);\n }\n\n this._showPopupIfNeeded();\n }\n\n /**\n * delete all DOM elements\n *\n * @private\n */\n _clean() {\n for (let i = 0; i < this.domElements.length; i++) {\n this.wrapper.removeChild(this.domElements[i]);\n }\n\n if (this.wrapper !== undefined) {\n this.container.removeChild(this.wrapper);\n this.wrapper = undefined;\n }\n this.domElements = [];\n\n this._removePopup();\n }\n\n /**\n * get the value from the actualOptions if it exists\n *\n * @param {Array} path | where to look for the actual option\n * @returns {*}\n * @private\n */\n _getValue(path) {\n let base = this.moduleOptions;\n for (let i = 0; i < path.length; i++) {\n if (base[path[i]] !== undefined) {\n base = base[path[i]];\n } else {\n base = undefined;\n break;\n }\n }\n return base;\n }\n\n /**\n * all option elements are wrapped in an item\n *\n * @param {Array} path | where to look for the actual option\n * @param {Array.} domElements\n * @returns {number}\n * @private\n */\n _makeItem(path, ...domElements) {\n if (this.allowCreation === true) {\n const item = document.createElement(\"div\");\n item.className =\n \"vis-configuration vis-config-item vis-config-s\" + path.length;\n domElements.forEach((element) => {\n item.appendChild(element);\n });\n this.domElements.push(item);\n return this.domElements.length;\n }\n return 0;\n }\n\n /**\n * header for major subjects\n *\n * @param {string} name\n * @private\n */\n _makeHeader(name) {\n const div = document.createElement(\"div\");\n div.className = \"vis-configuration vis-config-header\";\n div.innerText = name;\n this._makeItem([], div);\n }\n\n /**\n * make a label, if it is an object label, it gets different styling.\n *\n * @param {string} name\n * @param {Array} path | where to look for the actual option\n * @param {string} objectLabel\n * @returns {HTMLElement}\n * @private\n */\n _makeLabel(name, path, objectLabel = false) {\n const div = document.createElement(\"div\");\n div.className =\n \"vis-configuration vis-config-label vis-config-s\" + path.length;\n if (objectLabel === true) {\n while (div.firstChild) {\n div.removeChild(div.firstChild);\n }\n div.appendChild(wrapInTag(\"i\", \"b\", name));\n } else {\n div.innerText = name + \":\";\n }\n return div;\n }\n\n /**\n * make a dropdown list for multiple possible string optoins\n *\n * @param {Array.} arr\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _makeDropdown(arr, value, path) {\n const select = document.createElement(\"select\");\n select.className = \"vis-configuration vis-config-select\";\n let selectedValue = 0;\n if (value !== undefined) {\n if (arr.indexOf(value) !== -1) {\n selectedValue = arr.indexOf(value);\n }\n }\n\n for (let i = 0; i < arr.length; i++) {\n const option = document.createElement(\"option\");\n option.value = arr[i];\n if (i === selectedValue) {\n option.selected = \"selected\";\n }\n option.innerText = arr[i];\n select.appendChild(option);\n }\n\n const me = this;\n select.onchange = function () {\n me._update(this.value, path);\n };\n\n const label = this._makeLabel(path[path.length - 1], path);\n this._makeItem(path, label, select);\n }\n\n /**\n * make a range object for numeric options\n *\n * @param {Array.} arr\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _makeRange(arr, value, path) {\n const defaultValue = arr[0];\n const min = arr[1];\n const max = arr[2];\n const step = arr[3];\n const range = document.createElement(\"input\");\n range.className = \"vis-configuration vis-config-range\";\n try {\n range.type = \"range\"; // not supported on IE9\n range.min = min;\n range.max = max;\n } catch (err) {\n // TODO: Add some error handling.\n }\n range.step = step;\n\n // set up the popup settings in case they are needed.\n let popupString = \"\";\n let popupValue = 0;\n\n if (value !== undefined) {\n const factor = 1.2;\n if (value < 0 && value * factor < min) {\n range.min = Math.ceil(value * factor);\n popupValue = range.min;\n popupString = \"range increased\";\n } else if (value / factor < min) {\n range.min = Math.ceil(value / factor);\n popupValue = range.min;\n popupString = \"range increased\";\n }\n if (value * factor > max && max !== 1) {\n range.max = Math.ceil(value * factor);\n popupValue = range.max;\n popupString = \"range increased\";\n }\n range.value = value;\n } else {\n range.value = defaultValue;\n }\n\n const input = document.createElement(\"input\");\n input.className = \"vis-configuration vis-config-rangeinput\";\n input.value = range.value;\n\n const me = this;\n range.onchange = function () {\n input.value = this.value;\n me._update(Number(this.value), path);\n };\n range.oninput = function () {\n input.value = this.value;\n };\n\n const label = this._makeLabel(path[path.length - 1], path);\n const itemIndex = this._makeItem(path, label, range, input);\n\n // if a popup is needed AND it has not been shown for this value, show it.\n if (popupString !== \"\" && this.popupHistory[itemIndex] !== popupValue) {\n this.popupHistory[itemIndex] = popupValue;\n this._setupPopup(popupString, itemIndex);\n }\n }\n\n /**\n * make a button object\n *\n * @private\n */\n _makeButton() {\n if (this.options.showButton === true) {\n const generateButton = document.createElement(\"div\");\n generateButton.className = \"vis-configuration vis-config-button\";\n generateButton.innerText = \"generate options\";\n generateButton.onclick = () => {\n this._printOptions();\n };\n generateButton.onmouseover = () => {\n generateButton.className = \"vis-configuration vis-config-button hover\";\n };\n generateButton.onmouseout = () => {\n generateButton.className = \"vis-configuration vis-config-button\";\n };\n\n this.optionsContainer = document.createElement(\"div\");\n this.optionsContainer.className =\n \"vis-configuration vis-config-option-container\";\n\n this.domElements.push(this.optionsContainer);\n this.domElements.push(generateButton);\n }\n }\n\n /**\n * prepare the popup\n *\n * @param {string} string\n * @param {number} index\n * @private\n */\n _setupPopup(string, index) {\n if (\n this.initialized === true &&\n this.allowCreation === true &&\n this.popupCounter < this.popupLimit\n ) {\n const div = document.createElement(\"div\");\n div.id = \"vis-configuration-popup\";\n div.className = \"vis-configuration-popup\";\n div.innerText = string;\n div.onclick = () => {\n this._removePopup();\n };\n this.popupCounter += 1;\n this.popupDiv = { html: div, index: index };\n }\n }\n\n /**\n * remove the popup from the dom\n *\n * @private\n */\n _removePopup() {\n if (this.popupDiv.html !== undefined) {\n this.popupDiv.html.parentNode.removeChild(this.popupDiv.html);\n clearTimeout(this.popupDiv.hideTimeout);\n clearTimeout(this.popupDiv.deleteTimeout);\n this.popupDiv = {};\n }\n }\n\n /**\n * Show the popup if it is needed.\n *\n * @private\n */\n _showPopupIfNeeded() {\n if (this.popupDiv.html !== undefined) {\n const correspondingElement = this.domElements[this.popupDiv.index];\n const rect = correspondingElement.getBoundingClientRect();\n this.popupDiv.html.style.left = rect.left + \"px\";\n this.popupDiv.html.style.top = rect.top - 30 + \"px\"; // 30 is the height;\n document.body.appendChild(this.popupDiv.html);\n this.popupDiv.hideTimeout = setTimeout(() => {\n this.popupDiv.html.style.opacity = 0;\n }, 1500);\n this.popupDiv.deleteTimeout = setTimeout(() => {\n this._removePopup();\n }, 1800);\n }\n }\n\n /**\n * make a checkbox for boolean options.\n *\n * @param {number} defaultValue\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _makeCheckbox(defaultValue, value, path) {\n const checkbox = document.createElement(\"input\");\n checkbox.type = \"checkbox\";\n checkbox.className = \"vis-configuration vis-config-checkbox\";\n checkbox.checked = defaultValue;\n if (value !== undefined) {\n checkbox.checked = value;\n if (value !== defaultValue) {\n if (typeof defaultValue === \"object\") {\n if (value !== defaultValue.enabled) {\n this.changedOptions.push({ path: path, value: value });\n }\n } else {\n this.changedOptions.push({ path: path, value: value });\n }\n }\n }\n\n const me = this;\n checkbox.onchange = function () {\n me._update(this.checked, path);\n };\n\n const label = this._makeLabel(path[path.length - 1], path);\n this._makeItem(path, label, checkbox);\n }\n\n /**\n * make a text input field for string options.\n *\n * @param {number} defaultValue\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _makeTextInput(defaultValue, value, path) {\n const checkbox = document.createElement(\"input\");\n checkbox.type = \"text\";\n checkbox.className = \"vis-configuration vis-config-text\";\n checkbox.value = value;\n if (value !== defaultValue) {\n this.changedOptions.push({ path: path, value: value });\n }\n\n const me = this;\n checkbox.onchange = function () {\n me._update(this.value, path);\n };\n\n const label = this._makeLabel(path[path.length - 1], path);\n this._makeItem(path, label, checkbox);\n }\n\n /**\n * make a color field with a color picker for color fields\n *\n * @param {Array.} arr\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _makeColorField(arr, value, path) {\n const defaultColor = arr[1];\n const div = document.createElement(\"div\");\n value = value === undefined ? defaultColor : value;\n\n if (value !== \"none\") {\n div.className = \"vis-configuration vis-config-colorBlock\";\n div.style.backgroundColor = value;\n } else {\n div.className = \"vis-configuration vis-config-colorBlock none\";\n }\n\n value = value === undefined ? defaultColor : value;\n div.onclick = () => {\n this._showColorPicker(value, div, path);\n };\n\n const label = this._makeLabel(path[path.length - 1], path);\n this._makeItem(path, label, div);\n }\n\n /**\n * used by the color buttons to call the color picker.\n *\n * @param {number} value\n * @param {HTMLElement} div\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _showColorPicker(value, div, path) {\n // clear the callback from this div\n div.onclick = function () {};\n\n this.colorPicker.insertTo(div);\n this.colorPicker.show();\n\n this.colorPicker.setColor(value);\n this.colorPicker.setUpdateCallback((color) => {\n const colorString =\n \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + color.a + \")\";\n div.style.backgroundColor = colorString;\n this._update(colorString, path);\n });\n\n // on close of the colorpicker, restore the callback.\n this.colorPicker.setCloseCallback(() => {\n div.onclick = () => {\n this._showColorPicker(value, div, path);\n };\n });\n }\n\n /**\n * parse an object and draw the correct items\n *\n * @param {object} obj\n * @param {Array} [path=[]] | where to look for the actual option\n * @param {boolean} [checkOnly=false]\n * @returns {boolean}\n * @private\n */\n _handleObject(obj, path = [], checkOnly = false) {\n let show = false;\n const filter = this.options.filter;\n let visibleInSet = false;\n for (const subObj in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, subObj)) {\n show = true;\n const item = obj[subObj];\n const newPath = copyAndExtendArray(path, subObj);\n if (typeof filter === \"function\") {\n show = filter(subObj, path);\n\n // if needed we must go deeper into the object.\n if (show === false) {\n if (\n !Array.isArray(item) &&\n typeof item !== \"string\" &&\n typeof item !== \"boolean\" &&\n item instanceof Object\n ) {\n this.allowCreation = false;\n show = this._handleObject(item, newPath, true);\n this.allowCreation = checkOnly === false;\n }\n }\n }\n\n if (show !== false) {\n visibleInSet = true;\n const value = this._getValue(newPath);\n\n if (Array.isArray(item)) {\n this._handleArray(item, value, newPath);\n } else if (typeof item === \"string\") {\n this._makeTextInput(item, value, newPath);\n } else if (typeof item === \"boolean\") {\n this._makeCheckbox(item, value, newPath);\n } else if (item instanceof Object) {\n // skip the options that are not enabled\n if (!this.hideOption(path, subObj, this.moduleOptions)) {\n // initially collapse options with an disabled enabled option.\n if (item.enabled !== undefined) {\n const enabledPath = copyAndExtendArray(newPath, \"enabled\");\n const enabledValue = this._getValue(enabledPath);\n if (enabledValue === true) {\n const label = this._makeLabel(subObj, newPath, true);\n this._makeItem(newPath, label);\n visibleInSet =\n this._handleObject(item, newPath) || visibleInSet;\n } else {\n this._makeCheckbox(item, enabledValue, newPath);\n }\n } else {\n const label = this._makeLabel(subObj, newPath, true);\n this._makeItem(newPath, label);\n visibleInSet =\n this._handleObject(item, newPath) || visibleInSet;\n }\n }\n } else {\n console.error(\"dont know how to handle\", item, subObj, newPath);\n }\n }\n }\n }\n return visibleInSet;\n }\n\n /**\n * handle the array type of option\n *\n * @param {Array.} arr\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _handleArray(arr, value, path) {\n if (typeof arr[0] === \"string\" && arr[0] === \"color\") {\n this._makeColorField(arr, value, path);\n if (arr[1] !== value) {\n this.changedOptions.push({ path: path, value: value });\n }\n } else if (typeof arr[0] === \"string\") {\n this._makeDropdown(arr, value, path);\n if (arr[0] !== value) {\n this.changedOptions.push({ path: path, value: value });\n }\n } else if (typeof arr[0] === \"number\") {\n this._makeRange(arr, value, path);\n if (arr[0] !== value) {\n this.changedOptions.push({ path: path, value: Number(value) });\n }\n }\n }\n\n /**\n * called to update the network with the new settings.\n *\n * @param {number} value\n * @param {Array} path | where to look for the actual option\n * @private\n */\n _update(value, path) {\n const options = this._constructOptions(value, path);\n\n if (\n this.parent.body &&\n this.parent.body.emitter &&\n this.parent.body.emitter.emit\n ) {\n this.parent.body.emitter.emit(\"configChange\", options);\n }\n this.initialized = true;\n this.parent.setOptions(options);\n }\n\n /**\n *\n * @param {string | boolean} value\n * @param {Array.} path\n * @param {{}} optionsObj\n * @returns {{}}\n * @private\n */\n _constructOptions(value, path, optionsObj = {}) {\n let pointer = optionsObj;\n\n // when dropdown boxes can be string or boolean, we typecast it into correct types\n value = value === \"true\" ? true : value;\n value = value === \"false\" ? false : value;\n\n for (let i = 0; i < path.length; i++) {\n if (path[i] !== \"global\") {\n if (pointer[path[i]] === undefined) {\n pointer[path[i]] = {};\n }\n if (i !== path.length - 1) {\n pointer = pointer[path[i]];\n } else {\n pointer[path[i]] = value;\n }\n }\n }\n return optionsObj;\n }\n\n /**\n * @private\n */\n _printOptions() {\n const options = this.getOptions();\n\n while (this.optionsContainer.firstChild) {\n this.optionsContainer.removeChild(this.optionsContainer.firstChild);\n }\n this.optionsContainer.appendChild(\n wrapInTag(\"pre\", \"const options = \" + JSON.stringify(options, null, 2))\n );\n }\n\n /**\n *\n * @returns {{}} options\n */\n getOptions() {\n const options = {};\n for (let i = 0; i < this.changedOptions.length; i++) {\n this._constructOptions(\n this.changedOptions[i].value,\n this.changedOptions[i].path,\n options\n );\n }\n return options;\n }\n};\n\n/**\n * Popup is a class to create a popup window with some text\n */\nlet Popup$1 = class Popup {\n /**\n * @param {Element} container The container object.\n * @param {string} overflowMethod How the popup should act to overflowing ('flip' or 'cap')\n */\n constructor(container, overflowMethod) {\n this.container = container;\n this.overflowMethod = overflowMethod || \"cap\";\n\n this.x = 0;\n this.y = 0;\n this.padding = 5;\n this.hidden = false;\n\n // create the frame\n this.frame = document.createElement(\"div\");\n this.frame.className = \"vis-tooltip\";\n this.container.appendChild(this.frame);\n }\n\n /**\n * @param {number} x Horizontal position of the popup window\n * @param {number} y Vertical position of the popup window\n */\n setPosition(x, y) {\n this.x = parseInt(x);\n this.y = parseInt(y);\n }\n\n /**\n * Set the content for the popup window. This can be HTML code or text.\n *\n * @param {string | Element} content\n */\n setText(content) {\n if (content instanceof Element) {\n while (this.frame.firstChild) {\n this.frame.removeChild(this.frame.firstChild);\n }\n this.frame.appendChild(content);\n } else {\n // String containing literal text, element has to be used for HTML due to\n // XSS risks associated with innerHTML (i.e. prevent XSS by accident).\n this.frame.innerText = content;\n }\n }\n\n /**\n * Show the popup window\n *\n * @param {boolean} [doShow] Show or hide the window\n */\n show(doShow) {\n if (doShow === undefined) {\n doShow = true;\n }\n\n if (doShow === true) {\n const height = this.frame.clientHeight;\n const width = this.frame.clientWidth;\n const maxHeight = this.frame.parentNode.clientHeight;\n const maxWidth = this.frame.parentNode.clientWidth;\n\n let left = 0,\n top = 0;\n\n if (this.overflowMethod == \"flip\") {\n let isLeft = false,\n isTop = true; // Where around the position it's located\n\n if (this.y - height < this.padding) {\n isTop = false;\n }\n\n if (this.x + width > maxWidth - this.padding) {\n isLeft = true;\n }\n\n if (isLeft) {\n left = this.x - width;\n } else {\n left = this.x;\n }\n\n if (isTop) {\n top = this.y - height;\n } else {\n top = this.y;\n }\n } else {\n top = this.y - height;\n if (top + height + this.padding > maxHeight) {\n top = maxHeight - height - this.padding;\n }\n if (top < this.padding) {\n top = this.padding;\n }\n\n left = this.x;\n if (left + width + this.padding > maxWidth) {\n left = maxWidth - width - this.padding;\n }\n if (left < this.padding) {\n left = this.padding;\n }\n }\n\n this.frame.style.left = left + \"px\";\n this.frame.style.top = top + \"px\";\n this.frame.style.visibility = \"visible\";\n this.hidden = false;\n } else {\n this.hide();\n }\n }\n\n /**\n * Hide the popup window\n */\n hide() {\n this.hidden = true;\n this.frame.style.left = \"0\";\n this.frame.style.top = \"0\";\n this.frame.style.visibility = \"hidden\";\n }\n\n /**\n * Remove the popup window\n */\n destroy() {\n this.frame.parentNode.removeChild(this.frame); // Remove element from DOM\n }\n};\n\nlet errorFound = false;\nlet allOptions;\n\nconst VALIDATOR_PRINT_STYLE$1 = \"background: #FFeeee; color: #dd0000\";\n\n/**\n * Used to validate options.\n */\nlet Validator$1 = class Validator {\n /**\n * Main function to be called\n *\n * @param {object} options\n * @param {object} referenceOptions\n * @param {object} subObject\n * @returns {boolean}\n * @static\n */\n static validate(options, referenceOptions, subObject) {\n errorFound = false;\n allOptions = referenceOptions;\n let usedOptions = referenceOptions;\n if (subObject !== undefined) {\n usedOptions = referenceOptions[subObject];\n }\n Validator.parse(options, usedOptions, []);\n return errorFound;\n }\n\n /**\n * Will traverse an object recursively and check every value\n *\n * @param {object} options\n * @param {object} referenceOptions\n * @param {Array} path | where to look for the actual option\n * @static\n */\n static parse(options, referenceOptions, path) {\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n Validator.check(option, options, referenceOptions, path);\n }\n }\n }\n\n /**\n * Check every value. If the value is an object, call the parse function on that object.\n *\n * @param {string} option\n * @param {object} options\n * @param {object} referenceOptions\n * @param {Array} path | where to look for the actual option\n * @static\n */\n static check(option, options, referenceOptions, path) {\n if (\n referenceOptions[option] === undefined &&\n referenceOptions.__any__ === undefined\n ) {\n Validator.getSuggestion(option, referenceOptions, path);\n return;\n }\n\n let referenceOption = option;\n let is_object = true;\n\n if (\n referenceOptions[option] === undefined &&\n referenceOptions.__any__ !== undefined\n ) {\n // NOTE: This only triggers if the __any__ is in the top level of the options object.\n // THAT'S A REALLY BAD PLACE TO ALLOW IT!!!!\n // TODO: Examine if needed, remove if possible\n\n // __any__ is a wildcard. Any value is accepted and will be further analysed by reference.\n referenceOption = \"__any__\";\n\n // if the any-subgroup is not a predefined object in the configurator,\n // we do not look deeper into the object.\n is_object = Validator.getType(options[option]) === \"object\";\n }\n\n let refOptionObj = referenceOptions[referenceOption];\n if (is_object && refOptionObj.__type__ !== undefined) {\n refOptionObj = refOptionObj.__type__;\n }\n\n Validator.checkFields(\n option,\n options,\n referenceOptions,\n referenceOption,\n refOptionObj,\n path\n );\n }\n\n /**\n *\n * @param {string} option | the option property\n * @param {object} options | The supplied options object\n * @param {object} referenceOptions | The reference options containing all options and their allowed formats\n * @param {string} referenceOption | Usually this is the same as option, except when handling an __any__ tag.\n * @param {string} refOptionObj | This is the type object from the reference options\n * @param {Array} path | where in the object is the option\n * @static\n */\n static checkFields(\n option,\n options,\n referenceOptions,\n referenceOption,\n refOptionObj,\n path\n ) {\n const log = function (message) {\n console.error(\n \"%c\" + message + Validator.printLocation(path, option),\n VALIDATOR_PRINT_STYLE$1\n );\n };\n\n const optionType = Validator.getType(options[option]);\n const refOptionType = refOptionObj[optionType];\n\n if (refOptionType !== undefined) {\n // if the type is correct, we check if it is supposed to be one of a few select values\n if (\n Validator.getType(refOptionType) === \"array\" &&\n refOptionType.indexOf(options[option]) === -1\n ) {\n log(\n 'Invalid option detected in \"' +\n option +\n '\".' +\n \" Allowed values are:\" +\n Validator.print(refOptionType) +\n ' not \"' +\n options[option] +\n '\". '\n );\n errorFound = true;\n } else if (optionType === \"object\" && referenceOption !== \"__any__\") {\n path = copyAndExtendArray(path, option);\n Validator.parse(\n options[option],\n referenceOptions[referenceOption],\n path\n );\n }\n } else if (refOptionObj[\"any\"] === undefined) {\n // type of the field is incorrect and the field cannot be any\n log(\n 'Invalid type received for \"' +\n option +\n '\". Expected: ' +\n Validator.print(Object.keys(refOptionObj)) +\n \". Received [\" +\n optionType +\n '] \"' +\n options[option] +\n '\"'\n );\n errorFound = true;\n }\n }\n\n /**\n *\n * @param {object | boolean | number | string | Array. | Date | Node | Moment | undefined | null} object\n * @returns {string}\n * @static\n */\n static getType(object) {\n const type = typeof object;\n\n if (type === \"object\") {\n if (object === null) {\n return \"null\";\n }\n if (object instanceof Boolean) {\n return \"boolean\";\n }\n if (object instanceof Number) {\n return \"number\";\n }\n if (object instanceof String) {\n return \"string\";\n }\n if (Array.isArray(object)) {\n return \"array\";\n }\n if (object instanceof Date) {\n return \"date\";\n }\n if (object.nodeType !== undefined) {\n return \"dom\";\n }\n if (object._isAMomentObject === true) {\n return \"moment\";\n }\n return \"object\";\n } else if (type === \"number\") {\n return \"number\";\n } else if (type === \"boolean\") {\n return \"boolean\";\n } else if (type === \"string\") {\n return \"string\";\n } else if (type === undefined) {\n return \"undefined\";\n }\n return type;\n }\n\n /**\n * @param {string} option\n * @param {object} options\n * @param {Array.} path\n * @static\n */\n static getSuggestion(option, options, path) {\n const localSearch = Validator.findInOptions(option, options, path, false);\n const globalSearch = Validator.findInOptions(option, allOptions, [], true);\n\n const localSearchThreshold = 8;\n const globalSearchThreshold = 4;\n\n let msg;\n if (localSearch.indexMatch !== undefined) {\n msg =\n \" in \" +\n Validator.printLocation(localSearch.path, option, \"\") +\n 'Perhaps it was incomplete? Did you mean: \"' +\n localSearch.indexMatch +\n '\"?\\n\\n';\n } else if (\n globalSearch.distance <= globalSearchThreshold &&\n localSearch.distance > globalSearch.distance\n ) {\n msg =\n \" in \" +\n Validator.printLocation(localSearch.path, option, \"\") +\n \"Perhaps it was misplaced? Matching option found at: \" +\n Validator.printLocation(\n globalSearch.path,\n globalSearch.closestMatch,\n \"\"\n );\n } else if (localSearch.distance <= localSearchThreshold) {\n msg =\n '. Did you mean \"' +\n localSearch.closestMatch +\n '\"?' +\n Validator.printLocation(localSearch.path, option);\n } else {\n msg =\n \". Did you mean one of these: \" +\n Validator.print(Object.keys(options)) +\n Validator.printLocation(path, option);\n }\n\n console.error(\n '%cUnknown option detected: \"' + option + '\"' + msg,\n VALIDATOR_PRINT_STYLE$1\n );\n errorFound = true;\n }\n\n /**\n * traverse the options in search for a match.\n *\n * @param {string} option\n * @param {object} options\n * @param {Array} path | where to look for the actual option\n * @param {boolean} [recursive=false]\n * @returns {{closestMatch: string, path: Array, distance: number}}\n * @static\n */\n static findInOptions(option, options, path, recursive = false) {\n let min = 1e9;\n let closestMatch = \"\";\n let closestMatchPath = [];\n const lowerCaseOption = option.toLowerCase();\n let indexMatch = undefined;\n for (const op in options) {\n let distance;\n if (options[op].__type__ !== undefined && recursive === true) {\n const result = Validator.findInOptions(\n option,\n options[op],\n copyAndExtendArray(path, op)\n );\n if (min > result.distance) {\n closestMatch = result.closestMatch;\n closestMatchPath = result.path;\n min = result.distance;\n indexMatch = result.indexMatch;\n }\n } else {\n if (op.toLowerCase().indexOf(lowerCaseOption) !== -1) {\n indexMatch = op;\n }\n distance = Validator.levenshteinDistance(option, op);\n if (min > distance) {\n closestMatch = op;\n closestMatchPath = copyArray(path);\n min = distance;\n }\n }\n }\n return {\n closestMatch: closestMatch,\n path: closestMatchPath,\n distance: min,\n indexMatch: indexMatch,\n };\n }\n\n /**\n * @param {Array.} path\n * @param {object} option\n * @param {string} prefix\n * @returns {string}\n * @static\n */\n static printLocation(path, option, prefix = \"Problem value found at: \\n\") {\n let str = \"\\n\\n\" + prefix + \"options = {\\n\";\n for (let i = 0; i < path.length; i++) {\n for (let j = 0; j < i + 1; j++) {\n str += \" \";\n }\n str += path[i] + \": {\\n\";\n }\n for (let j = 0; j < path.length + 1; j++) {\n str += \" \";\n }\n str += option + \"\\n\";\n for (let i = 0; i < path.length + 1; i++) {\n for (let j = 0; j < path.length - i; j++) {\n str += \" \";\n }\n str += \"}\\n\";\n }\n return str + \"\\n\\n\";\n }\n\n /**\n * @param {object} options\n * @returns {string}\n * @static\n */\n static print(options) {\n return JSON.stringify(options)\n .replace(/(\")|(\\[)|(\\])|(,\"__type__\")/g, \"\")\n .replace(/(,)/g, \", \");\n }\n\n /**\n * Compute the edit distance between the two given strings\n * http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript\n *\n * Copyright (c) 2011 Andrei Mackenzie\n *\n * 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:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * 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.\n *\n * @param {string} a\n * @param {string} b\n * @returns {Array.>}}\n * @static\n */\n static levenshteinDistance(a, b) {\n if (a.length === 0) return b.length;\n if (b.length === 0) return a.length;\n\n const matrix = [];\n\n // increment along the first column of each row\n let i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n\n // increment each column in the first row\n let j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n\n // Fill in the rest of the matrix\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) == a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1, // substitution\n Math.min(\n matrix[i][j - 1] + 1, // insertion\n matrix[i - 1][j] + 1\n )\n ); // deletion\n }\n }\n }\n\n return matrix[b.length][a.length];\n }\n};\n\nconst Activator = Activator$1;\r\nconst ColorPicker = ColorPicker$1;\r\nconst Configurator = Configurator$1;\r\nconst Hammer = Hammer$1;\r\nconst Popup = Popup$1;\r\nconst VALIDATOR_PRINT_STYLE = VALIDATOR_PRINT_STYLE$1;\r\nconst Validator = Validator$1;\n\nexport { Activator, Alea, ColorPicker, Configurator, DELETE, HSVToHex, HSVToRGB, Hammer, Popup, RGBToHSV, RGBToHex, VALIDATOR_PRINT_STYLE, Validator, addClassName, addCssText, addEventListener, binarySearchCustom, binarySearchValue, bridgeObject, copyAndExtendArray, copyArray, deepExtend, deepObjectAssign, easingFunctions, equalArray, extend, fillIfDefined, forEach, getAbsoluteLeft, getAbsoluteRight, getAbsoluteTop, getScrollBarWidth, getTarget, getType, hasParent, hexToHSV, hexToRGB, insertSort, isDate, isNumber, isObject, isString, isValidHex, isValidRGB, isValidRGBA, mergeOptions, option, overrideOpacity, parseColor, preventDefault, pureDeepObjectAssign, recursiveDOMDelete, removeClassName, removeCssText, removeEventListener, selectiveBridgeObject, selectiveDeepExtend, selectiveExtend, selectiveNotDeepExtend, throttle, toArray, topMost, updateProperty };\n//# sourceMappingURL=vis-util.js.map\n","/* eslint-disable no-prototype-builtins */\n/* eslint-disable no-unused-vars */\n/* eslint-disable no-var */\n\n/**\n * Parse a text source containing data in DOT language into a JSON object.\n * The object contains two lists: one with nodes and one with edges.\n *\n * DOT language reference: http://www.graphviz.org/doc/info/lang.html\n *\n * DOT language attributes: http://graphviz.org/content/attrs\n *\n * @param {string} data Text containing a graph in DOT-notation\n * @returns {object} graph An object containing two parameters:\n * {Object[]} nodes\n * {Object[]} edges\n *\n * -------------------------------------------\n * TODO\n * ====\n *\n * For label handling, this is an incomplete implementation. From docs (quote #3015):\n *\n * > the escape sequences \"\\n\", \"\\l\" and \"\\r\" divide the label into lines, centered,\n * > left-justified, and right-justified, respectively.\n *\n * Source: http://www.graphviz.org/content/attrs#kescString\n *\n * > As another aid for readability, dot allows double-quoted strings to span multiple physical\n * > lines using the standard C convention of a backslash immediately preceding a newline\n * > character\n * > In addition, double-quoted strings can be concatenated using a '+' operator.\n * > As HTML strings can contain newline characters, which are used solely for formatting,\n * > the language does not allow escaped newlines or concatenation operators to be used\n * > within them.\n *\n * - Currently, only '\\\\n' is handled\n * - Note that text explicitly says 'labels'; the dot parser currently handles escape\n * sequences in **all** strings.\n */\nexport function parseDOT(data) {\n dot = data;\n return parseGraph();\n}\n\n// mapping of attributes from DOT (the keys) to vis.js (the values)\nvar NODE_ATTR_MAPPING = {\n fontsize: \"font.size\",\n fontcolor: \"font.color\",\n labelfontcolor: \"font.color\",\n fontname: \"font.face\",\n color: [\"color.border\", \"color.background\"],\n fillcolor: \"color.background\",\n tooltip: \"title\",\n labeltooltip: \"title\",\n};\nvar EDGE_ATTR_MAPPING = Object.create(NODE_ATTR_MAPPING);\nEDGE_ATTR_MAPPING.color = \"color.color\";\nEDGE_ATTR_MAPPING.style = \"dashes\";\n\n// token types enumeration\nvar TOKENTYPE = {\n NULL: 0,\n DELIMITER: 1,\n IDENTIFIER: 2,\n UNKNOWN: 3,\n};\n\n// map with all delimiters\nvar DELIMITERS = {\n \"{\": true,\n \"}\": true,\n \"[\": true,\n \"]\": true,\n \";\": true,\n \"=\": true,\n \",\": true,\n\n \"->\": true,\n \"--\": true,\n};\n\nvar dot = \"\"; // current dot file\nvar index = 0; // current index in dot file\nvar c = \"\"; // current token character in expr\nvar token = \"\"; // current token\nvar tokenType = TOKENTYPE.NULL; // type of the token\n\n/**\n * Get the first character from the dot file.\n * The character is stored into the char c. If the end of the dot file is\n * reached, the function puts an empty string in c.\n */\nfunction first() {\n index = 0;\n c = dot.charAt(0);\n}\n\n/**\n * Get the next character from the dot file.\n * The character is stored into the char c. If the end of the dot file is\n * reached, the function puts an empty string in c.\n */\nfunction next() {\n index++;\n c = dot.charAt(index);\n}\n\n/**\n * Preview the next character from the dot file.\n *\n * @returns {string} cNext\n */\nfunction nextPreview() {\n return dot.charAt(index + 1);\n}\n\n/**\n * Test whether given character is alphabetic or numeric ( a-zA-Z_0-9.:# )\n *\n * @param {string} c\n * @returns {boolean} isAlphaNumeric\n */\nfunction isAlphaNumeric(c) {\n var charCode = c.charCodeAt(0);\n\n if (charCode < 47) {\n // #.\n return charCode === 35 || charCode === 46;\n }\n if (charCode < 59) {\n // 0-9 and :\n return charCode > 47;\n }\n if (charCode < 91) {\n // A-Z\n return charCode > 64;\n }\n if (charCode < 96) {\n // _\n return charCode === 95;\n }\n if (charCode < 123) {\n // a-z\n return charCode > 96;\n }\n\n return false;\n}\n\n/**\n * Merge all options of object b into object b\n *\n * @param {object} a\n * @param {object} b\n * @returns {object} a\n */\nfunction merge(a, b) {\n if (!a) {\n a = {};\n }\n\n if (b) {\n for (var name in b) {\n if (b.hasOwnProperty(name)) {\n a[name] = b[name];\n }\n }\n }\n return a;\n}\n\n/**\n * Set a value in an object, where the provided parameter name can be a\n * path with nested parameters. For example:\n *\n * var obj = {a: 2};\n * setValue(obj, 'b.c', 3); // obj = {a: 2, b: {c: 3}}\n *\n * @param {object} obj\n * @param {string} path A parameter name or dot-separated parameter path,\n * like \"color.highlight.border\".\n * @param {*} value\n */\nfunction setValue(obj, path, value) {\n var keys = path.split(\".\");\n var o = obj;\n while (keys.length) {\n var key = keys.shift();\n if (keys.length) {\n // this isn't the end point\n if (!o[key]) {\n o[key] = {};\n }\n o = o[key];\n } else {\n // this is the end point\n o[key] = value;\n }\n }\n}\n\n/**\n * Add a node to a graph object. If there is already a node with\n * the same id, their attributes will be merged.\n *\n * @param {object} graph\n * @param {object} node\n */\nfunction addNode(graph, node) {\n var i, len;\n var current = null;\n\n // find root graph (in case of subgraph)\n var graphs = [graph]; // list with all graphs from current graph to root graph\n var root = graph;\n while (root.parent) {\n graphs.push(root.parent);\n root = root.parent;\n }\n\n // find existing node (at root level) by its id\n if (root.nodes) {\n for (i = 0, len = root.nodes.length; i < len; i++) {\n if (node.id === root.nodes[i].id) {\n current = root.nodes[i];\n break;\n }\n }\n }\n\n if (!current) {\n // this is a new node\n current = {\n id: node.id,\n };\n if (graph.node) {\n // clone default attributes\n current.attr = merge(current.attr, graph.node);\n }\n }\n\n // add node to this (sub)graph and all its parent graphs\n for (i = graphs.length - 1; i >= 0; i--) {\n var g = graphs[i];\n\n if (!g.nodes) {\n g.nodes = [];\n }\n if (g.nodes.indexOf(current) === -1) {\n g.nodes.push(current);\n }\n }\n\n // merge attributes\n if (node.attr) {\n current.attr = merge(current.attr, node.attr);\n }\n}\n\n/**\n * Add an edge to a graph object\n *\n * @param {object} graph\n * @param {object} edge\n */\nfunction addEdge(graph, edge) {\n if (!graph.edges) {\n graph.edges = [];\n }\n graph.edges.push(edge);\n if (graph.edge) {\n var attr = merge({}, graph.edge); // clone default attributes\n edge.attr = merge(attr, edge.attr); // merge attributes\n }\n}\n\n/**\n * Create an edge to a graph object\n *\n * @param {object} graph\n * @param {string | number | object} from\n * @param {string | number | object} to\n * @param {string} type\n * @param {object | null} attr\n * @returns {object} edge\n */\nfunction createEdge(graph, from, to, type, attr) {\n var edge = {\n from: from,\n to: to,\n type: type,\n };\n\n if (graph.edge) {\n edge.attr = merge({}, graph.edge); // clone default attributes\n }\n edge.attr = merge(edge.attr || {}, attr); // merge attributes\n\n // Move arrows attribute from attr to edge temporally created in\n // parseAttributeList().\n if (attr != null) {\n if (attr.hasOwnProperty(\"arrows\") && attr[\"arrows\"] != null) {\n edge[\"arrows\"] = { to: { enabled: true, type: attr.arrows.type } };\n attr[\"arrows\"] = null;\n }\n }\n return edge;\n}\n\n/**\n * Get next token in the current dot file.\n * The token and token type are available as token and tokenType\n */\nfunction getToken() {\n tokenType = TOKENTYPE.NULL;\n token = \"\";\n\n // skip over whitespaces\n while (c === \" \" || c === \"\\t\" || c === \"\\n\" || c === \"\\r\") {\n // space, tab, enter\n next();\n }\n\n do {\n var isComment = false;\n\n // skip comment\n if (c === \"#\") {\n // find the previous non-space character\n var i = index - 1;\n while (dot.charAt(i) === \" \" || dot.charAt(i) === \"\\t\") {\n i--;\n }\n if (dot.charAt(i) === \"\\n\" || dot.charAt(i) === \"\") {\n // the # is at the start of a line, this is indeed a line comment\n while (c != \"\" && c != \"\\n\") {\n next();\n }\n isComment = true;\n }\n }\n if (c === \"/\" && nextPreview() === \"/\") {\n // skip line comment\n while (c != \"\" && c != \"\\n\") {\n next();\n }\n isComment = true;\n }\n if (c === \"/\" && nextPreview() === \"*\") {\n // skip block comment\n while (c != \"\") {\n if (c === \"*\" && nextPreview() === \"/\") {\n // end of block comment found. skip these last two characters\n next();\n next();\n break;\n } else {\n next();\n }\n }\n isComment = true;\n }\n\n // skip over whitespaces\n while (c === \" \" || c === \"\\t\" || c === \"\\n\" || c === \"\\r\") {\n // space, tab, enter\n next();\n }\n } while (isComment);\n\n // check for end of dot file\n if (c === \"\") {\n // token is still empty\n tokenType = TOKENTYPE.DELIMITER;\n return;\n }\n\n // check for delimiters consisting of 2 characters\n var c2 = c + nextPreview();\n if (DELIMITERS[c2]) {\n tokenType = TOKENTYPE.DELIMITER;\n token = c2;\n next();\n next();\n return;\n }\n\n // check for delimiters consisting of 1 character\n if (DELIMITERS[c]) {\n tokenType = TOKENTYPE.DELIMITER;\n token = c;\n next();\n return;\n }\n\n // check for an identifier (number or string)\n // TODO: more precise parsing of numbers/strings (and the port separator ':')\n if (isAlphaNumeric(c) || c === \"-\") {\n token += c;\n next();\n\n while (isAlphaNumeric(c)) {\n token += c;\n next();\n }\n if (token === \"false\") {\n token = false; // convert to boolean\n } else if (token === \"true\") {\n token = true; // convert to boolean\n } else if (!isNaN(Number(token))) {\n token = Number(token); // convert to number\n }\n tokenType = TOKENTYPE.IDENTIFIER;\n return;\n }\n\n // check for a string enclosed by double quotes\n if (c === '\"') {\n next();\n while (c != \"\" && (c != '\"' || (c === '\"' && nextPreview() === '\"'))) {\n if (c === '\"') {\n // skip the escape character\n token += c;\n next();\n } else if (c === \"\\\\\" && nextPreview() === \"n\") {\n // Honor a newline escape sequence\n token += \"\\n\";\n next();\n } else {\n token += c;\n }\n next();\n }\n if (c != '\"') {\n throw newSyntaxError('End of string \" expected');\n }\n next();\n tokenType = TOKENTYPE.IDENTIFIER;\n return;\n }\n\n // something unknown is found, wrong characters, a syntax error\n tokenType = TOKENTYPE.UNKNOWN;\n while (c != \"\") {\n token += c;\n next();\n }\n throw new SyntaxError('Syntax error in part \"' + chop(token, 30) + '\"');\n}\n\n/**\n * Parse a graph.\n *\n * @returns {object} graph\n */\nfunction parseGraph() {\n var graph = {};\n\n first();\n getToken();\n\n // optional strict keyword\n if (token === \"strict\") {\n graph.strict = true;\n getToken();\n }\n\n // graph or digraph keyword\n if (token === \"graph\" || token === \"digraph\") {\n graph.type = token;\n getToken();\n }\n\n // optional graph id\n if (tokenType === TOKENTYPE.IDENTIFIER) {\n graph.id = token;\n getToken();\n }\n\n // open angle bracket\n if (token != \"{\") {\n throw newSyntaxError(\"Angle bracket { expected\");\n }\n getToken();\n\n // statements\n parseStatements(graph);\n\n // close angle bracket\n if (token != \"}\") {\n throw newSyntaxError(\"Angle bracket } expected\");\n }\n getToken();\n\n // end of file\n if (token !== \"\") {\n throw newSyntaxError(\"End of file expected\");\n }\n getToken();\n\n // remove temporary default options\n delete graph.node;\n delete graph.edge;\n delete graph.graph;\n\n return graph;\n}\n\n/**\n * Parse a list with statements.\n *\n * @param {object} graph\n */\nfunction parseStatements(graph) {\n while (token !== \"\" && token != \"}\") {\n parseStatement(graph);\n if (token === \";\") {\n getToken();\n }\n }\n}\n\n/**\n * Parse a single statement. Can be a an attribute statement, node\n * statement, a series of node statements and edge statements, or a\n * parameter.\n *\n * @param {object} graph\n */\nfunction parseStatement(graph) {\n // parse subgraph\n var subgraph = parseSubgraph(graph);\n if (subgraph) {\n // edge statements\n parseEdge(graph, subgraph);\n\n return;\n }\n\n // parse an attribute statement\n var attr = parseAttributeStatement(graph);\n if (attr) {\n return;\n }\n\n // parse node\n if (tokenType != TOKENTYPE.IDENTIFIER) {\n throw newSyntaxError(\"Identifier expected\");\n }\n var id = token; // id can be a string or a number\n getToken();\n\n if (token === \"=\") {\n // id statement\n getToken();\n if (tokenType != TOKENTYPE.IDENTIFIER) {\n throw newSyntaxError(\"Identifier expected\");\n }\n graph[id] = token;\n getToken();\n // TODO: implement comma separated list with \"a_list: ID=ID [','] [a_list] \"\n } else {\n parseNodeStatement(graph, id);\n }\n}\n\n/**\n * Parse a subgraph\n *\n * @param {object} graph parent graph object\n * @returns {object | null} subgraph\n */\nfunction parseSubgraph(graph) {\n var subgraph = null;\n\n // optional subgraph keyword\n if (token === \"subgraph\") {\n subgraph = {};\n subgraph.type = \"subgraph\";\n getToken();\n\n // optional graph id\n if (tokenType === TOKENTYPE.IDENTIFIER) {\n subgraph.id = token;\n getToken();\n }\n }\n\n // open angle bracket\n if (token === \"{\") {\n getToken();\n\n if (!subgraph) {\n subgraph = {};\n }\n subgraph.parent = graph;\n subgraph.node = graph.node;\n subgraph.edge = graph.edge;\n subgraph.graph = graph.graph;\n\n // statements\n parseStatements(subgraph);\n\n // close angle bracket\n if (token != \"}\") {\n throw newSyntaxError(\"Angle bracket } expected\");\n }\n getToken();\n\n // remove temporary default options\n delete subgraph.node;\n delete subgraph.edge;\n delete subgraph.graph;\n delete subgraph.parent;\n\n // register at the parent graph\n if (!graph.subgraphs) {\n graph.subgraphs = [];\n }\n graph.subgraphs.push(subgraph);\n }\n\n return subgraph;\n}\n\n/**\n * parse an attribute statement like \"node [shape=circle fontSize=16]\".\n * Available keywords are 'node', 'edge', 'graph'.\n * The previous list with default attributes will be replaced\n *\n * @param {object} graph\n * @returns {string | null} keyword Returns the name of the parsed attribute\n * (node, edge, graph), or null if nothing\n * is parsed.\n */\nfunction parseAttributeStatement(graph) {\n // attribute statements\n if (token === \"node\") {\n getToken();\n\n // node attributes\n graph.node = parseAttributeList();\n return \"node\";\n } else if (token === \"edge\") {\n getToken();\n\n // edge attributes\n graph.edge = parseAttributeList();\n return \"edge\";\n } else if (token === \"graph\") {\n getToken();\n\n // graph attributes\n graph.graph = parseAttributeList();\n return \"graph\";\n }\n\n return null;\n}\n\n/**\n * parse a node statement\n *\n * @param {object} graph\n * @param {string | number} id\n */\nfunction parseNodeStatement(graph, id) {\n // node statement\n var node = {\n id: id,\n };\n var attr = parseAttributeList();\n if (attr) {\n node.attr = attr;\n }\n addNode(graph, node);\n\n // edge statements\n parseEdge(graph, id);\n}\n\n/**\n * Parse an edge or a series of edges\n *\n * @param {object} graph\n * @param {string | number} from Id of the from node\n */\nfunction parseEdge(graph, from) {\n while (token === \"->\" || token === \"--\") {\n var to;\n var type = token;\n getToken();\n\n var subgraph = parseSubgraph(graph);\n if (subgraph) {\n to = subgraph;\n } else {\n if (tokenType != TOKENTYPE.IDENTIFIER) {\n throw newSyntaxError(\"Identifier or subgraph expected\");\n }\n to = token;\n addNode(graph, {\n id: to,\n });\n getToken();\n }\n\n // parse edge attributes\n var attr = parseAttributeList();\n\n // create edge\n var edge = createEdge(graph, from, to, type, attr);\n addEdge(graph, edge);\n\n from = to;\n }\n}\n\n/**\n * As explained in [1], graphviz has limitations for combination of\n * arrow[head|tail] and dir. If attribute list includes 'dir',\n * following cases just be supported.\n * 1. both or none + arrowhead, arrowtail\n * 2. forward + arrowhead (arrowtail is not affedted)\n * 3. back + arrowtail (arrowhead is not affected)\n * [1] https://www.graphviz.org/doc/info/attrs.html#h:undir_note\n *\n * This function is called from parseAttributeList() to parse 'dir'\n * attribute with given 'attr_names' and 'attr_list'.\n *\n * @param {object} attr_names Array of attribute names\n * @param {object} attr_list Array of objects of attribute set\n * @returns {object} attr_list Updated attr_list\n */\nfunction parseDirAttribute(attr_names, attr_list) {\n var i;\n if (attr_names.includes(\"dir\")) {\n var idx = {}; // get index of 'arrows' and 'dir'\n idx.arrows = {};\n for (i = 0; i < attr_list.length; i++) {\n if (attr_list[i].name === \"arrows\") {\n if (attr_list[i].value.to != null) {\n idx.arrows.to = i;\n } else if (attr_list[i].value.from != null) {\n idx.arrows.from = i;\n } else {\n throw newSyntaxError(\"Invalid value of arrows\");\n }\n } else if (attr_list[i].name === \"dir\") {\n idx.dir = i;\n }\n }\n\n // first, add default arrow shape if it is not assigned to avoid error\n var dir_type = attr_list[idx.dir].value;\n if (!attr_names.includes(\"arrows\")) {\n if (dir_type === \"both\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { to: { enabled: true } },\n });\n idx.arrows.to = attr_list.length - 1;\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { from: { enabled: true } },\n });\n idx.arrows.from = attr_list.length - 1;\n } else if (dir_type === \"forward\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { to: { enabled: true } },\n });\n idx.arrows.to = attr_list.length - 1;\n } else if (dir_type === \"back\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { from: { enabled: true } },\n });\n idx.arrows.from = attr_list.length - 1;\n } else if (dir_type === \"none\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: \"\",\n });\n idx.arrows.to = attr_list.length - 1;\n } else {\n throw newSyntaxError('Invalid dir type \"' + dir_type + '\"');\n }\n }\n\n var from_type;\n var to_type;\n // update 'arrows' attribute from 'dir'.\n if (dir_type === \"both\") {\n // both of shapes of 'from' and 'to' are given\n if (idx.arrows.to && idx.arrows.from) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n attr_list.splice(idx.arrows.from, 1);\n\n // shape of 'to' is assigned and use default to 'from'\n } else if (idx.arrows.to) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"arrow\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // only shape of 'from' is assigned and use default for 'to'\n } else if (idx.arrows.from) {\n to_type = \"arrow\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n } else if (dir_type === \"back\") {\n // given both of shapes, but use only 'from'\n if (idx.arrows.to && idx.arrows.from) {\n to_type = \"\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // given shape of 'to', but does not use it\n } else if (idx.arrows.to) {\n to_type = \"\";\n from_type = \"arrow\";\n idx.arrows.from = idx.arrows.to;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // assign given 'from' shape\n } else if (idx.arrows.from) {\n to_type = \"\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n from: {\n enabled: true,\n type: attr_list[idx.arrows.from].value.from.type,\n },\n },\n };\n } else if (dir_type === \"none\") {\n var idx_arrow;\n if (idx.arrows.to) {\n idx_arrow = idx.arrows.to;\n } else {\n idx_arrow = idx.arrows.from;\n }\n\n attr_list[idx_arrow] = {\n attr: attr_list[idx_arrow].attr,\n name: attr_list[idx_arrow].name,\n value: \"\",\n };\n } else if (dir_type === \"forward\") {\n // given both of shapes, but use only 'to'\n if (idx.arrows.to && idx.arrows.from) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // assign given 'to' shape\n } else if (idx.arrows.to) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // given shape of 'from', but does not use it\n } else if (idx.arrows.from) {\n to_type = \"arrow\";\n from_type = \"\";\n idx.arrows.to = idx.arrows.from;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: {\n enabled: true,\n type: attr_list[idx.arrows.to].value.to.type,\n },\n },\n };\n } else {\n throw newSyntaxError('Invalid dir type \"' + dir_type + '\"');\n }\n\n // remove 'dir' attribute no need anymore\n attr_list.splice(idx.dir, 1);\n }\n return attr_list;\n}\n\n/**\n * Parse a set with attributes,\n * for example [label=\"1.000\", shape=solid]\n *\n * @returns {object | null} attr\n */\nfunction parseAttributeList() {\n var i;\n var attr = null;\n\n // edge styles of dot and vis\n var edgeStyles = {\n dashed: true,\n solid: false,\n dotted: [1, 5],\n };\n\n /**\n * Define arrow types.\n * vis currently supports types defined in 'arrowTypes'.\n * Details of arrow shapes are described in\n * http://www.graphviz.org/content/arrow-shapes\n */\n var arrowTypes = {\n dot: \"circle\",\n box: \"box\",\n crow: \"crow\",\n curve: \"curve\",\n icurve: \"inv_curve\",\n normal: \"triangle\",\n inv: \"inv_triangle\",\n diamond: \"diamond\",\n tee: \"bar\",\n vee: \"vee\",\n };\n\n /**\n * 'attr_list' contains attributes for checking if some of them are affected\n * later. For instance, both of 'arrowhead' and 'dir' (edge style defined\n * in DOT) make changes to 'arrows' attribute in vis.\n */\n var attr_list = new Array();\n var attr_names = new Array(); // used for checking the case.\n\n // parse attributes\n while (token === \"[\") {\n getToken();\n attr = {};\n while (token !== \"\" && token != \"]\") {\n if (tokenType != TOKENTYPE.IDENTIFIER) {\n throw newSyntaxError(\"Attribute name expected\");\n }\n var name = token;\n\n getToken();\n if (token != \"=\") {\n throw newSyntaxError(\"Equal sign = expected\");\n }\n getToken();\n\n if (tokenType != TOKENTYPE.IDENTIFIER) {\n throw newSyntaxError(\"Attribute value expected\");\n }\n var value = token;\n\n // convert from dot style to vis\n if (name === \"style\") {\n value = edgeStyles[value];\n }\n\n var arrowType;\n if (name === \"arrowhead\") {\n arrowType = arrowTypes[value];\n name = \"arrows\";\n value = { to: { enabled: true, type: arrowType } };\n }\n\n if (name === \"arrowtail\") {\n arrowType = arrowTypes[value];\n name = \"arrows\";\n value = { from: { enabled: true, type: arrowType } };\n }\n\n attr_list.push({ attr: attr, name: name, value: value });\n attr_names.push(name);\n\n getToken();\n if (token == \",\") {\n getToken();\n }\n }\n\n if (token != \"]\") {\n throw newSyntaxError(\"Bracket ] expected\");\n }\n getToken();\n }\n\n /**\n * As explained in [1], graphviz has limitations for combination of\n * arrow[head|tail] and dir. If attribute list includes 'dir',\n * following cases just be supported.\n * 1. both or none + arrowhead, arrowtail\n * 2. forward + arrowhead (arrowtail is not affedted)\n * 3. back + arrowtail (arrowhead is not affected)\n * [1] https://www.graphviz.org/doc/info/attrs.html#h:undir_note\n */\n if (attr_names.includes(\"dir\")) {\n var idx = {}; // get index of 'arrows' and 'dir'\n idx.arrows = {};\n for (i = 0; i < attr_list.length; i++) {\n if (attr_list[i].name === \"arrows\") {\n if (attr_list[i].value.to != null) {\n idx.arrows.to = i;\n } else if (attr_list[i].value.from != null) {\n idx.arrows.from = i;\n } else {\n throw newSyntaxError(\"Invalid value of arrows\");\n }\n } else if (attr_list[i].name === \"dir\") {\n idx.dir = i;\n }\n }\n\n // first, add default arrow shape if it is not assigned to avoid error\n var dir_type = attr_list[idx.dir].value;\n if (!attr_names.includes(\"arrows\")) {\n if (dir_type === \"both\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { to: { enabled: true } },\n });\n idx.arrows.to = attr_list.length - 1;\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { from: { enabled: true } },\n });\n idx.arrows.from = attr_list.length - 1;\n } else if (dir_type === \"forward\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { to: { enabled: true } },\n });\n idx.arrows.to = attr_list.length - 1;\n } else if (dir_type === \"back\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: { from: { enabled: true } },\n });\n idx.arrows.from = attr_list.length - 1;\n } else if (dir_type === \"none\") {\n attr_list.push({\n attr: attr_list[idx.dir].attr,\n name: \"arrows\",\n value: \"\",\n });\n idx.arrows.to = attr_list.length - 1;\n } else {\n throw newSyntaxError('Invalid dir type \"' + dir_type + '\"');\n }\n }\n\n var from_type;\n var to_type;\n // update 'arrows' attribute from 'dir'.\n if (dir_type === \"both\") {\n // both of shapes of 'from' and 'to' are given\n if (idx.arrows.to && idx.arrows.from) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n attr_list.splice(idx.arrows.from, 1);\n\n // shape of 'to' is assigned and use default to 'from'\n } else if (idx.arrows.to) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"arrow\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // only shape of 'from' is assigned and use default for 'to'\n } else if (idx.arrows.from) {\n to_type = \"arrow\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n } else if (dir_type === \"back\") {\n // given both of shapes, but use only 'from'\n if (idx.arrows.to && idx.arrows.from) {\n to_type = \"\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // given shape of 'to', but does not use it\n } else if (idx.arrows.to) {\n to_type = \"\";\n from_type = \"arrow\";\n idx.arrows.from = idx.arrows.to;\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // assign given 'from' shape\n } else if (idx.arrows.from) {\n to_type = \"\";\n from_type = attr_list[idx.arrows.from].value.from.type;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n\n attr_list[idx.arrows.from] = {\n attr: attr_list[idx.arrows.from].attr,\n name: attr_list[idx.arrows.from].name,\n value: {\n from: {\n enabled: true,\n type: attr_list[idx.arrows.from].value.from.type,\n },\n },\n };\n } else if (dir_type === \"none\") {\n var idx_arrow;\n if (idx.arrows.to) {\n idx_arrow = idx.arrows.to;\n } else {\n idx_arrow = idx.arrows.from;\n }\n\n attr_list[idx_arrow] = {\n attr: attr_list[idx_arrow].attr,\n name: attr_list[idx_arrow].name,\n value: \"\",\n };\n } else if (dir_type === \"forward\") {\n // given both of shapes, but use only 'to'\n if (idx.arrows.to && idx.arrows.from) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // assign given 'to' shape\n } else if (idx.arrows.to) {\n to_type = attr_list[idx.arrows.to].value.to.type;\n from_type = \"\";\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n\n // given shape of 'from', but does not use it\n } else if (idx.arrows.from) {\n to_type = \"arrow\";\n from_type = \"\";\n idx.arrows.to = idx.arrows.from;\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: to_type },\n from: { enabled: true, type: from_type },\n },\n };\n }\n\n attr_list[idx.arrows.to] = {\n attr: attr_list[idx.arrows.to].attr,\n name: attr_list[idx.arrows.to].name,\n value: {\n to: { enabled: true, type: attr_list[idx.arrows.to].value.to.type },\n },\n };\n } else {\n throw newSyntaxError('Invalid dir type \"' + dir_type + '\"');\n }\n\n // remove 'dir' attribute no need anymore\n attr_list.splice(idx.dir, 1);\n }\n\n // parse 'penwidth'\n var nof_attr_list;\n if (attr_names.includes(\"penwidth\")) {\n var tmp_attr_list = [];\n\n nof_attr_list = attr_list.length;\n for (i = 0; i < nof_attr_list; i++) {\n // exclude 'width' from attr_list if 'penwidth' exists\n if (attr_list[i].name !== \"width\") {\n if (attr_list[i].name === \"penwidth\") {\n attr_list[i].name = \"width\";\n }\n tmp_attr_list.push(attr_list[i]);\n }\n }\n attr_list = tmp_attr_list;\n }\n\n nof_attr_list = attr_list.length;\n for (i = 0; i < nof_attr_list; i++) {\n setValue(attr_list[i].attr, attr_list[i].name, attr_list[i].value);\n }\n\n return attr;\n}\n\n/**\n * Create a syntax error with extra information on current token and index.\n *\n * @param {string} message\n * @returns {SyntaxError} err\n */\nfunction newSyntaxError(message) {\n return new SyntaxError(\n message + ', got \"' + chop(token, 30) + '\" (char ' + index + \")\"\n );\n}\n\n/**\n * Chop off text after a maximum length\n *\n * @param {string} text\n * @param {number} maxLength\n * @returns {string}\n */\nfunction chop(text, maxLength) {\n return text.length <= maxLength ? text : text.substr(0, 27) + \"...\";\n}\n\n/**\n * Execute a function fn for each pair of elements in two arrays\n *\n * @param {Array | *} array1\n * @param {Array | *} array2\n * @param {Function} fn\n */\nfunction forEach2(array1, array2, fn) {\n if (Array.isArray(array1)) {\n array1.forEach(function (elem1) {\n if (Array.isArray(array2)) {\n array2.forEach(function (elem2) {\n fn(elem1, elem2);\n });\n } else {\n fn(elem1, array2);\n }\n });\n } else {\n if (Array.isArray(array2)) {\n array2.forEach(function (elem2) {\n fn(array1, elem2);\n });\n } else {\n fn(array1, array2);\n }\n }\n}\n\n/**\n * Set a nested property on an object\n * When nested objects are missing, they will be created.\n * For example setProp({}, 'font.color', 'red') will return {font: {color: 'red'}}\n *\n * @param {object} object\n * @param {string} path A dot separated string like 'font.color'\n * @param {*} value Value for the property\n * @returns {object} Returns the original object, allows for chaining.\n */\nfunction setProp(object, path, value) {\n var names = path.split(\".\");\n var prop = names.pop();\n\n // traverse over the nested objects\n var obj = object;\n for (var i = 0; i < names.length; i++) {\n var name = names[i];\n if (!(name in obj)) {\n obj[name] = {};\n }\n obj = obj[name];\n }\n\n // set the property value\n obj[prop] = value;\n\n return object;\n}\n\n/**\n * Convert an object with DOT attributes to their vis.js equivalents.\n *\n * @param {object} attr Object with DOT attributes\n * @param {object} mapping\n * @returns {object} Returns an object with vis.js attributes\n */\nfunction convertAttr(attr, mapping) {\n var converted = {};\n\n for (var prop in attr) {\n if (attr.hasOwnProperty(prop)) {\n var visProp = mapping[prop];\n if (Array.isArray(visProp)) {\n visProp.forEach(function (visPropI) {\n setProp(converted, visPropI, attr[prop]);\n });\n } else if (typeof visProp === \"string\") {\n setProp(converted, visProp, attr[prop]);\n } else {\n setProp(converted, prop, attr[prop]);\n }\n }\n }\n\n return converted;\n}\n\n/**\n * Convert a string containing a graph in DOT language into a map containing\n * with nodes and edges in the format of graph.\n *\n * @param {string} data Text containing a graph in DOT-notation\n * @returns {object} graphData\n */\nexport function DOTToGraph(data) {\n // parse the DOT file\n var dotData = parseDOT(data);\n var graphData = {\n nodes: [],\n edges: [],\n options: {},\n };\n\n // copy the nodes\n if (dotData.nodes) {\n dotData.nodes.forEach(function (dotNode) {\n var graphNode = {\n id: dotNode.id,\n label: String(dotNode.label || dotNode.id),\n };\n merge(graphNode, convertAttr(dotNode.attr, NODE_ATTR_MAPPING));\n if (graphNode.image) {\n graphNode.shape = \"image\";\n }\n graphData.nodes.push(graphNode);\n });\n }\n\n // copy the edges\n if (dotData.edges) {\n /**\n * Convert an edge in DOT format to an edge with VisGraph format\n *\n * @param {object} dotEdge\n * @returns {object} graphEdge\n */\n var convertEdge = function (dotEdge) {\n var graphEdge = {\n from: dotEdge.from,\n to: dotEdge.to,\n };\n merge(graphEdge, convertAttr(dotEdge.attr, EDGE_ATTR_MAPPING));\n\n // Add arrows attribute to default styled arrow.\n // The reason why default style is not added in parseAttributeList() is\n // because only default is cleared before here.\n if (graphEdge.arrows == null && dotEdge.type === \"->\") {\n graphEdge.arrows = \"to\";\n }\n\n return graphEdge;\n };\n\n dotData.edges.forEach(function (dotEdge) {\n var from, to;\n if (dotEdge.from instanceof Object) {\n from = dotEdge.from.nodes;\n } else {\n from = {\n id: dotEdge.from,\n };\n }\n\n if (dotEdge.to instanceof Object) {\n to = dotEdge.to.nodes;\n } else {\n to = {\n id: dotEdge.to,\n };\n }\n\n if (dotEdge.from instanceof Object && dotEdge.from.edges) {\n dotEdge.from.edges.forEach(function (subEdge) {\n var graphEdge = convertEdge(subEdge);\n graphData.edges.push(graphEdge);\n });\n }\n\n forEach2(from, to, function (from, to) {\n var subEdge = createEdge(\n graphData,\n from.id,\n to.id,\n dotEdge.type,\n dotEdge.attr\n );\n var graphEdge = convertEdge(subEdge);\n graphData.edges.push(graphEdge);\n });\n\n if (dotEdge.to instanceof Object && dotEdge.to.edges) {\n dotEdge.to.edges.forEach(function (subEdge) {\n var graphEdge = convertEdge(subEdge);\n graphData.edges.push(graphEdge);\n });\n }\n });\n }\n\n // copy the options\n if (dotData.attr) {\n graphData.options = dotData.attr;\n }\n\n return graphData;\n}\n\n/* eslint-enable no-var */\n/* eslint-enable no-unused-vars */\n/* eslint-enable no-prototype-builtins */\n","export type Id = number | string;\n\nexport interface ColorObject {\n background: string;\n border: string;\n highlight: {\n background: string;\n border: string;\n };\n hover: {\n background: string;\n border: string;\n };\n}\n\nexport interface GephiData {\n nodes: GephiNode[];\n edges: GephiEdge[];\n}\nexport interface GephiParseOptions {\n fixed?: boolean;\n inheritColor?: boolean;\n parseColor?: boolean;\n}\n\nexport interface GephiNode {\n id: Id;\n\n attributes?: { title?: string };\n color?: string;\n label?: string;\n size?: number;\n title?: string;\n x?: number;\n y?: number;\n}\nexport interface GephiEdge {\n id: Id;\n source: Id;\n target: Id;\n\n attributes?: { title?: string };\n color?: string;\n label?: string;\n type?: string;\n}\n\nexport interface VisData {\n nodes: VisNode[];\n edges: VisEdge[];\n}\n\nexport interface VisNode {\n id: Id;\n fixed: boolean;\n\n color?: string | ColorObject;\n label?: string;\n size?: number;\n title?: string;\n x?: number;\n y?: number;\n\n attributes?: unknown;\n}\nexport interface VisEdge {\n id: Id;\n from: Id;\n to: Id;\n\n arrows?: \"to\";\n color?: string;\n label?: string;\n title?: string;\n\n attributes?: unknown;\n}\n\n/**\n * Convert Gephi to Vis.\n *\n * @param gephiJSON - The parsed JSON data in Gephi format.\n * @param optionsObj - Additional options.\n * @returns The converted data ready to be used in Vis.\n */\nexport function parseGephi(\n gephiJSON: GephiData,\n optionsObj?: GephiParseOptions\n): VisData {\n const options = {\n edges: {\n inheritColor: false,\n },\n nodes: {\n fixed: false,\n parseColor: false,\n },\n };\n\n if (optionsObj != null) {\n if (optionsObj.fixed != null) {\n options.nodes.fixed = optionsObj.fixed;\n }\n if (optionsObj.parseColor != null) {\n options.nodes.parseColor = optionsObj.parseColor;\n }\n if (optionsObj.inheritColor != null) {\n options.edges.inheritColor = optionsObj.inheritColor;\n }\n }\n\n const gEdges = gephiJSON.edges;\n const vEdges = gEdges.map((gEdge): VisEdge => {\n const vEdge: VisEdge = {\n from: gEdge.source,\n id: gEdge.id,\n to: gEdge.target,\n };\n\n if (gEdge.attributes != null) {\n vEdge.attributes = gEdge.attributes;\n }\n if (gEdge.label != null) {\n vEdge.label = gEdge.label;\n }\n if (gEdge.attributes != null && gEdge.attributes.title != null) {\n vEdge.title = gEdge.attributes.title;\n }\n if (gEdge.type === \"Directed\") {\n vEdge.arrows = \"to\";\n }\n // edge['value'] = gEdge.attributes != null ? gEdge.attributes.Weight : undefined;\n // edge['width'] = edge['value'] != null ? undefined : edgegEdge.size;\n if (gEdge.color && options.edges.inheritColor === false) {\n vEdge.color = gEdge.color;\n }\n\n return vEdge;\n });\n\n const vNodes = gephiJSON.nodes.map((gNode): VisNode => {\n const vNode: VisNode = {\n id: gNode.id,\n fixed: options.nodes.fixed && gNode.x != null && gNode.y != null,\n };\n\n if (gNode.attributes != null) {\n vNode.attributes = gNode.attributes;\n }\n if (gNode.label != null) {\n vNode.label = gNode.label;\n }\n if (gNode.size != null) {\n vNode.size = gNode.size;\n }\n if (gNode.attributes != null && gNode.attributes.title != null) {\n vNode.title = gNode.attributes.title;\n }\n if (gNode.title != null) {\n vNode.title = gNode.title;\n }\n if (gNode.x != null) {\n vNode.x = gNode.x;\n }\n if (gNode.y != null) {\n vNode.y = gNode.y;\n }\n if (gNode.color != null) {\n if (options.nodes.parseColor === true) {\n vNode.color = gNode.color;\n } else {\n vNode.color = {\n background: gNode.color,\n border: gNode.color,\n highlight: {\n background: gNode.color,\n border: gNode.color,\n },\n hover: {\n background: gNode.color,\n border: gNode.color,\n },\n };\n }\n }\n\n return vNode;\n });\n\n return { nodes: vNodes, edges: vEdges };\n}\n","export interface Locale {\n addDescription: string;\n addEdge: string;\n addNode: string;\n back: string;\n close: string;\n createEdgeError: string;\n del: string;\n deleteClusterError: string;\n edgeDescription: string;\n edit: string;\n editClusterError: string;\n editEdge: string;\n editEdgeDescription: string;\n editNode: string;\n}\nexport type Locales = Record;\n\n// English\nexport const en: Locale = {\n addDescription: \"Click in an empty space to place a new node.\",\n addEdge: \"Add Edge\",\n addNode: \"Add Node\",\n back: \"Back\",\n close: \"Close\",\n createEdgeError: \"Cannot link edges to a cluster.\",\n del: \"Delete selected\",\n deleteClusterError: \"Clusters cannot be deleted.\",\n edgeDescription:\n \"Click on a node and drag the edge to another node to connect them.\",\n edit: \"Edit\",\n editClusterError: \"Clusters cannot be edited.\",\n editEdge: \"Edit Edge\",\n editEdgeDescription:\n \"Click on the control points and drag them to a node to connect to it.\",\n editNode: \"Edit Node\",\n};\n\n// German\nexport const de: Locale = {\n addDescription:\n \"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.\",\n addEdge: \"Kante hinzuf\\u00fcgen\",\n addNode: \"Knoten hinzuf\\u00fcgen\",\n back: \"Zur\\u00fcck\",\n close: \"Schließen\",\n createEdgeError:\n \"Es ist nicht m\\u00f6glich, Kanten mit Clustern zu verbinden.\",\n del: \"L\\u00f6sche Auswahl\",\n deleteClusterError: \"Cluster k\\u00f6nnen nicht gel\\u00f6scht werden.\",\n edgeDescription:\n \"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.\",\n edit: \"Editieren\",\n editClusterError: \"Cluster k\\u00f6nnen nicht editiert werden.\",\n editEdge: \"Kante editieren\",\n editEdgeDescription:\n \"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.\",\n editNode: \"Knoten editieren\",\n};\n\n// Spanish\nexport const es: Locale = {\n addDescription:\n \"Haga clic en un lugar vac\\u00edo para colocar un nuevo nodo.\",\n addEdge: \"A\\u00f1adir arista\",\n addNode: \"A\\u00f1adir nodo\",\n back: \"Atr\\u00e1s\",\n close: \"Cerrar\",\n createEdgeError: \"No se puede conectar una arista a un grupo.\",\n del: \"Eliminar selecci\\u00f3n\",\n deleteClusterError: \"No es posible eliminar grupos.\",\n edgeDescription:\n \"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.\",\n edit: \"Editar\",\n editClusterError: \"No es posible editar grupos.\",\n editEdge: \"Editar arista\",\n editEdgeDescription:\n \"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.\",\n editNode: \"Editar nodo\",\n};\n\n//Italiano\nexport const it: Locale = {\n addDescription: \"Clicca per aggiungere un nuovo nodo\",\n addEdge: \"Aggiungi un vertice\",\n addNode: \"Aggiungi un nodo\",\n back: \"Indietro\",\n close: \"Chiudere\",\n createEdgeError: \"Non si possono collegare vertici ad un cluster\",\n del: \"Cancella la selezione\",\n deleteClusterError: \"I cluster non possono essere cancellati\",\n edgeDescription:\n \"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.\",\n edit: \"Modifica\",\n editClusterError: \"I clusters non possono essere modificati.\",\n editEdge: \"Modifica il vertice\",\n editEdgeDescription:\n \"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.\",\n editNode: \"Modifica il nodo\",\n};\n\n// Dutch\nexport const nl: Locale = {\n addDescription: \"Klik op een leeg gebied om een nieuwe node te maken.\",\n addEdge: \"Link toevoegen\",\n addNode: \"Node toevoegen\",\n back: \"Terug\",\n close: \"Sluiten\",\n createEdgeError: \"Kan geen link maken naar een cluster.\",\n del: \"Selectie verwijderen\",\n deleteClusterError: \"Clusters kunnen niet worden verwijderd.\",\n edgeDescription:\n \"Klik op een node en sleep de link naar een andere node om ze te verbinden.\",\n edit: \"Wijzigen\",\n editClusterError: \"Clusters kunnen niet worden aangepast.\",\n editEdge: \"Link wijzigen\",\n editEdgeDescription:\n \"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.\",\n editNode: \"Node wijzigen\",\n};\n\n// Portuguese Brazil\nexport const pt: Locale = {\n addDescription: \"Clique em um espaço em branco para adicionar um novo nó\",\n addEdge: \"Adicionar aresta\",\n addNode: \"Adicionar nó\",\n back: \"Voltar\",\n close: \"Fechar\",\n createEdgeError: \"Não foi possível linkar arestas a um cluster.\",\n del: \"Remover selecionado\",\n deleteClusterError: \"Clusters não puderam ser removidos.\",\n edgeDescription:\n \"Clique em um nó e arraste a aresta até outro nó para conectá-los\",\n edit: \"Editar\",\n editClusterError: \"Clusters não puderam ser editados.\",\n editEdge: \"Editar aresta\",\n editEdgeDescription:\n \"Clique nos pontos de controle e os arraste para um nó para conectá-los\",\n editNode: \"Editar nó\",\n};\n\n// Russian\nexport const ru: Locale = {\n addDescription: \"Кликните в свободное место, чтобы добавить новый узел.\",\n addEdge: \"Добавить ребро\",\n addNode: \"Добавить узел\",\n back: \"Назад\",\n close: \"Закрывать\",\n createEdgeError: \"Невозможно соединить ребра в кластер.\",\n del: \"Удалить выбранное\",\n deleteClusterError: \"Кластеры не могут быть удалены\",\n edgeDescription:\n \"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.\",\n edit: \"Редактировать\",\n editClusterError: \"Кластеры недоступны для редактирования.\",\n editEdge: \"Редактировать ребро\",\n editEdgeDescription:\n \"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.\",\n editNode: \"Редактировать узел\",\n};\n\n// Chinese\nexport const cn: Locale = {\n addDescription: \"单击空白处放置新节点。\",\n addEdge: \"添加连接线\",\n addNode: \"添加节点\",\n back: \"返回\",\n close: \"關閉\",\n createEdgeError: \"无法将连接线连接到群集。\",\n del: \"删除选定\",\n deleteClusterError: \"无法删除群集。\",\n edgeDescription: \"单击某个节点并将该连接线拖动到另一个节点以连接它们。\",\n edit: \"编辑\",\n editClusterError: \"无法编辑群集。\",\n editEdge: \"编辑连接线\",\n editEdgeDescription: \"单击控制节点并将它们拖到节点上连接。\",\n editNode: \"编辑节点\",\n};\n\n// Ukrainian\nexport const uk: Locale = {\n addDescription: \"Kлікніть на вільне місце, щоб додати новий вузол.\",\n addEdge: \"Додати край\",\n addNode: \"Додати вузол\",\n back: \"Назад\",\n close: \"Закрити\",\n createEdgeError: \"Не можливо об'єднати краї в групу.\",\n del: \"Видалити обране\",\n deleteClusterError: \"Групи не можуть бути видалені.\",\n edgeDescription:\n \"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.\",\n edit: \"Редагувати\",\n editClusterError: \"Групи недоступні для редагування.\",\n editEdge: \"Редагувати край\",\n editEdgeDescription:\n \"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.\",\n editNode: \"Редагувати вузол\",\n};\n\n// French\nexport const fr: Locale = {\n addDescription: \"Cliquez dans un endroit vide pour placer un nœud.\",\n addEdge: \"Ajouter un lien\",\n addNode: \"Ajouter un nœud\",\n back: \"Retour\",\n close: \"Fermer\",\n createEdgeError: \"Impossible de créer un lien vers un cluster.\",\n del: \"Effacer la sélection\",\n deleteClusterError: \"Les clusters ne peuvent pas être effacés.\",\n edgeDescription:\n \"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.\",\n edit: \"Éditer\",\n editClusterError: \"Les clusters ne peuvent pas être édités.\",\n editEdge: \"Éditer le lien\",\n editEdgeDescription:\n \"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.\",\n editNode: \"Éditer le nœud\",\n};\n\n// Czech\nexport const cs: Locale = {\n addDescription: \"Kluknutím do prázdného prostoru můžete přidat nový vrchol.\",\n addEdge: \"Přidat hranu\",\n addNode: \"Přidat vrchol\",\n back: \"Zpět\",\n close: \"Zavřít\",\n createEdgeError: \"Nelze připojit hranu ke shluku.\",\n del: \"Smazat výběr\",\n deleteClusterError: \"Nelze mazat shluky.\",\n edgeDescription:\n \"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.\",\n edit: \"Upravit\",\n editClusterError: \"Nelze upravovat shluky.\",\n editEdge: \"Upravit hranu\",\n editEdgeDescription:\n \"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.\",\n editNode: \"Upravit vrchol\",\n};\n","/**\n * Associates a canvas to a given image, containing a number of renderings\n * of the image at various sizes.\n *\n * This technique is known as 'mipmapping'.\n *\n * NOTE: Images can also be of type 'data:svg+xml`. This code also works\n * for svg, but the mipmapping may not be necessary.\n *\n * @param {Image} image\n */\nclass CachedImage {\n /**\n * @ignore\n */\n constructor() {\n this.NUM_ITERATIONS = 4; // Number of items in the coordinates array\n\n this.image = new Image();\n this.canvas = document.createElement(\"canvas\");\n }\n\n /**\n * Called when the image has been successfully loaded.\n */\n init() {\n if (this.initialized()) return;\n\n this.src = this.image.src; // For same interface with Image\n const w = this.image.width;\n const h = this.image.height;\n\n // Ease external access\n this.width = w;\n this.height = h;\n\n const h2 = Math.floor(h / 2);\n const h4 = Math.floor(h / 4);\n const h8 = Math.floor(h / 8);\n const h16 = Math.floor(h / 16);\n\n const w2 = Math.floor(w / 2);\n const w4 = Math.floor(w / 4);\n const w8 = Math.floor(w / 8);\n const w16 = Math.floor(w / 16);\n\n // Make canvas as small as possible\n this.canvas.width = 3 * w4;\n this.canvas.height = h2;\n\n // Coordinates and sizes of images contained in the canvas\n // Values per row: [top x, left y, width, height]\n\n this.coordinates = [\n [0, 0, w2, h2],\n [w2, 0, w4, h4],\n [w2, h4, w8, h8],\n [5 * w8, h4, w16, h16],\n ];\n\n this._fillMipMap();\n }\n\n /**\n * @returns {boolean} true if init() has been called, false otherwise.\n */\n initialized() {\n return this.coordinates !== undefined;\n }\n\n /**\n * Redraw main image in various sizes to the context.\n *\n * The rationale behind this is to reduce artefacts due to interpolation\n * at differing zoom levels.\n *\n * Source: http://stackoverflow.com/q/18761404/1223531\n *\n * This methods takes the resizing out of the drawing loop, in order to\n * reduce performance overhead.\n *\n * TODO: The code assumes that a 2D context can always be gotten. This is\n * not necessarily true! OTOH, if not true then usage of this class\n * is senseless.\n *\n * @private\n */\n _fillMipMap() {\n const ctx = this.canvas.getContext(\"2d\");\n\n // First zoom-level comes from the image\n const to = this.coordinates[0];\n ctx.drawImage(this.image, to[0], to[1], to[2], to[3]);\n\n // The rest are copy actions internal to the canvas/context\n for (let iterations = 1; iterations < this.NUM_ITERATIONS; iterations++) {\n const from = this.coordinates[iterations - 1];\n const to = this.coordinates[iterations];\n\n ctx.drawImage(\n this.canvas,\n from[0],\n from[1],\n from[2],\n from[3],\n to[0],\n to[1],\n to[2],\n to[3]\n );\n }\n }\n\n /**\n * Draw the image, using the mipmap if necessary.\n *\n * MipMap is only used if param factor > 2; otherwise, original bitmap\n * is resized. This is also used to skip mipmap usage, e.g. by setting factor = 1\n *\n * Credits to 'Alex de Mulder' for original implementation.\n *\n * @param {CanvasRenderingContext2D} ctx context on which to draw zoomed image\n * @param {Float} factor scale factor at which to draw\n * @param {number} left\n * @param {number} top\n * @param {number} width\n * @param {number} height\n */\n drawImageAtPosition(ctx, factor, left, top, width, height) {\n if (!this.initialized()) return; //can't draw image yet not intialized\n\n if (factor > 2) {\n // Determine which zoomed image to use\n factor *= 0.5;\n let iterations = 0;\n while (factor > 2 && iterations < this.NUM_ITERATIONS) {\n factor *= 0.5;\n iterations += 1;\n }\n\n if (iterations >= this.NUM_ITERATIONS) {\n iterations = this.NUM_ITERATIONS - 1;\n }\n //console.log(\"iterations: \" + iterations);\n\n const from = this.coordinates[iterations];\n ctx.drawImage(\n this.canvas,\n from[0],\n from[1],\n from[2],\n from[3],\n left,\n top,\n width,\n height\n );\n } else {\n // Draw image directly\n ctx.drawImage(this.image, left, top, width, height);\n }\n }\n}\n\nexport default CachedImage;\n","import CachedImage from \"./CachedImage\";\n\n/**\n * This callback is a callback that accepts an Image.\n *\n * @callback ImageCallback\n * @param {Image} image\n */\n\n/**\n * This class loads images and keeps them stored.\n *\n * @param {ImageCallback} callback\n */\nclass Images {\n /**\n * @param {ImageCallback} callback\n */\n constructor(callback) {\n this.images = {};\n this.imageBroken = {};\n this.callback = callback;\n }\n\n /**\n * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image\n * @param {string} brokenUrl Url the broken image to try and load\n * @param {Image} imageToLoadBrokenUrlOn The image object\n */\n _tryloadBrokenUrl(url, brokenUrl, imageToLoadBrokenUrlOn) {\n //If these parameters aren't specified then exit the function because nothing constructive can be done\n if (url === undefined || imageToLoadBrokenUrlOn === undefined) return;\n if (brokenUrl === undefined) {\n console.warn(\"No broken url image defined\");\n return;\n }\n\n //Clear the old subscription to the error event and put a new in place that only handle errors in loading the brokenImageUrl\n imageToLoadBrokenUrlOn.image.onerror = () => {\n console.error(\"Could not load brokenImage:\", brokenUrl);\n // cache item will contain empty image, this should be OK for default\n };\n\n //Set the source of the image to the brokenUrl, this is actually what kicks off the loading of the broken image\n imageToLoadBrokenUrlOn.image.src = brokenUrl;\n }\n\n /**\n *\n * @param {vis.Image} imageToRedrawWith\n * @private\n */\n _redrawWithImage(imageToRedrawWith) {\n if (this.callback) {\n this.callback(imageToRedrawWith);\n }\n }\n\n /**\n * @param {string} url Url of the image\n * @param {string} brokenUrl Url of an image to use if the url image is not found\n * @returns {Image} img The image object\n */\n load(url, brokenUrl) {\n //Try and get the image from the cache, if successful then return the cached image\n const cachedImage = this.images[url];\n if (cachedImage) return cachedImage;\n\n //Create a new image\n const img = new CachedImage();\n\n // Need to add to cache here, otherwise final return will spawn different copies of the same image,\n // Also, there will be multiple loads of the same image.\n this.images[url] = img;\n\n //Subscribe to the event that is raised if the image loads successfully\n img.image.onload = () => {\n // Properly init the cached item and then request a redraw\n this._fixImageCoordinates(img.image);\n img.init();\n this._redrawWithImage(img);\n };\n\n //Subscribe to the event that is raised if the image fails to load\n img.image.onerror = () => {\n console.error(\"Could not load image:\", url);\n //Try and load the image specified by the brokenUrl using\n this._tryloadBrokenUrl(url, brokenUrl, img);\n };\n\n //Set the source of the image to the url, this is what actually kicks off the loading of the image\n img.image.src = url;\n\n //Return the new image\n return img;\n }\n\n /**\n * IE11 fix -- thanks dponch!\n *\n * Local helper function\n *\n * @param {vis.Image} imageToCache\n * @private\n */\n _fixImageCoordinates(imageToCache) {\n if (imageToCache.width === 0) {\n document.body.appendChild(imageToCache);\n imageToCache.width = imageToCache.offsetWidth;\n imageToCache.height = imageToCache.offsetHeight;\n document.body.removeChild(imageToCache);\n }\n }\n}\n\nexport default Images;\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar fails = require('../internals/fails');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar defineProperty = require('../internals/object-define-property').f;\nvar forEach = require('../internals/array-iteration').forEach;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var exported = {};\n var Constructor;\n\n if (!DESCRIPTORS || !isCallable(NativeConstructor)\n || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); }))\n ) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else {\n Constructor = wrapper(function (target, iterable) {\n setInternalState(anInstance(target, Prototype), {\n type: CONSTRUCTOR_NAME,\n collection: new NativeConstructor()\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, target[ADDER], { that: target, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n forEach(['add', 'clear', 'delete', 'forEach', 'get', 'has', 'set', 'keys', 'values', 'entries'], function (KEY) {\n var IS_ADDER = KEY === 'add' || KEY === 'set';\n if (KEY in NativePrototype && !(IS_WEAK && KEY === 'clear')) {\n createNonEnumerableProperty(Prototype, KEY, function (a, b) {\n var collection = getInternalState(this).collection;\n if (!IS_ADDER && IS_WEAK && !isObject(a)) return KEY === 'get' ? undefined : false;\n var result = collection[KEY](a === 0 ? 0 : a, b);\n return IS_ADDER ? this : result;\n });\n }\n });\n\n IS_WEAK || defineProperty(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).collection.size;\n }\n });\n }\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME, false, true);\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: true }, exported);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) {\n if (options && options.unsafe && target[key]) target[key] = src[key];\n else defineBuiltIn(target, key, src[key], options);\n } return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","/**\n * This class can store groups and options specific for groups.\n */\nexport class Groups {\n /**\n * @ignore\n */\n constructor() {\n this.clear();\n this._defaultIndex = 0;\n this._groupIndex = 0;\n\n this._defaultGroups = [\n {\n border: \"#2B7CE9\",\n background: \"#97C2FC\",\n highlight: { border: \"#2B7CE9\", background: \"#D2E5FF\" },\n hover: { border: \"#2B7CE9\", background: \"#D2E5FF\" },\n }, // 0: blue\n {\n border: \"#FFA500\",\n background: \"#FFFF00\",\n highlight: { border: \"#FFA500\", background: \"#FFFFA3\" },\n hover: { border: \"#FFA500\", background: \"#FFFFA3\" },\n }, // 1: yellow\n {\n border: \"#FA0A10\",\n background: \"#FB7E81\",\n highlight: { border: \"#FA0A10\", background: \"#FFAFB1\" },\n hover: { border: \"#FA0A10\", background: \"#FFAFB1\" },\n }, // 2: red\n {\n border: \"#41A906\",\n background: \"#7BE141\",\n highlight: { border: \"#41A906\", background: \"#A1EC76\" },\n hover: { border: \"#41A906\", background: \"#A1EC76\" },\n }, // 3: green\n {\n border: \"#E129F0\",\n background: \"#EB7DF4\",\n highlight: { border: \"#E129F0\", background: \"#F0B3F5\" },\n hover: { border: \"#E129F0\", background: \"#F0B3F5\" },\n }, // 4: magenta\n {\n border: \"#7C29F0\",\n background: \"#AD85E4\",\n highlight: { border: \"#7C29F0\", background: \"#D3BDF0\" },\n hover: { border: \"#7C29F0\", background: \"#D3BDF0\" },\n }, // 5: purple\n {\n border: \"#C37F00\",\n background: \"#FFA807\",\n highlight: { border: \"#C37F00\", background: \"#FFCA66\" },\n hover: { border: \"#C37F00\", background: \"#FFCA66\" },\n }, // 6: orange\n {\n border: \"#4220FB\",\n background: \"#6E6EFD\",\n highlight: { border: \"#4220FB\", background: \"#9B9BFD\" },\n hover: { border: \"#4220FB\", background: \"#9B9BFD\" },\n }, // 7: darkblue\n {\n border: \"#FD5A77\",\n background: \"#FFC0CB\",\n highlight: { border: \"#FD5A77\", background: \"#FFD1D9\" },\n hover: { border: \"#FD5A77\", background: \"#FFD1D9\" },\n }, // 8: pink\n {\n border: \"#4AD63A\",\n background: \"#C2FABC\",\n highlight: { border: \"#4AD63A\", background: \"#E6FFE3\" },\n hover: { border: \"#4AD63A\", background: \"#E6FFE3\" },\n }, // 9: mint\n\n {\n border: \"#990000\",\n background: \"#EE0000\",\n highlight: { border: \"#BB0000\", background: \"#FF3333\" },\n hover: { border: \"#BB0000\", background: \"#FF3333\" },\n }, // 10:bright red\n\n {\n border: \"#FF6000\",\n background: \"#FF6000\",\n highlight: { border: \"#FF6000\", background: \"#FF6000\" },\n hover: { border: \"#FF6000\", background: \"#FF6000\" },\n }, // 12: real orange\n {\n border: \"#97C2FC\",\n background: \"#2B7CE9\",\n highlight: { border: \"#D2E5FF\", background: \"#2B7CE9\" },\n hover: { border: \"#D2E5FF\", background: \"#2B7CE9\" },\n }, // 13: blue\n {\n border: \"#399605\",\n background: \"#255C03\",\n highlight: { border: \"#399605\", background: \"#255C03\" },\n hover: { border: \"#399605\", background: \"#255C03\" },\n }, // 14: green\n {\n border: \"#B70054\",\n background: \"#FF007E\",\n highlight: { border: \"#B70054\", background: \"#FF007E\" },\n hover: { border: \"#B70054\", background: \"#FF007E\" },\n }, // 15: magenta\n {\n border: \"#AD85E4\",\n background: \"#7C29F0\",\n highlight: { border: \"#D3BDF0\", background: \"#7C29F0\" },\n hover: { border: \"#D3BDF0\", background: \"#7C29F0\" },\n }, // 16: purple\n {\n border: \"#4557FA\",\n background: \"#000EA1\",\n highlight: { border: \"#6E6EFD\", background: \"#000EA1\" },\n hover: { border: \"#6E6EFD\", background: \"#000EA1\" },\n }, // 17: darkblue\n {\n border: \"#FFC0CB\",\n background: \"#FD5A77\",\n highlight: { border: \"#FFD1D9\", background: \"#FD5A77\" },\n hover: { border: \"#FFD1D9\", background: \"#FD5A77\" },\n }, // 18: pink\n {\n border: \"#C2FABC\",\n background: \"#74D66A\",\n highlight: { border: \"#E6FFE3\", background: \"#74D66A\" },\n hover: { border: \"#E6FFE3\", background: \"#74D66A\" },\n }, // 19: mint\n\n {\n border: \"#EE0000\",\n background: \"#990000\",\n highlight: { border: \"#FF3333\", background: \"#BB0000\" },\n hover: { border: \"#FF3333\", background: \"#BB0000\" },\n }, // 20:bright red\n ];\n\n this.options = {};\n this.defaultOptions = {\n useDefaultGroups: true,\n };\n Object.assign(this.options, this.defaultOptions);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n const optionFields = [\"useDefaultGroups\"];\n\n if (options !== undefined) {\n for (const groupName in options) {\n if (Object.prototype.hasOwnProperty.call(options, groupName)) {\n if (optionFields.indexOf(groupName) === -1) {\n const group = options[groupName];\n this.add(groupName, group);\n }\n }\n }\n }\n }\n\n /**\n * Clear all groups\n */\n clear() {\n this._groups = new Map();\n this._groupNames = [];\n }\n\n /**\n * Get group options of a groupname.\n * If groupname is not found, a new group may be created.\n *\n * @param {*} groupname Can be a number, string, Date, etc.\n * @param {boolean} [shouldCreate=true] If true, create a new group\n * @returns {object} The found or created group\n */\n get(groupname, shouldCreate = true) {\n let group = this._groups.get(groupname);\n\n if (group === undefined && shouldCreate) {\n if (\n this.options.useDefaultGroups === false &&\n this._groupNames.length > 0\n ) {\n // create new group\n const index = this._groupIndex % this._groupNames.length;\n ++this._groupIndex;\n group = {};\n group.color = this._groups.get(this._groupNames[index]);\n this._groups.set(groupname, group);\n } else {\n // create new group\n const index = this._defaultIndex % this._defaultGroups.length;\n this._defaultIndex++;\n group = {};\n group.color = this._defaultGroups[index];\n this._groups.set(groupname, group);\n }\n }\n\n return group;\n }\n\n /**\n * Add custom group style.\n *\n * @param {string} groupName - The name of the group, a new group will be\n * created if a group with the same name doesn't exist, otherwise the old\n * groups style will be overwritten.\n * @param {object} style - An object containing borderColor, backgroundColor,\n * etc.\n * @returns {object} The created group object.\n */\n add(groupName, style) {\n // Only push group name once to prevent duplicates which would consume more\n // RAM and also skew the distribution towards more often updated groups,\n // neither of which is desirable.\n if (!this._groups.has(groupName)) {\n this._groupNames.push(groupName);\n }\n this._groups.set(groupName, style);\n return style;\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nrequire('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","'use strict';\nvar global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nrequire('../../modules/es.number.is-finite');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isFinite;\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.some');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').some;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/some');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.some;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.some) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/some');\n\nmodule.exports = parent;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","'use strict';\nvar parent = require('../../stable/object/create');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/object/create');\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nrequire('../../modules/es.object.set-prototype-of');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.setPrototypeOf;\n","'use strict';\nmodule.exports = require('../../full/object/set-prototype-of');\n","'use strict';\nvar parent = require('../../stable/instance/bind');\n\nmodule.exports = parent;\n","import _Object$setPrototypeOf from \"core-js-pure/features/object/set-prototype-of.js\";\nimport _bindInstanceProperty from \"core-js-pure/features/instance/bind.js\";\nexport default function _setPrototypeOf(o, p) {\n var _context;\n _setPrototypeOf = _Object$setPrototypeOf ? _bindInstanceProperty(_context = _Object$setPrototypeOf).call(_context) : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _Object$create from \"core-js-pure/features/object/create.js\";\nimport _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = _Object$create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n _Object$defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","'use strict';\nvar parent = require('../../stable/object/get-prototype-of');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/object/get-prototype-of');\n","import _Object$setPrototypeOf from \"core-js-pure/features/object/set-prototype-of.js\";\nimport _bindInstanceProperty from \"core-js-pure/features/instance/bind.js\";\nimport _Object$getPrototypeOf from \"core-js-pure/features/object/get-prototype-of.js\";\nexport default function _getPrototypeOf(o) {\n var _context;\n _getPrototypeOf = _Object$setPrototypeOf ? _bindInstanceProperty(_context = _Object$getPrototypeOf).call(_context) : function _getPrototypeOf(o) {\n return o.__proto__ || _Object$getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import _Object$defineProperty from \"core-js-pure/features/object/define-property.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n _Object$defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","var _Symbol = require(\"core-js-pure/features/symbol/index.js\");\nvar _Symbol$iterator = require(\"core-js-pure/features/symbol/iterator.js\");\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof _Symbol && \"symbol\" == typeof _Symbol$iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nmodule.exports = require('../../full/instance/for-each');\n","'use strict';\nvar parent = require('../../stable/instance/for-each');\n\nmodule.exports = parent;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = new Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf(new $Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nrequire('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nvar parent = require('../../es/promise');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://github.com/tc39/proposal-promise-with-resolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar parent = require('../../stable/promise');\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true, forced: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar parent = require('../../actual/promise');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.aggregate-error');\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/promise');\n","'use strict';\nmodule.exports = require('../../full/instance/reverse');\n","'use strict';\nvar parent = require('../../stable/instance/reverse');\n\nmodule.exports = parent;\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar _Object$defineProperty = require(\"core-js-pure/features/object/define-property.js\");\nvar _Symbol = require(\"core-js-pure/features/symbol/index.js\");\nvar _Object$create = require(\"core-js-pure/features/object/create.js\");\nvar _Object$getPrototypeOf = require(\"core-js-pure/features/object/get-prototype-of.js\");\nvar _forEachInstanceProperty = require(\"core-js-pure/features/instance/for-each.js\");\nvar _pushInstanceProperty = require(\"core-js-pure/features/instance/push.js\");\nvar _Object$setPrototypeOf = require(\"core-js-pure/features/object/set-prototype-of.js\");\nvar _Promise = require(\"core-js-pure/features/promise/index.js\");\nvar _reverseInstanceProperty = require(\"core-js-pure/features/instance/reverse.js\");\nvar _sliceInstanceProperty = require(\"core-js-pure/features/instance/slice.js\");\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = _Object$defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof _Symbol ? _Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return _Object$defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = _Object$create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = _Object$getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(p);\n function defineIteratorMethods(t) {\n var _context;\n _forEachInstanceProperty(_context = [\"next\", \"throw\", \"return\"]).call(_context, function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var _context2;\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), _pushInstanceProperty(_context2 = this.tryEntries).call(_context2, e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], _forEachInstanceProperty(t).call(t, pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return _Object$setPrototypeOf ? _Object$setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = _Object$create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = _Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) _pushInstanceProperty(r).call(r, n);\n return _reverseInstanceProperty(r).call(r), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n var _context3;\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, _forEachInstanceProperty(_context3 = this.tryEntries).call(_context3, resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+_sliceInstanceProperty(r).call(r, 1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.reduce');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').reduce;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/reduce');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.reduce;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.reduce) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/reduce');\n\nmodule.exports = parent;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n doesNotExceedSafeInteger(targetIndex + 1);\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A;\n aCallable(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.flat-map');\nrequire('../../../modules/es.array.unscopables.flat-map');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').flatMap;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/flat-map');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.flatMap;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.flatMap) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/flat-map');\n\nmodule.exports = parent;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","module.exports = require(\"core-js-pure/stable/symbol/iterator\");","'use strict';\nrequire('../modules/es.array.iterator');\nrequire('../modules/es.string.iterator');\nvar getIterator = require('../internals/get-iterator');\n\nmodule.exports = getIterator;\n","'use strict';\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.sort');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').sort;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/sort');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.sort;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.sort) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/sort');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').keys;\n","'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/keys');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.keys;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.keys)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","'use strict';\nvar parent = require('../../../es/array/virtual/keys');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/keys\");","'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').values;\n","'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/values');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.values;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.values)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","'use strict';\nvar parent = require('../../../es/array/virtual/values');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/values\");","'use strict';\nrequire('../../../modules/es.array.iterator');\nrequire('../../../modules/es.object.to-string');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').entries;\n","'use strict';\nrequire('../../modules/web.dom-collections.iterator');\nvar classof = require('../../internals/classof');\nvar hasOwn = require('../../internals/has-own-property');\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/entries');\n\nvar ArrayPrototype = Array.prototype;\n\nvar DOMIterables = {\n DOMTokenList: true,\n NodeList: true\n};\n\nmodule.exports = function (it) {\n var own = it.entries;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.entries)\n || hasOwn(DOMIterables, classof(it)) ? method : own;\n};\n","'use strict';\nvar parent = require('../../../es/array/virtual/entries');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/instance/entries\");","module.exports = require(\"core-js-pure/stable/object/define-property\");","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nrequire('../../modules/es.reflect.construct');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.construct;\n","'use strict';\nrequire('../../modules/es.symbol');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertySymbols;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nrequire('../../modules/es.object.get-own-property-descriptor');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar getOwnPropertyDescriptor = module.exports = function getOwnPropertyDescriptor(it, key) {\n return Object.getOwnPropertyDescriptor(it, key);\n};\n\nif (Object.getOwnPropertyDescriptor.sham) getOwnPropertyDescriptor.sham = true;\n","'use strict';\nvar parent = require('../../es/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n","module.exports = require(\"core-js-pure/stable/object/get-own-property-descriptor\");","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","'use strict';\nrequire('../../modules/es.object.get-own-property-descriptors');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.getOwnPropertyDescriptors;\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperties = require('../internals/object-define-properties').f;\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperties !== defineProperties, sham: !DESCRIPTORS }, {\n defineProperties: defineProperties\n});\n","'use strict';\nrequire('../../modules/es.object.define-properties');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nvar defineProperties = module.exports = function defineProperties(T, D) {\n return Object.defineProperties(T, D);\n};\n\nif (Object.defineProperties.sham) defineProperties.sham = true;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/**\n * vis-data\n * http://visjs.org/\n *\n * Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data.\n *\n * @version 7.1.7\n * @date 2023-09-13T18:13:28.258Z\n *\n * @copyright (c) 2011-2017 Almende B.V, http://almende.com\n * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs\n *\n * @license\n * vis.js is dual licensed under both\n *\n * 1. The Apache 2.0 License\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * and\n *\n * 2. The MIT License\n * http://opensource.org/licenses/MIT\n *\n * vis.js may be distributed under either license.\n */\n\nimport { pureDeepObjectAssign } from 'vis-util/esnext/esm/vis-util.js';\nexport { DELETE } from 'vis-util/esnext/esm/vis-util.js';\nimport { v4 } from 'uuid';\n\n/**\r\n * Create new data pipe.\r\n *\r\n * @param from - The source data set or data view.\r\n * @remarks\r\n * Example usage:\r\n * ```typescript\r\n * interface AppItem {\r\n * whoami: string;\r\n * appData: unknown;\r\n * visData: VisItem;\r\n * }\r\n * interface VisItem {\r\n * id: number;\r\n * label: string;\r\n * color: string;\r\n * x: number;\r\n * y: number;\r\n * }\r\n *\r\n * const ds1 = new DataSet([], { fieldId: \"whoami\" });\r\n * const ds2 = new DataSet();\r\n *\r\n * const pipe = createNewDataPipeFrom(ds1)\r\n * .filter((item): boolean => item.enabled === true)\r\n * .map((item): VisItem => item.visData)\r\n * .to(ds2);\r\n *\r\n * pipe.start();\r\n * ```\r\n * @returns A factory whose methods can be used to configure the pipe.\r\n */\r\nfunction createNewDataPipeFrom(from) {\r\n return new DataPipeUnderConstruction(from);\r\n}\r\n/**\r\n * Internal implementation of the pipe. This should be accessible only through\r\n * `createNewDataPipeFrom` from the outside.\r\n *\r\n * @typeParam SI - Source item type.\r\n * @typeParam SP - Source item type's id property name.\r\n * @typeParam TI - Target item type.\r\n * @typeParam TP - Target item type's id property name.\r\n */\r\nclass SimpleDataPipe {\r\n _source;\r\n _transformers;\r\n _target;\r\n /**\r\n * Bound listeners for use with `DataInterface['on' | 'off']`.\r\n */\r\n _listeners = {\r\n add: this._add.bind(this),\r\n remove: this._remove.bind(this),\r\n update: this._update.bind(this),\r\n };\r\n /**\r\n * Create a new data pipe.\r\n *\r\n * @param _source - The data set or data view that will be observed.\r\n * @param _transformers - An array of transforming functions to be used to\r\n * filter or transform the items in the pipe.\r\n * @param _target - The data set or data view that will receive the items.\r\n */\r\n constructor(_source, _transformers, _target) {\r\n this._source = _source;\r\n this._transformers = _transformers;\r\n this._target = _target;\r\n }\r\n /** @inheritDoc */\r\n all() {\r\n this._target.update(this._transformItems(this._source.get()));\r\n return this;\r\n }\r\n /** @inheritDoc */\r\n start() {\r\n this._source.on(\"add\", this._listeners.add);\r\n this._source.on(\"remove\", this._listeners.remove);\r\n this._source.on(\"update\", this._listeners.update);\r\n return this;\r\n }\r\n /** @inheritDoc */\r\n stop() {\r\n this._source.off(\"add\", this._listeners.add);\r\n this._source.off(\"remove\", this._listeners.remove);\r\n this._source.off(\"update\", this._listeners.update);\r\n return this;\r\n }\r\n /**\r\n * Apply the transformers to the items.\r\n *\r\n * @param items - The items to be transformed.\r\n * @returns The transformed items.\r\n */\r\n _transformItems(items) {\r\n return this._transformers.reduce((items, transform) => {\r\n return transform(items);\r\n }, items);\r\n }\r\n /**\r\n * Handle an add event.\r\n *\r\n * @param _name - Ignored.\r\n * @param payload - The payload containing the ids of the added items.\r\n */\r\n _add(_name, payload) {\r\n if (payload == null) {\r\n return;\r\n }\r\n this._target.add(this._transformItems(this._source.get(payload.items)));\r\n }\r\n /**\r\n * Handle an update event.\r\n *\r\n * @param _name - Ignored.\r\n * @param payload - The payload containing the ids of the updated items.\r\n */\r\n _update(_name, payload) {\r\n if (payload == null) {\r\n return;\r\n }\r\n this._target.update(this._transformItems(this._source.get(payload.items)));\r\n }\r\n /**\r\n * Handle a remove event.\r\n *\r\n * @param _name - Ignored.\r\n * @param payload - The payload containing the data of the removed items.\r\n */\r\n _remove(_name, payload) {\r\n if (payload == null) {\r\n return;\r\n }\r\n this._target.remove(this._transformItems(payload.oldData));\r\n }\r\n}\r\n/**\r\n * Internal implementation of the pipe factory. This should be accessible\r\n * only through `createNewDataPipeFrom` from the outside.\r\n *\r\n * @typeParam TI - Target item type.\r\n * @typeParam TP - Target item type's id property name.\r\n */\r\nclass DataPipeUnderConstruction {\r\n _source;\r\n /**\r\n * Array transformers used to transform items within the pipe. This is typed\r\n * as any for the sake of simplicity.\r\n */\r\n _transformers = [];\r\n /**\r\n * Create a new data pipe factory. This is an internal constructor that\r\n * should never be called from outside of this file.\r\n *\r\n * @param _source - The source data set or data view for this pipe.\r\n */\r\n constructor(_source) {\r\n this._source = _source;\r\n }\r\n /**\r\n * Filter the items.\r\n *\r\n * @param callback - A filtering function that returns true if given item\r\n * should be piped and false if not.\r\n * @returns This factory for further configuration.\r\n */\r\n filter(callback) {\r\n this._transformers.push((input) => input.filter(callback));\r\n return this;\r\n }\r\n /**\r\n * Map each source item to a new type.\r\n *\r\n * @param callback - A mapping function that takes a source item and returns\r\n * corresponding mapped item.\r\n * @typeParam TI - Target item type.\r\n * @typeParam TP - Target item type's id property name.\r\n * @returns This factory for further configuration.\r\n */\r\n map(callback) {\r\n this._transformers.push((input) => input.map(callback));\r\n return this;\r\n }\r\n /**\r\n * Map each source item to zero or more items of a new type.\r\n *\r\n * @param callback - A mapping function that takes a source item and returns\r\n * an array of corresponding mapped items.\r\n * @typeParam TI - Target item type.\r\n * @typeParam TP - Target item type's id property name.\r\n * @returns This factory for further configuration.\r\n */\r\n flatMap(callback) {\r\n this._transformers.push((input) => input.flatMap(callback));\r\n return this;\r\n }\r\n /**\r\n * Connect this pipe to given data set.\r\n *\r\n * @param target - The data set that will receive the items from this pipe.\r\n * @returns The pipe connected between given data sets and performing\r\n * configured transformation on the processed items.\r\n */\r\n to(target) {\r\n return new SimpleDataPipe(this._source, this._transformers, target);\r\n }\r\n}\n\n/**\r\n * Determine whether a value can be used as an id.\r\n *\r\n * @param value - Input value of unknown type.\r\n * @returns True if the value is valid id, false otherwise.\r\n */\r\nfunction isId(value) {\r\n return typeof value === \"string\" || typeof value === \"number\";\r\n}\n\n/**\r\n * A queue.\r\n *\r\n * @typeParam T - The type of method names to be replaced by queued versions.\r\n */\r\nclass Queue {\r\n /** Delay in milliseconds. If defined the queue will be periodically flushed. */\r\n delay;\r\n /** Maximum number of entries in the queue before it will be flushed. */\r\n max;\r\n _queue = [];\r\n _timeout = null;\r\n _extended = null;\r\n /**\r\n * Construct a new Queue.\r\n *\r\n * @param options - Queue configuration.\r\n */\r\n constructor(options) {\r\n // options\r\n this.delay = null;\r\n this.max = Infinity;\r\n this.setOptions(options);\r\n }\r\n /**\r\n * Update the configuration of the queue.\r\n *\r\n * @param options - Queue configuration.\r\n */\r\n setOptions(options) {\r\n if (options && typeof options.delay !== \"undefined\") {\r\n this.delay = options.delay;\r\n }\r\n if (options && typeof options.max !== \"undefined\") {\r\n this.max = options.max;\r\n }\r\n this._flushIfNeeded();\r\n }\r\n /**\r\n * Extend an object with queuing functionality.\r\n * The object will be extended with a function flush, and the methods provided in options.replace will be replaced with queued ones.\r\n *\r\n * @param object - The object to be extended.\r\n * @param options - Additional options.\r\n * @returns The created queue.\r\n */\r\n static extend(object, options) {\r\n const queue = new Queue(options);\r\n if (object.flush !== undefined) {\r\n throw new Error(\"Target object already has a property flush\");\r\n }\r\n object.flush = () => {\r\n queue.flush();\r\n };\r\n const methods = [\r\n {\r\n name: \"flush\",\r\n original: undefined,\r\n },\r\n ];\r\n if (options && options.replace) {\r\n for (let i = 0; i < options.replace.length; i++) {\r\n const name = options.replace[i];\r\n methods.push({\r\n name: name,\r\n // @TODO: better solution?\r\n original: object[name],\r\n });\r\n // @TODO: better solution?\r\n queue.replace(object, name);\r\n }\r\n }\r\n queue._extended = {\r\n object: object,\r\n methods: methods,\r\n };\r\n return queue;\r\n }\r\n /**\r\n * Destroy the queue. The queue will first flush all queued actions, and in case it has extended an object, will restore the original object.\r\n */\r\n destroy() {\r\n this.flush();\r\n if (this._extended) {\r\n const object = this._extended.object;\r\n const methods = this._extended.methods;\r\n for (let i = 0; i < methods.length; i++) {\r\n const method = methods[i];\r\n if (method.original) {\r\n // @TODO: better solution?\r\n object[method.name] = method.original;\r\n }\r\n else {\r\n // @TODO: better solution?\r\n delete object[method.name];\r\n }\r\n }\r\n this._extended = null;\r\n }\r\n }\r\n /**\r\n * Replace a method on an object with a queued version.\r\n *\r\n * @param object - Object having the method.\r\n * @param method - The method name.\r\n */\r\n replace(object, method) {\r\n /* eslint-disable-next-line @typescript-eslint/no-this-alias -- Function this is necessary in the function bellow, so class this has to be saved into a variable here. */\r\n const me = this;\r\n const original = object[method];\r\n if (!original) {\r\n throw new Error(\"Method \" + method + \" undefined\");\r\n }\r\n object[method] = function (...args) {\r\n // add this call to the queue\r\n me.queue({\r\n args: args,\r\n fn: original,\r\n context: this,\r\n });\r\n };\r\n }\r\n /**\r\n * Queue a call.\r\n *\r\n * @param entry - The function or entry to be queued.\r\n */\r\n queue(entry) {\r\n if (typeof entry === \"function\") {\r\n this._queue.push({ fn: entry });\r\n }\r\n else {\r\n this._queue.push(entry);\r\n }\r\n this._flushIfNeeded();\r\n }\r\n /**\r\n * Check whether the queue needs to be flushed.\r\n */\r\n _flushIfNeeded() {\r\n // flush when the maximum is exceeded.\r\n if (this._queue.length > this.max) {\r\n this.flush();\r\n }\r\n // flush after a period of inactivity when a delay is configured\r\n if (this._timeout != null) {\r\n clearTimeout(this._timeout);\r\n this._timeout = null;\r\n }\r\n if (this.queue.length > 0 && typeof this.delay === \"number\") {\r\n this._timeout = setTimeout(() => {\r\n this.flush();\r\n }, this.delay);\r\n }\r\n }\r\n /**\r\n * Flush all queued calls\r\n */\r\n flush() {\r\n this._queue.splice(0).forEach((entry) => {\r\n entry.fn.apply(entry.context || entry.fn, entry.args || []);\r\n });\r\n }\r\n}\n\n/**\r\n * {@link DataSet} code that can be reused in {@link DataView} or other similar implementations of {@link DataInterface}.\r\n *\r\n * @typeParam Item - Item type that may or may not have an id.\r\n * @typeParam IdProp - Name of the property that contains the id.\r\n */\r\nclass DataSetPart {\r\n _subscribers = {\r\n \"*\": [],\r\n add: [],\r\n remove: [],\r\n update: [],\r\n };\r\n /**\r\n * Trigger an event\r\n *\r\n * @param event - Event name.\r\n * @param payload - Event payload.\r\n * @param senderId - Id of the sender.\r\n */\r\n _trigger(event, payload, senderId) {\r\n if (event === \"*\") {\r\n throw new Error(\"Cannot trigger event *\");\r\n }\r\n [...this._subscribers[event], ...this._subscribers[\"*\"]].forEach((subscriber) => {\r\n subscriber(event, payload, senderId != null ? senderId : null);\r\n });\r\n }\r\n /**\r\n * Subscribe to an event, add an event listener.\r\n *\r\n * @remarks Non-function callbacks are ignored.\r\n * @param event - Event name.\r\n * @param callback - Callback method.\r\n */\r\n on(event, callback) {\r\n if (typeof callback === \"function\") {\r\n this._subscribers[event].push(callback);\r\n }\r\n // @TODO: Maybe throw for invalid callbacks?\r\n }\r\n /**\r\n * Unsubscribe from an event, remove an event listener.\r\n *\r\n * @remarks If the same callback was subscribed more than once **all** occurences will be removed.\r\n * @param event - Event name.\r\n * @param callback - Callback method.\r\n */\r\n off(event, callback) {\r\n this._subscribers[event] = this._subscribers[event].filter((subscriber) => subscriber !== callback);\r\n }\r\n /**\r\n * @deprecated Use on instead (PS: DataView.subscribe === DataView.on).\r\n */\r\n subscribe = DataSetPart.prototype.on;\r\n /**\r\n * @deprecated Use off instead (PS: DataView.unsubscribe === DataView.off).\r\n */\r\n unsubscribe = DataSetPart.prototype.off;\r\n}\n\n/**\r\n * Data stream\r\n *\r\n * @remarks\r\n * {@link DataStream} offers an always up to date stream of items from a {@link DataSet} or {@link DataView}.\r\n * That means that the stream is evaluated at the time of iteration, conversion to another data type or when {@link cache} is called, not when the {@link DataStream} was created.\r\n * Multiple invocations of for example {@link toItemArray} may yield different results (if the data source like for example {@link DataSet} gets modified).\r\n * @typeParam Item - The item type this stream is going to work with.\r\n */\r\nclass DataStream {\r\n _pairs;\r\n /**\r\n * Create a new data stream.\r\n *\r\n * @param pairs - The id, item pairs.\r\n */\r\n constructor(pairs) {\r\n this._pairs = pairs;\r\n }\r\n /**\r\n * Return an iterable of key, value pairs for every entry in the stream.\r\n */\r\n *[Symbol.iterator]() {\r\n for (const [id, item] of this._pairs) {\r\n yield [id, item];\r\n }\r\n }\r\n /**\r\n * Return an iterable of key, value pairs for every entry in the stream.\r\n */\r\n *entries() {\r\n for (const [id, item] of this._pairs) {\r\n yield [id, item];\r\n }\r\n }\r\n /**\r\n * Return an iterable of keys in the stream.\r\n */\r\n *keys() {\r\n for (const [id] of this._pairs) {\r\n yield id;\r\n }\r\n }\r\n /**\r\n * Return an iterable of values in the stream.\r\n */\r\n *values() {\r\n for (const [, item] of this._pairs) {\r\n yield item;\r\n }\r\n }\r\n /**\r\n * Return an array containing all the ids in this stream.\r\n *\r\n * @remarks\r\n * The array may contain duplicities.\r\n * @returns The array with all ids from this stream.\r\n */\r\n toIdArray() {\r\n return [...this._pairs].map((pair) => pair[0]);\r\n }\r\n /**\r\n * Return an array containing all the items in this stream.\r\n *\r\n * @remarks\r\n * The array may contain duplicities.\r\n * @returns The array with all items from this stream.\r\n */\r\n toItemArray() {\r\n return [...this._pairs].map((pair) => pair[1]);\r\n }\r\n /**\r\n * Return an array containing all the entries in this stream.\r\n *\r\n * @remarks\r\n * The array may contain duplicities.\r\n * @returns The array with all entries from this stream.\r\n */\r\n toEntryArray() {\r\n return [...this._pairs];\r\n }\r\n /**\r\n * Return an object map containing all the items in this stream accessible by ids.\r\n *\r\n * @remarks\r\n * In case of duplicate ids (coerced to string so `7 == '7'`) the last encoutered appears in the returned object.\r\n * @returns The object map of all id → item pairs from this stream.\r\n */\r\n toObjectMap() {\r\n const map = Object.create(null);\r\n for (const [id, item] of this._pairs) {\r\n map[id] = item;\r\n }\r\n return map;\r\n }\r\n /**\r\n * Return a map containing all the items in this stream accessible by ids.\r\n *\r\n * @returns The map of all id → item pairs from this stream.\r\n */\r\n toMap() {\r\n return new Map(this._pairs);\r\n }\r\n /**\r\n * Return a set containing all the (unique) ids in this stream.\r\n *\r\n * @returns The set of all ids from this stream.\r\n */\r\n toIdSet() {\r\n return new Set(this.toIdArray());\r\n }\r\n /**\r\n * Return a set containing all the (unique) items in this stream.\r\n *\r\n * @returns The set of all items from this stream.\r\n */\r\n toItemSet() {\r\n return new Set(this.toItemArray());\r\n }\r\n /**\r\n * Cache the items from this stream.\r\n *\r\n * @remarks\r\n * This method allows for items to be fetched immediatelly and used (possibly multiple times) later.\r\n * It can also be used to optimize performance as {@link DataStream} would otherwise reevaluate everything upon each iteration.\r\n *\r\n * ## Example\r\n * ```javascript\r\n * const ds = new DataSet([…])\r\n *\r\n * const cachedStream = ds.stream()\r\n * .filter(…)\r\n * .sort(…)\r\n * .map(…)\r\n * .cached(…) // Data are fetched, processed and cached here.\r\n *\r\n * ds.clear()\r\n * chachedStream // Still has all the items.\r\n * ```\r\n * @returns A new {@link DataStream} with cached items (detached from the original {@link DataSet}).\r\n */\r\n cache() {\r\n return new DataStream([...this._pairs]);\r\n }\r\n /**\r\n * Get the distinct values of given property.\r\n *\r\n * @param callback - The function that picks and possibly converts the property.\r\n * @typeParam T - The type of the distinct value.\r\n * @returns A set of all distinct properties.\r\n */\r\n distinct(callback) {\r\n const set = new Set();\r\n for (const [id, item] of this._pairs) {\r\n set.add(callback(item, id));\r\n }\r\n return set;\r\n }\r\n /**\r\n * Filter the items of the stream.\r\n *\r\n * @param callback - The function that decides whether an item will be included.\r\n * @returns A new data stream with the filtered items.\r\n */\r\n filter(callback) {\r\n const pairs = this._pairs;\r\n return new DataStream({\r\n *[Symbol.iterator]() {\r\n for (const [id, item] of pairs) {\r\n if (callback(item, id)) {\r\n yield [id, item];\r\n }\r\n }\r\n },\r\n });\r\n }\r\n /**\r\n * Execute a callback for each item of the stream.\r\n *\r\n * @param callback - The function that will be invoked for each item.\r\n */\r\n forEach(callback) {\r\n for (const [id, item] of this._pairs) {\r\n callback(item, id);\r\n }\r\n }\r\n /**\r\n * Map the items into a different type.\r\n *\r\n * @param callback - The function that does the conversion.\r\n * @typeParam Mapped - The type of the item after mapping.\r\n * @returns A new data stream with the mapped items.\r\n */\r\n map(callback) {\r\n const pairs = this._pairs;\r\n return new DataStream({\r\n *[Symbol.iterator]() {\r\n for (const [id, item] of pairs) {\r\n yield [id, callback(item, id)];\r\n }\r\n },\r\n });\r\n }\r\n /**\r\n * Get the item with the maximum value of given property.\r\n *\r\n * @param callback - The function that picks and possibly converts the property.\r\n * @returns The item with the maximum if found otherwise null.\r\n */\r\n max(callback) {\r\n const iter = this._pairs[Symbol.iterator]();\r\n let curr = iter.next();\r\n if (curr.done) {\r\n return null;\r\n }\r\n let maxItem = curr.value[1];\r\n let maxValue = callback(curr.value[1], curr.value[0]);\r\n while (!(curr = iter.next()).done) {\r\n const [id, item] = curr.value;\r\n const value = callback(item, id);\r\n if (value > maxValue) {\r\n maxValue = value;\r\n maxItem = item;\r\n }\r\n }\r\n return maxItem;\r\n }\r\n /**\r\n * Get the item with the minimum value of given property.\r\n *\r\n * @param callback - The function that picks and possibly converts the property.\r\n * @returns The item with the minimum if found otherwise null.\r\n */\r\n min(callback) {\r\n const iter = this._pairs[Symbol.iterator]();\r\n let curr = iter.next();\r\n if (curr.done) {\r\n return null;\r\n }\r\n let minItem = curr.value[1];\r\n let minValue = callback(curr.value[1], curr.value[0]);\r\n while (!(curr = iter.next()).done) {\r\n const [id, item] = curr.value;\r\n const value = callback(item, id);\r\n if (value < minValue) {\r\n minValue = value;\r\n minItem = item;\r\n }\r\n }\r\n return minItem;\r\n }\r\n /**\r\n * Reduce the items into a single value.\r\n *\r\n * @param callback - The function that does the reduction.\r\n * @param accumulator - The initial value of the accumulator.\r\n * @typeParam T - The type of the accumulated value.\r\n * @returns The reduced value.\r\n */\r\n reduce(callback, accumulator) {\r\n for (const [id, item] of this._pairs) {\r\n accumulator = callback(accumulator, item, id);\r\n }\r\n return accumulator;\r\n }\r\n /**\r\n * Sort the items.\r\n *\r\n * @param callback - Item comparator.\r\n * @returns A new stream with sorted items.\r\n */\r\n sort(callback) {\r\n return new DataStream({\r\n [Symbol.iterator]: () => [...this._pairs]\r\n .sort(([idA, itemA], [idB, itemB]) => callback(itemA, itemB, idA, idB))[Symbol.iterator](),\r\n });\r\n }\r\n}\n\n/**\r\n * Add an id to given item if it doesn't have one already.\r\n *\r\n * @remarks\r\n * The item will be modified.\r\n * @param item - The item that will have an id after a call to this function.\r\n * @param idProp - The key of the id property.\r\n * @typeParam Item - Item type that may or may not have an id.\r\n * @typeParam IdProp - Name of the property that contains the id.\r\n * @returns true\r\n */\r\nfunction ensureFullItem(item, idProp) {\r\n if (item[idProp] == null) {\r\n // generate an id\r\n item[idProp] = v4();\r\n }\r\n return item;\r\n}\r\n/**\r\n * # DataSet\r\n *\r\n * Vis.js comes with a flexible DataSet, which can be used to hold and\r\n * manipulate unstructured data and listen for changes in the data. The DataSet\r\n * is key/value based. Data items can be added, updated and removed from the\r\n * DataSet, and one can subscribe to changes in the DataSet. The data in the\r\n * DataSet can be filtered and ordered. Data can be normalized when appending it\r\n * to the DataSet as well.\r\n *\r\n * ## Example\r\n *\r\n * The following example shows how to use a DataSet.\r\n *\r\n * ```javascript\r\n * // create a DataSet\r\n * var options = {};\r\n * var data = new vis.DataSet(options);\r\n *\r\n * // add items\r\n * // note that the data items can contain different properties and data formats\r\n * data.add([\r\n * {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true},\r\n * {id: 2, text: 'item 2', date: '2013-06-23', group: 2},\r\n * {id: 3, text: 'item 3', date: '2013-06-25', group: 2},\r\n * {id: 4, text: 'item 4'}\r\n * ]);\r\n *\r\n * // subscribe to any change in the DataSet\r\n * data.on('*', function (event, properties, senderId) {\r\n * console.log('event', event, properties);\r\n * });\r\n *\r\n * // update an existing item\r\n * data.update({id: 2, group: 1});\r\n *\r\n * // remove an item\r\n * data.remove(4);\r\n *\r\n * // get all ids\r\n * var ids = data.getIds();\r\n * console.log('ids', ids);\r\n *\r\n * // get a specific item\r\n * var item1 = data.get(1);\r\n * console.log('item1', item1);\r\n *\r\n * // retrieve a filtered subset of the data\r\n * var items = data.get({\r\n * filter: function (item) {\r\n * return item.group == 1;\r\n * }\r\n * });\r\n * console.log('filtered items', items);\r\n * ```\r\n *\r\n * @typeParam Item - Item type that may or may not have an id.\r\n * @typeParam IdProp - Name of the property that contains the id.\r\n */\r\nclass DataSet extends DataSetPart {\r\n /** Flush all queued calls. */\r\n flush;\r\n /** @inheritDoc */\r\n length;\r\n /** @inheritDoc */\r\n get idProp() {\r\n return this._idProp;\r\n }\r\n _options;\r\n _data;\r\n _idProp;\r\n _queue = null;\r\n /**\r\n * Construct a new DataSet.\r\n *\r\n * @param data - Initial data or options.\r\n * @param options - Options (type error if data is also options).\r\n */\r\n constructor(data, options) {\r\n super();\r\n // correctly read optional arguments\r\n if (data && !Array.isArray(data)) {\r\n options = data;\r\n data = [];\r\n }\r\n this._options = options || {};\r\n this._data = new Map(); // map with data indexed by id\r\n this.length = 0; // number of items in the DataSet\r\n this._idProp = this._options.fieldId || \"id\"; // name of the field containing id\r\n // add initial data when provided\r\n if (data && data.length) {\r\n this.add(data);\r\n }\r\n this.setOptions(options);\r\n }\r\n /**\r\n * Set new options.\r\n *\r\n * @param options - The new options.\r\n */\r\n setOptions(options) {\r\n if (options && options.queue !== undefined) {\r\n if (options.queue === false) {\r\n // delete queue if loaded\r\n if (this._queue) {\r\n this._queue.destroy();\r\n this._queue = null;\r\n }\r\n }\r\n else {\r\n // create queue and update its options\r\n if (!this._queue) {\r\n this._queue = Queue.extend(this, {\r\n replace: [\"add\", \"update\", \"remove\"],\r\n });\r\n }\r\n if (options.queue && typeof options.queue === \"object\") {\r\n this._queue.setOptions(options.queue);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Add a data item or an array with items.\r\n *\r\n * After the items are added to the DataSet, the DataSet will trigger an event `add`. When a `senderId` is provided, this id will be passed with the triggered event to all subscribers.\r\n *\r\n * ## Example\r\n *\r\n * ```javascript\r\n * // create a DataSet\r\n * const data = new vis.DataSet()\r\n *\r\n * // add items\r\n * const ids = data.add([\r\n * { id: 1, text: 'item 1' },\r\n * { id: 2, text: 'item 2' },\r\n * { text: 'item without an id' }\r\n * ])\r\n *\r\n * console.log(ids) // [1, 2, '']\r\n * ```\r\n *\r\n * @param data - Items to be added (ids will be generated if missing).\r\n * @param senderId - Sender id.\r\n * @returns addedIds - Array with the ids (generated if not present) of the added items.\r\n * @throws When an item with the same id as any of the added items already exists.\r\n */\r\n add(data, senderId) {\r\n const addedIds = [];\r\n let id;\r\n if (Array.isArray(data)) {\r\n // Array\r\n const idsToAdd = data.map((d) => d[this._idProp]);\r\n if (idsToAdd.some((id) => this._data.has(id))) {\r\n throw new Error(\"A duplicate id was found in the parameter array.\");\r\n }\r\n for (let i = 0, len = data.length; i < len; i++) {\r\n id = this._addItem(data[i]);\r\n addedIds.push(id);\r\n }\r\n }\r\n else if (data && typeof data === \"object\") {\r\n // Single item\r\n id = this._addItem(data);\r\n addedIds.push(id);\r\n }\r\n else {\r\n throw new Error(\"Unknown dataType\");\r\n }\r\n if (addedIds.length) {\r\n this._trigger(\"add\", { items: addedIds }, senderId);\r\n }\r\n return addedIds;\r\n }\r\n /**\r\n * Update existing items. When an item does not exist, it will be created.\r\n *\r\n * @remarks\r\n * The provided properties will be merged in the existing item. When an item does not exist, it will be created.\r\n *\r\n * After the items are updated, the DataSet will trigger an event `add` for the added items, and an event `update`. When a `senderId` is provided, this id will be passed with the triggered event to all subscribers.\r\n *\r\n * ## Example\r\n *\r\n * ```javascript\r\n * // create a DataSet\r\n * const data = new vis.DataSet([\r\n * { id: 1, text: 'item 1' },\r\n * { id: 2, text: 'item 2' },\r\n * { id: 3, text: 'item 3' }\r\n * ])\r\n *\r\n * // update items\r\n * const ids = data.update([\r\n * { id: 2, text: 'item 2 (updated)' },\r\n * { id: 4, text: 'item 4 (new)' }\r\n * ])\r\n *\r\n * console.log(ids) // [2, 4]\r\n * ```\r\n *\r\n * ## Warning for TypeScript users\r\n * This method may introduce partial items into the data set. Use add or updateOnly instead for better type safety.\r\n * @param data - Items to be updated (if the id is already present) or added (if the id is missing).\r\n * @param senderId - Sender id.\r\n * @returns updatedIds - The ids of the added (these may be newly generated if there was no id in the item from the data) or updated items.\r\n * @throws When the supplied data is neither an item nor an array of items.\r\n */\r\n update(data, senderId) {\r\n const addedIds = [];\r\n const updatedIds = [];\r\n const oldData = [];\r\n const updatedData = [];\r\n const idProp = this._idProp;\r\n const addOrUpdate = (item) => {\r\n const origId = item[idProp];\r\n if (origId != null && this._data.has(origId)) {\r\n const fullItem = item; // it has an id, therefore it is a fullitem\r\n const oldItem = Object.assign({}, this._data.get(origId));\r\n // update item\r\n const id = this._updateItem(fullItem);\r\n updatedIds.push(id);\r\n updatedData.push(fullItem);\r\n oldData.push(oldItem);\r\n }\r\n else {\r\n // add new item\r\n const id = this._addItem(item);\r\n addedIds.push(id);\r\n }\r\n };\r\n if (Array.isArray(data)) {\r\n // Array\r\n for (let i = 0, len = data.length; i < len; i++) {\r\n if (data[i] && typeof data[i] === \"object\") {\r\n addOrUpdate(data[i]);\r\n }\r\n else {\r\n console.warn(\"Ignoring input item, which is not an object at index \" + i);\r\n }\r\n }\r\n }\r\n else if (data && typeof data === \"object\") {\r\n // Single item\r\n addOrUpdate(data);\r\n }\r\n else {\r\n throw new Error(\"Unknown dataType\");\r\n }\r\n if (addedIds.length) {\r\n this._trigger(\"add\", { items: addedIds }, senderId);\r\n }\r\n if (updatedIds.length) {\r\n const props = { items: updatedIds, oldData: oldData, data: updatedData };\r\n // TODO: remove deprecated property 'data' some day\r\n //Object.defineProperty(props, 'data', {\r\n // 'get': (function() {\r\n // console.warn('Property data is deprecated. Use DataSet.get(ids) to retrieve the new data, use the oldData property on this object to get the old data');\r\n // return updatedData;\r\n // }).bind(this)\r\n //});\r\n this._trigger(\"update\", props, senderId);\r\n }\r\n return addedIds.concat(updatedIds);\r\n }\r\n /**\r\n * Update existing items. When an item does not exist, an error will be thrown.\r\n *\r\n * @remarks\r\n * The provided properties will be deeply merged into the existing item.\r\n * When an item does not exist (id not present in the data set or absent), an error will be thrown and nothing will be changed.\r\n *\r\n * After the items are updated, the DataSet will trigger an event `update`.\r\n * When a `senderId` is provided, this id will be passed with the triggered event to all subscribers.\r\n *\r\n * ## Example\r\n *\r\n * ```javascript\r\n * // create a DataSet\r\n * const data = new vis.DataSet([\r\n * { id: 1, text: 'item 1' },\r\n * { id: 2, text: 'item 2' },\r\n * { id: 3, text: 'item 3' },\r\n * ])\r\n *\r\n * // update items\r\n * const ids = data.update([\r\n * { id: 2, text: 'item 2 (updated)' }, // works\r\n * // { id: 4, text: 'item 4 (new)' }, // would throw\r\n * // { text: 'item 4 (new)' }, // would also throw\r\n * ])\r\n *\r\n * console.log(ids) // [2]\r\n * ```\r\n * @param data - Updates (the id and optionally other props) to the items in this data set.\r\n * @param senderId - Sender id.\r\n * @returns updatedIds - The ids of the updated items.\r\n * @throws When the supplied data is neither an item nor an array of items, when the ids are missing.\r\n */\r\n updateOnly(data, senderId) {\r\n if (!Array.isArray(data)) {\r\n data = [data];\r\n }\r\n const updateEventData = data\r\n .map((update) => {\r\n const oldData = this._data.get(update[this._idProp]);\r\n if (oldData == null) {\r\n throw new Error(\"Updating non-existent items is not allowed.\");\r\n }\r\n return { oldData, update };\r\n })\r\n .map(({ oldData, update, }) => {\r\n const id = oldData[this._idProp];\r\n const updatedData = pureDeepObjectAssign(oldData, update);\r\n this._data.set(id, updatedData);\r\n return {\r\n id,\r\n oldData: oldData,\r\n updatedData,\r\n };\r\n });\r\n if (updateEventData.length) {\r\n const props = {\r\n items: updateEventData.map((value) => value.id),\r\n oldData: updateEventData.map((value) => value.oldData),\r\n data: updateEventData.map((value) => value.updatedData),\r\n };\r\n // TODO: remove deprecated property 'data' some day\r\n //Object.defineProperty(props, 'data', {\r\n // 'get': (function() {\r\n // console.warn('Property data is deprecated. Use DataSet.get(ids) to retrieve the new data, use the oldData property on this object to get the old data');\r\n // return updatedData;\r\n // }).bind(this)\r\n //});\r\n this._trigger(\"update\", props, senderId);\r\n return props.items;\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n /** @inheritDoc */\r\n get(first, second) {\r\n // @TODO: Woudn't it be better to split this into multiple methods?\r\n // parse the arguments\r\n let id = undefined;\r\n let ids = undefined;\r\n let options = undefined;\r\n if (isId(first)) {\r\n // get(id [, options])\r\n id = first;\r\n options = second;\r\n }\r\n else if (Array.isArray(first)) {\r\n // get(ids [, options])\r\n ids = first;\r\n options = second;\r\n }\r\n else {\r\n // get([, options])\r\n options = first;\r\n }\r\n // determine the return type\r\n const returnType = options && options.returnType === \"Object\" ? \"Object\" : \"Array\";\r\n // @TODO: WTF is this? Or am I missing something?\r\n // var returnType\r\n // if (options && options.returnType) {\r\n // var allowedValues = ['Array', 'Object']\r\n // returnType =\r\n // allowedValues.indexOf(options.returnType) == -1\r\n // ? 'Array'\r\n // : options.returnType\r\n // } else {\r\n // returnType = 'Array'\r\n // }\r\n // build options\r\n const filter = options && options.filter;\r\n const items = [];\r\n let item = undefined;\r\n let itemIds = undefined;\r\n let itemId = undefined;\r\n // convert items\r\n if (id != null) {\r\n // return a single item\r\n item = this._data.get(id);\r\n if (item && filter && !filter(item)) {\r\n item = undefined;\r\n }\r\n }\r\n else if (ids != null) {\r\n // return a subset of items\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n item = this._data.get(ids[i]);\r\n if (item != null && (!filter || filter(item))) {\r\n items.push(item);\r\n }\r\n }\r\n }\r\n else {\r\n // return all items\r\n itemIds = [...this._data.keys()];\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n itemId = itemIds[i];\r\n item = this._data.get(itemId);\r\n if (item != null && (!filter || filter(item))) {\r\n items.push(item);\r\n }\r\n }\r\n }\r\n // order the results\r\n if (options && options.order && id == undefined) {\r\n this._sort(items, options.order);\r\n }\r\n // filter fields of the items\r\n if (options && options.fields) {\r\n const fields = options.fields;\r\n if (id != undefined && item != null) {\r\n item = this._filterFields(item, fields);\r\n }\r\n else {\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n items[i] = this._filterFields(items[i], fields);\r\n }\r\n }\r\n }\r\n // return the results\r\n if (returnType == \"Object\") {\r\n const result = {};\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const resultant = items[i];\r\n // @TODO: Shoudn't this be this._fieldId?\r\n // result[resultant.id] = resultant\r\n const id = resultant[this._idProp];\r\n result[id] = resultant;\r\n }\r\n return result;\r\n }\r\n else {\r\n if (id != null) {\r\n // a single item\r\n return item ?? null;\r\n }\r\n else {\r\n // just return our array\r\n return items;\r\n }\r\n }\r\n }\r\n /** @inheritDoc */\r\n getIds(options) {\r\n const data = this._data;\r\n const filter = options && options.filter;\r\n const order = options && options.order;\r\n const itemIds = [...data.keys()];\r\n const ids = [];\r\n if (filter) {\r\n // get filtered items\r\n if (order) {\r\n // create ordered list\r\n const items = [];\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = this._data.get(id);\r\n if (item != null && filter(item)) {\r\n items.push(item);\r\n }\r\n }\r\n this._sort(items, order);\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n ids.push(items[i][this._idProp]);\r\n }\r\n }\r\n else {\r\n // create unordered list\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = this._data.get(id);\r\n if (item != null && filter(item)) {\r\n ids.push(item[this._idProp]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // get all items\r\n if (order) {\r\n // create an ordered list\r\n const items = [];\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n items.push(data.get(id));\r\n }\r\n this._sort(items, order);\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n ids.push(items[i][this._idProp]);\r\n }\r\n }\r\n else {\r\n // create unordered list\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = data.get(id);\r\n if (item != null) {\r\n ids.push(item[this._idProp]);\r\n }\r\n }\r\n }\r\n }\r\n return ids;\r\n }\r\n /** @inheritDoc */\r\n getDataSet() {\r\n return this;\r\n }\r\n /** @inheritDoc */\r\n forEach(callback, options) {\r\n const filter = options && options.filter;\r\n const data = this._data;\r\n const itemIds = [...data.keys()];\r\n if (options && options.order) {\r\n // execute forEach on ordered list\r\n const items = this.get(options);\r\n for (let i = 0, len = items.length; i < len; i++) {\r\n const item = items[i];\r\n const id = item[this._idProp];\r\n callback(item, id);\r\n }\r\n }\r\n else {\r\n // unordered\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = this._data.get(id);\r\n if (item != null && (!filter || filter(item))) {\r\n callback(item, id);\r\n }\r\n }\r\n }\r\n }\r\n /** @inheritDoc */\r\n map(callback, options) {\r\n const filter = options && options.filter;\r\n const mappedItems = [];\r\n const data = this._data;\r\n const itemIds = [...data.keys()];\r\n // convert and filter items\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = this._data.get(id);\r\n if (item != null && (!filter || filter(item))) {\r\n mappedItems.push(callback(item, id));\r\n }\r\n }\r\n // order items\r\n if (options && options.order) {\r\n this._sort(mappedItems, options.order);\r\n }\r\n return mappedItems;\r\n }\r\n /**\r\n * Filter the fields of an item.\r\n *\r\n * @param item - The item whose fields should be filtered.\r\n * @param fields - The names of the fields that will be kept.\r\n * @typeParam K - Field name type.\r\n * @returns The item without any additional fields.\r\n */\r\n _filterFields(item, fields) {\r\n if (!item) {\r\n // item is null\r\n return item;\r\n }\r\n return (Array.isArray(fields)\r\n ? // Use the supplied array\r\n fields\r\n : // Use the keys of the supplied object\r\n Object.keys(fields)).reduce((filteredItem, field) => {\r\n filteredItem[field] = item[field];\r\n return filteredItem;\r\n }, {});\r\n }\r\n /**\r\n * Sort the provided array with items.\r\n *\r\n * @param items - Items to be sorted in place.\r\n * @param order - A field name or custom sort function.\r\n * @typeParam T - The type of the items in the items array.\r\n */\r\n _sort(items, order) {\r\n if (typeof order === \"string\") {\r\n // order by provided field name\r\n const name = order; // field name\r\n items.sort((a, b) => {\r\n // @TODO: How to treat missing properties?\r\n const av = a[name];\r\n const bv = b[name];\r\n return av > bv ? 1 : av < bv ? -1 : 0;\r\n });\r\n }\r\n else if (typeof order === \"function\") {\r\n // order by sort function\r\n items.sort(order);\r\n }\r\n else {\r\n // TODO: extend order by an Object {field:string, direction:string}\r\n // where direction can be 'asc' or 'desc'\r\n throw new TypeError(\"Order must be a function or a string\");\r\n }\r\n }\r\n /**\r\n * Remove an item or multiple items by “reference” (only the id is used) or by id.\r\n *\r\n * The method ignores removal of non-existing items, and returns an array containing the ids of the items which are actually removed from the DataSet.\r\n *\r\n * After the items are removed, the DataSet will trigger an event `remove` for the removed items. When a `senderId` is provided, this id will be passed with the triggered event to all subscribers.\r\n *\r\n * ## Example\r\n * ```javascript\r\n * // create a DataSet\r\n * const data = new vis.DataSet([\r\n * { id: 1, text: 'item 1' },\r\n * { id: 2, text: 'item 2' },\r\n * { id: 3, text: 'item 3' }\r\n * ])\r\n *\r\n * // remove items\r\n * const ids = data.remove([2, { id: 3 }, 4])\r\n *\r\n * console.log(ids) // [2, 3]\r\n * ```\r\n *\r\n * @param id - One or more items or ids of items to be removed.\r\n * @param senderId - Sender id.\r\n * @returns The ids of the removed items.\r\n */\r\n remove(id, senderId) {\r\n const removedIds = [];\r\n const removedItems = [];\r\n // force everything to be an array for simplicity\r\n const ids = Array.isArray(id) ? id : [id];\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const item = this._remove(ids[i]);\r\n if (item) {\r\n const itemId = item[this._idProp];\r\n if (itemId != null) {\r\n removedIds.push(itemId);\r\n removedItems.push(item);\r\n }\r\n }\r\n }\r\n if (removedIds.length) {\r\n this._trigger(\"remove\", { items: removedIds, oldData: removedItems }, senderId);\r\n }\r\n return removedIds;\r\n }\r\n /**\r\n * Remove an item by its id or reference.\r\n *\r\n * @param id - Id of an item or the item itself.\r\n * @returns The removed item if removed, null otherwise.\r\n */\r\n _remove(id) {\r\n // @TODO: It origianlly returned the item although the docs say id.\r\n // The code expects the item, so probably an error in the docs.\r\n let ident;\r\n // confirm the id to use based on the args type\r\n if (isId(id)) {\r\n ident = id;\r\n }\r\n else if (id && typeof id === \"object\") {\r\n ident = id[this._idProp]; // look for the identifier field using ._idProp\r\n }\r\n // do the removing if the item is found\r\n if (ident != null && this._data.has(ident)) {\r\n const item = this._data.get(ident) || null;\r\n this._data.delete(ident);\r\n --this.length;\r\n return item;\r\n }\r\n return null;\r\n }\r\n /**\r\n * Clear the entire data set.\r\n *\r\n * After the items are removed, the {@link DataSet} will trigger an event `remove` for all removed items. When a `senderId` is provided, this id will be passed with the triggered event to all subscribers.\r\n *\r\n * @param senderId - Sender id.\r\n * @returns removedIds - The ids of all removed items.\r\n */\r\n clear(senderId) {\r\n const ids = [...this._data.keys()];\r\n const items = [];\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n items.push(this._data.get(ids[i]));\r\n }\r\n this._data.clear();\r\n this.length = 0;\r\n this._trigger(\"remove\", { items: ids, oldData: items }, senderId);\r\n return ids;\r\n }\r\n /**\r\n * Find the item with maximum value of a specified field.\r\n *\r\n * @param field - Name of the property that should be searched for max value.\r\n * @returns Item containing max value, or null if no items.\r\n */\r\n max(field) {\r\n let max = null;\r\n let maxField = null;\r\n for (const item of this._data.values()) {\r\n const itemField = item[field];\r\n if (typeof itemField === \"number\" &&\r\n (maxField == null || itemField > maxField)) {\r\n max = item;\r\n maxField = itemField;\r\n }\r\n }\r\n return max || null;\r\n }\r\n /**\r\n * Find the item with minimum value of a specified field.\r\n *\r\n * @param field - Name of the property that should be searched for min value.\r\n * @returns Item containing min value, or null if no items.\r\n */\r\n min(field) {\r\n let min = null;\r\n let minField = null;\r\n for (const item of this._data.values()) {\r\n const itemField = item[field];\r\n if (typeof itemField === \"number\" &&\r\n (minField == null || itemField < minField)) {\r\n min = item;\r\n minField = itemField;\r\n }\r\n }\r\n return min || null;\r\n }\r\n /**\r\n * Find all distinct values of a specified field\r\n *\r\n * @param prop - The property name whose distinct values should be returned.\r\n * @returns Unordered array containing all distinct values. Items without specified property are ignored.\r\n */\r\n distinct(prop) {\r\n const data = this._data;\r\n const itemIds = [...data.keys()];\r\n const values = [];\r\n let count = 0;\r\n for (let i = 0, len = itemIds.length; i < len; i++) {\r\n const id = itemIds[i];\r\n const item = data.get(id);\r\n const value = item[prop];\r\n let exists = false;\r\n for (let j = 0; j < count; j++) {\r\n if (values[j] == value) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (!exists && value !== undefined) {\r\n values[count] = value;\r\n count++;\r\n }\r\n }\r\n return values;\r\n }\r\n /**\r\n * Add a single item. Will fail when an item with the same id already exists.\r\n *\r\n * @param item - A new item to be added.\r\n * @returns Added item's id. An id is generated when it is not present in the item.\r\n */\r\n _addItem(item) {\r\n const fullItem = ensureFullItem(item, this._idProp);\r\n const id = fullItem[this._idProp];\r\n // check whether this id is already taken\r\n if (this._data.has(id)) {\r\n // item already exists\r\n throw new Error(\"Cannot add item: item with id \" + id + \" already exists\");\r\n }\r\n this._data.set(id, fullItem);\r\n ++this.length;\r\n return id;\r\n }\r\n /**\r\n * Update a single item: merge with existing item.\r\n * Will fail when the item has no id, or when there does not exist an item with the same id.\r\n *\r\n * @param update - The new item\r\n * @returns The id of the updated item.\r\n */\r\n _updateItem(update) {\r\n const id = update[this._idProp];\r\n if (id == null) {\r\n throw new Error(\"Cannot update item: item has no id (item: \" +\r\n JSON.stringify(update) +\r\n \")\");\r\n }\r\n const item = this._data.get(id);\r\n if (!item) {\r\n // item doesn't exist\r\n throw new Error(\"Cannot update item: no item with id \" + id + \" found\");\r\n }\r\n this._data.set(id, { ...item, ...update });\r\n return id;\r\n }\r\n /** @inheritDoc */\r\n stream(ids) {\r\n if (ids) {\r\n const data = this._data;\r\n return new DataStream({\r\n *[Symbol.iterator]() {\r\n for (const id of ids) {\r\n const item = data.get(id);\r\n if (item != null) {\r\n yield [id, item];\r\n }\r\n }\r\n },\r\n });\r\n }\r\n else {\r\n return new DataStream({\r\n [Symbol.iterator]: this._data.entries.bind(this._data),\r\n });\r\n }\r\n }\r\n}\n\n/**\r\n * DataView\r\n *\r\n * A DataView offers a filtered and/or formatted view on a DataSet. One can subscribe to changes in a DataView, and easily get filtered or formatted data without having to specify filters and field types all the time.\r\n *\r\n * ## Example\r\n * ```javascript\r\n * // create a DataSet\r\n * var data = new vis.DataSet();\r\n * data.add([\r\n * {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true},\r\n * {id: 2, text: 'item 2', date: '2013-06-23', group: 2},\r\n * {id: 3, text: 'item 3', date: '2013-06-25', group: 2},\r\n * {id: 4, text: 'item 4'}\r\n * ]);\r\n *\r\n * // create a DataView\r\n * // the view will only contain items having a property group with value 1,\r\n * // and will only output fields id, text, and date.\r\n * var view = new vis.DataView(data, {\r\n * filter: function (item) {\r\n * return (item.group == 1);\r\n * },\r\n * fields: ['id', 'text', 'date']\r\n * });\r\n *\r\n * // subscribe to any change in the DataView\r\n * view.on('*', function (event, properties, senderId) {\r\n * console.log('event', event, properties);\r\n * });\r\n *\r\n * // update an item in the data set\r\n * data.update({id: 2, group: 1});\r\n *\r\n * // get all ids in the view\r\n * var ids = view.getIds();\r\n * console.log('ids', ids); // will output [1, 2]\r\n *\r\n * // get all items in the view\r\n * var items = view.get();\r\n * ```\r\n *\r\n * @typeParam Item - Item type that may or may not have an id.\r\n * @typeParam IdProp - Name of the property that contains the id.\r\n */\r\nclass DataView extends DataSetPart {\r\n /** @inheritDoc */\r\n length = 0;\r\n /** @inheritDoc */\r\n get idProp() {\r\n return this.getDataSet().idProp;\r\n }\r\n _listener;\r\n _data; // constructor → setData\r\n _ids = new Set(); // ids of the items currently in memory (just contains a boolean true)\r\n _options;\r\n /**\r\n * Create a DataView.\r\n *\r\n * @param data - The instance containing data (directly or indirectly).\r\n * @param options - Options to configure this data view.\r\n */\r\n constructor(data, options) {\r\n super();\r\n this._options = options || {};\r\n this._listener = this._onEvent.bind(this);\r\n this.setData(data);\r\n }\r\n // TODO: implement a function .config() to dynamically update things like configured filter\r\n // and trigger changes accordingly\r\n /**\r\n * Set a data source for the view.\r\n *\r\n * @param data - The instance containing data (directly or indirectly).\r\n * @remarks\r\n * Note that when the data view is bound to a data set it won't be garbage\r\n * collected unless the data set is too. Use `dataView.setData(null)` or\r\n * `dataView.dispose()` to enable garbage collection before you lose the last\r\n * reference.\r\n */\r\n setData(data) {\r\n if (this._data) {\r\n // unsubscribe from current dataset\r\n if (this._data.off) {\r\n this._data.off(\"*\", this._listener);\r\n }\r\n // trigger a remove of all items in memory\r\n const ids = this._data.getIds({ filter: this._options.filter });\r\n const items = this._data.get(ids);\r\n this._ids.clear();\r\n this.length = 0;\r\n this._trigger(\"remove\", { items: ids, oldData: items });\r\n }\r\n if (data != null) {\r\n this._data = data;\r\n // trigger an add of all added items\r\n const ids = this._data.getIds({ filter: this._options.filter });\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const id = ids[i];\r\n this._ids.add(id);\r\n }\r\n this.length = ids.length;\r\n this._trigger(\"add\", { items: ids });\r\n }\r\n else {\r\n this._data = new DataSet();\r\n }\r\n // subscribe to new dataset\r\n if (this._data.on) {\r\n this._data.on(\"*\", this._listener);\r\n }\r\n }\r\n /**\r\n * Refresh the DataView.\r\n * Useful when the DataView has a filter function containing a variable parameter.\r\n */\r\n refresh() {\r\n const ids = this._data.getIds({\r\n filter: this._options.filter,\r\n });\r\n const oldIds = [...this._ids];\r\n const newIds = {};\r\n const addedIds = [];\r\n const removedIds = [];\r\n const removedItems = [];\r\n // check for additions\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const id = ids[i];\r\n newIds[id] = true;\r\n if (!this._ids.has(id)) {\r\n addedIds.push(id);\r\n this._ids.add(id);\r\n }\r\n }\r\n // check for removals\r\n for (let i = 0, len = oldIds.length; i < len; i++) {\r\n const id = oldIds[i];\r\n const item = this._data.get(id);\r\n if (item == null) {\r\n // @TODO: Investigate.\r\n // Doesn't happen during tests or examples.\r\n // Is it really impossible or could it eventually happen?\r\n // How to handle it if it does? The types guarantee non-nullable items.\r\n console.error(\"If you see this, report it please.\");\r\n }\r\n else if (!newIds[id]) {\r\n removedIds.push(id);\r\n removedItems.push(item);\r\n this._ids.delete(id);\r\n }\r\n }\r\n this.length += addedIds.length - removedIds.length;\r\n // trigger events\r\n if (addedIds.length) {\r\n this._trigger(\"add\", { items: addedIds });\r\n }\r\n if (removedIds.length) {\r\n this._trigger(\"remove\", { items: removedIds, oldData: removedItems });\r\n }\r\n }\r\n /** @inheritDoc */\r\n get(first, second) {\r\n if (this._data == null) {\r\n return null;\r\n }\r\n // parse the arguments\r\n let ids = null;\r\n let options;\r\n if (isId(first) || Array.isArray(first)) {\r\n ids = first;\r\n options = second;\r\n }\r\n else {\r\n options = first;\r\n }\r\n // extend the options with the default options and provided options\r\n const viewOptions = Object.assign({}, this._options, options);\r\n // create a combined filter method when needed\r\n const thisFilter = this._options.filter;\r\n const optionsFilter = options && options.filter;\r\n if (thisFilter && optionsFilter) {\r\n viewOptions.filter = (item) => {\r\n return thisFilter(item) && optionsFilter(item);\r\n };\r\n }\r\n if (ids == null) {\r\n return this._data.get(viewOptions);\r\n }\r\n else {\r\n return this._data.get(ids, viewOptions);\r\n }\r\n }\r\n /** @inheritDoc */\r\n getIds(options) {\r\n if (this._data.length) {\r\n const defaultFilter = this._options.filter;\r\n const optionsFilter = options != null ? options.filter : null;\r\n let filter;\r\n if (optionsFilter) {\r\n if (defaultFilter) {\r\n filter = (item) => {\r\n return defaultFilter(item) && optionsFilter(item);\r\n };\r\n }\r\n else {\r\n filter = optionsFilter;\r\n }\r\n }\r\n else {\r\n filter = defaultFilter;\r\n }\r\n return this._data.getIds({\r\n filter: filter,\r\n order: options && options.order,\r\n });\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n /** @inheritDoc */\r\n forEach(callback, options) {\r\n if (this._data) {\r\n const defaultFilter = this._options.filter;\r\n const optionsFilter = options && options.filter;\r\n let filter;\r\n if (optionsFilter) {\r\n if (defaultFilter) {\r\n filter = function (item) {\r\n return defaultFilter(item) && optionsFilter(item);\r\n };\r\n }\r\n else {\r\n filter = optionsFilter;\r\n }\r\n }\r\n else {\r\n filter = defaultFilter;\r\n }\r\n this._data.forEach(callback, {\r\n filter: filter,\r\n order: options && options.order,\r\n });\r\n }\r\n }\r\n /** @inheritDoc */\r\n map(callback, options) {\r\n if (this._data) {\r\n const defaultFilter = this._options.filter;\r\n const optionsFilter = options && options.filter;\r\n let filter;\r\n if (optionsFilter) {\r\n if (defaultFilter) {\r\n filter = (item) => {\r\n return defaultFilter(item) && optionsFilter(item);\r\n };\r\n }\r\n else {\r\n filter = optionsFilter;\r\n }\r\n }\r\n else {\r\n filter = defaultFilter;\r\n }\r\n return this._data.map(callback, {\r\n filter: filter,\r\n order: options && options.order,\r\n });\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n /** @inheritDoc */\r\n getDataSet() {\r\n return this._data.getDataSet();\r\n }\r\n /** @inheritDoc */\r\n stream(ids) {\r\n return this._data.stream(ids || {\r\n [Symbol.iterator]: this._ids.keys.bind(this._ids),\r\n });\r\n }\r\n /**\r\n * Render the instance unusable prior to garbage collection.\r\n *\r\n * @remarks\r\n * The intention of this method is to help discover scenarios where the data\r\n * view is being used when the programmer thinks it has been garbage collected\r\n * already. It's stricter version of `dataView.setData(null)`.\r\n */\r\n dispose() {\r\n if (this._data?.off) {\r\n this._data.off(\"*\", this._listener);\r\n }\r\n const message = \"This data view has already been disposed of.\";\r\n const replacement = {\r\n get: () => {\r\n throw new Error(message);\r\n },\r\n set: () => {\r\n throw new Error(message);\r\n },\r\n configurable: false,\r\n };\r\n for (const key of Reflect.ownKeys(DataView.prototype)) {\r\n Object.defineProperty(this, key, replacement);\r\n }\r\n }\r\n /**\r\n * Event listener. Will propagate all events from the connected data set to the subscribers of the DataView, but will filter the items and only trigger when there are changes in the filtered data set.\r\n *\r\n * @param event - The name of the event.\r\n * @param params - Parameters of the event.\r\n * @param senderId - Id supplied by the sender.\r\n */\r\n _onEvent(event, params, senderId) {\r\n if (!params || !params.items || !this._data) {\r\n return;\r\n }\r\n const ids = params.items;\r\n const addedIds = [];\r\n const updatedIds = [];\r\n const removedIds = [];\r\n const oldItems = [];\r\n const updatedItems = [];\r\n const removedItems = [];\r\n switch (event) {\r\n case \"add\":\r\n // filter the ids of the added items\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const id = ids[i];\r\n const item = this.get(id);\r\n if (item) {\r\n this._ids.add(id);\r\n addedIds.push(id);\r\n }\r\n }\r\n break;\r\n case \"update\":\r\n // determine the event from the views viewpoint: an updated\r\n // item can be added, updated, or removed from this view.\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const id = ids[i];\r\n const item = this.get(id);\r\n if (item) {\r\n if (this._ids.has(id)) {\r\n updatedIds.push(id);\r\n updatedItems.push(params.data[i]);\r\n oldItems.push(params.oldData[i]);\r\n }\r\n else {\r\n this._ids.add(id);\r\n addedIds.push(id);\r\n }\r\n }\r\n else {\r\n if (this._ids.has(id)) {\r\n this._ids.delete(id);\r\n removedIds.push(id);\r\n removedItems.push(params.oldData[i]);\r\n }\r\n }\r\n }\r\n break;\r\n case \"remove\":\r\n // filter the ids of the removed items\r\n for (let i = 0, len = ids.length; i < len; i++) {\r\n const id = ids[i];\r\n if (this._ids.has(id)) {\r\n this._ids.delete(id);\r\n removedIds.push(id);\r\n removedItems.push(params.oldData[i]);\r\n }\r\n }\r\n break;\r\n }\r\n this.length += addedIds.length - removedIds.length;\r\n if (addedIds.length) {\r\n this._trigger(\"add\", { items: addedIds }, senderId);\r\n }\r\n if (updatedIds.length) {\r\n this._trigger(\"update\", { items: updatedIds, oldData: oldItems, data: updatedItems }, senderId);\r\n }\r\n if (removedIds.length) {\r\n this._trigger(\"remove\", { items: removedIds, oldData: removedItems }, senderId);\r\n }\r\n }\r\n}\n\n/**\r\n * Check that given value is compatible with Vis Data Set interface.\r\n *\r\n * @param idProp - The expected property to contain item id.\r\n * @param v - The value to be tested.\r\n * @returns True if all expected values and methods match, false otherwise.\r\n */\r\nfunction isDataSetLike(idProp, v) {\r\n return (typeof v === \"object\" &&\r\n v !== null &&\r\n idProp === v.idProp &&\r\n typeof v.add === \"function\" &&\r\n typeof v.clear === \"function\" &&\r\n typeof v.distinct === \"function\" &&\r\n typeof v.forEach === \"function\" &&\r\n typeof v.get === \"function\" &&\r\n typeof v.getDataSet === \"function\" &&\r\n typeof v.getIds === \"function\" &&\r\n typeof v.length === \"number\" &&\r\n typeof v.map === \"function\" &&\r\n typeof v.max === \"function\" &&\r\n typeof v.min === \"function\" &&\r\n typeof v.off === \"function\" &&\r\n typeof v.on === \"function\" &&\r\n typeof v.remove === \"function\" &&\r\n typeof v.setOptions === \"function\" &&\r\n typeof v.stream === \"function\" &&\r\n typeof v.update === \"function\" &&\r\n typeof v.updateOnly === \"function\");\r\n}\n\n/**\r\n * Check that given value is compatible with Vis Data View interface.\r\n *\r\n * @param idProp - The expected property to contain item id.\r\n * @param v - The value to be tested.\r\n * @returns True if all expected values and methods match, false otherwise.\r\n */\r\nfunction isDataViewLike(idProp, v) {\r\n return (typeof v === \"object\" &&\r\n v !== null &&\r\n idProp === v.idProp &&\r\n typeof v.forEach === \"function\" &&\r\n typeof v.get === \"function\" &&\r\n typeof v.getDataSet === \"function\" &&\r\n typeof v.getIds === \"function\" &&\r\n typeof v.length === \"number\" &&\r\n typeof v.map === \"function\" &&\r\n typeof v.off === \"function\" &&\r\n typeof v.on === \"function\" &&\r\n typeof v.stream === \"function\" &&\r\n isDataSetLike(idProp, v.getDataSet()));\r\n}\n\nexport { DataSet, DataStream, DataView, Queue, createNewDataPipeFrom, isDataSetLike, isDataViewLike };\n//# sourceMappingURL=vis-data.js.map\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nrequire('../modules/es.parse-float');\nvar path = require('../internals/path');\n\nmodule.exports = path.parseFloat;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nrequire('../../modules/es.object.get-own-property-names');\nvar path = require('../../internals/path');\n\nvar Object = path.Object;\n\nmodule.exports = function getOwnPropertyNames(it) {\n return Object.getOwnPropertyNames(it);\n};\n","'use strict';\nvar parent = require('../../es/object/get-own-property-names');\n\nmodule.exports = parent;\n","import { topMost } from \"vis-util/esnext\";\n\n/**\n * Helper functions for components\n */\n\n/**\n * Determine values to use for (sub)options of 'chosen'.\n *\n * This option is either a boolean or an object whose values should be examined further.\n * The relevant structures are:\n *\n * - chosen: \n * - chosen: { subOption: }\n *\n * Where subOption is 'node', 'edge' or 'label'.\n *\n * The intention of this method appears to be to set a specific priority to the options;\n * Since most properties are either bridged or merged into the local options objects, there\n * is not much point in handling them separately.\n * TODO: examine if 'most' in previous sentence can be replaced with 'all'. In that case, we\n * should be able to get rid of this method.\n *\n * @param {string} subOption option within object 'chosen' to consider; either 'node', 'edge' or 'label'\n * @param {object} pile array of options objects to consider\n * @returns {boolean | Function} value for passed subOption of 'chosen' to use\n */\nexport function choosify(subOption, pile) {\n // allowed values for subOption\n const allowed = [\"node\", \"edge\", \"label\"];\n let value = true;\n\n const chosen = topMost(pile, \"chosen\");\n if (typeof chosen === \"boolean\") {\n value = chosen;\n } else if (typeof chosen === \"object\") {\n if (allowed.indexOf(subOption) === -1) {\n throw new Error(\n \"choosify: subOption '\" +\n subOption +\n \"' should be one of \" +\n \"'\" +\n allowed.join(\"', '\") +\n \"'\"\n );\n }\n\n const chosenEdge = topMost(pile, [\"chosen\", subOption]);\n if (typeof chosenEdge === \"boolean\" || typeof chosenEdge === \"function\") {\n value = chosenEdge;\n }\n }\n\n return value;\n}\n\n/**\n * Check if the point falls within the given rectangle.\n *\n * @param {rect} rect\n * @param {point} point\n * @param {rotationPoint} [rotationPoint] if specified, the rotation that applies to the rectangle.\n * @returns {boolean} true if point within rectangle, false otherwise\n */\nexport function pointInRect(rect, point, rotationPoint) {\n if (rect.width <= 0 || rect.height <= 0) {\n return false; // early out\n }\n\n if (rotationPoint !== undefined) {\n // Rotate the point the same amount as the rectangle\n const tmp = {\n x: point.x - rotationPoint.x,\n y: point.y - rotationPoint.y,\n };\n\n if (rotationPoint.angle !== 0) {\n // In order to get the coordinates the same, you need to\n // rotate in the reverse direction\n const angle = -rotationPoint.angle;\n\n const tmp2 = {\n x: Math.cos(angle) * tmp.x - Math.sin(angle) * tmp.y,\n y: Math.sin(angle) * tmp.x + Math.cos(angle) * tmp.y,\n };\n point = tmp2;\n } else {\n point = tmp;\n }\n\n // Note that if a rotation is specified, the rectangle coordinates\n // are **not* the full canvas coordinates. They are relative to the\n // rotationPoint. Hence, the point coordinates need not be translated\n // back in this case.\n }\n\n const right = rect.x + rect.width;\n const bottom = rect.y + rect.width;\n\n return (\n rect.left < point.x &&\n right > point.x &&\n rect.top < point.y &&\n bottom > point.y\n );\n}\n\n/**\n * Check if given value is acceptable as a label text.\n *\n * @param {*} text value to check; can be anything at this point\n * @returns {boolean} true if valid label value, false otherwise\n */\nexport function isValidLabel(text) {\n // Note that this is quite strict: types that *might* be converted to string are disallowed\n return typeof text === \"string\" && text !== \"\";\n}\n\n/**\n * Returns x, y of self reference circle based on provided angle\n *\n * @param {object} ctx\n * @param {number} angle\n * @param {number} radius\n * @param {VisNode} node\n * @returns {object} x and y coordinates\n */\nexport function getSelfRefCoordinates(ctx, angle, radius, node) {\n let x = node.x;\n let y = node.y;\n\n if (typeof node.distanceToBorder === \"function\") {\n //calculating opposite and adjacent\n //distaneToBorder becomes Hypotenuse.\n //Formulas sin(a) = Opposite / Hypotenuse and cos(a) = Adjacent / Hypotenuse\n const toBorderDist = node.distanceToBorder(ctx, angle);\n const yFromNodeCenter = Math.sin(angle) * toBorderDist;\n const xFromNodeCenter = Math.cos(angle) * toBorderDist;\n //xFromNodeCenter is basically x and if xFromNodeCenter equals to the distance to border then it means\n //that y does not need calculation because it is equal node.height / 2 or node.y\n //same thing with yFromNodeCenter and if yFromNodeCenter equals to the distance to border then it means\n //that x is equal node.width / 2 or node.x\n if (xFromNodeCenter === toBorderDist) {\n x += toBorderDist;\n y = node.y;\n } else if (yFromNodeCenter === toBorderDist) {\n x = node.x;\n y -= toBorderDist;\n } else {\n x += xFromNodeCenter;\n y -= yFromNodeCenter;\n }\n } else if (node.shape.width > node.shape.height) {\n x = node.x + node.shape.width * 0.5;\n y = node.y - radius;\n } else {\n x = node.x + radius;\n y = node.y - node.shape.height * 0.5;\n }\n\n return { x, y };\n}\n","/**\n * Callback to determine text dimensions, using the parent label settings.\n *\n * @callback MeasureText\n * @param {text} text\n * @param {text} mod\n * @returns {object} { width, values} width in pixels and font attributes\n */\n\n/**\n * Helper class for Label which collects results of splitting labels into lines and blocks.\n *\n * @private\n */\nclass LabelAccumulator {\n /**\n * @param {MeasureText} measureText\n */\n constructor(measureText) {\n this.measureText = measureText;\n this.current = 0;\n this.width = 0;\n this.height = 0;\n this.lines = [];\n }\n\n /**\n * Append given text to the given line.\n *\n * @param {number} l index of line to add to\n * @param {string} text string to append to line\n * @param {'bold'|'ital'|'boldital'|'mono'|'normal'} [mod='normal']\n * @private\n */\n _add(l, text, mod = \"normal\") {\n if (this.lines[l] === undefined) {\n this.lines[l] = {\n width: 0,\n height: 0,\n blocks: [],\n };\n }\n\n // We still need to set a block for undefined and empty texts, hence return at this point\n // This is necessary because we don't know at this point if we're at the\n // start of an empty line or not.\n // To compensate, empty blocks are removed in `finalize()`.\n //\n // Empty strings should still have a height\n let tmpText = text;\n if (text === undefined || text === \"\") tmpText = \" \";\n\n // Determine width and get the font properties\n const result = this.measureText(tmpText, mod);\n const block = Object.assign({}, result.values);\n block.text = text;\n block.width = result.width;\n block.mod = mod;\n\n if (text === undefined || text === \"\") {\n block.width = 0;\n }\n\n this.lines[l].blocks.push(block);\n\n // Update the line width. We need this for determining if a string goes over max width\n this.lines[l].width += block.width;\n }\n\n /**\n * Returns the width in pixels of the current line.\n *\n * @returns {number}\n */\n curWidth() {\n const line = this.lines[this.current];\n if (line === undefined) return 0;\n\n return line.width;\n }\n\n /**\n * Add text in block to current line\n *\n * @param {string} text\n * @param {'bold'|'ital'|'boldital'|'mono'|'normal'} [mod='normal']\n */\n append(text, mod = \"normal\") {\n this._add(this.current, text, mod);\n }\n\n /**\n * Add text in block to current line and start a new line\n *\n * @param {string} text\n * @param {'bold'|'ital'|'boldital'|'mono'|'normal'} [mod='normal']\n */\n newLine(text, mod = \"normal\") {\n this._add(this.current, text, mod);\n this.current++;\n }\n\n /**\n * Determine and set the heights of all the lines currently contained in this instance\n *\n * Note that width has already been set.\n *\n * @private\n */\n determineLineHeights() {\n for (let k = 0; k < this.lines.length; k++) {\n const line = this.lines[k];\n\n // Looking for max height of blocks in line\n let height = 0;\n\n if (line.blocks !== undefined) {\n // Can happen if text contains e.g. '\\n '\n for (let l = 0; l < line.blocks.length; l++) {\n const block = line.blocks[l];\n\n if (height < block.height) {\n height = block.height;\n }\n }\n }\n\n line.height = height;\n }\n }\n\n /**\n * Determine the full size of the label text, as determined by current lines and blocks\n *\n * @private\n */\n determineLabelSize() {\n let width = 0;\n let height = 0;\n for (let k = 0; k < this.lines.length; k++) {\n const line = this.lines[k];\n\n if (line.width > width) {\n width = line.width;\n }\n height += line.height;\n }\n\n this.width = width;\n this.height = height;\n }\n\n /**\n * Remove all empty blocks and empty lines we don't need\n *\n * This must be done after the width/height determination,\n * so that these are set properly for processing here.\n *\n * @returns {Array} Lines with empty blocks (and some empty lines) removed\n * @private\n */\n removeEmptyBlocks() {\n const tmpLines = [];\n for (let k = 0; k < this.lines.length; k++) {\n const line = this.lines[k];\n\n // Note: an empty line in between text has width zero but is still relevant to layout.\n // So we can't use width for testing empty line here\n if (line.blocks.length === 0) continue;\n\n // Discard final empty line always\n if (k === this.lines.length - 1) {\n if (line.width === 0) continue;\n }\n\n const tmpLine = {};\n Object.assign(tmpLine, line);\n tmpLine.blocks = [];\n\n let firstEmptyBlock;\n const tmpBlocks = [];\n for (let l = 0; l < line.blocks.length; l++) {\n const block = line.blocks[l];\n if (block.width !== 0) {\n tmpBlocks.push(block);\n } else {\n if (firstEmptyBlock === undefined) {\n firstEmptyBlock = block;\n }\n }\n }\n\n // Ensure that there is *some* text present\n if (tmpBlocks.length === 0 && firstEmptyBlock !== undefined) {\n tmpBlocks.push(firstEmptyBlock);\n }\n\n tmpLine.blocks = tmpBlocks;\n\n tmpLines.push(tmpLine);\n }\n\n return tmpLines;\n }\n\n /**\n * Set the sizes for all lines and the whole thing.\n *\n * @returns {{width: (number|*), height: (number|*), lines: Array}}\n */\n finalize() {\n //console.log(JSON.stringify(this.lines, null, 2));\n\n this.determineLineHeights();\n this.determineLabelSize();\n const tmpLines = this.removeEmptyBlocks();\n\n // Return a simple hash object for further processing.\n return {\n width: this.width,\n height: this.height,\n lines: tmpLines,\n };\n }\n}\n\nexport default LabelAccumulator;\n","import LabelAccumulator from \"./LabelAccumulator\";\nimport { isValidLabel } from \"./ComponentUtil\";\n\n// Hash of prepared regexp's for tags\nconst tagPattern = {\n // HTML\n \"\": //,\n \"\": //,\n \"\": //,\n \"\": /<\\/b>/,\n \"\": /<\\/i>/,\n \"\": /<\\/code>/,\n // Markdown\n \"*\": /\\*/, // bold\n _: /_/, // ital\n \"`\": /`/, // mono\n afterBold: /[^*]/,\n afterItal: /[^_]/,\n afterMono: /[^`]/,\n};\n\n/**\n * Internal helper class for parsing the markup tags for HTML and Markdown.\n *\n * NOTE: Sequences of tabs and spaces are reduced to single space.\n * Scan usage of `this.spacing` within method\n */\nclass MarkupAccumulator {\n /**\n * Create an instance\n *\n * @param {string} text text to parse for markup\n */\n constructor(text) {\n this.text = text;\n this.bold = false;\n this.ital = false;\n this.mono = false;\n this.spacing = false;\n this.position = 0;\n this.buffer = \"\";\n this.modStack = [];\n\n this.blocks = [];\n }\n\n /**\n * Return the mod label currently on the top of the stack\n *\n * @returns {string} label of topmost mod\n * @private\n */\n mod() {\n return this.modStack.length === 0 ? \"normal\" : this.modStack[0];\n }\n\n /**\n * Return the mod label currently active\n *\n * @returns {string} label of active mod\n * @private\n */\n modName() {\n if (this.modStack.length === 0) return \"normal\";\n else if (this.modStack[0] === \"mono\") return \"mono\";\n else {\n if (this.bold && this.ital) {\n return \"boldital\";\n } else if (this.bold) {\n return \"bold\";\n } else if (this.ital) {\n return \"ital\";\n }\n }\n }\n\n /**\n * @private\n */\n emitBlock() {\n if (this.spacing) {\n this.add(\" \");\n this.spacing = false;\n }\n if (this.buffer.length > 0) {\n this.blocks.push({ text: this.buffer, mod: this.modName() });\n this.buffer = \"\";\n }\n }\n\n /**\n * Output text to buffer\n *\n * @param {string} text text to add\n * @private\n */\n add(text) {\n if (text === \" \") {\n this.spacing = true;\n }\n if (this.spacing) {\n this.buffer += \" \";\n this.spacing = false;\n }\n if (text != \" \") {\n this.buffer += text;\n }\n }\n\n /**\n * Handle parsing of whitespace\n *\n * @param {string} ch the character to check\n * @returns {boolean} true if the character was processed as whitespace, false otherwise\n */\n parseWS(ch) {\n if (/[ \\t]/.test(ch)) {\n if (!this.mono) {\n this.spacing = true;\n } else {\n this.add(ch);\n }\n return true;\n }\n\n return false;\n }\n\n /**\n * @param {string} tagName label for block type to set\n * @private\n */\n setTag(tagName) {\n this.emitBlock();\n this[tagName] = true;\n this.modStack.unshift(tagName);\n }\n\n /**\n * @param {string} tagName label for block type to unset\n * @private\n */\n unsetTag(tagName) {\n this.emitBlock();\n this[tagName] = false;\n this.modStack.shift();\n }\n\n /**\n * @param {string} tagName label for block type we are currently processing\n * @param {string|RegExp} tag string to match in text\n * @returns {boolean} true if the tag was processed, false otherwise\n */\n parseStartTag(tagName, tag) {\n // Note: if 'mono' passed as tagName, there is a double check here. This is OK\n if (!this.mono && !this[tagName] && this.match(tag)) {\n this.setTag(tagName);\n return true;\n }\n\n return false;\n }\n\n /**\n * @param {string|RegExp} tag\n * @param {number} [advance=true] if set, advance current position in text\n * @returns {boolean} true if match at given position, false otherwise\n * @private\n */\n match(tag, advance = true) {\n const [regExp, length] = this.prepareRegExp(tag);\n const matched = regExp.test(this.text.substr(this.position, length));\n\n if (matched && advance) {\n this.position += length - 1;\n }\n\n return matched;\n }\n\n /**\n * @param {string} tagName label for block type we are currently processing\n * @param {string|RegExp} tag string to match in text\n * @param {RegExp} [nextTag] regular expression to match for characters *following* the current tag\n * @returns {boolean} true if the tag was processed, false otherwise\n */\n parseEndTag(tagName, tag, nextTag) {\n let checkTag = this.mod() === tagName;\n if (tagName === \"mono\") {\n // special handling for 'mono'\n checkTag = checkTag && this.mono;\n } else {\n checkTag = checkTag && !this.mono;\n }\n\n if (checkTag && this.match(tag)) {\n if (nextTag !== undefined) {\n // Purpose of the following match is to prevent a direct unset/set of a given tag\n // E.g. '*bold **still bold*' => '*bold still bold*'\n if (\n this.position === this.text.length - 1 ||\n this.match(nextTag, false)\n ) {\n this.unsetTag(tagName);\n }\n } else {\n this.unsetTag(tagName);\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * @param {string|RegExp} tag string to match in text\n * @param {value} value string to replace tag with, if found at current position\n * @returns {boolean} true if the tag was processed, false otherwise\n */\n replace(tag, value) {\n if (this.match(tag)) {\n this.add(value);\n this.position += length - 1;\n return true;\n }\n\n return false;\n }\n\n /**\n * Create a regular expression for the tag if it isn't already one.\n *\n * The return value is an array `[RegExp, number]`, with exactly two value, where:\n * - RegExp is the regular expression to use\n * - number is the lenth of the input string to match\n *\n * @param {string|RegExp} tag string to match in text\n * @returns {Array} regular expression to use and length of input string to match\n * @private\n */\n prepareRegExp(tag) {\n let length;\n let regExp;\n if (tag instanceof RegExp) {\n regExp = tag;\n length = 1; // ASSUMPTION: regexp only tests one character\n } else {\n // use prepared regexp if present\n const prepared = tagPattern[tag];\n if (prepared !== undefined) {\n regExp = prepared;\n } else {\n regExp = new RegExp(tag);\n }\n\n length = tag.length;\n }\n\n return [regExp, length];\n }\n}\n\n/**\n * Helper class for Label which explodes the label text into lines and blocks within lines\n *\n * @private\n */\nclass LabelSplitter {\n /**\n * @param {CanvasRenderingContext2D} ctx Canvas rendering context\n * @param {Label} parent reference to the Label instance using current instance\n * @param {boolean} selected\n * @param {boolean} hover\n */\n constructor(ctx, parent, selected, hover) {\n this.ctx = ctx;\n this.parent = parent;\n this.selected = selected;\n this.hover = hover;\n\n /**\n * Callback to determine text width; passed to LabelAccumulator instance\n *\n * @param {string} text string to determine width of\n * @param {string} mod font type to use for this text\n * @returns {object} { width, values} width in pixels and font attributes\n */\n const textWidth = (text, mod) => {\n if (text === undefined) return 0;\n\n // TODO: This can be done more efficiently with caching\n // This will set the ctx.font correctly, depending on selected/hover and mod - so that ctx.measureText() will be accurate.\n const values = this.parent.getFormattingValues(ctx, selected, hover, mod);\n\n let width = 0;\n if (text !== \"\") {\n const measure = this.ctx.measureText(text);\n width = measure.width;\n }\n\n return { width, values: values };\n };\n\n this.lines = new LabelAccumulator(textWidth);\n }\n\n /**\n * Split passed text of a label into lines and blocks.\n *\n * # NOTE\n *\n * The handling of spacing is option dependent:\n *\n * - if `font.multi : false`, all spaces are retained\n * - if `font.multi : true`, every sequence of spaces is compressed to a single space\n *\n * This might not be the best way to do it, but this is as it has been working till now.\n * In order not to break existing functionality, for the time being this behaviour will\n * be retained in any code changes.\n *\n * @param {string} text text to split\n * @returns {Array}\n */\n process(text) {\n if (!isValidLabel(text)) {\n return this.lines.finalize();\n }\n\n const font = this.parent.fontOptions;\n\n // Normalize the end-of-line's to a single representation - order important\n text = text.replace(/\\r\\n/g, \"\\n\"); // Dos EOL's\n text = text.replace(/\\r/g, \"\\n\"); // Mac EOL's\n\n // Note that at this point, there can be no \\r's in the text.\n // This is used later on splitStringIntoLines() to split multifont texts.\n\n const nlLines = String(text).split(\"\\n\");\n const lineCount = nlLines.length;\n\n if (font.multi) {\n // Multi-font case: styling tags active\n for (let i = 0; i < lineCount; i++) {\n const blocks = this.splitBlocks(nlLines[i], font.multi);\n // Post: Sequences of tabs and spaces are reduced to single space\n\n if (blocks === undefined) continue;\n\n if (blocks.length === 0) {\n this.lines.newLine(\"\");\n continue;\n }\n\n if (font.maxWdt > 0) {\n // widthConstraint.maximum defined\n //console.log('Running widthConstraint multi, max: ' + this.fontOptions.maxWdt);\n for (let j = 0; j < blocks.length; j++) {\n const mod = blocks[j].mod;\n const text = blocks[j].text;\n this.splitStringIntoLines(text, mod, true);\n }\n } else {\n // widthConstraint.maximum NOT defined\n for (let j = 0; j < blocks.length; j++) {\n const mod = blocks[j].mod;\n const text = blocks[j].text;\n this.lines.append(text, mod);\n }\n }\n\n this.lines.newLine();\n }\n } else {\n // Single-font case\n if (font.maxWdt > 0) {\n // widthConstraint.maximum defined\n // console.log('Running widthConstraint normal, max: ' + this.fontOptions.maxWdt);\n for (let i = 0; i < lineCount; i++) {\n this.splitStringIntoLines(nlLines[i]);\n }\n } else {\n // widthConstraint.maximum NOT defined\n for (let i = 0; i < lineCount; i++) {\n this.lines.newLine(nlLines[i]);\n }\n }\n }\n\n return this.lines.finalize();\n }\n\n /**\n * normalize the markup system\n *\n * @param {boolean|'md'|'markdown'|'html'} markupSystem\n * @returns {string}\n */\n decodeMarkupSystem(markupSystem) {\n let system = \"none\";\n if (markupSystem === \"markdown\" || markupSystem === \"md\") {\n system = \"markdown\";\n } else if (markupSystem === true || markupSystem === \"html\") {\n system = \"html\";\n }\n return system;\n }\n\n /**\n *\n * @param {string} text\n * @returns {Array}\n */\n splitHtmlBlocks(text) {\n const s = new MarkupAccumulator(text);\n\n const parseEntities = (ch) => {\n if (/&/.test(ch)) {\n const parsed =\n s.replace(s.text, \"<\", \"<\") || s.replace(s.text, \"&\", \"&\");\n\n if (!parsed) {\n s.add(\"&\");\n }\n\n return true;\n }\n\n return false;\n };\n\n while (s.position < s.text.length) {\n const ch = s.text.charAt(s.position);\n\n const parsed =\n s.parseWS(ch) ||\n (/\") ||\n s.parseStartTag(\"ital\", \"\") ||\n s.parseStartTag(\"mono\", \"\") ||\n s.parseEndTag(\"bold\", \"\") ||\n s.parseEndTag(\"ital\", \"\") ||\n s.parseEndTag(\"mono\", \"\"))) ||\n parseEntities(ch);\n\n if (!parsed) {\n s.add(ch);\n }\n s.position++;\n }\n s.emitBlock();\n return s.blocks;\n }\n\n /**\n *\n * @param {string} text\n * @returns {Array}\n */\n splitMarkdownBlocks(text) {\n const s = new MarkupAccumulator(text);\n let beginable = true;\n\n const parseOverride = (ch) => {\n if (/\\\\/.test(ch)) {\n if (s.position < this.text.length + 1) {\n s.position++;\n ch = this.text.charAt(s.position);\n if (/ \\t/.test(ch)) {\n s.spacing = true;\n } else {\n s.add(ch);\n beginable = false;\n }\n }\n\n return true;\n }\n\n return false;\n };\n\n while (s.position < s.text.length) {\n const ch = s.text.charAt(s.position);\n\n const parsed =\n s.parseWS(ch) ||\n parseOverride(ch) ||\n ((beginable || s.spacing) &&\n (s.parseStartTag(\"bold\", \"*\") ||\n s.parseStartTag(\"ital\", \"_\") ||\n s.parseStartTag(\"mono\", \"`\"))) ||\n s.parseEndTag(\"bold\", \"*\", \"afterBold\") ||\n s.parseEndTag(\"ital\", \"_\", \"afterItal\") ||\n s.parseEndTag(\"mono\", \"`\", \"afterMono\");\n\n if (!parsed) {\n s.add(ch);\n beginable = false;\n }\n s.position++;\n }\n s.emitBlock();\n return s.blocks;\n }\n\n /**\n * Explodes a piece of text into single-font blocks using a given markup\n *\n * @param {string} text\n * @param {boolean|'md'|'markdown'|'html'} markupSystem\n * @returns {Array.<{text: string, mod: string}>}\n * @private\n */\n splitBlocks(text, markupSystem) {\n const system = this.decodeMarkupSystem(markupSystem);\n if (system === \"none\") {\n return [\n {\n text: text,\n mod: \"normal\",\n },\n ];\n } else if (system === \"markdown\") {\n return this.splitMarkdownBlocks(text);\n } else if (system === \"html\") {\n return this.splitHtmlBlocks(text);\n }\n }\n\n /**\n * @param {string} text\n * @returns {boolean} true if text length over the current max with\n * @private\n */\n overMaxWidth(text) {\n const width = this.ctx.measureText(text).width;\n return this.lines.curWidth() + width > this.parent.fontOptions.maxWdt;\n }\n\n /**\n * Determine the longest part of the sentence which still fits in the\n * current max width.\n *\n * @param {Array} words Array of strings signifying a text lines\n * @returns {number} index of first item in string making string go over max\n * @private\n */\n getLongestFit(words) {\n let text = \"\";\n let w = 0;\n\n while (w < words.length) {\n const pre = text === \"\" ? \"\" : \" \";\n const newText = text + pre + words[w];\n\n if (this.overMaxWidth(newText)) break;\n text = newText;\n w++;\n }\n\n return w;\n }\n\n /**\n * Determine the longest part of the string which still fits in the\n * current max width.\n *\n * @param {Array} words Array of strings signifying a text lines\n * @returns {number} index of first item in string making string go over max\n */\n getLongestFitWord(words) {\n let w = 0;\n\n while (w < words.length) {\n if (this.overMaxWidth(words.slice(0, w))) break;\n w++;\n }\n\n return w;\n }\n\n /**\n * Split the passed text into lines, according to width constraint (if any).\n *\n * The method assumes that the input string is a single line, i.e. without lines break.\n *\n * This method retains spaces, if still present (case `font.multi: false`).\n * A space which falls on an internal line break, will be replaced by a newline.\n * There is no special handling of tabs; these go along with the flow.\n *\n * @param {string} str\n * @param {string} [mod='normal']\n * @param {boolean} [appendLast=false]\n * @private\n */\n splitStringIntoLines(str, mod = \"normal\", appendLast = false) {\n // Set the canvas context font, based upon the current selected/hover state\n // and the provided mod, so the text measurement performed by getLongestFit\n // will be accurate - and not just use the font of whoever last used the canvas.\n this.parent.getFormattingValues(this.ctx, this.selected, this.hover, mod);\n\n // Still-present spaces are relevant, retain them\n str = str.replace(/^( +)/g, \"$1\\r\");\n str = str.replace(/([^\\r][^ ]*)( +)/g, \"$1\\r$2\\r\");\n let words = str.split(\"\\r\");\n\n while (words.length > 0) {\n let w = this.getLongestFit(words);\n\n if (w === 0) {\n // Special case: the first word is already larger than the max width.\n const word = words[0];\n\n // Break the word to the largest part that fits the line\n const x = this.getLongestFitWord(word);\n this.lines.newLine(word.slice(0, x), mod);\n\n // Adjust the word, so that the rest will be done next iteration\n words[0] = word.slice(x);\n } else {\n // skip any space that is replaced by a newline\n let newW = w;\n if (words[w - 1] === \" \") {\n w--;\n } else if (words[newW] === \" \") {\n newW++;\n }\n\n const text = words.slice(0, w).join(\"\");\n\n if (w == words.length && appendLast) {\n this.lines.append(text, mod);\n } else {\n this.lines.newLine(text, mod);\n }\n\n // Adjust the word, so that the rest will be done next iteration\n words = words.slice(newW);\n }\n }\n }\n}\n\nexport default LabelSplitter;\n","import { deepExtend, forEach, overrideOpacity, topMost } from \"vis-util/esnext\";\nimport { choosify, isValidLabel } from \"./ComponentUtil\";\nimport LabelSplitter from \"./LabelSplitter\";\n\n/**\n * List of special styles for multi-fonts\n *\n * @private\n */\nconst multiFontStyle = [\"bold\", \"ital\", \"boldital\", \"mono\"];\n\n/**\n * A Label to be used for Nodes or Edges.\n */\nclass Label {\n /**\n * @param {object} body\n * @param {object} options\n * @param {boolean} [edgelabel=false]\n */\n constructor(body, options, edgelabel = false) {\n this.body = body;\n this.pointToSelf = false;\n this.baseSize = undefined;\n this.fontOptions = {}; // instance variable containing the *instance-local* font options\n this.setOptions(options);\n this.size = { top: 0, left: 0, width: 0, height: 0, yLine: 0 };\n this.isEdgeLabel = edgelabel;\n }\n\n /**\n * @param {object} options the options of the parent Node-instance\n */\n setOptions(options) {\n this.elementOptions = options; // Reference to the options of the parent Node-instance\n\n this.initFontOptions(options.font);\n\n if (isValidLabel(options.label)) {\n this.labelDirty = true;\n } else {\n // Bad label! Change the option value to prevent bad stuff happening\n options.label = undefined;\n }\n\n if (options.font !== undefined && options.font !== null) {\n // font options can be deleted at various levels\n if (typeof options.font === \"string\") {\n this.baseSize = this.fontOptions.size;\n } else if (typeof options.font === \"object\") {\n const size = options.font.size;\n\n if (size !== undefined) {\n this.baseSize = size;\n }\n }\n }\n }\n\n /**\n * Init the font Options structure.\n *\n * Member fontOptions serves as an accumulator for the current font options.\n * As such, it needs to be completely separated from the node options.\n *\n * @param {object} newFontOptions the new font options to process\n * @private\n */\n initFontOptions(newFontOptions) {\n // Prepare the multi-font option objects.\n // These will be filled in propagateFonts(), if required\n forEach(multiFontStyle, (style) => {\n this.fontOptions[style] = {};\n });\n\n // Handle shorthand option, if present\n if (Label.parseFontString(this.fontOptions, newFontOptions)) {\n this.fontOptions.vadjust = 0;\n return;\n }\n\n // Copy over the non-multifont options, if specified\n forEach(newFontOptions, (prop, n) => {\n if (prop !== undefined && prop !== null && typeof prop !== \"object\") {\n this.fontOptions[n] = prop;\n }\n });\n }\n\n /**\n * If in-variable is a string, parse it as a font specifier.\n *\n * Note that following is not done here and have to be done after the call:\n * - Not all font options are set (vadjust, mod)\n *\n * @param {object} outOptions out-parameter, object in which to store the parse results (if any)\n * @param {object} inOptions font options to parse\n * @returns {boolean} true if font parsed as string, false otherwise\n * @static\n */\n static parseFontString(outOptions, inOptions) {\n if (!inOptions || typeof inOptions !== \"string\") return false;\n\n const newOptionsArray = inOptions.split(\" \");\n\n outOptions.size = +newOptionsArray[0].replace(\"px\", \"\");\n outOptions.face = newOptionsArray[1];\n outOptions.color = newOptionsArray[2];\n\n return true;\n }\n\n /**\n * Set the width and height constraints based on 'nearest' value\n *\n * @param {Array} pile array of option objects to consider\n * @returns {object} the actual constraint values to use\n * @private\n */\n constrain(pile) {\n // NOTE: constrainWidth and constrainHeight never set!\n // NOTE: for edge labels, only 'maxWdt' set\n // Node labels can set all the fields\n const fontOptions = {\n constrainWidth: false,\n maxWdt: -1,\n minWdt: -1,\n constrainHeight: false,\n minHgt: -1,\n valign: \"middle\",\n };\n\n const widthConstraint = topMost(pile, \"widthConstraint\");\n if (typeof widthConstraint === \"number\") {\n fontOptions.maxWdt = Number(widthConstraint);\n fontOptions.minWdt = Number(widthConstraint);\n } else if (typeof widthConstraint === \"object\") {\n const widthConstraintMaximum = topMost(pile, [\n \"widthConstraint\",\n \"maximum\",\n ]);\n if (typeof widthConstraintMaximum === \"number\") {\n fontOptions.maxWdt = Number(widthConstraintMaximum);\n }\n const widthConstraintMinimum = topMost(pile, [\n \"widthConstraint\",\n \"minimum\",\n ]);\n if (typeof widthConstraintMinimum === \"number\") {\n fontOptions.minWdt = Number(widthConstraintMinimum);\n }\n }\n\n const heightConstraint = topMost(pile, \"heightConstraint\");\n if (typeof heightConstraint === \"number\") {\n fontOptions.minHgt = Number(heightConstraint);\n } else if (typeof heightConstraint === \"object\") {\n const heightConstraintMinimum = topMost(pile, [\n \"heightConstraint\",\n \"minimum\",\n ]);\n if (typeof heightConstraintMinimum === \"number\") {\n fontOptions.minHgt = Number(heightConstraintMinimum);\n }\n const heightConstraintValign = topMost(pile, [\n \"heightConstraint\",\n \"valign\",\n ]);\n if (typeof heightConstraintValign === \"string\") {\n if (\n heightConstraintValign === \"top\" ||\n heightConstraintValign === \"bottom\"\n ) {\n fontOptions.valign = heightConstraintValign;\n }\n }\n }\n\n return fontOptions;\n }\n\n /**\n * Set options and update internal state\n *\n * @param {object} options options to set\n * @param {Array} pile array of option objects to consider for option 'chosen'\n */\n update(options, pile) {\n this.setOptions(options, true);\n this.propagateFonts(pile);\n deepExtend(this.fontOptions, this.constrain(pile));\n this.fontOptions.chooser = choosify(\"label\", pile);\n }\n\n /**\n * When margins are set in an element, adjust sizes is called to remove them\n * from the width/height constraints. This must be done prior to label sizing.\n *\n * @param {{top: number, right: number, bottom: number, left: number}} margins\n */\n adjustSizes(margins) {\n const widthBias = margins ? margins.right + margins.left : 0;\n if (this.fontOptions.constrainWidth) {\n this.fontOptions.maxWdt -= widthBias;\n this.fontOptions.minWdt -= widthBias;\n }\n const heightBias = margins ? margins.top + margins.bottom : 0;\n if (this.fontOptions.constrainHeight) {\n this.fontOptions.minHgt -= heightBias;\n }\n }\n\n /////////////////////////////////////////////////////////\n // Methods for handling options piles\n // Eventually, these will be moved to a separate class\n /////////////////////////////////////////////////////////\n\n /**\n * Add the font members of the passed list of option objects to the pile.\n *\n * @param {Pile} dstPile pile of option objects add to\n * @param {Pile} srcPile pile of option objects to take font options from\n * @private\n */\n addFontOptionsToPile(dstPile, srcPile) {\n for (let i = 0; i < srcPile.length; ++i) {\n this.addFontToPile(dstPile, srcPile[i]);\n }\n }\n\n /**\n * Add given font option object to the list of objects (the 'pile') to consider for determining\n * multi-font option values.\n *\n * @param {Pile} pile pile of option objects to use\n * @param {object} options instance to add to pile\n * @private\n */\n addFontToPile(pile, options) {\n if (options === undefined) return;\n if (options.font === undefined || options.font === null) return;\n\n const item = options.font;\n pile.push(item);\n }\n\n /**\n * Collect all own-property values from the font pile that aren't multi-font option objectss.\n *\n * @param {Pile} pile pile of option objects to use\n * @returns {object} object with all current own basic font properties\n * @private\n */\n getBasicOptions(pile) {\n const ret = {};\n\n // Scans the whole pile to get all options present\n for (let n = 0; n < pile.length; ++n) {\n let fontOptions = pile[n];\n\n // Convert shorthand if necessary\n const tmpShorthand = {};\n if (Label.parseFontString(tmpShorthand, fontOptions)) {\n fontOptions = tmpShorthand;\n }\n\n forEach(fontOptions, (opt, name) => {\n if (opt === undefined) return; // multi-font option need not be present\n if (Object.prototype.hasOwnProperty.call(ret, name)) return; // Keep first value we encounter\n\n if (multiFontStyle.indexOf(name) !== -1) {\n // Skip multi-font properties but we do need the structure\n ret[name] = {};\n } else {\n ret[name] = opt;\n }\n });\n }\n\n return ret;\n }\n\n /**\n * Return the value for given option for the given multi-font.\n *\n * All available option objects are trawled in the set order to construct the option values.\n *\n * ---------------------------------------------------------------------\n * ## Traversal of pile for multi-fonts\n *\n * The determination of multi-font option values is a special case, because any values not\n * present in the multi-font options should by definition be taken from the main font options,\n * i.e. from the current 'parent' object of the multi-font option.\n *\n * ### Search order for multi-fonts\n *\n * 'bold' used as example:\n *\n * - search in option group 'bold' in local properties\n * - search in main font option group in local properties\n *\n * ---------------------------------------------------------------------\n *\n * @param {Pile} pile pile of option objects to use\n * @param {MultiFontStyle} multiName sub path for the multi-font\n * @param {string} option the option to search for, for the given multi-font\n * @returns {string|number} the value for the given option\n * @private\n */\n getFontOption(pile, multiName, option) {\n let multiFont;\n\n // Search multi font in local properties\n for (let n = 0; n < pile.length; ++n) {\n const fontOptions = pile[n];\n\n if (Object.prototype.hasOwnProperty.call(fontOptions, multiName)) {\n multiFont = fontOptions[multiName];\n if (multiFont === undefined || multiFont === null) continue;\n\n // Convert shorthand if necessary\n // TODO: inefficient to do this conversion every time; find a better way.\n const tmpShorthand = {};\n if (Label.parseFontString(tmpShorthand, multiFont)) {\n multiFont = tmpShorthand;\n }\n\n if (Object.prototype.hasOwnProperty.call(multiFont, option)) {\n return multiFont[option];\n }\n }\n }\n\n // Option is not mentioned in the multi font options; take it from the parent font options.\n // These have already been converted with getBasicOptions(), so use the converted values.\n if (Object.prototype.hasOwnProperty.call(this.fontOptions, option)) {\n return this.fontOptions[option];\n }\n\n // A value **must** be found; you should never get here.\n throw new Error(\n \"Did not find value for multi-font for property: '\" + option + \"'\"\n );\n }\n\n /**\n * Return all options values for the given multi-font.\n *\n * All available option objects are trawled in the set order to construct the option values.\n *\n * @param {Pile} pile pile of option objects to use\n * @param {MultiFontStyle} multiName sub path for the mod-font\n * @returns {MultiFontOptions}\n * @private\n */\n getFontOptions(pile, multiName) {\n const result = {};\n const optionNames = [\"color\", \"size\", \"face\", \"mod\", \"vadjust\"]; // List of allowed options per multi-font\n\n for (let i = 0; i < optionNames.length; ++i) {\n const mod = optionNames[i];\n result[mod] = this.getFontOption(pile, multiName, mod);\n }\n\n return result;\n }\n\n /////////////////////////////////////////////////////////\n // End methods for handling options piles\n /////////////////////////////////////////////////////////\n\n /**\n * Collapse the font options for the multi-font to single objects, from\n * the chain of option objects passed (the 'pile').\n *\n * @param {Pile} pile sequence of option objects to consider.\n * First item in list assumed to be the newly set options.\n */\n propagateFonts(pile) {\n const fontPile = []; // sequence of font objects to consider, order important\n\n // Note that this.elementOptions is not used here.\n this.addFontOptionsToPile(fontPile, pile);\n this.fontOptions = this.getBasicOptions(fontPile);\n\n // We set multifont values even if multi === false, for consistency (things break otherwise)\n for (let i = 0; i < multiFontStyle.length; ++i) {\n const mod = multiFontStyle[i];\n const modOptions = this.fontOptions[mod];\n const tmpMultiFontOptions = this.getFontOptions(fontPile, mod);\n\n // Copy over found values\n forEach(tmpMultiFontOptions, (option, n) => {\n modOptions[n] = option;\n });\n\n modOptions.size = Number(modOptions.size);\n modOptions.vadjust = Number(modOptions.vadjust);\n }\n }\n\n /**\n * Main function. This is called from anything that wants to draw a label.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x\n * @param {number} y\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {string} [baseline='middle']\n */\n draw(ctx, x, y, selected, hover, baseline = \"middle\") {\n // if no label, return\n if (this.elementOptions.label === undefined) return;\n\n // check if we have to render the label\n let viewFontSize = this.fontOptions.size * this.body.view.scale;\n if (\n this.elementOptions.label &&\n viewFontSize < this.elementOptions.scaling.label.drawThreshold - 1\n )\n return;\n\n // This ensures that there will not be HUGE letters on screen\n // by setting an upper limit on the visible text size (regardless of zoomLevel)\n if (viewFontSize >= this.elementOptions.scaling.label.maxVisible) {\n viewFontSize =\n Number(this.elementOptions.scaling.label.maxVisible) /\n this.body.view.scale;\n }\n\n // update the size cache if required\n this.calculateLabelSize(ctx, selected, hover, x, y, baseline);\n this._drawBackground(ctx);\n this._drawText(ctx, x, this.size.yLine, baseline, viewFontSize);\n }\n\n /**\n * Draws the label background\n *\n * @param {CanvasRenderingContext2D} ctx\n * @private\n */\n _drawBackground(ctx) {\n if (\n this.fontOptions.background !== undefined &&\n this.fontOptions.background !== \"none\"\n ) {\n ctx.fillStyle = this.fontOptions.background;\n const size = this.getSize();\n ctx.fillRect(size.left, size.top, size.width, size.height);\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x\n * @param {number} y\n * @param {string} [baseline='middle']\n * @param {number} viewFontSize\n * @private\n */\n _drawText(ctx, x, y, baseline = \"middle\", viewFontSize) {\n [x, y] = this._setAlignment(ctx, x, y, baseline);\n\n ctx.textAlign = \"left\";\n x = x - this.size.width / 2; // Shift label 1/2-distance to the left\n if (this.fontOptions.valign && this.size.height > this.size.labelHeight) {\n if (this.fontOptions.valign === \"top\") {\n y -= (this.size.height - this.size.labelHeight) / 2;\n }\n if (this.fontOptions.valign === \"bottom\") {\n y += (this.size.height - this.size.labelHeight) / 2;\n }\n }\n\n // draw the text\n for (let i = 0; i < this.lineCount; i++) {\n const line = this.lines[i];\n if (line && line.blocks) {\n let width = 0;\n if (this.isEdgeLabel || this.fontOptions.align === \"center\") {\n width += (this.size.width - line.width) / 2;\n } else if (this.fontOptions.align === \"right\") {\n width += this.size.width - line.width;\n }\n for (let j = 0; j < line.blocks.length; j++) {\n const block = line.blocks[j];\n ctx.font = block.font;\n const [fontColor, strokeColor] = this._getColor(\n block.color,\n viewFontSize,\n block.strokeColor\n );\n if (block.strokeWidth > 0) {\n ctx.lineWidth = block.strokeWidth;\n ctx.strokeStyle = strokeColor;\n ctx.lineJoin = \"round\";\n }\n ctx.fillStyle = fontColor;\n\n if (block.strokeWidth > 0) {\n ctx.strokeText(block.text, x + width, y + block.vadjust);\n }\n ctx.fillText(block.text, x + width, y + block.vadjust);\n width += block.width;\n }\n y += line.height;\n }\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x\n * @param {number} y\n * @param {string} baseline\n * @returns {Array.}\n * @private\n */\n _setAlignment(ctx, x, y, baseline) {\n // check for label alignment (for edges)\n // TODO: make alignment for nodes\n if (\n this.isEdgeLabel &&\n this.fontOptions.align !== \"horizontal\" &&\n this.pointToSelf === false\n ) {\n x = 0;\n y = 0;\n\n const lineMargin = 2;\n if (this.fontOptions.align === \"top\") {\n ctx.textBaseline = \"alphabetic\";\n y -= 2 * lineMargin; // distance from edge, required because we use alphabetic. Alphabetic has less difference between browsers\n } else if (this.fontOptions.align === \"bottom\") {\n ctx.textBaseline = \"hanging\";\n y += 2 * lineMargin; // distance from edge, required because we use hanging. Hanging has less difference between browsers\n } else {\n ctx.textBaseline = \"middle\";\n }\n } else {\n ctx.textBaseline = baseline;\n }\n return [x, y];\n }\n\n /**\n * fade in when relative scale is between threshold and threshold - 1.\n * If the relative scale would be smaller than threshold -1 the draw function would have returned before coming here.\n *\n * @param {string} color The font color to use\n * @param {number} viewFontSize\n * @param {string} initialStrokeColor\n * @returns {Array.} An array containing the font color and stroke color\n * @private\n */\n _getColor(color, viewFontSize, initialStrokeColor) {\n let fontColor = color || \"#000000\";\n let strokeColor = initialStrokeColor || \"#ffffff\";\n if (viewFontSize <= this.elementOptions.scaling.label.drawThreshold) {\n const opacity = Math.max(\n 0,\n Math.min(\n 1,\n 1 - (this.elementOptions.scaling.label.drawThreshold - viewFontSize)\n )\n );\n fontColor = overrideOpacity(fontColor, opacity);\n strokeColor = overrideOpacity(strokeColor, opacity);\n }\n return [fontColor, strokeColor];\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @returns {{width: number, height: number}}\n */\n getTextSize(ctx, selected = false, hover = false) {\n this._processLabel(ctx, selected, hover);\n return {\n width: this.size.width,\n height: this.size.height,\n lineCount: this.lineCount,\n };\n }\n\n /**\n * Get the current dimensions of the label\n *\n * @returns {rect}\n */\n getSize() {\n const lineMargin = 2;\n let x = this.size.left; // default values which might be overridden below\n let y = this.size.top - 0.5 * lineMargin; // idem\n\n if (this.isEdgeLabel) {\n const x2 = -this.size.width * 0.5;\n\n switch (this.fontOptions.align) {\n case \"middle\":\n x = x2;\n y = -this.size.height * 0.5;\n break;\n case \"top\":\n x = x2;\n y = -(this.size.height + lineMargin);\n break;\n case \"bottom\":\n x = x2;\n y = lineMargin;\n break;\n }\n }\n\n const ret = {\n left: x,\n top: y,\n width: this.size.width,\n height: this.size.height,\n };\n\n return ret;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {number} [x=0]\n * @param {number} [y=0]\n * @param {'middle'|'hanging'} [baseline='middle']\n */\n calculateLabelSize(ctx, selected, hover, x = 0, y = 0, baseline = \"middle\") {\n this._processLabel(ctx, selected, hover);\n this.size.left = x - this.size.width * 0.5;\n this.size.top = y - this.size.height * 0.5;\n this.size.yLine = y + (1 - this.lineCount) * 0.5 * this.fontOptions.size;\n if (baseline === \"hanging\") {\n this.size.top += 0.5 * this.fontOptions.size;\n this.size.top += 4; // distance from node, required because we use hanging. Hanging has less difference between browsers\n this.size.yLine += 4; // distance from node\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {string} mod\n * @returns {{color, size, face, mod, vadjust, strokeWidth: *, strokeColor: (*|string|allOptions.edges.font.strokeColor|{string}|allOptions.nodes.font.strokeColor|Array)}}\n */\n getFormattingValues(ctx, selected, hover, mod) {\n const getValue = function (fontOptions, mod, option) {\n if (mod === \"normal\") {\n if (option === \"mod\") return \"\";\n return fontOptions[option];\n }\n\n if (fontOptions[mod][option] !== undefined) {\n // Grumbl leaving out test on undefined equals false for \"\"\n return fontOptions[mod][option];\n } else {\n // Take from parent font option\n return fontOptions[option];\n }\n };\n\n const values = {\n color: getValue(this.fontOptions, mod, \"color\"),\n size: getValue(this.fontOptions, mod, \"size\"),\n face: getValue(this.fontOptions, mod, \"face\"),\n mod: getValue(this.fontOptions, mod, \"mod\"),\n vadjust: getValue(this.fontOptions, mod, \"vadjust\"),\n strokeWidth: this.fontOptions.strokeWidth,\n strokeColor: this.fontOptions.strokeColor,\n };\n if (selected || hover) {\n if (\n mod === \"normal\" &&\n this.fontOptions.chooser === true &&\n this.elementOptions.labelHighlightBold\n ) {\n values.mod = \"bold\";\n } else {\n if (typeof this.fontOptions.chooser === \"function\") {\n this.fontOptions.chooser(\n values,\n this.elementOptions.id,\n selected,\n hover\n );\n }\n }\n }\n\n let fontString = \"\";\n if (values.mod !== undefined && values.mod !== \"\") {\n // safeguard for undefined - this happened\n fontString += values.mod + \" \";\n }\n fontString += values.size + \"px \" + values.face;\n\n ctx.font = fontString.replace(/\"/g, \"\");\n values.font = ctx.font;\n values.height = values.size;\n return values;\n }\n\n /**\n *\n * @param {boolean} selected\n * @param {boolean} hover\n * @returns {boolean}\n */\n differentState(selected, hover) {\n return selected !== this.selectedState || hover !== this.hoverState;\n }\n\n /**\n * This explodes the passed text into lines and determines the width, height and number of lines.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {string} inText the text to explode\n * @returns {{width, height, lines}|*}\n * @private\n */\n _processLabelText(ctx, selected, hover, inText) {\n const splitter = new LabelSplitter(ctx, this, selected, hover);\n return splitter.process(inText);\n }\n\n /**\n * This explodes the label string into lines and sets the width, height and number of lines.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @private\n */\n _processLabel(ctx, selected, hover) {\n if (this.labelDirty === false && !this.differentState(selected, hover))\n return;\n\n const state = this._processLabelText(\n ctx,\n selected,\n hover,\n this.elementOptions.label\n );\n\n if (this.fontOptions.minWdt > 0 && state.width < this.fontOptions.minWdt) {\n state.width = this.fontOptions.minWdt;\n }\n\n this.size.labelHeight = state.height;\n if (this.fontOptions.minHgt > 0 && state.height < this.fontOptions.minHgt) {\n state.height = this.fontOptions.minHgt;\n }\n\n this.lines = state.lines;\n this.lineCount = state.lines.length;\n this.size.width = state.width;\n this.size.height = state.height;\n this.selectedState = selected;\n this.hoverState = hover;\n\n this.labelDirty = false;\n }\n\n /**\n * Check if this label is visible\n *\n * @returns {boolean} true if this label will be show, false otherwise\n */\n visible() {\n if (\n this.size.width === 0 ||\n this.size.height === 0 ||\n this.elementOptions.label === undefined\n ) {\n return false; // nothing to display\n }\n\n const viewFontSize = this.fontOptions.size * this.body.view.scale;\n if (viewFontSize < this.elementOptions.scaling.label.drawThreshold - 1) {\n return false; // Too small or too far away to show\n }\n\n return true;\n }\n}\n\nexport default Label;\n","/**\n * The Base class for all Nodes.\n */\nclass NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n this.body = body;\n this.labelModule = labelModule;\n this.setOptions(options);\n this.top = undefined;\n this.left = undefined;\n this.height = undefined;\n this.width = undefined;\n this.radius = undefined;\n this.margin = undefined;\n this.refreshNeeded = true;\n this.boundingBox = { top: 0, left: 0, right: 0, bottom: 0 };\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n }\n\n /**\n *\n * @param {Label} labelModule\n * @private\n */\n _setMargins(labelModule) {\n this.margin = {};\n if (this.options.margin) {\n if (typeof this.options.margin == \"object\") {\n this.margin.top = this.options.margin.top;\n this.margin.right = this.options.margin.right;\n this.margin.bottom = this.options.margin.bottom;\n this.margin.left = this.options.margin.left;\n } else {\n this.margin.top = this.options.margin;\n this.margin.right = this.options.margin;\n this.margin.bottom = this.options.margin;\n this.margin.left = this.options.margin;\n }\n }\n labelModule.adjustSizes(this.margin);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n * @private\n */\n _distanceToBorder(ctx, angle) {\n const borderWidth = this.options.borderWidth;\n if (ctx) {\n this.resize(ctx);\n }\n return (\n Math.min(\n Math.abs(this.width / 2 / Math.cos(angle)),\n Math.abs(this.height / 2 / Math.sin(angle))\n ) + borderWidth\n );\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n enableShadow(ctx, values) {\n if (values.shadow) {\n ctx.shadowColor = values.shadowColor;\n ctx.shadowBlur = values.shadowSize;\n ctx.shadowOffsetX = values.shadowX;\n ctx.shadowOffsetY = values.shadowY;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n disableShadow(ctx, values) {\n if (values.shadow) {\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n ctx.shadowBlur = 0;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n enableBorderDashes(ctx, values) {\n if (values.borderDashes !== false) {\n if (ctx.setLineDash !== undefined) {\n let dashes = values.borderDashes;\n if (dashes === true) {\n dashes = [5, 15];\n }\n ctx.setLineDash(dashes);\n } else {\n console.warn(\n \"setLineDash is not supported in this browser. The dashed borders cannot be used.\"\n );\n this.options.shapeProperties.borderDashes = false;\n values.borderDashes = false;\n }\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n disableBorderDashes(ctx, values) {\n if (values.borderDashes !== false) {\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([0]);\n } else {\n console.warn(\n \"setLineDash is not supported in this browser. The dashed borders cannot be used.\"\n );\n this.options.shapeProperties.borderDashes = false;\n values.borderDashes = false;\n }\n }\n }\n\n /**\n * Determine if the shape of a node needs to be recalculated.\n *\n * @param {boolean} selected\n * @param {boolean} hover\n * @returns {boolean}\n * @protected\n */\n needsRefresh(selected, hover) {\n if (this.refreshNeeded === true) {\n // This is probably not the best location to reset this member.\n // However, in the current logic, it is the most convenient one.\n this.refreshNeeded = false;\n return true;\n }\n\n return (\n this.width === undefined ||\n this.labelModule.differentState(selected, hover)\n );\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n initContextForDraw(ctx, values) {\n const borderWidth = values.borderWidth / this.body.view.scale;\n\n ctx.lineWidth = Math.min(this.width, borderWidth);\n ctx.strokeStyle = values.borderColor;\n ctx.fillStyle = values.color;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n performStroke(ctx, values) {\n const borderWidth = values.borderWidth / this.body.view.scale;\n\n //draw dashed border if enabled, save and restore is required for firefox not to crash on unix.\n ctx.save();\n // if borders are zero width, they will be drawn with width 1 by default. This prevents that\n if (borderWidth > 0) {\n this.enableBorderDashes(ctx, values);\n //draw the border\n ctx.stroke();\n //disable dashed border for other elements\n this.disableBorderDashes(ctx, values);\n }\n ctx.restore();\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n */\n performFill(ctx, values) {\n ctx.save();\n ctx.fillStyle = values.color;\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n // draw the background\n ctx.fill();\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n\n ctx.restore();\n this.performStroke(ctx, values);\n }\n\n /**\n *\n * @param {number} margin\n * @private\n */\n _addBoundingBoxMargin(margin) {\n this.boundingBox.left -= margin;\n this.boundingBox.top -= margin;\n this.boundingBox.bottom += margin;\n this.boundingBox.right += margin;\n }\n\n /**\n * Actual implementation of this method call.\n *\n * Doing it like this makes it easier to override\n * in the child classes.\n *\n * @param {number} x width\n * @param {number} y height\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n * @private\n */\n _updateBoundingBox(x, y, ctx, selected, hover) {\n if (ctx !== undefined) {\n this.resize(ctx, selected, hover);\n }\n\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n this.boundingBox.left = this.left;\n this.boundingBox.top = this.top;\n this.boundingBox.bottom = this.top + this.height;\n this.boundingBox.right = this.left + this.width;\n }\n\n /**\n * Default implementation of this method call.\n * This acts as a stub which can be overridden.\n *\n * @param {number} x width\n * @param {number} y height\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n */\n updateBoundingBox(x, y, ctx, selected, hover) {\n this._updateBoundingBox(x, y, ctx, selected, hover);\n }\n\n /**\n * Determine the dimensions to use for nodes with an internal label\n *\n * Currently, these are: Circle, Ellipse, Database, Box\n * The other nodes have external labels, and will not call this method\n *\n * If there is no label, decent default values are supplied.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n * @returns {{width:number, height:number}}\n */\n getDimensionsFromLabel(ctx, selected, hover) {\n // NOTE: previously 'textSize' was not put in 'this' for Ellipse\n // TODO: examine the consequences.\n this.textSize = this.labelModule.getTextSize(ctx, selected, hover);\n let width = this.textSize.width;\n let height = this.textSize.height;\n\n const DEFAULT_SIZE = 14;\n if (width === 0) {\n // This happens when there is no label text set\n width = DEFAULT_SIZE; // use a decent default\n height = DEFAULT_SIZE; // if width zero, then height also always zero\n }\n\n return { width: width, height: height };\n }\n}\n\nexport default NodeBase;\n","\"use strict\";\n\nimport NodeBase from \"../util/NodeBase\";\nimport { drawRoundRect } from \"../util/shapes\";\n\n/**\n * A Box Node/Cluster shape.\n *\n * @augments NodeBase\n */\nclass Box extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this._setMargins(labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected = this.selected, hover = this.hover) {\n if (this.needsRefresh(selected, hover)) {\n const dimensions = this.getDimensionsFromLabel(ctx, selected, hover);\n\n this.width = dimensions.width + this.margin.right + this.margin.left;\n this.height = dimensions.height + this.margin.top + this.margin.bottom;\n this.radius = this.width / 2;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n this.initContextForDraw(ctx, values);\n drawRoundRect(\n ctx,\n this.left,\n this.top,\n this.width,\n this.height,\n values.borderRadius\n );\n this.performFill(ctx, values);\n\n this.updateBoundingBox(x, y, ctx, selected, hover);\n this.labelModule.draw(\n ctx,\n this.left + this.textSize.width / 2 + this.margin.left,\n this.top + this.textSize.height / 2 + this.margin.top,\n selected,\n hover\n );\n }\n\n /**\n *\n * @param {number} x width\n * @param {number} y height\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n */\n updateBoundingBox(x, y, ctx, selected, hover) {\n this._updateBoundingBox(x, y, ctx, selected, hover);\n\n const borderRadius = this.options.shapeProperties.borderRadius; // only effective for box\n this._addBoundingBoxMargin(borderRadius);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n if (ctx) {\n this.resize(ctx);\n }\n const borderWidth = this.options.borderWidth;\n\n return (\n Math.min(\n Math.abs(this.width / 2 / Math.cos(angle)),\n Math.abs(this.height / 2 / Math.sin(angle))\n ) + borderWidth\n );\n }\n}\n\nexport default Box;\n","import NodeBase from \"./NodeBase\";\nimport { drawCircle } from \"./shapes\";\n\n/**\n * NOTE: This is a bad base class\n *\n * Child classes are:\n *\n * Image - uses *only* image methods\n * Circle - uses *only* _drawRawCircle\n * CircleImage - uses all\n *\n * TODO: Refactor, move _drawRawCircle to different module, derive Circle from NodeBase\n * Rename this to ImageBase\n * Consolidate common code in Image and CircleImage to base class\n *\n * @augments NodeBase\n */\nclass CircleImageBase extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this.labelOffset = 0;\n this.selected = false;\n }\n\n /**\n *\n * @param {object} options\n * @param {object} [imageObj]\n * @param {object} [imageObjAlt]\n */\n setOptions(options, imageObj, imageObjAlt) {\n this.options = options;\n\n if (!(imageObj === undefined && imageObjAlt === undefined)) {\n this.setImages(imageObj, imageObjAlt);\n }\n }\n\n /**\n * Set the images for this node.\n *\n * The images can be updated after the initial setting of options;\n * therefore, this method needs to be reentrant.\n *\n * For correct working in error cases, it is necessary to properly set\n * field 'nodes.brokenImage' in the options.\n *\n * @param {Image} imageObj required; main image to show for this node\n * @param {Image|undefined} imageObjAlt optional; image to show when node is selected\n */\n setImages(imageObj, imageObjAlt) {\n if (imageObjAlt && this.selected) {\n this.imageObj = imageObjAlt;\n this.imageObjAlt = imageObj;\n } else {\n this.imageObj = imageObj;\n this.imageObjAlt = imageObjAlt;\n }\n }\n\n /**\n * Set selection and switch between the base and the selected image.\n *\n * Do the switch only if imageObjAlt exists.\n *\n * @param {boolean} selected value of new selected state for current node\n */\n switchImages(selected) {\n const selection_changed =\n (selected && !this.selected) || (!selected && this.selected);\n this.selected = selected; // Remember new selection\n\n if (this.imageObjAlt !== undefined && selection_changed) {\n const imageTmp = this.imageObj;\n this.imageObj = this.imageObjAlt;\n this.imageObjAlt = imageTmp;\n }\n }\n\n /**\n * Returns Image Padding from node options\n *\n * @returns {{top: number,left: number,bottom: number,right: number}} image padding inside this shape\n * @private\n */\n _getImagePadding() {\n const imgPadding = { top: 0, right: 0, bottom: 0, left: 0 };\n if (this.options.imagePadding) {\n const optImgPadding = this.options.imagePadding;\n if (typeof optImgPadding == \"object\") {\n imgPadding.top = optImgPadding.top;\n imgPadding.right = optImgPadding.right;\n imgPadding.bottom = optImgPadding.bottom;\n imgPadding.left = optImgPadding.left;\n } else {\n imgPadding.top = optImgPadding;\n imgPadding.right = optImgPadding;\n imgPadding.bottom = optImgPadding;\n imgPadding.left = optImgPadding;\n }\n }\n\n return imgPadding;\n }\n\n /**\n * Adjust the node dimensions for a loaded image.\n *\n * Pre: this.imageObj is valid\n */\n _resizeImage() {\n let width, height;\n\n if (this.options.shapeProperties.useImageSize === false) {\n // Use the size property\n let ratio_width = 1;\n let ratio_height = 1;\n\n // Only calculate the proper ratio if both width and height not zero\n if (this.imageObj.width && this.imageObj.height) {\n if (this.imageObj.width > this.imageObj.height) {\n ratio_width = this.imageObj.width / this.imageObj.height;\n } else {\n ratio_height = this.imageObj.height / this.imageObj.width;\n }\n }\n\n width = this.options.size * 2 * ratio_width;\n height = this.options.size * 2 * ratio_height;\n } else {\n // Use the image size with image padding\n const imgPadding = this._getImagePadding();\n width = this.imageObj.width + imgPadding.left + imgPadding.right;\n height = this.imageObj.height + imgPadding.top + imgPadding.bottom;\n }\n\n this.width = width;\n this.height = height;\n this.radius = 0.5 * this.width;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {ArrowOptions} values\n * @private\n */\n _drawRawCircle(ctx, x, y, values) {\n this.initContextForDraw(ctx, values);\n drawCircle(ctx, x, y, values.size);\n this.performFill(ctx, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {ArrowOptions} values\n * @private\n */\n _drawImageAtPosition(ctx, values) {\n if (this.imageObj.width != 0) {\n // draw the image\n ctx.globalAlpha = values.opacity !== undefined ? values.opacity : 1;\n\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n\n let factor = 1;\n if (this.options.shapeProperties.interpolation === true) {\n factor = this.imageObj.width / this.width / this.body.view.scale;\n }\n\n const imgPadding = this._getImagePadding();\n\n const imgPosLeft = this.left + imgPadding.left;\n const imgPosTop = this.top + imgPadding.top;\n const imgWidth = this.width - imgPadding.left - imgPadding.right;\n const imgHeight = this.height - imgPadding.top - imgPadding.bottom;\n this.imageObj.drawImageAtPosition(\n ctx,\n factor,\n imgPosLeft,\n imgPosTop,\n imgWidth,\n imgHeight\n );\n\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @private\n */\n _drawImageLabel(ctx, x, y, selected, hover) {\n let offset = 0;\n\n if (this.height !== undefined) {\n offset = this.height * 0.5;\n const labelDimensions = this.labelModule.getTextSize(\n ctx,\n selected,\n hover\n );\n if (labelDimensions.lineCount >= 1) {\n offset += labelDimensions.height / 2;\n }\n }\n\n const yLabel = y + offset;\n\n if (this.options.label) {\n this.labelOffset = offset;\n }\n this.labelModule.draw(ctx, x, yLabel, selected, hover, \"hanging\");\n }\n}\n\nexport default CircleImageBase;\n","\"use strict\";\n\nimport CircleImageBase from \"../util/CircleImageBase\";\n\n/**\n * A Circle Node/Cluster shape.\n *\n * @augments CircleImageBase\n */\nclass Circle extends CircleImageBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this._setMargins(labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected = this.selected, hover = this.hover) {\n if (this.needsRefresh(selected, hover)) {\n const dimensions = this.getDimensionsFromLabel(ctx, selected, hover);\n\n const diameter = Math.max(\n dimensions.width + this.margin.right + this.margin.left,\n dimensions.height + this.margin.top + this.margin.bottom\n );\n\n this.options.size = diameter / 2; // NOTE: this size field only set here, not in Ellipse, Database, Box\n this.width = diameter;\n this.height = diameter;\n this.radius = this.width / 2;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n this._drawRawCircle(ctx, x, y, values);\n\n this.updateBoundingBox(x, y);\n this.labelModule.draw(\n ctx,\n this.left + this.textSize.width / 2 + this.margin.left,\n y,\n selected,\n hover\n );\n }\n\n /**\n *\n * @param {number} x width\n * @param {number} y height\n */\n updateBoundingBox(x, y) {\n this.boundingBox.top = y - this.options.size;\n this.boundingBox.left = x - this.options.size;\n this.boundingBox.right = x + this.options.size;\n this.boundingBox.bottom = y + this.options.size;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @returns {number}\n */\n distanceToBorder(ctx) {\n if (ctx) {\n this.resize(ctx);\n }\n return this.width * 0.5;\n }\n}\n\nexport default Circle;\n","\"use strict\";\n\nimport CircleImageBase from \"../util/CircleImageBase\";\n\n/**\n * A CircularImage Node/Cluster shape.\n *\n * @augments CircleImageBase\n */\nclass CircularImage extends CircleImageBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n * @param {Image} imageObj\n * @param {Image} imageObjAlt\n */\n constructor(options, body, labelModule, imageObj, imageObjAlt) {\n super(options, body, labelModule);\n\n this.setImages(imageObj, imageObjAlt);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected = this.selected, hover = this.hover) {\n const imageAbsent =\n this.imageObj.src === undefined ||\n this.imageObj.width === undefined ||\n this.imageObj.height === undefined;\n\n if (imageAbsent) {\n const diameter = this.options.size * 2;\n this.width = diameter;\n this.height = diameter;\n this.radius = 0.5 * this.width;\n return;\n }\n\n // At this point, an image is present, i.e. this.imageObj is valid.\n if (this.needsRefresh(selected, hover)) {\n this._resizeImage();\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.switchImages(selected);\n this.resize();\n\n let labelX = x,\n labelY = y;\n\n if (this.options.shapeProperties.coordinateOrigin === \"top-left\") {\n this.left = x;\n this.top = y;\n labelX += this.width / 2;\n labelY += this.height / 2;\n } else {\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n }\n\n // draw the background circle. IMPORTANT: the stroke in this method is used by the clip method below.\n this._drawRawCircle(ctx, labelX, labelY, values);\n\n // now we draw in the circle, we save so we can revert the clip operation after drawing.\n ctx.save();\n // clip is used to use the stroke in drawRawCircle as an area that we can draw in.\n ctx.clip();\n // draw the image\n this._drawImageAtPosition(ctx, values);\n // restore so we can again draw on the full canvas\n ctx.restore();\n\n this._drawImageLabel(ctx, labelX, labelY, selected, hover);\n\n this.updateBoundingBox(x, y);\n }\n\n // TODO: compare with Circle.updateBoundingBox(), consolidate? More stuff is happening here\n /**\n *\n * @param {number} x width\n * @param {number} y height\n */\n updateBoundingBox(x, y) {\n if (this.options.shapeProperties.coordinateOrigin === \"top-left\") {\n this.boundingBox.top = y;\n this.boundingBox.left = x;\n this.boundingBox.right = x + this.options.size * 2;\n this.boundingBox.bottom = y + this.options.size * 2;\n } else {\n this.boundingBox.top = y - this.options.size;\n this.boundingBox.left = x - this.options.size;\n this.boundingBox.right = x + this.options.size;\n this.boundingBox.bottom = y + this.options.size;\n }\n\n // TODO: compare with Image.updateBoundingBox(), consolidate?\n this.boundingBox.left = Math.min(\n this.boundingBox.left,\n this.labelModule.size.left\n );\n this.boundingBox.right = Math.max(\n this.boundingBox.right,\n this.labelModule.size.left + this.labelModule.size.width\n );\n this.boundingBox.bottom = Math.max(\n this.boundingBox.bottom,\n this.boundingBox.bottom + this.labelOffset\n );\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @returns {number}\n */\n distanceToBorder(ctx) {\n if (ctx) {\n this.resize(ctx);\n }\n return this.width * 0.5;\n }\n}\n\nexport default CircularImage;\n","import NodeBase from \"../util/NodeBase\";\nimport { getShape } from \"./shapes\";\n\n/**\n * Base class for constructing Node/Cluster Shapes.\n *\n * @augments NodeBase\n */\nclass ShapeBase extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n * @param {object} [values={size: this.options.size}]\n */\n resize(\n ctx,\n selected = this.selected,\n hover = this.hover,\n values = { size: this.options.size }\n ) {\n if (this.needsRefresh(selected, hover)) {\n this.labelModule.getTextSize(ctx, selected, hover);\n const size = 2 * values.size;\n this.width = this.customSizeWidth ?? size;\n this.height = this.customSizeHeight ?? size;\n this.radius = 0.5 * this.width;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {string} shape\n * @param {number} sizeMultiplier - Unused! TODO: Remove next major release\n * @param {number} x\n * @param {number} y\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @private\n * @returns {object} Callbacks to draw later on higher layers.\n */\n _drawShape(ctx, shape, sizeMultiplier, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover, values);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n this.initContextForDraw(ctx, values);\n getShape(shape)(ctx, x, y, values.size);\n this.performFill(ctx, values);\n\n if (this.options.icon !== undefined) {\n if (this.options.icon.code !== undefined) {\n ctx.font =\n (selected ? \"bold \" : \"\") +\n this.height / 2 +\n \"px \" +\n (this.options.icon.face || \"FontAwesome\");\n ctx.fillStyle = this.options.icon.color || \"black\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillText(this.options.icon.code, x, y);\n }\n }\n\n return {\n drawExternalLabel: () => {\n if (this.options.label !== undefined) {\n // Need to call following here in order to ensure value for\n // `this.labelModule.size.height`.\n this.labelModule.calculateLabelSize(\n ctx,\n selected,\n hover,\n x,\n y,\n \"hanging\"\n );\n const yLabel =\n y + 0.5 * this.height + 0.5 * this.labelModule.size.height;\n this.labelModule.draw(ctx, x, yLabel, selected, hover, \"hanging\");\n }\n\n this.updateBoundingBox(x, y);\n },\n };\n }\n\n /**\n *\n * @param {number} x\n * @param {number} y\n */\n updateBoundingBox(x, y) {\n this.boundingBox.top = y - this.options.size;\n this.boundingBox.left = x - this.options.size;\n this.boundingBox.right = x + this.options.size;\n this.boundingBox.bottom = y + this.options.size;\n\n if (this.options.label !== undefined && this.labelModule.size.width > 0) {\n this.boundingBox.left = Math.min(\n this.boundingBox.left,\n this.labelModule.size.left\n );\n this.boundingBox.right = Math.max(\n this.boundingBox.right,\n this.labelModule.size.left + this.labelModule.size.width\n );\n this.boundingBox.bottom = Math.max(\n this.boundingBox.bottom,\n this.boundingBox.bottom + this.labelModule.size.height\n );\n }\n }\n}\n\nexport default ShapeBase;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A CustomShape Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass CustomShape extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n * @param {Function} ctxRenderer\n */\n constructor(options, body, labelModule, ctxRenderer) {\n super(options, body, labelModule, ctxRenderer);\n this.ctxRenderer = ctxRenderer;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on different layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover, values);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n // Guard right away because someone may just draw in the function itself.\n ctx.save();\n const drawLater = this.ctxRenderer({\n ctx,\n id: this.options.id,\n x,\n y,\n state: { selected, hover },\n style: { ...values },\n label: this.options.label,\n });\n // Render the node shape bellow arrows.\n if (drawLater.drawNode != null) {\n drawLater.drawNode();\n }\n ctx.restore();\n\n if (drawLater.drawExternalLabel) {\n // Guard the external label (above arrows) drawing function.\n const drawExternalLabel = drawLater.drawExternalLabel;\n drawLater.drawExternalLabel = () => {\n ctx.save();\n drawExternalLabel();\n ctx.restore();\n };\n }\n\n if (drawLater.nodeDimensions) {\n this.customSizeWidth = drawLater.nodeDimensions.width;\n this.customSizeHeight = drawLater.nodeDimensions.height;\n }\n\n return drawLater;\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default CustomShape;\n","\"use strict\";\n\nimport NodeBase from \"../util/NodeBase\";\nimport { drawDatabase } from \"../util/shapes\";\n\n/**\n * A Database Node/Cluster shape.\n *\n * @augments NodeBase\n */\nclass Database extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this._setMargins(labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n */\n resize(ctx, selected, hover) {\n if (this.needsRefresh(selected, hover)) {\n const dimensions = this.getDimensionsFromLabel(ctx, selected, hover);\n const size = dimensions.width + this.margin.right + this.margin.left;\n\n this.width = size;\n this.height = size;\n this.radius = this.width / 2;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n this.initContextForDraw(ctx, values);\n drawDatabase(\n ctx,\n x - this.width / 2,\n y - this.height / 2,\n this.width,\n this.height\n );\n this.performFill(ctx, values);\n\n this.updateBoundingBox(x, y, ctx, selected, hover);\n this.labelModule.draw(\n ctx,\n this.left + this.textSize.width / 2 + this.margin.left,\n this.top + this.textSize.height / 2 + this.margin.top,\n selected,\n hover\n );\n }\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Database;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Diamond Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Diamond extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"diamond\", 4, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Diamond;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Dot Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Dot extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"circle\", 2, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @returns {number}\n */\n distanceToBorder(ctx) {\n if (ctx) {\n this.resize(ctx);\n }\n return this.options.size;\n }\n}\n\nexport default Dot;\n","\"use strict\";\n\nimport NodeBase from \"../util/NodeBase\";\nimport { drawEllipse } from \"../util/shapes\";\n\n/**\n * Am Ellipse Node/Cluster shape.\n *\n * @augments NodeBase\n */\nclass Ellipse extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected = this.selected, hover = this.hover) {\n if (this.needsRefresh(selected, hover)) {\n const dimensions = this.getDimensionsFromLabel(ctx, selected, hover);\n\n this.height = dimensions.height * 2;\n this.width = dimensions.width + dimensions.height;\n this.radius = 0.5 * this.width;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.left = x - this.width * 0.5;\n this.top = y - this.height * 0.5;\n\n this.initContextForDraw(ctx, values);\n drawEllipse(ctx, this.left, this.top, this.width, this.height);\n this.performFill(ctx, values);\n\n this.updateBoundingBox(x, y, ctx, selected, hover);\n this.labelModule.draw(ctx, x, y, selected, hover);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n if (ctx) {\n this.resize(ctx);\n }\n const a = this.width * 0.5;\n const b = this.height * 0.5;\n const w = Math.sin(angle) * a;\n const h = Math.cos(angle) * b;\n return (a * b) / Math.sqrt(w * w + h * h);\n }\n}\n\nexport default Ellipse;\n","\"use strict\";\n\nimport NodeBase from \"../util/NodeBase\";\n\n/**\n * An icon replacement for the default Node shape.\n *\n * @augments NodeBase\n */\nclass Icon extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this._setMargins(labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx - Unused.\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected, hover) {\n if (this.needsRefresh(selected, hover)) {\n this.iconSize = {\n width: Number(this.options.icon.size),\n height: Number(this.options.icon.size),\n };\n this.width = this.iconSize.width + this.margin.right + this.margin.left;\n this.height = this.iconSize.height + this.margin.top + this.margin.bottom;\n this.radius = 0.5 * this.width;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.options.icon.size = this.options.icon.size || 50;\n\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n this._icon(ctx, x, y, selected, hover, values);\n\n return {\n drawExternalLabel: () => {\n if (this.options.label !== undefined) {\n const iconTextSpacing = 5;\n this.labelModule.draw(\n ctx,\n this.left + this.iconSize.width / 2 + this.margin.left,\n y + this.height / 2 + iconTextSpacing,\n selected\n );\n }\n\n this.updateBoundingBox(x, y);\n },\n };\n }\n\n /**\n *\n * @param {number} x\n * @param {number} y\n */\n updateBoundingBox(x, y) {\n this.boundingBox.top = y - this.options.icon.size * 0.5;\n this.boundingBox.left = x - this.options.icon.size * 0.5;\n this.boundingBox.right = x + this.options.icon.size * 0.5;\n this.boundingBox.bottom = y + this.options.icon.size * 0.5;\n\n if (this.options.label !== undefined && this.labelModule.size.width > 0) {\n const iconTextSpacing = 5;\n this.boundingBox.left = Math.min(\n this.boundingBox.left,\n this.labelModule.size.left\n );\n this.boundingBox.right = Math.max(\n this.boundingBox.right,\n this.labelModule.size.left + this.labelModule.size.width\n );\n this.boundingBox.bottom = Math.max(\n this.boundingBox.bottom,\n this.boundingBox.bottom + this.labelModule.size.height + iconTextSpacing\n );\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover - Unused\n * @param {ArrowOptions} values\n */\n _icon(ctx, x, y, selected, hover, values) {\n const iconSize = Number(this.options.icon.size);\n\n if (this.options.icon.code !== undefined) {\n ctx.font = [\n this.options.icon.weight != null\n ? this.options.icon.weight\n : selected\n ? \"bold\"\n : \"\",\n // If the weight is forced (for example to make Font Awesome 5 work\n // properly) substitute slightly bigger size for bold font face.\n (this.options.icon.weight != null && selected ? 5 : 0) +\n iconSize +\n \"px\",\n this.options.icon.face,\n ].join(\" \");\n\n // draw icon\n ctx.fillStyle = this.options.icon.color || \"black\";\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n ctx.fillText(this.options.icon.code, x, y);\n\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n } else {\n console.error(\n \"When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.\"\n );\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Icon;\n","\"use strict\";\n\nimport CircleImageBase from \"../util/CircleImageBase\";\nimport { overrideOpacity } from \"vis-util/esnext\";\n\n/**\n * An image-based replacement for the default Node shape.\n *\n * @augments CircleImageBase\n */\nclass Image extends CircleImageBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n * @param {Image} imageObj\n * @param {Image} imageObjAlt\n */\n constructor(options, body, labelModule, imageObj, imageObjAlt) {\n super(options, body, labelModule);\n\n this.setImages(imageObj, imageObjAlt);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx - Unused.\n * @param {boolean} [selected]\n * @param {boolean} [hover]\n */\n resize(ctx, selected = this.selected, hover = this.hover) {\n const imageAbsent =\n this.imageObj.src === undefined ||\n this.imageObj.width === undefined ||\n this.imageObj.height === undefined;\n\n if (imageAbsent) {\n const side = this.options.size * 2;\n this.width = side;\n this.height = side;\n return;\n }\n\n if (this.needsRefresh(selected, hover)) {\n this._resizeImage();\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n ctx.save();\n this.switchImages(selected);\n this.resize();\n\n let labelX = x,\n labelY = y;\n\n if (this.options.shapeProperties.coordinateOrigin === \"top-left\") {\n this.left = x;\n this.top = y;\n labelX += this.width / 2;\n labelY += this.height / 2;\n } else {\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n }\n\n if (this.options.shapeProperties.useBorderWithImage === true) {\n const neutralborderWidth = this.options.borderWidth;\n const selectionLineWidth =\n this.options.borderWidthSelected || 2 * this.options.borderWidth;\n const borderWidth =\n (selected ? selectionLineWidth : neutralborderWidth) /\n this.body.view.scale;\n ctx.lineWidth = Math.min(this.width, borderWidth);\n\n ctx.beginPath();\n let strokeStyle = selected\n ? this.options.color.highlight.border\n : hover\n ? this.options.color.hover.border\n : this.options.color.border;\n let fillStyle = selected\n ? this.options.color.highlight.background\n : hover\n ? this.options.color.hover.background\n : this.options.color.background;\n\n if (values.opacity !== undefined) {\n strokeStyle = overrideOpacity(strokeStyle, values.opacity);\n fillStyle = overrideOpacity(fillStyle, values.opacity);\n }\n // setup the line properties.\n ctx.strokeStyle = strokeStyle;\n\n // set a fillstyle\n ctx.fillStyle = fillStyle;\n\n // draw a rectangle to form the border around. This rectangle is filled so the opacity of a picture (in future vis releases?) can be used to tint the image\n ctx.rect(\n this.left - 0.5 * ctx.lineWidth,\n this.top - 0.5 * ctx.lineWidth,\n this.width + ctx.lineWidth,\n this.height + ctx.lineWidth\n );\n ctx.fill();\n\n this.performStroke(ctx, values);\n\n ctx.closePath();\n }\n\n this._drawImageAtPosition(ctx, values);\n\n this._drawImageLabel(ctx, labelX, labelY, selected, hover);\n\n this.updateBoundingBox(x, y);\n ctx.restore();\n }\n\n /**\n *\n * @param {number} x\n * @param {number} y\n */\n updateBoundingBox(x, y) {\n this.resize();\n\n if (this.options.shapeProperties.coordinateOrigin === \"top-left\") {\n this.left = x;\n this.top = y;\n } else {\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n }\n\n this.boundingBox.left = this.left;\n this.boundingBox.top = this.top;\n this.boundingBox.bottom = this.top + this.height;\n this.boundingBox.right = this.left + this.width;\n\n if (this.options.label !== undefined && this.labelModule.size.width > 0) {\n this.boundingBox.left = Math.min(\n this.boundingBox.left,\n this.labelModule.size.left\n );\n this.boundingBox.right = Math.max(\n this.boundingBox.right,\n this.labelModule.size.left + this.labelModule.size.width\n );\n this.boundingBox.bottom = Math.max(\n this.boundingBox.bottom,\n this.boundingBox.bottom + this.labelOffset\n );\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Image;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Square Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Square extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"square\", 2, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Square;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Hexagon Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Hexagon extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"hexagon\", 4, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Hexagon;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Star Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Star extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"star\", 4, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Star;\n","\"use strict\";\n\nimport NodeBase from \"../util/NodeBase\";\n\n/**\n * A text-based replacement for the default Node shape.\n *\n * @augments NodeBase\n */\nclass Text extends NodeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n this._setMargins(labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} selected\n * @param {boolean} hover\n */\n resize(ctx, selected, hover) {\n if (this.needsRefresh(selected, hover)) {\n this.textSize = this.labelModule.getTextSize(ctx, selected, hover);\n this.width = this.textSize.width + this.margin.right + this.margin.left;\n this.height = this.textSize.height + this.margin.top + this.margin.bottom;\n this.radius = 0.5 * this.width;\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x width\n * @param {number} y height\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n */\n draw(ctx, x, y, selected, hover, values) {\n this.resize(ctx, selected, hover);\n this.left = x - this.width / 2;\n this.top = y - this.height / 2;\n\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n this.labelModule.draw(\n ctx,\n this.left + this.textSize.width / 2 + this.margin.left,\n this.top + this.textSize.height / 2 + this.margin.top,\n selected,\n hover\n );\n\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n\n this.updateBoundingBox(x, y, ctx, selected, hover);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Text;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A Triangle Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass Triangle extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x\n * @param {number} y\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(ctx, \"triangle\", 3, x, y, selected, hover, values);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default Triangle;\n","\"use strict\";\n\nimport ShapeBase from \"../util/ShapeBase\";\n\n/**\n * A downward facing Triangle Node/Cluster shape.\n *\n * @augments ShapeBase\n */\nclass TriangleDown extends ShapeBase {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Label} labelModule\n */\n constructor(options, body, labelModule) {\n super(options, body, labelModule);\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} x\n * @param {number} y\n * @param {boolean} selected\n * @param {boolean} hover\n * @param {ArrowOptions} values\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx, x, y, selected, hover, values) {\n return this._drawShape(\n ctx,\n \"triangleDown\",\n 3,\n x,\n y,\n selected,\n hover,\n values\n );\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle\n * @returns {number}\n */\n distanceToBorder(ctx, angle) {\n return this._distanceToBorder(ctx, angle);\n }\n}\n\nexport default TriangleDown;\n","import {\n VALIDATOR_PRINT_STYLE,\n bridgeObject,\n fillIfDefined,\n mergeOptions,\n overrideOpacity,\n parseColor,\n selectiveNotDeepExtend,\n} from \"vis-util/esnext\";\n\nimport Label from \"./shared/Label\";\nimport { choosify, pointInRect } from \"./shared/ComponentUtil\";\nimport Box from \"./nodes/shapes/Box\";\nimport Circle from \"./nodes/shapes/Circle\";\nimport CircularImage from \"./nodes/shapes/CircularImage\";\nimport CustomShape from \"./nodes/shapes/CustomShape\";\nimport Database from \"./nodes/shapes/Database\";\nimport Diamond from \"./nodes/shapes/Diamond\";\nimport Dot from \"./nodes/shapes/Dot\";\nimport Ellipse from \"./nodes/shapes/Ellipse\";\nimport Icon from \"./nodes/shapes/Icon\";\nimport Image from \"./nodes/shapes/Image\";\nimport Square from \"./nodes/shapes/Square\";\nimport Hexagon from \"./nodes/shapes/Hexagon\";\nimport Star from \"./nodes/shapes/Star\";\nimport Text from \"./nodes/shapes/Text\";\nimport Triangle from \"./nodes/shapes/Triangle\";\nimport TriangleDown from \"./nodes/shapes/TriangleDown\";\n\n/**\n * A node. A node can be connected to other nodes via one or multiple edges.\n */\nclass Node {\n /**\n *\n * @param {object} options An object containing options for the node. All\n * options are optional, except for the id.\n * {number} id Id of the node. Required\n * {string} label Text label for the node\n * {number} x Horizontal position of the node\n * {number} y Vertical position of the node\n * {string} shape Node shape\n * {string} image An image url\n * {string} title A title text, can be HTML\n * {anytype} group A group name or number\n * @param {object} body Shared state of current network instance\n * @param {Network.Images} imagelist A list with images. Only needed when the node has an image\n * @param {Groups} grouplist A list with groups. Needed for retrieving group options\n * @param {object} globalOptions Current global node options; these serve as defaults for the node instance\n * @param {object} defaultOptions Global default options for nodes; note that this is also the prototype\n * for parameter `globalOptions`.\n */\n constructor(\n options,\n body,\n imagelist,\n grouplist,\n globalOptions,\n defaultOptions\n ) {\n this.options = bridgeObject(globalOptions);\n this.globalOptions = globalOptions;\n this.defaultOptions = defaultOptions;\n this.body = body;\n\n this.edges = []; // all edges connected to this node\n\n // set defaults for the options\n this.id = undefined;\n this.imagelist = imagelist;\n this.grouplist = grouplist;\n\n // state options\n this.x = undefined;\n this.y = undefined;\n this.baseSize = this.options.size;\n this.baseFontSize = this.options.font.size;\n this.predefinedPosition = false; // used to check if initial fit should just take the range or approximate\n this.selected = false;\n this.hover = false;\n\n this.labelModule = new Label(\n this.body,\n this.options,\n false /* Not edge label */\n );\n this.setOptions(options);\n }\n\n /**\n * Attach a edge to the node\n *\n * @param {Edge} edge\n */\n attachEdge(edge) {\n if (this.edges.indexOf(edge) === -1) {\n this.edges.push(edge);\n }\n }\n\n /**\n * Detach a edge from the node\n *\n * @param {Edge} edge\n */\n detachEdge(edge) {\n const index = this.edges.indexOf(edge);\n if (index != -1) {\n this.edges.splice(index, 1);\n }\n }\n\n /**\n * Set or overwrite options for the node\n *\n * @param {object} options an object with options\n * @returns {null|boolean}\n */\n setOptions(options) {\n const currentShape = this.options.shape;\n\n if (!options) {\n return; // Note that the return value will be 'undefined'! This is OK.\n }\n\n // Save the color for later.\n // This is necessary in order to prevent local color from being overwritten by group color.\n // TODO: To prevent such workarounds the way options are handled should be rewritten from scratch.\n // This is not the only problem with current options handling.\n if (typeof options.color !== \"undefined\") {\n this._localColor = options.color;\n }\n\n // basic options\n if (options.id !== undefined) {\n this.id = options.id;\n }\n\n if (this.id === undefined) {\n throw new Error(\"Node must have an id\");\n }\n\n Node.checkMass(options, this.id);\n\n // set these options locally\n // clear x and y positions\n if (options.x !== undefined) {\n if (options.x === null) {\n this.x = undefined;\n this.predefinedPosition = false;\n } else {\n this.x = parseInt(options.x);\n this.predefinedPosition = true;\n }\n }\n if (options.y !== undefined) {\n if (options.y === null) {\n this.y = undefined;\n this.predefinedPosition = false;\n } else {\n this.y = parseInt(options.y);\n this.predefinedPosition = true;\n }\n }\n if (options.size !== undefined) {\n this.baseSize = options.size;\n }\n if (options.value !== undefined) {\n options.value = parseFloat(options.value);\n }\n\n // this transforms all shorthands into fully defined options\n Node.parseOptions(\n this.options,\n options,\n true,\n this.globalOptions,\n this.grouplist\n );\n\n const pile = [options, this.options, this.defaultOptions];\n this.chooser = choosify(\"node\", pile);\n\n this._load_images();\n this.updateLabelModule(options);\n\n // Need to set local opacity after `this.updateLabelModule(options);` because `this.updateLabelModule(options);` overrites local opacity with group opacity\n if (options.opacity !== undefined && Node.checkOpacity(options.opacity)) {\n this.options.opacity = options.opacity;\n }\n\n this.updateShape(currentShape);\n\n return options.hidden !== undefined || options.physics !== undefined;\n }\n\n /**\n * Load the images from the options, for the nodes that need them.\n *\n * Images are always loaded, even if they are not used in the current shape.\n * The user may switch to an image shape later on.\n *\n * @private\n */\n _load_images() {\n if (\n this.options.shape === \"circularImage\" ||\n this.options.shape === \"image\"\n ) {\n if (this.options.image === undefined) {\n throw new Error(\n \"Option image must be defined for node type '\" +\n this.options.shape +\n \"'\"\n );\n }\n }\n\n if (this.options.image === undefined) {\n return;\n }\n\n if (this.imagelist === undefined) {\n throw new Error(\"Internal Error: No images provided\");\n }\n\n if (typeof this.options.image === \"string\") {\n this.imageObj = this.imagelist.load(\n this.options.image,\n this.options.brokenImage,\n this.id\n );\n } else {\n if (this.options.image.unselected === undefined) {\n throw new Error(\"No unselected image provided\");\n }\n\n this.imageObj = this.imagelist.load(\n this.options.image.unselected,\n this.options.brokenImage,\n this.id\n );\n\n if (this.options.image.selected !== undefined) {\n this.imageObjAlt = this.imagelist.load(\n this.options.image.selected,\n this.options.brokenImage,\n this.id\n );\n } else {\n this.imageObjAlt = undefined;\n }\n }\n }\n\n /**\n * Check that opacity is only between 0 and 1\n *\n * @param {number} opacity\n * @returns {boolean}\n */\n static checkOpacity(opacity) {\n return 0 <= opacity && opacity <= 1;\n }\n\n /**\n * Check that origin is 'center' or 'top-left'\n *\n * @param {string} origin\n * @returns {boolean}\n */\n static checkCoordinateOrigin(origin) {\n return origin === undefined || origin === \"center\" || origin === \"top-left\";\n }\n\n /**\n * Copy group option values into the node options.\n *\n * The group options override the global node options, so the copy of group options\n * must happen *after* the global node options have been set.\n *\n * This method must also be called also if the global node options have changed and the group options did not.\n *\n * @param {object} parentOptions\n * @param {object} newOptions new values for the options, currently only passed in for check\n * @param {object} groupList\n */\n static updateGroupOptions(parentOptions, newOptions, groupList) {\n if (groupList === undefined) return; // No groups, nothing to do\n\n const group = parentOptions.group;\n\n // paranoia: the selected group is already merged into node options, check.\n if (\n newOptions !== undefined &&\n newOptions.group !== undefined &&\n group !== newOptions.group\n ) {\n throw new Error(\n \"updateGroupOptions: group values in options don't match.\"\n );\n }\n\n const hasGroup =\n typeof group === \"number\" || (typeof group === \"string\" && group != \"\");\n if (!hasGroup) return; // current node has no group, no need to merge\n\n const groupObj = groupList.get(group);\n\n if (groupObj.opacity !== undefined && newOptions.opacity === undefined) {\n if (!Node.checkOpacity(groupObj.opacity)) {\n console.error(\n \"Invalid option for node opacity. Value must be between 0 and 1, found: \" +\n groupObj.opacity\n );\n groupObj.opacity = undefined;\n }\n }\n\n // Skip any new option to avoid them being overridden by the group options.\n const skipProperties = Object.getOwnPropertyNames(newOptions).filter(\n (p) => newOptions[p] != null\n );\n // Always skip merging group font options into parent; these are required to be distinct for labels\n skipProperties.push(\"font\");\n selectiveNotDeepExtend(skipProperties, parentOptions, groupObj);\n\n // the color object needs to be completely defined.\n // Since groups can partially overwrite the colors, we parse it again, just in case.\n parentOptions.color = parseColor(parentOptions.color);\n }\n\n /**\n * This process all possible shorthands in the new options and makes sure that the parentOptions are fully defined.\n * Static so it can also be used by the handler.\n *\n * @param {object} parentOptions\n * @param {object} newOptions\n * @param {boolean} [allowDeletion=false]\n * @param {object} [globalOptions={}]\n * @param {object} [groupList]\n * @static\n */\n static parseOptions(\n parentOptions,\n newOptions,\n allowDeletion = false,\n globalOptions = {},\n groupList\n ) {\n const fields = [\"color\", \"fixed\", \"shadow\"];\n selectiveNotDeepExtend(fields, parentOptions, newOptions, allowDeletion);\n\n Node.checkMass(newOptions);\n\n if (parentOptions.opacity !== undefined) {\n if (!Node.checkOpacity(parentOptions.opacity)) {\n console.error(\n \"Invalid option for node opacity. Value must be between 0 and 1, found: \" +\n parentOptions.opacity\n );\n parentOptions.opacity = undefined;\n }\n }\n\n if (newOptions.opacity !== undefined) {\n if (!Node.checkOpacity(newOptions.opacity)) {\n console.error(\n \"Invalid option for node opacity. Value must be between 0 and 1, found: \" +\n newOptions.opacity\n );\n newOptions.opacity = undefined;\n }\n }\n\n if (\n newOptions.shapeProperties &&\n !Node.checkCoordinateOrigin(newOptions.shapeProperties.coordinateOrigin)\n ) {\n console.error(\n \"Invalid option for node coordinateOrigin, found: \" +\n newOptions.shapeProperties.coordinateOrigin\n );\n }\n\n // merge the shadow options into the parent.\n mergeOptions(parentOptions, newOptions, \"shadow\", globalOptions);\n\n // individual shape newOptions\n if (newOptions.color !== undefined && newOptions.color !== null) {\n const parsedColor = parseColor(newOptions.color);\n fillIfDefined(parentOptions.color, parsedColor);\n } else if (allowDeletion === true && newOptions.color === null) {\n parentOptions.color = bridgeObject(globalOptions.color); // set the object back to the global options\n }\n\n // handle the fixed options\n if (newOptions.fixed !== undefined && newOptions.fixed !== null) {\n if (typeof newOptions.fixed === \"boolean\") {\n parentOptions.fixed.x = newOptions.fixed;\n parentOptions.fixed.y = newOptions.fixed;\n } else {\n if (\n newOptions.fixed.x !== undefined &&\n typeof newOptions.fixed.x === \"boolean\"\n ) {\n parentOptions.fixed.x = newOptions.fixed.x;\n }\n if (\n newOptions.fixed.y !== undefined &&\n typeof newOptions.fixed.y === \"boolean\"\n ) {\n parentOptions.fixed.y = newOptions.fixed.y;\n }\n }\n }\n\n if (allowDeletion === true && newOptions.font === null) {\n parentOptions.font = bridgeObject(globalOptions.font); // set the object back to the global options\n }\n\n Node.updateGroupOptions(parentOptions, newOptions, groupList);\n\n // handle the scaling options, specifically the label part\n if (newOptions.scaling !== undefined) {\n mergeOptions(\n parentOptions.scaling,\n newOptions.scaling,\n \"label\",\n globalOptions.scaling\n );\n }\n }\n\n /**\n *\n * @returns {{color: *, borderWidth: *, borderColor: *, size: *, borderDashes: (boolean|Array|allOptions.nodes.shapeProperties.borderDashes|{boolean, array}), borderRadius: (number|allOptions.nodes.shapeProperties.borderRadius|{number}|Array), shadow: *, shadowColor: *, shadowSize: *, shadowX: *, shadowY: *}}\n */\n getFormattingValues() {\n const values = {\n color: this.options.color.background,\n opacity: this.options.opacity,\n borderWidth: this.options.borderWidth,\n borderColor: this.options.color.border,\n size: this.options.size,\n borderDashes: this.options.shapeProperties.borderDashes,\n borderRadius: this.options.shapeProperties.borderRadius,\n shadow: this.options.shadow.enabled,\n shadowColor: this.options.shadow.color,\n shadowSize: this.options.shadow.size,\n shadowX: this.options.shadow.x,\n shadowY: this.options.shadow.y,\n };\n if (this.selected || this.hover) {\n if (this.chooser === true) {\n if (this.selected) {\n if (this.options.borderWidthSelected != null) {\n values.borderWidth = this.options.borderWidthSelected;\n } else {\n values.borderWidth *= 2;\n }\n values.color = this.options.color.highlight.background;\n values.borderColor = this.options.color.highlight.border;\n values.shadow = this.options.shadow.enabled;\n } else if (this.hover) {\n values.color = this.options.color.hover.background;\n values.borderColor = this.options.color.hover.border;\n values.shadow = this.options.shadow.enabled;\n }\n } else if (typeof this.chooser === \"function\") {\n this.chooser(values, this.options.id, this.selected, this.hover);\n if (values.shadow === false) {\n if (\n values.shadowColor !== this.options.shadow.color ||\n values.shadowSize !== this.options.shadow.size ||\n values.shadowX !== this.options.shadow.x ||\n values.shadowY !== this.options.shadow.y\n ) {\n values.shadow = true;\n }\n }\n }\n } else {\n values.shadow = this.options.shadow.enabled;\n }\n if (this.options.opacity !== undefined) {\n const opacity = this.options.opacity;\n values.borderColor = overrideOpacity(values.borderColor, opacity);\n values.color = overrideOpacity(values.color, opacity);\n values.shadowColor = overrideOpacity(values.shadowColor, opacity);\n }\n return values;\n }\n\n /**\n *\n * @param {object} options\n */\n updateLabelModule(options) {\n if (this.options.label === undefined || this.options.label === null) {\n this.options.label = \"\";\n }\n\n Node.updateGroupOptions(\n this.options,\n {\n ...options,\n color: (options && options.color) || this._localColor || undefined,\n },\n this.grouplist\n );\n\n //\n // Note:The prototype chain for this.options is:\n //\n // this.options -> NodesHandler.options -> NodesHandler.defaultOptions\n // (also: this.globalOptions)\n //\n // Note that the prototypes are mentioned explicitly in the pile list below;\n // WE DON'T WANT THE ORDER OF THE PROTOTYPES!!!! At least, not for font handling of labels.\n // This is a good indication that the prototype usage of options is deficient.\n //\n const currentGroup = this.grouplist.get(this.options.group, false);\n const pile = [\n options, // new options\n this.options, // current node options, see comment above for prototype\n currentGroup, // group options, if any\n this.globalOptions, // Currently set global node options\n this.defaultOptions, // Default global node options\n ];\n this.labelModule.update(this.options, pile);\n\n if (this.labelModule.baseSize !== undefined) {\n this.baseFontSize = this.labelModule.baseSize;\n }\n }\n\n /**\n *\n * @param {string} currentShape\n */\n updateShape(currentShape) {\n if (currentShape === this.options.shape && this.shape) {\n this.shape.setOptions(this.options, this.imageObj, this.imageObjAlt);\n } else {\n // choose draw method depending on the shape\n switch (this.options.shape) {\n case \"box\":\n this.shape = new Box(this.options, this.body, this.labelModule);\n break;\n case \"circle\":\n this.shape = new Circle(this.options, this.body, this.labelModule);\n break;\n case \"circularImage\":\n this.shape = new CircularImage(\n this.options,\n this.body,\n this.labelModule,\n this.imageObj,\n this.imageObjAlt\n );\n break;\n case \"custom\":\n this.shape = new CustomShape(\n this.options,\n this.body,\n this.labelModule,\n this.options.ctxRenderer\n );\n break;\n case \"database\":\n this.shape = new Database(this.options, this.body, this.labelModule);\n break;\n case \"diamond\":\n this.shape = new Diamond(this.options, this.body, this.labelModule);\n break;\n case \"dot\":\n this.shape = new Dot(this.options, this.body, this.labelModule);\n break;\n case \"ellipse\":\n this.shape = new Ellipse(this.options, this.body, this.labelModule);\n break;\n case \"icon\":\n this.shape = new Icon(this.options, this.body, this.labelModule);\n break;\n case \"image\":\n this.shape = new Image(\n this.options,\n this.body,\n this.labelModule,\n this.imageObj,\n this.imageObjAlt\n );\n break;\n case \"square\":\n this.shape = new Square(this.options, this.body, this.labelModule);\n break;\n case \"hexagon\":\n this.shape = new Hexagon(this.options, this.body, this.labelModule);\n break;\n case \"star\":\n this.shape = new Star(this.options, this.body, this.labelModule);\n break;\n case \"text\":\n this.shape = new Text(this.options, this.body, this.labelModule);\n break;\n case \"triangle\":\n this.shape = new Triangle(this.options, this.body, this.labelModule);\n break;\n case \"triangleDown\":\n this.shape = new TriangleDown(\n this.options,\n this.body,\n this.labelModule\n );\n break;\n default:\n this.shape = new Ellipse(this.options, this.body, this.labelModule);\n break;\n }\n }\n this.needsRefresh();\n }\n\n /**\n * select this node\n */\n select() {\n this.selected = true;\n this.needsRefresh();\n }\n\n /**\n * unselect this node\n */\n unselect() {\n this.selected = false;\n this.needsRefresh();\n }\n\n /**\n * Reset the calculated size of the node, forces it to recalculate its size\n */\n needsRefresh() {\n this.shape.refreshNeeded = true;\n }\n\n /**\n * get the title of this node.\n *\n * @returns {string} title The title of the node, or undefined when no title\n * has been set.\n */\n getTitle() {\n return this.options.title;\n }\n\n /**\n * Calculate the distance to the border of the Node\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {number} angle Angle in radians\n * @returns {number} distance Distance to the border in pixels\n */\n distanceToBorder(ctx, angle) {\n return this.shape.distanceToBorder(ctx, angle);\n }\n\n /**\n * Check if this node has a fixed x and y position\n *\n * @returns {boolean} true if fixed, false if not\n */\n isFixed() {\n return this.options.fixed.x && this.options.fixed.y;\n }\n\n /**\n * check if this node is selecte\n *\n * @returns {boolean} selected True if node is selected, else false\n */\n isSelected() {\n return this.selected;\n }\n\n /**\n * Retrieve the value of the node. Can be undefined\n *\n * @returns {number} value\n */\n getValue() {\n return this.options.value;\n }\n\n /**\n * Get the current dimensions of the label\n *\n * @returns {rect}\n */\n getLabelSize() {\n return this.labelModule.size();\n }\n\n /**\n * Adjust the value range of the node. The node will adjust it's size\n * based on its value.\n *\n * @param {number} min\n * @param {number} max\n * @param {number} total\n */\n setValueRange(min, max, total) {\n if (this.options.value !== undefined) {\n const scale = this.options.scaling.customScalingFunction(\n min,\n max,\n total,\n this.options.value\n );\n const sizeDiff = this.options.scaling.max - this.options.scaling.min;\n if (this.options.scaling.label.enabled === true) {\n const fontDiff =\n this.options.scaling.label.max - this.options.scaling.label.min;\n this.options.font.size =\n this.options.scaling.label.min + scale * fontDiff;\n }\n this.options.size = this.options.scaling.min + scale * sizeDiff;\n } else {\n this.options.size = this.baseSize;\n this.options.font.size = this.baseFontSize;\n }\n\n this.updateLabelModule();\n }\n\n /**\n * Draw this node in the given canvas\n * The 2d context of a HTML canvas can be retrieved by canvas.getContext(\"2d\");\n *\n * @param {CanvasRenderingContext2D} ctx\n * @returns {object} Callbacks to draw later on higher layers.\n */\n draw(ctx) {\n const values = this.getFormattingValues();\n return (\n this.shape.draw(ctx, this.x, this.y, this.selected, this.hover, values) ||\n {}\n );\n }\n\n /**\n * Update the bounding box of the shape\n *\n * @param {CanvasRenderingContext2D} ctx\n */\n updateBoundingBox(ctx) {\n this.shape.updateBoundingBox(this.x, this.y, ctx);\n }\n\n /**\n * Recalculate the size of this node in the given canvas\n * The 2d context of a HTML canvas can be retrieved by canvas.getContext(\"2d\");\n *\n * @param {CanvasRenderingContext2D} ctx\n */\n resize(ctx) {\n const values = this.getFormattingValues();\n this.shape.resize(ctx, this.selected, this.hover, values);\n }\n\n /**\n * Determine all visual elements of this node instance, in which the given\n * point falls within the bounding shape.\n *\n * @param {point} point\n * @returns {Array.} list with the items which are on the point\n */\n getItemsOnPoint(point) {\n const ret = [];\n\n if (this.labelModule.visible()) {\n if (pointInRect(this.labelModule.getSize(), point)) {\n ret.push({ nodeId: this.id, labelId: 0 });\n }\n }\n\n if (pointInRect(this.shape.boundingBox, point)) {\n ret.push({ nodeId: this.id });\n }\n\n return ret;\n }\n\n /**\n * Check if this object is overlapping with the provided object\n *\n * @param {object} obj an object with parameters left, top, right, bottom\n * @returns {boolean} True if location is located on node\n */\n isOverlappingWith(obj) {\n return (\n this.shape.left < obj.right &&\n this.shape.left + this.shape.width > obj.left &&\n this.shape.top < obj.bottom &&\n this.shape.top + this.shape.height > obj.top\n );\n }\n\n /**\n * Check if this object is overlapping with the provided object\n *\n * @param {object} obj an object with parameters left, top, right, bottom\n * @returns {boolean} True if location is located on node\n */\n isBoundingBoxOverlappingWith(obj) {\n return (\n this.shape.boundingBox.left < obj.right &&\n this.shape.boundingBox.right > obj.left &&\n this.shape.boundingBox.top < obj.bottom &&\n this.shape.boundingBox.bottom > obj.top\n );\n }\n\n /**\n * Check valid values for mass\n *\n * The mass may not be negative or zero. If it is, reset to 1\n *\n * @param {object} options\n * @param {Node.id} id\n * @static\n */\n static checkMass(options, id) {\n if (options.mass !== undefined && options.mass <= 0) {\n let strId = \"\";\n if (id !== undefined) {\n strId = \" in node id: \" + id;\n }\n console.error(\n \"%cNegative or zero mass disallowed\" + strId + \", setting mass to 1.\",\n VALIDATOR_PRINT_STYLE\n );\n options.mass = 1;\n }\n }\n}\n\nexport default Node;\n","import { bridgeObject, forEach } from \"vis-util/esnext\";\nimport { DataSet, isDataViewLike } from \"vis-data/esnext\";\nimport Node from \"./components/Node\";\n\n/**\n * Handler for Nodes\n */\nclass NodesHandler {\n /**\n * @param {object} body\n * @param {Images} images\n * @param {Array.} groups\n * @param {LayoutEngine} layoutEngine\n */\n constructor(body, images, groups, layoutEngine) {\n this.body = body;\n this.images = images;\n this.groups = groups;\n this.layoutEngine = layoutEngine;\n\n // create the node API in the body container\n this.body.functions.createNode = this.create.bind(this);\n\n this.nodesListeners = {\n add: (event, params) => {\n this.add(params.items);\n },\n update: (event, params) => {\n this.update(params.items, params.data, params.oldData);\n },\n remove: (event, params) => {\n this.remove(params.items);\n },\n };\n\n this.defaultOptions = {\n borderWidth: 1,\n borderWidthSelected: undefined,\n brokenImage: undefined,\n color: {\n border: \"#2B7CE9\",\n background: \"#97C2FC\",\n highlight: {\n border: \"#2B7CE9\",\n background: \"#D2E5FF\",\n },\n hover: {\n border: \"#2B7CE9\",\n background: \"#D2E5FF\",\n },\n },\n opacity: undefined, // number between 0 and 1\n fixed: {\n x: false,\n y: false,\n },\n font: {\n color: \"#343434\",\n size: 14, // px\n face: \"arial\",\n background: \"none\",\n strokeWidth: 0, // px\n strokeColor: \"#ffffff\",\n align: \"center\",\n vadjust: 0,\n multi: false,\n bold: {\n mod: \"bold\",\n },\n boldital: {\n mod: \"bold italic\",\n },\n ital: {\n mod: \"italic\",\n },\n mono: {\n mod: \"\",\n size: 15, // px\n face: \"monospace\",\n vadjust: 2,\n },\n },\n group: undefined,\n hidden: false,\n icon: {\n face: \"FontAwesome\", //'FontAwesome',\n code: undefined, //'\\uf007',\n size: 50, //50,\n color: \"#2B7CE9\", //'#aa00ff'\n },\n image: undefined, // --> URL\n imagePadding: {\n // only for image shape\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n label: undefined,\n labelHighlightBold: true,\n level: undefined,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n },\n mass: 1,\n physics: true,\n scaling: {\n min: 10,\n max: 30,\n label: {\n enabled: false,\n min: 14,\n max: 30,\n maxVisible: 30,\n drawThreshold: 5,\n },\n customScalingFunction: function (min, max, total, value) {\n if (max === min) {\n return 0.5;\n } else {\n const scale = 1 / (max - min);\n return Math.max(0, (value - min) * scale);\n }\n },\n },\n shadow: {\n enabled: false,\n color: \"rgba(0,0,0,0.5)\",\n size: 10,\n x: 5,\n y: 5,\n },\n shape: \"ellipse\",\n shapeProperties: {\n borderDashes: false, // only for borders\n borderRadius: 6, // only for box shape\n interpolation: true, // only for image and circularImage shapes\n useImageSize: false, // only for image and circularImage shapes\n useBorderWithImage: false, // only for image shape\n coordinateOrigin: \"center\", // only for image and circularImage shapes\n },\n size: 25,\n title: undefined,\n value: undefined,\n x: undefined,\n y: undefined,\n };\n\n // Protect from idiocy\n if (this.defaultOptions.mass <= 0) {\n throw \"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative\";\n }\n\n this.options = bridgeObject(this.defaultOptions);\n\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n // refresh the nodes. Used when reverting from hierarchical layout\n this.body.emitter.on(\"refreshNodes\", this.refresh.bind(this));\n this.body.emitter.on(\"refresh\", this.refresh.bind(this));\n this.body.emitter.on(\"destroy\", () => {\n forEach(this.nodesListeners, (callback, event) => {\n if (this.body.data.nodes) this.body.data.nodes.off(event, callback);\n });\n delete this.body.functions.createNode;\n delete this.nodesListeners.add;\n delete this.nodesListeners.update;\n delete this.nodesListeners.remove;\n delete this.nodesListeners;\n });\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n Node.parseOptions(this.options, options);\n\n // Need to set opacity here because Node.parseOptions is also used for groups,\n // if you set opacity in Node.parseOptions it overwrites group opacity.\n if (options.opacity !== undefined) {\n if (\n Number.isNaN(options.opacity) ||\n !Number.isFinite(options.opacity) ||\n options.opacity < 0 ||\n options.opacity > 1\n ) {\n console.error(\n \"Invalid option for node opacity. Value must be between 0 and 1, found: \" +\n options.opacity\n );\n } else {\n this.options.opacity = options.opacity;\n }\n }\n\n // update the shape in all nodes\n if (options.shape !== undefined) {\n for (const nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n this.body.nodes[nodeId].updateShape();\n }\n }\n }\n\n // Update the labels of nodes if any relevant options changed.\n if (\n typeof options.font !== \"undefined\" ||\n typeof options.widthConstraint !== \"undefined\" ||\n typeof options.heightConstraint !== \"undefined\"\n ) {\n for (const nodeId of Object.keys(this.body.nodes)) {\n this.body.nodes[nodeId].updateLabelModule();\n this.body.nodes[nodeId].needsRefresh();\n }\n }\n\n // update the shape size in all nodes\n if (options.size !== undefined) {\n for (const nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n this.body.nodes[nodeId].needsRefresh();\n }\n }\n }\n\n // update the state of the variables if needed\n if (options.hidden !== undefined || options.physics !== undefined) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n }\n\n /**\n * Set a data set with nodes for the network\n *\n * @param {Array | DataSet | DataView} nodes The data containing the nodes.\n * @param {boolean} [doNotEmit=false] - Suppress data changed event.\n * @private\n */\n setData(nodes, doNotEmit = false) {\n const oldNodesData = this.body.data.nodes;\n\n if (isDataViewLike(\"id\", nodes)) {\n this.body.data.nodes = nodes;\n } else if (Array.isArray(nodes)) {\n this.body.data.nodes = new DataSet();\n this.body.data.nodes.add(nodes);\n } else if (!nodes) {\n this.body.data.nodes = new DataSet();\n } else {\n throw new TypeError(\"Array or DataSet expected\");\n }\n\n if (oldNodesData) {\n // unsubscribe from old dataset\n forEach(this.nodesListeners, function (callback, event) {\n oldNodesData.off(event, callback);\n });\n }\n\n // remove drawn nodes\n this.body.nodes = {};\n\n if (this.body.data.nodes) {\n // subscribe to new dataset\n const me = this;\n forEach(this.nodesListeners, function (callback, event) {\n me.body.data.nodes.on(event, callback);\n });\n\n // draw all new nodes\n const ids = this.body.data.nodes.getIds();\n this.add(ids, true);\n }\n\n if (doNotEmit === false) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Add nodes\n *\n * @param {number[] | string[]} ids\n * @param {boolean} [doNotEmit=false]\n * @private\n */\n add(ids, doNotEmit = false) {\n let id;\n const newNodes = [];\n for (let i = 0; i < ids.length; i++) {\n id = ids[i];\n const properties = this.body.data.nodes.get(id);\n const node = this.create(properties);\n newNodes.push(node);\n this.body.nodes[id] = node; // note: this may replace an existing node\n }\n\n this.layoutEngine.positionInitially(newNodes);\n\n if (doNotEmit === false) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Update existing nodes, or create them when not yet existing\n *\n * @param {number[] | string[]} ids id's of changed nodes\n * @param {Array} changedData array with changed data\n * @param {Array|undefined} oldData optional; array with previous data\n * @private\n */\n update(ids, changedData, oldData) {\n const nodes = this.body.nodes;\n let dataChanged = false;\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n let node = nodes[id];\n const data = changedData[i];\n if (node !== undefined) {\n // update node\n if (node.setOptions(data)) {\n dataChanged = true;\n }\n } else {\n dataChanged = true;\n // create node\n node = this.create(data);\n nodes[id] = node;\n }\n }\n\n if (!dataChanged && oldData !== undefined) {\n // Check for any changes which should trigger a layout recalculation\n // For now, this is just 'level' for hierarchical layout\n // Assumption: old and new data arranged in same order; at time of writing, this holds.\n dataChanged = changedData.some(function (newValue, index) {\n const oldValue = oldData[index];\n return oldValue && oldValue.level !== newValue.level;\n });\n }\n\n if (dataChanged === true) {\n this.body.emitter.emit(\"_dataChanged\");\n } else {\n this.body.emitter.emit(\"_dataUpdated\");\n }\n }\n\n /**\n * Remove existing nodes. If nodes do not exist, the method will just ignore it.\n *\n * @param {number[] | string[]} ids\n * @private\n */\n remove(ids) {\n const nodes = this.body.nodes;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n delete nodes[id];\n }\n\n this.body.emitter.emit(\"_dataChanged\");\n }\n\n /**\n * create a node\n *\n * @param {object} properties\n * @param {class} [constructorClass=Node.default]\n * @returns {*}\n */\n create(properties, constructorClass = Node) {\n return new constructorClass(\n properties,\n this.body,\n this.images,\n this.groups,\n this.options,\n this.defaultOptions\n );\n }\n\n /**\n *\n * @param {boolean} [clearPositions=false]\n */\n refresh(clearPositions = false) {\n forEach(this.body.nodes, (node, nodeId) => {\n const data = this.body.data.nodes.get(nodeId);\n if (data !== undefined) {\n if (clearPositions === true) {\n node.setOptions({ x: null, y: null });\n }\n node.setOptions({ fixed: false });\n node.setOptions(data);\n }\n });\n }\n\n /**\n * Returns the positions of the nodes.\n *\n * @param {Array. | string} [ids] --> optional, can be array of nodeIds, can be string\n * @returns {{}}\n */\n getPositions(ids) {\n const dataArray = {};\n if (ids !== undefined) {\n if (Array.isArray(ids) === true) {\n for (let i = 0; i < ids.length; i++) {\n if (this.body.nodes[ids[i]] !== undefined) {\n const node = this.body.nodes[ids[i]];\n dataArray[ids[i]] = {\n x: Math.round(node.x),\n y: Math.round(node.y),\n };\n }\n }\n } else {\n if (this.body.nodes[ids] !== undefined) {\n const node = this.body.nodes[ids];\n dataArray[ids] = { x: Math.round(node.x), y: Math.round(node.y) };\n }\n }\n } else {\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const node = this.body.nodes[this.body.nodeIndices[i]];\n dataArray[this.body.nodeIndices[i]] = {\n x: Math.round(node.x),\n y: Math.round(node.y),\n };\n }\n }\n return dataArray;\n }\n\n /**\n * Retrieves the x y position of a specific id.\n *\n * @param {string} id The id to retrieve.\n * @throws {TypeError} If no id is included.\n * @throws {ReferenceError} If an invalid id is provided.\n * @returns {{ x: number, y: number }} Returns X, Y canvas position of the node with given id.\n */\n getPosition(id) {\n if (id == undefined) {\n throw new TypeError(\"No id was specified for getPosition method.\");\n } else if (this.body.nodes[id] == undefined) {\n throw new ReferenceError(\n `NodeId provided for getPosition does not exist. Provided: ${id}`\n );\n } else {\n return {\n x: Math.round(this.body.nodes[id].x),\n y: Math.round(this.body.nodes[id].y),\n };\n }\n }\n\n /**\n * Load the XY positions of the nodes into the dataset.\n */\n storePositions() {\n // todo: add support for clusters and hierarchical.\n const dataArray = [];\n const dataset = this.body.data.nodes.getDataSet();\n\n for (const dsNode of dataset.get()) {\n const id = dsNode.id;\n const bodyNode = this.body.nodes[id];\n const x = Math.round(bodyNode.x);\n const y = Math.round(bodyNode.y);\n\n if (dsNode.x !== x || dsNode.y !== y) {\n dataArray.push({ id, x, y });\n }\n }\n\n dataset.update(dataArray);\n }\n\n /**\n * get the bounding box of a node.\n *\n * @param {Node.id} nodeId\n * @returns {j|*}\n */\n getBoundingBox(nodeId) {\n if (this.body.nodes[nodeId] !== undefined) {\n return this.body.nodes[nodeId].shape.boundingBox;\n }\n }\n\n /**\n * Get the Ids of nodes connected to this node.\n *\n * @param {Node.id} nodeId\n * @param {'to'|'from'|undefined} direction values 'from' and 'to' select respectively parent and child nodes only.\n * Any other value returns both parent and child nodes.\n * @returns {Array}\n */\n getConnectedNodes(nodeId, direction) {\n const nodeList = [];\n if (this.body.nodes[nodeId] !== undefined) {\n const node = this.body.nodes[nodeId];\n const nodeObj = {}; // used to quickly check if node already exists\n for (let i = 0; i < node.edges.length; i++) {\n const edge = node.edges[i];\n if (direction !== \"to\" && edge.toId == node.id) {\n // these are double equals since ids can be numeric or string\n if (nodeObj[edge.fromId] === undefined) {\n nodeList.push(edge.fromId);\n nodeObj[edge.fromId] = true;\n }\n } else if (direction !== \"from\" && edge.fromId == node.id) {\n // these are double equals since ids can be numeric or string\n if (nodeObj[edge.toId] === undefined) {\n nodeList.push(edge.toId);\n nodeObj[edge.toId] = true;\n }\n }\n }\n }\n return nodeList;\n }\n\n /**\n * Get the ids of the edges connected to this node.\n *\n * @param {Node.id} nodeId\n * @returns {*}\n */\n getConnectedEdges(nodeId) {\n const edgeList = [];\n if (this.body.nodes[nodeId] !== undefined) {\n const node = this.body.nodes[nodeId];\n for (let i = 0; i < node.edges.length; i++) {\n edgeList.push(node.edges[i].id);\n }\n } else {\n console.error(\n \"NodeId provided for getConnectedEdges does not exist. Provided: \",\n nodeId\n );\n }\n return edgeList;\n }\n\n /**\n * Move a node.\n *\n * @param {Node.id} nodeId\n * @param {number} x\n * @param {number} y\n */\n moveNode(nodeId, x, y) {\n if (this.body.nodes[nodeId] !== undefined) {\n this.body.nodes[nodeId].x = Number(x);\n this.body.nodes[nodeId].y = Number(y);\n setTimeout(() => {\n this.body.emitter.emit(\"startSimulation\");\n }, 0);\n } else {\n console.error(\n \"Node id supplied to moveNode does not exist. Provided: \",\n nodeId\n );\n }\n }\n}\n\nexport default NodesHandler;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\n\nmodule.exports = function (descriptor) {\n return descriptor !== undefined && (hasOwn(descriptor, 'value') || hasOwn(descriptor, 'writable'));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar isDataDescriptor = require('../internals/is-data-descriptor');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\n\n// `Reflect.get` method\n// https://tc39.es/ecma262/#sec-reflect.get\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var descriptor, prototype;\n if (anObject(target) === receiver) return target[propertyKey];\n descriptor = getOwnPropertyDescriptorModule.f(target, propertyKey);\n if (descriptor) return isDataDescriptor(descriptor)\n ? descriptor.value\n : descriptor.get === undefined ? undefined : call(descriptor.get, receiver);\n if (isObject(prototype = getPrototypeOf(target))) return get(prototype, propertyKey, receiver);\n}\n\n$({ target: 'Reflect', stat: true }, {\n get: get\n});\n","'use strict';\nrequire('../../modules/es.reflect.get');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Reflect.get;\n","'use strict';\nvar parent = require('../../stable/object/get-own-property-descriptor');\n\nmodule.exports = parent;\n","import _Reflect$get from \"core-js-pure/features/reflect/get.js\";\nimport _bindInstanceProperty from \"core-js-pure/features/instance/bind.js\";\nimport _Object$getOwnPropertyDescriptor from \"core-js-pure/features/object/get-own-property-descriptor.js\";\nimport superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && _Reflect$get) {\n var _context;\n _get = _bindInstanceProperty(_context = _Reflect$get).call(_context);\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = _Object$getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","'use strict';\nvar $ = require('../internals/export');\n\n// eslint-disable-next-line es/no-math-hypot -- required for testing\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar FORCED = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.es/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, arity: 2, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n hypot: function hypot(value1, value2) {\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","'use strict';\nrequire('../../modules/es.math.hypot');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.hypot;\n","/**\n * ============================================================================\n * Location of all the endpoint drawing routines.\n *\n * Every endpoint has its own drawing routine, which contains an endpoint definition.\n *\n * The endpoint definitions must have the following properies:\n *\n * - (0,0) is the connection point to the node it attaches to\n * - The endpoints are orientated to the positive x-direction\n * - The length of the endpoint is at most 1\n *\n * As long as the endpoint classes remain simple and not too numerous, they will\n * be contained within this module.\n * All classes here except `EndPoints` should be considered as private to this module.\n *\n * -----------------------------------------------------------------------------\n * ### Further Actions\n *\n * After adding a new endpoint here, you also need to do the following things:\n *\n * - Add the new endpoint name to `network/options.js` in array `endPoints`.\n * - Add the new endpoint name to the documentation.\n * Scan for 'arrows.to.type` and add it to the description.\n * - Add the endpoint to the examples. At the very least, add it to example\n * `edgeStyles/arrowTypes`.\n * =============================================================================\n */\n\nimport { ArrowData, Point } from \"./types\";\nimport { drawCircle } from \"./shapes\";\n\n/**\n * Common methods for endpoints\n *\n * @class\n */\nclass EndPoint {\n /**\n * Apply transformation on points for display.\n *\n * The following is done:\n * - rotate by the specified angle\n * - multiply the (normalized) coordinates by the passed length\n * - offset by the target coordinates\n *\n * @param points - The point(s) to be transformed.\n * @param arrowData - The data determining the result of the transformation.\n */\n public static transform(points: Point | Point[], arrowData: ArrowData): void {\n if (!Array.isArray(points)) {\n points = [points];\n }\n\n const x = arrowData.point.x;\n const y = arrowData.point.y;\n const angle = arrowData.angle;\n const length = arrowData.length;\n\n for (let i = 0; i < points.length; ++i) {\n const p = points[i];\n const xt = p.x * Math.cos(angle) - p.y * Math.sin(angle);\n const yt = p.x * Math.sin(angle) + p.y * Math.cos(angle);\n\n p.x = x + length * xt;\n p.y = y + length * yt;\n }\n }\n\n /**\n * Draw a closed path using the given real coordinates.\n *\n * @param ctx - The path will be rendered into this context.\n * @param points - The points of the path.\n */\n public static drawPath(ctx: CanvasRenderingContext2D, points: Point[]): void {\n ctx.beginPath();\n ctx.moveTo(points[0].x, points[0].y);\n for (let i = 1; i < points.length; ++i) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n ctx.closePath();\n }\n}\n\n/**\n * Drawing methods for the arrow endpoint.\n */\nclass Image extends EndPoint {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns False as there is no way to fill an image.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): false {\n if (arrowData.image) {\n ctx.save();\n\n ctx.translate(arrowData.point.x, arrowData.point.y);\n ctx.rotate(Math.PI / 2 + arrowData.angle);\n\n const width =\n arrowData.imageWidth != null\n ? arrowData.imageWidth\n : arrowData.image.width;\n const height =\n arrowData.imageHeight != null\n ? arrowData.imageHeight\n : arrowData.image.height;\n\n arrowData.image.drawImageAtPosition(\n ctx,\n 1, // scale\n -width / 2, // x\n 0, // y\n width,\n height\n );\n\n ctx.restore();\n }\n\n return false;\n }\n}\n\n/**\n * Drawing methods for the arrow endpoint.\n */\nclass Arrow extends EndPoint {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const points = [\n { x: 0, y: 0 },\n { x: -1, y: 0.3 },\n { x: -0.9, y: 0 },\n { x: -1, y: -0.3 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the crow endpoint.\n */\nclass Crow {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const points = [\n { x: -1, y: 0 },\n { x: 0, y: 0.3 },\n { x: -0.4, y: 0 },\n { x: 0, y: -0.3 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the curve endpoint.\n */\nclass Curve {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const point = { x: -0.4, y: 0 };\n EndPoint.transform(point, arrowData);\n\n // Update endpoint style for drawing transparent arc.\n ctx.strokeStyle = ctx.fillStyle;\n ctx.fillStyle = \"rgba(0, 0, 0, 0)\";\n\n // Define curve endpoint as semicircle.\n const pi = Math.PI;\n const startAngle = arrowData.angle - pi / 2;\n const endAngle = arrowData.angle + pi / 2;\n ctx.beginPath();\n ctx.arc(\n point.x,\n point.y,\n arrowData.length * 0.4,\n startAngle,\n endAngle,\n false\n );\n ctx.stroke();\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the inverted curve endpoint.\n */\nclass InvertedCurve {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const point = { x: -0.3, y: 0 };\n EndPoint.transform(point, arrowData);\n\n // Update endpoint style for drawing transparent arc.\n ctx.strokeStyle = ctx.fillStyle;\n ctx.fillStyle = \"rgba(0, 0, 0, 0)\";\n\n // Define inverted curve endpoint as semicircle.\n const pi = Math.PI;\n const startAngle = arrowData.angle + pi / 2;\n const endAngle = arrowData.angle + (3 * pi) / 2;\n ctx.beginPath();\n ctx.arc(\n point.x,\n point.y,\n arrowData.length * 0.4,\n startAngle,\n endAngle,\n false\n );\n ctx.stroke();\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the trinagle endpoint.\n */\nclass Triangle {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const points = [\n { x: 0.02, y: 0 },\n { x: -1, y: 0.3 },\n { x: -1, y: -0.3 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the inverted trinagle endpoint.\n */\nclass InvertedTriangle {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const points = [\n { x: 0, y: 0.3 },\n { x: 0, y: -0.3 },\n { x: -1, y: 0 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the circle endpoint.\n */\nclass Circle {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n const point = { x: -0.4, y: 0 };\n\n EndPoint.transform(point, arrowData);\n drawCircle(ctx, point.x, point.y, arrowData.length * 0.4);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the bar endpoint.\n */\nclass Bar {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n /*\n var points = [\n {x:0, y:0.5},\n {x:0, y:-0.5}\n ];\n\n EndPoint.transform(points, arrowData);\n ctx.beginPath();\n ctx.moveTo(points[0].x, points[0].y);\n ctx.lineTo(points[1].x, points[1].y);\n ctx.stroke();\n*/\n\n const points = [\n { x: 0, y: 0.5 },\n { x: 0, y: -0.5 },\n { x: -0.15, y: -0.5 },\n { x: -0.15, y: 0.5 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the box endpoint.\n */\nclass Box {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n const points = [\n { x: 0, y: 0.3 },\n { x: 0, y: -0.3 },\n { x: -0.6, y: -0.3 },\n { x: -0.6, y: 0.3 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the diamond endpoint.\n */\nclass Diamond {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n const points = [\n { x: 0, y: 0 },\n { x: -0.5, y: -0.3 },\n { x: -1, y: 0 },\n { x: -0.5, y: 0.3 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the vee endpoint.\n */\nclass Vee {\n /**\n * Draw this shape at the end of a line.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True because ctx.fill() can be used to fill the arrow.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): true {\n // Normalized points of closed path, in the order that they should be drawn.\n // (0, 0) is the attachment point, and the point around which should be rotated\n const points = [\n { x: -1, y: 0.3 },\n { x: -0.5, y: 0 },\n { x: -1, y: -0.3 },\n { x: 0, y: 0 },\n ];\n\n EndPoint.transform(points, arrowData);\n EndPoint.drawPath(ctx, points);\n\n return true;\n }\n}\n\n/**\n * Drawing methods for the endpoints.\n */\nexport class EndPoints {\n /**\n * Draw an endpoint.\n *\n * @param ctx - The shape will be rendered into this context.\n * @param arrowData - The data determining the shape.\n * @returns True if ctx.fill() can be used to fill the arrow, false otherwise.\n */\n public static draw(\n ctx: CanvasRenderingContext2D,\n arrowData: ArrowData\n ): boolean {\n let type;\n if (arrowData.type) {\n type = arrowData.type.toLowerCase();\n }\n\n switch (type) {\n case \"image\":\n return Image.draw(ctx, arrowData);\n case \"circle\":\n return Circle.draw(ctx, arrowData);\n case \"box\":\n return Box.draw(ctx, arrowData);\n case \"crow\":\n return Crow.draw(ctx, arrowData);\n case \"curve\":\n return Curve.draw(ctx, arrowData);\n case \"diamond\":\n return Diamond.draw(ctx, arrowData);\n case \"inv_curve\":\n return InvertedCurve.draw(ctx, arrowData);\n case \"triangle\":\n return Triangle.draw(ctx, arrowData);\n case \"inv_triangle\":\n return InvertedTriangle.draw(ctx, arrowData);\n case \"bar\":\n return Bar.draw(ctx, arrowData);\n case \"vee\":\n return Vee.draw(ctx, arrowData);\n case \"arrow\": // fall-through\n default:\n return Arrow.draw(ctx, arrowData);\n }\n }\n}\n","import { overrideOpacity } from \"vis-util/esnext\";\nimport { EndPoints } from \"./end-points\";\nimport {\n ArrowData,\n ArrowDataWithCore,\n ArrowType,\n EdgeFormattingValues,\n EdgeType,\n Id,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./types\";\nimport { drawDashedLine } from \"./shapes\";\nimport { getSelfRefCoordinates } from \"../../shared/ComponentUtil\";\n\nexport interface FindBorderPositionOptions {\n via: Via;\n}\nexport interface FindBorderPositionCircleOptions {\n x: number;\n y: number;\n low: number;\n high: number;\n direction: number;\n}\n\n/**\n * The Base Class for all edges.\n */\nexport abstract class EdgeBase implements EdgeType {\n public from!: VNode; // Initialized in setOptions\n public fromPoint: Point;\n public to!: VNode; // Initialized in setOptions\n public toPoint: Point;\n public via?: VNode;\n\n public color: unknown = {};\n public colorDirty = true;\n public id!: Id; // Initialized in setOptions\n public options!: EdgeOptions; // Initialized in setOptions\n public hoverWidth = 1.5;\n public selectionWidth = 2;\n\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param _body - The body of the network.\n * @param _labelModule - Label module.\n */\n public constructor(\n options: EdgeOptions,\n protected _body: VBody,\n protected _labelModule: Label\n ) {\n this.setOptions(options);\n\n this.fromPoint = this.from;\n this.toPoint = this.to;\n }\n\n /**\n * Find the intersection between the border of the node and the edge.\n *\n * @param node - The node (either from or to node of the edge).\n * @param ctx - The context that will be used for rendering.\n * @param options - Additional options.\n * @returns Cartesian coordinates of the intersection between the border of the node and the edge.\n */\n protected abstract _findBorderPosition(\n node: VNode,\n ctx: CanvasRenderingContext2D,\n options?: FindBorderPositionOptions\n ): PointT;\n\n /**\n * Return additional point(s) the edge passes through.\n *\n * @returns Cartesian coordinates of the point(s) the edge passes through.\n */\n public abstract getViaNode(): Via;\n\n /** @inheritDoc */\n public abstract getPoint(position: number, viaNode?: Via): Point;\n\n /** @inheritDoc */\n public connect(): void {\n this.from = this._body.nodes[this.options.from];\n this.to = this._body.nodes[this.options.to];\n }\n\n /** @inheritDoc */\n public cleanup(): boolean {\n return false;\n }\n\n /**\n * Set new edge options.\n *\n * @param options - The new edge options object.\n */\n public setOptions(options: EdgeOptions): void {\n this.options = options;\n\n this.from = this._body.nodes[this.options.from];\n this.to = this._body.nodes[this.options.to];\n this.id = this.options.id;\n }\n\n /** @inheritDoc */\n public drawLine(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"color\"\n | \"opacity\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n | \"width\"\n >,\n _selected?: boolean,\n _hover?: boolean,\n viaNode: Via = this.getViaNode()\n ): void {\n // set style\n ctx.strokeStyle = this.getColor(ctx, values);\n ctx.lineWidth = values.width;\n\n if (values.dashes !== false) {\n this._drawDashedLine(ctx, values, viaNode);\n } else {\n this._drawLine(ctx, values, viaNode);\n }\n }\n\n /**\n * Draw a line with given style between two nodes through supplied node(s).\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values like color, opacity or shadow.\n * @param viaNode - Additional control point(s) for the edge.\n * @param fromPoint - TODO: Seems ignored, remove?\n * @param toPoint - TODO: Seems ignored, remove?\n */\n private _drawLine(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"shadowColor\" | \"shadowSize\" | \"shadowX\" | \"shadowY\"\n >,\n viaNode: Via,\n fromPoint?: Point,\n toPoint?: Point\n ): void {\n if (this.from != this.to) {\n // draw line\n this._line(ctx, values, viaNode, fromPoint, toPoint);\n } else {\n const [x, y, radius] = this._getCircleData(ctx);\n this._circle(ctx, values, x, y, radius);\n }\n }\n\n /**\n * Draw a dashed line with given style between two nodes through supplied node(s).\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values like color, opacity or shadow.\n * @param viaNode - Additional control point(s) for the edge.\n * @param _fromPoint - Ignored (TODO: remove in the future).\n * @param _toPoint - Ignored (TODO: remove in the future).\n */\n private _drawDashedLine(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"shadowColor\" | \"shadowSize\" | \"shadowX\" | \"shadowY\"\n >,\n viaNode: Via,\n _fromPoint?: Point,\n _toPoint?: Point\n ): void {\n ctx.lineCap = \"round\";\n const pattern = Array.isArray(values.dashes) ? values.dashes : [5, 5];\n\n // only firefox and chrome support this method, else we use the legacy one.\n if (ctx.setLineDash !== undefined) {\n ctx.save();\n\n // set dash settings for chrome or firefox\n ctx.setLineDash(pattern);\n ctx.lineDashOffset = 0;\n\n // draw the line\n if (this.from != this.to) {\n // draw line\n this._line(ctx, values, viaNode);\n } else {\n const [x, y, radius] = this._getCircleData(ctx);\n this._circle(ctx, values, x, y, radius);\n }\n\n // restore the dash settings.\n ctx.setLineDash([0]);\n ctx.lineDashOffset = 0;\n ctx.restore();\n } else {\n // unsupporting smooth lines\n if (this.from != this.to) {\n // draw line\n drawDashedLine(\n ctx,\n this.from.x,\n this.from.y,\n this.to.x,\n this.to.y,\n pattern\n );\n } else {\n const [x, y, radius] = this._getCircleData(ctx);\n this._circle(ctx, values, x, y, radius);\n }\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n\n ctx.stroke();\n\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n }\n }\n\n /**\n * Draw a line with given style between two nodes through supplied node(s).\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values like color, opacity or shadow.\n * @param viaNode - Additional control point(s) for the edge.\n * @param fromPoint - TODO: Seems ignored, remove?\n * @param toPoint - TODO: Seems ignored, remove?\n */\n protected abstract _line(\n ctx: CanvasRenderingContext2D,\n values: EdgeFormattingValues,\n viaNode: Via,\n fromPoint?: Point,\n toPoint?: Point\n ): void;\n\n /**\n * Find the intersection between the border of the node and the edge.\n *\n * @param node - The node (either from or to node of the edge).\n * @param ctx - The context that will be used for rendering.\n * @param options - Additional options.\n * @returns Cartesian coordinates of the intersection between the border of the node and the edge.\n */\n public findBorderPosition(\n node: VNode,\n ctx: CanvasRenderingContext2D,\n options?: FindBorderPositionOptions | FindBorderPositionCircleOptions\n ): PointT {\n if (this.from != this.to) {\n return this._findBorderPosition(node, ctx, options as any);\n } else {\n return this._findBorderPositionCircle(node, ctx, options as any);\n }\n }\n\n /** @inheritDoc */\n public findBorderPositions(ctx: CanvasRenderingContext2D): {\n from: Point;\n to: Point;\n } {\n if (this.from != this.to) {\n return {\n from: this._findBorderPosition(this.from, ctx),\n to: this._findBorderPosition(this.to, ctx),\n };\n } else {\n const [x, y] = this._getCircleData(ctx).slice(0, 2);\n\n return {\n from: this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low: 0.25,\n high: 0.6,\n direction: -1,\n }),\n to: this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low: 0.6,\n high: 0.8,\n direction: 1,\n }),\n };\n }\n }\n\n /**\n * Compute the center point and radius of an edge connected to the same node at both ends.\n *\n * @param ctx - The context that will be used for rendering.\n * @returns `[x, y, radius]`\n */\n protected _getCircleData(\n ctx?: CanvasRenderingContext2D\n ): [number, number, number] {\n const radius = this.options.selfReference.size;\n\n if (ctx !== undefined) {\n if (this.from.shape.width === undefined) {\n this.from.shape.resize(ctx);\n }\n }\n\n // get circle coordinates\n const coordinates = getSelfRefCoordinates(\n ctx,\n this.options.selfReference.angle,\n radius,\n this.from\n );\n\n return [coordinates.x, coordinates.y, radius];\n }\n\n /**\n * Get a point on a circle.\n *\n * @param x - Center of the circle on the x axis.\n * @param y - Center of the circle on the y axis.\n * @param radius - Radius of the circle.\n * @param position - Value between 0 (line start) and 1 (line end).\n * @returns Cartesian coordinates of requested point on the circle.\n */\n private _pointOnCircle(\n x: number,\n y: number,\n radius: number,\n position: number\n ): Point {\n const angle = position * 2 * Math.PI;\n return {\n x: x + radius * Math.cos(angle),\n y: y - radius * Math.sin(angle),\n };\n }\n\n /**\n * Find the intersection between the border of the node and the edge.\n *\n * @remarks\n * This function uses binary search to look for the point where the circle crosses the border of the node.\n * @param nearNode - The node (either from or to node of the edge).\n * @param ctx - The context that will be used for rendering.\n * @param options - Additional options.\n * @returns Cartesian coordinates of the intersection between the border of the node and the edge.\n */\n private _findBorderPositionCircle(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D,\n options: FindBorderPositionCircleOptions\n ): PointT {\n const x = options.x;\n const y = options.y;\n let low = options.low;\n let high = options.high;\n const direction = options.direction;\n\n const maxIterations = 10;\n const radius = this.options.selfReference.size;\n const threshold = 0.05;\n let pos: Point;\n\n let middle = (low + high) * 0.5;\n\n let endPointOffset = 0;\n if (this.options.arrowStrikethrough === true) {\n if (direction === -1) {\n endPointOffset = this.options.endPointOffset.from;\n } else if (direction === 1) {\n endPointOffset = this.options.endPointOffset.to;\n }\n }\n\n let iteration = 0;\n do {\n middle = (low + high) * 0.5;\n\n pos = this._pointOnCircle(x, y, radius, middle);\n const angle = Math.atan2(nearNode.y - pos.y, nearNode.x - pos.x);\n\n const distanceToBorder =\n nearNode.distanceToBorder(ctx, angle) + endPointOffset;\n\n const distanceToPoint = Math.sqrt(\n Math.pow(pos.x - nearNode.x, 2) + Math.pow(pos.y - nearNode.y, 2)\n );\n const difference = distanceToBorder - distanceToPoint;\n if (Math.abs(difference) < threshold) {\n break; // found\n } else if (difference > 0) {\n // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node.\n if (direction > 0) {\n low = middle;\n } else {\n high = middle;\n }\n } else {\n if (direction > 0) {\n high = middle;\n } else {\n low = middle;\n }\n }\n\n ++iteration;\n } while (low <= high && iteration < maxIterations);\n\n return {\n ...pos,\n t: middle,\n };\n }\n\n /**\n * Get the line width of the edge. Depends on width and whether one of the connected nodes is selected.\n *\n * @param selected - Determines wheter the line is selected.\n * @param hover - Determines wheter the line is being hovered, only applies if selected is false.\n * @returns The width of the line.\n */\n public getLineWidth(selected: boolean, hover: boolean): number {\n if (selected === true) {\n return Math.max(this.selectionWidth, 0.3 / this._body.view.scale);\n } else if (hover === true) {\n return Math.max(this.hoverWidth, 0.3 / this._body.view.scale);\n } else {\n return Math.max(this.options.width, 0.3 / this._body.view.scale);\n }\n }\n\n /**\n * Compute the color or gradient for given edge.\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values like color, opacity or shadow.\n * @param _selected - Ignored (TODO: remove in the future).\n * @param _hover - Ignored (TODO: remove in the future).\n * @returns Color string if single color is inherited or gradient if two.\n */\n public getColor(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired\n ): string | CanvasGradient {\n if (values.inheritsColor !== false) {\n // when this is a loop edge, just use the 'from' method\n if (values.inheritsColor === \"both\" && this.from.id !== this.to.id) {\n const grd = ctx.createLinearGradient(\n this.from.x,\n this.from.y,\n this.to.x,\n this.to.y\n );\n let fromColor = this.from.options.color.highlight.border;\n let toColor = this.to.options.color.highlight.border;\n\n if (this.from.selected === false && this.to.selected === false) {\n fromColor = overrideOpacity(\n this.from.options.color.border,\n values.opacity\n );\n toColor = overrideOpacity(\n this.to.options.color.border,\n values.opacity\n );\n } else if (this.from.selected === true && this.to.selected === false) {\n toColor = this.to.options.color.border;\n } else if (this.from.selected === false && this.to.selected === true) {\n fromColor = this.from.options.color.border;\n }\n grd.addColorStop(0, fromColor);\n grd.addColorStop(1, toColor);\n\n // -------------------- this returns -------------------- //\n return grd;\n }\n\n if (values.inheritsColor === \"to\") {\n return overrideOpacity(this.to.options.color.border, values.opacity);\n } else {\n // \"from\"\n return overrideOpacity(this.from.options.color.border, values.opacity);\n }\n } else {\n return overrideOpacity(values.color, values.opacity);\n }\n }\n\n /**\n * Draw a line from a node to itself, a circle.\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values like color, opacity or shadow.\n * @param x - Center of the circle on the x axis.\n * @param y - Center of the circle on the y axis.\n * @param radius - Radius of the circle.\n */\n private _circle(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"shadowColor\" | \"shadowSize\" | \"shadowX\" | \"shadowY\"\n >,\n x: number,\n y: number,\n radius: number\n ): void {\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n\n //full circle\n let angleFrom = 0;\n let angleTo = Math.PI * 2;\n\n if (!this.options.selfReference.renderBehindTheNode) {\n //render only parts which are not overlaping with parent node\n //need to find x,y of from point and x,y to point\n //calculating radians\n const low = this.options.selfReference.angle;\n const high = this.options.selfReference.angle + Math.PI;\n const pointTFrom = this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low,\n high,\n direction: -1,\n });\n const pointTTo = this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low,\n high,\n direction: 1,\n });\n angleFrom = Math.atan2(pointTFrom.y - y, pointTFrom.x - x);\n angleTo = Math.atan2(pointTTo.y - y, pointTTo.x - x);\n }\n\n // draw a circle\n ctx.beginPath();\n ctx.arc(x, y, radius, angleFrom, angleTo, false);\n ctx.stroke();\n\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n }\n\n /**\n * @inheritDoc\n * @remarks\n * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment\n */\n public getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ): number {\n if (this.from != this.to) {\n return this._getDistanceToEdge(x1, y1, x2, y2, x3, y3);\n } else {\n const [x, y, radius] = this._getCircleData(undefined);\n const dx = x - x3;\n const dy = y - y3;\n return Math.abs(Math.sqrt(dx * dx + dy * dy) - radius);\n }\n }\n\n /**\n * Calculate the distance between a point (x3, y3) and a line segment from (x1, y1) to (x2, y2).\n *\n * @remarks\n * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment\n * @param x1 - First end of the line segment on the x axis.\n * @param y1 - First end of the line segment on the y axis.\n * @param x2 - Second end of the line segment on the x axis.\n * @param y2 - Second end of the line segment on the y axis.\n * @param x3 - Position of the point on the x axis.\n * @param y3 - Position of the point on the y axis.\n * @param via - Additional control point(s) for the edge.\n * @returns The distance between the line segment and the point.\n */\n protected abstract _getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n via?: Via\n ): number;\n\n /**\n * Calculate the distance between a point (x3, y3) and a line segment from (x1, y1) to (x2, y2).\n *\n * @param x1 - First end of the line segment on the x axis.\n * @param y1 - First end of the line segment on the y axis.\n * @param x2 - Second end of the line segment on the x axis.\n * @param y2 - Second end of the line segment on the y axis.\n * @param x3 - Position of the point on the x axis.\n * @param y3 - Position of the point on the y axis.\n * @returns The distance between the line segment and the point.\n */\n protected _getDistanceToLine(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ): number {\n const px = x2 - x1;\n const py = y2 - y1;\n const something = px * px + py * py;\n let u = ((x3 - x1) * px + (y3 - y1) * py) / something;\n\n if (u > 1) {\n u = 1;\n } else if (u < 0) {\n u = 0;\n }\n\n const x = x1 + u * px;\n const y = y1 + u * py;\n const dx = x - x3;\n const dy = y - y3;\n\n //# Note: If the actual distance does not matter,\n //# if you only want to compare what this function\n //# returns to other results of this function, you\n //# can just return the squared distance instead\n //# (i.e. remove the sqrt) to gain a little performance\n\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n /** @inheritDoc */\n public getArrowData(\n ctx: CanvasRenderingContext2D,\n position: \"middle\",\n viaNode: VNode,\n selected: boolean,\n hover: boolean,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"middleArrowType\" | \"middleArrowScale\" | \"width\"\n >\n ): ArrowDataWithCore;\n /** @inheritDoc */\n public getArrowData(\n ctx: CanvasRenderingContext2D,\n position: \"to\",\n viaNode: VNode,\n selected: boolean,\n hover: boolean,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"toArrowType\" | \"toArrowScale\" | \"width\"\n >\n ): ArrowDataWithCore;\n /** @inheritDoc */\n public getArrowData(\n ctx: CanvasRenderingContext2D,\n position: \"from\",\n viaNode: VNode,\n selected: boolean,\n hover: boolean,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"fromArrowType\" | \"fromArrowScale\" | \"width\"\n >\n ): ArrowDataWithCore;\n /** @inheritDoc */\n public getArrowData(\n ctx: CanvasRenderingContext2D,\n position: \"from\" | \"to\" | \"middle\",\n viaNode: VNode,\n _selected: boolean,\n _hover: boolean,\n values: SelectiveRequired\n ): ArrowDataWithCore {\n // set lets\n let angle: number;\n let arrowPoint: Point;\n let node1: VNode;\n let node2: VNode;\n let reversed: boolean;\n let scaleFactor: number;\n let type: ArrowType;\n const lineWidth: number = values.width;\n\n if (position === \"from\") {\n node1 = this.from;\n node2 = this.to;\n reversed = values.fromArrowScale! < 0;\n scaleFactor = Math.abs(values.fromArrowScale!);\n type = values.fromArrowType!;\n } else if (position === \"to\") {\n node1 = this.to;\n node2 = this.from;\n reversed = values.toArrowScale! < 0;\n scaleFactor = Math.abs(values.toArrowScale!);\n type = values.toArrowType!;\n } else {\n node1 = this.to;\n node2 = this.from;\n reversed = values.middleArrowScale! < 0;\n scaleFactor = Math.abs(values.middleArrowScale!);\n type = values.middleArrowType!;\n }\n\n const length = 15 * scaleFactor + 3 * lineWidth; // 3* lineWidth is the width of the edge.\n\n // if not connected to itself\n if (node1 != node2) {\n const approximateEdgeLength = Math.hypot(\n node1.x - node2.x,\n node1.y - node2.y\n );\n const relativeLength = length / approximateEdgeLength;\n\n if (position !== \"middle\") {\n // draw arrow head\n if (this.options.smooth.enabled === true) {\n const pointT = this._findBorderPosition(node1, ctx, { via: viaNode });\n const guidePos = this.getPoint(\n pointT.t + relativeLength * (position === \"from\" ? 1 : -1),\n viaNode\n );\n angle = Math.atan2(pointT.y - guidePos.y, pointT.x - guidePos.x);\n arrowPoint = pointT;\n } else {\n angle = Math.atan2(node1.y - node2.y, node1.x - node2.x);\n arrowPoint = this._findBorderPosition(node1, ctx);\n }\n } else {\n // Negative half length reverses arrow direction.\n const halfLength = (reversed ? -relativeLength : relativeLength) / 2;\n const guidePos1 = this.getPoint(0.5 + halfLength, viaNode);\n const guidePos2 = this.getPoint(0.5 - halfLength, viaNode);\n angle = Math.atan2(\n guidePos1.y - guidePos2.y,\n guidePos1.x - guidePos2.x\n );\n arrowPoint = this.getPoint(0.5, viaNode);\n }\n } else {\n // draw circle\n const [x, y, radius] = this._getCircleData(ctx);\n\n if (position === \"from\") {\n const low = this.options.selfReference.angle;\n const high = this.options.selfReference.angle + Math.PI;\n\n const pointT = this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low,\n high,\n direction: -1,\n });\n angle = pointT.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI;\n arrowPoint = pointT;\n } else if (position === \"to\") {\n const low = this.options.selfReference.angle;\n const high = this.options.selfReference.angle + Math.PI;\n\n const pointT = this._findBorderPositionCircle(this.from, ctx, {\n x,\n y,\n low,\n high,\n direction: 1,\n });\n angle = pointT.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI;\n arrowPoint = pointT;\n } else {\n const pos = this.options.selfReference.angle / (2 * Math.PI);\n arrowPoint = this._pointOnCircle(x, y, radius, pos);\n angle = pos * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI;\n }\n }\n\n const xi = arrowPoint.x - length * 0.9 * Math.cos(angle);\n const yi = arrowPoint.y - length * 0.9 * Math.sin(angle);\n const arrowCore = { x: xi, y: yi };\n\n return {\n point: arrowPoint,\n core: arrowCore,\n angle: angle,\n length: length,\n type: type,\n };\n }\n\n /** @inheritDoc */\n public drawArrowHead(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"color\"\n | \"opacity\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n | \"width\"\n >,\n _selected: boolean,\n _hover: boolean,\n arrowData: ArrowData\n ): void {\n // set style\n ctx.strokeStyle = this.getColor(ctx, values);\n ctx.fillStyle = ctx.strokeStyle;\n ctx.lineWidth = values.width;\n\n const canFill = EndPoints.draw(ctx, arrowData);\n\n if (canFill) {\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n ctx.fill();\n // disable shadows for other elements.\n this.disableShadow(ctx, values);\n }\n }\n\n /**\n * Set the shadow formatting values in the context if enabled, do nothing otherwise.\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values for the shadow.\n */\n public enableShadow(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"shadowColor\" | \"shadowSize\" | \"shadowX\" | \"shadowY\"\n >\n ): void {\n if (values.shadow === true) {\n ctx.shadowColor = values.shadowColor;\n ctx.shadowBlur = values.shadowSize;\n ctx.shadowOffsetX = values.shadowX;\n ctx.shadowOffsetY = values.shadowY;\n }\n }\n\n /**\n * Reset the shadow formatting values in the context if enabled, do nothing otherwise.\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values for the shadow.\n */\n public disableShadow(\n ctx: CanvasRenderingContext2D,\n values: EdgeFormattingValues\n ): void {\n if (values.shadow === true) {\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n ctx.shadowBlur = 0;\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n }\n }\n\n /**\n * Render the background according to the formatting values.\n *\n * @param ctx - The context that will be used for rendering.\n * @param values - Formatting values for the background.\n */\n public drawBackground(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"backgroundColor\" | \"backgroundSize\"\n >\n ): void {\n if (values.background !== false) {\n // save original line attrs\n const origCtxAttr = {\n strokeStyle: ctx.strokeStyle,\n lineWidth: ctx.lineWidth,\n dashes: (ctx as any).dashes,\n };\n\n ctx.strokeStyle = values.backgroundColor;\n ctx.lineWidth = values.backgroundSize;\n this.setStrokeDashed(ctx, values.backgroundDashes);\n\n ctx.stroke();\n\n // restore original line attrs\n ctx.strokeStyle = origCtxAttr.strokeStyle;\n ctx.lineWidth = origCtxAttr.lineWidth;\n (ctx as any).dashes = origCtxAttr.dashes;\n this.setStrokeDashed(ctx, values.dashes);\n }\n }\n\n /**\n * Set the line dash pattern if supported. Logs a warning to the console if it isn't supported.\n *\n * @param ctx - The context that will be used for rendering.\n * @param dashes - The pattern [line, space, line…], true for default dashed line or false for normal line.\n */\n public setStrokeDashed(\n ctx: CanvasRenderingContext2D,\n dashes?: boolean | number[]\n ): void {\n if (dashes !== false) {\n if (ctx.setLineDash !== undefined) {\n const pattern = Array.isArray(dashes) ? dashes : [5, 5];\n ctx.setLineDash(pattern);\n } else {\n console.warn(\n \"setLineDash is not supported in this browser. The dashed stroke cannot be used.\"\n );\n }\n } else {\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n } else {\n console.warn(\n \"setLineDash is not supported in this browser. The dashed stroke cannot be used.\"\n );\n }\n }\n }\n}\n","import { EdgeBase } from \"./edge-base\";\nimport {\n EdgeFormattingValues,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./types\";\n\n/**\n * The Base Class for all Bezier edges.\n * Bezier curves are used to model smooth gradual curves in paths between nodes.\n */\nexport abstract class BezierEdgeBase extends EdgeBase {\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n super(options, body, labelModule);\n }\n\n /**\n * Compute additional point(s) the edge passes through.\n *\n * @returns Cartesian coordinates of the point(s) the edge passes through.\n */\n protected abstract _getViaCoordinates(): Via;\n\n /**\n * Find the intersection between the border of the node and the edge.\n *\n * @remarks\n * This function uses binary search to look for the point where the bezier curve crosses the border of the node.\n * @param nearNode - The node (either from or to node of the edge).\n * @param ctx - The context that will be used for rendering.\n * @param viaNode - Additional node(s) the edge passes through.\n * @returns Cartesian coordinates of the intersection between the border of the node and the edge.\n */\n protected _findBorderPositionBezier(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D,\n viaNode: Via = this._getViaCoordinates()\n ): PointT {\n const maxIterations = 10;\n const threshold = 0.2;\n let from = false;\n let high = 1;\n let low = 0;\n let node = this.to;\n let pos: Point;\n let middle: number;\n\n let endPointOffset = this.options.endPointOffset\n ? this.options.endPointOffset.to\n : 0;\n\n if (nearNode.id === this.from.id) {\n node = this.from;\n from = true;\n\n endPointOffset = this.options.endPointOffset\n ? this.options.endPointOffset.from\n : 0;\n }\n\n if (this.options.arrowStrikethrough === false) {\n endPointOffset = 0;\n }\n\n let iteration = 0;\n do {\n middle = (low + high) * 0.5;\n\n pos = this.getPoint(middle, viaNode);\n const angle = Math.atan2(node.y - pos.y, node.x - pos.x);\n\n const distanceToBorder =\n node.distanceToBorder(ctx, angle) + endPointOffset;\n\n const distanceToPoint = Math.sqrt(\n Math.pow(pos.x - node.x, 2) + Math.pow(pos.y - node.y, 2)\n );\n const difference = distanceToBorder - distanceToPoint;\n if (Math.abs(difference) < threshold) {\n break; // found\n } else if (difference < 0) {\n // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node.\n if (from === false) {\n low = middle;\n } else {\n high = middle;\n }\n } else {\n if (from === false) {\n high = middle;\n } else {\n low = middle;\n }\n }\n\n ++iteration;\n } while (low <= high && iteration < maxIterations);\n\n return {\n ...pos,\n t: middle,\n };\n }\n\n /**\n * Calculate the distance between a point (x3,y3) and a line segment from (x1,y1) to (x2,y2).\n *\n * @remarks\n * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment\n * @param x1 - First end of the line segment on the x axis.\n * @param y1 - First end of the line segment on the y axis.\n * @param x2 - Second end of the line segment on the x axis.\n * @param y2 - Second end of the line segment on the y axis.\n * @param x3 - Position of the point on the x axis.\n * @param y3 - Position of the point on the y axis.\n * @param via - The control point for the edge.\n * @returns The distance between the line segment and the point.\n */\n protected _getDistanceToBezierEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n via: Point\n ): number {\n // x3,y3 is the point\n let minDistance = 1e9;\n let distance;\n let i, t, x, y;\n let lastX = x1;\n let lastY = y1;\n for (i = 1; i < 10; i++) {\n t = 0.1 * i;\n x =\n Math.pow(1 - t, 2) * x1 + 2 * t * (1 - t) * via.x + Math.pow(t, 2) * x2;\n y =\n Math.pow(1 - t, 2) * y1 + 2 * t * (1 - t) * via.y + Math.pow(t, 2) * y2;\n if (i > 0) {\n distance = this._getDistanceToLine(lastX, lastY, x, y, x3, y3);\n minDistance = distance < minDistance ? distance : minDistance;\n }\n lastX = x;\n lastY = y;\n }\n\n return minDistance;\n }\n\n /**\n * Render a bezier curve between two nodes.\n *\n * @remarks\n * The method accepts zero, one or two control points.\n * Passing zero control points just draws a straight line.\n * @param ctx - The context that will be used for rendering.\n * @param values - Style options for edge drawing.\n * @param viaNode1 - First control point for curve drawing.\n * @param viaNode2 - Second control point for curve drawing.\n */\n protected _bezierCurve(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"backgroundColor\"\n | \"backgroundSize\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n >,\n viaNode1?: Point,\n viaNode2?: Point\n ): void {\n ctx.beginPath();\n ctx.moveTo(this.fromPoint.x, this.fromPoint.y);\n\n if (viaNode1 != null && viaNode1.x != null) {\n if (viaNode2 != null && viaNode2.x != null) {\n ctx.bezierCurveTo(\n viaNode1.x,\n viaNode1.y,\n viaNode2.x,\n viaNode2.y,\n this.toPoint.x,\n this.toPoint.y\n );\n } else {\n ctx.quadraticCurveTo(\n viaNode1.x,\n viaNode1.y,\n this.toPoint.x,\n this.toPoint.y\n );\n }\n } else {\n // fallback to normal straight edge\n ctx.lineTo(this.toPoint.x, this.toPoint.y);\n }\n\n // draw a background\n this.drawBackground(ctx, values);\n\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n ctx.stroke();\n this.disableShadow(ctx, values);\n }\n\n /** @inheritDoc */\n public getViaNode(): Via {\n return this._getViaCoordinates();\n }\n}\n","import { BezierEdgeBase } from \"./util/bezier-edge-base\";\nimport {\n EdgeFormattingValues,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./util/types\";\n\n/**\n * A Dynamic Bezier Edge. Bezier curves are used to model smooth gradual\n * curves in paths between nodes. The Dynamic piece refers to how the curve\n * reacts to physics changes.\n *\n * @augments BezierEdgeBase\n */\nexport class BezierEdgeDynamic extends BezierEdgeBase {\n public via: VNode = this.via; // constructor → super → super → setOptions → setupSupportNode\n private readonly _boundFunction: () => void;\n\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n //this.via = undefined; // Here for completeness but not allowed to defined before super() is invoked.\n super(options, body, labelModule); // --> this calls the setOptions below\n this._boundFunction = (): void => {\n this.positionBezierNode();\n };\n this._body.emitter.on(\"_repositionBezierNodes\", this._boundFunction);\n }\n\n /** @inheritDoc */\n public setOptions(options: EdgeOptions): void {\n super.setOptions(options);\n\n // check if the physics has changed.\n let physicsChange = false;\n if (this.options.physics !== options.physics) {\n physicsChange = true;\n }\n\n // set the options and the to and from nodes\n this.options = options;\n this.id = this.options.id;\n this.from = this._body.nodes[this.options.from];\n this.to = this._body.nodes[this.options.to];\n\n // setup the support node and connect\n this.setupSupportNode();\n this.connect();\n\n // when we change the physics state of the edge, we reposition the support node.\n if (physicsChange === true) {\n this.via.setOptions({ physics: this.options.physics });\n this.positionBezierNode();\n }\n }\n\n /** @inheritDoc */\n public connect(): void {\n this.from = this._body.nodes[this.options.from];\n this.to = this._body.nodes[this.options.to];\n if (\n this.from === undefined ||\n this.to === undefined ||\n this.options.physics === false\n ) {\n this.via.setOptions({ physics: false });\n } else {\n // fix weird behaviour where a self referencing node has physics enabled\n if (this.from.id === this.to.id) {\n this.via.setOptions({ physics: false });\n } else {\n this.via.setOptions({ physics: true });\n }\n }\n }\n\n /** @inheritDoc */\n public cleanup(): boolean {\n this._body.emitter.off(\"_repositionBezierNodes\", this._boundFunction);\n if (this.via !== undefined) {\n delete this._body.nodes[this.via.id];\n this.via = undefined;\n return true;\n }\n return false;\n }\n\n /**\n * Create and add a support node if not already present.\n *\n * @remarks\n * Bezier curves require an anchor point to calculate the smooth flow.\n * These points are nodes.\n * These nodes are invisible but are used for the force calculation.\n *\n * The changed data is not called, if needed, it is returned by the main edge constructor.\n */\n public setupSupportNode(): void {\n if (this.via === undefined) {\n const nodeId = \"edgeId:\" + this.id;\n const node = this._body.functions.createNode({\n id: nodeId,\n shape: \"circle\",\n physics: true,\n hidden: true,\n });\n this._body.nodes[nodeId] = node;\n this.via = node;\n this.via.parentEdgeId = this.id;\n this.positionBezierNode();\n }\n }\n\n /**\n * Position bezier node.\n */\n public positionBezierNode(): void {\n if (\n this.via !== undefined &&\n this.from !== undefined &&\n this.to !== undefined\n ) {\n this.via.x = 0.5 * (this.from.x + this.to.x);\n this.via.y = 0.5 * (this.from.y + this.to.y);\n } else if (this.via !== undefined) {\n this.via.x = 0;\n this.via.y = 0;\n }\n }\n\n /** @inheritDoc */\n protected _line(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"backgroundColor\"\n | \"backgroundSize\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n >,\n viaNode: VNode\n ): void {\n this._bezierCurve(ctx, values, viaNode);\n }\n\n /** @inheritDoc */\n protected _getViaCoordinates(): Point {\n return this.via;\n }\n\n /** @inheritDoc */\n public getViaNode(): Point {\n return this.via;\n }\n\n /** @inheritDoc */\n public getPoint(position: number, viaNode: Point = this.via): Point {\n if (this.from === this.to) {\n const [cx, cy, cr] = this._getCircleData();\n const a = 2 * Math.PI * (1 - position);\n return {\n x: cx + cr * Math.sin(a),\n y: cy + cr - cr * (1 - Math.cos(a)),\n };\n } else {\n return {\n x:\n Math.pow(1 - position, 2) * this.fromPoint.x +\n 2 * position * (1 - position) * viaNode.x +\n Math.pow(position, 2) * this.toPoint.x,\n y:\n Math.pow(1 - position, 2) * this.fromPoint.y +\n 2 * position * (1 - position) * viaNode.y +\n Math.pow(position, 2) * this.toPoint.y,\n };\n }\n }\n\n /** @inheritDoc */\n protected _findBorderPosition(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D\n ): PointT {\n return this._findBorderPositionBezier(nearNode, ctx, this.via);\n }\n\n /** @inheritDoc */\n protected _getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ): number {\n // x3,y3 is the point\n return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, this.via);\n }\n}\n","import { BezierEdgeBase } from \"./util/bezier-edge-base\";\nimport {\n EdgeFormattingValues,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./util/types\";\n\n/**\n * A Static Bezier Edge. Bezier curves are used to model smooth gradual curves in paths between nodes.\n */\nexport class BezierEdgeStatic extends BezierEdgeBase {\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n super(options, body, labelModule);\n }\n\n /** @inheritDoc */\n protected _line(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"backgroundColor\"\n | \"backgroundSize\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n >,\n viaNode: Point\n ): void {\n this._bezierCurve(ctx, values, viaNode);\n }\n\n /** @inheritDoc */\n public getViaNode(): Point {\n return this._getViaCoordinates();\n }\n\n /**\n * Compute the coordinates of the via node.\n *\n * @remarks\n * We do not use the to and fromPoints here to make the via nodes the same as edges without arrows.\n * @returns Cartesian coordinates of the via node.\n */\n protected _getViaCoordinates(): Point {\n // Assumption: x/y coordinates in from/to always defined\n const factor = this.options.smooth.roundness;\n const type = this.options.smooth.type;\n let dx = Math.abs(this.from.x - this.to.x);\n let dy = Math.abs(this.from.y - this.to.y);\n if (type === \"discrete\" || type === \"diagonalCross\") {\n let stepX;\n let stepY;\n\n if (dx <= dy) {\n stepX = stepY = factor * dy;\n } else {\n stepX = stepY = factor * dx;\n }\n\n if (this.from.x > this.to.x) {\n stepX = -stepX;\n }\n if (this.from.y >= this.to.y) {\n stepY = -stepY;\n }\n\n let xVia = this.from.x + stepX;\n let yVia = this.from.y + stepY;\n\n if (type === \"discrete\") {\n if (dx <= dy) {\n xVia = dx < factor * dy ? this.from.x : xVia;\n } else {\n yVia = dy < factor * dx ? this.from.y : yVia;\n }\n }\n\n return { x: xVia, y: yVia };\n } else if (type === \"straightCross\") {\n let stepX = (1 - factor) * dx;\n let stepY = (1 - factor) * dy;\n\n if (dx <= dy) {\n // up - down\n stepX = 0;\n if (this.from.y < this.to.y) {\n stepY = -stepY;\n }\n } else {\n // left - right\n if (this.from.x < this.to.x) {\n stepX = -stepX;\n }\n stepY = 0;\n }\n\n return {\n x: this.to.x + stepX,\n y: this.to.y + stepY,\n };\n } else if (type === \"horizontal\") {\n let stepX = (1 - factor) * dx;\n if (this.from.x < this.to.x) {\n stepX = -stepX;\n }\n\n return {\n x: this.to.x + stepX,\n y: this.from.y,\n };\n } else if (type === \"vertical\") {\n let stepY = (1 - factor) * dy;\n if (this.from.y < this.to.y) {\n stepY = -stepY;\n }\n\n return {\n x: this.from.x,\n y: this.to.y + stepY,\n };\n } else if (type === \"curvedCW\") {\n dx = this.to.x - this.from.x;\n dy = this.from.y - this.to.y;\n const radius = Math.sqrt(dx * dx + dy * dy);\n const pi = Math.PI;\n\n const originalAngle = Math.atan2(dy, dx);\n const myAngle = (originalAngle + (factor * 0.5 + 0.5) * pi) % (2 * pi);\n\n return {\n x: this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle),\n y: this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle),\n };\n } else if (type === \"curvedCCW\") {\n dx = this.to.x - this.from.x;\n dy = this.from.y - this.to.y;\n const radius = Math.sqrt(dx * dx + dy * dy);\n const pi = Math.PI;\n\n const originalAngle = Math.atan2(dy, dx);\n const myAngle = (originalAngle + (-factor * 0.5 + 0.5) * pi) % (2 * pi);\n\n return {\n x: this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle),\n y: this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle),\n };\n } else {\n // continuous\n let stepX;\n let stepY;\n\n if (dx <= dy) {\n stepX = stepY = factor * dy;\n } else {\n stepX = stepY = factor * dx;\n }\n\n if (this.from.x > this.to.x) {\n stepX = -stepX;\n }\n if (this.from.y >= this.to.y) {\n stepY = -stepY;\n }\n\n let xVia = this.from.x + stepX;\n let yVia = this.from.y + stepY;\n\n if (dx <= dy) {\n if (this.from.x <= this.to.x) {\n xVia = this.to.x < xVia ? this.to.x : xVia;\n } else {\n xVia = this.to.x > xVia ? this.to.x : xVia;\n }\n } else {\n if (this.from.y >= this.to.y) {\n yVia = this.to.y > yVia ? this.to.y : yVia;\n } else {\n yVia = this.to.y < yVia ? this.to.y : yVia;\n }\n }\n\n return { x: xVia, y: yVia };\n }\n }\n\n /** @inheritDoc */\n protected _findBorderPosition(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D,\n options: { via?: Point } = {}\n ): PointT {\n return this._findBorderPositionBezier(nearNode, ctx, options.via);\n }\n\n /** @inheritDoc */\n protected _getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n viaNode = this._getViaCoordinates()\n ) {\n // x3,y3 is the point\n return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, viaNode);\n }\n\n /** @inheritDoc */\n public getPoint(\n position: number,\n viaNode: Point = this._getViaCoordinates()\n ): Point {\n const t = position;\n const x =\n Math.pow(1 - t, 2) * this.fromPoint.x +\n 2 * t * (1 - t) * viaNode.x +\n Math.pow(t, 2) * this.toPoint.x;\n const y =\n Math.pow(1 - t, 2) * this.fromPoint.y +\n 2 * t * (1 - t) * viaNode.y +\n Math.pow(t, 2) * this.toPoint.y;\n\n return { x: x, y: y };\n }\n}\n","import { BezierEdgeBase } from \"./bezier-edge-base\";\nimport { Label, EdgeOptions, Point, VBody } from \"./types\";\n\n/**\n * A Base Class for all Cubic Bezier Edges. Bezier curves are used to model\n * smooth gradual curves in paths between nodes.\n *\n * @augments BezierEdgeBase\n */\nexport abstract class CubicBezierEdgeBase extends BezierEdgeBase {\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n super(options, body, labelModule);\n }\n\n /**\n * Calculate the distance between a point (x3,y3) and a line segment from (x1,y1) to (x2,y2).\n *\n * @remarks\n * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n * @param x1 - First end of the line segment on the x axis.\n * @param y1 - First end of the line segment on the y axis.\n * @param x2 - Second end of the line segment on the x axis.\n * @param y2 - Second end of the line segment on the y axis.\n * @param x3 - Position of the point on the x axis.\n * @param y3 - Position of the point on the y axis.\n * @param via1 - The first point this edge passes through.\n * @param via2 - The second point this edge passes through.\n * @returns The distance between the line segment and the point.\n */\n protected _getDistanceToBezierEdge2(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n via1: Point,\n via2: Point\n ): number {\n // x3,y3 is the point\n let minDistance = 1e9;\n let lastX = x1;\n let lastY = y1;\n const vec = [0, 0, 0, 0];\n for (let i = 1; i < 10; i++) {\n const t = 0.1 * i;\n vec[0] = Math.pow(1 - t, 3);\n vec[1] = 3 * t * Math.pow(1 - t, 2);\n vec[2] = 3 * Math.pow(t, 2) * (1 - t);\n vec[3] = Math.pow(t, 3);\n const x = vec[0] * x1 + vec[1] * via1.x + vec[2] * via2.x + vec[3] * x2;\n const y = vec[0] * y1 + vec[1] * via1.y + vec[2] * via2.y + vec[3] * y2;\n if (i > 0) {\n const distance = this._getDistanceToLine(lastX, lastY, x, y, x3, y3);\n minDistance = distance < minDistance ? distance : minDistance;\n }\n lastX = x;\n lastY = y;\n }\n\n return minDistance;\n }\n}\n","import { CubicBezierEdgeBase } from \"./util/cubic-bezier-edge-base\";\nimport {\n EdgeFormattingValues,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./util/types\";\n\n/**\n * A Cubic Bezier Edge. Bezier curves are used to model smooth gradual curves in paths between nodes.\n */\nexport class CubicBezierEdge extends CubicBezierEdgeBase<[Point, Point]> {\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n super(options, body, labelModule);\n }\n\n /** @inheritDoc */\n protected _line(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n | \"backgroundColor\"\n | \"backgroundSize\"\n | \"shadowColor\"\n | \"shadowSize\"\n | \"shadowX\"\n | \"shadowY\"\n >,\n viaNodes: [Point, Point]\n ): void {\n // get the coordinates of the support points.\n const via1 = viaNodes[0];\n const via2 = viaNodes[1];\n this._bezierCurve(ctx, values, via1, via2);\n }\n\n /**\n * Compute the additional points the edge passes through.\n *\n * @returns Cartesian coordinates of the points the edge passes through.\n */\n protected _getViaCoordinates(): [Point, Point] {\n const dx = this.from.x - this.to.x;\n const dy = this.from.y - this.to.y;\n\n let x1: number;\n let y1: number;\n let x2: number;\n let y2: number;\n const roundness = this.options.smooth.roundness;\n\n // horizontal if x > y or if direction is forced or if direction is horizontal\n if (\n (Math.abs(dx) > Math.abs(dy) ||\n this.options.smooth.forceDirection === true ||\n this.options.smooth.forceDirection === \"horizontal\") &&\n this.options.smooth.forceDirection !== \"vertical\"\n ) {\n y1 = this.from.y;\n y2 = this.to.y;\n x1 = this.from.x - roundness * dx;\n x2 = this.to.x + roundness * dx;\n } else {\n y1 = this.from.y - roundness * dy;\n y2 = this.to.y + roundness * dy;\n x1 = this.from.x;\n x2 = this.to.x;\n }\n\n return [\n { x: x1, y: y1 },\n { x: x2, y: y2 },\n ];\n }\n\n /** @inheritDoc */\n public getViaNode(): [Point, Point] {\n return this._getViaCoordinates();\n }\n\n /** @inheritDoc */\n protected _findBorderPosition(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D\n ): PointT {\n return this._findBorderPositionBezier(nearNode, ctx);\n }\n\n /** @inheritDoc */\n protected _getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n [via1, via2]: [Point, Point] = this._getViaCoordinates()\n ): number {\n // x3,y3 is the point\n return this._getDistanceToBezierEdge2(x1, y1, x2, y2, x3, y3, via1, via2);\n }\n\n /** @inheritDoc */\n public getPoint(\n position: number,\n [via1, via2]: [Point, Point] = this._getViaCoordinates()\n ): Point {\n const t = position;\n const vec: [number, number, number, number] = [\n Math.pow(1 - t, 3),\n 3 * t * Math.pow(1 - t, 2),\n 3 * Math.pow(t, 2) * (1 - t),\n Math.pow(t, 3),\n ];\n const x =\n vec[0] * this.fromPoint.x +\n vec[1] * via1.x +\n vec[2] * via2.x +\n vec[3] * this.toPoint.x;\n const y =\n vec[0] * this.fromPoint.y +\n vec[1] * via1.y +\n vec[2] * via2.y +\n vec[3] * this.toPoint.y;\n\n return { x: x, y: y };\n }\n}\n","import { EdgeBase } from \"./util/edge-base\";\nimport {\n EdgeFormattingValues,\n Label,\n EdgeOptions,\n Point,\n PointT,\n SelectiveRequired,\n VBody,\n VNode,\n} from \"./util/types\";\n\n/**\n * A Straight Edge.\n */\nexport class StraightEdge extends EdgeBase {\n /**\n * Create a new instance.\n *\n * @param options - The options object of given edge.\n * @param body - The body of the network.\n * @param labelModule - Label module.\n */\n public constructor(options: EdgeOptions, body: VBody, labelModule: Label) {\n super(options, body, labelModule);\n }\n\n /** @inheritDoc */\n protected _line(\n ctx: CanvasRenderingContext2D,\n values: SelectiveRequired<\n EdgeFormattingValues,\n \"shadowColor\" | \"shadowSize\" | \"shadowX\" | \"shadowY\"\n >\n ): void {\n // draw a straight line\n ctx.beginPath();\n ctx.moveTo(this.fromPoint.x, this.fromPoint.y);\n ctx.lineTo(this.toPoint.x, this.toPoint.y);\n // draw shadow if enabled\n this.enableShadow(ctx, values);\n ctx.stroke();\n this.disableShadow(ctx, values);\n }\n\n /** @inheritDoc */\n public getViaNode(): undefined {\n return undefined;\n }\n\n /** @inheritDoc */\n public getPoint(position: number): Point {\n return {\n x: (1 - position) * this.fromPoint.x + position * this.toPoint.x,\n y: (1 - position) * this.fromPoint.y + position * this.toPoint.y,\n };\n }\n\n /** @inheritDoc */\n protected _findBorderPosition(\n nearNode: VNode,\n ctx: CanvasRenderingContext2D\n ): PointT {\n let node1 = this.to;\n let node2 = this.from;\n if (nearNode.id === this.from.id) {\n node1 = this.from;\n node2 = this.to;\n }\n\n const angle = Math.atan2(node1.y - node2.y, node1.x - node2.x);\n const dx = node1.x - node2.x;\n const dy = node1.y - node2.y;\n const edgeSegmentLength = Math.sqrt(dx * dx + dy * dy);\n const toBorderDist = nearNode.distanceToBorder(ctx, angle);\n const toBorderPoint =\n (edgeSegmentLength - toBorderDist) / edgeSegmentLength;\n\n return {\n x: (1 - toBorderPoint) * node2.x + toBorderPoint * node1.x,\n y: (1 - toBorderPoint) * node2.y + toBorderPoint * node1.y,\n t: 0,\n };\n }\n\n /** @inheritDoc */\n protected _getDistanceToEdge(\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number\n ): number {\n // x3,y3 is the point\n return this._getDistanceToLine(x1, y1, x2, y2, x3, y3);\n }\n}\n","import {\n bridgeObject,\n deepExtend,\n isString,\n mergeOptions,\n selectiveDeepExtend,\n} from \"vis-util/esnext\";\nimport Label from \"./shared/Label\";\nimport {\n choosify,\n getSelfRefCoordinates,\n isValidLabel,\n pointInRect,\n} from \"./shared/ComponentUtil\";\nimport {\n BezierEdgeDynamic,\n BezierEdgeStatic,\n CubicBezierEdge,\n StraightEdge,\n} from \"./edges\";\n\n/**\n * An edge connects two nodes and has a specific direction.\n */\nclass Edge {\n /**\n * @param {object} options values specific to this edge, must contain at least 'from' and 'to'\n * @param {object} body shared state from Network instance\n * @param {Network.Images} imagelist A list with images. Only needed when the edge has image arrows.\n * @param {object} globalOptions options from the EdgesHandler instance\n * @param {object} defaultOptions default options from the EdgeHandler instance. Value and reference are constant\n */\n constructor(options, body, imagelist, globalOptions, defaultOptions) {\n if (body === undefined) {\n throw new Error(\"No body provided\");\n }\n\n // Since globalOptions is constant in values as well as reference,\n // Following needs to be done only once.\n\n this.options = bridgeObject(globalOptions);\n this.globalOptions = globalOptions;\n this.defaultOptions = defaultOptions;\n this.body = body;\n this.imagelist = imagelist;\n\n // initialize variables\n this.id = undefined;\n this.fromId = undefined;\n this.toId = undefined;\n this.selected = false;\n this.hover = false;\n this.labelDirty = true;\n\n this.baseWidth = this.options.width;\n this.baseFontSize = this.options.font.size;\n\n this.from = undefined; // a node\n this.to = undefined; // a node\n\n this.edgeType = undefined;\n\n this.connected = false;\n\n this.labelModule = new Label(\n this.body,\n this.options,\n true /* It's an edge label */\n );\n this.setOptions(options);\n }\n\n /**\n * Set or overwrite options for the edge\n *\n * @param {object} options an object with options\n * @returns {undefined|boolean} undefined if no options, true if layout affecting data changed, false otherwise.\n */\n setOptions(options) {\n if (!options) {\n return;\n }\n\n // Following options if changed affect the layout.\n let affectsLayout =\n (typeof options.physics !== \"undefined\" &&\n this.options.physics !== options.physics) ||\n (typeof options.hidden !== \"undefined\" &&\n (this.options.hidden || false) !== (options.hidden || false)) ||\n (typeof options.from !== \"undefined\" &&\n this.options.from !== options.from) ||\n (typeof options.to !== \"undefined\" && this.options.to !== options.to);\n\n Edge.parseOptions(this.options, options, true, this.globalOptions);\n\n if (options.id !== undefined) {\n this.id = options.id;\n }\n if (options.from !== undefined) {\n this.fromId = options.from;\n }\n if (options.to !== undefined) {\n this.toId = options.to;\n }\n if (options.title !== undefined) {\n this.title = options.title;\n }\n if (options.value !== undefined) {\n options.value = parseFloat(options.value);\n }\n\n const pile = [options, this.options, this.defaultOptions];\n this.chooser = choosify(\"edge\", pile);\n\n // update label Module\n this.updateLabelModule(options);\n\n // Update edge type, this if changed affects the layout.\n affectsLayout = this.updateEdgeType() || affectsLayout;\n\n // if anything has been updates, reset the selection width and the hover width\n this._setInteractionWidths();\n\n // A node is connected when it has a from and to node that both exist in the network.body.nodes.\n this.connect();\n\n return affectsLayout;\n }\n\n /**\n *\n * @param {object} parentOptions\n * @param {object} newOptions\n * @param {boolean} [allowDeletion=false]\n * @param {object} [globalOptions={}]\n * @param {boolean} [copyFromGlobals=false]\n */\n static parseOptions(\n parentOptions,\n newOptions,\n allowDeletion = false,\n globalOptions = {},\n copyFromGlobals = false\n ) {\n const fields = [\n \"endPointOffset\",\n \"arrowStrikethrough\",\n \"id\",\n \"from\",\n \"hidden\",\n \"hoverWidth\",\n \"labelHighlightBold\",\n \"length\",\n \"line\",\n \"opacity\",\n \"physics\",\n \"scaling\",\n \"selectionWidth\",\n \"selfReferenceSize\",\n \"selfReference\",\n \"to\",\n \"title\",\n \"value\",\n \"width\",\n \"font\",\n \"chosen\",\n \"widthConstraint\",\n ];\n\n // only deep extend the items in the field array. These do not have shorthand.\n selectiveDeepExtend(fields, parentOptions, newOptions, allowDeletion);\n\n // Only use endPointOffset values (from and to) if it's valid values\n if (\n newOptions.endPointOffset !== undefined &&\n newOptions.endPointOffset.from !== undefined\n ) {\n if (Number.isFinite(newOptions.endPointOffset.from)) {\n parentOptions.endPointOffset.from = newOptions.endPointOffset.from;\n } else {\n parentOptions.endPointOffset.from =\n globalOptions.endPointOffset.from !== undefined\n ? globalOptions.endPointOffset.from\n : 0;\n console.error(\"endPointOffset.from is not a valid number\");\n }\n }\n\n if (\n newOptions.endPointOffset !== undefined &&\n newOptions.endPointOffset.to !== undefined\n ) {\n if (Number.isFinite(newOptions.endPointOffset.to)) {\n parentOptions.endPointOffset.to = newOptions.endPointOffset.to;\n } else {\n parentOptions.endPointOffset.to =\n globalOptions.endPointOffset.to !== undefined\n ? globalOptions.endPointOffset.to\n : 0;\n console.error(\"endPointOffset.to is not a valid number\");\n }\n }\n\n // Only copy label if it's a legal value.\n if (isValidLabel(newOptions.label)) {\n parentOptions.label = newOptions.label;\n } else if (!isValidLabel(parentOptions.label)) {\n parentOptions.label = undefined;\n }\n\n mergeOptions(parentOptions, newOptions, \"smooth\", globalOptions);\n mergeOptions(parentOptions, newOptions, \"shadow\", globalOptions);\n mergeOptions(parentOptions, newOptions, \"background\", globalOptions);\n\n if (newOptions.dashes !== undefined && newOptions.dashes !== null) {\n parentOptions.dashes = newOptions.dashes;\n } else if (allowDeletion === true && newOptions.dashes === null) {\n parentOptions.dashes = Object.create(globalOptions.dashes); // this sets the pointer of the option back to the global option.\n }\n\n // set the scaling newOptions\n if (newOptions.scaling !== undefined && newOptions.scaling !== null) {\n if (newOptions.scaling.min !== undefined) {\n parentOptions.scaling.min = newOptions.scaling.min;\n }\n if (newOptions.scaling.max !== undefined) {\n parentOptions.scaling.max = newOptions.scaling.max;\n }\n mergeOptions(\n parentOptions.scaling,\n newOptions.scaling,\n \"label\",\n globalOptions.scaling\n );\n } else if (allowDeletion === true && newOptions.scaling === null) {\n parentOptions.scaling = Object.create(globalOptions.scaling); // this sets the pointer of the option back to the global option.\n }\n\n // handle multiple input cases for arrows\n if (newOptions.arrows !== undefined && newOptions.arrows !== null) {\n if (typeof newOptions.arrows === \"string\") {\n const arrows = newOptions.arrows.toLowerCase();\n parentOptions.arrows.to.enabled = arrows.indexOf(\"to\") != -1;\n parentOptions.arrows.middle.enabled = arrows.indexOf(\"middle\") != -1;\n parentOptions.arrows.from.enabled = arrows.indexOf(\"from\") != -1;\n } else if (typeof newOptions.arrows === \"object\") {\n mergeOptions(\n parentOptions.arrows,\n newOptions.arrows,\n \"to\",\n globalOptions.arrows\n );\n mergeOptions(\n parentOptions.arrows,\n newOptions.arrows,\n \"middle\",\n globalOptions.arrows\n );\n mergeOptions(\n parentOptions.arrows,\n newOptions.arrows,\n \"from\",\n globalOptions.arrows\n );\n } else {\n throw new Error(\n \"The arrow newOptions can only be an object or a string. Refer to the documentation. You used:\" +\n JSON.stringify(newOptions.arrows)\n );\n }\n } else if (allowDeletion === true && newOptions.arrows === null) {\n parentOptions.arrows = Object.create(globalOptions.arrows); // this sets the pointer of the option back to the global option.\n }\n\n // handle multiple input cases for color\n if (newOptions.color !== undefined && newOptions.color !== null) {\n const fromColor = isString(newOptions.color)\n ? {\n color: newOptions.color,\n highlight: newOptions.color,\n hover: newOptions.color,\n inherit: false,\n opacity: 1,\n }\n : newOptions.color;\n const toColor = parentOptions.color;\n\n // If passed, fill in values from default options - required in the case of no prototype bridging\n if (copyFromGlobals) {\n deepExtend(toColor, globalOptions.color, false, allowDeletion);\n } else {\n // Clear local properties - need to do it like this in order to retain prototype bridges\n for (const i in toColor) {\n if (Object.prototype.hasOwnProperty.call(toColor, i)) {\n delete toColor[i];\n }\n }\n }\n\n if (isString(toColor)) {\n toColor.color = toColor;\n toColor.highlight = toColor;\n toColor.hover = toColor;\n toColor.inherit = false;\n if (fromColor.opacity === undefined) {\n toColor.opacity = 1.0; // set default\n }\n } else {\n let colorsDefined = false;\n if (fromColor.color !== undefined) {\n toColor.color = fromColor.color;\n colorsDefined = true;\n }\n if (fromColor.highlight !== undefined) {\n toColor.highlight = fromColor.highlight;\n colorsDefined = true;\n }\n if (fromColor.hover !== undefined) {\n toColor.hover = fromColor.hover;\n colorsDefined = true;\n }\n if (fromColor.inherit !== undefined) {\n toColor.inherit = fromColor.inherit;\n }\n if (fromColor.opacity !== undefined) {\n toColor.opacity = Math.min(1, Math.max(0, fromColor.opacity));\n }\n\n if (colorsDefined === true) {\n toColor.inherit = false;\n } else {\n if (toColor.inherit === undefined) {\n toColor.inherit = \"from\"; // Set default\n }\n }\n }\n } else if (allowDeletion === true && newOptions.color === null) {\n parentOptions.color = bridgeObject(globalOptions.color); // set the object back to the global options\n }\n\n if (allowDeletion === true && newOptions.font === null) {\n parentOptions.font = bridgeObject(globalOptions.font); // set the object back to the global options\n }\n\n if (Object.prototype.hasOwnProperty.call(newOptions, \"selfReferenceSize\")) {\n console.warn(\n \"The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}\"\n );\n parentOptions.selfReference.size = newOptions.selfReferenceSize;\n }\n }\n\n /**\n *\n * @returns {ArrowOptions}\n */\n getFormattingValues() {\n const toArrow =\n this.options.arrows.to === true ||\n this.options.arrows.to.enabled === true;\n const fromArrow =\n this.options.arrows.from === true ||\n this.options.arrows.from.enabled === true;\n const middleArrow =\n this.options.arrows.middle === true ||\n this.options.arrows.middle.enabled === true;\n const inheritsColor = this.options.color.inherit;\n const values = {\n toArrow: toArrow,\n toArrowScale: this.options.arrows.to.scaleFactor,\n toArrowType: this.options.arrows.to.type,\n toArrowSrc: this.options.arrows.to.src,\n toArrowImageWidth: this.options.arrows.to.imageWidth,\n toArrowImageHeight: this.options.arrows.to.imageHeight,\n middleArrow: middleArrow,\n middleArrowScale: this.options.arrows.middle.scaleFactor,\n middleArrowType: this.options.arrows.middle.type,\n middleArrowSrc: this.options.arrows.middle.src,\n middleArrowImageWidth: this.options.arrows.middle.imageWidth,\n middleArrowImageHeight: this.options.arrows.middle.imageHeight,\n fromArrow: fromArrow,\n fromArrowScale: this.options.arrows.from.scaleFactor,\n fromArrowType: this.options.arrows.from.type,\n fromArrowSrc: this.options.arrows.from.src,\n fromArrowImageWidth: this.options.arrows.from.imageWidth,\n fromArrowImageHeight: this.options.arrows.from.imageHeight,\n arrowStrikethrough: this.options.arrowStrikethrough,\n color: inheritsColor ? undefined : this.options.color.color,\n inheritsColor: inheritsColor,\n opacity: this.options.color.opacity,\n hidden: this.options.hidden,\n length: this.options.length,\n shadow: this.options.shadow.enabled,\n shadowColor: this.options.shadow.color,\n shadowSize: this.options.shadow.size,\n shadowX: this.options.shadow.x,\n shadowY: this.options.shadow.y,\n dashes: this.options.dashes,\n width: this.options.width,\n background: this.options.background.enabled,\n backgroundColor: this.options.background.color,\n backgroundSize: this.options.background.size,\n backgroundDashes: this.options.background.dashes,\n };\n if (this.selected || this.hover) {\n if (this.chooser === true) {\n if (this.selected) {\n const selectedWidth = this.options.selectionWidth;\n if (typeof selectedWidth === \"function\") {\n values.width = selectedWidth(values.width);\n } else if (typeof selectedWidth === \"number\") {\n values.width += selectedWidth;\n }\n values.width = Math.max(values.width, 0.3 / this.body.view.scale);\n values.color = this.options.color.highlight;\n values.shadow = this.options.shadow.enabled;\n } else if (this.hover) {\n const hoverWidth = this.options.hoverWidth;\n if (typeof hoverWidth === \"function\") {\n values.width = hoverWidth(values.width);\n } else if (typeof hoverWidth === \"number\") {\n values.width += hoverWidth;\n }\n values.width = Math.max(values.width, 0.3 / this.body.view.scale);\n values.color = this.options.color.hover;\n values.shadow = this.options.shadow.enabled;\n }\n } else if (typeof this.chooser === \"function\") {\n this.chooser(values, this.options.id, this.selected, this.hover);\n if (values.color !== undefined) {\n values.inheritsColor = false;\n }\n if (values.shadow === false) {\n if (\n values.shadowColor !== this.options.shadow.color ||\n values.shadowSize !== this.options.shadow.size ||\n values.shadowX !== this.options.shadow.x ||\n values.shadowY !== this.options.shadow.y\n ) {\n values.shadow = true;\n }\n }\n }\n } else {\n values.shadow = this.options.shadow.enabled;\n values.width = Math.max(values.width, 0.3 / this.body.view.scale);\n }\n return values;\n }\n\n /**\n * update the options in the label module\n *\n * @param {object} options\n */\n updateLabelModule(options) {\n const pile = [\n options,\n this.options,\n this.globalOptions, // Currently set global edge options\n this.defaultOptions,\n ];\n\n this.labelModule.update(this.options, pile);\n\n if (this.labelModule.baseSize !== undefined) {\n this.baseFontSize = this.labelModule.baseSize;\n }\n }\n\n /**\n * update the edge type, set the options\n *\n * @returns {boolean}\n */\n updateEdgeType() {\n const smooth = this.options.smooth;\n let dataChanged = false;\n let changeInType = true;\n if (this.edgeType !== undefined) {\n if (\n (this.edgeType instanceof BezierEdgeDynamic &&\n smooth.enabled === true &&\n smooth.type === \"dynamic\") ||\n (this.edgeType instanceof CubicBezierEdge &&\n smooth.enabled === true &&\n smooth.type === \"cubicBezier\") ||\n (this.edgeType instanceof BezierEdgeStatic &&\n smooth.enabled === true &&\n smooth.type !== \"dynamic\" &&\n smooth.type !== \"cubicBezier\") ||\n (this.edgeType instanceof StraightEdge && smooth.type.enabled === false)\n ) {\n changeInType = false;\n }\n if (changeInType === true) {\n dataChanged = this.cleanup();\n }\n }\n if (changeInType === true) {\n if (smooth.enabled === true) {\n if (smooth.type === \"dynamic\") {\n dataChanged = true;\n this.edgeType = new BezierEdgeDynamic(\n this.options,\n this.body,\n this.labelModule\n );\n } else if (smooth.type === \"cubicBezier\") {\n this.edgeType = new CubicBezierEdge(\n this.options,\n this.body,\n this.labelModule\n );\n } else {\n this.edgeType = new BezierEdgeStatic(\n this.options,\n this.body,\n this.labelModule\n );\n }\n } else {\n this.edgeType = new StraightEdge(\n this.options,\n this.body,\n this.labelModule\n );\n }\n } else {\n // if nothing changes, we just set the options.\n this.edgeType.setOptions(this.options);\n }\n return dataChanged;\n }\n\n /**\n * Connect an edge to its nodes\n */\n connect() {\n this.disconnect();\n\n this.from = this.body.nodes[this.fromId] || undefined;\n this.to = this.body.nodes[this.toId] || undefined;\n this.connected = this.from !== undefined && this.to !== undefined;\n\n if (this.connected === true) {\n this.from.attachEdge(this);\n this.to.attachEdge(this);\n } else {\n if (this.from) {\n this.from.detachEdge(this);\n }\n if (this.to) {\n this.to.detachEdge(this);\n }\n }\n\n this.edgeType.connect();\n }\n\n /**\n * Disconnect an edge from its nodes\n */\n disconnect() {\n if (this.from) {\n this.from.detachEdge(this);\n this.from = undefined;\n }\n if (this.to) {\n this.to.detachEdge(this);\n this.to = undefined;\n }\n\n this.connected = false;\n }\n\n /**\n * get the title of this edge.\n *\n * @returns {string} title The title of the edge, or undefined when no title\n * has been set.\n */\n getTitle() {\n return this.title;\n }\n\n /**\n * check if this node is selecte\n *\n * @returns {boolean} selected True if node is selected, else false\n */\n isSelected() {\n return this.selected;\n }\n\n /**\n * Retrieve the value of the edge. Can be undefined\n *\n * @returns {number} value\n */\n getValue() {\n return this.options.value;\n }\n\n /**\n * Adjust the value range of the edge. The edge will adjust it's width\n * based on its value.\n *\n * @param {number} min\n * @param {number} max\n * @param {number} total\n */\n setValueRange(min, max, total) {\n if (this.options.value !== undefined) {\n const scale = this.options.scaling.customScalingFunction(\n min,\n max,\n total,\n this.options.value\n );\n const widthDiff = this.options.scaling.max - this.options.scaling.min;\n if (this.options.scaling.label.enabled === true) {\n const fontDiff =\n this.options.scaling.label.max - this.options.scaling.label.min;\n this.options.font.size =\n this.options.scaling.label.min + scale * fontDiff;\n }\n this.options.width = this.options.scaling.min + scale * widthDiff;\n } else {\n this.options.width = this.baseWidth;\n this.options.font.size = this.baseFontSize;\n }\n\n this._setInteractionWidths();\n this.updateLabelModule();\n }\n\n /**\n *\n * @private\n */\n _setInteractionWidths() {\n if (typeof this.options.hoverWidth === \"function\") {\n this.edgeType.hoverWidth = this.options.hoverWidth(this.options.width);\n } else {\n this.edgeType.hoverWidth = this.options.hoverWidth + this.options.width;\n }\n if (typeof this.options.selectionWidth === \"function\") {\n this.edgeType.selectionWidth = this.options.selectionWidth(\n this.options.width\n );\n } else {\n this.edgeType.selectionWidth =\n this.options.selectionWidth + this.options.width;\n }\n }\n\n /**\n * Redraw a edge\n * Draw this edge in the given canvas\n * The 2d context of a HTML canvas can be retrieved by canvas.getContext(\"2d\");\n *\n * @param {CanvasRenderingContext2D} ctx\n */\n draw(ctx) {\n const values = this.getFormattingValues();\n if (values.hidden) {\n return;\n }\n\n // get the via node from the edge type\n const viaNode = this.edgeType.getViaNode();\n\n // draw line and label\n this.edgeType.drawLine(ctx, values, this.selected, this.hover, viaNode);\n this.drawLabel(ctx, viaNode);\n }\n\n /**\n * Redraw arrows\n * Draw this arrows in the given canvas\n * The 2d context of a HTML canvas can be retrieved by canvas.getContext(\"2d\");\n *\n * @param {CanvasRenderingContext2D} ctx\n */\n drawArrows(ctx) {\n const values = this.getFormattingValues();\n if (values.hidden) {\n return;\n }\n\n // get the via node from the edge type\n const viaNode = this.edgeType.getViaNode();\n const arrowData = {};\n\n // restore edge targets to defaults\n this.edgeType.fromPoint = this.edgeType.from;\n this.edgeType.toPoint = this.edgeType.to;\n\n // from and to arrows give a different end point for edges. we set them here\n if (values.fromArrow) {\n arrowData.from = this.edgeType.getArrowData(\n ctx,\n \"from\",\n viaNode,\n this.selected,\n this.hover,\n values\n );\n if (values.arrowStrikethrough === false)\n this.edgeType.fromPoint = arrowData.from.core;\n if (values.fromArrowSrc) {\n arrowData.from.image = this.imagelist.load(values.fromArrowSrc);\n }\n if (values.fromArrowImageWidth) {\n arrowData.from.imageWidth = values.fromArrowImageWidth;\n }\n if (values.fromArrowImageHeight) {\n arrowData.from.imageHeight = values.fromArrowImageHeight;\n }\n }\n if (values.toArrow) {\n arrowData.to = this.edgeType.getArrowData(\n ctx,\n \"to\",\n viaNode,\n this.selected,\n this.hover,\n values\n );\n if (values.arrowStrikethrough === false)\n this.edgeType.toPoint = arrowData.to.core;\n if (values.toArrowSrc) {\n arrowData.to.image = this.imagelist.load(values.toArrowSrc);\n }\n if (values.toArrowImageWidth) {\n arrowData.to.imageWidth = values.toArrowImageWidth;\n }\n if (values.toArrowImageHeight) {\n arrowData.to.imageHeight = values.toArrowImageHeight;\n }\n }\n\n // the middle arrow depends on the line, which can depend on the to and from arrows so we do this one lastly.\n if (values.middleArrow) {\n arrowData.middle = this.edgeType.getArrowData(\n ctx,\n \"middle\",\n viaNode,\n this.selected,\n this.hover,\n values\n );\n\n if (values.middleArrowSrc) {\n arrowData.middle.image = this.imagelist.load(values.middleArrowSrc);\n }\n if (values.middleArrowImageWidth) {\n arrowData.middle.imageWidth = values.middleArrowImageWidth;\n }\n if (values.middleArrowImageHeight) {\n arrowData.middle.imageHeight = values.middleArrowImageHeight;\n }\n }\n\n if (values.fromArrow) {\n this.edgeType.drawArrowHead(\n ctx,\n values,\n this.selected,\n this.hover,\n arrowData.from\n );\n }\n if (values.middleArrow) {\n this.edgeType.drawArrowHead(\n ctx,\n values,\n this.selected,\n this.hover,\n arrowData.middle\n );\n }\n if (values.toArrow) {\n this.edgeType.drawArrowHead(\n ctx,\n values,\n this.selected,\n this.hover,\n arrowData.to\n );\n }\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {Node} viaNode\n */\n drawLabel(ctx, viaNode) {\n if (this.options.label !== undefined) {\n // set style\n const node1 = this.from;\n const node2 = this.to;\n\n if (this.labelModule.differentState(this.selected, this.hover)) {\n this.labelModule.getTextSize(ctx, this.selected, this.hover);\n }\n\n let point;\n if (node1.id != node2.id) {\n this.labelModule.pointToSelf = false;\n point = this.edgeType.getPoint(0.5, viaNode);\n ctx.save();\n\n const rotationPoint = this._getRotation(ctx);\n if (rotationPoint.angle != 0) {\n ctx.translate(rotationPoint.x, rotationPoint.y);\n ctx.rotate(rotationPoint.angle);\n }\n\n // draw the label\n this.labelModule.draw(ctx, point.x, point.y, this.selected, this.hover);\n\n /*\n // Useful debug code: draw a border around the label\n // This should **not** be enabled in production!\n var size = this.labelModule.getSize();; // ;; intentional so lint catches it\n ctx.strokeStyle = \"#ff0000\";\n ctx.strokeRect(size.left, size.top, size.width, size.height);\n // End debug code\n*/\n\n ctx.restore();\n } else {\n // Ignore the orientations.\n this.labelModule.pointToSelf = true;\n\n // get circle coordinates\n const coordinates = getSelfRefCoordinates(\n ctx,\n this.options.selfReference.angle,\n this.options.selfReference.size,\n node1\n );\n\n point = this._pointOnCircle(\n coordinates.x,\n coordinates.y,\n this.options.selfReference.size,\n this.options.selfReference.angle\n );\n\n this.labelModule.draw(ctx, point.x, point.y, this.selected, this.hover);\n }\n }\n }\n\n /**\n * Determine all visual elements of this edge instance, in which the given\n * point falls within the bounding shape.\n *\n * @param {point} point\n * @returns {Array.} list with the items which are on the point\n */\n getItemsOnPoint(point) {\n const ret = [];\n\n if (this.labelModule.visible()) {\n const rotationPoint = this._getRotation();\n if (pointInRect(this.labelModule.getSize(), point, rotationPoint)) {\n ret.push({ edgeId: this.id, labelId: 0 });\n }\n }\n\n const obj = {\n left: point.x,\n top: point.y,\n };\n\n if (this.isOverlappingWith(obj)) {\n ret.push({ edgeId: this.id });\n }\n\n return ret;\n }\n\n /**\n * Check if this object is overlapping with the provided object\n *\n * @param {object} obj an object with parameters left, top\n * @returns {boolean} True if location is located on the edge\n */\n isOverlappingWith(obj) {\n if (this.connected) {\n const distMax = 10;\n const xFrom = this.from.x;\n const yFrom = this.from.y;\n const xTo = this.to.x;\n const yTo = this.to.y;\n const xObj = obj.left;\n const yObj = obj.top;\n\n const dist = this.edgeType.getDistanceToEdge(\n xFrom,\n yFrom,\n xTo,\n yTo,\n xObj,\n yObj\n );\n\n return dist < distMax;\n } else {\n return false;\n }\n }\n\n /**\n * Determine the rotation point, if any.\n *\n * @param {CanvasRenderingContext2D} [ctx] if passed, do a recalculation of the label size\n * @returns {rotationPoint} the point to rotate around and the angle in radians to rotate\n * @private\n */\n _getRotation(ctx) {\n const viaNode = this.edgeType.getViaNode();\n const point = this.edgeType.getPoint(0.5, viaNode);\n\n if (ctx !== undefined) {\n this.labelModule.calculateLabelSize(\n ctx,\n this.selected,\n this.hover,\n point.x,\n point.y\n );\n }\n\n const ret = {\n x: point.x,\n y: this.labelModule.size.yLine,\n angle: 0,\n };\n\n if (!this.labelModule.visible()) {\n return ret; // Don't even bother doing the atan2, there's nothing to draw\n }\n\n if (this.options.font.align === \"horizontal\") {\n return ret; // No need to calculate angle\n }\n\n const dy = this.from.y - this.to.y;\n const dx = this.from.x - this.to.x;\n let angle = Math.atan2(dy, dx); // radians\n\n // rotate so that label is readable\n if ((angle < -1 && dx < 0) || (angle > 0 && dx < 0)) {\n angle += Math.PI;\n }\n ret.angle = angle;\n\n return ret;\n }\n\n /**\n * Get a point on a circle\n *\n * @param {number} x\n * @param {number} y\n * @param {number} radius\n * @param {number} angle\n * @returns {object} point\n * @private\n */\n _pointOnCircle(x, y, radius, angle) {\n return {\n x: x + radius * Math.cos(angle),\n y: y - radius * Math.sin(angle),\n };\n }\n\n /**\n * Sets selected state to true\n */\n select() {\n this.selected = true;\n }\n\n /**\n * Sets selected state to false\n */\n unselect() {\n this.selected = false;\n }\n\n /**\n * cleans all required things on delete\n *\n * @returns {*}\n */\n cleanup() {\n return this.edgeType.cleanup();\n }\n\n /**\n * Remove edge from the list and perform necessary cleanup.\n */\n remove() {\n this.cleanup();\n this.disconnect();\n delete this.body.edges[this.id];\n }\n\n /**\n * Check if both connecting nodes exist\n *\n * @returns {boolean}\n */\n endPointsValid() {\n return (\n this.body.nodes[this.fromId] !== undefined &&\n this.body.nodes[this.toId] !== undefined\n );\n }\n}\n\nexport default Edge;\n","import { deepExtend, forEach } from \"vis-util/esnext\";\nimport { DataSet, isDataViewLike } from \"vis-data/esnext\";\nimport Edge from \"./components/Edge\";\n\n/**\n * Handler for Edges\n */\nclass EdgesHandler {\n /**\n * @param {object} body\n * @param {Array.} images\n * @param {Array.} groups\n */\n constructor(body, images, groups) {\n this.body = body;\n this.images = images;\n this.groups = groups;\n\n // create the edge API in the body container\n this.body.functions.createEdge = this.create.bind(this);\n\n this.edgesListeners = {\n add: (event, params) => {\n this.add(params.items);\n },\n update: (event, params) => {\n this.update(params.items);\n },\n remove: (event, params) => {\n this.remove(params.items);\n },\n };\n\n this.options = {};\n this.defaultOptions = {\n arrows: {\n to: { enabled: false, scaleFactor: 1, type: \"arrow\" }, // boolean / {arrowScaleFactor:1} / {enabled: false, arrowScaleFactor:1}\n middle: { enabled: false, scaleFactor: 1, type: \"arrow\" },\n from: { enabled: false, scaleFactor: 1, type: \"arrow\" },\n },\n endPointOffset: {\n from: 0,\n to: 0,\n },\n arrowStrikethrough: true,\n color: {\n color: \"#848484\",\n highlight: \"#848484\",\n hover: \"#848484\",\n inherit: \"from\",\n opacity: 1.0,\n },\n dashes: false,\n font: {\n color: \"#343434\",\n size: 14, // px\n face: \"arial\",\n background: \"none\",\n strokeWidth: 2, // px\n strokeColor: \"#ffffff\",\n align: \"horizontal\",\n multi: false,\n vadjust: 0,\n bold: {\n mod: \"bold\",\n },\n boldital: {\n mod: \"bold italic\",\n },\n ital: {\n mod: \"italic\",\n },\n mono: {\n mod: \"\",\n size: 15, // px\n face: \"courier new\",\n vadjust: 2,\n },\n },\n hidden: false,\n hoverWidth: 1.5,\n label: undefined,\n labelHighlightBold: true,\n length: undefined,\n physics: true,\n scaling: {\n min: 1,\n max: 15,\n label: {\n enabled: true,\n min: 14,\n max: 30,\n maxVisible: 30,\n drawThreshold: 5,\n },\n customScalingFunction: function (min, max, total, value) {\n if (max === min) {\n return 0.5;\n } else {\n const scale = 1 / (max - min);\n return Math.max(0, (value - min) * scale);\n }\n },\n },\n selectionWidth: 1.5,\n selfReference: {\n size: 20,\n angle: Math.PI / 4,\n renderBehindTheNode: true,\n },\n shadow: {\n enabled: false,\n color: \"rgba(0,0,0,0.5)\",\n size: 10,\n x: 5,\n y: 5,\n },\n background: {\n enabled: false,\n color: \"rgba(111,111,111,1)\",\n size: 10,\n dashes: false,\n },\n smooth: {\n enabled: true,\n type: \"dynamic\",\n forceDirection: \"none\",\n roundness: 0.5,\n },\n title: undefined,\n width: 1,\n value: undefined,\n };\n\n deepExtend(this.options, this.defaultOptions);\n\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n // this allows external modules to force all dynamic curves to turn static.\n this.body.emitter.on(\"_forceDisableDynamicCurves\", (type, emit = true) => {\n if (type === \"dynamic\") {\n type = \"continuous\";\n }\n let dataChanged = false;\n for (const edgeId in this.body.edges) {\n if (Object.prototype.hasOwnProperty.call(this.body.edges, edgeId)) {\n const edge = this.body.edges[edgeId];\n const edgeData = this.body.data.edges.get(edgeId);\n\n // only forcibly remove the smooth curve if the data has been set of the edge has the smooth curves defined.\n // this is because a change in the global would not affect these curves.\n if (edgeData != null) {\n const smoothOptions = edgeData.smooth;\n if (smoothOptions !== undefined) {\n if (\n smoothOptions.enabled === true &&\n smoothOptions.type === \"dynamic\"\n ) {\n if (type === undefined) {\n edge.setOptions({ smooth: false });\n } else {\n edge.setOptions({ smooth: { type: type } });\n }\n dataChanged = true;\n }\n }\n }\n }\n }\n if (emit === true && dataChanged === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n });\n\n // this is called when options of EXISTING nodes or edges have changed.\n //\n // NOTE: Not true, called when options have NOT changed, for both existing as well as new nodes.\n // See update() for logic.\n // TODO: Verify and examine the consequences of this. It might still trigger when\n // non-option fields have changed, but then reconnecting edges is still useless.\n // Alternatively, it might also be called when edges are removed.\n //\n this.body.emitter.on(\"_dataUpdated\", () => {\n this.reconnectEdges();\n });\n\n // refresh the edges. Used when reverting from hierarchical layout\n this.body.emitter.on(\"refreshEdges\", this.refresh.bind(this));\n this.body.emitter.on(\"refresh\", this.refresh.bind(this));\n this.body.emitter.on(\"destroy\", () => {\n forEach(this.edgesListeners, (callback, event) => {\n if (this.body.data.edges) this.body.data.edges.off(event, callback);\n });\n delete this.body.functions.createEdge;\n delete this.edgesListeners.add;\n delete this.edgesListeners.update;\n delete this.edgesListeners.remove;\n delete this.edgesListeners;\n });\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n // use the parser from the Edge class to fill in all shorthand notations\n Edge.parseOptions(this.options, options, true, this.defaultOptions, true);\n\n // update smooth settings in all edges\n let dataChanged = false;\n if (options.smooth !== undefined) {\n for (const edgeId in this.body.edges) {\n if (Object.prototype.hasOwnProperty.call(this.body.edges, edgeId)) {\n dataChanged =\n this.body.edges[edgeId].updateEdgeType() || dataChanged;\n }\n }\n }\n\n // update fonts in all edges\n if (options.font !== undefined) {\n for (const edgeId in this.body.edges) {\n if (Object.prototype.hasOwnProperty.call(this.body.edges, edgeId)) {\n this.body.edges[edgeId].updateLabelModule();\n }\n }\n }\n\n // update the state of the variables if needed\n if (\n options.hidden !== undefined ||\n options.physics !== undefined ||\n dataChanged === true\n ) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n }\n\n /**\n * Load edges by reading the data table\n *\n * @param {Array | DataSet | DataView} edges The data containing the edges.\n * @param {boolean} [doNotEmit=false] - Suppress data changed event.\n * @private\n */\n setData(edges, doNotEmit = false) {\n const oldEdgesData = this.body.data.edges;\n\n if (isDataViewLike(\"id\", edges)) {\n this.body.data.edges = edges;\n } else if (Array.isArray(edges)) {\n this.body.data.edges = new DataSet();\n this.body.data.edges.add(edges);\n } else if (!edges) {\n this.body.data.edges = new DataSet();\n } else {\n throw new TypeError(\"Array or DataSet expected\");\n }\n\n // TODO: is this null or undefined or false?\n if (oldEdgesData) {\n // unsubscribe from old dataset\n forEach(this.edgesListeners, (callback, event) => {\n oldEdgesData.off(event, callback);\n });\n }\n\n // remove drawn edges\n this.body.edges = {};\n\n // TODO: is this null or undefined or false?\n if (this.body.data.edges) {\n // subscribe to new dataset\n forEach(this.edgesListeners, (callback, event) => {\n this.body.data.edges.on(event, callback);\n });\n\n // draw all new nodes\n const ids = this.body.data.edges.getIds();\n this.add(ids, true);\n }\n\n this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");\n if (doNotEmit === false) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Add edges\n *\n * @param {number[] | string[]} ids\n * @param {boolean} [doNotEmit=false]\n * @private\n */\n add(ids, doNotEmit = false) {\n const edges = this.body.edges;\n const edgesData = this.body.data.edges;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n\n const oldEdge = edges[id];\n if (oldEdge) {\n oldEdge.disconnect();\n }\n\n const data = edgesData.get(id, { showInternalIds: true });\n edges[id] = this.create(data);\n }\n\n this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");\n\n if (doNotEmit === false) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Update existing edges, or create them when not yet existing\n *\n * @param {number[] | string[]} ids\n * @private\n */\n update(ids) {\n const edges = this.body.edges;\n const edgesData = this.body.data.edges;\n let dataChanged = false;\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n const data = edgesData.get(id);\n const edge = edges[id];\n if (edge !== undefined) {\n // update edge\n edge.disconnect();\n dataChanged = edge.setOptions(data) || dataChanged; // if a support node is added, data can be changed.\n edge.connect();\n } else {\n // create edge\n this.body.edges[id] = this.create(data);\n dataChanged = true;\n }\n }\n\n if (dataChanged === true) {\n this.body.emitter.emit(\"_adjustEdgesForHierarchicalLayout\");\n this.body.emitter.emit(\"_dataChanged\");\n } else {\n this.body.emitter.emit(\"_dataUpdated\");\n }\n }\n\n /**\n * Remove existing edges. Non existing ids will be ignored\n *\n * @param {number[] | string[]} ids\n * @param {boolean} [emit=true]\n * @private\n */\n remove(ids, emit = true) {\n if (ids.length === 0) return; // early out\n\n const edges = this.body.edges;\n forEach(ids, (id) => {\n const edge = edges[id];\n if (edge !== undefined) {\n edge.remove();\n }\n });\n\n if (emit) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Refreshes Edge Handler\n */\n refresh() {\n forEach(this.body.edges, (edge, edgeId) => {\n const data = this.body.data.edges.get(edgeId);\n if (data !== undefined) {\n edge.setOptions(data);\n }\n });\n }\n\n /**\n *\n * @param {object} properties\n * @returns {Edge}\n */\n create(properties) {\n return new Edge(\n properties,\n this.body,\n this.images,\n this.options,\n this.defaultOptions\n );\n }\n\n /**\n * Reconnect all edges\n *\n * @private\n */\n reconnectEdges() {\n let id;\n const nodes = this.body.nodes;\n const edges = this.body.edges;\n\n for (id in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, id)) {\n nodes[id].edges = [];\n }\n }\n\n for (id in edges) {\n if (Object.prototype.hasOwnProperty.call(edges, id)) {\n const edge = edges[id];\n edge.from = null;\n edge.to = null;\n edge.connect();\n }\n }\n }\n\n /**\n *\n * @param {Edge.id} edgeId\n * @returns {Array}\n */\n getConnectedNodes(edgeId) {\n const nodeList = [];\n if (this.body.edges[edgeId] !== undefined) {\n const edge = this.body.edges[edgeId];\n if (edge.fromId !== undefined) {\n nodeList.push(edge.fromId);\n }\n if (edge.toId !== undefined) {\n nodeList.push(edge.toId);\n }\n }\n return nodeList;\n }\n\n /**\n * There is no direct relation between the nodes and the edges DataSet,\n * so the right place to do call this is in the handler for event `_dataUpdated`.\n */\n _updateState() {\n this._addMissingEdges();\n this._removeInvalidEdges();\n }\n\n /**\n * Scan for missing nodes and remove corresponding edges, if any.\n *\n * @private\n */\n _removeInvalidEdges() {\n const edgesToDelete = [];\n\n forEach(this.body.edges, (edge, id) => {\n const toNode = this.body.nodes[edge.toId];\n const fromNode = this.body.nodes[edge.fromId];\n\n // Skip clustering edges here, let the Clustering module handle those\n if (\n (toNode !== undefined && toNode.isCluster === true) ||\n (fromNode !== undefined && fromNode.isCluster === true)\n ) {\n return;\n }\n\n if (toNode === undefined || fromNode === undefined) {\n edgesToDelete.push(id);\n }\n });\n\n this.remove(edgesToDelete, false);\n }\n\n /**\n * add all edges from dataset that are not in the cached state\n *\n * @private\n */\n _addMissingEdges() {\n const edgesData = this.body.data.edges;\n if (edgesData === undefined || edgesData === null) {\n return; // No edges DataSet yet; can happen on startup\n }\n\n const edges = this.body.edges;\n const addIds = [];\n\n edgesData.forEach((edgeData, edgeId) => {\n const edge = edges[edgeId];\n if (edge === undefined) {\n addIds.push(edgeId);\n }\n });\n\n this.add(addIds, true);\n }\n}\n\nexport default EdgesHandler;\n","import { Alea } from \"vis-util/esnext\";\n\n/**\n * Barnes Hut Solver\n */\nclass BarnesHutSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this.body = body;\n this.physicsBody = physicsBody;\n this.barnesHutTree;\n this.setOptions(options);\n this._rng = Alea(\"BARNES HUT SOLVER\");\n\n // debug: show grid\n // this.body.emitter.on(\"afterDrawing\", (ctx) => {this._debug(ctx,'#ff0000')})\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n this.thetaInversed = 1 / this.options.theta;\n\n // if 1 then min distance = 0.5, if 0.5 then min distance = 0.5 + 0.5*node.shape.radius\n this.overlapAvoidanceFactor =\n 1 - Math.max(0, Math.min(1, this.options.avoidOverlap));\n }\n\n /**\n * This function calculates the forces the nodes apply on each other based on a gravitational model.\n * The Barnes Hut method is used to speed up this N-body simulation.\n *\n * @private\n */\n solve() {\n if (\n this.options.gravitationalConstant !== 0 &&\n this.physicsBody.physicsNodeIndices.length > 0\n ) {\n let node;\n const nodes = this.body.nodes;\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n const nodeCount = nodeIndices.length;\n\n // create the tree\n const barnesHutTree = this._formBarnesHutTree(nodes, nodeIndices);\n\n // for debugging\n this.barnesHutTree = barnesHutTree;\n\n // place the nodes one by one recursively\n for (let i = 0; i < nodeCount; i++) {\n node = nodes[nodeIndices[i]];\n if (node.options.mass > 0) {\n // starting with root is irrelevant, it never passes the BarnesHutSolver condition\n this._getForceContributions(barnesHutTree.root, node);\n }\n }\n }\n }\n\n /**\n * @param {object} parentBranch\n * @param {Node} node\n * @private\n */\n _getForceContributions(parentBranch, node) {\n this._getForceContribution(parentBranch.children.NW, node);\n this._getForceContribution(parentBranch.children.NE, node);\n this._getForceContribution(parentBranch.children.SW, node);\n this._getForceContribution(parentBranch.children.SE, node);\n }\n\n /**\n * This function traverses the barnesHutTree. It checks when it can approximate distant nodes with their center of mass.\n * If a region contains a single node, we check if it is not itself, then we apply the force.\n *\n * @param {object} parentBranch\n * @param {Node} node\n * @private\n */\n _getForceContribution(parentBranch, node) {\n // we get no force contribution from an empty region\n if (parentBranch.childrenCount > 0) {\n // get the distance from the center of mass to the node.\n const dx = parentBranch.centerOfMass.x - node.x;\n const dy = parentBranch.centerOfMass.y - node.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // BarnesHutSolver condition\n // original condition : s/d < theta = passed === d/s > 1/theta = passed\n // calcSize = 1/s --> d * 1/s > 1/theta = passed\n if (distance * parentBranch.calcSize > this.thetaInversed) {\n this._calculateForces(distance, dx, dy, node, parentBranch);\n } else {\n // Did not pass the condition, go into children if available\n if (parentBranch.childrenCount === 4) {\n this._getForceContributions(parentBranch, node);\n } else {\n // parentBranch must have only one node, if it was empty we wouldnt be here\n if (parentBranch.children.data.id != node.id) {\n // if it is not self\n this._calculateForces(distance, dx, dy, node, parentBranch);\n }\n }\n }\n }\n }\n\n /**\n * Calculate the forces based on the distance.\n *\n * @param {number} distance\n * @param {number} dx\n * @param {number} dy\n * @param {Node} node\n * @param {object} parentBranch\n * @private\n */\n _calculateForces(distance, dx, dy, node, parentBranch) {\n if (distance === 0) {\n distance = 0.1;\n dx = distance;\n }\n\n if (this.overlapAvoidanceFactor < 1 && node.shape.radius) {\n distance = Math.max(\n 0.1 + this.overlapAvoidanceFactor * node.shape.radius,\n distance - node.shape.radius\n );\n }\n\n // the dividing by the distance cubed instead of squared allows us to get the fx and fy components without sines and cosines\n // it is shorthand for gravityforce with distance squared and fx = dx/distance * gravityForce\n const gravityForce =\n (this.options.gravitationalConstant *\n parentBranch.mass *\n node.options.mass) /\n Math.pow(distance, 3);\n const fx = dx * gravityForce;\n const fy = dy * gravityForce;\n\n this.physicsBody.forces[node.id].x += fx;\n this.physicsBody.forces[node.id].y += fy;\n }\n\n /**\n * This function constructs the barnesHut tree recursively. It creates the root, splits it and starts placing the nodes.\n *\n * @param {Array.} nodes\n * @param {Array.} nodeIndices\n * @returns {{root: {centerOfMass: {x: number, y: number}, mass: number, range: {minX: number, maxX: number, minY: number, maxY: number}, size: number, calcSize: number, children: {data: null}, maxWidth: number, level: number, childrenCount: number}}} BarnesHutTree\n * @private\n */\n _formBarnesHutTree(nodes, nodeIndices) {\n let node;\n const nodeCount = nodeIndices.length;\n\n let minX = nodes[nodeIndices[0]].x;\n let minY = nodes[nodeIndices[0]].y;\n let maxX = nodes[nodeIndices[0]].x;\n let maxY = nodes[nodeIndices[0]].y;\n\n // get the range of the nodes\n for (let i = 1; i < nodeCount; i++) {\n const node = nodes[nodeIndices[i]];\n const x = node.x;\n const y = node.y;\n if (node.options.mass > 0) {\n if (x < minX) {\n minX = x;\n }\n if (x > maxX) {\n maxX = x;\n }\n if (y < minY) {\n minY = y;\n }\n if (y > maxY) {\n maxY = y;\n }\n }\n }\n // make the range a square\n const sizeDiff = Math.abs(maxX - minX) - Math.abs(maxY - minY); // difference between X and Y\n if (sizeDiff > 0) {\n minY -= 0.5 * sizeDiff;\n maxY += 0.5 * sizeDiff;\n } // xSize > ySize\n else {\n minX += 0.5 * sizeDiff;\n maxX -= 0.5 * sizeDiff;\n } // xSize < ySize\n\n const minimumTreeSize = 1e-5;\n const rootSize = Math.max(minimumTreeSize, Math.abs(maxX - minX));\n const halfRootSize = 0.5 * rootSize;\n const centerX = 0.5 * (minX + maxX),\n centerY = 0.5 * (minY + maxY);\n\n // construct the barnesHutTree\n const barnesHutTree = {\n root: {\n centerOfMass: { x: 0, y: 0 },\n mass: 0,\n range: {\n minX: centerX - halfRootSize,\n maxX: centerX + halfRootSize,\n minY: centerY - halfRootSize,\n maxY: centerY + halfRootSize,\n },\n size: rootSize,\n calcSize: 1 / rootSize,\n children: { data: null },\n maxWidth: 0,\n level: 0,\n childrenCount: 4,\n },\n };\n this._splitBranch(barnesHutTree.root);\n\n // place the nodes one by one recursively\n for (let i = 0; i < nodeCount; i++) {\n node = nodes[nodeIndices[i]];\n if (node.options.mass > 0) {\n this._placeInTree(barnesHutTree.root, node);\n }\n }\n\n // make global\n return barnesHutTree;\n }\n\n /**\n * this updates the mass of a branch. this is increased by adding a node.\n *\n * @param {object} parentBranch\n * @param {Node} node\n * @private\n */\n _updateBranchMass(parentBranch, node) {\n const centerOfMass = parentBranch.centerOfMass;\n const totalMass = parentBranch.mass + node.options.mass;\n const totalMassInv = 1 / totalMass;\n\n centerOfMass.x =\n centerOfMass.x * parentBranch.mass + node.x * node.options.mass;\n centerOfMass.x *= totalMassInv;\n\n centerOfMass.y =\n centerOfMass.y * parentBranch.mass + node.y * node.options.mass;\n centerOfMass.y *= totalMassInv;\n\n parentBranch.mass = totalMass;\n const biggestSize = Math.max(\n Math.max(node.height, node.radius),\n node.width\n );\n parentBranch.maxWidth =\n parentBranch.maxWidth < biggestSize ? biggestSize : parentBranch.maxWidth;\n }\n\n /**\n * determine in which branch the node will be placed.\n *\n * @param {object} parentBranch\n * @param {Node} node\n * @param {boolean} skipMassUpdate\n * @private\n */\n _placeInTree(parentBranch, node, skipMassUpdate) {\n if (skipMassUpdate != true || skipMassUpdate === undefined) {\n // update the mass of the branch.\n this._updateBranchMass(parentBranch, node);\n }\n\n const range = parentBranch.children.NW.range;\n let region;\n if (range.maxX > node.x) {\n // in NW or SW\n if (range.maxY > node.y) {\n region = \"NW\";\n } else {\n region = \"SW\";\n }\n } else {\n // in NE or SE\n if (range.maxY > node.y) {\n region = \"NE\";\n } else {\n region = \"SE\";\n }\n }\n\n this._placeInRegion(parentBranch, node, region);\n }\n\n /**\n * actually place the node in a region (or branch)\n *\n * @param {object} parentBranch\n * @param {Node} node\n * @param {'NW'| 'NE' | 'SW' | 'SE'} region\n * @private\n */\n _placeInRegion(parentBranch, node, region) {\n const children = parentBranch.children[region];\n\n switch (children.childrenCount) {\n case 0: // place node here\n children.children.data = node;\n children.childrenCount = 1;\n this._updateBranchMass(children, node);\n break;\n case 1: // convert into children\n // if there are two nodes exactly overlapping (on init, on opening of cluster etc.)\n // we move one node a little bit and we do not put it in the tree.\n if (\n children.children.data.x === node.x &&\n children.children.data.y === node.y\n ) {\n node.x += this._rng();\n node.y += this._rng();\n } else {\n this._splitBranch(children);\n this._placeInTree(children, node);\n }\n break;\n case 4: // place in branch\n this._placeInTree(children, node);\n break;\n }\n }\n\n /**\n * this function splits a branch into 4 sub branches. If the branch contained a node, we place it in the subbranch\n * after the split is complete.\n *\n * @param {object} parentBranch\n * @private\n */\n _splitBranch(parentBranch) {\n // if the branch is shaded with a node, replace the node in the new subset.\n let containedNode = null;\n if (parentBranch.childrenCount === 1) {\n containedNode = parentBranch.children.data;\n parentBranch.mass = 0;\n parentBranch.centerOfMass.x = 0;\n parentBranch.centerOfMass.y = 0;\n }\n parentBranch.childrenCount = 4;\n parentBranch.children.data = null;\n this._insertRegion(parentBranch, \"NW\");\n this._insertRegion(parentBranch, \"NE\");\n this._insertRegion(parentBranch, \"SW\");\n this._insertRegion(parentBranch, \"SE\");\n\n if (containedNode != null) {\n this._placeInTree(parentBranch, containedNode);\n }\n }\n\n /**\n * This function subdivides the region into four new segments.\n * Specifically, this inserts a single new segment.\n * It fills the children section of the parentBranch\n *\n * @param {object} parentBranch\n * @param {'NW'| 'NE' | 'SW' | 'SE'} region\n * @private\n */\n _insertRegion(parentBranch, region) {\n let minX, maxX, minY, maxY;\n const childSize = 0.5 * parentBranch.size;\n switch (region) {\n case \"NW\":\n minX = parentBranch.range.minX;\n maxX = parentBranch.range.minX + childSize;\n minY = parentBranch.range.minY;\n maxY = parentBranch.range.minY + childSize;\n break;\n case \"NE\":\n minX = parentBranch.range.minX + childSize;\n maxX = parentBranch.range.maxX;\n minY = parentBranch.range.minY;\n maxY = parentBranch.range.minY + childSize;\n break;\n case \"SW\":\n minX = parentBranch.range.minX;\n maxX = parentBranch.range.minX + childSize;\n minY = parentBranch.range.minY + childSize;\n maxY = parentBranch.range.maxY;\n break;\n case \"SE\":\n minX = parentBranch.range.minX + childSize;\n maxX = parentBranch.range.maxX;\n minY = parentBranch.range.minY + childSize;\n maxY = parentBranch.range.maxY;\n break;\n }\n\n parentBranch.children[region] = {\n centerOfMass: { x: 0, y: 0 },\n mass: 0,\n range: { minX: minX, maxX: maxX, minY: minY, maxY: maxY },\n size: 0.5 * parentBranch.size,\n calcSize: 2 * parentBranch.calcSize,\n children: { data: null },\n maxWidth: 0,\n level: parentBranch.level + 1,\n childrenCount: 0,\n };\n }\n\n //--------------------------- DEBUGGING BELOW ---------------------------//\n\n /**\n * This function is for debugging purposed, it draws the tree.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {string} color\n * @private\n */\n _debug(ctx, color) {\n if (this.barnesHutTree !== undefined) {\n ctx.lineWidth = 1;\n\n this._drawBranch(this.barnesHutTree.root, ctx, color);\n }\n }\n\n /**\n * This function is for debugging purposes. It draws the branches recursively.\n *\n * @param {object} branch\n * @param {CanvasRenderingContext2D} ctx\n * @param {string} color\n * @private\n */\n _drawBranch(branch, ctx, color) {\n if (color === undefined) {\n color = \"#FF0000\";\n }\n\n if (branch.childrenCount === 4) {\n this._drawBranch(branch.children.NW, ctx);\n this._drawBranch(branch.children.NE, ctx);\n this._drawBranch(branch.children.SE, ctx);\n this._drawBranch(branch.children.SW, ctx);\n }\n ctx.strokeStyle = color;\n ctx.beginPath();\n ctx.moveTo(branch.range.minX, branch.range.minY);\n ctx.lineTo(branch.range.maxX, branch.range.minY);\n ctx.stroke();\n\n ctx.beginPath();\n ctx.moveTo(branch.range.maxX, branch.range.minY);\n ctx.lineTo(branch.range.maxX, branch.range.maxY);\n ctx.stroke();\n\n ctx.beginPath();\n ctx.moveTo(branch.range.maxX, branch.range.maxY);\n ctx.lineTo(branch.range.minX, branch.range.maxY);\n ctx.stroke();\n\n ctx.beginPath();\n ctx.moveTo(branch.range.minX, branch.range.maxY);\n ctx.lineTo(branch.range.minX, branch.range.minY);\n ctx.stroke();\n\n /*\n if (branch.mass > 0) {\n ctx.circle(branch.centerOfMass.x, branch.centerOfMass.y, 3*branch.mass);\n ctx.stroke();\n }\n */\n }\n}\n\nexport default BarnesHutSolver;\n","import { Alea } from \"vis-util/esnext\";\n\n/**\n * Repulsion Solver\n */\nclass RepulsionSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this._rng = Alea(\"REPULSION SOLVER\");\n\n this.body = body;\n this.physicsBody = physicsBody;\n this.setOptions(options);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n }\n\n /**\n * Calculate the forces the nodes apply on each other based on a repulsion field.\n * This field is linearly approximated.\n *\n * @private\n */\n solve() {\n let dx, dy, distance, fx, fy, repulsingForce, node1, node2;\n\n const nodes = this.body.nodes;\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n const forces = this.physicsBody.forces;\n\n // repulsing forces between nodes\n const nodeDistance = this.options.nodeDistance;\n\n // approximation constants\n const a = -2 / 3 / nodeDistance;\n const b = 4 / 3;\n\n // we loop from i over all but the last entree in the array\n // j loops from i+1 to the last. This way we do not double count any of the indices, nor i === j\n for (let i = 0; i < nodeIndices.length - 1; i++) {\n node1 = nodes[nodeIndices[i]];\n for (let j = i + 1; j < nodeIndices.length; j++) {\n node2 = nodes[nodeIndices[j]];\n\n dx = node2.x - node1.x;\n dy = node2.y - node1.y;\n distance = Math.sqrt(dx * dx + dy * dy);\n\n // same condition as BarnesHutSolver, making sure nodes are never 100% overlapping.\n if (distance === 0) {\n distance = 0.1 * this._rng();\n dx = distance;\n }\n\n if (distance < 2 * nodeDistance) {\n if (distance < 0.5 * nodeDistance) {\n repulsingForce = 1.0;\n } else {\n repulsingForce = a * distance + b; // linear approx of 1 / (1 + Math.exp((distance / nodeDistance - 1) * steepness))\n }\n repulsingForce = repulsingForce / distance;\n\n fx = dx * repulsingForce;\n fy = dy * repulsingForce;\n\n forces[node1.id].x -= fx;\n forces[node1.id].y -= fy;\n forces[node2.id].x += fx;\n forces[node2.id].y += fy;\n }\n }\n }\n }\n}\n\nexport default RepulsionSolver;\n","/**\n * Hierarchical Repulsion Solver\n */\nclass HierarchicalRepulsionSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this.body = body;\n this.physicsBody = physicsBody;\n this.setOptions(options);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n this.overlapAvoidanceFactor = Math.max(\n 0,\n Math.min(1, this.options.avoidOverlap || 0)\n );\n }\n\n /**\n * Calculate the forces the nodes apply on each other based on a repulsion field.\n * This field is linearly approximated.\n *\n * @private\n */\n solve() {\n const nodes = this.body.nodes;\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n const forces = this.physicsBody.forces;\n\n // repulsing forces between nodes\n const nodeDistance = this.options.nodeDistance;\n\n // we loop from i over all but the last entree in the array\n // j loops from i+1 to the last. This way we do not double count any of the indices, nor i === j\n for (let i = 0; i < nodeIndices.length - 1; i++) {\n const node1 = nodes[nodeIndices[i]];\n for (let j = i + 1; j < nodeIndices.length; j++) {\n const node2 = nodes[nodeIndices[j]];\n\n // nodes only affect nodes on their level\n if (node1.level === node2.level) {\n const theseNodesDistance =\n nodeDistance +\n this.overlapAvoidanceFactor *\n ((node1.shape.radius || 0) / 2 + (node2.shape.radius || 0) / 2);\n\n const dx = node2.x - node1.x;\n const dy = node2.y - node1.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n const steepness = 0.05;\n let repulsingForce;\n if (distance < theseNodesDistance) {\n repulsingForce =\n -Math.pow(steepness * distance, 2) +\n Math.pow(steepness * theseNodesDistance, 2);\n } else {\n repulsingForce = 0;\n }\n // normalize force with\n if (distance !== 0) {\n repulsingForce = repulsingForce / distance;\n }\n const fx = dx * repulsingForce;\n const fy = dy * repulsingForce;\n\n forces[node1.id].x -= fx;\n forces[node1.id].y -= fy;\n forces[node2.id].x += fx;\n forces[node2.id].y += fy;\n }\n }\n }\n }\n}\n\nexport default HierarchicalRepulsionSolver;\n","/**\n * Spring Solver\n */\nclass SpringSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this.body = body;\n this.physicsBody = physicsBody;\n this.setOptions(options);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n }\n\n /**\n * This function calculates the springforces on the nodes, accounting for the support nodes.\n *\n * @private\n */\n solve() {\n let edgeLength, edge;\n const edgeIndices = this.physicsBody.physicsEdgeIndices;\n const edges = this.body.edges;\n let node1, node2, node3;\n\n // forces caused by the edges, modelled as springs\n for (let i = 0; i < edgeIndices.length; i++) {\n edge = edges[edgeIndices[i]];\n if (edge.connected === true && edge.toId !== edge.fromId) {\n // only calculate forces if nodes are in the same sector\n if (\n this.body.nodes[edge.toId] !== undefined &&\n this.body.nodes[edge.fromId] !== undefined\n ) {\n if (edge.edgeType.via !== undefined) {\n edgeLength =\n edge.options.length === undefined\n ? this.options.springLength\n : edge.options.length;\n node1 = edge.to;\n node2 = edge.edgeType.via;\n node3 = edge.from;\n\n this._calculateSpringForce(node1, node2, 0.5 * edgeLength);\n this._calculateSpringForce(node2, node3, 0.5 * edgeLength);\n } else {\n // the * 1.5 is here so the edge looks as large as a smooth edge. It does not initially because the smooth edges use\n // the support nodes which exert a repulsive force on the to and from nodes, making the edge appear larger.\n edgeLength =\n edge.options.length === undefined\n ? this.options.springLength * 1.5\n : edge.options.length;\n this._calculateSpringForce(edge.from, edge.to, edgeLength);\n }\n }\n }\n }\n }\n\n /**\n * This is the code actually performing the calculation for the function above.\n *\n * @param {Node} node1\n * @param {Node} node2\n * @param {number} edgeLength\n * @private\n */\n _calculateSpringForce(node1, node2, edgeLength) {\n const dx = node1.x - node2.x;\n const dy = node1.y - node2.y;\n const distance = Math.max(Math.sqrt(dx * dx + dy * dy), 0.01);\n\n // the 1/distance is so the fx and fy can be calculated without sine or cosine.\n const springForce =\n (this.options.springConstant * (edgeLength - distance)) / distance;\n\n const fx = dx * springForce;\n const fy = dy * springForce;\n\n // handle the case where one node is not part of the physcis\n if (this.physicsBody.forces[node1.id] !== undefined) {\n this.physicsBody.forces[node1.id].x += fx;\n this.physicsBody.forces[node1.id].y += fy;\n }\n\n if (this.physicsBody.forces[node2.id] !== undefined) {\n this.physicsBody.forces[node2.id].x -= fx;\n this.physicsBody.forces[node2.id].y -= fy;\n }\n }\n}\n\nexport default SpringSolver;\n","/**\n * Hierarchical Spring Solver\n */\nclass HierarchicalSpringSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this.body = body;\n this.physicsBody = physicsBody;\n this.setOptions(options);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n }\n\n /**\n * This function calculates the springforces on the nodes, accounting for the support nodes.\n *\n * @private\n */\n solve() {\n let edgeLength, edge;\n let dx, dy, fx, fy, springForce, distance;\n const edges = this.body.edges;\n const factor = 0.5;\n\n const edgeIndices = this.physicsBody.physicsEdgeIndices;\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n const forces = this.physicsBody.forces;\n\n // initialize the spring force counters\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n forces[nodeId].springFx = 0;\n forces[nodeId].springFy = 0;\n }\n\n // forces caused by the edges, modelled as springs\n for (let i = 0; i < edgeIndices.length; i++) {\n edge = edges[edgeIndices[i]];\n if (edge.connected === true) {\n edgeLength =\n edge.options.length === undefined\n ? this.options.springLength\n : edge.options.length;\n\n dx = edge.from.x - edge.to.x;\n dy = edge.from.y - edge.to.y;\n distance = Math.sqrt(dx * dx + dy * dy);\n distance = distance === 0 ? 0.01 : distance;\n\n // the 1/distance is so the fx and fy can be calculated without sine or cosine.\n springForce =\n (this.options.springConstant * (edgeLength - distance)) / distance;\n\n fx = dx * springForce;\n fy = dy * springForce;\n\n if (edge.to.level != edge.from.level) {\n if (forces[edge.toId] !== undefined) {\n forces[edge.toId].springFx -= fx;\n forces[edge.toId].springFy -= fy;\n }\n if (forces[edge.fromId] !== undefined) {\n forces[edge.fromId].springFx += fx;\n forces[edge.fromId].springFy += fy;\n }\n } else {\n if (forces[edge.toId] !== undefined) {\n forces[edge.toId].x -= factor * fx;\n forces[edge.toId].y -= factor * fy;\n }\n if (forces[edge.fromId] !== undefined) {\n forces[edge.fromId].x += factor * fx;\n forces[edge.fromId].y += factor * fy;\n }\n }\n }\n }\n\n // normalize spring forces\n springForce = 1;\n let springFx, springFy;\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n springFx = Math.min(\n springForce,\n Math.max(-springForce, forces[nodeId].springFx)\n );\n springFy = Math.min(\n springForce,\n Math.max(-springForce, forces[nodeId].springFy)\n );\n\n forces[nodeId].x += springFx;\n forces[nodeId].y += springFy;\n }\n\n // retain energy balance\n let totalFx = 0;\n let totalFy = 0;\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n totalFx += forces[nodeId].x;\n totalFy += forces[nodeId].y;\n }\n const correctionFx = totalFx / nodeIndices.length;\n const correctionFy = totalFy / nodeIndices.length;\n\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n forces[nodeId].x -= correctionFx;\n forces[nodeId].y -= correctionFy;\n }\n }\n}\n\nexport default HierarchicalSpringSolver;\n","/**\n * Central Gravity Solver\n */\nclass CentralGravitySolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n this.body = body;\n this.physicsBody = physicsBody;\n this.setOptions(options);\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n this.options = options;\n }\n\n /**\n * Calculates forces for each node\n */\n solve() {\n let dx, dy, distance, node;\n const nodes = this.body.nodes;\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n const forces = this.physicsBody.forces;\n\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n node = nodes[nodeId];\n dx = -node.x;\n dy = -node.y;\n distance = Math.sqrt(dx * dx + dy * dy);\n\n this._calculateForces(distance, dx, dy, forces, node);\n }\n }\n\n /**\n * Calculate the forces based on the distance.\n *\n * @param {number} distance\n * @param {number} dx\n * @param {number} dy\n * @param {Object} forces\n * @param {Node} node\n * @private\n */\n _calculateForces(distance, dx, dy, forces, node) {\n const gravityForce =\n distance === 0 ? 0 : this.options.centralGravity / distance;\n forces[node.id].x = dx * gravityForce;\n forces[node.id].y = dy * gravityForce;\n }\n}\n\nexport default CentralGravitySolver;\n","import BarnesHutSolver from \"./BarnesHutSolver\";\nimport { Alea } from \"vis-util/esnext\";\n\n/**\n * @augments BarnesHutSolver\n */\nclass ForceAtlas2BasedRepulsionSolver extends BarnesHutSolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n super(body, physicsBody, options);\n\n this._rng = Alea(\"FORCE ATLAS 2 BASED REPULSION SOLVER\");\n }\n\n /**\n * Calculate the forces based on the distance.\n *\n * @param {number} distance\n * @param {number} dx\n * @param {number} dy\n * @param {Node} node\n * @param {object} parentBranch\n * @private\n */\n _calculateForces(distance, dx, dy, node, parentBranch) {\n if (distance === 0) {\n distance = 0.1 * this._rng();\n dx = distance;\n }\n\n if (this.overlapAvoidanceFactor < 1 && node.shape.radius) {\n distance = Math.max(\n 0.1 + this.overlapAvoidanceFactor * node.shape.radius,\n distance - node.shape.radius\n );\n }\n\n const degree = node.edges.length + 1;\n // the dividing by the distance cubed instead of squared allows us to get the fx and fy components without sines and cosines\n // it is shorthand for gravityforce with distance squared and fx = dx/distance * gravityForce\n const gravityForce =\n (this.options.gravitationalConstant *\n parentBranch.mass *\n node.options.mass *\n degree) /\n Math.pow(distance, 2);\n const fx = dx * gravityForce;\n const fy = dy * gravityForce;\n\n this.physicsBody.forces[node.id].x += fx;\n this.physicsBody.forces[node.id].y += fy;\n }\n}\n\nexport default ForceAtlas2BasedRepulsionSolver;\n","import CentralGravitySolver from \"./CentralGravitySolver\";\n\n/**\n * @augments CentralGravitySolver\n */\nclass ForceAtlas2BasedCentralGravitySolver extends CentralGravitySolver {\n /**\n * @param {object} body\n * @param {{physicsNodeIndices: Array, physicsEdgeIndices: Array, forces: {}, velocities: {}}} physicsBody\n * @param {object} options\n */\n constructor(body, physicsBody, options) {\n super(body, physicsBody, options);\n }\n\n /**\n * Calculate the forces based on the distance.\n *\n * @param {number} distance\n * @param {number} dx\n * @param {number} dy\n * @param {Object} forces\n * @param {Node} node\n * @private\n */\n _calculateForces(distance, dx, dy, forces, node) {\n if (distance > 0) {\n const degree = node.edges.length + 1;\n const gravityForce =\n this.options.centralGravity * degree * node.options.mass;\n forces[node.id].x = dx * gravityForce;\n forces[node.id].y = dy * gravityForce;\n }\n }\n}\n\nexport default ForceAtlas2BasedCentralGravitySolver;\n","import BarnesHutSolver from \"./components/physics/BarnesHutSolver\";\nimport Repulsion from \"./components/physics/RepulsionSolver\";\nimport HierarchicalRepulsion from \"./components/physics/HierarchicalRepulsionSolver\";\nimport SpringSolver from \"./components/physics/SpringSolver\";\nimport HierarchicalSpringSolver from \"./components/physics/HierarchicalSpringSolver\";\nimport CentralGravitySolver from \"./components/physics/CentralGravitySolver\";\nimport ForceAtlas2BasedRepulsionSolver from \"./components/physics/FA2BasedRepulsionSolver\";\nimport ForceAtlas2BasedCentralGravitySolver from \"./components/physics/FA2BasedCentralGravitySolver\";\nimport {\n HSVToHex,\n mergeOptions,\n selectiveNotDeepExtend,\n} from \"vis-util/esnext\";\nimport { EndPoints } from \"./components/edges\"; // for debugging with _drawForces()\n\n/**\n * The physics engine\n */\nclass PhysicsEngine {\n /**\n * @param {object} body\n */\n constructor(body) {\n this.body = body;\n this.physicsBody = {\n physicsNodeIndices: [],\n physicsEdgeIndices: [],\n forces: {},\n velocities: {},\n };\n\n this.physicsEnabled = true;\n this.simulationInterval = 1000 / 60;\n this.requiresTimeout = true;\n this.previousStates = {};\n this.referenceState = {};\n this.freezeCache = {};\n this.renderTimer = undefined;\n\n // parameters for the adaptive timestep\n this.adaptiveTimestep = false;\n this.adaptiveTimestepEnabled = false;\n this.adaptiveCounter = 0;\n this.adaptiveInterval = 3;\n\n this.stabilized = false;\n this.startedStabilization = false;\n this.stabilizationIterations = 0;\n this.ready = false; // will be set to true if the stabilize\n\n // default options\n this.options = {};\n this.defaultOptions = {\n enabled: true,\n barnesHut: {\n theta: 0.5,\n gravitationalConstant: -2000,\n centralGravity: 0.3,\n springLength: 95,\n springConstant: 0.04,\n damping: 0.09,\n avoidOverlap: 0,\n },\n forceAtlas2Based: {\n theta: 0.5,\n gravitationalConstant: -50,\n centralGravity: 0.01,\n springConstant: 0.08,\n springLength: 100,\n damping: 0.4,\n avoidOverlap: 0,\n },\n repulsion: {\n centralGravity: 0.2,\n springLength: 200,\n springConstant: 0.05,\n nodeDistance: 100,\n damping: 0.09,\n avoidOverlap: 0,\n },\n hierarchicalRepulsion: {\n centralGravity: 0.0,\n springLength: 100,\n springConstant: 0.01,\n nodeDistance: 120,\n damping: 0.09,\n },\n maxVelocity: 50,\n minVelocity: 0.75, // px/s\n solver: \"barnesHut\",\n stabilization: {\n enabled: true,\n iterations: 1000, // maximum number of iteration to stabilize\n updateInterval: 50,\n onlyDynamicEdges: false,\n fit: true,\n },\n timestep: 0.5,\n adaptiveTimestep: true,\n wind: { x: 0, y: 0 },\n };\n Object.assign(this.options, this.defaultOptions);\n this.timestep = 0.5;\n this.layoutFailed = false;\n\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n this.body.emitter.on(\"initPhysics\", () => {\n this.initPhysics();\n });\n this.body.emitter.on(\"_layoutFailed\", () => {\n this.layoutFailed = true;\n });\n this.body.emitter.on(\"resetPhysics\", () => {\n this.stopSimulation();\n this.ready = false;\n });\n this.body.emitter.on(\"disablePhysics\", () => {\n this.physicsEnabled = false;\n this.stopSimulation();\n });\n this.body.emitter.on(\"restorePhysics\", () => {\n this.setOptions(this.options);\n if (this.ready === true) {\n this.startSimulation();\n }\n });\n this.body.emitter.on(\"startSimulation\", () => {\n if (this.ready === true) {\n this.startSimulation();\n }\n });\n this.body.emitter.on(\"stopSimulation\", () => {\n this.stopSimulation();\n });\n this.body.emitter.on(\"destroy\", () => {\n this.stopSimulation(false);\n this.body.emitter.off();\n });\n this.body.emitter.on(\"_dataChanged\", () => {\n // Nodes and/or edges have been added or removed, update shortcut lists.\n this.updatePhysicsData();\n });\n\n // debug: show forces\n // this.body.emitter.on(\"afterDrawing\", (ctx) => {this._drawForces(ctx);});\n }\n\n /**\n * set the physics options\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n if (options === false) {\n this.options.enabled = false;\n this.physicsEnabled = false;\n this.stopSimulation();\n } else if (options === true) {\n this.options.enabled = true;\n this.physicsEnabled = true;\n this.startSimulation();\n } else {\n this.physicsEnabled = true;\n selectiveNotDeepExtend([\"stabilization\"], this.options, options);\n mergeOptions(this.options, options, \"stabilization\");\n\n if (options.enabled === undefined) {\n this.options.enabled = true;\n }\n\n if (this.options.enabled === false) {\n this.physicsEnabled = false;\n this.stopSimulation();\n }\n\n const wind = this.options.wind;\n if (wind) {\n if (typeof wind.x !== \"number\" || Number.isNaN(wind.x)) {\n wind.x = 0;\n }\n if (typeof wind.y !== \"number\" || Number.isNaN(wind.y)) {\n wind.y = 0;\n }\n }\n\n // set the timestep\n this.timestep = this.options.timestep;\n }\n }\n this.init();\n }\n\n /**\n * configure the engine.\n */\n init() {\n let options;\n if (this.options.solver === \"forceAtlas2Based\") {\n options = this.options.forceAtlas2Based;\n this.nodesSolver = new ForceAtlas2BasedRepulsionSolver(\n this.body,\n this.physicsBody,\n options\n );\n this.edgesSolver = new SpringSolver(this.body, this.physicsBody, options);\n this.gravitySolver = new ForceAtlas2BasedCentralGravitySolver(\n this.body,\n this.physicsBody,\n options\n );\n } else if (this.options.solver === \"repulsion\") {\n options = this.options.repulsion;\n this.nodesSolver = new Repulsion(this.body, this.physicsBody, options);\n this.edgesSolver = new SpringSolver(this.body, this.physicsBody, options);\n this.gravitySolver = new CentralGravitySolver(\n this.body,\n this.physicsBody,\n options\n );\n } else if (this.options.solver === \"hierarchicalRepulsion\") {\n options = this.options.hierarchicalRepulsion;\n this.nodesSolver = new HierarchicalRepulsion(\n this.body,\n this.physicsBody,\n options\n );\n this.edgesSolver = new HierarchicalSpringSolver(\n this.body,\n this.physicsBody,\n options\n );\n this.gravitySolver = new CentralGravitySolver(\n this.body,\n this.physicsBody,\n options\n );\n } else {\n // barnesHut\n options = this.options.barnesHut;\n this.nodesSolver = new BarnesHutSolver(\n this.body,\n this.physicsBody,\n options\n );\n this.edgesSolver = new SpringSolver(this.body, this.physicsBody, options);\n this.gravitySolver = new CentralGravitySolver(\n this.body,\n this.physicsBody,\n options\n );\n }\n\n this.modelOptions = options;\n }\n\n /**\n * initialize the engine\n */\n initPhysics() {\n if (this.physicsEnabled === true && this.options.enabled === true) {\n if (this.options.stabilization.enabled === true) {\n this.stabilize();\n } else {\n this.stabilized = false;\n this.ready = true;\n this.body.emitter.emit(\"fit\", {}, this.layoutFailed); // if the layout failed, we use the approximation for the zoom\n this.startSimulation();\n }\n } else {\n this.ready = true;\n this.body.emitter.emit(\"fit\");\n }\n }\n\n /**\n * Start the simulation\n */\n startSimulation() {\n if (this.physicsEnabled === true && this.options.enabled === true) {\n this.stabilized = false;\n\n // when visible, adaptivity is disabled.\n this.adaptiveTimestep = false;\n\n // this sets the width of all nodes initially which could be required for the avoidOverlap\n this.body.emitter.emit(\"_resizeNodes\");\n if (this.viewFunction === undefined) {\n this.viewFunction = this.simulationStep.bind(this);\n this.body.emitter.on(\"initRedraw\", this.viewFunction);\n this.body.emitter.emit(\"_startRendering\");\n }\n } else {\n this.body.emitter.emit(\"_redraw\");\n }\n }\n\n /**\n * Stop the simulation, force stabilization.\n *\n * @param {boolean} [emit=true]\n */\n stopSimulation(emit = true) {\n this.stabilized = true;\n if (emit === true) {\n this._emitStabilized();\n }\n if (this.viewFunction !== undefined) {\n this.body.emitter.off(\"initRedraw\", this.viewFunction);\n this.viewFunction = undefined;\n if (emit === true) {\n this.body.emitter.emit(\"_stopRendering\");\n }\n }\n }\n\n /**\n * The viewFunction inserts this step into each render loop. It calls the physics tick and handles the cleanup at stabilized.\n *\n */\n simulationStep() {\n // check if the physics have settled\n const startTime = Date.now();\n this.physicsTick();\n const physicsTime = Date.now() - startTime;\n\n // run double speed if it is a little graph\n if (\n (physicsTime < 0.4 * this.simulationInterval ||\n this.runDoubleSpeed === true) &&\n this.stabilized === false\n ) {\n this.physicsTick();\n\n // this makes sure there is no jitter. The decision is taken once to run it at double speed.\n this.runDoubleSpeed = true;\n }\n\n if (this.stabilized === true) {\n this.stopSimulation();\n }\n }\n\n /**\n * trigger the stabilized event.\n *\n * @param {number} [amountOfIterations=this.stabilizationIterations]\n * @private\n */\n _emitStabilized(amountOfIterations = this.stabilizationIterations) {\n if (\n this.stabilizationIterations > 1 ||\n this.startedStabilization === true\n ) {\n setTimeout(() => {\n this.body.emitter.emit(\"stabilized\", {\n iterations: amountOfIterations,\n });\n this.startedStabilization = false;\n this.stabilizationIterations = 0;\n }, 0);\n }\n }\n\n /**\n * Calculate the forces for one physics iteration and move the nodes.\n *\n * @private\n */\n physicsStep() {\n this.gravitySolver.solve();\n this.nodesSolver.solve();\n this.edgesSolver.solve();\n this.moveNodes();\n }\n\n /**\n * Make dynamic adjustments to the timestep, based on current state.\n *\n * Helper function for physicsTick().\n *\n * @private\n */\n adjustTimeStep() {\n const factor = 1.2; // Factor for increasing the timestep on success.\n\n // we compare the two steps. if it is acceptable we double the step.\n if (this._evaluateStepQuality() === true) {\n this.timestep = factor * this.timestep;\n } else {\n // if not, we decrease the step to a minimum of the options timestep.\n // if the decreased timestep is smaller than the options step, we do not reset the counter\n // we assume that the options timestep is stable enough.\n if (this.timestep / factor < this.options.timestep) {\n this.timestep = this.options.timestep;\n } else {\n // if the timestep was larger than 2 times the option one we check the adaptivity again to ensure\n // that large instabilities do not form.\n this.adaptiveCounter = -1; // check again next iteration\n this.timestep = Math.max(this.options.timestep, this.timestep / factor);\n }\n }\n }\n\n /**\n * A single simulation step (or 'tick') in the physics simulation\n *\n * @private\n */\n physicsTick() {\n this._startStabilizing(); // this ensures that there is no start event when the network is already stable.\n if (this.stabilized === true) return;\n\n // adaptivity means the timestep adapts to the situation, only applicable for stabilization\n if (\n this.adaptiveTimestep === true &&\n this.adaptiveTimestepEnabled === true\n ) {\n // timestep remains stable for \"interval\" iterations.\n const doAdaptive = this.adaptiveCounter % this.adaptiveInterval === 0;\n\n if (doAdaptive) {\n // first the big step and revert.\n this.timestep = 2 * this.timestep;\n this.physicsStep();\n this.revert(); // saves the reference state\n\n // now the normal step. Since this is the last step, it is the more stable one and we will take this.\n this.timestep = 0.5 * this.timestep;\n\n // since it's half the step, we do it twice.\n this.physicsStep();\n this.physicsStep();\n\n this.adjustTimeStep();\n } else {\n this.physicsStep(); // normal step, keeping timestep constant\n }\n\n this.adaptiveCounter += 1;\n } else {\n // case for the static timestep, we reset it to the one in options and take a normal step.\n this.timestep = this.options.timestep;\n this.physicsStep();\n }\n\n if (this.stabilized === true) this.revert();\n this.stabilizationIterations++;\n }\n\n /**\n * Nodes and edges can have the physics toggles on or off. A collection of indices is created here so we can skip the check all the time.\n *\n * @private\n */\n updatePhysicsData() {\n this.physicsBody.forces = {};\n this.physicsBody.physicsNodeIndices = [];\n this.physicsBody.physicsEdgeIndices = [];\n const nodes = this.body.nodes;\n const edges = this.body.edges;\n\n // get node indices for physics\n for (const nodeId in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, nodeId)) {\n if (nodes[nodeId].options.physics === true) {\n this.physicsBody.physicsNodeIndices.push(nodes[nodeId].id);\n }\n }\n }\n\n // get edge indices for physics\n for (const edgeId in edges) {\n if (Object.prototype.hasOwnProperty.call(edges, edgeId)) {\n if (edges[edgeId].options.physics === true) {\n this.physicsBody.physicsEdgeIndices.push(edges[edgeId].id);\n }\n }\n }\n\n // get the velocity and the forces vector\n for (let i = 0; i < this.physicsBody.physicsNodeIndices.length; i++) {\n const nodeId = this.physicsBody.physicsNodeIndices[i];\n this.physicsBody.forces[nodeId] = { x: 0, y: 0 };\n\n // forces can be reset because they are recalculated. Velocities have to persist.\n if (this.physicsBody.velocities[nodeId] === undefined) {\n this.physicsBody.velocities[nodeId] = { x: 0, y: 0 };\n }\n }\n\n // clean deleted nodes from the velocity vector\n for (const nodeId in this.physicsBody.velocities) {\n if (nodes[nodeId] === undefined) {\n delete this.physicsBody.velocities[nodeId];\n }\n }\n }\n\n /**\n * Revert the simulation one step. This is done so after stabilization, every new start of the simulation will also say stabilized.\n */\n revert() {\n const nodeIds = Object.keys(this.previousStates);\n const nodes = this.body.nodes;\n const velocities = this.physicsBody.velocities;\n this.referenceState = {};\n\n for (let i = 0; i < nodeIds.length; i++) {\n const nodeId = nodeIds[i];\n if (nodes[nodeId] !== undefined) {\n if (nodes[nodeId].options.physics === true) {\n this.referenceState[nodeId] = {\n positions: { x: nodes[nodeId].x, y: nodes[nodeId].y },\n };\n velocities[nodeId].x = this.previousStates[nodeId].vx;\n velocities[nodeId].y = this.previousStates[nodeId].vy;\n nodes[nodeId].x = this.previousStates[nodeId].x;\n nodes[nodeId].y = this.previousStates[nodeId].y;\n }\n } else {\n delete this.previousStates[nodeId];\n }\n }\n }\n\n /**\n * This compares the reference state to the current state\n *\n * @returns {boolean}\n * @private\n */\n _evaluateStepQuality() {\n let dx, dy, dpos;\n const nodes = this.body.nodes;\n const reference = this.referenceState;\n const posThreshold = 0.3;\n\n for (const nodeId in this.referenceState) {\n if (\n Object.prototype.hasOwnProperty.call(this.referenceState, nodeId) &&\n nodes[nodeId] !== undefined\n ) {\n dx = nodes[nodeId].x - reference[nodeId].positions.x;\n dy = nodes[nodeId].y - reference[nodeId].positions.y;\n\n dpos = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));\n\n if (dpos > posThreshold) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * move the nodes one timestep and check if they are stabilized\n */\n moveNodes() {\n const nodeIndices = this.physicsBody.physicsNodeIndices;\n let maxNodeVelocity = 0;\n let averageNodeVelocity = 0;\n\n // the velocity threshold (energy in the system) for the adaptivity toggle\n const velocityAdaptiveThreshold = 5;\n\n for (let i = 0; i < nodeIndices.length; i++) {\n const nodeId = nodeIndices[i];\n const nodeVelocity = this._performStep(nodeId);\n // stabilized is true if stabilized is true and velocity is smaller than vmin --> all nodes must be stabilized\n maxNodeVelocity = Math.max(maxNodeVelocity, nodeVelocity);\n averageNodeVelocity += nodeVelocity;\n }\n\n // evaluating the stabilized and adaptiveTimestepEnabled conditions\n this.adaptiveTimestepEnabled =\n averageNodeVelocity / nodeIndices.length < velocityAdaptiveThreshold;\n this.stabilized = maxNodeVelocity < this.options.minVelocity;\n }\n\n /**\n * Calculate new velocity for a coordinate direction\n *\n * @param {number} v velocity for current coordinate\n * @param {number} f regular force for current coordinate\n * @param {number} m mass of current node\n * @returns {number} new velocity for current coordinate\n * @private\n */\n calculateComponentVelocity(v, f, m) {\n const df = this.modelOptions.damping * v; // damping force\n const a = (f - df) / m; // acceleration\n\n v += a * this.timestep;\n\n // Put a limit on the velocities if it is really high\n const maxV = this.options.maxVelocity || 1e9;\n if (Math.abs(v) > maxV) {\n v = v > 0 ? maxV : -maxV;\n }\n\n return v;\n }\n\n /**\n * Perform the actual step\n *\n * @param {Node.id} nodeId\n * @returns {number} the new velocity of given node\n * @private\n */\n _performStep(nodeId) {\n const node = this.body.nodes[nodeId];\n const force = this.physicsBody.forces[nodeId];\n\n if (this.options.wind) {\n force.x += this.options.wind.x;\n force.y += this.options.wind.y;\n }\n\n const velocity = this.physicsBody.velocities[nodeId];\n\n // store the state so we can revert\n this.previousStates[nodeId] = {\n x: node.x,\n y: node.y,\n vx: velocity.x,\n vy: velocity.y,\n };\n\n if (node.options.fixed.x === false) {\n velocity.x = this.calculateComponentVelocity(\n velocity.x,\n force.x,\n node.options.mass\n );\n node.x += velocity.x * this.timestep;\n } else {\n force.x = 0;\n velocity.x = 0;\n }\n\n if (node.options.fixed.y === false) {\n velocity.y = this.calculateComponentVelocity(\n velocity.y,\n force.y,\n node.options.mass\n );\n node.y += velocity.y * this.timestep;\n } else {\n force.y = 0;\n velocity.y = 0;\n }\n\n const totalVelocity = Math.sqrt(\n Math.pow(velocity.x, 2) + Math.pow(velocity.y, 2)\n );\n return totalVelocity;\n }\n\n /**\n * When initializing and stabilizing, we can freeze nodes with a predefined position.\n * This greatly speeds up stabilization because only the supportnodes for the smoothCurves have to settle.\n *\n * @private\n */\n _freezeNodes() {\n const nodes = this.body.nodes;\n for (const id in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, id)) {\n if (nodes[id].x && nodes[id].y) {\n const fixed = nodes[id].options.fixed;\n this.freezeCache[id] = { x: fixed.x, y: fixed.y };\n fixed.x = true;\n fixed.y = true;\n }\n }\n }\n }\n\n /**\n * Unfreezes the nodes that have been frozen by _freezeDefinedNodes.\n *\n * @private\n */\n _restoreFrozenNodes() {\n const nodes = this.body.nodes;\n for (const id in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, id)) {\n if (this.freezeCache[id] !== undefined) {\n nodes[id].options.fixed.x = this.freezeCache[id].x;\n nodes[id].options.fixed.y = this.freezeCache[id].y;\n }\n }\n }\n this.freezeCache = {};\n }\n\n /**\n * Find a stable position for all nodes\n *\n * @param {number} [iterations=this.options.stabilization.iterations]\n */\n stabilize(iterations = this.options.stabilization.iterations) {\n if (typeof iterations !== \"number\") {\n iterations = this.options.stabilization.iterations;\n console.error(\n \"The stabilize method needs a numeric amount of iterations. Switching to default: \",\n iterations\n );\n }\n\n if (this.physicsBody.physicsNodeIndices.length === 0) {\n this.ready = true;\n return;\n }\n\n // enable adaptive timesteps\n this.adaptiveTimestep = true && this.options.adaptiveTimestep;\n\n // this sets the width of all nodes initially which could be required for the avoidOverlap\n this.body.emitter.emit(\"_resizeNodes\");\n\n this.stopSimulation(); // stop the render loop\n this.stabilized = false;\n\n // block redraw requests\n this.body.emitter.emit(\"_blockRedraw\");\n this.targetIterations = iterations;\n\n // start the stabilization\n if (this.options.stabilization.onlyDynamicEdges === true) {\n this._freezeNodes();\n }\n this.stabilizationIterations = 0;\n\n setTimeout(() => this._stabilizationBatch(), 0);\n }\n\n /**\n * If not already stabilizing, start it and emit a start event.\n *\n * @returns {boolean} true if stabilization started with this call\n * @private\n */\n _startStabilizing() {\n if (this.startedStabilization === true) return false;\n\n this.body.emitter.emit(\"startStabilizing\");\n this.startedStabilization = true;\n return true;\n }\n\n /**\n * One batch of stabilization\n *\n * @private\n */\n _stabilizationBatch() {\n const running = () =>\n this.stabilized === false &&\n this.stabilizationIterations < this.targetIterations;\n\n const sendProgress = () => {\n this.body.emitter.emit(\"stabilizationProgress\", {\n iterations: this.stabilizationIterations,\n total: this.targetIterations,\n });\n };\n\n if (this._startStabilizing()) {\n sendProgress(); // Ensure that there is at least one start event.\n }\n\n let count = 0;\n while (running() && count < this.options.stabilization.updateInterval) {\n this.physicsTick();\n count++;\n }\n\n sendProgress();\n\n if (running()) {\n setTimeout(this._stabilizationBatch.bind(this), 0);\n } else {\n this._finalizeStabilization();\n }\n }\n\n /**\n * Wrap up the stabilization, fit and emit the events.\n *\n * @private\n */\n _finalizeStabilization() {\n this.body.emitter.emit(\"_allowRedraw\");\n if (this.options.stabilization.fit === true) {\n this.body.emitter.emit(\"fit\");\n }\n\n if (this.options.stabilization.onlyDynamicEdges === true) {\n this._restoreFrozenNodes();\n }\n\n this.body.emitter.emit(\"stabilizationIterationsDone\");\n this.body.emitter.emit(\"_requestRedraw\");\n\n if (this.stabilized === true) {\n this._emitStabilized();\n } else {\n this.startSimulation();\n }\n\n this.ready = true;\n }\n\n //--------------------------- DEBUGGING BELOW ---------------------------//\n\n /**\n * Debug function that display arrows for the forces currently active in the network.\n *\n * Use this when debugging only.\n *\n * @param {CanvasRenderingContext2D} ctx\n * @private\n */\n _drawForces(ctx) {\n for (let i = 0; i < this.physicsBody.physicsNodeIndices.length; i++) {\n const index = this.physicsBody.physicsNodeIndices[i];\n const node = this.body.nodes[index];\n const force = this.physicsBody.forces[index];\n const factor = 20;\n const colorFactor = 0.03;\n const forceSize = Math.sqrt(Math.pow(force.x, 2) + Math.pow(force.x, 2));\n\n const size = Math.min(Math.max(5, forceSize), 15);\n const arrowSize = 3 * size;\n\n const color = HSVToHex(\n (180 - Math.min(1, Math.max(0, colorFactor * forceSize)) * 180) / 360,\n 1,\n 1\n );\n\n const point = {\n x: node.x + factor * force.x,\n y: node.y + factor * force.y,\n };\n\n ctx.lineWidth = size;\n ctx.strokeStyle = color;\n ctx.beginPath();\n ctx.moveTo(node.x, node.y);\n ctx.lineTo(point.x, point.y);\n ctx.stroke();\n\n const angle = Math.atan2(force.y, force.x);\n ctx.fillStyle = color;\n EndPoints.draw(ctx, {\n type: \"arrow\",\n point: point,\n angle: angle,\n length: arrowSize,\n });\n ctx.fill();\n }\n }\n}\n\nexport default PhysicsEngine;\n","import { deepExtend } from \"vis-util/esnext\";\n\n/**\n * Utility Class\n */\nclass NetworkUtil {\n /**\n * @ignore\n */\n constructor() {}\n\n /**\n * Find the center position of the network considering the bounding boxes\n *\n * @param {Array.} allNodes\n * @param {Array.} [specificNodes=[]]\n * @returns {{minX: number, maxX: number, minY: number, maxY: number}}\n * @static\n */\n static getRange(allNodes, specificNodes = []) {\n let minY = 1e9,\n maxY = -1e9,\n minX = 1e9,\n maxX = -1e9,\n node;\n if (specificNodes.length > 0) {\n for (let i = 0; i < specificNodes.length; i++) {\n node = allNodes[specificNodes[i]];\n if (minX > node.shape.boundingBox.left) {\n minX = node.shape.boundingBox.left;\n }\n if (maxX < node.shape.boundingBox.right) {\n maxX = node.shape.boundingBox.right;\n }\n if (minY > node.shape.boundingBox.top) {\n minY = node.shape.boundingBox.top;\n } // top is negative, bottom is positive\n if (maxY < node.shape.boundingBox.bottom) {\n maxY = node.shape.boundingBox.bottom;\n } // top is negative, bottom is positive\n }\n }\n\n if (minX === 1e9 && maxX === -1e9 && minY === 1e9 && maxY === -1e9) {\n (minY = 0), (maxY = 0), (minX = 0), (maxX = 0);\n }\n return { minX: minX, maxX: maxX, minY: minY, maxY: maxY };\n }\n\n /**\n * Find the center position of the network\n *\n * @param {Array.} allNodes\n * @param {Array.} [specificNodes=[]]\n * @returns {{minX: number, maxX: number, minY: number, maxY: number}}\n * @static\n */\n static getRangeCore(allNodes, specificNodes = []) {\n let minY = 1e9,\n maxY = -1e9,\n minX = 1e9,\n maxX = -1e9,\n node;\n if (specificNodes.length > 0) {\n for (let i = 0; i < specificNodes.length; i++) {\n node = allNodes[specificNodes[i]];\n if (minX > node.x) {\n minX = node.x;\n }\n if (maxX < node.x) {\n maxX = node.x;\n }\n if (minY > node.y) {\n minY = node.y;\n } // top is negative, bottom is positive\n if (maxY < node.y) {\n maxY = node.y;\n } // top is negative, bottom is positive\n }\n }\n\n if (minX === 1e9 && maxX === -1e9 && minY === 1e9 && maxY === -1e9) {\n (minY = 0), (maxY = 0), (minX = 0), (maxX = 0);\n }\n return { minX: minX, maxX: maxX, minY: minY, maxY: maxY };\n }\n\n /**\n * @param {object} range = {minX: minX, maxX: maxX, minY: minY, maxY: maxY};\n * @returns {{x: number, y: number}}\n * @static\n */\n static findCenter(range) {\n return {\n x: 0.5 * (range.maxX + range.minX),\n y: 0.5 * (range.maxY + range.minY),\n };\n }\n\n /**\n * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes.\n *\n * @param {vis.Item} item\n * @param {'node'|undefined} type\n * @returns {{}}\n * @static\n */\n static cloneOptions(item, type) {\n const clonedOptions = {};\n if (type === undefined || type === \"node\") {\n deepExtend(clonedOptions, item.options, true);\n clonedOptions.x = item.x;\n clonedOptions.y = item.y;\n clonedOptions.amountOfConnections = item.edges.length;\n } else {\n deepExtend(clonedOptions, item.options, true);\n }\n return clonedOptions;\n }\n}\n\nexport default NetworkUtil;\n","import { forEach } from \"vis-util/esnext\";\nimport Node from \"../Node\";\n\n/**\n * A Cluster is a special Node that allows a group of Nodes positioned closely together\n * to be represented by a single Cluster Node.\n *\n * @augments Node\n */\nclass Cluster extends Node {\n /**\n * @param {object} options\n * @param {object} body\n * @param {Array.}imagelist\n * @param {Array} grouplist\n * @param {object} globalOptions\n * @param {object} defaultOptions Global default options for nodes\n */\n constructor(\n options,\n body,\n imagelist,\n grouplist,\n globalOptions,\n defaultOptions\n ) {\n super(options, body, imagelist, grouplist, globalOptions, defaultOptions);\n\n this.isCluster = true;\n this.containedNodes = {};\n this.containedEdges = {};\n }\n\n /**\n * Transfer child cluster data to current and disconnect the child cluster.\n *\n * Please consult the header comment in 'Clustering.js' for the fields set here.\n *\n * @param {string|number} childClusterId id of child cluster to open\n */\n _openChildCluster(childClusterId) {\n const childCluster = this.body.nodes[childClusterId];\n if (this.containedNodes[childClusterId] === undefined) {\n throw new Error(\n \"node with id: \" + childClusterId + \" not in current cluster\"\n );\n }\n if (!childCluster.isCluster) {\n throw new Error(\"node with id: \" + childClusterId + \" is not a cluster\");\n }\n\n // Disconnect child cluster from current cluster\n delete this.containedNodes[childClusterId];\n forEach(childCluster.edges, (edge) => {\n delete this.containedEdges[edge.id];\n });\n\n // Transfer nodes and edges\n forEach(childCluster.containedNodes, (node, nodeId) => {\n this.containedNodes[nodeId] = node;\n });\n childCluster.containedNodes = {};\n\n forEach(childCluster.containedEdges, (edge, edgeId) => {\n this.containedEdges[edgeId] = edge;\n });\n childCluster.containedEdges = {};\n\n // Transfer edges within cluster edges which are clustered\n forEach(childCluster.edges, (clusterEdge) => {\n forEach(this.edges, (parentClusterEdge) => {\n // Assumption: a clustered edge can only be present in a single clustering edge\n // Not tested here\n const index = parentClusterEdge.clusteringEdgeReplacingIds.indexOf(\n clusterEdge.id\n );\n if (index === -1) return;\n\n forEach(clusterEdge.clusteringEdgeReplacingIds, (srcId) => {\n parentClusterEdge.clusteringEdgeReplacingIds.push(srcId);\n\n // Maintain correct bookkeeping for transferred edge\n this.body.edges[srcId].edgeReplacedById = parentClusterEdge.id;\n });\n\n // Remove cluster edge from parent cluster edge\n parentClusterEdge.clusteringEdgeReplacingIds.splice(index, 1);\n });\n });\n childCluster.edges = [];\n }\n}\n\nexport default Cluster;\n","/* ===========================================================================\n\n# TODO\n\n- `edgeReplacedById` not cleaned up yet on cluster edge removal\n- allowSingleNodeCluster could be a global option as well; currently needs to always\n be passed to clustering methods\n\n----------------------------------------------\n\n# State Model for Clustering\n\nThe total state for clustering is non-trivial. It is useful to have a model\navailable as to how it works. The following documents the relevant state items.\n\n\n## Network State\n\nThe following `network`-members are relevant to clustering:\n\n- `body.nodes` - all nodes actively participating in the network\n- `body.edges` - same for edges\n- `body.nodeIndices` - id's of nodes that are visible at a given moment\n- `body.edgeIndices` - same for edges\n\nThis includes:\n\n- helper nodes for dragging in `manipulation`\n- helper nodes for edge type `dynamic`\n- cluster nodes and edges\n- there may be more than this.\n\nA node/edge may be missing in the `Indices` member if:\n\n- it is a helper node\n- the node or edge state has option `hidden` set\n- It is not visible due to clustering\n\n\n## Clustering State\n\nFor the hashes, the id's of the nodes/edges are used as key.\n\nMember `network.clustering` contains the following items:\n\n- `clusteredNodes` - hash with values: { clusterId: , node: }\n- `clusteredEdges` - hash with values: restore information for given edge\n\n\nDue to nesting of clusters, these members can contain cluster nodes and edges as well.\n\nThe important thing to note here, is that the clustered nodes and edges also\nappear in the members of the cluster nodes. For data update, it is therefore\nimportant to scan these lists as well as the cluster nodes.\n\n\n### Cluster Node\n\nA cluster node has the following extra fields:\n\n- `isCluster : true` - indication that this is a cluster node\n- `containedNodes` - hash of nodes contained in this cluster\n- `containedEdges` - same for edges\n- `edges` - array of cluster edges for this node\n\n\n**NOTE:**\n\n- `containedEdges` can also contain edges which are not clustered; e.g. an edge\n connecting two nodes in the same cluster.\n\n\n### Cluster Edge\n\nThese are the items in the `edges` member of a clustered node. They have the\nfollowing relevant members:\n\n- 'clusteringEdgeReplacingIds` - array of id's of edges replaced by this edge\n\nNote that it's possible to nest clusters, so that `clusteringEdgeReplacingIds`\ncan contain edge id's of other clusters.\n\n\n### Clustered Edge\n\nThis is any edge contained by a cluster edge. It gets the following additional\nmember:\n\n- `edgeReplacedById` - id of the cluster edge in which current edge is clustered\n\n\n =========================================================================== */\nimport { deepExtend, forEach } from \"vis-util/esnext\";\nimport { v4 as randomUUID } from \"uuid\";\nimport NetworkUtil from \"../NetworkUtil\";\nimport Cluster from \"./components/nodes/Cluster\";\nimport Edge from \"./components/Edge\"; // Only needed for check on type!\nimport Node from \"./components/Node\"; // Only needed for check on type!\n\n/**\n * The clustering engine\n */\nclass ClusterEngine {\n /**\n * @param {object} body\n */\n constructor(body) {\n this.body = body;\n this.clusteredNodes = {}; // key: node id, value: { clusterId: , node: }\n this.clusteredEdges = {}; // key: edge id, value: restore information for given edge\n\n this.options = {};\n this.defaultOptions = {};\n Object.assign(this.options, this.defaultOptions);\n\n this.body.emitter.on(\"_resetData\", () => {\n this.clusteredNodes = {};\n this.clusteredEdges = {};\n });\n }\n\n /**\n *\n * @param {number} hubsize\n * @param {object} options\n */\n clusterByHubsize(hubsize, options) {\n if (hubsize === undefined) {\n hubsize = this._getHubSize();\n } else if (typeof hubsize === \"object\") {\n options = this._checkOptions(hubsize);\n hubsize = this._getHubSize();\n }\n\n const nodesToCluster = [];\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const node = this.body.nodes[this.body.nodeIndices[i]];\n if (node.edges.length >= hubsize) {\n nodesToCluster.push(node.id);\n }\n }\n\n for (let i = 0; i < nodesToCluster.length; i++) {\n this.clusterByConnection(nodesToCluster[i], options, true);\n }\n\n this.body.emitter.emit(\"_dataChanged\");\n }\n\n /**\n * loop over all nodes, check if they adhere to the condition and cluster if needed.\n *\n * @param {object} options\n * @param {boolean} [refreshData=true]\n */\n cluster(options = {}, refreshData = true) {\n if (options.joinCondition === undefined) {\n throw new Error(\n \"Cannot call clusterByNodeData without a joinCondition function in the options.\"\n );\n }\n\n // check if the options object is fine, append if needed\n options = this._checkOptions(options);\n\n const childNodesObj = {};\n const childEdgesObj = {};\n\n // collect the nodes that will be in the cluster\n forEach(this.body.nodes, (node, nodeId) => {\n if (node.options && options.joinCondition(node.options) === true) {\n childNodesObj[nodeId] = node;\n\n // collect the edges that will be in the cluster\n forEach(node.edges, (edge) => {\n if (this.clusteredEdges[edge.id] === undefined) {\n childEdgesObj[edge.id] = edge;\n }\n });\n }\n });\n\n this._cluster(childNodesObj, childEdgesObj, options, refreshData);\n }\n\n /**\n * Cluster all nodes in the network that have only X edges\n *\n * @param {number} edgeCount\n * @param {object} options\n * @param {boolean} [refreshData=true]\n */\n clusterByEdgeCount(edgeCount, options, refreshData = true) {\n options = this._checkOptions(options);\n const clusters = [];\n const usedNodes = {};\n let edge, edges, relevantEdgeCount;\n // collect the nodes that will be in the cluster\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const childNodesObj = {};\n const childEdgesObj = {};\n const nodeId = this.body.nodeIndices[i];\n const node = this.body.nodes[nodeId];\n\n // if this node is already used in another cluster this session, we do not have to re-evaluate it.\n if (usedNodes[nodeId] === undefined) {\n relevantEdgeCount = 0;\n edges = [];\n for (let j = 0; j < node.edges.length; j++) {\n edge = node.edges[j];\n if (this.clusteredEdges[edge.id] === undefined) {\n if (edge.toId !== edge.fromId) {\n relevantEdgeCount++;\n }\n edges.push(edge);\n }\n }\n\n // this node qualifies, we collect its neighbours to start the clustering process.\n if (relevantEdgeCount === edgeCount) {\n const checkJoinCondition = function (node) {\n if (\n options.joinCondition === undefined ||\n options.joinCondition === null\n ) {\n return true;\n }\n\n const clonedOptions = NetworkUtil.cloneOptions(node);\n return options.joinCondition(clonedOptions);\n };\n\n let gatheringSuccessful = true;\n for (let j = 0; j < edges.length; j++) {\n edge = edges[j];\n const childNodeId = this._getConnectedId(edge, nodeId);\n // add the nodes to the list by the join condition.\n if (checkJoinCondition(node)) {\n childEdgesObj[edge.id] = edge;\n childNodesObj[nodeId] = node;\n childNodesObj[childNodeId] = this.body.nodes[childNodeId];\n usedNodes[nodeId] = true;\n } else {\n // this node does not qualify after all.\n gatheringSuccessful = false;\n break;\n }\n }\n\n // add to the cluster queue\n if (\n Object.keys(childNodesObj).length > 0 &&\n Object.keys(childEdgesObj).length > 0 &&\n gatheringSuccessful === true\n ) {\n /**\n * Search for cluster data that contains any of the node id's\n *\n * @returns {boolean} true if no joinCondition, otherwise return value of joinCondition\n */\n const findClusterData = function () {\n for (let n = 0; n < clusters.length; ++n) {\n // Search for a cluster containing any of the node id's\n for (const m in childNodesObj) {\n if (clusters[n].nodes[m] !== undefined) {\n return clusters[n];\n }\n }\n }\n\n return undefined;\n };\n\n // If any of the found nodes is part of a cluster found in this method,\n // add the current values to that cluster\n const foundCluster = findClusterData();\n if (foundCluster !== undefined) {\n // Add nodes to found cluster if not present\n for (const m in childNodesObj) {\n if (foundCluster.nodes[m] === undefined) {\n foundCluster.nodes[m] = childNodesObj[m];\n }\n }\n\n // Add edges to found cluster, if not present\n for (const m in childEdgesObj) {\n if (foundCluster.edges[m] === undefined) {\n foundCluster.edges[m] = childEdgesObj[m];\n }\n }\n } else {\n // Create a new cluster group\n clusters.push({ nodes: childNodesObj, edges: childEdgesObj });\n }\n }\n }\n }\n }\n\n for (let i = 0; i < clusters.length; i++) {\n this._cluster(clusters[i].nodes, clusters[i].edges, options, false);\n }\n\n if (refreshData === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n * Cluster all nodes in the network that have only 1 edge\n *\n * @param {object} options\n * @param {boolean} [refreshData=true]\n */\n clusterOutliers(options, refreshData = true) {\n this.clusterByEdgeCount(1, options, refreshData);\n }\n\n /**\n * Cluster all nodes in the network that have only 2 edge\n *\n * @param {object} options\n * @param {boolean} [refreshData=true]\n */\n clusterBridges(options, refreshData = true) {\n this.clusterByEdgeCount(2, options, refreshData);\n }\n\n /**\n * suck all connected nodes of a node into the node.\n *\n * @param {Node.id} nodeId\n * @param {object} options\n * @param {boolean} [refreshData=true]\n */\n clusterByConnection(nodeId, options, refreshData = true) {\n // kill conditions\n if (nodeId === undefined) {\n throw new Error(\"No nodeId supplied to clusterByConnection!\");\n }\n if (this.body.nodes[nodeId] === undefined) {\n throw new Error(\n \"The nodeId given to clusterByConnection does not exist!\"\n );\n }\n\n const node = this.body.nodes[nodeId];\n options = this._checkOptions(options, node);\n if (options.clusterNodeProperties.x === undefined) {\n options.clusterNodeProperties.x = node.x;\n }\n if (options.clusterNodeProperties.y === undefined) {\n options.clusterNodeProperties.y = node.y;\n }\n if (options.clusterNodeProperties.fixed === undefined) {\n options.clusterNodeProperties.fixed = {};\n options.clusterNodeProperties.fixed.x = node.options.fixed.x;\n options.clusterNodeProperties.fixed.y = node.options.fixed.y;\n }\n\n const childNodesObj = {};\n const childEdgesObj = {};\n const parentNodeId = node.id;\n const parentClonedOptions = NetworkUtil.cloneOptions(node);\n childNodesObj[parentNodeId] = node;\n\n // collect the nodes that will be in the cluster\n for (let i = 0; i < node.edges.length; i++) {\n const edge = node.edges[i];\n if (this.clusteredEdges[edge.id] === undefined) {\n const childNodeId = this._getConnectedId(edge, parentNodeId);\n\n // if the child node is not in a cluster\n if (this.clusteredNodes[childNodeId] === undefined) {\n if (childNodeId !== parentNodeId) {\n if (options.joinCondition === undefined) {\n childEdgesObj[edge.id] = edge;\n childNodesObj[childNodeId] = this.body.nodes[childNodeId];\n } else {\n // clone the options and insert some additional parameters that could be interesting.\n const childClonedOptions = NetworkUtil.cloneOptions(\n this.body.nodes[childNodeId]\n );\n if (\n options.joinCondition(\n parentClonedOptions,\n childClonedOptions\n ) === true\n ) {\n childEdgesObj[edge.id] = edge;\n childNodesObj[childNodeId] = this.body.nodes[childNodeId];\n }\n }\n } else {\n // swallow the edge if it is self-referencing.\n childEdgesObj[edge.id] = edge;\n }\n }\n }\n }\n const childNodeIDs = Object.keys(childNodesObj).map(function (childNode) {\n return childNodesObj[childNode].id;\n });\n\n for (const childNodeKey in childNodesObj) {\n if (!Object.prototype.hasOwnProperty.call(childNodesObj, childNodeKey))\n continue;\n\n const childNode = childNodesObj[childNodeKey];\n for (let y = 0; y < childNode.edges.length; y++) {\n const childEdge = childNode.edges[y];\n if (\n childNodeIDs.indexOf(this._getConnectedId(childEdge, childNode.id)) >\n -1\n ) {\n childEdgesObj[childEdge.id] = childEdge;\n }\n }\n }\n this._cluster(childNodesObj, childEdgesObj, options, refreshData);\n }\n\n /**\n * This function creates the edges that will be attached to the cluster\n * It looks for edges that are connected to the nodes from the \"outside' of the cluster.\n *\n * @param {{Node.id: vis.Node}} childNodesObj\n * @param {{vis.Edge.id: vis.Edge}} childEdgesObj\n * @param {object} clusterNodeProperties\n * @param {object} clusterEdgeProperties\n * @private\n */\n _createClusterEdges(\n childNodesObj,\n childEdgesObj,\n clusterNodeProperties,\n clusterEdgeProperties\n ) {\n let edge, childNodeId, childNode, toId, fromId, otherNodeId;\n\n // loop over all child nodes and their edges to find edges going out of the cluster\n // these edges will be replaced by clusterEdges.\n const childKeys = Object.keys(childNodesObj);\n const createEdges = [];\n for (let i = 0; i < childKeys.length; i++) {\n childNodeId = childKeys[i];\n childNode = childNodesObj[childNodeId];\n\n // construct new edges from the cluster to others\n for (let j = 0; j < childNode.edges.length; j++) {\n edge = childNode.edges[j];\n // we only handle edges that are visible to the system, not the disabled ones from the clustering process.\n if (this.clusteredEdges[edge.id] === undefined) {\n // self-referencing edges will be added to the \"hidden\" list\n if (edge.toId == edge.fromId) {\n childEdgesObj[edge.id] = edge;\n } else {\n // set up the from and to.\n if (edge.toId == childNodeId) {\n // this is a double equals because ints and strings can be interchanged here.\n toId = clusterNodeProperties.id;\n fromId = edge.fromId;\n otherNodeId = fromId;\n } else {\n toId = edge.toId;\n fromId = clusterNodeProperties.id;\n otherNodeId = toId;\n }\n }\n\n // Only edges from the cluster outwards are being replaced.\n if (childNodesObj[otherNodeId] === undefined) {\n createEdges.push({ edge: edge, fromId: fromId, toId: toId });\n }\n }\n }\n }\n\n //\n // Here we actually create the replacement edges.\n //\n // We could not do this in the loop above as the creation process\n // would add an edge to the edges array we are iterating over.\n //\n // NOTE: a clustered edge can have multiple base edges!\n //\n const newEdges = [];\n\n /**\n * Find a cluster edge which matches the given created edge.\n *\n * @param {vis.Edge} createdEdge\n * @returns {vis.Edge}\n */\n const getNewEdge = function (createdEdge) {\n for (let j = 0; j < newEdges.length; j++) {\n const newEdge = newEdges[j];\n\n // We replace both to and from edges with a single cluster edge\n const matchToDirection =\n createdEdge.fromId === newEdge.fromId &&\n createdEdge.toId === newEdge.toId;\n const matchFromDirection =\n createdEdge.fromId === newEdge.toId &&\n createdEdge.toId === newEdge.fromId;\n\n if (matchToDirection || matchFromDirection) {\n return newEdge;\n }\n }\n\n return null;\n };\n\n for (let j = 0; j < createEdges.length; j++) {\n const createdEdge = createEdges[j];\n const edge = createdEdge.edge;\n let newEdge = getNewEdge(createdEdge);\n\n if (newEdge === null) {\n // Create a clustered edge for this connection\n newEdge = this._createClusteredEdge(\n createdEdge.fromId,\n createdEdge.toId,\n edge,\n clusterEdgeProperties\n );\n\n newEdges.push(newEdge);\n } else {\n newEdge.clusteringEdgeReplacingIds.push(edge.id);\n }\n\n // also reference the new edge in the old edge\n this.body.edges[edge.id].edgeReplacedById = newEdge.id;\n\n // hide the replaced edge\n this._backupEdgeOptions(edge);\n edge.setOptions({ physics: false });\n }\n }\n\n /**\n * This function checks the options that can be supplied to the different cluster functions\n * for certain fields and inserts defaults if needed\n *\n * @param {object} options\n * @returns {*}\n * @private\n */\n _checkOptions(options = {}) {\n if (options.clusterEdgeProperties === undefined) {\n options.clusterEdgeProperties = {};\n }\n if (options.clusterNodeProperties === undefined) {\n options.clusterNodeProperties = {};\n }\n\n return options;\n }\n\n /**\n *\n * @param {object} childNodesObj | object with node objects, id as keys, same as childNodes except it also contains a source node\n * @param {object} childEdgesObj | object with edge objects, id as keys\n * @param {Array} options | object with {clusterNodeProperties, clusterEdgeProperties, processProperties}\n * @param {boolean} refreshData | when true, do not wrap up\n * @private\n */\n _cluster(childNodesObj, childEdgesObj, options, refreshData = true) {\n // Remove nodes which are already clustered\n const tmpNodesToRemove = [];\n for (const nodeId in childNodesObj) {\n if (Object.prototype.hasOwnProperty.call(childNodesObj, nodeId)) {\n if (this.clusteredNodes[nodeId] !== undefined) {\n tmpNodesToRemove.push(nodeId);\n }\n }\n }\n\n for (let n = 0; n < tmpNodesToRemove.length; ++n) {\n delete childNodesObj[tmpNodesToRemove[n]];\n }\n\n // kill condition: no nodes don't bother\n if (Object.keys(childNodesObj).length == 0) {\n return;\n }\n\n // allow clusters of 1 if options allow\n if (\n Object.keys(childNodesObj).length == 1 &&\n options.clusterNodeProperties.allowSingleNodeCluster != true\n ) {\n return;\n }\n\n let clusterNodeProperties = deepExtend({}, options.clusterNodeProperties);\n\n // construct the clusterNodeProperties\n if (options.processProperties !== undefined) {\n // get the childNode options\n const childNodesOptions = [];\n for (const nodeId in childNodesObj) {\n if (Object.prototype.hasOwnProperty.call(childNodesObj, nodeId)) {\n const clonedOptions = NetworkUtil.cloneOptions(childNodesObj[nodeId]);\n childNodesOptions.push(clonedOptions);\n }\n }\n\n // get cluster properties based on childNodes\n const childEdgesOptions = [];\n for (const edgeId in childEdgesObj) {\n if (Object.prototype.hasOwnProperty.call(childEdgesObj, edgeId)) {\n // these cluster edges will be removed on creation of the cluster.\n if (edgeId.substr(0, 12) !== \"clusterEdge:\") {\n const clonedOptions = NetworkUtil.cloneOptions(\n childEdgesObj[edgeId],\n \"edge\"\n );\n childEdgesOptions.push(clonedOptions);\n }\n }\n }\n\n clusterNodeProperties = options.processProperties(\n clusterNodeProperties,\n childNodesOptions,\n childEdgesOptions\n );\n if (!clusterNodeProperties) {\n throw new Error(\n \"The processProperties function does not return properties!\"\n );\n }\n }\n\n // check if we have an unique id;\n if (clusterNodeProperties.id === undefined) {\n clusterNodeProperties.id = \"cluster:\" + randomUUID();\n }\n const clusterId = clusterNodeProperties.id;\n\n if (clusterNodeProperties.label === undefined) {\n clusterNodeProperties.label = \"cluster\";\n }\n\n // give the clusterNode a position if it does not have one.\n let pos = undefined;\n if (clusterNodeProperties.x === undefined) {\n pos = this._getClusterPosition(childNodesObj);\n clusterNodeProperties.x = pos.x;\n }\n if (clusterNodeProperties.y === undefined) {\n if (pos === undefined) {\n pos = this._getClusterPosition(childNodesObj);\n }\n clusterNodeProperties.y = pos.y;\n }\n\n // force the ID to remain the same\n clusterNodeProperties.id = clusterId;\n\n // create the cluster Node\n // Note that allowSingleNodeCluster, if present, is stored in the options as well\n const clusterNode = this.body.functions.createNode(\n clusterNodeProperties,\n Cluster\n );\n clusterNode.containedNodes = childNodesObj;\n clusterNode.containedEdges = childEdgesObj;\n // cache a copy from the cluster edge properties if we have to reconnect others later on\n clusterNode.clusterEdgeProperties = options.clusterEdgeProperties;\n\n // finally put the cluster node into global\n this.body.nodes[clusterNodeProperties.id] = clusterNode;\n\n this._clusterEdges(\n childNodesObj,\n childEdgesObj,\n clusterNodeProperties,\n options.clusterEdgeProperties\n );\n\n // set ID to undefined so no duplicates arise\n clusterNodeProperties.id = undefined;\n\n // wrap up\n if (refreshData === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n *\n * @param {Edge} edge\n * @private\n */\n _backupEdgeOptions(edge) {\n if (this.clusteredEdges[edge.id] === undefined) {\n this.clusteredEdges[edge.id] = { physics: edge.options.physics };\n }\n }\n\n /**\n *\n * @param {Edge} edge\n * @private\n */\n _restoreEdge(edge) {\n const originalOptions = this.clusteredEdges[edge.id];\n if (originalOptions !== undefined) {\n edge.setOptions({ physics: originalOptions.physics });\n delete this.clusteredEdges[edge.id];\n }\n }\n\n /**\n * Check if a node is a cluster.\n *\n * @param {Node.id} nodeId\n * @returns {*}\n */\n isCluster(nodeId) {\n if (this.body.nodes[nodeId] !== undefined) {\n return this.body.nodes[nodeId].isCluster === true;\n } else {\n console.error(\"Node does not exist.\");\n return false;\n }\n }\n\n /**\n * get the position of the cluster node based on what's inside\n *\n * @param {object} childNodesObj | object with node objects, id as keys\n * @returns {{x: number, y: number}}\n * @private\n */\n _getClusterPosition(childNodesObj) {\n const childKeys = Object.keys(childNodesObj);\n let minX = childNodesObj[childKeys[0]].x;\n let maxX = childNodesObj[childKeys[0]].x;\n let minY = childNodesObj[childKeys[0]].y;\n let maxY = childNodesObj[childKeys[0]].y;\n let node;\n for (let i = 1; i < childKeys.length; i++) {\n node = childNodesObj[childKeys[i]];\n minX = node.x < minX ? node.x : minX;\n maxX = node.x > maxX ? node.x : maxX;\n minY = node.y < minY ? node.y : minY;\n maxY = node.y > maxY ? node.y : maxY;\n }\n\n return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) };\n }\n\n /**\n * Open a cluster by calling this function.\n *\n * @param {vis.Edge.id} clusterNodeId | the ID of the cluster node\n * @param {object} options\n * @param {boolean} refreshData | wrap up afterwards if not true\n */\n openCluster(clusterNodeId, options, refreshData = true) {\n // kill conditions\n if (clusterNodeId === undefined) {\n throw new Error(\"No clusterNodeId supplied to openCluster.\");\n }\n\n const clusterNode = this.body.nodes[clusterNodeId];\n\n if (clusterNode === undefined) {\n throw new Error(\n \"The clusterNodeId supplied to openCluster does not exist.\"\n );\n }\n if (\n clusterNode.isCluster !== true ||\n clusterNode.containedNodes === undefined ||\n clusterNode.containedEdges === undefined\n ) {\n throw new Error(\"The node:\" + clusterNodeId + \" is not a valid cluster.\");\n }\n\n // Check if current cluster is clustered itself\n const stack = this.findNode(clusterNodeId);\n const parentIndex = stack.indexOf(clusterNodeId) - 1;\n if (parentIndex >= 0) {\n // Current cluster is clustered; transfer contained nodes and edges to parent\n const parentClusterNodeId = stack[parentIndex];\n const parentClusterNode = this.body.nodes[parentClusterNodeId];\n\n // clustering.clusteredNodes and clustering.clusteredEdges remain unchanged\n parentClusterNode._openChildCluster(clusterNodeId);\n\n // All components of child cluster node have been transferred. It can die now.\n delete this.body.nodes[clusterNodeId];\n if (refreshData === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n\n return;\n }\n\n // main body\n const containedNodes = clusterNode.containedNodes;\n const containedEdges = clusterNode.containedEdges;\n\n // allow the user to position the nodes after release.\n if (\n options !== undefined &&\n options.releaseFunction !== undefined &&\n typeof options.releaseFunction === \"function\"\n ) {\n const positions = {};\n const clusterPosition = { x: clusterNode.x, y: clusterNode.y };\n for (const nodeId in containedNodes) {\n if (Object.prototype.hasOwnProperty.call(containedNodes, nodeId)) {\n const containedNode = this.body.nodes[nodeId];\n positions[nodeId] = { x: containedNode.x, y: containedNode.y };\n }\n }\n const newPositions = options.releaseFunction(clusterPosition, positions);\n\n for (const nodeId in containedNodes) {\n if (Object.prototype.hasOwnProperty.call(containedNodes, nodeId)) {\n const containedNode = this.body.nodes[nodeId];\n if (newPositions[nodeId] !== undefined) {\n containedNode.x =\n newPositions[nodeId].x === undefined\n ? clusterNode.x\n : newPositions[nodeId].x;\n containedNode.y =\n newPositions[nodeId].y === undefined\n ? clusterNode.y\n : newPositions[nodeId].y;\n }\n }\n }\n } else {\n // copy the position from the cluster\n forEach(containedNodes, function (containedNode) {\n // inherit position\n if (containedNode.options.fixed.x === false) {\n containedNode.x = clusterNode.x;\n }\n if (containedNode.options.fixed.y === false) {\n containedNode.y = clusterNode.y;\n }\n });\n }\n\n // release nodes\n for (const nodeId in containedNodes) {\n if (Object.prototype.hasOwnProperty.call(containedNodes, nodeId)) {\n const containedNode = this.body.nodes[nodeId];\n\n // inherit speed\n containedNode.vx = clusterNode.vx;\n containedNode.vy = clusterNode.vy;\n\n containedNode.setOptions({ physics: true });\n\n delete this.clusteredNodes[nodeId];\n }\n }\n\n // copy the clusterNode edges because we cannot iterate over an object that we add or remove from.\n const edgesToBeDeleted = [];\n for (let i = 0; i < clusterNode.edges.length; i++) {\n edgesToBeDeleted.push(clusterNode.edges[i]);\n }\n\n // actually handling the deleting.\n for (let i = 0; i < edgesToBeDeleted.length; i++) {\n const edge = edgesToBeDeleted[i];\n const otherNodeId = this._getConnectedId(edge, clusterNodeId);\n const otherNode = this.clusteredNodes[otherNodeId];\n\n for (let j = 0; j < edge.clusteringEdgeReplacingIds.length; j++) {\n const transferId = edge.clusteringEdgeReplacingIds[j];\n const transferEdge = this.body.edges[transferId];\n if (transferEdge === undefined) continue;\n\n // if the other node is in another cluster, we transfer ownership of this edge to the other cluster\n if (otherNode !== undefined) {\n // transfer ownership:\n const otherCluster = this.body.nodes[otherNode.clusterId];\n otherCluster.containedEdges[transferEdge.id] = transferEdge;\n\n // delete local reference\n delete containedEdges[transferEdge.id];\n\n // get to and from\n let fromId = transferEdge.fromId;\n let toId = transferEdge.toId;\n if (transferEdge.toId == otherNodeId) {\n toId = otherNode.clusterId;\n } else {\n fromId = otherNode.clusterId;\n }\n\n // create new cluster edge from the otherCluster\n this._createClusteredEdge(\n fromId,\n toId,\n transferEdge,\n otherCluster.clusterEdgeProperties,\n { hidden: false, physics: true }\n );\n } else {\n this._restoreEdge(transferEdge);\n }\n }\n\n edge.remove();\n }\n\n // handle the releasing of the edges\n for (const edgeId in containedEdges) {\n if (Object.prototype.hasOwnProperty.call(containedEdges, edgeId)) {\n this._restoreEdge(containedEdges[edgeId]);\n }\n }\n\n // remove clusterNode\n delete this.body.nodes[clusterNodeId];\n\n if (refreshData === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n\n /**\n *\n * @param {Cluster.id} clusterId\n * @returns {Array.}\n */\n getNodesInCluster(clusterId) {\n const nodesArray = [];\n if (this.isCluster(clusterId) === true) {\n const containedNodes = this.body.nodes[clusterId].containedNodes;\n for (const nodeId in containedNodes) {\n if (Object.prototype.hasOwnProperty.call(containedNodes, nodeId)) {\n nodesArray.push(this.body.nodes[nodeId].id);\n }\n }\n }\n\n return nodesArray;\n }\n\n /**\n * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node\n *\n * If a node can't be found in the chain, return an empty array.\n *\n * @param {string|number} nodeId\n * @returns {Array}\n */\n findNode(nodeId) {\n const stack = [];\n const max = 100;\n let counter = 0;\n let node;\n\n while (this.clusteredNodes[nodeId] !== undefined && counter < max) {\n node = this.body.nodes[nodeId];\n if (node === undefined) return [];\n stack.push(node.id);\n\n nodeId = this.clusteredNodes[nodeId].clusterId;\n counter++;\n }\n\n node = this.body.nodes[nodeId];\n if (node === undefined) return [];\n stack.push(node.id);\n\n stack.reverse();\n return stack;\n }\n\n /**\n * Using a clustered nodeId, update with the new options\n *\n * @param {Node.id} clusteredNodeId\n * @param {object} newOptions\n */\n updateClusteredNode(clusteredNodeId, newOptions) {\n if (clusteredNodeId === undefined) {\n throw new Error(\"No clusteredNodeId supplied to updateClusteredNode.\");\n }\n if (newOptions === undefined) {\n throw new Error(\"No newOptions supplied to updateClusteredNode.\");\n }\n if (this.body.nodes[clusteredNodeId] === undefined) {\n throw new Error(\n \"The clusteredNodeId supplied to updateClusteredNode does not exist.\"\n );\n }\n\n this.body.nodes[clusteredNodeId].setOptions(newOptions);\n this.body.emitter.emit(\"_dataChanged\");\n }\n\n /**\n * Using a base edgeId, update all related clustered edges with the new options\n *\n * @param {vis.Edge.id} startEdgeId\n * @param {object} newOptions\n */\n updateEdge(startEdgeId, newOptions) {\n if (startEdgeId === undefined) {\n throw new Error(\"No startEdgeId supplied to updateEdge.\");\n }\n if (newOptions === undefined) {\n throw new Error(\"No newOptions supplied to updateEdge.\");\n }\n if (this.body.edges[startEdgeId] === undefined) {\n throw new Error(\"The startEdgeId supplied to updateEdge does not exist.\");\n }\n\n const allEdgeIds = this.getClusteredEdges(startEdgeId);\n for (let i = 0; i < allEdgeIds.length; i++) {\n const edge = this.body.edges[allEdgeIds[i]];\n edge.setOptions(newOptions);\n }\n this.body.emitter.emit(\"_dataChanged\");\n }\n\n /**\n * Get a stack of clusterEdgeId's (+base edgeid) that a base edge is the same as. cluster edge C -> cluster edge B -> cluster edge A -> base edge(edgeId)\n *\n * @param {vis.Edge.id} edgeId\n * @returns {Array.}\n */\n getClusteredEdges(edgeId) {\n const stack = [];\n const max = 100;\n let counter = 0;\n\n while (\n edgeId !== undefined &&\n this.body.edges[edgeId] !== undefined &&\n counter < max\n ) {\n stack.push(this.body.edges[edgeId].id);\n edgeId = this.body.edges[edgeId].edgeReplacedById;\n counter++;\n }\n stack.reverse();\n return stack;\n }\n\n /**\n * Get the base edge id of clusterEdgeId. cluster edge (clusteredEdgeId) -> cluster edge B -> cluster edge C -> base edge\n *\n * @param {vis.Edge.id} clusteredEdgeId\n * @returns {vis.Edge.id} baseEdgeId\n *\n * TODO: deprecate in 5.0.0. Method getBaseEdges() is the correct one to use.\n */\n getBaseEdge(clusteredEdgeId) {\n // Just kludge this by returning the first base edge id found\n return this.getBaseEdges(clusteredEdgeId)[0];\n }\n\n /**\n * Get all regular edges for this clustered edge id.\n *\n * @param {vis.Edge.id} clusteredEdgeId\n * @returns {Array.} all baseEdgeId's under this clustered edge\n */\n getBaseEdges(clusteredEdgeId) {\n const IdsToHandle = [clusteredEdgeId];\n const doneIds = [];\n const foundIds = [];\n const max = 100;\n let counter = 0;\n\n while (IdsToHandle.length > 0 && counter < max) {\n const nextId = IdsToHandle.pop();\n if (nextId === undefined) continue; // Paranoia here and onwards\n const nextEdge = this.body.edges[nextId];\n if (nextEdge === undefined) continue;\n counter++;\n\n const replacingIds = nextEdge.clusteringEdgeReplacingIds;\n if (replacingIds === undefined) {\n // nextId is a base id\n foundIds.push(nextId);\n } else {\n // Another cluster edge, unravel this one as well\n for (let i = 0; i < replacingIds.length; ++i) {\n const replacingId = replacingIds[i];\n\n // Don't add if already handled\n // TODO: never triggers; find a test-case which does\n if (\n IdsToHandle.indexOf(replacingIds) !== -1 ||\n doneIds.indexOf(replacingIds) !== -1\n ) {\n continue;\n }\n\n IdsToHandle.push(replacingId);\n }\n }\n\n doneIds.push(nextId);\n }\n\n return foundIds;\n }\n\n /**\n * Get the Id the node is connected to\n *\n * @param {vis.Edge} edge\n * @param {Node.id} nodeId\n * @returns {*}\n * @private\n */\n _getConnectedId(edge, nodeId) {\n if (edge.toId != nodeId) {\n return edge.toId;\n } else if (edge.fromId != nodeId) {\n return edge.fromId;\n } else {\n return edge.fromId;\n }\n }\n\n /**\n * We determine how many connections denote an important hub.\n * We take the mean + 2*std as the important hub size. (Assuming a normal distribution of data, ~2.2%)\n *\n * @returns {number}\n * @private\n */\n _getHubSize() {\n let average = 0;\n let averageSquared = 0;\n let hubCounter = 0;\n let largestHub = 0;\n\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const node = this.body.nodes[this.body.nodeIndices[i]];\n if (node.edges.length > largestHub) {\n largestHub = node.edges.length;\n }\n average += node.edges.length;\n averageSquared += Math.pow(node.edges.length, 2);\n hubCounter += 1;\n }\n average = average / hubCounter;\n averageSquared = averageSquared / hubCounter;\n\n const variance = averageSquared - Math.pow(average, 2);\n const standardDeviation = Math.sqrt(variance);\n\n let hubThreshold = Math.floor(average + 2 * standardDeviation);\n\n // always have at least one to cluster\n if (hubThreshold > largestHub) {\n hubThreshold = largestHub;\n }\n\n return hubThreshold;\n }\n\n /**\n * Create an edge for the cluster representation.\n *\n * @param {Node.id} fromId\n * @param {Node.id} toId\n * @param {vis.Edge} baseEdge\n * @param {object} clusterEdgeProperties\n * @param {object} extraOptions\n * @returns {Edge} newly created clustered edge\n * @private\n */\n _createClusteredEdge(\n fromId,\n toId,\n baseEdge,\n clusterEdgeProperties,\n extraOptions\n ) {\n // copy the options of the edge we will replace\n const clonedOptions = NetworkUtil.cloneOptions(baseEdge, \"edge\");\n // make sure the properties of clusterEdges are superimposed on it\n deepExtend(clonedOptions, clusterEdgeProperties);\n\n // set up the edge\n clonedOptions.from = fromId;\n clonedOptions.to = toId;\n clonedOptions.id = \"clusterEdge:\" + randomUUID();\n\n // apply the edge specific options to it if specified\n if (extraOptions !== undefined) {\n deepExtend(clonedOptions, extraOptions);\n }\n\n const newEdge = this.body.functions.createEdge(clonedOptions);\n newEdge.clusteringEdgeReplacingIds = [baseEdge.id];\n newEdge.connect();\n\n // Register the new edge\n this.body.edges[newEdge.id] = newEdge;\n\n return newEdge;\n }\n\n /**\n * Add the passed child nodes and edges to the given cluster node.\n *\n * @param {object | Node} childNodes hash of nodes or single node to add in cluster\n * @param {object | Edge} childEdges hash of edges or single edge to take into account when clustering\n * @param {Node} clusterNode cluster node to add nodes and edges to\n * @param {object} [clusterEdgeProperties]\n * @private\n */\n _clusterEdges(childNodes, childEdges, clusterNode, clusterEdgeProperties) {\n if (childEdges instanceof Edge) {\n const edge = childEdges;\n const obj = {};\n obj[edge.id] = edge;\n childEdges = obj;\n }\n\n if (childNodes instanceof Node) {\n const node = childNodes;\n const obj = {};\n obj[node.id] = node;\n childNodes = obj;\n }\n\n if (clusterNode === undefined || clusterNode === null) {\n throw new Error(\"_clusterEdges: parameter clusterNode required\");\n }\n\n if (clusterEdgeProperties === undefined) {\n // Take the required properties from the cluster node\n clusterEdgeProperties = clusterNode.clusterEdgeProperties;\n }\n\n // create the new edges that will connect to the cluster.\n // All self-referencing edges will be added to childEdges here.\n this._createClusterEdges(\n childNodes,\n childEdges,\n clusterNode,\n clusterEdgeProperties\n );\n\n // disable the childEdges\n for (const edgeId in childEdges) {\n if (Object.prototype.hasOwnProperty.call(childEdges, edgeId)) {\n if (this.body.edges[edgeId] !== undefined) {\n const edge = this.body.edges[edgeId];\n // cache the options before changing\n this._backupEdgeOptions(edge);\n // disable physics and hide the edge\n edge.setOptions({ physics: false });\n }\n }\n }\n\n // disable the childNodes\n for (const nodeId in childNodes) {\n if (Object.prototype.hasOwnProperty.call(childNodes, nodeId)) {\n this.clusteredNodes[nodeId] = {\n clusterId: clusterNode.id,\n node: this.body.nodes[nodeId],\n };\n this.body.nodes[nodeId].setOptions({ physics: false });\n }\n }\n }\n\n /**\n * Determine in which cluster given nodeId resides.\n *\n * If not in cluster, return undefined.\n *\n * NOTE: If you know a cleaner way to do this, please enlighten me (wimrijnders).\n *\n * @param {Node.id} nodeId\n * @returns {Node|undefined} Node instance for cluster, if present\n * @private\n */\n _getClusterNodeForNode(nodeId) {\n if (nodeId === undefined) return undefined;\n const clusteredNode = this.clusteredNodes[nodeId];\n\n // NOTE: If no cluster info found, it should actually be an error\n if (clusteredNode === undefined) return undefined;\n const clusterId = clusteredNode.clusterId;\n if (clusterId === undefined) return undefined;\n\n return this.body.nodes[clusterId];\n }\n\n /**\n * Internal helper function for conditionally removing items in array\n *\n * Done like this because Array.filter() is not fully supported by all IE's.\n *\n * @param {Array} arr\n * @param {Function} callback\n * @returns {Array}\n * @private\n */\n _filter(arr, callback) {\n const ret = [];\n\n forEach(arr, (item) => {\n if (callback(item)) {\n ret.push(item);\n }\n });\n\n return ret;\n }\n\n /**\n * Scan all edges for changes in clustering and adjust this if necessary.\n *\n * Call this (internally) after there has been a change in node or edge data.\n *\n * Pre: States of this.body.nodes and this.body.edges consistent\n * Pre: this.clusteredNodes and this.clusteredEdge consistent with containedNodes and containedEdges\n * of cluster nodes.\n */\n _updateState() {\n let nodeId;\n const deletedNodeIds = [];\n const deletedEdgeIds = {};\n\n /**\n * Utility function to iterate over clustering nodes only\n *\n * @param {Function} callback function to call for each cluster node\n */\n const eachClusterNode = (callback) => {\n forEach(this.body.nodes, (node) => {\n if (node.isCluster === true) {\n callback(node);\n }\n });\n };\n\n //\n // Remove deleted regular nodes from clustering\n //\n\n // Determine the deleted nodes\n for (nodeId in this.clusteredNodes) {\n if (!Object.prototype.hasOwnProperty.call(this.clusteredNodes, nodeId))\n continue;\n const node = this.body.nodes[nodeId];\n\n if (node === undefined) {\n deletedNodeIds.push(nodeId);\n }\n }\n\n // Remove nodes from cluster nodes\n eachClusterNode(function (clusterNode) {\n for (let n = 0; n < deletedNodeIds.length; n++) {\n delete clusterNode.containedNodes[deletedNodeIds[n]];\n }\n });\n\n // Remove nodes from cluster list\n for (let n = 0; n < deletedNodeIds.length; n++) {\n delete this.clusteredNodes[deletedNodeIds[n]];\n }\n\n //\n // Remove deleted edges from clustering\n //\n\n // Add the deleted clustered edges to the list\n forEach(this.clusteredEdges, (edgeId) => {\n const edge = this.body.edges[edgeId];\n if (edge === undefined || !edge.endPointsValid()) {\n deletedEdgeIds[edgeId] = edgeId;\n }\n });\n\n // Cluster nodes can also contain edges which are not clustered,\n // i.e. nodes 1-2 within cluster with an edge in between.\n // So the cluster nodes also need to be scanned for invalid edges\n eachClusterNode(function (clusterNode) {\n forEach(clusterNode.containedEdges, (edge, edgeId) => {\n if (!edge.endPointsValid() && !deletedEdgeIds[edgeId]) {\n deletedEdgeIds[edgeId] = edgeId;\n }\n });\n });\n\n // Also scan for cluster edges which need to be removed in the active list.\n // Regular edges have been removed beforehand, so this only picks up the cluster edges.\n forEach(this.body.edges, (edge, edgeId) => {\n // Explicitly scan the contained edges for validity\n let isValid = true;\n const replacedIds = edge.clusteringEdgeReplacingIds;\n if (replacedIds !== undefined) {\n let numValid = 0;\n\n forEach(replacedIds, (containedEdgeId) => {\n const containedEdge = this.body.edges[containedEdgeId];\n\n if (containedEdge !== undefined && containedEdge.endPointsValid()) {\n numValid += 1;\n }\n });\n\n isValid = numValid > 0;\n }\n\n if (!edge.endPointsValid() || !isValid) {\n deletedEdgeIds[edgeId] = edgeId;\n }\n });\n\n // Remove edges from cluster nodes\n eachClusterNode((clusterNode) => {\n forEach(deletedEdgeIds, (deletedEdgeId) => {\n delete clusterNode.containedEdges[deletedEdgeId];\n\n forEach(clusterNode.edges, (edge, m) => {\n if (edge.id === deletedEdgeId) {\n clusterNode.edges[m] = null; // Don't want to directly delete here, because in the loop\n return;\n }\n\n edge.clusteringEdgeReplacingIds = this._filter(\n edge.clusteringEdgeReplacingIds,\n function (id) {\n return !deletedEdgeIds[id];\n }\n );\n });\n\n // Clean up the nulls\n clusterNode.edges = this._filter(clusterNode.edges, function (item) {\n return item !== null;\n });\n });\n });\n\n // Remove from cluster list\n forEach(deletedEdgeIds, (edgeId) => {\n delete this.clusteredEdges[edgeId];\n });\n\n // Remove cluster edges from active list (this.body.edges).\n // deletedEdgeIds still contains id of regular edges, but these should all\n // be gone when you reach here.\n forEach(deletedEdgeIds, (edgeId) => {\n delete this.body.edges[edgeId];\n });\n\n //\n // Check changed cluster state of edges\n //\n\n // Iterating over keys here, because edges may be removed in the loop\n const ids = Object.keys(this.body.edges);\n forEach(ids, (edgeId) => {\n const edge = this.body.edges[edgeId];\n\n const shouldBeClustered =\n this._isClusteredNode(edge.fromId) || this._isClusteredNode(edge.toId);\n if (shouldBeClustered === this._isClusteredEdge(edge.id)) {\n return; // all is well\n }\n\n if (shouldBeClustered) {\n // add edge to clustering\n const clusterFrom = this._getClusterNodeForNode(edge.fromId);\n if (clusterFrom !== undefined) {\n this._clusterEdges(this.body.nodes[edge.fromId], edge, clusterFrom);\n }\n\n const clusterTo = this._getClusterNodeForNode(edge.toId);\n if (clusterTo !== undefined) {\n this._clusterEdges(this.body.nodes[edge.toId], edge, clusterTo);\n }\n\n // TODO: check that it works for both edges clustered\n // (This might be paranoia)\n } else {\n delete this._clusterEdges[edgeId];\n this._restoreEdge(edge);\n // This should not be happening, the state should\n // be properly updated at this point.\n //\n // If it *is* reached during normal operation, then we have to implement\n // undo clustering for this edge here.\n // throw new Error('remove edge from clustering not implemented!')\n }\n });\n\n // Clusters may be nested to any level. Keep on opening until nothing to open\n let changed = false;\n let continueLoop = true;\n while (continueLoop) {\n const clustersToOpen = [];\n\n // Determine the id's of clusters that need opening\n eachClusterNode(function (clusterNode) {\n const numNodes = Object.keys(clusterNode.containedNodes).length;\n const allowSingle = clusterNode.options.allowSingleNodeCluster === true;\n if ((allowSingle && numNodes < 1) || (!allowSingle && numNodes < 2)) {\n clustersToOpen.push(clusterNode.id);\n }\n });\n\n // Open them\n for (let n = 0; n < clustersToOpen.length; ++n) {\n this.openCluster(\n clustersToOpen[n],\n {},\n false /* Don't refresh, we're in an refresh/update already */\n );\n }\n\n continueLoop = clustersToOpen.length > 0;\n changed = changed || continueLoop;\n }\n\n if (changed) {\n this._updateState(); // Redo this method (recursion possible! should be safe)\n }\n }\n\n /**\n * Determine if node with given id is part of a cluster.\n *\n * @param {Node.id} nodeId\n * @returns {boolean} true if part of a cluster.\n */\n _isClusteredNode(nodeId) {\n return this.clusteredNodes[nodeId] !== undefined;\n }\n\n /**\n * Determine if edge with given id is not visible due to clustering.\n *\n * An edge is considered clustered if:\n * - it is directly replaced by a clustering edge\n * - any of its connecting nodes is in a cluster\n *\n * @param {vis.Edge.id} edgeId\n * @returns {boolean} true if part of a cluster.\n */\n _isClusteredEdge(edgeId) {\n return this.clusteredEdges[edgeId] !== undefined;\n }\n}\n\nexport default ClusterEngine;\n","import { selectiveDeepExtend } from \"vis-util/esnext\";\n\n/**\n * Initializes window.requestAnimationFrame() to a usable form.\n *\n * Specifically, set up this method for the case of running on node.js with jsdom enabled.\n *\n * NOTES:\n *\n * On node.js, when calling this directly outside of this class, `window` is not defined.\n * This happens even if jsdom is used.\n * For node.js + jsdom, `window` is available at the moment the constructor is called.\n * For this reason, the called is placed within the constructor.\n * Even then, `window.requestAnimationFrame()` is not defined, so it still needs to be added.\n * During unit testing, it happens that the window object is reset during execution, causing\n * a runtime error due to missing `requestAnimationFrame()`. This needs to be compensated for,\n * see `_requestNextFrame()`.\n * Since this is a global object, it may affect other modules besides `Network`. With normal\n * usage, this does not cause any problems. During unit testing, errors may occur. These have\n * been compensated for, see comment block in _requestNextFrame().\n *\n * @private\n */\nfunction _initRequestAnimationFrame() {\n let func;\n\n if (window !== undefined) {\n func =\n window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.msRequestAnimationFrame;\n }\n\n if (func === undefined) {\n // window or method not present, setting mock requestAnimationFrame\n window.requestAnimationFrame = function (callback) {\n //console.log(\"Called mock requestAnimationFrame\");\n callback();\n };\n } else {\n window.requestAnimationFrame = func;\n }\n}\n\n/**\n * The canvas renderer\n */\nclass CanvasRenderer {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n */\n constructor(body, canvas) {\n _initRequestAnimationFrame();\n this.body = body;\n this.canvas = canvas;\n\n this.redrawRequested = false;\n this.renderTimer = undefined;\n this.requiresTimeout = true;\n this.renderingActive = false;\n this.renderRequests = 0;\n this.allowRedraw = true;\n\n this.dragging = false;\n this.zooming = false;\n this.options = {};\n this.defaultOptions = {\n hideEdgesOnDrag: false,\n hideEdgesOnZoom: false,\n hideNodesOnDrag: false,\n };\n Object.assign(this.options, this.defaultOptions);\n\n this._determineBrowserMethod();\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n this.body.emitter.on(\"dragStart\", () => {\n this.dragging = true;\n });\n this.body.emitter.on(\"dragEnd\", () => {\n this.dragging = false;\n });\n this.body.emitter.on(\"zoom\", () => {\n this.zooming = true;\n window.clearTimeout(this.zoomTimeoutId);\n this.zoomTimeoutId = window.setTimeout(() => {\n this.zooming = false;\n this._requestRedraw.bind(this)();\n }, 250);\n });\n this.body.emitter.on(\"_resizeNodes\", () => {\n this._resizeNodes();\n });\n this.body.emitter.on(\"_redraw\", () => {\n if (this.renderingActive === false) {\n this._redraw();\n }\n });\n this.body.emitter.on(\"_blockRedraw\", () => {\n this.allowRedraw = false;\n });\n this.body.emitter.on(\"_allowRedraw\", () => {\n this.allowRedraw = true;\n this.redrawRequested = false;\n });\n this.body.emitter.on(\"_requestRedraw\", this._requestRedraw.bind(this));\n this.body.emitter.on(\"_startRendering\", () => {\n this.renderRequests += 1;\n this.renderingActive = true;\n this._startRendering();\n });\n this.body.emitter.on(\"_stopRendering\", () => {\n this.renderRequests -= 1;\n this.renderingActive = this.renderRequests > 0;\n this.renderTimer = undefined;\n });\n this.body.emitter.on(\"destroy\", () => {\n this.renderRequests = 0;\n this.allowRedraw = false;\n this.renderingActive = false;\n if (this.requiresTimeout === true) {\n clearTimeout(this.renderTimer);\n } else {\n window.cancelAnimationFrame(this.renderTimer);\n }\n this.body.emitter.off();\n });\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n const fields = [\"hideEdgesOnDrag\", \"hideEdgesOnZoom\", \"hideNodesOnDrag\"];\n selectiveDeepExtend(fields, this.options, options);\n }\n }\n\n /**\n * Prepare the drawing of the next frame.\n *\n * Calls the callback when the next frame can or will be drawn.\n *\n * @param {Function} callback\n * @param {number} delay - timeout case only, wait this number of milliseconds\n * @returns {Function | undefined}\n * @private\n */\n _requestNextFrame(callback, delay) {\n // During unit testing, it happens that the mock window object is reset while\n // the next frame is still pending. Then, either 'window' is not present, or\n // 'requestAnimationFrame()' is not present because it is not defined on the\n // mock window object.\n //\n // As a consequence, unrelated unit tests may appear to fail, even if the problem\n // described happens in the current unit test.\n //\n // This is not something that will happen in normal operation, but we still need\n // to take it into account.\n //\n if (typeof window === \"undefined\") return; // Doing `if (window === undefined)` does not work here!\n\n let timer;\n\n const myWindow = window; // Grab a reference to reduce the possibility that 'window' is reset\n // while running this method.\n\n if (this.requiresTimeout === true) {\n // wait given number of milliseconds and perform the animation step function\n timer = myWindow.setTimeout(callback, delay);\n } else {\n if (myWindow.requestAnimationFrame) {\n timer = myWindow.requestAnimationFrame(callback);\n }\n }\n\n return timer;\n }\n\n /**\n *\n * @private\n */\n _startRendering() {\n if (this.renderingActive === true) {\n if (this.renderTimer === undefined) {\n this.renderTimer = this._requestNextFrame(\n this._renderStep.bind(this),\n this.simulationInterval\n );\n }\n }\n }\n\n /**\n *\n * @private\n */\n _renderStep() {\n if (this.renderingActive === true) {\n // reset the renderTimer so a new scheduled animation step can be set\n this.renderTimer = undefined;\n\n if (this.requiresTimeout === true) {\n // this schedules a new simulation step\n this._startRendering();\n }\n\n this._redraw();\n\n if (this.requiresTimeout === false) {\n // this schedules a new simulation step\n this._startRendering();\n }\n }\n }\n\n /**\n * Redraw the network with the current data\n * chart will be resized too.\n */\n redraw() {\n this.body.emitter.emit(\"setSize\");\n this._redraw();\n }\n\n /**\n * Redraw the network with the current data\n *\n * @private\n */\n _requestRedraw() {\n if (\n this.redrawRequested !== true &&\n this.renderingActive === false &&\n this.allowRedraw === true\n ) {\n this.redrawRequested = true;\n this._requestNextFrame(() => {\n this._redraw(false);\n }, 0);\n }\n }\n\n /**\n * Redraw the network with the current data\n *\n * @param {boolean} [hidden=false] | Used to get the first estimate of the node sizes.\n * Only the nodes are drawn after which they are quickly drawn over.\n * @private\n */\n _redraw(hidden = false) {\n if (this.allowRedraw === true) {\n this.body.emitter.emit(\"initRedraw\");\n\n this.redrawRequested = false;\n\n const drawLater = {\n drawExternalLabels: null,\n };\n\n // when the container div was hidden, this fixes it back up!\n if (\n this.canvas.frame.canvas.width === 0 ||\n this.canvas.frame.canvas.height === 0\n ) {\n this.canvas.setSize();\n }\n\n this.canvas.setTransform();\n\n const ctx = this.canvas.getContext();\n\n // clear the canvas\n const w = this.canvas.frame.canvas.clientWidth;\n const h = this.canvas.frame.canvas.clientHeight;\n ctx.clearRect(0, 0, w, h);\n\n // if the div is hidden, we stop the redraw here for performance.\n if (this.canvas.frame.clientWidth === 0) {\n return;\n }\n\n // set scaling and translation\n ctx.save();\n ctx.translate(this.body.view.translation.x, this.body.view.translation.y);\n ctx.scale(this.body.view.scale, this.body.view.scale);\n\n ctx.beginPath();\n this.body.emitter.emit(\"beforeDrawing\", ctx);\n ctx.closePath();\n\n if (hidden === false) {\n if (\n (this.dragging === false ||\n (this.dragging === true &&\n this.options.hideEdgesOnDrag === false)) &&\n (this.zooming === false ||\n (this.zooming === true && this.options.hideEdgesOnZoom === false))\n ) {\n this._drawEdges(ctx);\n }\n }\n\n if (\n this.dragging === false ||\n (this.dragging === true && this.options.hideNodesOnDrag === false)\n ) {\n const { drawExternalLabels } = this._drawNodes(ctx, hidden);\n drawLater.drawExternalLabels = drawExternalLabels;\n }\n\n // draw the arrows last so they will be at the top\n if (hidden === false) {\n if (\n (this.dragging === false ||\n (this.dragging === true &&\n this.options.hideEdgesOnDrag === false)) &&\n (this.zooming === false ||\n (this.zooming === true && this.options.hideEdgesOnZoom === false))\n ) {\n this._drawArrows(ctx);\n }\n }\n\n if (drawLater.drawExternalLabels != null) {\n drawLater.drawExternalLabels();\n }\n\n if (hidden === false) {\n this._drawSelectionBox(ctx);\n }\n\n ctx.beginPath();\n this.body.emitter.emit(\"afterDrawing\", ctx);\n ctx.closePath();\n\n // restore original scaling and translation\n ctx.restore();\n if (hidden === true) {\n ctx.clearRect(0, 0, w, h);\n }\n }\n }\n\n /**\n * Redraw all nodes\n *\n * @param {CanvasRenderingContext2D} ctx\n * @param {boolean} [alwaysShow]\n * @private\n */\n _resizeNodes() {\n this.canvas.setTransform();\n const ctx = this.canvas.getContext();\n ctx.save();\n ctx.translate(this.body.view.translation.x, this.body.view.translation.y);\n ctx.scale(this.body.view.scale, this.body.view.scale);\n\n const nodes = this.body.nodes;\n let node;\n\n // resize all nodes\n for (const nodeId in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, nodeId)) {\n node = nodes[nodeId];\n node.resize(ctx);\n node.updateBoundingBox(ctx, node.selected);\n }\n }\n\n // restore original scaling and translation\n ctx.restore();\n }\n\n /**\n * Redraw all nodes\n *\n * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas\n * @param {boolean} [alwaysShow]\n * @private\n * @returns {object} Callbacks to draw later on higher layers.\n */\n _drawNodes(ctx, alwaysShow = false) {\n const nodes = this.body.nodes;\n const nodeIndices = this.body.nodeIndices;\n let node;\n const selected = [];\n const hovered = [];\n const margin = 20;\n const topLeft = this.canvas.DOMtoCanvas({ x: -margin, y: -margin });\n const bottomRight = this.canvas.DOMtoCanvas({\n x: this.canvas.frame.canvas.clientWidth + margin,\n y: this.canvas.frame.canvas.clientHeight + margin,\n });\n const viewableArea = {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n\n const drawExternalLabels = [];\n\n // draw unselected nodes;\n for (let i = 0; i < nodeIndices.length; i++) {\n node = nodes[nodeIndices[i]];\n // set selected and hovered nodes aside\n if (node.hover) {\n hovered.push(nodeIndices[i]);\n } else if (node.isSelected()) {\n selected.push(nodeIndices[i]);\n } else {\n if (alwaysShow === true) {\n const drawLater = node.draw(ctx);\n if (drawLater.drawExternalLabel != null) {\n drawExternalLabels.push(drawLater.drawExternalLabel);\n }\n } else if (node.isBoundingBoxOverlappingWith(viewableArea) === true) {\n const drawLater = node.draw(ctx);\n if (drawLater.drawExternalLabel != null) {\n drawExternalLabels.push(drawLater.drawExternalLabel);\n }\n } else {\n node.updateBoundingBox(ctx, node.selected);\n }\n }\n }\n\n let i;\n const selectedLength = selected.length;\n const hoveredLength = hovered.length;\n\n // draw the selected nodes on top\n for (i = 0; i < selectedLength; i++) {\n node = nodes[selected[i]];\n const drawLater = node.draw(ctx);\n if (drawLater.drawExternalLabel != null) {\n drawExternalLabels.push(drawLater.drawExternalLabel);\n }\n }\n\n // draw hovered nodes above everything else: fixes https://github.com/visjs/vis-network/issues/226\n for (i = 0; i < hoveredLength; i++) {\n node = nodes[hovered[i]];\n const drawLater = node.draw(ctx);\n if (drawLater.drawExternalLabel != null) {\n drawExternalLabels.push(drawLater.drawExternalLabel);\n }\n }\n\n return {\n drawExternalLabels: () => {\n for (const draw of drawExternalLabels) {\n draw();\n }\n },\n };\n }\n\n /**\n * Redraw all edges\n *\n * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas\n * @private\n */\n _drawEdges(ctx) {\n const edges = this.body.edges;\n const edgeIndices = this.body.edgeIndices;\n\n for (let i = 0; i < edgeIndices.length; i++) {\n const edge = edges[edgeIndices[i]];\n if (edge.connected === true) {\n edge.draw(ctx);\n }\n }\n }\n\n /**\n * Redraw all arrows\n *\n * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas\n * @private\n */\n _drawArrows(ctx) {\n const edges = this.body.edges;\n const edgeIndices = this.body.edgeIndices;\n\n for (let i = 0; i < edgeIndices.length; i++) {\n const edge = edges[edgeIndices[i]];\n if (edge.connected === true) {\n edge.drawArrows(ctx);\n }\n }\n }\n\n /**\n * Determine if the browser requires a setTimeout or a requestAnimationFrame. This was required because\n * some implementations (safari and IE9) did not support requestAnimationFrame\n *\n * @private\n */\n _determineBrowserMethod() {\n if (typeof window !== \"undefined\") {\n const browserType = navigator.userAgent.toLowerCase();\n this.requiresTimeout = false;\n if (browserType.indexOf(\"msie 9.0\") != -1) {\n // IE 9\n this.requiresTimeout = true;\n } else if (browserType.indexOf(\"safari\") != -1) {\n // safari\n if (browserType.indexOf(\"chrome\") <= -1) {\n this.requiresTimeout = true;\n }\n }\n } else {\n this.requiresTimeout = true;\n }\n }\n\n /**\n * Redraw selection box\n *\n * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas\n * @private\n */\n _drawSelectionBox(ctx) {\n if (this.body.selectionBox.show) {\n ctx.beginPath();\n const width =\n this.body.selectionBox.position.end.x -\n this.body.selectionBox.position.start.x;\n const height =\n this.body.selectionBox.position.end.y -\n this.body.selectionBox.position.start.y;\n ctx.rect(\n this.body.selectionBox.position.start.x,\n this.body.selectionBox.position.start.y,\n width,\n height\n );\n ctx.fillStyle = \"rgba(151, 194, 252, 0.2)\";\n ctx.fillRect(\n this.body.selectionBox.position.start.x,\n this.body.selectionBox.position.start.y,\n width,\n height\n );\n ctx.strokeStyle = \"rgba(151, 194, 252, 1)\";\n ctx.stroke();\n } else {\n ctx.closePath();\n }\n }\n}\n\nexport default CanvasRenderer;\n","'use strict';\nrequire('../modules/web.timers');\nvar path = require('../internals/path');\n\nmodule.exports = path.setInterval;\n","/**\n * Register a touch event, taking place before a gesture\n *\n * @param {Hammer} hammer A hammer instance\n * @param {Function} callback Callback, called as callback(event)\n */\nexport function onTouch(hammer, callback) {\n callback.inputHandler = function (event) {\n if (event.isFirst) {\n callback(event);\n }\n };\n\n hammer.on(\"hammer.input\", callback.inputHandler);\n}\n\n/**\n * Register a release event, taking place after a gesture\n *\n * @param {Hammer} hammer A hammer instance\n * @param {Function} callback Callback, called as callback(event)\n * @returns {*}\n */\nexport function onRelease(hammer, callback) {\n callback.inputHandler = function (event) {\n if (event.isFinal) {\n callback(event);\n }\n };\n\n return hammer.on(\"hammer.input\", callback.inputHandler);\n}\n\n/**\n * Unregister a touch event, taking place before a gesture\n *\n * @param {Hammer} hammer A hammer instance\n * @param {Function} callback Callback, called as callback(event)\n */\nexport function offTouch(hammer, callback) {\n hammer.off(\"hammer.input\", callback.inputHandler);\n}\n\n/**\n * Unregister a release event, taking place before a gesture\n *\n * @param {Hammer} hammer A hammer instance\n * @param {Function} callback Callback, called as callback(event)\n */\nexport const offRelease = offTouch;\n\n/**\n * Hack the PinchRecognizer such that it doesn't prevent default behavior\n * for vertical panning.\n *\n * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932\n *\n * @param {Hammer.Pinch} pinchRecognizer\n * @returns {Hammer.Pinch} returns the pinchRecognizer\n */\nexport function disablePreventDefaultVertically(pinchRecognizer) {\n const TOUCH_ACTION_PAN_Y = \"pan-y\";\n\n pinchRecognizer.getTouchAction = function () {\n // default method returns [TOUCH_ACTION_NONE]\n return [TOUCH_ACTION_PAN_Y];\n };\n\n return pinchRecognizer;\n}\n","import { onRelease, onTouch } from \"../../hammerUtil\";\n\nimport { Hammer, selectiveDeepExtend } from \"vis-util/esnext\";\n\n/**\n * Create the main frame for the Network.\n * This function is executed once when a Network object is created. The frame\n * contains a canvas, and this canvas contains all objects like the axis and\n * nodes.\n */\nclass Canvas {\n /**\n * @param {object} body\n */\n constructor(body) {\n this.body = body;\n this.pixelRatio = 1;\n this.cameraState = {};\n this.initialized = false;\n this.canvasViewCenter = {};\n this._cleanupCallbacks = [];\n\n this.options = {};\n this.defaultOptions = {\n autoResize: true,\n height: \"100%\",\n width: \"100%\",\n };\n Object.assign(this.options, this.defaultOptions);\n\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n // bind the events\n this.body.emitter.once(\"resize\", (obj) => {\n if (obj.width !== 0) {\n this.body.view.translation.x = obj.width * 0.5;\n }\n if (obj.height !== 0) {\n this.body.view.translation.y = obj.height * 0.5;\n }\n });\n this.body.emitter.on(\"setSize\", this.setSize.bind(this));\n this.body.emitter.on(\"destroy\", () => {\n this.hammerFrame.destroy();\n this.hammer.destroy();\n this._cleanUp();\n });\n }\n\n /**\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n const fields = [\"width\", \"height\", \"autoResize\"];\n selectiveDeepExtend(fields, this.options, options);\n }\n\n // Automatically adapt to changing size of the container element.\n this._cleanUp();\n if (this.options.autoResize === true) {\n if (window.ResizeObserver) {\n // decent browsers, immediate reactions\n const observer = new ResizeObserver(() => {\n const changed = this.setSize();\n if (changed === true) {\n this.body.emitter.emit(\"_requestRedraw\");\n }\n });\n const { frame } = this;\n\n observer.observe(frame);\n this._cleanupCallbacks.push(() => {\n observer.unobserve(frame);\n });\n } else {\n // IE11, continous polling\n const resizeTimer = setInterval(() => {\n const changed = this.setSize();\n if (changed === true) {\n this.body.emitter.emit(\"_requestRedraw\");\n }\n }, 1000);\n this._cleanupCallbacks.push(() => {\n clearInterval(resizeTimer);\n });\n }\n\n // Automatically adapt to changing size of the browser.\n const resizeFunction = this._onResize.bind(this);\n window.addEventListener(\"resize\", resizeFunction);\n this._cleanupCallbacks.push(() => {\n window.removeEventListener(\"resize\", resizeFunction);\n });\n }\n }\n\n /**\n * @private\n */\n _cleanUp() {\n this._cleanupCallbacks\n .splice(0)\n .reverse()\n .forEach((callback) => {\n try {\n callback();\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * @private\n */\n _onResize() {\n this.setSize();\n this.body.emitter.emit(\"_redraw\");\n }\n\n /**\n * Get and store the cameraState\n *\n * @param {number} [pixelRatio=this.pixelRatio]\n * @private\n */\n _getCameraState(pixelRatio = this.pixelRatio) {\n if (this.initialized === true) {\n this.cameraState.previousWidth = this.frame.canvas.width / pixelRatio;\n this.cameraState.previousHeight = this.frame.canvas.height / pixelRatio;\n this.cameraState.scale = this.body.view.scale;\n this.cameraState.position = this.DOMtoCanvas({\n x: (0.5 * this.frame.canvas.width) / pixelRatio,\n y: (0.5 * this.frame.canvas.height) / pixelRatio,\n });\n }\n }\n\n /**\n * Set the cameraState\n *\n * @private\n */\n _setCameraState() {\n if (\n this.cameraState.scale !== undefined &&\n this.frame.canvas.clientWidth !== 0 &&\n this.frame.canvas.clientHeight !== 0 &&\n this.pixelRatio !== 0 &&\n this.cameraState.previousWidth > 0 &&\n this.cameraState.previousHeight > 0\n ) {\n const widthRatio =\n this.frame.canvas.width /\n this.pixelRatio /\n this.cameraState.previousWidth;\n const heightRatio =\n this.frame.canvas.height /\n this.pixelRatio /\n this.cameraState.previousHeight;\n let newScale = this.cameraState.scale;\n\n if (widthRatio != 1 && heightRatio != 1) {\n newScale = this.cameraState.scale * 0.5 * (widthRatio + heightRatio);\n } else if (widthRatio != 1) {\n newScale = this.cameraState.scale * widthRatio;\n } else if (heightRatio != 1) {\n newScale = this.cameraState.scale * heightRatio;\n }\n\n this.body.view.scale = newScale;\n // this comes from the view module.\n const currentViewCenter = this.DOMtoCanvas({\n x: 0.5 * this.frame.canvas.clientWidth,\n y: 0.5 * this.frame.canvas.clientHeight,\n });\n\n const distanceFromCenter = {\n // offset from view, distance view has to change by these x and y to center the node\n x: currentViewCenter.x - this.cameraState.position.x,\n y: currentViewCenter.y - this.cameraState.position.y,\n };\n this.body.view.translation.x +=\n distanceFromCenter.x * this.body.view.scale;\n this.body.view.translation.y +=\n distanceFromCenter.y * this.body.view.scale;\n }\n }\n\n /**\n *\n * @param {number|string} value\n * @returns {string}\n * @private\n */\n _prepareValue(value) {\n if (typeof value === \"number\") {\n return value + \"px\";\n } else if (typeof value === \"string\") {\n if (value.indexOf(\"%\") !== -1 || value.indexOf(\"px\") !== -1) {\n return value;\n } else if (value.indexOf(\"%\") === -1) {\n return value + \"px\";\n }\n }\n throw new Error(\n \"Could not use the value supplied for width or height:\" + value\n );\n }\n\n /**\n * Create the HTML\n */\n _create() {\n // remove all elements from the container element.\n while (this.body.container.hasChildNodes()) {\n this.body.container.removeChild(this.body.container.firstChild);\n }\n\n this.frame = document.createElement(\"div\");\n this.frame.className = \"vis-network\";\n this.frame.style.position = \"relative\";\n this.frame.style.overflow = \"hidden\";\n this.frame.tabIndex = 0; // tab index is required for keycharm to bind keystrokes to the div instead of the window\n\n //////////////////////////////////////////////////////////////////\n\n this.frame.canvas = document.createElement(\"canvas\");\n this.frame.canvas.style.position = \"relative\";\n this.frame.appendChild(this.frame.canvas);\n\n if (!this.frame.canvas.getContext) {\n const noCanvas = document.createElement(\"DIV\");\n noCanvas.style.color = \"red\";\n noCanvas.style.fontWeight = \"bold\";\n noCanvas.style.padding = \"10px\";\n noCanvas.innerText = \"Error: your browser does not support HTML canvas\";\n this.frame.canvas.appendChild(noCanvas);\n } else {\n this._setPixelRatio();\n this.setTransform();\n }\n\n // add the frame to the container element\n this.body.container.appendChild(this.frame);\n\n this.body.view.scale = 1;\n this.body.view.translation = {\n x: 0.5 * this.frame.canvas.clientWidth,\n y: 0.5 * this.frame.canvas.clientHeight,\n };\n\n this._bindHammer();\n }\n\n /**\n * This function binds hammer, it can be repeated over and over due to the uniqueness check.\n *\n * @private\n */\n _bindHammer() {\n if (this.hammer !== undefined) {\n this.hammer.destroy();\n }\n this.drag = {};\n this.pinch = {};\n\n // init hammer\n this.hammer = new Hammer(this.frame.canvas);\n this.hammer.get(\"pinch\").set({ enable: true });\n // enable to get better response, todo: test on mobile.\n this.hammer\n .get(\"pan\")\n .set({ threshold: 5, direction: Hammer.DIRECTION_ALL });\n\n onTouch(this.hammer, (event) => {\n this.body.eventListeners.onTouch(event);\n });\n this.hammer.on(\"tap\", (event) => {\n this.body.eventListeners.onTap(event);\n });\n this.hammer.on(\"doubletap\", (event) => {\n this.body.eventListeners.onDoubleTap(event);\n });\n this.hammer.on(\"press\", (event) => {\n this.body.eventListeners.onHold(event);\n });\n this.hammer.on(\"panstart\", (event) => {\n this.body.eventListeners.onDragStart(event);\n });\n this.hammer.on(\"panmove\", (event) => {\n this.body.eventListeners.onDrag(event);\n });\n this.hammer.on(\"panend\", (event) => {\n this.body.eventListeners.onDragEnd(event);\n });\n this.hammer.on(\"pinch\", (event) => {\n this.body.eventListeners.onPinch(event);\n });\n\n // TODO: neatly cleanup these handlers when re-creating the Canvas, IF these are done with hammer, event.stopPropagation will not work?\n this.frame.canvas.addEventListener(\"wheel\", (event) => {\n this.body.eventListeners.onMouseWheel(event);\n });\n\n this.frame.canvas.addEventListener(\"mousemove\", (event) => {\n this.body.eventListeners.onMouseMove(event);\n });\n this.frame.canvas.addEventListener(\"contextmenu\", (event) => {\n this.body.eventListeners.onContext(event);\n });\n\n this.hammerFrame = new Hammer(this.frame);\n onRelease(this.hammerFrame, (event) => {\n this.body.eventListeners.onRelease(event);\n });\n }\n\n /**\n * Set a new size for the network\n *\n * @param {string} width Width in pixels or percentage (for example '800px'\n * or '50%')\n * @param {string} height Height in pixels or percentage (for example '400px'\n * or '30%')\n * @returns {boolean}\n */\n setSize(width = this.options.width, height = this.options.height) {\n width = this._prepareValue(width);\n height = this._prepareValue(height);\n\n let emitEvent = false;\n const oldWidth = this.frame.canvas.width;\n const oldHeight = this.frame.canvas.height;\n\n // update the pixel ratio\n //\n // NOTE: Comment in following is rather inconsistent; this is the ONLY place in the code\n // where it is assumed that the pixel ratio could change at runtime.\n // The only way I can think of this happening is a rotating screen or tablet; but then\n // there should be a mechanism for reloading the data (TODO: check if this is present).\n //\n // If the assumption is true (i.e. pixel ratio can change at runtime), then *all* usage\n // of pixel ratio must be overhauled for this.\n //\n // For the time being, I will humor the assumption here, and in the rest of the code assume it is\n // constant.\n const previousRatio = this.pixelRatio; // we cache this because the camera state storage needs the old value\n this._setPixelRatio();\n\n if (\n width != this.options.width ||\n height != this.options.height ||\n this.frame.style.width != width ||\n this.frame.style.height != height\n ) {\n this._getCameraState(previousRatio);\n\n this.frame.style.width = width;\n this.frame.style.height = height;\n\n this.frame.canvas.style.width = \"100%\";\n this.frame.canvas.style.height = \"100%\";\n\n this.frame.canvas.width = Math.round(\n this.frame.canvas.clientWidth * this.pixelRatio\n );\n this.frame.canvas.height = Math.round(\n this.frame.canvas.clientHeight * this.pixelRatio\n );\n\n this.options.width = width;\n this.options.height = height;\n\n this.canvasViewCenter = {\n x: 0.5 * this.frame.clientWidth,\n y: 0.5 * this.frame.clientHeight,\n };\n\n emitEvent = true;\n } else {\n // this would adapt the width of the canvas to the width from 100% if and only if\n // there is a change.\n\n const newWidth = Math.round(\n this.frame.canvas.clientWidth * this.pixelRatio\n );\n const newHeight = Math.round(\n this.frame.canvas.clientHeight * this.pixelRatio\n );\n\n // store the camera if there is a change in size.\n if (\n this.frame.canvas.width !== newWidth ||\n this.frame.canvas.height !== newHeight\n ) {\n this._getCameraState(previousRatio);\n }\n\n if (this.frame.canvas.width !== newWidth) {\n this.frame.canvas.width = newWidth;\n emitEvent = true;\n }\n if (this.frame.canvas.height !== newHeight) {\n this.frame.canvas.height = newHeight;\n emitEvent = true;\n }\n }\n\n if (emitEvent === true) {\n this.body.emitter.emit(\"resize\", {\n width: Math.round(this.frame.canvas.width / this.pixelRatio),\n height: Math.round(this.frame.canvas.height / this.pixelRatio),\n oldWidth: Math.round(oldWidth / this.pixelRatio),\n oldHeight: Math.round(oldHeight / this.pixelRatio),\n });\n\n // restore the camera on change.\n this._setCameraState();\n }\n\n // set initialized so the get and set camera will work from now on.\n this.initialized = true;\n return emitEvent;\n }\n\n /**\n *\n * @returns {CanvasRenderingContext2D}\n */\n getContext() {\n return this.frame.canvas.getContext(\"2d\");\n }\n\n /**\n * Determine the pixel ratio for various browsers.\n *\n * @returns {number}\n * @private\n */\n _determinePixelRatio() {\n const ctx = this.getContext();\n if (ctx === undefined) {\n throw new Error(\"Could not get canvax context\");\n }\n\n let numerator = 1;\n if (typeof window !== \"undefined\") {\n // (window !== undefined) doesn't work here!\n // Protection during unit tests, where 'window' can be missing\n numerator = window.devicePixelRatio || 1;\n }\n\n const denominator =\n ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio ||\n 1;\n\n return numerator / denominator;\n }\n\n /**\n * Lazy determination of pixel ratio.\n *\n * @private\n */\n _setPixelRatio() {\n this.pixelRatio = this._determinePixelRatio();\n }\n\n /**\n * Set the transform in the contained context, based on its pixelRatio\n */\n setTransform() {\n const ctx = this.getContext();\n if (ctx === undefined) {\n throw new Error(\"Could not get canvax context\");\n }\n\n ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0);\n }\n\n /**\n * Convert the X coordinate in DOM-space (coordinate point in browser relative to the container div) to\n * the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon)\n *\n * @param {number} x\n * @returns {number}\n * @private\n */\n _XconvertDOMtoCanvas(x) {\n return (x - this.body.view.translation.x) / this.body.view.scale;\n }\n\n /**\n * Convert the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to\n * the X coordinate in DOM-space (coordinate point in browser relative to the container div)\n *\n * @param {number} x\n * @returns {number}\n * @private\n */\n _XconvertCanvasToDOM(x) {\n return x * this.body.view.scale + this.body.view.translation.x;\n }\n\n /**\n * Convert the Y coordinate in DOM-space (coordinate point in browser relative to the container div) to\n * the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon)\n *\n * @param {number} y\n * @returns {number}\n * @private\n */\n _YconvertDOMtoCanvas(y) {\n return (y - this.body.view.translation.y) / this.body.view.scale;\n }\n\n /**\n * Convert the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to\n * the Y coordinate in DOM-space (coordinate point in browser relative to the container div)\n *\n * @param {number} y\n * @returns {number}\n * @private\n */\n _YconvertCanvasToDOM(y) {\n return y * this.body.view.scale + this.body.view.translation.y;\n }\n\n /**\n * @param {point} pos\n * @returns {point}\n */\n canvasToDOM(pos) {\n return {\n x: this._XconvertCanvasToDOM(pos.x),\n y: this._YconvertCanvasToDOM(pos.y),\n };\n }\n\n /**\n *\n * @param {point} pos\n * @returns {point}\n */\n DOMtoCanvas(pos) {\n return {\n x: this._XconvertDOMtoCanvas(pos.x),\n y: this._YconvertDOMtoCanvas(pos.y),\n };\n }\n}\n\nexport default Canvas;\n","import { easingFunctions } from \"vis-util/esnext\";\n\nimport NetworkUtil from \"../NetworkUtil\";\nimport { normalizeFitOptions } from \"./view-handler\";\n\n/**\n * The view\n */\nclass View {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n */\n constructor(body, canvas) {\n this.body = body;\n this.canvas = canvas;\n\n this.animationSpeed = 1 / this.renderRefreshRate;\n this.animationEasingFunction = \"easeInOutQuint\";\n this.easingTime = 0;\n this.sourceScale = 0;\n this.targetScale = 0;\n this.sourceTranslation = 0;\n this.targetTranslation = 0;\n this.lockedOnNodeId = undefined;\n this.lockedOnNodeOffset = undefined;\n this.touchTime = 0;\n\n this.viewFunction = undefined;\n\n this.body.emitter.on(\"fit\", this.fit.bind(this));\n this.body.emitter.on(\"animationFinished\", () => {\n this.body.emitter.emit(\"_stopRendering\");\n });\n this.body.emitter.on(\"unlockNode\", this.releaseNode.bind(this));\n }\n\n /**\n *\n * @param {object} [options={}]\n */\n setOptions(options = {}) {\n this.options = options;\n }\n\n /**\n * This function zooms out to fit all data on screen based on amount of nodes\n *\n * @param {object} [options={{nodes=Array}}]\n * @param options\n * @param {boolean} [initialZoom=false] | zoom based on fitted formula or range, true = fitted, default = false;\n */\n fit(options, initialZoom = false) {\n options = normalizeFitOptions(options, this.body.nodeIndices);\n\n const canvasWidth = this.canvas.frame.canvas.clientWidth;\n const canvasHeight = this.canvas.frame.canvas.clientHeight;\n\n let range;\n let zoomLevel;\n if (canvasWidth === 0 || canvasHeight === 0) {\n // There's no point in trying to fit into zero sized canvas. This could\n // potentially even result in invalid values being computed. For example\n // for network without nodes and zero sized canvas the zoom level would\n // end up being computed as 0/0 which results in NaN. In any other case\n // this would be 0/something which is again pointless to compute.\n zoomLevel = 1;\n\n range = NetworkUtil.getRange(this.body.nodes, options.nodes);\n } else if (initialZoom === true) {\n // check if more than half of the nodes have a predefined position. If so, we use the range, not the approximation.\n let positionDefined = 0;\n for (const nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n const node = this.body.nodes[nodeId];\n if (node.predefinedPosition === true) {\n positionDefined += 1;\n }\n }\n }\n if (positionDefined > 0.5 * this.body.nodeIndices.length) {\n this.fit(options, false);\n return;\n }\n\n range = NetworkUtil.getRange(this.body.nodes, options.nodes);\n\n const numberOfNodes = this.body.nodeIndices.length;\n zoomLevel = 12.662 / (numberOfNodes + 7.4147) + 0.0964822; // this is obtained from fitting a dataset from 5 points with scale levels that looked good.\n\n // correct for larger canvasses.\n const factor = Math.min(canvasWidth / 600, canvasHeight / 600);\n zoomLevel *= factor;\n } else {\n this.body.emitter.emit(\"_resizeNodes\");\n range = NetworkUtil.getRange(this.body.nodes, options.nodes);\n\n const xDistance = Math.abs(range.maxX - range.minX) * 1.1;\n const yDistance = Math.abs(range.maxY - range.minY) * 1.1;\n\n const xZoomLevel = canvasWidth / xDistance;\n const yZoomLevel = canvasHeight / yDistance;\n\n zoomLevel = xZoomLevel <= yZoomLevel ? xZoomLevel : yZoomLevel;\n }\n\n if (zoomLevel > options.maxZoomLevel) {\n zoomLevel = options.maxZoomLevel;\n } else if (zoomLevel < options.minZoomLevel) {\n zoomLevel = options.minZoomLevel;\n }\n\n const center = NetworkUtil.findCenter(range);\n const animationOptions = {\n position: center,\n scale: zoomLevel,\n animation: options.animation,\n };\n this.moveTo(animationOptions);\n }\n\n // animation\n\n /**\n * Center a node in view.\n *\n * @param {number} nodeId\n * @param {number} [options]\n */\n focus(nodeId, options = {}) {\n if (this.body.nodes[nodeId] !== undefined) {\n const nodePosition = {\n x: this.body.nodes[nodeId].x,\n y: this.body.nodes[nodeId].y,\n };\n options.position = nodePosition;\n options.lockedOnNode = nodeId;\n\n this.moveTo(options);\n } else {\n console.error(\"Node: \" + nodeId + \" cannot be found.\");\n }\n }\n\n /**\n *\n * @param {object} options | options.offset = {x:number, y:number} // offset from the center in DOM pixels\n * | options.scale = number // scale to move to\n * | options.position = {x:number, y:number} // position to move to\n * | options.animation = {duration:number, easingFunction:String} || Boolean // position to move to\n */\n moveTo(options) {\n if (options === undefined) {\n options = {};\n return;\n }\n\n if (options.offset != null) {\n if (options.offset.x != null) {\n // Coerce and verify that x is valid.\n options.offset.x = +options.offset.x;\n if (!Number.isFinite(options.offset.x)) {\n throw new TypeError(\n 'The option \"offset.x\" has to be a finite number.'\n );\n }\n } else {\n options.offset.x = 0;\n }\n\n if (options.offset.y != null) {\n // Coerce and verify that y is valid.\n options.offset.y = +options.offset.y;\n if (!Number.isFinite(options.offset.y)) {\n throw new TypeError(\n 'The option \"offset.y\" has to be a finite number.'\n );\n }\n } else {\n options.offset.x = 0;\n }\n } else {\n options.offset = {\n x: 0,\n y: 0,\n };\n }\n\n if (options.position != null) {\n if (options.position.x != null) {\n // Coerce and verify that x is valid.\n options.position.x = +options.position.x;\n if (!Number.isFinite(options.position.x)) {\n throw new TypeError(\n 'The option \"position.x\" has to be a finite number.'\n );\n }\n } else {\n options.position.x = 0;\n }\n\n if (options.position.y != null) {\n // Coerce and verify that y is valid.\n options.position.y = +options.position.y;\n if (!Number.isFinite(options.position.y)) {\n throw new TypeError(\n 'The option \"position.y\" has to be a finite number.'\n );\n }\n } else {\n options.position.x = 0;\n }\n } else {\n options.position = this.getViewPosition();\n }\n\n if (options.scale != null) {\n // Coerce and verify that the scale is valid.\n options.scale = +options.scale;\n if (!(options.scale > 0)) {\n throw new TypeError(\n 'The option \"scale\" has to be a number greater than zero.'\n );\n }\n } else {\n options.scale = this.body.view.scale;\n }\n\n if (options.animation === undefined) {\n options.animation = { duration: 0 };\n }\n if (options.animation === false) {\n options.animation = { duration: 0 };\n }\n if (options.animation === true) {\n options.animation = {};\n }\n if (options.animation.duration === undefined) {\n options.animation.duration = 1000;\n } // default duration\n if (options.animation.easingFunction === undefined) {\n options.animation.easingFunction = \"easeInOutQuad\";\n } // default easing function\n\n this.animateView(options);\n }\n\n /**\n *\n * @param {object} options | options.offset = {x:number, y:number} // offset from the center in DOM pixels\n * | options.time = number // animation time in milliseconds\n * | options.scale = number // scale to animate to\n * | options.position = {x:number, y:number} // position to animate to\n * | options.easingFunction = String // linear, easeInQuad, easeOutQuad, easeInOutQuad,\n * // easeInCubic, easeOutCubic, easeInOutCubic,\n * // easeInQuart, easeOutQuart, easeInOutQuart,\n * // easeInQuint, easeOutQuint, easeInOutQuint\n */\n animateView(options) {\n if (options === undefined) {\n return;\n }\n this.animationEasingFunction = options.animation.easingFunction;\n // release if something focussed on the node\n this.releaseNode();\n if (options.locked === true) {\n this.lockedOnNodeId = options.lockedOnNode;\n this.lockedOnNodeOffset = options.offset;\n }\n\n // forcefully complete the old animation if it was still running\n if (this.easingTime != 0) {\n this._transitionRedraw(true); // by setting easingtime to 1, we finish the animation.\n }\n\n this.sourceScale = this.body.view.scale;\n this.sourceTranslation = this.body.view.translation;\n this.targetScale = options.scale;\n\n // set the scale so the viewCenter is based on the correct zoom level. This is overridden in the transitionRedraw\n // but at least then we'll have the target transition\n this.body.view.scale = this.targetScale;\n const viewCenter = this.canvas.DOMtoCanvas({\n x: 0.5 * this.canvas.frame.canvas.clientWidth,\n y: 0.5 * this.canvas.frame.canvas.clientHeight,\n });\n\n const distanceFromCenter = {\n // offset from view, distance view has to change by these x and y to center the node\n x: viewCenter.x - options.position.x,\n y: viewCenter.y - options.position.y,\n };\n this.targetTranslation = {\n x:\n this.sourceTranslation.x +\n distanceFromCenter.x * this.targetScale +\n options.offset.x,\n y:\n this.sourceTranslation.y +\n distanceFromCenter.y * this.targetScale +\n options.offset.y,\n };\n\n // if the time is set to 0, don't do an animation\n if (options.animation.duration === 0) {\n if (this.lockedOnNodeId != undefined) {\n this.viewFunction = this._lockedRedraw.bind(this);\n this.body.emitter.on(\"initRedraw\", this.viewFunction);\n } else {\n this.body.view.scale = this.targetScale;\n this.body.view.translation = this.targetTranslation;\n this.body.emitter.emit(\"_requestRedraw\");\n }\n } else {\n this.animationSpeed =\n 1 / (60 * options.animation.duration * 0.001) || 1 / 60; // 60 for 60 seconds, 0.001 for milli's\n this.animationEasingFunction = options.animation.easingFunction;\n\n this.viewFunction = this._transitionRedraw.bind(this);\n this.body.emitter.on(\"initRedraw\", this.viewFunction);\n this.body.emitter.emit(\"_startRendering\");\n }\n }\n\n /**\n * used to animate smoothly by hijacking the redraw function.\n *\n * @private\n */\n _lockedRedraw() {\n const nodePosition = {\n x: this.body.nodes[this.lockedOnNodeId].x,\n y: this.body.nodes[this.lockedOnNodeId].y,\n };\n const viewCenter = this.canvas.DOMtoCanvas({\n x: 0.5 * this.canvas.frame.canvas.clientWidth,\n y: 0.5 * this.canvas.frame.canvas.clientHeight,\n });\n const distanceFromCenter = {\n // offset from view, distance view has to change by these x and y to center the node\n x: viewCenter.x - nodePosition.x,\n y: viewCenter.y - nodePosition.y,\n };\n const sourceTranslation = this.body.view.translation;\n const targetTranslation = {\n x:\n sourceTranslation.x +\n distanceFromCenter.x * this.body.view.scale +\n this.lockedOnNodeOffset.x,\n y:\n sourceTranslation.y +\n distanceFromCenter.y * this.body.view.scale +\n this.lockedOnNodeOffset.y,\n };\n\n this.body.view.translation = targetTranslation;\n }\n\n /**\n * Resets state of a locked on Node\n */\n releaseNode() {\n if (this.lockedOnNodeId !== undefined && this.viewFunction !== undefined) {\n this.body.emitter.off(\"initRedraw\", this.viewFunction);\n this.lockedOnNodeId = undefined;\n this.lockedOnNodeOffset = undefined;\n }\n }\n\n /**\n * @param {boolean} [finished=false]\n * @private\n */\n _transitionRedraw(finished = false) {\n this.easingTime += this.animationSpeed;\n this.easingTime = finished === true ? 1.0 : this.easingTime;\n\n const progress = easingFunctions[this.animationEasingFunction](\n this.easingTime\n );\n\n this.body.view.scale =\n this.sourceScale + (this.targetScale - this.sourceScale) * progress;\n this.body.view.translation = {\n x:\n this.sourceTranslation.x +\n (this.targetTranslation.x - this.sourceTranslation.x) * progress,\n y:\n this.sourceTranslation.y +\n (this.targetTranslation.y - this.sourceTranslation.y) * progress,\n };\n\n // cleanup\n if (this.easingTime >= 1.0) {\n this.body.emitter.off(\"initRedraw\", this.viewFunction);\n this.easingTime = 0;\n if (this.lockedOnNodeId != undefined) {\n this.viewFunction = this._lockedRedraw.bind(this);\n this.body.emitter.on(\"initRedraw\", this.viewFunction);\n }\n this.body.emitter.emit(\"animationFinished\");\n }\n }\n\n /**\n *\n * @returns {number}\n */\n getScale() {\n return this.body.view.scale;\n }\n\n /**\n *\n * @returns {{x: number, y: number}}\n */\n getViewPosition() {\n return this.canvas.DOMtoCanvas({\n x: 0.5 * this.canvas.frame.canvas.clientWidth,\n y: 0.5 * this.canvas.frame.canvas.clientHeight,\n });\n }\n}\n\nexport default View;\n","type IdType = string | number;\n\nexport interface ViewFitOptions {\n nodes: IdType[];\n minZoomLevel: number;\n maxZoomLevel: number;\n}\n\n/**\n * Validate the fit options, replace missing optional values by defaults etc.\n *\n * @param rawOptions - The raw options.\n * @param allNodeIds - All node ids that will be used if nodes are omitted in\n * the raw options.\n * @returns Options with everything filled in and validated.\n */\nexport function normalizeFitOptions(\n rawOptions: Partial,\n allNodeIds: IdType[]\n): ViewFitOptions {\n const options = Object.assign>(\n {\n nodes: allNodeIds,\n minZoomLevel: Number.MIN_VALUE,\n maxZoomLevel: 1,\n },\n rawOptions ?? {}\n );\n\n if (!Array.isArray(options.nodes)) {\n throw new TypeError(\"Nodes has to be an array of ids.\");\n }\n if (options.nodes.length === 0) {\n options.nodes = allNodeIds;\n }\n\n if (!(typeof options.minZoomLevel === \"number\" && options.minZoomLevel > 0)) {\n throw new TypeError(\"Min zoom level has to be a number higher than zero.\");\n }\n\n if (\n !(\n typeof options.maxZoomLevel === \"number\" &&\n options.minZoomLevel <= options.maxZoomLevel\n )\n ) {\n throw new TypeError(\n \"Max zoom level has to be a number higher than min zoom level.\"\n );\n }\n\n return options;\n}\n","/**\r\n * Created by Alex on 11/6/2014.\r\n */\r\nexport default function keycharm(options) {\r\n var preventDefault = options && options.preventDefault || false;\r\n\r\n var container = options && options.container || window;\r\n\r\n var _exportFunctions = {};\r\n var _bound = {keydown:{}, keyup:{}};\r\n var _keys = {};\r\n var i;\r\n\r\n // a - z\r\n for (i = 97; i <= 122; i++) {_keys[String.fromCharCode(i)] = {code:65 + (i - 97), shift: false};}\r\n // A - Z\r\n for (i = 65; i <= 90; i++) {_keys[String.fromCharCode(i)] = {code:i, shift: true};}\r\n // 0 - 9\r\n for (i = 0; i <= 9; i++) {_keys['' + i] = {code:48 + i, shift: false};}\r\n // F1 - F12\r\n for (i = 1; i <= 12; i++) {_keys['F' + i] = {code:111 + i, shift: false};}\r\n // num0 - num9\r\n for (i = 0; i <= 9; i++) {_keys['num' + i] = {code:96 + i, shift: false};}\r\n\r\n // numpad misc\r\n _keys['num*'] = {code:106, shift: false};\r\n _keys['num+'] = {code:107, shift: false};\r\n _keys['num-'] = {code:109, shift: false};\r\n _keys['num/'] = {code:111, shift: false};\r\n _keys['num.'] = {code:110, shift: false};\r\n // arrows\r\n _keys['left'] = {code:37, shift: false};\r\n _keys['up'] = {code:38, shift: false};\r\n _keys['right'] = {code:39, shift: false};\r\n _keys['down'] = {code:40, shift: false};\r\n // extra keys\r\n _keys['space'] = {code:32, shift: false};\r\n _keys['enter'] = {code:13, shift: false};\r\n _keys['shift'] = {code:16, shift: undefined};\r\n _keys['esc'] = {code:27, shift: false};\r\n _keys['backspace'] = {code:8, shift: false};\r\n _keys['tab'] = {code:9, shift: false};\r\n _keys['ctrl'] = {code:17, shift: false};\r\n _keys['alt'] = {code:18, shift: false};\r\n _keys['delete'] = {code:46, shift: false};\r\n _keys['pageup'] = {code:33, shift: false};\r\n _keys['pagedown'] = {code:34, shift: false};\r\n // symbols\r\n _keys['='] = {code:187, shift: false};\r\n _keys['-'] = {code:189, shift: false};\r\n _keys[']'] = {code:221, shift: false};\r\n _keys['['] = {code:219, shift: false};\r\n\r\n\r\n\r\n var down = function(event) {handleEvent(event,'keydown');};\r\n var up = function(event) {handleEvent(event,'keyup');};\r\n\r\n // handle the actualy bound key with the event\r\n var handleEvent = function(event,type) {\r\n if (_bound[type][event.keyCode] !== undefined) {\r\n var bound = _bound[type][event.keyCode];\r\n for (var i = 0; i < bound.length; i++) {\r\n if (bound[i].shift === undefined) {\r\n bound[i].fn(event);\r\n }\r\n else if (bound[i].shift == true && event.shiftKey == true) {\r\n bound[i].fn(event);\r\n }\r\n else if (bound[i].shift == false && event.shiftKey == false) {\r\n bound[i].fn(event);\r\n }\r\n }\r\n\r\n if (preventDefault == true) {\r\n event.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n // bind a key to a callback\r\n _exportFunctions.bind = function(key, callback, type) {\r\n if (type === undefined) {\r\n type = 'keydown';\r\n }\r\n if (_keys[key] === undefined) {\r\n throw new Error(\"unsupported key: \" + key);\r\n }\r\n if (_bound[type][_keys[key].code] === undefined) {\r\n _bound[type][_keys[key].code] = [];\r\n }\r\n _bound[type][_keys[key].code].push({fn:callback, shift:_keys[key].shift});\r\n };\r\n\r\n\r\n // bind all keys to a call back (demo purposes)\r\n _exportFunctions.bindAll = function(callback, type) {\r\n if (type === undefined) {\r\n type = 'keydown';\r\n }\r\n for (var key in _keys) {\r\n if (_keys.hasOwnProperty(key)) {\r\n _exportFunctions.bind(key,callback,type);\r\n }\r\n }\r\n };\r\n\r\n // get the key label from an event\r\n _exportFunctions.getKey = function(event) {\r\n for (var key in _keys) {\r\n if (_keys.hasOwnProperty(key)) {\r\n if (event.shiftKey == true && _keys[key].shift == true && event.keyCode == _keys[key].code) {\r\n return key;\r\n }\r\n else if (event.shiftKey == false && _keys[key].shift == false && event.keyCode == _keys[key].code) {\r\n return key;\r\n }\r\n else if (event.keyCode == _keys[key].code && key == 'shift') {\r\n return key;\r\n }\r\n }\r\n }\r\n return \"unknown key, currently not supported\";\r\n };\r\n\r\n // unbind either a specific callback from a key or all of them (by leaving callback undefined)\r\n _exportFunctions.unbind = function(key, callback, type) {\r\n if (type === undefined) {\r\n type = 'keydown';\r\n }\r\n if (_keys[key] === undefined) {\r\n throw new Error(\"unsupported key: \" + key);\r\n }\r\n if (callback !== undefined) {\r\n var newBindings = [];\r\n var bound = _bound[type][_keys[key].code];\r\n if (bound !== undefined) {\r\n for (var i = 0; i < bound.length; i++) {\r\n if (!(bound[i].fn == callback && bound[i].shift == _keys[key].shift)) {\r\n newBindings.push(_bound[type][_keys[key].code][i]);\r\n }\r\n }\r\n }\r\n _bound[type][_keys[key].code] = newBindings;\r\n }\r\n else {\r\n _bound[type][_keys[key].code] = [];\r\n }\r\n };\r\n\r\n // reset all bound variables.\r\n _exportFunctions.reset = function() {\r\n _bound = {keydown:{}, keyup:{}};\r\n };\r\n\r\n // unbind all listeners and reset all variables.\r\n _exportFunctions.destroy = function() {\r\n _bound = {keydown:{}, keyup:{}};\r\n container.removeEventListener('keydown', down, true);\r\n container.removeEventListener('keyup', up, true);\r\n };\r\n\r\n // create listeners.\r\n container.addEventListener('keydown',down,true);\r\n container.addEventListener('keyup',up,true);\r\n\r\n // return the public functions.\r\n return _exportFunctions;\r\n}\r\n","import \"./NavigationHandler.css\";\n\nimport { Hammer } from \"vis-util/esnext\";\nimport { onRelease, onTouch } from \"../../../hammerUtil\";\nimport keycharm from \"keycharm\";\n\n/**\n * Navigation Handler\n */\nclass NavigationHandler {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n */\n constructor(body, canvas) {\n this.body = body;\n this.canvas = canvas;\n\n this.iconsCreated = false;\n this.navigationHammers = [];\n this.boundFunctions = {};\n this.touchTime = 0;\n this.activated = false;\n\n this.body.emitter.on(\"activate\", () => {\n this.activated = true;\n this.configureKeyboardBindings();\n });\n this.body.emitter.on(\"deactivate\", () => {\n this.activated = false;\n this.configureKeyboardBindings();\n });\n this.body.emitter.on(\"destroy\", () => {\n if (this.keycharm !== undefined) {\n this.keycharm.destroy();\n }\n });\n\n this.options = {};\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n this.options = options;\n this.create();\n }\n }\n\n /**\n * Creates or refreshes navigation and sets key bindings\n */\n create() {\n if (this.options.navigationButtons === true) {\n if (this.iconsCreated === false) {\n this.loadNavigationElements();\n }\n } else if (this.iconsCreated === true) {\n this.cleanNavigation();\n }\n\n this.configureKeyboardBindings();\n }\n\n /**\n * Cleans up previous navigation items\n */\n cleanNavigation() {\n // clean hammer bindings\n if (this.navigationHammers.length != 0) {\n for (let i = 0; i < this.navigationHammers.length; i++) {\n this.navigationHammers[i].destroy();\n }\n this.navigationHammers = [];\n }\n\n // clean up previous navigation items\n if (\n this.navigationDOM &&\n this.navigationDOM[\"wrapper\"] &&\n this.navigationDOM[\"wrapper\"].parentNode\n ) {\n this.navigationDOM[\"wrapper\"].parentNode.removeChild(\n this.navigationDOM[\"wrapper\"]\n );\n }\n\n this.iconsCreated = false;\n }\n\n /**\n * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation\n * they have a triggerFunction which is called on click. If the position of the navigation controls is dependent\n * on this.frame.canvas.clientWidth or this.frame.canvas.clientHeight, we flag horizontalAlignLeft and verticalAlignTop false.\n * This means that the location will be corrected by the _relocateNavigation function on a size change of the canvas.\n *\n * @private\n */\n loadNavigationElements() {\n this.cleanNavigation();\n\n this.navigationDOM = {};\n const navigationDivs = [\n \"up\",\n \"down\",\n \"left\",\n \"right\",\n \"zoomIn\",\n \"zoomOut\",\n \"zoomExtends\",\n ];\n const navigationDivActions = [\n \"_moveUp\",\n \"_moveDown\",\n \"_moveLeft\",\n \"_moveRight\",\n \"_zoomIn\",\n \"_zoomOut\",\n \"_fit\",\n ];\n\n this.navigationDOM[\"wrapper\"] = document.createElement(\"div\");\n this.navigationDOM[\"wrapper\"].className = \"vis-navigation\";\n this.canvas.frame.appendChild(this.navigationDOM[\"wrapper\"]);\n\n for (let i = 0; i < navigationDivs.length; i++) {\n this.navigationDOM[navigationDivs[i]] = document.createElement(\"div\");\n this.navigationDOM[navigationDivs[i]].className =\n \"vis-button vis-\" + navigationDivs[i];\n this.navigationDOM[\"wrapper\"].appendChild(\n this.navigationDOM[navigationDivs[i]]\n );\n\n const hammer = new Hammer(this.navigationDOM[navigationDivs[i]]);\n if (navigationDivActions[i] === \"_fit\") {\n onTouch(hammer, this._fit.bind(this));\n } else {\n onTouch(hammer, this.bindToRedraw.bind(this, navigationDivActions[i]));\n }\n\n this.navigationHammers.push(hammer);\n }\n\n // use a hammer for the release so we do not require the one used in the rest of the network\n // the one the rest uses can be overloaded by the manipulation system.\n const hammerFrame = new Hammer(this.canvas.frame);\n onRelease(hammerFrame, () => {\n this._stopMovement();\n });\n this.navigationHammers.push(hammerFrame);\n\n this.iconsCreated = true;\n }\n\n /**\n *\n * @param {string} action\n */\n bindToRedraw(action) {\n if (this.boundFunctions[action] === undefined) {\n this.boundFunctions[action] = this[action].bind(this);\n this.body.emitter.on(\"initRedraw\", this.boundFunctions[action]);\n this.body.emitter.emit(\"_startRendering\");\n }\n }\n\n /**\n *\n * @param {string} action\n */\n unbindFromRedraw(action) {\n if (this.boundFunctions[action] !== undefined) {\n this.body.emitter.off(\"initRedraw\", this.boundFunctions[action]);\n this.body.emitter.emit(\"_stopRendering\");\n delete this.boundFunctions[action];\n }\n }\n\n /**\n * this stops all movement induced by the navigation buttons\n *\n * @private\n */\n _fit() {\n if (new Date().valueOf() - this.touchTime > 700) {\n // TODO: fix ugly hack to avoid hammer's double fireing of event (because we use release?)\n this.body.emitter.emit(\"fit\", { duration: 700 });\n this.touchTime = new Date().valueOf();\n }\n }\n\n /**\n * this stops all movement induced by the navigation buttons\n *\n * @private\n */\n _stopMovement() {\n for (const boundAction in this.boundFunctions) {\n if (\n Object.prototype.hasOwnProperty.call(this.boundFunctions, boundAction)\n ) {\n this.body.emitter.off(\"initRedraw\", this.boundFunctions[boundAction]);\n this.body.emitter.emit(\"_stopRendering\");\n }\n }\n this.boundFunctions = {};\n }\n /**\n *\n * @private\n */\n _moveUp() {\n this.body.view.translation.y += this.options.keyboard.speed.y;\n }\n /**\n *\n * @private\n */\n _moveDown() {\n this.body.view.translation.y -= this.options.keyboard.speed.y;\n }\n /**\n *\n * @private\n */\n _moveLeft() {\n this.body.view.translation.x += this.options.keyboard.speed.x;\n }\n /**\n *\n * @private\n */\n _moveRight() {\n this.body.view.translation.x -= this.options.keyboard.speed.x;\n }\n /**\n *\n * @private\n */\n _zoomIn() {\n const scaleOld = this.body.view.scale;\n const scale = this.body.view.scale * (1 + this.options.keyboard.speed.zoom);\n const translation = this.body.view.translation;\n const scaleFrac = scale / scaleOld;\n const tx =\n (1 - scaleFrac) * this.canvas.canvasViewCenter.x +\n translation.x * scaleFrac;\n const ty =\n (1 - scaleFrac) * this.canvas.canvasViewCenter.y +\n translation.y * scaleFrac;\n\n this.body.view.scale = scale;\n this.body.view.translation = { x: tx, y: ty };\n this.body.emitter.emit(\"zoom\", {\n direction: \"+\",\n scale: this.body.view.scale,\n pointer: null,\n });\n }\n\n /**\n *\n * @private\n */\n _zoomOut() {\n const scaleOld = this.body.view.scale;\n const scale = this.body.view.scale / (1 + this.options.keyboard.speed.zoom);\n const translation = this.body.view.translation;\n const scaleFrac = scale / scaleOld;\n const tx =\n (1 - scaleFrac) * this.canvas.canvasViewCenter.x +\n translation.x * scaleFrac;\n const ty =\n (1 - scaleFrac) * this.canvas.canvasViewCenter.y +\n translation.y * scaleFrac;\n\n this.body.view.scale = scale;\n this.body.view.translation = { x: tx, y: ty };\n this.body.emitter.emit(\"zoom\", {\n direction: \"-\",\n scale: this.body.view.scale,\n pointer: null,\n });\n }\n\n /**\n * bind all keys using keycharm.\n */\n configureKeyboardBindings() {\n if (this.keycharm !== undefined) {\n this.keycharm.destroy();\n }\n\n if (this.options.keyboard.enabled === true) {\n if (this.options.keyboard.bindToWindow === true) {\n this.keycharm = keycharm({ container: window, preventDefault: true });\n } else {\n this.keycharm = keycharm({\n container: this.canvas.frame,\n preventDefault: true,\n });\n }\n\n this.keycharm.reset();\n\n if (this.activated === true) {\n this.keycharm.bind(\n \"up\",\n () => {\n this.bindToRedraw(\"_moveUp\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"down\",\n () => {\n this.bindToRedraw(\"_moveDown\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"left\",\n () => {\n this.bindToRedraw(\"_moveLeft\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"right\",\n () => {\n this.bindToRedraw(\"_moveRight\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"=\",\n () => {\n this.bindToRedraw(\"_zoomIn\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"num+\",\n () => {\n this.bindToRedraw(\"_zoomIn\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"num-\",\n () => {\n this.bindToRedraw(\"_zoomOut\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"-\",\n () => {\n this.bindToRedraw(\"_zoomOut\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"[\",\n () => {\n this.bindToRedraw(\"_zoomOut\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"]\",\n () => {\n this.bindToRedraw(\"_zoomIn\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"pageup\",\n () => {\n this.bindToRedraw(\"_zoomIn\");\n },\n \"keydown\"\n );\n this.keycharm.bind(\n \"pagedown\",\n () => {\n this.bindToRedraw(\"_zoomOut\");\n },\n \"keydown\"\n );\n\n this.keycharm.bind(\n \"up\",\n () => {\n this.unbindFromRedraw(\"_moveUp\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"down\",\n () => {\n this.unbindFromRedraw(\"_moveDown\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"left\",\n () => {\n this.unbindFromRedraw(\"_moveLeft\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"right\",\n () => {\n this.unbindFromRedraw(\"_moveRight\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"=\",\n () => {\n this.unbindFromRedraw(\"_zoomIn\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"num+\",\n () => {\n this.unbindFromRedraw(\"_zoomIn\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"num-\",\n () => {\n this.unbindFromRedraw(\"_zoomOut\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"-\",\n () => {\n this.unbindFromRedraw(\"_zoomOut\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"[\",\n () => {\n this.unbindFromRedraw(\"_zoomOut\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"]\",\n () => {\n this.unbindFromRedraw(\"_zoomIn\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"pageup\",\n () => {\n this.unbindFromRedraw(\"_zoomIn\");\n },\n \"keyup\"\n );\n this.keycharm.bind(\n \"pagedown\",\n () => {\n this.unbindFromRedraw(\"_zoomOut\");\n },\n \"keyup\"\n );\n }\n }\n }\n}\n\nexport default NavigationHandler;\n","import {\n Popup,\n getAbsoluteLeft,\n getAbsoluteTop,\n mergeOptions,\n parseColor,\n selectiveNotDeepExtend,\n} from \"vis-util/esnext\";\nimport NavigationHandler from \"./components/NavigationHandler\";\n\n/**\n * Handler for interactions\n */\nclass InteractionHandler {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n * @param {SelectionHandler} selectionHandler\n */\n constructor(body, canvas, selectionHandler) {\n this.body = body;\n this.canvas = canvas;\n this.selectionHandler = selectionHandler;\n this.navigationHandler = new NavigationHandler(body, canvas);\n\n // bind the events from hammer to functions in this object\n this.body.eventListeners.onTap = this.onTap.bind(this);\n this.body.eventListeners.onTouch = this.onTouch.bind(this);\n this.body.eventListeners.onDoubleTap = this.onDoubleTap.bind(this);\n this.body.eventListeners.onHold = this.onHold.bind(this);\n this.body.eventListeners.onDragStart = this.onDragStart.bind(this);\n this.body.eventListeners.onDrag = this.onDrag.bind(this);\n this.body.eventListeners.onDragEnd = this.onDragEnd.bind(this);\n this.body.eventListeners.onMouseWheel = this.onMouseWheel.bind(this);\n this.body.eventListeners.onPinch = this.onPinch.bind(this);\n this.body.eventListeners.onMouseMove = this.onMouseMove.bind(this);\n this.body.eventListeners.onRelease = this.onRelease.bind(this);\n this.body.eventListeners.onContext = this.onContext.bind(this);\n\n this.touchTime = 0;\n this.drag = {};\n this.pinch = {};\n this.popup = undefined;\n this.popupObj = undefined;\n this.popupTimer = undefined;\n\n this.body.functions.getPointer = this.getPointer.bind(this);\n\n this.options = {};\n this.defaultOptions = {\n dragNodes: true,\n dragView: true,\n hover: false,\n keyboard: {\n enabled: false,\n speed: { x: 10, y: 10, zoom: 0.02 },\n bindToWindow: true,\n autoFocus: true,\n },\n navigationButtons: false,\n tooltipDelay: 300,\n zoomView: true,\n zoomSpeed: 1,\n };\n Object.assign(this.options, this.defaultOptions);\n\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n this.body.emitter.on(\"destroy\", () => {\n clearTimeout(this.popupTimer);\n delete this.body.functions.getPointer;\n });\n }\n\n /**\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options !== undefined) {\n // extend all but the values in fields\n const fields = [\n \"hideEdgesOnDrag\",\n \"hideEdgesOnZoom\",\n \"hideNodesOnDrag\",\n \"keyboard\",\n \"multiselect\",\n \"selectable\",\n \"selectConnectedEdges\",\n ];\n selectiveNotDeepExtend(fields, this.options, options);\n\n // merge the keyboard options in.\n mergeOptions(this.options, options, \"keyboard\");\n\n if (options.tooltip) {\n Object.assign(this.options.tooltip, options.tooltip);\n if (options.tooltip.color) {\n this.options.tooltip.color = parseColor(options.tooltip.color);\n }\n }\n }\n\n this.navigationHandler.setOptions(this.options);\n }\n\n /**\n * Get the pointer location from a touch location\n *\n * @param {{x: number, y: number}} touch\n * @returns {{x: number, y: number}} pointer\n * @private\n */\n getPointer(touch) {\n return {\n x: touch.x - getAbsoluteLeft(this.canvas.frame.canvas),\n y: touch.y - getAbsoluteTop(this.canvas.frame.canvas),\n };\n }\n\n /**\n * On start of a touch gesture, store the pointer\n *\n * @param {Event} event The event\n * @private\n */\n onTouch(event) {\n if (new Date().valueOf() - this.touchTime > 50) {\n this.drag.pointer = this.getPointer(event.center);\n this.drag.pinched = false;\n this.pinch.scale = this.body.view.scale;\n // to avoid double fireing of this event because we have two hammer instances. (on canvas and on frame)\n this.touchTime = new Date().valueOf();\n }\n }\n\n /**\n * handle tap/click event: select/unselect a node\n *\n * @param {Event} event\n * @private\n */\n onTap(event) {\n const pointer = this.getPointer(event.center);\n const multiselect =\n this.selectionHandler.options.multiselect &&\n (event.changedPointers[0].ctrlKey || event.changedPointers[0].metaKey);\n\n this.checkSelectionChanges(pointer, multiselect);\n\n this.selectionHandler.commitAndEmit(pointer, event);\n this.selectionHandler.generateClickEvent(\"click\", event, pointer);\n }\n\n /**\n * handle doubletap event\n *\n * @param {Event} event\n * @private\n */\n onDoubleTap(event) {\n const pointer = this.getPointer(event.center);\n this.selectionHandler.generateClickEvent(\"doubleClick\", event, pointer);\n }\n\n /**\n * handle long tap event: multi select nodes\n *\n * @param {Event} event\n * @private\n */\n onHold(event) {\n const pointer = this.getPointer(event.center);\n const multiselect = this.selectionHandler.options.multiselect;\n\n this.checkSelectionChanges(pointer, multiselect);\n\n this.selectionHandler.commitAndEmit(pointer, event);\n this.selectionHandler.generateClickEvent(\"click\", event, pointer);\n this.selectionHandler.generateClickEvent(\"hold\", event, pointer);\n }\n\n /**\n * handle the release of the screen\n *\n * @param {Event} event\n * @private\n */\n onRelease(event) {\n if (new Date().valueOf() - this.touchTime > 10) {\n const pointer = this.getPointer(event.center);\n this.selectionHandler.generateClickEvent(\"release\", event, pointer);\n // to avoid double fireing of this event because we have two hammer instances. (on canvas and on frame)\n this.touchTime = new Date().valueOf();\n }\n }\n\n /**\n *\n * @param {Event} event\n */\n onContext(event) {\n const pointer = this.getPointer({ x: event.clientX, y: event.clientY });\n this.selectionHandler.generateClickEvent(\"oncontext\", event, pointer);\n }\n\n /**\n * Select and deselect nodes depending current selection change.\n *\n * @param {{x: number, y: number}} pointer\n * @param {boolean} [add=false]\n */\n checkSelectionChanges(pointer, add = false) {\n if (add === true) {\n this.selectionHandler.selectAdditionalOnPoint(pointer);\n } else {\n this.selectionHandler.selectOnPoint(pointer);\n }\n }\n\n /**\n * Remove all node and edge id's from the first set that are present in the second one.\n *\n * @param {{nodes: Array., edges: Array.}} firstSet\n * @param {{nodes: Array., edges: Array.}} secondSet\n * @returns {{nodes: Array., edges: Array.}}\n * @private\n */\n _determineDifference(firstSet, secondSet) {\n const arrayDiff = function (firstArr, secondArr) {\n const result = [];\n\n for (let i = 0; i < firstArr.length; i++) {\n const value = firstArr[i];\n if (secondArr.indexOf(value) === -1) {\n result.push(value);\n }\n }\n\n return result;\n };\n\n return {\n nodes: arrayDiff(firstSet.nodes, secondSet.nodes),\n edges: arrayDiff(firstSet.edges, secondSet.edges),\n };\n }\n\n /**\n * This function is called by onDragStart.\n * It is separated out because we can then overload it for the datamanipulation system.\n *\n * @param {Event} event\n * @private\n */\n onDragStart(event) {\n // if already dragging, do not start\n // this can happen on touch screens with multiple fingers\n if (this.drag.dragging) {\n return;\n }\n\n //in case the touch event was triggered on an external div, do the initial touch now.\n if (this.drag.pointer === undefined) {\n this.onTouch(event);\n }\n\n // note: drag.pointer is set in onTouch to get the initial touch location\n const node = this.selectionHandler.getNodeAt(this.drag.pointer);\n\n this.drag.dragging = true;\n this.drag.selection = [];\n this.drag.translation = Object.assign({}, this.body.view.translation); // copy the object\n this.drag.nodeId = undefined;\n\n if (event.srcEvent.shiftKey) {\n this.body.selectionBox.show = true;\n const pointer = this.getPointer(event.center);\n\n this.body.selectionBox.position.start = {\n x: this.canvas._XconvertDOMtoCanvas(pointer.x),\n y: this.canvas._YconvertDOMtoCanvas(pointer.y),\n };\n this.body.selectionBox.position.end = {\n x: this.canvas._XconvertDOMtoCanvas(pointer.x),\n y: this.canvas._YconvertDOMtoCanvas(pointer.y),\n };\n } else if (node !== undefined && this.options.dragNodes === true) {\n this.drag.nodeId = node.id;\n // select the clicked node if not yet selected\n if (node.isSelected() === false) {\n this.selectionHandler.setSelection({ nodes: [node.id] });\n }\n\n // after select to contain the node\n this.selectionHandler.generateClickEvent(\n \"dragStart\",\n event,\n this.drag.pointer\n );\n\n // create an array with the selected nodes and their original location and status\n for (const node of this.selectionHandler.getSelectedNodes()) {\n const s = {\n id: node.id,\n node: node,\n\n // store original x, y, xFixed and yFixed, make the node temporarily Fixed\n x: node.x,\n y: node.y,\n xFixed: node.options.fixed.x,\n yFixed: node.options.fixed.y,\n };\n\n node.options.fixed.x = true;\n node.options.fixed.y = true;\n\n this.drag.selection.push(s);\n }\n } else {\n // fallback if no node is selected and thus the view is dragged.\n this.selectionHandler.generateClickEvent(\n \"dragStart\",\n event,\n this.drag.pointer,\n undefined,\n true\n );\n }\n }\n\n /**\n * handle drag event\n *\n * @param {Event} event\n * @private\n */\n onDrag(event) {\n if (this.drag.pinched === true) {\n return;\n }\n\n // remove the focus on node if it is focussed on by the focusOnNode\n this.body.emitter.emit(\"unlockNode\");\n\n const pointer = this.getPointer(event.center);\n\n const selection = this.drag.selection;\n if (selection && selection.length && this.options.dragNodes === true) {\n this.selectionHandler.generateClickEvent(\"dragging\", event, pointer);\n\n // calculate delta's and new location\n const deltaX = pointer.x - this.drag.pointer.x;\n const deltaY = pointer.y - this.drag.pointer.y;\n\n // update position of all selected nodes\n selection.forEach((selection) => {\n const node = selection.node;\n // only move the node if it was not fixed initially\n if (selection.xFixed === false) {\n node.x = this.canvas._XconvertDOMtoCanvas(\n this.canvas._XconvertCanvasToDOM(selection.x) + deltaX\n );\n }\n // only move the node if it was not fixed initially\n if (selection.yFixed === false) {\n node.y = this.canvas._YconvertDOMtoCanvas(\n this.canvas._YconvertCanvasToDOM(selection.y) + deltaY\n );\n }\n });\n\n // start the simulation of the physics\n this.body.emitter.emit(\"startSimulation\");\n } else {\n // create selection box\n if (event.srcEvent.shiftKey) {\n this.selectionHandler.generateClickEvent(\n \"dragging\",\n event,\n pointer,\n undefined,\n true\n );\n\n // if the drag was not started properly because the click started outside the network div, start it now.\n if (this.drag.pointer === undefined) {\n this.onDragStart(event);\n return;\n }\n\n this.body.selectionBox.position.end = {\n x: this.canvas._XconvertDOMtoCanvas(pointer.x),\n y: this.canvas._YconvertDOMtoCanvas(pointer.y),\n };\n this.body.emitter.emit(\"_requestRedraw\");\n }\n\n // move the network\n if (this.options.dragView === true && !event.srcEvent.shiftKey) {\n this.selectionHandler.generateClickEvent(\n \"dragging\",\n event,\n pointer,\n undefined,\n true\n );\n\n // if the drag was not started properly because the click started outside the network div, start it now.\n if (this.drag.pointer === undefined) {\n this.onDragStart(event);\n return;\n }\n\n const diffX = pointer.x - this.drag.pointer.x;\n const diffY = pointer.y - this.drag.pointer.y;\n\n this.body.view.translation = {\n x: this.drag.translation.x + diffX,\n y: this.drag.translation.y + diffY,\n };\n this.body.emitter.emit(\"_requestRedraw\");\n }\n }\n }\n\n /**\n * handle drag start event\n *\n * @param {Event} event\n * @private\n */\n onDragEnd(event) {\n this.drag.dragging = false;\n\n if (this.body.selectionBox.show) {\n this.body.selectionBox.show = false;\n const selectionBoxPosition = this.body.selectionBox.position;\n const selectionBoxPositionMinMax = {\n minX: Math.min(\n selectionBoxPosition.start.x,\n selectionBoxPosition.end.x\n ),\n minY: Math.min(\n selectionBoxPosition.start.y,\n selectionBoxPosition.end.y\n ),\n maxX: Math.max(\n selectionBoxPosition.start.x,\n selectionBoxPosition.end.x\n ),\n maxY: Math.max(\n selectionBoxPosition.start.y,\n selectionBoxPosition.end.y\n ),\n };\n\n const toBeSelectedNodes = this.body.nodeIndices.filter((nodeId) => {\n const node = this.body.nodes[nodeId];\n return (\n node.x >= selectionBoxPositionMinMax.minX &&\n node.x <= selectionBoxPositionMinMax.maxX &&\n node.y >= selectionBoxPositionMinMax.minY &&\n node.y <= selectionBoxPositionMinMax.maxY\n );\n });\n\n toBeSelectedNodes.forEach((nodeId) =>\n this.selectionHandler.selectObject(this.body.nodes[nodeId])\n );\n\n const pointer = this.getPointer(event.center);\n this.selectionHandler.commitAndEmit(pointer, event);\n this.selectionHandler.generateClickEvent(\n \"dragEnd\",\n event,\n this.getPointer(event.center),\n undefined,\n true\n );\n this.body.emitter.emit(\"_requestRedraw\");\n } else {\n const selection = this.drag.selection;\n if (selection && selection.length) {\n selection.forEach(function (s) {\n // restore original xFixed and yFixed\n s.node.options.fixed.x = s.xFixed;\n s.node.options.fixed.y = s.yFixed;\n });\n this.selectionHandler.generateClickEvent(\n \"dragEnd\",\n event,\n this.getPointer(event.center)\n );\n this.body.emitter.emit(\"startSimulation\");\n } else {\n this.selectionHandler.generateClickEvent(\n \"dragEnd\",\n event,\n this.getPointer(event.center),\n undefined,\n true\n );\n this.body.emitter.emit(\"_requestRedraw\");\n }\n }\n }\n\n /**\n * Handle pinch event\n *\n * @param {Event} event The event\n * @private\n */\n onPinch(event) {\n const pointer = this.getPointer(event.center);\n\n this.drag.pinched = true;\n if (this.pinch[\"scale\"] === undefined) {\n this.pinch.scale = 1;\n }\n\n // TODO: enabled moving while pinching?\n const scale = this.pinch.scale * event.scale;\n this.zoom(scale, pointer);\n }\n\n /**\n * Zoom the network in or out\n *\n * @param {number} scale a number around 1, and between 0.01 and 10\n * @param {{x: number, y: number}} pointer Position on screen\n * @private\n */\n zoom(scale, pointer) {\n if (this.options.zoomView === true) {\n const scaleOld = this.body.view.scale;\n if (scale < 0.00001) {\n scale = 0.00001;\n }\n if (scale > 10) {\n scale = 10;\n }\n\n let preScaleDragPointer = undefined;\n if (this.drag !== undefined) {\n if (this.drag.dragging === true) {\n preScaleDragPointer = this.canvas.DOMtoCanvas(this.drag.pointer);\n }\n }\n // + this.canvas.frame.canvas.clientHeight / 2\n const translation = this.body.view.translation;\n\n const scaleFrac = scale / scaleOld;\n const tx = (1 - scaleFrac) * pointer.x + translation.x * scaleFrac;\n const ty = (1 - scaleFrac) * pointer.y + translation.y * scaleFrac;\n\n this.body.view.scale = scale;\n this.body.view.translation = { x: tx, y: ty };\n\n if (preScaleDragPointer != undefined) {\n const postScaleDragPointer =\n this.canvas.canvasToDOM(preScaleDragPointer);\n this.drag.pointer.x = postScaleDragPointer.x;\n this.drag.pointer.y = postScaleDragPointer.y;\n }\n\n this.body.emitter.emit(\"_requestRedraw\");\n\n if (scaleOld < scale) {\n this.body.emitter.emit(\"zoom\", {\n direction: \"+\",\n scale: this.body.view.scale,\n pointer: pointer,\n });\n } else {\n this.body.emitter.emit(\"zoom\", {\n direction: \"-\",\n scale: this.body.view.scale,\n pointer: pointer,\n });\n }\n }\n }\n\n /**\n * Event handler for mouse wheel event, used to zoom the timeline\n * See http://adomas.org/javascript-mouse-wheel/\n * https://github.com/EightMedia/hammer.js/issues/256\n *\n * @param {MouseEvent} event\n * @private\n */\n onMouseWheel(event) {\n if (this.options.zoomView === true) {\n // If delta is nonzero, handle it.\n // Basically, delta is now positive if wheel was scrolled up,\n // and negative, if wheel was scrolled down.\n if (event.deltaY !== 0) {\n // calculate the new scale\n let scale = this.body.view.scale;\n scale *=\n 1 + (event.deltaY < 0 ? 1 : -1) * (this.options.zoomSpeed * 0.1);\n\n // calculate the pointer location\n const pointer = this.getPointer({ x: event.clientX, y: event.clientY });\n\n // apply the new scale\n this.zoom(scale, pointer);\n }\n\n // Prevent default actions caused by mouse wheel.\n event.preventDefault();\n }\n }\n\n /**\n * Mouse move handler for checking whether the title moves over a node with a title.\n *\n * @param {Event} event\n * @private\n */\n onMouseMove(event) {\n const pointer = this.getPointer({ x: event.clientX, y: event.clientY });\n let popupVisible = false;\n\n // check if the previously selected node is still selected\n if (this.popup !== undefined) {\n if (this.popup.hidden === false) {\n this._checkHidePopup(pointer);\n }\n\n // if the popup was not hidden above\n if (this.popup.hidden === false) {\n popupVisible = true;\n this.popup.setPosition(pointer.x + 3, pointer.y - 5);\n this.popup.show();\n }\n }\n\n // if we bind the keyboard to the div, we have to highlight it to use it. This highlights it on mouse over.\n if (\n this.options.keyboard.autoFocus &&\n this.options.keyboard.bindToWindow === false &&\n this.options.keyboard.enabled === true\n ) {\n this.canvas.frame.focus();\n }\n\n // start a timeout that will check if the mouse is positioned above an element\n if (popupVisible === false) {\n if (this.popupTimer !== undefined) {\n clearInterval(this.popupTimer); // stop any running calculationTimer\n this.popupTimer = undefined;\n }\n if (!this.drag.dragging) {\n this.popupTimer = setTimeout(\n () => this._checkShowPopup(pointer),\n this.options.tooltipDelay\n );\n }\n }\n\n // adding hover highlights\n if (this.options.hover === true) {\n this.selectionHandler.hoverObject(event, pointer);\n }\n }\n\n /**\n * Check if there is an element on the given position in the network\n * (a node or edge). If so, and if this element has a title,\n * show a popup window with its title.\n *\n * @param {{x:number, y:number}} pointer\n * @private\n */\n _checkShowPopup(pointer) {\n const x = this.canvas._XconvertDOMtoCanvas(pointer.x);\n const y = this.canvas._YconvertDOMtoCanvas(pointer.y);\n const pointerObj = {\n left: x,\n top: y,\n right: x,\n bottom: y,\n };\n\n const previousPopupObjId =\n this.popupObj === undefined ? undefined : this.popupObj.id;\n let nodeUnderCursor = false;\n let popupType = \"node\";\n\n // check if a node is under the cursor.\n if (this.popupObj === undefined) {\n // search the nodes for overlap, select the top one in case of multiple nodes\n const nodeIndices = this.body.nodeIndices;\n const nodes = this.body.nodes;\n let node;\n const overlappingNodes = [];\n for (let i = 0; i < nodeIndices.length; i++) {\n node = nodes[nodeIndices[i]];\n if (node.isOverlappingWith(pointerObj) === true) {\n nodeUnderCursor = true;\n if (node.getTitle() !== undefined) {\n overlappingNodes.push(nodeIndices[i]);\n }\n }\n }\n\n if (overlappingNodes.length > 0) {\n // if there are overlapping nodes, select the last one, this is the one which is drawn on top of the others\n this.popupObj = nodes[overlappingNodes[overlappingNodes.length - 1]];\n // if you hover over a node, the title of the edge is not supposed to be shown.\n nodeUnderCursor = true;\n }\n }\n\n if (this.popupObj === undefined && nodeUnderCursor === false) {\n // search the edges for overlap\n const edgeIndices = this.body.edgeIndices;\n const edges = this.body.edges;\n let edge;\n const overlappingEdges = [];\n for (let i = 0; i < edgeIndices.length; i++) {\n edge = edges[edgeIndices[i]];\n if (edge.isOverlappingWith(pointerObj) === true) {\n if (edge.connected === true && edge.getTitle() !== undefined) {\n overlappingEdges.push(edgeIndices[i]);\n }\n }\n }\n\n if (overlappingEdges.length > 0) {\n this.popupObj = edges[overlappingEdges[overlappingEdges.length - 1]];\n popupType = \"edge\";\n }\n }\n\n if (this.popupObj !== undefined) {\n // show popup message window\n if (this.popupObj.id !== previousPopupObjId) {\n if (this.popup === undefined) {\n this.popup = new Popup(this.canvas.frame);\n }\n\n this.popup.popupTargetType = popupType;\n this.popup.popupTargetId = this.popupObj.id;\n\n // adjust a small offset such that the mouse cursor is located in the\n // bottom left location of the popup, and you can easily move over the\n // popup area\n this.popup.setPosition(pointer.x + 3, pointer.y - 5);\n this.popup.setText(this.popupObj.getTitle());\n this.popup.show();\n this.body.emitter.emit(\"showPopup\", this.popupObj.id);\n }\n } else {\n if (this.popup !== undefined) {\n this.popup.hide();\n this.body.emitter.emit(\"hidePopup\");\n }\n }\n }\n\n /**\n * Check if the popup must be hidden, which is the case when the mouse is no\n * longer hovering on the object\n *\n * @param {{x:number, y:number}} pointer\n * @private\n */\n _checkHidePopup(pointer) {\n const pointerObj = this.selectionHandler._pointerToPositionObject(pointer);\n\n let stillOnObj = false;\n if (this.popup.popupTargetType === \"node\") {\n if (this.body.nodes[this.popup.popupTargetId] !== undefined) {\n stillOnObj =\n this.body.nodes[this.popup.popupTargetId].isOverlappingWith(\n pointerObj\n );\n\n // if the mouse is still one the node, we have to check if it is not also on one that is drawn on top of it.\n // we initially only check stillOnObj because this is much faster.\n if (stillOnObj === true) {\n const overNode = this.selectionHandler.getNodeAt(pointer);\n stillOnObj =\n overNode === undefined\n ? false\n : overNode.id === this.popup.popupTargetId;\n }\n }\n } else {\n if (this.selectionHandler.getNodeAt(pointer) === undefined) {\n if (this.body.edges[this.popup.popupTargetId] !== undefined) {\n stillOnObj =\n this.body.edges[this.popup.popupTargetId].isOverlappingWith(\n pointerObj\n );\n }\n }\n }\n\n if (stillOnObj === false) {\n this.popupObj = undefined;\n this.popup.hide();\n this.body.emitter.emit(\"hidePopup\");\n }\n }\n}\n\nexport default InteractionHandler;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar FROZEN = {};\nvar SEALED = {};\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = FROZEN;\n else if (isSealed(key)) arrayIntegrityLevel = SEALED;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel === FROZEN) freeze(key);\n if (arrayIntegrityLevel === SEALED) seal(key);\n return this;\n }\n });\n}\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n","export interface Selectable {\n select(): void;\n unselect(): void;\n}\n\ninterface SingleTypeSelectionAccumulatorChanges {\n added: T[];\n deleted: T[];\n previous: T[];\n current: T[];\n}\n\n/**\n * @param prev\n * @param next\n */\nfunction diffSets(prev: ReadonlySet, next: ReadonlySet): Set {\n const diff = new Set();\n for (const item of next) {\n if (!prev.has(item)) {\n diff.add(item);\n }\n }\n return diff;\n}\n\nclass SingleTypeSelectionAccumulator {\n #previousSelection: ReadonlySet = new Set();\n #selection: Set = new Set();\n\n public get size(): number {\n return this.#selection.size;\n }\n\n public add(...items: readonly T[]): void {\n for (const item of items) {\n this.#selection.add(item);\n }\n }\n public delete(...items: readonly T[]): void {\n for (const item of items) {\n this.#selection.delete(item);\n }\n }\n public clear(): void {\n this.#selection.clear();\n }\n\n public getSelection(): T[] {\n return [...this.#selection];\n }\n\n public getChanges(): SingleTypeSelectionAccumulatorChanges {\n return {\n added: [...diffSets(this.#previousSelection, this.#selection)],\n deleted: [...diffSets(this.#selection, this.#previousSelection)],\n previous: [...new Set(this.#previousSelection)],\n current: [...new Set(this.#selection)],\n };\n }\n\n public commit(): SingleTypeSelectionAccumulatorChanges {\n const changes = this.getChanges();\n\n this.#previousSelection = this.#selection;\n this.#selection = new Set(this.#previousSelection);\n\n for (const item of changes.added) {\n item.select();\n }\n for (const item of changes.deleted) {\n item.unselect();\n }\n\n return changes;\n }\n}\n\n// TODO: These should be real types imported from node.ts and edge.ts that don't\n// exist yet.\ninterface Node extends Selectable {\n $: \"node\";\n}\ninterface Edge extends Selectable {\n $: \"edge\";\n}\n\nexport interface SelectionAccumulatorCommitSummary {\n nodes: SingleTypeSelectionAccumulatorChanges;\n edges: SingleTypeSelectionAccumulatorChanges;\n}\n\nexport type SelectionAccumulatorCommitHandler<\n CommitArgs extends readonly any[]\n> = (summary: SelectionAccumulatorCommitSummary, ...rest: CommitArgs) => void;\n\nexport class SelectionAccumulator {\n #nodes = new SingleTypeSelectionAccumulator();\n #edges = new SingleTypeSelectionAccumulator();\n\n readonly #commitHandler: SelectionAccumulatorCommitHandler;\n\n public constructor(\n commitHandler: SelectionAccumulatorCommitHandler = (): void => {}\n ) {\n this.#commitHandler = commitHandler;\n }\n\n public get sizeNodes(): number {\n return this.#nodes.size;\n }\n public get sizeEdges(): number {\n return this.#edges.size;\n }\n\n public getNodes(): Node[] {\n return this.#nodes.getSelection();\n }\n public getEdges(): Edge[] {\n return this.#edges.getSelection();\n }\n\n public addNodes(...nodes: readonly Node[]): void {\n this.#nodes.add(...nodes);\n }\n public addEdges(...edges: readonly Edge[]): void {\n this.#edges.add(...edges);\n }\n\n public deleteNodes(node: Node): void {\n this.#nodes.delete(node);\n }\n public deleteEdges(edge: Edge): void {\n this.#edges.delete(edge);\n }\n\n public clear(): void {\n this.#nodes.clear();\n this.#edges.clear();\n }\n\n public commit(...rest: CommitArgs): SelectionAccumulatorCommitSummary {\n const summary = {\n nodes: this.#nodes.commit(),\n edges: this.#edges.commit(),\n };\n this.#commitHandler(summary, ...rest);\n return summary;\n }\n}\n","import Node from \"./components/Node\";\nimport Edge from \"./components/Edge\";\nimport { SelectionAccumulator } from \"./selection\";\n\nimport { selectiveDeepExtend } from \"vis-util/esnext\";\n\n/**\n * The handler for selections\n */\nclass SelectionHandler {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n */\n constructor(body, canvas) {\n this.body = body;\n this.canvas = canvas;\n // TODO: Consider firing an event on any change to the selection, not\n // only those caused by clicks and taps. It would be easy to implement\n // now and (at least to me) it seems like something that could be\n // quite useful.\n this._selectionAccumulator = new SelectionAccumulator();\n this.hoverObj = { nodes: {}, edges: {} };\n\n this.options = {};\n this.defaultOptions = {\n multiselect: false,\n selectable: true,\n selectConnectedEdges: true,\n hoverConnectedEdges: true,\n };\n Object.assign(this.options, this.defaultOptions);\n\n this.body.emitter.on(\"_dataChanged\", () => {\n this.updateSelection();\n });\n }\n\n /**\n *\n * @param {object} [options]\n */\n setOptions(options) {\n if (options !== undefined) {\n const fields = [\n \"multiselect\",\n \"hoverConnectedEdges\",\n \"selectable\",\n \"selectConnectedEdges\",\n ];\n selectiveDeepExtend(fields, this.options, options);\n }\n }\n\n /**\n * handles the selection part of the tap;\n *\n * @param {{x: number, y: number}} pointer\n * @returns {boolean}\n */\n selectOnPoint(pointer) {\n let selected = false;\n if (this.options.selectable === true) {\n const obj = this.getNodeAt(pointer) || this.getEdgeAt(pointer);\n\n // unselect after getting the objects in order to restore width and height.\n this.unselectAll();\n\n if (obj !== undefined) {\n selected = this.selectObject(obj);\n }\n this.body.emitter.emit(\"_requestRedraw\");\n }\n return selected;\n }\n\n /**\n *\n * @param {{x: number, y: number}} pointer\n * @returns {boolean}\n */\n selectAdditionalOnPoint(pointer) {\n let selectionChanged = false;\n if (this.options.selectable === true) {\n const obj = this.getNodeAt(pointer) || this.getEdgeAt(pointer);\n\n if (obj !== undefined) {\n selectionChanged = true;\n if (obj.isSelected() === true) {\n this.deselectObject(obj);\n } else {\n this.selectObject(obj);\n }\n\n this.body.emitter.emit(\"_requestRedraw\");\n }\n }\n return selectionChanged;\n }\n\n /**\n * Create an object containing the standard fields for an event.\n *\n * @param {Event} event\n * @param {{x: number, y: number}} pointer Object with the x and y screen coordinates of the mouse\n * @returns {{}}\n * @private\n */\n _initBaseEvent(event, pointer) {\n const properties = {};\n\n properties[\"pointer\"] = {\n DOM: { x: pointer.x, y: pointer.y },\n canvas: this.canvas.DOMtoCanvas(pointer),\n };\n properties[\"event\"] = event;\n\n return properties;\n }\n\n /**\n * Generate an event which the user can catch.\n *\n * This adds some extra data to the event with respect to cursor position and\n * selected nodes and edges.\n *\n * @param {string} eventType Name of event to send\n * @param {Event} event\n * @param {{x: number, y: number}} pointer Object with the x and y screen coordinates of the mouse\n * @param {object | undefined} oldSelection If present, selection state before event occured\n * @param {boolean|undefined} [emptySelection=false] Indicate if selection data should be passed\n */\n generateClickEvent(\n eventType,\n event,\n pointer,\n oldSelection,\n emptySelection = false\n ) {\n const properties = this._initBaseEvent(event, pointer);\n\n if (emptySelection === true) {\n properties.nodes = [];\n properties.edges = [];\n } else {\n const tmp = this.getSelection();\n properties.nodes = tmp.nodes;\n properties.edges = tmp.edges;\n }\n\n if (oldSelection !== undefined) {\n properties[\"previousSelection\"] = oldSelection;\n }\n\n if (eventType == \"click\") {\n // For the time being, restrict this functionality to\n // just the click event.\n properties.items = this.getClickedItems(pointer);\n }\n\n if (event.controlEdge !== undefined) {\n properties.controlEdge = event.controlEdge;\n }\n\n this.body.emitter.emit(eventType, properties);\n }\n\n /**\n *\n * @param {object} obj\n * @param {boolean} [highlightEdges=this.options.selectConnectedEdges]\n * @returns {boolean}\n */\n selectObject(obj, highlightEdges = this.options.selectConnectedEdges) {\n if (obj !== undefined) {\n if (obj instanceof Node) {\n if (highlightEdges === true) {\n this._selectionAccumulator.addEdges(...obj.edges);\n }\n this._selectionAccumulator.addNodes(obj);\n } else {\n this._selectionAccumulator.addEdges(obj);\n }\n return true;\n }\n return false;\n }\n\n /**\n *\n * @param {object} obj\n */\n deselectObject(obj) {\n if (obj.isSelected() === true) {\n obj.selected = false;\n this._removeFromSelection(obj);\n }\n }\n\n /**\n * retrieve all nodes overlapping with given object\n *\n * @param {object} object An object with parameters left, top, right, bottom\n * @returns {number[]} An array with id's of the overlapping nodes\n * @private\n */\n _getAllNodesOverlappingWith(object) {\n const overlappingNodes = [];\n const nodes = this.body.nodes;\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const nodeId = this.body.nodeIndices[i];\n if (nodes[nodeId].isOverlappingWith(object)) {\n overlappingNodes.push(nodeId);\n }\n }\n return overlappingNodes;\n }\n\n /**\n * Return a position object in canvasspace from a single point in screenspace\n *\n * @param {{x: number, y: number}} pointer\n * @returns {{left: number, top: number, right: number, bottom: number}}\n * @private\n */\n _pointerToPositionObject(pointer) {\n const canvasPos = this.canvas.DOMtoCanvas(pointer);\n return {\n left: canvasPos.x - 1,\n top: canvasPos.y + 1,\n right: canvasPos.x + 1,\n bottom: canvasPos.y - 1,\n };\n }\n\n /**\n * Get the top node at the passed point (like a click)\n *\n * @param {{x: number, y: number}} pointer\n * @param {boolean} [returnNode=true]\n * @returns {Node | undefined} node\n */\n getNodeAt(pointer, returnNode = true) {\n // we first check if this is an navigation controls element\n const positionObject = this._pointerToPositionObject(pointer);\n const overlappingNodes = this._getAllNodesOverlappingWith(positionObject);\n // if there are overlapping nodes, select the last one, this is the\n // one which is drawn on top of the others\n if (overlappingNodes.length > 0) {\n if (returnNode === true) {\n return this.body.nodes[overlappingNodes[overlappingNodes.length - 1]];\n } else {\n return overlappingNodes[overlappingNodes.length - 1];\n }\n } else {\n return undefined;\n }\n }\n\n /**\n * retrieve all edges overlapping with given object, selector is around center\n *\n * @param {object} object An object with parameters left, top, right, bottom\n * @param {number[]} overlappingEdges An array with id's of the overlapping nodes\n * @private\n */\n _getEdgesOverlappingWith(object, overlappingEdges) {\n const edges = this.body.edges;\n for (let i = 0; i < this.body.edgeIndices.length; i++) {\n const edgeId = this.body.edgeIndices[i];\n if (edges[edgeId].isOverlappingWith(object)) {\n overlappingEdges.push(edgeId);\n }\n }\n }\n\n /**\n * retrieve all nodes overlapping with given object\n *\n * @param {object} object An object with parameters left, top, right, bottom\n * @returns {number[]} An array with id's of the overlapping nodes\n * @private\n */\n _getAllEdgesOverlappingWith(object) {\n const overlappingEdges = [];\n this._getEdgesOverlappingWith(object, overlappingEdges);\n return overlappingEdges;\n }\n\n /**\n * Get the edges nearest to the passed point (like a click)\n *\n * @param {{x: number, y: number}} pointer\n * @param {boolean} [returnEdge=true]\n * @returns {Edge | undefined} node\n */\n getEdgeAt(pointer, returnEdge = true) {\n // Iterate over edges, pick closest within 10\n const canvasPos = this.canvas.DOMtoCanvas(pointer);\n let mindist = 10;\n let overlappingEdge = null;\n const edges = this.body.edges;\n for (let i = 0; i < this.body.edgeIndices.length; i++) {\n const edgeId = this.body.edgeIndices[i];\n const edge = edges[edgeId];\n if (edge.connected) {\n const xFrom = edge.from.x;\n const yFrom = edge.from.y;\n const xTo = edge.to.x;\n const yTo = edge.to.y;\n const dist = edge.edgeType.getDistanceToEdge(\n xFrom,\n yFrom,\n xTo,\n yTo,\n canvasPos.x,\n canvasPos.y\n );\n if (dist < mindist) {\n overlappingEdge = edgeId;\n mindist = dist;\n }\n }\n }\n if (overlappingEdge !== null) {\n if (returnEdge === true) {\n return this.body.edges[overlappingEdge];\n } else {\n return overlappingEdge;\n }\n } else {\n return undefined;\n }\n }\n\n /**\n * Add object to the selection array.\n *\n * @param {object} obj\n * @private\n */\n _addToHover(obj) {\n if (obj instanceof Node) {\n this.hoverObj.nodes[obj.id] = obj;\n } else {\n this.hoverObj.edges[obj.id] = obj;\n }\n }\n\n /**\n * Remove a single option from selection.\n *\n * @param {object} obj\n * @private\n */\n _removeFromSelection(obj) {\n if (obj instanceof Node) {\n this._selectionAccumulator.deleteNodes(obj);\n this._selectionAccumulator.deleteEdges(...obj.edges);\n } else {\n this._selectionAccumulator.deleteEdges(obj);\n }\n }\n\n /**\n * Unselect all nodes and edges.\n */\n unselectAll() {\n this._selectionAccumulator.clear();\n }\n\n /**\n * return the number of selected nodes\n *\n * @returns {number}\n */\n getSelectedNodeCount() {\n return this._selectionAccumulator.sizeNodes;\n }\n\n /**\n * return the number of selected edges\n *\n * @returns {number}\n */\n getSelectedEdgeCount() {\n return this._selectionAccumulator.sizeEdges;\n }\n\n /**\n * select the edges connected to the node that is being selected\n *\n * @param {Node} node\n * @private\n */\n _hoverConnectedEdges(node) {\n for (let i = 0; i < node.edges.length; i++) {\n const edge = node.edges[i];\n edge.hover = true;\n this._addToHover(edge);\n }\n }\n\n /**\n * Remove the highlight from a node or edge, in response to mouse movement\n *\n * @param {Event} event\n * @param {{x: number, y: number}} pointer object with the x and y screen coordinates of the mouse\n * @param {Node|vis.Edge} object\n * @private\n */\n emitBlurEvent(event, pointer, object) {\n const properties = this._initBaseEvent(event, pointer);\n\n if (object.hover === true) {\n object.hover = false;\n if (object instanceof Node) {\n properties.node = object.id;\n this.body.emitter.emit(\"blurNode\", properties);\n } else {\n properties.edge = object.id;\n this.body.emitter.emit(\"blurEdge\", properties);\n }\n }\n }\n\n /**\n * Create the highlight for a node or edge, in response to mouse movement\n *\n * @param {Event} event\n * @param {{x: number, y: number}} pointer object with the x and y screen coordinates of the mouse\n * @param {Node|vis.Edge} object\n * @returns {boolean} hoverChanged\n * @private\n */\n emitHoverEvent(event, pointer, object) {\n const properties = this._initBaseEvent(event, pointer);\n let hoverChanged = false;\n\n if (object.hover === false) {\n object.hover = true;\n this._addToHover(object);\n hoverChanged = true;\n if (object instanceof Node) {\n properties.node = object.id;\n this.body.emitter.emit(\"hoverNode\", properties);\n } else {\n properties.edge = object.id;\n this.body.emitter.emit(\"hoverEdge\", properties);\n }\n }\n\n return hoverChanged;\n }\n\n /**\n * Perform actions in response to a mouse movement.\n *\n * @param {Event} event\n * @param {{x: number, y: number}} pointer | object with the x and y screen coordinates of the mouse\n */\n hoverObject(event, pointer) {\n let object = this.getNodeAt(pointer);\n if (object === undefined) {\n object = this.getEdgeAt(pointer);\n }\n\n let hoverChanged = false;\n // remove all node hover highlights\n for (const nodeId in this.hoverObj.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.hoverObj.nodes, nodeId)) {\n if (\n object === undefined ||\n (object instanceof Node && object.id != nodeId) ||\n object instanceof Edge\n ) {\n this.emitBlurEvent(event, pointer, this.hoverObj.nodes[nodeId]);\n delete this.hoverObj.nodes[nodeId];\n hoverChanged = true;\n }\n }\n }\n\n // removing all edge hover highlights\n for (const edgeId in this.hoverObj.edges) {\n if (Object.prototype.hasOwnProperty.call(this.hoverObj.edges, edgeId)) {\n // if the hover has been changed here it means that the node has been hovered over or off\n // we then do not use the emitBlurEvent method here.\n if (hoverChanged === true) {\n this.hoverObj.edges[edgeId].hover = false;\n delete this.hoverObj.edges[edgeId];\n }\n // if the blur remains the same and the object is undefined (mouse off) or another\n // edge has been hovered, or another node has been hovered we blur the edge.\n else if (\n object === undefined ||\n (object instanceof Edge && object.id != edgeId) ||\n (object instanceof Node && !object.hover)\n ) {\n this.emitBlurEvent(event, pointer, this.hoverObj.edges[edgeId]);\n delete this.hoverObj.edges[edgeId];\n hoverChanged = true;\n }\n }\n }\n\n if (object !== undefined) {\n const hoveredEdgesCount = Object.keys(this.hoverObj.edges).length;\n const hoveredNodesCount = Object.keys(this.hoverObj.nodes).length;\n const newOnlyHoveredEdge =\n object instanceof Edge &&\n hoveredEdgesCount === 0 &&\n hoveredNodesCount === 0;\n const newOnlyHoveredNode =\n object instanceof Node &&\n hoveredEdgesCount === 0 &&\n hoveredNodesCount === 0;\n\n if (hoverChanged || newOnlyHoveredEdge || newOnlyHoveredNode) {\n hoverChanged = this.emitHoverEvent(event, pointer, object);\n }\n\n if (object instanceof Node && this.options.hoverConnectedEdges === true) {\n this._hoverConnectedEdges(object);\n }\n }\n\n if (hoverChanged === true) {\n this.body.emitter.emit(\"_requestRedraw\");\n }\n }\n\n /**\n * Commit the selection changes but don't emit any events.\n */\n commitWithoutEmitting() {\n this._selectionAccumulator.commit();\n }\n\n /**\n * Select and deselect nodes depending current selection change.\n *\n * For changing nodes, select/deselect events are fired.\n *\n * NOTE: For a given edge, if one connecting node is deselected and with the\n * same click the other node is selected, no events for the edge will fire. It\n * was selected and it will remain selected.\n *\n * @param {{x: number, y: number}} pointer - The x and y coordinates of the\n * click, tap, dragend… that triggered this.\n * @param {UIEvent} event - The event that triggered this.\n */\n commitAndEmit(pointer, event) {\n let selected = false;\n\n const selectionChanges = this._selectionAccumulator.commit();\n const previousSelection = {\n nodes: selectionChanges.nodes.previous,\n edges: selectionChanges.edges.previous,\n };\n\n if (selectionChanges.edges.deleted.length > 0) {\n this.generateClickEvent(\n \"deselectEdge\",\n event,\n pointer,\n previousSelection\n );\n selected = true;\n }\n\n if (selectionChanges.nodes.deleted.length > 0) {\n this.generateClickEvent(\n \"deselectNode\",\n event,\n pointer,\n previousSelection\n );\n selected = true;\n }\n\n if (selectionChanges.nodes.added.length > 0) {\n this.generateClickEvent(\"selectNode\", event, pointer);\n selected = true;\n }\n\n if (selectionChanges.edges.added.length > 0) {\n this.generateClickEvent(\"selectEdge\", event, pointer);\n selected = true;\n }\n\n // fire the select event if anything has been selected or deselected\n if (selected === true) {\n // select or unselect\n this.generateClickEvent(\"select\", event, pointer);\n }\n }\n\n /**\n * Retrieve the currently selected node and edge ids.\n *\n * @returns {{nodes: Array., edges: Array.}} Arrays with the\n * ids of the selected nodes and edges.\n */\n getSelection() {\n return {\n nodes: this.getSelectedNodeIds(),\n edges: this.getSelectedEdgeIds(),\n };\n }\n\n /**\n * Retrieve the currently selected nodes.\n *\n * @returns {Array} An array with selected nodes.\n */\n getSelectedNodes() {\n return this._selectionAccumulator.getNodes();\n }\n\n /**\n * Retrieve the currently selected edges.\n *\n * @returns {Array} An array with selected edges.\n */\n getSelectedEdges() {\n return this._selectionAccumulator.getEdges();\n }\n\n /**\n * Retrieve the currently selected node ids.\n *\n * @returns {Array} An array with the ids of the selected nodes.\n */\n getSelectedNodeIds() {\n return this._selectionAccumulator.getNodes().map((node) => node.id);\n }\n\n /**\n * Retrieve the currently selected edge ids.\n *\n * @returns {Array} An array with the ids of the selected edges.\n */\n getSelectedEdgeIds() {\n return this._selectionAccumulator.getEdges().map((edge) => edge.id);\n }\n\n /**\n * Updates the current selection\n *\n * @param {{nodes: Array., edges: Array.}} selection\n * @param {object} options Options\n */\n setSelection(selection, options = {}) {\n if (!selection || (!selection.nodes && !selection.edges)) {\n throw new TypeError(\n \"Selection must be an object with nodes and/or edges properties\"\n );\n }\n\n // first unselect any selected node, if option is true or undefined\n if (options.unselectAll || options.unselectAll === undefined) {\n this.unselectAll();\n }\n if (selection.nodes) {\n for (const id of selection.nodes) {\n const node = this.body.nodes[id];\n if (!node) {\n throw new RangeError('Node with id \"' + id + '\" not found');\n }\n // don't select edges with it\n this.selectObject(node, options.highlightEdges);\n }\n }\n\n if (selection.edges) {\n for (const id of selection.edges) {\n const edge = this.body.edges[id];\n if (!edge) {\n throw new RangeError('Edge with id \"' + id + '\" not found');\n }\n this.selectObject(edge);\n }\n }\n this.body.emitter.emit(\"_requestRedraw\");\n this._selectionAccumulator.commit();\n }\n\n /**\n * select zero or more nodes with the option to highlight edges\n *\n * @param {number[] | string[]} selection An array with the ids of the\n * selected nodes.\n * @param {boolean} [highlightEdges]\n */\n selectNodes(selection, highlightEdges = true) {\n if (!selection || selection.length === undefined)\n throw \"Selection must be an array with ids\";\n\n this.setSelection({ nodes: selection }, { highlightEdges: highlightEdges });\n }\n\n /**\n * select zero or more edges\n *\n * @param {number[] | string[]} selection An array with the ids of the\n * selected nodes.\n */\n selectEdges(selection) {\n if (!selection || selection.length === undefined)\n throw \"Selection must be an array with ids\";\n\n this.setSelection({ edges: selection });\n }\n\n /**\n * Validate the selection: remove ids of nodes which no longer exist\n *\n * @private\n */\n updateSelection() {\n for (const node in this._selectionAccumulator.getNodes()) {\n if (!Object.prototype.hasOwnProperty.call(this.body.nodes, node.id)) {\n this._selectionAccumulator.deleteNodes(node);\n }\n }\n for (const edge in this._selectionAccumulator.getEdges()) {\n if (!Object.prototype.hasOwnProperty.call(this.body.edges, edge.id)) {\n this._selectionAccumulator.deleteEdges(edge);\n }\n }\n }\n\n /**\n * Determine all the visual elements clicked which are on the given point.\n *\n * All elements are returned; this includes nodes, edges and their labels.\n * The order returned is from highest to lowest, i.e. element 0 of the return\n * value is the topmost item clicked on.\n *\n * The return value consists of an array of the following possible elements:\n *\n * - `{nodeId:number}` - node with given id clicked on\n * - `{nodeId:number, labelId:0}` - label of node with given id clicked on\n * - `{edgeId:number}` - edge with given id clicked on\n * - `{edge:number, labelId:0}` - label of edge with given id clicked on\n *\n * ## NOTES\n *\n * - Currently, there is only one label associated with a node or an edge,\n * but this is expected to change somewhere in the future.\n * - Since there is no z-indexing yet, it is not really possible to set the nodes and\n * edges in the correct order. For the time being, nodes come first.\n *\n * @param {point} pointer mouse position in screen coordinates\n * @returns {Array.}\n * @private\n */\n getClickedItems(pointer) {\n const point = this.canvas.DOMtoCanvas(pointer);\n const items = [];\n\n // Note reverse order; we want the topmost clicked items to be first in the array\n // Also note that selected nodes are disregarded here; these normally display on top\n const nodeIndices = this.body.nodeIndices;\n const nodes = this.body.nodes;\n for (let i = nodeIndices.length - 1; i >= 0; i--) {\n const node = nodes[nodeIndices[i]];\n const ret = node.getItemsOnPoint(point);\n items.push.apply(items, ret); // Append the return value to the running list.\n }\n\n const edgeIndices = this.body.edgeIndices;\n const edges = this.body.edges;\n for (let i = edgeIndices.length - 1; i >= 0; i--) {\n const edge = edges[edgeIndices[i]];\n const ret = edge.getItemsOnPoint(point);\n items.push.apply(items, ret); // Append the return value to the running list.\n }\n\n return items;\n }\n}\n\nexport default SelectionHandler;\n","/**\n * Helper classes for LayoutEngine.\n *\n * Strategy pattern for usage of direction methods for hierarchical layouts.\n */\n\n/**\n * Interface definition for direction strategy classes.\n *\n * This class describes the interface for the Strategy\n * pattern classes used to differentiate horizontal and vertical\n * direction of hierarchical results.\n *\n * For a given direction, one coordinate will be 'fixed', meaning that it is\n * determined by level.\n * The other coordinate is 'unfixed', meaning that the nodes on a given level\n * can still move along that coordinate. So:\n *\n * - `vertical` layout: `x` unfixed, `y` fixed per level\n * - `horizontal` layout: `x` fixed per level, `y` unfixed\n *\n * The local methods are stubs and should be regarded as abstract.\n * Derived classes **must** implement all the methods themselves.\n *\n * @private\n */\nclass DirectionInterface {\n /**\n * @ignore\n */\n abstract() {\n throw new Error(\"Can't instantiate abstract class!\");\n }\n\n /**\n * This is a dummy call which is used to suppress the jsdoc errors of type:\n *\n * \"'param' is assigned a value but never used\"\n *\n * @ignore\n */\n fake_use() {\n // Do nothing special\n }\n\n /**\n * Type to use to translate dynamic curves to, in the case of hierarchical layout.\n * Dynamic curves do not work for these.\n *\n * The value should be perpendicular to the actual direction of the layout.\n *\n * @returns {string} Direction, either 'vertical' or 'horizontal'\n */\n curveType() {\n return this.abstract();\n }\n\n /**\n * Return the value of the coordinate that is not fixed for this direction.\n *\n * @param {Node} node The node to read\n * @returns {number} Value of the unfixed coordinate\n */\n getPosition(node) {\n this.fake_use(node);\n return this.abstract();\n }\n\n /**\n * Set the value of the coordinate that is not fixed for this direction.\n *\n * @param {Node} node The node to adjust\n * @param {number} position\n * @param {number} [level] if specified, the hierarchy level that this node should be fixed to\n */\n setPosition(node, position, level = undefined) {\n this.fake_use(node, position, level);\n this.abstract();\n }\n\n /**\n * Get the width of a tree.\n *\n * A `tree` here is a subset of nodes within the network which are not connected to other nodes,\n * only among themselves. In essence, it is a sub-network.\n *\n * @param {number} index The index number of a tree\n * @returns {number} the width of a tree in the view coordinates\n */\n getTreeSize(index) {\n this.fake_use(index);\n return this.abstract();\n }\n\n /**\n * Sort array of nodes on the unfixed coordinates.\n *\n * Note:** chrome has non-stable sorting implementation, which\n * has a tendency to change the order of the array items,\n * even if the custom sort function returns 0.\n *\n * For this reason, an external sort implementation is used,\n * which has the added benefit of being faster than the standard\n * platforms implementation. This has been verified on `node.js`,\n * `firefox` and `chrome` (all linux).\n *\n * @param {Array.} nodeArray array of nodes to sort\n */\n sort(nodeArray) {\n this.fake_use(nodeArray);\n this.abstract();\n }\n\n /**\n * Assign the fixed coordinate of the node to the given level\n *\n * @param {Node} node The node to adjust\n * @param {number} level The level to fix to\n */\n fix(node, level) {\n this.fake_use(node, level);\n this.abstract();\n }\n\n /**\n * Add an offset to the unfixed coordinate of the given node.\n *\n * @param {NodeId} nodeId Id of the node to adjust\n * @param {number} diff Offset to add to the unfixed coordinate\n */\n shift(nodeId, diff) {\n this.fake_use(nodeId, diff);\n this.abstract();\n }\n}\n\n/**\n * Vertical Strategy\n *\n * Coordinate `y` is fixed on levels, coordinate `x` is unfixed.\n *\n * @augments DirectionInterface\n * @private\n */\nclass VerticalStrategy extends DirectionInterface {\n /**\n * Constructor\n *\n * @param {object} layout reference to the parent LayoutEngine instance.\n */\n constructor(layout) {\n super();\n this.layout = layout;\n }\n\n /** @inheritDoc */\n curveType() {\n return \"horizontal\";\n }\n\n /** @inheritDoc */\n getPosition(node) {\n return node.x;\n }\n\n /** @inheritDoc */\n setPosition(node, position, level = undefined) {\n if (level !== undefined) {\n this.layout.hierarchical.addToOrdering(node, level);\n }\n node.x = position;\n }\n\n /** @inheritDoc */\n getTreeSize(index) {\n const res = this.layout.hierarchical.getTreeSize(\n this.layout.body.nodes,\n index\n );\n return { min: res.min_x, max: res.max_x };\n }\n\n /** @inheritDoc */\n sort(nodeArray) {\n nodeArray.sort(function (a, b) {\n return a.x - b.x;\n });\n }\n\n /** @inheritDoc */\n fix(node, level) {\n node.y = this.layout.options.hierarchical.levelSeparation * level;\n node.options.fixed.y = true;\n }\n\n /** @inheritDoc */\n shift(nodeId, diff) {\n this.layout.body.nodes[nodeId].x += diff;\n }\n}\n\n/**\n * Horizontal Strategy\n *\n * Coordinate `x` is fixed on levels, coordinate `y` is unfixed.\n *\n * @augments DirectionInterface\n * @private\n */\nclass HorizontalStrategy extends DirectionInterface {\n /**\n * Constructor\n *\n * @param {object} layout reference to the parent LayoutEngine instance.\n */\n constructor(layout) {\n super();\n this.layout = layout;\n }\n\n /** @inheritDoc */\n curveType() {\n return \"vertical\";\n }\n\n /** @inheritDoc */\n getPosition(node) {\n return node.y;\n }\n\n /** @inheritDoc */\n setPosition(node, position, level = undefined) {\n if (level !== undefined) {\n this.layout.hierarchical.addToOrdering(node, level);\n }\n node.y = position;\n }\n\n /** @inheritDoc */\n getTreeSize(index) {\n const res = this.layout.hierarchical.getTreeSize(\n this.layout.body.nodes,\n index\n );\n return { min: res.min_y, max: res.max_y };\n }\n\n /** @inheritDoc */\n sort(nodeArray) {\n nodeArray.sort(function (a, b) {\n return a.y - b.y;\n });\n }\n\n /** @inheritDoc */\n fix(node, level) {\n node.x = this.layout.options.hierarchical.levelSeparation * level;\n node.options.fixed.x = true;\n }\n\n /** @inheritDoc */\n shift(nodeId, diff) {\n this.layout.body.nodes[nodeId].y += diff;\n }\n}\n\nexport { HorizontalStrategy, VerticalStrategy };\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nrequire('../../../modules/es.array.every');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Array').every;\n","'use strict';\nvar isPrototypeOf = require('../../internals/object-is-prototype-of');\nvar method = require('../array/virtual/every');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.every;\n return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.every) ? method : own;\n};\n","'use strict';\nvar parent = require('../../es/instance/every');\n\nmodule.exports = parent;\n","type Levels = Record;\ntype Id = string | number;\ninterface Edge {\n connected: boolean;\n from: Node;\n fromId: Id;\n to: Node;\n toId: Id;\n}\ninterface Node {\n id: Id;\n edges: Edge[];\n}\n\n/**\n * Try to assign levels to nodes according to their positions in the cyclic “hierarchy”.\n *\n * @param nodes - Visible nodes of the graph.\n * @param levels - If present levels will be added to it, if not a new object will be created.\n * @returns Populated node levels.\n */\nfunction fillLevelsByDirectionCyclic(\n nodes: Map,\n levels: Levels\n): Levels {\n const edges = new Set();\n nodes.forEach((node): void => {\n node.edges.forEach((edge): void => {\n if (edge.connected) {\n edges.add(edge);\n }\n });\n });\n\n edges.forEach((edge): void => {\n const fromId = edge.from.id;\n const toId = edge.to.id;\n\n if (levels[fromId] == null) {\n levels[fromId] = 0;\n }\n\n if (levels[toId] == null || levels[fromId] >= levels[toId]) {\n levels[toId] = levels[fromId] + 1;\n }\n });\n\n return levels;\n}\n\n/**\n * Assign levels to nodes according to their positions in the hierarchy. Leaves will be lined up at the bottom and all other nodes as close to their children as possible.\n *\n * @param nodes - Visible nodes of the graph.\n * @returns Populated node levels.\n */\nexport function fillLevelsByDirectionLeaves(nodes: Map): Levels {\n return fillLevelsByDirection(\n // Pick only leaves (nodes without children).\n (node): boolean =>\n node.edges\n // Take only visible nodes into account.\n .filter((edge): boolean => nodes.has(edge.toId))\n // Check that all edges lead to this node (leaf).\n .every((edge): boolean => edge.to === node),\n // Use the lowest level.\n (newLevel, oldLevel): boolean => oldLevel > newLevel,\n // Go against the direction of the edges.\n \"from\",\n nodes\n );\n}\n\n/**\n * Assign levels to nodes according to their positions in the hierarchy. Roots will be lined up at the top and all nodes as close to their parents as possible.\n *\n * @param nodes - Visible nodes of the graph.\n * @returns Populated node levels.\n */\nexport function fillLevelsByDirectionRoots(nodes: Map): Levels {\n return fillLevelsByDirection(\n // Pick only roots (nodes without parents).\n (node): boolean =>\n node.edges\n // Take only visible nodes into account.\n .filter((edge): boolean => nodes.has(edge.toId))\n // Check that all edges lead from this node (root).\n .every((edge): boolean => edge.from === node),\n // Use the highest level.\n (newLevel, oldLevel): boolean => oldLevel < newLevel,\n // Go in the direction of the edges.\n \"to\",\n nodes\n );\n}\n\n/**\n * Assign levels to nodes according to their positions in the hierarchy.\n *\n * @param isEntryNode - Checks and return true if the graph should be traversed from this node.\n * @param shouldLevelBeReplaced - Checks and returns true if the level of given node should be updated to the new value.\n * @param direction - Wheter the graph should be traversed in the direction of the edges `\"to\"` or in the other way `\"from\"`.\n * @param nodes - Visible nodes of the graph.\n * @returns Populated node levels.\n */\nfunction fillLevelsByDirection(\n isEntryNode: (node: Node) => boolean,\n shouldLevelBeReplaced: (newLevel: number, oldLevel: number) => boolean,\n direction: \"to\" | \"from\",\n nodes: Map\n): Levels {\n const levels = Object.create(null);\n\n // If acyclic, the graph can be walked through with (most likely way) fewer\n // steps than the number bellow. The exact value isn't too important as long\n // as it's quick to compute (doesn't impact acyclic graphs too much), is\n // higher than the number of steps actually needed (doesn't cut off before\n // acyclic graph is walked through) and prevents infinite loops (cuts off for\n // cyclic graphs).\n const limit = [...nodes.values()].reduce(\n (acc, node): number => acc + 1 + node.edges.length,\n 0\n );\n\n const edgeIdProp: \"fromId\" | \"toId\" = (direction + \"Id\") as \"fromId\" | \"toId\";\n const newLevelDiff = direction === \"to\" ? 1 : -1;\n\n for (const [entryNodeId, entryNode] of nodes) {\n if (\n // Skip if the node is not visible.\n !nodes.has(entryNodeId) ||\n // Skip if the node is not an entry node.\n !isEntryNode(entryNode)\n ) {\n continue;\n }\n\n // Line up all the entry nodes on level 0.\n levels[entryNodeId] = 0;\n\n const stack: Node[] = [entryNode];\n let done = 0;\n let node: Node | undefined;\n while ((node = stack.pop())) {\n if (!nodes.has(entryNodeId)) {\n // Skip if the node is not visible.\n continue;\n }\n\n const newLevel = levels[node.id] + newLevelDiff;\n\n node.edges\n .filter(\n (edge): boolean =>\n // Ignore disconnected edges.\n edge.connected &&\n // Ignore circular edges.\n edge.to !== edge.from &&\n // Ignore edges leading to the node that's currently being processed.\n edge[direction] !== node &&\n // Ignore edges connecting to an invisible node.\n nodes.has(edge.toId) &&\n // Ignore edges connecting from an invisible node.\n nodes.has(edge.fromId)\n )\n .forEach((edge): void => {\n const targetNodeId = edge[edgeIdProp];\n const oldLevel = levels[targetNodeId];\n\n if (oldLevel == null || shouldLevelBeReplaced(newLevel, oldLevel)) {\n levels[targetNodeId] = newLevel;\n stack.push(edge[direction]);\n }\n });\n\n if (done > limit) {\n // This would run forever on a cyclic graph.\n return fillLevelsByDirectionCyclic(nodes, levels);\n } else {\n ++done;\n }\n }\n }\n\n return levels;\n}\n","/**\n * There's a mix-up with terms in the code. Following are the formal definitions:\n *\n * tree - a strict hierarchical network, i.e. every node has at most one parent\n * forest - a collection of trees. These distinct trees are thus not connected.\n *\n * So:\n * - in a network that is not a tree, there exist nodes with multiple parents.\n * - a network consisting of unconnected sub-networks, of which at least one\n * is not a tree, is not a forest.\n *\n * In the code, the definitions are:\n *\n * tree - any disconnected sub-network, strict hierarchical or not.\n * forest - a bunch of these sub-networks\n *\n * The difference between tree and not-tree is important in the code, notably within\n * to the block-shifting algorithm. The algorithm assumes formal trees and fails\n * for not-trees, often in a spectacular manner (search for 'exploding network' in the issues).\n *\n * In order to distinguish the definitions in the following code, the adjective 'formal' is\n * used. If 'formal' is absent, you must assume the non-formal definition.\n *\n * ----------------------------------------------------------------------------------\n * NOTES\n * =====\n *\n * A hierarchical layout is a different thing from a hierarchical network.\n * The layout is a way to arrange the nodes in the view; this can be done\n * on non-hierarchical networks as well. The converse is also possible.\n */\n\"use strict\";\nimport {\n Alea,\n deepExtend,\n forEach,\n mergeOptions,\n selectiveDeepExtend,\n} from \"vis-util/esnext\";\nimport NetworkUtil from \"../NetworkUtil\";\nimport {\n HorizontalStrategy,\n VerticalStrategy,\n} from \"./components/DirectionStrategy.js\";\nimport {\n fillLevelsByDirectionLeaves,\n fillLevelsByDirectionRoots,\n} from \"./layout-engine\";\n\n/**\n * Container for derived data on current network, relating to hierarchy.\n *\n * @private\n */\nclass HierarchicalStatus {\n /**\n * @ignore\n */\n constructor() {\n this.childrenReference = {}; // child id's per node id\n this.parentReference = {}; // parent id's per node id\n this.trees = {}; // tree id per node id; i.e. to which tree does given node id belong\n\n this.distributionOrdering = {}; // The nodes per level, in the display order\n this.levels = {}; // hierarchy level per node id\n this.distributionIndex = {}; // The position of the node in the level sorting order, per node id.\n\n this.isTree = false; // True if current network is a formal tree\n this.treeIndex = -1; // Highest tree id in current network.\n }\n\n /**\n * Add the relation between given nodes to the current state.\n *\n * @param {Node.id} parentNodeId\n * @param {Node.id} childNodeId\n */\n addRelation(parentNodeId, childNodeId) {\n if (this.childrenReference[parentNodeId] === undefined) {\n this.childrenReference[parentNodeId] = [];\n }\n this.childrenReference[parentNodeId].push(childNodeId);\n\n if (this.parentReference[childNodeId] === undefined) {\n this.parentReference[childNodeId] = [];\n }\n this.parentReference[childNodeId].push(parentNodeId);\n }\n\n /**\n * Check if the current state is for a formal tree or formal forest.\n *\n * This is the case if every node has at most one parent.\n *\n * Pre: parentReference init'ed properly for current network\n */\n checkIfTree() {\n for (const i in this.parentReference) {\n if (this.parentReference[i].length > 1) {\n this.isTree = false;\n return;\n }\n }\n\n this.isTree = true;\n }\n\n /**\n * Return the number of separate trees in the current network.\n *\n * @returns {number}\n */\n numTrees() {\n return this.treeIndex + 1; // This assumes the indexes are assigned consecitively\n }\n\n /**\n * Assign a tree id to a node\n *\n * @param {Node} node\n * @param {string|number} treeId\n */\n setTreeIndex(node, treeId) {\n if (treeId === undefined) return; // Don't bother\n\n if (this.trees[node.id] === undefined) {\n this.trees[node.id] = treeId;\n this.treeIndex = Math.max(treeId, this.treeIndex);\n }\n }\n\n /**\n * Ensure level for given id is defined.\n *\n * Sets level to zero for given node id if not already present\n *\n * @param {Node.id} nodeId\n */\n ensureLevel(nodeId) {\n if (this.levels[nodeId] === undefined) {\n this.levels[nodeId] = 0;\n }\n }\n\n /**\n * get the maximum level of a branch.\n *\n * TODO: Never entered; find a test case to test this!\n *\n * @param {Node.id} nodeId\n * @returns {number}\n */\n getMaxLevel(nodeId) {\n const accumulator = {};\n\n const _getMaxLevel = (nodeId) => {\n if (accumulator[nodeId] !== undefined) {\n return accumulator[nodeId];\n }\n let level = this.levels[nodeId];\n if (this.childrenReference[nodeId]) {\n const children = this.childrenReference[nodeId];\n if (children.length > 0) {\n for (let i = 0; i < children.length; i++) {\n level = Math.max(level, _getMaxLevel(children[i]));\n }\n }\n }\n accumulator[nodeId] = level;\n return level;\n };\n\n return _getMaxLevel(nodeId);\n }\n\n /**\n *\n * @param {Node} nodeA\n * @param {Node} nodeB\n */\n levelDownstream(nodeA, nodeB) {\n if (this.levels[nodeB.id] === undefined) {\n // set initial level\n if (this.levels[nodeA.id] === undefined) {\n this.levels[nodeA.id] = 0;\n }\n // set level\n this.levels[nodeB.id] = this.levels[nodeA.id] + 1;\n }\n }\n\n /**\n * Small util method to set the minimum levels of the nodes to zero.\n *\n * @param {Array.} nodes\n */\n setMinLevelToZero(nodes) {\n let minLevel = 1e9;\n // get the minimum level\n for (const nodeId in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, nodeId)) {\n if (this.levels[nodeId] !== undefined) {\n minLevel = Math.min(this.levels[nodeId], minLevel);\n }\n }\n }\n\n // subtract the minimum from the set so we have a range starting from 0\n for (const nodeId in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, nodeId)) {\n if (this.levels[nodeId] !== undefined) {\n this.levels[nodeId] -= minLevel;\n }\n }\n }\n }\n\n /**\n * Get the min and max xy-coordinates of a given tree\n *\n * @param {Array.} nodes\n * @param {number} index\n * @returns {{min_x: number, max_x: number, min_y: number, max_y: number}}\n */\n getTreeSize(nodes, index) {\n let min_x = 1e9;\n let max_x = -1e9;\n let min_y = 1e9;\n let max_y = -1e9;\n\n for (const nodeId in this.trees) {\n if (Object.prototype.hasOwnProperty.call(this.trees, nodeId)) {\n if (this.trees[nodeId] === index) {\n const node = nodes[nodeId];\n min_x = Math.min(node.x, min_x);\n max_x = Math.max(node.x, max_x);\n min_y = Math.min(node.y, min_y);\n max_y = Math.max(node.y, max_y);\n }\n }\n }\n\n return {\n min_x: min_x,\n max_x: max_x,\n min_y: min_y,\n max_y: max_y,\n };\n }\n\n /**\n * Check if two nodes have the same parent(s)\n *\n * @param {Node} node1\n * @param {Node} node2\n * @returns {boolean} true if the two nodes have a same ancestor node, false otherwise\n */\n hasSameParent(node1, node2) {\n const parents1 = this.parentReference[node1.id];\n const parents2 = this.parentReference[node2.id];\n if (parents1 === undefined || parents2 === undefined) {\n return false;\n }\n\n for (let i = 0; i < parents1.length; i++) {\n for (let j = 0; j < parents2.length; j++) {\n if (parents1[i] == parents2[j]) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Check if two nodes are in the same tree.\n *\n * @param {Node} node1\n * @param {Node} node2\n * @returns {boolean} true if this is so, false otherwise\n */\n inSameSubNetwork(node1, node2) {\n return this.trees[node1.id] === this.trees[node2.id];\n }\n\n /**\n * Get a list of the distinct levels in the current network\n *\n * @returns {Array}\n */\n getLevels() {\n return Object.keys(this.distributionOrdering);\n }\n\n /**\n * Add a node to the ordering per level\n *\n * @param {Node} node\n * @param {number} level\n */\n addToOrdering(node, level) {\n if (this.distributionOrdering[level] === undefined) {\n this.distributionOrdering[level] = [];\n }\n\n let isPresent = false;\n const curLevel = this.distributionOrdering[level];\n for (const n in curLevel) {\n //if (curLevel[n].id === node.id) {\n if (curLevel[n] === node) {\n isPresent = true;\n break;\n }\n }\n\n if (!isPresent) {\n this.distributionOrdering[level].push(node);\n this.distributionIndex[node.id] =\n this.distributionOrdering[level].length - 1;\n }\n }\n}\n\n/**\n * The Layout Engine\n */\nclass LayoutEngine {\n /**\n * @param {object} body\n */\n constructor(body) {\n this.body = body;\n\n // Make sure there always is some RNG because the setOptions method won't\n // set it unless there's a seed for it.\n this._resetRNG(Math.random() + \":\" + Date.now());\n\n this.setPhysics = false;\n this.options = {};\n this.optionsBackup = { physics: {} };\n\n this.defaultOptions = {\n randomSeed: undefined,\n improvedLayout: true,\n clusterThreshold: 150,\n hierarchical: {\n enabled: false,\n levelSeparation: 150,\n nodeSpacing: 100,\n treeSpacing: 200,\n blockShifting: true,\n edgeMinimization: true,\n parentCentralization: true,\n direction: \"UD\", // UD, DU, LR, RL\n sortMethod: \"hubsize\", // hubsize, directed\n },\n };\n Object.assign(this.options, this.defaultOptions);\n this.bindEventListeners();\n }\n\n /**\n * Binds event listeners\n */\n bindEventListeners() {\n this.body.emitter.on(\"_dataChanged\", () => {\n this.setupHierarchicalLayout();\n });\n this.body.emitter.on(\"_dataLoaded\", () => {\n this.layoutNetwork();\n });\n this.body.emitter.on(\"_resetHierarchicalLayout\", () => {\n this.setupHierarchicalLayout();\n });\n this.body.emitter.on(\"_adjustEdgesForHierarchicalLayout\", () => {\n if (this.options.hierarchical.enabled !== true) {\n return;\n }\n // get the type of static smooth curve in case it is required\n const type = this.direction.curveType();\n\n // force all edges into static smooth curves.\n this.body.emitter.emit(\"_forceDisableDynamicCurves\", type, false);\n });\n }\n\n /**\n *\n * @param {object} options\n * @param {object} allOptions\n * @returns {object}\n */\n setOptions(options, allOptions) {\n if (options !== undefined) {\n const hierarchical = this.options.hierarchical;\n const prevHierarchicalState = hierarchical.enabled;\n selectiveDeepExtend(\n [\"randomSeed\", \"improvedLayout\", \"clusterThreshold\"],\n this.options,\n options\n );\n mergeOptions(this.options, options, \"hierarchical\");\n\n if (options.randomSeed !== undefined) {\n this._resetRNG(options.randomSeed);\n }\n\n if (hierarchical.enabled === true) {\n if (prevHierarchicalState === true) {\n // refresh the overridden options for nodes and edges.\n this.body.emitter.emit(\"refresh\", true);\n }\n\n // make sure the level separation is the right way up\n if (\n hierarchical.direction === \"RL\" ||\n hierarchical.direction === \"DU\"\n ) {\n if (hierarchical.levelSeparation > 0) {\n hierarchical.levelSeparation *= -1;\n }\n } else {\n if (hierarchical.levelSeparation < 0) {\n hierarchical.levelSeparation *= -1;\n }\n }\n\n this.setDirectionStrategy();\n\n this.body.emitter.emit(\"_resetHierarchicalLayout\");\n // because the hierarchical system needs it's own physics and smooth curve settings,\n // we adapt the other options if needed.\n return this.adaptAllOptionsForHierarchicalLayout(allOptions);\n } else {\n if (prevHierarchicalState === true) {\n // refresh the overridden options for nodes and edges.\n this.body.emitter.emit(\"refresh\");\n return deepExtend(allOptions, this.optionsBackup);\n }\n }\n }\n return allOptions;\n }\n\n /**\n * Reset the random number generator with given seed.\n *\n * @param {any} seed - The seed that will be forwarded the the RNG.\n */\n _resetRNG(seed) {\n this.initialRandomSeed = seed;\n this._rng = Alea(this.initialRandomSeed);\n }\n\n /**\n *\n * @param {object} allOptions\n * @returns {object}\n */\n adaptAllOptionsForHierarchicalLayout(allOptions) {\n if (this.options.hierarchical.enabled === true) {\n const backupPhysics = this.optionsBackup.physics;\n\n // set the physics\n if (allOptions.physics === undefined || allOptions.physics === true) {\n allOptions.physics = {\n enabled:\n backupPhysics.enabled === undefined ? true : backupPhysics.enabled,\n solver: \"hierarchicalRepulsion\",\n };\n backupPhysics.enabled =\n backupPhysics.enabled === undefined ? true : backupPhysics.enabled;\n backupPhysics.solver = backupPhysics.solver || \"barnesHut\";\n } else if (typeof allOptions.physics === \"object\") {\n backupPhysics.enabled =\n allOptions.physics.enabled === undefined\n ? true\n : allOptions.physics.enabled;\n backupPhysics.solver = allOptions.physics.solver || \"barnesHut\";\n allOptions.physics.solver = \"hierarchicalRepulsion\";\n } else if (allOptions.physics !== false) {\n backupPhysics.solver = \"barnesHut\";\n allOptions.physics = { solver: \"hierarchicalRepulsion\" };\n }\n\n // get the type of static smooth curve in case it is required\n let type = this.direction.curveType();\n\n // disable smooth curves if nothing is defined. If smooth curves have been turned on,\n // turn them into static smooth curves.\n if (allOptions.edges === undefined) {\n this.optionsBackup.edges = {\n smooth: { enabled: true, type: \"dynamic\" },\n };\n allOptions.edges = { smooth: false };\n } else if (allOptions.edges.smooth === undefined) {\n this.optionsBackup.edges = {\n smooth: { enabled: true, type: \"dynamic\" },\n };\n allOptions.edges.smooth = false;\n } else {\n if (typeof allOptions.edges.smooth === \"boolean\") {\n this.optionsBackup.edges = { smooth: allOptions.edges.smooth };\n allOptions.edges.smooth = {\n enabled: allOptions.edges.smooth,\n type: type,\n };\n } else {\n const smooth = allOptions.edges.smooth;\n\n // allow custom types except for dynamic\n if (smooth.type !== undefined && smooth.type !== \"dynamic\") {\n type = smooth.type;\n }\n\n // TODO: this is options merging; see if the standard routines can be used here.\n this.optionsBackup.edges = {\n smooth: {\n enabled: smooth.enabled === undefined ? true : smooth.enabled,\n type: smooth.type === undefined ? \"dynamic\" : smooth.type,\n roundness:\n smooth.roundness === undefined ? 0.5 : smooth.roundness,\n forceDirection:\n smooth.forceDirection === undefined\n ? false\n : smooth.forceDirection,\n },\n };\n\n // NOTE: Copying an object to self; this is basically setting defaults for undefined variables\n allOptions.edges.smooth = {\n enabled: smooth.enabled === undefined ? true : smooth.enabled,\n type: type,\n roundness: smooth.roundness === undefined ? 0.5 : smooth.roundness,\n forceDirection:\n smooth.forceDirection === undefined\n ? false\n : smooth.forceDirection,\n };\n }\n }\n\n // Force all edges into static smooth curves.\n // Only applies to edges that do not use the global options for smooth.\n this.body.emitter.emit(\"_forceDisableDynamicCurves\", type);\n }\n\n return allOptions;\n }\n\n /**\n *\n * @param {Array.} nodesArray\n */\n positionInitially(nodesArray) {\n if (this.options.hierarchical.enabled !== true) {\n this._resetRNG(this.initialRandomSeed);\n const radius = nodesArray.length + 50;\n for (let i = 0; i < nodesArray.length; i++) {\n const node = nodesArray[i];\n const angle = 2 * Math.PI * this._rng();\n if (node.x === undefined) {\n node.x = radius * Math.cos(angle);\n }\n if (node.y === undefined) {\n node.y = radius * Math.sin(angle);\n }\n }\n }\n }\n\n /**\n * Use Kamada Kawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we\n * cluster them first to reduce the amount.\n */\n layoutNetwork() {\n if (\n this.options.hierarchical.enabled !== true &&\n this.options.improvedLayout === true\n ) {\n const indices = this.body.nodeIndices;\n\n // first check if we should Kamada Kawai to layout. The threshold is if less than half of the visible\n // nodes have predefined positions we use this.\n let positionDefined = 0;\n for (let i = 0; i < indices.length; i++) {\n const node = this.body.nodes[indices[i]];\n if (node.predefinedPosition === true) {\n positionDefined += 1;\n }\n }\n\n // if less than half of the nodes have a predefined position we continue\n if (positionDefined < 0.5 * indices.length) {\n const MAX_LEVELS = 10;\n let level = 0;\n const clusterThreshold = this.options.clusterThreshold;\n\n //\n // Define the options for the hidden cluster nodes\n // These options don't propagate outside the clustering phase.\n //\n // Some options are explicitly disabled, because they may be set in group or default node options.\n // The clusters are never displayed, so most explicit settings here serve as performance optimizations.\n //\n // The explicit setting of 'shape' is to avoid `shape: 'image'`; images are not passed to the hidden\n // cluster nodes, leading to an exception on creation.\n //\n // All settings here are performance related, except when noted otherwise.\n //\n const clusterOptions = {\n clusterNodeProperties: {\n shape: \"ellipse\", // Bugfix: avoid type 'image', no images supplied\n label: \"\", // avoid label handling\n group: \"\", // avoid group handling\n font: { multi: false }, // avoid font propagation\n },\n clusterEdgeProperties: {\n label: \"\", // avoid label handling\n font: { multi: false }, // avoid font propagation\n smooth: {\n enabled: false, // avoid drawing penalty for complex edges\n },\n },\n };\n\n // if there are a lot of nodes, we cluster before we run the algorithm.\n // NOTE: this part fails to find clusters for large scale-free networks, which should\n // be easily clusterable.\n // TODO: examine why this is so\n if (indices.length > clusterThreshold) {\n const startLength = indices.length;\n while (indices.length > clusterThreshold && level <= MAX_LEVELS) {\n //console.time(\"clustering\")\n level += 1;\n const before = indices.length;\n // if there are many nodes we do a hubsize cluster\n if (level % 3 === 0) {\n this.body.modules.clustering.clusterBridges(clusterOptions);\n } else {\n this.body.modules.clustering.clusterOutliers(clusterOptions);\n }\n const after = indices.length;\n if (before == after && level % 3 !== 0) {\n this._declusterAll();\n this.body.emitter.emit(\"_layoutFailed\");\n console.info(\n \"This network could not be positioned by this version of the improved layout algorithm.\" +\n \" Please disable improvedLayout for better performance.\"\n );\n return;\n }\n //console.timeEnd(\"clustering\")\n //console.log(before,level,after);\n }\n // increase the size of the edges\n this.body.modules.kamadaKawai.setOptions({\n springLength: Math.max(150, 2 * startLength),\n });\n }\n if (level > MAX_LEVELS) {\n console.info(\n \"The clustering didn't succeed within the amount of interations allowed,\" +\n \" progressing with partial result.\"\n );\n }\n\n // position the system for these nodes and edges\n this.body.modules.kamadaKawai.solve(\n indices,\n this.body.edgeIndices,\n true\n );\n\n // shift to center point\n this._shiftToCenter();\n\n // perturb the nodes a little bit to force the physics to kick in\n const offset = 70;\n for (let i = 0; i < indices.length; i++) {\n // Only perturb the nodes that aren't fixed\n const node = this.body.nodes[indices[i]];\n if (node.predefinedPosition === false) {\n node.x += (0.5 - this._rng()) * offset;\n node.y += (0.5 - this._rng()) * offset;\n }\n }\n\n // uncluster all clusters\n this._declusterAll();\n\n // reposition all bezier nodes.\n this.body.emitter.emit(\"_repositionBezierNodes\");\n }\n }\n }\n\n /**\n * Move all the nodes towards to the center so gravitational pull wil not move the nodes away from view\n *\n * @private\n */\n _shiftToCenter() {\n const range = NetworkUtil.getRangeCore(\n this.body.nodes,\n this.body.nodeIndices\n );\n const center = NetworkUtil.findCenter(range);\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const node = this.body.nodes[this.body.nodeIndices[i]];\n node.x -= center.x;\n node.y -= center.y;\n }\n }\n\n /**\n * Expands all clusters\n *\n * @private\n */\n _declusterAll() {\n let clustersPresent = true;\n while (clustersPresent === true) {\n clustersPresent = false;\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n if (this.body.nodes[this.body.nodeIndices[i]].isCluster === true) {\n clustersPresent = true;\n this.body.modules.clustering.openCluster(\n this.body.nodeIndices[i],\n {},\n false\n );\n }\n }\n if (clustersPresent === true) {\n this.body.emitter.emit(\"_dataChanged\");\n }\n }\n }\n\n /**\n *\n * @returns {number|*}\n */\n getSeed() {\n return this.initialRandomSeed;\n }\n\n /**\n * This is the main function to layout the nodes in a hierarchical way.\n * It checks if the node details are supplied correctly\n *\n * @private\n */\n setupHierarchicalLayout() {\n if (\n this.options.hierarchical.enabled === true &&\n this.body.nodeIndices.length > 0\n ) {\n // get the size of the largest hubs and check if the user has defined a level for a node.\n let node, nodeId;\n let definedLevel = false;\n let undefinedLevel = false;\n this.lastNodeOnLevel = {};\n this.hierarchical = new HierarchicalStatus();\n\n for (nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n node = this.body.nodes[nodeId];\n if (node.options.level !== undefined) {\n definedLevel = true;\n this.hierarchical.levels[nodeId] = node.options.level;\n } else {\n undefinedLevel = true;\n }\n }\n }\n\n // if the user defined some levels but not all, alert and run without hierarchical layout\n if (undefinedLevel === true && definedLevel === true) {\n throw new Error(\n \"To use the hierarchical layout, nodes require either no predefined levels\" +\n \" or levels have to be defined for all nodes.\"\n );\n } else {\n // define levels if undefined by the users. Based on hubsize.\n if (undefinedLevel === true) {\n const sortMethod = this.options.hierarchical.sortMethod;\n if (sortMethod === \"hubsize\") {\n this._determineLevelsByHubsize();\n } else if (sortMethod === \"directed\") {\n this._determineLevelsDirected();\n } else if (sortMethod === \"custom\") {\n this._determineLevelsCustomCallback();\n }\n }\n\n // fallback for cases where there are nodes but no edges\n for (const nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n this.hierarchical.ensureLevel(nodeId);\n }\n }\n // check the distribution of the nodes per level.\n const distribution = this._getDistribution();\n\n // get the parent children relations.\n this._generateMap();\n\n // place the nodes on the canvas.\n this._placeNodesByHierarchy(distribution);\n\n // condense the whitespace.\n this._condenseHierarchy();\n\n // shift to center so gravity does not have to do much\n this._shiftToCenter();\n }\n }\n }\n\n /**\n * @private\n */\n _condenseHierarchy() {\n // Global var in this scope to define when the movement has stopped.\n let stillShifting = false;\n const branches = {};\n // first we have some methods to help shifting trees around.\n // the main method to shift the trees\n const shiftTrees = () => {\n const treeSizes = getTreeSizes();\n let shiftBy = 0;\n for (let i = 0; i < treeSizes.length - 1; i++) {\n const diff = treeSizes[i].max - treeSizes[i + 1].min;\n shiftBy += diff + this.options.hierarchical.treeSpacing;\n shiftTree(i + 1, shiftBy);\n }\n };\n\n // shift a single tree by an offset\n const shiftTree = (index, offset) => {\n const trees = this.hierarchical.trees;\n\n for (const nodeId in trees) {\n if (Object.prototype.hasOwnProperty.call(trees, nodeId)) {\n if (trees[nodeId] === index) {\n this.direction.shift(nodeId, offset);\n }\n }\n }\n };\n\n // get the width of all trees\n const getTreeSizes = () => {\n const treeWidths = [];\n for (let i = 0; i < this.hierarchical.numTrees(); i++) {\n treeWidths.push(this.direction.getTreeSize(i));\n }\n return treeWidths;\n };\n\n // get a map of all nodes in this branch\n const getBranchNodes = (source, map) => {\n if (map[source.id]) {\n return;\n }\n map[source.id] = true;\n if (this.hierarchical.childrenReference[source.id]) {\n const children = this.hierarchical.childrenReference[source.id];\n if (children.length > 0) {\n for (let i = 0; i < children.length; i++) {\n getBranchNodes(this.body.nodes[children[i]], map);\n }\n }\n }\n };\n\n // get a min max width as well as the maximum movement space it has on either sides\n // we use min max terminology because width and height can interchange depending on the direction of the layout\n const getBranchBoundary = (branchMap, maxLevel = 1e9) => {\n let minSpace = 1e9;\n let maxSpace = 1e9;\n let min = 1e9;\n let max = -1e9;\n for (const branchNode in branchMap) {\n if (Object.prototype.hasOwnProperty.call(branchMap, branchNode)) {\n const node = this.body.nodes[branchNode];\n const level = this.hierarchical.levels[node.id];\n const position = this.direction.getPosition(node);\n\n // get the space around the node.\n const [minSpaceNode, maxSpaceNode] = this._getSpaceAroundNode(\n node,\n branchMap\n );\n minSpace = Math.min(minSpaceNode, minSpace);\n maxSpace = Math.min(maxSpaceNode, maxSpace);\n\n // the width is only relevant for the levels two nodes have in common. This is why we filter on this.\n if (level <= maxLevel) {\n min = Math.min(position, min);\n max = Math.max(position, max);\n }\n }\n }\n\n return [min, max, minSpace, maxSpace];\n };\n\n // check what the maximum level is these nodes have in common.\n const getCollisionLevel = (node1, node2) => {\n const maxLevel1 = this.hierarchical.getMaxLevel(node1.id);\n const maxLevel2 = this.hierarchical.getMaxLevel(node2.id);\n return Math.min(maxLevel1, maxLevel2);\n };\n\n /**\n * Condense elements. These can be nodes or branches depending on the callback.\n *\n * @param {Function} callback\n * @param {Array.} levels\n * @param {*} centerParents\n */\n const shiftElementsCloser = (callback, levels, centerParents) => {\n const hier = this.hierarchical;\n\n for (let i = 0; i < levels.length; i++) {\n const level = levels[i];\n const levelNodes = hier.distributionOrdering[level];\n if (levelNodes.length > 1) {\n for (let j = 0; j < levelNodes.length - 1; j++) {\n const node1 = levelNodes[j];\n const node2 = levelNodes[j + 1];\n\n // NOTE: logic maintained as it was; if nodes have same ancestor,\n // then of course they are in the same sub-network.\n if (\n hier.hasSameParent(node1, node2) &&\n hier.inSameSubNetwork(node1, node2)\n ) {\n callback(node1, node2, centerParents);\n }\n }\n }\n }\n };\n\n // callback for shifting branches\n const branchShiftCallback = (node1, node2, centerParent = false) => {\n //window.CALLBACKS.push(() => {\n const pos1 = this.direction.getPosition(node1);\n const pos2 = this.direction.getPosition(node2);\n const diffAbs = Math.abs(pos2 - pos1);\n const nodeSpacing = this.options.hierarchical.nodeSpacing;\n //console.log(\"NOW CHECKING:\", node1.id, node2.id, diffAbs);\n if (diffAbs > nodeSpacing) {\n const branchNodes1 = {};\n const branchNodes2 = {};\n\n getBranchNodes(node1, branchNodes1);\n getBranchNodes(node2, branchNodes2);\n\n // check the largest distance between the branches\n const maxLevel = getCollisionLevel(node1, node2);\n const branchNodeBoundary1 = getBranchBoundary(branchNodes1, maxLevel);\n const branchNodeBoundary2 = getBranchBoundary(branchNodes2, maxLevel);\n const max1 = branchNodeBoundary1[1];\n const min2 = branchNodeBoundary2[0];\n const minSpace2 = branchNodeBoundary2[2];\n\n //console.log(node1.id, getBranchBoundary(branchNodes1, maxLevel), node2.id,\n // getBranchBoundary(branchNodes2, maxLevel), maxLevel);\n const diffBranch = Math.abs(max1 - min2);\n if (diffBranch > nodeSpacing) {\n let offset = max1 - min2 + nodeSpacing;\n if (offset < -minSpace2 + nodeSpacing) {\n offset = -minSpace2 + nodeSpacing;\n //console.log(\"RESETTING OFFSET\", max1 - min2 + this.options.hierarchical.nodeSpacing, -minSpace2, offset);\n }\n if (offset < 0) {\n //console.log(\"SHIFTING\", node2.id, offset);\n this._shiftBlock(node2.id, offset);\n stillShifting = true;\n\n if (centerParent === true) this._centerParent(node2);\n }\n }\n }\n //this.body.emitter.emit(\"_redraw\");})\n };\n\n const minimizeEdgeLength = (iterations, node) => {\n //window.CALLBACKS.push(() => {\n // console.log(\"ts\",node.id);\n const nodeId = node.id;\n const allEdges = node.edges;\n const nodeLevel = this.hierarchical.levels[node.id];\n\n // gather constants\n const C2 =\n this.options.hierarchical.levelSeparation *\n this.options.hierarchical.levelSeparation;\n const referenceNodes = {};\n const aboveEdges = [];\n for (let i = 0; i < allEdges.length; i++) {\n const edge = allEdges[i];\n if (edge.toId != edge.fromId) {\n const otherNode = edge.toId == nodeId ? edge.from : edge.to;\n referenceNodes[allEdges[i].id] = otherNode;\n if (this.hierarchical.levels[otherNode.id] < nodeLevel) {\n aboveEdges.push(edge);\n }\n }\n }\n\n // differentiated sum of lengths based on only moving one node over one axis\n const getFx = (point, edges) => {\n let sum = 0;\n for (let i = 0; i < edges.length; i++) {\n if (referenceNodes[edges[i].id] !== undefined) {\n const a =\n this.direction.getPosition(referenceNodes[edges[i].id]) - point;\n sum += a / Math.sqrt(a * a + C2);\n }\n }\n return sum;\n };\n\n // doubly differentiated sum of lengths based on only moving one node over one axis\n const getDFx = (point, edges) => {\n let sum = 0;\n for (let i = 0; i < edges.length; i++) {\n if (referenceNodes[edges[i].id] !== undefined) {\n const a =\n this.direction.getPosition(referenceNodes[edges[i].id]) - point;\n sum -= C2 * Math.pow(a * a + C2, -1.5);\n }\n }\n return sum;\n };\n\n const getGuess = (iterations, edges) => {\n let guess = this.direction.getPosition(node);\n // Newton's method for optimization\n const guessMap = {};\n for (let i = 0; i < iterations; i++) {\n const fx = getFx(guess, edges);\n const dfx = getDFx(guess, edges);\n\n // we limit the movement to avoid instability.\n const limit = 40;\n const ratio = Math.max(-limit, Math.min(limit, Math.round(fx / dfx)));\n guess = guess - ratio;\n // reduce duplicates\n if (guessMap[guess] !== undefined) {\n break;\n }\n guessMap[guess] = i;\n }\n return guess;\n };\n\n const moveBranch = (guess) => {\n // position node if there is space\n const nodePosition = this.direction.getPosition(node);\n\n // check movable area of the branch\n if (branches[node.id] === undefined) {\n const branchNodes = {};\n getBranchNodes(node, branchNodes);\n branches[node.id] = branchNodes;\n }\n const branchBoundary = getBranchBoundary(branches[node.id]);\n const minSpaceBranch = branchBoundary[2];\n const maxSpaceBranch = branchBoundary[3];\n\n const diff = guess - nodePosition;\n\n // check if we are allowed to move the node:\n let branchOffset = 0;\n if (diff > 0) {\n branchOffset = Math.min(\n diff,\n maxSpaceBranch - this.options.hierarchical.nodeSpacing\n );\n } else if (diff < 0) {\n branchOffset = -Math.min(\n -diff,\n minSpaceBranch - this.options.hierarchical.nodeSpacing\n );\n }\n\n if (branchOffset != 0) {\n //console.log(\"moving branch:\",branchOffset, maxSpaceBranch, minSpaceBranch)\n this._shiftBlock(node.id, branchOffset);\n //this.body.emitter.emit(\"_redraw\");\n stillShifting = true;\n }\n };\n\n const moveNode = (guess) => {\n const nodePosition = this.direction.getPosition(node);\n\n // position node if there is space\n const [minSpace, maxSpace] = this._getSpaceAroundNode(node);\n const diff = guess - nodePosition;\n // check if we are allowed to move the node:\n let newPosition = nodePosition;\n if (diff > 0) {\n newPosition = Math.min(\n nodePosition + (maxSpace - this.options.hierarchical.nodeSpacing),\n guess\n );\n } else if (diff < 0) {\n newPosition = Math.max(\n nodePosition - (minSpace - this.options.hierarchical.nodeSpacing),\n guess\n );\n }\n\n if (newPosition !== nodePosition) {\n //console.log(\"moving Node:\",diff, minSpace, maxSpace);\n this.direction.setPosition(node, newPosition);\n //this.body.emitter.emit(\"_redraw\");\n stillShifting = true;\n }\n };\n\n let guess = getGuess(iterations, aboveEdges);\n moveBranch(guess);\n guess = getGuess(iterations, allEdges);\n moveNode(guess);\n //})\n };\n\n // method to remove whitespace between branches. Because we do bottom up, we can center the parents.\n const minimizeEdgeLengthBottomUp = (iterations) => {\n let levels = this.hierarchical.getLevels();\n levels = levels.reverse();\n for (let i = 0; i < iterations; i++) {\n stillShifting = false;\n for (let j = 0; j < levels.length; j++) {\n const level = levels[j];\n const levelNodes = this.hierarchical.distributionOrdering[level];\n for (let k = 0; k < levelNodes.length; k++) {\n minimizeEdgeLength(1000, levelNodes[k]);\n }\n }\n if (stillShifting !== true) {\n //console.log(\"FINISHED minimizeEdgeLengthBottomUp IN \" + i);\n break;\n }\n }\n };\n\n // method to remove whitespace between branches. Because we do bottom up, we can center the parents.\n const shiftBranchesCloserBottomUp = (iterations) => {\n let levels = this.hierarchical.getLevels();\n levels = levels.reverse();\n for (let i = 0; i < iterations; i++) {\n stillShifting = false;\n shiftElementsCloser(branchShiftCallback, levels, true);\n if (stillShifting !== true) {\n //console.log(\"FINISHED shiftBranchesCloserBottomUp IN \" + (i+1));\n break;\n }\n }\n };\n\n // center all parents\n const centerAllParents = () => {\n for (const nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId))\n this._centerParent(this.body.nodes[nodeId]);\n }\n };\n\n // center all parents\n const centerAllParentsBottomUp = () => {\n let levels = this.hierarchical.getLevels();\n levels = levels.reverse();\n for (let i = 0; i < levels.length; i++) {\n const level = levels[i];\n const levelNodes = this.hierarchical.distributionOrdering[level];\n for (let j = 0; j < levelNodes.length; j++) {\n this._centerParent(levelNodes[j]);\n }\n }\n };\n\n // the actual work is done here.\n if (this.options.hierarchical.blockShifting === true) {\n shiftBranchesCloserBottomUp(5);\n centerAllParents();\n }\n\n // minimize edge length\n if (this.options.hierarchical.edgeMinimization === true) {\n minimizeEdgeLengthBottomUp(20);\n }\n\n if (this.options.hierarchical.parentCentralization === true) {\n centerAllParentsBottomUp();\n }\n\n shiftTrees();\n }\n\n /**\n * This gives the space around the node. IF a map is supplied, it will only check against nodes NOT in the map.\n * This is used to only get the distances to nodes outside of a branch.\n *\n * @param {Node} node\n * @param {{Node.id: vis.Node}} map\n * @returns {number[]}\n * @private\n */\n _getSpaceAroundNode(node, map) {\n let useMap = true;\n if (map === undefined) {\n useMap = false;\n }\n const level = this.hierarchical.levels[node.id];\n if (level !== undefined) {\n const index = this.hierarchical.distributionIndex[node.id];\n const position = this.direction.getPosition(node);\n const ordering = this.hierarchical.distributionOrdering[level];\n let minSpace = 1e9;\n let maxSpace = 1e9;\n if (index !== 0) {\n const prevNode = ordering[index - 1];\n if (\n (useMap === true && map[prevNode.id] === undefined) ||\n useMap === false\n ) {\n const prevPos = this.direction.getPosition(prevNode);\n minSpace = position - prevPos;\n }\n }\n\n if (index != ordering.length - 1) {\n const nextNode = ordering[index + 1];\n if (\n (useMap === true && map[nextNode.id] === undefined) ||\n useMap === false\n ) {\n const nextPos = this.direction.getPosition(nextNode);\n maxSpace = Math.min(maxSpace, nextPos - position);\n }\n }\n\n return [minSpace, maxSpace];\n } else {\n return [0, 0];\n }\n }\n\n /**\n * We use this method to center a parent node and check if it does not cross other nodes when it does.\n *\n * @param {Node} node\n * @private\n */\n _centerParent(node) {\n if (this.hierarchical.parentReference[node.id]) {\n const parents = this.hierarchical.parentReference[node.id];\n for (let i = 0; i < parents.length; i++) {\n const parentId = parents[i];\n const parentNode = this.body.nodes[parentId];\n const children = this.hierarchical.childrenReference[parentId];\n\n if (children !== undefined) {\n // get the range of the children\n const newPosition = this._getCenterPosition(children);\n\n const position = this.direction.getPosition(parentNode);\n const [minSpace, maxSpace] = this._getSpaceAroundNode(parentNode);\n const diff = position - newPosition;\n if (\n (diff < 0 &&\n Math.abs(diff) <\n maxSpace - this.options.hierarchical.nodeSpacing) ||\n (diff > 0 &&\n Math.abs(diff) < minSpace - this.options.hierarchical.nodeSpacing)\n ) {\n this.direction.setPosition(parentNode, newPosition);\n }\n }\n }\n }\n }\n\n /**\n * This function places the nodes on the canvas based on the hierarchial distribution.\n *\n * @param {object} distribution | obtained by the function this._getDistribution()\n * @private\n */\n _placeNodesByHierarchy(distribution) {\n this.positionedNodes = {};\n // start placing all the level 0 nodes first. Then recursively position their branches.\n for (const level in distribution) {\n if (Object.prototype.hasOwnProperty.call(distribution, level)) {\n // sort nodes in level by position:\n let nodeArray = Object.keys(distribution[level]);\n nodeArray = this._indexArrayToNodes(nodeArray);\n this.direction.sort(nodeArray);\n let handledNodeCount = 0;\n\n for (let i = 0; i < nodeArray.length; i++) {\n const node = nodeArray[i];\n if (this.positionedNodes[node.id] === undefined) {\n const spacing = this.options.hierarchical.nodeSpacing;\n let pos = spacing * handledNodeCount;\n // We get the X or Y values we need and store them in pos and previousPos.\n // The get and set make sure we get X or Y\n if (handledNodeCount > 0) {\n pos = this.direction.getPosition(nodeArray[i - 1]) + spacing;\n }\n this.direction.setPosition(node, pos, level);\n this._validatePositionAndContinue(node, level, pos);\n\n handledNodeCount++;\n }\n }\n }\n }\n }\n\n /**\n * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes\n * on a X position that ensures there will be no overlap.\n *\n * @param {Node.id} parentId\n * @param {number} parentLevel\n * @private\n */\n _placeBranchNodes(parentId, parentLevel) {\n const childRef = this.hierarchical.childrenReference[parentId];\n\n // if this is not a parent, cancel the placing. This can happen with multiple parents to one child.\n if (childRef === undefined) {\n return;\n }\n\n // get a list of childNodes\n const childNodes = [];\n for (let i = 0; i < childRef.length; i++) {\n childNodes.push(this.body.nodes[childRef[i]]);\n }\n\n // use the positions to order the nodes.\n this.direction.sort(childNodes);\n\n // position the childNodes\n for (let i = 0; i < childNodes.length; i++) {\n const childNode = childNodes[i];\n const childNodeLevel = this.hierarchical.levels[childNode.id];\n // check if the child node is below the parent node and if it has already been positioned.\n if (\n childNodeLevel > parentLevel &&\n this.positionedNodes[childNode.id] === undefined\n ) {\n // get the amount of space required for this node. If parent the width is based on the amount of children.\n const spacing = this.options.hierarchical.nodeSpacing;\n let pos;\n\n // we get the X or Y values we need and store them in pos and previousPos.\n // The get and set make sure we get X or Y\n if (i === 0) {\n pos = this.direction.getPosition(this.body.nodes[parentId]);\n } else {\n pos = this.direction.getPosition(childNodes[i - 1]) + spacing;\n }\n this.direction.setPosition(childNode, pos, childNodeLevel);\n this._validatePositionAndContinue(childNode, childNodeLevel, pos);\n } else {\n return;\n }\n }\n\n // center the parent nodes.\n const center = this._getCenterPosition(childNodes);\n this.direction.setPosition(this.body.nodes[parentId], center, parentLevel);\n }\n\n /**\n * This method checks for overlap and if required shifts the branch. It also keeps records of positioned nodes.\n * Finally it will call _placeBranchNodes to place the branch nodes.\n *\n * @param {Node} node\n * @param {number} level\n * @param {number} pos\n * @private\n */\n _validatePositionAndContinue(node, level, pos) {\n // This method only works for formal trees and formal forests\n // Early exit if this is not the case\n if (!this.hierarchical.isTree) return;\n\n // if overlap has been detected, we shift the branch\n if (this.lastNodeOnLevel[level] !== undefined) {\n const previousPos = this.direction.getPosition(\n this.body.nodes[this.lastNodeOnLevel[level]]\n );\n if (pos - previousPos < this.options.hierarchical.nodeSpacing) {\n const diff = previousPos + this.options.hierarchical.nodeSpacing - pos;\n const sharedParent = this._findCommonParent(\n this.lastNodeOnLevel[level],\n node.id\n );\n this._shiftBlock(sharedParent.withChild, diff);\n }\n }\n\n this.lastNodeOnLevel[level] = node.id; // store change in position.\n this.positionedNodes[node.id] = true;\n this._placeBranchNodes(node.id, level);\n }\n\n /**\n * Receives an array with node indices and returns an array with the actual node references.\n * Used for sorting based on node properties.\n *\n * @param {Array.} idArray\n * @returns {Array.}\n */\n _indexArrayToNodes(idArray) {\n const array = [];\n for (let i = 0; i < idArray.length; i++) {\n array.push(this.body.nodes[idArray[i]]);\n }\n return array;\n }\n\n /**\n * This function get the distribution of levels based on hubsize\n *\n * @returns {object}\n * @private\n */\n _getDistribution() {\n const distribution = {};\n let nodeId, node;\n\n // we fix Y because the hierarchy is vertical,\n // we fix X so we do not give a node an x position for a second time.\n // the fix of X is removed after the x value has been set.\n for (nodeId in this.body.nodes) {\n if (Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId)) {\n node = this.body.nodes[nodeId];\n const level =\n this.hierarchical.levels[nodeId] === undefined\n ? 0\n : this.hierarchical.levels[nodeId];\n this.direction.fix(node, level);\n if (distribution[level] === undefined) {\n distribution[level] = {};\n }\n distribution[level][nodeId] = node;\n }\n }\n return distribution;\n }\n\n /**\n * Return the active (i.e. visible) edges for this node\n *\n * @param {Node} node\n * @returns {Array.} Array of edge instances\n * @private\n */\n _getActiveEdges(node) {\n const result = [];\n\n forEach(node.edges, (edge) => {\n if (this.body.edgeIndices.indexOf(edge.id) !== -1) {\n result.push(edge);\n }\n });\n\n return result;\n }\n\n /**\n * Get the hubsizes for all active nodes.\n *\n * @returns {number}\n * @private\n */\n _getHubSizes() {\n const hubSizes = {};\n const nodeIds = this.body.nodeIndices;\n\n forEach(nodeIds, (nodeId) => {\n const node = this.body.nodes[nodeId];\n const hubSize = this._getActiveEdges(node).length;\n hubSizes[hubSize] = true;\n });\n\n // Make an array of the size sorted descending\n const result = [];\n forEach(hubSizes, (size) => {\n result.push(Number(size));\n });\n\n result.sort(function (a, b) {\n return b - a;\n });\n\n return result;\n }\n\n /**\n * this function allocates nodes in levels based on the recursive branching from the largest hubs.\n *\n * @private\n */\n _determineLevelsByHubsize() {\n const levelDownstream = (nodeA, nodeB) => {\n this.hierarchical.levelDownstream(nodeA, nodeB);\n };\n\n const hubSizes = this._getHubSizes();\n\n for (let i = 0; i < hubSizes.length; ++i) {\n const hubSize = hubSizes[i];\n if (hubSize === 0) break;\n\n forEach(this.body.nodeIndices, (nodeId) => {\n const node = this.body.nodes[nodeId];\n\n if (hubSize === this._getActiveEdges(node).length) {\n this._crawlNetwork(levelDownstream, nodeId);\n }\n });\n }\n }\n\n /**\n * TODO: release feature\n * TODO: Determine if this feature is needed at all\n *\n * @private\n */\n _determineLevelsCustomCallback() {\n const minLevel = 100000;\n\n // TODO: this should come from options.\n // eslint-disable-next-line no-unused-vars -- This should eventually be implemented with these parameters used.\n const customCallback = function (nodeA, nodeB, edge) {};\n\n // TODO: perhaps move to HierarchicalStatus.\n // But I currently don't see the point, this method is not used.\n const levelByDirection = (nodeA, nodeB, edge) => {\n let levelA = this.hierarchical.levels[nodeA.id];\n // set initial level\n if (levelA === undefined) {\n levelA = this.hierarchical.levels[nodeA.id] = minLevel;\n }\n\n const diff = customCallback(\n NetworkUtil.cloneOptions(nodeA, \"node\"),\n NetworkUtil.cloneOptions(nodeB, \"node\"),\n NetworkUtil.cloneOptions(edge, \"edge\")\n );\n\n this.hierarchical.levels[nodeB.id] = levelA + diff;\n };\n\n this._crawlNetwork(levelByDirection);\n this.hierarchical.setMinLevelToZero(this.body.nodes);\n }\n\n /**\n * Allocate nodes in levels based on the direction of the edges.\n *\n * @private\n */\n _determineLevelsDirected() {\n const nodes = this.body.nodeIndices.reduce((acc, id) => {\n acc.set(id, this.body.nodes[id]);\n return acc;\n }, new Map());\n\n if (this.options.hierarchical.shakeTowards === \"roots\") {\n this.hierarchical.levels = fillLevelsByDirectionRoots(nodes);\n } else {\n this.hierarchical.levels = fillLevelsByDirectionLeaves(nodes);\n }\n\n this.hierarchical.setMinLevelToZero(this.body.nodes);\n }\n\n /**\n * Update the bookkeeping of parent and child.\n *\n * @private\n */\n _generateMap() {\n const fillInRelations = (parentNode, childNode) => {\n if (\n this.hierarchical.levels[childNode.id] >\n this.hierarchical.levels[parentNode.id]\n ) {\n this.hierarchical.addRelation(parentNode.id, childNode.id);\n }\n };\n\n this._crawlNetwork(fillInRelations);\n this.hierarchical.checkIfTree();\n }\n\n /**\n * Crawl over the entire network and use a callback on each node couple that is connected to each other.\n *\n * @param {Function} [callback=function(){}] | will receive nodeA, nodeB and the connecting edge. A and B are distinct.\n * @param {Node.id} startingNodeId\n * @private\n */\n _crawlNetwork(callback = function () {}, startingNodeId) {\n const progress = {};\n\n const crawler = (node, tree) => {\n if (progress[node.id] === undefined) {\n this.hierarchical.setTreeIndex(node, tree);\n\n progress[node.id] = true;\n let childNode;\n const edges = this._getActiveEdges(node);\n for (let i = 0; i < edges.length; i++) {\n const edge = edges[i];\n if (edge.connected === true) {\n if (edge.toId == node.id) {\n // Not '===' because id's can be string and numeric\n childNode = edge.from;\n } else {\n childNode = edge.to;\n }\n\n if (node.id != childNode.id) {\n // Not '!==' because id's can be string and numeric\n callback(node, childNode, edge);\n crawler(childNode, tree);\n }\n }\n }\n }\n };\n\n if (startingNodeId === undefined) {\n // Crawl over all nodes\n let treeIndex = 0; // Serves to pass a unique id for the current distinct tree\n\n for (let i = 0; i < this.body.nodeIndices.length; i++) {\n const nodeId = this.body.nodeIndices[i];\n\n if (progress[nodeId] === undefined) {\n const node = this.body.nodes[nodeId];\n crawler(node, treeIndex);\n treeIndex += 1;\n }\n }\n } else {\n // Crawl from the given starting node\n const node = this.body.nodes[startingNodeId];\n if (node === undefined) {\n console.error(\"Node not found:\", startingNodeId);\n return;\n }\n crawler(node);\n }\n }\n\n /**\n * Shift a branch a certain distance\n *\n * @param {Node.id} parentId\n * @param {number} diff\n * @private\n */\n _shiftBlock(parentId, diff) {\n const progress = {};\n const shifter = (parentId) => {\n if (progress[parentId]) {\n return;\n }\n progress[parentId] = true;\n this.direction.shift(parentId, diff);\n\n const childRef = this.hierarchical.childrenReference[parentId];\n if (childRef !== undefined) {\n for (let i = 0; i < childRef.length; i++) {\n shifter(childRef[i]);\n }\n }\n };\n shifter(parentId);\n }\n\n /**\n * Find a common parent between branches.\n *\n * @param {Node.id} childA\n * @param {Node.id} childB\n * @returns {{foundParent, withChild}}\n * @private\n */\n _findCommonParent(childA, childB) {\n const parents = {};\n const iterateParents = (parents, child) => {\n const parentRef = this.hierarchical.parentReference[child];\n if (parentRef !== undefined) {\n for (let i = 0; i < parentRef.length; i++) {\n const parent = parentRef[i];\n parents[parent] = true;\n iterateParents(parents, parent);\n }\n }\n };\n const findParent = (parents, child) => {\n const parentRef = this.hierarchical.parentReference[child];\n if (parentRef !== undefined) {\n for (let i = 0; i < parentRef.length; i++) {\n const parent = parentRef[i];\n if (parents[parent] !== undefined) {\n return { foundParent: parent, withChild: child };\n }\n const branch = findParent(parents, parent);\n if (branch.foundParent !== null) {\n return branch;\n }\n }\n }\n return { foundParent: null, withChild: child };\n };\n\n iterateParents(parents, childA);\n return findParent(parents, childB);\n }\n\n /**\n * Set the strategy pattern for handling the coordinates given the current direction.\n *\n * The individual instances contain all the operations and data specific to a layout direction.\n *\n * @param {Node} node\n * @param {{x: number, y: number}} position\n * @param {number} level\n * @param {boolean} [doNotUpdate=false]\n * @private\n */\n setDirectionStrategy() {\n const isVertical =\n this.options.hierarchical.direction === \"UD\" ||\n this.options.hierarchical.direction === \"DU\";\n\n if (isVertical) {\n this.direction = new VerticalStrategy(this);\n } else {\n this.direction = new HorizontalStrategy(this);\n }\n }\n\n /**\n * Determine the center position of a branch from the passed list of child nodes\n *\n * This takes into account the positions of all the child nodes.\n *\n * @param {Array.} childNodes Array of either child nodes or node id's\n * @returns {number}\n * @private\n */\n _getCenterPosition(childNodes) {\n let minPos = 1e9;\n let maxPos = -1e9;\n\n for (let i = 0; i < childNodes.length; i++) {\n let childNode;\n if (childNodes[i].id !== undefined) {\n childNode = childNodes[i];\n } else {\n const childNodeId = childNodes[i];\n childNode = this.body.nodes[childNodeId];\n }\n\n const position = this.direction.getPosition(childNode);\n minPos = Math.min(minPos, position);\n maxPos = Math.max(maxPos, position);\n }\n\n return 0.5 * (minPos + maxPos);\n }\n}\n\nexport default LayoutEngine;\n","import \"./ManipulationSystem.css\";\n\nimport { Hammer, deepExtend, recursiveDOMDelete } from \"vis-util/esnext\";\nimport { v4 as randomUUID } from \"uuid\";\nimport { onTouch } from \"../../hammerUtil\";\n\n/**\n * Clears the toolbar div element of children\n *\n * @private\n */\nclass ManipulationSystem {\n /**\n * @param {object} body\n * @param {Canvas} canvas\n * @param {SelectionHandler} selectionHandler\n * @param {InteractionHandler} interactionHandler\n */\n constructor(body, canvas, selectionHandler, interactionHandler) {\n this.body = body;\n this.canvas = canvas;\n this.selectionHandler = selectionHandler;\n this.interactionHandler = interactionHandler;\n\n this.editMode = false;\n this.manipulationDiv = undefined;\n this.editModeDiv = undefined;\n this.closeDiv = undefined;\n\n this._domEventListenerCleanupQueue = [];\n this.temporaryUIFunctions = {};\n this.temporaryEventFunctions = [];\n\n this.touchTime = 0;\n this.temporaryIds = { nodes: [], edges: [] };\n this.guiEnabled = false;\n this.inMode = false;\n this.selectedControlNode = undefined;\n\n this.options = {};\n this.defaultOptions = {\n enabled: false,\n initiallyActive: false,\n addNode: true,\n addEdge: true,\n editNode: undefined,\n editEdge: true,\n deleteNode: true,\n deleteEdge: true,\n controlNodeStyle: {\n shape: \"dot\",\n size: 6,\n color: {\n background: \"#ff0000\",\n border: \"#3c3c3c\",\n highlight: { background: \"#07f968\", border: \"#3c3c3c\" },\n },\n borderWidth: 2,\n borderWidthSelected: 2,\n },\n };\n Object.assign(this.options, this.defaultOptions);\n\n this.body.emitter.on(\"destroy\", () => {\n this._clean();\n });\n this.body.emitter.on(\"_dataChanged\", this._restore.bind(this));\n this.body.emitter.on(\"_resetData\", this._restore.bind(this));\n }\n\n /**\n * If something changes in the data during editing, switch back to the initial datamanipulation state and close all edit modes.\n *\n * @private\n */\n _restore() {\n if (this.inMode !== false) {\n if (this.options.initiallyActive === true) {\n this.enableEditMode();\n } else {\n this.disableEditMode();\n }\n }\n }\n\n /**\n * Set the Options\n *\n * @param {object} options\n * @param {object} allOptions\n * @param {object} globalOptions\n */\n setOptions(options, allOptions, globalOptions) {\n if (allOptions !== undefined) {\n if (allOptions.locale !== undefined) {\n this.options.locale = allOptions.locale;\n } else {\n this.options.locale = globalOptions.locale;\n }\n if (allOptions.locales !== undefined) {\n this.options.locales = allOptions.locales;\n } else {\n this.options.locales = globalOptions.locales;\n }\n }\n\n if (options !== undefined) {\n if (typeof options === \"boolean\") {\n this.options.enabled = options;\n } else {\n this.options.enabled = true;\n deepExtend(this.options, options);\n }\n if (this.options.initiallyActive === true) {\n this.editMode = true;\n }\n this._setup();\n }\n }\n\n /**\n * Enable or disable edit-mode. Draws the DOM required and cleans up after itself.\n *\n * @private\n */\n toggleEditMode() {\n if (this.editMode === true) {\n this.disableEditMode();\n } else {\n this.enableEditMode();\n }\n }\n\n /**\n * Enables Edit Mode\n */\n enableEditMode() {\n this.editMode = true;\n\n this._clean();\n if (this.guiEnabled === true) {\n this.manipulationDiv.style.display = \"block\";\n this.closeDiv.style.display = \"block\";\n this.editModeDiv.style.display = \"none\";\n this.showManipulatorToolbar();\n }\n }\n\n /**\n * Disables Edit Mode\n */\n disableEditMode() {\n this.editMode = false;\n\n this._clean();\n if (this.guiEnabled === true) {\n this.manipulationDiv.style.display = \"none\";\n this.closeDiv.style.display = \"none\";\n this.editModeDiv.style.display = \"block\";\n this._createEditButton();\n }\n }\n\n /**\n * Creates the main toolbar. Removes functions bound to the select event. Binds all the buttons of the toolbar.\n *\n * @private\n */\n showManipulatorToolbar() {\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n\n // reset global variables\n this.manipulationDOM = {};\n\n // if the gui is enabled, draw all elements.\n if (this.guiEnabled === true) {\n // a _restore will hide these menus\n this.editMode = true;\n this.manipulationDiv.style.display = \"block\";\n this.closeDiv.style.display = \"block\";\n\n const selectedNodeCount = this.selectionHandler.getSelectedNodeCount();\n const selectedEdgeCount = this.selectionHandler.getSelectedEdgeCount();\n const selectedTotalCount = selectedNodeCount + selectedEdgeCount;\n const locale = this.options.locales[this.options.locale];\n let needSeperator = false;\n\n if (this.options.addNode !== false) {\n this._createAddNodeButton(locale);\n needSeperator = true;\n }\n if (this.options.addEdge !== false) {\n if (needSeperator === true) {\n this._createSeperator(1);\n } else {\n needSeperator = true;\n }\n this._createAddEdgeButton(locale);\n }\n\n if (\n selectedNodeCount === 1 &&\n typeof this.options.editNode === \"function\"\n ) {\n if (needSeperator === true) {\n this._createSeperator(2);\n } else {\n needSeperator = true;\n }\n this._createEditNodeButton(locale);\n } else if (\n selectedEdgeCount === 1 &&\n selectedNodeCount === 0 &&\n this.options.editEdge !== false\n ) {\n if (needSeperator === true) {\n this._createSeperator(3);\n } else {\n needSeperator = true;\n }\n this._createEditEdgeButton(locale);\n }\n\n // remove buttons\n if (selectedTotalCount !== 0) {\n if (selectedNodeCount > 0 && this.options.deleteNode !== false) {\n if (needSeperator === true) {\n this._createSeperator(4);\n }\n this._createDeleteButton(locale);\n } else if (\n selectedNodeCount === 0 &&\n this.options.deleteEdge !== false\n ) {\n if (needSeperator === true) {\n this._createSeperator(4);\n }\n this._createDeleteButton(locale);\n }\n }\n\n // bind the close button\n this._bindElementEvents(this.closeDiv, this.toggleEditMode.bind(this));\n\n // refresh this bar based on what has been selected\n this._temporaryBindEvent(\n \"select\",\n this.showManipulatorToolbar.bind(this)\n );\n }\n\n // redraw to show any possible changes\n this.body.emitter.emit(\"_redraw\");\n }\n\n /**\n * Create the toolbar for adding Nodes\n */\n addNodeMode() {\n // when using the gui, enable edit mode if it wasnt already.\n if (this.editMode !== true) {\n this.enableEditMode();\n }\n\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n\n this.inMode = \"addNode\";\n if (this.guiEnabled === true) {\n const locale = this.options.locales[this.options.locale];\n this.manipulationDOM = {};\n this._createBackButton(locale);\n this._createSeperator();\n this._createDescription(\n locale[\"addDescription\"] || this.options.locales[\"en\"][\"addDescription\"]\n );\n\n // bind the close button\n this._bindElementEvents(this.closeDiv, this.toggleEditMode.bind(this));\n }\n\n this._temporaryBindEvent(\"click\", this._performAddNode.bind(this));\n }\n\n /**\n * call the bound function to handle the editing of the node. The node has to be selected.\n */\n editNode() {\n // when using the gui, enable edit mode if it wasnt already.\n if (this.editMode !== true) {\n this.enableEditMode();\n }\n\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n const node = this.selectionHandler.getSelectedNodes()[0];\n if (node !== undefined) {\n this.inMode = \"editNode\";\n if (typeof this.options.editNode === \"function\") {\n if (node.isCluster !== true) {\n const data = deepExtend({}, node.options, false);\n data.x = node.x;\n data.y = node.y;\n\n if (this.options.editNode.length === 2) {\n this.options.editNode(data, (finalizedData) => {\n if (\n finalizedData !== null &&\n finalizedData !== undefined &&\n this.inMode === \"editNode\"\n ) {\n // if for whatever reason the mode has changes (due to dataset change) disregard the callback) {\n this.body.data.nodes.getDataSet().update(finalizedData);\n }\n this.showManipulatorToolbar();\n });\n } else {\n throw new Error(\n \"The function for edit does not support two arguments (data, callback)\"\n );\n }\n } else {\n alert(\n this.options.locales[this.options.locale][\"editClusterError\"] ||\n this.options.locales[\"en\"][\"editClusterError\"]\n );\n }\n } else {\n throw new Error(\n \"No function has been configured to handle the editing of nodes.\"\n );\n }\n } else {\n this.showManipulatorToolbar();\n }\n }\n\n /**\n * create the toolbar to connect nodes\n */\n addEdgeMode() {\n // when using the gui, enable edit mode if it wasnt already.\n if (this.editMode !== true) {\n this.enableEditMode();\n }\n\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n\n this.inMode = \"addEdge\";\n if (this.guiEnabled === true) {\n const locale = this.options.locales[this.options.locale];\n this.manipulationDOM = {};\n this._createBackButton(locale);\n this._createSeperator();\n this._createDescription(\n locale[\"edgeDescription\"] ||\n this.options.locales[\"en\"][\"edgeDescription\"]\n );\n\n // bind the close button\n this._bindElementEvents(this.closeDiv, this.toggleEditMode.bind(this));\n }\n\n // temporarily overload functions\n this._temporaryBindUI(\"onTouch\", this._handleConnect.bind(this));\n this._temporaryBindUI(\"onDragEnd\", this._finishConnect.bind(this));\n this._temporaryBindUI(\"onDrag\", this._dragControlNode.bind(this));\n this._temporaryBindUI(\"onRelease\", this._finishConnect.bind(this));\n this._temporaryBindUI(\"onDragStart\", this._dragStartEdge.bind(this));\n this._temporaryBindUI(\"onHold\", () => {});\n }\n\n /**\n * create the toolbar to edit edges\n */\n editEdgeMode() {\n // when using the gui, enable edit mode if it wasn't already.\n if (this.editMode !== true) {\n this.enableEditMode();\n }\n\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n\n this.inMode = \"editEdge\";\n if (\n typeof this.options.editEdge === \"object\" &&\n typeof this.options.editEdge.editWithoutDrag === \"function\"\n ) {\n this.edgeBeingEditedId = this.selectionHandler.getSelectedEdgeIds()[0];\n if (this.edgeBeingEditedId !== undefined) {\n const edge = this.body.edges[this.edgeBeingEditedId];\n this._performEditEdge(edge.from.id, edge.to.id);\n return;\n }\n }\n if (this.guiEnabled === true) {\n const locale = this.options.locales[this.options.locale];\n this.manipulationDOM = {};\n this._createBackButton(locale);\n this._createSeperator();\n this._createDescription(\n locale[\"editEdgeDescription\"] ||\n this.options.locales[\"en\"][\"editEdgeDescription\"]\n );\n\n // bind the close button\n this._bindElementEvents(this.closeDiv, this.toggleEditMode.bind(this));\n }\n\n this.edgeBeingEditedId = this.selectionHandler.getSelectedEdgeIds()[0];\n if (this.edgeBeingEditedId !== undefined) {\n const edge = this.body.edges[this.edgeBeingEditedId];\n\n // create control nodes\n const controlNodeFrom = this._getNewTargetNode(edge.from.x, edge.from.y);\n const controlNodeTo = this._getNewTargetNode(edge.to.x, edge.to.y);\n\n this.temporaryIds.nodes.push(controlNodeFrom.id);\n this.temporaryIds.nodes.push(controlNodeTo.id);\n\n this.body.nodes[controlNodeFrom.id] = controlNodeFrom;\n this.body.nodeIndices.push(controlNodeFrom.id);\n this.body.nodes[controlNodeTo.id] = controlNodeTo;\n this.body.nodeIndices.push(controlNodeTo.id);\n\n // temporarily overload UI functions, cleaned up automatically because of _temporaryBindUI\n this._temporaryBindUI(\"onTouch\", this._controlNodeTouch.bind(this)); // used to get the position\n this._temporaryBindUI(\"onTap\", () => {}); // disabled\n this._temporaryBindUI(\"onHold\", () => {}); // disabled\n this._temporaryBindUI(\n \"onDragStart\",\n this._controlNodeDragStart.bind(this)\n ); // used to select control node\n this._temporaryBindUI(\"onDrag\", this._controlNodeDrag.bind(this)); // used to drag control node\n this._temporaryBindUI(\"onDragEnd\", this._controlNodeDragEnd.bind(this)); // used to connect or revert control nodes\n this._temporaryBindUI(\"onMouseMove\", () => {}); // disabled\n\n // create function to position control nodes correctly on movement\n // automatically cleaned up because we use the temporary bind\n this._temporaryBindEvent(\"beforeDrawing\", (ctx) => {\n const positions = edge.edgeType.findBorderPositions(ctx);\n if (controlNodeFrom.selected === false) {\n controlNodeFrom.x = positions.from.x;\n controlNodeFrom.y = positions.from.y;\n }\n if (controlNodeTo.selected === false) {\n controlNodeTo.x = positions.to.x;\n controlNodeTo.y = positions.to.y;\n }\n });\n\n this.body.emitter.emit(\"_redraw\");\n } else {\n this.showManipulatorToolbar();\n }\n }\n\n /**\n * delete everything in the selection\n */\n deleteSelected() {\n // when using the gui, enable edit mode if it wasnt already.\n if (this.editMode !== true) {\n this.enableEditMode();\n }\n\n // restore the state of any bound functions or events, remove control nodes, restore physics\n this._clean();\n\n this.inMode = \"delete\";\n const selectedNodes = this.selectionHandler.getSelectedNodeIds();\n const selectedEdges = this.selectionHandler.getSelectedEdgeIds();\n let deleteFunction = undefined;\n if (selectedNodes.length > 0) {\n for (let i = 0; i < selectedNodes.length; i++) {\n if (this.body.nodes[selectedNodes[i]].isCluster === true) {\n alert(\n this.options.locales[this.options.locale][\"deleteClusterError\"] ||\n this.options.locales[\"en\"][\"deleteClusterError\"]\n );\n return;\n }\n }\n\n if (typeof this.options.deleteNode === \"function\") {\n deleteFunction = this.options.deleteNode;\n }\n } else if (selectedEdges.length > 0) {\n if (typeof this.options.deleteEdge === \"function\") {\n deleteFunction = this.options.deleteEdge;\n }\n }\n\n if (typeof deleteFunction === \"function\") {\n const data = { nodes: selectedNodes, edges: selectedEdges };\n if (deleteFunction.length === 2) {\n deleteFunction(data, (finalizedData) => {\n if (\n finalizedData !== null &&\n finalizedData !== undefined &&\n this.inMode === \"delete\"\n ) {\n // if for whatever reason the mode has changes (due to dataset change) disregard the callback) {\n this.body.data.edges.getDataSet().remove(finalizedData.edges);\n this.body.data.nodes.getDataSet().remove(finalizedData.nodes);\n this.body.emitter.emit(\"startSimulation\");\n this.showManipulatorToolbar();\n } else {\n this.body.emitter.emit(\"startSimulation\");\n this.showManipulatorToolbar();\n }\n });\n } else {\n throw new Error(\n \"The function for delete does not support two arguments (data, callback)\"\n );\n }\n } else {\n this.body.data.edges.getDataSet().remove(selectedEdges);\n this.body.data.nodes.getDataSet().remove(selectedNodes);\n this.body.emitter.emit(\"startSimulation\");\n this.showManipulatorToolbar();\n }\n }\n\n //********************************************** PRIVATE ***************************************//\n\n /**\n * draw or remove the DOM\n *\n * @private\n */\n _setup() {\n if (this.options.enabled === true) {\n // Enable the GUI\n this.guiEnabled = true;\n\n this._createWrappers();\n if (this.editMode === false) {\n this._createEditButton();\n } else {\n this.showManipulatorToolbar();\n }\n } else {\n this._removeManipulationDOM();\n\n // disable the gui\n this.guiEnabled = false;\n }\n }\n\n /**\n * create the div overlays that contain the DOM\n *\n * @private\n */\n _createWrappers() {\n // load the manipulator HTML elements. All styling done in css.\n if (this.manipulationDiv === undefined) {\n this.manipulationDiv = document.createElement(\"div\");\n this.manipulationDiv.className = \"vis-manipulation\";\n if (this.editMode === true) {\n this.manipulationDiv.style.display = \"block\";\n } else {\n this.manipulationDiv.style.display = \"none\";\n }\n this.canvas.frame.appendChild(this.manipulationDiv);\n }\n\n // container for the edit button.\n if (this.editModeDiv === undefined) {\n this.editModeDiv = document.createElement(\"div\");\n this.editModeDiv.className = \"vis-edit-mode\";\n if (this.editMode === true) {\n this.editModeDiv.style.display = \"none\";\n } else {\n this.editModeDiv.style.display = \"block\";\n }\n this.canvas.frame.appendChild(this.editModeDiv);\n }\n\n // container for the close div button\n if (this.closeDiv === undefined) {\n this.closeDiv = document.createElement(\"button\");\n this.closeDiv.className = \"vis-close\";\n this.closeDiv.setAttribute(\n \"aria-label\",\n this.options.locales[this.options.locale]?.[\"close\"] ??\n this.options.locales[\"en\"][\"close\"]\n );\n this.closeDiv.style.display = this.manipulationDiv.style.display;\n this.canvas.frame.appendChild(this.closeDiv);\n }\n }\n\n /**\n * generate a new target node. Used for creating new edges and editing edges\n *\n * @param {number} x\n * @param {number} y\n * @returns {Node}\n * @private\n */\n _getNewTargetNode(x, y) {\n const controlNodeStyle = deepExtend({}, this.options.controlNodeStyle);\n\n controlNodeStyle.id = \"targetNode\" + randomUUID();\n controlNodeStyle.hidden = false;\n controlNodeStyle.physics = false;\n controlNodeStyle.x = x;\n controlNodeStyle.y = y;\n\n // we have to define the bounding box in order for the nodes to be drawn immediately\n const node = this.body.functions.createNode(controlNodeStyle);\n node.shape.boundingBox = { left: x, right: x, top: y, bottom: y };\n\n return node;\n }\n\n /**\n * Create the edit button\n */\n _createEditButton() {\n // restore everything to it's original state (if applicable)\n this._clean();\n\n // reset the manipulationDOM\n this.manipulationDOM = {};\n\n // empty the editModeDiv\n recursiveDOMDelete(this.editModeDiv);\n\n // create the contents for the editMode button\n const locale = this.options.locales[this.options.locale];\n const button = this._createButton(\n \"editMode\",\n \"vis-edit vis-edit-mode\",\n locale[\"edit\"] || this.options.locales[\"en\"][\"edit\"]\n );\n this.editModeDiv.appendChild(button);\n\n // bind a hammer listener to the button, calling the function toggleEditMode.\n this._bindElementEvents(button, this.toggleEditMode.bind(this));\n }\n\n /**\n * this function cleans up after everything this module does. Temporary elements, functions and events are removed, physics restored, hammers removed.\n *\n * @private\n */\n _clean() {\n // not in mode\n this.inMode = false;\n\n // _clean the divs\n if (this.guiEnabled === true) {\n recursiveDOMDelete(this.editModeDiv);\n recursiveDOMDelete(this.manipulationDiv);\n\n // removes all the bindings and overloads\n this._cleanupDOMEventListeners();\n }\n\n // remove temporary nodes and edges\n this._cleanupTemporaryNodesAndEdges();\n\n // restore overloaded UI functions\n this._unbindTemporaryUIs();\n\n // remove the temporaryEventFunctions\n this._unbindTemporaryEvents();\n\n // restore the physics if required\n this.body.emitter.emit(\"restorePhysics\");\n }\n\n /**\n * Each dom element has it's own hammer. They are stored in this.manipulationHammers. This cleans them up.\n *\n * @private\n */\n _cleanupDOMEventListeners() {\n // _clean DOM event listener bindings\n for (const callback of this._domEventListenerCleanupQueue.splice(0)) {\n callback();\n }\n }\n\n /**\n * Remove all DOM elements created by this module.\n *\n * @private\n */\n _removeManipulationDOM() {\n // removes all the bindings and overloads\n this._clean();\n\n // empty the manipulation divs\n recursiveDOMDelete(this.manipulationDiv);\n recursiveDOMDelete(this.editModeDiv);\n recursiveDOMDelete(this.closeDiv);\n\n // remove the manipulation divs\n if (this.manipulationDiv) {\n this.canvas.frame.removeChild(this.manipulationDiv);\n }\n if (this.editModeDiv) {\n this.canvas.frame.removeChild(this.editModeDiv);\n }\n if (this.closeDiv) {\n this.canvas.frame.removeChild(this.closeDiv);\n }\n\n // set the references to undefined\n this.manipulationDiv = undefined;\n this.editModeDiv = undefined;\n this.closeDiv = undefined;\n }\n\n /**\n * create a seperator line. the index is to differentiate in the manipulation dom\n *\n * @param {number} [index=1]\n * @private\n */\n _createSeperator(index = 1) {\n this.manipulationDOM[\"seperatorLineDiv\" + index] =\n document.createElement(\"div\");\n this.manipulationDOM[\"seperatorLineDiv\" + index].className =\n \"vis-separator-line\";\n this.manipulationDiv.appendChild(\n this.manipulationDOM[\"seperatorLineDiv\" + index]\n );\n }\n\n // ---------------------- DOM functions for buttons --------------------------//\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createAddNodeButton(locale) {\n const button = this._createButton(\n \"addNode\",\n \"vis-add\",\n locale[\"addNode\"] || this.options.locales[\"en\"][\"addNode\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.addNodeMode.bind(this));\n }\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createAddEdgeButton(locale) {\n const button = this._createButton(\n \"addEdge\",\n \"vis-connect\",\n locale[\"addEdge\"] || this.options.locales[\"en\"][\"addEdge\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.addEdgeMode.bind(this));\n }\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createEditNodeButton(locale) {\n const button = this._createButton(\n \"editNode\",\n \"vis-edit\",\n locale[\"editNode\"] || this.options.locales[\"en\"][\"editNode\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.editNode.bind(this));\n }\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createEditEdgeButton(locale) {\n const button = this._createButton(\n \"editEdge\",\n \"vis-edit\",\n locale[\"editEdge\"] || this.options.locales[\"en\"][\"editEdge\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.editEdgeMode.bind(this));\n }\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createDeleteButton(locale) {\n let deleteBtnClass;\n if (this.options.rtl) {\n deleteBtnClass = \"vis-delete-rtl\";\n } else {\n deleteBtnClass = \"vis-delete\";\n }\n const button = this._createButton(\n \"delete\",\n deleteBtnClass,\n locale[\"del\"] || this.options.locales[\"en\"][\"del\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.deleteSelected.bind(this));\n }\n\n /**\n *\n * @param {Locale} locale\n * @private\n */\n _createBackButton(locale) {\n const button = this._createButton(\n \"back\",\n \"vis-back\",\n locale[\"back\"] || this.options.locales[\"en\"][\"back\"]\n );\n this.manipulationDiv.appendChild(button);\n this._bindElementEvents(button, this.showManipulatorToolbar.bind(this));\n }\n\n /**\n *\n * @param {number|string} id\n * @param {string} className\n * @param {label} label\n * @param {string} labelClassName\n * @returns {HTMLElement}\n * @private\n */\n _createButton(id, className, label, labelClassName = \"vis-label\") {\n this.manipulationDOM[id + \"Div\"] = document.createElement(\"button\");\n this.manipulationDOM[id + \"Div\"].className = \"vis-button \" + className;\n this.manipulationDOM[id + \"Label\"] = document.createElement(\"div\");\n this.manipulationDOM[id + \"Label\"].className = labelClassName;\n this.manipulationDOM[id + \"Label\"].innerText = label;\n this.manipulationDOM[id + \"Div\"].appendChild(\n this.manipulationDOM[id + \"Label\"]\n );\n return this.manipulationDOM[id + \"Div\"];\n }\n\n /**\n *\n * @param {Label} label\n * @private\n */\n _createDescription(label) {\n this.manipulationDOM[\"descriptionLabel\"] = document.createElement(\"div\");\n this.manipulationDOM[\"descriptionLabel\"].className = \"vis-none\";\n this.manipulationDOM[\"descriptionLabel\"].innerText = label;\n this.manipulationDiv.appendChild(this.manipulationDOM[\"descriptionLabel\"]);\n }\n\n // -------------------------- End of DOM functions for buttons ------------------------------//\n\n /**\n * this binds an event until cleanup by the clean functions.\n *\n * @param {Event} event The event\n * @param {Function} newFunction\n * @private\n */\n _temporaryBindEvent(event, newFunction) {\n this.temporaryEventFunctions.push({\n event: event,\n boundFunction: newFunction,\n });\n this.body.emitter.on(event, newFunction);\n }\n\n /**\n * this overrides an UI function until cleanup by the clean function\n *\n * @param {string} UIfunctionName\n * @param {Function} newFunction\n * @private\n */\n _temporaryBindUI(UIfunctionName, newFunction) {\n if (this.body.eventListeners[UIfunctionName] !== undefined) {\n this.temporaryUIFunctions[UIfunctionName] =\n this.body.eventListeners[UIfunctionName];\n this.body.eventListeners[UIfunctionName] = newFunction;\n } else {\n throw new Error(\n \"This UI function does not exist. Typo? You tried: \" +\n UIfunctionName +\n \" possible are: \" +\n JSON.stringify(Object.keys(this.body.eventListeners))\n );\n }\n }\n\n /**\n * Restore the overridden UI functions to their original state.\n *\n * @private\n */\n _unbindTemporaryUIs() {\n for (const functionName in this.temporaryUIFunctions) {\n if (\n Object.prototype.hasOwnProperty.call(\n this.temporaryUIFunctions,\n functionName\n )\n ) {\n this.body.eventListeners[functionName] =\n this.temporaryUIFunctions[functionName];\n delete this.temporaryUIFunctions[functionName];\n }\n }\n this.temporaryUIFunctions = {};\n }\n\n /**\n * Unbind the events created by _temporaryBindEvent\n *\n * @private\n */\n _unbindTemporaryEvents() {\n for (let i = 0; i < this.temporaryEventFunctions.length; i++) {\n const eventName = this.temporaryEventFunctions[i].event;\n const boundFunction = this.temporaryEventFunctions[i].boundFunction;\n this.body.emitter.off(eventName, boundFunction);\n }\n this.temporaryEventFunctions = [];\n }\n\n /**\n * Bind an hammer instance to a DOM element.\n *\n * @param {Element} domElement\n * @param {Function} boundFunction\n */\n _bindElementEvents(domElement, boundFunction) {\n // Bind touch events.\n const hammer = new Hammer(domElement, {});\n onTouch(hammer, boundFunction);\n this._domEventListenerCleanupQueue.push(() => {\n hammer.destroy();\n });\n\n // Bind keyboard events.\n const keyupListener = ({ keyCode, key }) => {\n if (key === \"Enter\" || key === \" \" || keyCode === 13 || keyCode === 32) {\n boundFunction();\n }\n };\n domElement.addEventListener(\"keyup\", keyupListener, false);\n this._domEventListenerCleanupQueue.push(() => {\n domElement.removeEventListener(\"keyup\", keyupListener, false);\n });\n }\n\n /**\n * Neatly clean up temporary edges and nodes\n *\n * @private\n */\n _cleanupTemporaryNodesAndEdges() {\n // _clean temporary edges\n for (let i = 0; i < this.temporaryIds.edges.length; i++) {\n this.body.edges[this.temporaryIds.edges[i]].disconnect();\n delete this.body.edges[this.temporaryIds.edges[i]];\n const indexTempEdge = this.body.edgeIndices.indexOf(\n this.temporaryIds.edges[i]\n );\n if (indexTempEdge !== -1) {\n this.body.edgeIndices.splice(indexTempEdge, 1);\n }\n }\n\n // _clean temporary nodes\n for (let i = 0; i < this.temporaryIds.nodes.length; i++) {\n delete this.body.nodes[this.temporaryIds.nodes[i]];\n const indexTempNode = this.body.nodeIndices.indexOf(\n this.temporaryIds.nodes[i]\n );\n if (indexTempNode !== -1) {\n this.body.nodeIndices.splice(indexTempNode, 1);\n }\n }\n\n this.temporaryIds = { nodes: [], edges: [] };\n }\n\n // ------------------------------------------ EDIT EDGE FUNCTIONS -----------------------------------------//\n\n /**\n * the touch is used to get the position of the initial click\n *\n * @param {Event} event The event\n * @private\n */\n _controlNodeTouch(event) {\n this.selectionHandler.unselectAll();\n this.lastTouch = this.body.functions.getPointer(event.center);\n this.lastTouch.translation = Object.assign({}, this.body.view.translation); // copy the object\n }\n\n /**\n * the drag start is used to mark one of the control nodes as selected.\n *\n * @private\n */\n _controlNodeDragStart() {\n const pointer = this.lastTouch;\n const pointerObj = this.selectionHandler._pointerToPositionObject(pointer);\n const from = this.body.nodes[this.temporaryIds.nodes[0]];\n const to = this.body.nodes[this.temporaryIds.nodes[1]];\n const edge = this.body.edges[this.edgeBeingEditedId];\n this.selectedControlNode = undefined;\n\n const fromSelect = from.isOverlappingWith(pointerObj);\n const toSelect = to.isOverlappingWith(pointerObj);\n\n if (fromSelect === true) {\n this.selectedControlNode = from;\n edge.edgeType.from = from;\n } else if (toSelect === true) {\n this.selectedControlNode = to;\n edge.edgeType.to = to;\n }\n\n // we use the selection to find the node that is being dragged. We explicitly select it here.\n if (this.selectedControlNode !== undefined) {\n this.selectionHandler.selectObject(this.selectedControlNode);\n }\n\n this.body.emitter.emit(\"_redraw\");\n }\n\n /**\n * dragging the control nodes or the canvas\n *\n * @param {Event} event The event\n * @private\n */\n _controlNodeDrag(event) {\n this.body.emitter.emit(\"disablePhysics\");\n const pointer = this.body.functions.getPointer(event.center);\n const pos = this.canvas.DOMtoCanvas(pointer);\n if (this.selectedControlNode !== undefined) {\n this.selectedControlNode.x = pos.x;\n this.selectedControlNode.y = pos.y;\n } else {\n this.interactionHandler.onDrag(event);\n }\n this.body.emitter.emit(\"_redraw\");\n }\n\n /**\n * connecting or restoring the control nodes.\n *\n * @param {Event} event The event\n * @private\n */\n _controlNodeDragEnd(event) {\n const pointer = this.body.functions.getPointer(event.center);\n const pointerObj = this.selectionHandler._pointerToPositionObject(pointer);\n const edge = this.body.edges[this.edgeBeingEditedId];\n // if the node that was dragged is not a control node, return\n if (this.selectedControlNode === undefined) {\n return;\n }\n\n // we use the selection to find the node that is being dragged. We explicitly DEselect the control node here.\n this.selectionHandler.unselectAll();\n const overlappingNodeIds =\n this.selectionHandler._getAllNodesOverlappingWith(pointerObj);\n let node = undefined;\n for (let i = overlappingNodeIds.length - 1; i >= 0; i--) {\n if (overlappingNodeIds[i] !== this.selectedControlNode.id) {\n node = this.body.nodes[overlappingNodeIds[i]];\n break;\n }\n }\n // perform the connection\n if (node !== undefined && this.selectedControlNode !== undefined) {\n if (node.isCluster === true) {\n alert(\n this.options.locales[this.options.locale][\"createEdgeError\"] ||\n this.options.locales[\"en\"][\"createEdgeError\"]\n );\n } else {\n const from = this.body.nodes[this.temporaryIds.nodes[0]];\n if (this.selectedControlNode.id === from.id) {\n this._performEditEdge(node.id, edge.to.id);\n } else {\n this._performEditEdge(edge.from.id, node.id);\n }\n }\n } else {\n edge.updateEdgeType();\n this.body.emitter.emit(\"restorePhysics\");\n }\n\n this.body.emitter.emit(\"_redraw\");\n }\n\n // ------------------------------------ END OF EDIT EDGE FUNCTIONS -----------------------------------------//\n\n // ------------------------------------------- ADD EDGE FUNCTIONS -----------------------------------------//\n /**\n * the function bound to the selection event. It checks if you want to connect a cluster and changes the description\n * to walk the user through the process.\n *\n * @param {Event} event\n * @private\n */\n _handleConnect(event) {\n // check to avoid double fireing of this function.\n if (new Date().valueOf() - this.touchTime > 100) {\n this.lastTouch = this.body.functions.getPointer(event.center);\n this.lastTouch.translation = Object.assign(\n {},\n this.body.view.translation\n ); // copy the object\n\n this.interactionHandler.drag.pointer = this.lastTouch; // Drag pointer is not updated when adding edges\n this.interactionHandler.drag.translation = this.lastTouch.translation;\n\n const pointer = this.lastTouch;\n const node = this.selectionHandler.getNodeAt(pointer);\n\n if (node !== undefined) {\n if (node.isCluster === true) {\n alert(\n this.options.locales[this.options.locale][\"createEdgeError\"] ||\n this.options.locales[\"en\"][\"createEdgeError\"]\n );\n } else {\n // create a node the temporary line can look at\n const targetNode = this._getNewTargetNode(node.x, node.y);\n this.body.nodes[targetNode.id] = targetNode;\n this.body.nodeIndices.push(targetNode.id);\n\n // create a temporary edge\n const connectionEdge = this.body.functions.createEdge({\n id: \"connectionEdge\" + randomUUID(),\n from: node.id,\n to: targetNode.id,\n physics: false,\n smooth: {\n enabled: true,\n type: \"continuous\",\n roundness: 0.5,\n },\n });\n this.body.edges[connectionEdge.id] = connectionEdge;\n this.body.edgeIndices.push(connectionEdge.id);\n\n this.temporaryIds.nodes.push(targetNode.id);\n this.temporaryIds.edges.push(connectionEdge.id);\n }\n }\n this.touchTime = new Date().valueOf();\n }\n }\n\n /**\n *\n * @param {Event} event\n * @private\n */\n _dragControlNode(event) {\n const pointer = this.body.functions.getPointer(event.center);\n\n const pointerObj = this.selectionHandler._pointerToPositionObject(pointer);\n // remember the edge id\n let connectFromId = undefined;\n if (this.temporaryIds.edges[0] !== undefined) {\n connectFromId = this.body.edges[this.temporaryIds.edges[0]].fromId;\n }\n\n // get the overlapping node but NOT the temporary node;\n const overlappingNodeIds =\n this.selectionHandler._getAllNodesOverlappingWith(pointerObj);\n let node = undefined;\n for (let i = overlappingNodeIds.length - 1; i >= 0; i--) {\n // if the node id is NOT a temporary node, accept the node.\n if (this.temporaryIds.nodes.indexOf(overlappingNodeIds[i]) === -1) {\n node = this.body.nodes[overlappingNodeIds[i]];\n break;\n }\n }\n\n event.controlEdge = { from: connectFromId, to: node ? node.id : undefined };\n this.selectionHandler.generateClickEvent(\n \"controlNodeDragging\",\n event,\n pointer\n );\n\n if (this.temporaryIds.nodes[0] !== undefined) {\n const targetNode = this.body.nodes[this.temporaryIds.nodes[0]]; // there is only one temp node in the add edge mode.\n targetNode.x = this.canvas._XconvertDOMtoCanvas(pointer.x);\n targetNode.y = this.canvas._YconvertDOMtoCanvas(pointer.y);\n this.body.emitter.emit(\"_redraw\");\n } else {\n this.interactionHandler.onDrag(event);\n }\n }\n\n /**\n * Connect the new edge to the target if one exists, otherwise remove temp line\n *\n * @param {Event} event The event\n * @private\n */\n _finishConnect(event) {\n const pointer = this.body.functions.getPointer(event.center);\n const pointerObj = this.selectionHandler._pointerToPositionObject(pointer);\n\n // remember the edge id\n let connectFromId = undefined;\n if (this.temporaryIds.edges[0] !== undefined) {\n connectFromId = this.body.edges[this.temporaryIds.edges[0]].fromId;\n }\n\n // get the overlapping node but NOT the temporary node;\n const overlappingNodeIds =\n this.selectionHandler._getAllNodesOverlappingWith(pointerObj);\n let node = undefined;\n for (let i = overlappingNodeIds.length - 1; i >= 0; i--) {\n // if the node id is NOT a temporary node, accept the node.\n if (this.temporaryIds.nodes.indexOf(overlappingNodeIds[i]) === -1) {\n node = this.body.nodes[overlappingNodeIds[i]];\n break;\n }\n }\n\n // clean temporary nodes and edges.\n this._cleanupTemporaryNodesAndEdges();\n\n // perform the connection\n if (node !== undefined) {\n if (node.isCluster === true) {\n alert(\n this.options.locales[this.options.locale][\"createEdgeError\"] ||\n this.options.locales[\"en\"][\"createEdgeError\"]\n );\n } else {\n if (\n this.body.nodes[connectFromId] !== undefined &&\n this.body.nodes[node.id] !== undefined\n ) {\n this._performAddEdge(connectFromId, node.id);\n }\n }\n }\n\n event.controlEdge = { from: connectFromId, to: node ? node.id : undefined };\n this.selectionHandler.generateClickEvent(\n \"controlNodeDragEnd\",\n event,\n pointer\n );\n\n // No need to do _generateclickevent('dragEnd') here, the regular dragEnd event fires.\n this.body.emitter.emit(\"_redraw\");\n }\n\n /**\n *\n * @param {Event} event\n * @private\n */\n _dragStartEdge(event) {\n const pointer = this.lastTouch;\n this.selectionHandler.generateClickEvent(\n \"dragStart\",\n event,\n pointer,\n undefined,\n true\n );\n }\n\n // --------------------------------------- END OF ADD EDGE FUNCTIONS -------------------------------------//\n\n // ------------------------------ Performing all the actual data manipulation ------------------------//\n\n /**\n * Adds a node on the specified location\n *\n * @param {object} clickData\n * @private\n */\n _performAddNode(clickData) {\n const defaultData = {\n id: randomUUID(),\n x: clickData.pointer.canvas.x,\n y: clickData.pointer.canvas.y,\n label: \"new\",\n };\n\n if (typeof this.options.addNode === \"function\") {\n if (this.options.addNode.length === 2) {\n this.options.addNode(defaultData, (finalizedData) => {\n if (\n finalizedData !== null &&\n finalizedData !== undefined &&\n this.inMode === \"addNode\"\n ) {\n // if for whatever reason the mode has changes (due to dataset change) disregard the callback\n this.body.data.nodes.getDataSet().add(finalizedData);\n }\n this.showManipulatorToolbar();\n });\n } else {\n this.showManipulatorToolbar();\n throw new Error(\n \"The function for add does not support two arguments (data,callback)\"\n );\n }\n } else {\n this.body.data.nodes.getDataSet().add(defaultData);\n this.showManipulatorToolbar();\n }\n }\n\n /**\n * connect two nodes with a new edge.\n *\n * @param {Node.id} sourceNodeId\n * @param {Node.id} targetNodeId\n * @private\n */\n _performAddEdge(sourceNodeId, targetNodeId) {\n const defaultData = { from: sourceNodeId, to: targetNodeId };\n if (typeof this.options.addEdge === \"function\") {\n if (this.options.addEdge.length === 2) {\n this.options.addEdge(defaultData, (finalizedData) => {\n if (\n finalizedData !== null &&\n finalizedData !== undefined &&\n this.inMode === \"addEdge\"\n ) {\n // if for whatever reason the mode has changes (due to dataset change) disregard the callback\n this.body.data.edges.getDataSet().add(finalizedData);\n this.selectionHandler.unselectAll();\n this.showManipulatorToolbar();\n }\n });\n } else {\n throw new Error(\n \"The function for connect does not support two arguments (data,callback)\"\n );\n }\n } else {\n this.body.data.edges.getDataSet().add(defaultData);\n this.selectionHandler.unselectAll();\n this.showManipulatorToolbar();\n }\n }\n\n /**\n * connect two nodes with a new edge.\n *\n * @param {Node.id} sourceNodeId\n * @param {Node.id} targetNodeId\n * @private\n */\n _performEditEdge(sourceNodeId, targetNodeId) {\n const defaultData = {\n id: this.edgeBeingEditedId,\n from: sourceNodeId,\n to: targetNodeId,\n label: this.body.data.edges.get(this.edgeBeingEditedId).label,\n };\n let eeFunct = this.options.editEdge;\n if (typeof eeFunct === \"object\") {\n eeFunct = eeFunct.editWithoutDrag;\n }\n if (typeof eeFunct === \"function\") {\n if (eeFunct.length === 2) {\n eeFunct(defaultData, (finalizedData) => {\n if (\n finalizedData === null ||\n finalizedData === undefined ||\n this.inMode !== \"editEdge\"\n ) {\n // if for whatever reason the mode has changes (due to dataset change) disregard the callback) {\n this.body.edges[defaultData.id].updateEdgeType();\n this.body.emitter.emit(\"_redraw\");\n this.showManipulatorToolbar();\n } else {\n this.body.data.edges.getDataSet().update(finalizedData);\n this.selectionHandler.unselectAll();\n this.showManipulatorToolbar();\n }\n });\n } else {\n throw new Error(\n \"The function for edit does not support two arguments (data, callback)\"\n );\n }\n } else {\n this.body.data.edges.getDataSet().update(defaultData);\n this.selectionHandler.unselectAll();\n this.showManipulatorToolbar();\n }\n }\n}\n\nexport default ManipulationSystem;\n","import {\n ConfiguratorConfig,\n ConfiguratorHideOption,\n OptionsConfig,\n} from \"vis-util/esnext\";\n\n/**\n * This object contains all possible options. It will check if the types are correct, if required if the option is one\n * of the allowed values.\n *\n * __any__ means that the name of the property does not matter.\n * __type__ is a required field for all objects and contains the allowed types of all objects\n */\nconst string = \"string\";\nconst bool = \"boolean\";\nconst number = \"number\";\nconst array = \"array\";\nconst object = \"object\"; // should only be in a __type__ property\nconst dom = \"dom\";\nconst any = \"any\";\n\n// List of endpoints\nconst endPoints = [\n \"arrow\",\n \"bar\",\n \"box\",\n \"circle\",\n \"crow\",\n \"curve\",\n \"diamond\",\n \"image\",\n \"inv_curve\",\n \"inv_triangle\",\n \"triangle\",\n \"vee\",\n];\n\n/* eslint-disable @typescript-eslint/naming-convention -- The __*__ format is used to prevent collisions with actual option names. */\nconst nodeOptions: OptionsConfig = {\n borderWidth: { number },\n borderWidthSelected: { number, undefined: \"undefined\" },\n brokenImage: { string, undefined: \"undefined\" },\n chosen: {\n label: { boolean: bool, function: \"function\" },\n node: { boolean: bool, function: \"function\" },\n __type__: { object, boolean: bool },\n },\n color: {\n border: { string },\n background: { string },\n highlight: {\n border: { string },\n background: { string },\n __type__: { object, string },\n },\n hover: {\n border: { string },\n background: { string },\n __type__: { object, string },\n },\n __type__: { object, string },\n },\n opacity: { number, undefined: \"undefined\" },\n fixed: {\n x: { boolean: bool },\n y: { boolean: bool },\n __type__: { object, boolean: bool },\n },\n font: {\n align: { string },\n color: { string },\n size: { number }, // px\n face: { string },\n background: { string },\n strokeWidth: { number }, // px\n strokeColor: { string },\n vadjust: { number },\n multi: { boolean: bool, string },\n bold: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n boldital: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n ital: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n mono: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n __type__: { object, string },\n },\n group: { string, number, undefined: \"undefined\" },\n heightConstraint: {\n minimum: { number },\n valign: { string },\n __type__: { object, boolean: bool, number },\n },\n hidden: { boolean: bool },\n icon: {\n face: { string },\n code: { string }, //'\\uf007',\n size: { number }, //50,\n color: { string },\n weight: { string, number },\n __type__: { object },\n },\n id: { string, number },\n image: {\n selected: { string, undefined: \"undefined\" }, // --> URL\n unselected: { string, undefined: \"undefined\" }, // --> URL\n __type__: { object, string },\n },\n imagePadding: {\n top: { number },\n right: { number },\n bottom: { number },\n left: { number },\n __type__: { object, number },\n },\n label: { string, undefined: \"undefined\" },\n labelHighlightBold: { boolean: bool },\n level: { number, undefined: \"undefined\" },\n margin: {\n top: { number },\n right: { number },\n bottom: { number },\n left: { number },\n __type__: { object, number },\n },\n mass: { number },\n physics: { boolean: bool },\n scaling: {\n min: { number },\n max: { number },\n label: {\n enabled: { boolean: bool },\n min: { number },\n max: { number },\n maxVisible: { number },\n drawThreshold: { number },\n __type__: { object, boolean: bool },\n },\n customScalingFunction: { function: \"function\" },\n __type__: { object },\n },\n shadow: {\n enabled: { boolean: bool },\n color: { string },\n size: { number },\n x: { number },\n y: { number },\n __type__: { object, boolean: bool },\n },\n shape: {\n string: [\n \"custom\",\n \"ellipse\",\n \"circle\",\n \"database\",\n \"box\",\n \"text\",\n \"image\",\n \"circularImage\",\n \"diamond\",\n \"dot\",\n \"star\",\n \"triangle\",\n \"triangleDown\",\n \"square\",\n \"icon\",\n \"hexagon\",\n ],\n },\n ctxRenderer: { function: \"function\" },\n shapeProperties: {\n borderDashes: { boolean: bool, array },\n borderRadius: { number },\n interpolation: { boolean: bool },\n useImageSize: { boolean: bool },\n useBorderWithImage: { boolean: bool },\n coordinateOrigin: { string: [\"center\", \"top-left\"] },\n __type__: { object },\n },\n size: { number },\n title: { string, dom, undefined: \"undefined\" },\n value: { number, undefined: \"undefined\" },\n widthConstraint: {\n minimum: { number },\n maximum: { number },\n __type__: { object, boolean: bool, number },\n },\n x: { number },\n y: { number },\n __type__: { object },\n};\nconst allOptions: OptionsConfig = {\n configure: {\n enabled: { boolean: bool },\n filter: { boolean: bool, string, array, function: \"function\" },\n container: { dom },\n showButton: { boolean: bool },\n __type__: { object, boolean: bool, string, array, function: \"function\" },\n },\n edges: {\n arrows: {\n to: {\n enabled: { boolean: bool },\n scaleFactor: { number },\n type: { string: endPoints },\n imageHeight: { number },\n imageWidth: { number },\n src: { string },\n __type__: { object, boolean: bool },\n },\n middle: {\n enabled: { boolean: bool },\n scaleFactor: { number },\n type: { string: endPoints },\n imageWidth: { number },\n imageHeight: { number },\n src: { string },\n __type__: { object, boolean: bool },\n },\n from: {\n enabled: { boolean: bool },\n scaleFactor: { number },\n type: { string: endPoints },\n imageWidth: { number },\n imageHeight: { number },\n src: { string },\n __type__: { object, boolean: bool },\n },\n __type__: { string: [\"from\", \"to\", \"middle\"], object },\n },\n endPointOffset: {\n from: {\n number: number,\n },\n to: {\n number: number,\n },\n __type__: {\n object: object,\n number: number,\n },\n },\n arrowStrikethrough: { boolean: bool },\n background: {\n enabled: { boolean: bool },\n color: { string },\n size: { number },\n dashes: { boolean: bool, array },\n __type__: { object, boolean: bool },\n },\n chosen: {\n label: { boolean: bool, function: \"function\" },\n edge: { boolean: bool, function: \"function\" },\n __type__: { object, boolean: bool },\n },\n color: {\n color: { string },\n highlight: { string },\n hover: { string },\n inherit: { string: [\"from\", \"to\", \"both\"], boolean: bool },\n opacity: { number },\n __type__: { object, string },\n },\n dashes: { boolean: bool, array },\n font: {\n color: { string },\n size: { number }, // px\n face: { string },\n background: { string },\n strokeWidth: { number }, // px\n strokeColor: { string },\n align: { string: [\"horizontal\", \"top\", \"middle\", \"bottom\"] },\n vadjust: { number },\n multi: { boolean: bool, string },\n bold: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n boldital: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n ital: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n mono: {\n color: { string },\n size: { number }, // px\n face: { string },\n mod: { string },\n vadjust: { number },\n __type__: { object, string },\n },\n __type__: { object, string },\n },\n hidden: { boolean: bool },\n hoverWidth: { function: \"function\", number },\n label: { string, undefined: \"undefined\" },\n labelHighlightBold: { boolean: bool },\n length: { number, undefined: \"undefined\" },\n physics: { boolean: bool },\n scaling: {\n min: { number },\n max: { number },\n label: {\n enabled: { boolean: bool },\n min: { number },\n max: { number },\n maxVisible: { number },\n drawThreshold: { number },\n __type__: { object, boolean: bool },\n },\n customScalingFunction: { function: \"function\" },\n __type__: { object },\n },\n selectionWidth: { function: \"function\", number },\n selfReferenceSize: { number },\n selfReference: {\n size: { number },\n angle: { number },\n renderBehindTheNode: { boolean: bool },\n __type__: { object },\n },\n shadow: {\n enabled: { boolean: bool },\n color: { string },\n size: { number },\n x: { number },\n y: { number },\n __type__: { object, boolean: bool },\n },\n smooth: {\n enabled: { boolean: bool },\n type: {\n string: [\n \"dynamic\",\n \"continuous\",\n \"discrete\",\n \"diagonalCross\",\n \"straightCross\",\n \"horizontal\",\n \"vertical\",\n \"curvedCW\",\n \"curvedCCW\",\n \"cubicBezier\",\n ],\n },\n roundness: { number },\n forceDirection: {\n string: [\"horizontal\", \"vertical\", \"none\"],\n boolean: bool,\n },\n __type__: { object, boolean: bool },\n },\n title: { string, undefined: \"undefined\" },\n width: { number },\n widthConstraint: {\n maximum: { number },\n __type__: { object, boolean: bool, number },\n },\n value: { number, undefined: \"undefined\" },\n __type__: { object },\n },\n groups: {\n useDefaultGroups: { boolean: bool },\n __any__: nodeOptions,\n __type__: { object },\n },\n interaction: {\n dragNodes: { boolean: bool },\n dragView: { boolean: bool },\n hideEdgesOnDrag: { boolean: bool },\n hideEdgesOnZoom: { boolean: bool },\n hideNodesOnDrag: { boolean: bool },\n hover: { boolean: bool },\n keyboard: {\n enabled: { boolean: bool },\n speed: {\n x: { number },\n y: { number },\n zoom: { number },\n __type__: { object },\n },\n bindToWindow: { boolean: bool },\n autoFocus: { boolean: bool },\n __type__: { object, boolean: bool },\n },\n multiselect: { boolean: bool },\n navigationButtons: { boolean: bool },\n selectable: { boolean: bool },\n selectConnectedEdges: { boolean: bool },\n hoverConnectedEdges: { boolean: bool },\n tooltipDelay: { number },\n zoomView: { boolean: bool },\n zoomSpeed: { number },\n __type__: { object },\n },\n layout: {\n randomSeed: { undefined: \"undefined\", number, string },\n improvedLayout: { boolean: bool },\n clusterThreshold: { number },\n hierarchical: {\n enabled: { boolean: bool },\n levelSeparation: { number },\n nodeSpacing: { number },\n treeSpacing: { number },\n blockShifting: { boolean: bool },\n edgeMinimization: { boolean: bool },\n parentCentralization: { boolean: bool },\n direction: { string: [\"UD\", \"DU\", \"LR\", \"RL\"] }, // UD, DU, LR, RL\n sortMethod: { string: [\"hubsize\", \"directed\"] }, // hubsize, directed\n shakeTowards: { string: [\"leaves\", \"roots\"] }, // leaves, roots\n __type__: { object, boolean: bool },\n },\n __type__: { object },\n },\n manipulation: {\n enabled: { boolean: bool },\n initiallyActive: { boolean: bool },\n addNode: { boolean: bool, function: \"function\" },\n addEdge: { boolean: bool, function: \"function\" },\n editNode: { function: \"function\" },\n editEdge: {\n editWithoutDrag: { function: \"function\" },\n __type__: { object, boolean: bool, function: \"function\" },\n },\n deleteNode: { boolean: bool, function: \"function\" },\n deleteEdge: { boolean: bool, function: \"function\" },\n controlNodeStyle: nodeOptions,\n __type__: { object, boolean: bool },\n },\n nodes: nodeOptions,\n physics: {\n enabled: { boolean: bool },\n barnesHut: {\n theta: { number },\n gravitationalConstant: { number },\n centralGravity: { number },\n springLength: { number },\n springConstant: { number },\n damping: { number },\n avoidOverlap: { number },\n __type__: { object },\n },\n forceAtlas2Based: {\n theta: { number },\n gravitationalConstant: { number },\n centralGravity: { number },\n springLength: { number },\n springConstant: { number },\n damping: { number },\n avoidOverlap: { number },\n __type__: { object },\n },\n repulsion: {\n centralGravity: { number },\n springLength: { number },\n springConstant: { number },\n nodeDistance: { number },\n damping: { number },\n __type__: { object },\n },\n hierarchicalRepulsion: {\n centralGravity: { number },\n springLength: { number },\n springConstant: { number },\n nodeDistance: { number },\n damping: { number },\n avoidOverlap: { number },\n __type__: { object },\n },\n maxVelocity: { number },\n minVelocity: { number }, // px/s\n solver: {\n string: [\n \"barnesHut\",\n \"repulsion\",\n \"hierarchicalRepulsion\",\n \"forceAtlas2Based\",\n ],\n },\n stabilization: {\n enabled: { boolean: bool },\n iterations: { number }, // maximum number of iteration to stabilize\n updateInterval: { number },\n onlyDynamicEdges: { boolean: bool },\n fit: { boolean: bool },\n __type__: { object, boolean: bool },\n },\n timestep: { number },\n adaptiveTimestep: { boolean: bool },\n wind: {\n x: { number },\n y: { number },\n __type__: { object },\n },\n __type__: { object, boolean: bool },\n },\n\n //globals :\n autoResize: { boolean: bool },\n clickToUse: { boolean: bool },\n locale: { string },\n locales: {\n __any__: { any },\n __type__: { object },\n },\n height: { string },\n width: { string },\n __type__: { object },\n};\n/* eslint-enable @typescript-eslint/naming-convention */\n\n/**\n * This provides ranges, initial values, steps and dropdown menu choices for the\n * configuration.\n *\n * @remarks\n * Checkbox: `boolean`\n * The value supllied will be used as the initial value.\n *\n * Text field: `string`\n * The passed text will be used as the initial value. Any text will be\n * accepted afterwards.\n *\n * Number range: `[number, number, number, number]`\n * The meanings are `[initial value, min, max, step]`.\n *\n * Dropdown: `[Exclude, ...(string | number | boolean)[]]`\n * Translations for people with poor understanding of TypeScript: the first\n * value always has to be a string but never `\"color\"`, the rest can be any\n * combination of strings, numbers and booleans.\n *\n * Color picker: `[\"color\", string]`\n * The first value says this will be a color picker not a dropdown menu. The\n * next value is the initial color.\n */\nconst configureOptions: ConfiguratorConfig = {\n nodes: {\n borderWidth: [1, 0, 10, 1],\n borderWidthSelected: [2, 0, 10, 1],\n color: {\n border: [\"color\", \"#2B7CE9\"],\n background: [\"color\", \"#97C2FC\"],\n highlight: {\n border: [\"color\", \"#2B7CE9\"],\n background: [\"color\", \"#D2E5FF\"],\n },\n hover: {\n border: [\"color\", \"#2B7CE9\"],\n background: [\"color\", \"#D2E5FF\"],\n },\n },\n opacity: [0, 0, 1, 0.1],\n fixed: {\n x: false,\n y: false,\n },\n font: {\n color: [\"color\", \"#343434\"],\n size: [14, 0, 100, 1], // px\n face: [\"arial\", \"verdana\", \"tahoma\"],\n background: [\"color\", \"none\"],\n strokeWidth: [0, 0, 50, 1], // px\n strokeColor: [\"color\", \"#ffffff\"],\n },\n //group: 'string',\n hidden: false,\n labelHighlightBold: true,\n //icon: {\n // face: 'string', //'FontAwesome',\n // code: 'string', //'\\uf007',\n // size: [50, 0, 200, 1], //50,\n // color: ['color','#2B7CE9'] //'#aa00ff'\n //},\n //image: 'string', // --> URL\n physics: true,\n scaling: {\n min: [10, 0, 200, 1],\n max: [30, 0, 200, 1],\n label: {\n enabled: false,\n min: [14, 0, 200, 1],\n max: [30, 0, 200, 1],\n maxVisible: [30, 0, 200, 1],\n drawThreshold: [5, 0, 20, 1],\n },\n },\n shadow: {\n enabled: false,\n color: \"rgba(0,0,0,0.5)\",\n size: [10, 0, 20, 1],\n x: [5, -30, 30, 1],\n y: [5, -30, 30, 1],\n },\n shape: [\n \"ellipse\",\n \"box\",\n \"circle\",\n \"database\",\n \"diamond\",\n \"dot\",\n \"square\",\n \"star\",\n \"text\",\n \"triangle\",\n \"triangleDown\",\n \"hexagon\",\n ],\n shapeProperties: {\n borderDashes: false,\n borderRadius: [6, 0, 20, 1],\n interpolation: true,\n useImageSize: false,\n },\n size: [25, 0, 200, 1],\n },\n edges: {\n arrows: {\n to: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: \"arrow\" },\n middle: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: \"arrow\" },\n from: { enabled: false, scaleFactor: [1, 0, 3, 0.05], type: \"arrow\" },\n },\n endPointOffset: {\n from: [0, -10, 10, 1],\n to: [0, -10, 10, 1],\n },\n arrowStrikethrough: true,\n color: {\n color: [\"color\", \"#848484\"],\n highlight: [\"color\", \"#848484\"],\n hover: [\"color\", \"#848484\"],\n inherit: [\"from\", \"to\", \"both\", true, false],\n opacity: [1, 0, 1, 0.05],\n },\n dashes: false,\n font: {\n color: [\"color\", \"#343434\"],\n size: [14, 0, 100, 1], // px\n face: [\"arial\", \"verdana\", \"tahoma\"],\n background: [\"color\", \"none\"],\n strokeWidth: [2, 0, 50, 1], // px\n strokeColor: [\"color\", \"#ffffff\"],\n align: [\"horizontal\", \"top\", \"middle\", \"bottom\"],\n },\n hidden: false,\n hoverWidth: [1.5, 0, 5, 0.1],\n labelHighlightBold: true,\n physics: true,\n scaling: {\n min: [1, 0, 100, 1],\n max: [15, 0, 100, 1],\n label: {\n enabled: true,\n min: [14, 0, 200, 1],\n max: [30, 0, 200, 1],\n maxVisible: [30, 0, 200, 1],\n drawThreshold: [5, 0, 20, 1],\n },\n },\n selectionWidth: [1.5, 0, 5, 0.1],\n selfReferenceSize: [20, 0, 200, 1],\n selfReference: {\n size: [20, 0, 200, 1],\n angle: [Math.PI / 2, -6 * Math.PI, 6 * Math.PI, Math.PI / 8],\n renderBehindTheNode: true,\n },\n shadow: {\n enabled: false,\n color: \"rgba(0,0,0,0.5)\",\n size: [10, 0, 20, 1],\n x: [5, -30, 30, 1],\n y: [5, -30, 30, 1],\n },\n smooth: {\n enabled: true,\n type: [\n \"dynamic\",\n \"continuous\",\n \"discrete\",\n \"diagonalCross\",\n \"straightCross\",\n \"horizontal\",\n \"vertical\",\n \"curvedCW\",\n \"curvedCCW\",\n \"cubicBezier\",\n ],\n forceDirection: [\"horizontal\", \"vertical\", \"none\"],\n roundness: [0.5, 0, 1, 0.05],\n },\n width: [1, 0, 30, 1],\n },\n layout: {\n //randomSeed: [0, 0, 500, 1],\n //improvedLayout: true,\n hierarchical: {\n enabled: false,\n levelSeparation: [150, 20, 500, 5],\n nodeSpacing: [100, 20, 500, 5],\n treeSpacing: [200, 20, 500, 5],\n blockShifting: true,\n edgeMinimization: true,\n parentCentralization: true,\n direction: [\"UD\", \"DU\", \"LR\", \"RL\"], // UD, DU, LR, RL\n sortMethod: [\"hubsize\", \"directed\"], // hubsize, directed\n shakeTowards: [\"leaves\", \"roots\"], // leaves, roots\n },\n },\n interaction: {\n dragNodes: true,\n dragView: true,\n hideEdgesOnDrag: false,\n hideEdgesOnZoom: false,\n hideNodesOnDrag: false,\n hover: false,\n keyboard: {\n enabled: false,\n speed: {\n x: [10, 0, 40, 1],\n y: [10, 0, 40, 1],\n zoom: [0.02, 0, 0.1, 0.005],\n },\n bindToWindow: true,\n autoFocus: true,\n },\n multiselect: false,\n navigationButtons: false,\n selectable: true,\n selectConnectedEdges: true,\n hoverConnectedEdges: true,\n tooltipDelay: [300, 0, 1000, 25],\n zoomView: true,\n zoomSpeed: [1, 0.1, 2, 0.1],\n },\n manipulation: {\n enabled: false,\n initiallyActive: false,\n },\n physics: {\n enabled: true,\n barnesHut: {\n theta: [0.5, 0.1, 1, 0.05],\n gravitationalConstant: [-2000, -30000, 0, 50],\n centralGravity: [0.3, 0, 10, 0.05],\n springLength: [95, 0, 500, 5],\n springConstant: [0.04, 0, 1.2, 0.005],\n damping: [0.09, 0, 1, 0.01],\n avoidOverlap: [0, 0, 1, 0.01],\n },\n forceAtlas2Based: {\n theta: [0.5, 0.1, 1, 0.05],\n gravitationalConstant: [-50, -500, 0, 1],\n centralGravity: [0.01, 0, 1, 0.005],\n springLength: [95, 0, 500, 5],\n springConstant: [0.08, 0, 1.2, 0.005],\n damping: [0.4, 0, 1, 0.01],\n avoidOverlap: [0, 0, 1, 0.01],\n },\n repulsion: {\n centralGravity: [0.2, 0, 10, 0.05],\n springLength: [200, 0, 500, 5],\n springConstant: [0.05, 0, 1.2, 0.005],\n nodeDistance: [100, 0, 500, 5],\n damping: [0.09, 0, 1, 0.01],\n },\n hierarchicalRepulsion: {\n centralGravity: [0.2, 0, 10, 0.05],\n springLength: [100, 0, 500, 5],\n springConstant: [0.01, 0, 1.2, 0.005],\n nodeDistance: [120, 0, 500, 5],\n damping: [0.09, 0, 1, 0.01],\n avoidOverlap: [0, 0, 1, 0.01],\n },\n maxVelocity: [50, 0, 150, 1],\n minVelocity: [0.1, 0.01, 0.5, 0.01],\n solver: [\n \"barnesHut\",\n \"forceAtlas2Based\",\n \"repulsion\",\n \"hierarchicalRepulsion\",\n ],\n timestep: [0.5, 0.01, 1, 0.01],\n wind: {\n x: [0, -10, 10, 0.1],\n y: [0, -10, 10, 0.1],\n },\n //adaptiveTimestep: true\n },\n} as const;\n\nexport const configuratorHideOption: ConfiguratorHideOption = (\n parentPath,\n optionName,\n options\n): boolean => {\n if (\n parentPath.includes(\"physics\") &&\n (configureOptions as any).physics.solver.includes(optionName) &&\n options.physics.solver !== optionName &&\n optionName !== \"wind\"\n ) {\n return true;\n }\n\n return false;\n};\n\nexport { allOptions, configureOptions };\n","/**\n * The Floyd–Warshall algorithm is an algorithm for finding shortest paths in\n * a weighted graph with positive or negative edge weights (but with no negative\n * cycles). - https://en.wikipedia.org/wiki/Floyd–Warshall_algorithm\n */\nclass FloydWarshall {\n /**\n * @ignore\n */\n constructor() {}\n\n /**\n *\n * @param {object} body\n * @param {Array.} nodesArray\n * @param {Array.} edgesArray\n * @returns {{}}\n */\n getDistances(body, nodesArray, edgesArray) {\n const D_matrix = {};\n const edges = body.edges;\n\n // prepare matrix with large numbers\n for (let i = 0; i < nodesArray.length; i++) {\n const node = nodesArray[i];\n const cell = {};\n D_matrix[node] = cell;\n for (let j = 0; j < nodesArray.length; j++) {\n cell[nodesArray[j]] = i == j ? 0 : 1e9;\n }\n }\n\n // put the weights for the edges in. This assumes unidirectionality.\n for (let i = 0; i < edgesArray.length; i++) {\n const edge = edges[edgesArray[i]];\n // edge has to be connected if it counts to the distances. If it is connected to inner clusters it will crash so we also check if it is in the D_matrix\n if (\n edge.connected === true &&\n D_matrix[edge.fromId] !== undefined &&\n D_matrix[edge.toId] !== undefined\n ) {\n D_matrix[edge.fromId][edge.toId] = 1;\n D_matrix[edge.toId][edge.fromId] = 1;\n }\n }\n\n const nodeCount = nodesArray.length;\n\n // Adapted FloydWarshall based on unidirectionality to greatly reduce complexity.\n for (let k = 0; k < nodeCount; k++) {\n const knode = nodesArray[k];\n const kcolm = D_matrix[knode];\n for (let i = 0; i < nodeCount - 1; i++) {\n const inode = nodesArray[i];\n const icolm = D_matrix[inode];\n for (let j = i + 1; j < nodeCount; j++) {\n const jnode = nodesArray[j];\n const jcolm = D_matrix[jnode];\n\n const val = Math.min(icolm[jnode], icolm[knode] + kcolm[jnode]);\n icolm[jnode] = val;\n jcolm[inode] = val;\n }\n }\n }\n\n return D_matrix;\n }\n}\n\nexport default FloydWarshall;\n","// distance finding algorithm\nimport FloydWarshall from \"./components/algorithms/FloydWarshall.js\";\n\n/**\n * KamadaKawai positions the nodes initially based on\n *\n * \"AN ALGORITHM FOR DRAWING GENERAL UNDIRECTED GRAPHS\"\n * -- Tomihisa KAMADA and Satoru KAWAI in 1989\n *\n * Possible optimizations in the distance calculation can be implemented.\n */\nclass KamadaKawai {\n /**\n * @param {object} body\n * @param {number} edgeLength\n * @param {number} edgeStrength\n */\n constructor(body, edgeLength, edgeStrength) {\n this.body = body;\n this.springLength = edgeLength;\n this.springConstant = edgeStrength;\n this.distanceSolver = new FloydWarshall();\n }\n\n /**\n * Not sure if needed but can be used to update the spring length and spring constant\n *\n * @param {object} options\n */\n setOptions(options) {\n if (options) {\n if (options.springLength) {\n this.springLength = options.springLength;\n }\n if (options.springConstant) {\n this.springConstant = options.springConstant;\n }\n }\n }\n\n /**\n * Position the system\n *\n * @param {Array.} nodesArray\n * @param {Array.} edgesArray\n * @param {boolean} [ignoreClusters=false]\n */\n solve(nodesArray, edgesArray, ignoreClusters = false) {\n // get distance matrix\n const D_matrix = this.distanceSolver.getDistances(\n this.body,\n nodesArray,\n edgesArray\n ); // distance matrix\n\n // get the L Matrix\n this._createL_matrix(D_matrix);\n\n // get the K Matrix\n this._createK_matrix(D_matrix);\n\n // initial E Matrix\n this._createE_matrix();\n\n // calculate positions\n const threshold = 0.01;\n const innerThreshold = 1;\n let iterations = 0;\n const maxIterations = Math.max(\n 1000,\n Math.min(10 * this.body.nodeIndices.length, 6000)\n );\n const maxInnerIterations = 5;\n\n let maxEnergy = 1e9;\n let highE_nodeId = 0,\n dE_dx = 0,\n dE_dy = 0,\n delta_m = 0,\n subIterations = 0;\n\n while (maxEnergy > threshold && iterations < maxIterations) {\n iterations += 1;\n [highE_nodeId, maxEnergy, dE_dx, dE_dy] =\n this._getHighestEnergyNode(ignoreClusters);\n delta_m = maxEnergy;\n subIterations = 0;\n while (delta_m > innerThreshold && subIterations < maxInnerIterations) {\n subIterations += 1;\n this._moveNode(highE_nodeId, dE_dx, dE_dy);\n [delta_m, dE_dx, dE_dy] = this._getEnergy(highE_nodeId);\n }\n }\n }\n\n /**\n * get the node with the highest energy\n *\n * @param {boolean} ignoreClusters\n * @returns {number[]}\n * @private\n */\n _getHighestEnergyNode(ignoreClusters) {\n const nodesArray = this.body.nodeIndices;\n const nodes = this.body.nodes;\n let maxEnergy = 0;\n let maxEnergyNodeId = nodesArray[0];\n let dE_dx_max = 0,\n dE_dy_max = 0;\n\n for (let nodeIdx = 0; nodeIdx < nodesArray.length; nodeIdx++) {\n const m = nodesArray[nodeIdx];\n // by not evaluating nodes with predefined positions we should only move nodes that have no positions.\n if (\n nodes[m].predefinedPosition !== true ||\n (nodes[m].isCluster === true && ignoreClusters === true) ||\n nodes[m].options.fixed.x !== true ||\n nodes[m].options.fixed.y !== true\n ) {\n const [delta_m, dE_dx, dE_dy] = this._getEnergy(m);\n if (maxEnergy < delta_m) {\n maxEnergy = delta_m;\n maxEnergyNodeId = m;\n dE_dx_max = dE_dx;\n dE_dy_max = dE_dy;\n }\n }\n }\n\n return [maxEnergyNodeId, maxEnergy, dE_dx_max, dE_dy_max];\n }\n\n /**\n * calculate the energy of a single node\n *\n * @param {Node.id} m\n * @returns {number[]}\n * @private\n */\n _getEnergy(m) {\n const [dE_dx, dE_dy] = this.E_sums[m];\n const delta_m = Math.sqrt(dE_dx ** 2 + dE_dy ** 2);\n return [delta_m, dE_dx, dE_dy];\n }\n\n /**\n * move the node based on it's energy\n * the dx and dy are calculated from the linear system proposed by Kamada and Kawai\n *\n * @param {number} m\n * @param {number} dE_dx\n * @param {number} dE_dy\n * @private\n */\n _moveNode(m, dE_dx, dE_dy) {\n const nodesArray = this.body.nodeIndices;\n const nodes = this.body.nodes;\n let d2E_dx2 = 0;\n let d2E_dxdy = 0;\n let d2E_dy2 = 0;\n\n const x_m = nodes[m].x;\n const y_m = nodes[m].y;\n const km = this.K_matrix[m];\n const lm = this.L_matrix[m];\n\n for (let iIdx = 0; iIdx < nodesArray.length; iIdx++) {\n const i = nodesArray[iIdx];\n if (i !== m) {\n const x_i = nodes[i].x;\n const y_i = nodes[i].y;\n const kmat = km[i];\n const lmat = lm[i];\n const denominator = 1.0 / ((x_m - x_i) ** 2 + (y_m - y_i) ** 2) ** 1.5;\n d2E_dx2 += kmat * (1 - lmat * (y_m - y_i) ** 2 * denominator);\n d2E_dxdy += kmat * (lmat * (x_m - x_i) * (y_m - y_i) * denominator);\n d2E_dy2 += kmat * (1 - lmat * (x_m - x_i) ** 2 * denominator);\n }\n }\n // make the variable names easier to make the solving of the linear system easier to read\n const A = d2E_dx2,\n B = d2E_dxdy,\n C = dE_dx,\n D = d2E_dy2,\n E = dE_dy;\n\n // solve the linear system for dx and dy\n const dy = (C / A + E / B) / (B / A - D / B);\n const dx = -(B * dy + C) / A;\n\n // move the node\n nodes[m].x += dx;\n nodes[m].y += dy;\n\n // Recalculate E_matrix (should be incremental)\n this._updateE_matrix(m);\n }\n\n /**\n * Create the L matrix: edge length times shortest path\n *\n * @param {object} D_matrix\n * @private\n */\n _createL_matrix(D_matrix) {\n const nodesArray = this.body.nodeIndices;\n const edgeLength = this.springLength;\n\n this.L_matrix = [];\n for (let i = 0; i < nodesArray.length; i++) {\n this.L_matrix[nodesArray[i]] = {};\n for (let j = 0; j < nodesArray.length; j++) {\n this.L_matrix[nodesArray[i]][nodesArray[j]] =\n edgeLength * D_matrix[nodesArray[i]][nodesArray[j]];\n }\n }\n }\n\n /**\n * Create the K matrix: spring constants times shortest path\n *\n * @param {object} D_matrix\n * @private\n */\n _createK_matrix(D_matrix) {\n const nodesArray = this.body.nodeIndices;\n const edgeStrength = this.springConstant;\n\n this.K_matrix = [];\n for (let i = 0; i < nodesArray.length; i++) {\n this.K_matrix[nodesArray[i]] = {};\n for (let j = 0; j < nodesArray.length; j++) {\n this.K_matrix[nodesArray[i]][nodesArray[j]] =\n edgeStrength * D_matrix[nodesArray[i]][nodesArray[j]] ** -2;\n }\n }\n }\n\n /**\n * Create matrix with all energies between nodes\n *\n * @private\n */\n _createE_matrix() {\n const nodesArray = this.body.nodeIndices;\n const nodes = this.body.nodes;\n this.E_matrix = {};\n this.E_sums = {};\n for (let mIdx = 0; mIdx < nodesArray.length; mIdx++) {\n this.E_matrix[nodesArray[mIdx]] = [];\n }\n for (let mIdx = 0; mIdx < nodesArray.length; mIdx++) {\n const m = nodesArray[mIdx];\n const x_m = nodes[m].x;\n const y_m = nodes[m].y;\n let dE_dx = 0;\n let dE_dy = 0;\n for (let iIdx = mIdx; iIdx < nodesArray.length; iIdx++) {\n const i = nodesArray[iIdx];\n if (i !== m) {\n const x_i = nodes[i].x;\n const y_i = nodes[i].y;\n const denominator =\n 1.0 / Math.sqrt((x_m - x_i) ** 2 + (y_m - y_i) ** 2);\n this.E_matrix[m][iIdx] = [\n this.K_matrix[m][i] *\n (x_m - x_i - this.L_matrix[m][i] * (x_m - x_i) * denominator),\n this.K_matrix[m][i] *\n (y_m - y_i - this.L_matrix[m][i] * (y_m - y_i) * denominator),\n ];\n this.E_matrix[i][mIdx] = this.E_matrix[m][iIdx];\n dE_dx += this.E_matrix[m][iIdx][0];\n dE_dy += this.E_matrix[m][iIdx][1];\n }\n }\n //Store sum\n this.E_sums[m] = [dE_dx, dE_dy];\n }\n }\n\n /**\n * Update method, just doing single column (rows are auto-updated) (update all sums)\n *\n * @param {number} m\n * @private\n */\n _updateE_matrix(m) {\n const nodesArray = this.body.nodeIndices;\n const nodes = this.body.nodes;\n const colm = this.E_matrix[m];\n const kcolm = this.K_matrix[m];\n const lcolm = this.L_matrix[m];\n const x_m = nodes[m].x;\n const y_m = nodes[m].y;\n let dE_dx = 0;\n let dE_dy = 0;\n for (let iIdx = 0; iIdx < nodesArray.length; iIdx++) {\n const i = nodesArray[iIdx];\n if (i !== m) {\n //Keep old energy value for sum modification below\n const cell = colm[iIdx];\n const oldDx = cell[0];\n const oldDy = cell[1];\n\n //Calc new energy:\n const x_i = nodes[i].x;\n const y_i = nodes[i].y;\n const denominator =\n 1.0 / Math.sqrt((x_m - x_i) ** 2 + (y_m - y_i) ** 2);\n const dx =\n kcolm[i] * (x_m - x_i - lcolm[i] * (x_m - x_i) * denominator);\n const dy =\n kcolm[i] * (y_m - y_i - lcolm[i] * (y_m - y_i) * denominator);\n colm[iIdx] = [dx, dy];\n dE_dx += dx;\n dE_dy += dy;\n\n //add new energy to sum of each column\n const sum = this.E_sums[i];\n sum[0] += dx - oldDx;\n sum[1] += dy - oldDy;\n }\n }\n //Store sum at -1 index\n this.E_sums[m] = [dE_dx, dE_dy];\n }\n}\n\nexport default KamadaKawai;\n","// Load custom shapes into CanvasRenderingContext2D\nimport \"./shapes\";\n\nimport \"vis-util/esnext/styles/activator.css\";\nimport \"vis-util/esnext/styles/bootstrap.css\";\nimport \"vis-util/esnext/styles/color-picker.css\";\nimport \"vis-util/esnext/styles/configurator.css\";\nimport \"vis-util/esnext/styles/popup.css\";\n\nimport Emitter from \"component-emitter\";\nimport {\n Activator,\n Configurator,\n VALIDATOR_PRINT_STYLE,\n Validator,\n deepExtend,\n recursiveDOMDelete,\n selectiveDeepExtend,\n} from \"vis-util/esnext\";\nimport { DOTToGraph } from \"./dotparser\";\nimport { parseGephi } from \"./gephiParser\";\nimport * as locales from \"./locales\";\nimport { normalizeLanguageCode } from \"./locale-utils\";\n\nimport Images from \"./Images\";\nimport { Groups } from \"./modules/Groups\";\nimport NodesHandler from \"./modules/NodesHandler\";\nimport EdgesHandler from \"./modules/EdgesHandler\";\nimport PhysicsEngine from \"./modules/PhysicsEngine\";\nimport ClusterEngine from \"./modules/Clustering\";\nimport CanvasRenderer from \"./modules/CanvasRenderer\";\nimport Canvas from \"./modules/Canvas\";\nimport View from \"./modules/View\";\nimport InteractionHandler from \"./modules/InteractionHandler\";\nimport SelectionHandler from \"./modules/SelectionHandler\";\nimport LayoutEngine from \"./modules/LayoutEngine\";\nimport ManipulationSystem from \"./modules/ManipulationSystem\";\nimport {\n allOptions,\n configureOptions,\n configuratorHideOption,\n} from \"./options\";\nimport KamadaKawai from \"./modules/KamadaKawai.js\";\n\n/**\n * Create a network visualization, displaying nodes and edges.\n *\n * @param {Element} container The DOM element in which the Network will\n * be created. Normally a div element.\n * @param {object} data An object containing parameters\n * {Array} nodes\n * {Array} edges\n * @param {object} options Options\n * @class Network\n */\nexport function Network(container, data, options) {\n if (!(this instanceof Network)) {\n throw new SyntaxError(\"Constructor must be called with the new operator\");\n }\n\n // set constant values\n this.options = {};\n this.defaultOptions = {\n locale: \"en\",\n locales: locales,\n clickToUse: false,\n };\n Object.assign(this.options, this.defaultOptions);\n\n /**\n * Containers for nodes and edges.\n *\n * 'edges' and 'nodes' contain the full definitions of all the network elements.\n * 'nodeIndices' and 'edgeIndices' contain the id's of the active elements.\n *\n * The distinction is important, because a defined node need not be active, i.e.\n * visible on the canvas. This happens in particular when clusters are defined, in\n * that case there will be nodes and edges not displayed.\n * The bottom line is that all code with actions related to visibility, *must* use\n * 'nodeIndices' and 'edgeIndices', not 'nodes' and 'edges' directly.\n */\n this.body = {\n container: container,\n\n // See comment above for following fields\n nodes: {},\n nodeIndices: [],\n edges: {},\n edgeIndices: [],\n\n emitter: {\n on: this.on.bind(this),\n off: this.off.bind(this),\n emit: this.emit.bind(this),\n once: this.once.bind(this),\n },\n eventListeners: {\n onTap: function () {},\n onTouch: function () {},\n onDoubleTap: function () {},\n onHold: function () {},\n onDragStart: function () {},\n onDrag: function () {},\n onDragEnd: function () {},\n onMouseWheel: function () {},\n onPinch: function () {},\n onMouseMove: function () {},\n onRelease: function () {},\n onContext: function () {},\n },\n data: {\n nodes: null, // A DataSet or DataView\n edges: null, // A DataSet or DataView\n },\n functions: {\n createNode: function () {},\n createEdge: function () {},\n getPointer: function () {},\n },\n modules: {},\n view: {\n scale: 1,\n translation: { x: 0, y: 0 },\n },\n selectionBox: {\n show: false,\n position: {\n start: { x: 0, y: 0 },\n end: { x: 0, y: 0 },\n },\n },\n };\n\n // bind the event listeners\n this.bindEventListeners();\n\n // setting up all modules\n this.images = new Images(() => this.body.emitter.emit(\"_requestRedraw\")); // object with images\n this.groups = new Groups(); // object with groups\n this.canvas = new Canvas(this.body); // DOM handler\n this.selectionHandler = new SelectionHandler(this.body, this.canvas); // Selection handler\n this.interactionHandler = new InteractionHandler(\n this.body,\n this.canvas,\n this.selectionHandler\n ); // Interaction handler handles all the hammer bindings (that are bound by canvas), key\n this.view = new View(this.body, this.canvas); // camera handler, does animations and zooms\n this.renderer = new CanvasRenderer(this.body, this.canvas); // renderer, starts renderloop, has events that modules can hook into\n this.physics = new PhysicsEngine(this.body); // physics engine, does all the simulations\n this.layoutEngine = new LayoutEngine(this.body); // layout engine for inital layout and hierarchical layout\n this.clustering = new ClusterEngine(this.body); // clustering api\n this.manipulation = new ManipulationSystem(\n this.body,\n this.canvas,\n this.selectionHandler,\n this.interactionHandler\n ); // data manipulation system\n\n this.nodesHandler = new NodesHandler(\n this.body,\n this.images,\n this.groups,\n this.layoutEngine\n ); // Handle adding, deleting and updating of nodes as well as global options\n this.edgesHandler = new EdgesHandler(this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options\n\n this.body.modules[\"kamadaKawai\"] = new KamadaKawai(this.body, 150, 0.05); // Layouting algorithm.\n this.body.modules[\"clustering\"] = this.clustering;\n\n // create the DOM elements\n this.canvas._create();\n\n // apply options\n this.setOptions(options);\n\n // load data (the disable start variable will be the same as the enabled clustering)\n this.setData(data);\n}\n\n// Extend Network with an Emitter mixin\nEmitter(Network.prototype);\n\n/**\n * Set options\n *\n * @param {object} options\n */\nNetwork.prototype.setOptions = function (options) {\n if (options === null) {\n options = undefined; // This ensures that options handling doesn't crash in the handling\n }\n\n if (options !== undefined) {\n const errorFound = Validator.validate(options, allOptions);\n if (errorFound === true) {\n console.error(\n \"%cErrors have been found in the supplied options object.\",\n VALIDATOR_PRINT_STYLE\n );\n }\n\n // copy the global fields over\n const fields = [\"locale\", \"locales\", \"clickToUse\"];\n selectiveDeepExtend(fields, this.options, options);\n\n // normalize the locale or use English\n if (options.locale !== undefined) {\n options.locale = normalizeLanguageCode(\n options.locales || this.options.locales,\n options.locale\n );\n }\n\n // the hierarchical system can adapt the edges and the physics to it's own options because not all combinations work with the hierarichical system.\n options = this.layoutEngine.setOptions(options.layout, options);\n\n this.canvas.setOptions(options); // options for canvas are in globals\n\n // pass the options to the modules\n this.groups.setOptions(options.groups);\n this.nodesHandler.setOptions(options.nodes);\n this.edgesHandler.setOptions(options.edges);\n this.physics.setOptions(options.physics);\n this.manipulation.setOptions(options.manipulation, options, this.options); // manipulation uses the locales in the globals\n\n this.interactionHandler.setOptions(options.interaction);\n this.renderer.setOptions(options.interaction); // options for rendering are in interaction\n this.selectionHandler.setOptions(options.interaction); // options for selection are in interaction\n\n // reload the settings of the nodes to apply changes in groups that are not referenced by pointer.\n if (options.groups !== undefined) {\n this.body.emitter.emit(\"refreshNodes\");\n }\n // these two do not have options at the moment, here for completeness\n //this.view.setOptions(options.view);\n //this.clustering.setOptions(options.clustering);\n\n if (\"configure\" in options) {\n if (!this.configurator) {\n this.configurator = new Configurator(\n this,\n this.body.container,\n configureOptions,\n this.canvas.pixelRatio,\n configuratorHideOption\n );\n }\n\n this.configurator.setOptions(options.configure);\n }\n\n // if the configuration system is enabled, copy all options and put them into the config system\n if (this.configurator && this.configurator.options.enabled === true) {\n const networkOptions = {\n nodes: {},\n edges: {},\n layout: {},\n interaction: {},\n manipulation: {},\n physics: {},\n global: {},\n };\n deepExtend(networkOptions.nodes, this.nodesHandler.options);\n deepExtend(networkOptions.edges, this.edgesHandler.options);\n deepExtend(networkOptions.layout, this.layoutEngine.options);\n // load the selectionHandler and render default options in to the interaction group\n deepExtend(networkOptions.interaction, this.selectionHandler.options);\n deepExtend(networkOptions.interaction, this.renderer.options);\n\n deepExtend(networkOptions.interaction, this.interactionHandler.options);\n deepExtend(networkOptions.manipulation, this.manipulation.options);\n deepExtend(networkOptions.physics, this.physics.options);\n\n // load globals into the global object\n deepExtend(networkOptions.global, this.canvas.options);\n deepExtend(networkOptions.global, this.options);\n\n this.configurator.setModuleOptions(networkOptions);\n }\n\n // handle network global options\n if (options.clickToUse !== undefined) {\n if (options.clickToUse === true) {\n if (this.activator === undefined) {\n this.activator = new Activator(this.canvas.frame);\n this.activator.on(\"change\", () => {\n this.body.emitter.emit(\"activate\");\n });\n }\n } else {\n if (this.activator !== undefined) {\n this.activator.destroy();\n delete this.activator;\n }\n this.body.emitter.emit(\"activate\");\n }\n } else {\n this.body.emitter.emit(\"activate\");\n }\n\n this.canvas.setSize();\n // start the physics simulation. Can be safely called multiple times.\n this.body.emitter.emit(\"startSimulation\");\n }\n};\n\n/**\n * Update the visible nodes and edges list with the most recent node state.\n *\n * Visible nodes are stored in this.body.nodeIndices.\n * Visible edges are stored in this.body.edgeIndices.\n * A node or edges is visible if it is not hidden or clustered.\n *\n * @private\n */\nNetwork.prototype._updateVisibleIndices = function () {\n const nodes = this.body.nodes;\n const edges = this.body.edges;\n this.body.nodeIndices = [];\n this.body.edgeIndices = [];\n\n for (const nodeId in nodes) {\n if (Object.prototype.hasOwnProperty.call(nodes, nodeId)) {\n if (\n !this.clustering._isClusteredNode(nodeId) &&\n nodes[nodeId].options.hidden === false\n ) {\n this.body.nodeIndices.push(nodes[nodeId].id);\n }\n }\n }\n\n for (const edgeId in edges) {\n if (Object.prototype.hasOwnProperty.call(edges, edgeId)) {\n const edge = edges[edgeId];\n\n // It can happen that this is executed *after* a node edge has been removed,\n // but *before* the edge itself has been removed. Taking this into account.\n const fromNode = nodes[edge.fromId];\n const toNode = nodes[edge.toId];\n const edgeNodesPresent = fromNode !== undefined && toNode !== undefined;\n\n const isVisible =\n !this.clustering._isClusteredEdge(edgeId) &&\n edge.options.hidden === false &&\n edgeNodesPresent &&\n fromNode.options.hidden === false && // Also hidden if any of its connecting nodes are hidden\n toNode.options.hidden === false; // idem\n\n if (isVisible) {\n this.body.edgeIndices.push(edge.id);\n }\n }\n }\n};\n\n/**\n * Bind all events\n */\nNetwork.prototype.bindEventListeners = function () {\n // This event will trigger a rebuilding of the cache everything.\n // Used when nodes or edges have been added or removed.\n this.body.emitter.on(\"_dataChanged\", () => {\n this.edgesHandler._updateState();\n this.body.emitter.emit(\"_dataUpdated\");\n });\n\n // this is called when options of EXISTING nodes or edges have changed.\n this.body.emitter.on(\"_dataUpdated\", () => {\n // Order important in following block\n this.clustering._updateState();\n this._updateVisibleIndices();\n\n this._updateValueRange(this.body.nodes);\n this._updateValueRange(this.body.edges);\n // start simulation (can be called safely, even if already running)\n this.body.emitter.emit(\"startSimulation\");\n this.body.emitter.emit(\"_requestRedraw\");\n });\n};\n\n/**\n * Set nodes and edges, and optionally options as well.\n *\n * @param {object} data Object containing parameters:\n * {Array | DataSet | DataView} [nodes] Array with nodes\n * {Array | DataSet | DataView} [edges] Array with edges\n * {String} [dot] String containing data in DOT format\n * {String} [gephi] String containing data in gephi JSON format\n * {Options} [options] Object with options\n */\nNetwork.prototype.setData = function (data) {\n // reset the physics engine.\n this.body.emitter.emit(\"resetPhysics\");\n this.body.emitter.emit(\"_resetData\");\n\n // unselect all to ensure no selections from old data are carried over.\n this.selectionHandler.unselectAll();\n\n if (data && data.dot && (data.nodes || data.edges)) {\n throw new SyntaxError(\n 'Data must contain either parameter \"dot\" or ' +\n ' parameter pair \"nodes\" and \"edges\", but not both.'\n );\n }\n\n // set options\n this.setOptions(data && data.options);\n // set all data\n if (data && data.dot) {\n console.warn(\n \"The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);\"\n );\n // parse DOT file\n const dotData = DOTToGraph(data.dot);\n this.setData(dotData);\n return;\n } else if (data && data.gephi) {\n // parse DOT file\n console.warn(\n \"The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);\"\n );\n const gephiData = parseGephi(data.gephi);\n this.setData(gephiData);\n return;\n } else {\n this.nodesHandler.setData(data && data.nodes, true);\n this.edgesHandler.setData(data && data.edges, true);\n }\n\n // emit change in data\n this.body.emitter.emit(\"_dataChanged\");\n\n // emit data loaded\n this.body.emitter.emit(\"_dataLoaded\");\n\n // find a stable position or start animating to a stable position\n this.body.emitter.emit(\"initPhysics\");\n};\n\n/**\n * Cleans up all bindings of the network, removing it fully from the memory IF the variable is set to null after calling this function.\n * var network = new vis.Network(..);\n * network.destroy();\n * network = null;\n */\nNetwork.prototype.destroy = function () {\n this.body.emitter.emit(\"destroy\");\n // clear events\n this.body.emitter.off();\n this.off();\n\n // delete modules\n delete this.groups;\n delete this.canvas;\n delete this.selectionHandler;\n delete this.interactionHandler;\n delete this.view;\n delete this.renderer;\n delete this.physics;\n delete this.layoutEngine;\n delete this.clustering;\n delete this.manipulation;\n delete this.nodesHandler;\n delete this.edgesHandler;\n delete this.configurator;\n delete this.images;\n\n for (const nodeId in this.body.nodes) {\n if (!Object.prototype.hasOwnProperty.call(this.body.nodes, nodeId))\n continue;\n delete this.body.nodes[nodeId];\n }\n\n for (const edgeId in this.body.edges) {\n if (!Object.prototype.hasOwnProperty.call(this.body.edges, edgeId))\n continue;\n delete this.body.edges[edgeId];\n }\n\n // remove the container and everything inside it recursively\n recursiveDOMDelete(this.body.container);\n};\n\n/**\n * Update the values of all object in the given array according to the current\n * value range of the objects in the array.\n *\n * @param {object} obj An object containing a set of Edges or Nodes\n * The objects must have a method getValue() and\n * setValueRange(min, max).\n * @private\n */\nNetwork.prototype._updateValueRange = function (obj) {\n let id;\n\n // determine the range of the objects\n let valueMin = undefined;\n let valueMax = undefined;\n let valueTotal = 0;\n for (id in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, id)) {\n const value = obj[id].getValue();\n if (value !== undefined) {\n valueMin = valueMin === undefined ? value : Math.min(value, valueMin);\n valueMax = valueMax === undefined ? value : Math.max(value, valueMax);\n valueTotal += value;\n }\n }\n }\n\n // adjust the range of all objects\n if (valueMin !== undefined && valueMax !== undefined) {\n for (id in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, id)) {\n obj[id].setValueRange(valueMin, valueMax, valueTotal);\n }\n }\n }\n};\n\n/**\n * Returns true when the Network is active.\n *\n * @returns {boolean}\n */\nNetwork.prototype.isActive = function () {\n return !this.activator || this.activator.active;\n};\n\nNetwork.prototype.setSize = function () {\n return this.canvas.setSize.apply(this.canvas, arguments);\n};\nNetwork.prototype.canvasToDOM = function () {\n return this.canvas.canvasToDOM.apply(this.canvas, arguments);\n};\nNetwork.prototype.DOMtoCanvas = function () {\n return this.canvas.DOMtoCanvas.apply(this.canvas, arguments);\n};\n\n/**\n * Nodes can be in clusters. Clusters can also be in clusters. This function returns and array of\n * nodeIds showing where the node is.\n *\n * If any nodeId in the chain, especially the first passed in as a parameter, is not present in\n * the current nodes list, an empty array is returned.\n *\n * Example:\n * cluster 'A' contains cluster 'B',\n * cluster 'B' contains cluster 'C',\n * cluster 'C' contains node 'fred'.\n * `jsnetwork.clustering.findNode('fred')` will return `['A','B','C','fred']`.\n *\n * @param {string|number} nodeId\n * @returns {Array}\n */\nNetwork.prototype.findNode = function () {\n return this.clustering.findNode.apply(this.clustering, arguments);\n};\n\nNetwork.prototype.isCluster = function () {\n return this.clustering.isCluster.apply(this.clustering, arguments);\n};\nNetwork.prototype.openCluster = function () {\n return this.clustering.openCluster.apply(this.clustering, arguments);\n};\nNetwork.prototype.cluster = function () {\n return this.clustering.cluster.apply(this.clustering, arguments);\n};\nNetwork.prototype.getNodesInCluster = function () {\n return this.clustering.getNodesInCluster.apply(this.clustering, arguments);\n};\nNetwork.prototype.clusterByConnection = function () {\n return this.clustering.clusterByConnection.apply(this.clustering, arguments);\n};\nNetwork.prototype.clusterByHubsize = function () {\n return this.clustering.clusterByHubsize.apply(this.clustering, arguments);\n};\nNetwork.prototype.updateClusteredNode = function () {\n return this.clustering.updateClusteredNode.apply(this.clustering, arguments);\n};\nNetwork.prototype.getClusteredEdges = function () {\n return this.clustering.getClusteredEdges.apply(this.clustering, arguments);\n};\nNetwork.prototype.getBaseEdge = function () {\n return this.clustering.getBaseEdge.apply(this.clustering, arguments);\n};\nNetwork.prototype.getBaseEdges = function () {\n return this.clustering.getBaseEdges.apply(this.clustering, arguments);\n};\nNetwork.prototype.updateEdge = function () {\n return this.clustering.updateEdge.apply(this.clustering, arguments);\n};\n\n/**\n * This method will cluster all nodes with 1 edge with their respective connected node.\n * The options object is explained in full below.\n *\n * @param {object} [options]\n * @returns {undefined}\n */\nNetwork.prototype.clusterOutliers = function () {\n return this.clustering.clusterOutliers.apply(this.clustering, arguments);\n};\n\nNetwork.prototype.getSeed = function () {\n return this.layoutEngine.getSeed.apply(this.layoutEngine, arguments);\n};\nNetwork.prototype.enableEditMode = function () {\n return this.manipulation.enableEditMode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.disableEditMode = function () {\n return this.manipulation.disableEditMode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.addNodeMode = function () {\n return this.manipulation.addNodeMode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.editNode = function () {\n return this.manipulation.editNode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.editNodeMode = function () {\n console.warn(\"Deprecated: Please use editNode instead of editNodeMode.\");\n return this.manipulation.editNode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.addEdgeMode = function () {\n return this.manipulation.addEdgeMode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.editEdgeMode = function () {\n return this.manipulation.editEdgeMode.apply(this.manipulation, arguments);\n};\nNetwork.prototype.deleteSelected = function () {\n return this.manipulation.deleteSelected.apply(this.manipulation, arguments);\n};\nNetwork.prototype.getPositions = function () {\n return this.nodesHandler.getPositions.apply(this.nodesHandler, arguments);\n};\nNetwork.prototype.getPosition = function () {\n return this.nodesHandler.getPosition.apply(this.nodesHandler, arguments);\n};\nNetwork.prototype.storePositions = function () {\n return this.nodesHandler.storePositions.apply(this.nodesHandler, arguments);\n};\nNetwork.prototype.moveNode = function () {\n return this.nodesHandler.moveNode.apply(this.nodesHandler, arguments);\n};\nNetwork.prototype.getBoundingBox = function () {\n return this.nodesHandler.getBoundingBox.apply(this.nodesHandler, arguments);\n};\nNetwork.prototype.getConnectedNodes = function (objectId) {\n if (this.body.nodes[objectId] !== undefined) {\n return this.nodesHandler.getConnectedNodes.apply(\n this.nodesHandler,\n arguments\n );\n } else {\n return this.edgesHandler.getConnectedNodes.apply(\n this.edgesHandler,\n arguments\n );\n }\n};\nNetwork.prototype.getConnectedEdges = function () {\n return this.nodesHandler.getConnectedEdges.apply(\n this.nodesHandler,\n arguments\n );\n};\nNetwork.prototype.startSimulation = function () {\n return this.physics.startSimulation.apply(this.physics, arguments);\n};\nNetwork.prototype.stopSimulation = function () {\n return this.physics.stopSimulation.apply(this.physics, arguments);\n};\nNetwork.prototype.stabilize = function () {\n return this.physics.stabilize.apply(this.physics, arguments);\n};\nNetwork.prototype.getSelection = function () {\n return this.selectionHandler.getSelection.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.setSelection = function () {\n return this.selectionHandler.setSelection.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.getSelectedNodes = function () {\n return this.selectionHandler.getSelectedNodeIds.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.getSelectedEdges = function () {\n return this.selectionHandler.getSelectedEdgeIds.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.getNodeAt = function () {\n const node = this.selectionHandler.getNodeAt.apply(\n this.selectionHandler,\n arguments\n );\n if (node !== undefined && node.id !== undefined) {\n return node.id;\n }\n return node;\n};\nNetwork.prototype.getEdgeAt = function () {\n const edge = this.selectionHandler.getEdgeAt.apply(\n this.selectionHandler,\n arguments\n );\n if (edge !== undefined && edge.id !== undefined) {\n return edge.id;\n }\n return edge;\n};\nNetwork.prototype.selectNodes = function () {\n return this.selectionHandler.selectNodes.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.selectEdges = function () {\n return this.selectionHandler.selectEdges.apply(\n this.selectionHandler,\n arguments\n );\n};\nNetwork.prototype.unselectAll = function () {\n this.selectionHandler.unselectAll.apply(this.selectionHandler, arguments);\n this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler);\n this.redraw();\n};\nNetwork.prototype.redraw = function () {\n return this.renderer.redraw.apply(this.renderer, arguments);\n};\nNetwork.prototype.getScale = function () {\n return this.view.getScale.apply(this.view, arguments);\n};\nNetwork.prototype.getViewPosition = function () {\n return this.view.getViewPosition.apply(this.view, arguments);\n};\nNetwork.prototype.fit = function () {\n return this.view.fit.apply(this.view, arguments);\n};\nNetwork.prototype.moveTo = function () {\n return this.view.moveTo.apply(this.view, arguments);\n};\nNetwork.prototype.focus = function () {\n return this.view.focus.apply(this.view, arguments);\n};\nNetwork.prototype.releaseNode = function () {\n return this.view.releaseNode.apply(this.view, arguments);\n};\nNetwork.prototype.getOptionsFromConfigurator = function () {\n let options = {};\n if (this.configurator) {\n options = this.configurator.getOptions.apply(this.configurator);\n }\n return options;\n};\n\nexport default Network;\n","// DOM utility methods\n\n/**\n * this prepares the JSON container for allocating SVG elements\n *\n * @param {object} JSONcontainer\n * @private\n */\nexport function prepareElements(JSONcontainer) {\n // cleanup the redundant svgElements;\n for (const elementType in JSONcontainer) {\n if (Object.prototype.hasOwnProperty.call(JSONcontainer, elementType)) {\n JSONcontainer[elementType].redundant = JSONcontainer[elementType].used;\n JSONcontainer[elementType].used = [];\n }\n }\n}\n\n/**\n * this cleans up all the unused SVG elements. By asking for the parentNode, we only need to supply the JSON container from\n * which to remove the redundant elements.\n *\n * @param {object} JSONcontainer\n * @private\n */\nexport function cleanupElements(JSONcontainer) {\n // cleanup the redundant svgElements;\n for (const elementType in JSONcontainer) {\n if (Object.prototype.hasOwnProperty.call(JSONcontainer, elementType)) {\n if (JSONcontainer[elementType].redundant) {\n for (let i = 0; i < JSONcontainer[elementType].redundant.length; i++) {\n JSONcontainer[elementType].redundant[i].parentNode.removeChild(\n JSONcontainer[elementType].redundant[i]\n );\n }\n JSONcontainer[elementType].redundant = [];\n }\n }\n }\n}\n\n/**\n * Ensures that all elements are removed first up so they can be recreated cleanly\n *\n * @param {object} JSONcontainer\n */\nexport function resetElements(JSONcontainer) {\n prepareElements(JSONcontainer);\n cleanupElements(JSONcontainer);\n prepareElements(JSONcontainer);\n}\n\n/**\n * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer\n * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this.\n *\n * @param {string} elementType\n * @param {object} JSONcontainer\n * @param {object} svgContainer\n * @returns {Element}\n * @private\n */\nexport function getSVGElement(elementType, JSONcontainer, svgContainer) {\n let element;\n // allocate SVG element, if it doesnt yet exist, create one.\n if (Object.prototype.hasOwnProperty.call(JSONcontainer, elementType)) {\n // this element has been created before\n // check if there is an redundant element\n if (JSONcontainer[elementType].redundant.length > 0) {\n element = JSONcontainer[elementType].redundant[0];\n JSONcontainer[elementType].redundant.shift();\n } else {\n // create a new element and add it to the SVG\n element = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n elementType\n );\n svgContainer.appendChild(element);\n }\n } else {\n // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it.\n element = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n elementType\n );\n JSONcontainer[elementType] = { used: [], redundant: [] };\n svgContainer.appendChild(element);\n }\n JSONcontainer[elementType].used.push(element);\n return element;\n}\n\n/**\n * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer\n * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this.\n *\n * @param {string} elementType\n * @param {object} JSONcontainer\n * @param {Element} DOMContainer\n * @param {Element} insertBefore\n * @returns {*}\n */\nexport function getDOMElement(\n elementType,\n JSONcontainer,\n DOMContainer,\n insertBefore\n) {\n let element;\n // allocate DOM element, if it doesnt yet exist, create one.\n if (Object.prototype.hasOwnProperty.call(JSONcontainer, elementType)) {\n // this element has been created before\n // check if there is an redundant element\n if (JSONcontainer[elementType].redundant.length > 0) {\n element = JSONcontainer[elementType].redundant[0];\n JSONcontainer[elementType].redundant.shift();\n } else {\n // create a new element and add it to the SVG\n element = document.createElement(elementType);\n if (insertBefore !== undefined) {\n DOMContainer.insertBefore(element, insertBefore);\n } else {\n DOMContainer.appendChild(element);\n }\n }\n } else {\n // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it.\n element = document.createElement(elementType);\n JSONcontainer[elementType] = { used: [], redundant: [] };\n if (insertBefore !== undefined) {\n DOMContainer.insertBefore(element, insertBefore);\n } else {\n DOMContainer.appendChild(element);\n }\n }\n JSONcontainer[elementType].used.push(element);\n return element;\n}\n\n/**\n * Draw a point object. This is a separate function because it can also be called by the legend.\n * The reason the JSONcontainer and the target SVG svgContainer have to be supplied is so the legend can use these functions\n * as well.\n *\n * @param {number} x\n * @param {number} y\n * @param {object} groupTemplate: A template containing the necessary information to draw the datapoint e.g., {style: 'circle', size: 5, className: 'className' }\n * @param groupTemplate\n * @param {object} JSONcontainer\n * @param {object} svgContainer\n * @param {object} labelObj\n * @returns {vis.PointItem}\n */\nexport function drawPoint(\n x,\n y,\n groupTemplate,\n JSONcontainer,\n svgContainer,\n labelObj\n) {\n let point;\n if (groupTemplate.style == \"circle\") {\n point = getSVGElement(\"circle\", JSONcontainer, svgContainer);\n point.setAttributeNS(null, \"cx\", x);\n point.setAttributeNS(null, \"cy\", y);\n point.setAttributeNS(null, \"r\", 0.5 * groupTemplate.size);\n } else {\n point = getSVGElement(\"rect\", JSONcontainer, svgContainer);\n point.setAttributeNS(null, \"x\", x - 0.5 * groupTemplate.size);\n point.setAttributeNS(null, \"y\", y - 0.5 * groupTemplate.size);\n point.setAttributeNS(null, \"width\", groupTemplate.size);\n point.setAttributeNS(null, \"height\", groupTemplate.size);\n }\n\n if (groupTemplate.styles !== undefined) {\n point.setAttributeNS(null, \"style\", groupTemplate.styles);\n }\n point.setAttributeNS(null, \"class\", groupTemplate.className + \" vis-point\");\n //handle label\n\n if (labelObj) {\n const label = getSVGElement(\"text\", JSONcontainer, svgContainer);\n if (labelObj.xOffset) {\n x = x + labelObj.xOffset;\n }\n\n if (labelObj.yOffset) {\n y = y + labelObj.yOffset;\n }\n if (labelObj.content) {\n label.textContent = labelObj.content;\n }\n\n if (labelObj.className) {\n label.setAttributeNS(null, \"class\", labelObj.className + \" vis-label\");\n }\n label.setAttributeNS(null, \"x\", x);\n label.setAttributeNS(null, \"y\", y);\n }\n\n return point;\n}\n\n/**\n * draw a bar SVG element centered on the X coordinate\n *\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} className\n * @param {object} JSONcontainer\n * @param {object} svgContainer\n * @param {string} style\n */\nexport function drawBar(\n x,\n y,\n width,\n height,\n className,\n JSONcontainer,\n svgContainer,\n style\n) {\n if (height != 0) {\n if (height < 0) {\n height *= -1;\n y -= height;\n }\n const rect = getSVGElement(\"rect\", JSONcontainer, svgContainer);\n rect.setAttributeNS(null, \"x\", x - 0.5 * width);\n rect.setAttributeNS(null, \"y\", y);\n rect.setAttributeNS(null, \"width\", width);\n rect.setAttributeNS(null, \"height\", height);\n rect.setAttributeNS(null, \"class\", className);\n if (style) {\n rect.setAttributeNS(null, \"style\", style);\n }\n }\n}\n","/**\n * Normalizes language code into the format used internally.\n *\n * @param locales - All the available locales.\n * @param rawCode - The original code as supplied by the user.\n * @returns Language code in the format language-COUNTRY or language, eventually\n * fallbacks to en.\n */\nexport function normalizeLanguageCode(\n locales: Record,\n rawCode: string\n): string {\n try {\n const [rawLanguage, rawCountry] = rawCode.split(/[-_ /]/, 2);\n const language = rawLanguage != null ? rawLanguage.toLowerCase() : null;\n const country = rawCountry != null ? rawCountry.toUpperCase() : null;\n\n if (language && country) {\n const code = language + \"-\" + country;\n if (Object.prototype.hasOwnProperty.call(locales, code)) {\n return code;\n } else {\n console.warn(`Unknown variant ${country} of language ${language}.`);\n }\n }\n\n if (language) {\n const code = language;\n if (Object.prototype.hasOwnProperty.call(locales, code)) {\n return code;\n } else {\n console.warn(`Unknown language ${language}`);\n }\n }\n\n console.warn(`Unknown locale ${rawCode}, falling back to English.`);\n\n return \"en\";\n } catch (error) {\n console.error(error);\n console.warn(\n `Unexpected error while normalizing locale ${rawCode}, falling back to English.`\n );\n\n return \"en\";\n }\n}\n","// Network.\nexport * from \"./network/Network\";\n\nimport Images from \"./network/Images\";\nimport * as dotparser from \"./network/dotparser\";\nimport * as gephiParser from \"./network/gephiParser\";\nimport { parseGephi } from \"./network/gephiParser\";\nimport * as allOptions from \"./network/options\";\nexport const network = {\n Images,\n dotparser,\n gephiParser,\n allOptions,\n convertDot: dotparser.DOTToGraph,\n convertGephi: parseGephi,\n};\n\n// utils\nimport * as DOMutil from \"./DOMutil\";\nexport { DOMutil };\n\n// vis-util\nimport * as util from \"vis-util/esnext\";\nexport { util };\n\n// vis-data\nimport * as data from \"vis-data/esnext\";\nexport { data };\nexport { DataSet, DataView, Queue } from \"vis-data/esnext\";\n\n// bundled external libraries\nimport { Hammer } from \"vis-util/esnext\";\nexport { Hammer };\nimport * as keycharm from \"keycharm\";\nexport { keycharm };\n"],"names":["check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","functionBindNative","require$$0","test","bind","hasOwnProperty","NATIVE_BIND","FunctionPrototype","prototype","apply","call","functionApply","Reflect","arguments","uncurryThisWithBind","functionUncurryThis","fn","uncurryThis","toString","stringSlice","slice","classofRaw","require$$1","functionUncurryThisClause","documentAll","document","all","documentAll_1","IS_HTMLDDA","undefined","isCallable","argument","descriptors","Object","defineProperty","get","functionCall","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","objectPropertyIsEnumerable","f","V","descriptor","enumerable","match","version","createPropertyDescriptor","bitmap","value","configurable","writable","classof","require$$2","$Object","split","indexedObject","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","IndexedObject","toIndexedObject","isObject","path","aFunction","variable","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","navigator","String","userAgent","process","Deno","versions","v8","engineV8Version","V8_VERSION","$String","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","sham","useSymbolAsUid","iterator","isSymbol","require$$3","$Symbol","tryToString","aCallable","getMethod","P","func","defineGlobalProperty","key","SHARED","sharedStore","store","sharedModule","push","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","shared","NATIVE_SYMBOL","require$$4","USE_SYMBOL_AS_UID","require$$5","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","ordinaryToPrimitive","input","pref","val","valueOf","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","createElement","documentCreateElement","ie8DomDefine","a","DESCRIPTORS","propertyIsEnumerableModule","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","objectGetOwnPropertyDescriptor","O","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isForced_1","functionBindContext","that","v8PrototypeDefineBug","anObject","V8_PROTOTYPE_DEFINE_BUG","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","Attributes","current","definePropertyModule","createNonEnumerableProperty","object","require$$8","require$$9","wrapConstructor","NativeConstructor","Wrapper","b","c","_export","options","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","TARGET","target","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","forced","dontCallGetSet","wrap","real","ceil","floor","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","hiddenKeys","objectKeysInternal","names","i","enumBugKeys","internalObjectKeys","objectKeys","keys","objectGetOwnPropertySymbols","getOwnPropertySymbolsModule","$assign","assign","concat","objectAssign","A","B","alphabet","forEach","chr","join","T","argumentsLength","S","j","arity","arraySlice","$Function","factories","functionBind","F","Prototype","partArgs","boundFunction","args","C","argsLength","list","construct","entryVirtual","CONSTRUCTOR","parent","own","drawCircle","ctx","y","r","beginPath","arc","PI","closePath","drawRoundRect","w","h","r2d","moveTo","lineTo","drawEllipse","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","drawDatabase","hEllipse","ymb","yeb","drawDashedLine","x2","y2","pattern","patternLength","dx","dy","slope","distRemaining","sqrt","patternIndex","draw","xStep","dashLength","shapeMap","circle","dashedLine","database","diamond","ellipse","ellipse_vis","hexagon","cos","sin","roundRect","square","rect","star","radius","triangle","s","s2","ir","triangleDown","Emitter","mixin","module","exports","on","addEventListener","event","_callbacks","once","off","removeListener","removeAllListeners","removeEventListener","cb","callbacks","splice","emit","Array","len","listeners","hasListeners","set","has","toStringTagSupport","TO_STRING_TAG_SUPPORT","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","charAt","charCodeAt","CONVERT_TO_STRING","pos","first","second","position","size","stringMultibyte","codeAt","WeakMap","weakMapBasicDetection","sharedKey","NATIVE_WEAK_MAP","OBJECT_ALREADY_INITIALIZED","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","type","getDescriptor","functionName","PROPER","objectDefineProperties","defineProperties","Properties","props","activeXDocument","html","definePropertiesModule","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","src","contentWindow","open","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","objectCreate","create","correctPrototypeGetter","constructor","getPrototypeOf","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","objectGetPrototypeOf","defineBuiltIn","ITERATOR","BUGGY_SAFARI_ITERATORS","NEW_ITERATOR_PROTOTYPE","iteratorsCore","objectToString","setToStringTag","TAG","SET_METHOD","iterators","Iterators","returnThis","uncurryThisAccessor","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","setter","CORRECT_SETTER","__proto__","$","FunctionName","createIteratorConstructor","IteratorConstructor","NAME","next","ENUMERABLE_NEXT","require$$10","require$$12","IteratorsCore","require$$13","PROPER_FUNCTION_NAME","require$$11","KEYS","VALUES","ENTRIES","iteratorDefine","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","createIterResultObject","done","InternalStateModule","defineIterator","STRING_ITERATOR","setInternalState","getInternalState","iterated","point","iteratorClose","kind","innerResult","innerError","ArrayPrototype","isArrayIteratorMethod","functionToString","inspectSource","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","called","createProperty","propertyKey","getIteratorMethod","getIterator","usingIterator","iteratorMethod","callWithSafeIterationClosing","$Array","SAFE_CLOSING","iteratorWithReturn","return","from","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iterable","ARRAY_ITERATOR","defineIterator$1","Arguments","getIteratorMethod_1","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","COLLECTION_NAME","Collection","CollectionPrototype","_classCallCheck","instance","Constructor","$$_","desc","isArray","doesNotExceedSafeInteger","SPECIES","arraySpeciesConstructor","originalArray","arraySpeciesCreate","arrayMethodHasSpeciesSupport","METHOD_NAME","array","foo","Boolean","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","arg","k","E","objectGetOwnPropertyNames","getOwnPropertyNames","arraySliceSimple","start","end","fin","$getOwnPropertyNames","windowNames","objectGetOwnPropertyNamesExternal","getWindowNames","defineBuiltInAccessor","wellKnownSymbolWrapped","wrappedWellKnownSymbolModule","wellKnownSymbolDefine","symbolDefineToPrimitive","SymbolPrototype","hint","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","arrayIteration","map","filter","some","every","find","findIndex","filterReject","$toString","require$$14","nativeObjectCreate","require$$15","require$$16","getOwnPropertyNamesModule","require$$17","getOwnPropertyNamesExternal","require$$18","require$$19","getOwnPropertyDescriptorModule","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$28","require$$29","require$$30","require$$31","defineWellKnownSymbol","require$$32","defineSymbolToPrimitive","require$$33","require$$34","require$$35","$forEach","require$$36","HIDDEN","require$$27","SYMBOL","RangeError","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","description","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","$$Y","$forEach$1","useSetter","useSimple","symbolRegistryDetection","keyFor","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","for","sym","getReplacerFunction","replacer","rawLength","element","keysLength","root","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","offset","prev","stringify","space","JSON","METADATA","thisSymbolValue","symbolIsRegistered","isRegisteredSymbol","$isWellKnownSymbol","isWellKnownSymbol","symbolKeys","symbolKeysLength","symbolKey","symbolIsWellKnown","isRegistered","isWellKnown","_typeof","o","_Symbol","_Symbol$iterator","_toPropertyKey","prim","_Symbol$toPrimitive","res","Number","_defineProperties","_Object$defineProperty","_createClass","protoProps","staticProps","arraySetLength","setArrayLength","properErrorOnNonWritableLength","item","argCount","nativeSlice","HAS_SPECIES_SUPPORT","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","_context","arrayLikeToArray","_sliceInstanceProperty","_Array$from","_slicedToArray","_Array$isArray","arrayWithHoles","l","t","_getIteratorMethod","e","u","_pushInstanceProperty","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_toConsumableArray","arrayWithoutHoles","iter","iterableToArray","nonIterableSpread","ownKeys","$map","nativeKeys","$Date","Date","thisTimeValue","getTime","$$J","now","arrayMethodIsStrict","arrayForEach","nativeReverse","reverse","$$H","deletePropertyOrThrow","deleteCount","insertCount","actualDeleteCount","to","actualStart","$includes","MATCH","isRegExp","notARegExp","correctIsRegExpLogic","regexp","error1","error2","stringIndexOf","searchString","arrayMethod","stringMethod","StringPrototype","nativeGetPrototypeOf","$filter","IE_BUG","TO_ENTRIES","IE_WORKAROUND","objectToArray","$values","whitespaces","ltrim","RegExp","rtrim","stringTrim","trim","$parseInt","parseInt","hex","numberParseInt","radix","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","$entries","D","engineIsBun","Bun","validateArgumentsLength","passed","required","ENGINE_IS_BUN","USER_AGENT","WRAP","schedulersFix","scheduler","hasTimeArg","firstParamIndex","handler","timeout","boundArgs","params","callback","setInterval","setTimeout","fill","endPos","_extends","_inheritsLoose","subClass","superClass","_assertThisInitialized","ReferenceError","output","nextKey","win","assign$1","VENDOR_PREFIXES","TEST_ELEMENT","round","abs","prefixed","property","prefix","prop","camelProp","toUpperCase","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","COMPUTE_INTERVAL","INPUT_START","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","each","context","boolOrFn","inStr","str","TouchAction","manager","_proto","compute","actions","update","touchAction","recognizers","recognizer","enable","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","srcEvent","direction","offsetDirection","session","prevented","preventDefault","hasNone","isTapPointer","pointers","isTapMovement","distance","isTapTouchTime","deltaTime","preventSrc","hasParent","node","parentNode","getCenter","pointersLength","clientX","clientY","simpleCloneInputData","timeStamp","center","deltaX","deltaY","getDistance","p1","p2","getAngle","atan2","getDirection","getVelocity","computeInputData","firstInput","firstMultiple","offsetCenter","angle","offsetDelta","prevDelta","prevInput","eventType","computeDeltaXY","overallVelocity","overallVelocityX","overallVelocityY","scale","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","last","lastInterval","v","computeIntervalInputData","srcEventTarget","composedPath","inputHandler","pointersLen","changedPointersLen","changedPointers","isFirst","isFinal","recognize","splitStr","addEventListeners","types","removeEventListeners","getWindowForElement","doc","ownerDocument","defaultView","Input","inputTarget","domHandler","ev","init","evEl","evTarget","evWin","destroy","inArray","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEvent","PointerEventInput","_Input","_this","pointerEvents","removePointer","eventTypeNormalized","pointerType","isTouch","storeIndex","pointerId","button","toArray","uniqueArray","sort","results","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TouchInput","targetIds","touches","getTouches","targetTouches","allTouches","identifier","changedTouches","changedTargetTouches","touch","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","DEDUP_TIMEOUT","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","isSyntheticEvent","TouchMouseInput","_manager","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","mouse","invokeArrayArg","STATE_FAILED","_uniqueId","getRecognizerByNameIfManager","otherRecognizer","stateStr","Recognizer","simultaneous","requireFail","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","reset","TapRecognizer","_Recognizer","taps","interval","time","threshold","posThreshold","pTime","pCenter","_timer","_input","count","_this2","validPointers","validMovement","validTouchTime","failTimeout","validInterval","validMultiTap","_this3","clearTimeout","tapCount","AttrRecognizer","attrTest","optionPointers","isRecognized","isValid","directionStr","PanRecognizer","_AttrRecognizer","pX","pY","directionTest","hasMoved","SwipeRecognizer","PinchRecognizer","inOut","RotateRecognizer","PressRecognizer","validTime","defaults","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","preset","toggleCssProps","add","oldCssProps","Manager","handlers","stop","force","stopped","curRecognizer","existing","remove","targetRecognizer","events","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","started","normalizeSingleTouches","changed","deprecate","message","deprecationMessage","Error","stack","log","console","warn","extend","dest","merge","inherit","child","base","childP","baseP","_super","bindFn","Hammer","VERSION","INPUT_MOVE","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Tap","Pan","Swipe","Pinch","Rotate","Press","RealHammer","DELETE","pureDeepObjectAssign","_len","updates","_key","deepObjectAssign","_concatInstanceProperty","merged","deepObjectAssignNonentry","stripDelete","_len2","_key2","_context2","setTime","_step","_iterator","_createForOfIteratorHelper","_Reflect$ownKeys","clone","err","_mapInstanceProperty","_i","_Object$keys","_Object$keys2","parseDOT","dot","graph","getToken","token","strict","tokenType","TOKENTYPE","IDENTIFIER","newSyntaxError","parseStatements","edge","parseGraph","NODE_ATTR_MAPPING","fontsize","fontcolor","labelfontcolor","fontname","color","fillcolor","tooltip","labeltooltip","EDGE_ATTR_MAPPING","_Object$create","NULL","DELIMITER","UNKNOWN","DELIMITERS","nextPreview","isAlphaNumeric","charCode","setValue","shift","addNode","graphs","nodes","attr","g","_indexOfInstanceProperty","addEdge","edges","createEdge","enabled","arrows","isComment","c2","isNaN","SyntaxError","chop","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeList","parseAttributeStatement","parseNodeStatement","subgraphs","nof_attr_list","edgeStyles","dashed","solid","dotted","arrowTypes","box","crow","curve","icurve","normal","inv","tee","vee","attr_list","attr_names","_includesInstanceProperty","idx","dir","from_type","to_type","dir_type","_spliceInstanceProperty","idx_arrow","tmp_attr_list","text","maxLength","substr","setProp","pop","convertAttr","converted","visProp","_forEachInstanceProperty","visPropI","DOTToGraph","dotData","graphData","dotNode","graphNode","label","image","shape","_context3","convertEdge","dotEdge","graphEdge","_context4","array1","array2","_context5","subEdge","elem1","elem2","parseGephi","gephiJSON","optionsObj","inheritColor","fixed","parseColor","gEdges","vEdges","gEdge","vEdge","attributes","title","gNode","vNode","background","border","highlight","hover","addDescription","back","createEdgeError","del","deleteClusterError","edgeDescription","edit","editClusterError","editEdge","editEdgeDescription","editNode","CachedImage","NUM_ITERATIONS","Image","canvas","initialized","width","height","h2","h4","h8","h16","w2","w4","w8","w16","coordinates","_fillMipMap","getContext","drawImage","iterations","factor","left","top","Images","images","imageBroken","url","brokenUrl","imageToLoadBrokenUrlOn","onerror","imageToRedrawWith","cachedImage","img","onload","_fixImageCoordinates","_redrawWithImage","_tryloadBrokenUrl","imageToCache","body","offsetWidth","offsetHeight","removeChild","arrayBufferNonExtensible","ArrayBuffer","buffer","isExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","objectIsExtensible","freezing","preventExtensions","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","setMetadata","objectID","weakData","meta","internalMetadataModule","fastKey","getWeakData","onFreeze","Result","ResultPrototype","iterate","unboundFunction","iterFn","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","condition","callFn","anInstance","InternalMetadataModule","internalStateGetterFor","collection","CONSTRUCTOR_NAME","wrapper","common","IS_WEAK","ADDER","NativePrototype","exported","IS_ADDER","getConstructor","setStrong","defineBuiltIns","unsafe","setSpecies","collectionStrong","define","previous","entry","getEntry","removed","clear","delete","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","Map","Groups","_defaultIndex","_groupIndex","_defaultGroups","defaultOptions","useDefaultGroups","_Object$assign","optionFields","groupName","group","_groups","_Map","_groupNames","groupname","shouldCreate","globalIsFinite","isFinite","numberIsFinite","$some","_setPrototypeOf","p","_Object$setPrototypeOf","_bindInstanceProperty","_inherits","_possibleConstructorReturn","assertThisInitialized","_getPrototypeOf","_Object$getPrototypeOf","_defineProperty","__esModule","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","errorStackInstallable","clearErrorStack","dropEntries","prepareStackTrace","ERROR_STACK_INSTALLABLE","captureStackTrace","copyConstructorProperties","exceptions","installErrorCause","cause","installErrorStack","normalizeStringArgument","$default","$AggregateError","errors","isInstance","AggregateErrorPrototype","errorsArray","AggregateError","$location","defer","channel","port","engineIsNode","aConstructor","speciesConstructor","defaultConstructor","engineIsIos","IS_IOS","IS_NODE","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","run","runner","eventListener","globalPostMessageDefer","postMessage","protocol","host","nextTick","port2","port1","onmessage","importScripts","task","Queue","head","tail","Queue$3","notify","toggle","promise","then","engineIsIosPebble","Pebble","engineIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","microtask","flush","exit","enter","resolve","createTextNode","observe","characterData","microtask_1","perform","promiseNativeConstructor","engineIsDeno","engineIsBrowser","NativePromiseConstructor","IS_BROWSER","IS_DENO","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","REJECTION_EVENT","PromiseCapability","reject","$$resolve","$$reject","newPromiseCapability","Internal","OwnPromiseCapability","hostReportErrors","PromiseConstructorDetection","newPromiseCapabilityModule","PROMISE","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","reason","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","PromiseWrapper","promiseStaticsIncorrectIteration","capability","$promiseResolve","remaining","alreadyCalled","catch","race","promiseResolve","promiseCapability","PromiseConstructorWrapper","CHECK_WRAPPER","allSettled","status","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","finally","onFinally","isFunction","withResolvers","try","_Promise","_reverseInstanceProperty","_regeneratorRuntime","asyncIterator","toStringTag","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","mark","awrap","async","rval","handle","complete","finish","delegateYield","runtime","regenerator","regeneratorRuntime","accidentalStrictMode","IS_RIGHT","memo","$reduce","right","reduce","flattenIntoArray","original","sourceLen","depth","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","flatMap","Set","mergeSort","comparefn","middle","insertionSort","llength","rlength","lindex","rindex","arraySort","firefox","engineFfVersion","engineIsIeOrEdge","webkit","engineWebkitVersion","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","fromCharCode","itemsLength","items","arrayLength","getSortCompare","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","getOwnPropertyDescriptors","$$5","getRandomValues","rnds8","Uint8Array","rng","crypto","byteToHex","native","randomUUID","v4","buf","rnds","unsafeStringify","SimpleDataPipe","_source","_transformers","_target","_add","_remove","_update","_transformItems","_listeners","_reduceInstanceProperty","transform","_name","payload","oldData","DataPipeUnderConstruction","_filterInstanceProperty","_flatMapInstanceProperty","$parseFloat","parseFloat","numberParseFloat","Infinity","trimmedString","choosify","subOption","pile","allowed","chosen","topMost","chosenEdge","pointInRect","rotationPoint","tmp","bottom","isValidLabel","getSelfRefCoordinates","distanceToBorder","toBorderDist","yFromNodeCenter","xFromNodeCenter","LabelAccumulator","measureText","lines","mod","blocks","tmpText","block","_valuesInstanceProperty","line","tmpLines","tmpLine","firstEmptyBlock","tmpBlocks","determineLineHeights","determineLabelSize","removeEmptyBlocks","tagPattern","_","afterBold","afterItal","afterMono","MarkupAccumulator","bold","ital","mono","spacing","modStack","modName","ch","tagName","emitBlock","unshift","setTag","advance","_this$prepareRegExp2","prepareRegExp","regExp","matched","nextTag","checkTag","unsetTag","prepared","LabelSplitter","selected","getFormattingValues","finalize","font","fontOptions","nlLines","lineCount","multi","splitBlocks","maxWdt","splitStringIntoLines","append","newLine","markupSystem","system","parseEntities","parseWS","parseStartTag","parseEndTag","beginable","parseOverride","decodeMarkupSystem","splitMarkdownBlocks","splitHtmlBlocks","curWidth","words","newText","overMaxWidth","appendLast","getLongestFit","word","getLongestFitWord","newW","multiFontStyle","Label","edgelabel","pointToSelf","baseSize","setOptions","yLine","isEdgeLabel","elementOptions","initFontOptions","labelDirty","newFontOptions","parseFontString","vadjust","constrainWidth","minWdt","constrainHeight","minHgt","valign","widthConstraint","widthConstraintMaximum","widthConstraintMinimum","heightConstraint","heightConstraintMinimum","heightConstraintValign","propagateFonts","deepExtend","constrain","chooser","margins","widthBias","heightBias","dstPile","srcPile","addFontToPile","ret","tmpShorthand","opt","multiName","option","multiFont","optionNames","getFontOption","fontPile","addFontOptionsToPile","getBasicOptions","_loop","modOptions","getFontOptions","baseline","viewFontSize","view","scaling","drawThreshold","maxVisible","calculateLabelSize","_drawBackground","_drawText","fillStyle","getSize","fillRect","_this$_setAlignment2","_setAlignment","textAlign","labelHeight","align","_this$_getColor2","_getColor","strokeColor","fontColor","strokeWidth","lineWidth","strokeStyle","lineJoin","strokeText","fillText","textBaseline","initialStrokeColor","opacity","overrideOpacity","_processLabel","getValue","face","labelHighlightBold","fontString","selectedState","hoverState","inText","differentState","_processLabelText","outOptions","inOptions","newOptionsArray","NodeBase","labelModule","margin","refreshNeeded","boundingBox","adjustSizes","borderWidth","resize","shadow","shadowColor","shadowBlur","shadowSize","shadowOffsetX","shadowX","shadowOffsetY","shadowY","borderDashes","setLineDash","dashes","shapeProperties","borderColor","save","enableBorderDashes","stroke","disableBorderDashes","restore","enableShadow","_fillInstanceProperty","disableShadow","performStroke","_updateBoundingBox","textSize","getTextSize","_createSuper","Derived","hasNativeReflectConstruct","_Reflect$construct","Proxy","_isNativeReflectConstruct","Super","NewTarget","Box","_NodeBase","_setMargins","needsRefresh","dimensions","getDimensionsFromLabel","initContextForDraw","borderRadius","performFill","updateBoundingBox","_addBoundingBoxMargin","CircleImageBase","labelOffset","imageObj","imageObjAlt","setImages","selection_changed","imageTmp","imgPadding","imagePadding","optImgPadding","useImageSize","ratio_width","ratio_height","_getImagePadding","globalAlpha","interpolation","imgPosLeft","imgPosTop","imgWidth","imgHeight","drawImageAtPosition","labelDimensions","yLabel","Circle","_CircleImageBase","diameter","_drawRawCircle","CircularImage","_resizeImage","switchImages","labelX","labelY","coordinateOrigin","clip","_drawImageAtPosition","_drawImageLabel","ShapeBase","_this$customSizeWidth","_this$customSizeHeigh","customSizeWidth","customSizeHeight","sizeMultiplier","CanvasRenderingContext2D","icon","drawExternalLabel","_Object$getOwnPropertySymbols","_Object$getOwnPropertyDescriptor","_objectSpread","_Object$getOwnPropertyDescriptors","_Object$defineProperties","CustomShape","_ShapeBase","ctxRenderer","drawLater","drawNode","nodeDimensions","_distanceToBorder","Database","Diamond","_drawShape","Dot","Ellipse","Icon","iconSize","_icon","weight","side","useBorderWithImage","neutralborderWidth","selectionLineWidth","borderWidthSelected","Square","Hexagon","Star","Text","Triangle","TriangleDown","Node","imagelist","grouplist","globalOptions","bridgeObject","baseFontSize","predefinedPosition","currentShape","_localColor","checkMass","_parseInt","_parseFloat","parseOptions","_load_images","updateLabelModule","checkOpacity","updateShape","hidden","physics","load","brokenImage","unselected","updateGroupOptions","currentGroup","total","customScalingFunction","sizeDiff","fontDiff","visible","nodeId","labelId","origin","parentOptions","newOptions","groupList","groupObj","skipProperties","_Object$getOwnPropertyNames","selectiveNotDeepExtend","allowDeletion","checkCoordinateOrigin","mergeOptions","parsedColor","fillIfDefined","mass","strId","VALIDATOR_PRINT_STYLE","NodesHandler","groups","layoutEngine","functions","createNode","nodesListeners","boldital","level","bindEventListeners","emitter","refresh","_Number$isNaN","_Number$isFinite","doNotEmit","oldNodesData","isDataViewLike","DataSet","me","ids","getIds","newNodes","positionInitially","changedData","dataChanged","_someInstanceProperty","newValue","oldValue","clearPositions","dataArray","nodeIndices","dataset","getDataSet","dsNode","bodyNode","nodeList","nodeObj","toId","fromId","edgeList","_this4","_setTimeout","isDataDescriptor","receiver","_get","_Reflect$get","superPropBase","$hypot","hypot","NaN","value1","value2","div","sum","aLen","larg","EndPoint","points","arrowData","xt","yt","_EndPoint","translate","rotate","imageWidth","imageHeight","Arrow","_EndPoint2","_super2","drawPath","Crow","Curve","pi","startAngle","endAngle","InvertedCurve","InvertedTriangle","Bar","Vee","EndPoints","EdgeBase","_body","_labelModule","colorDirty","hoverWidth","selectionWidth","fromPoint","toPoint","_selected","_hover","viaNode","getViaNode","getColor","_drawDashedLine","_drawLine","_line","_this$_getCircleData2","_getCircleData","_circle","_fromPoint","_toPoint","lineCap","lineDashOffset","_this$_getCircleData4","_this$_getCircleData6","_findBorderPosition","_findBorderPositionCircle","_this$_getCircleData$2","high","selfReference","nearNode","endPointOffset","arrowStrikethrough","iteration","_pointOnCircle","difference","pow","inheritsColor","grd","createLinearGradient","fromColor","toColor","addColorStop","angleFrom","angleTo","renderBehindTheNode","pointTFrom","pointTTo","x1","y1","x3","y3","_getDistanceToEdge","_this$_getCircleData8","px","py","arrowPoint","node1","node2","reversed","scaleFactor","fromArrowScale","fromArrowType","toArrowScale","toArrowType","middleArrowScale","middleArrowType","relativeLength","_Math$hypot","smooth","pointT","via","guidePos","getPoint","halfLength","guidePos1","guidePos2","_this$_getCircleData10","core","origCtxAttr","backgroundColor","backgroundSize","setStrokeDashed","backgroundDashes","BezierEdgeBase","_EdgeBase","_getViaCoordinates","minDistance","lastX","lastY","_getDistanceToLine","viaNode1","viaNode2","quadraticCurveTo","drawBackground","BezierEdgeDynamic","_BezierEdgeBase","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","connect","parentEdgeId","_bezierCurve","cx","cy","cr","_findBorderPositionBezier","_getDistanceToBezierEdge","BezierEdgeStatic","stepX","stepY","roundness","xVia","yVia","myAngle","CubicBezierEdgeBase","via1","via2","vec","CubicBezierEdge","_CubicBezierEdgeBase","viaNodes","forceDirection","_ref2","_getDistanceToBezierEdge2","_ref4","StraightEdge","edgeSegmentLength","toBorderPoint","Edge","baseWidth","edgeType","connected","affectsLayout","updateEdgeType","_setInteractionWidths","toArrow","fromArrow","middleArrow","toArrowSrc","toArrowImageWidth","toArrowImageHeight","middleArrowSrc","middleArrowImageWidth","middleArrowImageHeight","fromArrowSrc","fromArrowImageWidth","fromArrowImageHeight","selectedWidth","changeInType","cleanup","disconnect","attachEdge","detachEdge","widthDiff","drawLine","drawLabel","getArrowData","drawArrowHead","_getRotation","edgeId","isOverlappingWith","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","copyFromGlobals","selectiveDeepExtend","_JSON$stringify","isString","colorsDefined","selfReferenceSize","EdgesHandler","edgesListeners","edgeData","smoothOptions","reconnectEdges","oldEdgesData","edgesData","oldEdge","showInternalIds","_addMissingEdges","_removeInvalidEdges","_this5","edgesToDelete","toNode","fromNode","isCluster","addIds","BarnesHutSolver","physicsBody","barnesHutTree","_rng","Alea","thetaInversed","theta","overlapAvoidanceFactor","avoidOverlap","gravitationalConstant","physicsNodeIndices","nodeCount","_formBarnesHutTree","_getForceContributions","parentBranch","_getForceContribution","children","NW","NE","SW","SE","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","forces","minX","minY","maxX","maxY","rootSize","halfRootSize","centerX","centerY","range","maxWidth","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","region","_placeInRegion","containedNode","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","nodeDistance","HierarchicalRepulsionSolver","theseNodesDistance","SpringSolver","edgeLength","node3","edgeIndices","physicsEdgeIndices","springLength","_calculateSpringForce","springForce","springConstant","HierarchicalSpringSolver","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","centralGravity","ForceAtlas2BasedRepulsionSolver","_BarnesHutSolver","degree","ForceAtlas2BasedCentralGravitySolver","_CentralGravitySolver","PhysicsEngine","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","damping","forceAtlas2Based","repulsion","hierarchicalRepulsion","maxVelocity","minVelocity","solver","stabilization","updateInterval","onlyDynamicEdges","fit","timestep","wind","layoutFailed","initPhysics","stopSimulation","startSimulation","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","Repulsion","HierarchicalRepulsion","modelOptions","stabilize","viewFunction","simulationStep","_emitStabilized","startTime","_Date$now","physicsTick","runDoubleSpeed","amountOfIterations","solve","moveNodes","_evaluateStepQuality","_startStabilizing","physicsStep","revert","adjustTimeStep","nodeIds","positions","vx","vy","reference","maxNodeVelocity","averageNodeVelocity","nodeVelocity","_performStep","m","maxV","calculateComponentVelocity","targetIterations","_freezeNodes","_stabilizationBatch","running","sendProgress","_finalizeStabilization","_restoreFrozenNodes","forceSize","arrowSize","HSVToHex","NetworkUtil","allNodes","specificNodes","clonedOptions","amountOfConnections","Cluster","_Node","containedNodes","containedEdges","childClusterId","childCluster","clusterEdge","parentClusterEdge","clusteringEdgeReplacingIds","srcId","edgeReplacedById","ClusterEngine","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","clusterByConnection","refreshData","joinCondition","childNodesObj","childEdgesObj","_cluster","edgeCount","relevantEdgeCount","clusters","usedNodes","checkJoinCondition","cloneOptions","gatheringSuccessful","childNodeId","_getConnectedId","foundCluster","findClusterData","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","childNodeIDs","childNode","childNodeKey","childEdge","clusterEdgeProperties","otherNodeId","childKeys","createEdges","newEdges","getNewEdge","createdEdge","newEdge","matchToDirection","matchFromDirection","_createClusteredEdge","_backupEdgeOptions","tmpNodesToRemove","allowSingleNodeCluster","processProperties","childNodesOptions","childEdgesOptions","clusterId","_getClusterPosition","clusterNode","_clusterEdges","originalOptions","clusterNodeId","findNode","parentIndex","parentClusterNodeId","_openChildCluster","releaseFunction","clusterPosition","newPositions","edgesToBeDeleted","otherNode","transferId","transferEdge","otherCluster","_restoreEdge","nodesArray","clusteredNodeId","startEdgeId","allEdgeIds","getClusteredEdges","clusteredEdgeId","getBaseEdges","IdsToHandle","doneIds","foundIds","nextId","nextEdge","replacingIds","replacingId","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","baseEdge","extraOptions","childNodes","childEdges","_createClusterEdges","clusteredNode","deletedNodeIds","deletedEdgeIds","eachClusterNode","endPointsValid","replacedIds","numValid","containedEdgeId","containedEdge","deletedEdgeId","_filter","shouldBeClustered","_isClusteredNode","_isClusteredEdge","clusterFrom","_getClusterNodeForNode","clusterTo","continueLoop","_loop2","clustersToOpen","numNodes","allowSingle","openCluster","_updateState","CanvasRenderer","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","renderingActive","renderRequests","allowRedraw","dragging","zooming","hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","_determineBrowserMethod","zoomTimeoutId","_requestRedraw","_resizeNodes","_redraw","_startRendering","cancelAnimationFrame","delay","timer","myWindow","_requestNextFrame","_renderStep","drawExternalLabels","frame","setSize","setTransform","clientWidth","clientHeight","clearRect","translation","_drawEdges","_drawNodes","_drawArrows","_drawSelectionBox","alwaysShow","hovered","topLeft","DOMtoCanvas","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","selectedLength","hoveredLength","_i2","_drawExternalLabels2","drawArrows","browserType","selectionBox","show","onTouch","hammer","onRelease","Canvas","pixelRatio","cameraState","canvasViewCenter","_cleanupCallbacks","autoResize","hammerFrame","_cleanUp","ResizeObserver","observer","unobserve","resizeTimer","_setInterval","clearInterval","resizeFunction","_onResize","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","container","hasChildNodes","firstChild","className","overflow","tabIndex","_setPixelRatio","noCanvas","fontWeight","padding","innerText","_bindHammer","drag","pinch","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseWheel","onMouseMove","onContext","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","newWidth","newHeight","_setCameraState","numerator","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","_determinePixelRatio","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","releaseNode","initialZoom","rawOptions","allNodeIds","minZoomLevel","MIN_VALUE","maxZoomLevel","normalizeFitOptions","zoomLevel","canvasWidth","canvasHeight","getRange","positionDefined","xZoomLevel","yZoomLevel","animationOptions","findCenter","animation","nodePosition","lockedOnNode","getViewPosition","duration","easingFunction","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","progress","easingFunctions","keycharm","_exportFunctions","_bound","keydown","keyup","_keys","down","handleEvent","up","keyCode","bound","shiftKey","bindAll","getKey","unbind","newBindings","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","navigationButtons","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","action","boundAction","keyboard","speed","scaleOld","zoom","scaleFrac","tx","ty","pointer","_context6","_context7","_context8","_context9","_context10","_context11","_context12","_context13","_context14","_context15","_context16","_context17","_context18","_context19","_context20","_context21","_context22","_context23","_context24","_context25","_context26","_context27","bindToWindow","unbindFromRedraw","InteractionHandler","selectionHandler","navigationHandler","popup","popupObj","popupTimer","getPointer","dragNodes","dragView","autoFocus","tooltipDelay","zoomView","zoomSpeed","getAbsoluteLeft","getAbsoluteTop","pinched","multiselect","ctrlKey","metaKey","checkSelectionChanges","commitAndEmit","generateClickEvent","selectAdditionalOnPoint","selectOnPoint","firstSet","secondSet","arrayDiff","firstArr","secondArr","getNodeAt","selection","setSelection","getSelectedNodes","xFixed","yFixed","diffX","diffY","selectionBoxPosition","selectionBoxPositionMinMax","toBeSelectedNodes","selectObject","preScaleDragPointer","postScaleDragPointer","canvasToDOM","popupVisible","_checkHidePopup","setPosition","focus","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","getTitle","overlappingEdges","Popup","popupTargetType","popupTargetId","setText","hide","_pointerToPositionObject","stillOnObj","overNode","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","InternalWeakMap","collectionWeak","enforceInternalState","isFrozen","isSealed","freeze","seal","FROZEN","SEALED","IS_IE11","$WeakMap","WeakMapPrototype","nativeSet","nativeDelete","nativeHas","nativeGet","frozenArray","arrayIntegrityLevel","diffSets","diff","_Set","SingleTypeSelectionAccumulator","_SingleTypeSelectionAccumulator_previousSelection","_SingleTypeSelectionAccumulator_selection","__classPrivateFieldGet","_items","_items2","added","deleted","changes","getChanges","__classPrivateFieldSet","_step2","_iterator2","select","_step3","_iterator3","unselect","SelectionAccumulator","commitHandler","_SelectionAccumulator_nodes","_SelectionAccumulator_edges","_SelectionAccumulator_commitHandler","getSelection","_classPrivateFieldGe","_classPrivateFieldGe2","_classPrivateFieldGe3","summary","commit","_len3","rest","_key3","SelectionHandler","_selectionAccumulator","hoverObj","selectable","selectConnectedEdges","hoverConnectedEdges","updateSelection","getEdgeAt","unselectAll","selectionChanged","deselectObject","DOM","oldSelection","emptySelection","_initBaseEvent","getClickedItems","controlEdge","highlightEdges","_this$_selectionAccum","addEdges","addNodes","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","mindist","overlappingEdge","dist","_this$_selectionAccum2","deleteNodes","deleteEdges","sizeNodes","sizeEdges","_addToHover","hoverChanged","emitBlurEvent","hoveredEdgesCount","hoveredNodesCount","emitHoverEvent","_hoverConnectedEdges","selectionChanges","previousSelection","getSelectedNodeIds","getSelectedEdgeIds","getNodes","getEdges","getItemsOnPoint","DirectionInterface","abstract","fake_use","nodeArray","VerticalStrategy","_DirectionInterface","layout","hierarchical","addToOrdering","getTreeSize","min_x","max_x","_sortInstanceProperty","levelSeparation","HorizontalStrategy","_DirectionInterface2","min_y","max_y","$every","fillLevelsByDirectionCyclic","levels","fillLevelsByDirection","isEntryNode","shouldLevelBeReplaced","limit","acc","edgeIdProp","newLevelDiff","_ret","_step$value","entryNodeId","entryNode","_ret2","newLevel","targetNodeId","oldLevel","HierarchicalStatus","childrenReference","parentReference","trees","distributionOrdering","distributionIndex","isTree","treeIndex","treeId","accumulator","_getMaxLevel","nodeA","nodeB","minLevel","parents1","parents2","isPresent","curLevel","LayoutEngine","_resetRNG","setPhysics","optionsBackup","randomSeed","improvedLayout","clusterThreshold","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","setupHierarchicalLayout","layoutNetwork","curveType","allOptions","prevHierarchicalState","setDirectionStrategy","adaptAllOptionsForHierarchicalLayout","seed","initialRandomSeed","backupPhysics","indices","clusterOptions","startLength","before","modules","clustering","clusterBridges","clusterOutliers","_declusterAll","info","kamadaKawai","_shiftToCenter","getRangeCore","clustersPresent","definedLevel","undefinedLevel","lastNodeOnLevel","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","ensureLevel","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTree","getTreeSizes","treeWidths","numTrees","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","getPosition","_this3$_getSpaceAroun2","_getSpaceAroundNode","minSpaceNode","maxSpaceNode","shiftElementsCloser","centerParents","hier","levelNodes","hasSameParent","inSameSubNetwork","branchShiftCallback","centerParent","pos1","pos2","diffAbs","branchNodes1","branchNodes2","maxLevel1","getMaxLevel","maxLevel2","getCollisionLevel","branchNodeBoundary1","branchNodeBoundary2","max1","min2","minSpace2","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","getFx","getDFx","getGuess","guess","guessMap","dfx","branchNodes","branchBoundary","minSpaceBranch","maxSpaceBranch","branchOffset","moveBranch","_this3$_getSpaceAroun4","newPosition","moveNode","getLevels","shiftBranchesCloserBottomUp","centerAllParents","minimizeEdgeLengthBottomUp","centerAllParentsBottomUp","treeSizes","shiftBy","shiftTrees","useMap","ordering","prevNode","nextNode","nextPos","parents","parentId","_getCenterPosition","_this$_getSpaceAround2","positionedNodes","_indexArrayToNodes","handledNodeCount","_validatePositionAndContinue","parentLevel","childRef","childNodeLevel","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","idArray","fix","hubSizes","hubSize","_getActiveEdges","_this6","levelDownstream","_getHubSizes","_crawlNetwork","_this7","levelA","setMinLevelToZero","_this8","shakeTowards","_everyInstanceProperty","fillLevelsByDirectionRoots","fillLevelsByDirectionLeaves","_this9","addRelation","checkIfTree","_this10","startingNodeId","crawler","tree","setTreeIndex","_this11","shifter","childA","childB","_this12","iterateParents","parentRef","findParent","foundParent","isVertical","minPos","maxPos","ManipulationSystem","interactionHandler","editMode","manipulationDiv","editModeDiv","closeDiv","_domEventListenerCleanupQueue","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","deleteNode","deleteEdge","controlNodeStyle","_clean","_restore","enableEditMode","disableEditMode","locale","locales","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","getSelectedNodeCount","selectedEdgeCount","getSelectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindElementEvents","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","finalizedData","alert","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","_dragStartEdge","editWithoutDrag","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","_performEditEdge","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_this$options$locales","_this$options$locales2","setAttribute","recursiveDOMDelete","_createButton","_cleanupDOMEventListeners","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","addNodeMode","addEdgeMode","editEdgeMode","deleteBtnClass","rtl","deleteSelected","labelClassName","newFunction","UIfunctionName","eventName","domElement","keyupListener","_ref","indexTempEdge","_context28","_context29","indexTempNode","fromSelect","toSelect","overlappingNodeIds","targetNode","connectionEdge","connectFromId","_context30","_context31","_performAddEdge","clickData","defaultData","sourceNodeId","eeFunct","bool","endPoints","nodeOptions","boolean","function","__type__","minimum","dom","maximum","configure","showButton","__any__","interaction","manipulation","clickToUse","configureOptions","configuratorHideOption","parentPath","optionName","FloydWarshall","edgesArray","D_matrix","cell","knode","kcolm","inode","icolm","jnode","jcolm","KamadaKawai","edgeStrength","distanceSolver","ignoreClusters","getDistances","_createL_matrix","_createK_matrix","_createE_matrix","maxIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_this$_getHighestEner2","_getHighestEnergyNode","_moveNode","_this$_getEnergy2","_getEnergy","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_this$_getEnergy4","_this$E_sums$m","E_sums","d2E_dx2","d2E_dxdy","d2E_dy2","x_m","y_m","km","K_matrix","lm","L_matrix","iIdx","x_i","y_i","kmat","lmat","denominator","_updateE_matrix","E_matrix","mIdx","colm","lcolm","oldDx","oldDy","Network","renderer","nodesHandler","edgesHandler","_create","setData","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","getSVGElement","svgContainer","createElementNS","Validator","validate","rawCode","_rawCode$split2","rawLanguage","rawCountry","language","country","normalizeLanguageCode","configurator","Configurator","networkOptions","setModuleOptions","activator","Activator","_updateVisibleIndices","edgeNodesPresent","_updateValueRange","gephi","gephiData","valueMin","valueMax","valueTotal","setValueRange","isActive","active","cluster","getNodesInCluster","clusterByHubsize","updateClusteredNode","getBaseEdge","updateEdge","getSeed","editNodeMode","getPositions","storePositions","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","getSelectedEdges","selectNodes","selectEdges","commitWithoutEmitting","redraw","getScale","getOptionsFromConfigurator","getOptions","setAttributeNS","groupTemplate","labelObj","styles","xOffset","yOffset","textContent","DOMContainer","insertBefore","network","dotparser","gephiParser","convertDot","convertGephi"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,305,306,307,308,309,310,311,312,313,314,315,316,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,472,473,474,475,476,477,478,479,503,508,511,512,513,517,518,519,520]} \ No newline at end of file diff --git a/Perlite/perlite/.scripts/build.sh b/Perlite/perlite/.scripts/build.sh deleted file mode 100644 index be2281a..0000000 --- a/Perlite/perlite/.scripts/build.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -# update JS dependencies - -# force update on asset-packagist -curl https://asset-packagist.org/package/npm-asset/katex -D - >/dev/null -curl https://asset-packagist.org/package/npm-asset/vis-network -D - >/dev/null -curl https://asset-packagist.org/package/npm-asset/jquery -D - >/dev/null -curl https://asset-packagist.org/package/npm-asset/highlightjs--cdn-assets -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/mermaid -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/roughjs -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/stylis -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/mlly -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/tinyexec -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/package-manager-detector -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/iconify--utils -D - >/dev/null -# curl https://asset-packagist.org/package/npm-asset/antfu--install-pkg -D - >/dev/null - - - - - -# composer clear-cache -# rm -rf vendor -composer update -v - -# update highlight js -cp vendor/npm-asset/highlightjs--cdn-assets/highlight.min.js ../.js/ -cp vendor/npm-asset/highlightjs--cdn-assets/styles/atom-one-dark.min.css ../.styles/ - -# update jquery -cp vendor/npm-asset/jquery/dist/jquery.min.js ../.js/ - -# update katex -cp vendor/npm-asset/katex/dist/katex.min.js ../.js/ -cp vendor/npm-asset/katex/dist/contrib/auto-render.min.js ../.js/ -cp vendor/npm-asset/katex/dist/katex.min.css ../.styles/ -cp -r vendor/npm-asset/katex/dist/fonts ../.styles/ - -# update mermaid -# cp vendor/npm-asset/mermaid/dist/mermaid.min.js ../.js/ -# cp vendor/npm-asset/mermaid/dist/mermaid.min.js.map ../.js/ - -# update vis-network -cp vendor/npm-asset/vis-network/dist/vis-network.min.js ../.js/ -cp vendor/npm-asset/vis-network/dist/vis-network.min.js.map ../.js/ -cp vendor/npm-asset/vis-network/dist/dist/vis-network.min.css ../.styles/ - -# update Parsedown dependencie -cd .. -# composer clear-cache -# rm -rf vendor -composer update -v - - -#cp perlite/vendor/erusev/parsedown/Parsedown.php perlite/ - -# remove old container and images -# docker container rm perlite; -# docker container rm perlite_web; -# docker container rm perlite_web_dev; -# docker image rm sec77/perlite_web:stable; -# docker image rm sec77/perlite; -# docker image rm php; - -# # rebuild and start -# cd perlite -# docker build -t sec77/perlite:latest . --network host; -# cd ..; -# docker-compose --file docker-compose.yml up - - - diff --git a/Perlite/perlite/.scripts/composer.json b/Perlite/perlite/.scripts/composer.json deleted file mode 100644 index 2cf46db..0000000 --- a/Perlite/perlite/.scripts/composer.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "secure-77/perlite", - "description": "A web based markdown viewer optimized for Obsidian Notes", - "version": "1.5.9", - "type": "project", - "keywords": ["markdown viewer","obsidian notes"], - "homepage": "https://github.com/secure-77/Perlite", - "license": "MIT", - "authors": [ - { - "name": "secure-77", - "email": "sec77@secure77.de", - "homepage": "https://secure77.de" - } - ], - "support": { - "issues": "https://github.com/secure-77/Perlite/issues", - "wiki": "https://github.com/secure-77/Perlite/wiki", - "chat": "https://discord.gg/pkJ347ssWT" - }, - - "repositories": [ - { - "type": "composer", - "url": "https://asset-packagist.org" - } - ], - "config": { - "preferred-install": "dist" - }, - - "require": { - "npm-asset/vis-network": "^9.1", - "npm-asset/katex": ">=0.16.8", - "npm-asset/jquery": "^3.7", - "npm-asset/highlightjs--cdn-assets": "^11.7" - } - -} diff --git a/Perlite/perlite/.scripts/composer.lock b/Perlite/perlite/.scripts/composer.lock deleted file mode 100644 index c339b4a..0000000 --- a/Perlite/perlite/.scripts/composer.lock +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "804283b252f55afc81b79735bfa0c2c1", - "packages": [ - { - "name": "npm-asset/commander", - "version": "8.3.0", - "dist": { - "type": "tar", - "url": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" - }, - "type": "npm-asset", - "license": [ - "MIT" - ] - }, - { - "name": "npm-asset/highlightjs--cdn-assets", - "version": "11.11.1", - "dist": { - "type": "tar", - "url": "https://registry.npmjs.org/@highlightjs/cdn-assets/-/cdn-assets-11.11.1.tgz" - }, - "type": "npm-asset", - "license": [ - "BSD-3-Clause" - ] - }, - { - "name": "npm-asset/jquery", - "version": "3.7.1", - "dist": { - "type": "tar", - "url": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" - }, - "type": "npm-asset", - "license": [ - "MIT" - ] - }, - { - "name": "npm-asset/katex", - "version": "0.16.22", - "dist": { - "type": "tar", - "url": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz" - }, - "require": { - "npm-asset/commander": ">=8.3.0,<9.0.0" - }, - "type": "npm-asset", - "license": [ - "MIT" - ] - }, - { - "name": "npm-asset/vis-network", - "version": "9.1.9", - "dist": { - "type": "tar", - "url": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.9.tgz" - }, - "type": "npm-asset", - "license": [ - "(Apache-2.0 OR MIT)" - ] - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/Perlite/perlite/.scripts/create_GraphLinking.py b/Perlite/perlite/.scripts/create_GraphLinking.py deleted file mode 100644 index 2815351..0000000 --- a/Perlite/perlite/.scripts/create_GraphLinking.py +++ /dev/null @@ -1,93 +0,0 @@ -import json -import hashlib - -def remove_extension(path): - return path[:-3] - -def check_array(node_path): - return True - -json_metadata_file = "../Demo/metadata.json" -metadata_temp_file = "/tmp/metadata.temp" -metadata_temp_file_sum = "/tmp/metadata.md5" - -with open(json_metadata_file, "r") as file: - json_data = file.read() - -if json_data is None: - exit() - -json_obj = json.loads(json_data) -if not isinstance(json_obj, list): - exit() - -graph_nodes = [] -graph_edges = [] - -current_node = -1 -node_id = 0 - -# create nodes -for node in json_obj: - node_path = remove_extension(node['relativePath']) - - if check_array(node_path): - graph_nodes.append({'id': node_id, 'label': node['fileName'], 'title': node_path}) - node_id += 1 - -target_id = -1 -source_id = -1 - -for node in json_obj: - node_path = remove_extension(node['relativePath']) - - if check_array(node_path): - if 'links' in node: - for link in node['links']: - source = "" - target = "" - - if 'relativePath' in node: - temp_path = remove_extension(node['relativePath']) - if check_array(temp_path): - source = temp_path - - if 'relativePath' in link: - temp_path = remove_extension(link['relativePath']) - if check_array(temp_path): - target = temp_path - - if source and target: - for element in graph_nodes: - element_title = element['title'] - if element_title == target: - target_id = element['id'] - if element_title == source: - source_id = element['id'] - - edge_exists = any( - edge['from'] == source_id and edge['to'] == target_id or - edge['to'] == source_id and edge['from'] == target_id - for edge in graph_edges - ) - - if target_id != -1 and source_id != -1: - if not edge_exists: - graph_edges.append({'from': source_id, 'to': target_id}) - target_id = -1 - source_id = -1 - -my_graph_nodes = json.dumps(graph_nodes, separators=(',', ':'), ensure_ascii=False) -my_graph_edges = json.dumps(graph_edges, separators=(',', ':'), ensure_ascii=False) - -graph_html = f'' - -with open(metadata_temp_file, "w") as file: - file.write(graph_html) - -with open(metadata_temp_file_sum, "w") as file_handler: - md5_filesum = hashlib.md5() - with open(json_metadata_file, "rb") as json_file: - while chunk := json_file.read(8192): - md5_filesum.update(chunk) - file_handler.write(md5_filesum.hexdigest()) \ No newline at end of file diff --git a/Perlite/perlite/.src/PerliteParsedown.php b/Perlite/perlite/.src/PerliteParsedown.php deleted file mode 100644 index 3611598..0000000 --- a/Perlite/perlite/.src/PerliteParsedown.php +++ /dev/null @@ -1,1158 +0,0 @@ -BlockTypes['!'] = array('YouTube'); - } - - function text($text) - { - # make sure no definitions are set - $this->DefinitionData = array(); - - # standardize line breaks - $text = str_replace(array("\r\n", "\r"), "\n", $text); - - # remove surrounding line breaks - $text = trim($text, "\n"); - - # split text into lines - $lines = explode("\n", $text); - - # YAML front matter - $parsedYamlBlockText = ""; - if ($lines[0] === '---') { - - # search ending - $yamlBlockArray = array_slice($lines, 1, count($lines)); - $endIndex = 0; - foreach ($yamlBlockArray as $line) { - $endIndex += 1; - if ($line === '---') { - break; - } - } - $yamlBlockArray = array_slice($lines, 0, $endIndex); - $yamlBlockText = implode("\n", $yamlBlockArray); - $lines = array_slice($lines, $endIndex + 1, count($lines)); - $parsedYamlBlockText = $this->yamlFrontmatter($yamlBlockText); - } - - # iterate through lines to identify blocks - $markup = $this->lines($lines); - - # add front matter - $markup = $parsedYamlBlockText . $markup; - # trim line breaks - $markup = trim($markup, "\n"); - - return $markup; - } - - protected function yamlFrontmatter($yaml) - { - - if (!extension_loaded("yaml")) { - return "YAML front matter found but PHP YAML Parse extension is missing!
"; - } else { - - // var_dump($yaml); - $parsed = yaml_parse($yaml); - $yamlText = ' -
- -
'; - return $yamlText; - } - } - - # - # Callout (based on blockQuotes) - # See: https://help.obsidian.md/How+to/Use+callouts - - - # Callout Block - protected function blockQuote($Line) - { - - - if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) { - $Block = array( - 'element' => array( - 'name' => 'blockquote', - 'handler' => 'lines', - 'text' => (array) $matches[1], - ), - ); - - - if (preg_match('/^>\s?\[\!(.*?)\](.*?)$/m', $Line['text'], $matches)) { - $type = strtolower($matches[1]); - $title = $matches[2]; - - $calloutTitle = $title ?: ucfirst($type); - - # Handle collapsible callouts - $calloutclass = 'callout'; - $calloutStyle = 'unset'; - $collapsibleIcon = array( - 'name' => 'div', - 'text' => '' - ); - $isCollapsed = ''; - $needCollapseIcon = False; - $isCollapsedIcon = ''; - $calloutTitleClass = 'callout-title-inner'; - - if (substr($calloutTitle, 0, 1) == '+') { - $calloutTitle = substr($calloutTitle, 1); - $calloutclass = 'callout is-collapsible'; - $calloutTitleClass = 'callout-title-inner is-collapsible'; - $calloutStyle = 'unset'; - $needCollapseIcon = True; - } - - if (substr($calloutTitle, 0, 1) == '-') { - $calloutTitle = substr($calloutTitle, 1); - $calloutclass = 'callout is-collapsible is-collapsed'; - $calloutStyle = 'none'; - $isCollapsed = 'is-collapsed-callout'; - $isCollapsedIcon = 'is-collapsed'; - $calloutTitleClass = 'callout-title-inner is-collapsed'; - $needCollapseIcon = True; - } - - if ($needCollapseIcon) { - $collapsibleIcon = array( - 'name' => 'div', - 'attributes' => array('class' => 'callout-fold ' . $isCollapsedIcon), - 'elements' => array( - # svg - array( - 'name' => 'svg', - 'attributes' => array( - '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', - 'class' => 'svg-icon lucide-chevron-down', - ), - # pathes and lines - 'elements' => array(array('name' => '')), - ), - ), - ); - } - - - - $Block = array( - 'element' => array( - 'name' => 'div', - 'attributes' => array( - 'data-callout' => $type, - 'class' => $calloutclass - ), - 'elements' => array( - array( - 'name' => 'div', - 'attributes' => array('class' => 'callout-title'), - 'elements' => array( - # callout icon - array( - 'name' => 'div', - 'attributes' => array('class' => 'callout-icon'), - 'elements' => array( - # svg - array( - 'name' => 'svg', - 'attributes' => array( - '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', - 'class' => $this->getCalloutIcon($type)[0], - ), - # pathes and lines - 'elements' => $this->getCalloutIcon($type)[1] - ), - ), - ), - # callout title - array( - 'name' => 'div', - 'attributes' => array('class' => $calloutTitleClass), - 'text' => (array) $calloutTitle, - 'handler' => 'lines', - - ), - # collapsible icon - $collapsibleIcon, - ), - ), - # callout content - array( - 'name' => 'div', - 'attributes' => array( - 'class' => 'callout-content ' . $isCollapsed, - ), - 'handler' => 'lines', - ), - - - ) - ), - ); - } - } - - - return $Block; - } - - # Callout Icons - protected function getCalloutIcon($callType) - { - // default = info - $class = 'svg-icon lucide-pencil'; - $pathes = array( - array('name' => 'line x1="18" y1="2" x2="22" y2="6"'), - array('name' => 'path d="M7.5 20.5 19 9l-4-4L3.5 16.5 2 22z"') - ); - - $callType = strtolower($callType); - switch ($callType) { - - case 'abstract': - $class = 'svg-icon lucide-clipboard-list'; - $pathes = array( - array('name' => 'rect x="8" y="2" width="8" height="4" rx="1" ry="1"'), - array('name' => 'path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"'), - array('name' => 'path d="M12 11h4"'), - array('name' => 'path d="M12 16h4"'), - array('name' => 'path d="M8 11h.01"'), - array('name' => 'path d="M8 16h.01"'), - ); - break; - case 'info': - $class = 'svg-icon lucide-info'; - $pathes = array( - array('name' => 'circle cx="12" cy="12" r="10"'), - array('name' => 'line x1="12" y1="16" x2="12" y2="12"'), - array('name' => 'line x1="12" y1="8" x2="12.01" y2="8"'), - ); - break; - case 'todo': - $class = 'svg-icon lucide-check-circle-2'; - $pathes = array( - array('name' => 'path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"'), - array('name' => 'path d="m9 12 2 2 4-4"'), - ); - break; - case 'tip': - $class = 'svg-icon lucide-flame'; - $pathes = array( - array('name' => 'path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"'), - ); - break; - case 'success': - $class = 'svg-icon lucide-check'; - $pathes = array( - array('name' => 'polyline points="20 6 9 17 4 12"'), - ); - break; - case 'question': - $class = 'svg-icon lucide-help-circle'; - $pathes = array( - array('name' => 'circle cx="12" cy="12" r="10"'), - array('name' => 'path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"'), - array('name' => 'line x1="12" y1="17" x2="12.01" y2="17"'), - ); - break; - case 'warning': - $class = 'svg-icon lucide-alert-triangle'; - $pathes = array( - array('name' => 'path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z"'), - array('name' => 'line x1="12" y1="9" x2="12" y2="13"'), - array('name' => 'line x1="12" y1="17" x2="12.01" y2="17"'), - ); - break; - case 'failure': - $class = 'svg-icon lucide-x'; - $pathes = array( - array('name' => 'line x1="18" y1="6" x2="6" y2="18"'), - array('name' => 'line x1="6" y1="6" x2="18" y2="18"'), - ); - break; - case 'danger': - $class = 'svg-icon lucide-zap'; - $pathes = array( - array('name' => 'polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"'), - ); - break; - case 'bug': - $class = 'svg-icon lucide-bug'; - $pathes = array( - array('name' => 'rect x="8" y="6" width="8" height="14" rx="4"'), - array('name' => 'path d="m19 7-3 2"'), - array('name' => 'path d="m5 7 3 2"'), - array('name' => 'path d="m19 19-3-2"'), - array('name' => 'path d="m5 19 3-2"'), - array('name' => 'path d="M20 13h-4"'), - array('name' => 'path d="M4 13h4"'), - array('name' => 'path d="m10 4 1 2"'), - array('name' => 'path d="m14 4-1 2"'), - ); - break; - case 'example': - $class = 'svg-icon lucide-list'; - $pathes = array( - array('name' => 'line x1="8" y1="6" x2="21" y2="6"'), - array('name' => 'line x1="8" y1="12" x2="21" y2="12"'), - array('name' => 'line x1="8" y1="18" x2="21" y2="18"'), - array('name' => 'line x1="3" y1="6" x2="3.01" y2="6"'), - array('name' => 'line x1="3" y1="12" x2="3.01" y2="12"'), - array('name' => 'line x1="3" y1="18" x2="3.01" y2="18"'), - ); - break; - case 'quote': - $class = 'svg-icon lucide-quote'; - $pathes = array( - array('name' => 'path d="M3 21c3 0 7-1 7-8V5c0-1.25-.756-2.017-2-2H4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2 1 0 1 0 1 1v1c0 1-1 2-2 2s-1 .008-1 1.031V20c0 1 0 1 1 1z"'), - array('name' => 'path d="M15 21c3 0 7-1 7-8V5c0-1.25-.757-2.017-2-2h-4c-1.25 0-2 .75-2 1.972V11c0 1.25.75 2 2 2h.75c0 2.25.25 4-2.75 4v3c0 1 0 1 1 1z"'), - ); - break; - } - - return array($class, $pathes); - } - - # Callout Block inner - protected function blockQuoteContinue($Line, array $Block) - { - - if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) { - - if (isset($Block['interrupted'])) { - - unset($Block['interrupted']); - } - - - $quoteContent = $matches[1]; - - if (isset($Block['element']['elements'])) { - $Block['element']['elements'][1]['text'][] = $quoteContent; - } else { - $Block['element']['text'][] = $quoteContent; - } - - - return $Block; - } - - - if (!isset($Block['interrupted'])) { - - if (isset($Block['element']['elements'])) { - $Block['element']['elements'][1]['text'][] = $Line['text']; - } else { - $Block['element']['text'][] = $Line['text']; - } - - return $Block; - } - } - - # blockHeader seperated from Tags - protected function blockHeader($Line) - { - if (isset($Line['text'][1]) && ($Line['text'][1] === ' ' || $Line['text'][1] === '#')) { - $level = 1; - - while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') { - $level++; - } - - if ($level > 6) { - return; - } - - $text = trim($Line['text'], '# '); - - $Block = array( - 'element' => array( - 'name' => 'h' . min(6, $level), - 'text' => $text, - 'handler' => 'line', - ), - ); - - return $Block; - } - } - - protected function blockYouTube($Line) - { - - if ( ! isset($Line['text'][1]) or $Line['text'][1] !== '[') - { - return; - } - - $Line['text']= substr($Line['text'], 1); - - $Link = $this->inlineLink($Line); - - - if ($Link === null) - { - return; - } - - // See: https://stackoverflow.com/a/64320469 - $yt = preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $Link['element']['attributes']['href'], $match); - - if (! $yt) - { - return; - } - - $youtubeId = $match[1]; - $Block = array( - 'element' => array( - 'name' => 'iframe', - 'text' => $Line['text'], - 'handler' => 'line', - - 'attributes' => array( - 'class' => 'external-embed mod-receives-events', 'sandbox' => 'allow-forms allow-presentation allow-same-origin allow-scripts allow-modals allow-popups', - 'allow' => 'fullscreen', - 'frameborder' => '0', - 'src' => 'https://www.youtube.com/embed/'. $youtubeId, - ), - - ), - ); - - return $Block; - } - - - # extend to obsidian tags - protected $inlineMarkerList = '!"*$_#&[:<>`~\\='; - protected $InlineTypes = array( - '"' => array('SpecialCharacter'), - '!' => array('Image'), - '&' => array('SpecialCharacter'), - '*' => array('Emphasis'), - ':' => array('Url'), - '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), - '>' => array('SpecialCharacter'), - '[' => array('Link'), - '#' => array('Tag'), - '$' => array('Katex'), - '_' => array('Emphasis'), - '`' => array('Code'), - '~' => array('Strikethrough'), - '\\' => array('EscapeSequence'), - '=' => array('Highlight'), - ); - - - - # handle highlight code - protected function inlineHighlight($Excerpt) - { - $marker = $Excerpt['text'][1]; - - if (preg_match('/^==(.+?)==/s', $Excerpt['text'], $matches)) - { - $content = $matches[1]; - $Inline = array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'span', - 'text' => $content, - 'attributes' => array( - 'class' => 'cm-highlight' - ), - ), - ); - - return $Inline; - } - } - - - - - # handle katex code - protected function inlineKatex($Excerpt) - { - $marker = $Excerpt['text'][0]; - if (preg_match('/^(\\'.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), - 'element' => array( - 'name' => $name, - 'text' => $text, - ), - ); - } - } - - # handle obsidian tags - protected function inlineTag($Excerpt) - { - if (!isset($Excerpt['text'][1]) or $Excerpt['text'][0] !== '#') { - return; - } - - # ignore tags in links - $len = strlen($Excerpt['context']); - if ($len == 0) { - return; - } - if (substr(trim($Excerpt['context']), -1) === ']') { - return; - } - - if (preg_match("/(^| )#[\w'-\/]+/ui", $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) { - $tag = $matches[0][0]; - - $Inline = array( - 'extent' => strlen($matches[0][0]), - 'position' => $matches[0][1], - 'element' => array( - 'name' => 'a', - 'text' => $tag, - 'attributes' => array( - 'href' => $tag, - 'class' => 'tag' - ), - ), - ); - - return $Inline; - } - } - - protected function blockList($Line) - { - list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); - - - - if (preg_match('/(- \[(x| )\])(.*)/', $Line['text'], $matches)) { - - $text = isset($matches[3]) ? $matches[3] : ''; - $isActive = $matches[2]; - $checked = ''; - if ($isActive === 'x') { - $checked = 'checked'; - } - - - - $Block = array( - 'element' => array( - 'name' => 'div', - 'elements' => array( - array( - 'name' => 'div', - 'attributes' => array( - 'class' => 'HyperMD-list-line HyperMD-list-line-1 HyperMD-task-line cm-line', - 'data-task' => $isActive, - ), - ), - array( - 'name' => 'label', - 'attributes' => array('class' => 'task-list-label'), - 'elements' => array( - array( - 'name' => 'input', - 'attributes' => array( - 'class' => 'task-list-item-checkbox', - 'type' => 'checkbox', - 'data-task' => $isActive, - $checked => '', - ), - ), - array( - 'name' => 'label', - 'attributes' => array('class' => 'cm-widgetBuffer'), - 'text' => $text, - ), - ), - ), - ), - ), - ); - - - return $Block; - } - - if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'indent' => $Line['indent'], - 'pattern' => $pattern, - 'element' => array( - 'name' => $name, - 'handler' => 'elements', - ), - ); - - if($name === 'ol') - { - $listStart = stristr($matches[0], '.', true); - - if($listStart !== '1') - { - $Block['element']['attributes'] = array('start' => $listStart); - } - } - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $matches[2], - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - } - - protected function blockListContinue($Line, array $Block) - { - - - if (preg_match('/(- \[(x| )\])(.*)/', $Line['text'], $matches)) { - - $text = isset($matches[3]) ? $matches[3] : ''; - $isActive = $matches[2]; - - $checked = ''; - if ($isActive === 'x') { - $checked = 'checked'; - } - - - - - - $conBlock = array( - 'name' => 'div', - 'attributes' => array( - 'class' => 'HyperMD-list-line HyperMD-list-line-1 HyperMD-task-line cm-line', - 'data-task' => $isActive, - ), - 'elements' => array( - array( - 'name' => 'label', - 'attributes' => array('class' => 'task-list-label'), - 'elements' => array( - array( - 'name' => 'input', - 'attributes' => array( - 'class' => 'task-list-item-checkbox', - 'type' => 'checkbox', - 'data-task' => $isActive, - $checked => '', - ), - ), - array( - 'name' => 'label', - 'attributes' => array('class' => 'cm-widgetBuffer'), - 'text' => $text, - ), - ), - ), - ) - ); - - - $Block['element']['elements'][ ] = & $conBlock; - - return $Block; - } - - $Block['indent'] = isset($Block['indent']) ? $Block['indent'] : '0'; - - if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) - { - - if (isset($Block['interrupted'])) - { - $Block['li']['text'] []= ''; - - $Block['loose'] = true; - - unset($Block['interrupted']); - } - - unset($Block['li']); - - $text = isset($matches[1]) ? $matches[1] : ''; - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $text, - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - - if ($Line['text'][0] === '[' and $this->blockReference($Line)) - { - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - return $Block; - } - - if ($Line['indent'] > 0) - { - $Block['li']['text'] []= ''; - - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - unset($Block['interrupted']); - - return $Block; - } - } - - # handle external Urls - protected function inlineUrl($Excerpt) - { - if ($this->urlsLinked !== true or !isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/') { - return; - } - - if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) { - $url = $matches[0][0]; - - $Inline = array( - 'extent' => strlen($matches[0][0]), - 'position' => $matches[0][1], - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - 'class' => 'external-link perlite-external-link', - 'target' => '_blank', - 'rel' => 'noopener noreferrer', - ), - ), - ); - - return $Inline; - } - } - - # handle external obsidian Urls - protected function inlineLink($Excerpt) - { - $Element = array( - 'name' => 'a', - 'handler' => 'line', - 'nonNestables' => array('Url', 'Link'), - 'text' => null, - 'attributes' => array( - 'href' => null, - 'title' => null, - 'class' => 'external-link perlite-external-link', - 'target' => '_blank', - 'rel' => 'noopener noreferrer', - ), - ); - - $extent = 0; - - $remainder = $Excerpt['text']; - - if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) { - $Element['text'] = $matches[1]; - - $extent += strlen($matches[0]); - - $remainder = substr($remainder, $extent); - } else { - return; - } - - if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) { - $Element['attributes']['href'] = $matches[1]; - - if (isset($matches[2])) { - $Element['attributes']['title'] = substr($matches[2], 1, -1); - } - - $extent += strlen($matches[0]); - } else { - if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) { - $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; - $definition = strtolower($definition); - - $extent += strlen($matches[0]); - } else { - $definition = strtolower($Element['text']); - } - - if (!isset($this->DefinitionData['Reference'][$definition])) { - return; - } - - $Definition = $this->DefinitionData['Reference'][$definition]; - - $Element['attributes']['href'] = $Definition['url']; - $Element['attributes']['title'] = $Definition['title']; - } - - return array( - 'extent' => $extent, - 'element' => $Element, - ); - } - - # adjusted to support nested elements - protected function element(array $Element) - { - if ($this->safeMode) { - $Element = $this->sanitiseElement($Element); - } - - $markup = '<' . $Element['name']; - - if (isset($Element['attributes'])) { - foreach ($Element['attributes'] as $name => $value) { - if ($value === null) { - continue; - } - - $markup .= ' ' . $name . '="' . self::escape($value) . '"'; - } - } - - $permitRawHtml = false; - - # nested element handling - $closing = false; - if (isset($Element['elements'])) { - $markup .= '>'; - $markup .= $this->elements($Element['elements']); - $closing = true; - } elseif (isset($Element['text'])) { - $text = $Element['text']; - } elseif (isset($Element['rawHtml'])) { - $text = $Element['rawHtml']; - $allowRawHtmlInSafeMode = isset($Element['allowRawHtmlInSafeMode']) && $Element['allowRawHtmlInSafeMode']; - $permitRawHtml = !$this->safeMode || $allowRawHtmlInSafeMode; - } - - if (isset($text)) { - $markup .= '>'; - - if (!isset($Element['nonNestables'])) { - $Element['nonNestables'] = array(); - } - - if (isset($Element['handler'])) { - $markup .= $this->{$Element['handler']}($text, $Element['nonNestables']); - } elseif (!$permitRawHtml) { - $markup .= self::escape($text, true); - } else { - $markup .= $text; - } - - $markup .= ''; - } elseif ($closing) { - $markup .= ''; - } else { - $markup .= ' />'; - } - - return $markup; - } - - # adjusted to handle interuppted quote blocks - protected function lines(array $lines) - { - $CurrentBlock = null; - - foreach ($lines as $line) { - if (chop($line) === '') { - if (isset($CurrentBlock)) { - $CurrentBlock['interrupted'] = true; - } - - continue; - } - - if (strpos($line, "\t") !== false) { - $parts = explode("\t", $line); - - $line = $parts[0]; - - unset($parts[0]); - - foreach ($parts as $part) { - $shortage = 4 - strlen(utf8_decode($input)) % 4; - - $line .= str_repeat(' ', $shortage); - $line .= $part; - } - } - - $indent = 0; - - while (isset($line[$indent]) and $line[$indent] === ' ') { - $indent++; - } - - $text = $indent > 0 ? substr($line, $indent) : $line; - - # ~ - - $Line = array('body' => $line, 'indent' => $indent, 'text' => $text); - - # ~ - - if (isset($CurrentBlock['continuable'])) { - - if ($CurrentBlock['type'] === 'Quote') { - - if (!isset($CurrentBlock['interrupted'])) { - $Block = $this->{'block' . $CurrentBlock['type'] . 'Continue'}($Line, $CurrentBlock); - if (isset($Block)) { - $CurrentBlock = $Block; - - continue; - } else { - if ($this->isBlockCompletable($CurrentBlock['type'])) { - $CurrentBlock = $this->{'block' . $CurrentBlock['type'] . 'Complete'}($CurrentBlock); - } - } - } - } else { - $Block = $this->{'block' . $CurrentBlock['type'] . 'Continue'}($Line, $CurrentBlock); - if (isset($Block)) { - $CurrentBlock = $Block; - - continue; - } else { - if ($this->isBlockCompletable($CurrentBlock['type'])) { - $CurrentBlock = $this->{'block' . $CurrentBlock['type'] . 'Complete'}($CurrentBlock); - } - } - } - } - - - # ~ - - $marker = $text[0]; - - # ~ - - $blockTypes = $this->unmarkedBlockTypes; - - if (isset($this->BlockTypes[$marker])) { - foreach ($this->BlockTypes[$marker] as $blockType) { - $blockTypes[] = $blockType; - } - } - - # - # ~ - - foreach ($blockTypes as $blockType) { - $Block = $this->{'block' . $blockType}($Line, $CurrentBlock); - - if (isset($Block)) { - $Block['type'] = $blockType; - - if (!isset($Block['identified'])) { - $Blocks[] = $CurrentBlock; - - $Block['identified'] = true; - } - - if ($this->isBlockContinuable($blockType)) { - $Block['continuable'] = true; - } - - $CurrentBlock = $Block; - - continue 2; - } - } - - # ~ - - if (isset($CurrentBlock) and !isset($CurrentBlock['type']) and !isset($CurrentBlock['interrupted'])) { - $CurrentBlock['element']['text'] .= "\n" . $text; - } else { - $Blocks[] = $CurrentBlock; - - $CurrentBlock = $this->paragraph($Line); - - $CurrentBlock['identified'] = true; - } - } - - # ~ - - if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) { - $CurrentBlock = $this->{'block' . $CurrentBlock['type'] . 'Complete'}($CurrentBlock); - } - - # ~ - - $Blocks[] = $CurrentBlock; - - unset($Blocks[0]); - - # ~ - - $markup = ''; - - foreach ($Blocks as $Block) { - if (isset($Block['hidden'])) { - continue; - } - - $markup .= "\n"; - $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); - } - - $markup .= "\n"; - - # ~ - - return $markup; - } -} diff --git a/Perlite/perlite/.styles/app.css b/Perlite/perlite/.styles/app.css deleted file mode 100644 index e9c1d7c..0000000 --- a/Perlite/perlite/.styles/app.css +++ /dev/null @@ -1,14694 +0,0 @@ -/* - * @obsidian Do not edit this file directly, it is generated from the pdf.js repo - * Either edit the CSS there, or override in pdf-view.less - */ - - - :root { - --highlight-bg-color: rgba(180, 0, 170, 1); - --highlight-selected-bg-color: rgba(0, 100, 0, 1); -} - -@media screen and (forced-colors: active) { - :root { - --highlight-bg-color: Highlight; - --highlight-selected-bg-color: ButtonText; - } -} - -.textLayer { - position: absolute; - text-align: left; - text-align: initial; - top: 0; - right: 0; - bottom: 0; - left: 0; - overflow: hidden; - /* @obsidian */ - /* opacity: 0.25; */ - line-height: 1; - -webkit-text-size-adjust: none; - -moz-text-size-adjust: none; - text-size-adjust: none; - forced-color-adjust: none; - transform-origin: 0 0; - z-index: 2; -} - -.textLayer span, .textLayer br { - color: transparent; - position: absolute; - white-space: pre; - cursor: text; - transform-origin: 0% 0%; -} - -/* Only necessary in Google Chrome, see issue 14205, and most unfortunately - * the problem doesn't show up in "text" reference tests. */ -.textLayer span.markedContent { - top: 0; - height: 0; -} - -.textLayer .highlight { - margin: -1px; - padding: 1px; - /* @obsidian */ - /* background-color: var(--highlight-bg-color); */ - /* border-radius: 4px; */ -} - -.textLayer .highlight.appended { - position: static; - position: initial; -} - -/* @obsidian */ -/* .textLayer .highlight.begin { - border-radius: 4px 0 0 4px; -} - -.textLayer .highlight.end { - border-radius: 0 4px 4px 0; -} */ - -.textLayer .highlight.middle { - border-radius: 0; -} - -/* @obsidian */ -/* .textLayer .highlight.selected { - background-color: var(--highlight-selected-bg-color); -} */ - -/* @obsidian */ -/* .textLayer ::selection { - background: blue; - background: AccentColor; -} */ - -/* Avoids https://github.com/mozilla/pdf.js/issues/13840 in Chrome */ -.textLayer br::-moz-selection { - background: transparent; -} -.textLayer br::selection { - background: transparent; -} - -.textLayer .endOfContent { - display: block; - position: absolute; - top: 100%; - right: 0; - bottom: 0; - left: 0; - z-index: -1; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.textLayer .endOfContent.active { - top: 0; -} - - -:root { - --annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,"); - --input-focus-border-color: Highlight; - --input-focus-outline: 1px solid Canvas; - --input-unfocused-border-color: transparent; - --input-disabled-border-color: transparent; - --input-hover-border-color: black; - --link-outline: none; -} - -@media screen and (forced-colors: active) { - :root { - --input-focus-border-color: CanvasText; - --input-unfocused-border-color: ActiveText; - --input-disabled-border-color: GrayText; - --input-hover-border-color: Highlight; - --link-outline: 1.5px solid LinkText; - --hcm-highligh-filter: invert(100%); - } - .annotationLayer .textWidgetAnnotation input:required { - outline: 1.5px solid selectedItem; - } - .annotationLayer .textWidgetAnnotation textarea:required { - outline: 1.5px solid selectedItem; - } - .annotationLayer - .buttonWidgetAnnotation.checkBox - input:required { - outline: 1.5px solid selectedItem; - } - .annotationLayer - .buttonWidgetAnnotation.radioButton - input:required { - outline: 1.5px solid selectedItem; - } - .annotationLayer .choiceWidgetAnnotation select:required { - outline: 1.5px solid selectedItem; - } - - .annotationLayer .linkAnnotation:hover { - -webkit-backdrop-filter: var(--hcm-highligh-filter); - backdrop-filter: var(--hcm-highligh-filter); - } - - .annotationLayer .linkAnnotation > a:hover { - opacity: 0 !important; - background: none !important; - } - - .annotationLayer .linkAnnotation > a:hover { - box-shadow: none; - } - - .annotationLayer .popupAnnotation .popup { - outline: calc(1.5px * var(--scale-factor)) solid CanvasText !important; - background-color: ButtonFace !important; - color: ButtonText !important; - } - - .annotationLayer .highlightArea:hover::after { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - -webkit-backdrop-filter: var(--hcm-highligh-filter); - backdrop-filter: var(--hcm-highligh-filter); - content: ""; - pointer-events: none; - } - - .annotationLayer .popupAnnotation.focused .popup { - outline: calc(3px * var(--scale-factor)) solid Highlight !important; - } -} - -.annotationLayer { - position: absolute; - top: 0; - left: 0; - pointer-events: none; - transform-origin: 0 0; - z-index: 3; -} - -.annotationLayer[data-main-rotation="90"] .norotate { - transform: rotate(270deg) translateX(-100%); -} -.annotationLayer[data-main-rotation="180"] .norotate { - transform: rotate(180deg) translate(-100%, -100%); -} -.annotationLayer[data-main-rotation="270"] .norotate { - transform: rotate(90deg) translateY(-100%); -} - -.annotationLayer canvas { - position: absolute; - width: 100%; - height: 100%; - pointer-events: none; -} - -.annotationLayer section { - position: absolute; - text-align: left; - text-align: initial; - pointer-events: auto; - box-sizing: border-box; - transform-origin: 0 0; -} - -.annotationLayer .linkAnnotation { - outline: none; - outline: var(--link-outline); -} - -.annotationLayer .linkAnnotation:not(.does-not-exist) > a, .annotationLayer .buttonWidgetAnnotation.pushButton > a { - position: absolute; - font-size: 1em; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.annotationLayer - .linkAnnotation:not(.does-not-exist):not(.hasBorder) - > a:hover, .annotationLayer - .buttonWidgetAnnotation.pushButton:not(.hasBorder) - > a:hover { - opacity: 0.2; - background-color: rgba(255, 255, 0, 1); - box-shadow: 0 2px 10px rgba(255, 255, 0, 1); -} - -.annotationLayer .linkAnnotation.hasBorder:hover { - background-color: rgba(255, 255, 0, 0.2); -} - -.annotationLayer .hasBorder { - background-size: 100% 100%; -} - -.annotationLayer .textAnnotation img { - position: absolute; - cursor: pointer; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -.annotationLayer .textWidgetAnnotation input, .annotationLayer .textWidgetAnnotation textarea, .annotationLayer .choiceWidgetAnnotation select, .annotationLayer .buttonWidgetAnnotation.checkBox input, .annotationLayer .buttonWidgetAnnotation.radioButton input { - background-image: url("data:image/svg+xml;charset=UTF-8,"); - background-image: var(--annotation-unfocused-field-background); - border: 2px solid transparent; - border: 2px solid var(--input-unfocused-border-color); - box-sizing: border-box; - font: calc(9px * var(--scale-factor)) sans-serif; - height: 100%; - margin: 0; - vertical-align: top; - width: 100%; -} - -.annotationLayer .textWidgetAnnotation input:required { - outline: 1.5px solid red; -} - -.annotationLayer .textWidgetAnnotation textarea:required { - outline: 1.5px solid red; -} - -.annotationLayer - .buttonWidgetAnnotation.checkBox - input:required { - outline: 1.5px solid red; -} - -.annotationLayer - .buttonWidgetAnnotation.radioButton - input:required { - outline: 1.5px solid red; -} - -.annotationLayer .choiceWidgetAnnotation select:required { - outline: 1.5px solid red; -} - -.annotationLayer .choiceWidgetAnnotation select option { - padding: 0; -} - -.annotationLayer .buttonWidgetAnnotation.radioButton input { - border-radius: 50%; -} - -.annotationLayer .textWidgetAnnotation textarea { - resize: none; -} - -.annotationLayer .textWidgetAnnotation input[disabled], .annotationLayer .textWidgetAnnotation textarea[disabled], .annotationLayer .choiceWidgetAnnotation select[disabled], .annotationLayer - .buttonWidgetAnnotation.checkBox - input[disabled], .annotationLayer - .buttonWidgetAnnotation.radioButton - input[disabled] { - background: none; - border: 2px solid transparent; - border: 2px solid var(--input-disabled-border-color); - cursor: not-allowed; -} - -.annotationLayer .textWidgetAnnotation input:hover, .annotationLayer .textWidgetAnnotation textarea:hover, .annotationLayer .choiceWidgetAnnotation select:hover, .annotationLayer - .buttonWidgetAnnotation.checkBox - input:hover, .annotationLayer - .buttonWidgetAnnotation.radioButton - input:hover { - border: 2px solid black; - border: 2px solid var(--input-hover-border-color); -} -.annotationLayer .textWidgetAnnotation input:hover, .annotationLayer .textWidgetAnnotation textarea:hover, .annotationLayer .choiceWidgetAnnotation select:hover, .annotationLayer .buttonWidgetAnnotation.checkBox input:hover { - border-radius: 2px; -} - -.annotationLayer .textWidgetAnnotation input:focus, .annotationLayer .textWidgetAnnotation textarea:focus, .annotationLayer .choiceWidgetAnnotation select:focus { - background: none; - border: 2px solid Highlight; - border: 2px solid var(--input-focus-border-color); - border-radius: 2px; - outline: 1px solid Canvas; - outline: var(--input-focus-outline); -} - -.annotationLayer .buttonWidgetAnnotation.checkBox :focus, .annotationLayer .buttonWidgetAnnotation.radioButton :focus { - background-image: none; - background-color: transparent; -} - -.annotationLayer .buttonWidgetAnnotation.checkBox :focus { - border: 2px solid Highlight; - border: 2px solid var(--input-focus-border-color); - border-radius: 2px; - outline: 1px solid Canvas; - outline: var(--input-focus-outline); -} - -.annotationLayer .buttonWidgetAnnotation.radioButton :focus { - border: 2px solid Highlight; - border: 2px solid var(--input-focus-border-color); - outline: 1px solid Canvas; - outline: var(--input-focus-outline); -} - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before, -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after, -.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before { - background-color: CanvasText; - content: ""; - display: block; - position: absolute; -} - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before, -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after { - height: 80%; - left: 45%; - width: 1px; -} - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before { - transform: rotate(45deg); -} - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after { - transform: rotate(-45deg); -} - -.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before { - border-radius: 50%; - height: 50%; - left: 30%; - top: 20%; - width: 50%; -} - -.annotationLayer .textWidgetAnnotation input.comb { - font-family: monospace; - padding-left: 2px; - padding-right: 0; -} - -.annotationLayer .textWidgetAnnotation input.comb:focus { - /* - * Letter spacing is placed on the right side of each character. Hence, the - * letter spacing of the last character may be placed outside the visible - * area, causing horizontal scrolling. We avoid this by extending the width - * when the element has focus and revert this when it loses focus. - */ - width: 103%; -} - -.annotationLayer .buttonWidgetAnnotation.checkBox input, .annotationLayer .buttonWidgetAnnotation.radioButton input { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.annotationLayer .fileAttachmentAnnotation .popupTriggerArea { - height: 100%; - width: 100%; -} - -/* @obsidian */ -/* -.annotationLayer .popupAnnotation { - position: absolute; - font-size: calc(9px * var(--scale-factor)); - pointer-events: none; - width: max-content; - max-width: 45%; - height: auto; -} - -.annotationLayer .popup { - background-color: rgba(255, 255, 153, 1); - box-shadow: 0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) - rgba(136, 136, 136, 1); - border-radius: calc(2px * var(--scale-factor)); - outline: 1.5px solid rgb(255, 255, 74); - padding: calc(6px * var(--scale-factor)); - cursor: pointer; - font: message-box; - white-space: normal; - word-wrap: break-word; - pointer-events: auto; -} - -.annotationLayer .popupAnnotation.focused .popup { - outline-width: 3px; -} - -.annotationLayer .popup * { - font-size: calc(9px * var(--scale-factor)); -} - -.annotationLayer .popup > .header { - display: inline-block; -} - -.annotationLayer .popup > .header h1 { - display: inline; -} - -.annotationLayer .popup > .header .popupDate { - display: inline-block; - margin-left: calc(5px * var(--scale-factor)); - width: fit-content; -} - -.annotationLayer .popupContent { - border-top: 1px solid rgba(51, 51, 51, 1); - margin-top: calc(2px * var(--scale-factor)); - padding-top: calc(2px * var(--scale-factor)); -} */ - -.annotationLayer .richText > * { - white-space: pre-wrap; - /* @obsidian */ - /* font-size: calc(9px * var(--scale-factor)); */ -} - -.annotationLayer .highlightAnnotation, -.annotationLayer .underlineAnnotation, -.annotationLayer .squigglyAnnotation, -.annotationLayer .strikeoutAnnotation, -.annotationLayer .freeTextAnnotation, -.annotationLayer .lineAnnotation svg line, -.annotationLayer .squareAnnotation svg rect, -.annotationLayer .circleAnnotation svg ellipse, -.annotationLayer .polylineAnnotation svg polyline, -.annotationLayer .polygonAnnotation svg polygon, -.annotationLayer .caretAnnotation, -.annotationLayer .inkAnnotation svg polyline, -.annotationLayer .stampAnnotation, -.annotationLayer .fileAttachmentAnnotation { - cursor: pointer; -} - -.annotationLayer section svg { - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -.annotationLayer .annotationTextContent { - position: absolute; - width: 100%; - height: 100%; - opacity: 0; - color: transparent; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - pointer-events: none; -} - -.annotationLayer .annotationTextContent span { - width: 100%; - display: inline-block; -} - -.annotationLayer svg.quadrilateralsContainer { - contain: strict; - width: 0; - height: 0; - position: absolute; - top: 0; - left: 0; - z-index: -1; -} - - -:root { - --xfa-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,"); - --xfa-focus-outline: auto; -} - -@media screen and (forced-colors: active) { - :root { - --xfa-focus-outline: 2px solid CanvasText; - } - .xfaLayer *:required { - outline: 1.5px solid selectedItem; - } -} - -.xfaLayer { - background-color: transparent; -} - -.xfaLayer .highlight { - margin: -1px; - padding: 1px; - background-color: rgba(239, 203, 237, 1); - border-radius: 4px; -} - -.xfaLayer .highlight.appended { - position: static; - position: initial; -} - -.xfaLayer .highlight.begin { - border-radius: 4px 0 0 4px; -} - -.xfaLayer .highlight.end { - border-radius: 0 4px 4px 0; -} - -.xfaLayer .highlight.middle { - border-radius: 0; -} - -.xfaLayer .highlight.selected { - background-color: rgba(203, 223, 203, 1); -} - -.xfaPage { - overflow: hidden; - position: relative; -} - -.xfaContentarea { - position: absolute; -} - -.xfaPrintOnly { - display: none; -} - -.xfaLayer { - position: absolute; - text-align: left; - text-align: initial; - top: 0; - left: 0; - transform-origin: 0 0; - line-height: 1.2; -} - -.xfaLayer * { - color: inherit; - font: inherit; - font-style: inherit; - font-weight: inherit; - font-feature-settings: inherit; - font-kerning: inherit; - letter-spacing: -0.01px; - text-align: inherit; - text-decoration: inherit; - box-sizing: border-box; - background-color: transparent; - padding: 0; - margin: 0; - pointer-events: auto; - line-height: inherit; -} - -.xfaLayer *:required { - outline: 1.5px solid red; -} - -.xfaLayer div, -.xfaLayer svg, -.xfaLayer svg * { - pointer-events: none; -} - -.xfaLayer a { - color: blue; -} - -.xfaRich li { - margin-left: 3em; -} - -.xfaFont { - color: black; - font-weight: normal; - font-feature-settings: "kern" off; - font-kerning: none; - font-size: 10px; - font-style: normal; - letter-spacing: 0; - -webkit-text-decoration: none; - text-decoration: none; - vertical-align: 0; -} - -.xfaCaption { - overflow: hidden; - flex: 0 0 auto; -} - -.xfaCaptionForCheckButton { - overflow: hidden; - flex: 1 1 auto; -} - -.xfaLabel { - height: 100%; - width: 100%; -} - -.xfaLeft { - display: flex; - flex-direction: row; - align-items: center; -} - -.xfaRight { - display: flex; - flex-direction: row-reverse; - align-items: center; -} - -.xfaLeft > .xfaCaption, .xfaLeft > .xfaCaptionForCheckButton, .xfaRight > .xfaCaption, .xfaRight > .xfaCaptionForCheckButton { - max-height: 100%; -} - -.xfaTop { - display: flex; - flex-direction: column; - align-items: flex-start; -} - -.xfaBottom { - display: flex; - flex-direction: column-reverse; - align-items: flex-start; -} - -.xfaTop > .xfaCaption, .xfaTop > .xfaCaptionForCheckButton, .xfaBottom > .xfaCaption, .xfaBottom > .xfaCaptionForCheckButton { - width: 100%; -} - -.xfaBorder { - background-color: transparent; - position: absolute; - pointer-events: none; -} - -.xfaWrapped { - width: 100%; - height: 100%; -} - -.xfaTextfield:focus, .xfaSelect:focus { - background-image: none; - background-color: transparent; - outline: auto; - outline: var(--xfa-focus-outline); - outline-offset: -1px; -} - -.xfaCheckbox:focus, .xfaRadio:focus { - outline: auto; - outline: var(--xfa-focus-outline); -} - -.xfaTextfield, -.xfaSelect { - height: 100%; - width: 100%; - flex: 1 1 auto; - border: none; - resize: none; - background-image: url("data:image/svg+xml;charset=UTF-8,"); - background-image: var(--xfa-unfocused-field-background); -} - -.xfaSelect { - padding-left: 2px; - padding-right: 2px; -} - -.xfaTop > .xfaTextfield, .xfaTop > .xfaSelect, .xfaBottom > .xfaTextfield, .xfaBottom > .xfaSelect { - flex: 0 1 auto; -} - -.xfaButton { - cursor: pointer; - width: 100%; - height: 100%; - border: none; - text-align: center; -} - -.xfaLink { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; -} - -.xfaCheckbox, -.xfaRadio { - width: 100%; - height: 100%; - flex: 0 0 auto; - border: none; -} - -.xfaRich { - white-space: pre-wrap; - width: 100%; - height: 100%; -} - -.xfaImage { - -o-object-position: left top; - object-position: left top; - -o-object-fit: contain; - object-fit: contain; - width: 100%; - height: 100%; -} - -.xfaLrTb, -.xfaRlTb, -.xfaTb { - display: flex; - flex-direction: column; - align-items: stretch; -} - -.xfaLr { - display: flex; - flex-direction: row; - align-items: stretch; -} - -.xfaRl { - display: flex; - flex-direction: row-reverse; - align-items: stretch; -} - -.xfaTb > div { - justify-content: left; -} - -.xfaPosition { - position: relative; -} - -.xfaArea { - position: relative; -} - -.xfaValignMiddle { - display: flex; - align-items: center; -} - -.xfaTable { - display: flex; - flex-direction: column; - align-items: stretch; -} - -.xfaTable .xfaRow { - display: flex; - flex-direction: row; - align-items: stretch; -} - -.xfaTable .xfaRlRow { - display: flex; - flex-direction: row-reverse; - align-items: stretch; - flex: 1; -} - -.xfaTable .xfaRlRow > div { - flex: 1; -} - -.xfaNonInteractive input, .xfaNonInteractive textarea, .xfaDisabled input, .xfaDisabled textarea, .xfaReadOnly input, .xfaReadOnly textarea { - background: transparent none repeat 0 0 / auto auto padding-box border-box scroll; - background: initial; -} - -@media print { - .xfaTextfield, - .xfaSelect { - background: transparent; - } - - .xfaSelect { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - text-indent: 1px; - text-overflow: ""; - } -} - -/* @obsidian TODO: bring this in when we enable annotation editing */ -/* @import url(annotation_editor_layer_builder.css); */ - -:root { - --viewer-container-height: 0; - --pdfViewer-padding-bottom: 0; - --page-margin: 1px auto -8px; - --page-border: 9px solid transparent; - --spreadHorizontalWrapped-margin-LR: -3.5px; - --loading-icon-delay: 400ms; -} - -@media screen and (forced-colors: active) { - :root { - --pdfViewer-padding-bottom: 9px; - --page-margin: 8px auto -1px; - --page-border: 1px solid CanvasText; - --spreadHorizontalWrapped-margin-LR: 3.5px; - } -} - -[data-main-rotation="90"] { - transform: rotate(90deg) translateY(-100%); -} -[data-main-rotation="180"] { - transform: rotate(180deg) translate(-100%, -100%); -} -[data-main-rotation="270"] { - transform: rotate(270deg) translateX(-100%); -} - -/* @obsidian this was changed from an id to a class */ -.hiddenCopyElement { - position: absolute; - top: 0; - left: 0; - width: 0; - height: 0; - display: none; -} - -.pdf-viewer { - /* Define this variable here and not in :root to avoid to reflow all the UI - when scaling (see #15929). */ - --scale-factor: 1; - - padding-bottom: 0; - - padding-bottom: var(--pdfViewer-padding-bottom); -} - -.pdf-viewer .canvasWrapper { - overflow: hidden; - /* width: 100%; */ - /* height: 100%; */ - z-index: 1; -} - -.pdf-viewer .page { - direction: ltr; - width: 816px; - height: 1056px; - /* margin: var(--page-margin); */ - position: relative; - overflow: visible; - /* border: var(--page-border); */ - background-clip: content-box; - /* background-color: rgba(255, 255, 255, 1); */ -} - -.pdf-viewer .dummyPage { - position: relative; - width: 0; - height: 0; - height: var(--viewer-container-height); -} - -.pdf-viewer.removePageBorders .page { - margin: 0 auto 10px; - border: none; -} - -.pdf-viewer.scrollHorizontal, .pdf-viewer.scrollWrapped, .spread { - margin-left: 3.5px; - margin-right: 3.5px; - text-align: center; -} - -.pdf-viewer.scrollHorizontal, -.spread { - white-space: nowrap; -} - -.pdf-viewer.removePageBorders, -.pdf-viewer.scrollHorizontal .spread, -.pdf-viewer.scrollWrapped .spread { - margin-left: 0; - margin-right: 0; -} - -.spread .page, .spread .dummyPage, .pdf-viewer.scrollHorizontal .page, .pdf-viewer.scrollHorizontal .spread, .pdf-viewer.scrollWrapped .page, .pdf-viewer.scrollWrapped .spread { - display: inline-block; - vertical-align: middle; -} - -/* @obsidian */ -/* .spread .page, -.pdf-viewer:is(.scrollHorizontal, .scrollWrapped) .page { - margin-inline: var(--spreadHorizontalWrapped-margin-LR); -} */ - - @obsidian - .pdf-viewer.removePageBorders .spread .page, -.pdf-viewer.removePageBorders:is(.scrollHorizontal, .scrollWrapped) .page { - margin-left: 5px; - margin-right: 5px; -} - -.pdf-viewer .page canvas { - margin: 0; - display: block; -} - -.pdf-viewer .page canvas .structTree { - contain: strict; -} - -.pdf-viewer .page canvas[hidden] { - display: none; -} - -.pdf-viewer .page canvas[zooming] { - width: 100%; - height: 100%; -} - -.pdf-viewer .page.loadingIcon::after { - position: absolute; - top: 0; - left: 0; - content: ""; - width: 100%; - height: 100%; - /* @obsidian */ - /* background: url("images/loading-icon.gif") center no-repeat; */ - display: none; - /* Using a delay with background-image doesn't work, - consequently we use the display. */ - transition-property: display; - transition-delay: 400ms; - transition-delay: var(--loading-icon-delay); - z-index: 5; - contain: strict; -} - -.pdf-viewer .page.loading::after { - display: block; -} - -.pdf-viewer .page:not(.loading)::after { - transition-property: none; - display: none; -} - -.pdfPresentationMode .pdf-viewer { - padding-bottom: 0; -} - -.pdfPresentationMode .spread { - margin: 0; -} - -.pdfPresentationMode .pdf-viewer .page { - margin: 0 auto; - border: 2px solid transparent; -} - -/* Obsidian theme variables */ -/* ------------------------ */ -body { - /* Animations */ - --anim-duration-none: 0; - --anim-duration-superfast: 70ms; - --anim-duration-fast: 140ms; - --anim-duration-moderate: 300ms; - --anim-duration-slow: 560ms; - --anim-motion-smooth: cubic-bezier(0.45, 0.05, 0.55, 0.95); - --anim-motion-delay: cubic-bezier(0.65, 0.05, 0.36, 1); - --anim-motion-jumpy: cubic-bezier(0.68, -0.55, 0.27, 1.55); - --anim-motion-swing: cubic-bezier(0, 0.55, 0.45, 1); - /* Blockquotes */ - --blockquote-border-thickness: 2px; - --blockquote-border-color: var(--interactive-accent); - --blockquote-font-style: normal; - --blockquote-color: inherit; - --blockquote-background-color: transparent; - /* Bold */ - --bold-weight: var(--font-semibold); - --bold-color: inherit; - /* Borders */ - --border-width: 1px; - /* Buttons */ - --button-radius: var(--input-radius); - /* Callouts */ - --callout-border-width: 0px; - --callout-border-opacity: 0.25; - --callout-padding: var(--size-4-3) var(--size-4-3) var(--size-4-3) var(--size-4-6); - --callout-radius: var(--radius-s); - --callout-blend-mode: var(--highlight-mix-blend-mode); - --callout-title-color: inherit; - --callout-title-padding: 0; - --callout-title-size: inherit; - --callout-content-padding: 0; - --callout-content-background: transparent; - --callout-bug: var(--color-red-rgb); - --callout-default: var(--color-blue-rgb); - --callout-error: var(--color-red-rgb); - --callout-example: var(--color-purple-rgb); - --callout-fail: var(--color-red-rgb); - --callout-important: var(--color-cyan-rgb); - --callout-info: var(--color-blue-rgb); - --callout-question: var(--color-orange-rgb); - --callout-success: var(--color-green-rgb); - --callout-summary: var(--color-cyan-rgb); - --callout-tip: var(--color-cyan-rgb); - --callout-todo: var(--color-blue-rgb); - --callout-warning: var(--color-orange-rgb); - --callout-quote: 158, 158, 158; - /* Canvas */ - --canvas-background: var(--background-primary); - --canvas-card-label-color: var(--text-faint); - --canvas-color-1: var(--color-red-rgb); - --canvas-color-2: var(--color-orange-rgb); - --canvas-color-3: var(--color-yellow-rgb); - --canvas-color-4: var(--color-green-rgb); - --canvas-color-5: var(--color-cyan-rgb); - --canvas-color-6: var(--color-purple-rgb); - --canvas-dot-pattern: var(--color-base-30); - /* Checkboxes */ - --checkbox-radius: var(--radius-s); - --checkbox-size: var(--font-text-size); - --checkbox-marker-color: var(--background-primary); - --checkbox-color: var(--interactive-accent); - --checkbox-color-hover: var(--interactive-accent-hover); - --checkbox-border-color: var(--text-faint); - --checkbox-border-color-hover: var(--text-muted); - --checklist-done-decoration: line-through; - --checklist-done-color: var(--text-muted); - /* Code */ - --code-white-space: pre-wrap; - --code-radius: var(--radius-s); - --code-size: var(--font-smaller); - --code-background: var(--background-primary-alt); - --code-normal: var(--text-muted); - --code-comment: var(--text-faint); - --code-function: var(--color-yellow); - --code-important: var(--color-orange); - --code-keyword: var(--color-pink); - --code-operator: var(--color-red); - --code-property: var(--color-cyan); - --code-punctuation: var(--text-muted); - --code-string: var(--color-green); - --code-tag: var(--color-red); - --code-value: var(--color-purple); - /* Collapse icons */ - --collapse-icon-color: var(--text-faint); - --collapse-icon-color-collapsed: var(--text-accent); - /* Cursor */ - --cursor: default; - --cursor-link: pointer; - /* Dialogs - e.g. small modals, confirmations */ - --dialog-width: 560px; - --dialog-max-width: 80vw; - --dialog-max-height: 85vh; - /* Dividers — between panes */ - --divider-color: var(--background-modifier-border); - --divider-color-hover: var(--interactive-accent); - --divider-width: 1px; - --divider-width-hover: 3px; - --divider-vertical-height: calc(100% - var(--header-height)); - /* Dragging */ - --drag-ghost-background: rgba(0, 0, 0, 0.85); - --drag-ghost-text-color: #fff; - /* Embeds */ - --embed-max-height: 4000px; - --embed-canvas-max-height: 400px; - --embed-background: inherit; - --embed-border-left: 2px solid var(--interactive-accent); - --embed-border-right: none; - --embed-border-top: none; - --embed-border-bottom: none; - --embed-padding: 0 0 0 var(--size-4-6); - --embed-font-style: inherit; - /* Blocks */ - --embed-block-shadow-hover: 0 0 0 1px var(--background-modifier-border), - inset 0 0 0 1px var(--background-modifier-border); - /* File layout */ - --file-line-width: 700px; - --file-folding-offset: 24px; - --file-margins: var(--size-4-8); - --file-header-font-size: var(--font-ui-small); - --file-header-font-weight: 400; - --file-header-border: var(--border-width) solid transparent; - --file-header-justify: center; - /* Relative font sizes */ - --font-smallest: 0.8em; - --font-smaller: 0.875em; - --font-small: 0.933em; - /* UI font sizes */ - --font-ui-smaller: 12px; - --font-ui-small: 13px; - --font-ui-medium: 15px; - --font-ui-large: 20px; - /* Font weights */ - --font-thin: 100; - --font-extralight: 200; - --font-light: 300; - --font-normal: 400; - --font-medium: 500; - --font-semibold: 600; - --font-bold: 700; - --font-extrabold: 800; - --font-black: 900; - /* Footnotes */ - --footnote-size: var(--font-smaller); - /* Graphs */ - --graph-controls-width: 240px; - --graph-text: var(--text-normal); - --graph-line: var(--color-base-35, var(--background-modifier-border-focus)); - --graph-node: var(--text-muted); - --graph-node-unresolved: var(--text-faint); - --graph-node-focused: var(--text-accent); - --graph-node-tag: var(--color-green); - --graph-node-attachment: var(--color-yellow); - /* Headings */ - --heading-formatting: var(--text-faint); - --heading-spacing: calc(var(--p-spacing) * 2.5); - --h1-color: inherit; - --h2-color: inherit; - --h3-color: inherit; - --h4-color: inherit; - --h5-color: inherit; - --h6-color: inherit; - --h1-font: inherit; - --h2-font: inherit; - --h3-font: inherit; - --h4-font: inherit; - --h5-font: inherit; - --h6-font: inherit; - --h1-line-height: 1.2; - --h2-line-height: 1.2; - --h3-line-height: 1.3; - --h4-line-height: 1.4; - --h5-line-height: var(--line-height-normal); - --h6-line-height: var(--line-height-normal); - --h1-size: 1.802em; - --h2-size: 1.602em; - --h3-size: 1.424em; - --h4-size: 1.266em; - --h5-size: 1.125em; - --h6-size: 1em; - --h1-style: normal; - --h2-style: normal; - --h3-style: normal; - --h4-style: normal; - --h5-style: normal; - --h6-style: normal; - --h1-variant: normal; - --h2-variant: normal; - --h3-variant: normal; - --h4-variant: normal; - --h5-variant: normal; - --h6-variant: normal; - --h1-weight: 700; - --h2-weight: 600; - --h3-weight: 600; - --h4-weight: 600; - --h5-weight: 600; - --h6-weight: 600; - /* View header */ - --header-height: 40px; - /* Horizontal rules */ - --hr-color: var(--background-modifier-border); - --hr-thickness: 2px; - /* Icons */ - --icon-size: var(--icon-m); - --icon-stroke: var(--icon-m-stroke-width); - --icon-xs: 14px; - --icon-s: 16px; - --icon-m: 18px; - --icon-l: 18px; - --icon-xl: 32px; - --icon-xs-stroke-width: 2px; - --icon-s-stroke-width: 2px; - --icon-m-stroke-width: 1.75px; - --icon-l-stroke-width: 1.75px; - --icon-xl-stroke-width: 1.25px; - --icon-color: var(--text-muted); - --icon-color-hover: var(--text-muted); - --icon-color-active: var(--text-accent); - --icon-color-focused: var(--text-normal); - --icon-opacity: 0.85; - --icon-opacity-hover: 1; - --icon-opacity-active: 1; - --clickable-icon-radius: var(--radius-s); - /* Indentation guide */ - --indentation-guide-width: 1px; - --indentation-guide-width-active: 1px; - --indentation-guide-color: rgba(var(--mono-rgb-100), 0.12); - --indentation-guide-color-active: rgba(var(--mono-rgb-100), 0.3); - --indentation-guide-editing-indent: 1em; - /* Inline title */ - --inline-title-color: var(--h1-color); - --inline-title-font: var(--h1-font); - --inline-title-line-height: var(--h1-line-height); - --inline-title-size: var(--h1-size); - --inline-title-style: var(--h1-style); - --inline-title-variant: var(--h1-variant); - --inline-title-weight: var(--h1-weight); - --inline-title-margin-bottom: 0.5em; - /* Inputs */ - --input-height: 30px; - --input-radius: 5px; - --input-font-weight: var(--font-normal); - --input-border-width: 1px; - /* Italic */ - --italic-color: inherit; - --italic-weight: inherit; - /* Z-index */ - --layer-cover: 5; - --layer-sidedock: 10; - --layer-status-bar: 15; - --layer-popover: 30; - --layer-slides: 45; - --layer-modal: 50; - --layer-notice: 60; - --layer-menu: 65; - --layer-tooltip: 70; - --layer-dragged-item: 80; - /* Line heights */ - --line-height-normal: 1.5; - --line-height-tight: 1.3; - /* Links */ - --link-color: var(--text-accent); - --link-color-hover: var(--text-accent-hover); - --link-decoration: underline; - --link-decoration-hover: underline; - --link-decoration-thickness: auto; - --link-external-color: var(--text-accent); - --link-external-color-hover: var(--text-accent-hover); - --link-external-decoration: underline; - --link-external-decoration-hover: underline; - --link-external-filter: none; - --link-unresolved-color: var(--text-accent); - --link-unresolved-opacity: 0.7; - --link-unresolved-filter: none; - --link-unresolved-decoration-style: solid; - --link-unresolved-decoration-color: hsla(var(--interactive-accent-hsl), 0.3); - /* Lists */ - --list-indent: 2.25em; - --list-spacing: 0.075em; - --list-marker-color: var(--text-faint); - --list-marker-color-hover: var(--text-muted); - --list-marker-color-collapsed: var(--text-accent); - --list-bullet-border: none; - --list-bullet-radius: 50%; - --list-bullet-size: 0.3em; - --list-bullet-transform: none; - --list-numbered-style: decimal; - /* File navigator */ - --nav-item-size: var(--font-ui-small); - --nav-item-color: var(--text-muted); - --nav-item-color-hover: var(--text-normal); - --nav-item-color-active: var(--text-normal); - --nav-item-color-selected: var(--text-normal); - --nav-item-color-highlighted: var(--text-accent-hover); - --nav-item-background-hover: var(--background-modifier-hover); - --nav-item-background-active: var(--background-modifier-hover); - --nav-item-background-selected: hsla(var(--color-accent-hsl), 0.15); - --nav-item-padding: var(--size-4-1) var(--size-4-2) var(--size-4-1) var(--size-4-6); - --nav-item-parent-padding: var(--nav-item-padding); - --nav-item-children-padding-left: var(--size-2-2); - --nav-item-children-margin-left: var(--size-4-3); - --nav-item-weight: inherit; - --nav-item-weight-hover: inherit; - --nav-item-weight-active: inherit; - --nav-item-white-space: nowrap; - --nav-indentation-guide-width: var(--indentation-guide-width); - --nav-indentation-guide-color: var(--indentation-guide-color); - --nav-collapse-icon-color: var(--collapse-icon-color); - --nav-collapse-icon-color-collapsed: var(--text-faint); - /* Metadata */ - --metadata-background: transparent; - --metadata-display-reading: block; - --metadata-display-editing: block; - --metadata-max-width: none; - --metadata-padding: var(--size-4-2) 0; - --metadata-border-color: var(--background-modifier-border); - --metadata-border-radius: 0; - --metadata-border-width: 0; - --metadata-divider-color: var(--background-modifier-border); - --metadata-divider-color-hover: transparent; - --metadata-divider-color-focus: transparent; - --metadata-divider-width: 0; - --metadata-gap: 3px; - --metadata-property-padding: 0; - --metadata-property-radius: 6px; - --metadata-property-background: transparent; - --metadata-property-background-hover: transparent; - --metadata-property-background-active: var(--background-modifier-hover); - --metadata-label-background-hover: transparent; - --metadata-label-background-active: var(--background-modifier-hover); - --metadata-label-font-size: var(--font-smaller); - --metadata-label-font-weight: inherit; - --metadata-label-text-color: var(--text-muted); - --metadata-label-text-color-hover: var(--text-muted); - --metadata-label-width: 9em; - --metadata-input-height: calc(var(--font-text-size) * 1.75); - --metadata-input-text-color: var(--text-normal); - --metadata-input-font-size: var(--font-smaller); - --metadata-input-background: transparent; - --metadata-input-background-hover: transparent; - --metadata-input-background-active: var(--background-modifier-hover); - --metadata-sidebar-label-font-size: var(--font-ui-small); - --metadata-sidebar-input-font-size: var(--font-ui-small); - /* Modals - e.g. settings, community themes, community plugins */ - --modal-background: var(--background-primary); - --modal-width: 90vw; - --modal-height: 85vh; - --modal-max-width: 1100px; - --modal-max-height: 1000px; - --modal-max-width-narrow: 800px; - --modal-border-width: var(--border-width); - --modal-border-color: var(--color-base-40, var(--background-modifier-border-focus)); - --modal-radius: var(--radius-l); - --modal-community-sidebar-width: 280px; - /* Multi-select pills */ - --pill-color: var(--text-muted); - --pill-color-hover: var(--text-normal); - --pill-color-remove: var(--text-faint); - --pill-color-remove-hover: var(--text-accent); - --pill-decoration: none; - --pill-decoration-hover: none; - --pill-background: transparent; - --pill-background-hover: transparent; - --pill-border-color: var(--background-modifier-border); - --pill-border-color-hover: var(--background-modifier-border-hover); - --pill-border-width: var(--border-width); - --pill-padding-x: 0.65em; - --pill-padding-y: 0.25em; - --pill-radius: 2em; - --pill-weight: inherit; - /* Paragraphs */ - --p-spacing: 1rem; - --p-spacing-empty: 0rem; - /* PDF view */ - --pdf-background: var(--background-primary); - --pdf-page-background: var(--background-primary); - --pdf-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0 2px 8px rgba(0, 0, 0, 0.1); - --pdf-spread-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05); - --pdf-sidebar-background: var(--background-primary); - --pdf-thumbnail-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.2); - /* Popovers - file previews */ - --popover-width: 450px; - --popover-height: 400px; - --popover-max-height: 70vh; - --popover-pdf-width: 600px; - --popover-pdf-height: 800px; - --popover-font-size: var(--font-text-size); - /* Prompts - e.g. quick switcher, command palette */ - --prompt-width: 700px; - --prompt-max-width: 80vw; - --prompt-max-height: 70vh; - --prompt-border-width: var(--border-width); - --prompt-border-color: var(--color-base-40, var(--background-modifier-border-focus)); - /* Radiuses */ - --radius-s: 4px; - --radius-m: 8px; - --radius-l: 12px; - --radius-xl: 16px; - /* Ribbon */ - --ribbon-background: var(--background-secondary); - --ribbon-background-collapsed: var(--background-primary); - --ribbon-width: 44px; - --ribbon-padding: var(--size-4-2) var(--size-4-1) var(--size-4-3); - /* Scrollbars */ - --scrollbar-active-thumb-bg: rgba(var(--mono-rgb-100), 0.2); - --scrollbar-bg: rgba(var(--mono-rgb-100), 0.05); - --scrollbar-thumb-bg: rgba(var(--mono-rgb-100), 0.1); - /* Search */ - --search-clear-button-color: var(--text-muted); - --search-clear-button-size: 13px; - --search-icon-color: var(--text-muted); - --search-icon-size: 18px; - --search-result-background: var(--background-primary); - /* Layout sizing - for padding and margins */ - --size-2-1: 2px; - --size-2-2: 4px; - --size-2-3: 6px; - --size-4-1: 4px; - --size-4-2: 8px; - --size-4-3: 12px; - --size-4-4: 16px; - --size-4-5: 20px; - --size-4-6: 24px; - --size-4-8: 32px; - --size-4-9: 36px; - --size-4-12: 48px; - --size-4-16: 64px; - --size-4-18: 72px; - /* Sidebar */ - --sidebar-markdown-font-size: calc(var(--font-text-size) * 0.9); - --sidebar-tab-text-display: none; - /* Sliders */ - --slider-thumb-border-width: 1px; - --slider-thumb-border-color: var(--background-modifier-border-hover); - --slider-thumb-height: 18px; - --slider-thumb-width: 18px; - --slider-thumb-y: -6px; - --slider-thumb-radius: 50%; - --slider-s-thumb-size: 15px; - --slider-s-thumb-position: -5px; - --slider-track-background: var(--background-modifier-border); - --slider-track-height: 3px; - /* Status bar */ - --status-bar-background: var(--background-secondary); - --status-bar-border-color: var(--divider-color); - --status-bar-border-width: 1px 0 0 1px; - --status-bar-font-size: var(--font-ui-smaller); - --status-bar-text-color: var(--text-muted); - --status-bar-position: fixed; - --status-bar-radius: var(--radius-m) 0 0 0; - --status-bar-scroll-padding: calc(var(--status-bar-font-size) + 18px); - /* Sync */ - --sync-avatar-color-current-user: transparent; - --sync-avatar-color-1: var(--color-red); - --sync-avatar-color-2: var(--color-orange); - --sync-avatar-color-3: var(--color-yellow); - --sync-avatar-color-4: var(--color-green); - --sync-avatar-color-5: var(--color-cyan); - --sync-avatar-color-6: var(--color-blue); - --sync-avatar-color-7: var(--color-purple); - --sync-avatar-color-8: var(--color-pink); - /* Swatch for color inputs */ - --swatch-radius: 14px; - --swatch-height: 24px; - --swatch-width: 24px; - --swatch-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.15); - /* Tabs */ - --tab-background-active: var(--background-primary); - --tab-text-color: var(--text-faint); - --tab-text-color-active: var(--text-muted); - --tab-text-color-focused: var(--text-muted); - --tab-text-color-focused-active: var(--text-muted); - --tab-text-color-focused-highlighted: var(--text-accent); - --tab-text-color-focused-active-current: var(--text-normal); - --tab-font-size: var(--font-ui-small); - --tab-font-weight: inherit; - --tab-container-background: var(--background-secondary); - --tab-divider-color: var(--background-modifier-border-hover); - --tab-outline-color: var(--divider-color); - --tab-outline-width: 1px; - --tab-curve: 6px; - --tab-radius: var(--radius-s); - --tab-radius-active: 6px 6px 0 0; - --tab-width: 200px; - --tab-max-width: 320px; - /* Stacked tabs */ - --tab-stacked-pane-width: 700px; - --tab-stacked-header-width: var(--header-height); - --tab-stacked-font-size: var(--font-ui-small); - --tab-stacked-font-weight: 400; - --tab-stacked-text-align: left; - --tab-stacked-text-transform: rotate(0deg); - --tab-stacked-text-writing-mode: vertical-lr; - --tab-stacked-shadow: -8px 0 8px 0 rgba(0, 0, 0, 0.05); - /* Tables */ - --table-background: transparent; - --table-border-width: 1px; - --table-border-color: var(--background-modifier-border); - --table-white-space: break-spaces; - --table-header-background: var(--table-background); - --table-header-background-hover: inherit; - --table-header-border-width: var(--table-border-width); - --table-header-border-color: var(--table-border-color); - --table-header-font: inherit; - --table-header-size: var(--table-text-size); - --table-header-weight: var(--bold-weight); - --table-header-color: var(--text-normal); - --table-line-height: var(--line-height-tight); - --table-text-size: var(--font-text-size); - --table-text-color: inherit; - --table-column-min-width: 6ch; - --table-column-max-width: none; - --table-column-alt-background: var(--table-background); - --table-column-first-border-width: var(--table-border-width); - --table-column-last-border-width: var(--table-border-width); - --table-row-background-hover: var(--table-background); - --table-row-alt-background: var(--table-background); - --table-row-alt-background-hover: var(--table-background); - --table-row-last-border-width: var(--table-border-width); - --table-selection: hsla(var(--color-accent-hsl), 0.1); - --table-selection-blend-mode: var(--highlight-mix-blend-mode); - --table-selection-border-color: var(--interactive-accent); - --table-selection-border-width: 2px; - --table-selection-border-radius: 4px; - --table-cell-vertical-alignment: top; - --table-drag-handle-background: transparent; - --table-drag-handle-background-active: var(--table-selection-border-color); - --table-drag-handle-color: var(--text-faint); - --table-drag-handle-color-active: var(--text-on-accent); - --table-add-button-background: transparent; - --table-add-button-border-width: var(--table-border-width); - --table-add-button-border-color: var(--background-modifier-border); - /* Tags */ - --tag-size: var(--font-smaller); - --tag-color: var(--text-accent); - --tag-color-hover: var(--text-accent); - --tag-decoration: none; - --tag-decoration-hover: none; - --tag-background: hsla(var(--interactive-accent-hsl), 0.1); - --tag-background-hover: hsla(var(--interactive-accent-hsl), 0.2); - --tag-border-color: hsla(var(--interactive-accent-hsl), 0.15); - --tag-border-color-hover: hsla(var(--interactive-accent-hsl), 0.15); - --tag-border-width: 0px; - --tag-padding-x: 0.65em; - --tag-padding-y: 0.25em; - --tag-radius: 2em; - --tag-weight: inherit; - /* Window frame */ - --titlebar-background: var(--background-secondary); - --titlebar-background-focused: var(--background-secondary-alt); - --titlebar-border-width: 0px; - --titlebar-border-color: var(--background-modifier-border); - --titlebar-text-color: var(--text-muted); - --titlebar-text-color-focused: var(--text-normal); - --titlebar-text-weight: var(--font-bold); - /* Toggles */ - --toggle-border-width: 2px; - --toggle-width: 40px; - --toggle-radius: 18px; - --toggle-thumb-color: white; - --toggle-thumb-radius: 18px; - --toggle-thumb-height: 18px; - --toggle-thumb-width: 18px; - --toggle-s-border-width: 2px; - --toggle-s-width: 34px; - --toggle-s-thumb-height: 15px; - --toggle-s-thumb-width: 15px; - /* Vault name */ - --vault-name-font-size: var(--font-ui-small); - --vault-name-font-weight: var(--font-medium); - --vault-name-color: var(--text-normal); - /* Workspace */ - --workspace-background-translucent: rgba(var(--mono-rgb-0), 0.6); - /* Color mappings ------------------------ */ - /* Accent HSL values */ - --accent-h: 258; - --accent-s: 88%; - --accent-l: 66%; - /* Backgrounds */ - --background-primary: var(--color-base-00); - --background-primary-alt: var(--color-base-10); - --background-secondary: var(--color-base-20); - --background-modifier-hover: rgba(var(--mono-rgb-100), 0.075); - --background-modifier-active-hover: hsla(var(--interactive-accent-hsl), 0.15); - --background-modifier-border: var(--color-base-30); - --background-modifier-border-hover: var(--color-base-35); - --background-modifier-border-focus: var(--color-base-40); - --background-modifier-error-rgb: var(--color-red-rgb); - --background-modifier-error: var(--color-red); - --background-modifier-error-hover: var(--color-red); - --background-modifier-success-rgb: var(--color-green-rgb); - --background-modifier-success: var(--color-green); - --background-modifier-message: rgba(0, 0, 0, 0.9); - /* Inputs */ - --background-modifier-form-field: var(--color-base-00); - /* Text */ - --text-normal: var(--color-base-100); - --text-muted: var(--color-base-70); - --text-faint: var(--color-base-50); - --text-on-accent: white; - --text-on-accent-inverted: black; - --text-error: var(--color-red); - --text-warning: var(--color-orange); - --text-success: var(--color-green); - --text-selection: hsla(var(--color-accent-hsl), 0.2); - --text-highlight-bg-rgb: 255, 208, 0; - --text-highlight-bg: rgba(var(--text-highlight-bg-rgb), 0.4); - --text-accent: var(--color-accent); - --text-accent-hover: var(--color-accent-2); - --interactive-normal: var(--color-base-00); - --interactive-hover: var(--color-base-10); - --interactive-accent-hsl: var(--color-accent-hsl); - --interactive-accent: var(--color-accent-1); - --interactive-accent-hover: var(--color-accent-2); -} -.theme-light { - color-scheme: light; - --highlight-mix-blend-mode: darken; - --mono-rgb-0: 255, 255, 255; - --mono-rgb-100: 0, 0, 0; - --color-red-rgb: 233, 49, 71; - --color-red: #e93147; - --color-orange-rgb: 236, 117, 0; - --color-orange: #ec7500; - --color-yellow-rgb: 224, 172, 0; - --color-yellow: #e0ac00; - --color-green-rgb: 8, 185, 78; - --color-green: #08b94e; - --color-cyan-rgb: 0, 191, 188; - --color-cyan: #00bfbc; - --color-blue-rgb: 8, 109, 221; - --color-blue: #086ddd; - --color-purple-rgb: 120, 82, 238; - --color-purple: #7852ee; - --color-pink-rgb: 213, 57, 132; - --color-pink: #d53984; - --color-base-00: #ffffff; - --color-base-05: #fcfcfc; - --color-base-10: #fafafa; - --color-base-20: #f6f6f6; - --color-base-25: #e3e3e3; - --color-base-30: #e0e0e0; - --color-base-35: #d4d4d4; - --color-base-40: #bdbdbd; - --color-base-50: #ababab; - --color-base-60: #707070; - --color-base-70: #5c5c5c; - --color-base-100: #222222; - --color-accent-hsl: var(--accent-h), - var(--accent-s), - var(--accent-l); - --color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); - --color-accent-1: hsl(calc(var(--accent-h) - 1), calc(var(--accent-s) * 1.01), calc(var(--accent-l) * 1.075)); - --color-accent-2: hsl(calc(var(--accent-h) - 3), calc(var(--accent-s) * 1.02), calc(var(--accent-l) * 1.15)); - --background-secondary-alt: var(--color-base-05); - --background-modifier-box-shadow: rgba(0, 0, 0, 0.1); - --background-modifier-cover: rgba(220, 220, 220, 0.4); - --input-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12), - 0 2px 3px 0 rgba(0,0,0,.05), - 0 1px 1.5px 0 rgba(0,0,0,.03), - 0 1px 2px 0 rgba(0,0,0,.04), - 0 0 0 0 transparent; - --input-shadow-hover: inset 0 0 0 1px rgba(0, 0, 0, 0.17), - 0 2px 3px 0 rgba(0,0,0,.1), - 0 1px 1.5px 0 rgba(0,0,0,.03), - 0 1px 2px 0 rgba(0,0,0,.04), - 0 0 0 0 transparent; - --shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.028), - 0px 3.4px 6.7px rgba(0, 0, 0, .042), - 0px 15px 30px rgba(0, 0, 0, .07); - --shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), - 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), - 0px 30px 90px rgba(0, 0, 0, 0.2); -} -.theme-dark { - color-scheme: dark; - --highlight-mix-blend-mode: lighten; - --mono-rgb-0: 0, 0, 0; - --mono-rgb-100: 255, 255, 255; - --color-red-rgb: 251, 70, 76; - --color-red: #fb464c; - --color-orange-rgb: 233, 151, 63; - --color-orange: #e9973f; - --color-yellow-rgb: 224, 222, 113; - --color-yellow: #e0de71; - --color-green-rgb: 68, 207, 110; - --color-green: #44cf6e; - --color-cyan-rgb: 83, 223, 221; - --color-cyan: #53dfdd; - --color-blue-rgb: 2, 122, 255; - --color-blue: #027aff; - --color-purple-rgb: 168, 130, 255; - --color-purple: #a882ff; - --color-pink-rgb: 250, 153, 205; - --color-pink: #fa99cd; - --color-base-00: #1e1e1e; - --color-base-05: #212121; - --color-base-10: #242424; - --color-base-20: #262626; - --color-base-25: #2a2a2a; - --color-base-30: #363636; - --color-base-35: #3f3f3f; - --color-base-40: #555555; - --color-base-50: #666666; - --color-base-60: #999999; - --color-base-70: #b3b3b3; - --color-base-100: #dadada; - --color-accent-hsl: var(--accent-h), - var(--accent-s), - var(--accent-l); - --color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); - --color-accent-1: hsl(calc(var(--accent-h) - 3), calc(var(--accent-s) * 1.02), calc(var(--accent-l) * 1.15)); - --color-accent-2: hsl(calc(var(--accent-h) - 5), calc(var(--accent-s) * 1.05), calc(var(--accent-l) * 1.29)); - --background-modifier-form-field: var(--color-base-25); - --background-secondary-alt: var(--color-base-30); - --interactive-normal: var(--color-base-30); - --interactive-hover: var(--color-base-35); - --text-accent: var(--color-accent-1); - --interactive-accent: var(--color-accent); - --interactive-accent-hover: var(--color-accent-1); - --background-modifier-box-shadow: rgba(0, 0, 0, 0.3); - --background-modifier-cover: rgba(10, 10, 10, 0.4); - --text-selection: hsla(var(--interactive-accent-hsl), 0.25); - --input-shadow: inset 0 0.5px 0.5px 0.5px rgba(255, 255, 255, 0.09), - 0 2px 4px 0 rgba(0,0,0,.15), - 0 1px 1.5px 0 rgba(0,0,0,.1), - 0 1px 2px 0 rgba(0,0,0,.2), - 0 0 0 0 transparent; - --input-shadow-hover: inset 0 0.5px 1px 0.5px rgba(255, 255, 255, 0.16), - 0 2px 3px 0 rgba(0,0,0,.3), - 0 1px 1.5px 0 rgba(0,0,0,.2), - 0 1px 2px 0 rgba(0,0,0,.4), - 0 0 0 0 transparent; - --shadow-s: 0px 1px 2px rgba(0, 0, 0, 0.121), - 0px 3.4px 6.7px rgba(0, 0, 0, 0.179), - 0px 15px 30px rgba(0, 0, 0, 0.3); - --shadow-l: 0px 1.8px 7.3px rgba(0, 0, 0, 0.071), - 0px 6.3px 24.7px rgba(0, 0, 0, 0.112), - 0px 30px 90px rgba(0, 0, 0, 0.2); - --pdf-shadow: 0 0 0 1px var(--background-modifier-border); - --pdf-thumbnail-shadow: 0 0 0 1px var(--background-modifier-border); -} -iframe { - color-scheme: normal; -} -@media print { - .theme-dark { - --highlight-mix-blend-mode: darken; - } -} -@font-face { - font-family: 'Avenir Next'; - font-weight: normal; - font-style: normal; - font-display: swap; - src: url(public/fonts/94f2f163d4b698242fef.otf); -} -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url(public/fonts/72505e6a122c6acd5471.woff2) format('woff2'); -} -@font-face { - font-family: 'Inter'; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url(public/fonts/2d5198822ab091ce4305.woff2) format('woff2'); -} -@font-face { - font-family: 'Inter'; - font-weight: 400; - font-style: normal; - font-display: swap; - src: url(public/fonts/c8ba52b05a9ef10f4758.woff2); -} -@font-face { - font-family: 'Inter'; - font-weight: 400; - font-style: italic; - font-display: swap; - src: url(public/fonts/cb10ffd7684cd9836a05.woff2); -} -@font-face { - font-family: 'Inter'; - font-weight: 600; - font-style: normal; - font-display: swap; - src: url(public/fonts/b5f0f109bc88052d4000.woff2); -} -@font-face { - font-family: 'Inter'; - font-weight: 800; - font-style: normal; - font-display: swap; - src: url(public/fonts/cbe0ae49c52c920fd563.woff2); -} -@font-face { - font-family: 'Inter'; - font-weight: 800; - font-style: italic; - font-display: swap; - src: url(public/fonts/535a6cf662596b3bd6a6.woff2); -} -@font-face { - font-family: 'Source Code Pro'; - font-weight: normal; - font-style: normal; - font-display: swap; - src: url(public/fonts/70cc7ff27245e82ad414.ttf); -} -@font-face { - font-family: 'Source Code Pro'; - font-weight: normal; - font-style: italic; - font-display: swap; - src: url(public/fonts/454577c22304619db035.ttf); -} -@font-face { - font-family: 'Source Code Pro'; - font-weight: bold; - font-style: normal; - font-display: swap; - src: url(public/fonts/52ac8f3034507f1d9e53.ttf); -} -@font-face { - font-family: 'Source Code Pro'; - font-weight: bold; - font-style: italic; - font-display: swap; - src: url(public/fonts/05b618077343fbbd92b7.ttf); -} -@font-face { - font-family: 'Flow Circular'; - font-display: swap; - src: url(public/fonts/4bb6ac751d1c5478ff3a.woff2); -} -@font-face { - font-family: '??'; - unicode-range: U+0; -} -body { - --font-default: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; - --font-monospace-default: Menlo, SFMono-Regular, Consolas, "Roboto Mono", 'Source Code Pro', monospace; - --font-interface-override: '??'; - --font-interface-theme: '??'; - --font-interface: var(--font-interface-override), var(--font-interface-theme), var(--default-font, '??'), var(--font-default); - --font-text-override: '??'; - --font-text-theme: '??'; - --font-text: var(--font-text-override), var(--font-text-theme), var(--font-interface); - --font-print-override: '??'; - --font-print: var(--font-print-override), var(--font-text-override), var(--font-text-theme), 'Arial'; - --font-monospace-override: '??'; - --font-monospace-theme: '??'; - --font-monospace: var(--font-monospace-override), var(--font-monospace-theme), var(--font-monospace-default); - --font-text-size: 16px; - --font-mermaid: var(--font-text); -} -@media print { - html, - body { - padding-top: 0 !important; - overflow: auto !important; - height: auto !important; - } - iframe, - .titlebar, - .app-container, - .progress-bar, - .popover, - .markdown-embed-link { - display: none !important; - } - body > :not(.print) { - display: none !important; - } - .print .markdown-preview-view { - -webkit-print-color-adjust: exact; - color: initial; - } - .print .markdown-preview-view mark { - color: initial; - } - .print .markdown-preview-view .metadata-container { - display: none; - } - .print .markdown-preview-view .markdown-embed-content { - max-height: none; - overflow: visible; - } - .print .markdown-preview-view .callout-content { - display: inherit !important; - } - .print .external-link { - background: none; - padding-right: 0; - } - * { - text-shadow: none !important; - } - webview { - display: none; - } - ::-webkit-scrollbar { - display: none; - } - body { - --font-text: var(--font-print) !important; - } -} -* { - box-sizing: border-box; -} -html, -body { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow: hidden; -} -body { - text-rendering: optimizeLegibility; - font-family: var(--font-interface); - line-height: var(--line-height-tight); - font-size: var(--font-ui-medium); - background-color: var(--background-primary); - color: var(--text-normal); - -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -} -body.is-translucent { - background-color: transparent; -} -@keyframes node-inserted { - from { - outline-color: #fff; - } - to { - outline-color: #000; - } -} -.node-insert-event { - animation-duration: 0.01s; - animation-name: node-inserted; -} -.is-flashing { - transition: all 0.25s ease; - background-color: var(--text-highlight-bg) !important; - color: var(--text-normal); - mix-blend-mode: var(--highlight-mix-blend-mode); - border-radius: var(--radius-s); -} -body { - user-select: none; - -webkit-user-select: none; - overflow: hidden; -} -body [contenteditable="true"], -body [contenteditable=""] { - user-select: text; - -webkit-user-select: text; -} -body.is-grabbing, -body.is-grabbing *:not(.workspace-leaf-resize-handle) { - cursor: -moz-grabbing !important; - cursor: -webkit-grabbing !important; - cursor: grabbing !important; -} -body.is-grabbing iframe:not(.is-controlled), -body.is-grabbing webview { - pointer-events: none; -} -.app-container { - display: flex; - height: 100%; - width: 100%; - position: relative; - flex-direction: column; -} -.app-container.no-transition * { - transition: none !important; -} -.horizontal-main-container { - width: 100%; - display: flex; - overflow: hidden; - flex: 1 0 0; -} -:focus { - outline: none; -} -.is-text-garbled * { - font-family: 'Flow Circular', sans-serif !important; - line-height: 1.45em !important; -} -/* CURSOR */ -.cm-s-obsidian .cm-cursor, -.cm-s-obsidian .cm-dropCursor { - border-left-color: var(--text-normal); -} -.cm-fat-cursor-mark { - background-color: rgba(20, 255, 20, 0.5); - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background: var(--interactive-accent); - color: var(--text-on-accent); -} -@-moz-keyframes blink { - 50% { - background-color: transparent; - } -} -@-webkit-keyframes blink { - 50% { - background-color: transparent; - } -} -@keyframes blink { - 50% { - background-color: transparent; - } -} -.cm-tab { - display: inline-block; - text-decoration: inherit; -} -.cm-negative { - color: var(--text-error); -} -.cm-positive { - color: var(--text-success); -} -.cm-strikethrough { - text-decoration: line-through; -} -.cm-invalidchar { - color: var(--text-error); -} -.cm-searching { - background-color: #ffa; - background-color: rgba(255, 255, 0, 0.4); -} -/* Used to force a border model for a node */ -.cm-force-border { - padding-right: 0.1px; -} -/* See issue #2901 */ -.cm-tab-wrap-hack:after { - content: ''; -} -.markdown-source-view { - font-size: var(--font-text-size); - font-family: var(--font-text); -} -.workspace-leaf-content.is-read-mode .markdown-source-view { - z-index: 0; -} -.drag-ghost { - position: fixed; - font-size: var(--font-ui-small); - color: var(--drag-ghost-text-color); - padding: var(--size-2-3) var(--size-4-2); - border-radius: var(--radius-s); - background-color: var(--drag-ghost-background); - box-shadow: 0 2px 8px var(--background-modifier-box-shadow); - z-index: var(--layer-dragged-item); - max-width: 300px; - font-weight: var(--font-medium); - pointer-events: none; -} -.drag-ghost.mod-leaf { - display: flex; - z-index: var(--layer-tooltip); -} -.drag-ghost-icon { - margin-right: var(--size-2-3); - position: relative; -} -.drag-reorder-ghost { - position: fixed; - border-radius: var(--radius-s); - background-color: var(--background-primary); - box-shadow: 0 2px 8px var(--background-modifier-box-shadow); - z-index: var(--layer-dragged-item); - pointer-events: none; -} -.drag-ghost-self { - display: flex; -} -.drag-ghost-self > .svg-icon { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - opacity: 0.7; - vertical-align: middle; - align-self: center; - margin-right: var(--size-2-2); - flex-shrink: 0; -} -.drag-ghost-self span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.drag-ghost-action { - padding: var(--size-2-1) 0 0 0; - font-size: var(--font-ui-smaller); - opacity: 0.7; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.drag-ghost-hidden { - visibility: hidden; - position: relative; -} -.drag-ghost-hidden:before { - content: ' '; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - visibility: visible; - border-radius: 5px; - background-color: hsla(var(--interactive-accent-hsl), 0.3); -} -.markdown-source-view:not(.is-live-preview) { - --p-spacing: 0rem; -} -.markdown-source-view.mod-cm6 { - height: 100%; - display: flex; - flex-direction: column; -} -.markdown-source-view.mod-cm6 ::selection { - background-color: var(--text-selection); -} -.markdown-source-view.mod-cm6 .cm-line .cm-selection, -.markdown-source-view.mod-cm6 .cm-line .cm-inline-code .cm-selection { - background-color: var(--text-selection); -} -.markdown-source-view.mod-cm6 .cm-selectionBackground, -.markdown-source-view.mod-cm6 .cm-editor > .cm-scroller > .cm-selectionLayer > .cm-selectionBackground { - background-color: var(--text-selection); -} -.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer { - max-width: var(--file-line-width); - margin-left: auto; - margin-right: auto; -} -.markdown-source-view.mod-cm6.is-readable-line-width .cm-content { - max-width: var(--file-line-width); -} -.markdown-source-view.mod-cm6.is-readable-line-width .cm-line { - max-width: var(--file-line-width); -} -.markdown-source-view.mod-cm6.is-readable-line-width .cm-line.HyperMD-table-row { - max-width: 100%; -} -.markdown-source-view.mod-cm6 .cm-editor { - flex: 1 1 0; - min-height: 0; -} -.markdown-source-view.mod-cm6 .cm-editor.cm-focused { - outline: none; -} -.markdown-source-view.mod-cm6 .cm-scroller { - font-family: var(--font-text); - line-height: var(--line-height-normal); - scroll-padding-block-end: var(--status-bar-scroll-padding); - scrollbar-gutter: stable; -} -.markdown-source-view.mod-cm6 .cm-sizer { - display: flex; - flex-direction: column; - align-items: stretch; - width: 100%; - min-height: 100%; -} -.markdown-source-view.mod-cm6 .cm-contentContainer { - flex: 1 1 auto; - display: flex; - align-items: stretch; - overflow-x: visible; -} -.markdown-source-view.mod-cm6 .cm-content { - flex-basis: unset !important; - width: 0; - caret-color: var(--text-normal); - min-height: unset; - padding: 0; -} -.is-mobile.is-ios .markdown-source-view.mod-cm6 .cm-content { - -webkit-user-modify: read-write; -} -.markdown-source-view.mod-cm6 .cm-content > * { - margin: 0 !important; - display: block; -} -.markdown-source-view.mod-cm6 .cm-content > [contenteditable=false] { - contain: paint !important; -} -.markdown-source-view.mod-cm6 .cm-gutters { - flex: 0 0 auto; - background-color: transparent; - color: var(--text-faint) !important; - border-right: none !important; - margin-inline-end: var(--file-folding-offset); - font-size: var(--font-ui-smaller); - z-index: 1; - font-variant: tabular-nums; -} -.markdown-source-view.mod-cm6 .cm-line > * { - text-indent: 0; -} -.markdown-source-view.mod-cm6 .cm-transparent { - color: transparent; -} -.markdown-source-view.mod-cm6 .cm-html-embed, -.markdown-source-view.mod-cm6 .cm-callout, -.markdown-source-view.mod-cm6 .cm-table-widget { - white-space: normal; - overflow-wrap: normal; - word-break: normal; -} -.markdown-source-view.mod-cm6 .cm-table-widget { - padding: var(--size-4-4); - margin: 0 calc(-1 * var(--size-4-4)) !important; - overflow-x: auto; - overflow-y: hidden; -} -.markdown-source-view.mod-cm6 .cm-table-widget.is-loading { - padding: 0; - margin: 0 !important; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-wrapper { - position: relative; - width: fit-content; -} -.markdown-source-view.mod-cm6 .cm-table-widget th, -.markdown-source-view.mod-cm6 .cm-table-widget td { - min-width: var(--table-column-min-width); - cursor: text; - overflow: visible; - padding: 0; - position: relative; -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected::after { - pointer-events: none; - content: ""; - display: block; - position: absolute; - top: calc(-1 * var(--table-border-width)); - right: calc(-1 * var(--table-border-width)); - bottom: calc(-1 * var(--table-border-width)); - left: calc(-1 * var(--table-border-width)); - background-color: var(--table-selection); - border: 0px solid var(--table-selection-border-color); - mix-blend-mode: var(--table-selection-blend-mode); - z-index: 1; -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.left::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.left::after { - border-left-width: var(--table-selection-border-width); - left: calc(-1 * var(--table-selection-border-width)); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.right::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.right::after { - border-right-width: var(--table-selection-border-width); - right: calc(-1 * var(--table-selection-border-width)); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.top::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.top::after { - border-top-width: var(--table-selection-border-width); - top: calc(-1 * var(--table-selection-border-width)); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.bottom::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.bottom::after { - border-bottom-width: var(--table-selection-border-width); - bottom: calc(-1 * var(--table-selection-border-width)); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.top.right::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.top.right::after { - border-top-right-radius: var(--table-selection-border-radius); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.bottom.right::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.bottom.right::after { - border-bottom-right-radius: var(--table-selection-border-radius); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.top.left::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.top.left::after { - border-top-left-radius: var(--table-selection-border-radius); -} -.markdown-source-view.mod-cm6 .cm-table-widget th.is-selected.bottom.left::after, -.markdown-source-view.mod-cm6 .cm-table-widget td.is-selected.bottom.left::after { - border-bottom-left-radius: var(--table-selection-border-radius); -} -.markdown-source-view.mod-cm6 .cm-table-widget.has-selection { - --text-selection: transparent; -} -.markdown-source-view.mod-cm6 .cm-table-widget.has-selection .cm-content { - caret-color: transparent; -} -.markdown-source-view.mod-cm6 .cm-table-widget.has-selection .cm-selectionLayer, -.markdown-source-view.mod-cm6 .cm-table-widget.has-selection .cm-cursorLayer { - display: none; -} -.markdown-source-view.mod-cm6 .cm-table-widget.is-selected { - --text-selection: transparent; -} -.markdown-source-view.mod-cm6 .cm-table-widget.is-selected table { - position: relative; -} -.markdown-source-view.mod-cm6 .cm-table-widget.is-selected table::after { - pointer-events: none; - content: ""; - display: block; - position: absolute; - top: calc(-1 * var(--table-border-width)); - right: calc(-1 * var(--table-border-width)); - bottom: calc(-1 * var(--table-border-width)); - left: calc(-1 * var(--table-border-width)); - background-color: var(--table-selection); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-cell-wrapper { - height: 100%; - padding: var(--size-2-2) var(--size-4-2); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - position: absolute; - display: flex; - align-items: center; - justify-content: center; - cursor: grab; - background-color: var(--table-drag-handle-background); - color: var(--table-drag-handle-color); - opacity: 0; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle:active, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle:active, -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle:hover, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle:hover { - opacity: 1; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle:active, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle:active { - cursor: grabbing; - background-color: var(--table-drag-handle-background-active); - color: var(--table-drag-handle-color-active); - box-shadow: 0 0 0 var(--table-selection-border-width) var(--table-selection-border-color); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle *, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle * { - pointer-events: none; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle { - top: 0; - left: -1px; - width: calc(var(--size-4-4) - var(--table-selection-border-width)); - height: 100%; - transform: translateX(-100%); - border-top-left-radius: var(--radius-s); - border-bottom-left-radius: var(--radius-s); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle { - top: -1px; - left: 0; - width: 100%; - height: calc(var(--size-4-4) - var(--table-selection-border-width)); - transform: translateY(-100%); - border-top-left-radius: var(--radius-s); - border-top-right-radius: var(--radius-s); -} -.markdown-source-view.mod-cm6 .cm-table-widget.is-dragging .table-row-drag-handle:not(:active), -.markdown-source-view.mod-cm6 .cm-table-widget.is-dragging .table-col-drag-handle:not(:active) { - display: none; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-drag-target { - position: absolute; - border-radius: 2px; - background-color: var(--interactive-accent); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-drag-target.mod-row { - height: 3px; - transform: translateY(-2px); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-drag-target.mod-col { - width: 3px; - transform: translateX(-2px); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-btn, -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-btn { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - position: absolute; - display: flex; - align-items: center; - justify-content: center; - height: var(--size-4-4); - width: var(--size-4-4); - background-color: var(--table-add-button-background); - border: var(--table-add-button-border-width) solid var(--table-add-button-border-color); - color: var(--text-faint); - opacity: 0; - transition: opacity 0s 0.1s; -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .cm-table-widget .table-row-btn:hover, - .markdown-source-view.mod-cm6 .cm-table-widget .table-col-btn:hover { - opacity: 1; - } -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-btn { - top: 100%; - left: 0; - width: 100%; - border-top: none; - cursor: s-resize; -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-btn { - top: 0; - left: 100%; - height: 100%; - border-left: none; - cursor: e-resize; -} -.markdown-source-view.mod-cm6 .cm-table-widget .cm-editor { - flex-basis: content; -} -.markdown-source-view.mod-cm6 .cm-table-widget .cm-content, -.markdown-source-view.mod-cm6 .cm-table-widget .cm-line { - max-width: none; -} -.markdown-source-view.mod-cm6 .cm-table-widget .cm-content { - width: auto; -} -.markdown-source-view.mod-cm6 .cm-table-widget .cm-content.cm-lineWrapping { - overflow-wrap: normal; - white-space: var(--table-white-space); - word-break: normal; -} -.markdown-source-view.mod-cm6 .cm-table-widget .cm-scroller { - overflow-y: hidden; - scrollbar-gutter: auto; - line-height: var(--table-line-height); -} -.markdown-source-view.mod-cm6 .cm-line { - position: relative; - padding: 0; -} -.markdown-source-view.mod-cm6 .edit-block-button { - padding: var(--size-2-2) var(--size-2-3); - position: absolute; - top: var(--size-2-2); - right: var(--size-2-2); - display: flex; - opacity: 0; - color: var(--text-muted); - border-radius: var(--radius-s); - cursor: var(--cursor); -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .edit-block-button:hover { - background-color: var(--background-modifier-hover); - } -} -.markdown-source-view.mod-cm6 .cm-panels { - background-color: inherit; - color: inherit; -} -.markdown-source-view.mod-cm6 img.cm-widgetBuffer { - display: inline !important; - width: 0 !important; - border: 0 !important; - margin: 0 !important; - padding: 0 !important; -} -.view-content > .markdown-source-view.mod-cm6 > .cm-editor > .cm-scroller { - padding: var(--file-margins); -} -.empty-state { - position: absolute; - height: 100%; - width: 100%; - top: 0; - left: 0; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; -} -.empty-state-container { - max-width: 480px; - max-height: 280px; - margin: 20px; - text-align: center; -} -.empty-state-title { - margin: 20px 0; - font-weight: var(--h2-weight); - font-size: var(--h2-size); - line-height: var(--line-height-tight); - position: relative; -} -.empty-state-action-list { - font-size: var(--font-text-size); - line-height: var(--line-height-tight); - color: var(--text-muted); - margin-top: 20px; -} -.empty-state-action { - cursor: var(--cursor); - line-height: 36px; - color: var(--text-accent); -} -@media (hover: hover) { - .empty-state-action:hover { - color: var(--text-accent-hover); - } -} -/* Can be removed since it is redundant with Close link */ -.empty-state-close-button { - display: none; -} -/* - -OS-dependent rules to make space for traffic lights buttons, -window buttons and sidebar toggles. - ---- - -Scenarios to account for: - -Window frame styles -- Hidden -- Custom -- Native -- Full screen - -Sidebar states -- Left sidebar open -- Left sidebar closed -- Right sidebar open -- Right sidebar closed -- Pop-out (no sidebars) - -*/ -body { - --zoom-factor: 1; - --titlebar-height: 30px; -} -.mod-macos { - --frame-left-space: calc(80px - var(--ribbon-width)); - --frame-right-space: 0px; -} -.mod-macos.is-popout-window { - --frame-left-space: 80px; -} -.mod-windows, -.mod-linux { - --frame-left-space: 0px; - --frame-right-space: 126px; -} -body.is-frameless:not(.is-hidden-frameless) { - padding-top: calc(var(--titlebar-height) / var(--zoom-factor)); -} -body.is-frameless:not(.is-hidden-frameless) .titlebar { - height: var(--titlebar-height); - zoom: calc(1 / var(--zoom-factor)); -} -body.is-frameless:not(.is-hidden-frameless):not(.is-maximized) .titlebar { - padding-top: 2px; -} -body.is-frameless.is-hidden-frameless .titlebar { - height: calc(var(--header-height) - 1px); -} -body.is-frameless.is-hidden-frameless.starter .titlebar { - height: var(--titlebar-height); -} -.is-fullscreen .titlebar { - display: none; -} -.sidebar-toggle-button, -.workspace-tabs.mod-top { - --tab-container-background: var(--titlebar-background); -} -body.is-focused .titlebar, -body.is-focused .workspace-ribbon.mod-left { - --titlebar-background: var(--titlebar-background-focused); -} -body.is-focused .sidebar-toggle-button, -body.is-focused .workspace-tabs.mod-top { - --tab-container-background: var(--titlebar-background-focused); -} -.is-hidden-frameless { - --divider-vertical-height: 100%; -} -.workspace-ribbon .sidebar-toggle-button { - position: absolute; - top: 0; - left: 0; - width: var(--ribbon-width); - justify-content: center; -} -.titlebar-button.mod-logo { - width: var(--ribbon-width); - justify-content: center; -} -.is-hidden-frameless:not(.starter) .titlebar { - -webkit-app-region: no-drag; -} -.is-hidden-frameless .titlebar-button.mod-logo { - display: none; -} -.is-hidden-frameless:not(.is-fullscreen) .workspace-tabs.mod-top-left-space .workspace-tab-header-container { - padding-left: var(--frame-left-space); -} -.is-hidden-frameless:not(.is-fullscreen) .workspace-tabs.mod-top-right-space .workspace-tab-header-container { - padding-right: var(--frame-right-space); -} -.is-hidden-frameless:not(.is-fullscreen):not(.mod-macos) .workspace-tabs.mod-top-left-space .workspace-tab-header-container:before { - -webkit-app-region: no-drag; - content: ''; - height: 100%; - left: 0; - top: 0; - position: absolute; - width: var(--frame-left-space); -} -.is-hidden-frameless:not(.is-fullscreen):not(.mod-macos) .workspace-tabs.mod-top-right-space .workspace-tab-header-container:after { - -webkit-app-region: no-drag; - content: ''; - height: 100%; - right: 0; - top: 0; - position: absolute; - width: var(--frame-right-space); -} -.is-hidden-frameless:not(.is-fullscreen) .titlebar-button-container.mod-right { - background-color: var(--titlebar-background); -} -.is-hidden-frameless:not(.is-fullscreen).is-focused .titlebar-button-container.mod-right { - background-color: var(--titlebar-background-focused); -} -.titlebar-button.mod-logo:hover .logo-wireframe, -.titlebar-button.mod-logo:not(:hover) .logo-full { - display: none; -} -body.is-frameless > .app-container ~ * { - -webkit-app-region: no-drag; -} -body.is-frameless .modal-container, -body.is-frameless .suggestion-bg { - -webkit-app-region: initial; -} -body.is-frameless .modal { - -webkit-app-region: no-drag; -} -.loader-spinner { - width: var(--size-4-8); - height: var(--size-4-8); - margin: 100px auto; - color: var(--interactive-accent); -} -.loader-spinner svg { - animation-name: spin; - animation-duration: 5000ms; - animation-iteration-count: infinite; - animation-timing-function: linear; - --icon-size: var(--icon-size-lx); -} -@keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} -.loader-cube { - width: 40px; - height: 40px; - margin: 100px auto; -} -.loader-cube .sk-cube { - width: 33%; - height: 33%; - background-color: var(--interactive-accent); - float: left; - -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; - animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; -} -.loader-cube .sk-cube1 { - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} -.loader-cube .sk-cube2 { - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} -.loader-cube .sk-cube3 { - -webkit-animation-delay: 0.4s; - animation-delay: 0.4s; -} -.loader-cube .sk-cube4 { - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; -} -.loader-cube .sk-cube5 { - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} -.loader-cube .sk-cube6 { - -webkit-animation-delay: 0.3s; - animation-delay: 0.3s; -} -.loader-cube .sk-cube7 { - -webkit-animation-delay: 0s; - animation-delay: 0s; -} -.loader-cube .sk-cube8 { - -webkit-animation-delay: 0.1s; - animation-delay: 0.1s; -} -.loader-cube .sk-cube9 { - -webkit-animation-delay: 0.2s; - animation-delay: 0.2s; -} -@-webkit-keyframes sk-cubeGridScaleDelay { - 0%, - 70%, - 100% { - -webkit-transform: scale3D(1, 1, 1); - transform: scale3D(1, 1, 1); - } - 35% { - -webkit-transform: scale3D(0, 0, 1); - transform: scale3D(0, 0, 1); - } -} -@keyframes sk-cubeGridScaleDelay { - 0%, - 70%, - 100% { - -webkit-transform: scale3D(1, 1, 1); - transform: scale3D(1, 1, 1); - } - 35% { - -webkit-transform: scale3D(0, 0, 1); - transform: scale3D(0, 0, 1); - } -} -.is-loading { - position: relative; -} -.is-loading:before { - content: ' '; - position: absolute; - top: 0; - width: 0; - height: 3px; - background-color: var(--interactive-accent); - animation: 1000ms ease-in-out 300ms infinite progress-bar; -} -.pane-empty { - color: var(--text-faint); - font-size: var(--font-ui-small); - margin: var(--size-4-2) auto; - text-align: center; -} -.view-header { - height: var(--header-height); - display: none; - border-bottom: var(--file-header-border); - background-color: var(--background-primary); - z-index: 1; - position: relative; - gap: var(--size-4-2); - padding: 0 var(--size-4-3); -} -body.is-phone .view-header, -.show-view-header .view-header { - display: flex; -} -.is-focused .workspace-leaf.mod-active .view-header { - background-color: var(--background-primary); -} -.workspace-split.mod-left-split .view-header, -.workspace-split.mod-right-split .view-header, -.workspace-fake-target-overlay.is-in-sidebar .view-header { - display: none; -} -.view-header.is-highlighted:after { - content: ' '; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - background-color: hsla(var(--interactive-accent-hsl), 0.5); -} -.view-header .view-header-icon { - display: none; - padding: var(--size-2-2); - margin-right: var(--size-2-3); - color: var(--text-muted); - align-self: center; - cursor: grab; -} -.view-header .view-header-icon:active { - cursor: grabbing; -} -.view-header-title { - font-size: var(--file-header-font-size); - font-weight: var(--file-header-font-weight); - flex: 1 1 0; - max-width: max-content; - overflow: auto; - padding: 0 var(--size-4-1); - white-space: pre; - word-wrap: normal; - color: var(--text-muted); - scroll-padding-inline-end: 20px; -} -.is-focused .workspace-leaf.mod-active .view-header-title { - color: var(--text-normal); -} -.view-header-title::-webkit-scrollbar { - display: none; -} -.view-header-title-container { - flex-grow: 1; - overflow: hidden; - position: relative; - justify-content: var(--file-header-justify); - display: flex; - align-items: center; - gap: 0; - white-space: nowrap; -} -.view-header-title-parent { - font-size: var(--file-header-font-size); - color: var(--text-muted); - min-width: 0; - display: flex; - gap: 0; - overflow: hidden; -} -.view-header-title-parent .view-header-breadcrumb { - padding: 2px 4px; - border-radius: var(--radius-s); -} -@media (hover: hover) { - .view-header-title-parent .view-header-breadcrumb:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -.view-header-title-parent .view-header-breadcrumb-separator { - padding: 2px 1px; - color: var(--text-faint); -} -.view-content { - width: 100%; - height: calc(100% - var(--header-height)); -} -.workspace-split.mod-root .view-content { - background-color: var(--background-primary); -} -.workspace-split.mod-root .workspace-fake-target-overlay .view-content { - background-color: transparent; -} -.workspace-split.mod-left-split .view-content, -.workspace-split.mod-right-split .view-content { - height: 100%; - overflow: auto; -} -.inline-title { - font-weight: var(--inline-title-weight); - font-size: var(--inline-title-size); - line-height: var(--inline-title-line-height); - font-style: var(--inline-title-style); - font-variant: var(--inline-title-variant); - font-family: var(--inline-title-font); - margin-bottom: var(--inline-title-margin-bottom); - letter-spacing: -0.015em; - color: var(--inline-title-color); -} -.hover-popover .inline-title, -.inline-embed .inline-title { - display: none; -} -body:not(.show-inline-title) .inline-title:not([data-level]) { - display: none; -} -::selection { - background-color: var(--text-selection); -} -.markdown-reading-view { - display: flex; - flex-direction: column; -} -.markdown-preview-view { - font-size: var(--font-text-size); - font-family: var(--font-text); - line-height: var(--line-height-normal); - width: 100%; - height: 100%; - padding: var(--file-margins); - position: relative; - overflow-y: auto; - overflow-wrap: break-word; - color: var(--text-normal); - user-select: text; - -webkit-user-select: text; - scrollbar-gutter: stable; -} -.workspace-leaf-content.is-read-mode .markdown-preview-view { - width: 100%; - left: 0; - background-color: var(--background-primary); -} -.markdown-preview-view.is-readable-line-width .markdown-preview-sizer { - max-width: var(--file-line-width); - margin-left: auto; - margin-right: auto; -} -.markdown-rendered.rtl { - direction: rtl; -} -/* Ribbon */ -/* Add background to top left corner space above ribbon */ -.workspace-ribbon.mod-left { - margin-top: var(--header-height); - /* Add the tab background in the top left corner */ -} -.workspace-ribbon.mod-left:before { - -webkit-app-region: drag; - position: absolute; - left: 0; - top: 0; - background-color: var(--titlebar-background); - content: " "; - border-bottom: var(--tab-outline-width) solid var(--tab-outline-color); - height: var(--header-height); - width: var(--ribbon-width); - box-sizing: border-box; -} -.workspace-ribbon { - width: var(--ribbon-width); - flex: 0 0 var(--ribbon-width); - display: flex; - flex-direction: column; - overflow: hidden; - background-color: var(--ribbon-background); - z-index: var(--layer-sidedock); - color: var(--text-muted); - padding: var(--ribbon-padding); - gap: var(--size-4-1); - border-right: var(--divider-width) solid var(--divider-color); -} -.workspace-ribbon.mod-left.is-collapsed { - transition: background-color 250ms 95ms ease-in-out; - background-color: var(--ribbon-background-collapsed); - border-right-color: var(--divider-color); -} -.workspace-ribbon.mod-right { - display: none; -} -.workspace-ribbon.is-hidden { - display: none; -} -.workspace-ribbon.is-collapsed { - background-color: var(--background-secondary); -} -.side-dock-settings, -.side-dock-actions { - flex-direction: column; -} -.side-dock-settings .side-dock-ribbon-action, -.side-dock-actions .side-dock-ribbon-action { - margin: 0 auto; -} -.side-dock-settings { - margin-top: auto; -} -.release-notes-view { - padding: var(--file-margins); -} -.release-notes-view .markdown-preview-view { - overflow: visible; -} -.release-notes-view .is-readable-line-width { - max-width: var(--file-line-width); - margin-left: auto; - margin-right: auto; -} -.setting { - display: flex; - align-items: center; -} -.setting-text { - flex-grow: 1; -} -.setting-title { - font-size: var(--font-ui-large); - line-height: var(--line-height-normal); -} -.setting-explanation { - color: var(--text-muted); -} -.modal.mod-new-editor { - max-width: 600px; -} -.modal.mod-trust-folder { - max-width: 700px; -} -.modal.mod-settings .vertical-tab-header { - flex: 0 0 25%; - min-width: 180px; - max-width: 250px; - overflow: auto; - border-right: 1px solid var(--divider-color); -} -.modal.mod-settings .modal-content { - margin-top: 0; - overflow: hidden; -} -.modal.mod-plugin-options .modal-content { - margin: var(--size-4-6) 0; -} -.setting-item { - display: flex; - align-items: center; - padding: 0.75em 0; - border-top: 1px solid var(--background-modifier-border); - /* Add extra space for setting heading if it starts a new section */ -} -.setting-item + div > .setting-item-heading, -.setting-item + .setting-item-heading { - margin-top: 0.75em; -} -.setting-item:first-child { - padding-top: 0; - border-top: none; -} -.setting-item > *:first-child { - margin-right: var(--size-4-4); -} -.setting-item > *:last-child { - margin-right: 0; -} -.setting-item.mod-cta { - justify-content: center; -} -.setting-item-heading { - font-weight: var(--font-semibold); - border-top: none; -} -.setting-item-heading .setting-item-info { - flex-grow: 0; - margin-right: 0; -} -.setting-item-heading .setting-item-description { - font-weight: var(--font-normal); -} -.setting-item-info { - flex: 1 1 auto; -} -.setting-item-description { - color: var(--text-muted); - font-size: var(--font-ui-smaller); - padding-top: var(--size-4-1); - line-height: var(--line-height-tight); -} -.setting-item-description:empty { - display: none; -} -.setting-item-description code { - font-family: var(--font-monospace); - font-size: var(--font-smaller); - border-radius: var(--radius-s); - padding: 0 3px 2px 3px; - position: relative; - bottom: 1px; -} -.setting-item-description ul { - margin: var(--size-4-1) 0; - padding-left: var(--size-4-6); -} -.setting-item-name { - color: var(--text-normal); - font-size: var(--font-ui-medium); - line-height: var(--line-height-tight); -} -.setting-item-control { - flex: 1 1 auto; - text-align: right; - display: flex; - justify-content: flex-end; - align-items: center; - gap: var(--size-4-2); -} -.setting-item-control.mod-vertical { - flex-direction: column; -} -.setting-item-control.mod-vertical > *:not(:last-child) { - margin-bottom: 10px; - margin-right: 0; -} -.setting-item-control.mod-hotkey { - padding-top: 0; - cursor: default; -} -.setting-item-control.mod-hotkey input { - font-family: var(--font-monospace); - font-size: var(--font-smaller); -} -.setting-item-control.mod-hotkey input:focus { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.setting-item-control select { - width: inherit; - max-width: 400px; -} -.setting-command-hotkeys { - display: flex; - flex-wrap: wrap; - gap: var(--size-4-1); -} -.setting-hotkey { - font-family: -apple-system, BlinkMacSystemFont, var(--font-monospace); - font-size: var(--font-ui-small); - background-color: var(--background-modifier-hover); - border-radius: var(--radius-s); - padding: 2px 4px 2px 8px; - align-self: flex-end; - white-space: nowrap; - display: flex; - align-items: center; - gap: var(--size-4-1); -} -.setting-hotkey.has-conflict { - background-color: var(--background-modifier-error); - color: var(--text-on-accent); -} -@media (hover: hover) { - .setting-hotkey.has-conflict:hover { - background-color: var(--background-modifier-error-hover); - } -} -.setting-hotkey.mod-active { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.setting-hotkey.mod-empty { - padding-right: var(--size-4-2); -} -.setting-hotkey-icon { - display: flex; - align-items: center; - cursor: var(--cursor); - border-radius: 50%; - line-height: 1; - text-align: center; -} -.setting-hotkey-icon .svg-icon { - width: 16px; - height: 16px; - stroke-width: 2px; - opacity: 0.6; -} -@media (hover: hover) { - .setting-hotkey-icon:hover .svg-icon { - opacity: 1; - } -} -@media (hover: hover) { - .setting-delete-hotkey:hover { - background-color: var(--background-modifier-error); - color: var(--text-on-accent); - } -} -.setting-add-hotkey-button, -.setting-restore-hotkey-button { - padding: var(--size-2-2); - border-radius: var(--radius-s); - color: var(--text-faint); - cursor: var(--cursor); - height: calc(var(--icon-l) + var(--size-2-2) + var(--size-2-2)); -} -.setting-add-hotkey-button.mod-active, -.setting-restore-hotkey-button.mod-active { - color: var(--text-accent); -} -@media (hover: hover) { - .setting-add-hotkey-button:hover, - .setting-restore-hotkey-button:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -.setting-editor-extra-setting-button { - line-height: 0; -} -.setting-message { - font-size: var(--font-ui-small); -} -.setting-font-list { - margin: 1.5em 0 0.75em 0; -} -.hotkey-settings-container { - display: flex; - flex-direction: column; -} -.hotkey-settings-container .setting-item-description { - padding-top: 0; -} -.hotkey-settings-container hr { - margin: 20px 0 10px 0; -} -.hotkey-list-container { - overflow: auto; -} -.hotkey-header-container { - justify-content: space-between; - padding-bottom: var(--size-4-8); - display: flex; - flex-wrap: wrap; -} -.hotkey-filter { - align-items: center; - background-color: var(--background-secondary); - border-radius: var(--radius-s); - display: flex; - font-size: var(--font-ui-small); - padding: var(--size-4-1) var(--size-4-1) var(--size-4-1) var(--size-4-2); - gap: var(--size-2-1); -} -.setting-filter-container { - display: flex; - gap: var(--size-4-2); - margin-bottom: var(--size-4-8); -} -.input-right-decorator { - position: absolute; - transform: translateY(-50%); - top: 50%; - right: var(--size-4-1); -} -.search-input-container input:not(:placeholder-shown) ~ .input-right-decorator { - right: calc(var(--size-4-1) + 28px); -} -.search-input-container.mod-hotkey .clickable-icon { - padding: var(--size-2-1); -} -.hotkey-filter-remove-button { - cursor: var(--cursor); - color: var(--text-muted); - padding: var(--size-2-1); - border-radius: var(--radius-s); - display: flex; - align-items: center; - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -@media (hover: hover) { - .hotkey-filter-remove-button:hover { - background-color: var(--background-modifier-hover); - } -} -.modal.mod-image-lightbox { - max-width: 90vw; - max-height: 90vh; - padding: 0; -} -.modal.mod-image-lightbox .modal-content { - padding: var(--size-4-12) var(--size-4-3) var(--size-4-2) var(--size-4-3); - text-align: center; -} -.login-field { - max-width: 500px; - margin: 1em auto; -} -.spellchecker-dictionary-container { - max-height: 60vh; - overflow: auto; -} -.spellchecker-dictionary-item { - display: flex; - margin-bottom: 10px; -} -.spellchecker-dictionary-word { - flex-grow: 1; -} -.spellchecker-dictionary-remove-button { - cursor: var(--cursor); - color: var(--text-muted); - margin-right: 10px; -} -@media (hover: hover) { - .spellchecker-dictionary-remove-button:hover { - color: var(--text-normal); - } -} -.modal.mod-new-editor .card, -.modal.mod-restricted-mode .card { - flex: 1 0 0; -} -.input-right-decorator { - position: absolute; - transform: translateY(-50%); - top: 50%; - right: var(--size-4-1); -} -.input-right-decorator.clickable-icon { - padding: var(--size-2-1) var(--size-2-2); -} -.input-right-decorator.clickable-icon.is-active { - background-color: transparent; -} -.search-input-container input:not(:placeholder-shown) ~ .input-right-decorator { - right: calc(var(--size-4-1) + 28px); -} -.search-input-container input:placeholder-shown ~ .search-input-clear-button { - display: none; -} -.setting-progress-bar { - width: 100%; - height: var(--size-4-2); - border-radius: var(--radius-s); - background-color: var(--background-secondary); - box-shadow: inset 0 0 0 1px var(--background-modifier-border); -} -.setting-progress-bar-inner { - width: 0; - height: 100%; - border-radius: var(--radius-s); - background-color: var(--interactive-accent); -} -.mod-community-modal .modal-sidebar .setting-item { - max-width: var(--modal-community-sidebar-width); - padding: 0 var(--size-4-3) var(--size-4-1); - border: none; - gap: var(--size-4-2); -} -.mod-community-modal .modal-sidebar .setting-item:first-child { - max-width: 500px; - gap: 0; - margin-bottom: var(--size-4-2); -} -.mod-community-modal .modal-sidebar .setting-item-name { - font-size: var(--font-ui-small); - padding-left: var(--size-4-1); -} -.mod-community-modal .modal-sidebar .setting-item-info { - margin: 0; - flex-grow: 0; -} -.mod-community-modal .modal-sidebar .search-input-container { - width: 100%; -} -.mod-community-modal .modal-sidebar button.clickable-icon { - padding: 6px 10px; - display: flex; - align-items: center; - color: var(--text-normal); -} -.community-modal-details-empty-state { - padding: 0; - text-align: center; -} -.community-modal-search-summary { - font-size: var(--font-ui-small); - padding: var(--size-4-1) var(--size-4-3) var(--size-4-3) var(--size-4-4); -} -.community-modal-search-results-wrapper { - flex: 1 0 auto; - overflow: auto; - border-top: var(--border-width) solid var(--divider-color); - scroll-padding: var(--size-4-3); - /* This helps with performance of the app */ - contain: strict; -} -.community-modal-search-results { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); - gap: var(--size-4-3); - padding: var(--size-4-3); -} -.community-item { - position: relative; - background-color: var(--background-primary); - padding: var(--size-4-3); - cursor: var(--cursor); - border-radius: var(--radius-m); - border: 1px solid var(--background-modifier-border); - display: flex; - flex-direction: column; - gap: var(--size-2-1); -} -.community-item:last-child { - margin-bottom: 0; -} -.community-item .suggestion-highlight { - background-color: var(--text-highlight-bg); -} -.community-item.is-selected, -.community-item.is-selected:hover { - border-color: var(--interactive-accent); - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.community-item.is-selected .community-item-author, -.community-item.is-selected:hover .community-item-author, -.community-item.is-selected .community-item-repo, -.community-item.is-selected:hover .community-item-repo, -.community-item.is-selected .community-item-downloads, -.community-item.is-selected:hover .community-item-downloads, -.community-item.is-selected .community-item-updated, -.community-item.is-selected:hover .community-item-updated { - color: var(--text-on-accent); - opacity: 0.8; -} -.community-item.is-selected .flair, -.community-item.is-selected:hover .flair { - color: var(--text-on-accent); - background-color: transparent; -} -@media (hover: hover) { - .community-item:hover { - border-color: var(--background-modifier-border-hover); - } -} -.is-mobile .community-item { - max-width: 500px; -} -.community-item .flair { - margin-left: var(--size-4-1); - background-color: var(--tag-background); - color: var(--tag-color); - vertical-align: middle; - top: -1px; -} -.community-item-name { - font-size: var(--font-ui-medium); - line-height: var(--line-height-tight); - font-weight: var(--font-medium); -} -.community-item-author { - font-size: var(--font-ui-smaller); - line-height: var(--line-height-tight); - color: var(--text-muted); -} -.community-item-downloads { - font-size: var(--font-ui-smaller); - color: var(--text-muted); - --icon-color: var(--text-faint); - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -.community-item-downloads svg { - vertical-align: text-bottom; -} -.community-item-updated { - font-size: var(--font-ui-smaller); - color: var(--text-muted); - margin-bottom: var(--size-4-2); -} -.community-item-downloads-text { - margin-left: var(--size-2-2); -} -.community-item-desc { - font-size: var(--font-ui-small); - line-height: var(--line-height-tight); - margin-top: 4px; -} -.community-item-badge.mod-update { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - color: var(--interactive-accent); - position: absolute; - top: var(--size-4-3); - right: var(--size-4-3); -} -.community-item-screenshot { - max-width: 100%; - margin-top: auto; - object-fit: cover; - border-radius: var(--radius-s); - aspect-ratio: 16/9; - image-rendering: -webkit-optimize-contrast; - margin-top: var(--size-4-1); -} -.community-item-screenshot.mod-unavailable { - text-align: center; - color: var(--text-muted); -} -.community-item-screenshot .placeholder-icon { - display: flex; - align-items: center; - justify-content: center; - height: 100%; -} -.community-item-screenshot .placeholder-icon .svg-icon { - color: var(--text-faint); - width: var(--size-4-8); - height: var(--size-4-8); -} -.community-modal-info-name { - font-size: var(--h2-size); - font-weight: var(--font-semibold); - line-height: var(--line-height-tight); - margin-bottom: var(--size-4-6); -} -.community-modal-info-author, -.community-modal-info-repo, -.community-modal-info-version { - font-size: var(--font-ui-small); - line-height: var(--line-height-tight); - color: var(--text-muted); -} -.community-modal-info-desc { - font-size: var(--font-ui-small); - line-height: var(--line-height-tight); - margin-top: 4px; -} -.community-modal-details { - flex: 1 1 calc(var(--modal-max-width) - var(--modal-community-sidebar-width)); - overflow: auto; - display: flex; - flex-direction: column; - border-left: 1px solid var(--divider-color); -} -.community-modal-info { - flex: 1 1 0; - overflow-y: auto; - padding: var(--size-4-8) var(--size-4-16); - scroll-padding: var(--size-4-4); -} -.community-readme { - overflow-y: visible; - height: auto; - padding: var(--size-4-4) 0; -} -.community-readme video, -.community-readme img { - max-width: 100%; -} -.community-modal-info-desc { - font-size: var(--font-ui-medium); - line-height: var(--line-height-tight); - margin-top: var(--size-4-2); -} -.community-modal-button-container { - display: flex; - flex-wrap: wrap; - gap: var(--size-4-2); - margin: 1.5em 0; -} -.community-modal-info-downloads { - color: var(--text-muted); - margin-top: var(--size-4-1); - display: inline-block; - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -.community-modal-info-downloads-text { - margin-left: var(--size-4-1); - position: relative; - top: -1px; -} -.community-modal-readme { - font-size: var(--font-text-size); - font-family: var(--font-text); - line-height: var(--line-height-normal); - overflow-wrap: break-word; - color: var(--text-normal); - user-select: text; - -webkit-user-select: text; -} -.installed-plugins-container { - padding-top: var(--size-4-4); - border-top: 1px solid var(--background-modifier-border); -} -.community-modal-grid-button-container { - position: absolute; - top: var(--size-4-4); - right: var(--size-4-12); - display: flex; - gap: var(--size-4-2); -} -.status-bar { - position: var(--status-bar-position); - width: auto; - bottom: 0; - right: 0; - border-radius: var(--status-bar-radius); - border-style: solid; - border-width: var(--status-bar-border-width); - border-color: var(--status-bar-border-color); - background-color: var(--status-bar-background); - color: var(--status-bar-text-color); - display: flex; - font-size: var(--status-bar-font-size); - justify-content: flex-end; - min-height: 18px; - padding: var(--size-4-1); - gap: var(--size-2-1); - user-select: none; - z-index: var(--layer-status-bar); - font-variant-numeric: tabular-nums; -} -.status-bar-item { - border-radius: var(--radius-s); - display: inline-flex; - align-items: center; - padding: 3px var(--size-2-2); - line-height: 1; -} -.status-bar-item.mod-clickable { - cursor: var(--cursor); -} -@media (hover: hover) { - .status-bar-item.mod-clickable:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -.status-bar-item.plugin-editor-status, -.status-bar-item.plugin-sync { - padding: 0 var(--size-2-2); -} -@media (hover: hover) { - .status-bar-item.plugin-editor-status:hover, - .status-bar-item.plugin-sync:hover { - background-color: var(--background-modifier-hover); - } -} -.status-bar-item:empty { - display: none; -} -.status-bar-item-icon { - vertical-align: middle; - display: flex; - align-items: center; -} -.status-bar-item-segment { - margin-right: var(--size-4-2); -} -.status-bar-item-segment:last-child { - margin-right: 0; -} -.is-screenshotting .status-bar { - display: none; -} -.titlebar { - -webkit-app-region: drag; - position: fixed; - top: 0; - left: 0; - right: 0; - display: flex; - background-color: var(--titlebar-background); - border-bottom: var(--titlebar-border-width) solid var(--titlebar-border-color); -} -.titlebar-inner { - color: var(--titlebar-text-color); - font-weight: var(--titlebar-text-weight); - width: 100%; - display: flex; -} -.is-focused .titlebar-inner { - color: var(--titlebar-text-color-focused); -} -.titlebar-text { - opacity: 0.85; - position: absolute; - width: 100%; - height: 100%; - top: 0; - left: 0; - flex-grow: 1; - font-size: var(--font-ui-small); - text-align: center; - display: flex; - justify-content: center; - align-items: center; - padding: 0 125px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.titlebar-button-container { - display: flex; - position: absolute; - top: 0; -} -.mod-macos .titlebar-button-container { - top: 8px; -} -.titlebar-button-container.mod-left { - left: 0; -} -.mod-macos .titlebar-button-container.mod-left { - left: calc(80px / var(--zoom-factor)); -} -.titlebar-button-container .mod-back, -.titlebar-button-container .mod-forward { - color: var(--icon-color); -} -.titlebar-button-container .mod-back .svg-icon, -.titlebar-button-container .mod-forward .svg-icon { - width: 14px; - height: 14px; - stroke-width: 2.25px; -} -@media (hover: hover) { - .titlebar-button-container .mod-back:hover, - .titlebar-button-container .mod-forward:hover { - color: var(--icon-color-hover); - } -} -.titlebar-button-container.mod-right { - right: 0; -} -.titlebar-button { - -webkit-app-region: no-drag; - padding: var(--size-2-2) var(--size-2-3); - cursor: var(--cursor); - display: inline-flex; - align-items: center; -} -@media (hover: hover) { - .titlebar-button:hover { - opacity: 1; - background-color: var(--background-modifier-hover); - } - .titlebar-button.mod-close:hover { - background-color: var(--background-modifier-error); - } -} -.mod-macos .titlebar-button { - border-radius: var(--radius-s); -} -/* Hidden titlebar interferes with mouse */ -body.is-frameless.is-hidden-frameless { - padding-top: 0 !important; -} -.is-hidden-frameless.mod-macos .titlebar { - display: none; -} -.is-hidden-frameless.mod-windows .titlebar, -.is-hidden-frameless.mod-linux .titlebar { - background: transparent; - border: none; - z-index: var(--layer-popover); - pointer-events: none; -} -.is-hidden-frameless.mod-windows .titlebar-button.mod-back, -.is-hidden-frameless.mod-linux .titlebar-button.mod-back, -.is-hidden-frameless.mod-windows .titlebar-button.mod-forward, -.is-hidden-frameless.mod-linux .titlebar-button.mod-forward, -.is-hidden-frameless.mod-windows .titlebar-text, -.is-hidden-frameless.mod-linux .titlebar-text { - display: none; -} -.is-hidden-frameless.mod-windows .titlebar-button-container, -.is-hidden-frameless.mod-linux .titlebar-button-container { - pointer-events: auto; -} -.mod-linux .titlebar-button-container, -.mod-windows .titlebar-button-container { - height: 100%; -} -.mod-linux .titlebar-button, -.mod-windows .titlebar-button { - padding: 0 16px; - display: flex; - align-items: center; -} -.mod-linux .titlebar-button.mod-logo, -.mod-windows .titlebar-button.mod-logo { - padding: 4px 8px; -} -@media (hover: hover) { - .mod-linux .titlebar-button.mod-close:hover, - .mod-windows .titlebar-button.mod-close:hover { - background-color: var(--background-modifier-error); - } - .mod-linux .titlebar-button.mod-close:hover .svg-icon, - .mod-windows .titlebar-button.mod-close:hover .svg-icon { - fill: white; - stroke: white; - } -} -@media screen and (max-width: 300px) { - .titlebar-text { - display: none; - } -} -.is-translucent:not(.is-fullscreen) { - --nav-collapse-icon-color: rgba(var(--mono-rgb-100), 0.3); - --nav-collapse-icon-color-collapsed: rgba(var(--mono-rgb-100), 0.3); - --divider-color: rgba(0, 0, 0, 0.15); -} -.is-translucent:not(.is-fullscreen) .titlebar, -.is-translucent:not(.is-fullscreen) .app-container { - background-color: var(--workspace-background-translucent); -} -.is-translucent:not(.is-fullscreen) .workspace-ribbon.mod-left, -.is-translucent:not(.is-fullscreen) .workspace-tabs, -.is-translucent:not(.is-fullscreen) .workspace-split.mod-root, -.is-translucent:not(.is-fullscreen) .sidebar-toggle-button, -.is-translucent:not(.is-fullscreen) .mod-left-split .workspace-tab-header-container, -.is-translucent:not(.is-fullscreen) .mod-right-split .workspace-tab-header-container, -.is-translucent:not(.is-fullscreen) .mod-top .workspace-tab-header-container, -.is-translucent:not(.is-fullscreen) .workspace-tabs .workspace-leaf, -.is-translucent:not(.is-fullscreen) .workspace-ribbon.mod-left:before { - background-color: transparent !important; -} -.workspace { - background-color: var(--background-primary); - display: flex; - flex: 1 0 0; - transition: padding-left 100ms ease-in; - overflow: hidden; - height: 100%; -} -.is-translucent .workspace { - background-color: transparent; -} -.workspace-split { - display: flex; - position: relative; -} -.workspace-split.mod-vertical > .workspace-split:last-child { - padding-right: 0; -} -.workspace-split:last-child:not(.mod-right-split) > .workspace-leaf-resize-handle { - display: none; -} -.workspace-split.mod-vertical { - flex-direction: row; -} -.workspace-split.mod-horizontal { - flex-direction: column; -} -.workspace-split.mod-root { - background-color: var(--background-primary); -} -.workspace-leaf { - display: flex; - flex-direction: column; - position: relative; - contain: strict !important; - overflow: hidden; - isolation: isolate; -} -.workspace-split.mod-root .workspace-leaf:last-child .workspace-leaf-resize-handle { - display: none; -} -.workspace-leaf.is-highlighted:before { - content: ' '; - position: absolute; - height: 100%; - width: 100%; - top: 0; - left: 0; - background-color: hsla(var(--interactive-accent-hsl), 0.25); - z-index: var(--layer-popover); - pointer-events: none; -} -.workspace > .workspace-leaf, -.workspace > .workspace-split { - height: 100%; - width: 100%; -} -/* Resize handles */ -.workspace-split.mod-root > .workspace-leaf-resize-handle { - display: none; -} -.workspace-leaf-resize-handle { - -webkit-app-region: no-drag; - position: absolute; - z-index: var(--layer-cover); - background-color: transparent; - transition: background-color 200ms ease-in-out, border-color 200ms ease-in-out, opacity 200ms ease-in-out; - border-color: var(--divider-color); - border-top: 0; - border-width: var(--divider-width); - margin: 0; -} -@media (hover: hover) { - .workspace-leaf-resize-handle:hover { - background-color: var(--divider-color-hover); - border-color: var(--divider-color-hover); - } - .is-translucent .workspace-leaf-resize-handle:hover { - background-color: var(--divider-color-hover); - border-color: var(--divider-color-hover); - } -} -.workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle { - bottom: 0; - left: 0; - border-bottom-style: solid; - border-bottom-width: var(--divider-width); - height: var(--divider-width-hover); - width: 100%; - cursor: row-resize; -} -.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, -.workspace-split.mod-left-split > .workspace-leaf-resize-handle, -.workspace-split.mod-right-split > .workspace-leaf-resize-handle { - right: 0; - bottom: 0; - width: var(--divider-width-hover); - height: var(--divider-vertical-height); - cursor: col-resize; -} -.workspace-split.mod-right-split > .workspace-leaf-resize-handle { - border-left-style: solid; - border-left-width: var(--divider-width); -} -.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, -.workspace-split.mod-left-split > .workspace-leaf-resize-handle { - border-right-style: solid; - border-right-width: var(--divider-width); -} -.workspace-split.mod-right-split > .workspace-leaf-resize-handle { - right: unset; - left: 0; -} -.workspace-split.mod-vertical > * { - height: 100%; - flex: 1 0 0; - width: 0; -} -.workspace-split.mod-horizontal > * { - width: 100%; - flex: 1 0 0; - height: 0; -} -.workspace-split.mod-left-split, -.workspace-split.mod-right-split { - flex: 0 0 auto; -} -.is-translucent .workspace-split.mod-left-split.is-sidedock-collapsed .workspace-tabs, -.is-translucent .workspace-split.mod-right-split.is-sidedock-collapsed .workspace-tabs { - visibility: hidden; -} -.workspace-split.mod-left-split > .workspace-leaf-resize-handle, -.workspace-split.mod-right-split > .workspace-leaf-resize-handle { - z-index: var(--layer-status-bar); - height: var(--divider-vertical-height); - top: unset; - bottom: 0; -} -.view-header-nav-buttons { - --icon-size: var(--icon-s); - align-items: center; - display: flex; - margin-right: var(--size-4-1); -} -body.is-phone .view-header-nav-buttons { - display: none; -} -.workspace-leaf-content { - width: 100%; - height: 100%; - overflow: hidden; - position: relative; - display: flex; - flex-direction: column; -} -.workspace-leaf-content .view-content { - padding: var(--size-4-4); - overflow: auto; -} -.workspace-leaf-content[data-type='markdown'] .view-content { - padding: 0; - overflow: hidden; -} -.workspace-leaf-content[data-type='backlink'] .view-content, -.workspace-leaf-content[data-type='outgoing-link'] .view-content { - padding: 0; - overflow: hidden; - display: flex; - flex-direction: column; -} -.workspace-leaf-content .image-container, -.workspace-leaf-content .audio-container, -.workspace-leaf-content .video-container { - text-align: center; -} -.workspace-leaf-content img:not([width]), -.workspace-leaf-content audio, -.workspace-leaf-content video { - max-width: 100%; -} -.workspace-fake-target-overlay, -.workspace-drop-overlay { - will-change: transform, width, height; - position: fixed; - left: 0; - top: 0; - width: 0; - height: 0; - transform: translate(0, 0); - transition: all 100ms ease-in-out; - z-index: var(--layer-cover); - pointer-events: none; -} -.workspace-drop-overlay:before { - content: ' '; - position: absolute; - width: calc(100% - 6px); - height: calc(100% - 6px); - top: 0; - left: 0; - bottom: 0; - right: 0; - margin: auto; - background-color: var(--interactive-accent); - border-radius: var(--radius-m); - opacity: 0.5; -} -.workspace-fake-target-container { - visibility: hidden; - position: absolute; - pointer-events: none; - top: 0; - left: 0; -} -.workspace-fake-target-overlay { - visibility: visible; - overflow: hidden; - background-color: var(--background-primary); - /* - &.is-in-sidebar { - background-color: var(--background-secondary); - .workspace-leaf { - background-color: var(--background-secondary); - } - }*/ -} -.workspace-fake-target-overlay > * { - width: 100%; - height: 100%; -} -.workspace-tabs { - overflow: hidden; - display: flex; - flex-direction: column; - position: relative; -} -.workspace-tabs > * { - flex: 1 0 0; -} -.workspace-tabs .workspace-leaf { - height: 100%; -} -.workspace-split.mod-right-split .workspace-tabs { - padding-right: 0; -} -.workspace-tabs:last-child .workspace-leaf-resize-handle { - display: none; -} -.workspace-fake-target-overlay:not(.is-in-sidebar) .workspace-tabs .workspace-leaf, -.mod-root .workspace-tabs .workspace-leaf { - background-color: var(--background-primary); -} -.workspace-tabs .workspace-leaf { - background-color: var(--background-secondary); -} -.workspace-tabs .workspace-leaf .view-content { - height: 100%; -} -.workspace-tab-header-container { - display: flex; - background-color: var(--tab-container-background); - height: var(--header-height); - border-bottom: var(--tab-outline-width) solid var(--tab-outline-color); - flex: 0 0 auto; - padding-left: 0; - padding-right: var(--size-4-2); - position: relative; -} -.is-phone .workspace-tab-header-container { - display: none; -} -.workspace-tab-header-container-inner { - -webkit-app-region: drag; - display: flex; - flex: 0 1 auto; - overflow: auto; - margin: 6px -5px calc(var(--tab-outline-width) * -1); - padding: 1px 15px 0; -} -.mod-root .workspace-tab-header-container-inner { - padding: 1px 15px 0; -} -.workspace-tab-header-container-inner::-webkit-scrollbar, -.workspace-tab-header-container-inner::-webkit-scrollbar-thumb { - display: none; -} -.workspace-tab-header-inner-icon { - flex: 0 0 auto; - display: flex; -} -/* Hide tab icon if it's a note */ -.mod-root .workspace-tab-header[data-type="markdown"] .workspace-tab-header-inner-icon, -.mod-root .workspace-tab-header[data-type="empty"] .workspace-tab-header-inner-icon { - display: none; -} -.is-focused .workspace-tab-header { - color: var(--tab-text-color-focused); -} -.is-focused .workspace-tab-header.is-active { - color: var(--tab-text-color-focused-active); -} -.is-focused .mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-icon, -.is-focused .mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-title { - color: var(--tab-text-color-focused-active-current); -} -.is-focused .mod-active .workspace-tab-header.is-active.is-highlighted .workspace-tab-header-inner-icon, -.is-focused .mod-active .workspace-tab-header.is-active.is-highlighted .workspace-tab-header-inner-title { - color: var(--tab-text-color-focused-highlighted); -} -.is-focused .workspace-tab-header.active.is-highlighted .workspace-tab-header-inner-icon, -.is-focused .workspace-tab-header.is-highlighted .workspace-tab-header-inner-icon, -.is-focused .workspace-tab-header.active.is-highlighted .workspace-tab-header-inner-title, -.is-focused .workspace-tab-header.is-highlighted .workspace-tab-header-inner-title { - color: var(--tab-text-color-focused-highlighted); -} -.workspace-tab-header { - -webkit-app-region: no-drag; - color: var(--tab-text-color); - display: flex; - position: relative; - padding: 1px 4px 3.5px; - scroll-margin-inline-start: var(--size-2-3); - scroll-margin-inline-end: var(--size-4-1); - text-align: center; - border-radius: var(--tab-radius-active); - /* Decorative curves */ -} -.workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner { - background-color: var(--background-modifier-hover); -} -.workspace-tab-header::before, -.workspace-tab-header::after { - position: absolute; - bottom: 0; - content: ''; - width: calc(var(--tab-curve) * 2); - height: calc(var(--tab-curve) * 2); - border-radius: 100%; - box-shadow: 0 0 0 calc(var(--tab-curve) * 3) transparent; -} -.workspace-tab-header::before { - left: calc(var(--tab-curve) * -2); - clip-path: inset(50% calc(var(--tab-curve) * -1) 0 50%); -} -.workspace-tab-header::after { - right: calc(var(--tab-curve) * -2); - clip-path: inset(50% 50% 0 calc(var(--tab-curve) * -1)); -} -.workspace-tab-header.is-active { - box-shadow: 0 0 0 var(--tab-outline-width) var(--tab-outline-color); - color: var(--tab-text-color-active); - background-color: var(--tab-background-active); -} -.workspace-split.mod-root .workspace-tab-header.is-active::before, -.workspace-split.mod-root .workspace-tab-header.is-active::after { - box-shadow: inset 0 0 0 var(--tab-outline-width) var(--tab-outline-color), 0 0 0 calc(var(--tab-curve) * 4) var(--tab-background-active); -} -.workspace-tab-header.is-active .workspace-tab-header-inner::after { - opacity: 0; -} -.workspace-tab-container { - display: flex; - overflow: hidden; -} -.workspace-tab-container > * { - flex: 1 0 0; -} -.workspace-tab-header-inner { - align-items: center; - display: flex; - gap: var(--size-2-1); - height: 100%; - border-radius: var(--tab-radius); - overflow: hidden; - padding: 0 8px; - width: 100%; -} -.workspace-tab-header-inner .workspace-tab-header-inner-icon { - color: var(--icon-color); - opacity: var(--icon-opacity); -} -@media (hover: hover) { - .workspace-tab-header-inner:hover .workspace-tab-header-inner-icon { - color: var(--icon-color-hover); - opacity: var(--icon-opacity-hover); - } -} -.mod-root .workspace-tab-header-inner { - padding: 0 3px 0 6px; -} -.workspace-tab-header-inner-title { - flex: 1 1 auto; - font-size: var(--tab-font-size); - font-weight: var(--tab-font-weight); - overflow: hidden; - text-align: left; - text-overflow: ellipsis; - white-space: nowrap; - width: 100%; -} -.workspace-tab-header-status-container { - display: flex; - flex-shrink: 0; - gap: var(--size-2-1); - justify-content: center; -} -.workspace-tab-header-status-container:empty { - display: none; -} -.workspace-tab-header-status-icon, -.workspace-tab-header-inner-close-button { - cursor: var(--cursor); - padding: var(--size-2-1); - border-radius: var(--radius-s); - display: flex; - align-items: center; - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -@media (hover: hover) { - .workspace-tab-header.is-active .workspace-tab-header-status-icon:hover, - .workspace-tab-header.is-active .workspace-tab-header-inner-close-button:hover { - background-color: var(--background-modifier-hover); - } - .mod-root .workspace-tab-header.is-active .workspace-tab-header-status-icon.mod-linked:hover, - .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner-close-button.mod-linked:hover, - .mod-root .workspace-tab-header.is-active .workspace-tab-header-status-icon.mod-pinned:hover, - .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner-close-button.mod-pinned:hover { - background-color: var(--background-modifier-active-hover); - } -} -.workspace-tab-header.is-active .workspace-tab-header-status-icon::after, -.workspace-tab-header.is-active .workspace-tab-header-inner-close-button::after { - background-color: transparent; -} -@media (hover: hover) { - .workspace-tab-header-inner-close-button:hover { - color: var(--tab-text-color-focused-active-current); - } -} -.workspace-tab-header:hover .workspace-tab-header-inner-close-button { - color: var(--tab-text-color-focused); -} -@media (hover: hover) { - .workspace-tab-header:hover .workspace-tab-header-inner-close-button:hover { - color: var(--tab-text-color-focused-active-current); - } -} -.workspace-tab-header.is-active .workspace-tab-header-inner-close-button { - color: var(--tab-text-color-focused); -} -@media (hover: hover) { - .workspace-tab-header.is-active .workspace-tab-header-inner-close-button:hover { - color: var(--tab-text-color-focused-active-current); - } -} -.workspace-sidedock-empty-state { - font-size: var(--font-ui-small); - padding: 20px 30px; -} -.workspace-tab-header.is-before-active .workspace-tab-header-inner { - border-bottom-right-radius: 10px; -} -.workspace-tab-header-spacer { - display: flex; - flex-grow: 1; -} -body:not(.is-grabbing):not(.is-fullscreen) .workspace-tabs.mod-top .workspace-tab-header-spacer { - -webkit-app-region: drag; -} -body:not(.is-grabbing):not(.is-fullscreen).is-hidden-frameless .mod-top .workspace-tab-header-container { - -webkit-app-region: drag; -} -.workspace-tab-header-tab-list, -.workspace-tab-header-new-tab { - -webkit-app-region: no-drag; - display: none; - z-index: 1; - align-items: center; -} -.titlebar .workspace-tab-header-tab-list, -.titlebar .workspace-tab-header-new-tab, -.mod-root .workspace-tab-header-tab-list, -.mod-root .workspace-tab-header-new-tab { - display: flex; -} -.workspace-tab-header-tab-list .clickable-icon, -.workspace-tab-header-new-tab .clickable-icon { - color: var(--icon-color); - padding: var(--size-2-2); - --icon-size: var(--icon-m); - --icon-stroke: var(--icon-m-stroke-width); - align-items: center; -} -.workspace-tab-header-new-tab { - padding: var(--size-4-2) 0 var(--size-2-3); - margin-right: var(--size-4-3); - margin-left: -4px; -} -.workspace-tab-header-tab-list { - margin-right: var(--size-4-1); - padding: var(--size-4-2) 0 var(--size-2-3); -} -/* Remove tab titles in sidebar */ -.workspace-fake-target-overlay.is-in-sidebar .workspace-tab-header-inner-title, -.mod-left-split .workspace-tab-header-inner-title, -.mod-right-split .workspace-tab-header-inner-title { - display: var(--sidebar-tab-text-display); -} -.workspace-fake-target-overlay.is-in-sidebar .workspace-tab-header-inner-close-button, -.mod-left-split .workspace-tab-header-inner-close-button, -.mod-right-split .workspace-tab-header-inner-close-button { - display: none; -} -body > .workspace-split { - height: 100%; -} -.mod-root .workspace-tabs > .workspace-leaf .view-header-title { - white-space: normal; -} -.mod-root .workspace-tab-header-status-icon { - color: var(--text-accent); -} -.mod-root .workspace-tab-header-status-icon, -.mod-root .workspace-tab-header-inner-icon { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -.mod-root .mod-pinned, -.mod-root .workspace-tab-header-inner-close-button { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); -} -.mod-right-split .markdown-preview-view, -.mod-left-split .markdown-preview-view, -.mod-right-split .markdown-source-view.mod-cm6 .cm-scroller, -.mod-left-split .markdown-source-view.mod-cm6 .cm-scroller { - --file-margins: var(--size-4-5); -} -.mod-right-split .markdown-preview-view, -.mod-left-split .markdown-preview-view, -.mod-right-split .markdown-source-view, -.mod-left-split .markdown-source-view { - font-size: var(--sidebar-markdown-font-size); -} -/* Sidebar tabs */ -.mod-left-split .workspace-tab-header-container-inner, -.mod-right-split .workspace-tab-header-container-inner { - padding: 1px 8px 7px; - margin: 6px 0 0 0; - gap: 3px; -} -.mod-left-split .workspace-tab-header, -.mod-right-split .workspace-tab-header { - box-shadow: none; - background-color: transparent; - padding: 0; - margin: 0; - border-radius: var(--radius-s); -} -.mod-left-split .workspace-tab-header:before, -.mod-right-split .workspace-tab-header:before, -.mod-left-split .workspace-tab-header:after, -.mod-right-split .workspace-tab-header:after { - display: none; -} -.mod-left-split .workspace-tab-header:active .workspace-tab-header-inner-icon, -.mod-right-split .workspace-tab-header:active .workspace-tab-header-inner-icon { - color: var(--icon-color-focused); -} -.mod-left-split .workspace-tab-header.has-active-menu, -.mod-right-split .workspace-tab-header.has-active-menu, -.mod-left-split .workspace-tab-header.is-active, -.mod-right-split .workspace-tab-header.is-active { - background-color: var(--background-modifier-hover); -} -@media (hover: hover) { - .mod-left-split .workspace-tab-header.has-active-menu:hover, - .mod-right-split .workspace-tab-header.has-active-menu:hover, - .mod-left-split .workspace-tab-header.is-active:hover, - .mod-right-split .workspace-tab-header.is-active:hover { - background-color: var(--background-modifier-hover); - } -} -.mod-left-split .workspace-tab-header.has-active-menu .workspace-tab-header-inner-icon, -.mod-right-split .workspace-tab-header.has-active-menu .workspace-tab-header-inner-icon, -.mod-left-split .workspace-tab-header.is-active .workspace-tab-header-inner-icon, -.mod-right-split .workspace-tab-header.is-active .workspace-tab-header-inner-icon { - opacity: var(--icon-opacity-active); - color: var(--icon-color-focused); -} -.workspace .mod-root .workspace-tab-header { - -webkit-app-region: no-drag; - flex: 1 1 0; - width: var(--tab-width); - min-width: 0; - max-width: var(--tab-max-width); - padding: 1px 3px 3.5px; -} -.workspace .mod-root .workspace-tab-header .workspace-tab-header-status-container { - position: sticky; - right: 0; -} -.workspace .mod-root .workspace-tab-header .workspace-tab-header-inner-close-button { - position: sticky; - right: 0; -} -.workspace .mod-root .workspace-tab-header.is-active:hover .workspace-tab-header-inner-close-button, -.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner-close-button { - pointer-events: all; - opacity: 1; -} -.workspace .mod-root .workspace-tab-header.is-active:hover .workspace-tab-header-inner-close-button svg, -.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner-close-button svg { - opacity: 1; -} -.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner-close-button::after { - background-color: transparent; -} -.workspace .mod-root .workspace-tab-header-inner::after { - position: absolute; - right: -0.5px; - width: 1px; - background-color: var(--tab-divider-color); - content: ''; - height: 20px; -} -.workspace .mod-root .workspace-tab-header-inner-icon { - display: flex; - padding-right: 4px; -} -.workspace .mod-root .workspace-tab-header[data-type="markdown"] .workspace-tab-header-inner-icon, -.workspace .mod-root .workspace-tab-header[data-type="empty"] .workspace-tab-header-inner-icon { - display: none; -} -.workspace .mod-root .workspace-tab-header-inner-title { - text-overflow: ellipsis; - width: 100%; -} -.workspace .mod-root .workspace-tab-header-status-container.mod-linked { - display: none; -} -.workspace .mod-root .workspace-tab-header-spacer { - flex-shrink: 1; -} -.workspace .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(.is-active) .workspace-tab-header-inner-close-button { - display: none; -} -.workspace .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover .workspace-tab-header-inner-close-button { - display: flex; -} -/* Stacked tabs */ -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-header-container-inner { - padding: 0 0 0 var(--size-4-3); - margin: 0; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container { - overflow-x: auto; - overflow-y: hidden; - position: relative; - display: flex; - flex-direction: row; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container > * { - flex: 0 0 auto; - position: sticky; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { - width: var(--tab-stacked-header-width); - writing-mode: var(--tab-stacked-text-writing-mode); - text-orientation: sideways; - background-color: var(--background-primary); - padding: 0; - border-radius: 0; - box-shadow: -1px 0 0 0 var(--tab-outline-color), var(--tab-stacked-shadow); - --no-tooltip: true; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header:before, -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header:after { - display: none; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header:hover .workspace-tab-header-inner { - background-color: transparent; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner { - padding: var(--size-4-2) var(--size-4-2) var(--size-4-4); - border-radius: 0; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner:after { - display: none; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-title { - order: 3; - width: auto; - -webkit-mask-image: unset; - padding: var(--size-4-1) 0; - transform: var(--tab-stacked-text-transform); - text-align: var(--tab-stacked-text-align); - font-weight: var(--tab-stacked-font-weight); - font-size: var(--tab-stacked-font-size); - text-orientation: mixed; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-icon { - order: 2; - cursor: grab; - display: flex; - padding: var(--size-2-2); - border-radius: var(--radius-s); -} -@media (hover: hover) { - .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-icon:hover { - background-color: var(--background-modifier-hover); - } -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-icon:active { - cursor: grabbing; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-close-button { - color: var(--tab-text-color-focused); -} -@media (hover: hover) { - .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-close-button:hover { - background-color: var(--background-modifier-hover); - } -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-leaf { - width: var(--tab-stacked-pane-width); - /* This is here for performance reasons - it helps the engine know - what's out of view and avoid rendering them */ - contain: strict; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-leaf.is-hidden > * { - display: none; -} -.sidebar-toggle-button { - -webkit-app-region: inherit; - height: calc(var(--header-height) - 1px); - display: flex; - justify-content: center; - padding: var(--size-4-2) 0 7px 0; - -webkit-app-region: no-drag; - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); -} -/* Smoother animation for right sidebar button positioning during close */ -.mod-macos.is-hidden-frameless:not(.is-popout-window) .sidebar-toggle-button.mod-right { - background-color: var(--tab-container-background); - position: fixed; - top: 0; - right: 0; - padding-right: var(--size-4-2); - z-index: var(--layer-popover); -} -.mod-macos.is-hidden-frameless:not(.is-popout-window) .workspace .workspace-tabs.mod-top-right-space .workspace-tab-header-container { - padding-right: 38px; -} -.button-container { - margin-top: 20px; -} -button { - -webkit-app-region: no-drag; - display: inline-flex; - align-items: center; - justify-content: center; - color: var(--text-normal); - font-size: var(--font-ui-small); - border-radius: var(--button-radius); - border: 0; - padding: var(--size-4-1) var(--size-4-3); - height: var(--input-height); - font-weight: var(--input-font-weight); - cursor: var(--cursor); - font-family: inherit; - outline: none; - user-select: none; - white-space: nowrap; -} -button:not(.clickable-icon) { - background-color: var(--interactive-normal); - box-shadow: var(--input-shadow); -} -@media (hover: hover) { - button:hover { - background-color: var(--interactive-hover); - box-shadow: var(--input-shadow-hover); - } -} -button[aria-disabled='true'] { - background-color: var(--interactive-normal); -} -button:focus-visible { - box-shadow: 0 0 0 3px var(--background-modifier-border-focus); -} -button[disabled="true"] { - cursor: not-allowed; -} -button.mod-cta { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -@media (hover: hover) { - button.mod-cta:hover { - background-color: var(--interactive-accent-hover); - } -} -button.mod-cta:focus-visible { - box-shadow: 0 0 0 3px var(--background-modifier-border-focus); -} -button.mod-muted { - background-color: var(--background-secondary); - color: var(--text-muted); -} -@media (hover: hover) { - button.mod-muted:hover { - background-color: var(--background-secondary); - } -} -button.mod-warning { - background-color: var(--background-modifier-error); - color: var(--text-on-accent); -} -@media (hover: hover) { - button.mod-warning:hover { - background-color: var(--background-modifier-error-hover); - } -} -button.mod-destructive { - color: var(--text-error); -} -.card-container { - display: flex; -} -.card-container.mod-horizontal { - flex-direction: column; -} -.card { - background-color: var(--background-secondary-alt); - border-radius: 4px; - border: 1px solid var(--background-modifier-border); - margin: 0 10px; - padding: 15px 30px; - display: flex; - flex-direction: column; - flex-grow: 1; -} -.card ul { - padding: 0; -} -.card .button-container { - margin: 10px 0; -} -.card-container.mod-horizontal .card { - margin: 10px 0; -} -.card-container.mod-horizontal .card ul { - padding-left: 24px; -} -.card li { - margin: 5px 0; -} -.card.u-clickable { - cursor: var(--cursor); -} -@media (hover: hover) { - .card.u-clickable:hover { - border: 1px solid var(--interactive-accent); - background-color: hsla(var(--interactive-accent-hsl), 0.1); - } -} -.card.is-selected { - border: 1px solid var(--interactive-accent); - background-color: hsla(var(--interactive-accent-hsl), 0.2); -} -.card-title { - text-align: center; - font-size: 20px; - line-height: 30px; - color: var(--text-muted); - margin-bottom: 8px; -} -.card-description { - color: var(--text-muted); - font-size: var(--font-ui-small); - line-height: 20px; - flex-grow: 1; -} -/* Only used in Format Converter so far */ -.changelog-item { - margin: var(--size-4-2) 0; - font-size: var(--font-ui-medium); - line-height: var(--line-height); -} -.changelog-item:before { - content: attr(data-label); - width: 50px; - border-radius: var(--radius-m); - font-size: var(--font-ui-small); - display: inline-block; - text-align: center; - margin-right: 14px; - text-transform: uppercase; - letter-spacing: 1px; - line-height: 22px; -} -.changelog-item.mod-success:before { - background-color: var(--background-modifier-success); -} -.changelog-item.mod-highlighted:before { - background-color: var(--interactive-accent); -} -[contenteditable] { - outline: none; -} -.list-item { - display: flex; - padding: 0; - margin: 8px 0; - gap: var(--size-4-2); - align-items: center; -} -.list-item-part.mod-extended { - flex-grow: 1; - overflow-wrap: anywhere; -} -.list-item-part.clickable-icon { - display: flex; - align-items: center; - justify-content: center; - padding: var(--size-2-2); - cursor: var(--cursor); - border-radius: var(--radius-s); - color: var(--icon-color); -} -.list-item-part.clickable-icon:hover, -.list-item-part.clickable-icon:active { - color: var(--icon-color-hover); - background-color: var(--background-modifier-hover); -} -.u-center-text { - text-align: center; -} -.u-faded-text { - color: var(--text-muted); -} -.u-pop { - color: var(--text-accent); - font-weight: var(--font-semibold); -} -.u-muted { - color: var(--text-muted); -} -.u-small { - font-size: 0.8em; -} -.u-clickable { - cursor: var(--cursor); -} -/* In file recovery, sync version history, and publish diff */ -.diff-view { - user-select: text; -} -.diff-line { - padding: 0 var(--size-4-2); -} -.diff-line.mod-left { - background-color: rgba(var(--background-modifier-error-rgb), 0.2); -} -.diff-line.mod-left .diff-changed { - background-color: rgba(var(--background-modifier-error-rgb), 0.4); -} -.diff-line.mod-right { - background-color: rgba(var(--background-modifier-success-rgb), 0.2); -} -.diff-line.mod-right .diff-changed { - background-color: rgba(var(--background-modifier-success-rgb), 0.4); -} -.diff-collapsed { - text-align: center; - color: var(--text-muted); - cursor: pointer; - font-size: var(--font-ui-small); - margin: var(--size-4-2) 0; -} -.diff-collapsed:hover { - color: var(--text-accent); -} -/* Document search and replace */ -/* -Moves search to the top -#todo move this into DOM */ -.markdown-reading-view.is-searching, -.markdown-source-view.is-replacing, -.markdown-source-view.is-searching { - flex-direction: column-reverse; -} -/* Container for dcoument search/replace UI */ -.mod-active .document-search-container { - background-color: var(--background-primary); -} -.document-search-container { - display: flex; - flex-direction: column; - padding: var(--size-4-2) 0; - margin: 0 var(--size-4-4); - gap: var(--size-4-2); - z-index: var(--layer-popover); -} -.document-search, -.document-replace { - width: 100%; - max-width: var(--file-line-width); - margin: 0 auto; - display: flex; - padding: 0 var(--size-4-2); - gap: var(--size-4-2); -} -.document-replace { - display: none; -} -.document-search-container.mod-replace-mode .document-replace { - display: flex; -} -input.document-search-input, -input.document-replace-input { - flex-grow: 1; -} -input.document-search-input.mod-no-match, -input.document-replace-input.mod-no-match { - background-color: rgba(var(--background-modifier-error-rgb), 0.2); -} -@media (hover: hover) { - input.document-search-input.mod-no-match:hover, - input.document-replace-input.mod-no-match:hover { - background-color: rgba(var(--background-modifier-error-rgb), 0.2); - } -} -.document-replace-buttons, -.document-search-buttons { - display: flex; - gap: var(--size-4-2); - align-items: center; -} -.document-search-button { - font-size: var(--font-ui-small); - padding: 0 var(--size-4-2); - color: var(--text-muted); -} -.document-search-close-button { - cursor: var(--cursor); - position: relative; - top: 2px; - font-size: 24px; - line-height: 20px; - height: 24px; - width: 24px; - padding: 0 var(--size-2-2); - border-radius: var(--radius-s); - color: var(--text-muted); -} -.document-search-close-button:before { - font-family: Inter, sans-serif; - content: "\d7"; - font-weight: 300; -} -@media (hover: hover) { - .document-search-close-button:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -/* Read */ -.markdown-rendered .search-highlight > div { - position: absolute; - pointer-events: none; - box-shadow: 0 0 0px 2px var(--text-normal); - opacity: 0.3; - mix-blend-mode: var(--highlight-mix-blend-mode); - border-radius: 2px; -} -.markdown-rendered .search-highlight > div.is-active { - box-shadow: 0 0 0px 3px var(--text-accent); - opacity: 1; -} -.cm-s-obsidian span.obsidian-search-match-highlight { - box-shadow: 0 0 0px 3px var(--text-accent); - mix-blend-mode: var(--highlight-mix-blend-mode); - border-radius: 2px; -} -/* Edit */ -.markdown-source-view.mod-cm6 .document-search-container { - flex: 0 0 auto; -} -.cm-s-obsidian span.cm-highlight.obsidian-search-match-highlight { - background-color: var(--text-selection); -} -/* Support for rtl text, explicit support for Arabic and Hebrew */ -*[dir="rtl"] .dropdown, -:root:lang(ar) .dropdown, -:root:lang(iw) .dropdown { - background-position: left 0.7em top 50%, 0 0; - padding: 0.6em 0.8em 0.5em 1.4em; -} -/* class applies to select element itself, not a wrapper element */ -select, -.dropdown { - -webkit-app-region: no-drag; - height: var(--input-height); - font-size: var(--font-ui-small); - font-family: inherit; - font-weight: var(--input-font-weight); - color: var(--text-normal); - line-height: var(--line-height-tight); - padding: 0 1.9em 0 0.8em; - max-width: 100%; - /* useful when width is set to anything other than 100% */ - box-sizing: border-box; - margin: 0; - border: 0; - box-shadow: var(--input-shadow); - border-radius: var(--input-radius); - -webkit-appearance: none; - appearance: none; - background-color: var(--interactive-normal); - background-repeat: no-repeat, repeat; - /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/ - background-position: right 0.7em top 50%, 0 0; - /* icon size, then gradient */ - background-size: 0.65em auto, 100%; -} -@media (hover: hover) { - select:hover, - .dropdown:hover { - box-shadow: var(--input-shadow-hover); - background-color: var(--interactive-hover); - } -} -select:focus, -.dropdown:focus { - box-shadow: 0 0 0px 3px var(--background-modifier-border-focus); - outline: none; -} -.dropdown { - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="292.4" height="292.4"%3E%3Cpath fill="%23000" opacity="0.4" d="M287 69.4a17.6 17.6 0 0 0-13-5.4H18.4c-5 0-9.3 1.8-12.9 5.4A17.6 17.6 0 0 0 0 82.2c0 5 1.8 9.3 5.4 12.9l128 127.9c3.6 3.6 7.8 5.4 12.8 5.4s9.2-1.8 12.8-5.4L287 95c3.5-3.5 5.4-7.8 5.4-12.8 0-5-1.9-9.2-5.5-12.8z"/%3E%3C/svg%3E'); -} -.theme-dark .dropdown { - background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="292.4" height="292.4"%3E%3Cpath fill="%23FFF" opacity="0.4" d="M287 69.4a17.6 17.6 0 0 0-13-5.4H18.4c-5 0-9.3 1.8-12.9 5.4A17.6 17.6 0 0 0 0 82.2c0 5 1.8 9.3 5.4 12.9l128 127.9c3.6 3.6 7.8 5.4 12.8 5.4s9.2-1.8 12.8-5.4L287 95c3.5-3.5 5.4-7.8 5.4-12.8 0-5-1.9-9.2-5.5-12.8z"/%3E%3C/svg%3E'); -} -/* Set options to normal weight */ -.dropdown option { - font-weight: normal; - background-color: var(--background-primary); -} -.flair { - background-color: var(--interactive-normal); - border-radius: var(--radius-s); - color: var(--text-normal); - font-size: 10px; - letter-spacing: 0.05em; - margin-left: var(--size-4-2); - padding: var(--size-2-1) var(--size-2-2); - position: relative; - text-transform: uppercase; - white-space: nowrap; - vertical-align: middle; -} -.flair.mod-flat { - vertical-align: top; -} -.flair.mod-pop { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.markdown-preview-view:not(.allow-fold-lists) .list-collapse-indicator, -.markdown-preview-view:not(.allow-fold-headings) .heading-collapse-indicator { - display: none; -} -/* #todo Reduce specificity here */ -.cm-fold-indicator .collapse-indicator, -.cm-gutterElement .collapse-indicator, -.collapse-indicator, -.fold-gutter { - opacity: 0; -} -/* -.is-mobile & .cm-fold-indicator .collapse-indicator { - opacity: 1; -}*/ -h1:hover .collapse-indicator, -h2:hover .collapse-indicator, -h3:hover .collapse-indicator, -h4:hover .collapse-indicator, -h5:hover .collapse-indicator, -h6:hover .collapse-indicator, -.collapse-indicator:hover, -.is-collapsed .collapse-indicator, -.cm-fold-indicator.is-collapsed .collapse-indicator, -.cm-gutterElement:hover .collapse-indicator, -.cm-gutterElement .is-collapsed .collapse-indicator, -.cm-line:hover .cm-fold-indicator .collapse-indicator, -.fold-gutter.is-collapsed, -.fold-gutter:hover, -.metadata-properties-heading:hover .collapse-indicator { - opacity: 1; -} -.collapse-icon { - display: flex; - align-items: center; -} -.collapse-icon:before { - content: "\200B"; -} -.collapse-icon svg.svg-icon { - color: var(--nav-collapse-icon-color); - stroke-width: 4px; - width: 10px; - height: 10px; - transition: transform 100ms ease-in-out; -} -.collapse-icon.is-collapsed svg.svg-icon { - transform: rotate(-90deg); -} -.rtl .collapse-icon.is-collapsed svg.svg-icon { - transform: rotate(90deg); -} -.view-content .list-collapse-indicator svg.svg-icon, -.view-content .collapse-indicator svg.svg-icon { - color: var(--collapse-icon-color); -} -.view-content .is-collapsed .list-collapse-indicator svg.svg-icon, -.view-content .is-collapsed .collapse-indicator svg.svg-icon { - color: var(--collapse-icon-color-collapsed); -} -.markdown-preview-view .collapse-indicator { - position: absolute; - cursor: var(--cursor); -} -.markdown-preview-view .collapse-indicator .svg-icon { - vertical-align: middle; -} -.markdown-preview-view li.is-collapsed > ul, -.markdown-preview-view li.is-collapsed > ol { - display: none; -} -.markdown-preview-view .heading-collapse-indicator { - margin-left: -22px; - padding: 0 6px; -} -.markdown-source-view.mod-cm6 .cm-fold-indicator .collapse-indicator { - opacity: 0; -} -.markdown-source-view.mod-cm6 .cm-line:hover .cm-fold-indicator .collapse-indicator, -.markdown-source-view.mod-cm6 .cm-fold-indicator.is-collapsed .collapse-indicator { - opacity: 1; -} -.markdown-source-view.mod-cm6 .cm-foldPlaceholder { - color: var(--text-faint); - background-color: transparent; - border: none; - margin-left: 8px; -} -.markdown-source-view.mod-cm6 .cm-fold-indicator { - display: inline-block; - position: relative; - z-index: 1; -} -.markdown-source-view.mod-cm6 .cm-fold-indicator .collapse-indicator { - position: absolute; - top: 0; - right: 0; - height: 100%; - cursor: var(--cursor); - padding-right: 5px; -} -/* Consistency for hover states across all icon buttons */ -svg.svg-icon { - height: var(--icon-size); - width: var(--icon-size); - stroke-width: var(--icon-stroke); -} -/* Parent container of button rows */ -.nav-buttons-container, -.view-actions, -.workspace-tab-header-inner, -.side-dock-settings, -.side-dock-actions { - display: flex; - justify-content: center; -} -.side-dock-settings, -.side-dock-actions { - gap: var(--size-2-3); -} -.view-actions { - gap: 0; - align-items: center; - --icon-size: var(--icon-s); -} -.nav-file-icon .svg-icon, -.suggestion-flair .svg-icon, -.menu-item-icon .svg-icon, -.status-bar-item .svg-icon { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); -} -.clickable-icon.side-dock-ribbon-action .svg-icon, -.mod-left-split .workspace-tab-header-inner-icon .svg-icon, -.mod-right-split .workspace-tab-header-inner-icon .svg-icon { - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); -} -.clickable-icon.side-dock-ribbon-action:active, -.mod-left-split .workspace-tab-header-inner-icon:active, -.mod-right-split .workspace-tab-header-inner-icon:active { - color: var(--icon-color-focused); -} -/* Use horizontal more actions "..." on macOS/iOS per OS guidelines */ -.is-ios .lucide-more-vertical, -.mod-macos .lucide-more-vertical { - transform: rotate(90deg); -} -/* Parent button containers for SVG button icons */ -.clickable-icon { - -webkit-app-region: no-drag; - background-color: transparent; - display: flex; - align-items: center; - justify-content: center; - padding: var(--size-2-2) var(--size-2-3); - cursor: var(--cursor); - border-radius: var(--clickable-icon-radius); - color: var(--icon-color); - opacity: var(--icon-opacity); - transition: opacity 0.15s ease-in-out; - height: auto; -} -@media (hover: hover) { - .clickable-icon:hover { - box-shadow: none; - opacity: var(--icon-opacity-hover); - color: var(--icon-color-hover); - background-color: var(--background-modifier-hover); - } - .clickable-icon.has-active-menu, - .clickable-icon:active { - opacity: var(--icon-opacity-hover); - color: var(--icon-color-focused); - background-color: var(--background-modifier-hover); - } -} -.clickable-icon.is-active { - opacity: var(--icon-opacity-hover); - color: var(--icon-color-active); - background-color: var(--background-modifier-active-hover); -} -@media (hover: hover) { - .clickable-icon.is-active:hover { - background-color: var(--background-modifier-active-hover); - } -} -.clickable-icon[aria-disabled='true'] { - background-color: unset; - color: var(--text-muted); - opacity: 0.4; -} -@media (hover: hover) { - .clickable-icon[aria-disabled='true']:hover { - background-color: unset; - } -} -.clickable-icon.mod-warning { - color: var(--text-error); -} -.clickable-icon.mod-filled svg { - fill: var(--icon-color); -} -.setting-item-control .clickable-icon { - padding: var(--size-2-2); -} -.text-icon-button { - -webkit-app-region: no-drag; - display: inline-flex; - align-items: center; - color: var(--text-muted); - font-size: var(--font-ui-small); - border-radius: var(--button-radius); - padding: var(--size-2-1) var(--size-4-3) var(--size-2-1) var(--size-4-2); - height: var(--input-height); - font-weight: var(--input-font-weight); - cursor: var(--cursor); - font-family: inherit; - gap: var(--size-2-2); - user-select: none; - white-space: nowrap; -} -.text-icon-button .text-button-icon { - display: flex; - align-items: center; - justify-content: center; -} -.text-icon-button .text-button-icon svg.svg-icon { - height: var(--icon-size); - width: var(--icon-size); - stroke-width: var(--icon-stroke); -} -.text-icon-button:focus { - box-shadow: 0 0 0px 2px var(--background-modifier-border-focus); - outline: none; -} -@media (hover: hover) { - .text-icon-button:hover { - box-shadow: none; - opacity: var(--icon-opacity-hover); - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } - .text-icon-button:hover .text-button-icon { - color: var(--icon-color-hover); - } - .text-icon-button.has-active-menu, - .text-icon-button:active { - opacity: var(--icon-opacity-hover); - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } - .text-icon-button.has-active-menu .text-button-icon, - .text-icon-button:active .text-button-icon { - color: var(--icon-color-focused); - } -} -.markdown-rendered.show-indentation-guide li > ul, -.markdown-rendered.show-indentation-guide li > ol { - position: relative; -} -.markdown-rendered.show-indentation-guide li > ul::before, -.markdown-rendered.show-indentation-guide li > ol::before { - content: "\200B"; - position: absolute; - display: block; - left: -0.85em; - top: 0; - bottom: 0; - border-right: var(--indentation-guide-width) solid var(--indentation-guide-color); -} -.markdown-source-view.mod-cm6 .cm-indent { - min-width: var(--list-indent); - display: inline-block; -} -.markdown-source-view.mod-cm6 .cm-indent::before { - content: "\200B"; - display: block; - width: 1px; - border-right: var(--indentation-guide-width) solid var(--indentation-guide-color); - color: transparent; - position: absolute; - top: 0; - bottom: 0; - transform: translateX(var(--indentation-guide-editing-indent)); -} -.markdown-source-view.mod-cm6 .cm-active-indent::before { - border-right: var(--indentation-guide-width-active) solid var(--indentation-guide-color-active); -} -.input-label { - display: inline-block; - width: 150px; - text-align: right; - margin-right: var(--size-4-2); -} -.input-button { - padding: 6px 14px; - margin-left: 14px; - color: var(--text-muted); - font-size: var(--font-ui-medium); - position: relative; - top: -1px; -} -@media (hover: hover) { - .input-button:hover { - color: var(--text-normal); - } -} -textarea, -input.metadata-input-text, -input[type='date'], -input[type='datetime-local'], -input[type='text'], -input[type='search'], -input[type='email'], -input[type='password'], -input[type='number'] { - -webkit-app-region: no-drag; - background: var(--background-modifier-form-field); - border: var(--input-border-width) solid var(--background-modifier-border); - color: var(--text-normal); - font-family: inherit; - padding: var(--size-4-1) var(--size-4-2); - font-size: var(--font-ui-small); - border-radius: var(--input-radius); - outline: none; -} -@media (hover: hover) { - textarea:hover, - input.metadata-input-text:hover, - input[type='date']:hover, - input[type='datetime-local']:hover, - input[type='text']:hover, - input[type='search']:hover, - input[type='email']:hover, - input[type='password']:hover, - input[type='number']:hover { - border-color: var(--background-modifier-border-hover); - transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out; - } -} -textarea:active, -input.metadata-input-text:active, -input[type='date']:active, -input[type='datetime-local']:active, -input[type='text']:active, -input[type='search']:active, -input[type='email']:active, -input[type='password']:active, -input[type='number']:active, -textarea:focus, -input.metadata-input-text:focus, -input[type='date']:focus, -input[type='datetime-local']:focus, -input[type='text']:focus, -input[type='search']:focus, -input[type='email']:focus, -input[type='password']:focus, -input[type='number']:focus { - border-color: var(--background-modifier-border-focus); - transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out; -} -textarea:active, -input.metadata-input-text:active, -input[type='date']:active, -input[type='datetime-local']:active, -input[type='text']:active, -input[type='search']:active, -input[type='email']:active, -input[type='password']:active, -input[type='number']:active, -textarea:focus, -input.metadata-input-text:focus, -input[type='date']:focus, -input[type='datetime-local']:focus, -input[type='text']:focus, -input[type='search']:focus, -input[type='email']:focus, -input[type='password']:focus, -input[type='number']:focus, -textarea:focus-visible, -input.metadata-input-text:focus-visible, -input[type='date']:focus-visible, -input[type='datetime-local']:focus-visible, -input[type='text']:focus-visible, -input[type='search']:focus-visible, -input[type='email']:focus-visible, -input[type='password']:focus-visible, -input[type='number']:focus-visible { - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -textarea::placeholder, -input.metadata-input-text::placeholder, -input[type='date']::placeholder, -input[type='datetime-local']::placeholder, -input[type='text']::placeholder, -input[type='search']::placeholder, -input[type='email']::placeholder, -input[type='password']::placeholder, -input[type='number']::placeholder { - color: var(--text-faint); -} -input[type='text'], -input[type='search'], -input[type='email'], -input[type='password'], -input[type='number'] { - height: var(--input-height); -} -/* Textarea */ -textarea { - line-height: var(--line-height-tight); -} -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - display: none; - pointer-events: none; -} -input[type=number]::-webkit-inner-spin-button { - -webkit-appearance: none; -} -/* Date input */ -input[type='date'], -input[type='datetime-local'] { - font-variant-numeric: tabular-nums; - position: relative; -} -input[type='date']::-webkit-datetime-edit-text, -input[type='datetime-local']::-webkit-datetime-edit-text { - color: var(--text-faint); -} -input[type='date']::-webkit-calendar-picker-indicator, -input[type='datetime-local']::-webkit-calendar-picker-indicator { - position: absolute; - left: var(--size-4-1); - opacity: 0.5; -} -input[type='date']::-webkit-datetime-edit-month-field:active, -input[type='datetime-local']::-webkit-datetime-edit-month-field:active, -input[type='date']::-webkit-datetime-edit-month-field:focus, -input[type='datetime-local']::-webkit-datetime-edit-month-field:focus, -input[type='date']::-webkit-datetime-edit-day-field:active, -input[type='datetime-local']::-webkit-datetime-edit-day-field:active, -input[type='date']::-webkit-datetime-edit-day-field:focus, -input[type='datetime-local']::-webkit-datetime-edit-day-field:focus, -input[type='date']::-webkit-datetime-edit-year-field:active, -input[type='datetime-local']::-webkit-datetime-edit-year-field:active, -input[type='date']::-webkit-datetime-edit-year-field:focus, -input[type='datetime-local']::-webkit-datetime-edit-year-field:focus { - background-color: var(--text-selection); - color: var(--text-normal); - cursor: text; -} -body:not(.is-ios):not(.is-android) input[type='date'], -body:not(.is-ios):not(.is-android) input[type='datetime-local'] { - padding-left: var(--size-4-6); -} -/* Range slider */ -input[type='range'] { - width: 100px; - -webkit-appearance: none; - background-color: var(--slider-track-background); - border-radius: var(--slider-track-height); - height: var(--slider-track-height); - padding: 0; - outline: none; -} -input[type='range']::-webkit-slider-runnable-track { - height: 6px; - -webkit-appearance: none; -} -input[type='range']::-webkit-slider-thumb { - -webkit-appearance: none; - height: var(--slider-thumb-height); - width: var(--slider-thumb-width); - border-radius: var(--slider-thumb-radius); - cursor: default; - background: #FFF; - border: var(--slider-thumb-border-width) solid var(--slider-thumb-border-color); - position: relative; - top: var(--slider-thumb-y); - transition: all 0.1s linear; - box-shadow: 0 1px 1px 0px rgba(0, 0, 0, 0.05), 0 2px 2px 0px rgba(0, 0, 0, 0.1); -} -input[type='range']::-webkit-slider-thumb:hover, -input[type='range']::-webkit-slider-thumb:active { - background: white; - border-color: var(--background-modifier-border-focus); - box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.1), 0 2px 3px 0px rgba(0, 0, 0, 0.2); - transition: all 0.1s linear; -} -body:not(.is-mobile) input[type=range]:focus { - box-shadow: none; -} -body:not(.is-mobile) input[type=range]:focus::-webkit-slider-thumb { - box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.05), 0 2px 3px 0px rgba(0, 0, 0, 0.2); -} -body:not(.is-mobile) input[type=range]:focus-visible::-webkit-slider-thumb { - border-color: var(--background-modifier-border-focus); - box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.05), 0 2px 3px 0px rgba(0, 0, 0, 0.2), 0 0 0px 2px var(--background-modifier-border-focus); -} -/* Color inputs */ -input[type="color"] { - -webkit-appearance: none; - width: calc(var(--swatch-width) + 4px); - background-color: transparent; - border: none; - cursor: var(--cursor); - padding: 0; -} -input[type="color"]::-webkit-color-swatch-wrapper { - padding: 2px; -} -input[type="color"]::-webkit-color-swatch { - border: 0px; - box-shadow: var(--swatch-shadow); - border-radius: var(--swatch-radius); - height: var(--swatch-height); - width: var(--swatch-width); - align-self: center; -} -@media (hover: hover) { - input[type="color"]::-webkit-color-swatch:hover { - box-shadow: inset 0 0 0 1px rgba(var(--mono-rgb-100), 0.25), 0 0 0 3px var(--background-modifier-border-hover); - } -} -input[type="color"]:focus-visible::-webkit-color-swatch, -input[type="color"]:focus::-webkit-color-swatch { - box-shadow: var(--swatch-shadow), 0 0 0 3px var(--background-modifier-border-focus); -} -select.mod-hidden { - display: none; -} -.notice-container { - z-index: var(--layer-notice); - position: fixed; - top: 22px; - right: 0; - padding: 10px; - overflow: hidden; -} -.notice { - background-color: var(--background-modifier-message); - border-radius: var(--radius-m); - box-shadow: 0 2px 8px var(--background-modifier-box-shadow); - color: #FAFAFA; - font-size: var(--font-ui-small); - line-height: var(--line-height-tight); - padding: 0.75em 1em 0.75em 1em; - max-width: 300px; - margin-bottom: 14px; - white-space: pre-wrap; - overflow-wrap: anywhere; - word-break: break-word; - cursor: var(--cursor); -} -.menu { - -webkit-app-region: no-drag; - padding: var(--size-2-3); - border: 1px solid var(--background-modifier-border-hover); - background-color: var(--background-secondary); - border-radius: var(--radius-m); - box-shadow: var(--shadow-s); - position: fixed; - z-index: var(--layer-menu); - user-select: none; - max-height: calc(100% - var(--header-height)); - overflow: hidden; -} -.menu.mod-no-icon .menu-item-icon:first-child { - display: none; -} -.menu-separator { - height: 0; - margin: var(--size-2-3) calc(var(--size-2-3) * -1); - border-bottom: 1px solid var(--background-modifier-border); -} -.menu-separator:last-child, -.menu-separator:first-child { - display: none; -} -.menu-separator + .menu-separator { - display: none; -} -.menu-separator + .menu-item.is-label { - padding-bottom: var(--size-4-1); -} -.menu-item { - display: flex; - align-items: center; - gap: var(--size-4-2); - padding: var(--size-4-1) var(--size-4-2); - cursor: var(--cursor); - font-size: var(--font-ui-small); - border-radius: var(--radius-s); - white-space: nowrap; -} -.menu-item.is-disabled { - cursor: default; - color: var(--text-faint); -} -.menu-item.is-warning.selected { - color: var(--text-error); -} -.menu-item.is-label { - cursor: default; - font-size: var(--font-ui-medium); - color: var(--text-muted); - white-space: pre-wrap; - overflow-wrap: anywhere; - word-break: break-word; -} -.menu-item.selected:not(.is-label):not(.is-disabled) { - background-color: var(--background-modifier-hover); -} -.menu-item-icon { - flex: 0 1 auto; - display: flex; - color: var(--text-muted); -} -.menu-item-icon .menu-item.is-warning.selected { - color: var(--text-error); -} -.menu-item.is-disabled .menu-item-icon { - color: var(--text-faint); -} -.menu-item-icon .mod-submenu { - color: var(--text-faint); -} -.menu-item-title { - flex: 1 0 0; -} -.menu.mod-tab-list .menu-item-title { - max-width: 300px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - vertical-align: bottom; -} -.debug-textarea { - width: 100%; - height: 50vh; - max-height: 80vh; - font-family: var(--font-monospace); - tab-size: 4; - resize: none; -} -.modal-container { - display: flex; - align-items: center; - justify-content: center; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: var(--layer-modal); -} -.modal-container.mod-dim .modal { - box-shadow: var(--shadow-l); -} -.modal-bg { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: var(--background-modifier-cover); -} -.modal { - --checkbox-size: var(--font-ui-medium); - background-color: var(--modal-background); - border-radius: var(--modal-radius); - border: var(--modal-border-width) solid var(--modal-border-color); - padding: var(--size-4-4); - position: relative; - min-height: 100px; - width: var(--dialog-width); - max-width: var(--dialog-max-width); - max-height: var(--dialog-max-height); - display: flex; - flex-direction: column; - overflow: auto; -} -.modal.mod-sidebar-layout { - padding: 0; - width: var(--modal-width); - height: var(--modal-height); - max-width: var(--modal-max-width); - max-height: var(--modal-max-height); - overflow: hidden; - display: flex; - flex-direction: column; -} -.modal.mod-sidebar-layout .modal-content { - display: flex; -} -.modal.mod-scrollable-content { - padding: 0; - overflow: hidden; -} -.modal.mod-scrollable-content .modal-title { - padding: var(--size-4-4) var(--size-4-4) 0 var(--size-4-4); -} -.modal.mod-scrollable-content .modal-content { - padding: 0 var(--size-4-4) var(--size-4-4) var(--size-4-4); - overflow: auto; -} -.modal-sidebar { - background-color: var(--background-secondary); - flex: 1 1 var(--modal-community-sidebar-width); - min-width: var(--modal-community-sidebar-width); - padding: var(--size-4-3) 0 0 0; - display: flex; - flex-direction: column; -} -body:not(.native-scrollbars) .modal-close-button { - right: 12px; -} -.modal-close-button { - cursor: var(--cursor); - position: absolute; - top: var(--size-2-3); - right: var(--size-2-3); - font-size: 24px; - line-height: 20px; - height: 24px; - width: 24px; - padding: 0 var(--size-2-2); - border-radius: var(--radius-s); - color: var(--text-muted); -} -@media (hover: hover) { - .modal-close-button:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -.modal-close-button:before { - font-family: Inter, sans-serif; - content: '\D7'; - font-weight: 300; -} -.modal-title { - font-size: var(--font-ui-large); - margin-bottom: 0.75em; - font-weight: var(--font-semibold); - text-align: left; - line-height: var(--line-height-tight); -} -.mod-sidebar-layout .modal-title { - display: none; -} -.modal-title:empty { - display: none; -} -.modal-content { - flex: 1 1 auto; - font-size: var(--font-ui-medium); -} -.modal-button-container { - margin-top: 1.5em; - display: flex; - justify-content: flex-end; - gap: var(--size-4-2); - flex-wrap: wrap; - font-size: var(--font-ui-medium); -} -.modal-button-container .mod-checkbox { - flex-grow: 1; - display: flex; - align-items: center; - gap: var(--size-4-1); -} -.modal-button-container .mod-secondary { - margin-right: auto; -} -.modal.mod-scrollable-content > .modal-button-container { - margin-top: 0; - border-top: 1px solid var(--background-modifier-border); - padding: var(--size-4-4); -} -.modal-checkbox-label { - cursor: var(--cursor); - margin-left: 10px; - user-select: none; -} -.message-container { - margin: var(--size-4-4) 0; -} -.message { - display: inline-block; - padding: 6px 12px 6px 12px; - border-radius: var(--radius-s); -} -.message.mod-success { - background-color: var(--background-modifier-success); - color: var(--text-on-accent); -} -.message.mod-success a { - color: var(--text-normal); -} -.message.mod-info { - background-color: var(--background-modifier-info); -} -.message.mod-error { - background-color: var(--background-modifier-error); - color: var(--text-on-accent); -} -.message.mod-error a { - color: var(--text-normal); -} -.mod-warning { - color: var(--text-error); -} -.mod-success { - color: var(--text-success); -} -.mod-file-rename .rename-textarea { - overflow: hidden; - padding: var(--size-2-3) var(--size-4-2); - resize: none; - width: 100%; -} -.modal-setting-back-button { - position: absolute; - top: var(--safe-area-inset-top); - left: 0; - padding: var(--size-4-3) var(--size-4-3); - height: var(--modal-header-height); - color: var(--text-normal); - font-weight: var(--font-semibold); -} -.modal-setting-back-button-icon { - display: flex; - align-items: center; - margin-right: 6px; -} -.modal-setting-nav-bar { - display: flex; - flex: 0 1 auto; - padding: var(--size-4-3); - border-bottom: 1px solid var(--background-modifier-border); -} -.modal .modal-nav-action { - background-color: unset; - margin-top: var(--size-4-1); - position: absolute; - top: 0; - width: unset; -} -.modal .modal-nav-action.mod-secondary { - left: 0; -} -.modal .modal-nav-action.mod-cta { - color: var(--color-accent); - font-weight: var(--font-semibold); - right: 0; -} -.nav-header { - padding: var(--size-4-2); -} -.nav-header .search-input-container { - margin: 4px auto; - padding: 0; -} -.nav-buttons-container { - flex-wrap: wrap; - gap: var(--size-2-1); -} -.nav-buttons-container.has-separator { - border-bottom: 1px solid var(--background-modifier-border); - padding-bottom: var(--size-2-3); - margin-bottom: var(--size-4-2); -} -body { - --pill-focus-width: calc(100% + 6px); - --pill-focus-left-adjust: -4px; -} -.multi-select-container { - cursor: text; - display: inline-flex; - vertical-align: top; - flex-wrap: wrap; - min-height: var(--input-height); - width: 100%; - background: var(--background-modifier-form-field); - border: var(--input-border-width) solid var(--background-modifier-border); - color: var(--text-normal); - font-size: var(--font-ui-small); - border-radius: var(--input-radius); - outline: none; - padding: var(--size-4-1); - gap: var(--size-4-1); -} -.multi-select-pill { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - display: flex; - align-items: center; - background-color: var(--pill-background); - border: var(--pill-border-width) solid var(--pill-border-color); - border-radius: var(--pill-radius); - color: var(--pill-color); - cursor: var(--cursor); - font-weight: var(--pill-weight); - padding: var(--pill-padding-y) 0; - line-height: 1; - max-width: 100%; - gap: var(--size-2-1); - position: relative; -} -.multi-select-pill:focus:after { - content: ''; - display: block; - position: absolute; - pointer-events: none; - border-radius: var(--pill-radius); - left: var(--pill-focus-left-adjust); - width: var(--pill-focus-width); - height: 100%; - box-shadow: 0 0 0 1px var(--background-modifier-border-focus), inset 0 0 0 1px var(--background-modifier-border-focus); -} -@media (hover: hover) { - .multi-select-pill:hover { - background-color: var(--pill-background-hover); - border: var(--pill-border-width) solid var(--pill-border-color-hover); - color: var(--pill-color-hover); - text-decoration: var(--pill-decoration-hover); - } -} -.multi-select-pill-content { - margin-left: var(--pill-padding-x); -} -.multi-select-pill-remove-button { - margin-right: min(var(--size-2-3),var(--pill-padding-x)); - cursor: var(--cursor); - color: var(--pill-color-remove); - border-radius: var(--radius-s); - display: flex; - align-items: center; - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -.multi-select-pill-remove-button:hover { - color: var(--pill-color-remove-hover); -} -.multi-select-input { - cursor: text; - font-family: var(--font-interface); - min-width: 1ch; - max-width: max-content; - color: var(--text-normal); - background-color: inherit; - border: none; - overflow-x: auto; - white-space: nowrap; -} -.multi-select-input::-webkit-scrollbar { - display: none; -} -.multi-select-input:before { - content: '\200B'; -} -.multi-select-input:empty:before { - content: attr(placeholder); - color: var(--text-faint); - pointer-events: none; -} -@keyframes multi-select-highlight { - from { - color: var(--text-warning); - --link-color: var(--text-warning); - } -} -.multi-select-duplicate { - animation: multi-select-highlight 2000ms ease-in; -} -.popover { - background-color: var(--background-primary); - border: 1px solid var(--background-modifier-border); - box-shadow: var(--shadow-s); - border-radius: var(--radius-m); - padding: var(--size-4-5); - position: relative; - max-height: 95vh; -} -.popover.hover-popover { - position: absolute; - z-index: var(--layer-popover); - max-width: 80vw; - min-height: 60px; - overflow: hidden; - width: fit-content; - padding: 0; -} -.popover.hover-popover > * { - width: var(--popover-width); -} -.popover.hover-popover .markdown-preview-view { - font-size: var(--popover-font-size); -} -.popover.hover-popover > .mod-empty { - display: flex; - justify-content: center; - align-items: center; - padding: 20px; - font-size: var(--popover-font-size); - color: var(--text-muted); -} -.popover.hover-popover > .media-embed { - min-height: 0; - line-height: 0; - border: none; -} -.popover.hover-popover > .media-embed video { - max-height: 100%; - max-width: 100%; - height: auto; -} -.popover.hover-popover > .image-embed img { - max-height: 100%; - max-width: 100%; - height: auto; -} -.popover.hover-popover > .pdf-embed { - width: var(--popover-pdf-width); - height: var(--popover-pdf-height); - max-height: var(--popover-max-height); -} -.popover.hover-popover > .markdown-embed { - height: var(--popover-height); - max-height: var(--popover-max-height); - border: 0; - padding: 0; - margin: 0; -} -.popover.hover-popover > .markdown-embed > .markdown-embed-content { - height: 100%; - overflow: auto; -} -.popover.hover-popover > .markdown-embed > .markdown-embed-content > .markdown-preview-view { - padding: var(--file-margins); -} -.popover.hover-popover > .markdown-embed .mod-header + div > *:first-child { - margin-top: 0; -} -.follow-link-popover { - box-shadow: 0 2px 8px var(--background-modifier-box-shadow); - background-color: rgba(0, 0, 0, 0.9); - border-radius: var(--radius-m); - color: #ccc; - font-size: var(--font-ui-small); - line-height: 20px; - max-width: 300px; - padding: 5px 12px; - text-align: center; - z-index: var(--layer-tooltip); - white-space: pre-wrap; - top: calc(100%); -} -.follow-link-popover.mod-bottom { - top: 0; -} -@media (hover: hover) { - .follow-link-popover:hover { - background-color: #000000; - } -} -.follow-link-popover .popover-arrow { - position: absolute; - top: calc(100%); - left: 50%; - width: 0; - margin-left: -5px; - border-right: 5px solid transparent; - border-left: 5px solid transparent; - content: " "; - font-size: 0; - line-height: 0; - border-top: 5px solid rgba(0, 0, 0, 0.9); - border-bottom: 5px solid transparent; -} -.follow-link-popover.mod-bottom .popover-arrow { - border-bottom: 5px solid rgba(0, 0, 0, 0.9); - border-top: none; - top: -5px; -} -.markdown-preview-view progress, -.markdown-rendered progress, -.markdown-source-view.is-live-preview progress { - -webkit-writing-mode: horizontal-tb; - writing-mode: horizontal-tb; - appearance: none; - box-sizing: border-box; - display: inline-block; - height: 6px; - margin-bottom: 4px; - max-width: 100%; - overflow: hidden; - border-radius: 0px; - border: 0; - vertical-align: -0.2rem; -} -.markdown-preview-view progress[value]::-webkit-progress-bar, -.markdown-rendered progress[value]::-webkit-progress-bar, -.markdown-source-view.is-live-preview progress[value]::-webkit-progress-bar { - background-color: var(--background-secondary); - box-shadow: inset 0px 0px 0px 1px var(--background-modifier-border); - border-radius: 6px; - overflow: hidden; -} -.markdown-preview-view progress[value]::-webkit-progress-value, -.markdown-rendered progress[value]::-webkit-progress-value, -.markdown-source-view.is-live-preview progress[value]::-webkit-progress-value { - background-color: var(--interactive-accent); - overflow: hidden; -} -.progress-bar { - position: absolute; - height: 100vh; - width: 100vw; - top: 0; - left: 0; - background-color: var(--background-primary); - z-index: 10000; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} -.progress-bar-message { - margin-bottom: var(--size-4-8); - opacity: 1; - color: var(--text-muted); -} -.progress-bar-indicator { - position: relative; - height: 8px; - margin: 0 10vw; - width: 90vw; - overflow-x: hidden; - border-radius: 3px; -} -.progress-bar-line { - position: absolute; - opacity: 0.4; - background-color: var(--interactive-accent); - width: 150%; - height: 8px; -} -.progress-bar-subline { - position: absolute; - background-color: var(--interactive-accent); - height: 8px; -} -.progress-bar-subline.mod-increase { - animation: increase 2s infinite; -} -.progress-bar-subline.mod-decrease { - animation: decrease 2s 0.5s infinite; -} -.progress-bar .progress-bar-subline { - transition: width 150ms ease-in-out; -} -@keyframes increase { - from { - left: -5%; - width: 5%; - } - to { - left: 130%; - width: 100%; - } -} -@keyframes decrease { - from { - left: -80%; - width: 80%; - } - to { - left: 110%; - width: 10%; - } -} -.prompt { - display: flex; - flex-direction: column; - border-radius: var(--radius-l); - background-color: var(--background-primary); - box-shadow: var(--shadow-l); - border: var(--prompt-border-width) solid var(--prompt-border-color); - z-index: 1; - position: absolute; - top: 80px; - width: var(--prompt-width); - max-width: var(--prompt-max-width); - max-height: var(--prompt-max-height); - overflow: hidden; -} -.prompt-input-container { - display: flex; -} -input.prompt-input { - width: 100%; - padding: var(--size-4-6); - background-color: var(--background-primary); - font-size: var(--font-ui-medium); - border: none; - height: 40px; - border-radius: 0; - border-bottom: 1px solid var(--background-secondary); -} -input.prompt-input:hover, -input.prompt-input:focus, -input.prompt-input:focus-visible { - border-bottom: 1px solid var(--background-secondary); - box-shadow: none; -} -.prompt-results { - list-style: none; - margin: 0; - padding: var(--size-4-3); - overflow-y: auto; -} -.prompt-instructions { - border-top: 1px solid var(--background-secondary); - user-select: none; - font-size: var(--font-ui-smaller); - color: var(--text-muted); - padding: var(--size-4-2); - text-align: center; - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: var(--size-4-3); -} -.prompt-instruction { - display: inline-block; -} -.prompt-instruction-command { - font-weight: var(--bold-weight); - margin-right: var(--size-2-2); -} -body:not(.native-scrollbars) ::-webkit-scrollbar { - background-color: var(--scrollbar-bg); - width: 12px; - height: 12px; - -webkit-border-radius: var(--radius-l); - background-color: transparent; -} -body:not(.native-scrollbars) ::-webkit-scrollbar-track { - background-color: transparent; -} -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb { - background-color: var(--scrollbar-thumb-bg); - -webkit-border-radius: var(--radius-l); - background-clip: padding-box; - border: 2px solid transparent; - border-width: 3px 3px 3px 2px; - min-height: 45px; -} -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:active { - -webkit-border-radius: var(--radius-l); -} -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:hover, -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:active { - background-color: var(--scrollbar-active-thumb-bg); -} -body:not(.native-scrollbars) ::-webkit-scrollbar-corner { - background: transparent; -} -body:not(.native-scrollbars) * { - scrollbar-width: thin; - scrollbar-color: var(--scrollbar-thumb-bg) var(--scrollbar-bg); -} -/* Scroll indicator for sidebar containers -body:not(.is-translucent):not(.is-mobile) .workspace-tabs { - .item-list, - .nav-files-container, - .search-result-container, - .tag-container, - .outgoing-link-pane, - .backlink-pane { - background: - linear-gradient( - var(--background-secondary) 10%, - rgba(0, 0, 0, 0) - ) - center top, - linear-gradient( - var(--background-modifier-border) 100%, - rgba(0, 0, 0, 0) - ) - center top; - background-repeat: no-repeat; - background-size: 100% 40px, 91% 1px; - background-attachment: local, scroll; - } -} - */ -.suggestion-container { - position: absolute; - overflow: hidden; - display: flex; - flex-direction: column; - background-color: var(--background-primary); - max-width: 500px; - max-height: 300px; - border-radius: var(--radius-m); - border: 1px solid var(--background-modifier-border); - box-shadow: var(--shadow-s); - z-index: var(--layer-notice); -} -.is-mobile .suggestion-container { - max-width: calc(100vw - 20px); - max-height: 240px; -} -.suggestion { - overflow-y: auto; - padding: var(--size-2-3); -} -.suggestion-item, -.suggestion-empty { - font-size: var(--font-ui-medium); - margin-bottom: 1px; -} -.suggestion-empty { - color: var(--text-muted); - padding: var(--size-4-2); - padding-top: var(--size-4-3); - text-align: center; -} -.suggestion-item { - cursor: var(--cursor); - padding: var(--size-2-3) var(--size-4-3); - padding-left: 12px; - white-space: pre-wrap; - border-radius: var(--radius-s); -} -.suggestion-item.is-selected { - background-color: var(--background-modifier-hover); -} -.suggestion-item.mod-downranked { - color: var(--text-muted); -} -.suggestion-item.mod-complex { - align-items: baseline; - display: flex; - justify-content: space-between; -} -.suggestion-item.mod-complex .suggestion-title { - overflow-wrap: break-word; -} -.suggestion-item.mod-complex .suggestion-content { - display: flex; - flex-direction: column; - overflow: hidden; - text-overflow: ellipsis; - margin-right: auto; -} -.suggestion-item.mod-complex .suggestion-prefix:after { - content: ': '; -} -.suggestion-item.mod-complex .suggestion-highlight { - font-weight: bold; -} -.suggestion-item.mod-complex .suggestion-note { - font-size: 0.8em; - color: var(--text-muted); - width: 100%; - flex-basis: 100%; - overflow-wrap: break-word; -} -.suggestion-item.mod-complex .suggestion-icon, -.suggestion-item.mod-complex .suggestion-aux { - display: flex; - align-items: center; - align-self: center; - flex-shrink: 0; -} -.suggestion-item.mod-complex .suggestion-hotkey { - font-size: var(--font-ui-smaller); - font-family: var(--font-interface); - padding: 2px 6px; -} -.suggestion-item.mod-complex .suggestion-hotkey:not(:last-child) { - margin-left: 10px; -} -.suggestion-item.mod-complex .suggestion-flair { - color: var(--text-muted); - opacity: var(--icon-opacity); - display: flex; - align-items: center; -} -.suggestion-item.mod-complex .suggestion-flair:not(:last-child) { - margin-left: 6px; -} -.suggestion-item.mod-complex .suggestion-icon .suggestion-flair { - margin: 0 var(--size-4-3) 0 var(--size-4-1); -} -.suggestion-item.mod-complex .suggestion-aux .suggestion-flair { - margin: 0 var(--size-4-1) 0 var(--size-4-3); -} -.suggestion-highlight { - font-weight: bold; -} -.suggestion-bg { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: var(--background-modifier-cover); - z-index: var(--layer-popover); -} -.horizontal-tab-header { - display: flex; -} -.horizontal-tab-nav-item, -.vertical-tab-nav-item { - padding: var(--size-4-1) var(--size-4-2); - user-select: none; - cursor: var(--cursor); - font-size: calc(var(--font-ui-small) + 1px); - border-radius: var(--radius-s); -} -.horizontal-tab-nav-item.is-active, -.vertical-tab-nav-item.is-active { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -@media (hover: hover) { - .horizontal-tab-nav-item.is-active:hover, - .vertical-tab-nav-item.is-active:hover { - background-color: var(--interactive-accent); - } -} -@media (hover: hover) { - .horizontal-tab-nav-item:hover, - .vertical-tab-nav-item:hover { - background-color: var(--background-modifier-hover); - } -} -.vertical-tab-nav-item { - margin-bottom: var(--size-2-1); -} -.vertical-tab-nav-item-chevron { - display: none; -} -.horizontal-tab-content, -.vertical-tab-content { - background-color: var(--background-primary); - padding-left: var(--size-4-12); - padding-right: var(--size-4-12); -} -.vertical-tabs-container { - display: flex; -} -.vertical-tab-header { - padding: var(--size-4-3); - background-color: var(--background-secondary); -} -.vertical-tab-header-group-items { - display: flex; - flex-direction: column; -} -.vertical-tab-header-group-title { - font-size: var(--font-ui-smaller); - color: var(--text-faint); - font-weight: var(--font-semibold); - padding: var(--size-4-2); - user-select: none; -} -.vertical-tab-header-group { - padding: var(--size-4-3) 0; -} -.vertical-tab-content-container { - overflow: hidden; - flex-grow: 1; -} -.vertical-tab-content { - overflow-y: auto; - height: 100%; - padding-top: var(--size-4-8); - padding-bottom: var(--size-4-16); -} -.vertical-tab-content h2 { - font-size: var(--font-ui-medium); - font-weight: var(--font-semibold); -} -.checkbox-container { - -webkit-app-region: no-drag; - cursor: var(--cursor); - background-color: var(--background-modifier-border-hover); - border-radius: var(--toggle-radius); - display: inline-block; - flex-shrink: 0; - height: calc(var(--toggle-thumb-height) + var(--toggle-border-width) * 2); - position: relative; - user-select: none; - width: var(--toggle-width); - box-shadow: inset 0 4px 10px rgba(0, 0, 0, 0.07), inset 0 0 1px rgba(0, 0, 0, 0.21); - transition: box-shadow 0.15s ease-in-out, outline 0.15s ease-in-out, border 0.15s ease-in-out, opacity 0.15s ease-in-out; - outline: 0 solid var(--background-modifier-border-focus); -} -.checkbox-container input[type='checkbox'] { - position: absolute; - opacity: 0; - left: 0; -} -.checkbox-container:focus-within { - outline: var(--toggle-border-width) solid var(--background-modifier-border-focus); -} -@media (hover: hover) { - .checkbox-container:hover { - box-shadow: inset 0 6px 20px rgba(0, 0, 0, 0.14), inset 0 0 1px rgba(0, 0, 0, 0.28); - } -} -.checkbox-container.is-enabled { - background-color: var(--interactive-accent); -} -.checkbox-container.is-enabled:after { - transform: translate3d(calc(var(--toggle-width) - var(--toggle-thumb-width) - var(--toggle-border-width)), 0, 0); -} -.checkbox-container.is-enabled:active:after { - left: -4px; -} -.checkbox-container:before { - content: ''; - display: block; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - opacity: 0; -} -.checkbox-container:after { - pointer-events: none; - content: ''; - display: block; - position: absolute; - background-color: var(--toggle-thumb-color); - width: var(--toggle-thumb-width); - height: var(--toggle-thumb-height); - margin: var(--toggle-border-width) 0 0 0; - border-radius: var(--toggle-thumb-radius); - transition: transform 0.15s ease-in-out, width 0.1s ease-in-out, left 0.1s ease-in-out; - left: 0; - transform: translate3d(var(--toggle-border-width), 0, 0); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15); -} -.checkbox-container:active:after { - width: calc(var(--toggle-thumb-width) + var(--toggle-border-width)); -} -.checkbox-container.mod-small { - width: var(--toggle-s-width); - height: calc(var(--toggle-s-thumb-height) + var(--toggle-s-border-width) * 2); -} -.checkbox-container.mod-small:focus-within { - outline: var(--toggle-s-border-width) solid var(--background-modifier-border-focus); -} -.checkbox-container.mod-small:after { - width: var(--toggle-s-thumb-width); - height: var(--toggle-s-thumb-height); - margin: var(--toggle-s-border-width) 0 0 0; - transform: translate3d(var(--toggle-s-border-width), 0, 0); -} -.checkbox-container.mod-small.is-enabled:after { - transform: translate3d(calc(var(--toggle-s-width) - var(--toggle-s-thumb-width) - var(--toggle-s-border-width)), 0, 0); -} -.checkbox-container.mod-small:active:after { - width: calc(var(--toggle-s-thumb-width) + var(--toggle-s-border-width)); -} -/* Add this attribute to the element that needs a tooltip */ -.tooltip { - animation: pop-down 200ms forwards ease-in-out; - box-shadow: 0 2px 8px var(--background-modifier-box-shadow); - background-color: var(--background-modifier-message); - border-radius: var(--radius-s); - color: #FAFAFA; - font-size: var(--font-ui-smaller); - font-weight: var(--font-medium); - left: 50%; - line-height: var(--line-height-tight); - max-width: 300px; - padding: 4px 8px; - position: fixed; - text-align: center; - transform: translateX(-50%); - z-index: var(--layer-tooltip); - pointer-events: none; - white-space: pre-wrap; - word-break: normal; - overflow-wrap: anywhere; -} -.tooltip.mod-right { - animation: pop-right 200ms forwards ease-in-out; - transform: translateY(-50%); -} -.tooltip.mod-left { - animation: pop-right 200ms forwards ease-in-out; - transform: translateY(-50%); -} -.tooltip.mod-error { - width: 200px; - background-color: var(--background-modifier-error); - color: var(--text-on-accent); -} -.tooltip.mod-wide { - max-width: 450px; - width: 400px; -} -/* Triangle hack to make tooltip look like a speech bubble */ -.tooltip .tooltip-arrow { - position: absolute; - top: -5px; - left: 50%; - width: 0; - margin-left: -5px; - border-bottom: 5px solid var(--background-modifier-message); - border-right: 5px solid transparent; - border-left: 5px solid transparent; - content: " "; - font-size: 0; - line-height: 0; -} -.tooltip.mod-right .tooltip-arrow { - top: calc(50% - 5px); - left: -5px; - border-right: 5px solid var(--background-modifier-message); - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; -} -.tooltip.mod-left .tooltip-arrow { - top: calc(50% - 5px); - left: calc(100% + 5px); - border-left: 5px solid var(--background-modifier-message); - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; -} -.tooltip.mod-top .tooltip-arrow { - top: calc(100%); - border-top: 5px solid var(--background-modifier-message); - border-bottom: 5px solid transparent; -} -.tooltip.mod-error .tooltip-arrow { - border-bottom-color: var(--background-modifier-error); -} -.tooltip.mod-error.mod-right .tooltip-arrow { - border-right-color: var(--background-modifier-error); - border-bottom: 5px solid transparent; -} -.tooltip.mod-error.mod-left .tooltip-arrow { - border-left-color: var(--background-modifier-error); - border-bottom: 5px solid transparent; -} -[aria-label] .svg-icon { - pointer-events: none; -} -@keyframes pop-down { - 0% { - opacity: 0; - transform: translateX(-50%) scale(1); - } - 20% { - opacity: 0.7; - transform: translateX(-50%) scale(1.02); - } - 40% { - opacity: 1; - transform: translateX(-50%) scale(1.05); - } - 100% { - opacity: 1; - transform: translateX(-50%) scale(1); - } -} -@keyframes pop-right { - 0% { - opacity: 0; - transform: translateY(-50%) scale(1); - } - 20% { - opacity: 0.7; - transform: translateY(-50%) scale(1.02); - } - 40% { - opacity: 1; - transform: translateY(-50%) scale(1.05); - } - 100% { - opacity: 1; - transform: translateY(-50%) scale(1); - } -} -.tree-item-self { - align-items: baseline; - display: flex; - border-radius: var(--radius-s); - color: var(--nav-item-color); - font-size: var(--nav-item-size); - line-height: var(--line-height-tight); - font-weight: var(--nav-item-weight); - margin-bottom: var(--size-2-1); - padding: var(--nav-item-padding); - position: relative; -} -.tree-item-self:before { - content: '\200B'; -} -.tree-item-self.mod-collapsible { - padding: var(--nav-item-parent-padding); -} -.tree-item-self.is-being-dragged-over { - border-radius: var(--radius-s); - color: var(--nav-item-color-highlighted); - background: hsla(var(--interactive-accent-hsl), 0.1); -} -.tree-item-self.is-being-dragged-over .collapse-icon { - color: var(--nav-item-color-highlighted); -} -.tree-item-self.is-being-renamed .tree-item-inner { - cursor: text; -} -.tree-item-self.is-clickable { - cursor: var(--cursor); -} -@media (hover: hover) { - body:not(.is-grabbing) .tree-item-self.is-clickable:hover { - color: var(--nav-item-color-hover); - background-color: var(--nav-item-background-hover); - font-weight: var(--nav-item-weight-hover); - } -} -body:not(.is-grabbing) .tree-item-self.is-active:hover, -.tree-item-self.is-active { - color: var(--nav-item-color-active); - background-color: var(--nav-item-background-active); - font-weight: var(--nav-item-weight-active); -} -body:not(.is-grabbing) .tree-item-self.is-selected:hover, -.tree-item-self.is-selected { - color: var(--nav-item-color-selected); - background-color: var(--nav-item-background-selected); -} -body:not(.is-grabbing) .tree-item-self.is-being-dragged:hover, -.tree-item-self.is-being-dragged { - color: var(--text-on-accent); - background-color: var(--interactive-accent); -} -body:not(.is-grabbing) .tree-item-self.is-being-dragged:hover .tree-item-icon, -.tree-item-self.is-being-dragged .tree-item-icon { - color: var(--text-on-accent); -} -body:not(.is-phone) .workspace-leaf.mod-active .tree-item-self.has-focus { - border-radius: var(--radius-s); - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -body:not(.is-phone) .workspace-leaf.mod-active .tree-item-self.has-focus:focus-within { - box-shadow: 0 0 0 2px var(--interactive-accent); -} -.tree-item-self .tree-item-icon { - position: absolute; - margin-left: calc(-1 * var(--size-4-5)); - width: var(--size-4-4); - display: flex; - align-items: center; - justify-content: center; - opacity: var(--icon-opacity); - color: var(--icon-color); - flex: 0 0 auto; -} -.tree-item-self .tree-item-icon:before { - content: "\200b"; -} -.tree-item-self .tree-item-icon .svg-icon:not(.right-triangle) { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-s-stroke-width); -} -.tree-item-flair-outer { - padding-left: var(--size-4-1); - margin-left: auto; - display: flex; - flex-shrink: 0; - align-items: center; -} -.tree-item-flair { - font-size: var(--font-ui-smaller); - color: var(--text-faint); - line-height: 1; - border-radius: var(--radius-s); -} -@media (hover: hover) { - .tree-item-self:hover .tree-item-flair { - color: var(--text-muted); - } -} -.tree-item-inner { - overflow: hidden; -} -.tree-item-inner-text { - overflow: hidden; - text-overflow: ellipsis; -} -.tree-item-inner-subtext { - color: var(--text-faint); - font-size: 85%; -} -.tree-item-children { - padding-left: var(--nav-item-children-padding-left); - margin-left: var(--nav-item-children-margin-left); - margin-bottom: 1px; - border-left: var(--nav-indentation-guide-width) solid var(--nav-indentation-guide-color); -} -.drop-indicator { - position: absolute; - left: 0; - width: 100%; - height: 0; - border: 2px solid var(--interactive-accent); - pointer-events: none; -} -.drop-indicator:not(.is-active) { - display: none; -} -audio { - outline: none; -} -.markdown-rendered audio { - max-width: 100%; - outline: none; -} -audio { - width: 100%; - height: 42px; -} -audio::-webkit-media-controls-enclosure { - border-radius: calc(var(--radius-m) - 1px); - border: 1px solid var(--background-modifier-border); - background-color: var(--background-primary-alt); -} -audio::-webkit-media-controls-current-time-display, -audio::-webkit-media-controls-time-remaining-display { - font-family: var(--font-interface); -} -iframe { - border: 0; -} -kbd { - color: var(--code-normal); - font-family: var(--font-monospace); - background-color: var(--code-background); - border-radius: var(--radius-s); - font-size: var(--code-size); - padding: 0.1em 0.25em; -} -.workspace-leaf-content[data-type="pdf"] .view-content { - display: flex; - flex-direction: column; - overflow: hidden; - padding: 0; -} -.pdf-container { - background-color: var(--pdf-background); - flex-grow: 1; - min-width: 350px; - overflow: hidden; - position: relative; -} -.theme-dark .pdf-container.mod-themed .annotationLayer .textWidgetAnnotation input, -.theme-dark .pdf-container.mod-themed .annotationLayer .textWidgetAnnotation textarea { - filter: invert(100%) hue-rotate(180deg); -} -.theme-dark .pdf-container.mod-themed .popupWrapper > div { - background-color: var(--background-secondary-alt); - filter: drop-shadow(0px 0px 1px var(--color-base-60)) drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.4)) drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.4)); -} -.theme-dark .pdf-container.mod-themed .popupWrapper > div::after { - background-color: var(--background-secondary-alt); -} -.theme-dark .pdf-container.mod-themed .popupContent:empty + .popupMeta { - background-color: var(--background-secondary-alt); -} -.pdf-viewer-container { - outline: none; - overflow: auto; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - scroll-padding: var(--size-4-3); -} -.findbarOpen .pdf-viewer-container { - margin-top: var(--findbar-height); -} -.pdf-content-container { - --sidebar-width: 140px; -} -.pdf-content-container.sidebarMoving .pdf-sidebar-container, -.pdf-content-container.sidebarOpen .pdf-sidebar-container { - visibility: visible; -} -.pdf-content-container.sidebarOpen .pdf-sidebar-container { - inset-inline-start: 0; -} -.pdf-content-container.sidebarOpen .pdf-viewer-container { - inset-inline-start: var(--sidebar-width); - transition-property: inset-inline-start; -} -.pdf-embed .pdf-content-container.sidebarOpen .pdf-sidebar-container, -.is-mobile .pdf-content-container.sidebarOpen .pdf-sidebar-container { - inset-inline-start: 0; -} -.pdf-embed .pdf-content-container.sidebarOpen .pdf-viewer-container, -.is-mobile .pdf-content-container.sidebarOpen .pdf-viewer-container { - inset-inline-start: 0; -} -.pdf-content-container .pdf-sidebar-container, -.pdf-content-container .pdf-viewer-container { - transition-duration: 275ms; - transition-timing-function: var(--anim-motion-swing); -} -.pdf-content-container.sidebarResizing .pdf-sidebar-container, -.pdf-content-container.sidebarResizing .pdf-viewer-container { - /* Improve responsiveness and avoid visual glitches when the sidebar is resized. */ - transition-duration: 0s; -} -.pdf-content-container { - bottom: 0; - left: 0; - min-width: 350px; - position: absolute; - right: 0; - top: 0; -} -.pdf-content-container.is-loading:before { - z-index: 1; -} -.pdf-sidebar-container { - background-color: var(--pdf-sidebar-background); - border-right: var(--divider-width) solid var(--divider-color); - bottom: 0; - display: flex; - flex-direction: column; - inset-inline-start: calc(-1 * var(--sidebar-width)); - position: absolute; - top: 0; - transition-property: inset-inline-start; - visibility: hidden; - width: var(--sidebar-width); - z-index: 100; -} -.findbarOpen .pdf-sidebar-container { - top: var(--findbar-height); -} -.is-mobile .pdf-sidebar-container[data-view="1"], -.pdf-embed .pdf-sidebar-container[data-view="1"] { - inset-inline-start: -140px; - width: 140px; -} -.is-mobile .pdf-sidebar-container[data-view="2"], -.pdf-embed .pdf-sidebar-container[data-view="2"] { - inset-inline-start: -275px; - width: 275px; -} -.pdf-sidebar-container .pdf-thumbnail-view, -.pdf-sidebar-container .pdf-outline-view { - bottom: 0; - overflow: auto; - padding: var(--size-4-2) var(--size-4-2); - position: absolute; - top: 0; - -webkit-user-select: none; - user-select: none; - width: 100%; -} -.pdf-sidebar-container .pdf-thumbnail-view { - display: flex; - flex-wrap: wrap; - gap: var(--size-4-1); - justify-content: center; - align-content: flex-start; - padding: var(--size-4-3); - width: 100%; -} -.pdf-sidebar-container .pdf-thumbnail-view a { - display: block; - cursor: var(--cursor); -} -.pdf-sidebar-container .pdf-thumbnail-view a:active, -.pdf-sidebar-container .pdf-thumbnail-view a:focus { - outline: 0; -} -.pdf-sidebar-container .thumbnail { - --thumbnail-width: 0; - --thumbnail-height: 0; - position: relative; - width: var(--thumbnail-width); - height: var(--thumbnail-height); - border: var(--size-4-2) solid transparent; - border-radius: var(--radius-s); - box-sizing: content-box; -} -.pdf-sidebar-container .thumbnail::before { - content: " "; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - box-shadow: var(--pdf-thumbnail-shadow); -} -.pdf-sidebar-container .thumbnail::after { - background-color: var(--background-secondary); - border-radius: 3px; - bottom: var(--size-4-1); - content: attr(data-page-label); - color: var(--text-muted); - display: block; - font-size: var(--font-ui-smaller); - line-height: 1; - padding: var(--size-2-1) var(--size-4-1); - position: absolute; - right: var(--size-4-1); -} -.pdf-sidebar-container .thumbnail:not([data-loaded]) { - border: 1px dashed var(--background-modifier-border); - margin: calc(var(--size-4-2) - 1px); -} -.pdf-sidebar-container .thumbnail:hover, -.pdf-sidebar-container .thumbnail.selected { - border-color: var(--background-modifier-hover); -} -.pdf-sidebar-container img.thumbnailImage { - border: 1px solid transparent; - max-width: unset; - width: var(--thumbnail-width); - height: var(--thumbnail-height); -} -.pdf-outline-view .tree-item-self:not(.mod-collapsible) { - padding-left: calc(10px + var(--size-4-2) + var(--size-2-3)); -} -.pdf-outline-view .tree-item-self.mod-active { - color: var(--nav-item-color-active); - background-color: var(--nav-item-background-active); - font-weight: var(--nav-item-weight-active); -} -.pdf-outline-view .tree-item-flair { - white-space: nowrap; -} -.pdf-sidebar-content-wrapper { - position: relative; - flex-grow: 1; -} -.pdf-sidebar-content { - bottom: 0; - inset-inline-start: 0; - overflow: auto; - position: absolute; - top: 0; - width: 100%; -} -.pdf-sidebar-content > .hidden { - display: none; -} -.pdf-sidebar-resizer { - background-color: transparent; - bottom: 0; - cursor: col-resize; - inset-inline-end: calc(var(--divider-width-hover) * -1); - position: absolute; - top: 0; - transition: background-color 200ms ease-in-out; - width: var(--divider-width-hover); - z-index: var(--layer-cover); -} -.is-mobile .pdf-sidebar-resizer, -.pdf-embed .pdf-sidebar-resizer { - display: none; -} -@media (hover: hover) { - .pdf-sidebar-resizer:hover { - background-color: var(--divider-color-hover); - } - .is-translucent .pdf-sidebar-resizer:hover { - background-color: var(--divider-color-hover); - } -} -.pdf-toolbar { - align-items: stretch; - background-color: var(--background-primary); - border-bottom: 1px solid var(--background-modifier-border); - display: flex; - justify-content: space-between; - overflow: auto; - padding: var(--size-4-1) var(--size-4-3); - position: relative; -} -.hover-popover .pdf-toolbar { - display: none; -} -.pdf-page-numbers { - white-space: nowrap; - margin-right: var(--size-4-1); - font-size: var(--font-ui-small); - font-variant-numeric: tabular-nums; -} -.pdf-toolbar-left, -.pdf-toolbar-center, -.pdf-toolbar-right { - display: flex; - align-items: center; - gap: var(--size-4-1); -} -.pdf-toolbar-left.hidden, -.pdf-toolbar-center.hidden, -.pdf-toolbar-right.hidden { - display: none; -} -.pdf-toolbar-center { - position: absolute; - top: var(--size-4-1); - height: calc(100% - var(--size-4-2)); - left: 50%; - transform: translateX(-50%); -} -.pdf-toolbar-spacer { - width: var(--size-4-3); -} -.pdf-toolbar-divider { - width: var(--border-width); - height: var(--icon-size); - background-color: var(--background-modifier-border); -} -.pdf-page-input { - width: 7ch; - text-align: right; - font-variant-numeric: tabular-nums; -} -.pdf-page-input.mod-page-loading { - background-color: var(--background-secondary); - opacity: 0.5; -} -.pdf-findbar { - background-color: var(--background-primary); - flex-direction: row-reverse; - font-size: var(--font-ui-small); - gap: var(--size-4-1); - left: 0; - line-height: 1; - padding: var(--size-2-3); - position: absolute; - right: 0; - top: 0; - z-index: 101; -} -.pdf-findbar input { - min-width: 300px; -} -.pdf-findbar.mod-hidden { - display: none; -} -.pdf-findbar input[type="checkbox"] { - display: none; - pointer-events: none; -} -.pdf-findbar label { - -webkit-user-select: none; - user-select: none; -} -.pdf-findbar label:hover, -.pdf-findbar input:focus-visible + label { - color: var(--toggled-btn-color); - background-color: var(--button-hover-color); -} -.pdf-findbar .pdf-toolbar-field[type="checkbox"]:checked + .pdf-toolbar-label { - background-color: var(--toggled-btn-bg-color) !important; - color: var(--toggled-btn-color); -} -.pdf-findbar .pdf-search-wrapper { - display: flex; - gap: var(--size-4-1); - align-items: center; -} -.pdf-findbar .mod-not-found { - --background-modifier-form-field: rgba(var(--background-modifier-error-rgb), 0.1); - --background-modifier-border-focus: rgba(var(--background-modifier-error-rgb), 0.6); -} -.pdf-findbar .mod-pending::before { - -webkit-mask-image: url('data:image/svg+xml,'); - animation: rotation 1s infinite linear; -} -.is-phone .pdf-findbar { - overflow: none; -} -.is-phone .pdf-findbar .pdf-toolbar-button { - height: auto; - width: auto; - padding: 6px 0; - background-color: transparent; - color: var(--text-accent); - flex-grow: 0; - flex-shrink: 0; -} -.is-phone .pdf-findbar .pdf-toolbar-divider, -.is-phone .pdf-findbar .pdf-findbar-settings-btn, -.is-phone .pdf-findbar .pdf-findbar-message { - display: none; -} -.is-phone .pdf-findbar input { - min-width: 0; -} -.is-phone .pdf-findbar .search-input-container { - flex-grow: 1; -} -.is-phone .pdf-findbar .pdf-search-wrapper { - gap: var(--size-4-2); -} -@keyframes rotation { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} -.pdf-find-results-count { - color: var(--text-muted); - margin: 0 var(--size-4-2); - font-style: italic; - white-space: nowrap; -} -.pdf-find-results-count:empty { - display: none; -} -.pdf-findbar-settings { - background-color: var(--background-primary); - border-radius: var(--radius-m); - border: 1px solid var(--background-modifier-border); - box-shadow: var(--shadow-s); - padding: var(--size-4-1) var(--size-4-2); - position: absolute; - transform: translateX(-100%); - width: 200px; - z-index: 200; -} -.pdf-findbar-settings .setting-item { - padding: var(--size-4-1) 0; - border: none; -} -.pdf-findbar-settings .setting-item-name { - font-size: var(--font-ui-small); -} -.pdf-password-dialog { - align-items: center; - display: flex; - flex-direction: column; - font-size: var(--font-ui-medium); - gap: var(--size-4-1); - justify-content: center; - left: 50%; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); -} -.pdf-password-dialog .mod-small { - font-size: var(--font-ui-small); -} -.pdf-password-dialog input { - margin-top: var(--size-4-2); -} -.pdf-lock-icon .svg-icon { - --icon-size: var(--icon-xl); - --icon-stroke: var(--icon-xl-stroke-width); -} -.textLayer .mod-focused { - background-color: rgb(var(--text-highlight-bg-rgb)); - border-radius: var(--radius-s); - box-sizing: content-box; - padding: var(--size-4-1); - margin: calc(var(--size-4-1) * -1); -} -.textLayer .mod-focused.appended { - position: static; -} -.annotationLayer .mod-focused { - background-color: rgba(var(--text-highlight-bg-rgb), 0.1); - border-radius: var(--radius-s); - box-shadow: var(--shadow-s); - box-sizing: content-box; - margin: calc(var(--size-4-2) * -1); - border: var(--size-4-1) solid rgba(var(--text-highlight-bg-rgb), 0.8); - padding: var(--size-4-1); -} -.annotationLayer .boundingRect { - z-index: 2000; - position: absolute; - pointer-events: none; -} -.annotationLayer .boundingRect > * { - pointer-events: initial; -} -.pdf-viewer .canvasWrapper { - position: absolute; - inset: 0; - box-shadow: var(--pdf-shadow); -} -.pdf-viewer .page { - box-sizing: content-box; - border: calc(var(--size-4-1) * var(--scale-factor)) solid transparent; - flex-shrink: 0; - margin: 0 auto; -} -.spread .page, -.pdf-viewer:is(.scrollHorizontal, .scrollWrapped) .page { - border: var(--size-4-1) solid transparent; -} -.pdf-viewer.removePageBorders .page + .page { - border-top: var(--size-4-1) solid transparent; -} -.pdf-viewer.removePageBorders .spread .page + .page { - border-top: none; -} -.pdf-viewer.removePageBorders .spread .canvasWrapper { - box-shadow: var(--pdf-spread-shadow); -} -.pdf-viewer.removePageBorders .spread + .spread { - border-top: var(--size-4-1) solid transparent; -} -.textLayer { - -webkit-user-select: text; - user-select: text; - opacity: 0.2; -} -.textLayer ::selection, -.markdown-source-view.mod-cm6 .textLayer ::selection { - background-color: hsl(var(--color-accent-hsl)); -} -.textLayer .highlight { - margin: -1px; - padding: 1px; - border-radius: var(--radius-s); -} -.textLayer .highlight.appended { - position: static; - display: inline-block; -} -.textLayer .highlight.begin { - border-radius: var(--radius-s) 0 0 var(--radius-s); -} -.textLayer .highlight.end { - border-radius: 0 var(--radius-s) var(--radius-s) 0; -} -.textLayer .highlight.selected { - box-shadow: 0 0 0 2px hsl(var(--interactive-accent-hsl)); - background-color: hsl(var(--interactive-accent-hsl)); -} -.textLayer .highlight:not(.selected) { - box-shadow: 0 0 0 2px rgb(var(--color-yellow-rgb)); - background-color: rgb(var(--color-yellow-rgb)); -} -.popupWrapper { - --pdf-popup-width: 280px; - font-size: var(--font-ui-medium); - pointer-events: none; - position: absolute; - transform: translate(-50%, 0); - z-index: 10000; -} -.popupWrapper > div { - margin: var(--size-4-3); - background-color: var(--background-primary); - border-radius: var(--radius-s); - filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.2)) drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3)) drop-shadow(0px 4px 6px rgba(0, 0, 0, 0.3)); -} -.popupWrapper > div:after { - background: var(--background-primary); - border-top-left-radius: 2px; - content: ""; - height: var(--size-4-3); - left: calc(50% - 2px); - position: absolute; - top: -5px; - transform: rotate(45deg); - width: var(--size-4-3); - z-index: -1; -} -.is-phone .pdf-annotation-modal .modal { - height: auto; - max-height: 40vh; - min-height: 0; - top: unset; -} -.is-phone .pdf-annotation-modal .modal .modal-close-button, -.is-phone .pdf-annotation-modal .modal .modal-title { - display: none; -} -.is-phone .pdf-annotation-modal .modal-content { - overflow: hidden; - padding: 0; -} -.is-phone .pdf-annotation-modal .popup { - flex-direction: column-reverse; - height: 100%; - overflow: hidden; -} -.is-phone .pdf-annotation-modal .popupContent { - height: 100%; - max-height: none; - padding-bottom: calc(var(--modal-bottom) + var(--size-4-4)); - padding-top: 0; -} -.is-phone .pdf-annotation-modal .popupContent:empty + .popupMeta, -.is-phone .pdf-annotation-modal .popupMeta { - --icon-size: var(--font-ui-medium); - --icon-stroke: var(--icon-m-stroke-width); - background-color: transparent; - padding: var(--size-4-2) var(--size-4-4); - border-top: none; -} -.popup { - cursor: initial; - display: flex; - flex-direction: column; - pointer-events: auto; - -webkit-user-select: text; - user-select: text; - white-space: normal; - width: var(--pdf-popup-width); - word-wrap: break-word; -} -.popupContent { - font-size: var(--font-ui-small); - line-height: var(--line-height-tight); - max-height: 200px; - overflow: auto; - padding: var(--size-4-4); -} -.popupContent:empty { - display: none; -} -.popupMeta { - --icon-size: var(--font-ui-small); - --icon-stroke: 2.5px; - align-items: center; - background-color: var(--background-secondary); - border-top: 1px solid var(--background-modifier-border); - color: var(--text-muted); - display: flex; - font-size: var(--font-ui-smaller); - gap: var(--size-4-1); - justify-content: space-between; - padding: var(--size-4-1) var(--size-4-2); - border-bottom-left-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); -} -.popupContent:empty + .popupMeta { - border-top: none; - background-color: var(--background-primary); - border-top-left-radius: var(--radius-s); - border-top-right-radius: var(--radius-s); -} -.popupMeta .clickable-icon { - margin-right: calc(var(--size-4-1) * -1); - margin-left: calc(var(--size-2-1) * -1); -} -.popupDate { - white-space: nowrap; -} -.markdown-rendered video { - max-width: 100%; - outline: none; -} -.markdown-rendered blockquote { - color: var(--blockquote-color); - font-style: var(--blockquote-font-style); - background-color: var(--blockquote-background-color); - border-left: var(--blockquote-border-thickness) solid var(--blockquote-border-color); - padding: 0 0 0 var(--size-4-6); - margin-inline-start: 0; - margin-inline-end: 0; -} -.markdown-rendered blockquote > :first-child { - margin-top: 0; -} -.markdown-rendered blockquote > :last-child { - margin-bottom: 0; -} -.cm-s-obsidian span.cm-quote { - color: var(--blockquote-color); -} -.cm-s-obsidian span.cm-formatting-quote { - color: var(--text-faint); -} -.cm-s-obsidian .hmd-inactive-line span.cm-formatting-quote { - color: transparent; -} -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote:before, -.markdown-source-view.mod-cm6 .cm-blockquote-border:before { - content: "\200b"; - display: block; - width: 1px; - border-left: var(--blockquote-border-thickness) solid var(--blockquote-border-color); - color: transparent; - position: absolute; - top: 0; - bottom: 0; -} -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote { - font-style: var(--blockquote-style); - background-color: var(--blockquote-background-color); -} -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote:before { - left: 0; -} -.markdown-source-view.mod-cm6 .cm-blockquote-border { - display: inline-block; -} -.callout { - --callout-color: var(--callout-default); - --callout-icon: lucide-pencil; -} -.callout[data-callout="abstract"], -.callout[data-callout="summary"], -.callout[data-callout="tldr"] { - --callout-color: var(--callout-summary); - --callout-icon: lucide-clipboard-list; -} -.callout[data-callout="info"] { - --callout-color: var(--callout-info); - --callout-icon: lucide-info; -} -.callout[data-callout="todo"] { - --callout-color: var(--callout-todo); - --callout-icon: lucide-check-circle-2; -} -.callout[data-callout="important"] { - --callout-color: var(--callout-important); - --callout-icon: lucide-flame; -} -.callout[data-callout="tip"], -.callout[data-callout="hint"] { - --callout-color: var(--callout-tip); - --callout-icon: lucide-flame; -} -.callout[data-callout="success"], -.callout[data-callout="check"], -.callout[data-callout="done"] { - --callout-color: var(--callout-success); - --callout-icon: lucide-check; -} -.callout[data-callout="question"], -.callout[data-callout="help"], -.callout[data-callout="faq"] { - --callout-color: var(--callout-question); - --callout-icon: help-circle; -} -.callout[data-callout="warning"], -.callout[data-callout="caution"], -.callout[data-callout="attention"] { - --callout-color: var(--callout-warning); - --callout-icon: lucide-alert-triangle; -} -.callout[data-callout="failure"], -.callout[data-callout="fail"], -.callout[data-callout="missing"] { - --callout-color: var(--callout-fail); - --callout-icon: lucide-x; -} -.callout[data-callout="danger"], -.callout[data-callout="error"] { - --callout-color: var(--callout-error); - --callout-icon: lucide-zap; -} -.callout[data-callout="bug"] { - --callout-color: var(--callout-bug); - --callout-icon: lucide-bug; -} -.callout[data-callout="example"] { - --callout-color: var(--callout-example); - --callout-icon: lucide-list; -} -.callout[data-callout="quote"], -.callout[data-callout="cite"] { - --callout-color: var(--callout-quote); - --callout-icon: quote-glyph; -} -.callout { - overflow: hidden; - border-style: solid; - border-color: rgba(var(--callout-color), var(--callout-border-opacity)); - border-width: var(--callout-border-width); - border-radius: var(--callout-radius); - margin: 1em 0; - mix-blend-mode: var(--callout-blend-mode); - background-color: rgba(var(--callout-color), 0.1); - padding: var(--callout-padding); -} -.callout.is-collapsible .callout-title { - cursor: var(--cursor); -} -.callout-title { - padding: var(--callout-title-padding); - display: flex; - gap: var(--size-4-1); - font-size: var(--callout-title-size); - color: rgb(var(--callout-color)); - line-height: var(--line-height-tight); - align-items: flex-start; -} -.callout-content { - overflow-x: auto; - padding: var(--callout-content-padding); - background-color: var(--callout-content-background); -} -.callout-icon { - flex: 0 0 auto; - display: flex; - align-items: center; -} -.callout-icon .svg-icon { - color: rgb(var(--callout-color)); -} -.callout-icon::after { - content: "\200B"; -} -.callout-title-inner { - font-weight: var(--bold-weight); - color: var(--callout-title-color); -} -.callout-fold { - display: flex; - align-items: center; - padding-right: var(--size-4-2); -} -.callout-fold::after { - content: "\200B"; -} -.callout-fold .svg-icon { - transition: transform 100ms ease-in-out; -} -.callout-fold.is-collapsed .svg-icon { - transform: rotate(-90deg); -} -.markdown-source-view.mod-cm6 .callout { - margin: 0; -} -.markdown-rendered code { - color: var(--code-normal); - font-family: var(--font-monospace); - background-color: var(--code-background); - border-radius: var(--code-radius); - font-size: var(--code-size); - padding: 0.1em 0.25em; - -webkit-box-decoration-break: clone; -} -.cm-s-obsidian span.cm-inline-code { - color: var(--code-normal); - font-size: var(--code-size); - background-color: var(--code-background); - vertical-align: baseline; - -webkit-box-decoration-break: clone; -} -.cm-s-obsidian span.cm-inline-code span.cm-inline-code.cm-hmd-indented-code { - background-color: transparent; -} -.cm-s-obsidian span.cm-inline-code span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code):not(.obsidian-search-match-highlight) { - background-color: var(--code-background); - vertical-align: baseline; -} -.cm-s-obsidian span.cm-inline-code span.cm-inline-code.hmd-hidden-token { - font-size: 0; -} -.cm-s-obsidian .cm-inline-code:not(.cm-formatting) { - border-radius: var(--code-radius); - padding: 0.1em 0.25em; -} -.cm-s-obsidian .cm-inline-code.cm-formatting { - border-radius: var(--code-radius) 0 0 var(--code-radius); - padding: 0.1em 0; -} -.cm-s-obsidian .cm-inline-code:not(.cm-formatting) + .cm-formatting.cm-inline-code { - border-radius: 0 var(--code-radius) var(--code-radius) 0; - padding-left: 0; -} -.cm-s-obsidian .cm-inline-code.cm-formatting ~ .cm-inline-code:not(.cm-formatting) { - border-radius: 0; - padding: 0.1em 0; -} -.markdown-rendered pre { - position: relative; - padding: var(--size-4-3) var(--size-4-4); - min-height: 38px; - background-color: var(--code-background); - border-radius: var(--code-radius); - white-space: var(--code-white-space); - overflow-x: auto; -} -.markdown-rendered pre code { - border: none; - padding: 0; - background-color: transparent; -} -.markdown-rendered pre:not(:hover) > button.copy-code-button { - display: none; -} -.markdown-rendered button.copy-code-button { - margin: 6px; - padding: 6px 8px; - height: auto; - background-color: transparent; - box-shadow: none; - color: var(--text-muted); - font-size: var(--font-ui-smaller); - font-family: var(--font-interface); - position: absolute; - top: 0; - right: 0; -} -@media (hover: hover) { - .markdown-rendered button.copy-code-button:hover { - background-color: var(--background-modifier-hover); - } -} -.markdown-source-view.mod-cm6 .cm-preview-code-block pre { - margin: 0; -} -.markdown-source-view.mod-cm6 .code-block-flair { - position: absolute; - right: 6px; - top: 6px; - z-index: 1; - display: inline-block; - padding: var(--size-4-1) var(--size-4-2); - border-radius: var(--code-radius); - font-family: var(--font-interface); - font-size: var(--font-ui-smaller); - color: var(--text-muted); - cursor: var(--cursor); -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .code-block-flair:hover { - background-color: var(--background-modifier-hover); - } -} -.markdown-source-view.mod-cm6 .cm-line.HyperMD-codeblock { - padding-left: var(--size-4-4); - color: var(--code-normal); -} -.cm-s-obsidian .HyperMD-codeblock { - font-family: var(--font-monospace); - font-size: var(--code-size); -} -.cm-s-obsidian .HyperMD-codeblock-begin, -.cm-s-obsidian .HyperMD-codeblock-end { - color: var(--code-normal); -} -.cm-s-obsidian .HyperMD-codeblock span.cm-inline-code { - background-color: inherit; - border: inherit; - padding: inherit; - font-size: inherit; -} -.cm-s-obsidian div.HyperMD-codeblock-bg { - left: 0; - right: 0; - background-color: var(--code-background); -} -.cm-s-obsidian div.HyperMD-codeblock-begin-bg { - border-top-left-radius: var(--code-radius); - border-top-right-radius: var(--code-radius); -} -.cm-s-obsidian div.HyperMD-codeblock-end-bg { - border-bottom-left-radius: var(--code-radius); - border-bottom-right-radius: var(--code-radius); -} -.cm-s-obsidian div.HyperMD-codeblock-begin-bg, -.cm-s-obsidian div.HyperMD-codeblock-end-bg { - background-color: var(--code-background); -} -code[class*="language-"], -pre[class*="language-"] { - color: var(--code-normal); - background: none; - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; - font-family: var(--font-monospace); - text-align: left; - word-spacing: normal; - line-height: var(--line-height-normal); - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: var(--code-background); -} -/* Code blocks */ -pre[class*="language-"] { - overflow: hidden; -} -code[class*="language-"] { - display: block; - padding: 1em; - overflow: auto; -} -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} -.token.entity { - cursor: help; -} -/* Syntax highlighting */ -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: var(--code-comment); -} -.token.namespace { - opacity: 0.7; -} -.token.tag, -.token.constant, -.token.symbol, -.token.deleted { - color: var(--code-tag); -} -.token.punctuation { - color: var(--code-punctuation); -} -.token.boolean, -.token.number { - color: var(--code-value); -} -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.inserted { - color: var(--code-string); -} -.token.operator { - color: var(--code-operator); -} -.token.entity, -.token.parameter, -.token.property, -.token.url, -.language-css .token.string, -.style .token.string, -.token.variable { - color: var(--code-property); -} -.token.atrule, -.token.attr-value, -.token.builtin, -.token.function, -.token.class-name, -.token.property-access { - color: var(--code-function); -} -.token.keyword { - color: var(--code-keyword); -} -.token.regex, -.token.important { - color: var(--code-important); -} -.cm-inline-code, -.cm-math { - color: var(--code-normal); -} -.cm-comment, -.cm-meta { - color: var(--code-comment); -} -.cm-tag { - color: var(--code-tag); -} -.cm-punctuation, -.cm-bracket, -.cm-hr { - color: var(--code-punctuation); -} -.cm-number { - color: var(--code-value); -} -.cm-qualifier, -.cm-string, -.cm-string-2 { - color: var(--code-string); -} -.cm-operator { - color: var(--code-operator); -} -.cm-link, -.cm-variable, -.cm-variable-2, -.cm-variable-3 { - color: var(--code-property); -} -.cm-builtin, -.cm-property, -.cm-attribute, -.cm-type { - color: var(--code-function); -} -.cm-keyword { - color: var(--code-keyword); -} -.markdown-preview-view .markdown-embed .markdown-preview-view { - --file-folding-offset: 0px; - height: 100%; - padding: 0; -} -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h1, -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h2, -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h3, -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h4, -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h5, -.markdown-preview-view .markdown-embed .markdown-preview-view .markdown-preview-pusher h6 { - margin-top: 0; -} -.pdf-embed, -.markdown-source-view .pdf-embed, -.markdown-source-view.mod-cm6 .cm-content > .pdf-embed, -.internal-embed.pdf-embed:not(.image-embed) { - width: 100%; - height: 800px; - display: flex; - flex-direction: column; -} -.pdf-embed { - overflow: hidden; - position: relative; -} -.pdf-embed:not(.canvas-node-content) { - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); -} -.pdf-embed:not(.canvas-node-content) .edit-block-button + .pdf-toolbar { - padding-right: var(--size-4-9); -} -.markdown-source-view.mod-cm6 .pdf-embed .edit-block-button { - background-color: var(--background-primary); - opacity: 1; - top: 6px; - z-index: 1; -} -.markdown-source-view.mod-cm6 .pdf-embed .edit-block-button:hover { - color: var(--icon-color-hover); - background-color: var(--background-modifier-hover); -} -@media print { - .pdf-embed:not(.canvas-node-content) { - align-items: center; - border: none; - justify-content: center; - max-height: 80vh; - } - .pdf-embed:not(.canvas-node-content) .pdf-container, - .pdf-embed:not(.canvas-node-content) .pdf-toolbar { - display: none; - } - .pdf-embed:not(.canvas-node-content) .canvasWrapper { - border-radius: var(--radius-s); - border: 1px solid var(--background-modifier-border); - max-height: 100%; - overflow: hidden; - width: fit-content; - } - .pdf-embed:not(.canvas-node-content) canvas { - height: auto; - width: 100%; - } -} -.markdown-embed, -.file-embed { - position: relative; -} -.markdown-embed-link, -.file-embed-link { - position: absolute; - top: 4px; - right: 4px; - color: var(--icon-color); - opacity: var(--icon-opacity); - cursor: var(--cursor-link); - padding: var(--size-2-2); - border-radius: var(--radius-s); - display: flex; - align-items: center; - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); -} -@media (hover: hover) { - .markdown-embed-link:hover, - .file-embed-link:hover { - color: var(--icon-color-hover); - opacity: var(--icon-opacity-hover); - background: var(--background-modifier-hover); - } -} -.file-embed-title { - display: flex; - align-items: center; - justify-content: center; - gap: var(--size-4-2); -} -.file-embed-icon { - color: var(--text-muted); - display: flex; -} -.file-embed { - display: flex; - justify-content: center; - border-radius: var(--radius-m); - background-color: var(--background-primary-alt); -} -.file-embed.mod-generic, -.file-embed.mod-empty { - cursor: var(--cursor-link); - padding: var(--size-4-2); - color: var(--text-muted); - text-align: center; - font-size: var(--font-smaller); -} -@media (hover: hover) { - .file-embed.mod-generic:hover, - .file-embed.mod-empty:hover { - color: var(--text-normal); - background-color: var(--background-secondary); - } -} -.file-embed.mod-empty-attachment { - padding: var(--size-4-2); - color: var(--text-muted); - text-align: center; - font-size: var(--font-smaller); -} -.markdown-embed-content { - height: 100%; -} -.embed-title { - align-items: center; - display: flex; - gap: var(--size-4-1); - font-size: var(--font-text-size); - font-weight: var(--bold-weight); - text-align: left; - text-overflow: ellipsis; - white-space: nowrap; - padding: 0 0 var(--size-4-2) 0; -} -.markdown-embed { - font-style: var(--embed-font-style); - background-color: var(--embed-background); - border-top: var(--embed-border-top); - border-right: var(--embed-border-right); - border-bottom: var(--embed-border-bottom); - border-left: var(--embed-border-left); - margin: 0; - padding: var(--embed-padding); -} -.markdown-embed .markdown-preview-view { - padding: 0; -} -.internal-embed:not(.image-embed) { - display: block; -} -.internal-embed img:not([width]), -.internal-embed audio, -.internal-embed video { - max-width: 100%; -} -.inline-embed .markdown-embed-content { - height: fit-content; - max-height: var(--embed-max-height); - overflow: auto; -} -.inline-embed .markdown-embed-content p:first-child { - margin-top: 0; -} -.inline-embed .markdown-source-view.mod-cm6 .cm-editor { - min-height: unset; -} -.embed-iframe { - width: 100%; - height: 100%; -} -iframe.external-embed { - width: 600px; - max-width: 100%; - height: 350px; -} -.markdown-source-view.mod-cm6 .internal-embed { - white-space: normal; -} -.markdown-source-view.mod-cm6 .cm-embed-block { - position: relative; - white-space: normal; - overflow-wrap: normal; - word-break: normal; -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .cm-embed-block:not(.cm-table-widget):hover { - box-shadow: var(--embed-block-shadow-hover); - border-radius: var(--radius-s); - overflow: hidden; - cursor: text; - } - .markdown-source-view.mod-cm6 .cm-embed-block:not(.cm-table-widget):hover .edit-block-button { - opacity: 1; - } - .markdown-source-view.mod-cm6 .cm-embed-block:not(.cm-table-widget):hover .edit-block-button:hover { - background-color: var(--background-modifier-hover); - } -} -.markdown-source-view.mod-cm6 .cm-embed-block pre { - margin: 0; -} -.markdown-source-view.mod-inside-iframe > .cm-editor > .cm-scroller { - flex-direction: column; - padding: 0 var(--size-4-4); -} -.markdown-source-view.mod-inside-iframe > .cm-editor > .cm-scroller::before, -.markdown-source-view.mod-inside-iframe > .cm-editor > .cm-scroller::after { - content: " "; - display: block; - min-height: min(calc(10vh - 3px), var(--size-4-4)); - max-height: var(--size-4-4); - flex: 1 1 0; -} -.markdown-source-view.mod-inside-iframe > .cm-editor > .cm-scroller > .cm-sizer { - min-height: unset; - flex: 1 0 0; -} -.footnote-link { - text-decoration: none; -} -.footnotes { - font-size: var(--footnote-size); -} -.footnote-ref { - vertical-align: super; -} -.footnote-backref { - color: var(--text-faint); - text-decoration: none; -} -@media (hover: hover) { - .footnote-backref:hover { - color: var(--text-accent); - text-decoration: none; - } -} -.cm-s-obsidian .cm-line.HyperMD-footnote { - font-size: var(--footnote-size); - padding-left: 8px; -} -.cm-s-obsidian .cm-line.HyperMD-footnote span.cm-hmd-footnote { - color: var(--text-faint); - cursor: text; -} -.cm-s-obsidian .cm-line.HyperMD-footnote span.cm-hmd-footnote .cm-underline { - text-decoration: none; -} -@media (hover: hover) { - .cm-s-obsidian .cm-line.HyperMD-footnote span.cm-hmd-footnote:hover { - color: var(--text-accent); - } -} -.markdown-rendered .frontmatter.mod-failed { - position: relative; -} -.markdown-rendered .frontmatter.mod-failed .mod-error { - color: var(--text-error); - font-size: var(--font-smaller); -} -.markdown-rendered .frontmatter.mod-failed:after { - content: ''; - position: absolute; - top: 0; - right: 0; - width: 100%; - height: 100%; - background-color: var(--background-modifier-error); - opacity: 0.3; - mix-blend-mode: var(--highlight-mix-blend-mode); -} -.metadata-container { - --input-height: var(--metadata-input-height); - border-radius: var(--metadata-border-radius); - background-color: var(--metadata-background); - border-color: var(--metadata-border-color); - border-style: solid; - border-width: var(--metadata-border-width); - padding: var(--metadata-padding); - color: var(--text-muted); - position: relative; - max-width: var(--metadata-max-width); - margin-block-end: var(--p-spacing); - transform: translateX(calc(var(--size-4-1) * -1)); -} -.metadata-container .metadata-add-button { - padding-left: var(--size-2-3); - margin-top: 0.5em; - font-size: var(--metadata-label-font-size); -} -.markdown-embed-content .metadata-container { - display: none; -} -.metadata-container.is-collapsed .metadata-property { - display: none; -} -.metadata-container:focus-within .metadata-property.is-selected { - color: var(--nav-item-color-selected); - background-color: var(--nav-item-background-selected); -} -.metadata-properties { - display: flex; - flex-direction: column; - gap: var(--metadata-gap); -} -.metadata-properties-heading { - display: inline-block; - padding: var(--size-4-1); - margin-bottom: var(--size-4-2); - position: relative; - line-height: 1.2; -} -.metadata-properties-heading:before { - content: ''; - border-radius: var(--metadata-property-radius); - position: absolute; - display: inline-block; - left: 0; - right: 0; - top: 0; - bottom: 0; -} -.metadata-properties-heading:focus:before { - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -.metadata-properties-heading .collapse-indicator { - position: absolute; - left: -22px; - padding: 0 6px; -} -.metadata-properties-title { - user-select: none; - font-size: max(var(--font-ui-small), 1em); - color: var(--text-normal); - font-weight: var(--font-medium); -} -.metadata-input-text { - background-color: transparent; - width: 100%; - min-height: var(--input-height); - border-width: 0px; - resize: none; - overflow-y: hidden; -} -.metadata-input-text::-webkit-date-and-time-value { - text-align: left; -} -.metadata-input-text.mod-date { - padding-right: 0; - width: auto; -} -.metadata-property { - position: relative; - display: flex; - align-items: start; - padding: var(--metadata-property-padding); - border-radius: var(--metadata-property-radius); - overflow: hidden; - background-color: var(--metadata-property-background); -} -@media (hover: hover) { - .metadata-property:hover { - --metadata-divider-color: var(--metadata-divider-color-hover); - background-color: var(--metadata-property-background-hover); - box-shadow: 0 0 0 1px var(--background-modifier-border); - } -} -.metadata-property:focus-within { - --metadata-divider-color: var(--metadata-divider-color-hover); - background-color: var(--metadata-property-background-hover); - box-shadow: 0 0 0 1px var(--background-modifier-border); - --metadata-divider-color: var(--metadata-divider-color-focus); - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -.metadata-property-icon { - cursor: var(--cursor); - color: var(--icon-color); - display: flex; - align-items: center; - padding: var(--size-4-1) 0; - height: var(--input-height); - -webkit-user-select: none; -} -.metadata-property-icon:before { - content: "\200B"; - width: var(--size-4-1); -} -@media (hover: hover) { - .metadata-property-icon:hover .svg-icon { - color: var(--icon-color-focused); - } -} -.metadata-property-icon[aria-disabled='true'] { - color: var(--text-muted); - opacity: 0.4; -} -.metadata-input-number { - background-color: transparent; - width: 100%; - border-width: 0px; -} -input[type=checkbox].metadata-input-checkbox { - margin-left: var(--size-4-2); -} -.metadata-property-key { - display: flex; - align-self: stretch; - align-items: flex-start; - flex-direction: row; - flex-shrink: 0; - border-bottom: var(--metadata-divider-width) solid var(--metadata-divider-color); - background-color: var(--metadata-label-background); - width: var(--metadata-label-width); - min-width: var(--metadata-label-width); -} -@media (hover: hover) { - .metadata-property-key:hover { - background-color: var(--metadata-label-background-hover); - } -} -.metadata-property-key:focus-within { - background-color: var(--metadata-label-background-active); -} -input.metadata-property-key-input { - border: none; - flex-grow: 1; - color: var(--metadata-label-text-color); - font-size: var(--metadata-label-font-size); - font-weight: var(--metadata-label-font-weight); - height: var(--input-height); - background-color: transparent; - display: flex; - align-items: center; - text-overflow: ellipsis; - overflow: hidden; -} -@media (hover: hover) { - input.metadata-property-key-input:hover { - background-color: transparent; - } -} -input.metadata-property-key-input:active, -input.metadata-property-key-input:focus { - background-color: transparent; -} -.metadata-property button { - margin-top: var(--size-4-2); -} -.metadata-property input[type='text'], -.metadata-property input[type='date'], -.metadata-property input[type='datetime-local'], -.metadata-property input[type='number'], -.metadata-property .multi-select-container { - border-radius: 0; - border: none; -} -.metadata-property input[type='text']:hover, -.metadata-property input[type='date']:hover, -.metadata-property input[type='datetime-local']:hover, -.metadata-property input[type='number']:hover, -.metadata-property .multi-select-container:hover, -.metadata-property input[type='text']:active, -.metadata-property input[type='date']:active, -.metadata-property input[type='datetime-local']:active, -.metadata-property input[type='number']:active, -.metadata-property .multi-select-container:active, -.metadata-property input[type='text']:focus, -.metadata-property input[type='date']:focus, -.metadata-property input[type='datetime-local']:focus, -.metadata-property input[type='number']:focus, -.metadata-property .multi-select-container:focus { - box-shadow: none; - border: none; -} -.metadata-property .metadata-input-text, -.metadata-property .metadata-input-number, -.metadata-property .multi-select-container { - background-color: transparent; -} -.metadata-property .metadata-input-text:hover, -.metadata-property .metadata-input-number:hover, -.metadata-property .multi-select-container:hover { - background-color: transparent; -} -.metadata-property .metadata-input-text:active, -.metadata-property .metadata-input-number:active, -.metadata-property .multi-select-container:active, -.metadata-property .metadata-input-text:focus, -.metadata-property .metadata-input-number:focus, -.metadata-property .multi-select-container:focus, -.metadata-property .metadata-input-text:focus-within, -.metadata-property .metadata-input-number:focus-within, -.metadata-property .multi-select-container:focus-within { - background-color: transparent; -} -.metadata-property .metadata-input-text { - text-overflow: ellipsis; - overflow: hidden; -} -.metadata-property .multi-select-container input { - background-color: transparent; -} -.metadata-property .multi-select-container { - padding: var(--size-4-1) var(--size-4-2); -} -.metadata-property[data-property-key="tags"] { - --pill-color: var( - --tag-color); - --pill-color-hover: var( - --tag-color-hover); - --pill-color-remove: var( - --tag-color); - --pill-color-remove-hover: var( - --tag-color-hover); - --pill-decoration: var( - --tag-decoration); - --pill-decoration-hover: var( - --tag-decoration-hover); - --pill-background: var( - --tag-background); - --pill-background-hover: var( - --tag-background-hover); - --pill-border-color: var( - --tag-border-color); - --pill-border-color-hover: var( - --tag-border-color-hover); - --pill-border-width: var( - --tag-border-width); - --pill-padding-x: var( - --tag-padding-x); - --pill-padding-y: var( - --tag-padding-y); - --pill-radius: var( - --tag-radius); - --pill-weight: var( - --tag-weight); - --pill-focus-width: 100%; - --pill-focus-left-adjust: 0; -} -.metadata-property[data-property-key="tags"] .multi-select-pill { - cursor: var(--cursor-link); -} -.metadata-property:not([data-property-key="tags"]) { - --pill-border-width: 0; - --pill-padding-x: 0; - --pill-padding-y: 0; - --pill-color: var(--metadata-input-text-color); -} -.metadata-property:not([data-property-key="tags"]) .multi-select-pill { - line-height: var(--line-height-tight); -} -.metadata-property-warning-icon { - --icon-size: var(--icon-s); - position: absolute; - right: var(--size-2-1); - top: var(--size-2-1); - bottom: var(--size-2-1); - align-items: center; - display: flex; - color: var(--text-warning); -} -@media (hover: hover) { - .metadata-property-warning-icon:hover { - color: var(--text-warning); - background-color: rgba(var(--color-orange-rgb), 0.15); - } -} -.metadata-property-value { - display: flex; - flex: 1 1 auto; - gap: var(--size-2-2); - align-items: center; - align-self: stretch; - min-height: var(--input-height); - background-color: var(--metadata-input-background); - border-bottom: var(--metadata-divider-width) solid var(--metadata-divider-color); - overflow: hidden; -} -.metadata-property-value.mod-external-link:not(:placeholder-shown) { - text-decoration-line: var(--link-decoration); - text-decoration-thickness: var(--link-decoration-thickness); - text-decoration-color: var(--text-faint); -} -@media (hover: hover) { - .metadata-property-value.mod-external-link:not(:placeholder-shown) .metadata-link-inner:hover { - text-decoration-line: var(--link-decoration-hover); - } -} -.metadata-property-value .mod-unknown { - color: var(--text-warning); - padding: var(--size-4-1) var(--size-4-2); - font-size: var(--metadata-input-font-size); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} -.metadata-property-value .multi-select-input { - font-size: inherit; -} -.metadata-property-value .multi-select-container, -.metadata-property-value .metadata-link-inner, -.metadata-property-value input { - font-size: var(--metadata-input-font-size); -} -.metadata-property-value .multi-select-container { - --background-modifier-form-field: transparent; - --background-modifier-border: transparent; - align-items: center; -} -.metadata-property-value .multi-select-container .multi-select-pill.is-invalid { - --pill-background: transparent; - --pill-color: var(--text-error); - --pill-color-remove: var(--text-error); -} -.metadata-property-value .external-link.multi-select-pill-content, -.metadata-property-value .internal-link .multi-select-pill-content { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.metadata-property-value .clickable-icon { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - margin-right: 2px; - margin-left: -4px; - padding: 4px; -} -.metadata-property-value .clickable-icon:hover { - background: transparent; - color: var(--text-normal); - cursor: var(--cursor-link); -} -@media (hover: hover) { - .metadata-property-value:hover { - background-color: var(--metadata-input-background-hover); - } -} -.metadata-property-value:focus-within { - background-color: var(--metadata-input-background-active); -} -/* Edit mode */ -.cm-hmd-frontmatter { - font-size: var(--font-smaller); - color: var(--text-muted); -} -.cm-hmd-frontmatter.cm-hmd-frontmatter.cm-def { - color: var(--text-muted); -} -.cm-hmd-frontmatter .is-invalid { - color: var(--text-error); -} -.cm-hmd-frontmatter .error-marker { - background-color: var(--text-error); -} -.cm-hmd-frontmatter .error-marker .is-invalid { - color: var(--text-on-accent); -} -.metadata-input-longtext { - cursor: text; - white-space: pre-wrap; - -webkit-box-orient: vertical; - -webkit-line-clamp: 3; - color: var(--metadata-input-text-color); - font-size: var(--metadata-input-font-size); - max-height: 300px; - overflow-y: auto; - padding: var(--size-4-1) var(--size-4-2); - width: 100%; -} -.metadata-input-longtext:focus { - -webkit-line-clamp: unset; -} -.metadata-input-longtext:not(:empty) { - display: -webkit-box; -} -.metadata-input-longtext:empty:before { - content: attr(placeholder); - color: var(--text-faint); -} -.metadata-link { - cursor: text; - align-items: center; - padding: var(--size-4-1) var(--size-4-2); - display: flex; - gap: var(--size-4-2); - width: 100%; -} -@media (hover: hover) { - .metadata-link:hover .metadata-link-flair { - opacity: var(--icon-opacity); - transition: 0.1s opacity 0.25s ease-in-out; - } -} -.metadata-link-inner { - cursor: var(--cursor-link); - color: var(--link-color); - text-decoration-line: var(--link-decoration); - text-decoration-thickness: var(--link-decoration-thickness); - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; -} -@media (hover: hover) { - .metadata-link-inner:hover { - text-decoration-line: var(--link-decoration-hover); - color: var(--link-color-hover); - } - .metadata-link-inner:hover ~ .metadata-link-flair { - opacity: 0; - } -} -.metadata-link-flair { - --icon-size: var(--icon-xs); - background-color: transparent; - cursor: text; - margin-left: auto; - display: flex; - align-items: center; - justify-content: center; - padding: var(--size-2-1); - border-radius: var(--clickable-icon-radius); - color: var(--icon-color); - opacity: 0; - transition: opacity 0.15s ease-in-out; - height: auto; -} -.markdown-source-view .metadata-container, -.markdown-preview-view .metadata-container { - display: unset; -} -.markdown-source-view.is-live-preview.show-properties .metadata-container { - display: var(--metadata-display-editing); -} -.markdown-preview-view.show-properties .metadata-container { - display: var(--metadata-display-reading); -} -.markdown-source-view.is-live-preview.show-properties .metadata-container[data-property-count="0"], -.markdown-preview-view.show-properties .metadata-container[data-property-count="0"] { - display: none; -} -.markdown-rendered li h1, -.markdown-rendered li h2, -.markdown-rendered li h3, -.markdown-rendered li h4, -.markdown-rendered li h5 { - margin-top: 0; - margin-bottom: 0; -} -.markdown-rendered div:has( > :is(p,pre,table,ul,ol)) + div > :is(h1,h2,h3,h4,h5,h6) { - margin-top: var(--heading-spacing); -} -h1, -.markdown-rendered h1 { - font-variant: var(--h1-variant); - letter-spacing: -0.015em; - line-height: var(--h1-line-height); - font-size: var(--h1-size); - color: var(--h1-color); - font-weight: var(--h1-weight); - font-style: var(--h1-style); - font-family: var(--h1-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h1 a, -.markdown-rendered h1 a { - font-weight: inherit; -} -h2, -.markdown-rendered h2 { - font-variant: var(--h2-variant); - letter-spacing: -0.015em; - line-height: var(--h2-line-height); - font-size: var(--h2-size); - color: var(--h2-color); - font-weight: var(--h2-weight); - font-style: var(--h2-style); - font-family: var(--h2-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h2 a, -.markdown-rendered h2 a { - font-weight: inherit; -} -h3, -.markdown-rendered h3 { - font-variant: var(--h3-variant); - letter-spacing: -0.015em; - line-height: var(--h3-line-height); - font-size: var(--h3-size); - color: var(--h3-color); - font-weight: var(--h3-weight); - font-style: var(--h3-style); - font-family: var(--h3-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h3 a, -.markdown-rendered h3 a { - font-weight: inherit; -} -h4, -.markdown-rendered h4 { - font-variant: var(--h4-variant); - letter-spacing: 0.015em; - line-height: var(--h4-line-height); - font-size: var(--h4-size); - color: var(--h4-color); - font-weight: var(--h4-weight); - font-style: var(--h4-style); - font-family: var(--h4-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h4 a, -.markdown-rendered h4 a { - font-weight: inherit; -} -h5, -.markdown-rendered h5 { - font-variant: var(--h5-variant); - letter-spacing: 0.015em; - font-size: var(--h5-size); - line-height: var(--h5-line-height); - color: var(--h5-color); - font-weight: var(--h5-weight); - font-style: var(--h5-style); - font-family: var(--h5-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h5 a, -.markdown-rendered h5 a { - font-weight: inherit; -} -h6, -.markdown-rendered h6 { - font-variant: var(--h6-variant); - letter-spacing: 0.015em; - font-size: var(--h6-size); - line-height: var(--h6-line-height); - color: var(--h6-color); - font-weight: var(--h6-weight); - font-style: var(--h6-style); - font-family: var(--h6-font); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -h6 a, -.markdown-rendered h6 a { - font-weight: inherit; -} -.cm-formatting-header { - color: var(--text-faint); -} -.cm-s-obsidian .cm-line.HyperMD-header { - padding-top: var(--p-spacing); -} -.cm-s-obsidian .cm-line.HyperMD-header + .cm-line:not(.HyperMD-header):not(:has(>br:only-child)) { - padding-top: var(--p-spacing-empty); -} -.cm-s-obsidian .cm-line.HyperMD-header + .cm-line:not(.HyperMD-header):has(>br:only-child) + .cm-line.HyperMD-header { - padding-top: 0; -} -.HyperMD-header-1, -.inline-title[data-level='1'], -.HyperMD-list-line .cm-header-1 { - font-variant: var(--h1-variant); - letter-spacing: -0.015em; - line-height: var(--h1-line-height); - font-size: var(--h1-size); - color: var(--h1-color); - font-weight: var(--h1-weight); - font-style: var(--h1-style); - font-family: var(--h1-font); -} -.HyperMD-header-1 a, -.inline-title[data-level='1'] a, -.HyperMD-list-line .cm-header-1 a { - font-weight: inherit; -} -.HyperMD-header-2, -.inline-title[data-level='2'], -.HyperMD-list-line .cm-header-2 { - font-variant: var(--h2-variant); - letter-spacing: -0.015em; - line-height: var(--h2-line-height); - font-size: var(--h2-size); - color: var(--h2-color); - font-weight: var(--h2-weight); - font-style: var(--h2-style); - font-family: var(--h2-font); -} -.HyperMD-header-2 a, -.inline-title[data-level='2'] a, -.HyperMD-list-line .cm-header-2 a { - font-weight: inherit; -} -.HyperMD-header-3, -.inline-title[data-level='3'], -.HyperMD-list-line .cm-header-3 { - font-variant: var(--h3-variant); - letter-spacing: -0.015em; - line-height: var(--h3-line-height); - font-size: var(--h3-size); - color: var(--h3-color); - font-weight: var(--h3-weight); - font-style: var(--h3-style); - font-family: var(--h3-font); -} -.HyperMD-header-3 a, -.inline-title[data-level='3'] a, -.HyperMD-list-line .cm-header-3 a { - font-weight: inherit; -} -.HyperMD-header-4, -.inline-title[data-level='4'], -.HyperMD-list-line .cm-header-4 { - font-variant: var(--h4-variant); - letter-spacing: 0.015em; - line-height: var(--h4-line-height); - font-size: var(--h4-size); - color: var(--h4-color); - font-weight: var(--h4-weight); - font-style: var(--h4-style); - font-family: var(--h4-font); -} -.HyperMD-header-4 a, -.inline-title[data-level='4'] a, -.HyperMD-list-line .cm-header-4 a { - font-weight: inherit; -} -.HyperMD-header-5, -.inline-title[data-level='5'], -.HyperMD-list-line .cm-header-5 { - font-variant: var(--h5-variant); - letter-spacing: 0.015em; - font-size: var(--h5-size); - line-height: var(--h5-line-height); - color: var(--h5-color); - font-weight: var(--h5-weight); - font-style: var(--h5-style); - font-family: var(--h5-font); -} -.HyperMD-header-5 a, -.inline-title[data-level='5'] a, -.HyperMD-list-line .cm-header-5 a { - font-weight: inherit; -} -.HyperMD-header-6, -.inline-title[data-level='6'], -.HyperMD-list-line .cm-header-6 { - font-variant: var(--h6-variant); - letter-spacing: 0.015em; - font-size: var(--h6-size); - line-height: var(--h6-line-height); - color: var(--h6-color); - font-weight: var(--h6-weight); - font-style: var(--h6-style); - font-family: var(--h6-font); -} -.HyperMD-header-6 a, -.inline-title[data-level='6'] a, -.HyperMD-list-line .cm-header-6 a { - font-weight: inherit; -} -.HyperMD-header .cm-header-1, -.HyperMD-header .cm-header-2, -.HyperMD-header .cm-header-3, -.HyperMD-header .cm-header-4, -.HyperMD-header .cm-header-5, -.HyperMD-header .cm-header-6 { - font-size: inherit !important; -} -hr { - border: none; - border-top: var(--hr-thickness) solid; - border-color: var(--hr-color); - margin: 2rem 0; -} -.markdown-rendered hr { - border: none; - border-top: var(--hr-thickness) solid; - border-color: var(--hr-color); -} -.cm-s-obsidian .hmd-inactive-line.HyperMD-hr { - color: transparent; - background-color: transparent; -} -.markdown-source-view.mod-cm6 .hr { - display: flex; - align-items: center; -} -.markdown-source-view.mod-cm6 hr { - margin: 0; - flex: 1 0 0; -} -.cm-s-obsidian .hmd-fold-html-stub, -.cm-s-obsidian .hmd-fold-code-stub { - display: inline-block; - font-size: 67%; - color: #999; - vertical-align: middle; - border: 1px solid #999; - padding: 0 0.2em; - border-radius: 5px; - margin: 0 0.5em; - background-color: var(--background-primary-alt); - cursor: var(--cursor); -} -.cm-s-obsidian .hmd-fold-html-stub.omittable, -.cm-s-obsidian .omittable.hmd-fold-code-stub { - display: none; -} -.cm-s-obsidian .hmd-fold-html-stub:hover, -.cm-s-obsidian .hmd-fold-code-stub:hover, -.cm-s-obsidian .hmd-fold-html-stub.highlight, -.cm-s-obsidian .highlight.hmd-fold-code-stub { - color: #FFF; - border-color: #C30; - background: #F40; -} -.cm-s-obsidian .hmd-fold-html { - position: relative; - border: 1px solid #FFF; -} -@media (hover: hover) { - .cm-s-obsidian .hmd-fold-html:hover { - border: 1px dashed #999; - } -} -.cm-s-obsidian .hmd-fold-html:hover .hmd-fold-html-stub.omittable, -.cm-s-obsidian .hmd-fold-html:hover .omittable.hmd-fold-code-stub { - display: block; - right: 0; - bottom: 100%; - margin: 0; - position: absolute; - z-index: 100; -} -.markdown-preview-view img, -.markdown-rendered img { - -webkit-touch-callout: default; - image-rendering: -webkit-optimize-contrast; -} -.markdown-preview-view img:not([width]), -.markdown-rendered img:not([width]) { - max-width: 100%; - outline: none; -} -.cm-s-obsidian .hmd-fold-html a > img { - border: 0; -} -.cm-s-obsidian img.hmd-image { - vertical-align: middle; - width: auto; - max-width: 100%; - height: auto; -} -.cm-s-obsidian img.hmd-image.hmd-image-loading, -.cm-s-obsidian img.hmd-image.hmd-image-error { - min-width: 24px; - min-height: 24px; -} -.markdown-source-view.mod-cm6 .cm-line .internal-embed.image-embed { - display: inline; -} -.internal-query { - margin: 0; - border-top: 1px solid var(--background-modifier-border); -} -.internal-query .search-result-container { - padding: var(--size-4-2); - max-height: 800px; - overflow: auto; - border: 1px solid var(--background-modifier-border); - background-color: var(--background-secondary); - border-radius: var(--radius-m); -} -.internal-query .internal-query-header { - text-align: center; - padding: var(--size-4-3) 0 var(--size-4-3) var(--size-4-1); - color: var(--text-normal); - display: flex; - justify-content: flex-start; - align-items: center; -} -.internal-query .internal-query-header-icon { - color: var(--text-faint); - margin-right: var(--size-4-1); - display: flex; -} -.internal-query .internal-query-header-title { - font-weight: var(--font-medium); -} -.internal-query .internal-query-header-title:before, -.internal-query .internal-query-header-title:after { - content: '"'; -} -/* Default markers */ -ul ul, -ol ul, -ol ol ul, -ol ul ul, -ul ol ul, -ul ul ul { - list-style-type: disc; -} -ol { - list-style-type: var(--list-numbered-style); -} -ol > li::marker, -ul > li::marker { - color: var(--list-marker-color); -} -ol > li.is-collapsed::marker, -ul > li.is-collapsed::marker { - color: var(--list-marker-color-collapsed); -} -/* Indent depth - Consistency in horizontal positioning of lists -*/ -.markdown-rendered ul, -.markdown-rendered ol { - padding-inline-start: var(--list-indent); - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); - /* Space between list items */ -} -.markdown-rendered ul ul, -.markdown-rendered ol ul, -.markdown-rendered ul ol, -.markdown-rendered ol ol { - margin-block-start: 0; - margin-block-end: 0; -} -.markdown-rendered ul li p:first-of-type, -.markdown-rendered ol li p:first-of-type { - margin-block-start: 0; -} -.markdown-rendered ul li p:last-of-type, -.markdown-rendered ol li p:last-of-type { - margin-block-end: 0; -} -.markdown-rendered ul > li, -.markdown-rendered ol > li { - padding-top: var(--list-spacing); - padding-bottom: var(--list-spacing); - position: relative; -} -.cm-formatting-list-ul, -.cm-formatting-list-ol { - font-variant-numeric: tabular-nums; - padding-inline-start: 0.75em; -} -.markdown-source-view.mod-cm6 .HyperMD-list-line-nobullet .cm-indent { - min-width: var(--list-indent); -} -.cm-s-obsidian .cm-formatting-list { - color: var(--list-marker-color); -} -.cm-s-obsidian .is-collapsed ~ .cm-formatting-list { - color: var(--list-marker-color-collapsed); -} -/* Indent depth - Consistency in horizontal positioning of lists -*/ -.cm-line.HyperMD-list-line { - tab-size: var(--list-indent); -} -/* Space between list items */ -.markdown-source-view ol > li, -.markdown-source-view ul > li, -.markdown-preview-view ol > li, -.markdown-preview-view ul > li, -.mod-cm6 .HyperMD-list-line.cm-line { - padding-top: var(--list-spacing); - padding-bottom: var(--list-spacing); -} -/* Allow clicking on the bullet to collapse */ -/* #todo move this into folding.less */ -.markdown-rendered .list-collapse-indicator { - margin-inline-start: -2.65em; - padding-inline-end: 2em; -} -.markdown-rendered .list-bullet { - float: left; - margin-inline-start: -0.8em; -} -.markdown-rendered .task-list-item > .list-bullet { - display: none; -} -/* Remove default bullets so we can replace them */ -.markdown-rendered ul.has-list-bullet { - list-style-type: '\200B'; -} -.markdown-rendered ul.has-list-bullet > li::marker { - color: transparent; -} -.list-bullet { - /* hide bullet when editing the marker */ - color: transparent; - position: relative; - display: inline-flex; - justify-content: center; - align-items: center; - will-change: transform; -} -.list-bullet:before { - content: '\200B'; -} -.list-bullet:after { - position: absolute; - content: '\200B'; - pointer-events: none; - color: var(--list-marker-color); - border-radius: var(--list-bullet-radius); - width: var(--list-bullet-size); - height: var(--list-bullet-size); - border: var(--list-bullet-border); - transform: var(--list-bullet-transform); - background-color: var(--list-marker-color); - transition: transform 0.15s, box-shadow 0.15s; - will-change: transform; -} -.list-bullet::selection { - background-color: transparent !important; -} -.is-live-preview .list-bullet { - min-width: 0.75em; -} -@media (hover: hover) { - .list-collapse-indicator:hover ~ .list-bullet:after, - .cm-fold-indicator:hover ~ .list-bullet:after, - .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, - .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after { - background-color: var(--list-marker-color-hover); - box-shadow: 0 0 0 4px var(--background-modifier-hover); - } - li.is-collapsed .list-collapse-indicator:hover ~ .list-bullet:after, - li.is-collapsed .cm-fold-indicator:hover ~ .list-bullet:after, - .list-collapse-indicator:hover.is-collapsed ~ .list-bullet:after, - .cm-fold-indicator:hover.is-collapsed ~ .list-bullet:after, - li.is-collapsed .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, - li.is-collapsed .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after, - .list-collapse-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, - .cm-fold-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after { - background-color: var(--list-marker-color-collapsed); - box-shadow: 0 0 0 4px var(--background-modifier-active-hover); - } -} -li.is-collapsed .list-bullet:after, -.is-collapsed ~ .cm-formatting-list .list-bullet:after { - background-color: var(--list-marker-color-collapsed); - box-shadow: 0 0 0 4px var(--background-modifier-active-hover); -} -/* Allow clicking on the bullet to collapse */ -/* #todo move this into folding.less */ -.markdown-source-view.mod-cm6 { - /* only allow this if line is not active, so that it's still editable */ -} -.markdown-source-view.mod-cm6 .cm-fold-indicator .collapse-indicator { - padding-right: 0.25rem; -} -.markdown-source-view.mod-cm6 .cm-line.HyperMD-list-line.HyperMD-list-line .cm-fold-indicator .collapse-indicator { - right: -0.5rem; -} -.markdown-source-view.mod-cm6 .cm-line:not(.cm-active):not(.HyperMD-header):not(.HyperMD-task-line) .cm-fold-indicator .collapse-indicator { - padding-right: 1rem; - right: -1.25rem; -} -@media (hover: hover) { - .list-collapse-indicator:hover ~ .list-bullet:after, - .cm-fold-indicator:hover ~ .list-bullet:after, - .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, - .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after { - background-color: var(--list-marker-color-hover); - box-shadow: 0 0 0 4px var(--background-modifier-hover); - } - li.is-collapsed .list-collapse-indicator:hover ~ .list-bullet:after, - li.is-collapsed .cm-fold-indicator:hover ~ .list-bullet:after, - .list-collapse-indicator:hover.is-collapsed ~ .list-bullet:after, - .cm-fold-indicator:hover.is-collapsed ~ .list-bullet:after, - li.is-collapsed .list-collapse-indicator:hover ~ .cm-formatting-list .list-bullet:after, - li.is-collapsed .cm-fold-indicator:hover ~ .cm-formatting-list .list-bullet:after, - .list-collapse-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after, - .cm-fold-indicator:hover.is-collapsed ~ .cm-formatting-list .list-bullet:after { - background-color: var(--list-marker-color-collapsed); - box-shadow: 0 0 0 4px var(--background-modifier-active-hover); - } -} -.cm-s-obsidian .HyperMD-list-line.HyperMD-list-line-nobullet { - padding-top: initial; -} -.markdown-source-view.mod-cm6 .cm-hmd-list-indent { - display: inline-block; - white-space: nowrap; -} -.markdown-source-view.mod-cm6 .cm-formatting-list-ul, -.markdown-source-view.mod-cm6 .cm-formatting-list-ol { - white-space: pre; -} -a { - color: var(--link-color); - outline: none; - text-decoration-line: var(--link-decoration); - text-decoration-thickness: var(--link-decoration-thickness); - cursor: var(--cursor-link); -} -@media (hover: hover) { - a:hover { - color: var(--link-color-hover); - text-decoration-line: var(--link-decoration-hover); - } -} -.external-link { - color: var(--link-external-color); - text-decoration-line: var(--link-external-decoration); - background-position: center right; - background-repeat: no-repeat; - background-image: linear-gradient(transparent, transparent), url(public/images/874d8b8e340f75575caa.svg); - background-size: 13px; - padding-right: 16px; - background-position-y: 4px; - cursor: var(--cursor-link); - filter: var(--link-external-filter); -} -@media (hover: hover) { - .external-link:hover { - color: var(--link-external-color-hover); - text-decoration-line: var(--link-external-decoration-hover); - } -} -.metadata-container .internal-link, -.markdown-rendered .internal-link { - cursor: var(--cursor-link); - text-decoration-line: var(--link-decoration); - color: var(--link-color); -} -@media (hover: hover) { - .metadata-container .internal-link:hover, - .markdown-rendered .internal-link:hover { - color: var(--link-color-hover); - text-decoration-line: var(--link-decoration-hover); - } -} -.metadata-container .internal-link.is-unresolved, -.markdown-rendered .internal-link.is-unresolved { - color: var(--link-unresolved-color); - opacity: var(--link-unresolved-opacity); - filter: var(--link-unresolved-filter); - text-decoration-style: var(--link-unresolved-decoration-style); - text-decoration-color: var(--link-unresolved-decoration-color); -} -@media (hover: hover) { - .metadata-container .internal-link.is-unresolved:hover, - .markdown-rendered .internal-link.is-unresolved:hover { - opacity: 1; - color: var(--link-color-hover); - text-decoration-color: var(--link-color-hover); - text-decoration-line: var(--link-decoration-hover); - } -} -.cm-s-obsidian span.cm-hmd-internal-link { - color: var(--link-color); -} -.cm-s-obsidian span.cm-hmd-internal-link:hover { - text-decoration-line: var(--link-decoration-hover); - color: var(--link-color-hover); -} -.cm-s-obsidian span.cm-link { - color: var(--link-external-color); - word-break: break-word; -} -@media (hover: hover) { - .cm-s-obsidian span.cm-link:hover { - color: var(--link-external-color-hover); - text-decoration-line: var(--link-external-decoration-hover); - } -} -.cm-s-obsidian span.cm-formatting-link.cm-url, -.cm-s-obsidian span.cm-url { - color: var(--link-external-color); - text-decoration-line: var(--link-external-decoration); - filter: var(--link-external-filter); - word-break: break-all; -} -@media (hover: hover) { - .cm-s-obsidian span.cm-formatting-link.cm-url:hover, - .cm-s-obsidian span.cm-url:hover { - color: var(--link-external-color-hover); - text-decoration-line: var(--link-external-decoration-hover); - } -} -.cm-s-obsidian span.cm-formatting-link { - color: var(--text-faint); -} -.cm-s-obsidian span.hmd-link-icon { - width: 20px; - height: 16px; - display: inline-block; - vertical-align: middle; - opacity: 0.4; -} -@media (hover: hover) { - .cm-s-obsidian span.hmd-link-icon:hover { - opacity: 1; - } -} -.cm-s-obsidian span.hmd-link-icon:after { - content: ""; -} -.markdown-source-view.mod-cm6 .is-unresolved { - color: var(--link-unresolved-color); - opacity: var(--link-unresolved-opacity); - filter: var(--link-unresolved-filter); -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .is-unresolved:hover { - opacity: 1; - color: var(--link-color-hover); - text-decoration-color: var(--link-color-hover); - } -} -.markdown-source-view.mod-cm6 .is-unresolved .cm-underline { - text-decoration-line: var(--link-decoration); - text-decoration-style: var(--link-unresolved-decoration-style); - text-decoration-color: var(--link-unresolved-decoration-color); -} -.markdown-source-view.mod-cm6 .cm-underline { - text-decoration-line: var(--link-decoration); - text-decoration-thickness: var(--link-decoration-thickness); -} -body.is-mobile .markdown-source-view.mod-cm6 .cm-underline { - -webkit-user-select: text; -} -.markdown-source-view.mod-cm6.is-live-preview .cm-hashtag.cm-meta, -.markdown-source-view.mod-cm6 .cm-hmd-internal-link .cm-underline, -.markdown-source-view.mod-cm6 .cm-link .cm-underline, -.markdown-source-view.mod-cm6 .cm-url .cm-underline { - cursor: var(--cursor-link); -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .cm-hmd-internal-link .cm-underline:hover { - text-decoration-line: var(--link-decoration-hover); - } -} -.markdown-source-view.mod-cm6 .cm-link .cm-underline, -.markdown-source-view.mod-cm6 .cm-url .cm-underline { - text-decoration-line: var(--link-external-decoration); -} -@media (hover: hover) { - .markdown-source-view.mod-cm6 .cm-link .cm-underline:hover, - .markdown-source-view.mod-cm6 .cm-url .cm-underline:hover { - color: var(--link-external-color-hover); - text-decoration-line: var(--link-external-decoration-hover); - } -} -.cm-s-obsidian.HyperMD-with-alt span.cm-url, -.cm-s-obsidian.HyperMD-with-alt span.cm-link, -.cm-s-obsidian.HyperMD-with-alt span.cm-hashtag, -.cm-s-obsidian.HyperMD-with-ctrl span.cm-url, -.cm-s-obsidian.HyperMD-with-ctrl span.cm-link, -.cm-s-obsidian.HyperMD-with-ctrl span.cm-hashtag { - cursor: var(--cursor-link); -} -.inline-block { - display: inline-block; - vertical-align: middle; -} -.hidden-token { - display: inline; - font-size: 1px !important; - letter-spacing: -1ch; - font-family: monospace; - color: transparent; -} -.cm-s-obsidian { - /* tooltip for addon/hover */ - /* gutter for addon/click */ - /* addon/fold */ - /* addon/fold-emoji */ -} -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-em, -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-strong, -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-strikethrough, -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-code, -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-link { - display: inline; - font-size: 1px !important; - letter-spacing: -1ch; - font-family: monospace; - color: transparent; -} -.cm-s-obsidian div.HyperMD-hover > .HyperMD-hover-content { - background-color: #fff; - color: #000; - border: 1px solid #000; - padding: 0.5em; -} -.cm-s-obsidian div.HyperMD-hover > .HyperMD-hover-content p { - margin: 0.2em 0; -} -.cm-s-obsidian .HyperMD-goback { - width: 1px; -} -.cm-s-obsidian div.HyperMD-goback-button { - background-color: #ddd; - color: #333; - text-align: center; - cursor: var(--cursor); -} -.cm-s-obsidian .hmd-link-icon:after { - content: "🔗»"; - color: #009; - text-shadow: 0 0 2px #69F; -} -.cm-s-obsidian img.hmd-emoji { - height: 1.2em; - vertical-align: middle; -} -.cm-s-obsidian { - line-height: var(--line-height-normal); -} -.cm-s-obsidian .hmd-fold-html-stub, -.cm-s-obsidian .hmd-fold-code-stub, -.cm-s-obsidian .cm-inline-code, -.cm-s-obsidian .HyperMD-codeblock, -.cm-s-obsidian .HyperMD-hr, -.cm-s-obsidian .cm-hmd-frontmatter, -.cm-s-obsidian .cm-hmd-orgmode-markup, -.cm-s-obsidian .cm-formatting-code, -.cm-s-obsidian .cm-math, -.cm-s-obsidian span.hmd-fold-math-placeholder, -.cm-s-obsidian .hmd-fold-html kbd { - font-family: var(--font-monospace); -} -.cm-s-obsidian span.cm-hmd-toc { - font-size: 24pt; - color: #999; -} -.cm-s-obsidian .HyperMD-header-line { - color: var(--text-muted); -} -.cm-s-obsidian span.cm-hmd-escape-backslash { - color: var(--text-faint); -} -.cm-s-obsidian span.cm-footref, -.cm-s-obsidian span.cm-blockid { - display: inline-block; - font-size: var(--font-smallest); - vertical-align: text-top; - color: var(--text-muted); - margin-top: -0.2em; -} -.cm-s-obsidian .hmd-file-uploading { - outline: 2px dashed #CCC; - outline-offset: -2px; - animation: hmd-file-uploading-ani 1.5s linear infinite; -} -.cm-s-obsidian .hmd-file-uploaded { - outline: 2px solid #6C3; - outline-offset: -2px; -} -.cm-s-obsidian .HyperMD-goback { - width: 1px; -} -.cm-s-obsidian div.HyperMD-goback-button { - padding-right: 15px; - border-radius: 0 10px 10px 0; - display: inline-block; - text-align: center; - background-color: #8daed9; - color: #f7f7f7; - cursor: var(--cursor); -} -.cm-s-obsidian .hmd-fold-code-image { - text-align: center; -} -.cm-s-obsidian .HyperMD-header, -.cm-s-obsidian .HyperMD-footnote, -.cm-s-obsidian .HyperMD-codeblock, -.cm-s-obsidian .HyperMD-hr { - clear: left; -} -.cm-s-obsidian .cm-s-obsidian span.hmd-hidden-token.cm-formatting-task { - color: transparent !important; -} -.cm-s-obsidian .hmd-inactive-line span.cm-hmd-escape-backslash, -.cm-s-obsidian .hmd-inactive-line span.cm-formatting-header { - font-size: 0 !important; - display: inline; -} -.cm-s-obsidian .hmd-inactive-line span.cm-hmd-list-indent { - border-right: 0; -} -@keyframes hmd-file-uploading-ani { - 0%, - 100% { - opacity: 0.4; - } - 50% { - opacity: 0.7; - } -} -@media (hover: hover) { - .cm-s-obsidian div.HyperMD-goback-button:hover { - color: transparent; - text-align: left; - } - .cm-s-obsidian div.HyperMD-goback-button:hover:before { - position: absolute; - padding-left: 5px; - content: "Back"; - color: #f7f7f7; - } -} -mjx-container { - outline: none; -} -.cm-s-obsidian { - /* addon/fold-math */ -} -.cm-s-obsidian .hmd-fold-math { - display: inline-block; - vertical-align: middle; -} -.cm-s-obsidian .hmd-fold-math.hmd-fold-math.math-2 { - width: 100%; -} -.cm-s-obsidian span.cm-math, -.cm-s-obsidian span.hmd-fold-math-placeholder { - font-size: var(--code-size); - font-style: italic; -} -.cm-s-obsidian span.cm-formatting-math { - color: var(--text-accent); - font-weight: inherit; -} -.cm-s-obsidian span.cm-math-2 { - font-size: 13.2pt; -} -.markdown-source-view.mod-cm6 .math-block > mjx-container { - margin: 0; - padding: 1em 0; - overflow-x: auto; -} -/* Tables */ -.markdown-reading-view table { - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -.markdown-rendered tr { - height: 1px; -} -.markdown-rendered td, -.markdown-rendered th { - height: inherit; -} -.markdown-rendered table { - border-collapse: collapse; - line-height: var(--table-line-height); -} -.markdown-rendered td, -.markdown-rendered th { - padding: var(--size-2-2) var(--size-4-2); - border: var(--table-border-width) solid var(--table-border-color); - max-width: var(--table-column-max-width); - min-width: var(--table-column-min-width); - vertical-align: var(--table-cell-vertical-alignment); -} -.markdown-rendered td { - font-size: var(--table-text-size); - color: var(--table-text-color); -} -.markdown-rendered th { - font-size: var(--table-header-size); - font-weight: var(--table-header-weight); - color: var(--table-header-color); - font-family: var(--table-header-font); - text-align: left; - line-height: var(--line-height-tight); -} -.markdown-rendered th[align="center"] { - text-align: center; -} -.markdown-rendered th[align="right"] { - text-align: right; -} -.markdown-rendered thead > tr > th, -.markdown-rendered tbody > tr > td { - white-space: var(--table-white-space); - text-overflow: ellipsis; - overflow: hidden; -} -.markdown-rendered tbody tr { - background-color: var(--table-background); -} -@media (hover: hover) { - .markdown-rendered tbody tr:hover { - background-color: var(--table-row-background-hover); - } -} -.markdown-rendered tbody tr:nth-child(odd) { - background-color: var(--table-row-alt-background); -} -@media (hover: hover) { - .markdown-rendered tbody tr:nth-child(odd):hover { - background-color: var(--table-row-alt-background-hover); - } -} -.markdown-rendered tbody tr > td:nth-child(2n+2) { - background-color: var(--table-column-alt-background); -} -.markdown-rendered tbody tr:last-child > td { - border-bottom-width: var(--table-row-last-border-width); -} -.markdown-rendered tbody tr > td:first-child { - border-left-width: var(--table-column-first-border-width); -} -.markdown-rendered tbody tr > td:last-child { - border-right-width: var(--table-column-last-border-width); -} -.markdown-rendered thead tr { - background-color: var(--table-header-background); -} -@media (hover: hover) { - .markdown-rendered thead tr:hover { - background-color: var(--table-header-background-hover); - } -} -.markdown-rendered thead tr > th { - border-top-width: var(--table-header-border-width); - border-color: var(--table-header-border-color); -} -.markdown-rendered thead tr > th:nth-child(2n+2) { - background-color: var(--table-column-alt-background); -} -.markdown-rendered thead tr > th:first-child { - border-left-width: var(--table-column-first-border-width); -} -.markdown-rendered thead tr > th:last-child { - border-right-width: var(--table-column-last-border-width); -} -.cm-s-obsidian .HyperMD-table-row { - white-space: pre; - word-break: normal; - overflow-wrap: normal; - font-size: 0.95em; - font-family: var(--font-monospace); -} -.cm-s-obsidian .hmd-table-column, -.cm-s-obsidian .hmd-table-column-content { - display: inline-block; -} -.cm-s-obsidian .hmd-table-column-left { - text-align: left; -} -.cm-s-obsidian .hmd-table-column-center { - text-align: center; -} -.cm-s-obsidian .hmd-table-column-right { - text-align: right; -} -.cm-s-obsidian .HyperMD-table-row span.cm-hmd-table-sep, -.cm-s-obsidian .HyperMD-table-row-1 { - color: var(--text-faint); -} -.cm-s-obsidian .HyperMD-table-row-0 { - color: var(--table-header-color); -} -.cm-s-obsidian .hmd-fold-html table { - border-collapse: collapse; -} -.cm-s-obsidian .hmd-fold-html table td, -.cm-s-obsidian .hmd-fold-html table th { - padding: 10px; - border: 1px solid #ccc; -} -.cm-s-obsidian .hmd-inactive-line.HyperMD-table-row-1 { - color: transparent; - text-shadow: none; -} -.cm-s-obsidian .hmd-inactive-line.HyperMD-table-row-1 > span { - background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAQAAAAziH6sAAAADklEQVR42mOc+Z9x5n8ACTkDM4ikM1IAAAAASUVORK5CYII=) repeat-x 0px center; -} -.cm-s-obsidian .hmd-inactive-line.HyperMD-table-row span.cm-hmd-table-sep { - color: transparent; -} -.markdown-source-view.mod-cm6 .cm-line.HyperMD-table-row { - min-width: max-content; -} -.markdown-source-view.mod-cm6 .cm-table-widget table { - margin-bottom: 0; -} -a.tag { - background-color: var(--tag-background); - border: var(--tag-border-width) solid var(--tag-border-color); - border-radius: var(--tag-radius); - color: var(--tag-color); - font-size: var(--tag-size); - font-weight: var(--tag-weight); - text-decoration: var(--tag-decoration); - padding: var(--tag-padding-y) var(--tag-padding-x); - line-height: 1; -} -@media (hover: hover) { - a.tag:hover { - background-color: var(--tag-background-hover); - border: var(--tag-border-width) solid var(--tag-border-color-hover); - color: var(--tag-color-hover); - text-decoration: var(--tag-decoration-hover); - } -} -a.tag { - background-color: var(--tag-background); - border: var(--tag-border-width) solid var(--tag-border-color); - border-radius: var(--tag-radius); - color: var(--tag-color); - font-size: var(--tag-size); - font-weight: var(--tag-weight); - text-decoration: var(--tag-decoration); - padding: var(--tag-padding-y) var(--tag-padding-x); - line-height: 1; -} -@media (hover: hover) { - a.tag:hover { - background-color: var(--tag-background-hover); - border: var(--tag-border-width) solid var(--tag-border-color-hover); - color: var(--tag-color-hover); - text-decoration: var(--tag-decoration-hover); - } -} -.cm-hashtag { - color: var(--tag-color); - background-color: var(--tag-background); - border: var(--tag-border-width) solid var(--tag-border-color); - font-size: var(--tag-size); - font-weight: var(--tag-weight); - vertical-align: baseline; - border-left: none; - border-right: none; - padding-top: var(--tag-padding-y); - padding-bottom: var(--tag-padding-y); -} -.cm-hashtag.cm-hashtag-begin { - border-top-left-radius: var(--tag-radius); - border-bottom-left-radius: var(--tag-radius); - border-right: none; - border-left: var(--tag-border-width) solid var(--tag-border-color); - padding-left: var(--tag-padding-x); -} -.cm-hashtag.cm-hashtag-end { - border-top-right-radius: var(--tag-radius); - border-bottom-right-radius: var(--tag-radius); - border-left: none; - border-right: var(--tag-border-width) solid var(--tag-border-color); - padding-right: var(--tag-padding-x); -} -.cm-s-obsidian span.cm-hashtag.cm-hmd-escape-backslash { - color: #FCC; -} -input[type=checkbox] { - -webkit-appearance: none; - appearance: none; - border-radius: var(--checkbox-radius); - border: 1px solid var(--checkbox-border-color); - flex-shrink: 0; - padding: 0; - margin: 0; - margin-inline-end: 6px; - width: var(--checkbox-size); - height: var(--checkbox-size); - position: relative; - transition: box-shadow 0.15s ease-in-out; -} -input[type=checkbox]:hover, -input[type=checkbox]:active, -input[type=checkbox]:focus { - outline: 0; - border-color: var(--checkbox-border-color-hover); -} -input[type=checkbox]:focus-visible { - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -input[type=checkbox]:checked:after { - content: ""; - top: -1px; - left: -1px; - position: absolute; - width: var(--checkbox-size); - height: var(--checkbox-size); - display: block; - background-color: var(--checkbox-marker-color); - -webkit-mask-position: 52% 52%; - -webkit-mask-size: 65%; - -webkit-mask-repeat: no-repeat; - -webkit-mask-image: url('data:image/svg+xml; utf8, '); -} -input[type=checkbox]:checked { - background-color: var(--checkbox-color); - border-color: var(--checkbox-color); -} -@media (hover: hover) { - input[type=checkbox]:checked:hover { - background-color: var(--checkbox-color-hover); - border-color: var(--checkbox-color-hover); - } -} -input[type=checkbox][data-indeterminate="true"]:not(:checked):after { - content: ""; - position: absolute; - top: calc(var(--checkbox-size)/2 - 2px); - width: calc(var(--checkbox-size) - 6px); - left: 0; - right: 0; - margin: 0 auto; - height: 2px; - display: block; - border-radius: 2px; - background-color: var(--text-normal); -} -.task-list-item-checkbox { - width: var(--checkbox-size); - height: var(--checkbox-size); -} -.markdown-preview-view .task-list-item-checkbox { - position: relative; - top: 0.2em; - margin-inline-end: 0.6em; -} -ul > li.task-list-item { - list-style: none; -} -ul > li.task-list-item .task-list-item-checkbox { - margin-inline-start: calc(var(--checkbox-size) * -1.5); -} -ul > li.task-list-item[data-task="x"], -ul > li.task-list-item[data-task="X"] { - text-decoration: var(--checklist-done-decoration); - color: var(--checklist-done-color); -} -.cm-s-obsidian span.cm-formatting-task { - white-space: pre; - height: 1em; - line-height: 1em; - min-width: 1em; - text-align: center; - color: var(--text-muted); - background-size: 1em; - font-family: var(--font-monospace); -} -.cm-s-obsidian span.hmd-hidden-token.cm-formatting-task { - color: transparent !important; -} -.markdown-source-view.mod-cm6 .task-list-label { - padding: 0; - margin-inline-start: -0.25em; -} -.markdown-source-view.mod-cm6 .task-list-item-checkbox { - top: -0.1em; - vertical-align: middle; - margin-inline-start: 1em; - margin-inline-end: 0.25em; -} -.markdown-source-view.mod-cm6 .cm-formatting-list-ol > .task-list-label .task-list-item-checkbox { - margin-inline-start: 2px; -} -.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="x"], -.markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="X"] { - text-decoration: var(--checklist-done-decoration); - color: var(--checklist-done-color); -} -b, -strong { - font-weight: var(--bold-weight); - color: var(--bold-color); -} -i, -em { - font-style: italic; - color: var(--italic-color); -} -/* Highlights */ -.markdown-rendered p { - margin-block-start: var(--p-spacing); - margin-block-end: var(--p-spacing); -} -.markdown-rendered mark { - background-color: var(--text-highlight-bg); - color: var(--text-normal); -} -.markdown-rendered mark .internal-link { - color: var(--text-normal); -} -.cm-s-obsidian span.cm-formatting-highlight, -.cm-s-obsidian span.cm-highlight { - background-color: var(--text-highlight-bg); - color: var(--text-normal); -} -.cm-strong { - font-weight: var(--bold-weight); - color: var(--bold-color); -} -.cm-em { - font-style: italic; - color: var(--italic-color); - font-weight: var(--italic-weight); -} -.cm-strong.cm-em { - font-weight: var(--bold-weight); -} -.cm-s-obsidian span.cm-error { - color: var(--text-error); -} -/* Backlinks in Preview */ -.embedded-backlinks { - border-top: 1px solid var(--background-modifier-border); -} -.markdown-preview-view .embedded-backlinks { - margin-top: 3em; -} -.embedded-backlinks .backlink-pane { - padding: var(--size-4-3) 0 0 0; -} -.embedded-backlinks .backlink-pane .search-empty-state, -.embedded-backlinks .backlink-pane .tree-item-self { - /* Use quotes because Less overrides CSS math */ - font-size: max(var(--font-ui-small),var(--font-smaller)); - align-items: center; -} -.embedded-backlinks .backlink-pane > .tree-item-self { - font-size: max(var(--font-ui-small),1em); - gap: var(--size-2-3); - width: fit-content; -} -.embedded-backlinks .backlink-pane .tree-item-flair { - font-size: max(var(--font-ui-small),var(--font-smallest)); -} -.embedded-backlinks .nav-header { - padding: 0; - position: relative; -} -.embedded-backlinks .nav-header ~ .search-input-container { - width: calc(100% - 150px); - margin: var(--size-4-3) 0 0 0; -} -.embedded-backlinks .nav-buttons-container { - position: absolute; - right: 0; - top: 14px; - z-index: 1; -} -.view-action.mod-bookmarked { - --icon-color: var(--icon-color-active); - --icon-color-hover: var(--icon-color-active); -} -/* Only browser shows the bookmark icon if not bookmarked */ -.workspace-leaf-content:not([data-type="browser"]) .view-action.mod-bookmark { - display: none; -} -.workspace-leaf-content:not([data-type="browser"]) .view-action.mod-bookmarked { - display: flex; -} -.workspace-leaf-content[data-type=bookmarks] .view-content { - padding: var(--size-4-3) var(--size-4-3) var(--size-4-8); -} -.modal.mod-bookmark .setting-item-control input { - width: 100%; -} -.nav-buttons-container.has-separator { - border-bottom: 1px solid var(--background-modifier-border); - padding-bottom: var(--size-2-3); - margin-bottom: var(--size-4-2); -} -.nav-files-container { - flex-grow: 1; - overflow-y: auto; - overflow-x: hidden; - padding: 0 var(--size-4-3) var(--size-4-6) var(--size-4-3); - scroll-padding-block: var(--size-4-2); -} -/* Vault name */ -.nav-folder.mod-root > .nav-folder-title { - font-size: var(--vault-name-font-size); - color: var(--vault-name-color); - font-weight: var(--vault-name-font-weight); - cursor: default; -} -@media (hover: hover) { - .nav-folder.mod-root > .nav-folder-title:hover { - background-color: inherit; - font-weight: var(--vault-name-font-weight); - } -} -.nav-folder.mod-root > .nav-folder-children { - border-left: none; - margin-left: 0; - padding-left: 0; -} -.nav-file-tag { - background-color: var(--background-modifier-hover); - border-radius: var(--radius-s); - font-size: 9px; - font-weight: var(--font-semibold); - letter-spacing: 0.05em; - line-height: var(--line-height-normal); - margin-left: var(--size-2-3); - padding: 0 var(--size-4-1); - text-transform: uppercase; - align-self: center; -} -.nav-file-icon { - display: inline-flex; - align-items: center; - margin-right: var(--size-2-3); - position: relative; - color: var(--icon-color); - opacity: var(--icon-opacity); -} -.nav-files-container:not(.show-unsupported) .is-unsupported { - display: none; -} -.nav-file-title-content, -.nav-folder-title-content { - display: inline-block; - overflow-wrap: anywhere; - overflow: hidden; - white-space: var(--nav-item-white-space); - text-overflow: ellipsis; -} -.nav-file-title-content.is-being-renamed, -.nav-folder-title-content.is-being-renamed { - flex-grow: 1; - white-space: normal; - cursor: text; -} -.nav-folder.is-being-dragged-over { - border-radius: var(--radius-s); - background: hsla(var(--interactive-accent-hsl), 0.1); -} -.nav-folder.is-being-dragged-over > .nav-folder-title { - color: var(--nav-item-color-highlighted); -} -.nav-folder.is-being-dragged-over > .nav-folder-title .collapse-icon { - color: var(--nav-item-color-highlighted); -} -/* LEGACY Styles for plugin backwards compatibility */ -/* Vault name */ -.nav-folder.mod-root > .nav-folder-title { - font-size: var(--vault-name-font-size); - color: var(--vault-name-color); - font-weight: var(--vault-name-font-weight); - cursor: default; -} -@media (hover: hover) { - .nav-folder.mod-root > .nav-folder-title:hover { - background-color: inherit; - font-weight: var(--vault-name-font-weight); - } -} -/* Style children - The first level of folders and files - needs slightly different styling */ -.nav-folder.mod-root .nav-folder > .nav-folder-children { - padding-left: var(--nav-item-children-padding-left); - margin: 0 0 0 var(--nav-item-children-margin-left); - border-left: var(--nav-indentation-guide-width) solid var(--nav-indentation-guide-color); -} -.nav-file { - border-radius: var(--radius-s); -} -/* Folders and files */ -.nav-folder-title { - padding: var(--nav-item-parent-padding); -} -.nav-file-title { - padding: var(--nav-item-padding); -} -.nav-file-title, -.nav-folder-title { - margin-bottom: var(--size-2-1); - display: flex; - border-radius: var(--radius-s); - cursor: var(--cursor); - color: var(--nav-item-color); - font-size: var(--nav-item-size); - font-weight: var(--nav-item-weight); - line-height: var(--line-height-tight); -} -@media (hover: hover) { - body:not(.is-grabbing) .nav-file-title:hover, - body:not(.is-grabbing) .nav-folder-title:hover { - background-color: var(--nav-item-background-hover); - color: var(--nav-item-color-hover); - font-weight: var(--nav-item-weight-hover); - } -} -body:not(.is-grabbing) .nav-file-title.is-active:hover, -body:not(.is-grabbing) .nav-folder-title.is-active:hover, -.nav-file-title.is-active, -.nav-folder-title.is-active { - color: var(--nav-item-color-active); - background-color: var(--nav-item-background-active); - font-weight: var(--nav-item-weight-active); -} -body:not(.is-grabbing) .nav-file-title.is-selected:hover, -body:not(.is-grabbing) .nav-folder-title.is-selected:hover, -.nav-file-title.is-selected, -.nav-folder-title.is-selected { - color: var(--nav-item-color-selected); - background-color: var(--nav-item-background-selected); -} -body:not(.is-grabbing) .nav-file-title.is-being-dragged, -body:not(.is-grabbing) .nav-folder-title.is-being-dragged, -.nav-file-title.is-being-dragged, -.nav-folder-title.is-being-dragged { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -body:not(.is-grabbing) .nav-file-title.is-being-dragged .nav-folder-collapse-indicator, -body:not(.is-grabbing) .nav-folder-title.is-being-dragged .nav-folder-collapse-indicator, -.nav-file-title.is-being-dragged .nav-folder-collapse-indicator, -.nav-folder-title.is-being-dragged .nav-folder-collapse-indicator { - color: var(--text-on-accent); -} -body:not(.is-grabbing) .nav-file-title.is-being-dragged .nav-file-tag, -body:not(.is-grabbing) .nav-folder-title.is-being-dragged .nav-file-tag, -.nav-file-title.is-being-dragged .nav-file-tag, -.nav-folder-title.is-being-dragged .nav-file-tag { - color: var(--text-normal); -} -/* 2022-07 Only used for Publish AFAIK */ -.file-tree-item-checkbox, -.file-tree-item-icon { - flex-shrink: 0; -} -.file-tree-item-title { - flex-grow: 1; - word-break: break-word; -} -.file-tree-item-icon { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - margin-right: var(--size-4-1); - color: var(--icon-color); - position: relative; - top: var(--size-2-1); -} -.file-tree .tree-item-inner { - display: flex; - align-items: center; - position: relative; - width: 100%; -} -.file-tree .tree-item-flair { - line-height: 1; - padding: var(--size-2-1) var(--size-2-3); - color: var(--text-on-accent); -} -.file-tree .is-selected { - color: var(--text-normal); -} -.file-tree .mod-changed.is-selected { - background-color: hsla(var(--interactive-accent-hsl), 0.2); -} -.file-tree .mod-changed .tree-item-flair { - color: var(--text-accent-hover); -} -.file-tree .mod-new.is-selected { - background-color: rgba(var(--background-modifier-success-rgb), 0.2); -} -.file-tree .mod-new .tree-item-flair { - color: var(--text-success); -} -.file-tree .mod-deleted.is-selected, -.file-tree .mod-to-delete.is-selected { - background-color: rgba(var(--background-modifier-error-rgb), 0.2); -} -.file-tree .mod-deleted .tree-item-flair, -.file-tree .mod-to-delete .tree-item-flair { - color: var(--text-error); -} -.file-tree .mod-to-delete .tree-item-flair { - display: none; -} -.file-tree .mod-to-delete.is-selected .tree-item-flair { - display: block; -} -.file-tree .clickable-icon { - display: flex; - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); -} -.file-recovery-list-item-container { - overflow: auto; - flex: 1 1 0; -} -.file-recovery-list { - overflow: auto; - padding: var(--size-4-3) var(--size-4-2); - flex-grow: 1; - display: flex; - flex-direction: column; -} -.file-recovery-list .search-input-container { - width: 100%; -} -.file-recovery-list-container { - display: flex; - flex-direction: column; - flex-basis: 250px; - flex-shrink: 0; - border-right: 1px solid var(--background-modifier-border); -} -.file-recovery-list-item-header { - display: flex; - padding: var(--size-4-2); - border-radius: var(--radius-s); - transition: background-color 200ms ease-in-out, color 200ms ease-in-out; -} -.file-recovery-list-item-header:not(:last-child) { - margin-bottom: var(--size-4-2); -} -.file-recovery-list-item-header.is-active, -.file-recovery-list-item-header.is-active:hover { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.file-recovery-list-item-header.is-active .u-muted, -.file-recovery-list-item-header.is-active:hover .u-muted { - color: var(--text-on-accent); - opacity: 0.8; -} -@media (hover: hover) { - .file-recovery-list-item-header:hover { - background-color: var(--background-modifier-hover); - } -} -.file-recovery-list-item-header .file-recovery-list-item-details { - flex-grow: 1; - cursor: var(--cursor); - font-size: var(--font-ui-small); -} -.file-recovery-list-item-header .collapse-indicator { - min-width: var(--size-4-6); - padding-left: var(--size-4-2); - opacity: 1; -} -.graph-view.color-fill { - color: var(--graph-node); -} -.graph-view.color-fill-focused { - color: var(--graph-node-focused); -} -.graph-view.color-fill-tag { - color: var(--graph-node-tag); -} -.graph-view.color-fill-attachment { - color: var(--graph-node-attachment); -} -.graph-view.color-fill-unresolved { - color: var(--graph-node-unresolved); - opacity: 0.5; -} -.graph-view.color-fill-1 { - color: var(--text-muted); -} -.graph-view.color-fill-2 { - color: var(--text-muted); -} -.graph-view.color-fill-3 { - color: var(--text-muted); -} -.graph-view.color-fill-4 { - color: var(--text-muted); -} -.graph-view.color-fill-5 { - color: var(--text-muted); -} -.graph-view.color-fill-6 { - color: var(--text-muted); -} -.graph-view.color-arrow { - color: var(--text-normal); - opacity: 0.5; -} -.graph-view.color-circle { - color: var(--graph-node-focused); -} -.graph-view.color-line { - color: var(--graph-line); -} -.graph-view.color-text { - color: var(--graph-text); -} -.graph-view.color-fill-highlight { - color: var(--interactive-accent); -} -.graph-view.color-line-highlight { - color: var(--interactive-accent); -} -.graph-controls { - border-radius: var(--radius-m); - position: absolute; - right: var(--size-4-3); - top: var(--size-4-3); - padding: 0; - background-color: var(--background-primary); - width: var(--graph-controls-width); - overflow: auto; -} -.graph-controls:not(.is-close) { - max-height: calc(100% - var(--size-4-4)); - border: 1px solid var(--background-modifier-border); - box-shadow: var(--shadow-s); -} -.graph-controls.is-close { - min-width: inherit; - width: auto; - background-color: var(--background-primary); - border: 1px solid transparent; - padding: var(--size-2-3); -} -.graph-controls.is-close > .graph-control-section { - display: none; -} -.workspace-split:not(.mod-root) .graph-controls.is-close { - background-color: var(--background-secondary); -} -.graph-controls input[type='text'], -.graph-controls input[type='range'] { - width: 100%; - font-size: var(--font-ui-small); -} -.graph-controls .mod-cta { - margin-top: var(--size-2-3); - width: 100%; -} -.graph-controls .setting-item { - padding: var(--size-2-3) 0; - border: none; -} -.graph-controls .setting-item .setting-item-info { - display: flex; - align-items: center; -} -.graph-controls .setting-item:first-of-type { - border-top: none; -} -.graph-controls .setting-item.mod-slider { - flex-direction: column; -} -.graph-controls .setting-item.mod-slider > * { - width: 100%; -} -.graph-controls .setting-item.mod-slider .setting-item-info { - margin-right: 0; -} -.graph-controls .setting-item.mod-slider .setting-item-control { - padding-top: var(--size-4-3); -} -.graph-controls .setting-item.mod-toggle .setting-item-control { - padding-top: 0; -} -.graph-controls .setting-item.mod-search-setting .setting-item-info { - margin-right: 0; -} -.graph-controls .setting-item-name { - font-size: var(--font-ui-small); -} -.graph-controls::-webkit-scrollbar, -.graph-controls::-webkit-scrollbar-thumb { - display: none; -} -.graph-color-group { - --swatch-height: 18px; - --swatch-width: 18px; - position: relative; - display: flex; - align-items: center; - padding: 0 0 6px 0; - transition: top 200ms ease-in-out; -} -.graph-color-group input[type="color"] { - margin: 0 2px 0 6px; -} -.graph-color-group .clickable-icon { - padding: var(--size-2-2); -} -.graph-color-button-container { - text-align: center; - margin-bottom: 10px; -} -.graph-color-button-container button { - margin: 0; - width: 100%; -} -.graph-color-group.drag-ghost { - position: fixed; - display: flex; - max-width: unset; - border: none; - box-shadow: none; - background-color: var(--background-primary-alt); - padding: 0; - transition: none; - pointer-events: none; -} -.graph-color-group.drag-ghost input[type='text'] { - width: 100%; -} -.graph-color-group.drag-ghost input[type='color'] { - margin-left: 6px; -} -.graph-control-section.mod-color-groups .tree-item-children.is-grabbing .graph-color-groups-container { - padding-bottom: 40px; -} -.graph-controls-button { - display: none; - z-index: 1; -} -.graph-controls-button.mod-close, -.graph-controls-button.mod-reset { - position: absolute; - top: var(--size-4-2); - right: var(--size-4-2); - padding: var(--size-2-2); -} -.graph-controls:not(.is-close) .graph-controls-button.mod-close, -.graph-controls:not(.is-close) .graph-controls-button.mod-reset { - display: flex; -} -.graph-controls-button.mod-reset { - right: 36px; -} -.graph-controls.is-close .graph-controls-button.mod-open { - display: flex; -} -.graph-controls-button.mod-animate { - margin-top: var(--size-4-2); -} -.graph-controls.is-close .graph-controls-button.mod-animate { - display: flex; -} -.setting-item.mod-search-setting .setting-item-info { - display: none; -} -.setting-item.mod-search-setting .setting-item-control .search-input-container { - position: relative; - flex-grow: 1; - margin: 0; -} -.setting-item.mod-search-setting.is-loading .setting-item-control:before { - background-color: var(--interactive-accent); - animation: 1000ms ease-in-out 300ms infinite progress-bar; -} -.graph-control-section-header { - font-weight: var(--font-semibold); - font-size: var(--font-ui-small); - color: var(--text-normal); -} -.graph-control-section { - padding: var(--size-2-3) var(--size-4-3); - border-bottom: 1px solid var(--background-modifier-border); -} -.graph-control-section:last-child { - border-bottom: none; -} -.graph-control-section:last-child .tree-item-children { - padding-bottom: var(--size-4-4); -} -.graph-control-section > .tree-item-self { - padding-left: var(--size-4-4); -} -.graph-control-section .tree-item-children { - margin: 0; - padding: var(--size-4-1) 0; - border-left: none; -} -.graph-control-section.mod-display .setting-item:not(.mod-slider):last-child .setting-item-info { - display: none; -} -.workspace-leaf-content[data-type='outline'] .view-content { - padding: var(--size-4-3) var(--size-4-3) var(--size-4-8); -} -.workspace-leaf-content[data-type=all-properties] .view-content, -.workspace-leaf-content[data-type=properties] .view-content { - padding: var(--size-4-3) var(--size-4-3) var(--size-4-8); -} -.is-phone, -.workspace-drawer { - --metadata-input-height: calc(var(--font-text-size) * 2.25); - --metadata-padding: 0; - --metadata-divider-width: 1px; - --metadata-divider-color-hover: var(--metadata-divider-color); -} -.is-phone .metadata-properties, -.workspace-drawer .metadata-properties { - --metadata-gap: 0; -} -.is-phone .metadata-property:hover:not(:focus-within), -.workspace-drawer .metadata-property:hover:not(:focus-within) { - box-shadow: none; -} -.workspace > .workspace-split:not(.mod-root) .metadata-container { - --metadata-label-font-size: var(--metadata-sidebar-label-font-size); - --metadata-input-font-size: var(--metadata-sidebar-label-font-size); - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - --metadata-padding: 0; - --metadata-divider-width: 1px; - --metadata-divider-color-hover: var(--metadata-divider-color); -} -.workspace > .workspace-split:not(.mod-root) .metadata-container .metadata-properties { - --metadata-gap: 0; -} -.workspace > .workspace-split:not(.mod-root) .metadata-container .metadata-property:hover:not(:focus-within) { - box-shadow: none; -} -.workspace > .workspace-split:not(.mod-root) .metadata-container .metadata-property-value .clickable-icon { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); -} -.workspace-leaf-content[data-type=file-properties] .metadata-properties-heading { - display: none; -} -.metadata-container { - container-type: inline-size; - container-name: metadata; -} -@container (width < 250px) { - .metadata-property { - flex-wrap: wrap; - } - .metadata-property .metadata-property-key { - width: 100%; - border-bottom: 0; - } - .metadata-property .metadata-property-value { - margin-top: -2px; - padding-left: calc(var(--icon-size) + var(--size-4-1)); - } -} -.modal.mod-publish { - height: var(--modal-height); - width: var(--modal-width); - max-width: var(--modal-max-width-narrow); - padding: var(--size-4-4) 0 0 0; - position: relative; - overflow: hidden; -} -.modal.mod-publish .modal-title { - padding: 0 var(--size-4-4); -} -.modal.mod-publish .modal-content { - overflow: auto; - padding: 0 var(--size-4-4) var(--size-4-4); - margin-bottom: calc(var(--input-height) + var(--size-4-8)); - border-top: var(--border-width) solid var(--background-modifier-border); -} -.modal.mod-publish .modal-button-container { - margin: 0 0 0 calc(var(--size-4-4) * -1); - padding: var(--size-4-4); - gap: var(--size-4-2); - position: absolute; - bottom: 0; - background-color: var(--background-primary); - border-top: var(--border-width) solid var(--background-modifier-border); - width: 100%; -} -.publish-section { - margin-bottom: var(--size-4-1); -} -.publish-change-list { - padding: var(--size-4-2) 0 var(--size-4-2) 0; -} -.site-list-site-id-setting { - margin-top: var(--size-4-4); -} -.publish-section-header-text, -.publish-section-header-toggle-collapsed-button, -.publish-section-header-action { - cursor: var(--cursor); -} -@media (hover: hover) { - .publish-section-header-text:hover, - .publish-section-header-toggle-collapsed-button:hover, - .publish-section-header-action:hover { - color: var(--text-accent-hover); - } -} -.publish-section-header { - border-bottom: 1px solid var(--background-modifier-border); - font-size: var(--font-ui-small); - line-height: 1.1; - color: var(--text-muted); - display: flex; - padding: var(--size-4-2) 0; - align-items: center; -} -.publish-section-header-text { - flex-grow: 1; - font-size: var(--font-ui-medium); - color: var(--text-normal); - line-height: var(--line-height-tight); - font-weight: var(--font-medium); -} -.publish-changes-switch-site { - margin-left: var(--size-4-2); - display: flex; - flex-direction: row; - flex-grow: 1; - font-size: var(--font-ui-small); - position: relative; - gap: var(--size-2-1); - top: 2px; -} -.publish-changes-switch-site .clickable-icon { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - padding: var(--size-2-2); -} -.upload-progress-container { - max-height: 60vh; - overflow: auto; -} -.upload-progress-container.is-finished { - max-height: calc(60vh - 200px); -} -.publish-changes-current-site-name { - margin-left: var(--size-2-3); - text-decoration: underline; -} -.publish-changes-info { - display: flex; - align-items: center; - margin-bottom: 20px; -} -.publish-changes-info button { - margin-right: 0; - margin-left: var(--size-4-2); -} -.publish-changes-info .search-input-container { - margin: 0; - width: 0; - flex: 1 0 auto; -} -.publish-section-header-toggle-collapsed-button { - margin-right: var(--size-4-1); - color: var(--text-faint); - width: 9px; - height: 9px; -} -.publish-section-header-action { - color: var(--text-faint); - margin-left: var(--size-4-3); -} -.publish-upload-item-title { - word-break: break-word; - font-size: var(--nav-item-size); - line-height: var(--line-height-tight); -} -.publish-changes-buttons { - text-align: right; - padding-bottom: var(--size-4-4); -} -.publish-upload-item { - position: relative; - padding: var(--size-4-1) var(--size-4-2); -} -.publish-upload-item .flair { - background-color: transparent; - text-transform: unset; - letter-spacing: normal; - font-size: var(--font-ui-smaller); -} -.publish-upload-item .list-item-part { - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - display: flex; - align-items: center; -} -.publish-upload-item:before { - content: ' '; - position: absolute; - top: 0; - left: 0; - width: 0; - height: 100%; - transition: width 150ms ease-in-out; - background-color: rgba(var(--background-modifier-success-rgb), 0.2); - z-index: 0; - border-radius: var(--radius-s); -} -.publish-upload-item.mod-failed { - color: var(--text-error); -} -.publish-upload-item.mod-failed:before { - background-color: rgba(var(--background-modifier-error-rgb), 0.2); -} -.publish-upload-item.mod-completed { - color: var(--text-success); -} -.publish-upload-item.mod-completed > * { - position: relative; -} -.publish-upload-item.mod-completed:before { - width: 100%; -} -.site-list-container { - border-top: 1px solid var(--background-modifier-border); - margin-bottom: var(--size-4-4); -} -.site-list-container .list-item:last-child { - padding-top: var(--size-4-4); -} -.site-list-item-name { - flex-grow: 1; -} -.slug-input { - text-transform: lowercase; -} -.passwords-container { - margin-bottom: var(--size-4-4); -} -.password-item { - border-radius: var(--radius-s); - padding: var(--size-4-2) var(--size-4-4); - margin: var(--size-4-1) 0; -} -@media (hover: hover) { - .password-item:hover { - background-color: var(--background-primary); - } -} -.tree-item.mod-custom-nav.hidden .tree-item-self { - color: var(--text-faint); -} -.tree-item.mod-custom-nav .tree-item-inner { - display: flex; - align-items: center; - position: relative; -} -.tree-list { - padding: var(--size-4-4) 0; -} -.tree-list-header { - border-bottom: 1px solid var(--background-modifier-border); - padding: var(--size-4-2) 0; - line-height: 1.1; - display: flex; - align-items: center; - justify-content: space-between; -} -.tree-list-title { - font-size: var(--font-ui-medium); - font-weight: var(--font-semibold); -} -.tree-list-action { - align-items: center; - display: flex; - color: var(--text-muted); - font-size: var(--font-ui-small); -} -.search-input-container { - position: relative; -} -.search-input-container:before { - top: calc((var(--input-height) - var(--search-icon-size)) / 2); - left: 8px; - position: absolute; - content: ''; - height: var(--search-icon-size); - width: var(--search-icon-size); - display: block; - background-color: var(--search-icon-color); - -webkit-mask-image: url("data:image/svg+xml,"); - -webkit-mask-repeat: no-repeat; -} -.search-input-container input { - display: block; - width: 100%; - padding-right: 28px; - padding-left: 36px; -} -.global-search-input-container.search-input-container input { - padding-right: 56px; -} -.search-input-clear-button { - position: absolute; - background: transparent; - border-radius: 50%; - color: var(--search-clear-button-color); - cursor: var(--cursor); - top: 0px; - 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; -} -.search-input-clear-button: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; -} -.search-input-clear-button:hover, -.search-input-clear-button:active { - color: var(--text-normal); - transition: color 0.15s ease-in-out; -} -.search-input-suggest-button { - position: absolute; - left: 0; - top: 0; - color: var(--text-faint); - cursor: var(--cursor); - padding: var(--size-4-1) var(--size-4-2); - opacity: 0; - z-index: 10; -} -@media (hover: hover) { - .search-input-suggest-button:hover { - color: var(--text-muted); - } -} -.backlink-pane, -.outgoing-link-pane { - overflow-y: auto; - padding: var(--size-4-3) var(--size-4-3) var(--size-4-8); - flex: 1 0 0; - /* #todo This should be removed and make the DOM changes instead - Section headers for linked/unlinked mentions - */ -} -.backlink-pane .search-result-container, -.outgoing-link-pane .search-result-container { - padding: var(--size-4-1) 1px var(--size-4-4); -} -.backlink-pane > .tree-item-self, -.outgoing-link-pane > .tree-item-self { - color: var(--text-normal); - padding-left: var(--size-4-2); -} -.backlink-pane > .tree-item-self .tree-item-inner, -.outgoing-link-pane > .tree-item-self .tree-item-inner { - font-weight: var(--font-medium); -} -.backlink-pane > .tree-item-self.is-collapsed, -.outgoing-link-pane > .tree-item-self.is-collapsed { - color: var(--text-faint); -} -@media (hover: hover) { - .backlink-pane > .tree-item-self.is-collapsed:hover, - .outgoing-link-pane > .tree-item-self.is-collapsed:hover { - color: var(--text-muted); - } -} -.backlink-pane > .tree-item-self .collapse-icon, -.outgoing-link-pane > .tree-item-self .collapse-icon { - display: none; -} -.search-result-container { - padding: var(--size-4-3) var(--size-4-3) var(--size-4-4); - position: relative; - flex: 1 0 0; -} -.search-result-container.mod-global-search { - overflow-y: auto; -} -.search-result-container:before { - content: ' '; - position: absolute; - top: 0; - width: 0; - height: 3px; -} -.search-result-container.is-loading:before { - background-color: var(--interactive-accent); - animation: 1000ms ease-in-out 300ms infinite progress-bar; -} -.search-suggest-info-text { - color: var(--text-muted); - margin-left: 4px; -} -.search-suggest-icon { - padding: 4px; - border-radius: var(--radius-s); -} -@media (hover: hover) { - .search-suggest-icon:hover { - background-color: var(--background-modifier-hover); - } -} -.suggestion-container.mod-search-suggestion { - max-width: unset; - background-color: var(--background-secondary); - border-color: var(--prompt-border-color); - max-height: 600px; -} -.suggestion-container.mod-search-suggestion .suggestion { - padding: var(--size-2-3); - background-color: var(--background-secondary); - border-radius: var(--radius-m); -} -.search-suggest-icon { - align-items: center; - display: flex; -} -.search-suggest-item { - padding: var(--size-4-1) var(--size-4-2); - border-radius: var(--radius-s); -} -.search-suggest-item.suggestion-item { - font-size: var(--font-ui-small); -} -.search-suggest-item.mod-group { - align-items: center; - margin: 0; - color: var(--text-muted); - padding: 0 0 0 var(--size-4-2); - cursor: default; - font-weight: var(--font-semibold); - font-size: var(--font-ui-smaller); - border-radius: 0; -} -.search-suggest-item.mod-group:not(:first-child) { - border-top: 1px solid var(--background-modifier-border); - margin-top: 6px; - padding: 6px 6px 0px 14px; - margin-left: -6px; - margin-right: -6px; -} -.search-suggest-item.mod-group:hover, -.search-suggest-item.mod-group.is-selected { - background-color: initial; -} -@keyframes progress-bar { - 0% { - width: 0; - left: 0; - } - 5% { - width: 0; - left: 0; - } - 50% { - width: 100%; - right: 0; - } - 95% { - width: 0; - right: 0; - } - 100% { - width: 0; - right: 0; - } -} -.search-empty-state { - color: var(--text-faint); - font-size: var(--font-ui-small); - margin: 0 0 var(--size-4-3); - padding-left: var(--size-4-2); -} -.search-result { - word-break: break-word; -} -.search-result:not(.is-collapsed) .search-result-file-title { - color: var(--nav-item-color-active); -} -.search-result-file-matches { - font-size: var(--font-ui-smaller); - line-height: var(--line-height-tight); - background-color: var(--search-result-background); - border-radius: var(--radius-s); - overflow: hidden; - margin: var(--size-4-1) 0 var(--size-4-2); - color: var(--text-muted); - box-shadow: 0 0 0 1px var(--background-modifier-border); -} -.search-result-file-matches:empty { - display: none; -} -.search-info-more-matches { - color: var(--text-faint); -} -.search-result-file-match { - cursor: var(--cursor); - position: relative; - padding: var(--size-4-2) var(--size-4-5) var(--size-4-2) var(--size-4-3); - white-space: pre-wrap; - width: 100%; - border-bottom: 1px solid var(--background-modifier-border); -} -.search-result-file-match:last-child { - border-bottom: none; -} -@media (hover: hover) { - .search-result-file-match:hover { - color: var(--text-normal); - background-color: var(--text-selection); - } -} -.search-result-file-match:hover .search-result-file-match-replace-button { - display: block; -} -.search-result-file-match-replace-button { - display: none; - position: absolute; - height: auto; - bottom: 5px; - right: 24px; - padding: var(--size-4-1) var(--size-4-2); - color: var(--text-muted); - font-size: var(--font-ui-smaller); -} -@media (hover: hover) { - .search-result-file-match-replace-button:hover { - color: var(--text-normal); - } -} -.search-result-hover-button { - position: absolute; - display: flex; - right: 2px; - border-radius: var(--radius-s); - color: var(--text-faint); - padding: 1px 3px; -} -@media (hover: hover) { - .search-result-hover-button:hover { - opacity: 1; - background-color: var(--background-modifier-hover); - } -} -.search-result-hover-button.mod-top { - top: 2px; -} -.search-result-hover-button.mod-bottom { - bottom: 2px; -} -.search-result-file-matched-text { - color: var(--text-normal); - background-color: var(--text-highlight-bg); -} -.search-info-container { - color: var(--text-muted); - padding: var(--size-4-1) var(--size-4-4) var(--size-4-1); - font-size: var(--font-ui-smaller); -} -.search-info-children { - padding-left: 20px; - border-left: 1px solid var(--background-modifier-border); - margin: 1px 0; -} -.copy-search-result-container { - display: flex; - flex-direction: column; -} -.copy-search-result-textarea { - height: 300px; - max-height: 20vh; - resize: none; -} -.copy-search-result-textarea + .setting-item { - border-top: none; -} -.search-result-file-match-destination-file-container { - margin-top: var(--size-2-3); -} -.search-result-file-match-destination-file { - display: inline-flex; - background-color: var(--interactive-normal); - border-radius: var(--radius-s); - box-shadow: var(--input-shadow); - color: var(--text-muted); - padding: var(--size-2-2) var(--size-2-3); - margin-bottom: var(--size-2-1); -} -@media (hover: hover) { - .search-result-file-match:hover .search-result-file-match-destination-file { - background-color: var(--background-secondary); - } - .search-result-file-match:hover .search-result-file-match-destination-file:hover { - background-color: var(--interactive-hover); - box-shadow: var(--input-shadow-hover); - color: var(--text-normal); - } -} -.search-result-file-match-destination-file-icon { - --icon-size: var(--icon-xs); - --icon-stroke: var(--icon-xs-stroke-width); - margin-right: var(--size-4-1); - display: flex; - color: var(--text-faint); -} -.search-result-file-match-destination-file-icon .svg-icon { - align-self: center; -} -.search-result-file-match-destination-file-name { - white-space: pre-wrap; - word-break: break-all; -} -body:not(.is-phone) .workspace-leaf.mod-active .search-result.has-focus .tree-item-self, -body:not(.is-phone) .workspace-leaf.mod-active .search-result-file-match.has-focus { - border-radius: var(--radius-s); - box-shadow: inset 0 0 0 2px var(--background-modifier-border-focus); -} -.search-results-info { - color: var(--text-muted); - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: 1px solid var(--background-modifier-border); - margin: var(--size-4-1) var(--size-4-2) 0; - padding-bottom: var(--size-4-1); - white-space: nowrap; -} -.search-results-info .dropdown { - height: 24px; - box-shadow: none; - background-color: transparent; - font-size: 12px; - color: var(--text-muted); - text-align-last: right; - max-width: 60%; - text-overflow: ellipsis; - white-space: nowrap; -} -@media (hover: hover) { - .search-results-info .dropdown:hover { - color: var(--interactive-accent); - } -} -.search-results-info .dropdown option { - color: initial; - text-align: left; -} -.search-results-result-count { - font-size: var(--font-ui-smaller); - font-variant-numeric: tabular-nums; -} -.search-row { - display: flex; - margin: var(--size-4-2); - gap: var(--size-4-1); -} -.search-params { - margin: var(--size-4-1) var(--size-4-4); -} -.search-params input[type='text'], -.search-params input[type='range'] { - width: 100%; - font-size: var(--font-ui-small); -} -.search-params .mod-cta { - margin-top: var(--size-2-3); - width: 100%; -} -.search-params .setting-item { - padding: var(--size-2-3) 0; - border: none; -} -.search-params .setting-item .setting-item-info { - display: flex; - align-items: center; -} -.search-params .setting-item:first-of-type { - border-top: none; -} -.search-params .setting-item.mod-slider { - flex-direction: column; -} -.search-params .setting-item.mod-slider > * { - width: 100%; -} -.search-params .setting-item.mod-slider .setting-item-info { - margin-right: 0; -} -.search-params .setting-item.mod-slider .setting-item-control { - padding-top: var(--size-4-3); -} -.search-params .setting-item.mod-toggle .setting-item-control { - padding-top: 0; -} -.search-params .setting-item.mod-search-setting .setting-item-info { - margin-right: 0; -} -.search-params .setting-item-name { - font-size: var(--font-ui-small); -} -.search-params::-webkit-scrollbar, -.search-params::-webkit-scrollbar-thumb { - display: none; -} -.global-search-input-container { - flex-grow: 1; -} -.more-options-icon { - --icon-size: 10px; - background-color: var(--icon-color); - border-radius: 50%; - color: var(--background-secondary); - display: flex; - margin-left: var(--size-2-3); - opacity: var(--icon-opacity); - padding: 0.5px; -} -.clickable-icon:hover .more-options-icon { - background-color: var(--icon-color-hover); - opacity: var(--icon-opacity-hover); -} -.slides-container { - position: fixed; - top: 0; - left: 0; - height: 100vh; - width: 100vw; - transition: -webkit-transform 0.8s ease 0s; - background-color: #191919; - z-index: var(--layer-slides); - border: none; -} -.slides-container li .collapse-indicator { - display: none; -} -.slides-close-btn { - display: inline-block; - position: absolute; - top: var(--size-4-2); - right: var(--size-4-2); - color: var(--text-faint); - cursor: var(--cursor); - z-index: 1; -} -@media (hover: hover) { - .slides-close-btn:hover { - color: var(--text-muted); - } -} -.reveal input[type='checkbox'] { - width: 24px; - height: 24px; -} -.reveal .task-list-item, -.reveal .footnote-item { - list-style: none; -} -.reveal .task-list-item { - margin-left: -1.5em; -} -.mod-sync-history .modal-content { - height: 100%; -} -.vault-list-item { - margin: 6px 0; - display: flex; -} -.vault-list-item.is-connected .vault-list-item-title { - color: var(--text-normal); -} -.vault-list-item-icon { - color: var(--text-muted); - position: relative; - top: 1px; -} -.vault-list-item-title { - color: var(--text-muted); - user-select: none; -} -.vault-list-item-creation-time { - color: var(--text-faint); - font-size: var(--font-ui-small); -} -.sync-status-icon { - display: flex; - align-items: center; - cursor: var(--cursor); -} -.sync-status-icon.mod-success { - color: var(--text-success); -} -.sync-status-icon.mod-working { - color: var(--interactive-accent); -} -.sync-status-icon.mod-error { - color: var(--text-error); -} -.sync-status-icon.mod-spin svg { - animation-name: spin; - animation-duration: 5000ms; - animation-iteration-count: infinite; - animation-timing-function: linear; -} -@media (prefers-reduced-motion: reduce) { - .sync-status-icon.mod-spin svg { - animation: none; - } -} -@keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} -.sync-history-list-container { - display: flex; - flex-direction: column; - flex-basis: 250px; - flex-shrink: 0; - border-right: 1px solid var(--background-modifier-border); - background-color: var(--background-secondary); -} -.sync-history-list { - overflow: auto; - padding: var(--size-4-2) var(--size-4-2) 0; - display: flex; - flex: 0 1 auto; - flex-direction: column; -} -.sync-history-list .search-input-container { - width: 100%; -} -.sync-history-list-item-container { - overflow: auto; - flex: 1 1 0; -} -.sync-history-list-item-header { - display: flex; - align-items: center; - padding: var(--size-4-2); - margin-bottom: var(--size-4-1); - border-radius: var(--radius-s); -} -.sync-history-list-item-header:last-child { - margin-bottom: 0; -} -.sync-history-list-item-header.is-active, -.sync-history-list-item-header.is-active:hover { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.sync-history-list-item-header.is-active .u-muted, -.sync-history-list-item-header.is-active:hover .u-muted { - color: var(--text-on-accent); - opacity: 0.8; -} -.sync-history-list-item-header.is-active { - --nav-collapse-icon-color: var(--text-on-accent); -} -@media (hover: hover) { - .sync-history-list-item-header.is-active:hover { - --nav-collapse-icon-color: var(--text-on-accent); - } -} -@media (hover: hover) { - .sync-history-list-item-header.is-active .tree-item-flair:hover { - --nav-collapse-icon-color: var(--text-on-accent); - } -} -@media (hover: hover) { - .sync-history-list-item-header:hover { - background-color: var(--background-modifier-hover); - } -} -.sync-history-list-item-header .mod-avatar-current-user { - background-color: var(--sync-avatar-color-current-user); -} -.sync-history-list-item-header .mod-avatar-color-1 { - background-color: var(--sync-avatar-color-1); -} -.sync-history-list-item-header .mod-avatar-color-2 { - background-color: var(--sync-avatar-color-2); -} -.sync-history-list-item-header .mod-avatar-color-3 { - background-color: var(--sync-avatar-color-3); -} -.sync-history-list-item-header .mod-avatar-color-4 { - background-color: var(--sync-avatar-color-4); -} -.sync-history-list-item-header .mod-avatar-color-5 { - background-color: var(--sync-avatar-color-5); -} -.sync-history-list-item-header .mod-avatar-color-6 { - background-color: var(--sync-avatar-color-6); -} -.sync-history-list-item-header .mod-avatar-color-7 { - background-color: var(--sync-avatar-color-7); -} -.sync-history-list-item-header .mod-avatar-color-8 { - background-color: var(--sync-avatar-color-8); -} -.sync-history-list-item-header .sync-history-list-item-avatar { - border-radius: 50%; - height: var(--size-4-8); - width: var(--size-4-8); - min-width: var(--size-4-8); - margin-right: var(--size-4-2); - display: flex; - justify-content: center; - align-items: center; - text-transform: uppercase; - color: var(--text-on-accent); - border: 1px solid rgba(var(--mono-rgb-100), 0.2); -} -.sync-history-list-item-header.is-active .sync-history-list-item-avatar { - border: 1px solid rgba(255, 255, 255, 0.25); -} -.sync-history-list-item-header:not(.is-active) .sync-history-list-item-avatar.mod-avatar-current-user { - color: var(--text-normal); -} -.sync-history-list-item-header .sync-history-list-item-details { - flex-grow: 1; - cursor: var(--cursor); - font-size: var(--font-ui-small); -} -.sync-history-list-item-header .tree-item-flair { - padding: var(--size-4-1); -} -@media (hover: hover) { - .sync-history-list-item-header .tree-item-flair:hover { - opacity: 1; - background-color: var(--background-modifier-hover); - --nav-collapse-icon-color: var(--text-normal); - } -} -.sync-history-list-item .version-group-container { - position: relative; - margin-bottom: var(--size-4-2); -} -.sync-history-list-item .version-group-container .connecting-line { - position: absolute; - top: 0; - left: var(--size-4-6); - height: 100%; - width: var(--indentation-guide-width); - background-color: var(--indentation-guide-color); -} -.sync-history-list-item .version-group-container .version-group-item { - padding: var(--size-4-1) var(--size-2-2) var(--size-4-1) var(--size-4-12); - margin-bottom: var(--size-2-1); - border-radius: var(--radius-s); - font-size: var(--nav-item-size); - line-height: var(--line-height-tight); - color: var(--nav-item-color); - font-variant: tabular-nums; -} -.sync-history-list-item .version-group-container .version-group-item:hover { - background-color: var(--nav-item-background-hover); - color: var(--nav-item-color-hover); -} -.sync-history-list-item .version-group-container .version-group-item.is-active, -.sync-history-list-item .version-group-container .version-group-item.is-active:hover { - background-color: var(--nav-item-background-active); - color: var(--nav-item-color-active); -} -.sync-history-list-item .version-group-container .version-group-item.is-active .u-muted, -.sync-history-list-item .version-group-container .version-group-item.is-active:hover .u-muted { - color: var(--text-on-accent); - opacity: 0.8; -} -@media (hover: hover) { - .sync-history-list-item .version-group-container .version-group-item:hover { - background-color: var(--background-modifier-hover); - } -} -.sync-history-content-container { - background-color: var(--background-primary); - padding: 0; - height: auto; - display: flex; - flex-direction: column; - width: 0; - flex: 1 1 auto; -} -.sync-history-content-container .modal-button-container { - border-top: 1px solid var(--background-modifier-border); - margin: 0; - padding: 12px; - justify-content: center; -} -.sync-history-content-container textarea { - resize: none; - border: none; - box-shadow: none; -} -.sync-history-content-container textarea:hover, -.sync-history-content-container textarea:active, -.sync-history-content-container textarea:focus { - border: none; - box-shadow: none; -} -.sync-history-content-empty { - display: none; -} -.sync-history-content-container.mod-empty .sync-history-content-empty { - display: block; - text-align: center; - padding: 24px; -} -.sync-history-content { - display: flex; - flex-direction: column; - flex-grow: 1; - overflow: hidden; - padding: 0; -} -.sync-history-content .setting-item:first-child { - padding: var(--size-4-4) var(--size-4-6) var(--size-4-4); - border-bottom: 1px solid var(--background-modifier-border); -} -.sync-history-content .setting-item-info { - flex-grow: 1; - font-weight: var(--bold-weight); - overflow: hidden; -} -.sync-history-content .setting-item-info .setting-item-name { - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.sync-history-content .setting-item-control { - justify-content: flex-end; - padding-right: var(--size-4-8); - white-space: nowrap; -} -.sync-history-content .setting-item-control .checkbox-container { - margin-right: var(--size-4-3); -} -.sync-history-preview, -.sync-history-text, -.sync-history-diff { - flex: 1 0 0; - padding: var(--size-4-6); - font-size: var(--font-ui-medium); - background-color: var(--background-primary); -} -.sync-history-preview, -.sync-history-diff { - overflow: auto; - user-select: text; -} -.sync-history-preview { - --cursor-link: default; - font-family: var(--font-text); - font-size: var(--font-text-size); -} -.sync-history-content-other { - flex-grow: 1; - padding: var(--size-4-6); - text-align: center; -} -.sync-history-content-other img { - max-width: 100%; -} -.sync-history-content-container.mod-empty .sync-history-content, -.sync-history-content-container.mod-empty .sync-history-content-buttons { - display: none; -} -.sync-history-content-buttons { - border-top: 1px solid var(--background-modifier-border); - margin: 0; - padding: var(--size-4-3); -} -.mod-selectable { - cursor: var(--cursor); - padding: var(--size-4-2) var(--size-4-4); - border-radius: var(--radius-m); -} -@media (hover: hover) { - .mod-selectable:hover { - background-color: var(--background-modifier-hover); - } -} -.sync-history-load-more-button { - background-color: var(--background-secondary); - height: 32px; - text-align: center; - line-height: 32px; - font-size: var(--font-ui-small); - cursor: var(--cursor); - color: var(--text-muted); - margin: var(--size-4-1) var(--size-4-2) var(--size-4-2); - border-radius: var(--radius-s); -} -@media (hover: hover) { - .sync-history-load-more-button:hover { - background-color: var(--background-modifier-hover); - color: var(--text-normal); - } -} -/* Sync log */ -.modal.mod-sync-log { - height: var(--modal-height); - width: var(--modal-width); - max-width: var(--modal-max-width-narrow); - padding: var(--size-4-4) 0 0 0; -} -.modal.mod-sync-log .modal-title { - padding: 0 var(--size-4-4); -} -.modal.mod-sync-log .modal-content { - display: flex; - flex-direction: column; - overflow: hidden; - padding: 0; -} -.modal.mod-sync-log .modal-button-container { - margin: 0; - padding: var(--size-4-4); -} -.modal.mod-sync-log .setting-item { - padding: 0.75em var(--size-4-4) var(--size-4-4); -} -.modal.mod-sync-log .sync-log-container { - overflow: auto; - flex-grow: 1; - font-family: var(--font-monospace); - font-size: var(--font-ui-smaller); - color: var(--text-muted); - border-top: 1px solid var(--background-modifier-border); - border-bottom: 1px solid var(--background-modifier-border); - padding: var(--size-4-4); - background-color: var(--background-secondary); -} -.modal.mod-sync-log .sync-log-container .list-item { - line-height: var(--line-height-normal); - margin: 0; -} -.modal.mod-sync-log .sync-log-container .list-item.mod-error { - color: var(--text-error); -} -.sync-file-tree-container { - max-height: calc(90vh - 250px); - overflow: auto; -} -.sync-exclude-folder { - display: flex; - margin: var(--size-4-3) 0; -} -.sync-exclude-folder > * { - align-self: center; - display: flex; -} -.sync-exclude-folder-name { - flex-grow: 1; -} -.sync-exclude-folder-remove { - visibility: hidden; - margin-right: 6px; -} -.sync-exclude-folder:hover .sync-exclude-folder-remove { - visibility: visible; -} -.tag-pane-tag.is-active { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.tag-pane-tag.is-active .tag-pane-tag-count { - background-color: var(--background-modifier-hover); - color: var(--text-normal); -} -@media (hover: hover) { - .tag-pane-tag.is-active:hover { - background-color: var(--interactive-accent); - color: var(--text-on-accent); - } -} -.tag-container { - font-size: var(--font-ui-small); - padding: var(--size-4-3) var(--size-4-3) var(--size-4-8); - overflow: auto; -} -.tree-item-children .tag-pane-tag .tag-pane-tag-parent { - display: none; -} -body:not(.is-phone) .workspace-leaf.mod-active .tree-item.has-focus > .tag-pane-tag { - border-radius: var(--radius-s); - box-shadow: 0 0 0 2px var(--background-modifier-border-focus); -} -.mod-canvas-color-1 { - --canvas-color: var(--canvas-color-1); -} -.mod-canvas-color-2 { - --canvas-color: var(--canvas-color-2); -} -.mod-canvas-color-3 { - --canvas-color: var(--canvas-color-3); -} -.mod-canvas-color-4 { - --canvas-color: var(--canvas-color-4); -} -.mod-canvas-color-5 { - --canvas-color: var(--canvas-color-5); -} -.mod-canvas-color-6 { - --canvas-color: var(--canvas-color-6); -} -.workspace-leaf-content[data-type='canvas'] .view-content { - padding: 0; - position: relative; -} -body { - --canvas-color: 192, 192, 192; -} -body.theme-dark { - --canvas-color: 126, 126, 126; -} -.canvas-wrapper { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - --resizer-size: 20px; - --shadow-stationary: 0px 0.5px 1px 0.5px rgba(0, 0, 0, 0.1); - --shadow-drag: 0px 2px 10px rgba(0, 0, 0, 0.1); - --shadow-border-accent: 0 0 0 2px var(--color-accent); - --zoom-multiplier: 1; - background-color: var(--canvas-background); - overflow: hidden; - contain: strict; - touch-action: none; - user-select: none; -} -.canvas-wrapper.is-dragging { - cursor: grabbing; -} -.canvas-wrapper.is-dragging iframe:not(.is-controlled), -.canvas-wrapper.is-dragging webview { - pointer-events: none; -} -.canvas-wrapper.is-screenshotting { - z-index: 999999; -} -.canvas-wrapper.is-screenshotting .canvas-card-menu, -.canvas-wrapper.is-screenshotting .canvas-controls { - display: none !important; -} -.canvas-wrapper.is-screenshotting * { - pointer-events: none !important; -} -.canvas-mover { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - cursor: grab; -} -.canvas-mover:active { - cursor: grabbing; -} -.canvas-background { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - pointer-events: none; -} -.canvas-background circle { - fill: var(--canvas-dot-pattern); -} -.canvas { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - transform-origin: 0 0; - pointer-events: none; -} -.canvas > * { - pointer-events: initial; -} -.canvas-selection { - pointer-events: none; - position: absolute; - background-color: hsla(var(--color-accent-hsl), 0.1); - border: 2px solid var(--color-accent); - z-index: -1; -} -.canvas-selection.mod-group-selection { - border-width: 3px; - border-radius: 3px; - background-color: hsla(var(--color-accent-hsl), 0.03); - border-color: hsla(var(--color-accent-hsl), 0.3); - pointer-events: initial; -} -.canvas-wrapper:not(.mod-readonly) .canvas-selection.mod-group-selection { - cursor: grab; -} -.canvas-wrapper:not(.mod-readonly) .canvas-selection.mod-group-selection:active { - cursor: grabbing; -} -.canvas-selection.mod-node-highlight { - border-radius: var(--radius-m); -} -.canvas-controls, -.canvas-card-menu { - display: flex; - position: absolute; - z-index: var(--layer-cover); - font-size: var(--font-ui-medium); -} -.canvas-card-menu { - background-color: var(--background-primary); - border-radius: var(--radius-s); - box-shadow: var(--input-shadow); - bottom: var(--size-4-4); - left: 50%; - transform: translatex(-50%); - align-items: stretch; -} -.is-phone .canvas-card-menu, -.mod-toolbar-open .canvas-card-menu { - display: none; -} -.theme-dark .canvas-card-menu { - background-color: var(--background-secondary); -} -.canvas-card-menu .canvas-card-menu-divider { - width: 1px; - background-color: var(--background-modifier-border); -} -.canvas-card-menu .canvas-card-menu-button { - color: var(--text-muted); - height: auto; - display: flex; - line-height: 1; - align-items: center; - justify-content: center; - padding: var(--size-4-2); - --icon-size: var(--icon-xl); - --icon-stroke: var(--icon-xl-stroke-width); -} -@media (hover: hover) { - .canvas-card-menu .canvas-card-menu-button:hover { - color: var(--color-accent); - } -} -.canvas-card-menu .canvas-card-menu-button svg { - fill: var(--background-primary); -} -.theme-dark .canvas-card-menu .canvas-card-menu-button svg { - fill: var(--background-secondary); -} -.canvas-card-menu .canvas-card-menu-button.mod-draggable { - cursor: grab; -} -.canvas-card-menu .canvas-card-menu-button.mod-draggable:active { - cursor: grabbing; -} -.canvas-card-menu .canvas-card-menu-button.mod-draggable svg { - transition: 90ms transform ease-out; -} -@media (hover: hover) { - .canvas-card-menu .canvas-card-menu-button.mod-draggable:hover svg { - transform: translateY(-6px); - filter: drop-shadow(0px 6px 2px rgba(0, 0, 0, 0.1)); - } -} -.canvas-controls { - right: var(--size-4-2); - top: var(--size-4-2); - gap: var(--size-4-2); - display: flex; - flex-direction: column; -} -.canvas-control-group { - border-radius: var(--radius-s); - background-color: var(--background-primary); - border: 1px solid var(--background-modifier-border); - box-shadow: var(--input-shadow); - display: flex; - flex-direction: column; - overflow: hidden; -} -.canvas-control-item { - border-radius: 0; - box-shadow: none; - height: auto; - display: flex; - line-height: 1; - font-size: inherit; - align-items: center; - justify-content: center; - cursor: var(--cursor); - padding: var(--size-4-2); - border-bottom: 1px solid var(--background-modifier-border); - color: var(--text-muted); - background-color: var(--interactive-normal); - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); -} -.canvas-control-item:last-child { - border-bottom: none; -} -@media (hover: hover) { - .canvas-control-item:hover { - color: var(--text-normal); - background-color: var(--interactive-hover); - } -} -.canvas-control-item.is-active { - color: var(--color-accent); -} -.canvas-control-item.is-disabled svg { - color: var(--text-faint); -} -.canvas-control-item svg { - pointer-events: none; -} -.canvas-node-container { - background-color: var(--background-primary); - border-radius: var(--radius-m); - border: 2px solid rgb(var(--canvas-color)); - contain: strict; - display: flex; - flex-direction: column; - overflow: hidden; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - box-shadow: var(--shadow-stationary); -} -.canvas-wrapper:not(.mod-readonly) .canvas-node:not(.is-editing) .canvas-node-container { - cursor: grab; -} -.canvas-wrapper:not(.mod-readonly) .canvas-node:not(.is-editing) .canvas-node-container:active { - cursor: grabbing; -} -.canvas-node-label { - position: absolute; - left: 0; - top: calc(-1 * var(--size-4-1) * var(--zoom-multiplier)); - transform: translate(0, -100%) scale(var(--zoom-multiplier)); - transform-origin: bottom left; - max-width: calc(100% / var(--zoom-multiplier)); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: var(--canvas-card-label-color); - --icon-size: 1em; -} -body:not(.is-ios) .canvas-wrapper.mod-animating .canvas-node-label { - transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1); -} -.canvas-node-label svg { - position: relative; - top: 2px; - margin-right: var(--size-4-1); -} -.canvas-node-label.mod-hover-label { - opacity: 0; -} -@media (hover: hover) { - .canvas-node-label:hover { - color: var(--text-muted); - } - .canvas-node:hover .canvas-node-label.mod-hover-label { - opacity: 1; - } -} -@media (hover: none) { - .canvas-node.is-focused .canvas-node-label.mod-hover-label { - opacity: 1; - } -} -.canvas-wrapper.mod-zoomed-out .canvas-node-label { - display: none; -} -.canvas-node-placeholder { - display: flex; - align-items: center; - justify-content: center; - text-align: center; - width: 100%; - height: 100%; - overflow: hidden; - overflow-wrap: anywhere; - padding: var(--size-4-6); - font-size: 32px; - font-weight: var(--font-semibold); -} -.canvas-node-placeholder::after { - border-radius: var(--radius-s); - content: ' '; - display: block; - position: absolute; - top: var(--size-4-4); - right: var(--size-4-4); - bottom: var(--size-4-4); - left: var(--size-4-4); - background-color: rgba(var(--canvas-color), 0.1); -} -.canvas-icon-placeholder { - display: flex; - width: 40%; - height: 40%; -} -.canvas-icon-placeholder svg { - opacity: 0.3; - color: rgb(var(--canvas-color)); - width: 100%; - height: 100%; -} -.canvas-node-interaction-layer { - position: absolute; - width: 0; - height: 0; - pointer-events: none; -} -.canvas-node-interaction-layer > * { - pointer-events: initial; -} -.canvas-node { - --shadow-border-themed-inset: inset 0 0 0 1px rgb(var(--canvas-color)); - --shadow-border-themed: 0 0 0 2px rgb(var(--canvas-color)); - position: absolute; - width: 0; - height: 0; -} -.canvas-node.is-dragging { - pointer-events: none; -} -.canvas-node.is-dragging .canvas-node-container { - box-shadow: var(--shadow-drag); -} -.canvas-node.is-selected, -.canvas-node.is-focused { - touch-action: initial; -} -.canvas-node.is-selected .canvas-node-label, -.canvas-node.is-focused .canvas-node-label { - color: var(--text-muted); -} -.canvas-node.is-selected .canvas-node-container, -.canvas-node.is-focused .canvas-node-container { - border-color: var(--color-accent); - box-shadow: var(--shadow-stationary), var(--shadow-border-accent); -} -.canvas-node.is-selected.is-dragging .canvas-node-container, -.canvas-node.is-focused.is-dragging .canvas-node-container { - box-shadow: var(--shadow-drag), var(--shadow-border-accent); -} -.canvas-node.is-themed .canvas-node-container { - border-color: rgba(var(--canvas-color), 0.7); - box-shadow: inset 0 0 0 1px rgba(var(--canvas-color), 0.7), var(--shadow-stationary); -} -.canvas-node.is-selected.is-themed .canvas-node-container, -.canvas-node.is-focused.is-themed .canvas-node-container { - border-color: rgb(var(--canvas-color)); - box-shadow: var(--shadow-border-themed-inset), var(--shadow-border-themed); -} -.canvas-node.is-selected.is-themed.is-dragging .canvas-node-container, -.canvas-node.is-focused.is-themed.is-dragging .canvas-node-container { - box-shadow: var(--shadow-border-themed-inset), var(--shadow-border-themed); -} -.canvas-node.is-dummy { - cursor: grabbing; -} -.canvas-node.is-dummy .canvas-node-container { - border: 4px solid var(--color-accent); - box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.15); - background-color: hsla(var(--color-accent-hsl), 0.2); -} -.canvas-node.is-focused:not(.is-dragging) .canvas-node-content-blocker { - display: none; -} -.canvas-node-content-blocker { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - z-index: var(--layer-cover); -} -.canvas-node-group:not(.is-focused):not(.is-selected) { - pointer-events: none; -} -.canvas-node-group .canvas-node-resizer { - pointer-events: initial; -} -.canvas-node-group .canvas-node-container { - background-color: transparent; -} -.canvas-node-group .canvas-node-content { - background-color: rgba(var(--canvas-color), 0.07); -} -.canvas-group-label { - position: absolute; - left: 0; - top: calc(-1 * var(--size-4-1) * var(--zoom-multiplier)); - transform: translate(0, -100%) scale(var(--zoom-multiplier)); - transform-origin: bottom left; - max-width: calc(100% / var(--zoom-multiplier)); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - pointer-events: initial; - font-size: 1.5em; - padding: var(--size-4-1) var(--size-4-2); - border-radius: var(--radius-s); - color: var(--text-muted); - background-color: rgba(var(--canvas-color), 0.1); - line-height: 1; -} -body:not(.is-ios) .canvas-wrapper.mod-animating .canvas-group-label { - transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1); -} -.canvas-wrapper:not(.mod-readonly) .canvas-group-label { - cursor: grab; -} -.canvas-wrapper:not(.mod-readonly) .canvas-group-label:active { - cursor: grabbing; -} -.canvas-group-label[contenteditable="true"] { - cursor: text; - background-color: var(--background-primary); - box-shadow: 0 0 0 2px rgb(var(--canvas-color)); - color: var(--text-normal); - text-overflow: initial; -} -.canvas-node-group.is-themed .canvas-group-label:not([contenteditable="true"]) { - background-color: rgb(var(--canvas-color)); -} -.canvas-node-group.is-themed .canvas-group-label:not([contenteditable="true"]).mod-foreground-light { - color: var(--text-on-accent); -} -.canvas-node-group.is-themed .canvas-group-label:not([contenteditable="true"]).mod-foreground-dark { - color: var(--text-on-accent-inverted); -} -.canvas-node-content { - backface-visibility: hidden; - width: 100%; - height: 100%; - overflow: hidden; - position: relative; -} -.canvas-node-content.markdown-embed { - border: none; - padding: 0; -} -.canvas-node-content.markdown-embed .inline-title { - cursor: text; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view { - padding: 0 var(--size-4-6); - display: flex; - flex-direction: column; -} -.canvas-wrapper:not(.mod-readonly) .canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view { - user-select: none; - -webkit-user-select: none; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view::before, -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view::after { - content: " "; - display: block; - min-height: min(calc(var(--canvas-node-height) * 0.1 - 3px), var(--size-4-6)); - max-height: var(--size-4-4); - flex: 1 1 0; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view > .markdown-preview-sizer { - flex: 1 0 0; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view .callout { - mix-blend-mode: normal; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view .markdown-preview-pusher + div > *:first-child { - margin-top: 0; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view .mod-header + div > *:first-child { - margin-top: 0; -} -.canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view .markdown-preview-sizer > div:last-child > *:last-child { - margin-bottom: 0; -} -.is-focused .canvas-node-content.markdown-embed > .markdown-embed-content > .markdown-preview-view { - transform: translateZ(0); -} -.canvas-node.is-themed .canvas-node-content { - background-color: rgba(var(--canvas-color), 0.07); -} -.canvas-node-content.media-embed { - justify-content: center; - align-items: center; - display: flex; -} -.canvas-node-content.media-embed img, -.canvas-node-content.media-embed video, -.canvas-node-content.media-embed audio { - flex-shrink: 0; - flex-grow: 1; -} -.canvas-node-content.media-embed img:not([width]), -.canvas-node-content.media-embed video, -.canvas-node-content.media-embed audio { - max-width: 100%; -} -.canvas-node-resizer { - position: absolute; - height: calc(var(--resizer-size) * var(--zoom-multiplier)); - width: calc(var(--resizer-size) * var(--zoom-multiplier)); -} -.is-selected .canvas-node-resizer { - pointer-events: none; -} -body.is-mobile .canvas-node-resizer { - --zoom-multiplier: 1; -} -.canvas-wrapper.mod-readonly .canvas-node-resizer { - display: none; -} -.canvas-node-resizer[data-resize='top'] { - left: 0; - right: 0; - width: auto; - top: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: ns-resize; -} -.canvas-node-resizer[data-resize='bottom'] { - left: 0; - right: 0; - width: auto; - bottom: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: ns-resize; -} -.canvas-node-resizer[data-resize='left'] { - top: 0; - bottom: 0; - height: auto; - left: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: ew-resize; -} -.canvas-node-resizer[data-resize='right'] { - top: 0; - bottom: 0; - height: auto; - right: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: ew-resize; -} -.canvas-node-resizer[data-resize='topright'] { - right: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - top: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: nesw-resize; -} -.canvas-node-resizer[data-resize='bottomright'] { - right: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - bottom: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: nwse-resize; -} -.canvas-node-resizer[data-resize='topleft'] { - left: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - top: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: nwse-resize; -} -.canvas-node-resizer[data-resize='bottomleft'] { - left: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - bottom: calc(var(--resizer-size) * var(--zoom-multiplier) * -0.5); - cursor: nesw-resize; -} -.is-mobile .canvas-node-resizer { - pointer-events: none; -} -.is-mobile .canvas-wrapper:not(.mod-readonly) .canvas-node-interaction-layer .canvas-node-resizer[data-resize='topright'], -.is-mobile .canvas-wrapper:not(.mod-readonly) .canvas-node-interaction-layer .canvas-node-resizer[data-resize='bottomright'], -.is-mobile .canvas-wrapper:not(.mod-readonly) .canvas-node-interaction-layer .canvas-node-resizer[data-resize='topleft'], -.is-mobile .canvas-wrapper:not(.mod-readonly) .canvas-node-interaction-layer .canvas-node-resizer[data-resize='bottomleft'] { - pointer-events: all; - width: 20px; - height: 20px; - display: block; - background-color: var(--background-primary); - border: 2px solid var(--color-accent); - border-radius: 3px; -} -.canvas-node-connection-point { - width: calc(var(--resizer-size) * var(--zoom-multiplier)); - height: calc(var(--resizer-size) * var(--zoom-multiplier)); - position: absolute; - pointer-events: all; - cursor: pointer; -} -.canvas-node-connection-point[data-side='top'] { - top: 1px; - left: calc(50% - var(--resizer-size) * var(--zoom-multiplier) / 2); -} -.canvas-node-connection-point[data-side='right'] { - right: 1px; - top: calc(50% - var(--resizer-size) * var(--zoom-multiplier) / 2); -} -.canvas-node-connection-point[data-side='bottom'] { - bottom: 1px; - left: calc(50% - var(--resizer-size) * var(--zoom-multiplier) / 2); -} -.canvas-node-connection-point[data-side='left'] { - left: 1px; - top: calc(50% - var(--resizer-size) * var(--zoom-multiplier) / 2); -} -.canvas-node-connection-point::after { - content: ' '; - background-color: var(--color-accent); - border-radius: 50%; - border: 3px solid var(--background-modifier-border); - box-sizing: border-box; - display: block; - height: calc(var(--resizer-size) * var(--zoom-multiplier)); - opacity: 0; - position: relative; - width: calc(var(--resizer-size) * var(--zoom-multiplier)); - left: 0; - top: 0; -} -.is-mobile .canvas-node-interaction-layer .canvas-node-connection-point::after, -.canvas-node-resizer:hover .canvas-node-connection-point::after { - opacity: 1; -} -.canvas-snaps { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - overflow: visible; - pointer-events: none; - opacity: 0.6; -} -.canvas-snaps line { - stroke-width: 1px; - stroke: var(--color-accent); -} -.canvas-snaps circle { - fill: var(--color-accent); -} -.canvas-edges { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - overflow: visible; - pointer-events: none; -} -.canvas-edges > * { - pointer-events: initial; -} -.canvas-edges path.canvas-display-path { - pointer-events: none; - stroke-width: calc(3px * var(--zoom-multiplier)); - stroke: rgb(var(--canvas-color)); - fill: none; - transition: stroke-width 100ms ease-out; -} -.canvas-edges path.canvas-interaction-path { - pointer-events: stroke; - stroke-width: calc(24px * var(--zoom-multiplier)); - stroke-linecap: round; - stroke: transparent; - fill: none; - transition: stroke 100ms ease-out; -} -.canvas-wrapper:not(.mod-readonly) .canvas-edges path.canvas-interaction-path { - cursor: grab; -} -.canvas-wrapper:not(.mod-readonly) .canvas-edges path.canvas-interaction-path:active { - cursor: grabbing; -} -.canvas-edges polygon.canvas-path-end { - pointer-events: none; - stroke: rgb(var(--canvas-color)); - fill: rgb(var(--canvas-color)); - stroke-linecap: round; - stroke-linejoin: round; - stroke-width: 1px; - transform-box: fill-box; - transform: scale(var(--zoom-multiplier)); - transform-origin: center top; -} -.canvas-edges g.is-focused path.canvas-display-path, -.canvas:not(.is-connecting) .canvas-edges g:hover path.canvas-display-path { - stroke-width: calc(5.5px * var(--zoom-multiplier)); -} -.canvas-edges g.is-focused path.canvas-interaction-path, -.canvas:not(.is-connecting) .canvas-edges g:hover path.canvas-interaction-path { - stroke: rgba(var(--canvas-color), 0.1); -} -.canvas-path-label-wrapper { - position: absolute; - width: fit-content; - height: fit-content; -} -.canvas-path-label { - font-size: calc(var(--font-ui-large) * var(--zoom-multiplier)); - background-color: var(--background-primary); - border-radius: var(--radius-s); - padding: calc(var(--size-2-3) * var(--zoom-multiplier)); - line-height: var(--line-height-tight); - white-space: pre-wrap; - transform: translate(-50%, -50%); - text-align: center; - max-width: calc(17em * var(--zoom-multiplier)); -} -.canvas-path-label.is-editing { - border-color: rgb(var(--canvas-color)); - box-shadow: var(--shadow-stationary), 0 0 0 calc(3px * var(--zoom-multiplier)) rgb(var(--canvas-color)); -} -.canvas-menu-container { - position: absolute; - width: 0; - height: 0; - top: 0; - left: 0; -} -.canvas-menu { - position: relative; - width: fit-content; - height: fit-content; - line-height: 1; - background-color: var(--background-primary); - border: 1px solid var(--background-modifier-border); - border-radius: var(--radius-s); - box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.07); - display: flex; - padding: var(--size-2-1); - gap: 1px; -} -.canvas-menu .clickable-icon { - padding: var(--size-2-3) var(--size-4-2); -} -.canvas-submenu { - display: flex; - position: absolute; - top: calc(100% + 5px); - left: 50%; - transform: translateX(-50%); - padding: var(--size-4-2); - border: 1px solid var(--background-modifier-border); - background-color: var(--background-primary); - border-radius: var(--radius-s); - box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.07); - overflow: hidden; - gap: 1px; -} -.canvas-submenu .clickable-icon { - padding: var(--size-2-2) var(--size-2-3); -} -.canvas-color-picker-item { - cursor: var(--cursor); - width: 24px; - height: 24px; - margin: 2px; - border-radius: 12px; - border: 2px solid var(--background-primary); - background-color: rgb(var(--canvas-color)); -} -.canvas-color-picker-item.is-active { - box-shadow: 0 0 0 2px rgb(var(--canvas-color)); -} -@media (hover: hover) { - .canvas-color-picker-item:hover { - box-shadow: 0 0 0 2px rgb(var(--canvas-color)); - } -} -.canvas-color-picker-item input[type="color"] { - margin: -4px 0 0 -2px; - --swatch-width: 20px; - --swatch-height: 20px; - opacity: 0; -} -.canvas-color-picker-item.canvas-color-picker-custom:not(.is-active) { - background: conic-gradient(var(--color-red), var(--color-yellow), var(--color-green), var(--color-blue), var(--color-purple), var(--color-red)); -} -@media (hover: hover) { - .canvas-color-picker-item.canvas-color-picker-custom:not(.is-active):hover { - box-shadow: 0 0 0 2px var(--background-modifier-border-hover); - } -} -.canvas-empty-embed-container { - align-items: center; - display: flex; - flex-direction: column; - gap: var(--size-4-6); - justify-content: center; - height: 100%; - padding: var(--size-4-3); - text-align: center; -} -.canvas-empty-embed-action-list { - display: flex; - flex-direction: column; - gap: var(--size-4-3); -} -.canvas-empty-embed-action-list button { - font-size: var(--font-text-size); - padding: var(--size-4-5) var(--size-4-9); -} -.canvas-help { - display: flex; - flex-direction: column; - gap: var(--size-4-3); -} -.canvas-instruction { - display: flex; - justify-content: space-between; -} -.canvas-instruction-desc { - display: flex; - gap: var(--size-4-1); -} -.canvas-instruction-desc .setting-hotkey { - display: inline; - align-self: unset; - padding: var(--size-4-1); - margin: 0; - line-height: 1; -} -.canvas-placeholder-message { - max-width: 70vw; - background: hsla(var(--color-accent-hsl), 0.1); - border-radius: var(--radius-m); - color: var(--color-accent); - font-size: var(--font-ui-large); - line-height: var(--line-height-normal); - padding: var(--size-4-4) var(--size-4-6); - pointer-events: none; - position: absolute; - text-align: center; - transform: translate(-50%, -50%); -} -.canvas-minimap { - width: 100%; - height: 100%; - padding: var(--size-4-1); -} -.inline-embed > .canvas-minimap { - max-height: var(--embed-canvas-max-height); -} -.canvas-minimap rect { - stroke-width: 5px; - stroke: var(--background-modifier-border); - fill: var(--background-modifier-border); - fill-opacity: 0.65; -} -.canvas-minimap rect.is-themed { - stroke: rgb(var(--canvas-color)); - fill: rgb(var(--canvas-color)); - fill-opacity: 0.5; -} -.canvas-minimap path { - stroke: #c0c0c0; - fill: none; -} -.canvas-minimap path.is-themed { - stroke: rgb(var(--canvas-color)); -} -.canvas-cursor { - position: absolute; - width: 1px; - height: 1px; - border: 5px solid var(--color-accent); - border-radius: 5px; - pointer-events: none; -} -.canvas-watermark * { - font-family: var(--font-default) !important; -} -.browser-favicon-container { - display: flex; - align-items: center; -} -.browser-favicon-container > * { - height: var(--icon-size); - max-width: var(--icon-size); -} -.view-action.mod-browser { - --icon-color: var(--icon-color-active); - --icon-color-hover: var(--icon-color-active); -} -.browser-container { - height: 100%; - display: flex; - flex-direction: column; -} -.workspace-leaf-content[data-type="browser"] .view-header { - gap: 0; -} -.view-header-always-show { - display: flex !important; -} -.view-header-reload-button { - display: flex; - align-items: center; - --icon-size: var(--icon-s); -} -.browser-address { - width: 100%; - display: flex; - margin: 0 2px; -} -.browser-address input { - flex-grow: 1; - min-width: 50px; -} -.browser-address-container { - padding: 0 var(--size-4-2); -} -.browser-address-container::after { - /* Remove the gradient normally at the end of the titleContainerEl */ - background: transparent !important; -} -.browser-addressbar-suggestion.suggestion-item { - gap: var(--size-4-2); - align-items: center; -} -.browser-addressbar-suggestion.suggestion-item .suggestion-flair-left, -.browser-addressbar-suggestion.suggestion-item .suggestion-icon:first-child { - color: var(--text-muted); - --icon-size: var(--icon-s); - --icon-stroke: var(--icon-s-stroke-width); - display: flex; - min-width: var(--icon-s); -} -.browser-addressbar-suggestion.suggestion-item .suggestion-flair-left img, -.browser-addressbar-suggestion.suggestion-item .suggestion-icon:first-child img { - height: var(--icon-size); - max-width: var(--icon-size); -} -.browser-addressbar-suggestion.suggestion-item .suggestion-icon:last-child:empty { - display: none; -} -.browser-addressbar-suggestion.suggestion-item > .suggestion-content { - align-items: baseline; - flex-direction: row; - flex-grow: 1; -} -.browser-addressbar-suggestion.suggestion-item > .suggestion-content > .suggestion-title { - max-width: 75%; - flex-shrink: 0; - overflow: hidden; - text-overflow: ellipsis; - text-wrap: nowrap; - font-size: var(--font-ui-medium); -} -.browser-addressbar-suggestion.suggestion-item > .suggestion-content > .suggestion-url { - overflow: hidden; - text-overflow: ellipsis; - text-wrap: nowrap; - font-size: var(--font-ui-small); - color: var(--text-muted); -} -.browser-addressbar-suggestion.suggestion-item > .suggestion-content .suggestion-title + .suggestion-url { - margin-left: var(--size-4-2); -} -.browser-addressbar-suggestion.suggestion-item > .suggestion-content .suggestion-title:empty + .suggestion-url { - margin-left: 0; -} -.view-content.browser-content { - padding: 0; -} -.browser-content { - border-top: 1px solid var(--divider-color); - height: 100%; - display: flex; - flex-direction: column; -} -.browser-content webview { - flex-grow: 1; - width: 100%; -} -.browser-content .reader-mode-content { - overflow-y: auto; -} -.browser-content .reader-mode-content.is-readable-line-width .markdown-preview-sizer { - max-width: var(--file-line-width); - margin-left: auto; - margin-right: auto; -} -.browser-content .markdown-preview-view .external-link { - /* Hide the external link icon */ - background-image: none; - padding-right: 0; -} -.browser-content .error-notice { - max-width: var(--file-line-width); - margin: 25% auto 0; - padding: var(--file-margins); -} -/* History View */ -.browser-history-view-item { - text-wrap: nowrap; - overflow: hidden; -} -/* Settings */ -textarea.browser-adblock-lists { - flex-grow: 1; -} -.starter.is-hidden-frameless .titlebar { - display: block; -} -.starter { - -webkit-user-select: none; - padding-top: 0! important; -} -.starter .titlebar { - background-color: transparent; - border: none; -} -.starter .titlebar-inner .titlebar-text { - display: none; -} -.starter-screen { - display: flex; - flex-direction: column; - background-color: var(--background-primary); - width: 100%; - height: 100%; -} -.starter-screen-inner { - flex-grow: 1; - display: flex; - height: calc(100% - 24px); -} -.splash { - align-items: center; - background-color: var(--background-primary); - display: flex; - flex-direction: column; - justify-content: center; - flex: 1 1 auto; - text-align: center; - padding: 36px 0 0; -} -.splash-brand { - flex: 0 0 content; - padding: 20px 0; -} -.splash-brand-logo-text { - margin-top: 20px; - color: white; -} -.splash-brand-version { - color: var(--text-muted); - margin-top: 8px; - font-size: var(--font-ui-small); -} -.help-options-container { - flex: 1 0 0; - overflow: auto; - width: 100%; - max-width: 82%; - text-align: left; - padding: var(--size-4-6) 0; -} -.help-options-container::-webkit-scrollbar { - display: none; -} -.help-options-container .setting-item-description { - max-width: 30em; - padding-right: 12px; -} -.help-options-container .setting-icon .svg-icon { - stroke-width: 1px; - --icon-size: 48px; - color: var(--text-faint); -} -.open-vault-options-container { - flex: 1 0 0; - overflow: auto; - width: 100%; - position: relative; -} -.open-vault-options-container::-webkit-scrollbar { - display: none; -} -.open-vault-options { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - padding: 12px 36px; - text-align: left; - overflow-y: auto; - display: flex; - flex-direction: column; -} -.open-vault-options input[type='text'] { - width: 150px; -} -.open-vault-options .setting-item-control button { - width: 100px; -} -.open-vault-options .back-button { - display: flex; - align-items: center; - -webkit-app-region: no-drag; - color: var(--text-muted); - user-select: none; - cursor: var(--cursor); -} -@media (hover: hover) { - .open-vault-options .back-button:hover { - color: var(--text-normal); - } -} -.open-vault-options .setting-item-description { - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - overflow: hidden; -} -.open-vault-options.mod-login { - justify-content: flex-start; -} -.open-vault-options.mod-login input[type='text'] { - width: 250px; -} -.quick-start-container { - margin-bottom: 10px; -} -.quick-start-container button { - font-size: var(--font-ui-medium); - padding: 8px 60px; -} -.quick-start-container + .setting-item { - border-top: none; -} -.open-folder-input[type='text'] { - font-size: var(--font-ui-small); - width: 200px; - height: 28px; -} -.browse-folder-button { - margin-left: 10px; -} -.open-folder-button { - margin-top: 14px; - padding: 6px 36px; -} -.starter .notice { - top: 38px; -} -.setting-item.mod-change-language { - -webkit-app-region: no-drag; -} -.setting-item.mod-change-language .setting-item-info { - flex-grow: 0; -} -.setting-item.mod-change-language .setting-item-control { - flex-grow: 1; - justify-content: flex-start; -} -.setting-item.mod-change-language select { - width: 100%; - max-width: 100%; -} -.setting-item.mod-change-language .setting-item-name { - color: var(--text-faint); - position: relative; - top: 3px; - cursor: var(--cursor); -} -@media (hover: hover) { - .setting-item.mod-change-language .setting-item-name:hover { - color: var(--text-muted); - } -} -.setting-icon { - display: flex; - color: var(--text-muted); - margin-right: 24px; -} -.recent-vaults { - background-color: var(--background-secondary); - border-right: 1px solid var(--background-modifier-border); - padding: var(--size-4-8) 0 0 0; - flex-shrink: 0; - width: 280px; - overflow-y: hidden; - height: 100%; -} -.recent-vaults-list { - overflow-y: auto; - height: 100%; - padding: var(--size-4-2); - display: flex; - flex-direction: column; -} -.recent-vaults-list:after { - -webkit-app-region: drag; - display: block; - content: ' '; - width: 100%; - height: 100px; - flex-grow: 1; -} -.recent-vaults-list-item { - -webkit-app-region: no-drag; - border-radius: var(--radius-s); - margin-bottom: var(--size-4-1); - padding: var(--size-4-2) var(--size-4-6) var(--size-4-2) var(--size-4-3); - cursor: var(--cursor); - position: relative; -} -@media (hover: hover) { - .recent-vaults-list-item:hover { - background-color: var(--background-modifier-hover); - color: var(--text-on-accent); - } -} -.recent-vaults-list-item-name, -.recent-vaults-list-item-path { - word-break: break-all; -} -.recent-vaults-list-item-name { - border-radius: 2px; - border: 1px solid transparent; -} -.recent-vaults-list-item-name[contenteditable] { - cursor: text; - border-color: var(--interactive-accent); - background-color: var(--background-modifier-hover); - font-size: 0.9em; - padding: 0 var(--size-4-1); -} -.recent-vaults-list-item-path { - font-size: var(--font-ui-smaller); - color: var(--text-muted); - line-height: 16px; -} -.recent-vaults-list-item-option-button { - position: absolute; - top: var(--size-4-3); - right: var(--size-4-1); - color: var(--text-faint); - width: 30px; - height: 30px; - line-height: 36px; - text-align: center; - transition: background-color 200ms ease-in-out; -} -.recent-vaults-list-item-option-button:hover { - color: var(--text-normal); -} -:root { - --safe-area-inset-top: env(safe-area-inset-top); - --safe-area-inset-bottom: env(safe-area-inset-bottom); - --safe-area-inset-left: env(safe-area-inset-left); - --safe-area-inset-right: env(safe-area-inset-right); -} -.is-mobile { - --ribbon-width: 58px; - --view-header-height: 50px; - --mobile-toolbar-height: 40px; - --caret-color: var(--text-accent); - --font-ui-smaller: calc(var(--font-text-size) * 0.8); - --font-ui-small: calc(var(--font-text-size) * 0.937); - --font-ui-medium: var(--font-text-size); - --font-ui-large: calc(var(--font-text-size) * 1.2); - --icon-s: 18px; - --icon-m: 20px; - --icon-l: 24px; - --icon-l-stroke-width: 1.8px; - --icon-opacity: 1; - --input-height: 40px; - --input-shadow: none; - --input-shadow-hover: none; - --input-font-weight: var(--font-medium); - --input-border-width: 0px; - --interactive-normal: var(--background-secondary); - --mobile-sidebar-width: 340px; - --mobile-sidebar-max-width: 500px; - --nav-item-padding: var(--size-2-3) var(--size-4-2) var(--size-2-3) var(--size-4-6); - --nav-item-color: var(--text-normal); - --search-clear-button-size: 16px; - --search-icon-size: 20px; - --settings-home-background: var(--background-secondary); - --slider-thumb-border-width: 0px; - --slider-thumb-height: 24px; - --slider-thumb-width: 24px; - --slider-thumb-y: -9px; - --slider-track-height: 6px; - --swatch-shadow: none; - --swatch-height: 40px; - --swatch-width: 40px; - --swatch-radius: 40px; - --toggle-width: 48px; - --toggle-radius: 26px; - --toggle-thumb-radius: 26px; - --toggle-thumb-height: 26px; - --toggle-thumb-width: 26px; - --file-margins: var(--size-4-2) var(--size-4-5); - --background-modifier-cover: rgba(0, 0, 0, 0.25); - --background-modifier-form-field: var(--background-secondary); - --keyboard-background: var(--background-primary); - --checkbox-size: 17px; -} -.is-mobile.theme-dark { - --color-base-00: #000; - --color-base-10: #111; - --color-base-20: #1e1e1e; - --tag-background: hsla(var(--interactive-accent-hsl), 0.2); - --search-result-background: var(--background-secondary); - --background-modifier-form-field: var(--background-modifier-border); - --background-modifier-cover: rgba(0, 0, 0, 0.5); - --background-modifier-hover: rgba(var(--mono-rgb-100), 0.15); - --settings-home-background: var(--background-primary); -} -.is-tablet { - --nav-item-padding: var(--size-2-3) var(--size-4-2) var(--size-2-3) var(--size-4-6); - --tab-font-size: var(--font-ui-smaller); -} -.is-tablet.theme-dark { - --titlebar-background: var(--background-primary); - --titlebar-background-focused: var(--background-primary); - --interactive-normal: var(--background-modifier-border); - --modal-background: var(--background-secondary); -} -.is-phone { - --border-width: 0.5pt; - --divider-width: 0.5pt; - --tab-outline-width: 0.5pt; - --modal-header-height: 44px; - --modal-community-sidebar-width: 100%; - --metadata-label-width: 7.5em; - --nav-item-size: var(--font-ui-medium); -} -body.is-mobile { - height: 100vh; - width: 100vw; - caret-color: var(--caret-color); - padding-bottom: 50px; -} -.is-mobile .markdown-source-view.mod-cm6 .cm-content, -.is-mobile .mod-cm6 .cm-line { - caret-color: var(--caret-color); -} -.is-mobile .markdown-source-view.mod-cm6 .cm-gutters { - margin-left: -18px; -} -.is-mobile .workspace > .mod-root { - padding-left: var(--safe-area-inset-left); -} -body.is-mobile { - padding: var(--safe-area-inset-top) 0 0 0; - -webkit-text-size-adjust: 100%; -} -.is-mobile .workspace-split.mod-left-split, -.is-mobile .workspace-split.mod-right-split { - display: none; -} -.is-mobile .tree-item .tree-item-self { - padding-right: var(--size-4-2); -} -.is-mobile .input-label { - display: block; - text-align: left; - color: var(--text-muted); - margin-bottom: 8px; -} -.is-mobile input[type='text'] { - width: 100%; -} -.is-mobile .markdown-rendered pre:not(:hover) > button.copy-code-button { - display: block; -} -.is-mobile .markdown-rendered button.copy-code-button { - width: auto; -} -.is-mobile .empty-state-action-list { - margin-top: 40px; -} -.is-mobile .empty-state-action { - background-color: var(--background-primary-alt); - margin: 12px 0; - padding: 6px 30px; - border-radius: var(--button-radius); - text-align: center; -} -.is-mobile .login-field { - width: 100%; - margin: 0.5em 0 0.5em 0; -} -.is-mobile .login-field input { - width: 100%; -} -.is-mobile .markdown-rendered .heading-collapse-indicator { - margin-left: -20px; -} -.is-mobile .markdown-rendered ul, -.is-mobile .markdown-rendered ol { - padding-inline-start: 25px; -} -.is-mobile .message-container { - text-align: center; - margin: 8px 0; -} -.is-mobile .search-result-file-match-replace-button { - display: block; - position: relative; - padding: 6px 10px; - right: 0; - margin-top: var(--size-4-3); - background-color: var(--settings-home-background); -} -.is-mobile .suggestion-flair { - position: relative; - margin-right: 6px; - left: 0; - top: 0; -} -.is-mobile .document-search-container { - height: auto; - margin-left: 0; - margin-right: 0; - padding: 0 var(--size-4-4) var(--size-4-2); - border-bottom: var(--border-width) solid var(--background-modifier-border); -} -.is-mobile .document-search-container.mod-replace-mode { - height: auto; -} -.is-mobile .document-search, -.is-mobile .document-replace { - height: auto; - padding: 0; -} -.is-mobile .document-search .document-search-button, -.is-mobile .document-replace .document-search-button { - height: auto; - padding: 6px 0; - background-color: transparent; - color: var(--text-accent); -} -.is-mobile .document-search input, -.is-mobile .document-replace input, -.is-mobile .document-search button, -.is-mobile .document-replace button { - width: auto; - flex-grow: 1; -} -.is-mobile .document-search .document-search-buttons, -.is-mobile .document-replace .document-search-buttons, -.is-mobile .document-search .document-replace-buttons, -.is-mobile .document-replace .document-replace-buttons { - display: flex; - flex-grow: 1; -} -.is-mobile .document-search .document-search-close-button, -.is-mobile .document-replace .document-search-close-button { - height: 34px; - line-height: 34px; - top: 0; -} -.is-tablet .mod-left-split-toggle { - display: none; -} -.is-tablet button:not(.clickable-icon) { - padding: var(--size-4-1) var(--size-4-5); -} -.is-phone .vault-list-item-creation-time { - display: none; -} -.is-phone .vault-list-item { - padding: 5px 0; -} -.is-phone .vault-list-item .flair { - display: none; -} -.is-phone .vault-list-item-title { - flex: 1 0 auto; -} -.is-phone .vault-list-item-button { - margin-right: 0; -} -.suggestion-bg { - display: none; -} -body.is-phone .suggestion-bg { - display: block; - z-index: var(--layer-modal); -} -@keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} -.mobile-image-viewer { - position: absolute; - height: 100%; - width: 100%; - top: 0; - left: 0; - background-color: var(--background-modifier-cover); - display: flex; - justify-content: center; - overflow: hidden; - z-index: var(--layer-modal); -} -.mobile-image-viewer img { - align-self: center; - max-height: 100%; - max-width: 100%; -} -.mod-tappable { - transition: opacity 0.15s ease-in-out; -} -.mod-tappable.mod-tap { - opacity: 0.5; -} -.mod-fade { - --scroll-fade-offset-right: 0; - --scroll-fade-offset-left: 0; -} -.mod-fade:not(.mod-at-start):before { - content: ' '; - position: absolute; - top: 0; - left: var(--scroll-fade-offset-left); - width: 30px; - height: 100%; - background: linear-gradient(to right, var(--background-primary), transparent); -} -.mod-fade:not(.mod-at-end):after { - content: ' '; - position: absolute; - top: 0; - right: var(--scroll-fade-offset-right); - width: 30px; - height: 100%; - background: linear-gradient(to right, transparent, var(--background-primary)); -} -.is-mobile .document-search-container { - height: auto; - margin-left: 0; - margin-right: 0; - padding: 0 var(--size-4-4) var(--size-4-2); - border-bottom: var(--border-width) solid var(--background-modifier-border); -} -.is-mobile .document-search-container.mod-replace-mode { - height: auto; -} -.is-mobile .document-search, -.is-mobile .document-replace { - height: auto; - padding: 0; -} -.is-mobile .document-search .document-search-button, -.is-mobile .document-replace .document-search-button { - height: auto; - padding: 6px 0; - background-color: transparent; - color: var(--text-accent); -} -.is-mobile .document-search input, -.is-mobile .document-replace input, -.is-mobile .document-search button, -.is-mobile .document-replace button { - width: auto; - flex-grow: 1; -} -.is-mobile .document-search .document-search-buttons, -.is-mobile .document-replace .document-search-buttons, -.is-mobile .document-search .document-replace-buttons, -.is-mobile .document-replace .document-replace-buttons { - display: flex; - flex-grow: 1; -} -.is-mobile .document-search .document-search-close-button, -.is-mobile .document-replace .document-search-close-button { - height: 34px; - line-height: 34px; - top: 0; -} -.is-mobile .view-header { - border-top: none; - height: var(--view-header-height); -} -.is-mobile .workspace-split.mod-root > .workspace-leaf:first-of-type .workspace-leaf-content, -.is-mobile .workspace-split.mod-root > .workspace-leaf:last-of-type .workspace-leaf-content { - border-radius: 0; -} -.is-mobile .view-header-title { - padding-right: 0px; -} -.is-mobile .view-header-title-container { - padding-left: 24px; -} -.is-mobile .view-header-title-container:after { - display: none; -} -.is-mobile .view-header-icon { - padding: 10px; -} -.is-mobile .inline-title { - padding-top: 0.25em; -} -.is-mobile .horizontal-main-container { - position: relative; -} -.is-mobile .view-header-title-container { - height: 50px; -} -.is-mobile .view-actions { - padding: var(--size-4-2) 0; - gap: var(--size-2-1); -} -.is-mobile .view-header-nav-buttons, -.is-mobile .view-header .view-action { - --icon-color: var(--interactive-accent); - --icon-color-hover: var(--interactive-accent); - --icon-color-active: var(--interactive-accent-hover); - --icon-color-focus: var(--interactive-accent-hover); - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); -} -.is-mobile .view-action { - margin: auto 0; - width: auto; -} -.is-phone .view-header-title-parent, -.is-phone .view-header-title { - display: block; - text-overflow: ellipsis; - opacity: 0.7; -} -.is-phone .view-header-title-parent:focus-within, -.is-phone .view-header-title:focus-within { - text-overflow: unset; - opacity: 1; -} -.is-mobile .hotkey-list-container .setting-item { - flex-direction: column; - align-items: stretch; -} -.is-mobile .hotkey-list-container .setting-item-control { - margin-top: 10px; - align-items: flex-start; -} -.is-mobile .hotkey-list-container .setting-command-hotkeys { - flex: 1 0 auto; -} -.is-mobile .hotkey-list-container .setting-hotkey { - align-self: flex-start; -} -.is-tablet .horizontal-tab-nav-item, -.is-tablet .vertical-tab-nav-item { - padding: var(--size-4-2) var(--size-4-3); -} -.is-tablet .modal.mod-settings .vertical-tab-header { - max-width: none; -} -.is-tablet.theme-dark .community-item, -.is-tablet.theme-dark .vertical-tab-content { - background-color: var(--background-secondary); -} -.is-phone.theme-dark .modal.mod-settings { - background-color: var(--background-primary); -} -.is-phone.theme-dark .modal.mod-settings .vertical-tab-header { - background-color: var(--background-primary); -} -.is-phone.theme-dark .modal.mod-settings .vertical-tab-nav-item { - background-color: var(--background-secondary); -} -.is-phone.theme-dark .modal.mod-settings .vertical-tab-header-title { - background-color: var(--background-primary); -} -.is-phone .setting-item-heading { - margin-top: 1.5em; -} -.is-phone .vertical-tab-header-group { - margin: 0 auto; - width: calc(100% - var(--size-4-8)); -} -.is-phone .vertical-tab-header-group-title { - padding-bottom: 1em; -} -.is-phone .vertical-tab-header-group-title, -.is-phone .setting-item-heading .setting-item-name { - color: var(--text-normal); - font-weight: var(--font-bold); - font-size: var(--font-ui-large); -} -.is-phone .setting-item { - padding: 1em 0; - border-width: var(--border-width) 0 0 0; - gap: var(--size-4-1); -} -.is-phone .setting-item-name { - font-weight: var(--font-medium); -} -.is-phone .setting-item-info { - min-width: 0; -} -.is-phone .setting-item:not(.mod-toggle):not(.setting-item-heading) { - flex-direction: column; - align-items: flex-start; -} -.is-phone .setting-item:not(.mod-toggle):not(.setting-item-heading) .setting-item-control { - margin-top: 12px; - width: 100%; -} -.is-phone .setting-icon { - margin-right: 10px; - display: inline-flex; - vertical-align: middle; -} -.is-phone .setting-item-control select, -.is-phone .setting-item-control input, -.is-phone .setting-item-control button { - width: 100%; - margin: 0; -} -.is-phone .setting-item-control button { - padding: 10px; -} -.is-phone .setting-item-control select { - max-width: 100%; -} -.is-phone .modal.mod-settings { - background-color: var(--background-secondary); -} -.is-phone .modal.mod-settings .modal-title { - border-bottom: var(--border-width) solid var(--background-modifier-border); -} -.is-phone .modal.mod-settings .vertical-tabs-container { - display: block; - overflow-y: auto; -} -.is-phone .modal.mod-settings .vertical-tab-header { - background-color: var(--background-secondary); - border-right: none; - flex-grow: 1; - height: 100%; - min-width: 100%; - padding: var(--size-4-4); - width: 100%; -} -.is-phone .modal.mod-settings .vertical-tab-content { - background-color: var(--background-primary); - padding: var(--size-4-5) max(var(--size-4-5), var(--safe-area-inset-right)) 100px max(var(--size-4-5), var(--safe-area-inset-left)); -} -.is-phone .modal.mod-settings .vertical-tab-header-group-items { - border-radius: var(--radius-m); - overflow: hidden; -} -.is-phone .modal.mod-settings .vertical-tab-nav-item { - display: flex; - align-items: center; - height: 44px; - background-color: var(--background-primary); - padding: 0 var(--size-4-2) 0 var(--size-4-3); - margin: 0; - border-radius: 0; - border-bottom: var(--border-width) solid var(--background-modifier-border); - transition: background-color 200ms ease-in-out, color 200ms ease-in-out; -} -.is-phone .modal.mod-settings .vertical-tab-nav-item.is-active { - background-color: var(--interactive-accent); -} -.is-phone .modal.mod-settings .vertical-tab-nav-item:last-child { - border-bottom: none; -} -.is-phone .modal.mod-settings .vertical-tab-nav-item-chevron { - display: flex; - margin-left: auto; - color: var(--text-faint); -} -.is-phone .vertical-tab-header-title { - font-weight: var(--font-semibold); -} -.is-phone .installed-plugins-container .setting-item { - flex-direction: column; - align-items: stretch; - gap: var(--size-4-3); -} -.is-phone .installed-plugins-container .setting-item > *:first-child { - margin-right: 0; -} -.is-phone .installed-plugins-container .setting-item .setting-item-description div:first-child:after { - content: ' • '; -} -.is-phone .installed-plugins-container .setting-item .setting-item-description div:first-child, -.is-phone .installed-plugins-container .setting-item .setting-item-description div:nth-child(2) { - display: inline; -} -.is-phone .installed-plugins-container .setting-item .setting-item-control { - flex-wrap: wrap; -} -.is-phone .installed-plugins-container .setting-item .checkbox-container { - margin-left: auto; -} -.is-phone .community-modal { - width: 100%; - margin-bottom: 10px; -} -.is-phone .modal.mod-community-theme { - min-height: unset; -} -.is-phone .community-modal-sidebar { - background-color: var(--background-primary); -} -.is-phone .community-modal-controls { - background-color: transparent; -} -.is-phone .community-modal-controls .setting-item { - flex: 0 0 auto; - padding: 0.25em 0; -} -.is-phone .community-modal-controls .setting-item-control { - flex-direction: column; - align-items: flex-end; -} -.is-phone .community-modal-controls .search-input-container { - width: 100%; -} -.is-phone .community-modal-search-results { - gap: 0; - padding: 0; -} -.is-phone .community-modal-info { - padding: var(--size-4-4); -} -.is-phone .community-item { - border-width: 0 0 var(--border-width) 0; - border-radius: 0; - padding: var(--size-4-4); -} -.is-phone .community-item-info { - padding: 20px; -} -.is-phone .community-modal-details { - background-color: var(--background-primary); - border: none; -} -.is-phone .community-modal-readme { - padding: 20px 0; -} -.is-phone .community-modal-controls { - padding: 0 var(--size-4-4); -} -.is-phone .community-modal-search-summary { - padding: var(--size-4-1) var(--size-4-1) var(--size-4-4); -} -.is-phone .mod-community-theme .community-item { - display: grid; - grid-template-columns: 1fr 160px; - grid-auto-flow: column dense; -} -.is-phone .mod-community-theme .community-item .community-item-name { - grid-column: 1 / 2; -} -.is-phone .mod-community-theme .community-item .community-item-author { - grid-column: 1 / 2; -} -.is-phone .mod-community-theme .community-item .community-item-badge.mod-update { - position: static; - grid-row: 4; -} -.is-phone .mod-community-theme .community-item .community-item-downloads { - grid-column: 1 / 2; -} -.is-phone .mod-community-theme .community-item .community-item-screenshot { - grid-row: 1 / span 4; - height: 90px; -} -.is-phone .mod-community-plugin .community-item { - display: grid; - grid-template-columns: 3fr 1fr; - grid-auto-flow: column dense; -} -.is-phone .mod-community-plugin .community-item .community-item-name { - grid-column: 1 / 2; -} -.is-phone .mod-community-plugin .community-item .community-item-author { - grid-column: 1 / 2; -} -.is-phone .mod-community-plugin .community-item .community-item-badge.mod-update { - position: static; - grid-row: 4; -} -.is-phone .mod-community-plugin .community-item .community-item-downloads { - grid-column: 2 / 2; - text-align: right; - color: var(--text-faint); -} -.is-phone .mod-community-plugin .community-item .community-item-desc { - grid-column: 1 / span 2; -} -.is-phone .community-modal-button-container { - flex-direction: column; -} -.mobile-option-setting-item { - font-size: var(--font-ui-medium); - display: flex; - align-items: center; - margin: 8px 0; - gap: var(--size-4-1); - transition: transform 1000ms ease-in-out; - color: var(--text-muted); -} -.mobile-option-setting-item:first-of-type:last-of-type .mobile-option-setting-drag-icon { - display: none; -} -.mobile-option-setting-item-name { - flex: 1 0 0; - color: var(--text-normal); -} -.mobile-option-setting-item-option-icon { - display: flex; - align-items: center; - justify-content: center; - padding: 4px 4px; - cursor: var(--cursor); - border-radius: var(--radius-s); -} -:not(.is-mobile) .mobile-option-setting-item-option-icon:hover, -:not(.is-mobile) .mobile-option-setting-item-option-icon:active { - background-color: var(--background-modifier-hover); -} -.mobile-option-setting-item-option-icon.mobile-option-setting-drag-icon { - cursor: grab; -} -.mobile-option-setting-item-option-icon.mobile-option-setting-drag-icon:active { - cursor: grabbing; -} -.mobile-option-setting-item-remove-icon { - color: var(--text-error); - display: flex; -} -.mobile-option-setting-item-add-icon { - color: var(--text-success); - display: flex; -} -.is-mobile .status-bar { - display: none; -} -.workspace-drawer { - position: fixed; - top: 0; - bottom: 0; - display: flex; - overflow: hidden; - font-size: var(--font-ui-small); - min-width: var(--mobile-sidebar-width); - max-width: var(--mobile-sidebar-max-width); - width: 85vw; - z-index: var(--layer-popover); - margin: 0; - border-radius: 0; - padding-top: var(--safe-area-inset-top); - background-color: var(--background-primary); -} -.workspace-drawer .nav-folder.mod-root > .nav-folder-title { - display: none; -} -.workspace-drawer .nav-header { - margin-top: auto; - padding-bottom: max(var(--size-4-2), var(--safe-area-inset-bottom)); - order: 10; -} -.workspace-drawer .nav-header ~ .search-input-container { - width: calc(100% - var(--size-4-9)); -} -.workspace-drawer .workspace-leaf { - background-color: transparent; -} -.theme-dark .workspace-drawer { - background-color: var(--background-secondary); -} -.workspace-drawer.is-pinned { - height: 100%; - position: relative; - max-width: var(--mobile-sidebar-width); - z-index: var(--layer-cover); - border-radius: 0; - margin: 0; - box-shadow: none; -} -.workspace-drawer.mod-left { - left: 0; - padding-left: var(--safe-area-inset-left); - border-top-right-radius: var(--radius-xl); - border-bottom-right-radius: var(--radius-xl); -} -.workspace-drawer.mod-left.is-pinned { - border-right: var(--divider-width) solid var(--divider-color); - border-radius: 0; -} -body.is-tablet .workspace-drawer.mod-left .workspace-drawer-inner { - padding-left: var(--ribbon-width); -} -.workspace-drawer.mod-right { - right: 0; - padding-right: var(--safe-area-inset-right); - border-top-left-radius: var(--radius-xl); - border-bottom-left-radius: var(--radius-xl); -} -.workspace-drawer.mod-right.is-pinned { - border-left: var(--divider-width) solid var(--divider-color); - border-radius: 0; -} -.workspace-drawer.is-collapsed { - overflow: hidden; -} -.workspace-drawer .nav-buttons-container { - padding-left: var(--size-4-3); - padding-right: var(--size-4-3); - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); - --icon-color: var(--interactive-accent); - --icon-color-hover: var(--interactive-accent); - --icon-color-active: var(--interactive-accent); - --icon-color-focus: var(--interactive-accent-hover); -} -.workspace-drawer .nav-buttons-container .nav-action-button { - flex-grow: 1; -} -.workspace-drawer .workspace-drawer-actions, -.workspace-drawer .nav-buttons-container { - overflow: auto; - flex-wrap: nowrap; -} -.workspace-drawer .workspace-drawer-actions::-webkit-scrollbar, -.workspace-drawer .nav-buttons-container::-webkit-scrollbar, -.workspace-drawer .workspace-drawer-actions::-webkit-scrollbar-thumb, -.workspace-drawer .nav-buttons-container::-webkit-scrollbar-thumb { - visibility: hidden; -} -.workspace-drawer .side-dock-settings { - margin-bottom: 0; -} -.workspace-drawer-inner { - flex: 1 1 auto; - overflow: hidden; - display: flex; - flex-direction: column; - background-color: var(--background-primary); - position: relative; - transition: width ease-out 150ms; -} -.theme-dark .workspace-drawer-inner { - background-color: var(--background-secondary); -} -.workspace-drawer.is-collapsed .workspace-drawer-inner { - padding: 0; - width: 0; -} -.workspace-drawer-backdrop { - display: block; - position: fixed; - z-index: var(--layer-cover); - width: 100%; - height: 100%; - background-color: var(--background-modifier-cover); - top: 0; - left: 0; - opacity: 1; - transition: opacity ease-out 150ms; -} -.workspace-drawer.is-collapsed .workspace-drawer-backdrop { - display: none; - opacity: 0; -} -.workspace-drawer-ribbon { - position: absolute; - left: 0; - top: 0; - height: 100%; - overflow: auto; - width: var(--ribbon-width); - padding: var(--size-4-1) 0 var(--safe-area-inset-bottom); -} -.workspace-drawer-ribbon::-webkit-scrollbar, -.workspace-drawer-ribbon::-webkit-scrollbar-thumb { - visibility: hidden; - width: 0; -} -.workspace-drawer-ribbon .side-dock-actions { - padding: var(--size-4-2) 0; -} -.workspace-drawer-ribbon .side-dock-actions, -.workspace-drawer-ribbon .side-dock-settings { - gap: var(--size-4-2); -} -.workspace-drawer-ribbon .side-dock-ribbon-action { - padding: var(--size-4-2); -} -.workspace-drawer-header { - padding: var(--size-4-2) var(--size-4-5) 0 var(--size-4-5); - display: flex; - align-items: flex-start; -} -.workspace-drawer.is-pinned .workspace-drawer-header { - padding-top: 0; -} -.workspace-drawer-header-left { - display: flex; - flex-direction: column; - flex: 1 1 auto; - overflow: hidden; -} -.workspace-drawer-header-name { - display: flex; -} -.workspace-drawer-header-switcher { - display: flex; - flex: 0 1 auto; - position: relative; -} -.workspace-drawer-header-switcher select { - opacity: 0; - position: absolute; -} -.workspace-drawer-header-name-text { - text-overflow: ellipsis; - overflow: hidden; - font-size: var(--font-ui-large); - font-weight: var(--font-semibold); -} -.workspace-drawer-header-name-chevron { - --icon-size: var(--icon-m); - --icon-stroke: 2.25px; - color: var(--text-faint); - display: flex; - align-items: center; - margin-left: var(--size-2-1); -} -.workspace-drawer-header-name-action-icon { - color: var(--text-muted); - margin-left: var(--size-4-2); - display: flex; - align-items: center; -} -.workspace-drawer-header-info { - color: var(--text-muted); - margin: var(--size-4-1) 0 var(--size-4-4) 0; - font-size: var(--font-ui-small); -} -.workspace-drawer-header-icon { - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); - padding-top: var(--size-2-2); - color: var(--interactive-accent); - margin-left: var(--size-4-3); -} -.workspace-drawer-actions { - margin: var(--size-4-4) 0 var(--size-4-3) 0; - display: flex; - color: var(--text-muted); -} -.workspace-drawer-action-item { - flex: 0 0 70px; - display: flex; - flex-direction: column; - align-items: center; - overflow: hidden; -} -.workspace-drawer-action-icon { - color: var(--text-faint); -} -.workspace-drawer-action-short-name { - font-size: var(--font-ui-small); - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - max-width: 80px; -} -.workspace-drawer-separator { - margin: 0 0 12px 0; -} -.workspace-drawer-tab-option-item { - display: flex; - align-items: center; - margin: var(--size-4-5); - gap: var(--size-4-2); -} -.workspace-drawer-active-tab-icon, -.workspace-drawer-tab-option-item-icon { - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); - color: var(--text-normal); - display: flex; -} -.workspace-drawer-active-tab-icon:last-child { - color: var(--interactive-accent); - order: 2; -} -.workspace-drawer-active-tab-back-icon { - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); - display: flex; - color: var(--interactive-accent); - order: 1; - margin-right: var(--size-4-1); -} -.workspace-drawer-tab-option-item-title, -.workspace-drawer-active-tab-title { - color: var(--text-normal); - font-weight: var(--font-medium); - font-size: var(--font-ui-medium); - flex: 1 0 0; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.workspace-drawer-active-tab-header { - display: flex; - align-items: center; - padding: var(--size-4-3) var(--size-4-5) var(--size-4-4); - margin: 0; - gap: var(--size-4-2); -} -.workspace-drawer-tab-container { - overflow: hidden; - position: relative; - flex: 1 0 0; -} -.workspace-drawer-tab-container > * { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.workspace-drawer-active-tab-icon.mod-exit-fullscreen { - display: none; -} -.workspace-drawer-active-tab-container { - display: flex; - flex-direction: column; -} -.theme-dark .workspace-drawer-active-tab-container.is-fullscreen { - background-color: var(--background-secondary); -} -.workspace-drawer-active-tab-container .workspace-drawer-active-tab-content .nav-files-container { - padding-top: var(--size-4-3); -} -.workspace-drawer-active-tab-container.is-fullscreen { - position: fixed; - width: 100%; - top: 0; - left: 0; - background-color: var(--background-primary); - margin: 0 env(safe-area-inset-right, 20px) 0 env(safe-area-inset-left, 20px); - padding: env(safe-area-inset-top, 20px) 0 0; -} -.workspace-drawer-active-tab-container.is-fullscreen .workspace-drawer-active-tab-back-icon { - display: none; -} -.workspace-drawer-active-tab-container.is-fullscreen .workspace-leaf { - width: 100%; -} -.workspace-drawer-active-tab-container.is-fullscreen .workspace-drawer-active-tab-header { - margin: 0 env(safe-area-inset-right, 20px) 0 env(safe-area-inset-left, 20px); - padding: var(--size-4-4) var(--size-4-6); -} -.workspace-drawer-active-tab-content { - flex: 1 0 0; - overflow: auto; - display: flex; -} -.workspace-drawer-active-tab-content > * { - flex: 1 0 0; - width: 100%; - height: 100%; -} -.workspace-drawer-active-tab-content .view-header { - display: none !important; -} -.workspace-drawer-active-tab-content .view-content { - padding-top: 4px; - height: 100%; -} -.workspace-drawer-active-tab-content .graph-controls { - display: none; -} -.workspace-drawer-active-tab-content .outline { - font-size: var(--font-ui-medium); -} -.is-phone .side-dock-ribbon { - display: none; -} -.is-phone .workspace-drawer .workspace-drawer-header-icon.mod-pin { - display: none; -} -.is-phone .mod-root .workspace-split:not(.mod-visible), -.is-phone .mod-root .workspace-tabs:not(.mod-visible) { - display: none; -} -.is-tablet .workspace-drawer .workspace-drawer-header-icon.mod-settings { - display: none; -} -body.is-tablet .sidebar-toggle-button { - padding-left: var(--size-4-2); - --icon-color: var(--interactive-accent); - --icon-color-hover: var(--interactive-accent); - --icon-color-active: var(--interactive-accent-hover); - --icon-color-focus: var(--interactive-accent-hover); - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); -} -.is-mobile .menu { - border: none; - max-width: 100%; -} -.is-phone .menu { - background-color: var(--background-secondary); - max-height: 60vh; - width: calc(100% - var(--safe-area-inset-left) - var(--safe-area-inset-right)); - min-width: unset; - position: absolute; - padding-bottom: var(--safe-area-inset-bottom); - margin-left: var(--safe-area-inset-left); - margin-right: var(--safe-area-inset-right); - border-radius: var(--radius-l) var(--radius-l) 0 0; - bottom: 0; - left: 0; - right: 0; - margin: 0 auto; - top: unset !important; - overflow-y: auto; -} -.is-phone .menu-item { - padding: var(--size-4-3) var(--size-4-3); - height: unset; - line-height: unset; -} -.is-phone .menu-item.is-label .menu-item-title { - display: -webkit-box; - overflow: hidden; - -webkit-box-orient: vertical; - -webkit-line-clamp: 3; -} -.is-mobile .modal { - border: none; -} -.is-mobile .modal-button-container { - display: flex; - flex-direction: column; -} -.is-mobile .community-modal { - width: 100%; - margin-bottom: 10px; -} -.is-mobile .modal.mod-community-theme { - min-height: unset; -} -.is-mobile .mod-confirmation .modal-close-button { - display: none; -} -.is-phone .modal, -.is-phone .prompt { - border-radius: 0; - border: none; - max-height: 100vh; - width: 100vw; - max-width: 100vw; - min-width: unset; - position: absolute; - bottom: unset; - padding: 0; - left: 0; - right: 0; -} -.is-phone .modal { - --modal-top: calc(var(--safe-area-inset-top) + var(--size-4-2)); - --modal-bottom: var(--safe-area-inset-bottom); - border-radius: var(--radius-m) var(--radius-m) 0 0; - padding: 0 var(--safe-area-inset-right) 0 var(--safe-area-inset-left); - top: var(--modal-top); - bottom: 0; - width: 100vw; -} -.is-phone .modal .modal-close-button { - top: var(--size-4-3); -} -.is-phone .modal .modal-title { - display: block; - font-size: var(--font-ui-medium); - margin-bottom: 0; - padding-top: calc(env(safe-area-inset-top) + var(--size-4-3)); - padding-bottom: var(--size-4-4); - text-align: center; -} -.is-phone .mod-confirmation .modal { - --interactive-normal: var(--background-modifier-hover); - top: auto; - height: auto; - background-color: var(--background-secondary); -} -.is-phone .mod-confirmation .modal .modal-title { - border-bottom: 1px solid var(--background-modifier-border); -} -.is-phone .modal-sidebar { - background-color: var(--background-primary); -} -.is-phone .modal-content { - display: flex; - position: relative; - flex-direction: column; - margin-top: 0; - overflow: auto; - padding: var(--size-4-3); -} -.is-phone .modal-button-container { - width: 100%; - padding: var(--size-4-3); - margin-top: 0; - margin-bottom: var(--safe-area-inset-bottom); -} -.is-phone .modal.mod-lg { - max-height: 100%; -} -.is-phone .modal.mod-lg .modal-title { - padding-top: calc(env(safe-area-inset-top) + var(--size-4-3)); - padding-bottom: var(--size-4-3); -} -.is-phone .modal.mod-lg .modal-close-button, -.is-phone .modal.mod-sidebar-layout .modal-close-button { - top: calc(var(--safe-area-inset-top) + 10px); - right: var(--size-4-5); - z-index: var(--layer-modal); -} -.is-phone .modal.mod-sidebar-layout { - bottom: 0; - top: 0; - border-radius: 0; - height: 100%; - max-height: 100%; - margin: 0; - padding: 0 var(--safe-area-inset-right) 0 var(--safe-area-inset-left); - width: 100vw; -} -.is-phone .modal.mod-sidebar-layout .search-input-container { - flex-grow: 1; -} -.is-phone .modal.mod-sidebar-layout .modal-title { - display: block; - padding-top: calc(env(safe-area-inset-top) + var(--size-4-3)); - padding-bottom: var(--size-4-3); - margin-bottom: 0; -} -.is-phone .modal.mod-sidebar-layout .modal-content > * { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - right: 0; - padding: 0 var(--safe-area-inset-right) 0 var(--safe-area-inset-left); -} -.is-phone.mod-publish .modal-button-container, -.is-phone.mod-sync-log .modal-button-container { - padding-bottom: calc(env(safe-area-inset-bottom) + var(--size-4-3)); -} -.mobile-navbar { - background-color: var(--background-primary); - padding: 0 max(var(--safe-area-inset-right), var(--size-4-4)) 0 max(var(--safe-area-inset-left), var(--size-4-4)); - position: absolute; - left: 0; - right: 0; - bottom: 0; -} -body.is-tablet .mobile-navbar { - display: none; -} -.mobile-navbar-text { - font-size: var(--font-ui-small); - padding: var(--size-4-1) 0; - white-space: nowrap; - text-overflow: clip; - width: 100%; - -webkit-mask-image: linear-gradient(to left, rgba(0, 0, 0, 0) var(--size-4-4), #000000 var(--size-4-8)); -} -.mobile-navbar-actions { - --icon-size: var(--icon-l); - --icon-stroke: var(--icon-l-stroke-width); - --icon-color: var(--interactive-accent); - --icon-color-hover: var(--interactive-accent); - --icon-color-active: var(--interactive-accent-hover); - --icon-color-focus: var(--interactive-accent-hover); - display: flex; - align-items: center; - justify-content: space-between; - padding: var(--size-4-2) 0 max(var(--size-4-2), var(--safe-area-inset-bottom)) 0; -} -.mobile-navbar-tabs-action { - align-items: center; - border-radius: var(--clickable-icon-radius); - border: 2px solid var(--icon-color); - display: flex; - font-size: calc(var(--icon-size) * 0.6); - font-weight: var(--bold-weight); - justify-content: center; - height: 20px; - width: var(--icon-size); -} -.mobile-navbar-action.has-longpress-menu { - position: relative; -} -.mobile-navbar-action.has-longpress-menu .navbar-action-flair { - --icon-size: 12px; - --icon-stroke: 3px; - color: var(--interactive-accent); - position: absolute; - left: -6px; - top: 0; - height: 100%; - align-items: center; - display: flex; -} -.is-phone .notice-container { - padding: 0; - top: max(var(--size-4-1),var(--safe-area-inset-top)); - left: 0; - right: 0; - max-width: 96%; - margin: 0 auto; -} -.is-phone .notice { - background-color: var(--interactive-accent); - color: var(--text-on-accent); - margin: 0 auto var(--size-4-1); - text-align: center; - border-radius: 30px; - max-width: none; - box-shadow: none; -} -.is-mobile .prompt { - border: none; -} -.theme-dark.is-mobile .prompt { - background-color: var(--background-secondary); -} -.theme-dark.is-mobile .prompt input.prompt-input { - background-color: var(--background-secondary); -} -.is-mobile .prompt-input[type=text] { - padding: var(--size-4-4); -} -.is-phone .prompt { - position: relative; - margin: 0 auto; - width: calc(100% - var(--safe-area-inset-left) - var(--safe-area-inset-right)); -} -.is-phone .prompt .suggestion-hotkey { - display: none; -} -.is-phone .prompt { - --mobile-height: 100vh; - --prompt-bottom: 0px; - --prompt-top: calc(var(--safe-area-inset-top) + var(--header-height) + var(--size-4-2)); - border-radius: var(--radius-l) var(--radius-l) 0 0; - min-width: unset; - margin-bottom: var(--prompt-bottom); - margin-top: var(--prompt-top); - box-shadow: none; - top: 0; - height: calc(var(--mobile-height) - var(--prompt-top) - var(--prompt-bottom)); -} -.is-phone .prompt-input-container { - border-bottom: var(--border-width) solid var(--background-modifier-border); -} -.is-phone .prompt-input[type=text] { - border: none; -} -.is-phone .prompt-input-cta { - --icon-color: var(--interactive-accent); - display: flex; - align-items: center; - padding: 0 var(--size-4-3); - flex: 0 1 auto; -} -.is-phone .prompt-instructions { - display: none; -} -.pull-action { - position: absolute; - background-color: var(--background-secondary); - z-index: var(--layer-popover); - color: var(--text-muted); - font-size: 90%; - transition: background-color ease-in-out 150ms; -} -.pull-action.mod-activated { - background-color: var(--interactive-accent); - color: var(--text-on-accent); -} -.pull-down-action { - top: 0; - left: 0; - right: 0; - width: 96%; - max-width: 500px; - margin: var(--safe-area-inset-top) auto 0 auto; - padding: var(--size-4-3) var(--size-4-4); - text-align: center; - border-radius: 40px; -} -.pull-out-action { - top: 50%; - padding: var(--size-4-3) var(--size-4-4); - border-radius: 40px; - margin: 0 var(--size-4-4); -} -.mobile-toolbar { - -webkit-app-region: drag; - flex: 0 0 auto; - width: 100%; - overflow-y: hidden; - background-color: var(--background-primary); - bottom: 0; - z-index: var(--layer-menu); -} -.is-tablet.is-ios .mobile-toolbar { - padding-bottom: 16px; -} -.mobile-toolbar-options-container { - --scroll-fade-offset-right: 50px; - position: relative; - height: var(--mobile-toolbar-height); - display: flex; - width: 100%; -} -.mobile-toolbar-options-list { - display: flex; - width: 100%; - overflow-x: auto; - overflow-y: hidden; - padding: 0 10px; - scrollbar-width: none !important; - /* Firefox */ - -ms-overflow-style: none !important; - /* Internet Explorer 10+ */ -} -.mobile-toolbar-options-list::-webkit-scrollbar { - width: 0 !important; - height: 0 !important; -} -.mobile-toolbar-floating-options { - display: flex; -} -.mobile-toolbar-floating-options .mobile-toolbar-option { - min-width: 50px; - color: var(--text-accent); -} -.mobile-toolbar-option { - display: flex; - font-size: var(--font-ui-medium); - color: var(--text-muted); - font-family: var(--font-monospace); - justify-content: center; - align-items: center; - min-width: 50px; - position: relative; - left: 0; - transition: left 200ms ease-in-out; -} -.is-mobile .suggestion-item { - padding: var(--size-4-2) var(--size-4-3); -} -.is-tablet.theme-dark .suggestion-container { - background-color: var(--background-secondary); -} -.is-phone .suggestion-item.mod-group { - border-radius: 0; -} -.is-mobile .modal.mod-publish { - background-color: var(--modal-background); - height: 100%; - margin: 0; - padding-top: var(--safe-area-inset-top); - width: 100vw; -} -.is-mobile .publish-changes-info-publishing-to { - display: none; -} -.is-mobile .publish-changes-add-linked-btn { - width: auto; -} -.is-mobile .file-tree .tree-item-self { - font-size: var(--font-ui-small); -} -.is-phone .modal.mod-publish { - border-radius: 0; -} -.is-phone .modal.mod-publish .modal-button-container { - background-color: var(--modal-background); - position: fixed; -} -.is-phone .modal.mod-publish .modal-content { - display: unset; -} -.is-phone .publish-changes-info { - flex-wrap: wrap; -} -.is-phone .publish-changes-info .search-input-container { - width: auto; -} -.is-mobile .sync-history-list { - padding-left: max(var(--size-4-5), var(--safe-area-inset-left)); - padding-right: max(var(--size-4-5), var(--safe-area-inset-right)); -} -.is-mobile .sync-history-list-item-header { - padding: var(--size-4-2) 0; -} -.is-mobile .sync-history-list-item-details { - padding: var(--size-4-1) var(--size-4-4); -} -.is-mobile .sync-history-content-container { - display: flex; - flex-direction: column; - max-width: unset; -} -.is-mobile .sync-history-content { - flex: 1 1 auto; - padding: 10px; - border-radius: 0; - border: none; -} -.is-phone .sync-log-container { - flex: 1 1 auto; -} -.is-phone .modal.mod-sync-history .search-input-container { - width: 100%; - margin-bottom: 0; -} -.is-phone .sync-history-list-container { - background-color: var(--background-primary); -} -.is-phone .sync-history-content .setting-item { - flex-direction: column; - align-items: start; -} -.is-phone .sync-history-content .setting-item:first-child { - padding: 0 var(--size-4-6) var(--size-4-4); -} -.is-phone .sync-history-content .setting-item-name { - font-weight: var(--font-semibold); - font-size: var(--font-ui-large); -} -.is-phone .sync-history-content .setting-item-control { - padding-right: 0; -} -.is-phone .sync-history-content .setting-item-control label { - min-width: fit-content; -} -.mobile-vault-chooser { - width: 100%; - height: 100%; - background-color: var(--background-primary); - position: relative; -} -.mobile-vault-chooser hr { - margin: 12px 0; - border-width: var(--border-width); -} -.mobile-vault-chooser-screen { - display: flex; - flex-direction: column; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; -} -.mobile-vault-chooser-header { - display: flex; - background-color: var(--background-primary); - border-bottom: var(--border-width) solid var(--background-modifier-border); - color: var(--text-muted); - flex: 0 0 50px; - font-size: 18px; - align-items: center; -} -.mobile-vault-chooser-header-icon { - display: flex; - margin: 0 6px 0 10px; -} -.mobile-vault-chooser-content { - flex: 1 0 0; - padding: 20px; - height: 100%; - overflow-y: auto; - max-width: 800px; - width: 100%; - margin: 0 auto; -} -.mobile-vault-chooser-logo-container { - margin: 40px 0; - text-align: center; - color: var(--text-muted); -} -.mobile-vault-logo-text { - margin-top: 10px; - margin-bottom: 10px; - color: white; -} -.mobile-vault-chooser-load-text { - margin: 20px 0; - text-align: center; -} -.mobile-vault-chooser-version { - font-size: var(--font-ui-small); - color: var(--text-faint); -} -.mobile-vault-chooser-empty-state { - margin: 20px 0; - font-size: 17px; - color: var(--text-muted); -} -.mobile-vault-chooser-actions { - padding-bottom: 40px; -} -.mobile-vault-chooser-action-icon { - color: var(--text-muted); - display: flex; - padding: 10px; - margin: -10px 0; -} -.mobile-vault-chooser-action { - display: flex; - padding: 14px 0; - align-items: center; - font-size: 18px; -} -.mobile-vault-chooser-action-name { - flex: 1 0 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.mobile-vault-chooser-action-description { - color: var(--text-muted); - font-size: 17px; - overflow: hidden; - text-overflow: ellipsis; - max-width: calc(100vw - 110px); - white-space: nowrap; -} -.mobile-vault-chooser-field-name { - color: var(--text-muted); - margin: 20px 0 10px 0; - font-size: 18px; -} -input.mobile-vault-chooser-field-input { - width: 100%; - font-size: var(--font-ui-medium); - padding: 8px 12px; - height: auto; -} -.mobile-vault-chooser-button-container { - margin: 20px 0; -} -.mobile-vault-chooser-button-container button { - padding: 10px 20px; - font-size: var(--font-ui-medium); - width: 100%; -} - diff --git a/Perlite/perlite/.styles/atom-one-dark.min.css b/Perlite/perlite/.styles/atom-one-dark.min.css deleted file mode 100644 index 5344ee3..0000000 --- a/Perlite/perlite/.styles/atom-one-dark.min.css +++ /dev/null @@ -1 +0,0 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/Perlite/perlite/.styles/fontawesome-color.svg b/Perlite/perlite/.styles/fontawesome-color.svg deleted file mode 100644 index 1c4b642..0000000 --- a/Perlite/perlite/.styles/fontawesome-color.svg +++ /dev/null @@ -1 +0,0 @@ -Font Awesome \ No newline at end of file diff --git a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.ttf deleted file mode 100644 index c6f9a5e..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff deleted file mode 100644 index b804d7b..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff2 deleted file mode 100644 index 0acaaff..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_AMS-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.ttf deleted file mode 100644 index 9ff4a5e..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff deleted file mode 100644 index 9759710..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff2 deleted file mode 100644 index f390922..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Bold.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.ttf deleted file mode 100644 index f522294..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff deleted file mode 100644 index 9bdd534..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff2 deleted file mode 100644 index 75344a1..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Caligraphic-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.ttf deleted file mode 100644 index 4e98259..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff deleted file mode 100644 index e7730f6..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff2 deleted file mode 100644 index 395f28b..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Bold.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.ttf deleted file mode 100644 index b8461b2..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff deleted file mode 100644 index acab069..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff2 deleted file mode 100644 index 735f694..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Fraktur-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.ttf deleted file mode 100644 index 4060e62..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff b/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff deleted file mode 100644 index f38136a..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff2 deleted file mode 100644 index ab2ad21..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Bold.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.ttf deleted file mode 100644 index dc00797..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff b/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff deleted file mode 100644 index 67807b0..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff2 deleted file mode 100644 index 5931794..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-BoldItalic.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.ttf deleted file mode 100644 index 0e9b0f3..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff b/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff deleted file mode 100644 index 6f43b59..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff2 deleted file mode 100644 index b50920e..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Italic.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.ttf deleted file mode 100644 index dd45e1e..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff deleted file mode 100644 index 21f5812..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff2 deleted file mode 100644 index eb24a7b..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Main-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.ttf deleted file mode 100644 index 728ce7a..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff b/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff deleted file mode 100644 index 0ae390d..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff2 deleted file mode 100644 index 2965702..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-BoldItalic.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.ttf deleted file mode 100644 index 70d559b..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff b/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff deleted file mode 100644 index eb5159d..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff2 deleted file mode 100644 index 215c143..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Math-Italic.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.ttf b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.ttf deleted file mode 100644 index 2f65a8a..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff deleted file mode 100644 index 8d47c02..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff2 deleted file mode 100644 index cfaa3bd..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Bold.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.ttf b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.ttf deleted file mode 100644 index d5850df..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff deleted file mode 100644 index 7e02df9..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff2 deleted file mode 100644 index 349c06d..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Italic.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.ttf deleted file mode 100644 index 537279f..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff deleted file mode 100644 index 31b8482..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff2 deleted file mode 100644 index a90eea8..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_SansSerif-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.ttf deleted file mode 100644 index fd679bf..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff deleted file mode 100644 index 0e7da82..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff2 deleted file mode 100644 index b3048fc..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Script-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.ttf deleted file mode 100644 index 871fd7d..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff deleted file mode 100644 index 7f292d9..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff2 deleted file mode 100644 index c5a8462..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size1-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.ttf deleted file mode 100644 index 7a212ca..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff deleted file mode 100644 index d241d9b..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff2 deleted file mode 100644 index e1bccfe..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size2-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.ttf deleted file mode 100644 index 00bff34..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff deleted file mode 100644 index e6e9b65..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff2 deleted file mode 100644 index 249a286..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size3-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.ttf deleted file mode 100644 index 74f0892..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff deleted file mode 100644 index e1ec545..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff2 deleted file mode 100644 index 680c130..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Size4-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.ttf b/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.ttf deleted file mode 100644 index c83252c..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff b/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff deleted file mode 100644 index 2432419..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff2 b/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff2 deleted file mode 100644 index 771f1af..0000000 Binary files a/Perlite/perlite/.styles/fonts/KaTeX_Typewriter-Regular.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/github-color.svg b/Perlite/perlite/.styles/github-color.svg deleted file mode 100644 index 775adcc..0000000 --- a/Perlite/perlite/.styles/github-color.svg +++ /dev/null @@ -1 +0,0 @@ -GitHub \ No newline at end of file diff --git a/Perlite/perlite/.styles/katex.min.css b/Perlite/perlite/.styles/katex.min.css deleted file mode 100644 index 3d176ab..0000000 --- a/Perlite/perlite/.styles/katex.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/Perlite/perlite/.styles/perlite.css b/Perlite/perlite/.styles/perlite.css deleted file mode 100644 index 4652a80..0000000 --- a/Perlite/perlite/.styles/perlite.css +++ /dev/null @@ -1,183 +0,0 @@ - -.logo { - position: fixed; - top: 8px; - left: 5px; -} - -.custom-page { - text-align: center; - border-bottom: var(--divider-width) solid var(--divider-color); -} - -.custom-page-logo { - border-radius: 50%; - width: 130px; -} - -.social-logo { - width: 20px; -} - -.social-media-list { - padding-left: 10px; - list-style-type: none; -} - -.social-media-list li { - display: inline-block; - padding-right: 10px; -} - -.sm-site-title { - padding-top: 0px; - padding-bottom: 10px; -} - -.sm-site-desc { - padding-bottom: 10px; - max-width: 80%; - display: inline-block; -} - - -.sidebar-toggle-button.mod-left { - position: relative; - width: unset; -} - -.collapse:not(.show) { - display: none; -} - -.workspace-split.mod-vertical.mod-root { - min-width: 400px; -} - -/* fix graph canvas height */ -#localGraph { - border: calc(0.5px + var(--divider-width)) solid var(--divider-color); - height: 50%; -} - -#mynetwork { - height: 100%; -} - -#graph_all{ - height: 100%; -} - -.is-sidedock-collapse { - display: none; - width: 0%; -} - -.nav-buttons-container { - justify-content: right !important; -} - -img { - display: initial !important; - max-width: 100%; -} - -.images.center { - display: block !important; - margin-left: auto; - margin-right: auto; -} - -.images.right { - display: block !important; - margin-left: auto; - margin-right: 0; -} - -.popup-icon { - padding-bottom: 1px; - top: -6px; - position: relative; - left: 3px; -} - -#loading-text { - position: absolute; - top: 8px; -} - -.inline-title { - padding-bottom: 30px; -} - -#mdContent h1:nth-of-type(1) { - padding-top: 0px !important; -} - -h1, h2, h3, h4 { - padding-top: 30px; -} - -.sidebar-top h3{ - padding-top: 0px !important; - margin-top: 0px !important; -} - -.toc-item { - padding-left: 10px !important; -} - -.metadata-text { - line-height: 1.9; - text-indent: 5px; -} - -.is-collapsed-callout { - display: none; -} - -.callout-title-inner * { - display: inline !important; - -} - -span.cm-highlight { - background-color: var(--text-highlight-bg); - color: var(--text-normal); -} - -#tags_container { - margin-top: 30px; -} - -/* --------------- */ -/* Mobile / Responive Settings */ - -@media screen and (max-width: 990px) { - - .workspace-split.mod-horizontal.mod-right-split { - display: none; - } - .workspace-split.mod-horizontal.mod-left-split { - width: 90vw !important; - max-width: 300px !important; - } - - .markdown-preview-view { - padding: 10px !important; - - } - - .sidebar-toggle-button.mod-right { - display: none; - } - - .workspace-split.mod-vertical.mod-root { - min-width: unset; - } - - #mdContent { - padding-right: 30px; - } - -} \ No newline at end of file diff --git a/Perlite/perlite/.styles/public/fonts/05b618077343fbbd92b7.ttf b/Perlite/perlite/.styles/public/fonts/05b618077343fbbd92b7.ttf deleted file mode 100644 index 0878199..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/05b618077343fbbd92b7.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/2d5198822ab091ce4305.woff2 b/Perlite/perlite/.styles/public/fonts/2d5198822ab091ce4305.woff2 deleted file mode 100644 index bc4be66..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/2d5198822ab091ce4305.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/454577c22304619db035.ttf b/Perlite/perlite/.styles/public/fonts/454577c22304619db035.ttf deleted file mode 100644 index 91a2a44..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/454577c22304619db035.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/52ac8f3034507f1d9e53.ttf b/Perlite/perlite/.styles/public/fonts/52ac8f3034507f1d9e53.ttf deleted file mode 100644 index c790e04..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/52ac8f3034507f1d9e53.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/535a6cf662596b3bd6a6.woff2 b/Perlite/perlite/.styles/public/fonts/535a6cf662596b3bd6a6.woff2 deleted file mode 100644 index 4a81dc7..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/535a6cf662596b3bd6a6.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/70cc7ff27245e82ad414.ttf b/Perlite/perlite/.styles/public/fonts/70cc7ff27245e82ad414.ttf deleted file mode 100644 index 3563e73..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/70cc7ff27245e82ad414.ttf and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/72505e6a122c6acd5471.woff2 b/Perlite/perlite/.styles/public/fonts/72505e6a122c6acd5471.woff2 deleted file mode 100644 index f2ea706..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/72505e6a122c6acd5471.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/853ff76f08786ae44ca0.woff b/Perlite/perlite/.styles/public/fonts/853ff76f08786ae44ca0.woff deleted file mode 100644 index a1a0a4a..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/853ff76f08786ae44ca0.woff and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/94f2f163d4b698242fef.otf b/Perlite/perlite/.styles/public/fonts/94f2f163d4b698242fef.otf deleted file mode 100644 index 263ae4c..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/94f2f163d4b698242fef.otf and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/b5f0f109bc88052d4000.woff2 b/Perlite/perlite/.styles/public/fonts/b5f0f109bc88052d4000.woff2 deleted file mode 100644 index 611e90c..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/b5f0f109bc88052d4000.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/c8ba52b05a9ef10f4758.woff2 b/Perlite/perlite/.styles/public/fonts/c8ba52b05a9ef10f4758.woff2 deleted file mode 100644 index 6c2b689..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/c8ba52b05a9ef10f4758.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/cb10ffd7684cd9836a05.woff2 b/Perlite/perlite/.styles/public/fonts/cb10ffd7684cd9836a05.woff2 deleted file mode 100644 index a619fc5..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/cb10ffd7684cd9836a05.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/fonts/cbe0ae49c52c920fd563.woff2 b/Perlite/perlite/.styles/public/fonts/cbe0ae49c52c920fd563.woff2 deleted file mode 100644 index c24c2bd..0000000 Binary files a/Perlite/perlite/.styles/public/fonts/cbe0ae49c52c920fd563.woff2 and /dev/null differ diff --git a/Perlite/perlite/.styles/public/images/7877465e5f8197b19e8e.gif b/Perlite/perlite/.styles/public/images/7877465e5f8197b19e8e.gif deleted file mode 100644 index 8766b3c..0000000 Binary files a/Perlite/perlite/.styles/public/images/7877465e5f8197b19e8e.gif and /dev/null differ diff --git a/Perlite/perlite/.styles/public/images/874d8b8e340f75575caa.svg b/Perlite/perlite/.styles/public/images/874d8b8e340f75575caa.svg deleted file mode 100644 index db5d5a6..0000000 --- a/Perlite/perlite/.styles/public/images/874d8b8e340f75575caa.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/Perlite/perlite/.styles/vis-network.min.css b/Perlite/perlite/.styles/vis-network.min.css deleted file mode 100644 index 8b03219..0000000 --- a/Perlite/perlite/.styles/vis-network.min.css +++ /dev/null @@ -1 +0,0 @@ -.vis-overlay{bottom:0;left:0;position:absolute;right:0;top:0;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-color-picker{background-color:#fff;border-radius:15px;box-shadow:0 0 10px 0 rgba(0,0,0,.5);display:none;height:444px;left:30px;margin-left:30px;margin-top:-140px;padding:10px;position:absolute;top:0;width:310px;z-index:1}div.vis-color-picker div.vis-arrow{left:5px;position:absolute;top:147px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{border:solid transparent;content:" ";height:0;pointer-events:none;position:absolute;right:100%;top:50%;width:0}div.vis-color-picker div.vis-arrow:after{border-color:hsla(0,0%,100%,0) #fff hsla(0,0%,100%,0) hsla(0,0%,100%,0);border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{cursor:pointer;height:289px;position:absolute;width:289px}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(180deg,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313);border:1px solid #fff;border-radius:15px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#4c4c4c",endColorstr="#131313",GradientType=0);height:15px;left:137px;position:absolute;top:137px;width:15px}div.vis-color-picker div.vis-new-color{left:159px;padding-right:2px;text-align:right}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;color:rgba(0,0,0,.4);font-size:10px;height:20px;line-height:20px;position:absolute;top:380px;vertical-align:middle;width:140px}div.vis-color-picker div.vis-initial-color{left:10px;padding-left:2px;text-align:left}div.vis-color-picker div.vis-label{left:10px;position:absolute;width:300px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{background-color:#f7f7f7;border:2px solid #d9d9d9;border-radius:10px;cursor:pointer;height:25px;line-height:25px;position:absolute;text-align:center;top:410px;vertical-align:middle;width:68px}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{height:20px;width:290px}div.vis-configuration{display:block;float:left;font-size:12px;position:relative}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper:after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;display:block;left:10px;margin-top:20px;padding-left:5px;width:495px}div.vis-configuration.vis-config-button{background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;cursor:pointer;display:block;height:25px;left:10px;line-height:25px;margin-bottom:30px;margin-top:20px;padding-left:5px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;height:25px;line-height:25px;vertical-align:middle;width:495px}div.vis-configuration.vis-config-item.vis-config-s2{background-color:#f7f8fa;border-radius:3px;left:10px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s3{background-color:#e4e9f0;border-radius:3px;left:20px;padding-left:5px}div.vis-configuration.vis-config-item.vis-config-s4{background-color:#cfd8e6;border-radius:3px;left:30px;padding-left:5px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{height:25px;line-height:25px;width:120px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{border:1px solid #444;border-radius:2px;cursor:pointer;height:19px;margin:0;padding:0;top:1px;width:30px}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{margin:0;padding:1px;pointer-events:none;position:relative;top:-5px;width:60px}input.vis-configuration.vis-config-range{-webkit-appearance:none;background-color:transparent;border:0 solid #fff;height:20px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede",endColorstr="#c8c8c8",GradientType=0);height:5px;width:300px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2,#385380);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(180deg,#3876c2 0,#385380);border:1px solid #14334b;border-radius:50%;box-shadow:0 0 1px 0 #111927;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#3876c2",endColorstr="#385380",GradientType=0);height:17px;margin-top:-7px;width:17px}input.vis-configuration.vis-config-range:focus{outline:none}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(180deg,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#9d9d9d",endColorstr="#c8c8c8",GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(180deg,#dedede 0,#c8c8c8 99%);border:1px solid #999;border-radius:3px;box-shadow:0 0 3px 0 #aaa;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede",endColorstr="#c8c8c8",GradientType=0);height:10px;width:300px}input.vis-configuration.vis-config-range::-moz-range-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{background:transparent;border-color:transparent;border-width:6px 0;color:transparent;height:5px;width:300px}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{background:#385380;border:none;border-radius:50%;height:16px;width:16px}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{background:rgba(57,76,89,.85);border:2px solid #f2faff;border-radius:4px;color:#fff;font-size:14px;height:30px;line-height:30px;position:absolute;text-align:center;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:150px}.vis-configuration-popup:after,.vis-configuration-popup:before{border:solid transparent;content:" ";height:0;left:100%;pointer-events:none;position:absolute;top:50%;width:0}.vis-configuration-popup:after{border-color:rgba(136,183,213,0) rgba(136,183,213,0) rgba(136,183,213,0) rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0) rgba(194,225,245,0) rgba(194,225,245,0) #f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;box-shadow:3px 3px 10px rgba(0,0,0,.2);color:#000;font-family:verdana;font-size:14px;padding:5px;pointer-events:none;position:absolute;visibility:hidden;white-space:nowrap;z-index:5}div.vis-network div.vis-navigation div.vis-button{-webkit-touch-callout:none;background-position:2px 2px;background-repeat:no-repeat;-moz-border-radius:17px;border-radius:17px;cursor:pointer;display:inline-block;height:34px;position:absolute;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:34px}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAABphJREFUeNqcV2twU9cR/nbPlVTHxpKRbNnBLyEbPyJisLEcPwgwUMKQtjNJAzNJZkgNNJOmJaZAaDKlxaXDTIBAcJtOOzSYKSkdiimhAdIMjyT4bYgBYxA2BgcUQPLrCiGDR4qt2x+yXTASFt1/957d7zt3z3d39xDCMQWUfgAz/RI/T4pSTAJpAGL8rECAXX7QFQGq9wOHOxYO1oCgjAdJj1wtB095Giv9TFuZAIWHAziATMPhTAwiHgUkYPXFJu92lMP/2MTpB1AKUCVEgNAcleUo1M+2F8TO6crSTncb1QleAOj2OTSX3Ge1p+Va42m5JrnzbnsCE8Ov+EHgpa0LPLvCJjZ/whuIlN8wAcXG+e1LUn9hm238QU84p1Ld83nsXvuO7Lq+LzKYGAT6/dn58m/HJTYf4O3EShkT8Irpzab1Uz9sGevT5+tWn+j6NB4A5hp/5NSr43xjfd5rW5tT9e3OAhCBiCua5/WsDEls/hdvYklZSwDefmrT8eXmtzuDkb5YZ33p9ndylICAVjWxf39xw/5g5Luv/9H84ZWNcwNEypZT87rXjqyJB85UYDMJYN3U7UdLJ6/6JlgqV517teRqf9uTlug8e1zEk27HgD22o98WsTBh8fWxvjm6ApdONbGvse8LM5NUPOm1Cfabuz3nACAgxX0QEFTJAnjNvLJ+Sepb14KRHnN+Ev+1XJOhZs3Qu1mbG97J2NQgsXroa1dtxrGuf8cHi1mUtPTay0lv1DMJSCRVLtoX+FgGgDQNysBAcez89l9nbbsQSji7rlXkEhjPxb/QatHOcFu0M9zz419oFSRhj/3PuaHiyqasv1Con9NGxHAYUsoCxAqImbYSgCWmFbZQwdsur7N0eC4m6tT6/jUZ750Zeb82c+OZGLWh/2p/W+Kfrmy0hIp/aVKpTSIJEqu2QgFx2iE8CwDp0RbH7Ljng/4yXr+XT3QdyhYsodS0slGr0g2OrEUK7eCrKW82SqzCVz3/yfb6vRwM4xn9rN7JkRkOQRLmfJn2LBPxQjDBqp9lD7XbX7X8pKTP160zR2bdeiX5jYeU/nLSTztNkem3XL5eXbltRUkonBxdgZ2IIUmahUxERQSCVT+rK5hzQ89xQ6P8VaaK1f5VmRvqQ4G+lba+nlnlb5brMhvlk7FBiaPzuwQEmEQhg5BOxMjWTncHc2501cQLkjDTsMCWpyuRQxFP0xXIJfp5FyVW4Zy7KajC06ItbiIGg6ZITBxDxIgbrr1jTSM0fibGIHz8O9sKK0GAibEua9spANh4aY2VmcEg+DEkiBgR/L2hYFgGtcErkQQAMVJgBxyy9hboZzv32v+Kpr7qbEECTAIMAoaJa3qPTmNiiAAgJAjk6J5xhu6HDAIgQYGLmI29PocmMcI8MNYvT1ckfzD9H/ub5br4e4Me9WfOKqtyX6Ud2cwC449PRamifDm6Auc0rTXokci+Xo1EAgBckiDuYGLjpTvntcGIA+SFcp6uUAaAI879VhWrRteYAqn/edq758brXJ1327QMhgJcZjA3EBjNrgZjOG1PkAjyTGENMjZPq5ECQ0MDE9ERBqFZrk0OJ3i4x/7vyIjBxGERt3takgVJEAp9xq3f769WiPDNvSsJdT3HDOEASPelmoBRYT3Kzt5uMtwauJEgSOCpwrk1DIJCoNUMwj9v7MweP9XSQ8/hJPp496fZTAICvLqcyv2B7nRbrgCA03JN5h8ub7A8VqpB437xHvsOy3l3cyaB4L2uqxhti1WLMcSgZQCw7+bOooO3Pk4JBZIYYXISMV5sKH59UePM10GESRGpIf/bE92HU452HywSJIGIllctrhp6YAK5+fHds0lLtJFMXNwkV6fFqA29mROefqiMJj1h6um4a5vY/92dKGaBxIhU5zJTWW2cJmEgGOmeb3c8FxAfb9mdf2RzyGGv5MvU7QwuEySwKHFp/c/M71zA/2F7b1RajnYdLAqMukMVu2YcfmDYE2MD7H+7/Xlq6cRIJqm4zXM+qd3TGjVBir43KSLlXjiELe5TsX+3/yW/ST45PaAHbKmccWh12AP93JNZywj0kSABIobpiXRHjtZ6faout2tyZMadGLXBCxBcvl6NfaAz+tKdFmObpzWl2+tIIBACYy0t/yj34M7HvsKUK+CGassvicX7alYDwwq+vykIEqPVa+Q9gdYk5+V+UE7lj3+FGbuBM/X5JUT8QwIVSSSZiTgmoFR2MfiqYFFPfjpkyrfWPopwxP47AP1pK1g9/dqeAAAAAElFTkSuQmCC");bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url("data:image/png;base64,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");bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url("data:image/png;base64,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");bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url("data:image/png;base64,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");bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url("data:image/png;base64,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");bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url("data:image/png;base64,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");bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url("data:image/png;base64,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");bottom:50px;right:15px}div.vis-network div.vis-manipulation{background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff,#fcfcfc 48%,#fafafa 50%,#fcfcfc);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(180deg,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc);border:0 solid #d6d9d8;border-bottom:1px;box-sizing:content-box;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#fcfcfc",GradientType=0);height:28px;left:0;padding-top:4px;position:absolute;top:0;width:100%}div.vis-network button.vis-edit-mode,div.vis-network div.vis-edit-mode{height:30px;left:0;position:absolute;top:5px}div.vis-network button.vis-close{-webkit-touch-callout:none;background-color:transparent;background-image:url("data:image/png;base64,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/GMzLdsAADvGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wMi0xNFQxMjowNToxNyswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjk4MmM2MGIwLWUzZjMtMDk0MC04MjU0LTFiZTliNWE0ZTE4MzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo5ODJjNjBiMC1lM2YzLTA5NDAtODI1NC0xYmU5YjVhNGUxODM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMTRUMTE6NTU6MzUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjIxODYxNmM2LTM1MWMtNDI0OS04YWFkLWJkZDQ2ZTczNWE0NDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0xNFQxMTo1NTozNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjU0YmM5YmQtMWI2Yi1jYjRhLTllOWQtNWY2MzgxNDVjZjk0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAyLTE0VDEyOjA1OjE3KzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjc8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NzwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+cZUZMwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA2ElEQVR42gDLADT/AS0tLUQFBQUVFxcXtPHx8fPl5eUNCAgITCkpKesEHx8fGgYGBjH+/v4a+Pj4qgQEBFU6OjodMTExzwQUFBSvEBAQEfX19SD19fVqNDQ0CElJSd/9/f2vAwEBAfrn5+fkBwcHLRYWFgsXFxfz29vbo9LS0uwDDQ0NDfPz81orKysXIyMj+ODg4Avh4eEa/f391gMkJCRYPz8/KUhISOMCAgKh8fHxHRsbGx4UFBQQBDk5OeY7Ozv7CAgItPb29vMEBASaJSUlTQ0NDesDAEwpT0Ko8Ri2AAAAAElFTkSuQmCC");background-position:20px 3px;background-repeat:no-repeat;border:none;cursor:pointer;height:30px;position:absolute;right:0;top:0;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:30px}div.vis-network button.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode button.vis-button,div.vis-network div.vis-manipulation button.vis-button{-webkit-touch-callout:none;background-color:transparent;background-position:0 0;background-repeat:no-repeat;border:none;-moz-border-radius:15px;border-radius:15px;box-sizing:content-box;cursor:pointer;float:left;font-family:verdana;font-size:12px;height:24px;margin-left:10px;padding:0 8px;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation button.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation button.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation button.vis-button.vis-back{background-image:url("data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpmOWQ3OGY4ZC1lNzY0LTc1NDgtODZiNy1iNmQ1OGMzZDg2OTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTU6MDE6MDkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmI2YjQwMjVkLTAxNjQtMzU0OC1hOTdlLTQ4ZmYxMWM3NTYzMzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNTowMTowOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOmY5ZDc4ZjhkLWU3NjQtNzU0OC04NmI3LWI2ZDU4YzNkODY5Nzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4jq1U/AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAVTSURBVHjanFVfTFNnFP+d77ve8qeVFbBrpcVgRrCRFikFByLxwSAaE32oRCHD6JMxxhhn8G2RxxH3MsOTbyYsmCAxPMmMMYtkIUYmK60OO0qAK23BFlNob0uh3x7WS5jLZPpLbm6+k/P9zrm5v9855PF4UFhYCABgjIExBgAgIqRSqRIi6gDQRkQ1RGTB3wgR0e8AHgH4Sa/XR/EBiAiJRAJ04cIF5Ofng4g2n0gkUkxENwF0c843LzHGQEQQQkCLExEA9ALotVgsUQAQQmgNQhJCbF5kjCEUCl0moj4t5na7fTU1NUpVVVXUYrEkASAcDhe8efOmxOfzWScmJqoBdBNR99LS0hWz2dynNSSEAF28eBGFhYVgjCEcDn9HRD1EhIMHD3o9Hs9kWVlZAh9BKBQqGB4edr58+dKZ+6JbJpOpBwBWV1fB6+rqIMsyIpHIFcZYL2MMra2tY5cuXRrfuXNnBtvAYDBk3G63oqpqZm5uzgrgSDKZjBoMhueZTAbc5XIhFouVEtFTxhiOHTs2dv78eS8+Efv374+oqpqZnZ21cs5PJJPJPlmWkyynnBuMMTQ0NHi7uro+mVyDx+Pxulwu71ZOlkqlSonoJhGhvb39s8k1nDx50ss5hyRJN9PpdKlERB2aWjSVaEilUvzBgwcORVEs5eXloXPnzk1sV8BkMiUdDofP7/dXZ7PZDilnIhw4cGBeS1pbW2P37t1zBwKBikQiUUREWFhYsHHO0d7evm0Ru90+/+rVq2rO+XGJiJxEhMrKyhgAjI6OWoeHh5tWVla+4JzDZrO9bW5unhwcHGzz+/32np4e+xaDbfoHAMxmc6ijo2O0oqIiJkkSNjY2HBIRmRljMJvNyWfPnln7+/tPMMZQXl6+0NbW9qK2tjYcj8floaEhqKpq+HCkbD3PzMwYBgYG0NXV9UuusFna2kEgELAQEQ4dOvSis7PzN41Ar9dnrl27NqCNkv/C3bt3zy4tLVmICJxzEBFJRBQmorLFxcWCqqqq0Pj4eO3Y2JhbUZTdra2tL2pra8OJRGLHnTt3zkqS9K+huHU4EhHMZnMoGo0W5OIh7nK5jjLGKq1W69vDhw8rRqMxMjc3t2t5eXnX5ORklc/nM+fl5SWnpqa+0uv1K/n5+Ws6nW5NluXNd15e3ppOp1uz2WyzZ86cGQ0Gg6ZAIFCZzWZ/lYjokRDiuN/vt7W0tMw3NTUpbrd78P79++5gMFgRiUTKHj58WMYYQ3V19etTp05tq6Lp6Wkb5xxCiEfc7XZPM8a6FxcXTfX19a/1en2Gcy5qamreNjY2/qGq6joRZe12+9Tp06e3JY/FYgWPHz8+mhvr3/CWlpbk+vp6PmOseWVlBS6XS9GSJUkSdrs93NDQ8Oe+ffvC/8fJIyMjddFo9Esi6pVleVjT2m0A8Hq9zqGhIefnjoknT544A4GAM/eDbxMReFNTE0pKSpKqqsaI6Pj8/LxVVdWM3W6PfCr5xMTE1zllXS0uLn6aSqXAGxsbodPpoNfrn6uqCs75EUVRrJFIZMfevXsXdTrdxseIE4mEPDIyUu/3++tynd8yGo29RIR0Og26fv06ioqKwBgD5xzv3r27zBjrIyJIkgSHwzFZWVmp7NmzJ1ZaWpoAgGg0WqgoSvHMzIw1GAw6tvjhitFo7NPW5fv370Hd3d0oKCgA53zTQMvLy+VCiKuSJH0rSdLmztZytIWv5RPRD0T0Y3Fx8dzWfby6ugopHo//w4mcc8iyPMc5v5FOp7/PZrOdQohWInIC2C2EgBBigYi8Qoifs9lsv06nWyIiaFxagXg8jr8GAGxuIe7LBeWhAAAAAElFTkSuQmCC")}div.vis-network div.vis-manipulation div.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-none{line-height:23px;padding:0}div.vis-network div.vis-manipulation div.notification{font-weight:700;margin:2px}div.vis-network div.vis-manipulation button.vis-button.vis-add{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2OWVmYWE1NS01ZTI5LTIzNGUtYTUzMy0xNDkxYjM1NDNmYmE8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDA6MjkrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjVkNWIwNmQwLTVmMjAtOGE0NC1hMzIwLWZmMTEzMzQwNDc0Yjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MDoyOSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjY5ZWZhYTU1LTVlMjktMjM0ZS1hNTMzLTE0OTFiMzU0M2ZiYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz5WKqp9AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYXSURBVHjafFZtUFTXGX7e9z27sveuMCwYV8ElrA7YSFYHtJUPkaaI0aRqG8wP00zUzljDINNSA/2ROtpO24SxnahlxjYd7SSjmUkymcxYlDhQPzHGisEVp8HwYWCVVVgEsrsuLnL74+5uqTF9Z+7cO/d8PO95zvO851BlZSV0XQcAMDOYGQBARDhX3JRmMDYZwLPMWAzGHACYIgwS46oBNBNwtOL8CwE8EkSEUCgE2rJlC2w2G4go8Zwo/bMDgnoG6gxLfAAAYvPDMCCszKTAMIAGAhrWnf15AAAMwwARIRKJgDZv3gy73Q4iAjPjxIr9VVOMRhbAYKB8zvrO0llrfEsdKwLZek6YAPSFvtSu3GtLawu0ZJ6625SHGBQB1T88t6MxvopgMAjaunUrdF0HM+P4yv27DMYeJmB1RqW3Jnf3tQX2p0L4P9EXuqEd7PmDp+XuMU9sRbvXnnt1TxxACgoKYLVacbzsQDUJGkSATe6qi28uPtzusM6Kxie6NHLGUX3lxVUNX9StPHnn4wy3njuUYcu6n2pNi66avcEXnByP/nv8aiaIyrqz2gO5A9+9FI1GIfn5+WhZdTAdjFMkwMvZOy7uWnTAOz3L4Yk71m3t69fdfTDoUGTBeHTUfiHQ6lo7Z2OXJvpDAChKe+aOCdKRKWxZ2+1qb3yyd3GYmRkQ7GQBVs99wfv6on3eR2k4PdTkDEbH7IuS8/svld/561PJS/pDk1/bzwx94pze7xc5v/H+YPY6r5BAkdrJzODTK46lE6PeYEJt7u+8j+OZwCBiEAgAoNgKJoEQf6PvNvdrXgtZoNhSf7q0KZ3B2AQmVMze0Jmt54S/DcDCVig2NcvEUGxJAE4Pl+YOr0iv6BRSIPAmBeBZAmHlE2sH4p1uhrq1s0MnnEQMBsf8wRASAICQQCCITN1X7/sOuc0kgOVp3/fPs2WHv+coG7gQOJUnLGsUCTxEjPzUohEA+NfIWUdtx0+efzA1kSSkIGyBAQNCKgHAEBAJ3u79U7kiAcWoem/gb5Fd33nrH3kp+SMWtuAB+GllMJxMjCx9QRgA3uiqL5kwHiTlpxb3smlfMDGYGPP1hcMAkJvs8ScpfdJspdj+MK6Pf+5+u29vyb4lR4+BGEziVESAkEpw6Av1OhUpHCz4qOXbzFWz4Ncdj/v/o08Lt92ODDgZDCEFJYoUGH4mzugP92puPTf0pD3H7wvfdFZdqSxnMtWjoGAAmG9fOLxjwesdjT2/XzIQ7ks3sycYMSEwGHNtWf5bkX5NkYCJBxUBXiGV0XHvosOt54Zey33j/K+8P33++vjnbiGJbbLE+J9SANAb6nJ2B79wcUwETAwQQ7fMjPzMvfP8ja87HUIKMOiaAqMZhrGmLdAy78eZrwwsTS0eObTs+IdtgVanxBUExqGbb5VzrIISGIoUXsmqbgEhJldCQWqRf27SvPAn/o8XmgLhZsUkR4ll37mhk3n94Z4OlzY/7NLcYZfm7o1z2zT4vsvUNSXqprBCkmiTFbPX90/fh8GIT2sf+zTPdDMf4dVnNg4z+E0ixsGeBs9jd5ViSgLHjCb/peaR+MD3d4/ZJg2llyuG2Vwy7QWAs8PNnn1f7vkGSGxAzE6mk+kxkx/p/4unffSCR0hAoL1EBCYiPNdWNcwkNQTCR7feWX6g+7f/A7I8rcw/U6UEe0Ndrhc/W7mtL9ztmqlSgstSS/zTJ28dalpOpkRryrwbhwBACgsLMWPGDOT4ll3qyeqAkJTdCF7P/CrUY/GkLL1rE+2hTbSH8+0Lb/WEuhzhyaA905blf9Vd/895WnZwLHrPevir/cvOB1oLYpTtLrm6oYGIMDExAaqtrUVKSgqYGSKCk0WHq5ikkWEWtNL0imv5qUW+RclLRjJsrhBAuH1/QL8R7HR4xy5nescuP23E6hOA6mLv+sb4uTw6Ogqqq6uDpmkQkcStorX4XRcM1FjZ+kvFFjCJKU1WpkNJJUqIMtX1RyLeX3JtQ0JRhmGYZ/L27duRnJycuFGISOJ9pqh5lrB6iYgqGOxRrOaa54DcZmKvkJxk8JHC9rKh+KVhOsD4+Dj+MwADIf8n5m4xGwAAAABJRU5ErkJggg==")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit,div.vis-network div.vis-manipulation button.vis-button.vis-edit{background-image:url("data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDozOWNhNzE5ZC03YzNlLTUyNGEtYmY1NS03NGVmMmM1MzE0YTc8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDVUMTQ6MTI6MjUrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY5OTM3ZGZjLTJjNzQtYTU0YS05OTIzLTQyMmZhNDNkMjljNDwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNVQxNDoxMjoyNSswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjM5Y2E3MTlkLTdjM2UtNTI0YS1iZjU1LTc0ZWYyYzUzMTRhNzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ykninAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYpSURBVHjafFZtTFvnFX7Oea+NudiY2Hwam4CBlgQwXdKREDKUoYg0jbRJ29RJ2VZ1mjRFUxSpA3VTfkzJfkQbS7spU6rtx5Z2UtppScjaHxvLuiatWi2jLEoMIUDCh23g2gbj7+tPuPvhOurawPl1dc99n+c55z33fV46ceIEZFkGADAziAgAQERoe/9ZK4GPM/AcgbsIXAcABCgMvkfAqAa89eDoJyF8LogIqqqChoaGYDAYHr8kItS8uc8iIH6iAa9IkAo5EAQX8pqmgUVBCBggYFgDhv0/GAsBgKZpICJkMhnQ4OAgZFkGEYGZUXmp+0cS+CKBwWA0DVRPOg5Zl2q6zaHyJlnVAMQXVTkwHrUqH0Xsvn+tdQAAMQDgpPLS2MViFY8rkGUZzIzaS/t/xqCzGggtz9e697zsnKhoLUtim4jOq/LE6x7X0nsh16dEZ5a/O3a2SCAOHjwInU6Hujd6ThJ4mCDQ+b2G232v7v6vwarPbQn8MGlMr+X0kpE3Wr5Zt5hL5HPhqYSdQIfKJ+yhxDPKWC6Xg+jt7UXD5b5KBt1kCHS85Ljd8/On3NupfnhFaZj4rWff1B98B1R/hnUmKd36bdtCNl4g0en4edNE/cXwLq8qMTMIPAQwmo/WuHvObA8+9c58k/dKtD0TyZWXN5YGA7ej7epKxspM//7SoNOdWc/Jyq2wiwhDzPxT8cP0jys3VMM7OmL0/77zn4Ydui3b8uiK0jD7RrA77c9Wd57cefPpF+2T6bWsFPWkaiPTCWvTsZpHFU+XrS+8G3AR08F6X+1FJvBxQQzHQOWk2SmrW4FPX/U2LVwPuDZj+fJKl2khPpeyAqA9rzR/YqwuiWXX8taN/CabGkrVuq9YJlkQQDjOAJ5jAhz9Vt9W4N5/rNp8I+vtMV/aZm4zLnUNNt0urdYnF68HWoJj4Wo1mLGUNRr8LEgDgNqeCh8xQIKOsgC7iAjVe83rT9zQa8uNM28u70kspessu8q8zq/V3NcZpVzb9+0zmVhOvvvrhaMVzrJg0zeq7xMVCCwdpnWSGBqjUyJwLTFgbvxie3w31uoWR1Y74r60rdxZqrR8q85t2W2MGCp12bm/KC3hyaSTiMhxuGrKcahqpbjOaDOoEhOEoFqJQCCJvqA85I6bfTdDjQlf2lbxVNlS6wt19yy7jRHZZlDnrinNj/6sHMhnNw2Ogco7O79e5fm/xQywRBBCEAuwn4gQ96bkYj4Vyuq9N1Z3Bj4Od5bs0MXt/dZZ21ctiqFan174q985P+Lfp+U1g7XDON/1ctP458WlVjLyJhOISZE0wM0S1QfuRC3lTjkJAKKEtNC9eIOhSh9xHLZOJRZTFuXDsEoStLkR/768ummsaJG9Pb9oe+9J+xaeSVokiQDSJphAo5uaBuWjiKP4QTqS1cUWU7ayesN66wu22frD1vmVW6GW6T8u9eVjGyZzs+w78Nqu0a2mbvVu1KEJQAgeZRL0liQYyx+GOmKeQpu0rMYsAJPNEFGD2dLodLIy6c9Ys7G8yeSUl3tf2/X3rcBVJSOv34l3sCBogi7z1LH/rBHjl4IJ93/ncQFAnjeImJD0Z8zuCwu9q3djDXqTlAKID5xv+9t2R8n8VcUFBljQ8Gyfe40BYBM4DwDLt8Kue79ZcFkbzfEdbUbv+oN4c9KTtsfm1MbYQqqh+2zrVZYKs/7Ef+byimt1POYiJhDhPBFBIiIEXhxfs7/dfYoIF+auBfYTE/pebx/V8hqBP2ODvD34yvuh/WCAmU75Bx6sIgaI/v5+6PV6JLqUsYr7dpDAoehs0h73pHTWrvKgThYbRSt9UmSjef3MpaUvBz4O72UmADgTOPJguGiZor+/HyUlJWBmJFz+D8xTtlUiOpbwpmrmrweeSXrT+g11k4SBN3RGKUcAVCVdFhyP1nreDbY//NPyEXUlU/Pp4XYycGT6V0Ux2WwWdO7cOZSWlkII8diX7SPPNgDaKdbxoNAxwATBAEkEEgSWCEQAqPAMwqvMdCEwMO0tVqZpWsGTT58+DaPR+PhGIYQAAAgh0P7B3ioW/B0iGiCGiwXbCuOHFSJys6AbYFye2T+xWhT3WYJEIoH/DQBMw3kes8OJPgAAAABJRU5ErkJggg==")}div.vis-network div.vis-edit-mode button.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation button.vis-button.vis-connect{background-image:url("data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3ZWRhMjI0MC0yYTQxLTNlNDQtYWM2My1iNzNiYTE5OWI3Y2E8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6Mzg6NTcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjlmYjUwMDU0LWE3ODEtMWQ0OC05ZTllLTU2ZWQ5YzhlYjdjNjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDozODo1NyswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjdlZGEyMjQwLTJhNDEtM2U0NC1hYzYzLWI3M2JhMTk5YjdjYTwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4ubxs+AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAUtSURBVHjajJZ/bNT1Gcdfz/P53PV6B4W7VltLqdAaplIOiMOoyxxJCSs/Gv/yB4gzJroAosmmDklwkYWR0bQsdmkykoojTpcsWYLxD/lRZdMQkTHRtkLZRqG0tIVe7662vTu43n32x/VKZ/jh89cn38/zvN7P5/l88zwf2blzJz6fDwARQUSm1n8s31CM0/VAnbNmsUPuAsDpgEO+Bg4C7//iyv5hvmMiQiqVQpqamvB6vVNwEeG1JZtCBrYi/MrkAwDNgjhwAlbzICBLA0rDb0+/839C6XQaaWxspLCw8Dp86cbNmqVFJQddE6KzdjZ9D89g+B6fSyCOcyn1nxil+O9xKg5HqWFSHGXLjrP7W/ICqVQK2bNnDz6fDxFh65KNvxbHDhF4rJj2bXPo+IGfcW5h5xL4f99P+FCEMIAob75x9t0dAMlkElNXV4e1lteXbNqiQoMaeOFOjrdU868SD2luYyEP6dUh+sYmSHeOU6GO5Z8VLx5+NNZxIpPJ5AS2L3upROCoCvz8Lo7vnkf77cAHhpiz/zIL9vWz8L8p/NvupmM0Q7pjnAoLqz8tDrc8MnQqYVUVhVdF4LEg7b+rvDn8wDDlH0WoPpukLJImSBaMwjcJqmwWts2jPZLG/8kwYVFeVdXXZcFf4yVDc2cNKfBFmD9X+0ncCP58F48eG+Feo2CAUkvs4dl0V/uJvdXLiiV+ut++n7YLSfxPfMMG54ChzB3WIesVWB2i82bw1AR6fJR7C4VsfYiv6u/k3A9nEgP4zXke8DiYHyAOMK+QxPIgnZ9GqSHr1itQJ8DK2fTerDQ+S/bHRXQJaHSCwNIZ2Xh+7+S3VAmwNMBA/tuPZtErgKquUmdMWIFlRURvdamRNEXGwIWrlP47pTMzLiunxghGMwTLvcTWlHAp77s4QNSrYMQtss6ZMgWqCm5cHoDHO1nbk6K8zEN8+3zatv2Hn1b59EqJZdxmYUERg9P9KwpIiAOTdWUWBXuLzB/vZG3P1Un4PNp2d1MbmyD45TWCxuCsQm0x56bHGHFYEZwxok7toAA9Sfw3hCcoL/NOwi9QO5wmWO1j4JEgZxTkodmcWRGkf3pcX0r8xoAaBixKu4U5/xwndM+0tpAvS6mP+PZK2nb1UBvPEKwKMLDvPj4ESGc55lGy303sdJKQdZB2rkMdctAB/4gzN+/Q2ENNd4LyUi/xN+bTtquX2thk5nk4wI3gAF+OMNcA1nFQDfK+BY5GqbkwWabTY5QZhXWlnNx1ntrY1Rz87fuvw29m/Sn8J+PUGAFj5T19baA1IspuBZp7cx1x4SwG1cEf+lgRSROs8jGwb+Ht4QB/GSSsAhYano39LWIBxNEIbP14hPDuiyS2VtJuHXQlKKvxM/jiXDq/D/xPlwifGMkJZB2NIoKpr69nxeiZxLHicFSFVWfGqBidIP3LSjrWltD94CyufF/4kQgPuVz2Lz93+dDRa9eu5QQ8Hg8/iXee+Dy4CKMs7xqn4nwKz9IirhQqmVuB42m8ey+x7LMoD6iAON782eChhqmRuXfvXgKBAKqKqtI0/8nNKrQI4BVYXkzHgzPpC88gWuHL/caXrhLoGiN0apSKr0ZZRBZM7q2w5ZnLR1oAnHOMjY0hra2tFBQUYIyZmstvVT1Z6eDlAuEVq7merxmwueNPDXy9PvybjKP5mctHLk4/XTKZRJqbm/H7/VNw1VyEMYbW4FN3WNWnnchKoy5sHeVGBRX6VWi3ymFx7r11Ix8MTX/y5C2RSPC/AQB61erowbpqSwAAAABJRU5ErkJggg==")}div.vis-network div.vis-manipulation button.vis-button.vis-delete{background-image:url("data:image/png;base64,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/GMzLdsAAEEOaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjUtYzAyMSA3OS4xNTQ5MTEsIDIwMTMvMTAvMjktMTE6NDc6MTYgICAgICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE0LTAxLTIyVDE5OjI0OjUxKzAxOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6RUE2MEEyNEUxOTg0RTMxMUFEQUZFRkU2RUMzMzNFMDM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDEtMjNUMTk6MTg6MDcrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowNmE3NWYwMy04MDdhLWUzNGYtYjk1Zi1jZGU2MjM0Mzg4OGY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTQtMDItMDRUMTQ6NDE6MDQrMDE6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZzwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmRlcml2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+Y29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmc8L3N0RXZ0OnBhcmFtZXRlcnM+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjc3NDkzYmUxLTEyZGItOTg0NC1iNDYyLTg2NGVmNGIzMzM3MTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNC0wMi0wNFQxNDo0MTowNCswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjA2YTc1ZjAzLTgwN2EtZTM0Zi1iOTVmLWNkZTYyMzQzODg4Zjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDpFQTc2MkY5Njc0ODNFMzExOTQ4QkQxM0UyQkU3OTlBMTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjczQjYyQUFEOTE4M0UzMTE5NDhCRDEzRTJCRTc5OUExPC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDA5MC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDkwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz4aYJzYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAYGSURBVHjalJZ7UJTnFcZ/73m/72PdJY1RbhoQp6lkXRAvmIYxdCUadLVOozPNtGObap1JsKipjiShbdoRbeKEiQHpQK3xj0xa03aamTbaTGyAYV1QGeqFi+JyiZFLAlmESBkWRmS3fyzslGkmnZ5/v/M873Oe75zzvqqoqAibzQaAiKCUAkApRdHIK/NFsx2NR91nOSILADDoJyzNaM4xxbtvPHh0iC+JiYkJ1OHDh4mJiUEpFSXPv/ziPC28TIiXDCOSrAClQDSEpsCwJPIhrEBRQpiSytXlQwDhcBilFPfu3UMVFxdjt9ujFTzfcLBADCoEEAFr1ZbrrNjch2vtEImPBgHob7fTcWE+bVXJNJ/NiFQlEGLvieXHKmYqGB8fRx05cgSbzYaIsPvywV8pKFaA7fGtLTzz61YWpo/xVTHQbufsq5lcez9zWuWhk5mvFwMEg0H0+vXrMU2Tn1wp3CtCiQ5DjGd3A/m/v8IDCZP8r4iNmyRrWx/j/5qktykZpXKzAjVDVxPzGqemptDr1q1jX3NRnIJarcDKK2hgR2ULXRfncv7UYv7xpovhnhiW5Mz+kefeSKO6LJ1A1xzEuk/Ojm4mRibpuZaMZW3OCtRUND60NmiICCIUShisx7a2sLMiQn4s77uEQgIabnqdfHIlgT1/qQeg8vs5dHhdCNB1wYn3RIiC995j26stjAbsNH+YiZJCESnS1Y/XxIXu8r4YIPv/VkVs3CTnTy2ms34xro1+sp9po6sxlTu34ultmsPVvy6is86FCHgO+DDs49zpjufBpCG+seYOC9OHaTidieicb9ouVAhKtouAseI710ma7pLuqwmgYfHqAFt+6WdLoQ/LBl11Lm7VudAa8vb72PCin9TlAWIsGGhLACD+kSAZnusYBii1XQAPYWDllt6ov2lrBkDBR2+6Ofuak2//3M+G/T4wAAPW7fPhKfRTVeqk9qQbFKRmDUTxS3N7QYGYmwzCkqklBGlPDEcTNv+sg9tNCbTXuvBWujE0bHrZj9JE1B/wU1Pm5PwJN6YBS9a2kVvQEcWnrh5GTFD3lxkYkqRMgYQlwVldUvDnen73LHTUuqitdKM0eAr9AFQfd1J/yo2aJn+2sn4Wdn5qEFODJskgBIjx5T0uCrQA08pnIjS9PERDjPnfOKXAMEBECUoGEIHBj+2zkt76UQ6dXheGAev3+cg74Kf6uJPqcicbfuond7cPy4SOiy7+tD9nFvZurx00KOk3CNEC+mE+vjSPBc7IWqgqTaPT60IMcO/xsXGa3HfKjRgRdbl7/KDg0jtubje6aHj7c7J3dgLQ2zoPwwQ91SooOQdAW1VKVMHty0kA5Bb48BycJn/LjWFGbLv4thvvb53kFvjJ+XEdWkPfjQVR/CcNKYgGMc8JWt5Fa2j+MIPPuyI2pa4IoHSkt6vLIuRaQ9q32khzt4GCxtNu6k46GeiIR2lIfDQQsafPzq1LGRGL9Gk9d+vrwewvfHPQOoexQVjxdB/auk/zmaUMdsfz6bVUtIalT7bxveP1ZHh6GPDPYeSzeD69kcpIfxymFWLNrka+ljhBTWkWwz2JiJT84YHnz2iPx0P20PkmRF5i6HYiwZFJsn/YzdezbzE3cQibY5xV266z6RfXohakb+xB9CjanCD9qTbW7Grk4WV38VZm0l6dhQiEw9taHSuDqrS0FIfDwXM3X9mHMsvRAk/sauDpQy38P+GtzOTGB9mEpkD0C2dS8n8zOjqK9ng8WJZFU+JTjasGvaCNXPpvJBPoMlm0OoDNMfWVxONfWNSUPUZ7TUQ56tCZlPwSgMnJSVRpaSmxsbFE1raw82ZxAZZRQUiBYUKGp5UlOX2krBzmoUVjiIKhHge9rfPo+Wcy3ZeXIYASgL1/X5RfMXMvj46OosrLy7HZbGitUUohIuzoem0RofALaOsghgWGjky0MiJTL8b0lOvI8hN1DKXKP0jd3TNTWDgcJhgMoo4ePYrD4Yi+KmaeLlprnrtXFo9h/AAlG1AqE8yFmBrC+jO0bgH9EVpO/1F2Dc5g//OAsbEx/j0Af+USsQynL1UAAAAASUVORK5CYII=")}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{line-height:25px;margin:0 0 0 23px}div.vis-network div.vis-manipulation div.vis-separator-line{background-color:#bdbdbd;display:inline-block;float:left;height:21px;margin:0 7px 0 15px;width:1px} \ No newline at end of file diff --git a/Perlite/perlite/.styles/vis.min.css b/Perlite/perlite/.styles/vis.min.css deleted file mode 100644 index c324706..0000000 --- a/Perlite/perlite/.styles/vis.min.css +++ /dev/null @@ -1 +0,0 @@ -div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;vertical-align:middle;position:absolute}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:#fff;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete-rtl:after,.vis-item .vis-delete:after{content:"\00D7";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:700;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete-rtl:hover,.vis-item .vis-delete:hover{background:red}.vis-item .vis-delete-rtl:hover:after,.vis-item .vis-delete:hover:after{color:#fff}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left,.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0}.vis-item.vis-range .vis-drag-left{left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-labelset{overflow:hidden}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-background,.vis-time-axis,.vis-timeline{overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content,.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;padding:0;margin:0;box-sizing:border-box} \ No newline at end of file diff --git a/Perlite/perlite/.styles/x-color.svg b/Perlite/perlite/.styles/x-color.svg deleted file mode 100644 index dbdaf4b..0000000 --- a/Perlite/perlite/.styles/x-color.svg +++ /dev/null @@ -1 +0,0 @@ -X \ No newline at end of file diff --git a/Perlite/perlite/Demo/.about.md b/Perlite/perlite/Demo/.about.md deleted file mode 100644 index c89cbe0..0000000 --- a/Perlite/perlite/Demo/.about.md +++ /dev/null @@ -1,20 +0,0 @@ -![GitHub release (latest by date)](https://img.shields.io/github/v/release/secure-77/perlite) ![GitHub](https://img.shields.io/github/license/secure-77/perlite) ![GitHub last commit](https://img.shields.io/github/last-commit/secure-77/Perlite) - - - -A web-based markdown viewer optimized for [Obsidian](https://obsidian.md/) Notes - -Just put your whole Obsidian vault or markdown folder/file structure in your web directory. The page builds itself. - -It's an open source alternative to Obsidian publish. - - -#### Download & Infos - -[Perlite on Github](https://github.com/secure-77/Perlite) - -[Demo](https://perlite.secure77.de) - -[Blog Post by Secure77](https://secure77.de/perlite) - -[Perlite Discord Server](https://discord.gg/pkJ347ssWT) \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/appearance.json b/Perlite/perlite/Demo/.obsidian/appearance.json deleted file mode 100644 index 3e82f87..0000000 --- a/Perlite/perlite/Demo/.obsidian/appearance.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "theme": "obsidian", - "translucency": false, - "baseFontSize": 24, - "accentColor": "", - "cssTheme": "Clair de Lune" -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/Atom/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Atom/manifest.json deleted file mode 100644 index d0d338f..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Atom/manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Atom", - "version": "0.0.0", - "minAppVersion": "0.16.0", - "author": "kognise" -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/Atom/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Atom/theme.css deleted file mode 100644 index 707483e..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Atom/theme.css +++ /dev/null @@ -1,339 +0,0 @@ -/* Base colors - TODO: are grey 1 and grey 2 used? */ -.theme-dark { - --accent-h: 219; - --accent-s: 56%; - --accent-l: 55%; - - --background-primary: #272b34; - --background-primary-alt: #20242b; - --background-secondary: #20242b; - --background-secondary-alt: #1a1e24; - --background-accent: #000; - --background-modifier-border: #424958; - --background-modifier-form-field: rgba(0, 0, 0, 0.3); - --background-modifier-form-field-highlighted: rgba(0, 0, 0, 0.22); - --background-modifier-box-shadow: rgba(0, 0, 0, 0.3); - --background-modifier-success: #539126; - --background-modifier-error: #3d0000; - --background-modifier-error-rgb: 61, 0, 0; - --background-modifier-error-hover: #470000; - --background-modifier-cover: rgba(0, 0, 0, 0.6); - --text-accent: #61afef; - --text-accent-hover: #70bdfc; - --text-normal: #dcddde; - --text-muted: #888; - --text-faint: rgb(81, 86, 99); - --text-error: #e16d76; - --text-error-hover: #c9626a; - --text-highlight-bg: rgba(255, 255, 0, 0.4); - --text-selection: rgba(0, 122, 255, 0.2); - --text-on-accent: #dcddde; - --interactive-normal: #20242b; - --interactive-hover: #353b47; - --interactive-accent-hover: hsl(var(--accent-h), calc(var(--accent-s) + 5%), calc(var(--accent-l) - 10%)); - --scrollbar-active-thumb-bg: rgba(255, 255, 255, 0.2); - --scrollbar-bg: rgba(255, 255, 255, 0.05); - --scrollbar-thumb-bg: rgba(255, 255, 255, 0.1); - --panel-border-color: #18191e; - --gray-1: #5C6370; - --gray-2: #abb2bf; - --red: #e06c75; - --orange: #d19a66; - --green: #98c379; - --aqua: #56b6c2; - --purple: #c678dd; - --blue: #61afef; - --yellow: #e5c07b; - - --background-modifier-hover: hsla(var(--accent-h), calc(var(--accent-s) - 35%), var(--accent-l), 0.06); - --divider-color-hover: #404754; -} - -.theme-light { - --accent-h: 230; - --accent-s: 83%; - --accent-l: 64%; - - --background-primary: #fafafa; - --background-primary-alt: #eaeaeb; - --background-secondary: #eaeaeb; - --background-secondary-alt: #dbdbdc; - --background-accent: #fff; - --background-modifier-border: #dbdbdc; - --background-modifier-form-field: #fff; - --background-modifier-form-field-highlighted: #fff; - --background-modifier-box-shadow: rgba(0, 0, 0, 0.1); - --background-modifier-success: #A4E7C3; - --background-modifier-error: #e68787; - --background-modifier-error-rgb: 230, 135, 135; - --background-modifier-error-hover: #FF9494; - --background-modifier-cover: rgba(0, 0, 0, 0.8); - --text-accent: #1592ff; - --text-accent-hover: #097add; - --text-normal: #383a42; - --text-muted: #8e8e90; - --text-faint: #999999; - --text-error: #e75545; - --text-error-hover: #f86959; - --text-highlight-bg: rgba(255, 255, 0, 0.4); - --text-selection: rgba(0, 122, 255, 0.15); - --text-on-accent: #f2f2f2; - --interactive-normal: #eaeaeb; - --interactive-hover: #dbdbdc; - --interactive-accent-rgb: 21, 146, 255; - --interactive-accent-hover: hsl(var(--accent-h), calc(var(--accent-s) - 10%), calc(var(--accent-l) - 4%)); - --scrollbar-active-thumb-bg: rgba(0, 0, 0, 0.2); - --scrollbar-bg: rgba(0, 0, 0, 0.05); - --scrollbar-thumb-bg: rgba(0, 0, 0, 0.1); - --panel-border-color: #dbdbdc; - --gray-1: #383a42; - --gray-2: #383a42; - --red: #e75545; - --green: #4ea24c; - --blue: #3d74f6; - --purple: #a625a4; - --aqua: #0084bc; - --yellow: #e35649; - --orange: #986800; -} - -.theme-dark, .theme-light { - --ribbon-background: var(--background-primary); - --drag-ghost-background: var(--background-secondary-alt); - --background-modifier-message: var(--background-secondary-alt); - - --tab-outline-color: transparent; - --divider-color: transparent; - - --prompt-border-color: var(--panel-border-color); - --modal-border-color: var(--panel-border-color); - - --background-modifier-border-hover: var(--interactive-hover); - --background-modifier-border-focus: var(--interactive-hover); - - --checkbox-color: var(--text-accent); - --checkbox-color-hover: var(--text-accent-hover); - - --nav-item-background-active: var(--interactive-accent); - --nav-item-color-active: #ffffff; - - --tag-color: var(--yellow); - --tag-background: var(--background-primary-alt); - --tag-color-hover: var(--yellow); - --tag-background-hover: var(--background-primary-alt); - --tag-padding-x: 4px; - --tag-padding-y: 2px; - --tag-radius: 4px; - - --inline-title-weight: var(--bold-weight); - --link-decoration: none; - --link-external-decoration: none; - --embed-padding: 0 0 0 var(--size-4-4); -} - -/* Search */ -.search-result .search-result-file-title { - cursor: pointer; -} - -.search-result .collapse-icon { - cursor: var(--cursor); -} - -.search-result:not(.is-collapsed) .search-result-file-title { - color: var(--blue); -} - -/* File tab separators */ -.workspace .mod-root .workspace-tab-header-inner::after { - right: unset; - left: -0.5px; -} - -.workspace .mod-root .workspace-tab-header:last-child .workspace-tab-header-inner::before { - position: absolute; - right: -0.5px; - width: 1px; - background-color: var(--tab-divider-color); - content: ''; - height: 20px; -} - -.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner::after, -.workspace .mod-root .workspace-tab-header.is-active .workspace-tab-header-inner::before, -.workspace .mod-root .workspace-tab-header:first-child .workspace-tab-header-inner::after, -.workspace .mod-root .workspace-tab-header.is-active + .workspace-tab-header .workspace-tab-header-inner::after { - opacity: 0; -} - -/* Editor and output */ -.markdown-rendered blockquote { - padding: var(--embed-padding); -} - -mjx-container { - text-align: left !important; -} - -.math-block { - font-size: 1.3em; -} - -.theme-light :not(pre)>code, -.theme-light pre { - background: var(--background-primary); - box-shadow: inset 0 0 0 1px var(--background-primary-alt); - border-radius: 4px; -} - -.markdown-preview-section > div h1, -.markdown-preview-section > div h2, -.markdown-preview-section > div h3, -.markdown-preview-section > div h4, -.markdown-preview-section > div h5, -.markdown-preview-section > div h6 { - margin-top: 40px; -} - -.mod-header + div h1, -.mod-header + div h2, -.mod-header + div h3, -.mod-header + div h4, -.mod-header + div h5, -.mod-header + div h6 { - margin-top: 30px; -} - -.cm-sizer > .inline-title { - margin-bottom: 20px; -} - -/* Miscellaneous */ -.theme-dark .dropdown:hover { - background-color: var(--background-modifier-form-field); -} - -.tooltip { - color: var(--text-muted); -} - -.nav-file, .nav-folder { - padding: 1px 2px; -} - -body:not(.is-grabbing) .nav-file-title.is-being-dragged, -body:not(.is-grabbing) .nav-folder-title.is-being-dragged, -.nav-file-title.is-being-dragged, -.nav-folder-title.is-being-dragged { - background-color: var(--background-primary-alt); - color: var(--nav-item-color); -} - -.view-header-title { - text-decoration: underline; - text-decoration-color: var(--text-muted); - text-underline-offset: 1.5px; -} - -.status-bar { - border-color: var(--panel-border-color); - border-width: 1px; - padding: 4px 8px; -} - -.theme-dark button.mod-warning { - --background-modifier-error: #d42020; - --background-modifier-error-hover: #b01515; -} - -.theme-light button.mod-warning { - --background-modifier-error: #f23f3f; - --background-modifier-error-hover: #d72020; -} - -/* Code syntax highlighting */ -code[class*='language-'], pre[class*='language-'] { - text-align: left !important; - white-space: pre !important; - word-spacing: normal !important; - word-break: normal !important; - word-wrap: normal !important; - line-height: 1.5 !important; - tab-size: 4 !important; - hyphens: none !important; -} - -pre[class*='language-'] { - /* Code blocks */ - padding: 1em !important; - margin: .5em 0 !important; - overflow: auto !important; -} - -:not(pre)>code[class*='language-'] { - /* Inline code */ - padding: .1em !important; - border-radius: .3em !important; - white-space: normal !important; -} - -.token.comment, .token.prolog, .token.doctype, .token.cdata, -.HyperMD-codeblock .cm-comment { - color: var(--gray-1) !important; -} - -.token.punctuation, -.HyperMD-codeblock .cm-hmd-codeblock, .HyperMD-codeblock .cm-bracket { - color: var(--gray-2) !important; -} - -.token.selector, .token.tag, -.HyperMD-codeblock .cm-tag, .HyperMD-codeblock .cm-property, .HyperMD-codeblock .cm-meta, .HyperMD-codeblock .cm-qualifier, .HyperMD-codeblock .cm-header, .HyperMD-codeblock .cm-quote, .HyperMD-codeblock .cm-hr, .HyperMD-codeblock .cm-link { - color: var(--red) !important; -} - -.token.property, .token.boolean, .token.number, .token.constant, .token.symbol, .token.attr-name, .token.deleted, -.HyperMD-codeblock .cm-number, .HyperMD-codeblock .cm-atom, .HyperMD-codeblock .cm-attribute { - color: var(--orange) !important; -} - -.token.string, .token.char, .token.attr-value, .token.builtin, .token.inserted, -.HyperMD-codeblock .cm-string, .HyperMD-codeblock .cm-builtin { - color: var(--green) !important; -} - -.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string, -.HyperMD-codeblock .cm-string-2, .HyperMD-codeblock .cm-operator { - color: var(--aqua) !important; -} - -.token.atrule, .token.keyword, -.HyperMD-codeblock .cm-keyword { - color: var(--purple) !important; -} - -.token.function, .token.macro.property, -.HyperMD-codeblock .cm-def, .HyperMD-codeblock .cm-variable { - color: var(--blue) !important; -} - -.token.class-name, -.HyperMD-codeblock .cm-variable-2, .HyperMD-codeblock .cm-variable-3 { - color: var(--yellow) !important; -} - -.token.regex, .token.important, .token.variable { - color: var(--purple) !important; -} - -.token.important, .token.bold { - font-weight: bold !important; -} - -.token.italic { - font-style: italic !important; -} - -.token.entity { - cursor: help !important; -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/manifest.json deleted file mode 100644 index e0d5d6b..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Clair de Lune", - "version": "0.0.0", - "minAppVersion": "0.16.0", - "author": "Jamie Brynes" -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/theme.css deleted file mode 100644 index 15da5a0..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Clair de Lune/theme.css +++ /dev/null @@ -1,1231 +0,0 @@ -@charset "UTF-8"; -:root { - --default-font: "Inter", sans-serif; - --font-monospace: "Jetbrains Mono", monospace; - --font-editor-size: 1em; - --font-editor-linenumbers-size: medium; - --font-h1-preview-size: 2em; - --font-h2-preview-size: 1.5em; - --font-h3-preview-size: 1.25em; - --font-h4-preview-size: 1em; - --font-h5-preview-size: 0.875em; - --font-h6-preview-size: 0.85em; - --font-math-preview-size: 1.126em; - --font-tag-preview-size: 0.9em; - --font-hover-preview-size: 0.9em; - --font-prompts-size: 0.875em; - --font-todoist-title-size: 1em; - --font-todoist-metadata-size: small; -} - -.theme-dark { - --background-code: #222436; - --background-code-preview: #222436; - --background-preview: #222436; - --background-primary: #222436; - --background-primary-alt: #222436; - --background-secondary: #1e2030; - --background-secondary-alt: #1e2030; - --background-tag: #131421; - --background-quick: #191a2a; - --background-modifier-cover: rgba(0, 0, 0, 0.8); - --background-modifier-border: #1e2030; - --background-modifier-form-field: #191a2a; - --background-modifier-form-field-highlighted: #1e2030; - --interactive-hover: #2f334d; - --interactive-accent: #444a73; - --interactive-accent-rgb: 68, 74, 115; - --interactive-accent-hover: #828bb8; - --scrollbar-bg: inherit; - --scrollbar-thumb-bg: #2f334d; - --scrollbar-active-thumb-bg: #444a73; - --table-line: #828bb8; - --text-accent: #50c4fa; - --text-accent-hover: rgba(80, 196, 250, 0.8); - --text-faint: $text-dark; - --text-highlight-bg: rgba(252, 167, 234, 0.2); - --text-muted: #a9b8e8; - --text-normal: #c8d3f5; - --text-on-accent: #e2e8fa; - --text-selection: rgba(252, 167, 234, 0.2); - --text-tag: #7a88cf; - --text-error: #ff98a4; - --file-hr: #a9b8e8; - --leaf-handle: #a9b8e8; -} - -.cm-s-obsidian { - font-family: var(--font-monospace); - color: #c0cdf3; - font-size: var(--font-editor-size); - line-height: 1.5em; -} -.cm-s-obsidian .CodeMirror-linenumber { - color: rgba(122, 136, 207, 0.5); - font-size: var(--font-editor-linenumbers-size); -} -.cm-s-obsidian .CodeMirror-gutter-elt { - width: 25px !important; -} -.cm-s-obsidian .cm-formatting, -.cm-s-obsidian .CodeMirror-foldmarker { - color: #7a88cf !important; -} -.cm-s-obsidian .cm-header { - color: #ffc777; -} -.cm-s-obsidian .cm-header-1, -.cm-s-obsidian .cm-header-2, -.cm-s-obsidian .cm-header-3, -.cm-s-obsidian .cm-header-4, -.cm-s-obsidian .cm-header-5, -.cm-s-obsidian .cm-header-6 { - font-size: var(--font-editor-size); - line-height: 1.5em; -} -.cm-s-obsidian .cm-formatting-link, -.cm-s-obsidian .cm-link { - color: #82aaff !important; -} -.cm-s-obsidian .cm-formatting-link-string, -.cm-s-obsidian .cm-url { - color: #ff966c !important; -} -.cm-s-obsidian span.cm-hmd-internal-link { - color: #c3e88d !important; -} -.cm-s-obsidian .cm-em, -.cm-s-obsidian .cm-strong { - color: #ff98a4; -} -.cm-s-obsidian span.cm-inline-code { - color: #86e1fc; - font-size: inherit; - padding: 0 !important; -} -.cm-s-obsidian pre.HyperMD-codeblock { - line-height: 1.5em; - font-size: var(--font-editor-size); -} -.cm-s-obsidian span.cm-hmd-codeblock, -.cm-s-obsidian span.cm-hmd-indented-code, -.cm-s-obsidian span.cm-math, -.cm-s-obsidian pre.HyperMD-codeblock { - color: #828bb8; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-keyword, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-keyword, -.cm-s-obsidian span.cm-math span.cm-keyword, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-keyword { - color: #c099ff !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-def, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-def, -.cm-s-obsidian span.cm-math span.cm-def, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-def { - color: #c8d3f5 !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-variable, -.cm-s-obsidian span.cm-hmd-codeblock span.cm-variable-2, -.cm-s-obsidian span.cm-hmd-codeblock span.cm-variable-3, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-variable, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-variable-2, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-variable-3, -.cm-s-obsidian span.cm-math span.cm-variable, -.cm-s-obsidian span.cm-math span.cm-variable-2, -.cm-s-obsidian span.cm-math span.cm-variable-3, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-variable, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-variable-2, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-variable-3 { - color: #65bcff !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-operator, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-operator, -.cm-s-obsidian span.cm-math span.cm-operator, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-operator { - color: #86e1fc !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-number, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-number, -.cm-s-obsidian span.cm-math span.cm-number, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-number { - color: #ff966c !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-string, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-string, -.cm-s-obsidian span.cm-math span.cm-string, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-string { - color: #c3e88d !important; -} -.cm-s-obsidian span.cm-hmd-codeblock span.cm-comment, -.cm-s-obsidian span.cm-hmd-indented-code span.cm-comment, -.cm-s-obsidian span.cm-math span.cm-comment, -.cm-s-obsidian pre.HyperMD-codeblock span.cm-comment { - color: #7a88cf !important; -} -.cm-s-obsidian span.cm-quote { - font-style: italic; -} -.cm-s-obsidian span.cm-comment { - color: #444a73 !important; - font-style: italic; -} -.cm-s-obsidian .cm-hmd-frontmatter.cm-def { - color: rgba(195, 232, 141, 0.8) !important; -} -.cm-s-obsidian .cm-hmd-frontmatter.cm-atom { - color: #ff966c !important; -} - -.cm-s-obsidian .hmd-fold-html-stub, -.cm-s-obsidian .hmd-fold-code-stub, -.cm-s-obsidian.CodeMirror .HyperMD-hover > .HyperMD-hover-content code, -.cm-s-obsidian .cm-formatting-hashtag, -.cm-s-obsidian .cm-inline-code, -.cm-s-obsidian .HyperMD-codeblock, -.cm-s-obsidian .HyperMD-hr, -.cm-s-obsidian .cm-hmd-frontmatter, -.cm-s-obsidian .cm-hmd-orgmode-markup, -.cm-s-obsidian .cm-formatting-code, -.cm-s-obsidian .cm-math, -.cm-s-obsidian span.hmd-fold-math-placeholder, -.cm-s-obsidian .CodeMirror-linewidget kbd, -.cm-s-obsidian .hmd-fold-html kbd { - font-family: var(--font-monospace); -} - -.cm-s-obsidian div.HyperMD-codeblock-begin-bg { - border-top: none; -} - -.cm-s-obsidian div.HyperMD-codeblock-bg { - border-left: none; - border-right: none; -} - -.cm-s-obsidian div.HyperMD-codeblock-end-bg { - border-bottom: none; -} - -.markdown-preview-view blockquote { - padding: 10px; - border: unset; - border-left: 3px solid #444a73; - margin-left: 1em; - color: #828bb8; -} - -.markdown-preview-view ul > li.task-list-item { - margin-left: 0em; - text-indent: unset; -} -.markdown-preview-view ul > li.task-list-item input[type=checkbox] { - appearance: none; - -webkit-appearance: none; - border-radius: 50%; - border: 1px solid #131421 !important; - background-color: #828bb8 !important; - padding: 0; - filter: none; - width: 18px; - height: 18px; - position: relative; - top: 6px; - line-height: 0; - margin-right: 5px; - margin-left: -27px; -} -.markdown-preview-view ul > li.task-list-item input[type=checkbox]:hover { - background-color: rgba(130, 170, 255, 0.5) !important; -} -.markdown-preview-view ul > li.task-list-item input[type=checkbox]:focus { - outline: none; - background-color: #82aaff !important; -} -.markdown-preview-view ul > li.task-list-item.is-checked input[type=checkbox] { - background-color: #82aaff !important; - background-position: center; - background-size: 70%; - background-repeat: no-repeat; - background-image: url('data:image/svg+xml; utf8, '); -} - -.markdown-preview-view :not(pre) > code { - color: #c8d3f5; - background-color: #191a2a; - border: 1px solid #131421; - font-family: var(--font-monospace); - padding: 0.2em 0.4em; - border-radius: 6px; -} -.markdown-preview-view pre { - padding: 16px !important; - line-height: 1.45 !important; - border: 1px solid #131421 !important; - border-radius: 6px !important; - background-color: #191a2a !important; - font-family: var(--font-monospace) !important; -} -.markdown-preview-view pre code { - background-color: unset; - color: #c0cdf3; -} -.markdown-preview-view .token.keyword { - color: #c099ff; -} -.markdown-preview-view .token.class-name { - color: #ffc777; -} -.markdown-preview-view .token.operator { - color: #86e1fc; -} -.markdown-preview-view .token.number { - color: #ff966c; -} -.markdown-preview-view .token.punctuation { - color: #e2e8fa; -} -.markdown-preview-view .token.function { - color: #65bcff; -} -.markdown-preview-view .token.string { - color: #c3e88d; -} -.markdown-preview-view .token.comment { - color: #7a88cf; -} -.markdown-preview-view .token.macro { - color: #82aaff; -} - -.markdown-preview-view .markdown-embed { - margin: 0; - border: none; -} -.markdown-preview-view .markdown-embed .markdown-preview-view { - padding: 0px; -} -.markdown-preview-view .markdown-embed-link { - top: 12px; - right: 12px; - color: #7a88cf; -} -.markdown-preview-view .markdown-embed-link:hover { - color: #86e1fc; -} - -.markdown-preview-view h1, -.markdown-preview-view h2, -.markdown-preview-view h3, -.markdown-preview-view h4, -.markdown-preview-view h5, -.markdown-preview-view h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; - color: #c8d3f5; - display: block; - align-items: center; - white-space: pre-wrap; -} -.markdown-preview-view h1 { - font-size: var(--font-h1-preview-size); -} -.markdown-preview-view h2 { - font-size: var(--font-h2-preview-size); -} -.markdown-preview-view h3 { - font-size: var(--font-h3-preview-size); -} -.markdown-preview-view h4 { - font-size: var(--font-h4-preview-size); -} -.markdown-preview-view h5 { - font-size: var(--font-h5-preview-size); -} -.markdown-preview-view h6 { - font-size: var(--font-h6-preview-size); - color: #a9b8e8; -} -.markdown-preview-view h1, -.markdown-preview-view h2 { - padding-bottom: 0.3em; - border-bottom: 1px solid rgba(122, 136, 207, 0.25); -} -.markdown-preview-view .heading-collapse-indicator { - color: #7a88cf; -} - -.popover.hover-popover { - max-height: 500px; - min-height: 200px; - width: 600px; -} -.popover.hover-popover .markdown-embed { - height: unset; -} -.popover.hover-popover > .markdown-embed { - height: 500px; - font-size: var(--font-hover-preview-size); -} -.popover.hover-popover > .markdown-embed .markdown-embed-link { - color: #7a88cf; -} -.popover.hover-popover > .markdown-embed .markdown-embed-link:hover { - color: #86e1fc; -} - -.markdown-preview-view a { - color: #82aaff; - text-decoration: none; -} -.markdown-preview-view a:hover { - text-decoration: underline; -} -.markdown-preview-view a.external-link { - background-image: none; - background-size: 0px; - padding-right: 0px; -} -.markdown-preview-view a.internal-link { - text-decoration: none; - color: #c3e88d; -} -.markdown-preview-view a.internal-link:hover { - text-decoration: underline; -} -.markdown-preview-view a.tag { - color: #7a88cf; -} - -.markdown-preview-view ul ul, -.markdown-preview-view ol ol, -.markdown-preview-view ul ol, -.markdown-preview-view ol ul { - padding-inline-start: 30px; -} -.markdown-preview-view ul:not(.contains-task-list) ul:not(.contains-task-list) { - border-left: 1px solid rgba(122, 136, 207, 0.25); - margin-left: -12px; - padding-inline-start: 42px; -} -.markdown-preview-view ul li, -.markdown-preview-view ol li { - margin: 5px 0; -} -.markdown-preview-view ul { - list-style: none; -} -.markdown-preview-view ul li:not(.task-list-item)::before { - content: "•"; - color: #7a88cf; - font-weight: bold; - display: inline-block; - width: 1em; - margin-left: -1em; -} -.markdown-preview-view .list-collapse-indicator { - color: #7a88cf; -} -.markdown-preview-view li > p { - display: inline; -} - -span.math.math-block { - font-size: var(--font-math-preview-size); -} - -.frontmatter-container { - background-color: #191a2a; - border: none; -} -.frontmatter-container .frontmatter-collapse-indicator { - color: #7a88cf; -} -.frontmatter-container .frontmatter-section { - align-items: center; -} -.frontmatter-container .frontmatter-section-label::after { - content: ":"; -} - -.node rect, -.node circle, -.node ellipse, -.node path, -.node polygon, -rect.actor, -.labelBox { - fill: #2f334d !important; - stroke: #444a73 !important; -} - -text.actor { - color: #c8d3f5; -} - -.loopLine { - stroke: #444a73 !important; -} - -rect.note, -.statediagram-note rect { - fill: rgba(255, 199, 119, 0.3) !important; - stroke: rgba(255, 199, 119, 0.75) !important; -} - -.statediagram-cluster .outer, -.statediagram-cluster .inner { - stroke: #444a73 !important; -} - -.edge-thickness-normal { - stroke: #444a73 !important; -} - -.section0, -.section2 { - fill: #222436 !important; - opacity: 1 !important; -} - -.section1, -.section3 { - fill: #2f334d !important; - opacity: 1 !important; -} - -.task0, -.task1, -.task2, -.task3 { - fill: #191a2a !important; - stroke: #191a2a !important; -} - -.done0, -.done1, -.done2, -.done3 { - fill: rgba(195, 232, 141, 0.1) !important; - stroke: rgba(195, 232, 141, 0.75) !important; -} - -.active0, -.active1, -.active2, -.active3 { - fill: rgba(255, 199, 119, 0.1) !important; - stroke: rgba(255, 199, 119, 0.75) !important; -} - -.doneCrit0, -.doneCrit1, -.doneCrit2, -.doneCrit3 { - fill: rgba(255, 152, 164, 0.05) !important; - stroke: rgba(255, 152, 164, 0.25) !important; - shape-rendering: unset !important; -} - -.activeCrit0, -.activeCrit1, -.activeCrit2, -.activeCrit3 { - fill: rgba(255, 117, 127, 0.1) !important; - stroke: rgba(255, 117, 127, 0.75) !important; -} - -.crit0, -.crit1, -.crit2, -.crit3 { - fill: rgba(255, 150, 108, 0.1) !important; - stroke: rgba(255, 150, 108, 0.75) !important; -} - -.classGroup rect, -.classGroup line { - fill: #2f334d !important; - stroke: #444a73 !important; -} - -path.relation { - stroke: #444a73 !important; -} - -.classLabel rect { - fill: rgba(0, 0, 0, 0) !important; -} -.classLabel text { - fill: #c8d3f5 !important; -} - -#extensionStart, -#compositionStart, -#aggregationStart, -#dependencyStart, -#extensionEnd, -#compositionEnd, -#aggregationEnd, -#dependencyEnd, -#statediagram-barbEnd { - fill: #444a73 !important; -} - -.commit { - fill: rgba(255, 199, 119, 0.25) !important; - stroke: rgba(255, 199, 119, 0.75) !important; -} - -.internal-query { - border: none; - background-color: #191a2a; - border-radius: 10px; - padding: 10px; -} -.internal-query .internal-query-header { - justify-content: inherit; - margin-bottom: 10px; -} -.internal-query .internal-query-header-title { - color: #7a88cf; -} -.internal-query .internal-query-header-title::before, .internal-query .internal-query-header-title::after { - content: "" !important; -} -.internal-query .search-result .search-result-collapse-indicator { - color: #7a88cf; -} -.internal-query .search-result .search-result-file-matches { - border-bottom: none; -} -.internal-query .search-result .search-result-file-match::before { - height: 0px; -} -.internal-query .search-result .search-result-file-match:hover { - background-color: #2f334d; -} - -.markdown-preview-view table { - border: 3px solid #444a73; -} -.markdown-preview-view thead { - border-bottom: 3px solid #444a73; - color: #7a88cf; -} -.markdown-preview-view tbody { - color: #c0cdf3; -} -.markdown-preview-view th { - background-color: #1e2030; -} -.markdown-preview-view tr td:not(:last-child), -.markdown-preview-view tr th:not(:last-child) { - border-right: 1px solid #2f334d; -} - -.tag { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; -} - -.tag[href="#drafting"] { - font-size: 0; - padding: 0; -} -.tag[href="#drafting"]:after { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; - content: "◩ DRAFTING"; -} - -.tag[href="#complete"] { - font-size: 0; - padding: 0; -} -.tag[href="#complete"]:after { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; - content: "◼ COMPLETE"; -} - -.tag[href="#archived"] { - font-size: 0; - padding: 0; -} -.tag[href="#archived"]:after { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; - content: "◻ ARCHIVED"; -} - -.tag[href="#seedling"] { - font-size: 0; - padding: 0; -} -.tag[href="#seedling"]:after { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; - content: "🌱 SEEDLING"; -} - -.tag[href="#evergreen"] { - font-size: 0; - padding: 0; -} -.tag[href="#evergreen"]:after { - font-size: var(--font-tag-preview-size); - font-weight: 900; - background-color: #131421; - padding: 3px 5px; - border-radius: 5px; - letter-spacing: -0.05ch; - content: "🌲 EVERGREEN"; -} - -.markdown-preview-view { - color: #c0cdf3; -} -.markdown-preview-view hr { - border-color: rgba(122, 136, 207, 0.3); -} -.markdown-preview-view del { - color: #7a88cf; -} - -@media print { - .markdown-preview-view h1, -.markdown-preview-view h2, -.markdown-preview-view h3, -.markdown-preview-view h4, -.markdown-preview-view h5, -.markdown-preview-view h6 { - color: #131421 !important; - } -} -.modal button:not(.mod-cta):not(.mod-warning), -.modal.mod-settings button:not(.mod-cta):not(.mod-warning), -button:not(.mod-cta):not(.mod-warning) { - background-color: #191a2a; - border: 1px solid #131421; -} -.modal button:not(.mod-cta):not(.mod-warning):hover, -.modal.mod-settings button:not(.mod-cta):not(.mod-warning):hover, -button:not(.mod-cta):not(.mod-warning):hover { - background-color: #1e2030; -} -.modal button.mod-warning, -.modal.mod-settings button.mod-warning, -button.mod-warning { - border: 1px solid #ff757f; - color: #ff757f; - background-color: #191a2a; -} -.modal button.mod-warning:hover, -.modal.mod-settings button.mod-warning:hover, -button.mod-warning:hover { - color: #ff98a4; - background-color: #1e2030; -} -.modal button.mod-cta, -.modal.mod-settings button.mod-cta, -button.mod-cta { - border: 1px solid #7a88cf; - color: #e2e8fa; - background-color: #191a2a; -} -.modal button.mod-cta:hover, -.modal.mod-settings button.mod-cta:hover, -button.mod-cta:hover { - color: #e2e8fa; - background-color: #1e2030; -} - -.view-header { - background-color: #1e2030; - border-bottom: 1px solid #131421; -} -.view-header .view-actions { - background-color: #1e2030; -} -.view-header .view-header-title, -.view-header .view-action { - color: rgba(169, 184, 232, 0.75); -} - -.workspace-leaf.mod-active .view-header { - background-color: #222436; - color: #e2e8fa; - border-bottom: 1px solid #c3e88d; -} -.workspace-leaf.mod-active .view-header .view-action { - color: #e2e8fa; -} -.workspace-leaf.mod-active .view-header .view-actions { - background-color: #222436; -} - -body.plugin-sliding-panes .mod-root .workspace-leaf { - box-shadow: rgba(0, 0, 0, 0.25) 0px 0px 10px 10px !important; -} -body.plugin-sliding-panes .mod-root .workspace-leaf.mod-active .view-header { - border-right: 1px solid rgba(195, 232, 141, 0.5) !important; -} - -.view-header-icon { - color: rgba(68, 74, 115, 0.5); -} -.view-header-icon:hover { - color: #828bb8; -} - -.mod-root > .nav-folder-title { - display: none; -} - -.nav-file-title.is-active { - background-color: #444a73; -} - -body:not(.is-grabbing) .nav-file-title:hover, -body:not(.is-grabbing) .nav-folder-title:hover { - background-color: #2f334d; -} - -.nav-folder-title.is-being-dragged-over { - background-color: #2f334d; - border: 1px solid #444a73; -} - -.nav-folder-collapse-indicator { - background-color: unset !important; -} - -.nav-folder-children > .nav-file, -.nav-folder-children > .nav-folder { - border-left: 1px solid #2f334d; -} - -.mod-root > .nav-folder-children > .nav-file, -.mod-root > .nav-folder-children > .nav-folder { - border-left: none; -} - -.graph-view.color-line { - color: #7a88cf; -} -.graph-view.color-fill { - color: #82aaff; -} -.graph-view.color-text { - color: rgba(200, 211, 245, 0.8); -} -.graph-view.color-fill-highlight { - color: #3e68d7; -} -.graph-view.color-line-hightlight { - color: #c3e88d; -} - -input, -input[type=text], -input[type=search], -input[type=email], -input[type=password], -input[type=number], -textarea { - border: 1px #131421; - color: #c8d3f5; - font-family: var(--font-monospace); -} -input:hover, -input[type=text]:hover, -input[type=search]:hover, -input[type=email]:hover, -input[type=password]:hover, -input[type=number]:hover, -textarea:hover { - background: var(--background-modifier-form-field); - border: 1px solid var(--interactive-accent); -} - -.menu-item:hover { - background-color: #2f334d; -} - -.collapsible-item-self.is-clickable:hover { - background-color: #2f334d; -} - -.collapsible-item-children { - border-left: 1px solid #2f334d; -} - -.prompt { - background-color: #1e2030; - border: 1px solid #131421; -} -.prompt .prompt-input { - font-size: var(--font-prompt-size); -} -.prompt .prompt-results .suggestion-item { - padding: 8px 10px 8px 34px; - font-size: var(--font-prompt-size); - margin-right: 2px; -} -.prompt .prompt-results .suggestion-item.is-selected { - background-color: #2f334d; -} -.prompt .prompt-instructions { - border-top: 1px solid #131421; - color: #7a88cf; -} - -.vertical-tab-header, -.vertical-tab-nav-item { - background-color: #1e2030; -} - -.vertical-tab-nav-item.is-active { - border-left-color: #50c4fa; -} - -.checkbox-container { - background-color: #191a2a; - border: 1px solid #131421; -} - -.checkbox-container.is-enabled { - background-color: rgba(195, 232, 141, 0.8); -} - -.vertical-tab-content .setting-item:not(:first-child) { - border-top: 1px solid #191a2a; -} - -.dropdown { - background-color: #191a2a; - background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23c8d3f5%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"); -} - -.dropdown:hover { - background-color: #1e2030; -} - -.suggestion-container { - background-color: #1e2030; - border: 1px solid #131421; -} -.suggestion-container .suggestion { - max-height: 450px; -} -.suggestion-container .suggestion .suggestion-item { - padding: 8px 10px 8px 34px; - font-size: var(--font-preview-size); - margin-right: 2px; -} -.suggestion-container .suggestion .suggestion-item .suggestion-content .suggestion-heading-level { - background-color: #131421; - color: rgba(255, 199, 119, 0.7); -} -.suggestion-container .suggestion .suggestion-item.is-selected { - background-color: #2f334d; -} -.suggestion-container .suggestion .suggestion-item .suggestion-note { - color: #7a88cf; - font-style: italic; -} - -.titlebar { - background-color: #131421; -} - -.titlebar-button { - opacity: 1; -} - -.tree-item-self .collapse-icon { - color: #7a88cf; - opacity: 0.5; -} -.tree-item-self.is-clickable:hover { - background-color: #2f334d; -} - -.tree-item-children { - margin-left: 10px; -} -.tree-item-children > .tree-item { - border-left: 1px solid #2f334d; - padding-left: 10px; -} - -.tree-item-flair { - background-color: #444a73; - text-align: center; -} - -.search-result-file-match { - background-color: #191a2a; - border: 1px solid #131421; - padding: 15px; - margin-top: 3px; - border-radius: 5px; -} -.search-result-file-match:hover { - background-color: #191a2a; - border: 1px solid var(--interactive-accent); - cursor: pointer; -} - -.tooltip { - background-color: #131421; -} - -.tooltip .tooltip-arrow { - border-color: #131421 !important; -} - -.workspace-split, -.workspace-ribbon, -.workspace-ribbon.mod-left.is-collapsed { - border-right: 1px solid #191a2a; -} - -.workspace-ribbon.mod-right.is-collapsed { - border-left: none; -} - -.status-bar { - border-top: 1px solid #191a2a; -} - -.status-bar, -.workspace-ribbon, -.workspace-ribbon.is-collapsed, -.workspace-split.mod-left-split .workspace-tabs, -.workspace-split.mod-left-split .workspace-tabs .workspace-leaf, -.workspace-split.mod-right-split .workspace-tabs .workspace-leaf, -.workspace-leaf-resize-handle { - background-color: #1e2030; -} - -.workspace-tab-container-before, -.workspace-tab-container-after { - display: none; -} - -.workspace-split .workspace-tabs:not(:first-child) { - border-top: 1px solid #191a2a; -} - -.workspace-tab-header-container { - height: 40px; - padding: 0; - margin-top: 4px; - margin-left: 4px; -} - -.workspace-tab-container-inner { - border-radius: 10px; - background-color: #131421 !important; - border: 2px solid #131421; - display: flex; - justify-content: center; - align-items: center; - stroke-width: 0; -} - -.workspace-tab-header { - background-color: transparent; - border-radius: 10px !important; -} - -.workspace-tab-header-inner { - padding: 10px; -} - -.workspace-tab-header-inner-icon { - display: flex; - justify-content: center; - align-items: center; -} - -.workspace-tab-header.is-before-active, -.workspace-tab-header.is-after-active { - background-color: transparent; -} -.workspace-tab-header.is-before-active .workspace-tab-header-inner, -.workspace-tab-header.is-after-active .workspace-tab-header-inner { - background-color: transparent; -} - -/* Support for https://github.com/liamcain/obsidian-calendar-plugin */ -#calendar-container { - --color-text-today: #c3e88d; - --color-text-weeknum: rgba(122, 136, 207, 0.8); - --color-arrow: #7a88cf; - --color-dot: rgba(195, 232, 141, 0.5); -} -#calendar-container .year { - color: #7a88cf; -} - -.todoist-query-title { - display: inline !important; -} - -.todoist-refresh-button { - display: inline; - float: right; - margin-left: 8px; - padding: 3px 10px; - background-color: #2f334d; -} -.todoist-refresh-button:hover { - background-color: #444a73; -} - -.todoist-refresh-spin { - animation: spin 1s linear infinite; -} - -@-webkit-keyframes spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -.markdown-preview-view ul > li.task-list-item .todoist-p1 > input[type=checkbox] { - border: 1px solid #ff757f !important; - background-color: rgba(255, 117, 127, 0.25) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p1 > input[type=checkbox]:hover { - background-color: rgba(255, 117, 127, 0.5) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p2 > input[type=checkbox] { - border: 1px solid #ffc777 !important; - background-color: rgba(255, 199, 119, 0.25) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p2 > input[type=checkbox]:hover { - background-color: rgba(255, 199, 119, 0.5) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p3 > input[type=checkbox] { - border: 1px solid #65bcff !important; - background-color: rgba(101, 188, 255, 0.25) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p3 > input[type=checkbox]:hover { - background-color: rgba(101, 188, 255, 0.5) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p4 > input[type=checkbox] { - border: 1px solid #b4c2f0 !important; - background-color: rgba(180, 194, 240, 0.25) !important; -} -.markdown-preview-view ul > li.task-list-item .todoist-p4 > input[type=checkbox]:hover { - background-color: rgba(180, 194, 240, 0.5) !important; -} - -.task-metadata { - font-size: var(--font-todoist-metadata-size); - color: #7a88cf; - margin-left: unset !important; -} - -.task-metadata > * { - margin-right: 30px; -} - -.task-date.task-overdue { - color: rgba(255, 152, 164, 0.75) !important; -} - -.task-calendar-icon, -.task-project-icon, -.task-labels-icon { - vertical-align: middle; - height: 17px; - width: 17px; -} - -.todoist-project .todoist-project { - margin-left: 20px; -} - -.todoist-section { - margin-left: 20px; -} - -.todoist-project .todoist-project-title { - font-weight: 700; - margin-block-end: 0px; -} - -.todoist-section .todoist-section-title { - font-size: var(--font-todoist-title-size); - color: #7a88cf; - font-weight: 700; - margin-block-end: 0px; -} - -.todoist-error { - border: 1px solid #ff98a4; - background-color: rgba(255, 152, 164, 0.05); - padding: 1em 1em; - margin: 1em 0px; -} -.todoist-error p { - margin: 0 0 1em 0; - font-weight: 600; -} -.todoist-error code { - background-color: unset !important; - padding: unset !important; - margin: unset !important; -} - -.todoist-success { - border: 1px solid #c3e88d !important; - background-color: rgba(195, 232, 141, 0.05); - padding: 1em 1em !important; - margin: 1em 0px; -} -.todoist-success p { - margin: 0; - font-weight: 600; -} - -.priority-container .priority-1 { - color: #ff98a4; -} -.priority-container .priority-2 { - color: #ffc777; -} -.priority-container .priority-3 { - color: #65bcff; -} -.priority-container .priority-4 { - color: #b4c2f0; -} - -/*# sourceMappingURL=obsidian.css.map */ diff --git a/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/manifest.json deleted file mode 100644 index 16b76d6..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Cyber Glow", - "version": "8.2.3", - "minAppVersion": "1.3.0", - "author": "TheEmperorArt", - "authorUrl": "https://github.com/ArtexJay/Obsidian-CyberGlow" -} - diff --git a/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/theme.css deleted file mode 100644 index 3a60a95..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Cyber Glow/theme.css +++ /dev/null @@ -1,4170 +0,0 @@ -/* Cyber Glow for Obsidian built by TheEmperorArt version 8.x.x -/* Please give credits if you modify or take parts for your own theme*/ -/*===================== Style Settings ======================*/ -/* @settings -name: Cyber Glow Tweakbox -id: CG -collapsed: false -settings: - - - id: CG-workspace - title: Background Controls - type: heading - level: 1 - description: Background and Wallpaper Controls - collapsed: true - - - id: CG-workspace-background - title: Enable Workspace Backgound - description: Enable Custom Wallpaper background - type: class-toggle - default: CG-workspace-background-image-custom - - - id: CG-workspace-background-image - title: Select Background Image - description: Select Custom to use your custom links or paths to your wallpaper in "Custom Workspace Background Image". (Author's) - type: class-select - allowEmpty: false - default: CG-workspace-background-image-obsidianbg - options: - - - label: CG v8 (chesterocampo - Papillon Kotetsu) - value: CG-workspace-background-image-obsidianbg - - - label: Custom - value: CG-workspace-background-image-custom - - - id: CG-workspace-background-image-custom-option - title: Custom Workspace Background Image - description: Add your wallpaper. Paste the entire link to the image including "https://" -> url("your link here"). Local file links are no longer supported by Obsidian and Style Settings haven't been updated to support any alternatives. - type: variable-text - default: url("") - value: CG-workspace-background-image-custom - - - id: CG-workspace-background-workspace-slider - title: Container opacity - description: Suggestion Increase opacity a bit on Dark mode, decrease opacity on light mode. - type: variable-number-slider - min: 0.10 - max: 1 - step: 0.01 - default: 0.45 - - - id: CG-workspace-background-blur - title: Background blur - description: Level of blurryness - type: variable-number-slider - min: 0 - max: 20 - step: 1 - default: 15 - format: px - - - id: CG-workspace-background-brightness - title: Background brightness - description: Suggestion Increase brightness on Dark mode, decrease brightness on light mode. - type: variable-number-slider - min: 0 - max: 3 - step: 0.01 - default: 1.15 - - - id: CG-workspace-background-saturation - title: Background Saturation - description: Increase/Decrease the color vibrancy of the background image. - type: variable-number-slider - min: 0 - max: 4 - step: 0.01 - default: 2 - - - id: CG-workspace-background-contrast - title: Background Contrast - description: Increase/Decrease the contrast of the background image. - type: variable-number-slider - min: 40 - max: 200 - step: 1 - default: 100 - format: "%" - - - id: CG-Workspace - title: Workspace Controls - type: heading - description: Phone Header Folder Path, - level: 1 - collapsed: true - - - id: CG-header-crumbs - title: Disable Phone's Header Folder Path - description: The folder paths in the header easily hides the note's title. Toggle off if you want the folder path on phone. - default: true - type: class-toggle - - - title: Disable Full Status-bar - description: Returns Status-bar to a hover state - id: CG-Fullstatus-off - type: class-toggle - default: false - - - id: CG-workspace-sbt - title: Left Sidebar Toggle - type: class-select - allowEmpty: false - description: Pick the Icon/image, be sure that all custom images/gifs are square aspect. - default: CG-MObsidian-sbt - options: - - - label: New Obsidian Logo - value: CG-MObsidian-sbt - - - label: Classic Obsidian Logo - value: CG-Obsidian-sbt - - - label: Custom - value: CG-Custom-sbt - - - id: CG-workspace-custom-sbt - title: Custom Left Sidebar Toggle - description: Add your custom Left Toggle. Paste the entire link to the image including "https://" -> url("your link here"), Obsidian no longer supports local links. - type: variable-text - default: url("") - value: CG-Custom-sbt - - - id: CG-Note - title: Note Controls - type: heading - description: Custom Checkboxes, Line Width, Codeblocks Controls, Signature/Cite font, Base Font - level: 1 - collapsed: true - - - id: CG-custom-checkbox - title: Custom Checkbox - description: Enable custom checkboxes for checkbox customization - default: true - type: class-toggle - - - id: CG-line-width - title: Readable line width - description: The maximum line width in rem (unit relative to Appearance -> Font Size) - type: variable-number-slider - default: 40 - min: 30 - max: 70 - step: 1 - format: 'rem' - - - title: Disable Codeblocks Gutter - description: Remove line numbers and additional styling to code blocks - id: no-codeblock-line-numbers - type: class-toggle - default: false - - - id: CG-cite-font - title: Cite/Signature Font (Used in blockquotes and quote callouts) - description: Get Font from Cyber Glow's Github page. Recommend using a cursive font style - type: variable-text - default: 'Edwardian Script ITC' - - - id: default-font - title: Base font (UI and notes font) WIP⚠️ - description: Get Font from Cyber Glow's Github page. For System Default type Inter. - type: variable-text - default: 'Quantico' - - - id: headings - title: Heading Controls - type: heading - description: Headings Font and Size and Dividing Line Controls - level: 1 - collapsed: true - - - id: CG-hr - title: Heading Dividing Line (---) - type: class-select - allowEmpty: false - default: CG-NewObsidian-hr - options: - - - label: New Obsidian Outline - value: CG-NewObsidian-hr - - - label: CG Old Default - value: CG-OG-hr - - - label: Classic Obsidian Outline - value: CG-ClassicObsidian-hr - - - label: Windows - value: CG-Windows-hr - - - label: Apple - value: CG-Apple-hr - - - id: CG-workspace-custom-sbt - title: Custom Left Sidebar Toggle - description: Add your custom Left Toggle. Paste the entire link to the image including "https://" -> url("your link here") or paste the local file location. Be sure to use "/" instead of "\" on Windows. - type: variable-text - default: url("app://local/") - value: CG-Custom-sbt - - - id: title-heading - title: Title Heading (H1) WIP ⚠️ - description: Get Font from Cyber Glow's Github page. For System Default type Inter. - type: variable-text - default: 'Space Wham' - - - id: mini-header-hide - title: Hide Header Indication - description: Enabling this will hide the small header indicator next to headers, such as H1, H2, etc. - type: class-toggle - default: false - - - id: h1-size - title: H1 font size - description: Enter Header 1 Font - type: variable-text - default: 2.1em - - - id: major-heading - title: Major Heading font (H2) WIP ⚠️ - description: Get Font from Cyber Glow's Github page. For System Default type Inter - type: variable-text - default: 'Quantico' - - - id: h2-size - title: H2 font size - description: Enter Header 2 Font - type: variable-text - default: 1.85em - - - id: minor-heading - title: Minor Headings font (H3-6) WIP⚠️ - description: Get Font from Cyber Glow's Github page. For System Default type Inter. - type: variable-text - default: 'Oxanium' - - - id: h3-size - title: H3 font size - description: Enter Header 3 Font - type: variable-text - default: 1.65em - - - id: h4-size - title: H4 font size - description: Enter Header 4 Font - type: variable-text - default: 1.45em - - - id: h5-size - title: H5 font size - description: Enter Header 5 Font - type: variable-text - default: 1.25em - - - id: h6-size - title: H6 font size - description: Enter Header 6 Font - type: variable-text - default: 1.25em - - - id: CG-Color - title: Color Picker - type: heading - description: Change Colors of certain elements - level: 1 - collapsed: true - - - title: Accent Text Color - id: custom-accent - type: variable-color - format: hsl-values - default: 'hsl(170, 49%, 32%)' - - - title: Inactive Tab Color - id: inactivetab-color - type: variable-color - format: hsl-values - default: 'hsl(170, 49%, 32%)' - - - title: Tab & Icon Color - id: activetab-color - type: variable-color - format: hsl-values - default: 'hsl(170, 49%, 32%)' - - - title: Active Note Title Color - id: active-title - type: variable-color - format: hsl-values - default: 'hsl(170, 49%, 32%)' - - - title: Inactive Note Title Color - id: Inactive-title - type: variable-color - opacity: true - format: hsl - default: 'hsl(170, 49%, 32%)' - - - title: Outgoing link color - id: outlink-color - type: variable-color - format: hex - default: '#FFA500' - - - title: Internal link color - id: inlink-color - type: variable-color - format: hex - default: '#ffc400' - - - title: Bullet List Color - id: bulletlist-color - type: variable-color - format: hex - default: '#21B59C' - - - title: Header 1 Color - id: h1-glow - type: variable-color - format: hex - default: '#21B59C' - - - title: Header 2 Color - id: h2-glow - type: variable-color - format: hex - default: '#0cd0d0' - - - title: Header 3 Color - id: h3-glow - type: variable-color - format: hex - default: '#00d200' - - - title: Header 4 Color - id: h4-glow - type: variable-color - format: hex - default: '#ffc400' - - - title: Header 5 Color - id: h5-glow - type: variable-color - format: hex - default: '#FF0000' - - - title: Header 6 Color - id: h6-glow - type: variable-color - format: hex - default: '#FF00FF' - - - title: Change Blockquote color - id: block-color - type: variable-color - format: hsl - default: 'hsl(170, 49%, 32%)' - - - id: CG-other - title: Other Controls - type: heading - description: Stacked tabs width - level: 1 - collapsed: true - - - id: GC-stacked-width - title: Stacked tabs header width - description: If the stacked tab looks weird, after altering the width, please change tabs first or open a new tab to "refresh" the theme - type: variable-number-slider - min: 20 - max: 70 - step: 1 - default: 35 - format: px -*/ -@font-face { - font-family: "OxaniumFira"; - src: url(data:application/octet-stream;base64,AAEAAAAQAQAABAAAR0RFRg4BEp8AAYbcAAAANEdQT1NNf0wDAAGHEAAAGkBHU1VCQczx9AABoVAAAF20T1MvMhd5EocAAAGIAAAAYFNUQVR4kWzeAAH/BAAAAC5jbWFwLPCWDAAAFOAAACr2Z2FzcAAAABAAAYbUAAAACGdseWb8bZfKAABJYAABDTpoZWFkHbNgeQAAAQwAAAA2aGhlYQMPBIcAAAFEAAAAJGhtdHiNLbOMAAAB6AAAEvhsb2NhSxOMRwAAP+AAAAmAbWF4cATWAQMAAAFoAAAAIG5hbWUSryzsAAFWnAAAASJwb3N0q1C4fgABV8AAAC8ScHJlcGgGjIUAAD/YAAAABwABAAAABQCDr0e2xV8PPPUAAwfQAAAAAOGbKiAAAAAA4azrkvId/BgJMwlgAAAABwACAAAAAAAAAAEAAAe8/XwAAAlg8h345wkzAAcAAAAAAAAAAAAAAAAAAAS9AAEAAAS/AJcACQBoAAoAAQAAAAAAAAAAAAAAAAADAAMABASiAZAABQAABPQEkgAAAJIE9ASSAAACqwAyAngAAAILBQkFAAACAASgAADvEgGo+wAAAAAAAAAAQ1REQgGAAA3//we8/XwAAAh0A+hgAACbndUAAAQdBWEAAAAgAAUElAC6BOwAKATsACgE7AAoBOwAKATsACgE7AAoBOwAKATsACgE7AAoBOwAKAb0ACgG9AAoBQgAtATEAKAExACgBMQAoATEAKAExACgBMQAoAVQALQFZAAoBVAAtAVkACgEnAC0BJwAtAScALQEnAC0BJwAtAScALQEnAC0BJwAtAScALQEnAC0BHQAtAU8AKAFPACgBTwAoAU8/XUFPACgBXgAtASwAAQFeAC0AhAAtASwABcCEAC0AhAAIwIQ//4CEAC0AhAAsgIQALQCEAAGAhD/pwIQ/+sEuAB4BLgAeATsALQE7P1lBCwAtAQsAJwELAC0BCz9dwQsALQEQAAUBr4AtAWgALQFoAC0BaAAtAWg/TgEsACnBaAAtAV4AKAFeACgBXgAoAV4AKAFeACgBXgAoAV4AKAFeACgBXgAoAV4AKAFeACgB4QAoATsALQE7AC0BXgAoAUAALQFAAC0BQAAtAUA/twEiAB4BIgAeASIAHgEiAB4BIgAeASI/vUEsACTBKAAMASwAFAEoAAwBKAAMASg/wIFYACoBWAAqAVgAKgFYACoBWAAqAVgAKgFYACoBWAAqAVgAKgFYACoBWAAqATYACgHMAA8BzAAPAcwADwHMAA8BzAAPATEADwEiAAoBIgAKASIACgEiAAoBIgAKASwAGQEsABkBLAAZASwAGQExACgBaAAtAV4AKAEiAB4BLAAZAQ8AGgEPABoBDwAaAQ8AGgEPABoBDwAaAQ8AGgEPABoBDwAaAQ8AGgG1ABoBtQAaASMAKAD8ACQA/AAkAPwAJAD8ACQA/AAkAPwAJAEjACQBJAAkASwAFYEjACQBHwAkAR8AJAEfACQBHwAkAR8AJAEfACQBHwAkAR8AJAEfACQBLAAnQL4AKAEjACQBIwAkASMAJAEjACQBIwAkASUAKAEsAAnBJQAoAHgAJgEsADxBLAA8QSwAPEEsADjBLAA8QSwAPEEsADxBLAAYQSwAPEEsADxBLAAwQHg//AB4P/wAeD/3wQgAKAEIP1DBLAAyQIIAJgCCAB9AggAmAII/AsCCACYAigABgcAAKAElACgBJQAoASwAAEElACgBJT9OgSwAMkElACgBJAAkASQAJAEkACQBJAAkASQAJAEkACQBJAAkASQAJAEkACQBJAAkASQAJAHJACQBIwAoASMAKAEjACQAugAmALoAJgC6ABxAuj+0gPoAHgD6AB4A+gAeAPoAHgD6AB4A+j+sgS0AKADEACYBLAAnwMQAJgDEACYAxD/EwSUAJgElACYBJQAmASUAJgElACYBJQAmASUAJgElACYBJQAmASUAJgElACYBBAAKAYiADAGIgAwBiIAMAYiADAGIgAwBLAAbwQQACgEEAAoBBAAKAQQACgEEAAoA/wAZAP8AGQD/ABkA/wAZAPwAJAElACgBJAAkAPoAHgD/ABkBLAAwQSwAPEEsAC/BLAAeASwAAAEsADBBLD3ZASwANMEsADRBLABTwS4AHgE7AAoBQgAtASwARAEsAApBJwAtASwAGQFeAC0BLAAXQIQALQE7AC0BLAAMQa+ALQFoAC0BLAAmQV4AKAEnACgBOwAtASwAJIEoAAwBIgAKASwABUExAA8BLAAGwV4AHgE7AAoBJz/wgV4/28CEP+WBXj/rgSI/wsFeP+tAhAAtASIACgEsADkBLAASASwAKcEsABdBLAAlQSwAP0EsACNBLAAMwSwAMkEsABLBLD/HASwAEsEsABdBOwAtASwAH8GvgC0BLAAQQSw/dEEsPzTBLAAdQSwALYEsABWBLAAhwSwAKYEsADdBLAAkgSwAJMEsAB9BLAArQSwAGEEsACxBLAAPwSwAMUEkACQBLAADQSwALsEsADLBLAAkwSwAE4EsADOBLAAQwSwAGwEsABTBLAANQSwAH0EsAB9BLAAfQSwAM4EsADOBLAAzgSQAJAEsAA1BLAAdQSwAKYEsACSBLAA2wSwACUEsAC/BLAAtwSw/aAEsPzZBLAAkwSwAIsEsAD7BLAArgSwAD8EsAB8BLAAnQSwAJkEsABZBLAAEQSwAHsEsAC7BLAAtwHg//AEsAC3BIwAoASwACgEsABZBLABigSwADwEsAA8BLAAegSwAH8EsAAzBLAApwSwAHkEsABbBLAAeQSwAI8EhACABIQAuASEAIAEhACUBIQAgASEAGwEhACABIQAgASEAIAEhACABIQAgASEAIAEhACABIQAuASEAIAEhACNBIQAgASEAGwEhACABIQAgASEAIAEhACABIQAgASwAUIC0AB0BLABWQSwAWAEsABIBLABhwSwAToEsAFZBLABUASwATIEsAFCAtAAdASwAVkEsAFgAtAASASwAYcEsAE6BLABWQSwAVAEsAEyBLABQgLQAHQEsAFZBLABYALQAFAEsAGHBLABOgSwAVkEsAFQBLABMgSwAUIC0AB0BLABWQSwAWAEsABIBLABhwSwAToEsAFZBLABUASwATIAAP3LBLAAJQSwAAcEsAAEBLAAHQSwAAcEsAAjBLD/4ASw/+gEsP/1BLD/1wSwAAcEsAAYBLD/+wSwAAYEsP/0BLD/9QIIAKQCCABAAggApASwAXUEsABAAggApAIIAKQD6ABQA8AAZAIIAKQC0ACsA+gAUgSwABsFPABkAwwAKAMMACgEsAC8AggArAPAAHMCCACkBLAAUgSwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAJIEsABpBLAApASwAbkEsAHJAm4AkAJuACoC+ABkAvgAPAKoALQCqAA8BLACOASwAIMEsADIBLAAyASwAbkEsAHJBLAAkASwACoEsABkBLAAPASwALQEsAA8BLACOASwAIMEsAAABLAAAASwAAAC0ABQAtAAUASIAFAH0ABQBLAAUASwAEcH0ABQB9AAUASIAFAEsABkBLAAUASwAFAEsABQBLAAUALOAFAEsAAABLAAAAIIAEADcABAA3AAfgNwAHACCAB+AggAcASwAKUD6P8nAlgAPAJYAFADDACMAawAjAPo/v8EsP8nBLAAPASwAFAEsAG5BLAByQSw/LAEsPgCBLD8SQSw/moEsP7hBLD8mwSw/NMEsPzkBLD41gSw+pEEsPr9BLD9bASw/NMEsPy8BLD4NASw+X4EsP3QBLD9twSw/OQEsPzkBLD+9ASw/aMEsP2EBLD8wQSw/BgEsPvUBLD3ugSw+6gEsPvqBLD7tASw/KYEsPwyBLD8ggSw/IIEsPvTBLD7vQSw/DIEsPeCBLD8GASw/IEEsPvcBLD3kASw/PUEsPz1BLABuQSwAckEsP/sBLAA+QSw/+wEsP9tBLD/7AU8AGQFPABkBTwAZASw/+wEsP/sBLAARwSw+zwEsPs8BLD8hQSw/+wEsP/sBLAAZASw/QsEsP5bBLD3cwSwAWwEsAFJBLAApgSwAYYEsAAABLAAAAGnAAAEsAAAAAAAAASwAAAEsAAAAAAAAASEALwEhAB0BIQAigSwAPwEhABEBHQAUASwAH8EhABYBLAApwSEAIAEhAA8BLAAAASwAFcEsAFzBLAAjQAA/LAEsAEaBLACCwAA/csEsACfBLAAqwSwADsEsAAxBLAA/gSwAW0EsAFtBLAA0wSwAHgEsACfBLAAKASwAJsEsAH4BLACCwSwANwEsAILBLACCwSwAgsEsAILBLABbwSwAW8EsAFzBLAAOwSwADEEsABvBLAARwSwADEEsADTBLAAMQSwAEcEsACrBIQAgASEAIAEhACoBIQAgASwANMEhACABIQAgASEAIAEsP2/BIQAgASEAIAEhABtBIQAYgSEAIAEOABQBMQAUASwADMEsACEBLAAhASwAJMEsACTA0gAKAUAACgFeAC0BIgAZASIACgEsACxBIQAkASwAgsEsAILBLACCwSwAgsEsABUBLAAVAa4AEsHwQAeBLABbQSwAW0EsACkBLAAMQSwAG8EsADnBLABDwSwAgsEsAEOBLACCwSwALIEsACyBLAAqwSwADEEsAAxBLAAbwSwAG8EsABvBLAASgSwAG8EsACVBLAAkwSwADsEsACrBLAAKASwAEoEsABQBIQAgASwAKwEsACABLAAAASwAAAEsAAABLAAAASwAAAEsP/nBLAATgSwAC0EsABOBLD/5wSwAE4EsAAtBLAATgSw/2sEsP/nBLAALASwADQEsAA5BLAAOgSwAGcEsAA6BLAAZwlgAIwJYAHuBLAAAASw/7AEsAAABLD/sASwACYEsP+1BLD/3ASw/9wJYAA7CWAAOwlgADsJYAA7CWAAOwlgADsJYACRCWAAOwlgADsJYAA7CWAAOwlgADsEsP+wBLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAJYBLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwAlgEsAJYBLAAPASwADwEsAA8BIQAbASwARwEsAA8BLAAPASwARwEsAIIBLACCASw//YEsP/2BLD/9gSw//YEsP/2BLACCASw//YEsP/2BLACCASw//YEsP/2BLD/9gSw//YEsP/2BLABaASw//YEsP/2BLD/9gSw//YEsAIIBLABaASwAWgEsAFoBLD/9gSw//YEsAFoBLD/9gSw//YEsP/2BLD/9gSw//YEsP/2BLABaASwAggEsAIIBLABaASw//YEsP/2BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwARwEsAEcBLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASwADwEsAA8BLAAPASw//YEsP/2BLD/9gSwAWgEsAFoBLD/9gSw//YEsP/2BLD/9gSwAggEsAFoBLD/9gSwAFAEsAFoBLABaASw//YEsP/2BLABaASw//YEsP/2BLD/9gSwAEsEsAFoBLACCASwAFAEsAFoBLABaASw//YEsP/2BLABaASwAWgEsAFoBLD/9gSw//YEsAFoBLD/9gSw//YEsP/2BLD/9gSw//YEsP/2BLD/9gSw//YEsP+1BLD/ugSw/7UEsABQBLACCASwAggEsP/2BLD/9gSwAEsEsAIIBLACCASwAFAEsAIIBLACCASwAWgEsP/2BLD/9gSw//YEsP/2BLD/9gSw//YEsP/2BLD/9gSw//YEsP/2BLD/9gSw//YEsAFoBLABaASw//YEsP/2BLD/9gSw//YEsAFoBLACCASw//YEsP/2BLABaASw//YEsP/2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IBMAACAVAAACIQAAIBYAACAWAAAB8QAAIBcAACAXAAACKAAAIBgAACAZAAACNAAAIBoAACAaAAACMAAAIBwAACAdAAACMgAAIB4AACAeAAACMQAAICAAACAhAAAD/gAAICIAACAiAAAB7wAAICYAACAmAAAB6QAAIDAAACAwAAAC5QAAIDkAACA6AAACOAAAIEQAACBEAAAB1AAAIEoAACBKAAAB9QAAIHAAACBwAAABygAAIHQAACB5AAABzgAAIHoAACB6AAAC5wAAIHsAACB7AAACtwAAIHwAACB8AAACqQAAIH0AACB+AAACEgAAIH8AACB/AAABGAAAIIAAACCJAAABrAAAIIoAACCKAAAC5gAAIIsAACCLAAACtgAAIIwAACCMAAACqAAAII0AACCOAAACBgAAIKwAACCsAAAClAAAIK8AACCvAAACkwAAILkAACC5AAACmAAAILoAACC6AAAClgAAIL0AACC9AAAClwAAIQIAACECAAABjgAAIQ0AACENAAABjwAAIRMAACETAAAD/QAAIRUAACEVAAABkAAAIRYAACEWAAAEAQAAIRkAACEaAAABkQAAIR0AACEdAAABkwAAISIAACEiAAAD+AAAISQAACEkAAABlAAAIS4AACEuAAAEAAAAIVMAACFUAAAB1wAAIVUAACFeAAAB2wAAIV8AACFfAAAB1QAAIYoAACGKAAAEFAAAIYsAACGLAAAEEwAAIZAAACGQAAADDwAAIZEAACGRAAADCQAAIZIAACGSAAADCwAAIZMAACGTAAADDQAAIZQAACGVAAADEQAAIZYAACGWAAADEAAAIZcAACGXAAADCgAAIZgAACGYAAADDAAAIZkAACGZAAADDgAAIakAACGpAAADFQAAIbAAACGzAAADFgAAId4AACHeAAAEDgAAId8AACHfAAAEDQAAIeQAACHlAAADEwAAIeYAACHmAAADHwAAIecAACHpAAADHAAAIeoAACHqAAAEBgAAIgAAACIAAAAC/gAAIgIAACICAAAC3QAAIgMAACIDAAACqwAAIgQAACIEAAAC+gAAIgUAACIFAAAC0gAAIgYAACIGAAAC2AAAIgcAACIHAAACrQAAIggAACIIAAACpgAAIgkAACIJAAACvQAAIgoAACIKAAACpwAAIgsAACILAAAC9QAAIgwAACIMAAACvAAAIg0AACINAAACoAAAIg8AACIPAAAC2QAAIhEAACIRAAAC2gAAIhIAACISAAACwwAAIhUAACIVAAACogAAIhkAACIZAAACnwAAIhoAACIaAAAC2wAAIh4AACIeAAAC0QAAIicAACIrAAAC0wAAIjQAACI0AAAC+wAAIjUAACI1AAACngAAIjYAACI2AAAC6AAAIkgAACJIAAACzQAAImAAACJgAAACxwAAImEAACJhAAACqgAAImIAACJiAAACvgAAImQAACJkAAACywAAImUAACJlAAACygAAIoIAACKCAAAC8wAAIoMAACKDAAAC9gAAIoQAACKFAAACvwAAIoYAACKHAAAC6QAAIogAACKJAAACugAAIooAACKKAAAC9AAAIosAACKLAAAC9wAAIqIAACKiAAAC8gAAIqMAACKjAAAC+QAAIqQAACKkAAAC+AAAIqUAACKlAAAC/wAAIqYAACKmAAACnQAAIqcAACKnAAACuAAAIqgAACKoAAAC/QAAIqkAACKpAAACrAAAIqoAACKqAAAC/AAAIqsAACKrAAACpQAAIqwAACKsAAACpAAAIq0AACKtAAACwQAAIq4AACKuAAACowAAIq8AACKvAAACuQAAIwAAACMAAAAD+gAAIwIAACMCAAAEBQAAIwMAACMDAAAEAwAAIwQAACMEAAADIAAAIwUAACMFAAAEEgAAIwYAACMGAAAEEQAAIxAAACMQAAAC6wAAIxgAACMYAAAEDwAAIyAAACMgAAACrwAAIyEAACMhAAACrgAAIyQAACMkAAADIQAAIyUAACMlAAAEDAAAIyYAACMmAAAECQAAIycAACMnAAAEBwAAIygAACMoAAAECwAAIysAACMrAAAECAAAI4cAACOHAAAD8QAAI4gAACOIAAAEBAAAI4sAACOLAAAEAgAAI5sAACObAAAC4AAAI5wAACOdAAAC3gAAI54AACOeAAAC4wAAI58AACOgAAAC4QAAI6EAACOhAAACtQAAI6IAACOjAAACswAAI6QAACOkAAAC8QAAI6UAACOmAAAC7wAAI6cAACOnAAACsgAAI6gAACOoAAACsQAAI6kAACOpAAACsAAAI6oAACOqAAACoQAAI6sAACOrAAAC7gAAI6wAACOsAAAC7QAAI60AACOtAAAC7AAAI84AACPOAAAEEAAAI88AACPPAAAECgAAJQAAACUAAAADWgAAJQEAACUBAAADqgAAJQIAACUCAAADWwAAJQMAACUDAAADtwAAJQQAACUEAAADzgAAJQUAACUFAAADsAAAJQYAACUGAAADzwAAJQcAACUHAAADsQAAJQgAACUIAAADywAAJQkAACUJAAADrQAAJQoAACUKAAADzAAAJQsAACULAAADrgAAJQwAACUMAAADUQAAJQ0AACUNAAADoQAAJQ4AACUOAAADmwAAJQ8AACUPAAADqQAAJRAAACUQAAADUwAAJREAACURAAADnwAAJRIAACUSAAADmQAAJRMAACUTAAADqAAAJRQAACUUAAADUgAAJRUAACUVAAAD5QAAJRYAACUWAAAD3wAAJRcAACUXAAADtgAAJRgAACUYAAADVAAAJRkAACUZAAAD4wAAJRoAACUaAAAD3QAAJRsAACUbAAADtAAAJRwAACUcAAADWAAAJR0AACUdAAAD6wAAJR4AACUeAAAD3gAAJR8AACUfAAADnAAAJSAAACUgAAAD6AAAJSEAACUhAAADogAAJSIAACUiAAAD5AAAJSMAACUjAAADugAAJSQAACUkAAADWQAAJSUAACUlAAAD6gAAJSYAACUmAAAD3AAAJScAACUnAAADmgAAJSgAACUoAAAD5wAAJSkAACUpAAADoAAAJSoAACUqAAAD4gAAJSsAACUrAAADuQAAJSwAACUsAAADVgAAJS0AACUtAAADvAAAJS4AACUuAAAD0wAAJS8AACUvAAADngAAJTAAACUwAAADmAAAJTEAACUxAAAD1gAAJTIAACUyAAADvwAAJTMAACUzAAADpwAAJTQAACU0AAADVwAAJTUAACU1AAADvQAAJTYAACU2AAAD1AAAJTcAACU3AAAD4QAAJTgAACU4AAAD2wAAJTkAACU5AAAD1wAAJToAACU6AAADwAAAJTsAACU7AAADswAAJTwAACU8AAADVQAAJT0AACU9AAADvgAAJT4AACU+AAAD1QAAJT8AACU/AAAD6QAAJUAAACVAAAAD2gAAJUEAACVBAAADnQAAJUIAACVCAAAD5gAAJUMAACVDAAADwgAAJUQAACVEAAAD2QAAJUUAACVFAAADuwAAJUYAACVGAAAD0gAAJUcAACVHAAADowAAJUgAACVIAAAD4AAAJUkAACVJAAAD2AAAJUoAACVKAAADwQAAJUsAACVLAAADuAAAJUwAACVMAAADxgAAJU0AACVNAAADpAAAJU4AACVOAAADxwAAJU8AACVPAAADpQAAJVAAACVQAAADbQAAJVEAACVRAAADYQAAJVIAACVTAAADdQAAJVQAACVUAAADaQAAJVUAACVVAAADXwAAJVYAACVWAAADXgAAJVcAACVXAAADYgAAJVgAACVYAAADdAAAJVkAACVZAAADcwAAJVoAACVaAAADaAAAJVsAACVbAAADZQAAJVwAACVcAAADZAAAJV0AACVdAAADYwAAJV4AACVfAAADZgAAJWAAACVgAAADbAAAJWEAACViAAADXAAAJWMAACVjAAADYAAAJWQAACVlAAADcQAAJWYAACVmAAADawAAJWcAACVoAAADbwAAJWkAACVpAAADagAAJWoAACVqAAADeAAAJWsAACVrAAADdwAAJWwAACVsAAADbgAAJW0AACVwAAAD7AAAJXEAACVxAAADxQAAJXIAACVyAAADxAAAJXMAACVzAAADwwAAJXQAACV0AAADyQAAJXUAACV1AAAD0AAAJXYAACV2AAADzQAAJXcAACV3AAADyAAAJXgAACV4AAADqwAAJXkAACV5AAADsgAAJXoAACV6AAADrwAAJXsAACV7AAADpgAAJXwAACV8AAADygAAJX0AACV9AAAD0QAAJX4AACV+AAADrAAAJX8AACV/AAADtQAAJaAAACWrAAADeQAAJawAACWtAAADTgAAJa4AACWuAAADTQAAJa8AACWvAAADUAAAJbIAACWyAAADjgAAJbYAACW2AAADjwAAJboAACW6AAADkgAAJbwAACW8AAADkAAAJcAAACXAAAADkQAAJcQAACXEAAADkwAAJcYAACXHAAADSgAAJckAACXJAAADPwAAJcoAACXKAAADTAAAJcsAACXLAAADMgAAJc4AACXOAAADQAAAJc8AACXPAAADMQAAJdAAACXTAAADNAAAJdUAACXVAAADOgAAJdYAACXXAAADOAAAJdkAACXbAAADQQAAJdwAACXfAAADRgAAJeAAACXhAAADRAAAJeIAACXkAAADlQAAJeUAACXlAAADlAAAJecAACXrAAADhQAAJe8AACXvAAADMwAAJfAAACXzAAADigAAJfQAACX3AAADOwAAJxMAACcTAAAD8AAAJ3AAACdxAAACEAAA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VW5VhFWaVcRWAVY/Vn1WulcEV15XmFe+V+NYBFglWDtYUVhnWHxYjFilWMJY0FjeWPNZCFkYWSlZOVlKWWNZdlmJWZxZr1m8WcpZ4ln8WhFaJlpHWltadVqPWqVau1rTWuxbBlsgW0JbYluDW5dbxFveW/ZcEFwoXD5cVFxpXH5coVzEXNJc6F0iXT9dYl2FXbVd4l4TXlxeal5+XpReql6/XtNe8V8SXzNfUl9zX4FfiV+XX59frV+7X8lf1l/jX/FgBGAVYCtgPGBSYGtgf2CQYKZgt2DNYOdg/GESYSBhNGFFYVZhZGFyYYVhp2HKYdhh82IPYh1iMWJCYlViZmJ0Yo5iomK2YtJi6GL+YxdjLWNDY11jeGODY5JjoWO0Y8lj12PkY/dkFmQ1ZEJkWmRzZIFklGSwZMZk3GT1ZQtlIWU7ZVZlb2WCZZhlqWW/ZdBl6mX+ZhVmJmY9Zk5mZ2Z7Zo9mqWa9ZtFm7GcGZyBnO2dPZ2pnoGfraAVoSGiFaMho72kRaUxpWWlsaaVpvWnfaghqWGqRaqVrDWsoa11rlWvJa/1sKGzwbQxtLW1Pbctt/W4ebjluam6UbpRulG7vbz5vum/Pb9xv8HCBcK5wyXDWcOZxDXEucUhxsHHTcgFyKHI8cldyd3KcctFzEnNEc4ZzoHPAc+d0EnR5dPB1FnVMdWx1iHWtdeJ2PHZNduJ3AHctd1x36nhEeFB45XkDeRB5GXkieSt5W3l2eZh5unnbefB6C3omekJ6Xnpzeoh6nHqwesR62Hsoe1d7lXvKe/B8H3xZfH98s3zefPp9IH1wfZ991H4Sfjd+Zn6gfsZ+8X8lf0F/Z3+Hf6eACoBvgOSBNoFYgYiBuoHCgdCB3YHqgfiCB4IQgh2CLII8glOCZoJ4gpGCs4LXguSC8oMJgxKDIoMyg0aDVINig4iDkYOag6ODrIO1g8eD0IPZg+KD64P0hBiEJ4QvhDiEQYRKhFOEXIRlhHeEgISJhJKEm4SjhLKEwYTJhOSE84UChTCFOIWyhm6Gd4Z3hp2GnQACALoAAAPaBcgAAwAHAAAzESERJSERIboDIP1EAlj9qAXI+jhkBQAAAgAoAAAExAVkAAkADQAANwEhAQcjAyEDIwEhAyMoAcQBFAHEGIpy/YxyigEuAhDwMCQFQPrAJAFc/qQB9ALY//8AKAAABMQHFQIi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AFABzARgA6wAAwAHAAABESERIxEhEQRg/kig/kgDrP4gAeD+IAHgAAACAWj+mANIB/gAAwAHAAABESERAREhEQNI/iAB4P4gAlj8QAPABaD8QAPAAAEBaPwYA0gDDAADAAABESERA0j+IAMM+QwG9AAB//b8GAS6A6wABwAAAREhESERIREEuv6O/iD+jgOs/iD6TAW0AeAAAf/2/BgDSAOsAAUAAAERIREhEQNI/iD+jgOs+GwFtAHgAAEBaPwYBLoDrAAFAAABESERIREEuv6O/iADrP4g+kwHlAAB//YBzAS6A6wAAwAAAREhEQS6+zwDrP4gAeAAAf/2AcwCqAOsAAMAAAERIRECqP1OA6z+IAHgAAH/9gHMBLoDrAAHAAABFSEVIRUhEQKoAhL97v1OA6ygoKAB4AAABABLAcwEZQOsAAMABwALAA8AAAEzESMBMxEjATMRIwEzESMBd5aWASyWlv2olpYDhJaWA6z+IAHg/iAB4P4gAeD+IAAEAWj9+ANICEgAAwAHAAsADwAAJSERIREhESERIREhESERIQFoAeD+IAHg/iAB4P4gAeD+IBT95ATY/eQE2P3kBNj95AAAAQIIAcwEugOsAAMAAAERIREEuv1OA6z+IAHgAAMAUAHMBGADrAADAAcACwAAAREjESERIxEhESMRAUDwAoDwAoDwA6z+IAHg/iAB4P4gAeAAAAMBaP34A0gImAADAAcACwAAASERIREhESERIREhAWgB4P4gAeD+IAHg/iABGPzgBuD84Abg/OAAAQFoAmwDSAfQAAMAAAERIREDSP4gB9D6nAVkAAH/9gHMBLoH0AAHAAABESERIREhEQNIAXL7PAFyB9D73P4gAeAEJAAB//YBzANIB9AABQAAAREhESERA0j8rgFyB9D5/AHgBCQAAQFo/BgDSAfQAAcAAAERIxEjESMRA0igoKAH0Pqc+awGVAVkAAABAWgBzAS6B9AABQAAAREhESERA0gBcvyuB9D73P4gBgQAAQFo/BgDSAfQAAMAAAERIREDSP4gB9D0SAu4AAH/9vwYBLoH0AALAAABESERIREhESERIREDSAFy/o7+IP6OAXIH0Pvc/iD6TAW0AeAEJAAB//b8GANIB9AABwAAAREhESERIREDSP4g/o4BcgfQ9EgFtAHgBCQAAQFo/BgEugfQAAcAAAERIREhESERA0gBcv6O/iAH0Pvc/iD6TAu4AAH/9vwYBLoH0AANAAABETMVIRUhESERIREhEQKooAFy/o7+IP6OAhIH0PvcoKD5rAW0AeAEJAAAAf/2/BgEugOsAAkAAAEVIRUhESMRIRECqAIS/e6g/e4DrKCg+awFtAHgAAAB//YBzAS6B9AACQAAAREhFSEVIREhEQKoAhL97v1OAhIH0Ps8oKAB4AQkAAH/9vwYBLoH0AALAAABESEVIREjESERIRECqAIS/e6g/e4CEgfQ+zyg+awFtAHgBCQAAf/2/BgEugOsAAkAAAERIREhESE1ITUEuv6O/iD+jgFyA6z+IPpMBlSgoAAB//YBzAS6B9AACQAAAREhESE1ITUhEQNIAXL8rv6OAXIH0Pvc/iCgoATEAAH/9vwYBLoH0AALAAABESERIREhESE1IREDSAFy/o7+IP6OAXIH0Pvc/iD6TAZUoATEAAAB//b8GAS6B9AADQAAAREhFSEVIxEjESERIREDSAFy/o6goP3uAXIH0Ps8oKD6TAW0AeAEJP///7X9hQT7By0CIgPEAAAAAgPFAAAAAf+6/YUE+wctAAMAABMHATdKkASwkQctR/afSAAAAf+1/YUE9gctAAMAAAEXAScEZpD7UJEHLUf2n0gAAgBQAmwEYAMMAAMABwAAARUhNSMVITUEYP5IoP5IAwygoKCgAAACAgj9+AKoCJgAAwAHAAABESMRExEjEQKooKCgAvj7AAUABaD7AAUAAAABAgj8GAKoAwwAAwAAAREjEQKooAMM+QwG9AAAAf/2AmwCqAMMAAMAAAEVITUCqP1OAwygoAAB//YBzAS6A6wABwAAAREhNSE1ITUEuv1O/e4CEgOs/iCgoKAAAAQASwJsBGUDDAADAAcACwAPAAABMxUjJTMVIyUzFSMlMxUjAXeWlgEslpb9qJaWA4SWlgMMoKCgoKCgoAAABAII/fgCqAhIAAMABwALAA8AACUzESMRMxEjETMRIxEzESMCCKCgoKCgoKCgFP3kBNj95ATY/eQE2P3kAAABAggCbAS6AwwAAwAAARUhNQS6/U4DDKCgAAMAUAJsBGADDAADAAcACwAAARUjNSEVIzUhFSM1AUDwAoDwAoDwAwygoKCgoKAAAAMCCP34AqgImAADAAcACwAAATMRIxEzESMRMxEjAgigoKCgoKABGPzgBuD84Abg/OAAAQIIAmwCqAfQAAMAAAERIxECqKAH0PqcBWQAAAEBaPwYA0gH0AAHAAABETMRIREzEQKooP4goAfQ+zz5DAb0BMQAAf/2/BgEugfQAA0AAAERIREhESERITUhNTMRAqgCEv6O/iD+jgFyoAfQ+9z+IPpMBlSgoAQkAAAB//b8GAS6A6wACQAAAREhESMRITUhNQS6/e6g/e4CEgOs/iD6TAZUoKAAAAH/9gHMBLoH0AAJAAABESERITUhNSERAqgCEv1O/e4CEgfQ+9z+IKCgBMQAAf/2/BgEugfQAAsAAAERIREhESMRITUhEQKoAhL97qD97gISB9D73P4g+kwGVKAExAAB//b8GAS6A6wACQAAARUhFSERIREhEQNIAXL+jv4g/o4DrKCg+awFtAHgAAH/9gHMBLoH0AAJAAABESEVIRUhESERA0gBcv6O/K4BcgfQ+zygoAHgBCQAAf/2/BgEugfQAAsAAAERIRUhESERIREhEQNIAXL+jv4g/o4BcgfQ+zyg+awFtAHgBCQAAAH/9vwYBLoH0AANAAABESERIREjESM1ITUhEQNIAXL97qCg/o4BcgfQ+9z+IPpMBbSgoATEAAH/9vwYBLoH0AALAAABESEVIREjESE1IREDSAFy/e6g/e4BcgfQ+zyg+awGVKAExAAAAf/2AmwEugfQAAcAAAERIRUhNSERA0gBcvs8AXIH0Ps8oKAExAAB//b8GANIB9AACQAAAREjESMRITUhEQNIoKD97gFyB9D6nPmsBlSgBMQAAAH/9gJsA0gH0AAFAAABESE1IREDSPyuAXIH0PqcoATEAAABAWj8GAS6B9AACQAAAREhFSERIxEjEQNIAXL97qCgB9D7PKD5rAZUBWQAAAEBaAJsBLoH0AAFAAABESEVIREDSAFy/K4H0Ps8oAVkAAAB//b8GAS6B9AACwAAAREhESERIREhESERAqgCEv6O/iD+jgISB9D73P4g+kwFtAHgBCQAAf/2AcwEugfQAAcAAAERIREhESERAqgCEvs8AhIH0Pvc/iAB4AQkAAH/9vwYA0gH0AAJAAABETMRIREhESERAqig/iD+jgISB9D73PhsBbQB4AQkAAAB//YBzAKoB9AABQAAAREhESERAqj9TgISB9D5/AHgBCQAAQFo/BgEugfQAAkAAAER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ADMA7QA0ADUBKAEpASoANgErAOQA+wEsAS0BLgA3AS8BMAExATIAOADUATMA1QBoANYBNAE1ATYBNwE4ADkAOgE5AToBOwE8ADsAPADrAT0AuwE+AD0BPwDmAUABQQFCAUMBRAFFAEQAaQFGAGsAbABqAUcBSABuAG0AoAFJAEUARgD+AQAAbwFKAUsARwDqAUwBAQBIAHABTQFOAHIAcwFPAHEBUAFRAEkASgD5AVIBUwFUAEsBVQFWAEwA1wB0AVcAdgB3AVgAdQFZAVoBWwFcAE0BXQFeAE4BXwFgAE8BYQFiAWMBZADjAFAAUQFlAWYBZwFoAWkAeABSAHkBagB7AHwAegFrAWwAoQFtAH0AsQBTAO4AVABVAW4BbwFwAFYBcQDlAPwBcgFzAIkAVwF0AXUBdgF3AFgAfgF4AIAAgQB/AXkBegF7AXwBfQBZAFoBfgF/AYABgQBbAFwA7AGCALoBgwBdAYQA5wGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAJ0AngGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gCbAdcB2AHZAdoB2wHcAd0B3gHfAeAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0AEwAUABUAFgAXABgAGQAaABsAHAIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkIAvAJDAPQCRAJFAPUA9gJGAkcCSAJJAkoCSwJMAk0CTgJPABEADwAdAB4AqwAEAKMAIgCiAMMAhwANAlAABgASAD8CUQJSAlMCVAJVAlYCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwALAAwAXgBgAD4AQAJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQAEAJ1ALIAswJ2AncCeAJ5AEICegJ7AnwCfQJ+An8CgAKBAMQAxQC0ALUAtgC3AKkAqgC+AL8ABQAKAoICgwKEAoUChgKHAogCiQKKAosCjAKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAAMC0ALRAtIC0wLUAIQAvQAHAtUC1gCmAtcC2ALZAIUAlgLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAAOAO8A8AC4ACAAjwAhAB8AlQCUAJMApwBhAKQAQQCSAwEDAgMDAwQDBQCcAKgAmgCZAKUAlwCYAwYDBwMIAwkDCgMLAAgAxgMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQC5A3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWACMACQCIAIYAiwCKAIwAgwQXAF8A6AQYAIIAwgQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkEWgRbBFwEXQReBF8EYARhBGIEYwRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRwBHEEcgRzBHQEdQR2BHcEeAR5BHoEewR8BH0EfgR/BIAEgQSCBIMEhASFBIYEhwSIBIkEigSLBIwEjQSOBI8EkASRBJIEkwSUBJUElgSXBJgEmQSaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgCOANwAQwCNAN8A2ADhANsA3QDZANoA3gDgBK8EsASxBLIEswS0BLUEtgS3BLgEuQS6BLsEvAS9BL4EvwTABMEEwgTDBMQExQTGBMcEyATJBMoGQWJyZXZlB0FtYWNyb24HQW9nb25lawdBRWFjdXRlC0NjaXJjdW1mbGV4CkNkb3RhY2NlbnQGRGNhcm9uBkRjcm9hdAZFYnJldmUGRWNhcm9uCkVkb3RhY2NlbnQHRW1hY3JvbgdFb2dvbmVrC0djaXJjdW1mbGV4B3VuaTAxMjIKR2RvdGFjY2VudARIYmFyC0hjaXJjdW1mbGV4AklKBklicmV2ZQpJZG90YWNjZW50B0ltYWNyb24HSW9nb25lawZJdGlsZGULSmNpcmN1bWZsZXgHdW5pMDEzNgZMYWN1dGUGTGNhcm9uB3VuaTAxM0IETGRvdAZOYWN1dGUGTmNhcm9uB3VuaTAxNDUDRW5nBk9icmV2ZQ1PaHVuZ2FydW1sYXV0B09tYWNyb24LT3NsYXNoYWN1dGUGUmFjdXRlBlJjYXJvbgd1bmkwMTU2BlNhY3V0ZQtTY2lyY3VtZmxleAd1bmkwMjE4B3VuaTFFOUUEVGJhcgZUY2Fyb24HdW5pMDE2Mgd1bmkwMjFBBlVicmV2ZQ1VaHVuZ2FydW1sYXV0B1VtYWNyb24HVW9nb25lawVVcmluZwZVdGlsZGUGV2FjdXRlC1djaXJjdW1mbGV4CVdkaWVyZXNpcwZXZ3JhdmULWWNpcmN1bWZsZXgGWWdyYXZlBlphY3V0ZQpaZG90YWNjZW50A0MuMQNOLjEDTy4xA1MuMQNaLjEGYWJyZXZlB2FtYWNyb24HYW9nb25lawdhZWFjdXRlC2NjaXJjdW1mbGV4CmNkb3RhY2NlbnQGZGNhcm9uBmVicmV2ZQZlY2Fyb24KZWRvdGFjY2VudAdlbWFjcm9uB2VvZ29uZWsLZ2NpcmN1bWZsZXgHdW5pMDEyMwpnZG90YWNjZW50BGhiYXILaGNpcmN1bWZsZXgGaWJyZXZlC3VuaTAxMzEwMkQ5AmlqB2ltYWNyb24HaW9nb25lawZpdGlsZGUHdW5pMDIzNwtqY2lyY3VtZmxleAd1bmkwMTM3DGtncmVlbmxhbmRpYwZsYWN1dGUGbGNhcm9uB3VuaTAxM0MEbGRvdAZuYWN1dGULbmFwb3N0cm9waGUGbmNhcm9uB3VuaTAxNDYDZW5nBm9icmV2ZQ1vaHVuZ2FydW1sYXV0B29tYWNyb24Lb3NsYXNoYWN1dGUGcmFjdXRlBnJjYXJvbgd1bmkwMTU3BnNhY3V0ZQtzY2lyY3VtZmxleAd1bmkwMjE5BHRiYXIGdGNhcm9uB3VuaTAxNjMHdW5pMDIxQgZ1YnJldmUNdWh1bmdhcnVtbGF1dAd1bWFjcm9uB3VvZ29uZWsFdXJpbmcGdXRpbGRlBndhY3V0ZQt3Y2lyY3VtZmxleAl3ZGllcmVzaXMGd2dyYXZlC3ljaXJjdW1mbGV4BnlncmF2ZQZ6YWN1dGUKemRvdGFjY2VudANjLjEDbi4xA28uMQNzLjEDei4xCngubXVsdGlwbHkKaS5zYWx0X2xvdwpqLnNhbHRfbG93Cmwuc2FsdF9sb3cIdy5zcGFjZXIPeC5tdWx0aXBseS50b3NmCndfd193LmxpZ2EHdW5pMjA3Rgd1bmkwMzdGBUFscGhhBEJldGEFR2FtbWEHdW5pMDM5NAdFcHNpbG9uBFpldGEDRXRhBVRoZXRhBElvdGEFS2FwcGEGTGFtYmRhAk11Ak51AlhpB09taWNyb24CUGkDUmhvBVNpZ21hA1RhdQdVcHNpbG9uA1BoaQNDaGkDUHNpB3VuaTAzQTkKQWxwaGF0b25vcwxFcHNpbG9udG9ub3MIRXRhdG9ub3MJSW90YXRvbm9zDE9taWNyb250b25vcwxVcHNpbG9udG9ub3MKT21lZ2F0b25vcwxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzB3VuaTAzNzAHdW5pMDM3Mgd1bmkwMzc2B3VuaTAzRDgHdW5pMDNEQQd1bmkwM0RDB3VuaTAzREUHdW5pMDNFMAd1bmkwM0NGCFVwc2lsb24xB3VuaTAzRDMHdW5pMDNENAd1bmkwM0Y0B3VuaTAzRjcHdW5pMDNGOQd1bmkwM0ZBB3VuaTAzRkQHdW5pMDNGRQd1bmkwM0ZGBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBWthcHBhBmxhbWJkYQd1bmkwM0JDAm51AnhpB29taWNyb24DcmhvBnNpZ21hMQVzaWdtYQN0YXUHdXBzaWxvbgNwaGkDY2hpA3BzaQVvbWVnYQlpb3RhdG9ub3MMaW90YWRpZXJlc2lzEWlvdGFkaWVyZXNpc3Rvbm9zDHVwc2lsb250b25vcw91cHNpbG9uZGllcmVzaXMUdXBzaWxvbmRpZXJlc2lzdG9ub3MMb21pY3JvbnRvbm9zCm9tZWdhdG9ub3MKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MHdW5pMDM3MQd1bmkwMzczB3VuaTAzNzcHdW5pMDM3Qgd1bmkwMzdDB3VuaTAzN0QHdW5pMDNEOQd1bmkwM0RCB3VuaTAzREQHdW5pMDNERgd1bmkwM0UxB3VuaTAzRDcHdW5pMDNEMAZ0aGV0YTEEcGhpMQZvbWVnYTEHdW5pMDNGMAd1bmkwM0YxB3VuaTAzRjIHdW5pMDNGMwd1bmkwM0Y1B3VuaTAzRjgHdW5pMDNGQgd1bmkwM0ZDB3VuaTAzN0EHdW5pMTQwNQd1bmkxNDBBBnUxRDUzOQd1bmkyMTAyB3VuaTIxMEQHdW5pMjExNQd1bmkyMTE5B3VuaTIxMUEHdW5pMjExRAd1bmkyMTI0CXplcm8uemVybwl6ZXJvLnRvc2YOemVyby56ZXJvLnRvc2YIb25lLnRvc2YIdHdvLnRvc2YKdGhyZWUudG9zZglmb3VyLnRvc2YJZml2ZS50b3NmCHNpeC50b3NmCnNldmVuLnRvc2YKZWlnaHQudG9zZgluaW5lLnRvc2YOemVyby50b3NmLnplcm8HdW5pMjA4MAd1bmkyMDgxB3VuaTIwODIHdW5pMjA4Mwd1bmkyMDg0B3VuaTIwODUHdW5pMjA4Ngd1bmkyMDg3B3VuaTIwODgHdW5pMjA4OQl6ZXJvLmRub20HdW5pMDBCOQh0d28uZG5vbQp0aHJlZS5kbm9tCWZvdXIuZG5vbQlmaXZlLmRub20Ic2l4LmRub20Kc2V2ZW4uZG5vbQplaWdodC5kbm9tCW5pbmUuZG5vbQl6ZXJvLm51bXIIb25lLm51bXIIdHdvLm51bXIKdGhyZWUubnVtcglmb3VyLm51bXIJZml2ZS5udW1yCHNpeC5udW1yCnNldmVuLm51bXIKZWlnaHQubnVtcgluaW5lLm51bXIHdW5pMjA3MAl1bmkwMEI5LjEHdW5pMDBCMgd1bmkwMEIzB3VuaTIwNzQHdW5pMjA3NQd1bmkyMDc2B3VuaTIwNzcHdW5pMjA3OAd1bmkyMDc5B3VuaTIxNUYIb25ldGhpcmQJdHdvdGhpcmRzB3VuaTIxNTUHdW5pMjE1Ngd1bmkyMTU3B3VuaTIxNTgHdW5pMjE1OQd1bmkyMTVBCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzB3VuaTIwMTYHdW5pMjA0QQx1bmkwMEExLmNhc2UMdW5pMDBCRi5jYXNlC3VuaTAwMkUwMDJFCXVuaTAwMkEuMQ51bmkwMDJFLnNwYWNlcgxjb2xvbi5zcGFjZXIOdW5pMDAzQi5zcGFjZXIOdW5pMDAyMS5zcGFjZXIOdW5pMDAzRi5zcGFjZXIOdW5pMDAyQS5zcGFjZXIOdW5pMDAyMy5zcGFjZXIMc2xhc2guc3BhY2VyDnVuaTAwNUMuc3BhY2VyDHVuaTAwNUMuc3MwNhJ1bmkwMDVDLnRoaWNrLnNzMDYHY29sb24uMQd1bmkyMDhEB3VuaTIwOEUHdW5pMzAwQwd1bmkzMDBEB3VuaTI3NzAHdW5pMjc3MQd1bmkyMDdEB3VuaTIwN0UJdW5pMDAyOC4xCXVuaTAwMjkuMQl1bmkwMDdCLjEJdW5pMDA3RC4xCXVuaTAwNUIuMQl1bmkwMDVELjEHdW5pRkY2Mgd1bmlGRjYzDnVuaTAwN0Iuc3BhY2VyDnVuaTAwNUIuc3BhY2VyDnVuaTAwNUQuc3BhY2VyB3VuaTAwQUQHdW5pMjAxNQpmaWd1cmVkYXNoB3VuaTJFM0IHdW5pMkUzQQ11bmRlcnNjb3JlZGJsCXVuaTAwMkQuMQl1bmkwMEFELjEJdW5pMjAxMy4xCXVuaTIwMTQuMQl1bmkwMDJELjIOdW5pMDAyRC5zcGFjZXIOdW5pMDA1Ri5zcGFjZXILdW5pMjAzOTIwMzkJdW5pMDBCQi4xCXVuaTIwMzkuMQl1bmkyMDNBLjEMdW5pMDAyOC5kbm9tDHVuaTAwMjkuZG5vbRB1bmkwMDJEMDAyRC5saWdhFHVuaTAwMkQwMDJEMDAyRC5saWdhEHVuaTAwMkQwMDdFLmxpZ2EQdW5pMDA3Ql9iYXIubGlnYRB1bmkwMDVCX2Jhci5saWdhEHVuaTAwNUQwMDIzLmxpZ2EQdW5pMDAyRTAwMkQubGlnYQ11bmkwMDJFMDAyRS4xD3VuaTAwMkUwMDJFMDAyRRZ1bmkwMDJFMDAyRV9lcXVhbC5saWdhEmxlc3NfdW5pMDAyRTAwMkUuMRB1bmkwMDJFMDAzRi5saWdhEnVuaTAwMkVfZXF1YWwubGlnYQtjb2xvbl9jb2xvbhFjb2xvbl9jb2xvbl9jb2xvbhZjb2xvbl9jb2xvbl9lcXVhbC5saWdhEGNvbG9uX2VxdWFsLmxpZ2ELdW5pMDAzQjAwM0ILdW5pMDAyMTAwMjEUdW5pMDAyMTAwMjEwMDJFLmxpZ2ESdW5pMDAyMV9lcXVhbC5saWdhGHVuaTAwMjFfZXF1YWxfZXF1YWwubGlnYRB1bmkwMDNGMDAyRS5saWdhC3VuaTAwM0YwMDNGEnVuaTAwM0ZfZXF1YWwubGlnYQt1bmkwMDJBMDAyQQ91bmkwMDJBMDAyQTAwMkEQdW5pMDAyQTAwM0UubGlnYQ11bmkwMDJBX3NsYXNoEHVuaTAwMjMwMDI4LmxpZ2EJdW5pMDA3Qi4yEHVuaTAwMjMwMDVCLmxpZ2ESdW5pMDAyM19jb2xvbi5saWdhEHVuaTAwMjMwMDIxLmxpZ2EJdW5pMDAzRi4xEnVuaTAwMjNfZXF1YWwubGlnYRB1bmkwMDIzMDA1Ri5saWdhFHVuaTAwMjMwMDVGMDAyOC5saWdhDXNsYXNoX3VuaTAwMkESc2xhc2hfdW5pMDAzRS5saWdhC3NsYXNoX3NsYXNoEXNsYXNoX3NsYXNoX3NsYXNoEnNsYXNoX3VuaTAwNUMubGlnYRJ1bmkwMDVDX3NsYXNoLmxpZ2EMdW5pMDAyOC5udW1yDHVuaTAwMjkubnVtcgx1bmkwMDJELmNhbHQOdW5pMDAyRC5jYWx0LjEOdW5pMDAyRC5jYWx0LjIKY29sb24uY2FsdAx1bmkwMDIxLmNhbHQMdW5pMDAyMy5jYWx0DnVuaTAwMjMuY2FsdC4xDnVuaTAwMjMuY2FsdC4yCnNsYXNoLmNhbHQMc2xhc2guY2FsdC4xDHNsYXNoLmNhbHQuMgxzbGFzaC5jYWx0LjMMc2xhc2guY2FsdC40DHNsYXNoLmNhbHQuNQx1bmkwMDVGLmNhbHQOdW5pMDA1Ri5jYWx0LjEOdW5pMDA1Ri5jYWx0LjIQdW5pMDAyMTAwN0Uuc3MwNxJ1bmkwMDIxX2VxdWFsLnNzMDgYdW5pMDAyMV9lcXVhbF9lcXVhbC5zczA4B3VuaTI3RTgHdW5pMjdFOQlhbm90ZWxlaWEHdW5pMDM3RQd1bmkyMDA3B3VuaTIwMDgHdW5pMDBBMAd1bmkyMDBCCnVuaTIwMDcudGYHdW5pMDAwRAd1bmlGRUZGB3VuaTIwQUYERXVybwd1bmkyMEJBB3VuaTIwQkQHdW5pMjBCOQ51bmkwMDI0LnNwYWNlcgx1bmkwMDI0LnNzMDQHdW5pMjJBNgd1bmkyMjM1B3VuaTIyMTkHdW5pMjIwRAd1bmkyM0FBB3VuaTIyMTUHdW5pMjJBRQd1bmkyMkFDB3VuaTIyQUIHZWxlbWVudAd1bmkyMjBBB3VuaTIwOEMHdW5pMjA3QwtlcXVpdmFsZW5jZQtleGlzdGVudGlhbAd1bmkyMkE5CGdyYWRpZW50CmludGVncmFsYnQKaW50ZWdyYWx0cAd1bmkyM0E5B3VuaTIzQTgHdW5pMjNBNwd1bmkyM0EyB3VuaTIzQTMHdW5pMjNBMQd1bmkyMDhCB3VuaTIwN0IHdW5pMjJBNwd1bmkyMkFGB3VuaTIyODgHdW5pMjI4OQd1bmkyMjBDCm5vdGVsZW1lbnQHdW5pMjI2Mglub3RzdWJzZXQHdW5pMjI4NQd1bmkyMkFECGVtcHR5c2V0CmxvZ2ljYWxhbmQJbG9naWNhbG9yDGludGVyc2VjdGlvbgV1bmlvbgd1bmkyMzlDB3VuaTIzOUQHdW5pMjM5Qgd1bmkyMzlGB3VuaTIzQTAHdW5pMjM5RQd1bmkyMDhBB3VuaTIwN0EHdW5pMjIzNgxyZWZsZXhzdWJzZXQOcmVmbGV4c3VwZXJzZXQNcmV2bG9naWNhbG5vdAd1bmkyM0FEB3VuaTIzQUMHdW5pMjNBQgd1bmkyM0E1B3VuaTIzQTYHdW5pMjNBNAd1bmkyMkEyDHByb3BlcnN1YnNldAd1bmkyMjhBCHN1Y2h0aGF0DnByb3BlcnN1cGVyc2V0B3VuaTIyOEIHdW5pMjJBNAd1bmkyMkEzB3VuaTIyMDQJdGhlcmVmb3JlB3VuaTIyQUEHdW5pMjJBOAl1bml2ZXJzYWwNcGVycGVuZGljdWxhcgl1bmkyMjFFLjEOdW5pMDAzRS5jZW50ZXILbGVzcy5jZW50ZXIGcGx1cy4xC3BsdXMuc3BhY2VyDGVxdWFsLnNwYWNlcg51bmkwMDNFLnNwYWNlcgtsZXNzLnNwYWNlcg51bmkwMDI1LnNwYWNlcgdhcnJvd3VwB3VuaTIxOTcKYXJyb3dyaWdodAd1bmkyMTk4CWFycm93ZG93bgd1bmkyMTk5CWFycm93bGVmdAd1bmkyMTk2CWFycm93Ym90aAlhcnJvd3VwZG4HdW5pMjFFNAd1bmkyMUU1B3VuaTIxQTkHdW5pMjFCMAd1bmkyMUIxB3VuaTIxQjIHdW5pMjFCMwd1bmkyN0YyB3VuaTI3RjMHdW5pMjFFNwd1bmkyMUU4B3VuaTIxRTkHdW5pMjFFNgd1bmkyMzA0B3VuaTIzMjQHdW5pMjdGMAd1bmkyN0YxB3VuaTI3RjQHdW5pMjdGNQd1bmkyN0Y2B3VuaTI3RjcHdW5pMjdGOAd1bmkyN0Y5B3VuaTI3RkEHdW5pMjdGQgd1bmkyN0ZDB3VuaTI3RkQHdW5pMjdGRQd1bmkyN0ZGB3VuaTI3QTEGSDE4NTMzBmNpcmNsZQd1bmkyNUVGB3VuaTI1RDAHdW5pMjVEMQd1bmkyNUQyB3VuaTI1RDMHdW5pMjVENgd1bmkyNUQ3B3VuaTI1RDUHdW5pMjVGNAd1bmkyNUY1B3VuaTI1RjYHdW5pMjVGNwd1bmkyNUM5B3VuaTI1Q0UJaW52Y2lyY2xlB3VuaTI1REEHdW5pMjVEQgd1bmkyNUUwB3VuaTI1RTEHdW5pMjVEQwd1bmkyNUREB3VuaTI1REUHdW5pMjVERgd1bmkyNUM2B3VuaTI1QzcHdW5pMjVBRQpmaWxsZWRyZWN0B3VuaTI1QUQHdW5pMjVBRghTRjAxMDAwMAhTRjAyMDAwMAhTRjAzMDAwMAhTRjA0MDAwMAhTRjA1MDAwMAhTRjA2MDAwMAhTRjA3MDAwMAhTRjA4MDAwMAhTRjA5MDAwMAhTRjEwMDAwMAhTRjExMDAwMAhTRjE5MDAwMAhTRjIwMDAwMAhTRjIxMDAwMAhTRjIyMDAwMAhTRjIzMDAwMAhTRjI0MDAwMAhTRjI1MDAwMAhTRjI2MDAwMAhTRjI3MDAwMAhTRjI4MDAwMAhTRjM2MDAwMAhTRjM3MDAwMAhTRjM4MDAwMAhTRjM5MDAwMAhTRjQwMDAwMAhTRjQxMDAwMAhTRjQyMDAwMAhTRjQzMDAwMAhTRjQ0MDAwMAhTRjQ1MDAwMAhTRjQ2MDAwMAhTRjQ3MDAwMAhTRjQ4MDAwMAhTRjQ5MDAwMAhTRjUwMDAwMAhTRjUxMDAwMAhTRjUyMDAwMAhTRjUzMDAwMAhTRjU0MDAwMAlmaWxsZWRib3gGSDIyMDczB3VuaTI1QTIHdW5pMjVBMwd1bmkyNUE0B3VuaTI1QTUHdW5pMjVBNgd1bmkyNUE3B3VuaTI1QTgHdW5pMjVBOQZIMTg1NDMGSDE4NTUxB3VuaTI1RTcHdW5pMjVFOAd1bmkyNUU5B3VuaTI1RUEHdW5pMjVFQgd1bmkyNUYwB3VuaTI1RjEHdW5pMjVGMgd1bmkyNUYzB3RyaWFndXAHdW5pMjVCNgd0cmlhZ2RuB3VuaTI1QzAHdHJpYWdydAd0cmlhZ2xmB3VuaTI1RTUHdW5pMjVFMgd1bmkyNUUzB3VuaTI1RTQHdW5pMjUzMAd1bmkyNTEyB3VuaTI1MjcHdW5pMjUwRQd1bmkyNTFGB3VuaTI1NDEHdW5pMjUyRgd1bmkyNTExB3VuaTI1MjkHdW5pMjUwRAd1bmkyNTIxB3VuaTI1NDcHdW5pMjU0RAd1bmkyNTRGB3VuaTI1N0IHdW5pMjUzMwd1bmkyNTEzB3VuaTI1MEYHdW5pMjUwMQd1bmkyNTc4B3VuaTI1N0UHdW5pMjUwOQd1bmkyNTBCB3VuaTI1N0EHdW5pMjUwNQd1bmkyNTA3B3VuaTI1NzkHdW5pMjUzQgd1bmkyNTFCB3VuaTI1N0YHdW5pMjUxNwd1bmkyNTAzB3VuaTI1NEIHdW5pMjUyQgd1bmkyNTIzB3VuaTI1NDUHdW5pMjUyRAd1bmkyNTM1B3VuaTI1M0QHdW5pMjUzMgd1bmkyNTNBB3VuaTI1NEEHdW5pMjU0Mwd1bmkyNTczB3VuaTI1NzIHdW5pMjU3MQd1bmkyNTRDB3VuaTI1NEUHdW5pMjU3Nwd1bmkyNTc0B3VuaTI1N0MHdW5pMjUwOAd1bmkyNTBBB3VuaTI1NzYHdW5pMjUwNAd1bmkyNTA2B3VuaTI1NzUHdW5pMjU3RAd1bmkyNTQ2B3VuaTI1MkUHdW5pMjUzNgd1bmkyNTNFB3VuaTI1MzEHdW5pMjUzOQd1bmkyNTQ5B3VuaTI1NDQHdW5pMjU0MAd1bmkyNTM4B3VuaTI1MjYHdW5pMjUxQQd1bmkyNTFFB3VuaTI1MTYHdW5pMjU0OAd1bmkyNTM3B3VuaTI1MkEHdW5pMjUxOQd1bmkyNTIyB3VuaTI1MTUHdW5pMjU0Mgd1bmkyNTI4B3VuaTI1MjAHdW5pMjUzRgd1bmkyNTI1B3VuaTI1MUQHdW5pMjU2RAd1bmkyNTZFB3VuaTI1NkYHdW5pMjU3MAd1bmkyNzEzB3VuaTIzODcHdW5pMjMwMAd1bmkyMTEzCWVzdGltYXRlZAd1bmkyMTE2B3VuaTIzOEIHdW5pMjMwMwd1bmkyMzg4BWhvdXNlB3VuaTIxRUEHdW5pMjMyNwd1bmkyMzJCB3VuaTIzMjYHdW5pMjNDRgd1bmkyMzI4B3VuaTIzMjUHdW5pMjFERgd1bmkyMURFB3VuaTIzMTgHdW5pMjNDRQd1bmkyMzA2B3VuaTIzMDUHdW5pMjE4Qgd1bmkyMThBDnVuaTAwMjYuc3BhY2VyCmJhci5zcGFjZXIMdW5pMDAyNi5zczAzE3VuaTAwMjYuYmVmb3JlLnNzMDMHYXQuc3MwNQlwbHVzLmRub20KbWludXMuZG5vbQplcXVhbC5kbm9tEHVuaTAwMjYwMDI2LmxpZ2EQYmFyX3VuaTAwN0QubGlnYRBiYXJfdW5pMDA1RC5saWdhB2Jhcl9iYXILYmFyX2Jhcl9iYXIYYmFyX2Jhcl9iYXJfdW5pMDAzRS5saWdhFGJhcl9iYXJfdW5pMDAzRS5saWdhEGJhcl91bmkwMDNFLmxpZ2EQdW5pMDAyNDAwM0UubGlnYQ5wbHVzX3BsdXMubGlnYRNwbHVzX3BsdXNfcGx1cy5saWdhEXBsdXNfdW5pMDAzRS5saWdhEGVxdWFsX2VxdWFsLmxpZ2EWZXF1YWxfZXF1YWxfZXF1YWwubGlnYRJ1bmkwMDNFX2VxdWFsLmxpZ2EQdW5pMDAzRTAwM0UubGlnYRR1bmkwMDNFMDAzRTAwM0UubGlnYRlsZXNzX3VuaTAwMjEwMDJEMDAyRC5saWdhEWxlc3NfdW5pMDAyQS5saWdhFWxlc3NfdW5pMDAyQTAwM0UubGlnYQ1sZXNzX2Jhci5saWdhEWxlc3NfYmFyX2Jhci5saWdhFWxlc3NfYmFyX2Jhcl9iYXIubGlnYRVsZXNzX2Jhcl91bmkwMDNFLmxpZ2ERbGVzc191bmkwMDI0LmxpZ2EVbGVzc191bmkwMDI0MDAzRS5saWdhDmxlc3NfcGx1cy5saWdhFmxlc3NfcGx1c191bmkwMDNFLmxpZ2EPbGVzc19lcXVhbC5saWdhEWxlc3NfdW5pMDAzRS5saWdhDmxlc3NfbGVzcy5saWdhE2xlc3NfbGVzc19sZXNzLmxpZ2ERbGVzc191bmkwMDdFLmxpZ2EMbGVzc191bmkwMDNFFWxlc3NfdW5pMDA3RTAwN0UubGlnYQ9sZXNzX3NsYXNoLmxpZ2EXbGVzc19zbGFzaF91bmkwMDNFLmxpZ2EQdW5pMDA3RTAwMkQubGlnYQ91bmkwMDdFX2F0LmxpZ2EQdW5pMDA3RTAwM0UubGlnYQt1bmkwMDdFMDA3RRR1bmkwMDdFMDA3RTAwM0UubGlnYRJ1bmkwMDVFX2VxdWFsLmxpZ2ELdW5pMDAyNTAwMjUJcGx1cy5udW1yCm1pbnVzLm51bXIKZXF1YWwubnVtcghiYXIuY2FsdApiYXIuY2FsdC4xCmJhci5jYWx0LjIKYmFyLmNhbHQuMwpiYXIuY2FsdC40CmJhci5jYWx0LjUKYmFyLmNhbHQuNgpiYXIuY2FsdC43CmJhci5jYWx0LjgKYmFyLmNhbHQuOQtiYXIuY2FsdC4xMAtiYXIuY2FsdC4xMQtiYXIuY2FsdC4xMgplcXVhbC5jYWx0DGVxdWFsLmNhbHQuMQxlcXVhbC5jYWx0LjIMdW5pMDAzRS5jYWx0DnVuaTAwM0UuY2FsdC4xDnVuaTAwM0UuY2FsdC4yDnVuaTAwM0UuY2FsdC4zDnVuaTAwM0UuY2FsdC40DnVuaTAwM0UuY2FsdC41DnVuaTAwM0UuY2FsdC42DnVuaTAwM0UuY2FsdC43DnVuaTAwM0UuY2FsdC44DnVuaTAwM0UuY2FsdC45D3VuaTAwM0UuY2FsdC4xMA91bmkwMDNFLmNhbHQuMTEJbGVzcy5jYWx0C2xlc3MuY2FsdC4xC2xlc3MuY2FsdC4yC2xlc3MuY2FsdC4zC2xlc3MuY2FsdC40C2xlc3MuY2FsdC41C2xlc3MuY2FsdC42C2xlc3MuY2FsdC43C2xlc3MuY2FsdC44C2xlc3MuY2FsdC45DGxlc3MuY2FsdC4xMAxsZXNzLmNhbHQuMTESdW5pMDAzRV9lcXVhbC5zczAyD2xlc3NfZXF1YWwuc3MwMhV1bmkwMDI0MDAzRS5saWdhLnNzMDQWbGVzc191bmkwMDI0LmxpZ2Euc3MwNBpsZXNzX3VuaTAwMjQwMDNFLmxpZ2Euc3MwNBJlcXVhbF91bmkwMDdFLnNzMDcQZXF1YWxfZXF1YWwuc3MwOBZlcXVhbF9lcXVhbF9lcXVhbC5zczA4B3VuaTAzRjYHdW5pMDM3NAd1bmkwMzc1B3VuaTAyQkMHdW5pMDJCQQd1bmkwMkM5B3VuaTAyQjkHdW5pMDMwOAd1bmkwMzA3CWdyYXZlY29tYglhY3V0ZWNvbWIHdW5pMDMwQgd1bmkwMzAyB3VuaTAzMEMHdW5pMDMwNgd1bmkwMzBBCXRpbGRlY29tYgd1bmkwMzA0B3VuaTAzMDUHdW5pMDMwRgd1bmkwMzEzB3VuaTAzMTQHdW5pMDMyNgd1bmkwMzI3B3VuaTAzMzUHdW5pMDMzNgljYXJvbi5hbHQJdW5pMDMyNi4xCXVuaTAwQTguMQl1bmkwMkQ5LjEJdW5pMDMwMC4xCXVuaTAzMDEuMQl1bmkwMkRELjEJdW5pMDMwMi4xCmNhcm9uLmNhc2UKYnJldmUuY2FzZQZyaW5nLjEHdGlsZGUuMQl1bmkwMEFGLjEJdW5pMDBCOC4xDWFjdXRlLmxvY2xQTEsSYWN1dGUuY2FzZS5sb2NsUExLB3VuaTAzNDIHdW5pMDM0NQV0b25vcwp0b25vcy5jYXNlDWRpZXJlc2lzdG9ub3MMdW5pMUZGRC5jYXNlB3VuaUUwMDAHdW5pRTAwMQl1bmkwMzA2LjEOdW5pMDA3RS5zcGFjZXIGci5zczAxDnVuaTAwNUUuc3BhY2VyAAAAAQAB//8ADwABAAIAAAAAAAAAAAAOAAEAAgAAAAwAAAAWAAEAAwSSBJMEtAACAAIEgwSRAAAEswSzAA8AAQAAAAoAQABoAAZERkxUACZjeXJsACZncmVrACZsYXRuACZ6aW5oACZ6eXl5ACYABAAAAAD//wADAAAAAQACAANjcHNwABRtYXJrABpta21rACAAAAABAAAAAAABAAEAAAACAAIAAwAEAAoAEgAaACQAAQAAAAEAJAAEAAAAAQAmAAYAEAABBjAAAAAGABAAAQY2AAEAAQbeAAUABQAKAAEG5Ab0AAIGNgAMAYEIAAgGCAwIEggYCB4IJAgqCDAINgg8CEIISAhOCFQIWghgCGYIbAhyCHgIfgiECIoIkAiWCJwIogioCK4ItAi6CMAIxgjMCNII2AjeCOQI6gjwCPYI/AkCCQgJDgkUCRoJIAkmCSwJMgk4CT4JRAlKCVAJVglcCWIJaAluCXQJegmACYYJjAmSCZgJngmkCaoJsAm2CbwJwgnICc4J1AnaCeAJ5gnsCfIJ+An+CgQKCgoQChYKHAoiCigKLgo0CjoKQApGCkwKUgpYCl4KZApqCnAKdgp8CoIKiAqOCpQKmgqgCqYKrAqyCrgKvgrECsoK0ArWCtwK4groCu4K9Ar6CwALBgsMCxILGAseCyQLKgswCzYLPAtCC0gLTgtUC1oLYAtmC2wLcgt4C34LhAuKC5ALlgucC6ILqAuuC7QLugvAC8YLzAvSC9gL3gvkC+oL8Av2C/wMAgwIDA4MFAwaDCAMJgwsDDIMOAw+DEQMSgxQDFYMXAxiDGgMbgx0DHoMgAyGDIwMkgyYDJ4MpAyqDLAMtgy8DMIMyAzODNQM2gzgDOYM7AzyDPgM/g0EDQoNEA0WDRwNIgAAAAANKA0uDTQNOg1ADUYNTA1SDVgNXg1kDWoNcA12DXwNgg2IDY4NlA2aDaANpg2sDbINuA2+DcQNyg3QDdYN3A3iDegN7g30DfoOAA4GDgwOEg4YDh4OJA4qDjAONg48DkIOSA5ODlQOWg5gDmYObA5yDngOfg6EAAAOigAADpAOlg6cDqIOqA6uDrQOug7ADsYOzA7SDtgO3g7kDuoO8A72DvwPAg8IDw4PFA8aDyAPJg8sDzIPOA8+D0QPSg9QD1YPXA9iD2gPbg90D3oPgA+GD4wAAA+SAAAPmAAAD54AAA+kAAAPqg+wD7YPvA/CD8gAAA/OD9QAAA/aAAAP4AAAD+YAAA/sAAAP8gAAD/gAAA/+AAAQBAAAEAoAABAQAAAQFgAAEBwAABAiECgQLhA0EDoQQBBGEEwQUhBYEF4QZBBqEHAQdhB8EIIQiBCOEJQQmhCgEKYQrBCyELgQvhDEEMoQ0BDWENwQ4hDoEO4Q9BD6EQARBhEMERIRGBEeESQRKhEwETYRPBFCAAARSAAAEU4RVBFaEWARZhFsEXIReBF+EYQRihGQEZYRnBGiEagRrhG0EboRwBHGEcwR0hHYEd4R5BHqEfAR9hH8EgISCBIOEhQSGhIgEiYSLBIyAAASOAAAEj4AABJEAAASSgAAElAAABJWAAASXAAAEmIAABJoAAASbgAAEnQSehKAEoYSjBKSEpgSnhKkEqoSsBK2ErwSwhLIAAASzgAAEtQAABLaAAAS4AAAEuYS7BLyEvgS/hMEEwoTEBMWExwTIhMoEy4TNBM6E0ATRhNMAAATUhNYAAATXhNkE2oTcBN2E3wTghOIE44TlBOaE6ATphOsE7ITuBO+E8QTyhPQE9YT3BPiE+gT7hP0E/oUABQGFAwUEhQYFB4UJBQqFDAUNhQ8FEIUSBROFFQUWhRgFGYUbBRyFHgUfhSEFIoUkBSWFJwUohSoFK4UtBS6FMAUxhTMFNIU2BTeFOQU6hTwFPYU/BUCFQgVDhUUFRoVIBUmAAAVLBUyFTgVPhVEFUoAABVQFVYAABVcAAAVYgAAFWgVbhV0FXoVgBWGFYwVkhWYFZ4VpBWqFbAVthW8FcIVyBXOFdQV2hXgFeYV7BXyFfgV/hYEFgoWEBYWFhwWIhYoFi4WNBY6FkAWRhZMFlIWWBZeFmQWahZwFnYWfBaCFogWjhaUFpoWoBamFqwWsha4Fr4WxBbKFtAW1hbcFuIW6BbuFvQW+hcAFwYXDBcSFxgXHhckFyoXMBc2FzwXQhdIF04XVBdaF2AXZhdsF3IXeBd+F4QXiheQF5YXnBeiF6gXrhe0F7oXwBfGF8wX0hfYF94X5BfqF/AX9hf8GAIYCBgOGBQYGhggAAAYJhgsGDIYOBg+GEQYShhQGFYYXBhiGGgYbhh0GHoYgBiGGIwYkhiYGJ4YpBiqGLAYthi8GMIYyBjOAAAY1BjaAAES2hLkAAEAcgAMAAES8AABEvITAgABAHAADAADE2ATZhNsABMAAAFkAAABagAAAXAAAAF2AAABfAAAAYIAAAGIAAABjgAAAZQAAAGaAAABoAAAAaYAAAGsAAABsgAAAbgAAQG+AAEBxAAAAcoAAQHQAAMAABJ4AAASfgAAEoQAEAAAEpwAABKiAAASqAAAEq4AABK0AAASugAAEsAAABLGAAASzAAAEtIAABLYAAAS3gAAEuQAABLqAAAS8AAAEvYAAgACAAEAhQAAARkBTQCFAAIAAgSDBJMAAASzBLQAEQACABsAAQAoAAAAKgArACgALQBfACoAYQCZAF0AmwC3AJYAuQDNALMAzwDaAMgA3ADoANQA6gEOAOEBEAESAQYBGQEjAQkBJQF0ARQBdgF2AWQBeAF9AWUBfwF/AWsBgQGJAWwBjQGOAXUBkgGSAXcCqwKrAXgCrQKtAXkC2ALYAXoC+gL6AXsC/gL+AXwD8APwAX0EfAR8AX4ElgSWAX8EvQS9AYAAAQJYBB0AAQJYBB0AAQWkBB0AAQJYBB0AAQIFBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQK7BB0AAQIpBB0AAQJVBB0AAQJYAAAAAQJYAAAAAQJYBB0AAQHWAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJUAAAAAQLTBWEAAQJYAAAAAQLTBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQLbBWEAAQK7AAAAAQLbBWEAAQK7AAAAAQLbBWEAAQK7AAAAAQLbBWEAAQK7AAAAAQLbBWEAAQK7AAAAAQLbBWEAAQK7AAAAAQI3BWEAAQJYAAAAAQJKBWEAAQJrAAAAAQI3BWEAAQJYAAAAAQJKBWEAAQJrAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQKCBWEAAQKLAAAAAQJYBWEAAQJYAAAAAQKUBWEAAQKVAAAAAQKUBWEAAQKVAAAAAQKUBWEAAQKVAAAAAQKUBWEAAQKVAAAAAQKUBWEAAQKVAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQK7BWEAAQJYAAAAAQK7BWEAAQJYAAAAAQKNBWEAAQKFAAAAAQKNBWEAAQKFAAAAAQFnBWEAAQKXAAAAAQFnBWEAAQKXAAAAAQFnBWEAAQKXAAAAAQFnBWEAAQKXAAAAAQFnBWEAAQKXAAAAAQFkBWEAAQKTAAAAAQJYBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJVAAAAAQJYBWEAAQJVAAAAAQJYBWEAAQJVAAAAAQJYBWEAAQJVAAAAAQJjBWEAAQJRAAAAAQJjBWEAAQJRAAAAAQJjBWEAAQJRAAAAAQJjBWEAAQJRAAAAAQJjBWEAAQJRAAAAAQJjBWEAAQJRAAAAAQJWBWEAAQJWAAAAAQJWBWEAAQJWAAAAAQJWBWEAAQJWAAAAAQJWBWEAAQJWAAAAAQJWBWEAAQJWAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJ9BWEAAQJYAAAAAQJ9BWEAAQJYAAAAAQJ9BWEAAQJYAAAAAQJ9BWEAAQJYAAAAAQLbBWEAAQK7AAAAAQJVBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJjBWEAAQJRAAAAAQJ9BWEAAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBXgAAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJIBB0AAQJYAAAAAQJpBB0AAQJpBB0AAQJYBcUAAQJYAAAAAQKwBAwAAQKmAAAAAQKwBAwAAQKmAAAAAQKwBAwAAQKmAAAAAQKwBAwAAQKmAAAAAQKwBAwAAQKmAAAAAQKwBAwAAQKmAAAAAQJYBcUAAQJYAAAAAQIeBcUAAQIeAAAAAQJdBcUAAQJdAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBXgAAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQLkBcUAAQILAAAAAQJLBB0AAQJLBB0AAQJLBB0AAQJLBB0AAQJLBB0AAQJYBcUAAQJYAAAAAQJYBcUAAQJYAAAAAQJYBcUAAQJYAAAAAQJYAAAAAQJbBB0AAQJbBB0AAQJbBB0AAQJbBB0AAQJbBXgAAQJbBB0AAQJbBB0AAQJbBB0AAQJbBB0AAQJbBB0AAQLfBB0AAQLfBB0AAQLfBB0AAQJYBcUAAQJjAAAAAQJYBcUAAQJjAAAAAQJYBB0AAQJYAAAAAQISBcUAAQLRAAAAAQISBcUAAQLRAAAAAQISBcUAAQLRAAAAAQISBcUAAQLRAAAAAQISBcUAAQLRAAAAAQISBcUAAQLRAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJaAAAAAQJYBB0AAQJaAAAAAQJpBB0AAQJrAAAAAQJYBB0AAQJaAAAAAQJYBB0AAQJaAAAAAQJYBB0AAQJaAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBXgAAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYBB0AAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBcUAAQJY/nEAAQJYBB0AAQJYAAAAAQKVBB0AAQHLAAAAAQKVBB0AAQHLAAAAAQKVBB0AAQHLAAAAAQKVBB0AAQHLAAAAAQJnBB0AAQJRAAAAAQJnBB0AAQJRAAAAAQJnBB0AAQJRAAAAAQJnBB0AAQJRAAAAAQJnBB0AAQJRAAAAAQJnBB0AAQJRAAAAAQHlBRgAAQLnAAAAAQHlBRgAAQLnAAAAAQHlBRgAAQLnAAAAAQHlBRgAAQLnAAAAAQHlBRgAAQLnAAAAAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBXgAAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBXgAAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYBB0AAQJYBB0AAQJYBXgAAQJYBB0AAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQJtBB0AAQJYAAAAAQKwBAwAAQKmAAAAAQJYBB0AAQJaAAAAAQJYBB0AAQJYAAAAAQJnBB0AAQJRAAAAAQJtBB0AAQJYAAAAAQJYAAAAAQLfBB0AAQISBWEAAQLRAAAAAQK7BWEAAQJYAAAAAQJYBWEAAQJUAAAAAQJYBWEAAQJYAAAAAQK5BWEAAQFnAAAAAQJYBWEAAQJYAAAAAQKCBWEAAQKLAAAAAQJ9BWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQKNBWEAAQKFAAAAAQJYBWEAAQJYAAAAAQJVBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJWBWEAAQJWAAAAAQJfBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJaAAAAAQJYBWEAAQJUAAAAAQKCBWEAAQKLAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJYBWEAAQJaAAAAAQJYBWEAAQJYAAAAAQJfBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJY/nEAAQJYBWEAAQKnBWEAAQFVAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJY/nEAAQJeBWEAAQJeBWEAAQJeBWEAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQJYBWEAAQJYAAAAAQIpBB0AAQJRAAAAAQJYBcUAAQJY/nEAAQJYBB0AAQJY/nEAAQJYBcUAAQJYAAAAAQJ4BB0AAQJsAAAAAQJYBcUAAQJY/nEAAQJVBB0AAQETAAAAAQJYBcUAAQJYAAAAAQI5BB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBcUAAQJYAAAAAQJYBB0AAQJY/nEAAQJYBB0AAQJYAAAAAQJYBcUAAQJY/nEAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJlBB0AAQJY/nEAAQJYBB0AAQJY/nEAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJYBB0AAQJY/nEAAQJYBB0AAQJY/nEAAQJYBB0AAQJY/nEAAQJYBB0AAQJWAAAAAQI5BB0AAQJYAAAAAQI5BXgAAQJYAAAAAQI5BB0AAQJYAAAAAQJYBB0AAQJYAAAAAQJY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F2oADAEUAaABogGjAaQBpQGmAacBqAGpAaoBoQACF1wAHwH2AfcCFAIVAhYCFwIYAhkCKQIqAisCLAI8Aj0CPgI/AwAEpASlBKYEpwSoBKkEqgSrBKwErQSuBK8EsAS2AAEXUgACDIIMggABF1YABgABF1YAAgx2DHoAAhd0AAQAXwBlAOgA7gACF3IACwCBAIIAgwCEAIUBCgELAQwBDQEOBLEAAhdwAAIBnwGrAAEXbgADDEAMRAxMAAEXuAACDEQMSAABGB4AAgxKDFIAARiEAAIMUAxUAAEY3AACDFYMYAABGTQAAgxcDGAAARlmAAIMXgxmAAEZmAABDGAAAhniGegaChoSAAIAAAxkAAIaZBpqGnoaggACAAAMYgACGuga7hsKGxIAAgAADGAAAhtkG2obmBugAAIAAAxeAAIb/hwEHCAcKAACAAAMXgABHJgAAwxeDGIMaAABHRAAAgxmDGoAAR1aAAEMagACHcAdxh3oHfAAAgAADHIAAR5oAAIMdAyAAAIewh7IHvYe/gACAAAMegACH3gffh+aH6IAAgAADHwAASAWAAIMegyIAAEgkAACDIQMiAACIPwhAiEeISYAAgAADIwAASGUAAIMjAyUAAEh3gADDJAMlAycAAEiKAADDJQMmAycAAEiVgADDJQMmAycAAEihAADDJQMmAycAAEisgADDJQMmAycAAEi/AADDJgMoAykAAEjRgACDJwMpgABI5AAAgygDKoAASPaAAEMpAABJCQAAQyoAAEkbgABDKwAASS4AAEMsAABJQIAAQy0AAElNAACDLYMugABJWYAAQy4AAElmAACDLoMwgABJcoAAgy8DMAAASX8AAIMvgzCAAEmLgABDMAAASZ4AAIMxgzOAAEmqgACDMgM1AABJvQAAgzODNIAAScyAAIM0gzWAAEncAACDNYM4AABJ64AAgzaDOQAASfsAAIM3gziAAIoHigkKEYoTgACAAAM4AABKKgAAgzgDOwAASj0AAIM5gzuAAIpJiksKVopYgACAAAM6AACKcwp0inuKfYAAgAADOoAASpQAAIM5gz0AAEqrAABDO4AAir8KwQrGismAAMAAAz0DPgAASuIAAIM8gz6AAIruivAK9wr5AACAAAM9AABLDYAAgzyDPoAASxoAAIM9Az4AAEsmgACDPYM+gACLMws1Cz2LQQAAwAA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AAAAAQAEAAEAAgABAAEAAAACAAUABQABAAAAAQAAAOsAAQAFAAEAAQABAAEAAADsAAAAAQACAAEAAQABAAAA7QABAAIB5wLGAAEB5wABAAIB5wLGAAAAAAABAAMB5wLGAsYAAAACAewCCAABAAIB5wLGAAAAAQH7AAEAAQLGAAEAAADuAAAAAQACAecCxgABAAAA7wACAfsB+wABAAAAAQAAAO4AAQABAsYAAgAHAecB5wAGAeoB6gAGAewB7AACAggCCAADAgwCDAAFAsYCxgABAskCyQAEAAECxgABAAEAAgACAg0CDQACAsYCxgABAAEAAQABAAIAAQABAAAAAAABAAMAAQABAAEAAAACAAIAAwABAAIAAQABAAAAAwAEAAIAAwABAAIAAQABAAAAAgACAAQAAQACAAEAAQAAAAEABQABAAIAAQABAAAAAAABAAMAAQABAAIAAAACAAYAAQABAAIAAQABAAAAAQABAsYAAgAEAfMB8wABAsgCyQABAwUDBQACA/sD+wABAAECxgABAAEAAgAGAecB5wADAeoB6gADAfMB8wACAsYCxgABAsgCyQACA/sD+wACAAEAAQABAAIAAQABAAAAAAABAAMAAQABAAIAAAAAAAEABAABAAEAAwABAAAAAgACAAIAAQAAAAEAAADwAAEAAgABAAEAAQABAAAA8QAAAAEAAgABAAEAAQAAAPIAAQACAeoCxgABAeoAAQACAsYCxgAAAAAAAQADAsYCxgLGAAAAAgHsAggAAQACAsYCxgAAAAMCyQHsAggAAQACAsYCxgAAAAECxgABAAICxgLGAAAAAAABAAICxgLGAAEAAADzAAIDBQH9AAEAAAABAAAA8wABAf0AAQABAsYAAQAAAPQAAQACAeUB6gACAf0B/QABAAAAAQAAAPUAAQHqAAEAAgHqAeUAAAAAAAEAAwHqAeUB5QAAAAIB7AIIAAEAAgHqAeUAAAADAskB7AIIAAEAAgHqAeUAAAABAf0AAQABAeUAAQAAAPUAAAABAAIB6gHlAAEAAAD2AAEAAQIfAAIABAIfAh8AAQIuAi4AAwLIAskAAgP7A/sAAgABAh8AAQABAAIAAwIfAh8AAQLIAskAAgP7A/sAAgABAAEAAQACAAEAAQAAAAAAAQADAAEAAQABAAAAAQACAAEAAgABAAEAAAAAAAEAAwABAAEAAgAAAAIAAwADAAEAAAABAAAA9wABAAMAAQABAAEAAQAAAPgAAAABAAIAAQABAAEAAAD5AAEAAgLJAs4AAQLJAAEAAgLOAs4AAAAAAAEAAwLOAs4CzgAAAAAAAQACAs4CzgABAAAA+gACBLwDBwABAAAAAQAAAPoAAQMHAAEAAQLOAAEAAAD7AAEAAwLIAskCzgACBLwDBwABAAAAAQAAAPwAAQLJAAEAAgLOAsgAAAAAAAEAAwLOAsgCyAAAAAAAAQACAs4CyAABAAAA/AABAwcAAQABAsgAAQAAAPwAAQADAfACyALJAAEDBwABAAECyAABAAAA/QACAf8DBwABAAAAAQAAAP0AAAABAAIB8ALIAAEAAAD9AAEAAwKSAsgCyQABAwcAAQABAsgAAQAAAP4AAgKbAwcAAQAAAAEAAAD+AAAAAQACApICyAABAAAA/gABAAMCwgLIAskAAQMHAAEAAQLIAAEAAAD/AAIDBAMHAAEAAAABAAAA/wAAAAEAAgLCAsgAAQAAAP8AAQADAfMCyALJAAEDBwABAAECyAABAAABAAACAgEDBwABAAAAAQAAAQAAAQLJAAEAAgHzAsgAAAAAAAEAAwHzAsgCyAAAAAAAAQACAfMCyAABAAABAAABAAMB8gIIAicAAQHyAAEAAgInAggAAAAAAAEAAwInAggCCAAAAAAAAQACAicCCAABAAABAQACAi8CAAABAAAAAQAAAQEAAQIAAAEAAQIIAAEAAAEBAAEAAgHlAsYAAQHlAAEAAgHlAsYAAAAAAAEAAwHlAsYCxgAAAAEB+gABAAECxgABAAABAgAAAAEAAgHlAsYAAQAAAQMAAgH6AfoAAQAAAAEAAAECAAEAAgHlAskAAQHlAAEAAgHlAskAAAAAAAEAAwHlAskCyQAAAAEB+gABAAECyQABAAABBAAAAAEAAgHlAskAAQAAAQUAAgH6AfoAAQAAAAEAAAEEAAEAAQHlAAEB5QABAAIB5QHlAAAAAAABAAMB5QHlAeUAAAACAfoB+gABAAAAAQAAAQYAAQH6AAEAAQHlAAEAAAEHAAAAAQACAeUB5QABAAABCAABAAECwgABAsIAAQACAsICwgAAAAAAAQADAsICwgLCAAAAAgMEAwQAAQAAAAEAAAEJAAEDBAABAAECwgABAAABCgAAAAEAAgLCAsIAAQAAAQsAAQABAfMAAQHzAAEAAgHzAfMAAAAAAAEAAwHzAfMB8wAAAAICAQIBAAEAAAABAAABDAABAgEAAQABAfMAAQAAAQ0AAAABAAIB8wHzAAEAAAEOAAEAAQD7AAEA+wABAAIA+wD7AAAAAAABAAMA+wD7APsAAAACARMBEwABAAAAAQAAAQ8AAQETAAEAAQD7AAEAAAEQAAAAAQACAPsA+wABAAABEQABAAED8wABA/MAAQABA/MAAAAAAAEAAgPzA/MAAAABBBUAAQAAAAEAAAESAAAAAQABA/MAAQAAARMAAQACAsYC0AABBL4AAQAAAAEAAAEUAAEC0AABAAECxgAAAAAAAQACAsYCxgAAAAAAAQABAsYAAQAAARQAAQABAs4AAQLOAAEAAQLOAAAAAAABAAICzgLOAAAAAQS8AAEAAAABAAABFQAAAAEAAQLOAAEAAAEWAAEAAgLOA/IAAQLOAAEAAQPyAAAAAAABAAID8gPyAAAAAAABAAED8gABAAABFwABBLwAAQAAAAEAAAEXAAEAAgLIAs4AAQS8AAEAAAABAAABGAABAs4AAQABAsgAAAAAAAEAAgLIAsgAAAAAAAEAAQLIAAEAAAEYAAEAAgIfAs4AAQS8AAEAAAABAAABGQABAs4AAQABAh8AAAAAAAEAAgIfAh8AAAAAAAEAAQIfAAEAAAEZAAEAAQHwAAEB8AABAAEB8AAAAAAAAQACAfAB8AAAAAEB8wABAAEB8AAAAAAAAQACAfAB8wAAAAEB/wABAAAAAQAAARoAAAABAAEB8AABAAABGwABAAIB8ALIAAEB8AABAAECyAAAAAAAAQACAsgCyAAAAAAAAQABAsgAAQAAARwAAQH/AAEAAAABAAABHAABAAIB8AHzAAEB8AABAAEB8wAAAAAAAQACAfMB8wAAAAEB8wABAAEB8wAAAAAAAQACAfMB8AAAAAAAAQABAfMAAQAAAR0AAQH/AAEAAAABAAABHQABAAICCwP7AAEEFgABAAAAAQAAAR4AAQP7AAEAAQILAAAAAAABAAICCwILAAAAAQIKAAEAAQILAAAAAAABAAECCwABAAABHgABAAICDQP7AAEEFgABAAAAAQAAAR8AAQP7AAEAAQINAAAAAAABAAICDQINAAAAAQIMAAEAAQINAAAAAAABAAECDQABAAABHwABAAICCgP7AAECCgABAAED+wAAAAAAAQACA/sD+wAAAAAAAQACA/sCCwAAAAAAAQABA/sAAQAAASAAAQIcAAEAAAABAAABIAABAAICDAP7AAECDAABAAED+wAAAAAAAQACA/sD+wAAAAAAAQACA/sCDQAAAAAAAQABA/sAAQAAASEAAQIdAAEAAAABAAABIQABAAIB8gINAAECHgABAAAAAQAAASIAAQINAAEAAQHyAAAAAAABAAIB8gHyAAAAAAABAAEB8gABAAABIgABAAEB5wACAAUB5wHnAAEB7AHsAAIB+wH7AAUCCAIIAAMCyALJAAQAAQHnAAEAAQACAAIB5wHnAAECyALJAAIAAQABAAEAAQABAAAAAAABAAIAAQABAAAAAgACAAMAAQABAAEAAAAAAAEAAgABAAIAAAABAAQAAQABAAEAAAABAAUAAQAAAAEAAAEjAAAAAQABAAEAAQAAASQAAQACAecCxgABAecAAQABAsYAAAAAAAEAAgLGAsYAAAACAewCCAABAAECxgAAAAECxgABAAECxgAAAAAAAQABAsYAAQAAASUAAQH7AAEAAAABAAABJQABAAICkgLIAAECkgABAAECyAAAAAAAAQACAsgCyAAAAAAAAQABAsgAAQAAASYAAQKbAAEAAAABAAABJgABAAECxgACAAcB5wHnAAYB6gHqAAYB7AHsAAICCAIIAAMCDAIMAAUCxgLGAAECyQLJAAQAAQLGAAEAAQACAAICDQINAAICxgLGAAEAAQABAAEAAQABAAAAAAABAAIAAQABAAAAAgACAAMAAQABAAEAAAADAAQAAgADAAEAAQABAAAAAgACAAQAAQABAAEAAAABAAUAAQABAAEAAAAAAAEAAgABAAIAAAACAAYAAQABAAEAAQAAAAEAAQLGAAIABAHzAfMAAQLIAskAAQMFAwUAAgP7A/sAAQABAsYAAQABAAIABgHnAecAAwHqAeoAAwHzAfMAAgLGAsYAAQLIAskAAgP7A/sAAgABAAEAAQABAAEAAAAAAAEAAgABAAIAAAAAAAEAAwABAAMAAQAAAAEAAgABAAAAAQAAAScAAAABAAEAAQABAAABKAABAAIB6gLGAAEB6gABAAECxgAAAAAAAQACAsYCxgAAAAIB7AIIAAEAAQLGAAAAAwLJAewCCAABAAECxgAAAAECxgABAAECxgAAAAAAAQABAsYAAQAAASkAAQH9AAEAAAABAAABKQABAAEB6gABAeoAAQABAeoAAAAAAAEAAgHqAeoAAAACAewCCAABAAEB6gAAAAMCyQHsAggAAQABAeoAAAABAf0AAQAAAAEAAAEqAAAAAQABAeoAAQAAASsAAQACAsYCyAACAAMCxgLGAAMCyALIAAIDBgMGAAEAAQLGAAMAAQAAAAIAAgAGAecB5wACAeoB6gACAfMB8wACAsYCxgABAsgCyQACA/sD+wACAAEAAQABAAAAAQAAASwAAQACAAEAAQABAAAAAAABAAIAAQABAAAAAQADAAEAAQABAAAAAAABAAIAAQACAAAAAAABAAEAAQABAAABLAABAAICHwLOAAECHwABAAECzgAAAAAAAQACAs4CzgAAAAAAAQABAs4AAQAAAS0AAQIuAAEAAAABAAABLQABAAECHwACAAQCHwIfAAECLgIuAAMCyALJAAID+wP7AAIAAQIfAAEAAQACAAMCHwIfAAECyALJAAID+wP7AAIAAQABAAEAAQABAAAAAAABAAIAAQABAAAAAQACAAEAAQABAAAAAAABAAIAAQACAAAAAQADAAEAAAABAAABLgAAAAEAAQABAAEAAAEvAAEAAgLJAs4AAQLJAAEAAQLOAAAAAAABAAICzgLOAAAAAAABAAECzgABAAABMAABAwcAAQAAAAEAAAEwAAEAAgHwAskAAQMHAAEAAAABAAABMQABAskAAQABAfAAAAAAAAEAAgHwAfAAAAAAAAEAAQHwAAEAAAExAAEAAgKSAskAAQMHAAEAAAABAAABMgABAskAAQABApIAAAAAAAEAAgKSApIAAAAAAAEAAQKSAAEAAAEyAAEAAgLGAskAAgAFAewB7AADAggCCAAEAsYCxgAFAskCyQACAwcDBwABAAECxgAEAAEAAAAAAAIAAgAGAecB5wACAeoB6gACAfMB8wACAsYCxgABAsgCyQACA/sD+wACAAEAAQABAAAAAQAAATMAAQACAAEAAQABAAAAAAABAAIAAQABAAAAAgADAAQAAQABAAEAAAABAAUAAQABAAEAAAAAAAEAAgABAAIAAAAAAAEAAQABAAEAAAEzAAEAAgLIAskAAQMHAAEAAAABAAABNAABAskAAQABAsgAAAAAAAEAAgLIAsgAAAAAAAEAAQLIAAEAAAE0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AAUAAQKHAAACjgSiAocEpASxBJwEswS6BKoEvAS+BLIAAQABAfQAAQABAfMAAQABAfQAAQABAfMAAgAFAAEChwAAAo4EogKHBKQEsQScBLMEugSqBLwEvgSyAAEAAgHzAfQAAQICAAEAAAABAAAAjwAAAAEAAQHzAAEAAACPAAEAAgGVAZ8AAQABAQAAAQAZAAEADQAOABQAGAAiAIYAkgCTAJkAnQCnAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwQTBBQAAQABAQAAAgAEAZUBnwACAaABoQABAasBqwABBBMEFAACAAEBAAABAAEAAgANAAEAAQABAA0ADgABABQAFAABABgAGAABACIAIgABAIYAhgABAJIAkwABAJkAmQABAJ0AnQABAKcApwABAZUBnwACAaABqwABBBMEFAACAAEAAQABAAEAAQABAAAAkQABAAIAAQABAAIAAQAAAJIAAgABAaABqwAAAAEAAQEAAAIAAQGgAasAAAABAAICJQImAAMCcQJwAnIAAgJxAnIAAQABA/sAAgADA/sD+wABBFkEWQACBFsEWwACAAED+wABAAEAAgACAsYCxgACA/sD+wABAAEAAQABAAIAAQACAAAAAQABAAEAAQACAAAAAQACAAEAAgABAAEAAAABAAECxgACAAwCcwJ0AAECeQJ6AAECfAJ9AAEETARNAAEETwRPAAEEVQRVAAEEWQRZAAEEWwRdAAEEXwRgAAEEaARpAAEEawRrAAEEbQRtAAEAAQLGAAEAAQACAAYB5wHnAAEB6gHqAAEB8wHzAAECxgLGAAECyALJAAED+wP7AAEAAQABAAEAAQABAAEAAACUAAEAAQABAAAAAQAAAJUAAQAGAecB6gHzAsgCyQP7AAIABgIBAgEAAgMGAwYAAwMHAwcABAQWBBYABQRZBFkAAQRbBFsAAQACAAYB5wHnAAEB6gHqAAIB8wHzAAMCyALIAAQCyQLJAAUD+wP7AAYAAgAFAfMB8wACAsYCxgABAsgCyAADAskCyQAEA/sD+wAFAAEAAQABAAEAAQABAAAAlAACAAIAAQABAAEAAQABAAAAlAABAAEAAQACAAIAAQABAAAAlQABAAEAAQABAAEAAQAAAJYAAgACAAEAAQAAAAEAAACXAAEAAQABAAEAAgABAAAAmAABAAEAAQAAAAEAAACZAAEAAgABAAEAAQABAAAAmgAAAAEAAgACAAEAAQAAAJsAAgADAAEAAQABAAEAAQAAAJQAAQABAAEAAgADAAEAAQAAAJUAAQABAAEAAQABAAEAAACWAAIAAwABAAEAAAABAAAAlwABAAEAAQABAAMAAQAAAJgAAQABAAEAAAABAAAAmQABAAMAAQABAAEAAQAAAJoAAAABAAIAAwABAAEAAACbAAIABAABAAEAAQABAAEAAACUAAEAAQABAAIABAABAAEAAACVAAEAAQABAAEAAQABAAAAlgACAAQAAQABAAAAAQAAAJcAAQABAAEAAQAEAAEAAACYAAEAAQABAAAAAQAAAJkAAQAEAAEAAQABAAEAAACaAAAAAQACAAQAAQABAAAAmwACAAUAAQABAAEAAQABAAAAlAABAAEAAQACAAUAAQABAAAAlQABAAEAAQABAAEAAQAAAJYAAgAFAAEAAQAAAAEAAACXAAEAAQABAAEABQABAAAAmAABAAEAAQAAAAEAAACZAAEABQABAAEAAQABAAAAmgAAAAEAAgAFAAEAAQAAAJsAAQABAsgAAQABAsYAAQABAskAAQACAsYCyQABAAECyAABAAECxgABAAECyQABAAECxgABAAECyQABAAICxgLJAAEAAQLGAAEAAQHzAAEAAgHzAsYAAQAEAfMCyALJA/sAAAABAAECxgABAAAAnAAAAAEAAQLGAAEAAACdAAEAAQLGAAEABQHnAeoCxgLIA/sAAQADALAAvADCAAIABgAiACIAAgArACsAAgBhAGEAAgCnAKcAAQEQAREAAQESARIAAgACAAMAsACwAAEAvAC8AAEAwgDCAAIAAgAAAAEAAQABAAAAAQAAAJ4AAQACAAEAAAABAAAAngABAAQBMgEzATYBNwABAAEBIgABAAMBMgEzATYAAQABAS0AAgABATIBOAAAAAIAAgEaAToAAQKKAooAAgACAAEBMgE4AAEAAgACARoBOgABAooCigACAAAAAQABAAEAAQAAAKAAAQABAAEAAAABAAAAoQAAAAEAAgACAAEAAQAAAKIAAgACAAEAAQAAAAEAAACjAAEAAQP7AAIAAgJwAnEAAgP7A/sAAQABA/sAAQABAAIAAgIfAh8AAgP7A/sAAQABAAECHwACAAkCcAJxAAEEUARRAAEEUwRTAAEEVwRXAAEEYgRjAAEEZQRmAAEEbgRvAAEEcQRxAAEEcwRzAAEAAQIfAAEAAQACAAMCHwIfAAECyALJAAED+wP7AAEAAQABAAEAAQABAAEAAACkAAEAAQABAAAAAQAAAKUAAQADAsgCyQP7AAIABAJwAnEAAgMGAwYAAQMHAwcAAwQWBBYABAACAAMCyALIAAECyQLJAAID+wP7AAMAAgAEAh8CHwABAsgCyAACAskCyQADA/sD+wAEAAIAAQACAAEAAQABAAEAAACkAAEAAgABAAIAAgABAAEAAAClAAEAAgABAAEAAQABAAAApgACAAEAAgABAAAAAQAAAKcAAQACAAEAAQACAAEAAACoAAEAAgABAAAAAQAAAKkAAQABAAEAAQABAAEAAACqAAAAAQACAAIAAQABAAAAqwAAAAEAAQABAAEAAACsAAIAAwACAAEAAQABAAEAAACkAAEAAgABAAIAAwABAAEAAAClAAEAAgABAAEAAQABAAAApgACAAMAAgABAAAAAQAAAKcAAQACAAEAAQADAAEAAACoAAEAAgABAAAAAQAAAKkAAQADAAEAAQABAAEAAACqAAAAAQACAAMAAQABAAAAqwAAAAEAAQABAAEAAACsAAIABAACAAEAAQABAAEAAACkAAEAAgABAAIABAABAAEAAAClAAEAAgABAAEAAQABAAAApgACAAQAAgABAAAAAQAAAKcAAQACAAEAAQAEAAEAAACoAAEAAgABAAAAAQAAAKkAAQAEAAEAAQABAAEAAACqAAAAAQACAAQAAQABAAAAqwAAAAEAAQABAAEAAACsAAEAAQIfAAEABAIfAsgCyQP7AAEAAQIfAAIACQABAIUAAQCGAQ8AAgEVARgAAgEZAU0AAQFOAYoAAgGVAZ4AAQIIAg0AAQP7A/sAAQQTBBQAAQABAh8AAQABAAIACQABAIUAAgCGAQ8AAQEVARgAAQEZAU0AAgFOAYoAAQGVAZ4AAgIIAg0AAgP7A/sAAgQTBBQAAgABAAEAAQABAAEAAAABAAIAAQABAAIAAAAAAAEAAQABAAEAAACtAAEAAgABAAAAAQAAAK4AAQABAsIAAgAJAAEAhQABAIYBDwACARUBGAACARkBTQABAU4BigACAZUBngABAggCDQABA/sD+wABBBMEFAABAAECwgABAAEAAgAJAAEAhQACAIYBDwABARUBGAABARkBTQACAU4BigABAZUBngACAggCDQACA/sD+wACBBMEFAACAAEAAQABAAEAAQAAAAEAAgABAAEAAgAAAAAAAQABAAEAAQAAAK8AAQACAAEAAAABAAAAsAABAAEB8AACAAkAAQCFAAEAhgEPAAIBFQEYAAIBGQFNAAEBTgGKAAIBlQGeAAECCAINAAED+wP7AAEEEwQUAAEAAQHwAAEAAQACAAkAAQCFAAIAhgEPAAEBFQEYAAEBGQFNAAIBTgGKAAEBlQGeAAICCAINAAID+wP7AAIEEwQUAAIAAQABAAEAAQABAAAAAQACAAEAAQACAAAAAAABAAEAAQABAAAAsQABAAIAAQAAAAEAAACyAAEAAQHnAAIACQABAIUAAQCGAQ8AAgEVARgAAgEZAU0AAQFOAYoAAgGVAZ4AAQIIAg0AAQP7A/sAAQQTBBQAAQABAecAAQABAAIACQABAIUAAgCGAQ8AAQEVARgAAQEZAU0AAgFOAYoAAQGVAZ4AAgIIAg0AAgP7A/sAAgQTBBQAAgABAAEAAQABAAEAAAABAAIAAQABAAIAAAABAAEAAQAAAAEAAACzAAAAAQABAAIAAQAAALQAAQABAfIAAgABAnYCdwABAAEB8gABAAEAAQHyAAEAAQABAAEAAQABAAEAAQAAALUAAQABAAEAAAABAAAAtgAAAAEAAQABAAEAAAC3AAEAAgJ/AoAAAQABA/sAAQABAicAAQABAicAAgACAn8CgAABBFgEWAABAAECJwABAAEAAgACAicCJwACA/sD+wABAAEAAQABAAIAAQACAAEAAAC4AAEAAQABAAEAAgABAAAAuQABAAEAAQAAAAEAAAC6AAAAAQACAAEAAgABAAAAuwAAAAEAAQACAAEAAAC8AAEAAQDfAAEAAgQrBDkAAQACA/MEHQABAAEEFQABAAEEFwABAAID8wQXAAEAAgPzBBcAAQAEApIEJQQ1BDYAAQABA/IAAQACBEMEvAABAs4AAQAAAAEAAAC+AAAAAQABBEMAAQAAAL4AAQABAfQAAQABAgMAAQABAgMAAQACAsYCzgABAsYAAQABAs4AAAAAAAEAAgLOAs4AAAAAAAEAAQLOAAEAAADBAAEDBQABAAAAAQAAAMEAAQACAeoCzgABAeoAAQABAs4AAAAAAAEAAgLOAs4AAAAAAAEAAQLOAAEAAADCAAEB/QABAAAAAQAAAMIAAQAEAlYCVwQpBCoAAQACAfMB9AABAAIB8wH0AAEAAQEAAAEAAQEAAAEABwHnAeoB8wLGAsgCyQP7AAEABQHzAsYCyALJA/sAAQAFAfMCxgLIAskD+wABAAUB8wLGAsgCyQP7AAEABQHzAsYCyALJA/sAAQAEAfMCyALJA/sAAQAEAfMCyALJA/sAAQAEAfMCyALJA/sAAQAEAfMCyALJA/sAAQABAsgAAQADALAAvADCAAEAAgEiAS0AAgABATIBOAAAAAEABAIfAsgCyQP7AAEABAIfAsgCyQP7AAEABAIfAsgCyQP7AAEAAwLIAskD+wABAAMCyALJA/sAAQADAsgCyQP7AAEAAwLIAskD+wABAAMCyALJA/sAAQABAh8AAQABAsIAAQABAfAAAQABAecAAQABAfIAAQABAfIAAQABAfIAAQACAicD+wABAAECJwABAAECJwABAAECJwABAAMD8wQVBBcAAQACBEMEvAABAAEB9AABAAECAwABAAICxgLOAAEAAgHqAs4AAgABAcAByQAAAAEABAABAEcAhgDQAAEAAQDCAMYAAgHuAAEAAQA6AD4AAgHuAAEAAwLIAskD+wABAAICyAP7AAEAAQP7AAEAAgLJA/sAAQACAsgD+wABAAICyQP7AAEAAgLIA/sAAQACAskD+wABAAED+wABAAECyAABAAECyAABAAECyQABAAECyQABAAED+wABAAECyAABAAECyQABAAMB6gIfAskAAQABAh8AAQACAsgCzgABAAECzgABAAEB8AABAAEB8AABAAEB5wABAAEB5wABAAIB5wLGAAEAAQLGAAEAAQLGAAEAAgHqAsYAAQACAeUB6gABAAEB6gABAAECHwABAAICyQLOAAEAAwLIAskCzgABAAMB8ALIAskAAQADApICyALJAAEAAwLCAsgCyQABAAMB8wLIAskAAQADAfICCAInAAEAAgHlAsYAAQABAeUAAQACAeUCyQABAAEB5QABAAECwgABAAECwgABAAEB8wABAAEB8wABAAEA+wABAAEA+wABAAED8wABAAED8wABAAICxgLQAAEAAQLOAAEAAgLOA/IAAQACAsgCzgABAAICHwLOAAEAAQHwAAEAAgHwAsgAAQACAfAB8wABAAICCwP7AAEAAgINA/sAAQACAgoD+wABAAICDAP7AAEAAgHyAg0AAQABAecAAQACAecCxgABAAICkgLIAAEAAQLGAAEAAgHqAsYAAQABAeoAAQACAsYCyAABAAICHwLOAAEAAQIfAAEAAgLJAs4AAQACAfACyQABAAICkgLJAAEAAgLGAskAAQACAsgCyQABAAICwgLJAAEAAgHzAskAAQACAfICCgABAAIB8gIMAAEAAgHnAfIAAQACAfICxgABAAIB6gHyAAEAAgHyAggAAQACAewB8gABAAIB8gInAAEAAQLkAAEAAQLkAAEAAgHlAsYAAQACAeUCHwABAAEB5QABAAIB5QHsAAEAAgLCAsgAAQABAsIAAQACAewCxgABAAIB5QHsAAEAAQHsAAEAAQHsAAEAAQHoAAEAAQHoAAEAAgHwAfMAAQACAfMCyAABAAEB8wABAAMB5wLIAskAAQACAAgAAQAAABQAAQAAABwAAndnaHQBAAAAAAIAAwAAAAIAAgGQAAACvAAAAAA=); - - font-weight: normal; - font-style: normal italic; -} - @font-face { - font-family: "Space Wham"; - src: url(data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMo8DPuMAAAE4AAAAYGNtYXD4xvseAAAEyAAABJhnbHlml1GywwAADJQAAJSkaGVhZB64MR4AAAC8AAAANmhoZWEhdhJBAAAA9AAAACRobXR4/3X+jAAAAZgAAAMwa2Vybvzp9VcAAKE4AAAAKmxvY2EANVWQAAAJYAAAAzRtYXhwANIAWAAAARgAAAAgbmFtZTK1OpYAAKFkAAANjHBvc3QBnADMAACu8AAAACAAAQAAAAEAABgqD91fDzz1AAAQAAAAAADX0eptAAAAANfR6m3+jP0YEXQSLgAAAAgAAgABAAAAAAABAAARdP0YAAAS6P6MAXQRdAABAAAAAAAAAAAAAAAAAAAAzAABAAAAzABWAAUAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAIMjAGQAAUABAgACAAAAP6MCAAIAAAACAAAzAMzAAAAAAQAAAAAAAAAoAAABwAAAAoAAAAAAAAAAEZTVFIAQAAgISINF/0YAAARdALoAAAB8wAAAAAHRQ0XAAAAIAAAC4YAAAF0AAABdAAAB0UAAARdAAAIugAADosAAA6LAAARdAAADosAAARdAAAF0QAABdEAAAi6AAAOiwAABF0AAAuiAAAEXQAAEXQAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAEXQAABF0AAAaLAAAOiwAABosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAF0QAAEXQAAAXRAAAOiwAADosAAAdFAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAARdAAAOiwAADosAAARdAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAAaLAAAEXQAABosAAAi6AAAEXQAADosAAA6LAAAEXQAAEXQAAAi6AAALogAACLoAABF0AAAOiwAAAugAAAi6AAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAADosAAA6LAAAOiwAA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ZWUgaXQgZXNwZWNpYWxseSB3ZWxsIG9uICJCIiwgIjMiLCAiOCIsIGFuZCAiJmFtcDsiLjwvcD48cD48c3Ryb25nPlJlY2VudCB1cGRhdGVzPC9zdHJvbmc+OiAiSiIgaW1wcm92ZWQsIGxvd2VyZWQgIioiIHNvIGl0IHdvdWxkbid0IHRvdWNoIHRoZSBsaW5lIGFib3ZlIGl0LCBhZGRlZCAiwaO0qajA26oiLjwvcD5odHRwczovL2ZvbnRzdHJ1Y3QuY29tL2ZvbnRzdHJ1Y3Rpb25zL3Nob3cvMTU0OTQzMC9zcGFjZS13aGFtaHR0cHM6Ly9mb250c3RydWN0LmNvbS9mb250c3RydWN0b3JzL3Nob3cvMTUyMDU2MC96ZXBocmFtQ3JlYXRpdmUgQ29tbW9ucyBDQzAgUHVibGljIERvbWFpbiBEZWRpY2F0aW9uaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL0ZpdmUgYmlnIHF1YWNraW5nIHplcGh5cnMgam9sdCBteSB3YXggYmVkQXd3TWZGMW5YZz09AEMAbwBwAHkAcgBpAGcAaAB0ACAAegBlAHAAaAByAGEAbQAgADIAMAAxADgAUwBwAGEAYwBlACAAVwBoAGEAbQBSAGUAZwB1AGwAYQByAFMAcABhAGMAZQAgAFcAaABhAG0AUwBwAGEAYwBlACAAVwBoAGEAbQAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAFMAcABhAGMAZQAtAFcAaABhAG0ARgBvAG4AdABTAHQAcgB1AGMAdAAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEYAbwBuAHQAUwB0AHIAdQBjAHQALgBjAG8AbQBoAHQAdABwAHMAOgAvAC8AZgBvAG4AdABzAHQAcgB1AGMAdAAuAGMAbwBtAHoAZQBwAGgAcgBhAG0gHABTAHAAYQBjAGUAIABXAGgAYQBtIB0AIAB3AGEAcwAgAGIAdQBpAGwAdAAgAHcAaQB0AGgAIABGAG8AbgB0AFMAdAByAHUAYwB0AAoARABlAHMAaQBnAG4AZQByACAAZABlAHMAYwByAGkAcAB0AGkAbwBuADoAIAA8AHAAPgBBACAAcwBsAGkAZwBoAHQAbAB5ACAAYwBoAGkAbQBlAHIAaQBjACAAcwBjAGkALQBmAGkAIABkAGUAcwBpAGcAbgAgAHcAaQB0AGgAIABuAG8AIAByAGUAbABhAHQAaQBvAG4AIAB0AG8AIABTAHAAYQBjAGUAIABCAGwAYQBtACwAIABTAHAAYQBjAGUAIABDAGwAYQBtACwAIABTAHAAYQBjAGUAIABDAHIAYQBtACwAIABTAHAAYQBjAGUAIABEAGEAbQAsACAAUwBwAGEAYwBlACAARgBhAG0ALAAgAFMAcABhAGMAZQAgAEYAbABhAG0ALAAgAFMAcABhAGMAZQAgAEcAcgBhAG0ALAAgAFMAcABhAGMAZQAgAEgAYQBtACwAIABTAHAAYQBjAGUAIABKAGEAbQAsACAAUwBwAGEAYwBlACAASwBhAHoAYQBhAG0ALAAgAFMAcABhAGMAZQAgAE0AYQAnAGEAbQAsACAAUwBwAGEAYwBlACAAUAByAGEAbQAsACAAUwBwAGEAYwBlACAAUgBhAG0ALAAgAFMAcABhAGMAZQAgAFMAYQBtACwAIABTAHAAYQBjAGUAIABTAGwAYQBtACwAIABTAHAAYQBjAGUAIABUAHIAYQBtACwAIABvAHIAIABTAHAAYQBjAGUAIABZAGEAbQAuADwALwBwAD4ACgAKADwAcAA+AEkAbgAgAG0AYQBrAGkAbgBnACAAdABoAGkAcwAgAEkAIABhAHQAdABlAG0AcAB0AGUAZAAgAHQAbwAgAGEAYwBoAGkAZQB2AGUAIABhACAAaABhAHIAbQBvAG4AeQAgAGIAZQB0AHcAZQBlAG4AIABhAG4AZwBsAGUAcwAgAGEAbgBkACAAYwB1AHIAdgBlAHMALgAgAFkAbwB1ACAAYwBhAG4AIABzAGUAZQAgAGkAdAAgAGUAcwBwAGUAYwBpAGEAbABsAHkAIAB3AGUAbABsACAAbwBuACAAIgBCACIALAAgACIAMwAiACwAIAAiADgAIgAsACAAYQBuAGQAIAAiACYAYQBtAHAAOwAiAC4APAAvAHAAPgAKAAoAPABwAD4APABzAHQAcgBvAG4AZwA+AFIAZQBjAGUAbgB0ACAAdQBwAGQAYQB0AGUAcwA8AC8AcwB0AHIAbwBuAGcAPgA6ACAAIgBKACIAIABpAG0AcAByAG8AdgBlAGQALAAgAGwAbwB3AGUAcgBlAGQAIAAiACoAIgAgAHMAbwAgAGkAdAAgAHcAbwB1AGwAZABuACcAdAAgAHQAbwB1AGMAaAAgAHQAaABlACAAbABpAG4AZQAgAGEAYgBvAHYAZQAgAGkAdAAsACAAYQBkAGQAZQBkACAAIgChAKMApQCpAK4AvyCsISIAIgAuADwALwBwAD4ACgBoAHQAdABwAHMAOgAvAC8AZgBvAG4AdABzAHQAcgB1AGMAdAAuAGMAbwBtAC8AZgBvAG4AdABzAHQAcgB1AGMAdABpAG8AbgBzAC8AcwBoAG8AdwAvADEANQA0ADkANAAzADAALwBzAHAAYQBjAGUALQB3AGgAYQBtAGgAdAB0AHAAcwA6AC8ALwBmAG8AbgB0AHMAdAByAHUAYwB0AC4AYwBvAG0ALwBmAG8AbgB0AHMAdAByAHUAYwB0AG8AcgBzAC8AcwBoAG8AdwAvADEANQAyADAANQA2ADAALwB6AGUAcABoAHIAYQBtAEMAcgBlAGEAdABpAHYAZQAgAEMAbwBtAG0AbwBuAHMAIABDAEMAMAAgAFAAdQBiAGwAaQBjACAARABvAG0AYQBpAG4AIABEAGUAZABpAGMAYQB0AGkAbwBuAGgAdAB0AHAAOgAvAC8AYwByAGUAYQB0AGkAdgBlAGMAbwBtAG0AbwBuAHMALgBvAHIAZwAvAHAAdQBiAGwAaQBjAGQAbwBtAGEAaQBuAC8AegBlAHIAbwAvADEALgAwAC8ARgBpAHYAZQAgAGIAaQBnACAAcQB1AGEAYwBrAGkAbgBnACAAegBlAHAAaAB5AHIAcwAgAGoAbwBsAHQAIABtAHkAIAB3AGEAeAAgAGIAZQBkAEEAdwB3AE0AZgBGADEAbgBYAGcAPQA9AAMAAAAAAAABmQDMAAAAAAAAAAAAAAAAAAAAAAAAAAA=); - font-weight: normal; - font-style: normal italic; - } - - @font-face { - font-family: "Edwardian Script ITC"; - src: url(data:application/octet-stream;base64,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); - font-weight: normal; - font-style: normal italic; - } - - @font-face { - font-family: "Quantico"; - src: url(data:application/octet-stream;base64,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GRAZIRkvGVwZhRmkGbEZ1xoAGiIaPRpXGnYamRqlGrYaxBscG1wbfRucG8ob9xwgHEQcZwABAAAAAgCDRZXAmF8PPPUACwPoAAAAAMsRoKkAAAAAyxGgqf/Y/rEFQgQJAAAACAACAAAAAAAAAQQAAAAAAAABTQAAAQQAAAFeAGQBrgBGAvQAPAKFAFAD3wBQAo8AWgD6AEYBawBaAWsAPAJ2AFACWAAyAV4AZAG2AEYBXgBkAYIAHgKZAFoCOgBaAnYAWgKLAFoCcAAoAoUAWgJ7AFoCZwA8AoUAWgJ7AFoBXgBkAV4AZAKKADwCqABaAooAWgJEAFoD8gBaApgAFAKPAFoCmQBaAsEAWgIbAFoCEQBaAqMAWgLLAFoBGABaAhcAFAKXAFoB3wBaA3UAWgLfAFoCwQBaAnEAWgLBAFoCjwBaAoUAUAIuAB4CwQBaApgAFAO8AB4CiwAeAmMAFAJJADIBawBaAYIAHgFrADwCWgAyAmT/7AH0ALkCFwA8AlMAUAIDAFACUwBQAisAUAGFACgCPwA8AlMAUAEBAEsBAf/YAhMAUAE9AFADQQBQAkkAUAJJAFACUwBQAlMAUAGFAFACGABQAZkAKAJJAFACDwAUAvUAHgH0ABQCBwAUAdIAKAGOACgBSgB4AY4APAKqAEYBBAAAAV4AZAIDAFACggAoAosAKAFKAHgCjQBaAiAAbgNIAFoCIQA8AqgAWgNIAFoCVwCQAfkAUAKoAFoB9AC5AmQAUAKtADwBXgBkAkIA0wJdAFoCqABaAkQAWgKYABQCmAAUApgAFAKYABQCmAAUApgAFAPI/+wCmQBaAhsAWgIbAFoCGwBaAhsAWgEY//cBGABBARj/8QEY/+oCwQAUAt8AWgLBAFoCwQBaAsEAWgLBAFoCwQBaAmIAPALBAFoCwQBaAsEAWgLBAFoCwQBaAmMAFAJ7AFoCmQAeAhcAPAIXADwCFwA8AhcAPAIXADwCFwA8A0EAPAIDAFACKwBQAisAUAIrAFACKwBQAQH/5QEBADwBAf/lAQH/3wJ7AFsCSQBQAkkAUAJJAFACSQBQAkkAUAJJAFACWAAyAkkAUAJJAFACSQBQAkkAUAJJAFACBwAUAlMAUAIHABQCUwAKARj/8wEB/+gBAQBQAy8AWgICAEsCFwAUAQH/2AITAFACEwBQAd8AWgGQAFAB3wAUAT0AFALfAFoCSQBQA8QAWgNzAFACjwBaAo8AWgGFAFACjwBaAYUAJwKFAFACGABQAmMAFAJJADIB0gAoAYUADAITAG4CEwBuAhEAegFeAGQCEQB6AggAtAH6AGQB9ABCArgARgPOAEYBSgBaAUoAWgFeAGQCOgBaAjoAWgJOAGQCRwA8AkcAPAJEAGQDygBkBXQAUAGuAFoBrgBaApcACgKiAB4DTQBGAnsAWgJYADIDegBaAtIAWgKoAFoCqABaAqgAWgI/AFACSQBQAQEAUAEB/9gBQABkA4AAUANaAFACfAAoAsIAKAQLACgERwAoA40AUAJ8ACgDeQBQAAEAAAQn/pEAAAV0/9j/3gVCAAEAAAAAAAAAAAAAAAAAAAEFAAIB1QGQAAUAAAK8AooAAACMArwCigAAAd0AMgD6AAACAAAAAAAAAAAAgAAAL1AAAEoAAAAAAAAAAE1BRFQAQAAg+wgEJ/6RAAAEJwFvIAABEQAAAAAB9AK8AAAAIAACAAAAAgAAAAMAAAAUAAMAAQAAABQABAFoAAAAVgBAAAUAFgB+AKMAqwCxALgAuwD/ASkBNQE4AUQBVAFZAWEBeAF+AZICxwLdIBQgGiAeICIgJiAwIDogRCCsISIiAiISIh4iSCJgImXgA/a+9sP4APj/+wT7CP//AAAAIACgAKUArgC0ALoAvwEnATEBNwE/AVIBVgFgAXgBfQGSAsYC2CATIBggHCAgICYgMCA5IEQgrCEiIgIiEiIeIkgiYCJk4AH2vvbD+AD4//sB+wb////j/8L/wf+//73/vP+5/5L/i/+K/4T/d/92/3D/Wv9W/0P+EP4A4MvgyODH4Mbgw+C64LLgqeBC383e7t7f3tTeq96U3pEg9go8CjgI/Af+Bf0F/AABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4Af+FsASNAAAAAA4ArgADAAEECQAAAO4AAAADAAEECQABABAA7gADAAEECQACAA4A/gADAAEECQADAD4BDAADAAEECQAEABAA7gADAAEECQAFABoBSgADAAEECQAGACABZAADAAEECQAHAFABhAADAAEECQAIAA4B1AADAAEECQAJABgB4gADAAEECQALACwB+gADAAEECQAMACwB+gADAAEECQANASACJgADAAEECQAOADQDRgBDAG8AcAB5AHIAaQBnAGgAdAAgACgAYwApACAAMgAwADEAMQAgAE0AYQB0AHQAaABlAHcAIABEAGUAcwBtAG8AbgBkACAAKABoAHQAdABwADoALwAvAHcAdwB3AC4AbQBhAGQAdAB5AHAAZQAuAGMAbwBtACAAfAAgAG0AYQB0AHQAZABlAHMAbQBvAG4AZABAAGcAbQBhAGkAbAAuAGMAbwBtACkALAAgAHcAaQB0AGgAIABSAGUAcwBlAHIAdgBlAGQAIABGAG8AbgB0ACAATgBhAG0AZQAgACIAUQB1AGEAbgB0AGkAYwBvACIAUQB1AGEAbgB0AGkAYwBvAFIAZQBnAHUAbABhAHIATQBBAEQAdAB5AHAAZQA6ACAAUQB1AGEAbgB0AGkAYwBvACAAUgBlAGcAdQBsAGEAcgA6ACAAMgAwADEAMQBWAGUAcgBzAGkAbwBuACAAMgAuADAAMAAyAFEAdQBhAG4AdABpAGMAbwAtAFIAZQBnAHUAbABhAHIAUQB1AGEAbgB0AGkAYwBvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAATQBhAHQAdAAgAEQAZQBzAG0AbwBuAGQALgBNAEEARAB0AHkAcABlAE0AYQB0AHQAIABEAGUAcwBtAG8AbgBkAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBtAGEAZAB0AHkAcABlAC4AYwBvAG0AVABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAFMASQBMACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMQAuADEALgAgAFQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAaQBzACAAYQB2AGEAaQBsAGEAYgBsAGUAIAB3AGkAdABoACAAYQAgAEYAQQBRACAAYQB0ADoAIABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAAIAAAAAAAD/tQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABBQAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEBAgCjAIQAhQCWAOgAhgCOAIsAnQCpAIoA2gCDAJMAjQCXAIgAwwDeAJ4AqgCiAK0AyQDHAK4AYgBjAJAAZADLAGUAyADKAM8AzADNAM4A6QBmANMA0ADRAK8AZwDwAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAuAChAH8AfgCAAIEA7ADuALoBAwEEAQUA1wEGAQcBCAEJAQoBCwEMAQ0A4gDjAQ4BDwCwALEBEAERARIBEwEUAOQA5QC7AOYA5wCmANgA4QDbANwA3QDgANkA3wCyALMAtgC3AMQAtAC1AMUAggDCAIcAqwDGAL4AvwC8ARUAjACYAO8AkgCnAI8AlACVARYBFwEYARkBGgEbANIAwADBARwBHQEeAR8BIAd1bmkwMEEwBGhiYXIGSXRpbGRlBml0aWxkZQJJSgJpagtKY2lyY3VtZmxleAtqY2lyY3VtZmxleAxrY29tbWFhY2NlbnQMa2dyZWVubGFuZGljCkxkb3RhY2NlbnQEbGRvdAZOYWN1dGUGbmFjdXRlBlJhY3V0ZQxSY29tbWFhY2NlbnQMcmNvbW1hYWNjZW50BlJjYXJvbgZyY2Fyb24ERXVybwVhLmFsdAVnLmFsdAVsLmFsdAhkb3RsZXNzagtjb21tYWFjY2VudAdtYWRzbHVnA2ZmaQNmZmwCc3QCZmoCY3QAAAAAAQAB//8ADwABAAAADAAAAAAAAAACAAEAAQEEAAEAAAABAAAACgAeACwAAWxhdG4ACAAEAAAAAP//AAEAAAABa2VybgAIAAAAAQAAAAEABAACAAAAAQAIAAEAKgAEAAAAEACyAE4AzABUAHYAlADmALIAsgCyALIAsgCyAOYAzADmAAEAEAAkACkALwA3ADkAOgA8AHkAegB7AHwAfQB+AJYAwwDSAAEALf+wAAgAJP/OAC3/xAB5/84Aev/OAHv/zgB8/84Aff/OAH7/zgAHACT/zgB5/84Aev/OAHv/zgB8/84Aff/OAH7/zgAHACT/4gB5/+IAev/iAHv/4gB8/+IAff/iAH7/4gAGADf/zgA5/84AOv/iADz/xACW/8QA0v/EAAYAN//EADn/2AA6/+wAPP/YAJb/2ADS/9gACAAk/8QALf+wAHn/xAB6/8QAe//EAHz/xAB9/8QAfv/EAAEAAAAKABYAGAABbGF0bgAIAAAAAAAAAAAAAA==); - font-weight: normal; - font-style: normal italic; - } - -body { - /*metadata*/ - --metadata-label-width: 10em; - --metadata-gap: 5px; - --metadata-property-radius: 3px; - - /*Style Settings Custom Tabs Colors*/ - --activetab-color: var(--color-accent-hsl); --activetab-highlight: hsl(var(--activetab-color)); - --tab-background-active: hsla(var(--activetab-color), 0.15); - --tab-text-color-focused-active-current: var(--activetab-highlight); - --tab-text-color-focused:var(--activetab-highlight); - --activetab-faint: hsla(var(--activetab-color), 0.60); - --tab-background-clicked: hsla(var(--activetab-color), 0.25); - --tab-background-active-clicked: hsla(var(--activetab-color), 0.3); -/*Style Settings inactive tab Custom Colors*/ - --inactivetab-color: var(--activetab-color); - --inactivetab: hsla(var(--inactivetab-color), 0.60); - /*Style Settings inactive title Custom Colors*/ - --Inactive-title: var(--text-faint); - /*Style Settings active title Custom Colors*/ - --active-title: var(--color-accent-hsl); - --activetitle-highlight: hsl(var( --active-title)); - --title-background-clicked: hsla(var(--active-title), 0.25); - --title-background-active-clicked: hsla(var(--active-title), 0.3); - --custom-accent: var(--color-accent-hsl); - --custom-acc-text: hsl(var(--custom-accent)); - --custom-acc-faint: hsla(var(--custom-accent), 0.6); - --custom-acc-active: hsla(var(--custom-accent), 0.43); - --custom-acc-back: hsla(var(--custom-accent), 0.4); - --custom-acc-hover: hsla(var(--custom-accent), 0.3); - /*Fonts*/ - --default-font: 'OxaniumFira', 'Inter', 'Rubik', 'Segoe UI'; - --title-heading: 'Space Wham', 'Inter'; - /*--heading: 'Quantico', 'Inter';*/ - --h2-font: 'Quantico', 'Inter'; - --h3-font: 'Quantico', 'Inter'; - --h4-font: 'Quantico', 'Inter'; - --CG-cite-font: 'Edwardian Script ITC'; - - /*Logo*/ - --newoutlined-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='18' height='18' fill='none' stroke='currentColor' stroke-width='32' stroke-linecap='round' stroke-linejoin='round' class='logo-wireframe'%3E%3Cpath d='M172.7 461.6c73.6-149.1 2.1-217-43.7-246.9m72 96.7c71.6-17.3 141-16.3 189.8 88.5m-114-96.3c-69.6-174 44.6-181 16.3-273.6m97.7 370c1.6-3 3.3-5.8 5.1-8.6 20-29.9 34.2-53.2 41.4-65.3a16 16 0 0 0-1.2-17.7 342.1 342.1 0 0 1-40.2-66.1c-10.9-26-12.5-66.5-12.6-86.2 0-7.4-2.4-14.7-7-20.6l-81.8-104a32 32 0 0 0-1.4-1.5m97.7 370a172.8 172.8 0 0 0-18 59c-2.9 21.5-24 38.4-45 32.6-30-8.3-64.5-21.1-95.7-23.5l-47.8-3.6c-7.7-.6-15-4-20.3-9.5l-82.3-84.8c-9-9.2-11.4-23-6.2-34.8 0 0 51-111.8 52.8-117.7l.7-3M293.1 30a31.5 31.5 0 0 0-44.4-2.3l-97.4 87.5c-5.4 5-9 11.5-10 18.8-3.7 24.5-9.7 68-12.3 80.7'%3E%3C/path%3E%3C/svg%3E"); - --outlined-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='15 -3 69 106'%3E%3Cpath d='M 30.91 17.52 L 34.43 35.7 M 61.44 14.41 L 62.61 0 M 34.43 35.7 L 37.57 90.47 M 81 26.39 L 61.44 14.41 L 34.43 35.7 L 65.35 100 M 62.61 0 L 30.91 17.52 L 18 45.45 L 37.57 90.47 L 65.35 100 L 70.44 89.8 L 81 26.39 L 62.61 0 Z' stroke='%23000000' stroke-width='4' fill='none'/%3E%3C/svg%3E"); - --CG-line-width: 40rem; - --file-line-width: var(--CG-line-width); - /*max min icons*/ - --win-maximize: url("data:image/svg+xml,%3Csvg fill='none' height='16' viewBox='0 0 16 16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m4.5 3c-.82843 0-1.5.67157-1.5 1.5v7c0 .8284.67157 1.5 1.5 1.5h7c.8284 0 1.5-.6716 1.5-1.5v-7c0-.82843-.6716-1.5-1.5-1.5zm0 1h7c.2761 0 .5.22386.5.5v7c0 .2761-.2239.5-.5.5h-7c-.27614 0-.5-.2239-.5-.5v-7c0-.27614.22386-.5.5-.5z' fill='%23212121'/%3E%3C/svg%3E"); - --win-minimize: url("data:image/svg+xml,%3Csvg fill='none' height='16' viewBox='0 0 16 16' width='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23212121'%3E%3Cpath d='m5.08496 4c.20592-.5826.76154-1 1.41465-1h3.5c1.65689 0 2.99999 1.34315 2.99999 3v3.5c0 .6531-.4174 1.2087-1 1.4146v-4.9146c0-1.10457-.8954-2-1.99999-2z'/%3E%3Cpath d='m4.5 5h5c.8284 0 1.5.67157 1.5 1.5v5c0 .8284-.6716 1.5-1.5 1.5h-5c-.82843 0-1.5-.6716-1.5-1.5v-5c0-.82843.67157-1.5 1.5-1.5zm0 1c-.27614 0-.5.22386-.5.5v5c0 .2761.22386.5.5.5h5c.27614 0 .5-.2239.5-.5v-5c0-.27614-.22386-.5-.5-.5z'/%3E%3C/g%3E%3C/svg%3E"); - /*Background*/ - --background-primary: var(--color-base-00); - --background-secondary: var(--color-base-25); - --background-tertiary: var(--color-base-05); - --background-modifier-hover: var(--tab-background-active); - --background-modifier-message: var(--background-tertiary); - /*Titlebar*/ - --titlebar-background-focused: var(--background-secondary); - --titlebar-text-color-focused: var(--text-muted); - /*Tab*/ - --tab-divider-color: transparent; - --tab-max-width: 180px; - --tab-width: 225px; - --tab-radius-active: var(--radius-s); - /*Text*/ - --text-muted: var(--color-accent); - --text-faint: var(--color-accent-faint); - /*Scrollbar*/ - --scrollbar-thumb-bg: var(--text-selection); - --scrollbar-active-thumb-bg: var(--text-accent); - --scrollbar-bg: var(--color-accent-active); - /*Drag Ghost*/ - --drag-ghost-text-color: var(--text-accent); - --drag-ghost-background: var(--background-tertiary); - /*Link*/ - --link-external-color: var(--outlink-color); - --link-external-color-hover: var(--link-external-color); - --internal-link-hover: var(--inlink-color); - --inlink-color: #FFA500; - --outlink-color: #ffc400; - /*Vault Name*/ - --vault-name-font-size: var(--font-ui-medium); - --vault-name-color: var(--custom-acc-text); - /*Swatch*/ - --swatch-radius: 3px; - /*Nav Items*/ - --nav-item-color: var(--custom-acc-faint); - --nav-item-color-hover: var(--custom-acc-text); - --nav-item-color-selected: var(--text-accent); - --nav-item-white-space: wrap; - --nav-item-color-active: var(--custom-acc-text); - --nav-indentation-guide-color: var(--custom-acc-faint); - /*Bullet lists*/ - --bulletlist-color: var(--text-accent); - --indentation-guide-color: var(--bulletlist-color); - /*Icon*/ - --icon-color-hover: var(--activetab-highlight); - --icon-color: var(--activetab-faint); - --icon-color-active: var(--tab-background-clicked); - --icon-color-focused: var(--activetab-highlight); - /*Heading*/ - --h1-glow: var(--text-accent); - --h2-glow: #0cd0d0; - --h3-glow: #00d200; - --h4-glow: #ffc400; - --h5-glow: #FF0000; - --h6-glow: #FF00FF; - --h1-size: 34px; - --h2-size: 26px; - --h3-size: 22px; - --h4-size: 18px; - --h5-size: 18px; - --h6-size: 18px; - --heading-formatting: var(--text-faint); - /*Slider*/ - --slider-thumb-border-width: 7px; - --slider-thumb-border-color: var(--color-glow); - /*Toggle*/ - --toggle-border-width: 3px; - --toggle-width: 45px; - --toggle-thumb-width: 20px; - --toggle-thumb-color: rgb(186, 56, 56); - --toggle-thumb-radius: 10px; - --toggle-thumb-height: 8px; - --toggle-s-border-width: 3px; - --toggle-s-width: 40px; - --toggle-s-thumb-height: 8px; - --toggle-s-thumb-width: 16px; - /*Radius*/ - --radius-s: 3px; - --radius-m: 3px; - --radius-l: 10px; - --radius-xl: 3px; - /*Ribbon*/ - --ribbon-background: transparent; - --ribbon-background-collapsed: transparent; - /*List*/ - --list-marker-color: transparent; - --list-marker-color-collapsed: transparent; - /*Status bar*/ - --status-bar-text-color: var(--text-faint); - --status-bar-radius: var(--radius-s); - /*Callouts Color Fix*/ - --callout-bug: 200, 172, 100; - --callout-error: 255, 70, 0; - --callout-info: 0, 141, 142; - --callout-summary: 0, 151, 188; - --callout-tip: 255, 166, 11; - --callout-important: 255, 166, 11; - --callout-quote: 210, 102, 234; - --callout-default: 139, 127, 137; - --block-color: hsl(170, 49%, 32%); - - --bgimage: url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBggGBQkIBwgKCQkKDRYODQwMDRoTFBAWHxwhIB8cHh4jJzIqIyUvJR4eKzssLzM1ODg4ISo9QTw2QTI3ODX/2wBDAQkKCg0LDRkODhk1JB4kNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTX/wgARCANmBb4DASIAAhEBAxEB/8QAHAAAAgIDAQEAAAAAAAAAAAAABAUDBgECBwAI/8QAGwEAAgMBAQEAAAAAAAAAAAAAAgMAAQQFBgf/2gAMAwEAAhADEAAAAObZ6Orz6qfo9P0oBBslbdbhHYUdCETATFy5XG2K6BlYpKXAcHV+hKgq8sT2SmVkLfRq8Sxy3U7AIuQl9VRLk0gm1RualkA7jbuXtc7+1H8dNqup0VI6XdBZZv7gVYR0RqmtX3l0p1FxCVT6aek31x6TG2fDcUkLCiCibsRKuYYxyAbn6SC4NjlA6GYsR9t8FXpoSLHcoSYh7Jzm3h4X86gMG35x5PeApIxpQLXYne5680y9ZdPRWeu2Bk4x87ArI1ujAqQu6MFJzcboW1jzBT0qsOVRVtjSb0ELo43hpPESV4w3W2vfTOlyfYW1kCOG91Ag3YrCrH0hk1Lsk/ObDw+tZqD1wAT466EB1ovNy5tbOdsEHPihUxVclu3Ihaaq7vwNtqzVyhSnCaz3Q+dGBWgkYMztpkpJtHtV40k9KHzNHL0xjEvOdcSbSbwyp/TGmCz22sk/UuSEnm7nya425vL4h50uz9ofWYeimkHY2C6LfUWemhxIQN7FXn2voWce9JnE2kqPbbWx2jz6XjHtKL2M4kzj20r6lUEmYdfKRrfzyzUDyDbESe3iIZ9TBSHOYZ7hirW4AVLFaLpUexOJGSlwlla6yTSaFkay9MbDysRb6XNZ8wyb7GrpDSFxFRlmAkTN8A7l3SuOea0EIm2uhUe1hrFzcLbWiweD6QkfG8qMsra4qaq5gnVqij6Vi1hEh2NT0IXVTBriXuyKjqrc77BUmq55H0ioaM6TJorAOFyeQWh1zteE2iJEeG0G9kWcQf0LypBUeaMhlPeq1mPI833NHS2dlcU22DRftvaB97Obg4zHFXXq1cVSl8orV+pb8yLQ7GytJNNGD7bWO6l3hPuvWuvnklpGqtsqkbibnbIlc5iasYUmx7OrQ1i/cnpg8n6zWNmSm32gNUt6YlJUrKxiWdBm00BX2HjvQy+aV9nqyJMOUYNkHj2he1lhkzjOSrG/pRvTHvVNY5PSx9J83enrXYmYuY65jVtMkA2lT7RbmMkO+0m/R+b7Hn+gOUuOgt5PB43iLN27hFU5hL0U4cKTGfSY129L09tiTHt9irX2M1NfY0ottNfS85yXaxztlhBmPeQWdFBrpWDo6QY9oSJ7MrFtGrUBJVIPMuhcWkxksKcXaQqKcCpEWPLdD5bnyxnLWcJVDpFzJiR7XSlfh31oNJ4ZJHtecr5ehgO8o7wMkju1UvNSOAnVoEzro5dx5waPU9PHgqi9Lm6izt6TGd8yB4zgS3IDlG7lhRa1HYrrVd8r+gZStLCMB/65Tqt1hUsuOVzslKIaCI1Wbs8JMWGLznOTHbo3PmaD7n8+squs3I5qhq3JFXY3UTSPpqmYvlNufN1M568Y0W+YpdFZ97NzVW2iGc4ovWOYgpKBMu6OWDYiJla5ljuvEw6lRUITGxgYlL7G51le9IkzTbB529dfQqCq9V57Dy+t1FecquqvX+l00TIdUV3Y26x8x6Bg2qtI7Y9PF9uq8mqzxd2W/HT4HyQWFEgmFSraQoSBj3lKQb6ZG9tds1evs6ybaax3Rot7sjcHG/GCJ6Ht483ZeIJiDTG+tyex1PFrs1fh9RTSjTUUnttRvG2vquT0c11rvnWxxjOolmLGkL3sz3UTq0Km4FAYm4ao95oQZtHj0u2bV3ZWqyVzacljnyWG7ripgvkjzIVBLlEhlj6MJLkFjsZAXy+FgIwWF2hZoZXa8xUuUJHPEU0gYRSCa77SvYniuQzQ7SSa66StZdS7hwo0dQvYaUwniKFuegn9IUAUPdRePEuR429JpHJHKi12kEoSc7jbTQR7KKMqxIneblx5tk09sO5a/AbgKE2aA9Yt9KCc2qnS+ctWNr4nagbPssEgXZ6NVQjUijFgOhkhsXrKg73XK4gSdg6VxJgJ9IsfLrllK3nq2bIXMrgOPPJYZeOZ2OjxSERgJ0ckGutiu0g13pkkcmorQPxmIwtAUBApWSekYVhFkkpezOkWs0tK0x6ni2UTp/D+pYt6bTKIZVk3ZeXUTKALfRnvEK3dOjqnGenVXn6+ZRvEfSxuk21s05+fyHqFukl9i4OWPFVyaZ2MddtPCW+NvVeNJD4MvYeFMG4+m8h7yiZj4v40TN2sSxSSSZ9gx1xt6r19tiTGfYkn3FllS5n1qtY9cVcm2m1FiLbEvE7e5Mxo10SEhmi22VszmPEntN9ZeM53kyaOctpYr6vVICOhg5DpJdhIYFIwrNec5EkhjFbUT8YzqVvpNWvKkKYPQASapmYrDm11oZDQ3DM3nuOg1E7SkaRNDQ0Y2UCWGdKVSEhXNCYHoxTHiS4XHggx1xvrKHLDtVimFeIbno84utoJY7kWm8cvO8EgWysFXHqXOp5gutniexDeIivAcr6pbVOmPOUHoZ01ZTltDvTzUulXmauyaVI45YTGc5UON6kieotywyKjTXYFVye03YMe23rh955s0zO72BzEfGzo6+gxkq5erMB0yDAE1q2V9Kcrfze2t0mdlOWWZB0sQfmkbgDPEMIRnIztVIWk8qjVztGKyq9pA2XLG/oc1DcuXdToSdenlLfVlvdItCTDu53tYKvoVa+ocYs2hJ0c1pzuoiS3F83ZUkb/AN0MINbbe2Jrus/gePFPEJaSa4ub6yNSFPuWMF4z7WRykkbMRH2PhDMkdI5D2XmtqrUw8qOqRptkx1xtrJj2fSa7GuYpHFIJDySNLRSTyTBBNJsyDbSQy2QEMljHmfSH6DbFTG2slz2NtZWM4zLnLA3U4kleTV9PiohnP1WpWOluqi8bY252RK4w6ulT7FVBuopTtWAPMTHd2yhNRAMDEuWJ9Bp6XNaaXsorvz3ZpIgkbmtBLHIPcHlxmQy5JI81zobLXXSPO0bgxAeBdRtCGtCwo8ysoRqUFJNDiOTEW0cuXWI2TQqDexllGa2IWCxpHSWOMD3lCYGJLVGTVWmsqoLmwe0tX5i4VkEQTQAqZBh+GxdyxJZUOYatnKnZDWg+mpQ/I07AH1yMJEzBSVc8oclVe7JUrtjbyezVnpOpVjZMudcTq1dyKO0I3lqS0ItFIxuzL7BrCSmgYMGVxUCoK5ZvVbFXdR1LSDAdUDZd7jqJNS2ZVZXdhb0l9pAGn29coqdaVA2tP0gJzy/8bpKqtaOaDeyu6L+7y8Vad+zHX67ZPXoqcuNF6TRSoyGG+Ur1DbaZmKTO0W9HtuXBYMEpB5Lr+ZfL0ukvQKUzGHuNIGuX2M3WMYyN42z4q1znMmuNvS8lBYlM/Y9UyTFtVQ7R60V9qAhAxdrnYr0zjNzb2fXUe2N6vU0QtTyIZdBlpFruaLEnjrrQkQi6PIEIlODa5CLLgsCaXXR+Y9go+YlqZiluTIrfRdSvRzrirOuMkJJS68CRtGsVYqECFDlQzhSTU6KjDsOQqyqY+6GdOzLlMNNZMsQsSDEK1CN1EtFmHO11rESNJH6QqrDmY4qDSFyMXqYFuQuEhhQ2m0L0KBRvEUqWRd6raxLtJPFCFXGGdCIOBzk91BIL6iYh7lyLMT63I5Ct5FsuxV17fXNCKO7VFM4lGkkkj3kMZJCINh7pwfu2DZojojnm7OXXmxSFKb0ippZLdy7uNJsaisQw7MxkGsBTfHtynpJWlUosoDagrm7dWBbR6Tyz51Mi49mr8930OGt2VV1IC1g6Eor7z/VssCfU6q6JhHcBvmQzlC3M7rzKV6UCW0AjrSEC7C2XPohmuZYSnsb6XWzdLNQ77sVlgySlHylWNRhdvCRAJySDTSSb6SsH2m3pNc5eSkXpY5cc+twJNf8Ade5tS08ZAyteuNsS9NJdZIs7YuZ129JnMkl1Ftn0kefMc+mSCwrAYuNPlU5Ls4moUpj3S6XyFaNVGubTEKu0J2AGwWKgWqMt9YbDZFJ6lyKQX0eHVvMOZBvbRWHldTWW0z1ihlLyrD9Ha1XFdK2zVVVLkn6nND0TJrM4HOqtWCI8UQnsZsZN9SLGEdnDJBZVbGphhuKhhNfj88NvakMXGULJdM1R+lUvDYDFYsU0Y3BnPpce+shCbkOO6lG3zJnUg4bWGglyTRQ7kMozpBKwc+FlLJ9dqvQc8e6W+l1K5HCqz1BFt12hU2yQQiPXuS2phy9wFx5Y8yaLRRL/AMKu7t0TnJR1Jx76Xq0HlPhfbc9glVHbMI/j7O1K21p6sC3gaN7soAhyPlKnSPlWDoDHg7CxiXOKMsLCkOVw6odCrJ3YapHazBXYBdcOqFfEJ1+CE1BHVrLAfpXJVBuYQ2Chxz1cculghKRbXYSRzHM8du0cJ2NpXzM09WYnn0Fo202lHqTAfBZKmyJiJc5zHSXmn2dYVtdYUF3EcFqd9rN4l1h3HoCjuHK0ba1vJCvftnG0mkc2kmsuu91vtjN1pn2slqOuLnm9Pmze7mZzppNzmg02e4bEFXgty5g0iR8UUoCyxLGBsfVXBBXxI5G1vd6Hcgt3zExSdQwy4OvMI2NS0O22mJ1FVPEulaWIiFweMEv4xnXJ8My4p3lxnpiUcWye9m5nNgT1Qmh8si8uCQhxNrZCAXR2vGhVl0qq3K/HhsCAjaO6yQPIQk6xMTDYcyWxTJ3SKmY3jzU0m30klG3kuDOlGLpm0QZCMF7NcYeiiLu4mJ4dU9rkY4w/ELG5BpdK1Ih80DZVtAS+q3y2LMeRNsrF94XIGALtKdZMqrK+qFv5e3iVuuvECrotgUXDOxDyD6JDYHzxeaW72Z7JuFC3PhTLJ0cmWGca0GJGStMYhRtgsqFRd+duoa+y1lb2hqOexuTWsWjOVKT36mETwyluTB8jteqarcm0uzGpG6jzLL0RbNXJNuQFda0MIc9cZRdURvawKqaIREbtOj0zbTztpeh82iVZzBFm6Ri4qCm7bjQVfpI9qIjeSGU1eC4ii6oxVEWs0OpFoYHiV2Gy8E6e/j1VB3rlKddY1kHVv31x6XttpPKk9pkq9jOJLNYKTfsW5BYaflLuqt+U2FE6FPztiS7zDVITq5IE1ckj8wrzaEnkBcvJAFrlDZzT6E1brIy4iMFlUzld1Nd2FS4q+DTQ0FmrnTxiYlb3dkY7DppRUm1d0qDjzPTBNd9bniiiajOK6ZwuoezozQFfYMEGlARi2e6sTVHZUtAT3sbM6ty9aHMeIAdP53pQpGZr3qIH8NdayzbEO6wxxdV2RgALAoyNJDGKM4JHBa6+wA/ekKMCxDVUqk3AZCtRmsgw20g3Cx09KJtjZjn108O0USM3Xj7vmu++JZMQ9mC6hZ1r2oAtv0wznb8keDfgCDOW7g8XZ+DOEvovKO0EhPLSK4RXVPtaRPm9iWK3rvjGsPt/OudSmMLMhMCn0y41Gzl4XH0ghnh2c/wYpjbM/pdhi7zUbEtyaKPpaqzuzXfFLu+VqmQEzbzme5E2To82hsyU4QUBNpQpCsCSjzkHey3013G8tVB7FN3VQL0c5WS4rCNkmNNlafDk6yCyb6y7lmtBUDBjWJbKPaP0Ij0O5D72d7mhA/pOpXj566M/kJq39AcqU6myyQq6U423pMSa+kk21zcKatG2PSxo1mqYnmUlfdlNFAgE62TbVGbBJMQvAgm1jvW3tfMJpgxrhyrSQq6nR9FlX40O6lUnUFs2F+OdXfnzlyobjX9CopjFUlr3aU0ZTg2EDqB8y0uAHFzyixxR6phHhmQlSIYbEUeSErav610CDWZM7VcFlp+gH1Bzxx6BXLlsy5qsQ4n0KD0bjWKqYou4XkJ2ErUZo8LdW8nMKwcQuONhvSZmC6sVzQ32LhkClmHKh2AG8kZpEVR31Wt1nNqs4XPui1YdPsteDWpnlj0gx2nKCssi7akxBjzFkuDcSBcKGyEsrltkY1owtHPrjviviVxKOdzwCKRNZQhW0CzXxMbYDq+XWrd0OeOZGHrwyrigW206px92uCadG5Ri12On3RDh2V49fu8eh7qHoKwrjjZVUZxK6bZLdXe8BKuQ8r/J6iWk9CW9DBymWy1hkPIWRHFOrxRdMA2W51XZopSHLBO1JY4zBdL39PqtkMkfpcgk+8gu+51jss63SW46lpjRPQm2h3kn2zqQYxvm7iIgxJ0npPznfHcnNU77zcboepkCOpFjObvWTTEjV/X9MeozIXpG2Ypxg4pUFzXOmxySQixjNtXdHC10osrQnBMXSFeDyVel9NcK6VTuqZzZqGcGN9Wqlmru7Na65eaQBqSBmOlNz5ZeqUNqoT93CuctolEqWPAmrWRsomDCYNoM2heIqvbOuxjGbDCVXZSqzQxw42OtbPVm1W1rV5qcECXGzgKHkisIZdsSb7yy1Q5MspAumkCKl4cjGmKXEGgGaua65myzBWUwQJtbBLQ4ly9ZEyoyTOsFjAt8HN0u2p9mrCOiEA1EesS41ZoQ2iwit8rZ51rJZSaSeEtNtcGOFL0a65+5ZJWr5Whv9ftdPw3hgQnJpYLHqfL+trnMH8DV+YcE5X0sOPaeYWSPHQep1UHo/OPkLywVzNqpAF2qydZ98o7B2e1Uy1AwTEVsM5/Q5V02nOdaOy1pC+w7YavfKtSzaB0CDdj5JG4WGRQe9wcjmVmDTya7SQRuu0+auOUUtyA5SAROTG+oHjO8VXKP70kWmm13jHSdmZOYyyjK2HCx+kKyPMQ+xLHd6zw+kvvV/nG3u5dhpPUKeMqWCgU9Pb2sktq9aJcOpMVJpLIVxSlUs4O0k5RLYYrLQSXOp83eV+rjlj8VYgwQVeGF9dbljdMqObV73O0+HmDAq6qtS3QtzSW9GctuAOZoU1qVmV3UB/tRvwuopgQIHAwTY4r7KpE66wwq7JHtKi9rgh3ljjKRFC7mG22IyrLLz2BZEcEComxHPoDEkUhDuRPLABKzqapCdbQF1sR0IVDwusygqxeILGu0+6m8/pgmDu2K55H1zlnP6D0JTbuhgrZEmulT201ERL+lVwGfD1Uua+S2eKgWsWY7W2W6aNK4ZlaPsyMTJHiFo0mEFZ5/Vdmh5ZbCkii0V7QFPnsddesW+cu7IzPydfZaaXNItQ8DMTFCmrnO7XY681j2c2st1Fh1EFYG6tS1t3qAKW9UqxN75vQ5pz3qPPxNO2rTh4Neq8jbqlyfKouZ0M0DplKemq9ClAWXSEi55i2VQmMD0HDa8+ug6nUfYyAyudQZU5O+DK7TThPtKax6+UuJWkEB9esGZdVGliz9LfHsCeJNMVI4icS7F3H5uvjudLzb6W5iSuW5IGz9jY0HMhWw8xB7G2t3jONakmuuLrbOvpbEtK0g9WqQGvO2bDbEHNMTMgic2xFBazMUTKnWdLow3CrKbHSwc8arACO1ZQW5Zkq19M5J1jG3bOIEN2WmJrjZS4p11UvGLuliivFTu9FXARwCBuIthKi18blgKNoslJtoDqhMZgdQTdkKVK8b63DUJw5UPNjxUTbEDG07TmpiEtaPNL97ENyxrgMWPW6FmBVS7gy6s9rZVe0iJtZtvlysQ2iIxSsGBsqr4sq9Lqq+OITog5r0DkmHoAnNKa6dAShPNuIfO2jFsjU1lB1cqXQamGpayH0jvX5S0C6/ZrPFlMQK0zyUOwEWBd+oPRFmcuG17vNIYmJzbVBko5y0OaFS7ZwHvHQRnlHVufVkWoomBqe1GG9kqr2emNy02CSeV2GwV5hKC+iotykO5l1Tl7LPtunPOz0nNs4mWYvNXRap09SuwbRy+xHV65x1RVg1zJW/OAtj1Ph9o25ug06/U3SKzpPO7sm6xxi51qrSM7JAwAJgMsjM+pOGpCMWkNzOTlpzcNYCt1VR0x/S+Xp0zoYFiZxpCxnbSTpHUfmu76ObJzv6a5lA5V4oXP1/bx5kJ9nxhj23pNPSYkx6eOVDjbEK2Q7y4NQpErQJjccCo/iTSnGOwc9XfK0SUF159XbAwFaexL6JK0igKrbSmK6Sy9CrDzOxoGjPAil0bCVNTXlHeiOPWXWnFgSaAcKnYNlYzrk63Ig3qpJ9J7AaxKybkm8s0mwJgxAuXl4ueDYmrKnEG7NqMxewIWHoihWGrOXHISQ3ZxMVDtKcFprXalUxGsEk8Eu1uHlUOgWydFKszyYqNk39DEpVzIYR3e7slf4T9KcUzdCspJFoaZLPNZ7Wu2syPRji8f5iIx2CpPQWjSV9j7DZeau7LpTflseVnVy6vaMTCy9ZpWoZw1WuGNjXDFMVQIeQ2Q+h7EFfQ/zr3HoJ1oFyRlzqoub7kVOJgkRutgqK06uawvfMrkSAmg2tUK1GyY1sjpiVbXVo5H0Tn9PjSCz1BZ9o6ZwXvWZvF1nb+I6F3+x8g6HkeIWusedvO9bmR1edJmriZd0ikmhORbR63kmmKmjvN3qYuvdA28FtuvcHn22MmZmXnhaEFiVKbTYVaGaFezV4hKq49N/UUXt5qsE6DErrt5+bmD+Y5oDQde8GXSYHy5z4wxnGZHqqyp6FVrnFljGfSdhkXoOZpsFTYryuL0zSyU25nWgnlDYE4R1Hl3VFFzS3o7LdCq39NlChbyMoNj4+S2WBe4xvprpHYjFecMvUdcr7qvdzi2CTcaoahbp061upUbBB2J3lw4PGkyZAxqhp/bytWC2Awdm1m1kuoiMhjsazIpAtQKYGRGmJmVUz9vliVy5quKwY/bCcxozwgmKxvS9GQxhqX7xhyWBjWXthZCE+tLaVyorud1jJCTMfQ6g6+fPoDbi3pNwVEHz51MKm2q2bVxhz+hILYm6nqltxGNSF2rXiSdLeqF08iDEcTnPDKk8yzq7Tl95xO6FuhfmWRyA5EdfZcnG76up/SyzhcY6py/WO/UeedP3KsKut84BF6oEyoDsKU+dq19jQXnRjrr5GZLuIK9jaG8BcxoOmqb+l5SWmHFvoFYcEp6DjolaSAPdqm2GVs4n0BGwZnbKpec5ndMq3Oeg7FtSHvuZr59Xd6lvRbBEFmZQ822oFauY9H55R+zJrswnGoigY1RNvASeSWK6yaBpccarzIPvT+l+k39UAzLFRD4MjljWmuPCSxpfWOTGnXfOw6/Z9iQoX2JPY1hqSaSzCXUQwYufpjj2mlmOVjuhlX7obuSOLxWwtlMZDLE6DZ5mp6rZq+9S6ciZlDkSMxuyTDew6QSZkzBBRNapoR4Dbbt8S0ax7IflZMejWg0aaGIwhx6mKDQ9MrjYUm108zPOYVxHdN5dNtiJEwb+sAM0Z/SAnsqBU/jlKjw5rjOJpoawAZiJK/oxGh5ZBMLWcRBpSzIY4rhgekZi3wolIH1T0A53SPPrN45/QsPL7pXZLE958f0+W1r19WAVMte5vO3WAxJbIQrknzJqpeV4CrKNovVBuT9ArO/KuUssb8wM42mfRN1zjzxJ9Mu1CT4295gpFrO65Reoc9EWRe3H9K5Z17PpBaPQVI80VaJxmdFoUUJBE3GiGoyeOzvSC22AfmnNWyuXaGdUNmeRxU3oxldabYcjOSM17LP0bfXy9yUAZTb1GcmsV45sl/UfIbtz28vPsVDeuO90m3nFfNO70QzjU3SksEkoRZRN6rtG9O0kGxDJ7Umx0ZKcAy31Ju/C6WTDrcLBlmk0xvHIywIZKlGwXKGnkBooNZZbsXJEBV7SXSXrgwKpLoOSsxSt4qvaHXxjecauubrgJTlyOt14g05q+2p3s3TtZNFRzqrJtLUfOxOkty0xrkQaHQq7WOoXfI+XXcpLAEB1fetQpyt6GIk4c/qcd2GQLk2jkD7J0mjmela0w5Nh2aSCPNCZHQcjVOU91WSq1ExVPW0GCiSyvzXavZ9GpRZWhG4+GejNXcvhJepEwprVylwy/IXeLtUxWKAO3Q0KIGXsmhXs0ETU18LDwgbSlvLmnVOcXLnYm83L6HI+son5iTDjTLpPLSEbM0llqtleokev05ZXJNzusUPYhKhZKuNUjsViKqjH3ZN62yleCESxoYekWkyNDG6c7cDdt2ASyujRcvxREWqlF7R6FWxcMxqFzMRJaRG+lqrbXHSr6Byg5W5GvR6T2O6R12wVvXki3j3I5GamaxNtVOPtLt9vJzNVBtNZu4sQFkomBXJevcCI+uw1Z5yeidNzlI7P1nn15YNlVu6pHZ22tG783esqds5/sytkWZtScL2xNjVZH9fE9N4fFReYSTU6kQMH5HCSXbJuVzGwSZ9HtK21z65DLmOrmJF1lGj7y3AvGj3ItIpQZFIRqo9Y/RXNfbSNDEe3rl2haKOXtNKVHXVlr8espgneaVYD+Sc6rBBmlWffKc5SbGOb2Zw4rrI2EVAeQAa61xoLFNl9sy0Bd0lK8AJ/Y3cpuA1jRqV7l8ry7+zB8mkUdmWGRsE6x1a3ktfo0AatxGHLYKBChmSHSaKryxA1C1uLLDj06s6vaHplEJB15mBSoyqJTtUNFil+IzbLVSbhYSVR7OwXZdTpbXILq13mTyzJZL68prf5v7fzjQvvFAICg2bRMqoLnBXWKjIPQD78XgZSlmDRgIIwVztGUeHVbojkZT9DcZH8nU92WvX81bdE55tXK1QbCTEEowLaNKLs6ruXWEtM6Uiopgy01fUjLZLxu0JNNrnTOZ7MedYLIDgt28uzmol2Ljl6OttV208NV1mszh5bu2UG2TWOW4Va6kRS+nJikXI2bwWtVtRauPnoGx9WVL9Tk9kru9H1GmP7FhdSeicks9Pn9E1qvEr6Lyu3siJ17nBjYrBjqyWWivLVqLLuJV8CzqBaPBMNcmlF3NZGnsmJ5yjRTSGe4cXtBAbdRRyQS5YpNJMbaZq9yA/SNJEJ43v6XQDHi2go87jSsGT3ssG6Rb68jbgiSK5gndzVomC1gQh7+KBkzmaIDjazugHGkm6Lmk0JusjFRSC1+z1aHyiGHTuc0cMqFgWJinsB5S990mDegQNVBuj1Hw0S7hRThl7iqu4xkkNr1w8tDtctOiUWVfNqZdjV4wuIlEzwn1KgW9qWTVYIQ2j0Kl1keq0c5Xd1YZtPGbDEndn6G0rG4DcY0oIOLXoEZF0XHIkrl93o3N9mrtaON89Ck3Zia69J3CwmHzrJ0qrpai7fyTvIhtwSw81ZSyXQknROvWPVhg6by7rnI6LdoKzxb5dlperPjlXYFVT5NG7Jybp4hChi2BPHDhZlK3Q2PQuaMJ0wC+F29BWZJVqwxeUgzDpc8ex2qq68ioDotRjZ20MilDT6B3HSxyiIjaVdq84gtNZCLa1Kb5zdINYg115b5KiNNdSBZptVeSdA55g1Pk/rSh1XvNUb5tClAwhh9Bl5mKptjTro9Cmwwm1yOTbSXKerklPpkDAls9NJbADzCKErVtVNFvKPsQsBPbMX50iylzkOb0obcQqxkhzpJNFJBJ6fWOTb2m0KaDaOTMW3hPMXsQiZAcSX+XG/M0+ZRQ1eho5FSaXZuBrj5jVOHmNIWQzfB5pkhIzrRATFOV4hJjVcVdsyrE35/jYAd3njZ2hcto4UXU8+1YNqOTYmgfJbcF4qcqWm51kZs0yqVYB0clw+dXPV7DtApRts5wRJ103nHTtnFDBu7PNu57M3AxaaNNYKUV9hT07pVXT1F+Ubefm18sqgTqQ3I4w33CvrpdSvRPn7E0GwuEErLe83qgWRX2ZLqNbCE1W5o1Y5+pgDpZcat2Wz47nckn016OUAlw6uVO/xWbDr5T2Sox2HXl1S6Jnc4lGFKFI1tZG4eV2qpdTnLCsZfXoYdyrNtp95xvLiV4wm2xCfoyrp7la2qrtjq1TdT9EPs9ck66JoMGdVtq1+FgmIfWPn3TAchns6Ji6GQ3xj22SruxEtqrXrlb6WGqua1Dpx3iqb9RTq+fulAyJ08yf1s7nb5KTPDTNfSyHUEhcd1DvLtdQ5lxJpvK0lYGOX2ImNtKNgajKsGYuMysBm6S1WcYupJh5DCYoRscVtxx8zzVNvrhKDl1yU3xF6SfTSSVtnHpNxZd5cUJWtEN7OKLTPvS+o+Nl5Wobe2rAtQ2ZyiYp5TJZ4IN20oG3KywI5M7PHGfZZWmc5q9cb+kjGNwm+M03vfKVMpwjbXfjf3Dn82Z6Goe3ZMS5wVT6j4ly6atrpRhlDKBm20lyRukkrRjBbaGkiHism15pDxuTr4Kn3T4Vkg42dzezfUqq3gdJ2MXo2JtuwvdeLhEnbjDHibnrwkGhWRmytGrUc4C322JVonzmIHzqq1BmfqhvZT8dRbuB35iSxGEKHmd/UqfxRi5kybKY5BXuHo7AS45nI+T9qWkVY6TxBia+ithD8ehggGr0EWhOK/1ecsBcI2GRn0xwd2qw1XYpSYc2aGWvJdKreBXoGGeONkrYDikVNCB2d1ufdU9KXVK6CAVTsqCQy7Zz1fnk7SG0NcW27Xah0fq4brUVE+pGkssLVluE0y5bud3rj/AAuzA1QHMMvbM5jEucaVEedtbLPvZl4xudK3dSxkhaiPgFo2kmIens4klNXZkZeilsAhGquT28exVPMJMxT0QVqQR2ektM2peF0cjVzuaesyAWj4xMrTpieGVhstOlQRyR0cUBkImNgp8auwDWMzi9Ks2vfa4u3c4GhjdNWAXFqTqHXOMnXs4ydezjMnve9U9nHrmcYhXaTnlx49jd4PeHpYemTtJsun5aaBzOpzCl3kkj2wUzpjaVr6LeSTpPOOzBVcRX+hCJWtRc6kqJMwNo91WdkN6IMTYXYi9ZCioOKaMLVUTrFQybJLfy3obEmsdRNeO3RVx1JCA2rBqdFVOSS6q00oMcNasysWcqsCUxDCHfkdV8n2fUkm5/VcnV7wgrqFRWZDZ17kh3uir3Ks/VuHWHn9K8sPMcrkXK+oWU4rWu1yrp1ac0bp844dQLpAgaJmDbfeQen4i4DU/qz5h3qMvvK7ntwxCzRSoNN4rv2fayyZSrkA7u1N9SzjV2BbmpI6BrIED7Uvmbx7BEFILPPv0+ZVfHqdc22jkYL0DF/Gc/NgeY9MfI+08m5fSXykL9VOJYJCXvLDioAO2Wwo9/by35KVkStl7CSVW9D1tN9nElXrCRpJB72ZeChvSWEAS3RdG8/CKLpPalREwmzFT7wG59UT+vOSXa23KxujwunJEbNiR4SosfRWsQh8vQapHKJi9s6ZVoxtiOT6Wyt15O5jOhJC3gikkbYkIG1Ee7rDBq2mqqMhc7Ky2CZsJq0TcCjhbGOLyy8NKDgbBw/t9D0jQwGq7sc7rTXh91Wzje1hr0dtvpPJvOBi6bRrMVNfaSXCek8u6FQ9GreHGcuSK2q7Ss1Tk7dlBtUdwxvIK1MPMIXBLdP4Amh0oCdogulwWKj5dvXD6dYNvOmOHFMLKmjKNSPGmphscniktMKr100LUwyi9ljiQYkSO5nlHYA+b1kFPdV7Ftu8Y+dOaFBaWba1jsp2DWgtI9NK+rToIVM3p3Le+uOfjnWePdPzqAaaQegC5UGVOp9R4Resc6nwroHNrlLu9cuHf4aPVwlRpH32nIpA2yaVPdaXlTCrjQiRrq9eRLsr39dlJxvydC7eii62iPqYgxm9blaiGsG2omlIkuqjCBbLVpKt4XUfcL7RyG2JpttNYMil5lhvvrJKmTsIai72MRm8kEsp4ZV8QMx+2h7bY9KzjPrkMZENX7eLeXvNH6UaUjJsWo+8lgsic+Kkhs0NyOw194s6xvHvc2x7Ekx4DsbHWNRJQGPancu2NxL2feld50Zj87Tj2VgWbImnWZBicqWxmXxSEGLJxJoehxdN9Uci7fm1I8Y1ngAUbiJWxuxF7kMpzBH0ykdPBUpihd+Ww1IpoDKL64ulN5/E4iuAtQZpbmd4yoeJlNUtn0R7yD1Be6V53dCtyrK1JPpZ4uKWEqVNoKfUkMaVjm7DqadpuzRVa0eoqffeedEcAZ0IbkMmCaSq1Cg0cqJgG0umCewV+QjA+txoesiq2wRY8Ezn7sHjdpEm0Utvog+7PVgjX5gybO56cR64t2WgZ2Z3PqF2u0HfHb9YPnd6iqrOt6POyeGzsk+J9gMp3VzCTZ08zB+Oa6JGO3kJtDLdi6vMxyxWHpj0SzaBSz5XEkDR43bbyYMSmtUm2ZmfU6e5PM/5sY1uCVe0t7ayWQlrLmYd4qGxEmQZJdil9XvN95bVLpz7vcgfJEGHpzmq3hCTp7SBiT010lisaWiHkxrC2xnWT0mu8mPe9K97Gt3nWbSoPmaCXJ6PWSaPGJcxyvaqfbpDiWfJEnk3dr5pSmT2l3MNsxq48lDyMK+WaNq9XAtEJvrsVe9ja6+iw9cYnD5LHWcGmBQvWSCcbn8DtcKnSyyOdAI5JSANpCGygy6eQC+kjKyPna73SMVMGVPgjDlSjo3Nevz8e2i0qa3nmN1REqq407LoZJ4DXDZG1Ptkg1MuMRilVXE+5T27yawG0YkQBSBcySbz73Pe32EtVrmK6TZKDKhsDlSgBrBWM2joUzGqGsYBrXdKJpNotCWkqxiNbu0HrppVmCY7KcL3VQEqw1nK9Fb6rT+X1q0JI96Ge117oVIvNpKbbas2q9s0y60eeEXKi7B6nXdLeccdl16C5VxQ+jFM0jIahRJ4sGR26sW9+I3UyY8go8O6dGYg14MwNsMGmfcM1DclkkBWdJ7jow0IU+fTF1sEKu7TROkVQLp96rb41tZkcSrEdagmKmKwnXfPi5I6ct9VEYtNX+kz7dMyZopCdIqEmdXvcsDKskGk4Tf0uCAnFEJqTDRZx7Fz2ceqsZ967lxrvVajk6yw8TS0QnidZB8zaSab40k20zbbFtpYVF564LdEItCxOJd5xtmSIckK4xhgzUF2xNC9nG0rt3lzLn6ZoZc3Nc7eCKh7IoqA7Zjq/aSeuQYlHuiZMDVRpUBDBYZ02lyyCelNF8hWZ0scqtLSaJfa3oTz9W/SdfnjnB+Mep1Idjhan0fFtBMzmmq4YCproDXOtwooWeUTH7WQ8cZuBwamnpdHu/KS5JmweaNTU3VKaqPE6G0Zwyh91lYo6f0Nqlqp6215eX63NVRp9idrrReYDLsKVxtIljVFgxtXwR8ui2rwugZdHJb3c13S5UNG6VUse0q30e55dbDmqAjWnshsBOXbzegdjO05Pms1km2IjKGZSrAhe1h+SVoteSw2WbCBeBAXJN+kDGqzJBCFn7SwyVF7dfo1U0B7dqpGuVUBQKVZCZYDK+9x7QUlnW59CDW02YA5Aq6FRnJDq9qq2tQF1r4hzr5gTDl7uXVvtnOHVU5YB9QF5GlqyByvBSyaYW79t6CRkSpmuMcBS2MvtM2Ouu2JNPSelx+kxK0kwZJDrMHJ7cfWjL1EjkMjy4lJmDwgl5bm2m00tI1T59DLZZb3p56Lb6qLvbiSVe2kuZFkmdik8cYlSWWLBV2skQnlbDRt5yH2zNXKJYJiTpaA4BC1eS8AQMhAsrTO0l0aen1KjCF80hoEsN1I8UN6uaIYoD9ULpXosXn3XuauqtZaJt+Yhgv3Yp3Z6IYzLfF0m2bUDBg9TFxGm0svI/qrbfYsGaNt32bZo1JPOoJZPaA19toVer7CuZrULYw3ZZwpsvSktydKp3VR/G7cU6JtJRVlO6rBBMFCEDZmqEHJqbKd2IEtc5Oaoluom04RPN0rqcM6+443YDp8rcGGo7mEaROrcZtvUxeAKpuLS45uxrHU52W6p+nWKJATVyWBBZHZWFbtFfybEu1sZBKIR0Wrmua9ED1WtTdliVY9vIBsPTVrM+8K7RIh9de09BpC9UdBgqPbUhewO2335dNSzqPOKtq8HRlZJ0psDUCCZ9+nc26A5Fm59ZuT8vqo/Saaq9rmSTXMmtT3tfSaRzekik96T3s7yDaFQy9NiI5Mbw+KidwcDGIwmJJs6kyxiWje1oXrhgal2jNizKosExxpKd1K/K2UNJ1vjuZ9a9uJTLfVNLdozc/2ZpAeRhdvLJCm8YQx77UcOTRCruDfcTj62Uy8lo+EI1kHIh1Gl7WuHHUOdsKMiPJ5Cghs0NRcPiKSWX0pQlwkmkEIj3GGlCGFBN9dRhdeeYQ7jsFgSdbnp2kI7RvIacWAfeOdmWuwZbBJdv7YgYOx80S8FkXYM+oN3JvoH2fRuCXAQSbYrglmRklZ2rzEyjyz7MxdshRGEtRtsg3XblzsES6ar4yG6dhqNaZAZYbJ9Uq1gKmg6TyjvxridMtsnYRhYWDCZGBGKwr3i3Vp103kIOslixPk0g1y7B9HEy4x3Pj+N3NIGAfWyFvULtmavHrmStJRBTPRhsa7MqDsQaedD58MGGfQgZnhZ3t65uWJwwPtJEqC/voS8CjUN6PMaax0CPuCQc3Yi9MyM5ut7JQUtpuck9fJrviAwuAKLelkvqyRpz3hXNu7DUomMXL7euxAhXHHLgCjzJHK97TWXJ6PeTPs7StNZcyQ+mxJDrPi7gxPqMH1n0u3LhfaWZVhzgl2Rcd7xKlJhYVCBCmqdWLYKLzeux4r2XjtVhD13mqDSbej6GQ5fIU9NZidqqYNjfc6nh31AtI99rn0iqcj8x4ZGnoRGI8lFlSsFisAI24VWunLwN6xsYGK0WzQAxeOyGEtDsEkM4ctiuVYW4pRk/t3pjXtHxonVYW4C7qtMv1LcpYCQTuzrHS9OQ28RS0gmXWkPVW/JnZpdl2g3TpsuoSaitBHOvWPQVqQFdtBgBjCVdsK5GwVwrVioN0iaBhypm9Mw4wxDaKs/tqG/Nw3ZlQPprxvAS4fDjuWbsvmMC49t5Styt2Mbys8uFSmqx3FHQHvvPeioKyI+iJ06+C9eQUi198r/GupvTa+Sdc5dj0c2XOk/XxbsVVhYpG1Od0OllqNxxaBNXRmHYtPTrxJ4NCTJEWy9RBmbTAwqJorOmqxp8uvFTLGVuyhnCyUQ5ERNSXqPIj8b+28efVbMxR42LtZBHnQu3ZGchY9RrF4eGV2yVy9ZViqu3T5jgBurzadooowZvrtDcxEZiQKJhiiW7sdagXiRaLfcfeWVuLm633FbVBLp0oXA7mVUttS6abRcaTcHc0nExp518xc4MjOiradNozyKx5dva67Z+Robdqg9iW1iIC15XR5qs6rz/tcxRN6fVlYV1vs9NOicpxdmaLeVtATir+mBh2fI0oithyEnwOrVlTegtpGkpEoYbUEJ40LN3MKVDIoNyEMlmXsLkhgjAqgKCEqNJVZ5iI+UayXGp2QTFop6a1L4NJkfItuavrnq7UtWZoE2nBteMtdus3PnyR6ULV7IlxSh4OyqxuCWEH3yGF2QeHXQrzlQcYvza/cKZz0G/Vk0VVpGbRIN7FXih195taBli5tfq6oqppYdmgjhepTBXg8Mjdgj7iU4pL6wUo7UXmeucLmbF1e71Rpx+rfYVYVsjqdnRkJVdzVdKe70kGQ81NTNM70pLHMiBjW11G/YtOj2sOszJxp7RYirm0lkHtmNZTn1FYUvhM7VTNaIq4NuQ5R4keGxEElhnX2bvbSeKVp4qCS6bAPs51B/XmhV1658W6Pz3WJA0Vw+VUvrvNNmdJvENpFppu1akPOApW8Y+KI6ITEsiQbMo2YQq5HGTioPmbSrExMZRATMFVS41aTW6h12Juzr7R+iuwTlpq3Uv6deYIk2+vdFq+Aoui8+Rusl0491Ro9OUO9VaeO3il9qxvX1a8rtKOBq7FBQKpBcvWbX7TE0KUTOALCI9MDO/koTOH0GWko+vMvY7soADlMhQ6yjkiOrYIkeQ+HMxUqjmwM3CYBXBt/OxgB+0dwfaPY6jaD7lWsMYEj7ZRNUZgrPLs1VERVVJR1uklVQAei7EoSegURyxmKeZg2200S3Ui5Ypl/VdMFaS0yffFhOqVs7WBIh59CojovPmlXYdNMyV5/OkhVeuvBCAWyVSeS+G6NVwCit6+ybxajEHt4/XCw7pawLkttVYZTOiRLhITonMrEvRm/c1vnK6Vv9u8YFYXveeQGFNZ05gut6hcNSbTYLnPoxcbj7jyrkdWg2uG1vSk6JU7WppCPCGW58itqjwb4eir158EcI4pVKttz423kYMlzrNuvPSIprRcphWpNaI3W0L8kGS7uSkkVyVZdS6odV5KDLXeuX25ddLyhcZNNZ551vn700+uvEuwd31YLKW+uFO3Zqp4iFbdMb5lwlQtpXoWI5CoxmMSnmh3utDRS7qU4CeqwsbSVaKQwWjYdF5l1EAQIb4qdnUO6q0hNmlV1yFja19Btvz7HbkBH2y3fNHdLPn3WqQyS24RInrKoVKt/PwECLDOwA6ItqWrHtVuv0EDpreM2aOoFGl+a6sk6/FhMwQ5aLeBYx1ZxZGisq8PKQVwyBvCFBPrkClgJFMQXac8LZBGayhIzIzmhYplEvXu1ITbbecwR5JcWFc0sqEqKcrJyqv0zpuc7ePQ2lHqSpGaDalaMQ4GLc2ugzkjpstasij01HhEyZNgRntN5rpfCQINuLjzVld9HVbl5G1WtX6ruTXC/bPjLpPJLJKd8+6Rzsh0jkPkUTsJJW3RaA1GM6RMpOJls6zRThiJcc7kfVqJaOH17cqnXlESGVDFj+Psz00zrdVtFOuGZInrzw7tfBs5ObUhs5SGo29QB1l6/ZSCyRnJYCzpvI9S+mcOFn1Jhmlkuosy4kjiI0omHZEDT0Pg6lXOmRo289OfEZup62by4totTre2fa4o3Q+fWBFhqjZoXOx8yYovqtNj1CUyrXGq66XSkRW1hcagZr59mpF8FNNHxvph6fmi1sYaBSg1ckkGZD4jZJWZW6uqXywv5aKN6qussQGhCJY0rKqvoAy0sAkUzAjWMVDUTtNi5vYjVeeKfQVVydjg1ikrJK7rVKa4yab5b+aMZdRp7tW9GjYS95NSIpQ13cdL1bnwbGIa13Llgae9TsA+LuVhyjZ3b6AYqmY4LRwnkKl2jNaUrANlaSJZ1NPiikaBuCN2goJL3Eti9ZRILJ5S7X7mbmK0N+OVV+dlBVV0NohICMBSEJm4+pjvL7BA8qBLFLeZg9cqkujTHWLWivp+s88NSVsvleu4M6iNF2nC5rKti1XIMH0sG4Np2zAECjuNM8BdUr9dYruVLbZ3BzyRinOpma041yBWZUSwttJaZPNvkaDRN68V13bWQ2suo8w6BkYtstUtfI6lviRElY2j0y6BIOLbS5ktcaVeSOeXKuxcDtnMKnc2+3NgZ0J2xMWQSfTnbQ6jxqhD6lR7TTMCGSfMqGXzkgWh9+5K/JVLGr6a7OekUsOp5+zr07qj2syKzYuoy5Y75nyuwv2BNcXRaPca7idUptB9YHkKcyrQTVD6FgrNXXIBCJ4ecTecsW91ARib5UG9sZn5tH0lYqqL58Fn6IM0ki2GWhODnYxgXTOUystSsVDTbKJZSqvpHujBTbZHuWo2hW+g6qG1kl8/rLEp2PRlXLhTL02r5GXo07nHc6Ii+Z2AGFtdYYAdJS355rX0RyVq6vb0CET73y+02dF0xZE/6PHRWirmHr7HGdPyN6cRrXsjBVbJVl07Zh3u/RYzdTjasmAvKnIYpUYVEVsGWk+lYR+TroaQqRwByl+YMG8mWTTWQIYvVkocBkV5spcsaT09rcQCsdCk4tgWAUWmdKjOw1Vspnq/obQ1JZbl1GnS28zQqi7vojFNIYM9WdtQGrtNs5NIQdbrtRcBbAQ3cChepWFFaNabgLuQENoKubOpBm5zCFsjE5DaL6PG9ZUCxtXSlFuLkn0q3fQaba8rELSvseZ0LBYq7ZlvaSgTuouGEarFs3O3mvE++fuh8C2ZZ1Eo4afpWmnB529j5NyXQhycNNY5HMnkANsbQZTl5cNwaErMIGdhZN3PmYF03s+XZZa2zL0uetptFabaEu5bxvR5Tel0ZpTRyjDo1XZNsLObpOmUfSpTjeNpyTiYkYRQbynBVpte3m8JeDrc246JqO/OmtSSIWdYe8vtfU8tYlZ8reRT0XURcfY5ZD0BDy/RVwycfJ0iS1RdWfYK8wgVu3xHENfrRFmaFKJZrzlov3FOo0LYS5ltRzYwZRQdXkTv0aS1I7MG8URXCvEA/YOJso36MRIrJl0KqvfG4EGy2hMOc0jvPIxGWmn2rocfqS+NPxPRMV+Mc1wghsJEGfHGypgHbfbloGLUjzPD395bDSB2pVZSIy+vghJ284cZxk697EQ3NGOpSTQURegx4xRbCyVYkVqZhtZ5UEmsRVNPkUqbQYsTlJFRQ2U53KgeHsHaR0Oqsj0OxUaO9JEcNj2uqrFaoTGsiXcQ103HSk5jRJrRAYibQhmLYirmMpvtLRTXZ1avZoH4VaQmsSvSmFxD2oGVadwBVzzrn78jqw1+w87XVZI4ceq4Paach9xnrUwuehgCBfkjKib8O1RlPjKzHa9jlZJJKYAkx0ioBub6rHcL8VGQEWJIoydjGLfLbr8jFgCrfT4hxLiwZehrbR4ed0FaSSwZt9T511vk2P0qMmOfqeY2aZs7swHQaZeQAPmffuU8npc/T9HWbUUjO2jWaEbmSl2Hg0oWGEu4w2Fk24tIy4qsK61SMb6IKrYPx2g/mR9Yb9qCf0OCpR3KLL0ufwW5DxfWCzh+Rqd5EmgwOQfGCtMyNcFdlyNd3TpPEOkxXQaH0qvyucdIp6M19cHPZZNlEq3Z6VoRy9TY1S3suocOt8ll6hzV9l13XAJzlDrGVX5b+fLr7zfqp7LEoaec6GAsnaQjbLxnoaqmSaSEuaFZsA0jJgRq7mHRpnpROJhZAUnRyl+iD0iwjEMugwoEGJ72AbYxmEK2cteMxVWAERENjrrnxDNiGe5pKUvgkDRxXRBUQkrf0UpDJPthkmcVoipaFoi8ZaK/OMYnqTIyCNMMQF40FmMbRt5nd18V+iGYeVV8DViO91ddo17cly63oxWOFeK/3s62bYI7FbqxhanYyOd+U7onNu0crp8fX2ir4dbyNcfKO3DKS0gkUFTnFOYRHVCZL7TrXEeA2yOVVmwp9KTX3OrHdP7ANbtPJ5jgsFGzWGdLpXObnTt8hyvXWQ0LbZNb8e2sXxUuzM1VvKyxb1VtWuF72z8tPW6OYHfAHPW83ZKzUb0Qtkr+qqZWOwcfs+bXHFdAlsWJ+iP0v+fUP0dzQD5a6jX6la66ZcE86rdym8iU1yJoyoDHduvBG7+ihvAXTnIOuJ93Jo9q7HmDlbDfdyKQtvtV4XrkpsEeLsOhh5YDBaRXmhJo4UtDdkiiq+/XnjPU5noSHsfHYc3ROG9HU+2pbjTNeOmlFXLHt4yHaq9cuFh5VdkaGlpQWXLs9U+gVvqc1aeqd6tghKY/x+llAPhgFhxlDISgnhQRN0YDaioZZDc9+xu626YaJsgdpbrGXb5kNZtFJzumNr0GTSwHH3GTtWbXfnUCMEzl7YxpBiAaymFZ2ag1QkhUAHDk71gsik0IdCN8WLJXEOVTxQv7EOQH1wmZWfdNxYU0rYQwG6jmy0GxNdYCqy3DnNybRlRfyGqixvTaKvP8ASqLZaqyS9SVcDsoNrRjvotSABw7OykE5ULESelPahT16r2HmdatUfqdD5nTSaM1diRlbC0GuVclWz8v9U3VHxtEAF5pd1mV74xVgOiZK9YLBZzTzt8ZpuwtmlhH08yhC3qdW2qWa0m5OhpUbVy+16DiuNKHdjqNjy76CK7oXn/fKSrAX1fJJ6q6q23mM7wtsJqLVzJ0NW2FcyobQA1VASa21B0Gi27UsxDSKrbHaG8HSdeqGpdF2MDcOnsRlCtxclRp6CTQlq9q07s/VR0NwTVL1tkPO6Bx/PnHS4lpDK92vKUhXf6bw/XKjh4MPZYyDZIJk+m7QX7FwFT7rnDOkGjsSSt2mg4sH1Xlov7VnjPTGpWMww0v6bxntVbo+ITmJxvqrXlvR8mt4zplpbhMlTwr6Ff32xw9m0D2NgQmA2h6TDdat0sz8YEmBIheh1aKGQflbRtydAOyPUjnvcaSk2un5dIopI/I6RdpqE+lV7LoIXQzXusyzakoJw3GY85izYyK7BXmLDy5UjBsFsLFPuTDLggkHsI4iNiGW07KFsr0kkzUi4kzcG1nhlRYjzJtpHDdMgfbSs3OkW0qInjq5DeWfOLZd1NffK41Kb2sdHcWFJcqYbC1mCVPZ43dm583Z1RkZjLPWdgYJZFN6IibG8nrc/rPUqla6YLYAxtDq6gOlnjYzAWWUQqlGzKVQlTsJQ1xNtsEN5pXtCbFU6lTCG2OOZMAv6E05X0aHLVZ6dpzdFpSg56rUhslRghWapN0bRqFc0vJ9StKRsel5lLJ0VuVeco7u3LzbDdLh3lprMiU1jYqi66HDiQ2qv5OxonG6LdlyrVtU/wBuesKK01V/uo+VJPoejnXK/WlKy1WCobvQsTa4Raazhqu0+5FYzQ5fGVnnbYLPRmHX8/bVzbXr+W5wLaK35v3sUosidc8YYLVz+1FMbuRRL4/JY7BQLIsOnc0sRSdnE2plcOdVVI9DvsKtAegROfdp5+t1BsycBg9JtXPLckHuo2MutXZUlsRoVr7MgC9bDX2VVEqFwlrKy0fZoWapmNLoC1JrPuyVNY5UZNLdylL14pwbBW7pEvli4/W2j2iuYYAaFVhmSWHUmyJyNt2aGfGHJqZpLDMxAMQI1ULiVaYRaSwDcGcElQ9xlqGc29Sm30pLjIHKK/GZqmUyJ7KSpupKZKDhysKhdpt5UBEJdjHNb1Z0Lum2qnbqpSmENs9UofVYqcwByvLZE/LswkAot63Z0wkvaxFPXcKHZigamvXL7ni1WFccRl2UpP0gMl823uK4Bq4TrSBU4bjCwayS7YWtPaXZtt2UI5dOT3OsVqmjyz4y6tDI83TF1VDjX1tbWNt3MklsFf0qt6dKTRJ47AHZpJ7VYEPE9YU4xMcshbjF89DZG1aIL5PaAES2ZLqrnI+vHbpq9ZNnIFrtin5/d2qq1ldj20oS1gLsrWDdIaC2A+hVFy6zs4il7DVDOkYzu6hJyIpez1HI5PS4Kjb9GRto6p3M3WE2s2r0fhBOfdMo+ffWx/B8n1kmNNTGYNwNKX9HpPYdGYFXd6zeazWLn/X82+q8t7mklcKbQrYXQylBBIt0lZcmNQq3X+c83pob7BUtmDrU1Y6Dk0qXdcH5HTuFYmHsRiMYyPiGaltFE6BBKtChtVHZSl8XSxQ62daMmcqme/IQheitnPxrMh4fTGiJhUyPO28mhmBWgflPiRk4rcmnNdjEMu7KTUnQ+hMce69RkSRF3QumbQECpcKRmezMgJGWwWbhiXtxvBNZd2RjvZFKKrtldVsrquEyCkLUeAqoerj8VQFaQlTMcIw6liwDVHkD3uEnGGctXG3MUIelDsdGalu9prdo2ev+QCW9lT2pZWMpGdz+m0nBkBhMWMlQcLGKUFAxFg+nTrqryoqs6sTunLqppUS0UmczpMIoZSGPMuhTSCeMZI3rkm7He2FUsW3nR2TlnRoy6r31FQ6zoLQyBmy2i2i7pAnVOS6MlqDWuqGACMXn9SYdxX8uo+k2dU5YNm52024OrK1T9vPnqlrTc7u4kDr9xgjItJDqOQnJcRQyOz6cxUWfHo4tX+8fPzLnjjctoDWbS6yctsWvJYya7Fr51/T16XBtsFPE1qle5Ei9g2JdyGfUbSSfqFCtRL6XXtbUxHPujUVZQ9UI5+9o9+Td55Ipq66c2flLSwslhIOZbWqLJr5kc+CJNX7LyMYT6DLGF5P0JOJsEGIjCDEAXcQiZOq+e9IcRZg2vtIzndjVJbTXmrsE9NtTgLGJD0pqYM8PnO2NJ4qRZLb12rPXYih8zo43ERUrLidmMSm3VZwM5q+e9DXWI3VlXM26kGMqDbOcokbycrq87Vc9QKZiPbULhjKkuePgFIZlDuOrCYaD3WgZhlWnJLGk2hlkuCR+iKptLMvMU+ksZCVdqPbZZyp9ElyR/kw61550TnLVCbHQsWaUteVD1ywkCspSxHn1WMfL1bNsgxpcwEUcuzP60l4tvuzdLrYJHQ5w7KekwBDpSOV1odzdrELJmt0NmbSTWPfEKBa8X1DDK9YenhmjGxtw9CHXlDL6nrNwCxVbaKRkxReVopsNwrjssZYuyNRyJyt5fVUyOkjk71a4euVayVHfVk6tvQLno5COZmPh7FYJh8GqaNKJckscc5AXYaNZ1l0/5w7OmQ/lMfSKHoUmFtNVI8eziiMtNP1bmfPN4nYpkpjtWurDSzS4ddx5IDgLMBn6shzzst0LhqbWjVRwdbBTLCDran1wSa0E5XZ9196b84dPk6GuHriNHqHY0prmrNgcsxXNN5h5P04swJYXpMujuaTGa1e5wTfQpfqIQ0JWKefShhDGsGybHWLLYHZgm6WLnw7ZZwuu4stFm157qsBjcCH1mOztrUBi1TBpW5pguEIEMdIMOVklt6i6tCJeNUW5pmGD+hkAF6BWpK+LvkZBpJrY+zo7IVXmCwgYb4CU7f2SZYBhJYsHLfGi6mwdArxBTQy4G5NrhSNGULHmcwjaQkXfRSKRYxc2XMBEtpwN0p+rE6ynH0ZrZVSFQHKb5epxBC+3CRY74Vbw0EqoRd8oMJclEQzsevIhIt3Oefuq804OHoTyizmLbdVMVM8gTQZ49s1B4p46IQQzR4rVd4pTCbWmkt+ly5rkGtJN31uVJCrUZQHgOrt4sfJZfSue2G9KZx7YeffmmkYSc7rgUy02jnt5m3ZV9gGUjqiCSnb5VaE9JI5vYN3CfVu3xLZWFz5Lj7ARJKcXOmFPMksNv59faC6co6xz6lUhSSsazURuGDV802CuW58/6Hp5u9StiE0WhWmMR0ABbOkllWiUo0RQQ2KhXa9Fq4iJOl1aK1e/WL0O/VyyQV21wCyaaXJa6YZX3SrPbW1ZTWLTnTcz6Gpw7yZZZ/K92OEsCp6GTdZYYRC2LpRiLWmyp1bVkFh0JQZedynpSP0NjYppodt2ebTFTNTx+kwgh2Wy2O+fGb81kIV6aEGpToXLTLW0nL3onMM8imRulNdjfpM0IWVROtCxkBIjQ/Z0N5swNKncT2q5owfghYw/gjEwR0LcjJImFysmR1m0wuiSyZFL4NwRV0usipIyFkdkTl+KIHK2KylEj5Gral+ojs634ZL6/l1PEu4R5zEb9LoXBAcIYT5gflTRtImByO2olKoZStydCJGc12JcDeEfJ0DVmyXLr0QW+TOzlaPodEIF0cejKLkG9dGTL5KhQupLQ0jkLaJSJkBmciNXGdTNbNq9Z9nKc2ek9XyamVA8vcli8EiBjGup8qIVuH07QDALzPB0OUux8Y9Oyd3T5SKys645Uilg2uucS2OvnfrbQJdOHqwdGtGnkqNL8tW6qK3guXsLOkc/6Ol/QOddV4+tVCTMgegAkg2+XZNtH6w1s9TdORZVmtm08rmNqFW4euysFLuuzK3a0a3UNkqtzqeR15DUXJiqHCwUuRBGwtyNXKmlipC9Pa6MKUgrTzO1It2KtWhIKjV2K98dsr8sFefHaM4w/pPnntfYYqwssGeA61kxOdYrdoiKJbpV7vpXWydR11PmB61aZ6LK5Ng2237vNTo7ImxakGli1xaK5M0BWe7yuONChF0DYLZO1Dti1/pcbslflbrsjm1Caqsji9oJujlfV2VbRHBBxYtVrhrPmotsS2wbMlZksaZy9thSxZO+GaU/zCfMZ6PNbksMdUbkrSpdFHYvmWbBXjzba66kEs0I9i7mCClkWGsW9OinViz1nlblMkejacJ9hXpZu6x7TntRVfc6sbexIaJm1slDq7PShZOGKZofWhqdd1TJRDMQS2IapbkkKMmiBXJNbQrxGs+V6djoUNJJKTpVtALJYms1Rmc5lTKMCpJsc/TVE+rZujLcCEjY8bc5W1sRNDC6rVi/sC9XPelYhR0K3YZVolpAlsop58ku1Qx6rKks1elVRIe00KFE0FubKrSslpMM1hQ2z0SV+Pqs3J2OnkXey0a6Dd94P2XiPP7lYiLG1iNCeGrR7O21jBNrLVnTrdn52iaZch0s4Xku6Urp7vo8zohHMeojGiomuoJxmeyjVLvVbEor7zfpAGDo8ecRptua1hTLqC1U3pdNS5F2HkLBw9fo5eqjdjzr/GegIEMJbS7SXMuKcg1gACFjVPGabFXh4tpczTdo1ADAuTbmKztjsZlNatNT5moxlWzapkrl1kXWJzrY0wmVKprexUmziJ448soxORTAJVYKxYuhi2fp2GgEYr1JzNu7RMG5dmqxjnTmrEj+vpOz2Lnd5dGsJLbTE7DbVLZNEkhUYmKUmlRG4mYjd/z52UtCgljR81C6BSzzr5SDrCalOCpcb6u6AV1HWFKcDV7wzU3h2/Vgc7KG1aUGxJuIKLdnw5ozXRn62UbUFMYWKiX2SutWGpXWkkjN2Ue0Jj06bX7MmfYnAsKqwrPP+rozViub1HBvJq3Tx7rnOhqsxLnVWmoDusuurHRZOn0LdgruCgQ6ViaJLvs5eheDlMPECPYnWy06Ya7PUCU2fos5PZpdfYI2JIcViy1dWqOV0rw7qMzKbXVJXNK00AmBMZ34eH1SYSeSWojZelhy+3uvoOkUT6JXXzgrvNa051gDQSP21P20JWbabJZtHtuYwjuw1kBrJjLqbLrTad3E53ktMrodt3qHWrVSrahGCP688T0Elq5ZeFaGHMPoWox3LS1LtiLgqYhZzryXr9KIgXALI1PCYtvG+lgkbLmLh2OhlikxZKQ5i2GzAjYJRMmzElyPRSO5gyNuqq2/op9uaCr2qh4dMBojHm7Aj1GCDoGKLbtSCFLfbqY6+6yFxN4Bqw8DR0Yqr6c7i3164a8zscMaUzCUTUUEDwMbXeLHC5iWqrTmBtIpyNtgIohhnYZq+K1T8YhlqyV/SwV6rYKSCGLq1+Xq6jbWseMXnN7YrJbO01F9V1s50QBqFNkwVVnBK21XTFTsStMKDTj1pOuryj20mqH7wq8XsBZ319y52Sr16rMU304vjLCrswACp+foqJeKV2NhTlYV1s7kuqG9QQ04Oj6kgpjNbYFDA1T9dZ0tHXy3jTpcpGTAR2uQ2ErS2kTVy6Kud11XWeQdEu3BDFKzJ0TesXJG/ldktlipq2u2hSqKG1k9Yh80cVh+QyG2qjUZXzBhsSGE/LvRVno6hWiqQ2uvyL1LAIyz4weUb1DnWVn1rltR3uT3mjDHX0zwDozsV/Pwbyuk6aUXNyeYS1PUK2xfn8+irek1urqEFjWK0V6Zm5uKS4GNqW2AYZLbbLzoYT64x5V0qVXM2mnydfb8etSNFep9vrBhc2vNrXQX0Mdxk1U0pqzfkUEFj+T9GMG0Bsm8C5WRPNJp7HAUklBtZw5ehl8ZouAGcanN3OuljWx6SrZ9zmS0a80rLoHdImXP2qmbJWxWy63c5VV30rbJD/FKIZDY9V9ypssVjscy6zR+z6N2KrAH0JRV7hswaDucakLVJ6dTFc7YxD7hWq7s2NWIO7k7MyZ9OGKWDVHRKVA2c0j1qzLzCJ/X/SyENviMagSWrNLbRmNdC2GqtwjiGsUJOvqlLoqAC6RVawuo9ukVTpDRq1HstgSRjpnP5/rcnpl5oXc5+91p3Sehzpw7vkB5Tuwg53SyEbGYqMm+ZQWWOjAqkLtbbBcSYq9fY8wc7xYkddM4tsq+4oqf0Kkh0a1ruhgp+hohbJLZTjaWM6CgzP7OIiu+/hL5kJi9d/irJQFcGNHKS2xIXLSnK6a7SvyKyYgXZSJYwbnYefNK3l2O9q4wkiqDQYHoBbkzQ/nYNhAbK6QSVRLYiYrqGWcwhX9H51pU6twn6F5/kfznfXzDzcqgZY9acLyNXM2IggIVleuq1y07ets6SdYg2vP6J+ilEYu803BhPVrAawbHrqejTQLCOlOWtO2BXaQ0tKydNCFaZbrdwCMsj4pRvJegNmG84AU1jkTp3wXvtxAlEGLoLwQQG0EixduE/jNKgITt5DnSR12eb6rWdcltP3jH4nUJYKfWF4rNgUxaR0jkonaC21RoHVwclo8+tQwu/L1A+p9B1Zacn6cjzaKZqyEx6p7BTJzG7l0uz7MocdtWbMi1WwTrLNnjrgMsx1Vs+zlC068U1GnFtB1VvOf0p6RmxjQuySsRJ7mAdi8jqjMyQacr2r459m1k1/yXqYthZ5MfQHvMDjTks1R3n38dfo2iocQ+qnA9FDGXcdSg7jpZut5wSp9E15vY4tr14DLs5xPcFQxGTO8z6F0NjBQ1EussWhXOl/R6o60GhGjCg1myxY+hEdzWWPS7tjznlyRZlPv1ddlAIjkMhY5vS4+wcctDsdscEU92NvBs+o4yFLARvQRnMFa7bX1UWjLHBvqxblnWnI3o0VXsD0pl1oqdULBUsdn9dadIQXStp/XS8a0WJOnmct2AA6EP0iCXz/PUmgMpt3PVpP5/V/QfAg16yjllLF0ni9ndl6JFHu7H6YXer9V7XnPpp5JSIraBhtyGvLbQ9u6Nb29gCK/Na+zMXV7TCrTWzYyTFqC8EfnbLqwtxbOllV+MWWrUybyHeiElwdFRH6vXhkgNYEPoxMj9hIWFFFt4t4DMlTfRnWPq5a3AnslT2atzVddMOrU0E9TFhwEhVfkTcBa02kdfdXT+T9f4mxLNa0Ume9Rsdk35lVkstUELKRSJANuDZXJ1zScD2V+2zhUYH2Tn0RV1BDWtXKb1sYqVN0uoWvbyyM4gdQNgWVjL1btXEw0X6w1SSqtU1Jvjs7TDKAmLKzZqYgqnpaB34+ZMe2jOLmrbp0tChpUtlyupelxs/U5fJdrfHKqUlrbZtnNHT5VcJnSysU9FPnz6gHGhwNGGcz59NdGto4FT9rJEq67h0sA8KWBAXydD2zn7Dpm7AfQMMTeI1p4mY7KB1sLjRmKP5tdufsAGcVzZmaLhjmh7TY2rvjHnXXtXJqxyoqixbtKvTrFVei1gbrZlrrTcohDYQlLGYFuB1e6dy94vVYKUSXVI1FqqmjHrh0fdJHdjESYJauI1htklqhJALvXRvbC6dqxGdhcc7p1yo25Zj3fPQ/WuU6DNHiIKrPfuNXsl2SbOdGDSPeMqOYJXgyNWwjq/ByJ4VySz+EGCYhlJXbJV9LNhTLEtsmRdXsMm1Xs6dZjPqk5h9fhegeT7uoeA87GA0EYkY2Qv9qEW8euTRpKL6TZiu3KM44p35x5TUZxoDqctgGm8Sig2mmlDTYhVLCJuIxdfwLaDu2cl6CpcmmzwnsumXhJtuy29VzjoTFyRSh83ds1V6XTR0idlSyBVixt1SjFMMaT4kkNAnYqzuxH2/HiSLfZzVe9lT5O0jQ3Ca7o0eVSlvr3VLA2m6lNud2YlSGMe1ciN2SJlEwizKY84tzenYb9Wj+nzjgnMJUqy/isFzh1UA0VxZbt3Z6hvsysAmxQIy9VESxiYbRI1E32oRStqscWyIKs7wIURynJbaF0wS+xAXNg+oQq0csYXwGroavqFfU1XUHgm7IDLORTOhsC1vnujzWvOF/q+OOcMQQs+i8vOZmv95oL1mIXNgq8hlnouCbYwxIjzSShjWHrJWGgmxuRNFy9C38x1hflYeDbEqzl1VsrQFW9MPybnr2ZQuaGNc6PSM7p1qLfT4jTfa9XCk6mwlzqV2NVbpCouBs7y40SvtbCILBh5oTy50xtCm1i2kaygyElb58rW0ayq1dW/XWGtysV221wXHxq7EY1aWZWp1hjw9emrmnDxXTMgy+F9dPvmN4YCZjIMR8oL0LjWEMFMVhNMjYcJwhQiEiOSAyHFWZBghwJWLHRMGFjMGF1puuKMvKmgyt9AqthIQhRM2SCNil1pttCt1M0oUX6j2XTnehNNsupJhtEpizD5OMFzMMQZnwWQMbIqt/Sw0tX1geMpQ92XMzTb7T7OaBXWjjF2KqAMmQzU8S4jLnMGw1EoR2uYgoy6xoXr9aELVYzGDpcGir1zR/swPjkrLSu8oXgGbd5S6pT8p8BYbA3Mr10kry2xkEmqSwyWu/U94CrUOXmtGhnXF5pXdiecdey7V1UupFXzpw3oTs80qvc1PG9LhBt0Eq5ud5rcBvi1lUzoiYG0ivdn51qQttlcJz2gpXUuX61wWgd51+Utd4tN5wHEwyWW5Gwf5t3Krix5vozEjx+05NNttKk3sGjZfRuSWFGoZR1fmhLVzeHelliFjTDbZz54luET1WWc0R8yU+pmQtG56pO7SGO6s066XM9s0A7sAsHWaj2FUDhxylT80EWco2yFLN4WIW8hJzItmJUWu+ytYge5NHuWpOtcQzVrJQTLWCLkZlmWDVNtNbFpt/QOLauD4K38b6XJ4GNCogjcZdGpYBOpSg0ctDczhCkLZeNNJPHFJL3GaH2CtqGOK9wB97bqUt0KTRS7XTSFO0MAonVOXdyXLmYnLXB9+hlPqU8ulAMLSsFXTpEzMCJlDno9VzfcqrsVhXjQE7IWq8XoRVXB3THO8HS2KfRn00JEbzhqjcOf5NIEjV3z+hXriwl2VVp3SwxsRfPnlyNbKAa4bfEmyNlpTLnUC0WJDauxxt65ZV8dYbNyzoOPeyBPHYCcda6dhStKyWwLhXxylOnUg4ajpQNR0VpZ5qvScp8hmmf7c7VqzpqXtq1baqarGakOF2lQ6orS3mEFtrO3BBnDYxj6ePBl6NfgtoMlOsNtr6zjicACug1Xu9TYHKjrn7TmYWCnmCBiUxWcslg57Z1ssSGyyK08oHKC6HL2mPWQSg99LHGY83LJNYl+bZUc3ZfdVfz6ckrGJfhgfpBzViy1sIHNwYhzXaKq/wBAOsNk/nqsEZ60BhLg8VSva6zBiwZwpYEcDcEbxkUdbzBPep5Z6NhV7q2QpBplfYAawEPGtUi/XUTco0p1xXKNqDnCmwtHIqTOovM2zp5A4vivRmECMHrXiFRZ2wOQHuxKZM1AzuPC3iEoistTFGaaIuil2kF1tMJqRitUKNyLkRRbjGQkQD1e9trNmclLqKFUCalpwkqK2V5o6qQielz8GJH6tC3oNKtjFiYckrYhZ6rwI01bsdGjkktFVs31JEipNGJ3unnJW4i73UbLoymLne9tXNZBsfUIX1tXdXB5Xm2pUdNsKqAmap73lPTm59QCggwrhsRbOjUB7qytKD0qsqbSOz0C7p05q1uRuQoeopGZKrPBuwRMFuiGvPcYBjCkPUVzHR+bPlEJcF1dpt5qyxuaD26yslHle3MhGPPIgZfOTWWvGsTp1Jvo6FbCsTididj6o05EISEv26pyWQHbRRa1JenQGSgmvnR3SUPV+fRVbb2qqGlrYOe2pT1deuVZaAhC+V+fPvGVQh9jiAUlmQQi+x2LnhQOsg2lpTpTqrdSyAGZXZ9GFLGy3tadwGVTQofKSA0S200o3b022DYkeNjzz7r4CCUefYptBmYWrNZPZehBvrmFp6SSQgQolmcbUeJbnyqJfCdGrvErZW/qlNYqHK8DJLVuyGvIb/U6Z2KT3vCeo397zRFI95JSs/e2qrW3vZW+H94TZ7e8kEYPvbwdRe8qD7+9TYaV7zgs1V97o8y0tPey9IxZ7wowR72TRBN72tW8fvXVCce90MFZce9GCA+9A6/bPe256sL72Jw03vU/Dn3qi9J7z0i6e8i3yz3nKGuHvOz2Mn3nwYD3sXREE97ShXaveqkSj3mLuIfvIrmCT3qoDpfvbM7fb3taJGvvTJTbV72Te2V+9Fs23vDtV1z3oazonvPzUy4+8I1mle8xAzT3mhcBPeybKlF7z81zYe8jSga+8a29c94lJ2vvMBLfPeVr2M97PuS7+8as0T3m47cv96Wqg948jPofvI3hc+95qr4f72fZzCf3tvHJc+8k1Vc95wA7+85dge+9mctr/vOTs794ZBD71HDv713fKt7yNqp17z+fuh96Htr72oYRfeUMMfvGOS/euns3vXlruvvU4hn7yHqCveegeb3laQd/eRsl295mfSf3qIYb3hYEy96XLj3iTJp713W3XvJ1JIfeFlnW+8/P/8QAOBAAAgMAAgIBAwMEAQMEAgAHAgMBBAUABhESEwcUIRUiMRAjMkFRFiAzJEJSYTRxJSYXQzA3cv/aAAgBAQABCACKBxwaRyURFig2o2VvBUzMRCMywjPiZ09Kay/RP04tSOzfutlQMsEC5Hmf8h2lKSjRmiRKr35VdiGg9UQI+vpET5KHTHiIKPBeSecklIF68l8zWhPM3KTNb7vQ1c+MzRbW4XIjg8Q00uBi3aD7VUUMy6tazdEHauBTs4p6qZf4jwKDGWD8smpcj8dazEePNHREJiRxOz2lGIAjsXiJizV16ttANTaRWsrmR7NlPWljeXUxM8wuoMuhF2+rMF8r97e5SyiKsjs/bNXRcdayRTM/j4khXn5YmOFJSMyPnkcmeTwUCblDJI8T+ACQ8e7B8jyA5CvIeeSPPTkByI5I/wA8KOenADxyQ4PA4PAPwHjn08+Ha6bWoX+4Z0ZPbtKmLo4Q+eTHjgGaxg119ezWE4CxbiyqPKAnhLkJ5TZ4KOdXbEmMnkpm4ECoaUqLwUIj/djIUyJlZ50hPjjsKGx7rPGLx68vYH8wP6IZgUcDFIGwJPypD25apTETyzXGALhhMTPOu2wzr7bZ6VsbtuXBHIn3HgAciRCuJmeRERwon288iPI8APMxENzrC0w4/EhP5qnJjExTb8TY5egqziGMS+3OvjajU7Ue7jlXR0zVl9H4GdxzUtcuwra69YzYFpKYSmRPAeF2p6zSuzd68pnD051etKtK0iBV6tfRp1JYkwn9IM3f27NRtZkwaFS9oBwjzqWPYzTXRTYtTFpTftHsBJj7hMcgf5CWodXYSXCMKORIIGB/Y14q4Z+5TPI/oAjPn2/3PiR4cc+LxEFJcEZOfA8BsqOCGJ8zM8A/EeJH+nj+iG/HPmOkd+hoKoanZ+qI3US1OnlNpWTS74p568geRPjkO8R+RaMDxhz/AO3/APcf/UNgR8Rb0LF2Vw/+sTyTkpnyIEcT6+IiP6CEz+eTMB+B/pMeY558cgp/re64imHl1jEZUdDA0FRIiA5fXBHJm/bv9rrDmIo8arJvn7HixRzMi7KrH2zUr+15Gcc5E35ifEx4CSlMeYSy3ZhKE9AipT+87JqNqReaGYUBIjEDbgKLasyHlkwFrrVXJ0s8H7d+pkXStVCmTKZKeRyBmZjiE+CiJKuxSxIvcBXPsZyXAjycRMH4meRbia61QqxwGmj0k6F2ZWw4pbZS4Zd9R+5nWtqxMPE7zF1AA9vc7akwCH3kFqw8wVYjFi3ua/f5pH6ZrdGxIt8HytFaQbNiHkH+EzyGlASHIgpGSiS4Ak1ogFkTrNlTotlEnKI/HKKTsuFSTpRLPR+b15RtKLdmnC7LYQFMi/iaBf6ioUc+24SCmPEfbTPCR6ckP6RHEK94mefxPFFz6T2fNG+rn1fofD3b5geHrH5mPIzyVf8AP4gfHPSTLwII9Z/Ih5iOfF5j8Uq0G2PfrOXYtWVqqVlBkVgrIVdW/wDwCfMcgPIxPCRB/wAxWiJjwygLI8xZzYmOFmePzDsVb6BPG3ke/tA3aHpJ8v1vHnlgPEzw/wCkBM8SrxMcyHpz7RFdP0FpQqJ8R5k3+34EZL/XUlnWhz3a0IrAVBRUnDYYokHC58ciCgo4mr+o1pE/tKystwTmaE12+pZWjFLcU3jaCjzS5WOltUW5d3fxn4+iys6rZlLPbnX7oI1fjPq7ZraT6D7lA0WX02ob95SgysoD+4g+xG1rRgwi9upqZsIkRYJQ3LDTyYu0rSPHmRRZ8DIMxbaqWqFp+47O7hTk4ZEgcwUNOBn0/M/0iJmPPInkc/jnjkRAlBSZBHt6/wBY5XBLw+NkRzNqHftwgXZBIBpTMxyeRxFiQmOdH776QFDT7H1qtv1fcdLJfn2jQ4kzEzJf6njD/wCDo2lR5bWxkTTl9n38x4H/AP6/pMf08/8AYi2dZbRUBEEl6eBD/Ijk/wCsz455meeP6QPIiP8AZ9YrnIHzU62RjPndyoqGUTaoK3W/InQUda0QtSDbLoUkYglyUj5n8DViDbPiSlxFMHXJS1mRGZKhcZu63EizFS3ZfffLrUveCiXE88cj/wCs/rGhdzp0Yn8eZ5/zyOJqNa2Fwj5pAUgUELZgymBj8mcl/VYmqvLZN5GUSQnwHlIxEqs+JjgWzmYmL6H3dVzEVMpdbMm0Z22NKYn6edZCEztXvqH24NbUEKNrQsWgBbTb4HxyJlnmAowmL65t6NkLLpIOeeUa6H02S+gdMDKb5HHyT8cRJl5l3q9MuKB5h6tjF0Qt1LyafbsVFjE+JmY79+bQq6KYl7ejh/miOrTJer7vUbKPJiHXibMRBdcZBek986IOdVq6aLVORmeGiY5KZ56cg5HkZRDgToMTPmYiPp1fVlbTlXPqtv5tuKAIa0mzM8/jnv8Ajhnyj0HsZ0xvFZo/bHMFyuEkcRyjnfPIQnCzA6rmhHNLs4udKFUd+YbEHk34sqjwE+YjkRyIiYjkRyQieFWjz5hlSVQUQ5YiUTG5n+GtkdOt4kuXF+CnjY4CJPiUREeI/av+DOWRy1CBdH2tK0mtZFzr7VaOibalWkK4iTG7aCktKUYJp2naDjwg09JFQL2ZNa+2utAqrTIHXdAN/cbZX+2LqPgtFI0rPyp+Iut6paOMvzZrtoXlvntdGtv4q2harGlxQSXyEx4q2hsVK2krsNiLmQqyrrsg62ys5+AuIKTqZFe+1+dY3MS1gaJ1LNn7JdBEKoaDaTfZWjjA3OHSqWq8qL2j54bXkeQ+UqHyw5ZPsTZg2EQyP4GeDEf7iZkZjkTEjHAnyMxz08D+Zj/j+Yjhj/PPXwUf0Ug3FAh8ExMwUhyJjle62k75UW9azoeIsRH4jkLmVkUWXnZcTGxxDvQomOj96+09KOjt4VXfpRPN7JfmWiQ9qynz5gI51rua01f0je0vp3eOzL+u2azaFk0WZP3/AP8AB44KoiPJSfiPARHP/wBeee3I5E8+H0GDe+n8VKGNlsQqQHmpq6NtC15sdi+2rjD+5dpz79U0vHTiKR11XzTJlAIb8Tfea1F1sGElIMYcQqvn0jyCsOb6wyfWTiPPEXUhXNLZApKeYU1p67f+y11LRp2UKkeIVX+3ZLkVjbESDewvDrA4aPeR8+vpP+qyy+cZWd2w2990fuVl8lMjABEwZSUz/SeITXNZk9Bs+YZS3NE8ib5xPFRJxPIgJZ/aVIrjyX37IRKeQ0p8QPVsM97YTUH6j9sCkqOvZRrB9drj+UIEvKaDnzEzh5hBIu44PiIhLnjnj+kDwFRJR75N9WY2Tbu3aeg4H1gjnsMczNi5k3gt0cfRyu9q+E2Zlvrtwvgw+xosxAOrgpsR7hnKj/G31mraiZG3jSgIVZfVu1Ml9Th9aZcsglXaejBgUqSjs5xDxlWQieGHjiTdNcq8VUpqD7ut7ZtiAV8kmyJO5KmWPetPPWS/joWOu/3HPF+7pXjs0gx+9Kp2e06Y0WR4OeU3fE6J50qoCKk7Rdr7V5Fiaz9I2H+MHZagogsK3SeIyKDOBj2iYiI5HI/pHCCDGYK7VmJmeaNQnDI82KkDEzy+rwU8mt/spjklz25E+S4wJgvHFVfefMqAVj4GA/Izw2tSIQ+j2FuXfk6uTqUVV79xNiy6LhNC1VdWs+jQYErEpoVA0aZct0/lXMT4JDedQ14rakAd2At0Z8LVDK5SHYsZb0w6q4PiL8Y+n9uo659YthdpuoPkpoaPkVNXez1PWx85WwuxHdKyOxdbB0WlEsyWf5XMxOVrMz5mIu1oOJYu0iUH+0I9p9ZH/jnp5TM8keRHI4CJk4goUuYGA9/Mc/j+sj/vioiHc6rAF2ul5+quJm0pVfrNP+kc/wBeYA/Ef0iOMSILAosWQaKoBD5CY50jvJZ0jTva2NT7Jm/nsWQ/GvEi0R8iYjlbRs0Ge9PS1bes+H3+CXtHJj+kRyY/n+gqmeTIhH4mJPniI5M8k/8AjnjgKI5/FSg2z+6ud6tQOSptab2SbRDghEcb25ofzb7UbYnxZ0m3GwMaaZrWpVz4ClMt5LfkUCwyaAlT9VZVV+zT/Tx2r8xdOjmi9khMNMoLxI8rnMlIzV0X1gYpKFQoYsHs3l6Oq+yiOJtWaiDBUx55CvMTM5dJ+plxUSdJVKhKM0MBKlS3QPCx6lUGWMfr06D4O12jEp5gLfVKf607JUrSnhHYcpuM+kcRPmeBPpExylCTbEWXtVFk4rAfKUBAybMncr9WyL+kh9g7JS0hXJl4mo+lSIYtRWRsQU1u5bpYuFVxFFMnypXh9pay1M6c27KZAQ+UfllUxHvEDHIjkKNpwAvpNrKWxk//AFwD4lxKYJhb7ve08pdW1mWvBR5yrliESpmPopbXFXAiJ5KhMZgpzBAiJNvBU2YJPY809i7L5u9amPPm516RmfNvM+J0wRn8MTAtabJnyPK01vRsWImeHJNOSNKufRxAH2h58RFXCydbaNuwc2idFhEvSNkAOAnlTftUENrqfaG3U9V+ZFn5zbMrZHjq1d9ukVscUy5FsfMQYTBx5GORyP6EEEPib1SAAg5vZ3hPiNWmtTZgLeTCc8bTqyIdYJBFPk5gYDkRMLKBmIkOJ/HngcO7CBmBZoNteIaAEY+eYuzayL0PRlZGFd36d6r3bsP6l2l321EDeqTVmOJTYHmsEKAYC/UhoSwUsJTIkep7SLsLh+jXjO1YHmzE1nKMew4rEn84gEJeJHja4qtx8Oq8GEuyPVt+EO+0foZM3UnM1dRqlzQbp/TizcrS2pZqkpkqbkhRDXT+r39mdjTJk6WQxAQ0jpQMlMnPiYKKleL9qEVey4n/AE7rxRaUT54ERHnyU/8AHI5E/wBYjnj0nzwrZJmDVYuvtiMtzcK9s/LNI60r/mQ8cjn/AOgLkLmUEyFtlUH48cj8cS+Q5kd908WrKK213nS3K3w25slM8ix/o4j/AI/p5/4GZmPP9IOQnyMRyAgI/cRyX45Af8yX/BHEcmfPI4ASU/ih1LT0abLVVtWrmxH6jc2bV1PwHA8EPH8yzxHPaZnk3P1BAIFeEyy6VVYrtoWkFY1dFl90SZVHfBDpow8LCzrZtmxFKC1tPuYZkSGCxpWLTHPqPqq+f7unUK7YhUX8SxmAUFIf8piIKPN+yiZWtLQAXTCoDgAJiIFo4D8+YMeu9WDVNz3/AG0tEEVlZQILy7su2IXypcrWVadkvnr26QUoCtvvGzRljfM8iOTyrXm3bUiNHIDM1XVH3r83CWIhHj8z7/8AMHwG+JjiDJoAA22sZ7KJ0gv0WLj+UvYQhRoP5fkOAIFWUNA5h8DwJICg1yElMlyRiOeZkYCfHIjkrKFwfLlx92Fw/wDp54qfJRx+c2oYAzpWjjUBfW2spucqs7TjD06c37lkaejdZrAlUBYLTBkRyQiY41ENTITbzhD8lq50PGfh18KYWcnep/GU8IfUuGHj+I5EciOIPwQwdDfd1zTXdodp+o2z2mpFN8RzE0korOTZtWIlpfHEzPgprNIBFgspTdcuanTfpuGWC728SqeZ2K86nTXFTOUEnb9zI+VLsxEeUvhg/iP+ywn5kyPOwqlSPBbEQLS9b7Ta6TaYScz5rWWULMPrDHIacBKxVHk4ifECU+Cb5D1EgKC8FkU12bYg7Ry4zrpI5bVKpiRqmypbU7m1gU9xB7nXerKVSvxL33YuM+aVPi/nwsZpGElBX8o1BL15egdOzHKT/wDqLBIZsQ6wr4DZnzcqVmjsZRVmSQxJJZExUv8A3SZCfJhzA7Km5hwDtutNW9JT1LR+6zRCe+9OnUCdLNdX8j7cx9WxlFZ+0zN758c8i5o5x1mQJMVKjkToWzqWgYncsnpaMvPyIxMcoZJXq5mMTxtJ6krazkcjnj+k8IPYeAHoX5+nmq+hfEEd46AN4C08qzVlRTBTHI5/H5gD4AEfn0/7I5H9KkRL4A/Pj8cmJ5Ef0ifM/kF+0eSk4j/Dx55/H8EfCPkR5548cqUHWyiAysDD65nBo7/Y+/3NUJq0/wAnPAV/Hsavjnxwy8R+OeJ5gJTnIK1KOw1s5Xxr7l3V3bZUANNZiELAJMvA1bzKEeVamy+4fgWR4n88gP8A5Vxt3cCKVa9okFFKEzzxPNHMdQNAOyvppe1Oqlrw1H25EE+OY5C1Lq7U1EVqNehna2/Nds1ctlt4EZQXCLn96UzIenJjkcGubBIhGsbVHKfchD1CKyRz1uhSDcYjFlc1nkovfiYk5jldo1VScnZgikuG2GtkhU6QOJiw4rLSayS8R+GsN4yTYX7coLoKB5X+eOevPHJ5MzI+OFHC/pA+Z4lUD/Lr5W8yqLFN5idhbnA1PKmj6yclmbZIOJDM7SZxEMraaWjHkGAY+RbZFcc9GWpn2nOFS59N/OFq5Pm7Q+I55bDwyfCgg/Iya/Qp5Ef0s5j61NVmwum+zVa4OU6R3Jb6MCYGJ/oATM863g3NmzFWphdYzOjVRk+5d8a0zq5GBrTSvKO1b7XUuUSOqjZ8uiCq21ksZFFmJ8eFXSjxEBZA/HImJ/rtxWlxTb2lG9tiKDSlbJ4X5ieHMH48TK4TAxTqRZsgDGH4iYGKzhmIcfxK9fSFBMwRJd9ta9lWDjQzF2AOYcc/PZKff1nO0rWRcG1RPZyOxokNOcmGqJlDrl9GVowVnVZB2PkV15SH6JVbXbOqWetaxJL6WKYNkrj3lS0Diq3Wzv8Apy6wyQmjeSytY7R1qxhaR1mocVRwmN3ddv3CvvxdOcbYFvOxGq7VW5HUrn2miIHJxK+dyzYrdkYNayggKeAX4jzWvBbonSfdpF7ys4D4jmClvsPjjOXaR0zAG8+/dZqVqVg4iDkR/jn+4mI/pEckeSHtzNujnSs63UO3p3asIs986JFqD0M21WlRzHJjxyORxRkP4jgyMeZL+kRyP6g8YGYOC8x5HxwFEc+B8LRwmyf+QF/ovPCPk+Z5AcVWJkxA5X09tNoNu3x3FYEMVm2brrryda9ZLgBEcI4DhmRz+eRyOWbrLTImSiEPgTB4ekDEqWa5aWRWB7phwdZpSj3obL653JCrITPPiIJjy4aY0a8JqauhXhaq9ytaRZn75NOG1ibyhU+5tSsk9VHse1lob3qDm1nUw0Q9bEeAVJTz6eYwqVa1n5sLs3WzzRzm5do0WWxJcMOEHPvrEphKjDwvxEx4nkB/E8C69VQ6wWEfCz1KZmY8cgfEc+U1wUAZfKIRELgf5qPEBkScZFHBng8GOKpG2mx4nH/ER4GfK48z+Gx4DnpMzEQ7OOjZFV8vHmYH+hcL+ikSfIAQj8REzHnlaflcNdWh1o8BEFrjb/MCMPIR5WtnERyjrSExBZfYfi8cR2GXzEBSfJeJaqymRjluWlRb9rQ2U7FoKVXt9RajkouzEGXgJ9DjjRgw9v6QUhMSBsdZgEzWVdyMhsH8USQxEIUh0xL5GRniEfLPKlBPw+edO7YvrVpqX9i7U/VA0VYP5F8CyQTynqmgokamr7nE8xL9iBjxUvlAxBLmPj93ts+A8T99IzHhe0QGQFZ3CJMhO5ptirKj17AE44r2ELhIt490NabDOxJl+MDHSnzp6vcIoRQVZmEQMeTsWTbzzPKJQwJWRx5mfGLokiZDl4/IiAuGCmJ5WzXviZGjggurNm2HZ250xGTaf8902jlWZv5UjFCyyteA13syt3Dq4AbxvYN+adnOvCe5WmO8aa74iKMWzK2iRbeUPY+t/AaMpytmnB36l7ru21GnciG14erAt/d5sqkjNBgDMzZXbqK53bHdoVolOnUqxVXbzGqKSkhTHiRnlCqntaWJPSoksyWc+wFHlSGuE5Smux8t+NgeIieeeRP4nkhyYiB4M/75H5jnjkRylmfqaGxXmZAomM7SbSeDk9O7SG/QkHd96FFqD0M21SJUz5kfHI4qP55/+v6eP+2I5VBjHwC4RCpmWm+TjwEx/QAmf5Lk/wD1Ec671a9vuiKvv1/oiudh7Vf33TNvkJ/EefMBHJP+njnjkDwYHkT5iOUK3z2lgf6YuhdFd663yyQ5LZmIiactbMgxCgTZAj22ofdg6sgRx5OFTIyQjHiY8WGNstgn1wLwUR07KOL6LnNLeudatJsVL2pb0nWLdyQkimZrVp8xx4rpdLTVqP0A65krKNC6+/ZJ1kuZfUp384yp9k6ta6vUq2bIEpyvZXwMICIWBED5inWrSknW4nxPF4xNST1sUEPIE9lzP0bfs0eAgm8kQUPDnzysgmDMA1sCEqmFFHj3zm1kS2XiHBCY8+TmIH8TyjnW7aWvrVloNsxadIC0visPdaKCcC5MvA2UwiyxUcnhcCImfzJ8yMDT3D8Zo9Pwsb89pPu9XICU9VtXXXLBusAUwUcq0HPqfMSvyuQTAmExPFyYRBRn6IAuOUOxD+IlGwpgx5LTEPyL+zhkS46vYtuNBzD490Lf7xHmTiIysbR2bpU6ZK+I5E/PKVoKN5by0ezhcqEA+/Ilf2ksKTk+UDGHQJAw67ZArEQzyQi2YiR4UyEwYnBTHvITMRE8p2PExzql8HWVVm1jr1BkatzsKknPozsCWLnzPYYOS8zvgspM7XZwt0RAbWobRkWWLKrOT8UHXtPzXWq/gj5R6lpQhV2xF/JPoFANPRvMtXW2bLGycz/SA4qZAxmGLE0QwUzK2xIlBWUAfGKgP8qOrCqkAuDv7dqEJw8xtu0QKp4bdObBj1SkOdLXFazE1Al6uqaQ1jBLPqF14NXOO5Xodhs5GlXYy5shpW5OvQM4s+gYjYlQ+/e6DauqqAvk1kxLaFuQn4j6/wCKOsuS0sqhq00Ac6aMoy+yDfu6NoTHrVTz2q7mHs4bMW82s3ADrysy3+psma1uTrX2o2Ki2g6gDTn5U22oBqgISkIOJjyHjkxBfx58TyJ9+eIIfEjHj8cjzHIjn/McAzS0HJesOw1jt1gL455k7FnKfDavUO2o36kKd33okPBmhmWUejJiS/HFR+zhSMiMD/3QoyHzAUYAPeyx8REgkGGE8iYNfsEBM8KpALFgePEc/wA/5lUxwBAPydXsd+lVbXqPf8zZIfWZ5AeC4xoyESPPHIjniJ5HgZ/PB/HAWIMkYqPGHhLc3RjVvWM5IKdp6QpVj9Azs6Sbb18qhSkAS/KqVAk3vpZmP0Z/YbNnQ2LQFqMzrQXaRHNWoy37ytSORWhSwLnVNFlbfqS/6g1oR9pHDDzwEf7lYeviYxKUs6xUUfZNSdXTYcTHIj/lbDU4WJy+9eJmNW/0rB3wK5k6mFudeQZ3BlT1+6ZXMTE8/wBzM/cwjOWuPHnlqXaNr7m444AfUT8lwQ/Mcd17UrddHXqV3Lsq+ZEAX5klq4AQMcPlkq0oV8ER/wA9M3YoDZoc0lJuUGuz5DxH9Jief/soiOTyZ5/vgx7j5JG1fqVZrVVwRlxoTAxyB88Wn/fMTRWERXtXq5/N55BAhHkytzK5jla76zxN6fkk5TtmH8RruMI5a04swQmAzda2CY324Ef7nrnaWY1C1ShxExxmRcilaasTAg8TPtyOCElxMekxPPaLtbzEFIFMcngN/ZISEeJkCgPWCHim+hfmpflcxIf9c3X+F2Xbz3kM8HbkR4WrM8qRN1RCLqT6RhJHZgw9oAH6Ftdas3EzsbqDqcdOx6FBFa2jd11KtXW6h1sO5TXWG90q/wCJOh9sYHIHYpVzlX2U1hVHgi/H45nzBzKiqZTrWkFVHXKgt04zrqMwKvcF1b+fV/6c+ooVjSC8rvNkK1KlSVpW2VMp5mizSVVu13dccD7vZPvsdHLN8w0shcY+8q9d0uPpKu6t/Rv59CE47tFoKNSkOKlv00CQ87VQO8kb6dmgq3ko0kvV8TJ9czTgfVbGdlt2awIDE6Pe1Qiw6r15Gcn46/Yps9b0l6tHRyk9sooulo9KuZyTcePCNnN/SnvU/KukJ2lRfGXKsVJMolS3uUhmccTCnSM+vmZgZDkF4meDPmOYnXbO8ThraGY/Ksyt8TyY5+eIa2s8HIsoXuVTu0ln8RcoaDsuyp9bL+qOcdVQX+8X6Gj2Sy3J/MzPFlyAnxE/9vjz/FOor5ImwnQzkWQC9o2VWb7Tq/0Q+VCQcAIkIKEmIQQHI8lUxEexT4/HDXMfnkRM8GOTXZBQJGo4/mf6hzzE88es8j+nt4HxzMd9q6XlL/nuk4abypW02U0tTJ3fJJeFCC8B9titHxZ38Gtp5TqNBlcAcmpawsyU0bFtuFdVmGRwmqq/dCmjU+m0BCbmdZQoJn7a9dm911QvhXvyFcUiSmOP2aVLMVQrsCfb8zHAATZEEyVVrUlXmyfowBots1rSzp1u628u7KNy71brHaQO5UttArLfhEDOfAzWOJiDTVFQ+52HzPDiZ5QzG6Nn4U0sg5110j7P2Z9SkrFraGO3G6LmzbYpEKX8UDyOHw//AK9uYk1kvl9qduuHV64mZAETHJcP+vcuAEGJFJn5jh/09g8cHile/ACBjhnEx44FfwEHHIL1nzFbWhudKOOtzBT5izJz+VnIz54h0zHMOK56cTeMqc/K7l9623W/a3YkGz59uJUR8QiAiOWFeYmeSH/PXex2Ou2/A2a1FtFjUnEwXFLgv5hX44cwH84pAdsiddQMxDkf4x+6Wx8n7Y8MXE8gvcPPJiZOYiGzHJbxuk98BBw+eA3zMc6hPxSbOd/qMLruNDzggKQnoGQ3T7Io4rFQ2apUq6QchRgXcrk5v1Izc9x9aY8G2MBt+7mNiL2RYLtb/tj3ujUKFWWq2HtUC6DMXIPZ1E04qUAwOxoi3qqDM2l26W9pg/sM3avYtVt/VC2zcvX72qnUv6JP69voa89VNTsMQOd2uvQ7+bRz3LrO1MpqtND+kverXvqenD0pz2/pnbb2ZSO779KmJsgurmZtWRahvayMkOo2+sxfdViW5LKh0QCb1zKLQrSqwSuSBAyOdcuqhoS/FuqtZ8fA60Di8B2TMHQx2iXULXz5t3Kbbm6d5ypIW0rZAwoDtmbxTDzrfhmnUU2Ss1Llb4j9ga33mCmnIBZD5b1SVOmBBQzM+0qlReeZF+UYIqz9elKqAnfORlhfFE8/nkcrvbTsg+tbrJ16h36ENkImIlpwXP8ALwQ0+k6N/BPTRK/TkM5E+f6xEzPJfC/MLAmfJBz+Z/M/9kGaxiYS+G/5fJA/x5I5jhqkCkSVmsOidmBUtYxJUyQq0srNTJ6n3OYRm6mVawNFtS2c/wBQjzzx+P6eOD+I5HB8+J8BPjkPOVCErvOigQryLO1oWlpzr2jYw3Oqvnc0nRMMfr3LifjtBDrb/wAoD4jmGI8AYnHTy9+qUJ53bHzob71n12qcSnQmI/itQfcln24S0xgVX8g6z12S7M+vm64ItQhjQIx+KFL9jM/MzwAgiiJY7xHqANrNrNK2EG2YGCwTpPZDcjIs3761UtV8nbbBWGyczz08/wAlERxSjbPgOqUpi02yUons3eYpB33TjV7dZhXr5nk89uKXTOnYOzCzPmDiHbtw0tPs66xSGc3ZuMS5L48ScRNnOVVordEF5jkumA9eeeTyZ5HDCpNADVLYMokPeZjkRM8zw+VJLKxWlRTBEHJmYn8EHvHIj0nxINYqoSzbXsUkqN74gExAsNnkoFjygfHCP34lH+5DHCOtS5cT44ZwQR4sL8TJRBe/AmfPrF2k2ufo4T9J59xMDMBBAczLQj9slKNEFVSAmvNp/IUmqVxyszhR6TB8sz4nzHnhRIT4n4ol4gnx4KY4sudLvkVskT9SzH4M4OOL3szz6Potov2Xy9UQ6Tj6m9y0un3cyaPasnH+peInXxeg91OhZnrPZLNcWjIPX1ytQ0hv5n1ObqzepA/6cHauXn0NHUihQ04nN2tOLsjYIWFbo+8ouLbjFfBmyd/Gmrx2ozTzxS21onsY0sfZsTYzKl6HXaqe+1LimvRm/Vy/LaTYjruqnlkoZUx1cVege2NKKXY/fE2belF9SD69TcE2Jyd0wrW3IfjUOZ22Wnv2bxbVM1pVsh2mmL5VooZW9kxPEPOs6CDpXayRMhPyhIQfNrUhGc7lHSnI7Mi5GzlHW0pajsOVNpC7Y07TaViGK06auyZ06FSpLcw1lY3MlVeAsVbVb45nwiPcZXP35PQoS8QQl4ifcf3fduUmUC2w1/j5pj/fPbyX5D/XnPmo8yrXbtR1CySH1bbqVoLFW7TRp1T0c41e/K8fEyOdQ7qGB5Tb3rqbu3cfUj8cA+R+fH9JCC/EiqA54/pHPH9PH9AgiYMCQRBzwImZnkB7lHk7LYSS49vx+PzyvbZTtLfW3Ny3v6M273JbMqhfPHA/Bf0//UxwAmeRwa8HZWmvazCpNJTjVIeI5Uw8rGoBb37vdXGgqeX+SmZII4FYxUDSScqISD5SfMSapiPHKfadfHUpFFnd3u2a16/fu0u09bPUq5GSzVvLriOSihhX6dPFsWgcJJOrdv01Js926znXgqNvxRCr1SbcXvwK5n0mBguMZARMcI/PIjlS2VRkmr72bKASddQ9W6qdllhsnM8OisM4HEz8D4iFeZ/OBrP69pJ0K3atumdYtGr9K6RoDU3HWMMhs+i3rlDiWRRJz+MbrrNn5oWHUkgkycGdnIOUq2NCVKmkP3UQMwBFLWxBU+r3LqWMU8CQ6UlyY8R+ZLkzyB88EJMogJrEBeJUrhVvRkRCVeYgzpUpsGAVrCJYmQa1RQyRn7YiWRxMTMeOGj2HyM2Ww35Js6DnoEWfq7GyyGZDJm8Mhu/Ed4jVP4niDn8QSHGsTBY//cIbKvkhsRIzxkfGc8RaJDgeq1oO0rMusOV4/MB49o9v9z4iPbxENTK/H9AQUyPFJFURz/UxNiPEyPIHlSrNl3pyFR5LkcCPBjBV7baFr3rht2LYz931rGjc31V11DSsAUi3rU2a36ePbOsVO15JVbaH7P0u7XPnsfXs36mYEbmB0Dvxg/8AQey2c+DH5qutlK1qDaOkg9PrlmlZx93azN969NFK288yxZRGh9qR8fackJsIsNBVhdhZthN0WjUjzoko6BkVG5QA7xLCk/l18P77mufRVNlGypFy3J42VRCtYW7Za14BXb1Vo8+5cvtCZbNoG5GrahOlFvtWdUtULNuOrg2pYqqdvDTeBHv4FuzMJmDJJWq0hM8pab6MyK8DtEQmAd27tv3b4Cqoiu0pLnWLI7fVUwdrMsyuwL9elHvLVZWm3NuA5PYaA6tENTPqWIAvhfo1FgwviaokN8wEwLYKYMBf+z8hM+SD3HkxIT4KI5I/0j90eJpWlaVUc7Qs1m0rRofStvz7Y2a12im7ULTzCGCmOUUVmaKRv7CEVNawinaRCHegxwDiOR/RSza0QB6DrOJTeeOCEnPgfTgDEsiCNRQMTzPry21HJrTEz5lUjwx55mR8TyZ5I/j+sciPPPHI5AeeQEDyOCEyPmQkJiPKSWDI+RrvH4Wdc1isz8RID4VIjBeaOdNpZHIcVHFcHn8+ffWOalVR8+nQLDYmhae/7O/CKoiTfkmE2M6b01ldg7SdZ/wZyqRdh06iEd8lNTLzqaDmSnyR2zGj8Aug1skWR/QPMT4HpXUjeQaN/tmv+r7BKrxBNZAgaJrzIGUePPCnxP4p1G2b6q0d4urrZCK/G0GYH08yc0nNL5IIBBNr/wA0Z1MI5nvTl2TaIZjrAy92q6Ou5smDDI5/IUWTmst88xHIuWPtJqxEciPHGGbTkmHHChMVxmKOY26BECq6q3mDhJPjzxVQw/mEwPmS8+JninmqfK1WpBPknqC/X+RQxCveDGPBR5lVYqRzNmPDJ8cj+fPDOQLyMmRT5LjHHfux6Sp1C1KXTXOWrGLN1yFTUc63/MCZSfAnxPAjxMTyUQaomCr+GyHPgmGepLTADHDX+z2kFxJTyIiB8DHJH3jlitWPPSa2qlRyM1dF9QTFHI4s5Dz4AeLjxzrW4/A2E3q1HTp6ucq9V+oytOh26dZVPuFrs/XZXmupZv1GwJG/1PpNHqCmjS+ov05V2OsV+h9N/qM2rcjD37lLwMMV3Dqc7Hi/n2U2otubOfouo3PdURNal7iiUwia7hhAWTQBVm3lMiqeDelVWxzP67NbYYTqmHWPq9qs9uZcua2WyP0C+i9p/aadawEZtI22zO1bssDIKMPOdMWYrO0YFRQdOhSSIuhOvoKoRJXcPK4G/ZfgbukcAhHZKFeprIh4FsPdSO/ERVtVJSc+alskH6zZzoe2DHrtTxpfau6ZZ/St9+a3J0fvnWqFvWD4r7hG5WlZfIOJsHmWYnnYsRYAN/PzJrudCL96oKZYonKJRTBImPSRkphgxyGkuPXkRDQ/MeQnxP8APDj+eKP1mYnx5jlR6tlAUbr0MrPNTqN9+ZbizWv0EWas6eWceRnhx4KeWbjrzQOz+ImfEfiY4B/z4Hi5+M4KZDxETyI545dxBxMmuzQMJiZjkxyIgDEufTekh++EP7N0xF4CfRuZ7EsIDaHp54Ucj+kx55Ic8c8cjniZLgK/3/SeRyXMNIrkJnl3JflOFF5iv2DMQrjMpiawOmFcAJ/PAXxCvx+QDxyI5452OHNRV5UTZRu1mj2Ro2DgRjv+us4KE9oFVy7YnXbUnTfGd0epCMK5bj6kB6JyTDQusvMhrmn5meBKjSyGRwwKfj8fTbrmbbht2137fPMoChHiWnyiJ1P3hZmT9PLpgI4MexeedQTJ7USE5y+0fUyjmB3KyD0MOUU5ez8kA1ll4RSfdOYS/ZysKJGtqbdzXf8AJbYbGwMMFMl/FStNt41uMD4mkExyI5+Ij8SEyM8OJnlBSYuL+6dpyF+ISygprylOTmV4mW2Na7WMfWsx0nP9PPjkR55TtHVdEi+uDKpOEomJ8cOfA8aPyT+PigY5MxH8FHmfz+BDxIBLTgR9JBkgVZiZNpXPn8B55Yf7FMD/ADxJ/wBol8Z+YGIRP58Sn9vkZTINtLg7YQuyUALRgfJOsSfnwB+DiefEURHBXPIVELgo/IMgwtK8z78/iZ5EcBnieUIxLsfFf0eqXKCYsogPEfkI51LtNjrl38Nr0OyY8yPYuu3umbIPrYe2HYWjoUqlldpAvV2LZR17GbpW+0dXzvqHjRu9c+mf1HMH/oHZLtYfMmnuvR431Tco2q0wbILH6fd7RS+eknrc1LK2WIpZamsYoGwYzEOHwcxIrY8h5k9Xk0C9yE5VLIk7L9WbUQmrfp2cyySmxIEQfPNC1ZAZTo0LdKrFV4PQ3TIYrBp1cylRWjXSihf1l1kBfv8AXMbjL9wMa/ffLkvuHLusa7cx03bvbqH6obNOvQyvvtevWN/QbuE2TyrsHT0BOdqZFtPYRpgx5V9WnYCH34J2ipIlMLsVG1hFs4GzFaSrWt/DnMfDVIEbcEDbdSfaQOK6EJg3shUuSlhhxc+J4xEmn343LlVZBSddgGQH8XieBP8ArhxxDQ30DVssWaHEtufoOzLUPRq1KhKC5QMf9Tz0n/cAr7aZLPqTduiC9fq1nGUqyRwMRMjJe0RwQkvETADKZiO2+kbGQZab51Wt0VTH7I5H7eULh1nCYdP7orXUNS52Tq6tcJenTym1HGDXKmInwPmZ/pEcmOEPP/rkL/5CP9cGIjk8mPMcGOAmTmOJzGqrjZPtPYp7SdFzF0pKI4vNmYjk5xzEeYyznisU55Y6s+k2BaGM0zgFFSNEyJ/H/wA/HwAAfEGg/Ok2Ru5wBHolzIghiLSmqeQOy9Isam2H9Ca5t27HO6VVT0uIdcZBz4HnjxyI4iSaUe300dAdjtJ59RIg9yskqedPj3N8QPiAecKDn5MpmQjnSEqh9ppdUp3FY914bACFVSJlviPVZ5nwJ+5vavYHWw+BPn/n/XJ4s5HjymIiQ5HAjgImYiZgPEeOAiDZMcRUhDIKbdl+iQifX7aa0kqxt35B5BwrRmU+Y8l+Yg5iPXiKk2HQAzMLOY5LZaUyWfalM/v0hBDhNbAizMtFgTEeBKu6C9SnwMcnijlTYOVnIMgxmCbJHwH+oiJ+0z/SazoVDJrUjP8APLOVLbUKqQPieLb7j4CWsN0S1wekQQ3aNaelULXACWlED1jpwaaGPtaedOZfZTLzwA8zPkIL+BeYLpmkhVJjPqMcQo3NEFUenSEQepSvIwokKJtynwUy9eM5srN2HarDDg6TouoUNRig7fidkzW0dOeoamdso/Tsv6nZta79pu9kwE9k6xZoFTu7P0v7QYH2jrFD6h4sb/XPpZ9Spl36B2XTfSyrSQntXRcvbuxdd27Et9c1TrzidmvZyJgU9hRovFDlCQNiZOnL2+Y6/n03VGoixqqxRUI7mtF28ZIq2WL8wOcl+7ZiGlnJpML2l6gdHNiHVnfdVv0qvqJlFNzboHZlqKvizl5FjodbI14tfq9+ayeylWCo6wNSkGmjRELN3XmpYiocIb2DOXWtESc7tOzhHA1Kff6G+ia++Cs25mMz6XWLbLXXLucT7pQyYJ9mTPhBLR9CNUVBGYxNVFiqWbpbNRuZoynkMm3Plj6tQ6ZqaUFDI4crkAgICSLwPWsJulZt+2V140XAbcs5ETiXJ4U/EyJK7Ym075JRImyALZwLGM1ZGBj2VELMAAHSFgo8ML0kPMcJEz4jhBITEHELkSk85MAk3O7L289mrSqIifAxPGGBzHxxHnxzOR9zo1087Vpvv2WhSDZRQoXMsC/++QfjlO6aGQQ9M7uGiAUr/Yeto2USY7OK7OeQNYmff8MiQORIZ8xHmI/p5Hkf/Yx/X/nxPKXW7BrSqG9WsIiYhHXGs/yr9Z9IjiuuQyI4nqDJ/iOqEvx5XgiHGZcv8Sw8eVFBq082vSQxzafXl3Jisi9mKoLc0WfvPlTOqvb6FdtrKKH3VhiTtTA2Wk20yZQ0A9of9MTF+0+HfVLbijjoyFUTSEsN1mQlxQnxxQSZRxKD9Y9PpVQJ2zcsc7X1z7+1Wtcvo+0kll++IIuWPc3T78H9kcqqN8gtVGgHXcmIddsWLtiCFvwYFeH29PZsXnMNk8jkf0CPM8aEnIxFmg+r/wCdKgOJglBMMiBg49eEfnlSPDY9ireAGYiBD90vyrsUfvSdHsP5gIjz7Qcj58Q3908QttkGyAfwXlENsmtIvIYOAX+XqhQVch0VS+R2JfhIuUHZbdf/AAe4nuljGhAF4hofbfGXPlIwEZqVLOjaCtUuZb6Fsa9hgGtkgccb2E7eQuk8LEgiYjEuqGJh55ifs3vegIBoyVyRJwwoJNoSEeGtStRIqCpIFGF2acas5fNK+7T1DewZgx9uF/cbMzXiZsr8PrfJE8mJAv2rTJ8oNzupZimGXbLTTKDh6tOq00BYKJlHHyZ14YrK1Srn5rYGzWa60DY604DKV65k7GqXA1syp3ukKnfSS7qIzNDK2O3dTo9pzZRZU3X+nHYzQ/ey8n6j/BbxP1TsOBNUNyh23O3xI69rqv6/VuJtbfXrWARDZoPouAEPxblChEKvXZS10Nq0bR51yGxv3g0b5mHweJ8kgAkfE0idUZ7rs2wBfux1snTPjLsJ9IVY0aE51uYHAfV2XopbXd+vNxputg6kYW/9taOk46VOoDbCXRq7cZ0/p1+pmaOVZaaK4NdWXZpepa2cdawSy/cpnOubIJtKcVbRDO7cq6G/jMq2nmuQ8jxUSQ8Kp934UNyjay7MptNsDLRh3vAWClGZ11fY8Vral2pPmeRPpM+QYP8Aug1tZgMHERNvFEz39EwyGso/PCltif8AOfHCVIF4LrFlHYuslnXt7Cs4F+AKRjsqJKPSYnxOfNancRZs6OnZ1br71hsE4pl1mUkFcA15lMggYOREuCYfCIxDlz58Q9f+sBRXtlKquAqX9hgG98pRnbcglhf0qUGXYdKonxypclRxMdK7yFoApaW7gI26s+dvCfQsmprUepcnkH6ckvbkxyP8eB+JjkfiOFHP4H+mRvVty4qoSH1kWnVXff0AZ6CpiW+PAIV/oFDH8eC/b6ShZ/5TSWXNgCo0Samnlt26cXL6oRlQ6Hbe1WeZSltcamKL3xbJb4mH3Y1caEKZMzMxKgCEGZKAjOBH6aBI9uiD7XsHtdiuXOVKy7Lj+48RH+MBxCoAOV8wG0YsT9Psj9N61Di7agxBTwJUX7k/csuzUvwS7TZbZMyiP+QCTOI51DFimH6la09GxfccE1qOu1Be/T0XXrBMa0ZA5E2Qma0HMFyJ5E/mPFLqxnkPtufEfxAptXfAE7NiuETIqmZjwSpGZjiUTMxzGxkWBiWJ9AEqrbtKUM/f2Ls6dXApU6h0XQEGU1h8THHIZ58cjKOa8tH4/HPHmZ4lkqnyIR/zU0q1CuYsjsNUhiODs1oiDHZs5pUgjO+MzmPBR/wIeRiJCtDwIoRbbUeDatu4+/aOxaQixq3YWo1yo5Ao4t3gPEqZMTMRBw1i/NofaZkIX/zTrHLBkf02tUTLdGze+4gQUTZEJCQBhtiF1n+CgSqChVxZ2u0VsCcutqZN9Jha88sVIkIMJ8/6fJvdBmqPVkTyu99OzDUvlLZ+VUhFYYeDQCWTIUtVtJwMDdrnTcmxWze0W1HKrb9evTPzFTcTv2kNpZG6Gyhgz2frVLtOZNa1aq6PSds61rM+o9bfuJp0KrwzxIQVeCTES7N12h2nGZTubnU7+BtHRt4ncypUhoa9VGBo/nC1p1Ot05ZfHbpXVxDwg0WYiaE1KV6D1NPdZrmFKjodW0cymD7sD5jxATIFHKwjo15Q2QZSteCodhVYRE2dTq8F+n5irToqWb91FYgztdKjNDXZaEnR0GWk2tBGM9M2HUl7lD56swVuuUTPEtOs+CFtmLWfBC027vVqllNXq0Lryy80PjfIDWYdV4NGznI7ziz4t1DQ40WZsLTQ+25najsyzD6+iX6vJW12akl+4FQIn+6JgGRzG2Ke2GcE/UprQvqzFIekAbFhSmOIoUtUaNRcFgbJ4WrDeOVR7JkQBa+PawNL0Y9Qb6TcnzH8SiAOSh5eCjxyI8zAlP8AlyORHmY8HmWplQLiDkRVPR/FLaabvja/eQsOzakXtxshJew/0mZ/P9Inx55Va1UC6Ok96gxCjpbGNX2akie/hNy7JLc6JiZ54/rHEQqRP5ImYiOefP8ATxyLpVh91b9q2GZlaB19t/vHM3tDVTHml2Y2/wAp2IPx4VoeY/I6C4/yC8qePNFiCh86lSqqBje7QEKlIrrfqu2NOrtW0o1ZFLnk9puOhdTTGHnuSp2w19Wmsn5LURVoqrVZBGVYKlo6npptrn4NEDHpPmB5XV5nzJIlBer+v9csbBx8NdAU6ikK1lRZy7QFosgYIRdMnM8hRF7FABJz+OvdGQebTtv7DbgQGqiXIyKh23aNwrZTasNPzM8Kf6TyOV4iZjg9vkKZ1XYfXLevqriMbTnVdZqIsqCJkIoYjXmHvrYlSqMAsJAJmOVGzEzA1aT3zEwHXnX1+GD06wl4y+lq2+x7+isA6k9ng4sdYgFRA2Mpqi8FZQpSvyYQUFI/J4L8ARP9ACwfmJHkcBcnyG1kGyAIP+VBBkICUQmJgmF7TM8jmKmg29C9T9Gqy1q6AIqnQ8ykjQcGEBH88GZkoEaNVs2ftSBCq8Niw0ARZg3Wd1v5GhUes6bUnT+KXCmzaUANkVSPAjxMcQ6DEQKUeGeDTlRvdLU2sHWTTVmLrsjOqx+XPQoZ+FmnYD/CNW7/ABwNG9P8VNJst9bmtUOhdNPJYczPv1TbpWapYW92PqN3CbPypBkRENsUGU4E5zNV+m5HvgWy10Tcudq69U7bQJdsG7H067C0Odu7KW1toem9tWdrt0aCoDdtdlxqGUn6rKi8+nuuyOndtmZydn6datDyVVWxrZimUmGciZRHXtxTPWjoOzHzckWVWqyWC1NDVLtNF1a0dSyD3VlTMTMTFIog44/rcb+G56Kjjp2Zg8LFjVzCQ3tWB+jAoGtpCM1s91e3Yv2HMqZN/P6rM3qtB55cJoRfRLay3Mt5gmTRm3XmCmRqPlDIjn081QRedQ5sXLVqwYtWYrZBHZetvj4sOzdpP+en3CaG2mLlZq/liY4oC9/SACzh3vivW6E2xbap2q0B5KPlkPxKLpoOC5d2LV29ZsMiPK5MVtIfMD4JRx5M42acSPW+wxkWQWOx2GhvCWXIy6rahgatutfhVpSktdBSBlP8SMmEwYsCTKeQMxPICJn8dRjOf1q7Tu9yyMzJy85tWhrmjZq2m93NSNuZqyfIPkT5j+sBJlAhJsAPiJDzQyPPSu9wqApaOrkVdujK29i6y/JtEDWqkSmJmPHPtZhENKjbChbB5yXsclAzMTyCjgz5jkRymDLboUPS21dgCy9bUT9htW6gJMxGCmje9ZjlTTRIFHEbJUznlXdOzB+ob8SPmWdjmEmYzvru0PRejricSfMoDxsB15pkDVNg6tYlMW07yhGfddXzBe50fQ6gwmxclGY24D7LGtIpgGMOAH4TWZA0A/PACIHxFJBm4Z50KhFTHY6WT+yedp1opoKomp9jCrrrr4kymZhUmURylV+L1LnTr/z5z6nNFRfcSQ9luqYS1JsNi26PTlS7FWDg2lJnJQIeZjzQxLNhH3h5XXrerfinSyfp7ToQJu0O0Y2J5XWXpfrdlvqeMqlMcvXamOkYVZ3zshIn/nPnip8THKXmIExodnfUHwe9r29jo95+d9LMSrldZhlqM6u0fAux5j8h2KjZi8Yqt1v7pDCoClZhj9BqrF9rK7AfnP8AUmScTPM2aymC2zasLO2wqwhJ/wAYWch0ti9o5051iQ4f541ExPngx/R7rOklThrdh0LOJLs1oLJDGzMTMcUr8xMg0vPvxNlbw9DYoHtlQsWKSITUfhvtF+hE56bi4Z5HiA+dscuZx1xFvMvNt6twa1HN6EiqgG7ibdNA/BS0rJrAyXo2Tc0iJpz+eIrOIfcGQYFEtaqCnwJiSggxmh+v9LqXqsZlytEWJy8HK363vUxNOxgQWPt3ui0LsfcZv/T2hjSfJz0HEFHXdQtPJjPOIg5gT7R1Wr2POlD9/CtYGmdS5nKY2zEp6t2jOrYj7JnlV7dsM6pETJkxeP37ayfEcV3fA7Kj7bc7DgWeuX/hdE+PEj1S1ZsOfUlCIYM+2S1lG4B87GiYmGojiOdY7DOXfrHzv/VfsbP6lSw9Z9R0Ak4r7qvstXbpWFS4nKIB9rsTM/ZKzrPW3CVQKLht2r2RLppwy2mwBaWVD652VW6hIZMcyrp0NJLg7E5dly7dZh/nmWpDneLEbXlEUs9fTnxUJrtHIMJkwar8xKU30zRshbpa01EwpdmsPmGDcrSPmRrHEF6l8fkiDgz4KfLFSP54P5HzK5u6t1tmqxUaqCso6xrVqGkiL/d8wa2nFxBREzE8iJ4ExBRBfuIRjnrEx4k4I/ESExAxPKGyebJymxbbbsE6yRctWTtsg28guQcj44M+Yn+iHnWeLVNZLXGw2PY84Ntd8gcTHSe8zU9Kd+/Qq7VCQb2bqz8q1ME1EhM8nnjkhEePER55PmOD+BmRCYL+axnBSCc8bGV2Os653/rCG1m7aJa22gQFTSVPJtFPF2S5mbIVqekpgXWnEebTZpHASg7NiDlVLPidpVO13HTl98UIVmW1f+e454VfZNgmtsnDSJakR65+zNBJhzX7HZ0UQiUR++OdJ6pQ7D1X7s+0Bcp9nuDqSyWtkprKIzgRys59i+JPp1hqU1IE77K1V77uhbK7cJjqoKsvCnSagYOYGtkMCBY242EBAD0RB/BdPnZ7X2FSwyHsk5njf6enPTlLM+/cC6+XddmZ9ygyhouyHjYo3t/V1YldmnW8sGOGoalYAr2dqYqRE3LLGuIjA5ieVliYRM0MD7/rNm6ioLpEoXLIDxJ2QbfsUxejs0qn9ud28B8eWdrBQeZ3O5ROYUKuX5NpEMMBttcNt1gVfcpZ1j8eeErymPEhPEqI5jmFkRbl0zqVvtJkeWGG/wDEpWJTHvZqDCvHJrT7zEgiTn8VAms4DF3nNtp0qOhWSZ/cUW0pUMTxCpmD4HtDBgSX7rIoCSBnLqoMYcMSMfnlW2baLKnPSQbMTUXJf4YGDa3rsVAx8Wl12jNahtdvykP+ONnVs1gQxOrY9qo8uIghJi/ImcjIAqR9ZiLCExL/AJK4vWi6GS5QQp+SFjqluXEjKoaoff49jGWJyx/wou1RradSlY69cNcTWi4MPqbWUiAJ9l+ZXuGATmaOn4ihu09FZHFZ31nyJPLqaIdJRZRuKvqgK77yy52HMu9asgbdPreLV+nrn1OpdOX2eGnzs3WSx7ylIyLv/oBw+zdv6eeAlNmn1HrikdOjfM1QoRNUh6BLBqmNrIbXJNFAUT+4CfExyg0FWQNmBepb2A/MPsWO/A1Gq5QtfMPoWlTLRzJsUbD051WyhFVdOXVadtF2xo7ajvZG8mUzNbRD7GwL6vWjO/s1M8e/elrtt9qnr9D5R2TakKjYVLSj0670O1olDXB1SnikTgRPkBjnZqzqzkgzsGEyi77lL0SfkgWAKWaSIH0LUBbyaqNKsyry/nnVfMDJiciZK65c0cB+zRq2yqCuwuf9nyIYnwxCXmh8WK7QRbpus1W3br8lSWxMTHIjzEc9fxPIL/UxKyaHvYNbWTKmBMzw/ilEQAUHmkmyrq19uROgs0ekcKPHJngx/ZkoTBnBSIzyDkYKI54/E/0RYJcx46V3maHirdsVqm1n+h9l6k7KeXHVJWfiS/AzHPHPMxwp8jwf/qIGf5yL+VQw1MduHTu4X7MXZftdS2cy3RsQp0edEK7UwaENBDxJ2jeG7aJq4P8AP5l0/wCkB8kz5VdlC5jibc1xO0eZJ6u6gH2UXUBZCdPTG+Ewfg58kE0bTapWRnwAzPCjgTERzI7ps4FNtbLu3rGneZbuIDyUcwM+oCa7ZyMAaEi5jNQo1l1F9ufE1QpxZmS51qlAY2tfJVb2nzwpipV8lCystg56gsKvXnWD7neKzWRHLNaEEI8fWCFKMDer9NFAycvqqRCcc4rw9iqfiqVpZn/MyR8qKA3EAAaqA8J5S0jl1yfx5bMNKfEBMTym30kfPRLMgF0zPRVr62jOExEPrm9RWfzPiLUxPJstUIGVJj9WjKkmqxJyM/LMCSxkPz+6pWEwMplBin3l1b1iJFVeDn8woFh+EtdLfRcZCE5LX3DV4KJ4SigoIYttvvIrsYv3DQgrYBQtNUDGkU8zrIr969uvJ5F9te1pU5rSDFR+eWsh6cRGiefb+E5Dlqp6/uEWeRkCNUgXEiUnHjRzpBKrIUTlTYnlHTR1TrNcVdj7O++n7OrHmZ5mQnZ6agD1a0ty1EDFHKW2RVS+QCJRqaqRicywFt0IBNY7dCJr9ctIoO+ChUilYkhWfUgTZ+7zou3EL9bf3NBkzBRCjT8L1Z9zPP5KzmKaoffe6LU0wKYjrPYsUJVnYero3XfZ7nZsb9a63eoFjO62CKmZZudryevJludv97tdi11Pvz2SKdF0I6V2fQzfP2e8dTY7l97Z72776z8ONgUzu9Fik+zrvf1ajTnIcpqJTZpGuSJbRaVayXtc0CNEVxguJZ+OdW3/ANH3FHzvGRGpkw9PgqzuYemQPiVdsxwoP+QPtnWKoUYUgr+AbAzb7tarXOKaj2cg4TQs/wDTe5+sqe2LcsI7tX8zE/EcN/HT9FYWly/PlT6i3K0zj4PwByuxE87Q07GYHMWFNWqC7f12cHTmFWEiB+4XH0WiqaSotUnBai9EXWwxVioaPyXTtS5V0/sKnZ8AOubz87kRPtz7olVZUI/mP29eVaO2Z0rSQbXK5SiYEvzYVK6KXAm+1VNqF8j/AH5j8TxtY4UBkisdiyKx+dtVFimXQN/MrZH2Fz6g0qGd2Fqc0j8/0ifE/g48jEig23nt8BA/0KBCB9f6JdIlE86X3U8o4RZ8VdehztPUm5zpaqzWkCmOGHgef/uY8ByI8R54XFWWgEgP/VvisXI1217pvqRnzGeFqa3h1aRgM42jMzeQFQ4ASkziOCUQPiZAuJMq7YMUVnQA2edRzFLo2Lzuy2jq27dQ7DZNk8Q0BXHn53/AYLfPifWMuaE2pjT06QVpS2uAeYLiokQKYzUA13h3Suut9FWbZTzEj53WbZ90PzqiPGx/vmKj36Q8ODXWCxmNB8tb4jHzjtvWpWwAUs6vnV9ayd+0ZnIiTPLbSFBYIayKJuLiMpNNfvavm1sCpJx+PUWKMPHtITE8SJqn25DYcPqbIkCny2ILiljExxqIn/GI+Lg3XWsY8ux17ZxeudZKrSjXkFPbL4FFmQ41sEyZCDn/AH11v21qIVrwunbfPIUJe3uLfRRhyss2zHCs2IqCiAf4XKzOJAuBPyDyFckTAf2qCDHiEKXMm4K6/wA+VGYCQq0fVjvdZI8TE89jgZGalSdnOhCar0Vg+J2lnNzrsqLqWfV2dgKF/T6mrMtGFO3kXAj3N1f0mZj4paHniJhMz5RY91fEWYpJ6xHbtbTtS7Ys2EqmYjlvrwVMlFo+u230LRiNLBq6oX2TugNbPr1gy1fKGiMqS57ShLkPU44Yi2B00dhBfUpkwcrOzFKTC3oqOEZ+3XNsfw+ZEfw2DqRPngXaqP8AA7VG+olTNaDTMFey7ZRMhoZVQzn72v2eopKUP7ln0qHaLL+amhmOVAZrFLBcTA3HgEANXVkF/G+vVbYUZovXLDwUFnrD0x1rPANqt9leu14xQ+XFrNF0xWb5K1Yl8/iG+VTHBP8AHnnylysBmYyPTtGLuQmrZ7f1X7XUeNbKO3m2xsouWY1chfzvm7mX2E+i5khNYMyrZdsiseu6qc7R8x2fE8gVpUGSz5j9ZXr1COwGVoZeo19T7g02pcPRO5NIgQ01AaZnlmIg59bNcLFdscoSVe+S52kL0cFT3MxpRkX7jbAfpl4joUqrdGyusmrCImak36jFMJL2gS2/gwHd6w3TN4eJkxpVJuyQiE/Az25AHITMVLp0mzKr1SJUNysZsbMe1Saww77oZGfEycx5/aMeRLkFI8bZN4QJy30GeLvmBR6tcyTk5hBuiTV9uUDEz/HExBvH5Q0GZ12yeSqfzEcgvMc/H49f6ofITHOndzbkOhTUtq69GDDtfVP06Semyr8z6yoo5PiI8cifAzyQ8jE8FEnH4IJ/3IeB4EeZ/EKislTJjVL4YVBpl/GINHBKJnxMmYT+cun+pWPiG11heZUU8uv1fOGxg6T7DLJ/eGXkvHBX4X5kJgQmCOfJT/T3MggJSPgvyaCUQ+2K2Q0weXXqz6mbAveBMrMAKNaaVAFF2zyOvJlCvc4GMhEVcquoteJzbbUcAPlbHlV86HmK2sqtWOICy+vZtGx1uoEtEKtLLJsxMrQFAI+JwKREzZskRxBjNaQGS4aifMREphRTEmzwMxCgY1gwGriHlWop3HjIMmOJP0/PIOSnnoMhwimJ8cRcAK4gJOiA9oKfkKZkXAKCCZOTKZ51279pfWfOxZctqxci1SmBgufFEcCZCYkQP2HxLVefzC4+QfUgAkM88V4aP4hfFVPjZ+74pDz4er8+V2JkEzMnByfvzOrRfGU8tZrahyDarW0LS7VXsilVnL2KWc1d+jFJy0SqxEF2OUa+AGuAb9+laQ+q5CtulOnnsWSjkYlXlRcgGCEnBWpPP9Aq1vYlzxXZbCA+JdDRvasQoqNOtmWieW4YXKZPrbcRZyXtjrHkzvplKfPaKdc/ul2bLGWOp3SztOzUPDwm5LxjIv6oUpFdREalz+/o1Fq/xV9oKpn4Jh3jwcAqZ/uToQj9iQGw0Ya+3NZqZC6/IsoCZoX6/uMxb0viVaMKGh1itb8tkuqPI/Fb/pbU/f4sVH1D9HouyiYIEdrkv2afWdHD3euGWb3elIb7p51alKMb7R+lVOJKeGXgPWYmIL8+JifEVqBH4kgeqsPqrq2k9GlBztViv5idFPYcivnQvTp1TnD11xHbwfff8QJbZLVru5t652y/WKqrEGCmVKesNvMlRIwm6dmYq9Ya6pLKR9jxI0kyxAYr9F8LZc60jrFSdWr1rvASmFWZFd29/aVWCR/HZaH2mj8oZjxtKaiZycy7l2ady9lPpus1XPqvxrq5szUYdWdAMrAR2PNmtOlnGhp1rAsbVM4GkcNUSybWJTPwpAwMSVi4BrWiCUSy/NG2VQpiblCEeGogPzPLELCQ+HxExHsUJhhwPPzwUG+Z+NgfzPK8RJep/Tic2lalFzuvQJzZO3nWa3xHMcnnvED4j/7gD4HifPJMvjgP6xxDZCedU7m/Efy73enoompmbXXbeZVG0dkmmMTwvxyJ8+OAP/Kgn/ezdzb2LnJplXLz+f06QozZg9lL8s6Tk2YXXauU3JARiJbDxmIXSa+wIVVZVma8Wjw70ZGmD+XN+dOJVzqrqz8BFZWibbl+zZZpNr2bYFUhDrom3lgIBcxyzZpzSlausY1bc2Bp3b9ZVC81CAnyUcBTHsiZ6x1RlT4nafP4HjzgFTPO3o96KbA4GcFu4C2yYKEjPt7U3Zq6FbKzAZSbbeifv9eujncmzD7sLiqTuJowiY94n4IjiNVtZoQl7/lcRlJCuPLH3RMvHPl8TEjAMsOgA7KCOswqofS7NbOQ/sd+xZfasssWAmLI+JYHwFMFE+y4LkHxQIYtpPA+ICXTIwcSEzBJXDZn2iZmfHM2sZuj0VWA6sHpsU23mMrNKIBkj/SI55XIflLfEzJGkWBBcWHxzxXiR8xExMxHPtmqmYmEDP4N+cd2zCAd1asGez4qlRVRwEWkr9RUMG6gSWFA4YDp0buI1dl+TbL4sq3U7VSk+Y/nPtPqXdnMmjosWeJp2cPZWSbdSrfrRqZjVDFoyG3SnzEhjZVi7Z8BR6WoLXi1m9KxFTD4eYKX8KNO2Cpn5aGuqlsRIspej71BXT7Q1NMHNfVCtsVwbh1xDYuVLWb1qbM1r1EN8qxDFGz2QgqxL9K1pKOI3P1Lsd21NHIy8u3ULzrIgBj9nyFJ+gQ8IZIVJU0P3myxD5kCvZzZOWUrR93R5JM3dLf1oRe7AoadEQnMoEGlVplZ63U2csiqameRy2nfR9OVXlG6tndAQci3QoYX/TfY6Gthd8KgpOftJ632UtIQhz1Aci/mxnfZ2Y8RPhnFKVFX5OL+4vvFFeOk286oVm991EOiA6x3UHp+0dgVYeN3A0dfEnMtnk3tPMPd6gcXEqfp2m1UNf4R7865ZA60jzMt/bWZA+n3qp1ISHY1jQ7JFyESDViXO7HFCqi/T1Ga26k08x78ULMQzrGyaHRDQKfYTV2PxZT6RTufA9PN1EhpQ0NvFDeyxNepNixZkdHU05v2xKMy9YzLq7NXUit32gu1T1OqMTVI5VZRUcUtft1zAjXkNPV0oRyxnUaCplZqCs70auni2oiG1+sl+8KNzIs1L8VbOrWihqNQIl+J4JyASA+oyMzPjiLLKxFKCDzHJCYnyPVdcKVpfzVSRdoD6996J9jJ3aFmsav5/jkc8eY8xbbTly/sInzwBGS8H/WGzHJsnH+MvZM8h7oj8Q90ePFR4P8AAH8cCMealLAu0icltAPDbKJIAAoLQuV2VQXXW0lMkho0XaNoUoYoqzjUaAM5jxWpHKPl5kS26bqCCAxmRJUfyUdEv/BuNgoYUyfAR+eSZKmSBhEfqPNnGLEOtDSmT5HFB5KPHR+kyfwaWj/Qp5oH6V+WakX60pLHpHnvbDe36i6GUtRosnZj4jvOhQyI9Npla7VU52E5N/pMSHjwpQfbRHGBIRMlJkf7VNsinzx1kmTyS4iZM4DmArH60E2dPI6lsdz7G9ru25WdjXFU8yAk55EQqPxaOXR5mlPt5CWqkOAamGUNllf7Zfxw2SmJIzg5mRgJmeUcwj8GdWV1k+BizIz+dC7MsJiSOSZM8R6TPl0NlRR6m07LSY0MR9aQY4kMVMytiVGuWz8DZiZVQoK+ybatZ1SNXIg02lQIF7069lD/AJUzcdMwtpVFviCGmArb8Ra2F8q5ciKzattdlV/r2cjv2jevZZ2Q7Ipx7ud8G5YQrPpVtyjVm13Tr3/Tu86pzre4/Guw0H59a3mTfzIn1nxP3byvQ0lR+uw1nIsTVZBJq9lvhR+azctzcoS+paYtrJGJ22Qmo7gKRZTfCvZ0mObD2+jtEE72bn2aWuHijo1Nqy6bOTmVLVKy245SMsMYVWaFXW0csDvY2zjy5tLrkPYfjze7aEgwc3T+tV8LJIRR+q1uayi0cbt+PsVoKt+rjbgkv3Dw61aWX8Xr0mo5nd0VLtzcPK03q1ZNXW2rsmoq/wBTs5sadt9HH7pZybnpebcqOx51K9vu9IsJ9Wn26lFynV7BXqWn0rI2KuXtBeyk2yv3kWapVeNAgZMT1hNdrwi7Zw6dd469Xe7VZ11BUiOvXaErZalVnH1ih9LsZydG2vbwUdjyY5mktdxyNLsOYiro2a4Msjp3Te/OP7Q/iZqA8b7GO65usqWQgdUl7uFNleBbe2hAcv0g2cqyiK1Cy9RTbp9AxwDyXd8A8jAVeyqWqVrIo6tPPnSumps9mrBmXvCGWX20n81bsBUEQlmp1l+7ZW6rbz/ubZJRcBlGWU7+b2/NwKDkI3u1u1QmvRtUFKhUIigf8x0iiyd/4uXwUHq02Nlj5IklxJ+PHNsJu5EPIx8zPIjwMzEsESmVDP8Ar+sRwg/3C3+J8z0/vbM4YrWqtqtr0IYHeujFQ97dKxXlRzH9Innj+eAf8cE/Mf0mOTzxyB54/pHIHzyvqKSr0t7HWsbBozaTa3XNhdWbMrkfAfHDbBTP21eKnKKDO6IBKoVbnwmEwz3jb3p1Uiir07bz8nRgrva8qK+03wjPaZSA5iLOVZ+8IZj/ABgF+FcerxxKnWrAorMXKmkBRxQTPOgdJi3I6V+fwMREcKfA8UXuHnmu/wBETyov0RHnY0ftAa0djTsbt+GOQAgqS4UMbJM50tYnL2RohLWGp1OyqukWcK+mt5+I2m/97LF0lQQAbZOZ5+eSMh/km4xBTKEHIRM8oa93MfDaOjdfpulz4VM+fEVHkgnC8JVERKZXWlBhZvLNvut5ybiLgcAuI8GcRynhILOlsyxtU/RgPEx4x4K8+1m3JzxCvMTJtmAj1Gt1hDs2HcqSulegppYiNei6Rl8VpMAi/DY9HhSqt8TVxK1ysUy/HfRVrnCN/FaYFZStUg2fc1TP5kFHEyalKizPjlWs5U+oX82u+edkoHp5gsq9Zgjve97swm3RaHOrV4DNdZd9UNEbvZIFBV0BVamz13sZ4l/l+ihURpVYiQdMGg/sjggM5sWzicM1S1uddzGxmadjN0ux4XyWiGUsaFo6z6ug+haUaoqI3U25zuu7L8TVWxN/rFPtCIt5zbNDHu/a7uF2fPqeSoUNs8qiWrq72drbCIdt3NtmJVVhdewMRz6MqtfApNWEq7R9PczaNjg1/pjcysqR46jb672Qs7Rw+ojeqzadkYFx+6pR937XCALAwGotyXsyvaIz9edE2otdXnSbpKW7uzqru9ddDMushXQNUFXPsrOvTPB37VGelPq6VW5g3dTKdi6j6FzA3X9dtHBSpDVDezH1IciGBl+arYIjtzby7FIMCq5uur4aOapEwZ9/wg0aEXE5uk2p7qjoO8V/KmkfccF52f1Wr3pCozlaIDDTYQTn2GTuptOsYRauAV9VsFosf+l6lvwh0Q7ObXz9tqg0dNeRnEaa+vab2cRbm2ZxsYg2uyd2yX0nUT6v2pedVnPpZ10L9SGK28mq8VObopUljExm5AH8dh+RloqFBB9ScsKdqNFOzsHoukE1aENaPyqxJJpSheQCv8gqqGPzm6IZOum0rt0rrac/bAfkuInieVjGJkT0qR595qCiub2QCTiQmOQXr45EeY5EePPP8ZnhxAz+Cjz+RQ2RmPH097WNW6FLRMFWVEsu99FKhJ3aNioap/d45HI5B+PHIn8R/wBkRzxwFyc/gg9J/dJT4/pa0WPAVQ+xXatAKI4+SQUZ1VW4hDTUy1JJoZSrkjJxmZ9RDUlqYS+tZczfzcgNH8u0uuPxz+aToVtvORLzA4khi7DQ+OB63lfdhptcZ+ZH1P8AfBcYvk1QL1mLNAENCFZba9SxE2ut33I7RXOs9oIjywI8/nl1vxpmORMxSGRvH9zeRWh7ITXmebjPlybU8zLNGm34tIzKx+xVMImRAOntQ07dZD7LTc1r3WCMp5NgFcbbk/zBHJzxtKoGPDUSzxxsmTZ9gjlRHvMeW5sICTNgx7iIHUj4vYWG5SCSt1YwbK2tqEpAuJbf9E9EmwvWCFMfiBkjjy+kCAj483RMkws1q+5qyDXvmkyfEsZZLwAIhEeTbaif8flkx9RVrXKteUqqH7l5Krq3lUyrIgC4wvtrHqX3KmsiRzDYg4IUXVtCPmr2UvGBUxNkD/v/AKdn258A3rdgDk1BmGoIly1REQD7eUFsPPAWyj++E4FG/eC1n7SFMu2E3dRrMHo9j7mnfSeiTtLQzy0pilDYIGkM9c7LFKTq2r1MK8rkW1vj8RxHkGTHH+xjPMwqvcc4al23SfSiKWr2SkajXZi1WR80MYSb/W9GvfWeNl9+TNzKxMTWwEgokGjWrwjVnpnXKwTNSniLoWWX7P2Ey2X2oykTZfdnMV8WcuOHHmJ5dRBxPtbovAZmto9OmzpC9+QFLCyk1K/br9rMy2Ryjm3tjS8L3el26FBl+QnzVkuYyAV9NspM6Mgffwfzslkr9m3BqAqOhBD3x8Wu0FZGjeZUeBg6a31CyRAgE6doqWhnPfiWfdOd6PYB1bdQqjpjmVKjNcWr6oqNW+rh9wrHWUi7p7KTTPw9hqJU+bNXqGw3H2kNM3ldT+O3ZxZ2Hdr1jpYjc45WbQGUNqfTWIb16Yd37qEUXTcoq9aYyyMrVEnKcdEEXcxDj7RQUGbLcyEK7Jgpae9l2a19q7TcV6M1einqPZXLMRCtahtGXjc1s8GuVFD1O6EuLaRlwSz7l2u32HTnynANtnytGTWoJg22ewCqrNYbG1BfiUW1tVMhYP8Ad5ivYnXwPtT+UQjySLiv9Vmg2fABEgXgtyj9/mfcBAyf+L7D3oWk6kVDbP3gz/qSuG6gurEx/rk+Y5EeeEExMSKLC4ZMt6P3E6Fn4nhKdGkM87v0qM1DHVLFaVHMcmP6B+TiP6RH9QWRl4CPH48rOA/PGs+Sf6eOIMSRKyZAwX4iJLlaob2wABkRUYMvBnvZFaKN+Mreqvu9l3W7+024eRZsEz7VO1oWLsgux1Q4PCqEzfmaW9dWMGpocwIllO843574o/enYj0/j351xXnsVDndeuITU/VKhx6M9edKSDd+rDewPgJVBPtpPNCRNrIqqUT9MZbFZGA2dHbuWebD/CoWN23LnW64WERWPw8DNsTyDOJkF9JujmbTiO9Zl7Sab7f8wEnMz+YOeQfDbIogYRETHKdyaMwBhEtZJTl1qZlVBtiR+5ZC01prCm2Am22EuZYUsGR7NhQ1znht+MJ9MjHnV9lDqU2UnkgpUXmPYQKQEuI8AUjyIiJEh/WIhI+lXNbqukn6NZWdESiy+DEZGDIyiB+c0SQNmJMuVwkIgorP8jHgJg5geNrERxE11IVMcBQNj81Z+Lx8f38mfs/Lep8f2pCDmBcmuKo/t6uyrKaj7mm2peX71ZpjAyQOD3P2NudDShqWJsrf7v1McdHrtmjF+qdO0xRL2vixm1G2Nm4zU/UJuWYZalodQ3hbI5V9yHKlldoVvnQUgCJUsTOargj7ukG2+xJQX2yNeSnLt11gmarcfsbciWULl2hiOOLeVizvtQMVEBqKH++u6BJVFiew41AZJ9OzOqmTpzWgkEiK8eFxHCjjg/M8aiZ/w/Rha32bm51ShEzW7/gfrHV3iFazcz7C7KNTv1nW60NU6kCbULLqXieo01P0xU6XW2b/APYSuwu9TCzVizX3BJudlWuRHEuakxYlGtR7ekKe8CbGFenL2cwf0/RH2t10auGLEIbKHxPPMurnUgj8zE8ej9XyV/AQPRYkWl80Arz0/tEHVSh24lp5pQPY6s5WxCI+9uVEwrn0iv8Az0Goc6km3UNDu49XZkaJiPXrFCpeb+q9Q1FMTKn6TJhHwl1a4aLlnKb2PIjXqfjMfOdZai1OHqZGyNnB6uGnSCZua+VRa6XNw95D7t1xdi27+zpealm/Vknnqp2K12PSrr525BSdpajhsedai0Vw+Kzzrugw9/uI9gq220rQNU2gFh0XEsz6rXnKwyrAeCqhs3kJWq/lbtS3YGK23jLztEGi1U/DBgdf3VBwDjH4/dwN7Po/dwQehSPP/wB/488cMP8AjJlEWhi10jt8fAqnefCHplbfqR1pWBcBiDPzM8jiI/d55H9PHIjnSsQt/dmsFmrFS21fDj/smWT5UlVBhf5RWlZeGY98My8LuamkmzJGAPKBgp95kvMhPy/t5NN9J0Q7Q0/v1Vw50nVjw6i/t+Q62KL1RkyrymevAC88mncC5ZXCWVso7vylF+kFO4SBB0KKJjS37ujXJNxAybPz9PUBGi057EXm6mJuT8xjWrZXvZqwJ6dark12nS67SjNyoHlu+FtI2QB5HqPOFQBtibQKIh8z4I49FWI+2X8cWnEczyY544Ie0+OKDwf5OZOeAcM/iVQyJIgfEI+EADxXkpoqWfnyqUhYMSBTYSUJfMkqfDQmfPHMrQlfwU75qtwdexjS+ubYu1orQtcFbh9KKwMkQcuQTHyzEChQoIXDasxMw1FowYM+xVvzM8bHpPgfu8m7QiuULKIgiBsxP4q/IZ/trEFOoKrLNabK5S8VCEzxMeBjiTL0kARLh8ci3EPEwVo/KiZih2EGF6MdNTSqkmzs9e0MA5u4mT9SZ8/Fo5W1R2kSyh8XIRBjMFFYVREr+qGTOXvkYM/3wFHZtAgKH0r178w2/lfTennnB1LeFvQBuI3khhBewqGlrNmV2tC9maJpUNKnrnAM3sJtaYJ9k9FtSSdbsG0Q+Vd40REHnb9RCYQ+xt9VlPmetdep9k04bU7P16rndbiEdXKJw64x6fngcLjo43gv9eXrbxvJfztvc7t8W0aQVr1Y/wD0vwyphDK//HHOgbEX8EFTvZr61kmC2mNkZWdLMvYJunRZXq62LeoUfHA4oRPyJ5diNmgGNq5jzrsZl3+jaZKU+o/dqRU0T+OnJNR5CzMA2XBjtitoqae9n1teiT1ZmZWv120rNl4ZO8c1aHZg1ciQ53HyrWcSSbLbCyLr2s7GpVTqZV0dHNTYDfxB26JVj3MV2ReYl+drLrXJBGPphdreJ1K7q29Vv1nWUKD5DiMy3alyvvXZwEy3rd9YgyRWrdlK+h6p7rlvnCiXBmMqI+bMPYtyoUbsHj31eKdSN7JVDkVe2ah+Ib2zRv3cSUNH+Y4tpKZBAm/TfVIDo20TRakAovFPyxdsX6xgMfZaZ1psRSupz7LWGO/k2sVdbQasxYQLA/T25EeI5YUgKaICYlRejPHmY/pVpQ5dgi5Kv2ycJ0WKCIgu73zmPl2N27s2wfesUjZmruJgJ4mPHP8AUeOef9QAf/LoGi2jruTW13jMnWOf6+fH87eB1mao2cWrkNCAtK1oqBVl0NbJTyQmYmeexSMDxMGZesdD0qmFty+72bWHS37jkDE8zWzWtLcKFyOkTwsQyy8mFRziR1YIToLkAP3q205Bx97q6MX9JrwNBkj3BKflZAnl16xiz5+jq9HtLmlTC5XkyXBy8iVirlOZ7kxX3t4SK2+IrmAZdl1XrxVLVR/i17ynKUJwcfbwZT7wSq1WSC8cz5jhh/PAqE329JDigmTjhq4IRA/uUxjZFQoD3OIggmu6QkwGQPzXkfBe6rQAH7s2+sNKB5u0gSMPW6ImZ4YcUHhkTydtFfPGE2zkrBexn4meZGfOjchUZ7yrWZRP/vnlhJiMsSD5iCCbDTVPrJnJ8ieLnzEcrVpZMcqqFI+RiJnho9+VaMvoe5HblXkZTdkvESi6MTHEac/iBzbsHMctHnIbEts6OWii15531KotO58Gv29nZ5J1bqPcUdW0vmu9d7bk9mqwWaIciPP459UsH9V6ublYPWr+/ZlSMTCxenI961/vfpamKJfUXVLwEXNvT1/w1OSRTEnStOp5s1ksoEbJLlOpABEmltPXU6tZfnTQ2zrWteh4dJr+Q0ERBF9szPvn1lUqsbDsjYuVbI2rStg93ArfN1O7CJLLdH5iOR/R0c097PpRPyt79kKdEN7Rp0LdRP2f2Bm0ZamgsFkbf5Iimkr3tgBfTRrYybFc0dgpFEkWp3ChTgjX9QqbnZZWr+NruyNJLw7Bmoj11M0eK/yjmRSm4slcsWC1NkDLH01NqX0V0PHXyZg0PJDYkKi/efig854Scj1jTWoJS7aOrSsKZV7JjDsZsXqvUnyrWGtHfXeNModQQT3LSiyYKuEqr9OtmLtD4ZKfIx47t1iN2nLVBiXbV+K9Tr3XG5ALbp7F9z6pBm1spsBFjf8A+pcihRaeZ2lGl2ZS2op9NmyhR20YGfUbBxud9v8AVu/7quH3etfOZ1UIobLZDJt5qKN2KuvGZs5BxYzM7stVGiCtPTUizmEAQP745MciZHlZ4WBgHUb00DNFnVVoZlQW0DMmlJNiOTYb9vCuVWlExARaMQIHU4rmXySylat2PwKzhMS0Z/1KID9wSypE1hMIiAKOWglTzAgqnZsAtVIAC4HGPm9eabelY8Xr80bvdOgH145fVZEKmeC3/cRBH/MR4jkcoXDqNIwmZKZkvHJ/H54Tf/jHkuFl6mXgtaQbGg2qUMpUmasTx6prtIJQZQLB5l5gXXioXdezqVqvXBtB9kbFlcBlMwBmBV/slhMjERETXCqZaVb7HbcAZAQHV0iOzMKUbZ0WzdcTSNXgvyEnASmQzGTTl/KwSwhCetViqA0iGfK58/2gbZA2RI1wTD3DUGZ5ctyul+/WuTOeZco/ucfKJyeU7xBm90QLo8DMw+Pcp4a+Evko4KuEC4TExXgotR5qmaLXzIRXtWXCa79VtFzYuQ2zRuQgZcqz5YqWFE+OLPwUcC4N3EKHW0fGc8gRmf3LCIOPLg8Ry8H8FEzBcWX/ADUUBsXIQgFh5D5fISHL6/lZJxagZV4KYmJ4IcrQMFHtUTLAmRRZNVViOKmQ4BQBeSLTk68IG8nwPuAPkp8qq2T/ACJUnhHiTDRWE+FXbqK1Fly73Tsk38GP0bqoVcStcbs4uj1qiAr5sNxr9OSzeudW1KDweAs8hHk2wEeS1dRK6rBPZ7SigiFZbruhqnEuTnGAxAVswvx5p5UCMe6MoJiOfpAf6fnQqfzbD+eItnnX1WlfVIkuza2olG7MVRYm1opt2J+dj6QJXIIexBxYVR7EkTE9Pr22VXslzKjTU3Ry6m3k9V7RX7DQgxH+lwpEfMbedi7CJXqbeVY6dpwdDolT9R2pmZpGbPId92wzsGc1EKknCE49QrewoFYqAxaufBbGpWoA179nefs3YYd/s+vpUoqXZj2mPGDsjnGde3r4050w9CFfIcQHW64VajLdlGe/sN646l1zNnL32GNK2dOwLQOAYz5E0jk6sApt2YGPEGSm/glLv5YtHrF78zWZb60VDsgW6HeLIT2Mzjo9SbfYkKntGO6t5shhbp5lyZ5gbidPOgi2txWconFqfU2jUd8GZV342Ee/BttFXpHd8FkW5vopnqg7xVyt7v2zU+wT1Wndxcc62xqaNIxmD+pKYbtqvhHIjmFsnfSrE2abbOJpPpEaQ2O2eEdiNWdUiFf4nHPHJDkTxNvwMA2lotzTL0vYfmmejkOtqsgoAgJ5K+EJ88OrCsm1GvkhkDsHEmlsVBaPlICVJMFDdC2db45Y2GhHmVmUyZBTNvnikVzamLNg1KhtargaNRBrO3v/AFIx3ddfQQ1ZHMSQLEI/ER/Sf6m2A5JSfF1/9nEQP8dgfCtlT8yHo00WYvRITWj19OZGaFkv3qqTStRCrL4zMUC5R1KWXrU75lNZtmxKPSAWRkqoz7MHl1LSG3UbmntZ03SFoqpjUwwQOrIW6JyAioVSuZV7s5ToLa6A41DcjQj5a0FZsyw68zXqKRLD9KpTxNJdqRcV5CrIxD/vJ09Nkj2nTJl1VJG06BNaBzvy0+UH1s6VS5hIlhtqMWLUQAOqyPCXyVcRQ+QJKXx4mYFGY9kyMV6KZax8BQgn03Gi+jMqJm9c1euXXsHisCrpyVjH1ei6OYlNQCfrVrbGzV7G0aYm/I1ksJqq2jAz5IYPxPCd4mIg5kRiYan5Vz5amVMmOKqkyeIuHNZdYoUcolkAyI5J+48uVvx5lwAB+AiOAESUQqqZJKQauZKI5DhAQ8Nb5EJlln3mJ4qxDAkGMGaVueZ0fd2oCH6sptmqrXvmVdr3d53X6NVAUMt5N6KrOq9a6ZpPtTe0quRVAJie/vqRuRRzuvIR08Kt7bs/Uy20vFa/9X4rSY8u951d/wDAA/SVME/Kt5AAA26Gd1+7Wgqy+tAf/iR196DjzVzpAY8nWAI/GgiIiZ5oxAHMcYHytgefUKBHpADzElsvKOadIDeMqMCUfgq9l1M/dFq8FtQzxFk1/AwPpl2Wb6bNN2/mP69oxtY3Vu31d2oPmJjlgPcZ5u55+CNRKG/Ymq7rnWkY5uYHYd+r1jMm1YXv2bOm6zpT147pw3H6nh1cCWWrevq3LdyQHvEGOkEN548jH9EqK00AFdm3lNJBwYXTj471l40wqT1l+iamVKEzXp1wp0zL93nmdbXB+lj9TnNetvIcjSoE2n4/5wL/AMTpRIyebq8k4v48yPcXxO20Y6rUTQRLlZPYYas6l/UyIwtKLNp/fbp+/wCg2aze6demX28e6m6VacALtJq/amdVqYPlwEuTIQ+pZpbEijT+olXMoxUwKu/cfvKecUrTZKE9rwDfgWPaqg7T4Wuh06hPXW2eZWdWns2cDt1kK3da3zFXGApc2LtiNvSmvLokDkCg+QfJDgBJsiOA6AOeY23YyLsPqaPXqfY6RaWDAOV48wYN/HHqrh6xWsvXZy0Vmyk4GPR3pVsgNdNr/YruMCrDCB6bft8cUpUPuXucLJcIZKGQQ2hX+m1vDAkfzBTMwMyUBLSIRCTmBByGV2St39VqAwbJX7td8IioFcmfmQUIR+0zEOEySnl/TO1ecwXguS8LhRzM+oqICiDyq5utfiqH6jqjUnRh27abarODx5liJky8CUeJ4BNlQqLrtteZspt2pu0tNUWKFaIdRIOUSB9NaxYBAcGaKU3WyKFJlF0Zs68JsOW+vhZsGKrLIn3se03DmaciKwGukR5r2yhJwuDXmZsQFAotbbbLbTJsXWHzOD0cfLqveacjaUdRno6LPg/MfKp9fyTUD4LwswVJyUSZj6D+kKqIA5neC3bT926o4KqLvLlnT1rabT/0ibajBWbnVLYCobFSvnpj1RsXKh+a7RzNsyi52XrV2oqsUouurXCgaG4c1Eoa6QiS+Ii5QH5w9OfbyouXqHsj3gKpKCDit+GQQ0KUX68yGpgWM5a3EDo9/HIiHMiCvUviOZFClk8Iclkof71nws2wS89vj9kpsqeZSr3BriMjnwU+k2ZEYGWP+7kQCxDazpQ+pHy+gD9QtZ1aK2cHVEBo9c3qz0PPfuhQpZ3Tm1Jhude7drdVnx2PNsqtBV3nHU733S4b86j9Ee3WfzbR9GP/AEA1n7n042sCrNzJqZCL9ddkA6oLuUOlGovYMqhbqriDCyYR4MdOqRwEsOJDyOpdHxMRpviWl4ph72o52nVRt6qs0CqUsd7qTmtYdgmQcBZHwTQKuU8OIgIMJj8BzrV86NyHpX2lp1f3+05uiNqjhd5KRELNTbq3V+VbBr+Ephh1Z1Jnlrainkk+rvW9XX1Jtaf6dZs/EFWcpGVX+XWpWg6h1u1dtXu4XLUeKjBk4nyikditYcMKlXr5jMNyperY6AjJ6DV2+ARH/b5Tk0xAHgYCLZzfbcvES5rJ8zwef688oWap0H0ru5onlZCjo5+kVuix9vMo2bIk+pZH7mst8dZugGWwbG6h+72a7ZQhVoWG86C3mBxU2tMiDxbLZLNv/HzB1ZtrGQ7FWo0qh6PC0tztWj9tl9Ww9+DCef8ATjFV/d/aurWL+dAn+jUKksm/GnQhw/FjbH6ipAjq1kLybh87T1it1xWTZpZZ+esX+V6U6usipGnkHr7wWU6uy+3ouYqCYtkMGy43uljPPI4J+JjiGwhsMiR5BEHEFoZqK99Zqod3T5VfrOqPKrbFbFf4QSzOIbAxMcasI/EyiIKJhCHkDYhe5M4raDk2WgMNkLiXzH3L6IScih4HXKBbMmYwMWqqqzRFKHigHDInIT5CZZZYRsgZOYEbWVapNkLTCMAGZhZNn8JpwAyXPMQPnjrJNOSn/fIjnoMr889JBUQOcaDhSG6HuaCiaYRTy/fhR+lYMQ6p3JGCB/o0tJpzJon0LzOJju3r41K22tWResghGi26cJsdbxJVmsPmLL1KgLTah55TAagDW1Jkwvwm+VitftFesyyQOk3MUpaFTXWKBDxJfiqTn2Sh113qcxywXmGuPZ0ZZQYwcD++mwXA/wA+ID1sTz2gKtRp6mi/Tf7uR6hMwVePM+Oen/LqwxMSCJjMT846ulN+7FYY1367a+Kl7LgVEUHZv2qjtTGbTY1wWrOipamxOcxTTiZM6xKQJnMRzN0TrIakrvWq+uh04tuL2Aa0jU1mhAqYmAs1UsTUg1nEiiRaP77oFCZEJQXE0p+QfUBZW8koLrLTBk7KoRozHBCUEMlrWRuh7r8eJngR/wA00S328hBSMyE7dOt5+4/61x4ORau3Qugo12ce4qBl+blXXhJ0IzrV23JM3dmpiZNpGcs7+pPwjjPt9d1pi1gdsxLQT+s1LXznM4+5laveu/06EorVAlNekyw0uTYePKF5jYlZ/fzUGWH17Ep1b+jXgKyl/wCPgRjj7qq4zJaPc1Vi9As7rNNc+Xhs0qkWcxXZg1q0wbJlxzyydrU81cy115ORUVFt4WQKG2X5WZtf/iXqFrMskm55Ew9WGiEyUcEYNcDwWsruiRqdhNJQLchSdumu0ot/CxplIq7zkGf5q3HX0wdHY7vR61VJCW7Wm/TO9PXu83EDIXrm/Z0UStNIEq1W2mdn0bF7T+Byh5AcYs1eWIU0/YZnqDIjXCOdy6mq1QCsnQyTzLMrNajhsevUgeWCydHuGKum8X1bf28GEVvfgTPIjmdrOzAYAXKKNCihVTC205OUVMKP3BmxUzH2XTWmfWKxNGGcs1PjUN9FU4ydEC5QrzdU6le28I616aFrI2K1AJRZqKXo0ZmERQ+nfXmzV1O8YVqQO6vvNBUAqjob9rRUcNZlnatOCeu/TIbt74til9JqVD9iN3NoVUIp1e5U/wD+VKYcrBC+uaPjKT8CybO3rjKGSolRK44cwirxWcy6JsW1La5erU3WoQ5K4PgsmJ8cg+eImOYu5AKCtev4cr/9Tmht09+sFPf1c6zkWYrvc2TSKxVWJA/2XW4OVQ71ghiRMDcRGRyBoCBiPHkRmZGuIzFkFxMyGj8qxApr1nx5U2o1H5OJ8TPj9kK8QpUNmR4RSBT8RWHvaRGmtEzEvIJUUhwn8KZKfzATPjw+tNdsgfFz4mJLQ1aF3JSAQEmUSKvayz0e5tqhXUDreu3RcbbLAmZghMfSwfmJ/wBlmbulifOqgDWww/uc+0qoyr8lXRz9ar81RqvWZMbIQ9Hnh0lWfSH7tDVqSpWYvR3KyXzc6JrzfNp6Vbw2oRwuOKH0TM8tWYN7ednt/bYUiOk2JxjjnWLko1ZVLlfFckeKD/fLJecir4ZXBYLImT8ZxysciyJ5LSb48oQk3l9z2nsNt+iSj16gZzkAgrYvlVqzkzNi98vPUA8jFaTgojlGsF1AHzXzlBfBKtxsTb+EC58vjzz3mGRMelTtDoTdjKWjtlmLdDHt2cAOxVppX3zdtsUcv8SFSAlfh1mhCDieEPxF+yKZuoRa5KiQz5A1lRYSFgPg81oMoUYB7TbzJsnDqVvXyc7yIP7fcnzFWzo2bv4sSowYQNqVYO4sLIdbytPG+yoUNfS6tszTTrd5i2qK1PC6p2Ttzzfkf/0gMJj9evdAV9N8l+/j9R7H919RUWtwOlUBmJnR6BnbVH4j/wCidTqvmzCFxUrLQr5YnknxD4XaCeXpCwmQPDsErZog195aRmS0u1IrDPjT7ad05WjY7PQyPP3L+56LzmUdR+pdtDwrafcJqtTX1utibbroPTPsLcWgDjrbesFqzpadrt6Wefd2jVuxMqV2JgJippWcJFqqdzFeBqn0cUyM8Ua3xC33KFmgQ/P1PbZgXpM9/pcBTDa66rEDVRLMU6UoP0bFbx/nJ+SkQJEIpTLteLMdXyLVXrySirIH2OpKtw+AuIiORyYHjq0QUkvAthmR943X7Dd2ntMxNkhC+Z+Pdu3FISrqNXH66CIW1bUtqutINLiA4HgRwp8H4Fc+B4E8pRJEPMdD0ZghHadEEYB5dGvYKlZhPOnPVaeyg/exIy7JVGPsuxu15itHfwcK/Rj5bcWLYtbPT+zgFAK52bM2vt3j3akdTfVLLVmal8YV1CKluj63/wBIrUtFVge00rk0it5nW9/sGrfCi0Lv3oWbc9iVNnqd2ABq/wDo1rjZsQ2+y2u2wYGikgD3geWMh9mhNmKFeEVAiNOpD1xHHVDVM+B8Sc8ieB7TMcrNrQh0OCfaOZuu3PL15qX6F/ywczf9KkUNC3g/Zx9/VacoiIM2zVqn7Iz/AERHChyv/JDVM8epB/PFl+JNY2zBXxyxoN5UcqvUtC6hfrJUc2TdStFIKZUcEeQIpPiUNiJ8shUu8iQSbYBUyQFIyYeJ9hGInxPGOJgLCeevIfZOoNYQ/ZxZgr4mkVv5XSYWbOI3qy1BRyz0XEKqFtNSrYS9vhjJkaeZJ3UBb1CAM1Cq8Kn8zz5WtZ5Zh3251oWCBg9AmCT+BzFzKPBRItrraqVurdapuM5GpgV6QT8EV4VWIYSQx/loaterTPy3aUAkRb9uNeEBTmhes1nK5QxtJrobSuRBWFtFMftjjxiMWoREP5nkLI/MLUEpMfaa1UEQZ9juNodYkc46ippWNSzkaKvdcVEqep40ZqAX20i61W9J88VEBMTNTXcNOEpKDBq7B25k3EXDjkxzx/yZ+a8+KGgu3ktp6PYeuljUQ9ys9dzIYFYdDObNZOcgD9vJtKWpkOJZEl6EEek+I+KDATiEBZSxUVKzmv8At1bXYqOF7VqtnRu9i0lxfbldV69jxJh1+9dfM16f080WwEnQ+nVl3g7ifpcZh+L/AFPDofi/0vpOL3T5yp9MwstWlpot7T6vXd6hrI3KStOpZoW8LS/WeqzW09/MPD7DcoT0rZ/W+p52kY7Had2K+vSd2Q+xdGwNc1bcf+79RUyOMt//ABPRkPzIPbemIXqdvGh2sE1bvd7l2fCv0uwVWb25u9tgzOtiLrGUQZZ1SDHxylSVPh1+3povInNz4xoxMldp0YFh1llyxFbboeTo7W3p3qp1thqiUXjgWSiPBVrjqlkH1Q06moPx37+G2of4FSp/B9b7OqhTnN1z6dh7QFYwMV9/p0mSS2Or7py6/bfTlHFtx7V4UDpNx8f3hr3uuu9irXzRktz1ZTAVXSw+3Up+JFsYLnvyT5m0PlVNl1bE/V9RdVPbMzNyL408rNzGaNha00ITkJJFE923p5i4ODr/AARB7uYyzSXoKmP+ZUamerCD0iC4B/nigmYjnUZzUX4K/X0/v7DTXdn7vUhg9ipJdVi4nGbbozXt8uamNo1gKx2Pt76VyzUt9b7VFvAND9KCRem0h4RTaNqtl2z1axpPoDhKnaxr3a+sTW0Xrs9O0aWDZH57erhadD3r62xbsnHy5NKaWJZEIXChFYxdWvPNbtfZKMiMdf2hQkAh4Gd9kmEqrI/foaqtEE16rKEJyJrPmfMeOWKUMjyNqj6T54aiCZ5b03Xa9VLoLxwT8TyGT/vx7D554kJ88zdV1BpHWOsm8htnIrIk2idmXgI+Wgfk4ZxShuGbTJDlf+ObAh+HREGMEPiZOYiIkJ8h7if/AJviMQ91VLrjtRAWPtExBm9oNr+FyhkJhsuW6ELI2qJUxBzzz4L8R/WxaoTQGKv54H88OsY1fm5R1bOc4iQp8gQyGdY8akW7O9n1szYJFaneqPokD7WhUmqrzSuhWJkGhfuyY5fpVs2ytdDrd6TUdVltJGqHCufMDz4oMJ5nK8BPLl9lTRTWUxATEM5cUbc2xwqFa2cymKqUzEubZz65R8n6/iAZDFnu9CpJRmVribuIpsLngHP6B54mEPTIM7bWh6Tb1QtHVb/k9tjR8zboW2UolRoyqF1PvRrzQN7XVUpm6SvTHrTYmR5p1TVEeTpDXiDto/s/+Npya5404mZ8TPt5/oyJ5VCPMjP+BfijdO78VS7ZrOxu1CT6du/W0nHWrVtNhWm2xYMjHLY+n7xpXQ+UZeh5AoYJlmM6V2Le/wB1qKQ6pnW7Nm345mZW7LfnpUO4dh61Aleq/WrLlPgz+tBn+M6z3/v+p+KFvN7/AK0TN9PTAhBHp/T7zjY5des9hujkdlydZG/VrbeJbz2Yu8+91avbt0Lvj6lv+2+rVBqOzptH9Cd4D6kdB3aOqDkXNF3XtbVo0sal13Ll9pRep1gtWpj44zrClSy0e71Sn+2+7uithJZ/WA+mVgDZbt6lOt1DMVeDd39LatTN/KzZuWB97gIrt93xca6IFfhpwRc+nHWVn/6u6mrOvdO7YRkB4iOfoCWR+dPotO+qYPt304sZXlibVYkNkTjn+uZ+s+jHw8aqroflDq7Ks/ms1EF5tecesmHnp7DdKICFKAy/uRquQgq+fUoEc8BXzHHp0roDtW0LrPbOrBibwqC3QXo5zazLtV2bcZWs/LzI6sZLG5q2JsazxrZ02wxENo4tyFk2EVMfBdnZMKmpkCqYk84KjqsInTz2rbJ8x9tJ5K85ziLA7IRvsPY9pObDCOPHADwPniG+A4EmXrPEA7AwAFGaE23LrpxsJdg5+bseNbxq137XL3QQqUK7BB7WjIFRt/YWSElNVaVy+BUhaoeqbP6ZprItXZRT1qG9T7LQpdqylsrP7Zu0L7Kep1rvOkp4I5qX9bf2FUrIQuXS6vduKpV5Yzb23X3QM+slPjj0AC+S+EL88K2bZ5nOhBCYluPsVXIaLORPLiYaqefD5OYN9SQnzHiR5HILkSQxEFMzM/tquchDgUh5qZBgmzV2yibTazattg3DY21MzKzhS4GDf9yYiqyc2TUjk1hifKpNoR+4Hg3+JApPkxxqvACUxHrxBJiPaCexq4i1blIMkKpf74bRjz4/MT54B8iP6AkpCT4X7piB+MgKYKHyaviOEFMx4DNuigmSLfERHG5z7FWLTCiQnwMD7TPKdSSaAFcypy78pYoPJ8zaDVmDwgvE+k/FITEcTEeI5XVAEXJjjY8qniA9UzE9pOK1A5C7bb9rHnTeZqrea8+LrI5EfiOdaPzSto4HvLgAP1kK0TnKe0KRHaOdN1TMy5kvBjMkNlQzExF6DmfA6LotC8MPsttyGQFW2VFfll/u6Aj4z/6jQ2fZN0xNxsKpsW8hvzUbPcdZ4QacJ7b9WzNqh2qUOZW1VuCymHVo/wDtUTJx61aijvLmyzMbQmPNI/ntfbaGvgXQvlLsjLvINIPKFoy1NG8sXGuKtt9ek5arVzst+5Azmu69t3UKKDyLtU4jRyeqOsj8tZGOqn+bWW8BD/0QfG7/ACTpJrqlYneE/wCdDOO03yjUfcrZZ09FHZEa+1j3kfUXLfGBpy6z3vq//TlC9frfUrLoI2oVP1Duzvp06u5sa+7cB+v17Zs4Vtspb2rRe6CJ4X9W4+ypKeyN/C/0Hstr8GHQdcwk7Kup51aPe/0nrGdU65VOq2tVqAdgu69sLsuzbeFhkyYzxWpYUiFIrJM2Sw6NInTETbpLp1qyIxqcK6vVqcq1oCIgayP44CR5Ko5azEW1SD/qF9K0OCbeVdy7FB0rdH7eePE8EIJcTwLwmMLu2M3yHy1ajJbT+AzXKxkCQiWz+KOZ5OOQr5y+BHTOkMstFrc6kjKqwsO7Va+vkjA/9RUqzpr2u4voaVEHp6VXqkfujdPLrjB7Cl6G0goF2TcuumhRyOs1Mj8I8+ihVFl5xPiKF80xIjr24fRhnMRst0wF/fKmcJrZRgPbz5lTkIURe8zEjxQTPnnUsoH2os2O12fQAS1Fv4nQXMrs7PhUpXY7+jSxbZMzrNCTZE7un720Wk9nzJt0l69bIvADICWx9zVaoL+LSXVBlRFmTqki11yyi5gpg+5dbYp82k5zX1mT4wtOW5BzLNFVcGSG1r2bbiNsnBfnhOKB/D3t8fgzYZfvCeAyR/iho/BYBhxbGwyTED5HHVksVHq5BxHgk9bsW/3c18T9KWBjE8lsyMRMOI/yxsPqQ2sUx44J8o66X1ho6+pmTlwHsc/KQjx7TkwSmqoFxJwx/mJBbjlaiVEICVCBfFMefihxxHkyBMIUwPXzMRDFQAzEsvvOsquImaWTB2Wf+2EhMzHC57eJ4loyM+3uH+vk8j44EyDIIQWLVxxifjnlJXyR4mzqg+vCIlUgU+M5teXR+ogMyXEomZ8xipyW1jjRlPm0UJzKKAOYctYyEyIhDUTAf5gM8RH/ACHCjjI8rmOSPhfO3DJ0H8vn4gY5cKSXX4E+l4Z40JBkjzAP4r5Dyvdio1bCy8rMl8NDshtjLmqrs7Vn2JyUOnxXZweDH7i5P/HMwPnqEDIqZyA8FV16uc+JjT7OewiYllU2n7KNTmmIHCGQ+TGjLRsD4YHytI3IsNwr8/BnPDdpjarRXnPsAdmGxMyMfOa1pifs4uJ+RNpEFlOpzrdVDCOsNqvUzVFJKs2ym8K82OtFogUWMvARnVYr1qeUbJiBdUpZSPk1O7dp6qjz+i9V7R36TGaFrtNzyA7lT6ldcrf2pj6iY5h5Ta+oOb/vT7zjH+Cj6hxlnJ5FvvGtd2h0naV+5r2ZffIDOPzEHAjEUxFEk13WNKhT3mv3t5NBuoxuTl9I0NHNi2jp30trUMYf1NXQsUCiZvdnqq719rnPi1uS266pT+4H8ZARTyKqp+tHcnTH6PUcP2uRUTyQg5jyhIz45UqeeZVZKiiT07sWe2msMk4Y6AivHFSKlyRntw1fvRofdFBHameaXgwmJ7xhIf8AIUXak1nSMjHmJji//FE8OI4mw2qckqpZQ4DdwqUPkjr5mKdk/UWo+5dFbP6t06pWTFrSntdHORCqun3dx+fj0d27biYZalBz4PO6tf2SXDKHU6kYFjJuvwMfAu/HQNFDVwSsO+bwXoKJaSo+Qi8D4iKRW4P08EovWcKkq7WcDtNIRotUjq2cGjszU1OwUAzNd9ZUQZRETHMjGbokBw/7fFzCLlnTO29hGhfyM/PX9deRdiWaO+em6uFDs3THnWK/Uy6aqTYc/rOnRvBcyudixJyNMoXkNmyQrLT6YDcUnL6qrXtvlTtLv9XGoHmZj/qLou8xye/a38Cfdtc/xxvZdF3+bdE2h+Zsn/qLJxz7g5mOS8ijxPJmeAJcW+Vzyvdg/EEDeQcTyZifxx2saokEun5/PyGEgciUcjgHyY8/x454mIjmVszVBlWxp4h0AC5QU+VNk2i0SAoS0/gRAghILZ+TZ4KYEi8T6iMQIxHCgDgvMqMP8Ik5giMwIJiDKfMT5OfAj5+ePiABKZ/7IjiKxv8AeRUUhP4uqpRTWaAIoLij/E8RUZdbC0VqBARiSKkEMyVKDrSUBVyoeBTCFSH4hKPMxPKkycwDFqGI8RIQqZjgB5mJgI8jwo548zwo5to+avZjmrHq6Y46fK0cbHgonluYMwMc+YDQQXLMf2JnmWhqaibTuy66aHcaj1Mf5dBts3Yaslp8snxyQmZ/MrGI/NUNOKkhTwMv7m0Va5ZxvsP/ADm3OX+GRr5yCMFBIyUyyBiR8jak4fEHKvM+OVcWmBD+qZul1atWirQq5EsBdi3RrU4aMtutrgtilEqyBwBCvVaPqNrrzNOgpBWsutkb5FsdZ18tGklpU9Prx5o3nXvqx1jNkgzbXfu87Xkcseo7es+W6WL9MBVItiOmyMe1zWDCpaZwd/6h5eMgaeXq98uX/wCX7JnM+Dtsb/LYIlFxFU2+IGp11cI99K5Zo0vkro6XQV2G61cYv07wpSDm6f0fxdTRm5NT6X4KH/M6nURQXCq8mMDz6j9zVhY51EVLp/qvyHmPtRYD7Sh15WdmJ+93O9tqC9CN2Lmt2Zgt3BGNJwDEeS8cUMfwPl8fgOrYlatnKtajKrcTsx1n9KuRZpmzhXkUKp2LWa93Z3QZ10wkPzJ8fagBnl/RABnz2XVWYnzYsA6wXj8iUTxP4GY4URwo4D3VG/JXwqpWyXAdkfSQ+MnNTtrpiIVf1Ow+PY/kgxkjdfAIkV52Bo7LhgMX6dVswYfdfZo4lGJbt9tZfGa9KX/KJSdTRfUcMK3VU6yK9qmnabZ+L5Q/fEcFcnHNRX2AgU9e1SC9AM1MywQhdrbee5cQ7mj1s9Hqa9OBR4KY4iiH5c/AoRWqC93ZN77+18FdKjef7IzLSAgm5eRF2ZI61mrkSlxZHawubJqf3/pbs7/1VDrkGncrEPa8Str4q2BSybOdZl1irW1+40LjaXZN4MygGVmmZNKSPkRyB5+JVAxC+QHIHkciOABmcCKs5SqvpafTKvEyBz5/kZkf8a13+BIG8bZkVyAR/S8r+GRHIngzwZ4Q8Ot4COGqY517ZiibK13cwjyb4nBKE3QIELVFBEFsJ/yk4BUyIB6THiZmZng/mYnkTwJmAmeE0myMNkB889B+IB4YSE/nkj/WA5C5ngoCVeINcKIfUFSUxyK0j481Dao4kETLU+jYpTE+3FK9gAIClP8AoM0/eYBGcyP5TSlf55PtH4hi/aInghxUeInnj+eQPmZ5Ifzy2j3F0c36kquNjhh5QuePjkz/AGw5WAjBJLMFddTEPt6t2/ZgXOzqxuIeWszrwJCDuqpQ4RzRreY4FeQ8+LNaTifNRtvMKJDR1U26oQiY4c8rB6DLi/nlezKi8TYMK4ybIu1iSRmSGlBMC9NZbkMT1Pvj8VE0nYp0dc1tZkYzgNihv52VQqyerc771Gh+ymf1E1njP6Q7Mdops3n2r9bJSdYaGjla8BU1E9e6lgJEmP7p0rK/CLn1sFESGXp/WLsVv8Bo9r0dPz94d0yjxBuc+fJQgy4FIjmI5ndTv3fMqxugHp2gSHcFF1V36dRxqFm5dg5Dobuygj06x0XN61VkKakCqORxkQJc1+y5+QEza7H9VbNmSrZV6np6TZbcDrGg84mt13om/faHzb1c8HrClO3tmzYaa6fVJK32urLbKmWbp+tLNrVh9m0aMW61hx4NJCtL2XTzhS2Gu+pGFNnOVrVvpXt+arEHv6Ld3YClUxKYZecCAh/H6Kgb8XNjsMy2atHQyu13Rn31OrakexOu0XVzmDA/E+jWLg5mKkEU8HjImI/PXt1GR0sjQig1648xnO+SPQaTzmPel1rR0SkAxekU6ng2gtGLV+Z+19Rxg5DGsXX3XS6zM+eR4CYmdFom33rSptqkbBozINkOVbEWo8nqXXqdKgjURPXJo3Ab6M8j1jcPXywQZdabCWEytrvyjbn8PMqosuK5jVP1jUhzu07nxI+yT1roFrZ8PfjdUzcSD+Dv01s6VcRrtoiTUHrusjCmZMqDRB3Pv6WzjnAa3V6F2W/YQo+udRmxv62vZ0jL1qevXsKXnaadl8mcBPAT55COUzCsySOA5AcgOenJDlZAMdEOit7gMCHuTZidKyJt+NISMf8Ak/H+onibkwMByP6tCDWQyQyBSMxyJ4JfiORMzH4q2ItohTGo58XgudeenSqlhaV6g/H1LNK7M/PMcdHvIjw68B+QhrgGJKHgURHIiJn2iB8+eT7egzJT4HxxDJNfwMKZJkzLAGZKBMPWeR/hMcn+jUKrn6CEcRX+UoEE0PlbAyChBsjKFJaMQaqdQpHzWoVCsQtNKpVgJDkZNb8EH6co4HzGcn8eoI9I/ECUciJ/p6xPICI5K45Cojkq4VOfBc7NkU1Nu/dyiftI5bXISMycTAyPPper73tNHm3nYXZ9mynO7dsKzXvy86I9v6J8hMlHzn45Lyjnvw/zyeRPmJ4KSa0Y4R+xRAmhgBBnPGtOyak8dilWqy02GxCDBc//AE2jZRURab9LNqyFm1nQ09A1e1sEYfzj+oj2bpOdMiL/AKqYFL8Utj6ynpVZqnrAzTRUu0K1W42CvP0rLbue68qfu28DMvP/AMB69pTwOs6JT+KnS9SyXhSPppo+Jl2Z9NlN/LqHVMej+QoZbftvzRUFZsHw8uloolFrO69mZn/4MBPj8xMc9ojmn2ejmAUnv9m0NKl5oo6z93WVabU6DdcPh1LoGLT/ACaE0s+YCqBm/wDHLGdXt1GJtdy+nFMkHZpdYyJp6Oo3lHAZKrDlOyrSmpuFkvgtIQOhWTQTCKy588AAaolO3M610DfN1X6VvBtU71mLoV0kxre0npPBGbR6wZokdSCp5VWEUtPTg/PnavxMTzYOGsmeCr3dxs+LBzEvixPlvpz+OdWALuoik79CF8wtI9UlSpNy86yM/wBoN6lnBK33PqK4IlWUkF7FZt/Xvek2iXVQ/wD0XzDA+eNt/wDElJjJznWvtrMSVjEZSOGDnC1DVsbq0huKklPIzOZIQ51DTjG1lNOzs11VScGiYFdi2y4xmxaGqlIIxqakIyuiPPS+80n2qmTT939j+o7TaScl2/Ytg8LIjMzyFyKoPibcrEvXF15ozPvTA9PTi1PfO1nraZrCscPuqF1y/F+2bGwpR/xGdXmY9v0NZhMqcj4TkOSPIjkf08cjmVlWLMjZEloD5fh1mnWGa/PSImPYvxExHI/+/wCOJeSvxwDgxiRj+l5X8HEcjg8GeCUjIkKEleolYrQ0GxytESX4bSR3vOXUfo4utjma7qmDBxz8tiJ5Mwcx4MBLxyK/+wP5VfgYf4nyZz6THvhZUa1qKQNUVSwxTDmDKZhgc8SETH9PHIymg2QlOW9xQI9bvJxK1hb5ydQ2/dc0MMrcrupjKsWCAjq5Lo/BUMmU3ltmzQhx/IsVF+Pf4uQPiORHI/r45H/Z48xzeyq7E+46laxRU01bFV9X4Jsaun86FqRhHeDqrf0rT2GUEVL7LdqbN1zyXAeIkvQC8QMnMT457zyTn88VMm6I59rSFInJnSCfAlbVEz6NvyapCUQxrgBFXEi1qqq3tSrazrzqlrHqObYRZnttA83EzFtuJ8MWnj6xo8Ty1pWrtesiz0DQKh2tEcsqOf8AEUTMRy3Tu3tmyFSt0jacME1HRB/h3XMK1mAVUNvqzYqqSefbo0LS4HCqZVhU2KZ1YOtM1q2jbBJFdCvFhAshXXYKImToVqhzxMkDSmrSyXuScsWsFhA3QvUFgMV1WrD/AMJQDIny8jWsfM/eAc+A7LuXdG3FDMpdKtQ0psqwM3GosfYpWSXTCJbfFYx7fdvYkjikPhEscLAUmTPR0peggXXsiec2Tfqruxfssv6FPIAqr7b0FJuj716HqtJ68ot+rXKiGXVzsqXFRpKAzY7sNWn3TMZSOgd/oGxOZp7HZbnY9hGdQ63mp67m/EDtKYieXtP8Ty/oxAz7ad73mfFqZLzz1+2rm4/8pniKxMj8FXNQ/vMPH8qI0thiurd8nZwFBRvhcrH992TW7JZ0AlS5L/l7QiYlXzzHIODYRO/H59fJSXJRChCThfmZ8Y2QehcgIt4FY8GoVbe3IuwqkrNrmwVifasD7aQuK8QE8VLXMgFTqvzKX2pVsx9l0w9rquBQ/P6i9uhFtlj6mwGTAI0923pvJlqTmeVCWs/dr0ePDVDEzHjmZAzoKA3KlZMTw7BZ3TX+NBZwZMsi0YdHlf8A5fPF8ifI+OLZMFzTTD0Q8SjxP9I5HAA3sgFIyiFUtt/FSohIVH2K9aJi3d0PvQj5PMqiYDnryR5H9AOVz5FLxbH9GjBhMSQyBSMxyOQfAPzHKV1tC1DlaVVdqtGlQU+RKOIs+4xMZ3c4cAVtm/1PK0Ui+Lv09eHkqFzK0cw5m0BhxUe/iIco0uJJHHiZjiA+chUUNZUsQ6tZa269lpsx4iOFHmOGP+pUvxPksm7lU6Zhf18FeY8oVQGxXtrsV0UX3NiLV1BV8hEJo2an3sR4RkAM8VSWExwACJiRlkQHnkSRnE8j+kf1iP8Asj+vbdec6oIjpRm2aR+7YqtVK3+JmtBj9J8ZG5jar9Psf0soQ+ztXGFJHMzjAE+3zsHDQUyFxtHRkBryAxM8MPMftgoBcwv88/8A3IDxUeAbzpH02v6uBN9Wz9M97I8SiMZydOA27mxFVqqVru/cw7RoqaryRFJzWNda+JFY60R2RdQ651sh7HnEFy72J7v/AOHq69u6h+Nml0zMyqIAluZTqtmZiz6R4QyfmKZnczU6NWGlWQ7KEvg69Zuo0ZquRdYAEPDrSw49MSo1Lo+VkKCIhxtqj5+J1ly/BpNOhbMifUqZ9QTZbr9ko1q4qSWo+wnyDdV5NgCCy82+k/OqaZDFBKans3h3ZkZmvZtpeuZMiu3WjLvnVRuDCu0d8v8AVdJ4Nq/WVM1PvbqvrNgXQk3x9UetWwBAdv3ppIbkopDLeoqMNXNuphZ0+vXcRf5dQeDQ9RyLcdH7ezMusWYnNu860W6cDxQeIjx2LEobeI5Gp0KlpYPbBsEm/XtKiVaN+ERPNHf/AJgbum1xTxrfMzwiGIkj0r/3MwtVZcmcRzrOGL4H2R0RNtP57r0mz1R4NhwQPgh6ht2MDbCzV7HVi7iV9SLVk3oT5AYaUQXkY8+WSHuXxxMeC4qfE8JUxMwCfZowueldTp6NRjbrOsDjVtR1Q7txBrgcU6z8mxbnHznVGt0rduzS10SPLfX7CL7FNM4rLlOfkUjfdgodbTl1ZaUKPUvS7QLOD7chFgFDpUTPCklXH0+IpEomJj8Y0BbqzSdZqTVuSuw0vlkVqzK8+DdOu8qfVoZDiN758Xsi/m/HN6sUGlc8DkTyZ8F54BxMTE2kfE2R5H9IiZ/HMHFXJIsMBpvtEYurvrGDM+/bC3VBbQiVFEtZIyZSHIHnrwh8cj+kTxVrx+DwEov7C6dnVxnVr9isUjIFMFEciOAXInzHK199QGLWQRER4S0w5NmZ50/Vto1gqqT2rMmydd6mrev2Tc69mXvPz2fp5WaX/o39F1q5TC7XWX0qgs0PgGv4FTqqKWkv4e2UlZ24aqxfiI57f754jntIT45BmqZ+JeFCyObKcyv/AClyEQAwCa35GC+MYiPHkZmIGS9ZnzLx/wBLCSn8wMD/AEjkf1if+2Z4yxER+O/q98Mjj5fN8yjUadl8sbms/JLn6d1q9T6dPm2H21P7/HZbf8rz9TtxKRUiPMxwB/PmJ/8AuTj/AF5/4kGCEGRmccWcHHFBDXCHE6PtSr1T7H1HTCqN3D2MnsN9Xwcq5d5t469ZOJ8dA7N+xZEzkUuSYBJHFv1qGkse7pZtr7rO65q/qaT+5Qo3yZjS05XMC1pg+Znjqhx/ilURPhnxQMTztGbAbNjU07yIoaIXkdc1a2lV8Vw1ZWmPgszoWzI5qnIFEWlWEVp/ZZN7U+yLAOOz5ttNAF5hF6VOg1hoWJ8wwrKgWMhXhj4iTrWoUMgqzaVSAWwx9vWmZW9g1EQHC0/NeQRnMmzPhdheVfrFWvdy6Zb6xeA0TZhF5bl4Z3L9p/creo1lp01hfmQ36Z0VBlVLOVQU6lc68nstlrUK6NrU3QR6eRv2sY0W/pz3KNUEdW7EVA6TZUdKsJKIpoynuew3lmkFiB9zgvym9qddpvXEr3+qKgCNd+rYpH6QbbUTPGtc3/yzzIRBuHnUkBEBHMxQwkebuFU38Wxn3drKfh61vMuUGejo5T828mVNNoQogGKzngbRkPMR/QA94nzEcxASd5f3nU8uiZ7lQ+lbgKn4GwwLCZ8du69FYpsIwEVo6sMB2vcEMpVNNyzIJ93sfZvDCoys1TThd6zYRkIgOZe5UZad+ptek49lKb4GRLZWEthgkfpPDM3HJmg4CS80Kj3tj4dXqkaOCu5wq0qIeOrRU6/Cua1Q7/WfiC5QjLb/AOp7F2nR7O5BaNRnoUjKj9wjkcifMTwZ/wBcuJ+VMHHr68iPzwS9eUr7oSVOaOgta5VWW+5bRDEKoNHPKo3SrNzWzVM588iOR/Qx5MeJ5HPH9KltlSwtyuxgjVit2KqagcPhrsr/AGhldiZ/uRwZmeeOIZ4L0NNf9/grARDZ8dNQTd0ZjsL4f2K+1FW22q32XT7hqo/HA79ZAI+Z/wBQ7Pj+zd2bGuC5e/8AK4njbUe8CHbNZOm+jYT58xyJ5/HJjhRI8nVZI/u/U3iH4jRf5jyeqxFo1g2+2UTwbtsPBEFwpdENl3xCPE3mxMcWyDCJg5gT/P3ARH4h8l/jB/8AI/8A1HJ57Rz5I/0bZ/jjD9w4bfKyHmqiNPFfWK0j7DYlViwHmOAcosxPPp53qiGYrI0e2mhB7F0yGYnyQT4mOeZiI5AEcxAqotKYIyrVElElnW6NTUhzNvVXpSmEtmP4FEeRKZpyMXVQeFbmzj14LA3NKtl2gqWvrpq0nGq32TuLdfsbdagg7Gj6IYdatjDPy2HlabPK2aXmWWut5BaZScKUtSRr1QUxQzEREFMRym2VMiDbKvIyuxQUmYLjrbRZMCQRdiQdsBaRZbR0ciz+gbQA2tpwEDAg0rP5NyDA59Kj5JK1mq1JjCw2q0V3SQywPXzMWf2F6Lg2SUhSgVz/AHG2x8xANtlK48raoCE7LL5GJTy1HlfzcpU/vU/NbfcO74UgKyq1ODuvzjv5FnLvYeBY3N+tRqdlsoQCMuhUZ5qnZKjZl304SHEjLcMIEHxmAVwEZ1nYvss28WhLVKNvaOkBtql9Lo31MkDDA7xd0g7CYITZzUX1IaFM7EF8ej37vlPptGVUegd6svvFhaWnnRZptiOyB6XTiWz6+eFH9MYoE4nnV7sCY8yLokqOFYGA59aUAe0i+qij2mJ51UPncsDNBTM+jCgE+glypW+6tArmlgWsh3x2/EDHEn4KOdHMam6QFFmUWCgOs9rM5Gs/Y0wfnek51lIJGW7d1J3jLMhpHd+5fToMtOgrOtfmhEBDmteZG2I5lxNkSibd0omYA2Sf8zHiZ4EFK/WK1YmtgOIyLfUMkrTA7neC5BR+iVXXlPFkf/xhpRes/bYjvh0JI7TJKRmZ/ClSBfurH6zHCjkTyI/iYD18SM2AkGFE+eQXIPgczNZCq5ptS2krrkFw2yc8jgR/2GPI5HAgS/klSH54q65VSa417Yt8QQ8/1442hXb54ea5UzKpjwXgijlO15D4jZHmZ51E4pJ0b5T++Y5ET588kYLz7Qr3IRFyprgys2miU1hgmhEoKSeAeBIDjxETwS8DyOR/r+n45ES9xnZbbg/Al84TPHnM+WoB7LYwEAcXAmQU8zdETSiJdHDaxUxBUL5Aglld01HIjAXfxHAszMR5A/QRMptjM+YK748cB/zLLgWfB+hC2IieTPJPxy1+w54DJmJke84A3Qm3WVMvTMHdVIz55WsyqY84fZYtY1nr+r2rqVzrOiabsRyZiJjgWnqV8a5mZ/nz/UhmZ/Co8I88jnWdFN3Kkl5Wq/K0V263bN8beB+phvb+Xq0ZUg9955q6Yip99szFeopA+7MbFPZfFm7WgFAKEIDwceQKBEoMTKJKQrKK230n5SyrRKhZDZTPu/MhseZtAddpDGxjovxNlOwga10Ej1i99/iBLFX/ALaZCv8AegafWTtyoJiamixEgZ6czook1zXAGeSc9YzEcbeZ8ce8aUyMCFcLLvwX3ZTIiis6AmYCzY8MkirXTH2NsZz7NL79ydNNF62G+9F+868VKi17vvHaQ1Op0bD1NUy76wp6jzllUbjH5+myeU7ExiyAOCrVbI2MLGV+9z6tc7NmAhSGId8Tey9Hyt3IL9Uy73aPpZ+D6l2jq/Ym/LifUb6hVeiUZSirev7Osw56N9PVdOwpbZ0ezIzLJfN2LQjR1WGp5eWeIBPlBTzxyhY9C8TjaPwzHMbsMgI+J7D5TMl3q5Gghgzm1vdITzrlAotKOJJtKw2K5BESXFgHyRLWGlVoyq7PY3bNasD/ADxFZj4mUhZcgphI/vP8VlNe2ITNyaSJh9m3Y02MKV+ATIBm5H4Yx77/AI8LQikjs+KPLHVn0DmQq9e+2tIO/wBox4ynLOs1pMj81qjbLoAGdbtVw82oV6F44h4VXAcafc7WrmzR4kJkuZFsKmI4nVJsHdnm7brZuJMP0DrQ0i4dv8TCVH4nySz4hsGPrMBMlyJ8B45BzPL4e4C2PPiZ/pHA5JzEeI/oMcj/ALCjhRyORxbv9cIP9h54i8a/EGpwtHyEciOGMMHwZZqS/wATyHh4JZSUR4ac/ZdCZyAKP8fY4iJKXjPJOPzyn+W8qqF6ZMmfuVMcKCJKgl0wDJAV/uieCP8AETEf0iPHPxZdHlyTRYkZJpfdKOABTTb9yIxN6Qq2BirSitIW1RKvWH+YmBFhnMAKbU1P3xOl82suiDIOlaICG7JzEy/Wh9VXmLXsEzyLMTMzNPRgXflyhaPsIWSqnIti3Ez+IbBxxswUehtR6lMFfWPsXnsOIdK7NlFtMOT7hATEzHK7fH9sszdqWqP6B2XtXUrfWNP4LPx8FcxMRxmY9IrlkoAP8kUif4+LG6tY39GalCv0SsfiX9/6ajHy8q3iFMRynds5N4XJzNROpTF9fI35xZOG9nvV7N9zU25U2/B1ETFKs0beJgM0ZC7oxWrFVWsYFgBC4D8x44sJaEwTRUpIK4kpVM8rIs2bIsq06jsz2E+0WyRgNLMxL96/hQex8CLEtpXdSgVcnlHRteK10KrbAEEzEw80zxYE+uLigwCRha7jUz8Lbb1g4vdtufWRXEybP3qapf7EPXasoVMfc+S5Fo3j5QxqDCupAtS2h7jl9hOFTUsWOtRW83GFeg2fIeFoxUTZuWuxbjtzRbcZn640tOs09h/vetsXh/8A+tKk86o072o/xdUq3D1cxN9vXrKc2/gtpLyWTTUMWLUP59z+r2oPiy/ExP1D6HhnQO/U2vpr2+kZPvfQrBqUr9/U2ey92qgBJr7Wuy485OzbEPYErjiQ/wDStngj5KOEPwuieU78BypqyHjw7sR/H6xYtnctLHmFV96y+IWNDIsO5bOLQj5diuDNXeFi/HJ/pEf85G2zHty1PoT2TIJorrJg7XykWdEhc+BVqYBCjbA+RlNCR+XZOmVdR1cugzRtAEZmNWyKAxXsDXlROnsDTPWmTUj9b6vCrKOtPZsrptwsGn1qnID2SFW0wSdSqSLJcXJKaLBVaTY0JdaRbKtZgqzEfFVqVyQ+IGG83rNvsd0/ttfJ/TGjDCP/AIHiWePxxAEz/BBRI+pN5P8AzxIw0SUTlEBzE8iORwv6xH9fP9PMzE+oj7hPJjgzyICP8oPxwog/zETwGkE+RRfgvEME+QXBnkshSWHwzmzYgF9rmEpz6MRPiJ57wURxUoB39+BGefaDFaBGocqsQD2KCfM1nyUtIeJzmHHkgRMe3kP+J8cj+gVbP4aLwOWQR2ZOmEgAt/LIIhJUe0EFqy6FOFRTMFxVhUTEG2zKzH4ob+72KDCWgzkWfeZkgjzHmGtJUxybfIaRpJoot+WeOUrzlOiA9otJ9obIIgpGtoxLPHIaLh4X48QV1HkJkdBAmmQbtZx0XExbYNSzhLAhc8bPzJ5mdig8r9F2U9Li7e+Ojf6kHWMhzZ+2/UDaZHibRKAZjPuXEQc57Fg4FQq7QNszjLsqCq9FruPUD65aByEMF64Q+rctZVqSTZGHlDQrPelEp5Xu01ZgjWx+qEiYvbKi8K9iSctODIg9F+VRH/yATtyKkQsoZPmtMRIw2/2JB1PQLG+xUeFutk5pMFI+RKOPeUtgiv8Am/TUb79AMjZYpWbdVpZy2cuqYhMDxd4ll+Pupo6KFNt3bTZk7RT7nJHL4CPAoqE4o4imCCj2rWvuazKDJqNlhxJPZAwkfjhQ/Lw7z7uPXQi7NYNhlGvk9hM4+2t6dIEB4X363Od8GAjX6FsY2Gd/RtMGZmefNMLkOdcmbv0ltpDrAR1jGC/Zqa9W0wQDtgVyyQk+k92jEtqq7F7QDXQqvnIVCwgRQCxQ1rusSrsV09zkcsqqHUa3R7H2T7nXv3qJNN6Ja048nPFxz08ZzOKDwPHrg0xPEJk/wKUWImIinjObPln6YNQ5ZzCpSw0pTrWweY10SCgMDF8JDqzKUPmRKfJTwigeexn+BrVIVMG4LcSBQmHm0m2HrJtgoCFZ4BJSx+jChgK3obWeZrAcsnxkqlVZbOO3ZCjK1l201RKJDLHfoLsDWrWa1oVHpUwHrZGeZ3CNOVV7DkLqNL59GpX2GkqmxaVIatxgYAJkiZ5rTASpC79+L5fZU9C4jHoSfLdp2jdIzioER+WfsnxAeZmOZpwAxyyYQXkQKTnwUr5VQUtj108wYcYy6qSv8o55nzyRjzHiPzPBj+k/1n8RPEwMhEkYEh3HBExBjzzzzyDmOSXnkcguKsmr/FF0DKIYdyuhHkLd+Xz+eq1JuawlzsTYs71mQEP9zPJjxEcQJvWmWf48eqGeZ5Veaj9JCsoZk4I4iPxKvMz5mPzyD/5/gv6N3RlfiJtw2Ijmop1hq18eFeagwNaa9SQY23fBsRCJOJHzMlEyIFashDRhQWYLzMQ+J/HAOI8eIbPLT5iYBhNn/RSsacMWpv5jlePePfjLvjOGVC+LIerrNY0NiDq6BB4CwqzBx4Iw91fsemGjMRczoekhPsNA845gBOGqmI/wmeWIJwzYjF0n1HQaJaFpPiho1bdY3VLbs6mUxFxt3L6tQflZWffueGqTjaX3VWKVr7aHqIYS9E1XZ+lrdCfWvENNXQyfj+l6r0i6fmWF9PoOt7pw+rBiNFzm+zWSbYQIKGZq0rT0tcEtUExCTCS/MJ9588ZWms8lHHHLKVxPGoiYLyahVHFQZiIS2QkikarRXYkW6+NDqJUx6ZrFL/gM1C2qRxlYubgUz2d/Ythu2Wb9tl/3bAkxsMbESNMYbEyDFgr0rpj8TyfxMyvAvLtt+1f2fICkuXVzaYRPKGrYo2QdWyUjffcsDr41jKtLAl1rL67X3FXIO/Vuu71pULv06199rrMHM+OfTXNu0utbOryx2LVzNcpnYzKGrRr6WJlYTNJ4tu5nQ87czZqW7mZ2L6P7Py86tu5XcKkOyNi5TPZDGe3Moa4i/iaV2qfit9au8OzKIdeRdiDspoKsTAJgefyc8QHscRFofiypiRjwM8EJNBcykfKY+E1IUwQilW+f8Ls5nyWIhsN+Goaa0VXtR8wp/AkJPvkpcqC42ZnzyDmY8x4GYL2F8B59Ak2muSrLYciCDpgz4vLLSlTEDYU9teLRwHAD/jpuQ142XReupuU5Rm6DLoMbB/L4iOdG1IRWlJ79tAWoBdKYv5R1LHj9I2PI798L9Ea9YIZWeUCyg47AtB9eQeUEjMcdYXc1dZmi+UpdoVMerEP2ttuta9+QXjnuRfzEcrh/vnzyEfgbUGERIWYiIjldsfjyiwCvBDfsE1szIvmR8MOuDPMrlUj54XIjkxzz/wBkciRVM8I4asfKwkGEhrAkCmJ/7PP9InkN4xvsPAjzzpmSdZMHNvrA/kidh+P8JyXx/E1URXriZH7eOefP9PmdWkmVq1mYH1IPEyPk58eZ445g/wARPmI4P7oiJkfWeNrBFYYr3QFToAYDyMlYmFBMzJ+DKfDQkCnn++OqQhSWOKQh0wFv0QwQry2PlGWBbn5ClUXfz7CT/kmeQfPb8Tys+AU0JqnJj6yDJlMp5H4n8xZCBlTnVjrRBBUbPywKkWvzPLAQc/IHgGyQl3GuhVCIfcQyheNJwcGHnjQ5Wb6H4nquufic8+35A3aCW5xToNpjFSjl2Lkz8dvCKGAfKF0aFwbqj0UaKFvqmnxMwUqiYn1BUe/mQMZVA8GYKIEY+OFF7omJjyd2kpQAwJa9kyBAvxPAX6Cs2y+FTMKF538mtYaCvIyXAXJD6w2qUhJ8OuZFPLMFPnhSQnw6sRRU+TaVnMAxccVdqNh2HWrTmBp2th7u765Ot6trS+zKtxYGbIERUComZaZHPkqZnLPA+/uMePlhYzx92FnDU3tE71WTY50s/YPXYBWgE2L9WMrZXNJ1mpq5sEwNh9S837+9hNpXoSjtXzlWABYHoXjnV+uzqPh77SBjproDUUp1UodkYAZ9L4WYmd8rh8YVCEIiedt3sXHypTtzFme2tf1DM+qW91BzVb2R9SOj9hdBmjRoVcl18t/fdv8AadDas5laFV/kO03zM8AeZlSTOJ5vf2hUmJDwuOVVeQnmF+yxy9t1LeytctNtYRUalBbqnINP1mYmNRyqsK47UiC8C58TMHyTn93CZ4ASKYMhYMoRJtkAVlmoZ+Ubis8YFGO07OkuHWeqU7NSGhfqFUtGksDJDV0grM0euzl35QOBd00nKKOUoMqhCndtos173z5lPqVxpDNqpCMgopVGbd9UlMxv2/MSS78tgfm2u3Y/WjCLOReyNuWDX0vtQzzkLT2bOkuI7Gw6mbFWppXnAfqgwMimShU8FEzz4uArzPID1GONnxPPfxxb/wDmq+SL0FNvzHCOGxE8SpRnItgPLYEJmYmRYav9j48c8/8AZH9FhDBkeQQRHtx0yYREvj50w2Fh5mOSmOSiP9TW59vPJTPJXPJCeLSb3QtWD1iFGLbhyNTrri5V0CS2APUryAw+veQcJ+QrFtVqyTV+3mI4EfiZko/4iJmfEPgVFEDWfET6nYDyiHR/n+OIrf7MwkOC6OffsZYmS95n8wu6UCuCZEEfgaiAmxEN0837N0DLRkZ/DPYjkjKQ9Jmbdb7N8rk0D9sLZGWK/cLZAC9VLYI/zDQni/Up5/hPKp+rI5/7omPHG/F9jHMKfkvQhmnhCEyVRDzB3o9TIIeWEe0ewjA2AlbO8YEtGbCd/KPLdWVwDgx4YzBfihb9SHidCdvAl7b+bas3PtUtpa4IKo5uQ6GpN+bl50Wo+KqoFONAuCYKIKFEbIAIj/TALxP5A/MR4VE+gyw1eB4syS7jFpbETV9JWUwQIO0MxwUnBeCoZxzjWvFejM/gwzOOzJMY4ypP7hmxUVKWydhHmfwMEJRHK8/Bp+Howk7Or+jaWpZneszj0n1ppOBFY6RgXpY0MIkCZJlcrmYiAmZniTYiZlSnyifHGnBp8iDZ+XxzEyg2KrwCzUGnbMTVdBTfaXa5MbJ8s6oQiu9mppN0nnm2Oia6Nar/ANO6+/Qlt5ybQdTa/cNfMvM+FYgFmgYdW0o5n0DtXwZxVCIGIjrWZ+RnncO81eqViqo67mn9SL9u7ay8+jkVgqZtmlWurkLX1D+meJS65a1qd/6YdwxUEdkc6yp8BZa7wHiPMsLlZXuUczq0KTBc1n/caTPER5mI5UT4TzMrfEc861QnT7i8x0ne1o5hWqVR8GOteS1QPruul4KCRPzuHyYfERKZNuBVBcBDHk0RRlfg/ko3VZS5hFm7avtk3QoomPPXM0QSRWn6r61YgnQu/dvlhoea3RKsjLrW8ZbLInnU4gQ29DwqITndc2NHSC3s9luh12yOLnNi0/zFC5mbwT5KbdsCmq+9sfpdGXme8emixGu+/cG38revdlZupivo9bwQfZK5a1I+erNK/wBi6y3Ls+rLFWFl4n4o8xz4xWP7vKv9gaOMkS8ehJ8xMyUeJ5oXF3TWShAwRDoW/wATxTfP5iLHgfBRIn/jIc8eOfz/AJSuJ/xkJjnjnj+k89vH5j4DYTIivTkyVJSqUNlchHiZ5Ec8RHJOI5Lg/wBFYiOKMnzIhTwLNmYmxRyEUl+EZtRtuyKkb90FyqtXkhIS5l3xWQpfo5f2a5shcrGqfYIPxxZfzyJ/Ec/3PLVY/EgxceQnwoBIvBgoFf4ttgHmACXWbIgskGLTWyGkZeeI0BCfBVDXLYJrDCSmRg/AzIPD7mvCuW6ixX5U6r4meSJqOCDwMj+TVC0jPAaHoUMauGRHpK+ApJqhlsDniAl8jABHoXgwZBJjkN9h5HiS9Slo1Gia7G4x5IlcSrTX5ZapTQSnmtofDVhBNDxMMDvb5PNrV09na6dyLli7VlDPcPaDHzyImJ9x69vlmWfab7a+qEhMRNUBnn/T1qzKrN1fUM6Cn5fsE0ZJdaf8Yji2pGo+OfKqQKDAJPiggB5DJgIHgP8AA/hv7vyNZxrZEiKwsqgoroMTiRVQ94jzkKJEElqq0SMeYR4jhJGRnjagyXNTM8eZCxU/MzDKws8SFkvEx6vTZv1k36Qdls423UtuttmVLYNVT5ZJ2CGH1zlWv1uIVFmqdSqvHNygoH8EO4+kBI9wqIJsysJQamFB9X0gz9QJd3+VHeVYR4af5gkRQ0ZpvsMJ9h2dbTSs6bvtKWfQ+y1aN0sXAXvuW7S1aY1LcucfYKQRM5kGetg22yKJx8exaHqB7V3RAdbsnaU9NxP2UdK6y++xrYVx/wBPO1eVUxVfVX0qD2yisbY71athg5lhPc9s15IAe8+X2yLjZ4mOUQ8ly3ZinmSziomZmZTHlkcQHhEcCFVKzbLeihGN123tXLG+gx/Dry4OPM6RyuRGCJsxwJkIEo9G2JnmJ09ujDTferfpFkq5FJnEkYh58kVOg6xY9qtbGCrIzNbGv2fHxae7lUvIvyX19++1FTK6SusENt9erX+2Pc9t6hS63mP1bnVmpmrN/T0/qRF7XjC6V13q9XDk40WUnPGJ523fnrvgLupfz302XsGkedfkkW72Z+j6LapipNiIQ51F+M6HB0rslbZzIIbcQ0BYB1kX6pUb3ZsJ2RZYg3HIzPJmT5ATwF/8rNXjwVo0xAwBn8iAURh/xVUg3zFuJ8THBaRnMl5keA2eDZmORaCf8vmAh/Elz35ExPIgeSETz4+QrizKBQXIdHxSHLV6HXZbEO8D55Nk55B+YmZk/wDirmWrUxIo68H4J6Ki0B/bVEyUCORhMf6y8MhlfOedXRrlMwD4adWZXPp+InnWNdF6iWNpdiwG4V4ktuV5UXBP+I5WP8kuf4IuWIl8yZz5U/5YbKvMekSBrZD4nzHEPZVet1Z9t9qy2w2pXO230ClWCZKGnKEVZCfyXEVmmmWBE+B5XfPtEcbkIbVj2tUjWyQI6y4UyS/P8cJEyPnng4iZ5Ewa/MkrgK8+eZ7RrRMk8612nEJJTypLKos4W6QJrYkfInJl+eK/BREiok0FM4FkTiFvs1VWBELCDKAI3b7Ss9n+Ie14Cr+T/ZqeX1zqveoqzpiQKIKImQkC/AbNliK6HrtTMQYYWyo0xWsFHxmYcsz4dPCODdAA8GKaQNhUzElysMwDDEJSANgkADXCLiaUxEcVMxMTxNf5ZguU6hREcqUhaMcrZgxEQS6KxGOQgI58Y8+IOShX+9kxOZALaoiZnjj8sj2J5K+SFqtsoOjmvmQZRQjo+2WtiBWex8AJVxry2pE+KrYLxM9mwAVMMr5dwKiSq2LsEp5r5ESAfIN3Rl8x7Ma0/wDCLSvK6Go7XA1HlWSuRarfZ24zbl+lGtegEVrygq1s9CvINbpRZqfteD/fy0zCBg1Y1mX1LyOTQb+muBWBjVOiZLbM+X9x7DN27ZzIFX3CdPOXrZk0Q+iG+6LV7JuWaEjM+O+0LWj2zFyU9qYeppDWSH0pmz5O32jMXkbVimlMczQ9iiOblv5bUVQGPAxyr+WxyqsmwAAGdTv1nIc/sbzziz6wR+Y8RBH+CiucF4JdUj5g9UPSiXszesVacfjQ2U0iOtStAd533Nkciz4E3KDKQTJs522ClxNX9S0mFMK68Fk7hvso6dSl8wzq+BTD6jSgPqjqzhfTy5FVHccrpPT6yDs9s0+4NJ+md272Oo2D6x2al0nEtvpfTntoWQKL57qff1HtnZcV1o62k86+dYCxWqXBq32I5Y7LdoPVZrL7JWsnBXqG5kW/KLF5uhg9k+9T1PsVbsqJOIxJk5lv1D20PcNascwRTyPERyT57TPF8mORAc8x4mOGqOSrkBEcHhR4j8Cs5CeNA1F4nyXIMo/iHs5FmZ5FnkWY5FiORZGONvnM/iDNviJ8wK45B8p0W37UJTWwHOiPlzOuBJRFdOS05IVtRAuhdep159gomxSxkUvHirIBK1ylhVxiA3el2brysVNLrb8jNKbstEHEHIMlFBgreDsOR9nft1pXJARIms4TLT0/u/glanpiS9iMQjyZ3Z/C+NXIlM8iZMf6+vnkRMT+EIMxn1lHmfMBXkIj2K0llWRrwv4o9Oe/EX5WkxK5roVKBO5WOtZ8OXKICAapvkJCW1plfkWoYmYggOYnjzifEhTvvz2zKgg2RPiHmlkSD/QYD0iZmPzbMIkfiyVGyyLR0L67liCFTp9okU2Uy2Acr0mJ+OrnDG17sugSVnIdszpzNUL6b6FWA8qIZDyJVLMHHxN/8Dokl2Tl5GCLMgUGGHfXpKhDNFsp9Q5ESLoaF27XtlJEw/laRcEPIcA5FcgIzJT+QD/IIRVgo/FGl58TylnyfjxVzBCIkwAQ8eP6m8Qnxy5dmQmOad79kxFrVmDKOGcmMHwC9uHWho/uvZp6OMyuHXt6MffRctKIHuhqvlCDhfJmKJz8VgzvpHlzO81Tcq4+RMvYrJkgpl+rSqShxK7DZy9EkHowwFWKFlNOxt5UXlVAq5+pTvUIoHX9/uaTUoTNPgSdJwyTIgyhyYmNCp6AxJKYUchB1sC9d5gdjrt6yl9rs/Zv1nRGirGVCgEeVn/BMFG11oJP9Qo0HIydWxZZP1YfnAYWUaGjuX43tLa3W0tb5w2O6aN/zDXPlp+SRHM4IQk3lBy1xGfjwMcqR5dHLNksXAbfXgZjkfT1juVutsf/AIVul2T5U6QUH5O105P2B/EmrMPgTwcytnZkuq37B2AJFtKMtH5UbTrZ7rbgzHbDvvb1+gmlTAOX61dWi0UZTtvcAr9brRDd6xVuz6Ll3iafY5od/wCzHGj3N/fd8Wuu+mz2s12tG8QYt9/G73z01Uq1+2TTXE5nYm5zoYNvv2rbAwA7JGySM3nM8EpkJmZL5W1VSNRCY/tMvvqNg143Z7lafjPBDKuGOjQ7H2exbyCCpcgmsk2sHwZciOevAT/uYDkx4/p4545689ORHI58k+sjxFZlt4pT6co0Dv3V11TBIa0VQHPHPHPzHPE8jkf6jic6xZnyNTr6w8S6vUBcQKqCKYf/AJcW4gPipDmHZmTuVKwKn1BIzw7K61Q3T1Zs27jbb6dKDqhM26hyuSnsuu3R2X+9tPzR7ABzEeCAjF3uGDnZu7kvB+jUJDTQ5ypWUwQtlThiTiZIvIgqasTz3l3mDMJCY8fFLfyNCoi1LlOn/wCkqk2QIyqJMaaiOsNcACTrGpQctAoDmE+ZiZnn58TEXs4KSVmzUzH2Arsq6uo1ozWqm0bLFww60VGxExW+ZEmqwg5mFtfWhSYKVpNv8VagAMk6zYiHTKa7JMDDlYyo21uB9mbzoPlHr9W7ky91R0tbBcS2JKZOsiSkfXRrKrsiFfvQcGmghUQyWz+J+F3Z8qLua1c15lS5UVtEHHuJ/ifMUzC8mFv+mt/Ixd6ye52zVx7utJ4VS+dR0GNa6nsVEQJgGpxLYK/PJrKSEcFUzEchXMzOglOtsqYlow/cjNUqZiczO9xieIqwoeRH9I57RETPG2/5gZcYKn309iI8xN3T+XzyzPvMzAGQTzHpN0bYii/jQrEUnigKJliuxYyqW7Xux1TdtdauFl3372fEkHL+lFREe6e6Z9Bxkdj6jIVfadW72F1y8w+Xtu3aCoGjHhVx2YYZNm3iNh0QhD8y5S/SLNu++xcsICMyVVc2zatuYt9kJQwYFT5akYmvZNDPzkoiSiwrfPOwcotXTwtO1udW29O7gYw6bJba7b9NVZmAW/ldHuq7PRNB2AOscgfVzlmURTs9Fp7qjit9Nfp2F1z7+7s1IgS53Sn6PKeOGYmeTHM4IYYxzViEYLIFM88f245lJ97Ec7o6Zu0aEKtJf0FaKVJrKheRo7aADzZtaT7/AJmlW1TrP8mdo5s+1QqFq6UTbpYETMep5VLIrfc6d58b99bQVX9yHm6EV9PCg9FsRQ3LnMIKu1VDOyr0VevZWbQWGnTjyQ9jvna7HsIUk1U3ghE7JJZb+PVfM0FqFFcIaQLPFmzCTGxjGU/vtZp15jjAkDkZAJMvEEP4gBpx73wngWIMY5c/35KfRsyHXt1mfaA42mGrSi3W1FRboxe44JlpQMcRW/8AcTYj/X9PXnjnjnjnjnrzxz15EyBRIyPIiRKJHx5mZn05Ic9OSHDHiw8sHlKkkfEilcR456eD9RrZVhsRJV8xKvHsMQE+BCZkfHEBxCI8RJ7Yyba9NdfCDFq14r5bxcj9mpZNQSIZSAV26atrsWGeJpSnl2t+IYIMiR8cTZbWbBra+LwRyzUk/IlYr+JmJ+WWz5L3nx4iIn/PiJUZgTGnEWCkCj3jzHFoHOf5c2Ze4jFCxIY8pUALljfHgYnhBERPt7+P8X2kVqLdLWwuz7va94dGpKRgAUqQ8R4EFDKyniHGiY4D69r+ZxpOYk3LTUCYC3Zlp8Wtfyh9wTfkvf2QmY8hDFSn/Mzm+bBVUV8Wa5gMmtNWDWPkkh6RneHmoWWT+2hMRPhcxyhMWxKu56p/KHbCCyNmzA+ZBsBNmnEWRgrthirArCoxWtW9eNQ6k2J4l8NmYZVsuzHQxVKzV7PUGJNDKziU0A4tXniVLDx5m2061etUp4VqzMFZoZFetEcAPT8f1N4Bx18Q8wTdOC8+GXZmCObWzDI9Y1GfPEzBuIGTBQfvxVSG+POcdTrWDB36G2/T1b2rNafkDxxlRd+i2m/WyrfXALx2eatugDZszJpiJBvx8rXwA4k8+mu3e+yPKo0HaFe0VPFXOKClrohUvToCg1UF2q9ZGialwrg6XwWSOdK/87/IzbfowuHok6zvz8Yukfhp3X0rEL59T9yLm79iihZerpdfPDq+d4UPKNZDqDKlvuORqdI7OjVqUWUO84sXKeNQZmZvwNBrJ2kqH6ZNcCtOq7Zj+0XO4B5MuWleDLkj45UmQOCC5YC7jtVyvHlnPH8RGNV9Jgp28Os3fm0+nJKqrUDzBb5hkQ2Zj4opHYkfnp50wH76uKb3jK7WnjYjZTZPsu3d/ZQVnAb/ALh4K/PKlbyUc1EsjuWd8GVS8+ZKhnIrnMV/rF3wE9pDLpq7i+Snl62ZbTbUULTZD2eifCGzy8UFXV601elpZF1bIp6mWypa0aXYscIEuy3RMy9yn3LzKJAVeYOfiCZmHQv+F61gI8Cerckf3rvAz8GpvqUSNC7F3LhBVVS2bNE0XX5l6X1q9b+CJkxA8Of6ev8AQz/4955Li5Fj/mHhyCif6QHIVM8lU8kOenPXnrz14Q8j8THMhDLJ+AqYv4iWoqpRECmIgI4Z+SmeQUyXEB7x4FISA8QJFYHxRwK9bSVf0LHpZzB9etwdITh2hbW2IgOyg3O7k1k7VJG1lr+TQoNoWiQ+3X9Ge6wmDieKbKD9uNkbIjPLVb5R/DFQB+xDEFyZ/ERysgDrulvr7B+6JkJ5Ief4tY6TcpyyWQkQ8E4CPUAb4j8RAnHGR6KKTuWKuVmHqbKc6/8AUS8GrvLD4VyoZVw1+PPlDBj1ErFCTAfWKwKGJl2oyFCEMlT2xJWFQDYlkREHEsVZI7EFxviJH4c22hqoo3tbIs0j8MVAJUuXGcwMByo/71UG5ixusjlhDhhYNXVMGSJsRAR7BbedxEkPZK36tmjbUUCoSMob92RwdkYSQynO2rWNLprVdOvoJgTqZ2fH3f3QH9pXGG1CJDIsUc3Xq9hRCLtrOmg0AKpnOszEBU64oJgrVaEqUKkQ0Fx5KL4Sfqo74Kn+7XvqsRMg+36HHm1fEI/tvu/7IrP4kzuaxvnxDW/LP4+cj/Yy0oW+eRJVz8EN3yEitWcdl87vZKjlG+zf5T0V16xKJ16Wn4jrj1sl1Z/ZOsXcybB4lzJdWAoeOcbQ94611z7x7Zt5vRFVcpti26M+sh1ZTd+68omQOCHzwpOQ/ByIQuQdEmufPp+7mIdZVpcHVxqlt0Mbczn5l4ftd3ts0HSupXzH37dXzdhM7AhVxb9anVUVmtfl6vNXenTMWCH6xsdP2vvKfVPqLj9noBN5WYorC7Cuh02hf3LJ7EeElzs6PY2Ry6rwc8MPzPKX4Z446qfxTIIpmM+eU6hScSeRQfbZ6VtNFeyceHA96fQq2f6BAKq5Ml/LU1cpAuvH2dP8Zdu9oaISu6hKKioXWWRzEQK0F5/KlePHKCpNsc/z7drHFKt6AMR33t6ei9YO5x7nXLTLD0Cccsx4tcBv88XPhZxxoTFBZy8zRVpenRNqndCFK7LaKKE87MPm1PCj88goD88JsnP7+s9St9ld6UsT6AB5CztbmZg4SSrTsZ3T77S+zuY93KGXhi6kQ8eO9gYLl76AC0NpQ2YL8F8EGvh1pD+SCInngf8AbBIv8ZQfJQ2I4QHH88UHvPjkx8c+OQ2eQ3kN4qx4OPdr4hpCEt5H5jghJlAjhfSy/d8O2u8U6WA5NXKsV4RaMOdVLw0vCPSFyRD4gfMyM8hEyMeArR5iZSr+OJrfLI8v7OZiRC7uNddvX/MV68IqzBafZ6yLcqQrRmSgo+o0EejUtc6w2LvVqhTuZga9WRKwg0ONLXq+3L2CJ9/E8rHCmj8l3MizS+6q2q0GMyLYZM8hv+p9/P8AAnJxHGBExPJkw/HCuxlKBTIsx5kj9IeJMSSTCf3LOQ/BXVxZr/Gm3gWt/sIW+zyiJjzwEQZDDXj4OYFBxESJVswjj5GhZAIgGWlfJEyJwUeR5ASo/cNKYVYWXLdl+g35Jz7NeLUsvupEEsgkZVl9WXoQdfXoxXdRpNgRsc06UBsi/RNVU2tPKp46H5SoLMkCGa/G0IOJmbs1s9sfe3aGdfNdurbBlZps5erwlxRD1yB+YvULVarUfeXNWtQtKtwMrLyKb7oGPJbwNhQkqasio6yKH3Ji2KnYsxMxWtNtsFUHT+/j0KTRp2TsCtDKwSEHdvbJqmU15v8Akp+RO2yuUSEdgCyn2N2nBMmQ+7hs/wBx9mRmQkVS90AsgNbvBNxA18xdmu+syswgeSJbPg2hKPHx1r8gBARuG0mPPgInyRP+WxECuk3JvIa6zlBdqzDdfGs5kz6RZcEeIl7TH97LRSkkw0PPIGB/yhsh/CHk0pCQmFAQGE+CiYlBkRTEOlUft65btWUNI+z9zBtY6mcCpe2fi6t1yxSl+lZTZWCprUfprhLA5svlcEMRzYrQNciLRSqwJrbf6zXrPkqVyz2TredF2r9MLgU8Ct6a3iVTzskRDS5ph4aXG8rM8NjlNkGuPMUgI4gOtVqFmXSae469+4kgJBzPrFPLMyHzc+yyAH9Rtdj0bcyGcmgqHy9wh54iqTzgV1MKA8HcBMDMlyI88APxHMiv7MjnXkxddev83Nmj1LBfq6XcO3X+6bx376uBA8u/+cJ4n97PHHB6WWhyDAsQ1y218tZEcNpKyalisrse2eWyHW7ljTVNjlXJc8flc+EQcIpdD+iDnwq92nLyqGFRGpl23imuRlouVCTdY7ZAXddprrWXULUPr7FNEAGnlp7LaSgUuybdPsVB1ImaNKv+2qV23YDhtYaRUf2TvsZtciOCuIHxMq8f4+fH8wfIiC/ylaY/MMXBfyaDD+IiYn8wQ8AJP+CmBCYHzzq+Fc7LsxnUMHrGR1VIJyN3bysHzO72TvP6rJhmTMlMyXVWeHxHFR5jldcnMRxNaJmJiU/u4itJl4Br61If7u12fTMDRUtqJsyznU+yHWOFlQYnYyBYzY8Vtlq1ZwOfUWcd9rfP1ZRz0S1DcS1W4R+Cnxf6i3stKSqWaDKrTrWJpmp8wEW1RlEiMzSOoyALUrLk5fWvIOUlAFHr55CwIfwEekcmPExw1D58S4As10qfaxvsa5sz6tmIfHvEurKKJrWwN8qtvrmgfcYP/wCSj5JeDjzYUy0yC4mrFZcmx+sYT4VByUcptCElBsD2KShheR40P3z5dfVWD0zppCFGLcwfkOLaQBI8pomES+Gu+wmDpK7K2VzX0M6RA3OVZZMJIkoWx74BOPuMS2at/SgZrl8r8mm3y2pbl6Pwy7UQ6Jnj8oYZBp7NffuyiXW7Vr7atUsuq+R+RIQfniirxH90LZJ//Go2za8YbS0wOIB+Jo2qheKqKmfYNbz1Nu3Tb8AQ1lvMhyrST+1ky8zPmChEgHtLbMjP9uve+SYg6FRr5g+aNiG2JgUH6NEo1cyxecLkdTODzTXzUxK2mmYbYxLlRsAK8519sV0WaQ07JSGlcWVBb+exGPKyJ/zkHsspJcYmhFzJUZWoU9ZAemqK1xq+SfPHnkCw63px9aPSOMCQLiD9GxPGSp6okImQLheTHwMRIs8H2W6FTJr4dTJwrVtvxll5dTAvDAXUA9J0VHWioUmPW9BsIGXDurUMfJY1nT5KNNU2TJq7oavzGE1Tx39edmbfR9P/AKa324F6puzo0GKs9gZ5cfNI/Lp48/xPAZ4nlAGhQi27f01SY5WV0BR0vvwR1vItW1fPeDsuSg5ipY7Lo3PILp5r7bvVFPqaFI+a+WdNvQf+nLy6lL83/wBV+1//ABoPxA+QoXST7RKv4nlatLSiI/ZmZT7BXO95X066VmKf2zuWr3LSm1rRHAjge8x+GQRnCySfpMFy0XlsN4E+J8cgIA5AgKQCfaEIL6S37ys3AK3jA5fYrqTKaud9J0Ipdv8Avn5XZG37hPMLsStcy6wLlSDNTw9BV4282YezlpEg0h4iyVJxeXxNeIdWxpkdVFqu1AhacELV4GOTET5gmvCRkAA4ieQ0Z4duAj1WJkc+Sjgx5jzyBH0/J1oKJ9Zgw/ygxOPBBQCyyAT8DIbC1QshmYIK/wCJM8Xbt4GwF/M0fqD2W+lizL/fJjnjnWpkLwxFVfkZ5WVABMygJ8/izYqVQ9ytbL7P7BzHwdpQN7T0sNnMCzSuUYrWfL7M/A75E4PbLZ1vhV1fqY7cTbbSx69KtCQ7jRSfXbip+nzyHUYqRxrDmz6YiJrUIWX1G60uyiNZFuBeJQXk1eEmh515Mgptk2Qo9LO+2mGLv1JgpMIn0LhVHLrLsmRRADx4myYmAuzasgfPvk15gCfUXefEl8U5Smg9LW1olh1L9jHJybC6TwyVfdQRh/FJAuOZImiqJBdm62YlIyE/xPwHASfIn4pH39vXzEQYhaGSmkVt5erZgI+MIjyXFRIqE+D+BmOKb6VYhbKrGxMv+L4imOBJQPrxMG+rIjUYVKz8ovZNm6RzhNeyj8NrYxZNkurNYao+C82kg5ma93HKI9wuUnwEnwzWYym49R1G+VOgLMzBmo0FxdmR8eybEentFO6n8Q6jcsKCJqUteJKIfTtw1MAxCgroL7K9KF57fJWTWziNCGh8LbNCQD5lSMDPMvRageWz97BGKVf+4mbLwpfAHT7vxX5TLRkw8RoXZQEqCaWjjDZuPBJWmyAVMJkXfWhqUaVCfm3oujJiJJuwkphHUvmqU77LXaGxQx3sC11e1fxauorG6i/TeaW7HWv0ZC3wg67qJKUyGLkhI0e6faTQQl+2LJqVHAujP+Spg2R467jnbuHbi3kooPlt/NhttngdbRo0ExJdHAtE36VnsLxZfhUYb5cnznR94hHvccfWrP5s2qvUv9Wo6Wn/ADtH1iEl9tep1LE+EVdp8oo7LtZvzBJxpl4YXmn1LT0ohk30Z/VpSihov0NO3Nq/1LGVo6bX3ld5x7e1Qx+qtqHpnD9bEy/1C5Cp2MKxianwPm2867gzYSlpD48AqIO3aufMiK1WtRhThnnaO+N6rtfoODR6v3jsW5U0uy/23yLppU4AfPPql9YadalbwsB9htpxOsRwRKfMiPIPjIlViJJo+he0JV8oEEgELP0aytLFRz0KfHvktL/+lm+jncdQ836d9bwKaaQqEULw3hQy9L48O+ddwwVW/B00nyq2TrzBXokCnnYUKnzPNdHpenl0PUuLeaJmQRTIaKb1OkK+xzAruG7PsGiwx52UNKIKYjkmURyZIv5GCjkNKORYmJ8Eg5ZP4CJmYiG+VNmOQYHxiPI/ms12faXYq2Hus2jYdVVSFQR/FclDxpiglSwJBwHERwuTxGe99JtsOvB41UzypX8L+Q9TstaikQqB2m6+54uA0njE8pUps2BWObUStwSdK6oM8TP6gtqO2zdTtq8FM8QZ0bQtDo3dgoh4OhoBo1hcnRzovpISwjblduDPaIwMeI9fz5jfmIyGxOrQlVkpCpaTVTbGYmVnMM/1PMq3D2fBZ2cJuU7wd+l8UyYNss+CEzDIkBjlt37AjjNRTzhT2RIyD5m6ec+YF1izdkYq6TrVSFORgQmEfdhm5x/rkOX6V5OQmzApYULh7PMSanSt0uOTj5InibK5XMBaa5jpaZQUfkQ8kz8/xH7oamFOGSrGtINlckMcR/cmOS4qjl/EdlkvkjMPu1EYrH2/nMgAL+/a9DdPwg08q6trf1psSbkL7PZUflhdprv/ABeFFHQ0myF7KPOGD5ZyBfLTPTyDVM+ZAleRl9JTx8qcpiv2sNXiZ9cjSnKuy8U2ZDxB1rpqmDTS7L/AWsvUQYwSaF6SZEjp0v8A+8m5UiHFEyr4SE4oNm6DWxYwQspllOKxJnkQR/4wzwPGkQMITzWnTcl/IcsxCYeEVrUvYZses1unrLnagKq09qgdYM3N7JR86NhsGRwfgkNBZeSodxaGyT7Wviv3ZJYZ2xpYigTo7uvSdlxp1dTTsaL1zYC6hUgQMv8AuqYmIk+KbNZ0TFWs3XuzFOzmHTs+jkVFEMzPXtx1fHKijsh0QVFu1p9rt24+0oNvmryDukbkY3QH2mxqzo7g/Iikr4otdjoUaqk++Ra39aifi47uyP8Advt6TDwDe12f9bekNl0/JgmBndyIz9ebWcMM650wZCNLRPMM5kzjpz9TTN/O3dWXh5tVXKPXQ2bfxcp9VoUg96xh/EAHW5zeuV6Idw8m/OAX20AclYLTuWhgRTX4ChWP5p/BlUHa9/rHTjp7VzZuUK4L/ATeqYVnSDR+pP1ls9ig8zA5Ecz86xp3Br1cahVRNvKboVYpaL64qmImTKTkjlhoDwPoYTNEvDkUKuij3F+HdzvLqi7lK7EBYqYFsMLUrTv0j0/qONCtv9eHI++9EHIHATk24/AHgXI+AkHVuA1EEu7ENR7xupI60TG0ryUHwL66EWoafIuvmmNfinK1MmLU5dtPaKVmpcbUKpaNFookyIiamVSMFAcOIAeCEzytThvmTrUPdsKCL3xLmK/xEPmZiyccCzyWy3+SP/XK5FFAhhBtD/EAixWk7DMQXFBVngSHEECQHyJlZfjJvAq8qBbBWazYm1S8DMzbrehTzF0vEwhp25AInkaUxETCu3F9i1J2HncbMk/GtKpDYa+t6eQLNtszLkSXRu0UtHHUkoKOd4rModybY5lOmzlIafLKQeggYPXQC8yG9jw5yb0+lpMNDzyhUffbKETXYh3OsXs7tPXHY2rv4j8a+ynav1JQUzyfITzHwbe/5XSS4AVMTS2W1q515qynRFqaytFWcFisz9m6llUwzlTkgib9wsyqUlZB9hLEseamVVGkvMjMx4mImROR8+YREmkvLa3iibmBDLZtgERKmftNUxMRy8gkOmJVMqaBzQRVs13E5+cFJXGx7OKSZHu3wMVjA5hgQuAmCOGMd+LbjgR45ptnyyoBGqShsB/qT/fMcuin0VCflMRgZbdfoWqhvtZFbUSX2uvhMqNmCtVCApKC8MH0PqD+tUMC2nd2ZqvvtOhEyH+SjiJ/aGJoReqVX9w6xT6rTq3sXA7SDDFdrOsBaSSo1Hy21PmjlRfqGYYEpCzKDs1gAx+K2SrxHBesw6Q4f7QmOU0BYurWy5nJzNRaiX21KjCtTTEm/wAMsN8zIrxF/Ay1bfq562ofOV8RnJRyylcqjyCJOGlNafIcyrYP62LZygNOcuB16AI7OtJMmIj9sBKhh0RElP4KZjgBJl+ekNCb/wAZafXqWqqfl1cCxlX2iqtcLIySuOs2rOu8p5baNRRIpigyKJ455ow69RGEZgBzW60+3cOD6rV+nZ6UfL2ap0fr1EPCOydQzICTU3HrVnlMvRit/tHvYKs3S88VatZL1kvouE7sPfPwGZ7z+SxRYqR5VyK9aPEfV6zJ9tq1+dJrndrXnqqK9vHEVFBsV4dqdupm5f2jR1Owvhp6/beq9Y8hb6n3fT7RpmF5Sog58Vqn3doUxfON3YFIVKnjxA9o7jj9GofPq967/pd60obciPPAX55C+YmkeNohYXd28W69L0ajxfrWmKLoLp6BGmNRYNmYMluymxDqValdrz6l161WZL8aNfXpNXDadzru/WBW1hdQnJe1WX1apF/6+WufUPTRtYHz0wmJcXM98xMcxNGQOBmg8BsDPBfMn6c1ERMTMdhpKWHoN2tIkUcZHiZ/pXklA1R59KdR7WVn2LGzUVk7T67adkkWmD+YngH4nwTY8j54o4GfzWFcLApXBRRJs6gJVKo5Zb/AQsODX9/HFjCrQgNSpFjRivZ/YbP7cTMfymQ+UQcD5CfPG26tofS3dyB/DqSikP2tRWlFqvZCscTvWUcmkbSmC2uvvqJFjGVmQZEqjdi2j0NsEE+OIQVl0AKejuSgHnk5lXS6uNK72nALJvknlbPrvsEq/gas5pyD+nbab2YAT9W60zVoWw6bu+OtVoOxuPe6EoSsorQJ9j12dc05st7b3lm0cimjZ+5GJmkZ0767dbUzk7NCdCktjKF0WDDc/ueMFXmpj2KN1tG7ZzprFMtwt5+O8/tE122ZEENofbAqGsCoVJVtCdOtZgGv+/Ctd+Y3XR1aczRCIEVxbs9er2/7leHnSOEWoLyPmP8AOPEGiQ/PKlhyvII0ahRm+WosRWaqo85mfWJmOaBnbYAc+KYKQ5kX6z8I6pULZuyhbDBmBmOFK4SEQZm0/diYJoksac+AmePEEWihoHFazDJS/wC5kpa1ksGPezHhvAn3jwR1vzPAD0KOVgaVkJ4/7fRRIXtzqDawS6tdzZiZkSjx5E2VomPIvqhHrKSqeI8qo3bTL1dRIzr/AM7bFYxbnMAb3XNYYMRHfqsXei0vCtyByHLERnXIMLOxa0GQCihoJhhI04WDIM3QTPz8v+heZtnyfyyBeYzN6yp0TzM0U6IxIWYN9aAj5poz8Z3M2bfs2vZWVZvobFwDZ+Rt87tarVHI1n59R1cc4ADNTHO5VRGku2DSmTmeG8JXMc8eRmAhXEBElI8zqTotBIUNEbKf7nZL9CZED734O2IoApXQEeOagC5VV7L9y7dVeTpO1i9Z8gFra661FOkJR+shAe03+5pqyUTrdvqXfMcZcB7JlVlQHZPywKdvCv59zqv0zBsfe63RadN1FtyiCoiOTHj+n1N8n3S+XPpjUGOpm7hqE7ziVap01eTvXPqJiUDJHXr2T3Ltwf8A809e6Bk0PT7S0hdf1qJCISqOaN9tJSsmhl5iaFEQjvH1yp5cHR6ppadzYvsuaABwFcgOePBRyeFPOsYx61+POQcqSVfncehGFk9LBztpQq+00U9er67ffCT1rfzLg2r9HuxmE0b2T1iop0FHZtlGRSmlS+n18b/1HC6GcBt+l6Taz+3aaPKzfDhnlR/p4KE63uhB8ydeWHEOccOpmKtpYNVMTo1SAZ5YjwyR4XGpdSsDDhmK2nIow9SNUCy9LfxY3wD4FoJ9kEEavQiiZKYH14MlxK5RQGTta9oGwCZsG10k50RBxPFTHmI5BwtclyKLhIXPpVpkGP4eZCK7HNVdg49ChXyf+KaxsDyP2ViRmSp230h+LkLXfCDEqzqDZUNHd+5t1HQ8wE/kHd1ys58oPKuxUvw+OxZH6XZXo59Qg0EjPKahqPE4js8tVAc6ZbbYJgt7H1lG/m/Dzbx3UrbUPciDKJ51TdPI1lg3vGhS1Ohvcnot8f0e0LZ14Bg/Hm6ir9YCH6jPm32V4iqsNp3oKM2QtRKiSyk+VNyNU86yJh2DGXZRF/PxbZ42uq1G/j0e99cC1naVQ4M0WrCDU2RnKgqDZNenbnSkWFWrHAOS69bSAClNKgV8zKHLOWwaGaRsOJPOf8kTMqepk/l2O6uRNopugbYFr5QFeJW22+umYq6JrO2SyO7m2LwV6nyzMQBwHuPLCmmIhwPKzghRUCu+AVIENaI44PaoPKhwr3EWpOXF8vwTytWII8lfD1gvjlH/AChXxTHimmDdIFoI+Kx6EEJsDXVY7DIHRqv5IeZ88CDpQv5ZP3GfVOm2o7ml16ltxPxbnXLOc6Qs/aHHnjYmP8SiJnzMoW4JhhquU0ElQ7lv4JTZS/w33Rgd3bTCauiCKcLG5VbbZZ9/ZLTpWIat2lF8D83qTKSUMLMSFt0A2xnHWYUE6PXzz1GWR8jYhD5AMq2utJPLJ7Ci6iFGymq2Mm3SU5QTAvqBfn4QtZDqz/ViK/xSQmB/xMde7MdAhRZ7PdS3r0fFcQSZgCpU5u3FoDYRGdq/BWoBWlkzZ0c2K5fKrIvAooAzdBiUDcpGpvsPZbZLvNbNy3D8mZXmh5dx0+ivSMzrgno3tA3NJrRCMtSwXDLVS041etLZ61avqJujc6UPzQUXs6KByKqvV9e60YZQ61RygnxrVLz6bmcyct6LWVkojhzAzMyVmIj8fVm7AbWjz6bK+H6cZtnlMJY3ye+OLoUGUNSmhFSITlUcqIP3K5ajHqB8aFEAjEvheRlu0r1vtWR0JD7fYu5/U3a7mcpeITPAVwQ5AciOTMCQFLg+MyHlao2/cCujAxgyqaqyNXTVh0YhdGjt6SItPu1aZHIbdrqK1Kk8HEDsMEQNpmcz8qtK4PXM1kH2LdOzLBD6YHIdwPnVFBc+lTSjYj4tZvEM9gmOIuwoPYiviaQlNDZmIjlPdkP8bl+W1vt50jn1ICtD4ZJwu+K811UtDRfqWvnspzj1MebS1akFRFd7Kt/9TZ0QWpjR2mZYhqvQygIg45BlHM0UX68Is6ltdu8c15DhGRwMcGOZgKsR4OFMv3oAKiAmzCB7HZ8tGmutWmWjHJyjgIlWitDLpBx9ayHmVolUVGA7NhFtMBaTe/8Aa6gpUWls4FuTzF/Ez2mZiSqR5kgyLAStmffuUX9Z1iWYNFy4MFN+I4mcbsNineqwhVgGqgg7t1xe8iGI2grIiUV9CTe+bA1tMLOWKY6E/wD9e+tItkYQM1NSMiZa7bqTbtnaQNiK7ocF3RVBQ5ON19PY+qrPjFHWeanY2v8AYOIG9jxvimLNXrXZrXWr0NT2jBp9xx/1vLdVFk/uq5bT88nPRWDmq8WGtFW3IP8AJ18jTClMqbq6NazaiFlVo3q0sVXeylMw6p6WSgkfL6s9OWqFa6jwd2o3OEIhFpEeGQDXlJPg7EGqB4MQRcWPkY5dkmqji6pHHEV/E/g4mfVfBqfcoGORXlFiPiGpJ22tP7Tg1iNg+bNL8cilEBDZVVmHRBWqkJ8SN9cR5OAv/A6TKxq2Lq4U2P2BE8hvt/kNn4vzxjvlOZ4iGwcTFa6rTVNTT7p1H9IGbVZ9A1eJJ1bzM88NR/inVSH7LNTrkbqpZlWch9aZkge9X85PY35xz8dLsWZd8Aw6pWYk6TRNH+QvZZiFcxFZuVWhrt/VC4cHx4f/ANwH1AAS8GHCR6VVt4p5hMeOvdpGCFV6w+LYSati3n5RRKrm5Tu40zZ0Mo66EM548KLj75vQsAVdshIwX3cXfT5QqHVZMiyfDp9f8/BzN18oiuR1LMVAI6lwgGFc0Xuh0xzsHk6CfJHK0uTzI/NgeMn5bHjlZ85H04hR5Uy1kzNAzv2RhUW05KhQmp73lMtX9ZzNN3wUc/rlaocFK8iSjxKslQT6rs0EVqMiS0LUxhhyzpBFtiy2N8agQCvqJqzb2bMc+nV5tX6dUKtlrrDxkIr0CbPomjlAoYgGnVyqDrt7JRb17Z6l3f7Pg9KrfLtdz+tmt2LzVyC92mRmCuArkByI4hB2DgF2cq3TmIe2PISMm2WR5LrVRtDxaBRBhY7LWjgf/wAfvlsXrGuRzPh+g6Tj0zM4LT/lKrjfcpghUpGNSJxb+g7d1mpG+kKl9qRzrT6V5dqriNhHUWEnsaya9bOQ2QLkN9p9hCx4jibshMcRp/iOFoSxfHW5OJE7sQSpgdeaM3Y/TYR/Z9uZQk2lZgbJstFJPr2rtC6l9Wpoo7jW+5QQM31WxQ6kcNKSlRBHPQ2HA8lMRMxMLOP4GfX/ADD0OP25WPZtrNiozldaySv2KW3L7kKHaUCtnwWXQF11c8utVnUGPLwd20TnJQEKghu50Oqr+BgSkpgxtnFWUQrTOs+CTjbCChiZqw57Z51LpqPiJt/v3WkUgVbpACt/NnOs1Hty7hU7RDBxE8z7IKGOdW0Yt0gghCAf+fqLjCGid2pdpMAYbJBNV0GrqV34Nus0rGZYu121qt/qz35sAfZce9kPmTRambXvNqgIvgo+nmm77+a0bnT0b1CX1HS2vYJTMTUCFFSv7+EedZmR652F+JbiJ3+mx2EE6mEdmEhPxsEb7CFhhDXvUDQZAEEMV/PldaWizytTDIRDLYSrkV7esCarpKkm25TIkKXYalWZi1tatXRV4r/CBlMDXs3EIaCK9lZ+PP8AJx4UqIUPIRBz4n4hCSiEI+U4EhV+7zAx7jMTVj4GwYmuGs+UTr/KMRIBET44a4mOEnjERE+eWj8xPi2IkJQcyI+faT4J/mOSBjE+IkoOJ4b4bYlz335OS59yyJmRobIQmK2n2TIVt6tGvmbfT7OccyD63rMwfVvpu/cfDLfcNfLwqiMnrW3oW6Tlef1Wu/8A86ormUGjepKC8qwiWxFgjrUOyW1OCLlHsgz+bd/XoW2DCftK9+ogKtHrkRXgrtvrktOYrOoSqz8TyRwg4tsLnzKdyyCviBGO/aTHip1WrQ8GLawNWQO1MQ1m1qYGVD5gJ9h5WAzsD4VWS9EiVvPmu2SEvMlwQ8jPtnaXweEWNHOhc/LWZHgSNunoxbQ3xdj0u8pxAGBRUXJnM87kcVM2smKRH9msByHlUqiKnvhQikIaV1g1oRTBIcQoCj8qT7F4AfRA8vXIO/RR/SZ52baGrv3Vc0uwBMyc79mbe5ZbzPaD8CrdYffNi9sqvVEZ8LiIhNf8+ObmlRfc+81+3/XUzg6fUvhv7T33LEp9SKBBHBVyFcgI5I86hvD1vdVeOt3PqnaK0qvd/DDRtSGBiZk3rUmXWsmFxF93b9Vu/rBk0Ib+hZ6qakb9NoTDqNMX1Yts8OF3sPXjZCyY3vfa5ACALPaWjTJFdceZ4kfERzLM5+nEMi0uGoH2to+JpDyC57/8wcx/C7MjP5qulpxy0a2APhpx+fA1pafnlpslZlwdZuKR2FX3VmodZzEORo2arFmsq1ylEaCaOz+siLYzm5fanx9/c6LVKSJd7o1lXrNW3gWa0z9wVGY/xlBB/kqmBz7FT7XYyKA1aN3bs7boLRIIDxI2bR6NqG2qbW1HLensagdkok25TEJg15uZKqC/l3dlWc0aWc7KZo0gszGS97irqf13WVEzKFCquBhhX5mEss9W3QMIAu431WMg1RYf6WhlOpSDsubNtORbI5+3djYcWxhs0s/9K9hBjWsLh50WAmHdyyH0iEOW6khMjNOZqOgudG31W9QSP8SPNzrQa+a9LMrrlSv2Iqun2zKdnXDQFC3Yqu9VfTih2N9z7qe9dO+/QWlTjyBcyrqtGpGde1cU860QOw+7OwANAzVGB/adL+D56QkZA7FdAKIht1YABCbCvt3EMJ0no8CtpuTal0tvm2uIt/eUFIABVjGzByQO+WJBwB+6nLrMeEsk7bp+cJbnNH3W9TYUSPto+aImFeT4lMeJIVI8B5n4IngI8cFXIRM8hEf7hQRxpAAfm2cxM+XWo/jliBaE8fHr5n+gH+8fWrAzXjzYqRAzIWaz1T+/8xM8rVYsoayf/b4jJ13ZRz4bZr286bKk9ZzgktfT1+73N4DzurAaKAHWzm5gzHkDSzMS2spmT5kjkot/jyuHSlpkbyKR9IsuEPAtsjERKTvsQ6QjJ7a+lKwCp2+qo/cdS7U36wtpmqwj2lhhBoiR9COfHEAqTSA0HtoKsENbssXmwE29unTpz7jnRdSFt+l1tbv3oNB12T5xbsUj+c7+it7vetVeq0v0doZkpmWA1ptAAgKFgw8keyrJrSLeya9kwWTPcwqTB3QklJZwQ+KEjzJrfPbrI53cIaFUYz2RDhDlbRiLLDihMvtfIWRW+AZYaVAf5H4gXP7yf+PAsbzTtQjWySKLIyPLN4VxPPqbqjHe7hVrGibYjzYL3dM86C07/wBKKb1fSzqVvVuIN+vs5nXac2tft318gwdT6qbLGsaxvhnZdAPNi5fsXxWsxr8ivMczca5puhdTVxjyHrU2Q4Q8OOQR/wADTy3aNqFjh4yjaNZfb92cyhFat1bJijSm63dCSqEzmViLrANzW/UXWmRLcetX0lMbHdOz1cql8FHX3Tv+R5ESc+ZSH8cCP450Yo1Op3sZr0TXtNrt1qTAaQEUf0ieC2f9qs+k+ORY8RMcNslPMTB0tUy+xv8AV9bOL3e5ME0vL7UaMruyxfpM+IKfhlTJFlGwJrp6g66RMOs9iDS/9LeIY5KoMZ5c69Qt+ZK5081+Sq3MpqT9bBUmB+RJYn+0xUxU+V1mpb+05VKJgws6M6OQiiVG/Zwp+Oy/S9sebSgoOhxMtU7fvkJQGihVmIC3ZC3SZIpSj45go+cxZDC692ElSEFlCe3XmFZnSTv22rs6vXrXUNFbVaNLKAQ05pX65RDsbJv1tasLAPPmLypVCAgIiexZCLGNZk9Gp6MJRuCQkgLH12ZluJ51buRWvRFmw8VKjlzGpt1IvTqdYp7gSBO+lsK1FTWylhl0V1uAwGx5Hv8A1D7VpalAG+nK1hfYqMU7GnnspWiW6LFZb/i4DROSiNB4THgbKykWMkCOz7iT5I2SRyqZgYgYeiDiYiICfIGRHCZcfh0eiNZTacK0kXIUZ1lXIo1nKfV1LVTT0fZaKIuX7Ow6Sm1IgyovE4AwrRE+JhY+kQAp5CuD+0fHPEf0jkzER+bFj+fF1vnzy4/1kPD5kBgSsxBNmeenv49RRCoji7sqn8ZzTu2oCbr2ItFTc5JyMwFak1rpWMOiOUax6FqEo0reT0apDtU6G93219/ugiuCYqc0MT+TSuuBl8ZNqGBzB6A0a+ctKjWuR/c6jUCZgjpVZj9kVFg2Pl1ApgS5oTBTHJUf8wD7Sh8AnVtAMe1Hs7pXCXVLNKyyGUiqWAH2PyMjMSVWoGNDxe23ARYW1TXo+6DDmzerLAURHwz7bGU9uicpChKBIHAGcofBRo56P8I7ar8DN/stgZk1X99j5nzGgAXVNtbWqu2iQTD2DXlUiiTqpElzD9CIHrivPYs8OdnOEIIxon4lpmiVGEPjJ/AxMpbApjiXRPjkHyW8bZ8eedwu/FlRb4rXgl87d2f9IyGvi24322GZQXifY/H+vo33rGwOgWg2+0fX65b8o6vo27+zdm1pBW4Fbgo4NXiKLGshaqvWquTdrl2ia1izkuBTIMzkjkeFHAqG3lfOk2wpdOj9sAV6rXVesYhG7MA+w6jb19Dx0b4UqVXAq4VaXadtCWpY06qg/Hm3urwshqqe0dgLEyyI9ZieKDzPnix8T+UR+Y50u43M3K1oPqDh/Z3Rv1NzKF41bg6lD4Xz4IPH9P58zz24E8HnSfqejq2KFElfW/GMJ+bs92N7bvalSi+Vfs5YVXmsokgaYtidxChewUNpJanQn46Bjs1fnqYG/Z0XRWeuyDR8h7hIxyECUeYagGjInc60hnkq13HNH4ssoMDzKiWLI8GLHVuVwXZH3VXbIDKHNaip1W0CsrQq9lrxXvRUVmLJI7N09fVKQTlCqkh7zitkbAsmxbF+k21CnyBRI/SjttZF86Fzb7GjF1EFzRUjsud8BeGde1nULtxFrqmwNyh0/eo6qJWx3vnyRzr9jjOhRNr3KmjlwIblfzaZHLNSWRPGB/MTgbRVHQpnXuwlbkU2rF9SK/zkOhXXpiI11+GkUyMFHiSrgP5Fy4NMgzuHWJxL0uRXaa2xIhXr9kQBvSgVLiW292spvqV5kkuZAhMa3zuh5wlreOUpa/I2AnPhJig2RRagV5S2B+bVI1NkYmPETwFEyS9VthJSXHPOy3y2o9Fek8HVom2QBGAg0VJ82FS6wESmoCpnwMREf9zHQH4hr/Ez7WGjI+OW7Hlkjyk6sq0B2tm/Tt0f7ZgViZJnhNJoFxhzZawwhUh49odCIggl5W2+5pfAFAtsZ0PoyzlXAbNNji/U05mUMZVRaW6J6T0a00r5Pq2K1TfpzartB9LzDbVVNxRTxTYSMIvHlA0YJP6QfjyE5TYjhZiZ/wDKWRQn+Sxs7/RYdP8A1HXQYJSosQf9fo5xMwB47hV8hHScopMamjfrHEJR250hAWo180/yU6+TCYBbO10DoxWlHcUZ4z9kPfLTfPjQ7H95Ms4XYZjk7jT/AMZ07E8LRf8A+49I5jwTHmyZ8eIKfHLF03tkpoVpsuGOXrkR5SrHR/756p4PtlLnbJ+PNGSd5RmLjlWx5RI8zrfmB5GgMzEcVdEY5Fv/AOJ3fET5dd94nm2iL+Tarl1jZO3i1iPs+x+t60qG+iGsLwdUuTWn88oZ33ZEPBrwBSowpeI/A1vHIVwQ4Ico7KqGUKUo2UxVfFy3dtX5CbRDyV8VU9Bk2x5b+1NOsNNUcpLRh1GXdDQiz2u1LG5eO/RGVo63lQo4VjWpF0RWLsGJXp1ZZzKqTaswTey2o0rSgR2Z4WdVsIEPJ+OBPpxUSXKVb2KPO5Z/RMlVNXTQLa6wOJs3usvodYmq3sOdKrheNupTi3E5hQSmRPGNJjyYQ/EKz9xnxyuagcMuhZmsjEPwcezLVmrSbWRQQyzZUpMlEMn1mIMeMV4meNTMr9H0bljF0Rck2DoVA0qFIy16v3OTS7Pfr/HF2trpbPqYMGZj29vPCUJiQlbwgPyVe5meSkXPqsrf5SryXupej7+E2EtkGjJWKYXRh1KXNb1tpufgzmCJCyTbRUgnXUPaVJthLQbIwopNsV5XcoqIAOpvO28sIs9I0ZclXO5dWDXpTZrVCXZrnlaKW2uta5Jbgdoi3V+2tfaJs12J5S6s1ERCe3UEqs+BPKN8zy7U8+SFoTMyY9e2Z/CGdetK1aBV3IcdXsQDNJ3zVVl/SYieWfwPL9JOjSZWs72MfXr8raN8/wDW3LXV/QGUKmiE1kqg0o+2h0TYiFAyu34ikqipGz5PTpCcqh6oOJmAq3ZVEpMaQnSn3v8AXA+P5QswylakF2abaliVPZIGQSDJU+6w1VhkBH48u37VoW0vMsHgjyY/rM8NvoURxj4YEkCNUmw1ZstjITMnb8QUzcfLC4IG2eGqEB5L5RmC4IScT5TddWEQVastu2CMgUcsgYq5TGXiruOBlpQNC62tMRyNRTKX9vUiqXzGWUi3pPCmnYoJoXyCtVe2o4WpnQo664C0eHAHEi7AmQmeR196v/GWHYOfJf8AT3p+8w64tsnAD1xKhbLQwln5EG5FZReDDGTSmHuLKqxERFPpyG5R2Tb1W0qZhTMC2rz5flsRC2HIU1lHs6tnH/B0qH+sXqxb9z4KP1C6xnYVHMiqQVuAagnhuj/RPLkvOY/EmfPJ/wC/MhMTH02zk393ndOsTjdpsKSViEIhFatXl5crhCURHOqTCuz0Od0n5UKGNiYCAXFSfI8p+akLngXfLeIt+Inyu7Ez+GW4mJ8MskMTPCex8eI3nP6lfv1eVzNo+BFEGI+ZyoZHJygkY826x5lsTAl/dDDuIqyQeeRWmOfDyK0z45KeenPHJHgViZ/jJprTIiCG2mQTKlGEzHH2afWkRa0XTf7RbGxezsKaFbxs1Mhm3Vg6mNULOSB3dzssgHpThr7hH7X64db6sUDVxQDFfqXdyPa0xghHgvPAD3mJKhmNssgVZ3XIQQHeTlJ2d9t99ZSsZMaWhjbNDueK+U7+I5Om2u4OoNcIlzb639kETdsgoDmFKkYiYKKQQAMeFTONIhCOum8ZCpqYd/A//Pa8mAIcynvqtJiYKZn8gfPEHHGB5HxwASRxFjLvXMo2MQpvzRFykSf+q/ZiS07Qftdm79hTPEVtNbYjyEycTI+Ynj64PD1ZdyjTEkFmh/JIIBaMganHT/DEvEIgxvW3adWKiMPTnKOaWnvasJqsNHWSmtpSw9VB1Jkq1jQc1ygsroJ+5kiRZKsyGK6dqipImOLshoLkB751qJidSm9A9jzPhPD0WVLP2z+uaIWakA5lsAIfErqOV8x6zajHMrVdOsdDWfWdbR6T7iQklkNDre8bPWRzqyLdpTTHWLItgEUNirf/APFy9MAiTLZ7D9h4AdUE7+WQOt1XUnStt8puACRFUS2UgtCGtizYzXxGZLK51m6CwniMyAoyCrdYKtCCYR16q5Yl3tXtCbk9hZUXAqjVDTXMLtUojR9G6+B9qcGgUeC/NWmRBBjSzGfj3QAB/jMxHieQf+uTM8go/PlkMmYlT9MPyC2W/EeSPR8eYhASfsQ+RDyMuqS2ZlYUfE/3LbRrzIAwyZM+eScSuI5H/wBokQZEm04KeMkDYMLNQBI+sWICPUSusQZANeZdbWbL942lCkDIqjk2SiI+KsP8mwmlExC4YRiuBxKyLhtGxrUgrICyrE0a+deJlnsjUzVKwlFsJiQdWyvdyno1SN9xrXNu1zyKtV5RFm3CKrLd/MtEmVW7L7TGT8+gSVvKNIosgkrV9BiE2pzsC6Y/Kzo2crw8ae4FGmtFbsho39L5mnjVZnxFnBrKj3JtDIGfBTiIcXiozqmpASQWsi1V/wDyZqxPPsp5nvuY9oLGZqamnv3os3050/iWqNYTAJH9gybOreT7PnvPsmZDWiAb1YgbJFVP0nxNY/uKXrwGzE8g5GZmBszEcTcOZ8K/MzBPO5AR+zv6o0scXBnNj8cBbrmwqkNBT0PGvblXjzzRz1XqpqOtZmhYKtbqWxU3zwagOSLFRQ9ziJs9O+LDC4B1fDZgpQMcmuPGmir4JzLrbZeiaWcIjEkipJqk03O1opea2FhdWt69/wCe7N6rjeUYeD0u9qnFm2E1MDOlVa/pMsskieM+PZ2Epc21nHYtf9Z3EVh79tLoYU1QMv8A0ggaak2HwC+s9BBoRYuxnVc6uUUI36lrWmvk5lGr16illns0aE0LOnodT7Je6ptrt0X9y6/tgDj0c25fe0LMfSaq0x90fQepaT5DY+ik5v8AhZ+n18A8HawxqlMEdcAKYm3cVNRSMos9wRJR938czHAuLL+RLyPkVMgS/d5GQ4weMaak+BH7jPINKoi0mxCrlWQqduCWyymoyk1Iv2c8vE0+ztlgjFV/yrGSjk8v5Iv8mm5S8nMGXkJkD8HWL2Cq/wAxBhYANREAds0KtVU2qeQSLny81NMqNwbKrJQ3w5SpVLAh3xSRuOv1bT+20ZqH067CrsBLBGwiR52DEdg7AWFdvfj2bKLGX17dlSUEOJoRb8NjWq2msF6NNFVALYntDyfuKszv9eKohV5Niv8AHP4U06FoWLwtmGQDl6dn7qtDQz7LFSJBU7bcQQg/d33HQ8Du6jdOuj3wGyARB7eVn69BIvpNL5ZF2jdVUD4IQ6bLQ+StXp0KsVaTzhf9yKWqdbRJpnqnbrNiFqdcbKYsZzs8RFx5Fe6Enm2FOQyFNydEwtD9ze06unVGaycYrHhr1VlIXAgDYgZ4c/FAzPt+2JAnDC4lhaoAUQFRwzYmDI/9c7C9K/WInTOJ8GtRGIHJv9I9QRUNoeSJZI8TD2Q0ZibVc4mZ54CPaDNUhPg/6SfBrHLIFsZwxThgMsmqGBEkDKk+sD+Y9lx8FaTZ80eZgZQw/wAkkIXP4QYNiFlbJcH/AGguekz61DYbo9Ll9hrKGm+JGPXLyD1IlfGVnVGmDqeiVZkEnY0K9gPdzrJNOfKBh9JkckfMzHEDKrHg4rOOjE5uFabVziVO1n1mpqIz78B8EfHU0rdBvtWRtofIr124U2K0uo38Q1TMpiDQz2Bco0B+G/pde+2ZIn+ltR+9CtfWqeYXOub5j72vGXfkgiQyP/ZJhEeKsUmNLy5aRQMRwKss/uPpqdOjXsHqIhgEQ9lR5W6eQPieVbZVzjxAhZn3UCmnPiUUgCPLWXASP4bpwf8ABvYfGzDQkWW6RZOgSuZF7O1sUM3WzwlGuTLTdpcJkEW9ow/z1H0NRMeVXDrs+NuN2X9OOPFK3TvoF9apdQ/r7knfaK3TJTZiYmefFcupKaDqzJeUlmit65+1t7tChMiJq1uweD0svrtbLAWWs/O0d/xWoZ/XsnriYZZs9pi15Wgmi6SNuVWRp1GvqaJ2Z0im3s7sUMEasdfadjYGy3tmwevpQEWD/POv5MU5Cze2PqhTyUfDm3tPb7QC7W31LKTh5IWHndq1Dm7Z7To29vwgUANAHobntfcx60jkZENzrMamJooWbMU6ds0KW8F6DbC/FXSra1z8R2/rFgD9328RonPh9I60/vA1xPGqA48j6TPPkcKvi4FxoeIlF5ZD+8Ih0ftkSY8UpVo6OYlaXxeCrel1FLZJAXaXXYy+6pNGi3MSds4VYxARMTUzd+xnuhFtGrSciDWBycfj15fzl3V+Cv0DUcqcUSovQ/zWKWKVbgoiVhnjdgzOrtNCiymdsG27Uy1tAYyF8eiVevn38TAGdiUyLQ69tps0Kr0YFxb80ZHUpJ1aB1n9p667Gt/Efk67oaHQbyr7/LUVJs1ZINjIbXJrG9lQlnXq7x6ydfY6CKH6+Qyi81HZrSEyBULrcy5EzQ0YsJGAr53ivLozTAKaCnVz336IqHsPWJqUAZXpKcmYggqGIQZ322KZFF5VZF8lHwmlCoKs3WrNbMlYbN2kTRZAQj55i3Nk/Uk7p17wEevtFpTALUJoITC9ZtW/EMoEyo0j5VV8MR8XyQIR80XRiJ9Zuzyosr7JYdZAIDwOmqGUzLjND4vMJG15nyM7tmnAjZ0bPzulg1bS0Nn3Yq9WtSgc2IUUzcZdGB8KIymJKSDkKTEwbGUosz4VboPREQ2Y58BSiWzIQMzyTmFx7KB9tsKr2c59R0rtyMRHiCOI/iWtav4+VgBXgubFuLaENn5I/wAo9yM5hcvJsxEMzjo/HFmLBnELVNg7JCbIgQiPiiy/NUEJ09Gs+WyPzmrxItImkUxEefPEGYSUDjxSHTA9J9mbem20OFsPwrhBaJtDSRFlVn0aiWOsVIttn7Uw+AZXMn+6JYGtYqvFudV7TS0VQvd1OuA2v91VZShYl8aLMSj7a5czjpHBjNcLI8PFXM/jreciewhEXc6fupbRila/HF5zJ/8AIAIRHDsDH+IUrl4ogqTYfiUWF2SpAuaEuTKmEBSPIaaZ8iGuyPwRabDj8zakv4h//MP/AOCfy0tNoJFzsoA/NX5Lyf8AK027ZL14WbMfuajGZYjyP6EpUeTtqSuYEM3Qv5T5dVT3A7I+rgtHdsxWTS6+sJE7lWkbZiBnpdTUTA3t36YvVBSjK6f8FaTp51FiImamJ0STbNvZrIUhUIT2GoU3DFrLqaxzCVxY0rMwPVqlnJvLJ+xk1byThnbK/wAl2xUnOqQnMYAlMv17BlmVou6qllv3WQbFm6PurUAN7XcrOr0gobFrayUXhTUpssqNz7MvdZkLgSLhkesSyq5tVztFFbPiiXYM2KOXXthd7O2+ikVChpoW4gSTXnKpix163ppg1aPSL4BJ8v5BxExF6iBXZXYGaShsg0a0H/h8D1Dz3/mDFYl/hBmn+VWvEcFq2f45Oq7GvDZSnWsUdR10AP0BWnk42hX7g6QK906s2ZmpeoXwuRQdONfzJFzcTep6SBQbBJRzBNNZlEruUl3UyDNGgVdpKcUSBSJlE1zkwQ31iJG+5UCTRyq0atcQPsN9aSgAv3qRprmhsm10yP25yBCXSrs1QlLen2We8Hz3W9cyntWQOzheD0aRV2lBUrZ51qDjo/Zq9vNBB9xA7bhCtapRdwLyi+ljwOnarNt51C6BKf2jOFGi2tFmt7xIFias57xU7I0wOv8AAa7D4XELX2dqEwE1dSLdWJNlSu2zDh9RiOGEQYpFlJRyoVIsOR5hfyVYrrYLzGZZ9rbpgEVAP7T7aBE8rrq7Iibwzqqykx086pY/BW8W0AxI+6KbRlKtNWrP27dBRKnyEWUxUiODZM/HMKYjNgYiShc+LIydNkFeNUQuFteyVisvnIJnnpL0mwKNNlspkeu5KyqQZOyK3xlMfoCIgiSVsQaSW/J45ICc/mVHXGD4RfeVZE7WbADEriSRJQXhLhjhr/ERyg8aF5Txu3o0NZ9i0/xJFACmS4lQh+SOIiZ9DKIj8m3n8zHOt0VpU/Ws27rrTza6nZep0mgpMWzJ1nyHmVy+2upcKSLyyRg1uckj56S2wIDbqFRtSlqKCNGnHw/GyhYgmS30L2DMm1s61dDdPJrZmd70cjfRdTNayjEKo43VH57NvSIaNHoUS2Du9pZh5yvs8mAlsyRZ2jaxm/JSr6OT2YoVf1OpW8796KjgACrWm9fbEyyn8GgqPDamdqG+zETSOKqJmw4kT6iKLFnxLlUQAeVMxjY8hnZCgXEllPA6LkBrUYs1pIdKlMHPDpQdP5BZExP5aM8g+QyY4L+Q/nz8lvJmJ5IzMc+1ko8lJIWX9pluwwICf06bEe7qmELS8Ly+mi2Yma/RKblRD9b6X3kz82ThbQVXzV3qNaoqqLlW95Sjhdd7btuYBqerNuehXc6hXz1QtETETERqWZpUZfHY9S7dtSFqqn5WRzSqJzLqToh3ZstD58PdHaGOdsiQv6Th7HoSA/BzoFPIrVS1djX0ab5U5XY+wg8fWvWaXyzMdc6VU30kpyKyMhSqSdXyjNaSaDnyU1ebSLJyDITE/BXujQtqrAXLN1G/fQCb+cWB2GdOTuVwH5k4t/ROZsOw9HJwKqc4ew6+qjseHViouNdB1jV1ydLsepk73delN6y4Ss6eM7Msymz6OWPkSI5/ngOMP4kwP/Li7Bhz7qHePbO0X5Fr5q1OgGjZVZ69FnX2KDE8wM59KXaN7b2dRCpiLD6Rwh9QeyXK1+c28KZEYki8TP4vUguokDvUzU0lN/5EgOUN9OVjWDoI3MZQux9reQbyWZNziGZ8wALCfXzH59qFww+Mk9U35T4ngark2JYjHvxfqyvneOrw1E30XUSuZjmHsNzbUDOV2gArw1tZFjVt2Jo/TySR2JtQozEqKDLuuEjVow2rdrEXnj0f+7nXdmQOK7sS3D4kDbZiLExFAxOqueXL01GxIPtWLL5lVU6sSBnfU2xpTCatmzbayvLK7gskDq1ip+EW6GROjPuFHIq0Bj4vYRHmlojSqSwVybUrImPgZlfNIasqg+BLqEhbS+AO00lthqj9HKmZiedYPzUaPFf5Tw/HrPLiP/5oAUaQTEw0qsriwPzRlFZqttxm4EIrETsslAn4VNYMDMcOrLVyc6lJzRmG59Z3z+kfqdOH/A6TEwH1RTKw31BiG1j9WX/Bs/Ax4LjPzyTKOEphT4IK8R+SgfxPiYKJkeMZAR+JEmxM8kJjmLlTp3lp53MwrZ1bOqEo5Z6zV9hmeFHzO88abIOYXDyBUxPyrMBgvMRM+ppho+QMAmI4k5S2PF/RdZUItEPI+0g2QKJgNW5rZa5ZFamGWQsx+2RQ9kXg7Vm+Z9dMoPGdCNLIOg4ocEz+Y548z+RVMFBDh9jKhVlJurZG7/FvEvZcfvkjmQA9HOth7xGjTu3WmAjl/bH6SnrzVVosXw0aVFkfa3dObNgjLP3jGjNaeu3ZVqRB1xE5JbNjCEnTPLWR9vRmAtVYA5iWVvH+LK38+DVI8/Mc95578/M8FEwHuZ3BUP8AaNxOnyUQRR4hFSAGDZWpHbbHMbrnkBk6WZEDALq5YKiJZd3c/MXPnZCnvh+o29jsuYFr4cjrHY0IvyVwDp6tYWJ9GLifFnYr0h82Nfurid6UMvuqNGgS3792b2qU86xaxambAaPbNML+n8iKtZ1uTkOl3fg05CNrVjS0mOG/B29H4iBIWj+IdfRUiISAROhZ9ZrZdsL8KV1yBwBclNvqFg6svLUtWoKqpOU0UTZOb6js5IwFHTfKSo1cUzMDqaFayZEcF2H5bbk1wBE9dtFTv9j34oZZxUwehTZJNnRD5ASCwjsVWi5Y6OYVZ+5o2h7tf+06Lfzrg5VKzSUu9qdDwMrs32Edr6Zp9WaJPik/9Pi7wQSzh1GBHmP6RyqEvg4jwafJxgfU3sOFAhND6hY3dpBNrYhOMRxdysdPad4mq2+j001IOpQ7E2gc0L63g4IMI5tZn3teSCyr/wB0GHyhMcrH5iYJ5sbW8DlGpaDCzbvHAMWoz4gBfYFZ5uDQzmsmLipzGqt1Mi+DQEuZml9lcEhM1X6cc7r1WM4vuUW1TEzHMDR/iu7quz+lWvPFaSqn1C+6XsdkUui0U9euHbQz5e39el5nep3KkxEnDlyuYYvr+2VlUKYuz58TOQ020V8sKAh8lXakQ8GrKSigNpxLQi3EjjtzKjlC/ZCau5PHKQDSMMBxhTWDmnCkkZXN2W2lQyxIWIC0cD5cBcdWmAIyI1oTIwzVb+w3WajA8FOeq1YuKhIAarJgeA0JE1CmCiYg7lgTiFBei3WfZrG5DJj+948T4CDmiwxk9200BBq+0sQmQh+y63C/bFu2w+ObOzsVgGVrBFlvguVsSpdrDDX417Ij+xTug6fIDoBJej7JC85YqpQCrSbasSP7vHASpdhXz7ACvYsQAo+WeWRhDSDjGxIzwokh5AEHghTJw2THAzP0qt943tZmBohtZXmYInsUDYEHuWA+AGpEfviUeSgwlByTBMjmJ8FJxAfg28mS4D5EZGVBJqKYiOdPvAojWeqmq0hCpbpWlVgtjQkpDmfpqt1RrW7aFKsim/qY3wf36xf74BuifwmHzMczlFLgFyrd3ImQUWrWuB72r9QNMlRmFgSfqE27ud1ozCpoaNnRtE6zMzHI/fPjlDIsurG8EuhTImaFkbdRTxYuLCogref+JidXG+Ip8uzGRM+h1piZEjoy3+CxrE/4szTVH9yKBl/BAKPMC02GXkhRMz5IVf8ACK0KiCOlmutuj2xcAFBEzQzZOI8WLtbKD1Kzt3dJxIo7fdqOLZJVLS3dDbOXaYRM/wBwaF1iSgTwexPpPE1ZfZK2jEDPZsSXS23VfUeg59vMh/OdXPRcKuJxs74ftA2KB1rRxEf8zgNIdF4JrX6FOjZQWvWCpUlhKvzWMmjldY1uwuMzxvpxFNPy2k0/DpikEShvuSOy0zzol+vkHchliGVo+VVwvjVsXGpO7NPKMftLbfiJV9K2/qNLymnlUM5kur9iU/V0YpEqhNTar0NNVSItKsRo7Q0mrroKhfvy+3d7PrnVppqrzbOrOEmhzI7JWgxp7lbDtRsaWiGWSjS2rZt4ub1vvmnjUO69Gd1v0u1L2ZayYQzjLINHwz4pL/DiWyhomMaRk82Ohq5L+zWKq+fis/qN4M4arOsaOdX6bFrN2M4tApcq+Q2E1KQdatvpXvsLsB4jkjzsWd8D4eBj8ZzHHzKnQ2F2fidBDcaCpKBNvnlWq22t5JbPgOHd80pUPVrarGWuhdWL8HTKpZrO94iZpaLorisZmdGg1FjexDoWiWTAJTPYMXV+4CILWd40gfxz22bKTbmyE60SG1bLOSg63acj4nzaXZryM/jydSxDFY+mF+vE8wtA4VKChpPL1F2f4iJ5CpN0TOZmKzrwWaujZr2UWCO/as3iWFrJpIfZ9LI0wSEKLUe6zVsgVFfuqbL7GkDDBJ0GouKg0bOyrNmVlFixbtfPwMt1u97ov1DfVDwdP4WEyqxP2rB5gtOdJsHafKoEIrJOy3zGpWXXtNY3QvfK0oD3mC/aDYCzDWPMJYUJWEGyPcIq0zkJC7n20eSwuuL0pJ0Mo101vgm9kyh8ShNlme6fvb2NR3Biydhzs/5U3KSk1aEaLzl7aq2WAmAL8DnNt3q7ua9mLdgjgHzDYiL4ebLCBtaAL0i+f3Mg0KGPaviMqp5ebjVQId7dKpWkFKibLZ96agM/7lrPNtKbC2ViDyaln6+vnHGtZrDWs2cH0iTVdwHAmWgaiCeQvhHMJ+LkRyAI44sP+QZ6T+1lg2+0xnalmhBgrGt1lSQPeo6j1yU6JhMLdnVAu05itoZbc67IF1p2TdVCHxUQAxA2KQXUkJ6kW860SYWj5afycCZrF5EuxitUCN+svsCvlq2Kc1mStiKDbNkVCrrhA4YaSoyMf4KtmoMpYZ9R1JQ+aj1R8X7SJQvH1m1nePMFfwBZMkp2dZR5iW1rDZgV/pRguJslXRETIWA8DMS2gR/nn6cz/a8hjeJzAV/jSxpfMzORheJjwjPVUXBu2O0gjyuqkHXVst6XcPqJOr75eAEmfIDgSS58imwExEjWf4GfGbr+CgJxNWNFYps3dFNlrqTL9Q6ziU7LOV2B8tgGCJj2e/VaAqR5gPPsZuiYJdqshqVkeB1LQ1L7VWcz6a5WUH3967v1h8KoMtsvxMuzL5IrNlTbpvtEZKnw0ZnflNnKWYfbSzKmo7Btp/TTluoK34ISNPZGpTci3hdi+B8pN1Wb6YQeRm0EPsFT7JFSKy0WM3YvZBJraNGkqu911nbu2XY0V5uH1zqGjZ1f1DdOnCB8Kukj0hVlFi/hOhubj/UHM0rPxXcrBbaixaq0TpI63sxsYGAL+srxt3s/TdDre4rOe1MwwpiWwUeHTW948p8TE+JSoCmflplENH3VaGnZGF9VuULZsqO7Jq2Mq+WcrpuBCKU37OrZwrNoYnIvlepxLhmCOQjQqBcqMrldCQ8wTyiQmCS0ZiIaf91snzxHIeSIn4ykmsiIBUmUjGBim3OrwBVI3M37VuVcNTZrv64cNcQEqqyYn01OuRr1pUzdxHZl1iXiZ07MNXZshbqLaNZ8N6rUbGFaONNLC0ewzbkUoxFosO/9Z2zBjH1WLF1bwUhxM2Ma9Elj7HmrJJzr6zrxLD1IbPhCmfKxUHlIgBhZa1BRo+UEo8qkQW1n6hMxkttXIsms/jBfmReC60+vzzaE/CLU598vAQDzaDq1SjWpmVbKg65LOQd7802D85lVtKlTBIuvpibXzTnFb0ZYy9EQhUQHaDZDoCDHzP5Kfx44FZj/APxSPjkHzzJ8RV8VSfOJumb1Jk+yR96xNaxbqhWcmiuuuykhu2ihUwFb9E+/sF8zcgSSERc2ZaEU33WzQRBFRet+AN2FKJrhXFhB12z4U0kmUx4IWR4e8jSCzW6c7r1WKzL109r4zsNZautLlWlPn2IohQeBh/hcwVgwipEDmKhXtZs2Lnl3snG7AMAFe18qYVJc0+tIvjLqp41gLJo4+vK2TEqUEz+5syEeIX5kuLpfIHtzB6dTfmi+32LATiNAwbd8T4CtZdJR5vQAoBqcnXfScMr0dmjZyZNlgoScEvK7e2jP22nQ3GbNw0K3sx9lwENc3VZKGupV9OlDqasolHPytMaVWWou362ramXZzXnbQCdvQunqR9wFllbPmyrJwE0M4rek96wtGaOubsa9SEOUcjHggYJx4JlAGx5FuScxy3g/zPH5liFkHLGc1HgWRSVIeYiguYmeEr0iPSKjXfmaGC5xx4y+rfEMHZt62dkIkVXt61qtIFBSp5FD9R1/qD2axvtVnAnM9RieSiRjkBxILKZhrKn/AMAaaCj3VZAxiQwb8+0QN9/y6Og0WWkb+bDUhAT8opbbeSoVE50W4roq7vWmZAKlmThWtyz9vWv9IbhpBtvq92DqylRotbayqu2uqfptWXIZIAQfE62pDhKEYiH3kvdp1q1DykQUy/XBA3qylO9yTYsFel5aNlSjRIWOoXLt/wAuv3K+qIgnrmywD/TdH7yayW/FORraIKXodhmrWy/iYGlfyPMj0fM+5t2dd9KHAtg2dTbpUJhT2DZ0GvvTt632mYEqzcgXVBM6unpYzRNod2Rt1IRopyZz2parvmi3snb6ubS+qeFGZvq0qwA22yRD7f4Z/HzqePpa+IkT+PSQD5kMEp9mhnPiwsvGXvpOEVOybD/iyUxS284JzTvFg3Yo1Ql6DW9IsUUc7TUlF5rhbchUTHPlBsz8cyUfgvfnWa6L2+hFzerDT37qlYHoe0oW1gVSFR1t/Gj7IdehtUo06satPq+x4eB8zJhtQGRpF8Hkh7H10Oy40PRp0ZQ0wMGnXmQ51ZovxbVYgrCoZiBOVQBxiWx+SCLslENBEqK5nnWskttygvteR7xnXm5FyVtynw+Y5k59ZdISjPOupEA3MYPwg2dRkfYO92easifGH7skpKbRyPCBtuLDG06LdBpAmkcVrUPPa0R1jChXhoipcc8FMHZTS2FhBG29ci1lSoNSmOXaWNVRy/8AD8h1ULLEK/3H9OyQIwoysT7tIhkeSZwUFHIHkf68e8x5HlisqoNX3dYCrbNWbZurqVhQlm7Ztftt5Vr0pmSMe4m41hJ8GQ8dmIf781KJqBogmfjwKSeNn4nSEzMmfF1ob58vmqKfUadRtu0sFdm0woV5bzOsE/XryUvM7BOOrMyvzNiPaZibBgH9uZLz59WtsLT9u2J8zyJkP8c686tUNpZehXcoQRqNCppVbRdpv0rtmJpSRTPKzPzEGxSAHygJOAnxQ7XdyEElOlp29i1LrYK9SiZNsR/hjqo2Ht/VQ9QmZEIO1MiL4+Ao8U6R3pL0oaNvEeXwZ3YHtj2ZpRNmYNFPPv5ShaGap19BMs9iia1uYHFVVba97mpqVbNsDpAhevmhYv5uQ6lU+6tb3Y3ajYDgmT2QA5OJoeBdWq25aIJuyJK4l8f7888xMcZUS3+XYyz88DCVEesTgJ4XWUFMQSMOpW/hturQXPnX7Ux5ymkjGvaTYKzf2s7r3lFbsmvaSmNTUrSz3lrktCRjngCjhIjkq4MyH44cC/hAaC4jRJJwXMq/Nulasn1LQ+2MedpxHW5r6eRjXqW2qLEV7HwXkwvsGXF7J+Wem26ualwF2nZp28yEIy6ltJDYCgwDrizm/uJCt9pX1q2gl/rcrIWUl8uQ0dHPbWDJ69a1bb+Jmc6+SS7Bpy+rZlL6Q6OWVVOP5t3YOxpjDbFcn6cuzNg3c07x6rZvF1jsitFUIYOj8ATBNpbmrV8NbhVDzZpTdCes3mtx87s4bY+iMyiSDfbt9o7fOc8KtChlafYdRdnTioCB8BYMUqI2upKZMNq5XfdPqhlXLGqUreKm7Q7Zgfr/ANNrSedM6qzayNvSkD8Jnw1y2h+8GkqP2RcYNUlLKm9kxMKp2/Eiunp2Mloot4t1tSPusz5sPT2VVdffOt1w10r1ndp5cqHLs95pKpTY5sdzdqvGY8eZmeQvn59fXnrzJ1G4znPq39GL9dQFkI99hUMpmbVxMdfuDZolTfcpu69pQ0dSl+kXV36PSuzIs0QQfadWEzCw6zprYiEl9ROpC8D1Klup6F4nD0fsHyosuyiVEFgaTbz5hFbIdETHDbYrF4J2avfqHKqrbObfiR7D14NrMPYodb0ypuhDuuaaLGdEFFlAVYAfnKWftjYuTVMGnD75Ewm1JT6y5V77auS1VaE3nqBxW5PMZXpAhCqbE2zBpET64/IhK2koJf8AJzrZ1lg/5mKuazgeZZ6kZA1l2ceuboMU0VV7SvijzIfujl6tFoYArGN8UMAbaorNkOAAsAvkgf8AiQmPxKGlWsAwH3mO14sletMvXG2G+CkfMcquACkHWVyqzLEg0c3C83a262tSmXA07MMYlryafhlyhFlkHJhZp/lyWDIQYVtGKynixVU792VVKVZPW8xrbe1snt6nsTL7Fa631qF9N/KdEIexBeQJoD5mHslvIMoiIhxTDp9hV+C8UFAxfxN1utVqGcVhRWWZ0AyL+za0fENrdagK1e6dhEKcQ8k/zPrWb4KJK637h3kPH+i9I568kvQp5+Z5WsriQhtrRgJYCCaRl7FkWZqXVPmUZu/R/GngWMt8TPXNMEQSG29QDWtIX9hSbErpataG45w84ICnwqPz5nOvsR5KNzt79OoNNUiUx4HLQxDwYqjv/E72lt9V/wASNTTOI9XAaXzMpCTDkP8A+ZePJeP+itiPC0QCI47Z/wBBa1LZxMCGe/RbPvpbeB1aJC3f7Xq7/lFXS36eFPwVbV+3pXztXEkcR+FzMRwTngt5JQXJjhhwjmQkZYPMGyYG9HMS19vCIKp2UBoQfNWw7r3c7VyvibNc0oti3RS3Ia4MnVCpbYHMDBUh5WWbdmrm5Tn2H9svnJhR6NkjTeVm13eET1t3tMmc8zLZ5t5dhT+xqpbEXc/U2S0dibitOoM2ayQtNKAFAdmfOVcXcrUtUru2o3alRTWti2IHJr+f4v2g2p1nsoXfFa28GvlBK0ttdY1qRSzJ0NYrHOxZFFDlMrx2+wYCnQ6xnTf0naVisbYa4HXdFFNXu+w9mswFqY+a0Wfmy4K/eZaPoBCJWcrlzuOd1jDdFzr3WHdY+iWwh5SRnMBKGD/lQzoZ1e1emg5dZ5ti1blh/mremu32JG/TbQMDzM47KiudYtb1fRQylrY/Zht04692K3S0kRcXN3RuaILQ67iWM6lVsv8AtzCV/KqpL2NhMBxSDeyAURepzME2SWI8xaM/aS8sTR9J+A6FskOFo37ubew2fc0rIeGZ96QtdY1yq2G6Z3QGW4uuhAj4btBYSQc36IqutAHLIC5gaMu8JZ0qsmaRO4FRQTMx2fG+b0Kt17rx0jlljvlFKrgvVg7qMrCugfbMYURGjQwu4spqJRyAuCS46v8ACJ/B8pyqAn28DERL2NAvkgfaIEdmYzKSKhFfbJyZ04Vpn8L7uZWsUwiohPq/7S5CWqsTKVH4R6RiohFeWt3EvctTFWEqWdZw5lldqSMSKDIuBPkeabxrVZceho3LqfclU4dMQDI8RA8voijQEuA0WoiQfmOisTJcgkLASAIYfrJ+4D6FMR6Tz05RrTZsLTHZpluyUcU5imQQm6s1ESimE+wlbagfuIhFkYBZCWRjReewq92inLqgWnl06lCn95zuG6/WmZDPzmWLyKhVc6tQWqqZZyUWxbVNnhs+0BLSgROPEcIfPnkKmZ5Vj3MBgBiiYnNvsNl6pU0xJ7JLlWp5KPMWZQIrFsRAT7DXhzhgPUkOkJj2a3zwlxI+CkJH+hiBoI+UbBIYyV2VO94NsI8RB8IPyPMgIbbFRKwG5aZfSVqruhKn6tR8JgK2Yhlqo025OYkvDlXsgJzbJcs1xAiHhfu8hP7pCRjM68BZrb9/LoIqVSu2OuQjOc11zad+o3yfSw8Nf2IPa6AVMcu1jauX1KfZLtf8Pp6U2kQxrNOmH+c3kEHhLDL/AFa0KVaJ+6ud26vS/wA7P1Zqx+MXS7R2nfiV2sylXB0rp7uqOBR+Li67bDia5VSIjkVuQqeQHPExyOQfP845ISUz4MPMTHGG2k2Wpz7SdhDkLrjY+wXXdarDsUbao6durzrc07d+XVDlY1GT7SXEd3r1qKE8bF3tOrFTS0cgerwwSRvXFUoSjplJmjqOs3+49YquzGW672xBSMQBz/lUAPnEGjUktKuc2z9bVfxSrfq+vbvO/HXtIkjTrut6UnY2cwdD7esBjYybRVrJpB4w5OB2ubHino1ohTPlVo7SqtI2zqKt7DxDl3Ar2aP20tXY6045q1+yqvxAAFU36UvsbOyGdUmQhOruREuoUVUKoqCpbZQuqtJoPp9h3dTQRqgbvp7qAnAzJh98y36D8q5CLiNIU9UsU4vV5ovEOSfn+tC9ay3haq271Pu9Mfe70zUoUnWbXW95yIoVXdjpUAtjtdWu2Ivgo5DQcNBlaVgPyD7+Uyxskb5CRYv+ZjlLM+/00oCYnOsyqbCvQoMc7S+4rQIxYOG+G6l3Mv8AWFc1dgN/C+C9j6cwX27ar5A48Dbg0wXNAFWVHPLSIPz4EprNFgdL7b8HKWiN5QsTbOFR7FOjLGQPO6mIonzYiICDVi64BBUr3aOttydHwOkqtLSSC5uUnCygyAsSDBk5CtMCGTYOuti6EDQ+abRXS2bQaEmcudJTUI6F9bwTfmwgwX4kyj2uINDIB2baolAqE1CmPPJCL1VyebtJVL4lI8PAAuKptl9NTCD8hHNdXy5j445REQAy0alK+2QExAwcqqOtEgamP1utUOXWu12zl4hLImUhBeSSyDEqDNMxYrWyf0m58BCHuXM56A0qiaOzkmipNgXwooklQc8rar1KlM5DYryx6M9qNKwybuVmfZGbOdln7nRiuN5VbI6yCrR3LHZNT2WisxVorlpD0lmzWZZcC6q2KZMkUzMf/Uxz04CokI8rRAx5K7bOy2OBlDbTB8OpFb8QKokSObL2WGexSuWjAlQzq34+6t1PlcZc+IwmIKBISj3sP+SYMmzJeeQEzMcxOvI2c2ebGRczIhVv3kJ8DESR+eLb8ToYHXt99u0YPs5aNMSJWYf2Fn4tHQwQuWpZSy6DcytKS3ddKOusPiL8KuQZyqnbBrChMqGILszb+3K0oRWm7mUqXHNNsipmZsWKAGled2Gpn5Ze9nYuXygCxb5eBh9mhUtqkotXpzkiolGjRGJ5v9a90zEb+YmqTJloiqPEVcxtsoly6tagqJcitb1JgE6Nmt0+j8CIY91lj7ITE8VHAXExyEclHJRz4uSrnpMfxLTGY5FmJ/DNSAlMykIOgajVU16LwG43KuyECXOw0ASQX19X1wv1QoaM6Lc51lNatENgfbHMqNaVHr3bm1cGlNjpd6mtptpdsDMoKgj7Fp92tTmVN7oDMelNpEAMRPsf7IiYqPKHflvzxchwY9Neim2B6NRNmYpOqWDwrM0b2lorl0Vq2/mRopQmbgW8O0dVlbNh6IYeR2qxllFW/XZXuIFwOi/N5JDo6SKPoBQiNPSKUbGZRBBPaevdpSaj/OzpKGCUcSqUk8FjMkNuzdiCT0gIrK00j2XuSqlA8ZFCkjpeOFq2/pFnumc/f17mRFKZEd6hFvqWTro9Z/3IzH9CsMKsCSWwlHBB13s8ORFW5u9cRmoN+Dn9kJRhbbp0KO/mydEpXAeIkLNFImSSCJKGv+KIH4/5mZ5jI/T0jB6lSXoGwIVTFQqaBHRtQQkUW0wxawa2ZAX1DVMidlRKZBxiaY2Fx7Ns+pFAy2W0DWq+qKgJbyyuDj3GlbOhaFgdU7VCAHzc10tR7QzemLEQrudkzdAz11cNvStuviOzLvgcy/U+yirqPQL+vAfDL4lS3iW1bcsasAhtUfktV1ImPdWklFRgSfgpmV56Gts+qaFCdEvNoKDawFD2GuRGOKqOfWa4qxHWOPcbN5VgEG26CGgy9d2q+nELe+haiIOMc/bMVyrYF/v6Wo9qjYh5ycz7/wAzzIyDYwG2QOrVX4GLdYwmeX7eRYSxTXxENKFfblICZZ2q3NcEjsaU6l03lMEcD5r2DqNg01GbG8+B5Zxn1XNAwV5ouOUPdBR8Ml4KJHrFZtlHyXrk2VT92kKyKnzad+1F3u2kTXfplL9NNFOjU1cioT4+5h4TINOZXA8KP6xHAUZhJBWaxUz4kIlnkguQCfABZW8fVrUDBz6JoFabIAAQEeOJCT8QKs4imY5GH8oxBN62UfkbOMhdWC5pZwJH5KylLJcwWfq2Mi1DEJ36PY846rrEfFYISgpPgRzGeVG8t/KVunopE6s1VuIfnNC6lYvjnSIhiD3sy+ZG8sxCoYIOrdcn0ZZlcVKhgL39Wq3KsOpul2W80iAPtyTOIlXw+pGr2KeZrV1oM5r4VmzlQ46mrOdZlLNayF2pJDRtNrWoMO3d0ChlzWVZJ1xkucuipEy2yknWZ9KuV1v57IwO32Wr1lE1cc3mdkmHDAOOeJieV2QLYmRschsTwTiY5488kI4QcIOGHGD/AMVYmw8nFqshYQAhHko5UsyMxzNNWnRZUdT+5pXJozS9Nmqq9XyqiTeSLLwcE+OdS16inQVvtXcaQZsopRSsOZJt6qdPJrRdDsPb6E0X0qlvE0KhCV8IH8rP4oEZ4dg4znNHrFT7bCrDya4BoWim1WPtPYXq5lKnK2VVtrdvr+NlVT+o077Ts3bdJ+Y+WoBqb6/RlK9c68/5FZXYq+wn+x+lr+b51XbY1ll8tp7r6xMauXFdEAd3Kq1AiRDUuV4mDCyq+uQ4y0CA8B9NNPz2q899m6l7yBGDbLs9JNG/15QtxdJPOy0IhplGTprzpu0L00Fm9gDYRIHIGaZiZ/pWWDXgLUtVWusith7BVCr3w7T1pd/NnXwM3cfmuS1SPsuzwR1TwpNA3s+IlrC+2MPMRPOs406d+T4+gMBPKFiDqfbm5RQzmclX3UHcfQPE0vjnOkKWkp/O52aNm3DKNhXyhxTTpWoMK1kLdcTEm+BmOXjOyJEeZntvUHGqzWkJ/OVpln2YA6V6WqkZKJCfabyP1eK5RgYSK+kmed8zRDJA0sYUFPm3eK09hCig25hyQV66qtUSW7R9pAaxlMl45ERDv7i/thGQrRNmJkTqyqXqCdh8teusIKOstbTjR9BZHJvLXITCtj7u+JvtarX1vmEwcExaFOjNayL107SfggK1BUQTWQ8Hn4hWtQFRS1AT4KIAzbDZAxoWTmOUuv2bIeeP69IEUHQwkSlklW69Wt0IENDDtUWEPDR6T+craOin4HNwc7W8syTfYzIisWnYe9vg69Vz3QCjBVPImZq0q4ME+IX8NYR5l7encvta+3au9035rQ6+DfSrVzICyJqSuzNCoKW9mwYe4L1VFlkySnmHmZ54/wCSjkDPMCvLLHpzVrhUvMAfJNZw5ozXhaCCYLgTMT+QR88QMBR/x8Vc0/aJ5SoxA8CrDmDEFRERmZ2V+RPk6/2m6SLditNGy1ToiXzMRcpsot8gUk9nkoqGEx5BAwP4XWbJiA46tChYJ68vsaLcyp4yMzJrdkLYZuS54IzvjuX6npPlH/U9wafwnXUzTrudzI3/ALBBRNiyNm2TQq7K00jWuXkc/n5WH+OdT62BBF24/VCLMIXdya1kJZD5uqKKDdzeqZ0mFOEWdB02bJKiqnyVfrx2S+azjdSt3piFa3VL6M06tLS6dcR582cB6JmVkiwr/JbCj/KJgo4DCAeA+J5DZjgWeC6C5P8AE8kuHMfjl+wD5ipWOQrIiBwOmj2FFlpPQdawxRqZ+BKMy7KHwUX6gXs2bYYe4zI0otPoBQu5/wAR6czVtMATBhCJD1TIr39lU2+y/a1MhjjddaZyKuk5AIuIvv2GojHs/dWXxJzAZ4nZL0huRapVfuwOhYya8A6XvbefCcD6eLzaJLjWxqulWkLgSWRsKq6sPQxEsGu2sZvzw2sKa99g5zdF5o+Dg0HVZFicnu7U+EaapqatWDksT2OPF+2FRJyVqH25iRXVCokQi3AWWTAMrW1B8cUbiqyRS0LKy8kr6Y/vJpl1QvOTeZO8qDE55oLiGlxNs6b4grBhaGGccHiPPKVBujdCujQz3ZlskPVPhgzPYc1AVVdj67iab86B0s7taE0tA7OWPYxKhTrI/Vb9Txt5iCpdwSXxNoWaV+aNnCqLza8VOWFyJcao0OhgdcrIvuGbr+vVZpkkHVYsrZlW0MalxU7NlBzM8UmDGYm9W8SXM66VKx6GFabZDCqXRjNHvb6f4odkdUntmDFSzLk2q3pM8wNQhbFVlqWyUwXTcgdGsUss4UU1w1HbNObNSKLc3IyrKTXpe8RPgLtZ4JGJKt6Kj5vj8CMwYePPiZmeVlAZfvdfTAqSWOCVm+9zTfZO0yHRlBNZVANJDahjWO1ZVKRUkDUMRJLGX0f7Flr1UVI5/qeddA2g4xiowPHxmy1WdAHsXZrXDbxoBBgwLWmpswmKltqWTKsLWWYeHNQDVzBtqxX/AMchIryVeG3ZRaL00qAW3/KNilNaZI4fKnQQRBW7MfJ/08L6M2qYE6o+IXflsM+F3UgPzPHs8pI1avbBG+jNpXvsc6u+sVatchLbSuvWUI1BN2lrqsacC3OgrdCC5q9arXQkivZlzM8S2JBsTK6WId2oTRjNSCYk4Z9gyJS4D0ZhzkpOZIRX1+y2jNtWfmxYptYTlKh8ghFEomPapQ/j2rZcekTxVYFxHJKAiZm5ZkhnmjZBzJCdtK7bK8luZxhQRZKDn8+Klk1n/eb1WtdpRaya1QBuEu0/MrhMe/XnU0QSmbez+oLJFOu1YAcFmaL6ShhiLr0R8xa5fq/44Df050xc7Cqg2nFynUiflEWPRM2GFJs/9oU6wsGZmAMGRzrHXvvnRbt9k3wzlfaVF6FqXTI09LzTiy7uXawIIrIOk2LcNsoeCgmXZ2Kdx4NPN68iiEOuRa+BPs07oNiIVZkvlmHaKaZxExaRTESktHPz2xMg+ggJmF/E0P8AHzMfyDSEeQ7gu5FmeS38ct3fiGAXUpTUSUn8U228xtN2bpBYrd2Uuds7SET5XI8pQxrYBWRaizQdSZEJNoOu9YffUluPbvYz/thuOxsrOdhLAdKYy9VykhT1OxjJzR+n3jOl9o+6U85H2vOy9tPdBIgMfxPMyXR5NGK4LuKkx7JQC7l/C1ln7CWFa6V2TYs9d972vUl9mpU53W3VpYLvnRF7PyIi91+sqaJW+X7SVakHVsdQl5ucySfSZMR8irY/vqXbeO/5amR3etdiF3G0quisZe/rzZS1lawq0dkg4qh6NI2siAj8Mg7LfRjKC1DLB+jhtad9J4tOamAay2vAQ4eaZeHTy4HsHtxLzVP4lkFBeK16xRZJ1burb0REbVSBm0EMxti3gXS+KrVbWtnqdR37+Vr5xmgCGC/fh79GhkSFtDqlF7KvKG/Zx3BV3Pxdor0KOZA6EB8mz1xIZ3ypq2CzrXOu6M3gFM9trAqIZOhWnbzxtqzbwNrkJ+fisTx9Y7B/st5xQc+euacVmwk83XDSzvTl6P0zvQs5r2q7aL0Fer+SIZYEgzyOBsS+IieiWoptNJw9ZeOdqhU6LziKj7DpYKKIBYNNorwLGtIHfrzjNmy1XwIVEqQx/wDi1U1mehUz8vCeXDiLRxxN140vgBszWBb3ndC5P3Fk4Ddzx0VRHoce6KxXvIpoG3LtoK92izL3VWAH5/HOsKYqGyQR5LkkMFAz2rMdauulVQWThKE60J95iwCZlTDj9QbNAafM/ftZ37Ydv19GkUJqfOrGqLNYyDvxdtrrM932tuDswNl/U7A3GyBZDazYW5qWIsLWV0qwNmvaeoRteiU5NvOvUEjtaQUaZgHS8+G2/wBXu7+dAXyJDGsfI1K+ompWWtaKr5rOiLGRbfXk5yEdjrWTgLbVIauGsu9YrNcTKqnHiOZLbl8LLyNI+72xHAyq50o8Lj4JKeZey6jEiqha+C03zYrJh4kimp1uA5UogqIkojhFAx+Xt88078CExxz/AHtT4sz6HMim4Zi4WzVhExM1WSoGSNC7ay3fNXTq099EjxuW2ldYZW5cFiYZRsvQQ/b4GPSv2m236exh5gkAn3HNgv2R2fOfUZ8dq0jRAYGl16GJMoReRn35LlvRPUKTIlQI+Yqyw2+gUBrGmCenWCxnSirnZ6VWmzpfa1KPtac/tsvMwZqoK3bGwSQaxMEzL6qTiBl7Lpfp8CpOksRqyyM2o/Vj57mt8OO9Rw2/fhp2qmTthrPKrbt4FU/Ixu9Ks/k06ONYrGUE33VP7ht+J88G0B/z8kRP4hnIPhunzABQz/gKXOu2Jac1q6AgaooH1lZeedjgHUlTFef7sRyq6a9kGTm3SB8TKAbpG5J0isWqFXZUnsuU3KU9xa71MZFFkEbIltXsSKGIkF6nfb19BISX+YmEBL3TJhW8lPnoCK0YZSGuQ4GqqymSXfp+wdjzAtNfRuddj7RK6Ddy3H3NAE9qqFd7XnVLnzoaTKgXMW7kPK1j4NmrZMlA6IkJ9ghMAWazTyvitQFU2t/8LRQMrHxlbNnHlvjF7pWutBN6Yq3B5pYUWXk9FzCuKYRWorrQMyDPLoiB+iyPiv3h5ozFTNOI7Da8Eccvtg3Twv3RPCD1OY4k5CfPCMJ/kpTKZiOUba3oFFqtdPMsgFubeXrgEdl7H15eP2UEOG2eY+zXr3b36izzOBCuzYE13ANrAvsenMvJvJm1nUNIbufKZv0jF7Us6cuzL5ALpVQ8HOnJY20Up2K0VGhpUalYNGQIcvFrVvU57VlDLzcqwolM9o6zvkBDPO6NBzql1NvRgGLaeio7D4lFlUmPuKGspWRcrE2heEPgNR1hPhR0nPdETkUUAwxs3Zj5fdSnfHBTyAG7TalsKgI88L2gIcuSk5IiA4OR82WLmIFFNJxLJ5qNunZj7nFWNpPwMXi2cPMAhsRFiWNdQArqShT8r7SuR3oStecuGhSepUunGuHZeKiiPBRw1QZRPNQZgy9W0lyBFx1JqWepHUck5FsHAjMT8Uyv5WImudH0C58lHJqnLux+ifRCgfrv9xzKNelan7kzJSfVOjXqxmnL1oCxQBVq516f3HU69kebcWLOhbClUOS1bj3miE37/wBlc+Csm0F1g8q5yRGbTkITd3/SO0NA7MeMHWDJ0fnY7suZr+VWopXaETYyc/sOrIS6NbsNLZAVHbxzqTJVk201oGLi3i0PdRK+TmdUALES4KqD1FnWfQRN2YWiv8YxJcY8FfzDQYPmJiJ880MT72C+G3mNrOMDaESUe3iFzMBZp/EKi4I/646sqQmDpEFer4bj9qmlE1buj15VtX3mdSVBuhY5sumjaWGnlygSN1pojMxDvBlPmk9KnRD7WmS6ZBRnbtB+bVXTQ8YlakMR4iy1c/6rT4ricZ7LDXCFe7oqyM8isbWu224yRmrl1wWOX16zbrx7VcmaFmBrDKs7JFM03+aiyc6im3EHy1o28y1KUzWC7Tl1/NoPt2ChO5gOzHRYVj6Eb1T1ad+zmNkX2QxttM/Pu9AQ+JOps9Qu5nkjYtiP8hszHEXQkJBqlOtzErSpNQC9W3Sd5BNNIBEeACPHGrjmugiqFEMAkNkCsfhgnwD9CjlTRb9jKgVsznb9XT5lqOhdu4LKTfBRE3gmqwViQkReBgPPMetVMXxbd1O0qlF1+RjTfuqE62bXzKsxT3LbNdHxnj1ArZioDSy6t/XUZ7OGh1WZS2ZnSj5u3VnxrZNCTrfjyR+9nYb47iunUTFmI0bQUIoXsinE1Dtc0nJQ6WpsYwWrRPfZz2reS0I+RjoVMGtsfjH0LwWlozg7m/NvMp6tHsmdofhFnGpXvMutdTCUzFX6UZtnN7JbF/bm/DmQXN+97sZIuZ7nM8Hl0PUwKI5HPEckI4ifAeOVb0Qqa9qvcs4jJbV1iztPM+4RkzQjSVOtNpkV5rjk6z8fSC5VRpU96FGGxc16GmjQjA36+1V+auN8q3ZK4Tta6MapCMPK2TbEyWxZO42CnLb8QlWtwlmBpyg8ayFytA8tZ5TVL37FiTUOSGGHQsQ0Ll/77MEgux7YNfxn2/kdAT2TCQhCbVG3X8RMxm22ULcFHRb1ZqfE9tCKKl2Up1nW7rmETzsnIrrAQR6nYNQpEp+cggSgbPmqXGV5FcMjychDOOQNCF+Uy0ZGC1K9Z5hBhjJU1bEs2laaCQjQMLqisKoVrT/MUhD3Sx1jJpL0VQ49gpG58fMMj+9WHIjxMciP55pJkyHhj9swomvHgpibVVt4zbCKSa1Wwq0FayYGuVtMCH49YCHrK4gB/nlB8hYrJTVR5vlVZEwJeePbBtJL/ASqAH8AJec1VotNtu93XZjx9gGLExpvumoEaDZhi8YwcQTs2nqQFcqY3JpWrFY7dlyISQq+OPMlP4iBRetVPM1kdhVacsrPz1X1obrR1pGnWZYQ7Mv1P2WlZEG2Zo0GyyyNd0U5QZCyhntPwdmQ5442SkShV+2xTZg/1dyjguZe2mzHo2J/MctVk21kp25gOqomK1Sp8rpCWjIMkJ9zCYGRuwCSXwmTEx4DCsW0DbD9XPKNn2uTfOW/dxQl04r5jSy7DBKSsZ0ycjxtSRKeQr1/zlQCEFy0hrgieVNlVZUpBEPlcS6kizIywMa+2/bjPo62/S6hRmpSI7+3aI24fUPkd+MzqtSrMEp1lgF6sy7P3KiQO3WbUdEHWh7TiIzA+0pQTtvZBZxIU9u5bn1BmvSpZwulF2exKJZP6pOd4dSYBWSKlpz0rJacw7s3W9frSIu4PWu9sttijq7PVevXKjbUv6ql/l6JqVahTCLEfbZqLRGbGzHzKmOKZ4iOKs8l3mOWVRbpMAdefNwZmUy3EQ+InlF/59Zori9TfmG+1FvrNXXQ5qTdDqo3YuZfxvopA2fvuBXbAfB13PpvxFTK1/MsqlhuWkl+Qr3TrH8VmydX3lkVtsGQ1VFd20nSmYhxXa3ue/Wq7pShSqtpXdYubEMAx8FcOEbr0hfQer2+EWTdStwdYHZlqiZNzaz0NuiLjIZifFi2APia+goCrmZW8+ayYPgSap5DwKP3R4/kaXYdHM8Qmj3/AP1d6R3XJPfQE/UGX2ct1VGlT9YKG2UAr8DEcvr9qlc+CEcgOenJCeBAQEeqAhrYCVWJVMxBoBoTKR/azxMh4KY4ExBfukTWfyKqdkNiprXFm7I0lWqKNSjrVWW8Z1SbdMX8YB0LUGGYCrpKIrOMhtGQA6kX6xZtrF0m0bXwtDTC/RH10agXqjFFtZZ1HmBreVaSCcI5flPWIRKNGCab4u9NTJXaX+Uw9HxFPOv77Mq4Ilr7djXpqDmBbr05P5BrKQyChzSkY9rL2QuFmSyCR8pry5kREAZ+ZiJYZSEJrEppA+7JsQryCZMCIRaagIOV5CmmfNKjFqu/7ircdWZEVkm9xEsKFR1S3Bq+2N7yN9KtC7UFHPxP45veVVQIDtRLpk0zMMmCQYmyD5rW6tFcObcujNL2qorWV/C46laL2AVU7GdGcLVWsezXpOWdnYvgq5M0q7pfVU2Wrh6/IqrNVPsQVBYsvnvWVwZ1lWLM3+0MIslSP+nFxbz6ktszIVqoBBN5fiwuw5DAqQs5+U5rEKSEk5akQdD9OpWarW0LlCxRZ6PSYwgwOpffUZ/YxtNE/lH34PkE6cEyp6qh/Vq1iDZFGkdD9vFsjgsiZjlg2CufiHx8Uyu1drNqsBtuDT6TAycREjjXjABiUuBwSQFIlEDzT6xWvj7J1MZ+Y2QcTfKYUKwOZIRERiYkrXb4DCiok1m10869mNc01Ky986lT1DN0I1QKZ28LPfTa5/8A0kiaoNravXb6rRGd04lsIVZwL+YQ/NldU9GxYs2106Xmy1Ddbs+pObmNvUenYpUMtZMutJpYoVrh+YqPUhMCMaoVK0vVV0Y0NcZeCWZMG5F/Xt7b4rzm0LyqhjZsb9pSyDj9M7JyZ4oWLNqJqR1Jll8naqUFUkwCvjlsTLNHPULVui/jULKvSGYGnnQwqNvq1PV7CCL1PpWLlpGUdsfn1n+t3Q6noKqRbusRWA5DkVmgMyqHh6TEBZ8cCzwbcePyN9ai/O9K7NgDrdect6bGc56irvJZrP0PzyrDHJhyK0u+dt6ph1ZDJdSgwfXc1DcX7YqFqLNu15EZGnpuVEwvP7LZsuCOLtSdcDnd3xC5ID1g42L7YsbNeOu7de9R2LEBpk6tiX5ayFt0WorTJg6IdJLamtcpFAhNAhh76m3WKe3VRU+vIFME8pdfFS9yKwVDN1Sbqk/KijNCKqzKxZFcgAVVe6ikrqvasUCykowg1HXYtngfJ+8e0WY/9wNGJiR+nnag7l1KE3e8dablXzmb9aQmYko8cuRP6YieDxFN7nSoCCQASkvERHhH5E54QRPJCf8AQmQcd/5S4c/4lw48FxeBenHVo1iAHf45zGO9k2cfbsZGoq3QxtPP38mXIaqVXAsqV6VJK0WXoQ9MAW5QhofcK1UTp1Iv18Da8hyu4XjHrt9WPVqySdPMOu01swrf2T5A9VJvdDR6qj7vq71yKl/IQM2cyUPmAnOYZT64Ol7jFVwViUySC7bBrIYqRIpjiQX88fdzSGyj2VABDYFsqYAxB59aJgmccmbMtshoy5pAwyXKP8gpxZCBroI4R9sxlszbBrio0BB50Da1EEaMp4wLSGnMB7cCr8kiRRHJ5uh75bOKqtuyULA5iRKKGnBvmH9gro02VHVqWXAthlkA90rAvtxUHovsleQvwwYMDn+6uoch7DszNLBBIoYQ59ck0r0vb8Zae7Gc0xfb1SVRa6U6dKzgiqjdRL70V62VReuxHtZvmF6K4EcmoWy965t/Kx6A0WydYAchsxIassgYZRszZCAft4kXTmzUmq1DJFy48FHOqZzzoEVmsoX24NH8xxwxAwXLCQermlotypAGVd9ZpkyUYarmMi+j4PHvVzlBA2HbS6t30ikTDU6YPI0bViwuGWKTAbBgsIBcDHZ6k2cqSh1eKJKeNGu0J+5XawLM1zehVInNgOKxjMSkZgqwlIxMymAnB015iWe+12EbWYS09UedhDUydaSgxmcSrnW50Bv0hvANmrfj9MzSbpNu3e17S8/LcdPp2VObReEKT+o7d7dZo/sDp2jXVrKXYPBq1c7xGrWZQbITQEikmjVuRpVIgkZCwTPh9pdPKNdm88tGzMKCtnMxFzYzsWZSVyhX7dZUcS6rdVbQLVSfDiDmJl6giSiX7M0rMC7tWRS36MODE6Zc0cEDO7jbXQNKW2sXvSNKhNXl/wCml/RJzuaeHoYlqVtecNmSKrDbNlaA7L0u/wBVyKly9TB2g+EVMOgnHTKl0KFClfbaHuvUDwbU3aLXRp1Pk5E8wrhIuLPlXHhmoZVuuECNX4rNvPmvLvKksY2BG/gX8382/wDDxyvZJTBMKGyTsoLB1qf6t2Dw+tP/AE7p/wB3tOqm/QCKgKsmM++WQU7a282ZUnHm3FCHV7kw6LfyESqutmaS0k5GN1rYHSs372nnGCAJ2j/6bVCB3INtpa2wcImFJs1FWYmWlUepczW/VYVEA11ySmJSimYUfnJswtskr4A8lMxWhtggC7i3KVZT7PUOx3On76dFDkUO4deWxHauvOyrh125uR+q6kVpvmkMoB5nrrtZEWBlsmIAw2NgvLBlcD5VPgJ57cUlrp8LDDsEuSaOfLRcyICZqzPJGZQJc6H3RvXTOqep1vrvcgl+Tr9U28Pz96alNGJDoFSKfl9br+dVvV2A3s/XJpXYgKFlmdZ+2edsrIfufLc6xLkxbKpok0MHSCZDlAwZWiR+oXVhtoLRrW0EpvMe+NlPxt6vbmmT0AaJK2Xm9m1b3XIiKoOx9ODLsOIKCDTz8LVVYqSLlqCBEWPzoCvDgBRSMyIMe0RUDggEwsvgadQTNJmpg8bmXLZy9NUrAWIiu2SKfLYG0irNgKdFt05Ir1JNNcomvXFqVRayM+FvEpKfWOQAh/jcsFXQUgkyNPmUSXgva9M/Zt9U6EZbWGuSIne8uSNspgQuGgPjRW1ZiAh1F6LdPwq21kSv1sEKrUGWhkJs/IxGXjOraEMsuFNqwCXXtZYaEqGinxeMY+o10Ju06odjuwnOlfOkh88oM6E/LYIySuKyGkMImZF1kLqfMgvSzEXP3DZyG1qku4m2r8RauVK0JJ9QJt5QpeMbL2FBAe4+9VJTFAXmTblb9iaUUwrkqnTiIO8qumDdcltnOtzGY2L+UlkFBk0q76FX7OyQUJ/s2miqq31sQB2sgWhJ1nsdQCUjTUC7XyWcyUFQXNba305w/ErO3wtqiLXattmXU+NXznZsR5ojDQVynYkslZ8smZ3W+aufaUj5IdUW+pKzPKbXrxYbXWmzbhR6WWedbhA5VJeJl+X2Xx8JlDnGygAFrdlrdViZbq6en2zbhagqo6HQnJo3LlLrAE/S1J0L9kbuvIf7GkUA2CLL7jpVUAmGdhPdREh7oqSv1V2e5gXlEdXttG3AyD5r6NUhboUGZQS4E23NsDIgdzIALT7F/wAkyQRtBVzmpXQ7NagY9qvZfMwLh1az49Y0swLqfA2YfBDUOzRWqgMHbtvrV2AdvpWDt+Ty7druXQTCblH6kZ/ZEhV39T6dKuh9xl3+qXaUlDVU9m/SXV2UDVza3w16jSav3Kk0WR8bLWueXddTv9k6r+miOvhTItiTDLexNoCT1o4emDbsUxrPbZgHTZzqtmcjMz9XNQ1fZrqRym0mNApmQjrHTX6fh9mMmoqjNcqIVqtsq9m+jR1GgDKHTgAhO3cp1FZjgN1lYWDAbGg5oAJBZY60JtuXnWsj4KUdku1EQlRbT7afgsEVyhPuVygD7brNbsFeRhSDVUYCQE7oFChGXGKgniAm9YY9p0AGfKvnuKGRLrPXdLs92UZOL9EFJiHdif2fo3QknWzu7d8u9wgEWbCoUQBP0u71+gaM52j3Hrat/JIo38ptK0YNvHIJrRJNEv3QLI4Fgw8ejWkzxJ1YCQmDy8cLACbW3qeZ4QpmRdt0Zu7LYsaAfb0b1VNCv9uu1nwjKGTlMqrKdxGk2vP7KvcrdQfAJ7FS1GlGlbRhQMNzMXvN/HfEhZ+qKL0mjWrbWf2MBClnXTmZW60IOqTzQqT+eYugVR8KZ1vdWdP42M00nVnz3LIRUvSytDTqWIYHVNRUuB068LrX/wBvX1hZpQZdoyQuhLE4hNZZnONfSl5F0/miPKmAAFL0jApOtTpSJFZ8smYGgz0XaN0FNaZOabNGu+F9NQ+k9yrTZI2FxSKssCbGdVm4FgI9H0bLE8LNCqawKlQD2gSTXlMfmJ8DE8bZFUTy9aE/xNN3yVALkF+OPH3rsjlhRR+eAAx5Mr1/75Y2A8+sfiJ8jPEWTrTBJnV8Opgwq0WGyUSApGJizZiJFfKlmLOkxgXsaKV1RzRviv57jdXSZe3GvZ2drmol49QoGgUomgpZ7kAF3ssVWyFVulbs1BsHKNF8RMIz9FDRM7ZWdNIq5/0w3xPnSpV6iIhVCKXmQu5sUK2eYKVtll3TOlj59rtEvN1POOqUrm1tMbYmF1NadW4tV3cCYuVgzszeLNrPz3ZjIdX+SzVqIoBPx2aCdEYKzdWyk2fmqXSSmWjBq0zGFhg14SUFez9Kmsgqw1VSuTJSB6Si5rAT8sFnQzgW71bWUYOWZMuEhyUO1MSXvi0pFRrkQLrvXoCQdVtIl9WFTdoPRERw3wDY97m/avKWhuaBvqiuz3D6jZeN5rZmnq2tm6T7PWML/o7qVW43Q3RzWtRkYwqRLbXH5lu61rm3aEo8xPzEqfxWu/mPNS+0gmK1TVs1jhD6llBtkGPbNB0Mid+9UhYKt9xdZpwu0jstUvEk7t4tpFUkr9YhCCv9hroBFVkdtQDpgKHaLOvJooK+oKEGTTn6w/5wB/VV1n/OfqYyQgLKPqTlWQ8NvbOW2IfVxu6nWGUNu9E6z2yPmyDo93+mUScB9UD7JCM89zH9DK3UgYn/ACV4EYiNntMV4lGdndneoPgv0NWch02afbOurzoVrY9U48yaupafmuo+a9YLNqugQY1V+zTf1XdnKuCD9mrVt0oayh1vNEge9MjIft1jKVwtOdkC61JuWIwEejGgoJk9ztNmyb6qormZ+S6vn0r9Q1v1KC8u6a4VZeayVFbMXrzYlT6z6rIFuSlli2Ju3MOr9+KUp6k1elNu5dzYU2ZTthKkksrSvlSSZozJJJRMqFUZKjgpMymOsdzv9Ovtbmdi71v9lkhuQDQjwCLLa1pTp1dt2vpNuWff3mPH0n+o4RCcHZ+pvTQs0zuo7bg3sEqYXeR/SJ88yetHZzKtqTuoeYUMXHxsjJlJ1T65D9t1ztOxZK2+a3XbGNOHVh95lJ2mcMsvUzaeFSgH02g1DPB6Q+zrlRpx9LHf++PpQ8v4o9Rt0tE5zX9E2qv5FGS+DcDsrvtqpC/vevbNLURD6l/PBqS8aFWUMnmBsl+FlGqPxeZ7HZKzWkoeqGqgxzb551qOfcFZWLB6q2ZQ2IuuVWFfzszgVrLuC+6rz8l1jV3LQlZsGMskeNU33CD1AZFdSkXPOc9Po68ma3pE5ja9CLI9XpNsWrjDeAfZeaz69lPrLqL/ANNlBxYbQ1K5ATFCb4gFrEPHhtsFfifvAYBSlsvs1WvGzYlhyRZLffMXxUzDJHhctAUE0RiCqJE51835sobVIGxKSU0G555MJu1OumVxcO7JuxQ7bREGvPRT+wtaxWUIW2aDWughXpJ8NsBDYBMwO5cil10VCis+41xrrVKXYzr5NXq8BphouacnU8piEGdUrE5+3KIgHUWjepEVdt82FFeLqPuZgwT86igSbZXdX8TrmIC0McubExM/FVRJlEsxBq1sxaKvZdE8/TcC+tCu1de1rcpUyRJr5F+FDBhiVHMNzc6gU3TsGGiNy98I39MEN+3miDrN6PF7Er+pNRfa/Nd/6vO7GBQMNQ0HjBr2MZNl0QpINqD7iTX2a/pKXKTKjRVNICcFZGZnyVC62s2B4TyFMeJmCjyIwSmnJ6EVpL2LRu5Cpsuc/tNWsiuFDf7nbuvb4N0mcyX0h6eF+ye/p/UX6iN1NKzUoVhY+YgMnrohVSrlrOMKpKnsOdCJnln9pzHEBJzzFoJv00mmpgNgvYdfNu1g+SvaMp+CSPVXbqsUNR9KlRWpx1ggnkUnAWISQrZNqFGqoxmhFXm/17Q61ogtxXXpty9MtmRjkT/8p8hP5hsxHjnmf/bLSj88i6yPHjM7TYpHEt6r9SijwE7/AEHA7mibmLj9hv4N+MbtmoFWbLBRrbFt5nXKR545UuMptkgxNRCKD69pxqVZZ8HWdtOXfL7nFufMcy3s2ccosWApZo2utheXka5KtoCwy3MPgkv33UrJJHJvjZXH3NooREOi7ferwdO/m6mtH3kY2JSPPE2dhrLzNJilq0bFZsEr7r7r8ky0SCn0xrYVthDz0MursUSW1FcMx1lzp1q1rLBdmtp1qlaZt77aF0JCpdz7deIY2wEHEJoqyipiQsFIG0RY9S1XXrrOM0XYZCkQ05k3wHoEgUeBnig8LkzFMHHBUMefHTe/Xb8J65qduwJ7T1G0hMxMfiY5Efz/AEyztdnwa2XWyOuV8JA/ELYMPAg1lKyNgUXrj4aigeQmo9uh2W6xuyZAVVIpXAJrx8NYjfn0GrVKwz+vegjYvzmBZj0sX5oZiIQqs74GFC4qZV9MpsbH03z5uEzO1KGv1Hbm5S67sHrUTGzu5wMT8gOg6liDDPujbrwXLIQ2oYzQrRYovHlqrzC0fiZFZ3WJlV+PHc9O1buLq1uuX9Nt9yLW/fOqpARXT8ExVVfQSTACsKWrOO23AqMre1mdrXmWTxJ5gOWLsCl+uIsNOsice+wWE72lhAcMt/GDf0BVah5HLQu0hntMLqfJPH32MEj54dZrMMys1aCZSR2GqhiB37abzwhfX2GVIxkIgIKY8efEzsjIaLuAfyhCeZ2vMhXbTLNoWdZgUt9FhV0GWqFh9nKFtjt1ZU9keqcLTmVKhm5BASnhCGRIsLfaihQRD2QtTiUjWgr8x7Vu3p60TfhyA8Z97Qb16k6p1cjGA/qi06s0WIK6vOUtt+sSLqZOpGaT/YRu0XBM/Bbzddq/kbl4SYXE2LnXD+KTo1r97HteV62wOucGdDEddwa7oq6FypEHdTZCykTUtBGkj462aGCia4ArKb9onWi5dXSuZ+VGaR/Eeqsbgg/Se1ttjE/oFK8RMz6bzxm/BqtVNkxmAyAgJgtHMbQSz7akE1LMTapNpPtTCLiYBkiJ+Vt8xnvkA+V3Y+/1cQIVW0+/tslLYLt9x8sIna3uEyzQ12mwZAHk0y89V6fb7TqDWq963amNkq6rhI6wfrEso9eUqqclQuVDATTqWUxULz2q6ByXi0z2bPMxROeID1KlIZY2I6+FezTmNTapoXnuaNs/lmYGFRAxHIqKmfPH5AO/ieuh/pHXpY8hIsCAmJHWpXtaz896xhF+S46iSZmJkPET4iPA/gw8D7DE+I/pMc8zHAcSiggw+73sw45W7ljdry/sN7TyreAiQixSVtUvmrWKRIiTVJchRuL1WoyGtFZbav2MfJbT6NMpjoVubiopHavzo57gqg2z16bNZqKdn5SNWbsGq5M2bFhbbXqMk2pMxKdtpo+N+K2LdDwxECPkY2rt3J0Dr1LWPZFUW7+o2pClgj7gVNE0siLaSs1vzH84Hb5qZMV51QsNcdrjkNBSnnqS6Meq111qob5qG15LXK84qkaKWWdToClI+eg7A0QcSz0caKSw8qqpemW8r5xW7kIRYrz4keORMpnlCrMqEiaoFBPIb5DlV7lNhgZm58/2Wyj6t9LDI0o2czx+I5HJj8RMYurYw9VN6tV0VbGajQqJP8/h0DP+UT5Al8QyCSaHXevDWqNvV0abxZMjUa22+GtzXrXMfEb9FP8AdrNjsheZG5V2kSZN0dt7QlAqvAErCijsth/mLgdkpudCr+Y9qMaiLHj8qInmtR/mYqWTz7cTxTYeiDHHn49Z6eXq0e0zywHxH7c6Nabf8sKG13zZI6CPFqbbbGkI+BmbSvDI5Zs/eNABGmduzK7lpsE2FnqBXtnRvZu7nuoXRUfWalnKctE7CzZrTDkJZWSt3LEEtkhditbseIsI1BqT+24Q/JLVLa8HjE1bDIm0oq1wq7YMKwHoaEg5JyACQdaLyhsciPMzE+vrMDzsKZnVKA9fEz7Vbf2Pwwt95r7r7A06fukLTqrysI+Uu0YR37y9KtFvNzb8JGDXp5BwNlERn1+F0gNnuU37Wzbp1qxIqaL3HiW7B3oN/oldXKqOdXxD6hKv7tZV/CTbZHm/ixUzxZwgnhRAQPqbTbI/JkaU5Nv7iC+oQ/dlAYtb9T+e9DqDvBiu5UNURMLvPREiQmjRGFP3+vIzDXNdW3azrMQip2bO1c4qjcykdHyvkHzbM5yWwM6NhTZJdLOseVvfdamE1lZWsr3bVr3igK9EYCc77ZXzoi9B1yG+nObUiWY1TQC3Hxv0ahtX8YuyEtXPLQPyLnkFbcWJ8PB6xrGTux9pbFlWdR1ip516wrTubQefFa1fc6Z9vM+eBEt51DAduHJvtdkzesqmp15IZZ3JsH+iJiJlE1LgRMczexfp1WaXNLt7TXMHp6JWznmXmTdcUty8CKNSXTjZ7hBNGq3FupiTLfznv8RabnmiZkAO6r/ELd7/AHGnaX/M9hNc/wB3MfOgp1gIXEJjhKieNpQUTy3lA0JgtDKbUL25KpKZIB/2SyAf8w9OeP6SH/C1G5orXDHUXks8HudvNmPIIyttv32Rbs1jOE9vtqrMuEGZWw3sCPuz1aWYn4M+adi35YbqgKCAii1tOSNPW9MdeopUbeceiTCDonYUUs6K9/Ztrt6Tm1KrZNoDxNmYg/lCYP1AMetNap5mNxUPMT1ezgb1ync7G29baE+YKZgpLxzEpNetrayOqWrUHb41gVjkAxIZquZSOl1GgWWSm3X2rTrOfVwFVKuqB6fdYyZ+BmYqFTMex2wbKlZKr9aia4b2exnXyJfP0ajIEKF4Fz7mIpBgXqhzL4y4bVCbLltU4oNsTBTBKqfOuZCKTWeF1uh0tBM2cq7nVUdhxbfXdTsOHZ67t2c63wD9Z/JhIfguldljBukmyUwqY9Cn5R5/rhT5iGBWutpPi1W0el49wD2aB2ly740/rZIfAqDfarz5T2V7TkDudovUDKF299+jMm9lsjKDA9g1WT+16j1V9986Z6Kiup+dVK/Fit4mwiGrmJ06MgRcx9GUM+Bs+UbSmweQ18H5DryAOWv6xYqooXbM0L6YuPdAMls8VnLeMmegnxPvxZQiVsVWQ0rEwT/DIUuKwlUV4NzIu2wfzJV5uLdzerEy3EhnkVmkS3ndGwM8bqGNklNsPXSbArdbsWRWmEKQFWSFzoEoEa+Mz9NCbI3AW9C+a+fFV/ypwJCJOBj+eABgHgdG8NC/+bJSDTEomZKJKJiI4EEcwMBRNFNdUexwylmlFe7lPv5br1jpluXWm1mWEWJiv9v3jXOlbCqhLDsyIz3I4pYVeoOBRFtlt9s6HoV62XS7rKuo7516abMR8pZymjJJv4VewUwWjjPo+SmFolK2FHs1ngW1iRY+GV2LWLaj4cnvKn/s0WIq61eGV3YRyfLteaamGKNa1d20WbJIqbYGdvQxP07y6czUt5tsc98f88sK+esxfIkKguU3F69cfVArLci5j2Ss1J37UXouFjy3Vuzolf7JV+f7Z+dFq62AIlPTb+M7cUr9MVWSHSyI/FK7VvoI0dhoQ5UNnPyjvu9Fdx7RT68n7SlFCxfCbV62AgyRF5+Xfg0lPjiaDG+J5kdYt7bAkJpaJzWoOcxTbZyoBghjzOep4/unq1awX7trEp42QT0XYc9gwVbEYx0S3Ao5tIYiUL+V0HGchdRcyCo8RPrF0AIgi4ig4ZlxYeO8PJWOqYh+eWemZv5lMdLq/wDu65kQrKNSjwzkZ47MNX+RVZjh1PaOPoeRmC28Mqk/OggJxR6yByRc8eI9hlXJXyQ5EyExIzH5nlS0dN4tDruplaLvW3u4mMbZtVQumqyK0WaVm88ibXqUM6CLjLz77vjqTllXj2cSjVMyPTt06UlTYqUXsyE1LbQztafOZni/ZCq/snV1ZAC+svQKzWTUCgLKFyGnc1qq8MrAXdRrbBEKLM/7emfMzHPETxDZXMSOT2K1ln4GytVlvyL6rjNxK/tY2qd2sclRRXrTDIrPU5QyFkl+Zj2j4lzEi+TrFEEZOfMzwq8hITKMk3rj3o5ya1SDVfo+7/cDpOBn7LCHvqCyACGhHijj2paMFj5CJdJ2rulSqn5p3m/KMadbv/Ug+ofWY182UHBSBcptCfKXkk6zpW3q3bIzgihoqZIT4I5/3AsgWcA4SzxFa23Nuw1Wvk4m4fyvu/S51oJmtP0430H8Sj6B2NCJa1P02t62T/6v/oKrWP4n4309zFOGw6/Ka11hxj6UPXAlqVCrMG3X0FRScN6shwuCJi5Q+4DxDuuP8+8U7qEyEWLuqJrAgzgm+6UDs5zaryB1C6WdciYq6gjXgwPatGX7GCRvmIlcgyRlan12x5YAwRTXRWKvkNhxLOqInGXeltpKS1raEiSmZy5hEvhjyA1M5avwu6spsviUSqfl9JXYTbMSETr5wBFnxa/6kIEEBIgZQT26TgZ10rI9dfE2pEuaG6vNcK26N89S0TWxVBrxBX/TF/7aHi2JCfB5hQ3WrDDghg/nalsZVgUZWEu3fQ5/ilmdpWmioJN4nzuz/l3XnPXVfPdVE94uRZvLgdEf0TpiE8qJO/dShVKg3I7UygVO6+tMcoby5iBm/vU61cvkhT+yDPx3+sPzqnzPZShWeq0GdWpWQEW27hWSEyCX3SQkQsH1/Uhac3vdVrZXd7ZZqn1lr1dYo2rGDY9rXYU5bZQt1991nl1FhosifAMGJAwiORkZ9uCJ6GauX5ZXr6dS5WSxl7Dq3UnBHq2MWvCM4rItskbq2/HXPUYt7g67RZSTegrARoItGdiJZczqt6zLqojbMSqanaN+Mip+mZObhQVo7WjtsiqqfLq9y7fkatPpVh/gzHoDUpiYwul37jwQGtardezl0acre1JaI6li5ecJX6mQkx95tU/s2R8KqejcCRTZwXIha7MdIm/eFg0uo6jguu4jqycRFSbVVgxJTC7izkvFqowIGTH7YCmGpTWs+ABOSqJgBZjqiJ8lgPZ+a59an8ydVTsUTWLO003z6ABm8fImEx/nFaqc+CPAS5fkL/Wi9Zjm71huc8SCwptlpsNclEkxXxwoIYJIjhI4So4SuGHrP4j8TEx1H6g26fx0w3MTYbDL6jxtA4I2jjICfNx+jVzUiCF2bl4i+2JpB4g/uYiYkeudhqHQShOv137tKmcr3FWrSwZu9hbfaFcUKtIrk5XUHqvea7+0UmUIOssgGRj18TBfhEQ2PU30DBkQNfHNiik01QXYn31G1210qVgkCtZBNboDKZiNEg1cxlQsOq7ItG4bms83SxAwU+SI4ifxxdYnvACq4j7Jl8IYUZkiyEU5mBObCgpVDKX6JNb4VRz5sZBNCrE/cx736B5d2eTtWLtVYCMeEzNmxfJzPSr1vJvTbixCAPq+lDEfVP6eJ00F2LAMfn8zHK7xeiKz7CjEpBnUO4BTUOZrT5AI8xHlnIUZKmCCflWSjg/ISo8W/wDZWYWzRqCDIZX+2HTz2cy7ZUrPwt2qQPTD042jKmws9GoD1DbS+IpOG0gdKX0/TjZNINTOIk1PlL7QIrV4KNPTltaYVahkv95zrEWaCw5TunmW4aG1bt6oi5t1XjzI42nKGwlzCKfEg1y2yccSH7w+J1Jv3YpG2g6/iobdQCvobJ61fRvwFilMq1l+Ozew26oi+5FRah47UhtZlcpGGsEVlDbK5J1StD0SCQGhWQbYQFizcnyuiis+ui2AxatQA5zit5gk67E0tFsr/wCprAD68Ns22k2zakCLwIPJBT6P7HoOT45DRC18oU7h1bgWFrtg6otwMcAi75Ox35rUAPO6iZ6PaXNZUjwqZntBRZ2X/L1Zv5YU30Tp9rXX5320DnvTHRvplbrbybend67nRcObV6aiLUjS92zMStPzBExOPv1f8U6gjdxbITYj4nGI1Kdi+6EVuyUBoqpyca5g4mzbtstWTc3yUxyhCG+y7tjsd08kaKA8yyJ4lo1LanVs8bGjouvTTQSKQLNc+V+JfnRd0llIbqaDXVrGs8LN0YosqWkRMWpdCh9Fehy6JO1NSRAKioKD886pZC3mTXvfCpFeATNSK4S0Lusas5shZ6hcun89ax1U0EMXqfQAt6IP0ndSpVUQac+yKXSswoqtD4KzKMLLOR07L93RisqzhNo1VCGflqt3gBjcqjVTJE98RZIkM07hjAcrW5rNE+VGtOWmKLDW2JraOoj7a6SlA+fH7QePkRheuGVpekOrI7C/zTwQVlPam2dmqo2mMPlkB7xCpnxB1v8A4Pq2TD90BVGP7x5ePZnzyxgSpctRaB1QRM02wlkyidFoTEE+aOqDK7ux9asVLvlL0teEPSswRMsG8xa3oHjaUhxiCj+TT/xi9WvbZzCO4dQyOt46YCr4IGjzp2sxsyo9tEVvE13KaAQLlWa9cvPI7F5H1MtOi+Z85mwFCzLq2Xa+00FkAWP1CshL+31FrtobOiTbNiC5idhpVuuso30aDaejFlDNrP7DgGbep44au0YWexdSTQiH1jUSDiYy2oNwxZ3mvXalZVrQJtwYKw6d7NgQtJbk6MrO7t3dTMUVKjU04tDYsWda8iypxXJo1HNYJyXycy8Q9FJsDPxBpO9ri31QjwN54gqPLtc2paNLJcF58rv2VEi0Sp6qoyb8Jb/WPgrFap/ano0iUdO19p7BKEWtdnpzF6gimENtvNdZf50Nmrbiax5ew/A0WU731P8Apv8AFP67gML3/Mrj28jwW+64W6KD7Bz8HQxvIOaFsESRwvjVGERBzMFEN5YiGrhqgrsfnjY5jWfu68VmzM0rXvzfoQ8Bt1KF+H1pUyxBLdJhkbEtryHICIYam0ap0rc1nmCkRM83r5A2fho6h36/xtMfEzHLlf8AmeUbZ0rUexwLVwYDBvrFBWa/gZnlhEwX4x9gYRK7Pg5cJwqWJPwZW2Qk3zXWFo3NbY0jSAgpeiqarFGqAi1Vke2SKaaXS2oz4lHy5X/h75k1N9ja8KyW05upbZGqlNWrNMZOvcsybIYm7MbFv3Sec2kayuM3hzMHwGwsGLRdE8tjmk2kFI0PAbUVPllnzrMQW3xeSCITI1cwrIFJVVJrHBPxLCrbnJVvPKvZBQ7LPOTdHn0zQMIGzL7KaVOCb2fOJV85nEM4S4Q67Xktu7bZ3E1K0vdeR9SL9DIrpRt9xp9k6aFynY+Jd+wLTbI01r4FpqBIQ+TmT2SzQggNFtZ1IJ+XQ/v+Kmtfi/tJm4eQi3CSVZ6zRy8KDAqlkqBW5KfMzzxHKFSLbPSAbSrWEnWjc3dEpillhqSJzqhELKJ4cBaRFeH9QYN6C5tTSpOrRGhZt9nSDKzM51d0lENAPEmWkpW0u5W0LRbusJVuuKUWGlBQlgOiQvbIutTTOjAQiPf4pOPZN2tSuj8FzYtBgqbTDH2SuLhZMzkS2CrqVFVIxztvZqZfPTLpxy7UsbllV39fctIataaD4hVu45oJJ6YF9kfW9QkC9uZWDN+zJc0MyvSUM1tv5RtSJOaZmJMlX7BMVMgC8G44aUEOBUbN1Um6qsEF9xcXFcpJFOJsVIZXqP8AUY+aAghiRlXgubt0KSYg81EaaSbFpSrYzBpvnSUKOXKmXpxPyPwNGt5PNboOpGUXremiybalg8xuy4m0566V4G2M2tix9lMwrKdmNXk7WnjNoMKDmoP+XA7vfz8CMunZMnGZNxa8GlrCRUuxZSpefgA8VPZo9cI6E+ew5U1HF/Ws1y6655UUgnxEdW1vjSYus6TN3YMqQ012evQU799NpoQrq2Qra1Ir2NHMb13YlRZWzmUqx216ndW6LwArzUPmDrBMhMTy40G0f3pbAnExjtbZzjhVjMt6sjZPCfm5WWCY2uzZis5kBdvuttlhVbR2aA1eIBfxituM8ATCwaAgEw7Z0ayA9VOuuseYOu5qD+VRNUEi5Nt4aSFOLLvnnWQOM7UTpVJnmzXLL0/kReqfMyLKupPrnmz8et2KnmRImV4d3RkQu9Wt1UE0oQjTVFJ2Vtu69ZZna/1I+mASB7nXaeXZsF5AaFYBiVUMKzarDFfKzf0hLAhsQY/g2z4GOesBJTwZhDeOROZZGCN7KlgH1haFlHvyhZlPyU3a9I8jSmQQEW2TEVaB0rclNVaLgCEaKjYM0yp3CeMizRpQ9MzFyo3Gvj5QYXawmDqvuHiLSpD5QHG0fiP4HOH0n8Sr5wmONzig45qdPGypVzOF9VsSV6yvyYlAGD2OUXo0CMl+jDE54FcjXJADWCxQM7UEnRSzlVbnpkUXRi1ciENZPwjIJRPwQ0WWZaPpytak5+F1yfhUAxjXpRoTLtfU+4rkpD6KLlXxNRTrONXh2VrxmewA7UckyZz7n79wwdiiHj+3WzPASTDMER+w2w+z4HqwAF2xIdrPwMHG6z1y9HnQMz06rV52yl+oVgUns1aQrAwc5XwvbHMf9mRaPj8G1u2ftI34jKw7NAFzIJGeXD+X4HxVNraja1afxM8JEFVhq0SAuiW0H0EOaTtLZDIxTVWTJNbHqv2f5Fa3iAHDJnnoBFHr8EyXjkIOQ8jWA1HDRzu53KnorUZt0LyV/DP5EZgClUwUQ8SCZ5r52e+mVjQo6+YjJVXrW9CsGXAN37lZt4ppLjzM+endeK+c2XOz2hqnJnoaItcmpl3aXtCbQRFWZsKZvwTphd3Tc2qE2xyyMQY5OKqIJlTMQdcCba7NtxkY5vnTe2+2K4deTSR15YNRWNVgW18uo1u+2LmyOTS04UaEVK64Kteuk+AmaoLVUGA3Nn7rVgF0KydHZFSd/pgK8upPQVQpA8dTDKIUGYoESlYXTqOIHBr24bEoKqD807KaVSzFkSpqOteOAsVbU1TlLLOnTq1/leigXaNKb9puV8qWfZ6NxmPehF4NeyqZmE7qD/D1ZzG1hsVTFrA9bYZWYfiCf1ykBQ+lYzl7r4OVZlDR1YVo6CguhaZaVmRHxZ1/b6ZYrHMqtZ7klIsPGedJ1mKFZqMdbJwtEkHTQ/qMjFXnb/qM/N808TU7Zv3TL7ykiH2ks0kPmpoQytnusV7n3FZ+W0Ka7kK07VTwFfp+Y/E65oPbhG6xnrUP/Rc6FGX8YTsi7Pre0rOk/wCR51rdTxLooRYow+EPTWMhJr2NdAiR/koNcfnxzOtlSsraGXcrb2VzslC1l2Tr8b5OfJeJgfXiTlTYILhIfXGyrK2P09vxu2ov2c0m8OeAuWz4j0Px6jRoTKZlhT5GYkD/ADyrbYo4aveVNqvLV07XgZQdHTbnXTCLqjF0i3Cv/pekt3LvYak50nAwBiZ8s11b1SKtzqiNLLnTpNodM15mxHM7r2RQGVguWSQxN+rKG+wxxwQcTML/AGjEFEeYlJDHuuVHWbExKGBMI9SCyuYSJQFSNOnAO+VWZZEJ1J+6q+6sjTOrahbbIBr5wuVeD+L6FOF9WCHSTEtKCy7Dajy8zIGETGkEBaGAtVyWzyOK+L6fiMMqELk+WGQJftrdjfmmcIYdY6n7V2y+CQGtlquX3RN9X2t+YrWUHFyFSxEqCPBkmFh40HG/P9SgatdHwhcj7dkQAUpGvFptSTMySulWsI0TrquNbbswdmreSmDS2JhhkKrES1EfJSEFOW1cXfl2YqPRQZFmUQ5U+Z5mUJlEnwGKrLn5WX3HEwD7OZOYL1saTYYyOr/KjRH37FES1wlv0LVnPeKsgV5WCiDr6M3LrPe9pwhBjsW1MoPn1zm+ny1YtnTyclDjO9O9SsuKjSffthUq0/KshSjz1WHNI6rVSBTHJieSfgJHkyUDHHta44lwn4mOKbCm+5PMPmKV16LL8kYdJxwv6Um3Z6zUdBMZb6v4oSebTp2glnw/ot63QgLNSgaGj6fwMef5jmnuDk50fDWxdbstqH2t6lTwW16yT7GgkOBzDJpe5Y+Yy/eWgaVReZQXWTAwlMwLuvIlBmNrrjqoRJWlXMyyoxp/es1fiqBsvl0S0rQ38eRRn0rYmHllmLFqUB3vUDVvMUGfRkKx2HORGck5PrP7LxGVV8HWg+b9appPTN+aoGMEOprRUd8Sbe3drVYTzHSlqpl2Xroyb7pHtOrNsEIopypmiVi042kctdV1W1ngYy/728LNOnSzn54ym65tG+9VTL1QUcjYdSc1sOdqdl+yRNU0Tc3dJShb2nEzCTQHE2Xa9p7Qvqr6YfbN1utWM79/AoVWps2QodrXWowl57D1WCNI9hsH+G1tdUHBHGzQaiRF9CNWuCnSBqtA1tvNKUWUB16+bxCjq3erU7oTDu8dY/SuoXzTe+nZ3aOJnc7H1YeuWqFcOtbLKBCgs3Eo36q2P7piIpOaAy6yNFS3U6hnaWAJxhrEwzt+94JRHWsZNZ4kGmBhYEQTL6EDNbr22La0xztOaWpfJyFoOlZgj7Dv52p10RZT12VAaqDXJBLAEpifx6eP8nNWYhCpMg/aWDqOxnhZE1U+y5ETzb6zYymyUuqEmfBzPjiIlpQHD+MqUCadq6FOKsYWZV03Cb7XU8qA8o2KdeB8KAySceVULFhcEJ1mVmyDBMwWcAda0qpEjYUSnTxiIt1IeIR+p5siPmRmeLbYeEQKGwpPlkOa+f2Z2q4VRXar4TpSDb9Qal0xWuxCkR8s2Jt+VlZfBWzISj/fKY1IcMXt+a/6scVLr/vWy9YKN7IMEVpFIk1JrFnxGy+2lo+k7VeLSYeGVd9xlLdRHq33DG0yamVkxE5vxuawZzrXqN2tMz7RaryQz4xbslE1madBoEBzZoJNAskmzQuQas3Xi2seNxht+fa71myZQ2t84fHI8B0BEQjOWm3dCJ7B5/UgGPv/AJ0LUbKUBaFfH0hoQBTfiW5oyVVv2rYBFp0X0rOy+h5kYkqwFIiDgLKfB2ATa1bkGDZSLGjcfnpdRbbopRFupDW1pQbI+ayqGPUypoV7S9RpAGeaFQUw9SD+IbTWW7XqOc/PofMF0cquaVuU00BRhI0bBL0VPnsx/wB8S5taTb1UfTOfVuYURUOWos+w7FA9ZoWEXHxbX/efbfkaVfUq61ujo9RpwHWrI0LVyud35s2+co6Vbi2F6s7DMgtT4iEWbQgWjlFWvQlcUGVLqVv1kLrIIkIfFa4uwelYh9qWRCzkYPjDCI/sKuvVTFY9R1KmfDQeFkWjHlFdalSK7Weh5CfDJygMJzn12PaYu9ZL2EKkOTBK1i+yeu3zL36lutBH2DVC7s2W8CJZMlKg8n551i54uHZsUNJd6yXrBQY+y5hzbsFBQFn9pdsqQMp+AWPh8STstSqIErAoE3OYublsMimqsPYdWMTB9BQw9G9AgAQ/stCqqwq1nQQu65p033oCzETUTCSu5wXYmQzq8pokmb0vm8xr8zr0adVphcVboo+wKM91gvA9WoArImW6iG0rjwzXvqMw212U6RtIzSKysWfUq6LOHmx4rPrt2hNG/Vz6lWDWXYrFeq5KXTJt9mZ2vay4dFbJz237y1hVx0VqSaiLYjSdEjX0K12JVzb6wp9OSz7AGhpA0wKS4C/SOEzxHJfPBbMzyroPrfgh1s0FhKYzAv50vqoulTqwN7ublafTr6lRrIQVSw7s22juvdq0ZtnrxzJSOVfuZxfbWd+rU2QCGtz7KmeD66CatkmWRtsuqbE0qUPP2HJzpVHtNqlFeAvNVLLNsjVWrghA38zHem4HyB3PCXbolaTJwoiglqJq/AJMkFMcMf4IPbzM+V1WNS1ow+oePASAQSZOOpdjnJt/C/WhNujzUV9takTtAAwIiBzEx4kzJczzSCk+nWs087VbSdMrDs98wQuexjISDAqZ77szzq9sEv8AtLXaKC7KBfXVWbMT7od+murwGxQSxMEmnZmo7wZmWZqi+tZy1GY2kwHlfpCQGIj2dc+4sEc0QVLo+VluIqEHLlB01pcSy+7ymJZJ/GX4cr0PgT/qWT4mY4pBvmJhNAFTBlYOvSHyB3GrL35MS0YgbVYb9OS5RCudRQt0qTM6zDBWKr9eGHXonHyMSKj0AGFZyBtelO3/ANKuTBjZd0qfT3BXXM2tbEmmGPapqVa0budChpI0kibJ+PLvlnXI5GvYbQmFdYmiuj68dFdQezpRHyyCsv4k3ga3b+BxpbBWPUHKAjOHS/TN7Tqwh9z84MTyTIBiRGYspGAWh4JAwdYjMeJ2TMLyouWHKsVGDAtu23VYEUEFlEJsWw8JEEwgzCGTnUCN0eZNKJibDrsPkjG5cS6QJLmwZCVere+EDsmzQsNA4KtUs23eK2nYyqYtrV6Tl61WaFjsWo+kdcIpW7FD++qzA6dSLKsxyqWsDm7NvN1tf7N9iktDiTe61r07+LczNLcUjN7CLau8iXJBo9W1Cx9kHDDYr3oIqqwnTCHaRz+oysdr8rqnOpWsTlV2GeY+c+HiissGCbSiJacjEE2J9QqE1PzQY/BZlU0r9mocfDibv3lUoeJwYDI+kAUzF+lFqpAzNL7StA8GwYR45ea4KDWI0OxXb4EmZDkKJv8ANGjLT9SqdTr1Ky3Mt33War4dl9ldUqwk6m3VspH4jmVKkju22W282PjqWITIMcbR9aA/pGXLn1rP6jedfs392ls9iMtKpKAOzop6okrZ/fg+77oJSvIZ2muw7K7oTdK6pqHKtph9QSNczE61AbqpMM7TdUZNN2z/AGqvyRn6p0nSXP16YURIi/SrZZm7Oy366nudnWamSgiJVuG6osbVhZVBkL/Xq1kSM89CbW1Cb/eGZ6s0AQEQxsS4l/klo6RmfZVjuvsbc5rpFbdmGUCLk23A6ZjrnYZeUptbfW0bc/JFnrygyF1G6FBtJsgyyAhEesBzx4LklP4GcnObdtClNWsFamtJbGo6vpFCYv5y6LgnX6lf7mlED1zp2VgZn2sPwke0eG9e81zMe2Y+/ecerDkaJKljpPQ/wVjZW0d0XWM7qzqSYsMrUv2Qbu2W4MkhyroGirYlXXn/ADoM4o2XG8Tq6VSbxSQ6XTbBUzehbIrG2Dk5ayYYBzE+JNPpETMadgE/EMz/AL5DJ4LfMx4ytq/XXAc1ijUcBot/K+0Rvigc1JeKZ8wQcXVcZ+Iq5IwEkUVK2dZrWLl0otxPrnWSpOjlxvi99yirvqs0olmpd+IvKqNhQXVtZdu1baRdW0hgHwRObDRGJwdIAWVN7Jj2n1gv54iZl08+T0b5i/fmFDKs6/NnJCud9J1nlEOQavEnC5sR8QwghKYJdQZCSOWxTiOE1lkWM5EyckpmVYFTCRas2RqOZQCXkEwcaSpU+Hpfdm9mjzFyLZwTwzqFc7ijdDV51qLNa1ptf6y3f04aSDRndlTNNjOLvoqZjkHG0+hDYXmPO2lknVoRbdCi1sc6FolsyNcFTFcje2C8ikoOBHifAPODbb+IzmYNbWgYV0/dWHnLUpCR9NMAJPxssthWIQvrAiy1ZExikukEWDf4g5Q1tqyoY/LbBua7OgUrchFr0TIWohF2CNYKrXUx8iqFKoEGy7ogiYWi8UKFUOMhA5EpoOhHymc+s+OHJwPrxFYGoIpRZNVdkK9SsWJgYwb8rCRsDGpRBF6+q3hXPlBG8wLKr6dJCmANiujFFvZoaOfZB2m7Ct9kL7HWVopu1qtqqNp9Zp28VZlZD7a1+Mi5F/CUfKQM/wDyVvabLUWR09gtWqEF88HgEuM0X2cRoRnZ9O1TeJ1cixoPOEqoJh1kpT/Kwkqk0xVLmTFqi6yvqVZVtFr5dDRjLo1zHO1Qu3mM4i+hjJkLz1CqPk+Ivh+WbEEyq1QtQQsmJp5B2fzyl12IiJPOxk+B8Xaf2uc0V3cyvfooaxnUjO/Pj2RS1YioOqenSmHWuxqrrJGVmVp0rpS7OxpC5Nq12rYOxaCnV7RrqoZI5lWwRPeCVzWhtVFEOvVHZ2KyWNfW+4gudwrSdGvZjo+p+n9hT5Pqp1b5XscLSXvlDblsQrTCIsHOlBctUjPIc13+PmeJqPJMnyhfp5PhspaGhLWUdO2BXJiuoJMRLmb2Z2UmVLtdnN1omx8rtK9B2FYVGcma4OqxWusA88T1BRWznVRRmDHLBzZtFHF5VJVAPlOk65eYNWuBderzFjN33RqqrBaSF6vPxuxJu1SBtrpTwuevHBCymORzFBjwfVT1zCDGp+LGpYjV0V0asYVStVlVlHSgh/yHZYmomPlP2nQXasOtC2qY89XBES5DRcuALYm5SuGuYsGJ+8NaTv3MrXTrFPqXZbKgJVehi3eyJe8W1/tjkDrWZQ+CinoqrOUZzaAzJ4PeTqJhW1Kral5qnhHlse9jKmUgZC3/AFPj8ef6FHAD8xPOhtqWcQ6k62KWJpgadPDVv/HZoVOt2BiUvt4UKOTGlmTb8+Ka1Ba8ttKPRYdoopTKT42ARWgilgPV5F4HSd44DSeqQlcyDfBV4U22oC7zQRSNX28wEoHwALj2+XKVGphk/npINmCCJB5eHzMOGeMpQ3+Kb/svBDuNC3WhkRbZYqjWlCooHDeWW/FM8N5muOefP8xEwJRzzBI9OS2ZkT4FkXxJTDZhcgUSDTJEEE03TzG0YrVpkntQbINLjrVzkOJbKrBVH62RIV5KKxuzmj73EiQQY2q/uM8x3xUteCCfgeLR3FI28iGBaVKWzMZGsDkeGULwg04bHsYkyTlCf3q0UAM1YrmhMgNfjUMMONs/c1wW2pUixkMY5rIUtk1TkymS55q5yokkmabgzPmbNgmgs7FBIwV43X7XzwhEQ0XBaeqqkDRcNja4tgzGQmIs2VnKoTtaiutyq1ZRqI1sz5KBoBFdpEyjIUhaNeyaGfIFs6KpQ5LW/LYJg4tkzxo+fYbKLvuCWJ2Uyh+nmThTHphbaUUip371SVOW5HcMkKVNWgqnc/6jx4sJxduwjRsgOXabF5yX9w68GW1cJ6loxUv+jYzH06stBhybZmIKVMKB8EoYS7G0U0EtU3IGGanwHmSWTvEoblY43JavUpRnWhFcHLLMhqRchFS7Vo9YhOfl2LVxt1+/YiqhK2LpC7PubFoLzfGe23bvgYj+YiZ9Skf2PwIs3ZPlWgqrMgFWlEDBN+/UD4XG0xd4CrqyLLDyQ4Ue8iQsxqVmWqPeyizrXjgtVMpicBL7GpEp37/2GccKC+VYzvN2r8tcZl1pU2NF19vSsqtdlVp/2qhkIjU65W0vPjsue/KI6kVsC7W31VAQz2VEzapVrpiT9L56F1knUoAGqlhXx985wwcwBT5dr2WqAIIvI+JQD2FMKrQCrYFYzPg27qatjuWDTqZ0WUHwZ/3zqGyGjmwieyUYRvWBDqF+hSzPi52baEasKQdsDBQJTafKJqxhNqZa3S7tO+m/Z/8ARWNd1lvs7MnRmnNlmD26DmEaGkMXMxvwXUSDyGa1Q7LxAer9ejGqy6x2bTh91dOrj1a9JUtQ5tu/dUtPHVgeyCh0LlrSt/PEXCIbMy8RZPqUnHrpVBu0fDbdaajpA6nWr12n90ujknYu/b8f1K3DfWc52h1YyPmxc/UdJ1iBifxxKSdmSB4mzIVhU2lZk/J1u2VvNobINMZCPJ37DawJKvnC/Ic9cAcLkueIKPbikMfMQFnKOtXW4szQfl2wsI1e2xrUYTFHZZl1FnNDXpbAe0amRZmzMhl0rJvnx9qqoRm6xabdZ8CKWn9pZ/uWlyx0wUVZXEyDJN4/EdeZU6QJuZF2mL0QZVC/erTi3amLWvlRQaM1gVP2ssPrWzOZd8HeWlNiLFcignScPPwyOQcwETysfus/FiwZn44RlEx6CZSgfLF/OvxyfI/iS4J+fIycSBRx8eYhoVTZWBcs/wAxghs1ilguSdQbNaDKrZBcRXm3roV11qTTZi/WieB5uIhXKuhNulCXdiuxZpfDWyLcnE1nWkekzy2rxPsOLf8Auw+3YRuTMwOhXmYkpb8i2T6/FXfTGeRMfCYEiTAVDFkZrZ8ej1yZh5e07cRIwRnVZEVPe9iF4sgYVWSv7c5WwgXej4YUNghlsSNKp7RM1VUhaiRsRNCumZhDCtPaKAlNYpqRAOVJfNFk5OJ484a6TB3bNWmLDkM3O1jm902p3JuZe+y7XTms+r+CRKmzAklkQJTWhcytTNC8FRVdAa94bdyTAlTEjKv1GtdRNe7Viz1jYWcXQAPaE6QveoRKhJ4+hLEdxyXIzkbecrTG/XCynQo2Zoqe/Cs52OGjbtdG7Gi7UCvav5Me0yNHqjbavYLnmobazgV5cBz8r1uE0/LJPGw3UvwGgkh0wPTmudOa6NKpUa3UxqqEE1V2bEN9rdTRbWtfOnPua9dU3U35ZZ0muf1nZRjNd8+S3585RQhEGExy1WExDiqYrn3m/oxWH86mrF17SCpeeu1Mh1A1Wcpoy+xIZwuVO8anDZPT3xs3AMFJJzp5mVBxsn9/YN39bvxCbt83+7uadn8SHMXNOhj18pc1CzgWuvndhiTXDqdoD/Md1r/PWmR6YgMhB6BxKb1TyPiK1WeS9d/2ZVu5Srd5bFFb2M5RhemBeUmFS3OddW8LPzat91mM7Kt5leL1ZFStutmIHMsYOohr+zXLlmySbHieTMeJ50/Ps27bSR2LDRm1RbwodPsUC2Q8wWElD5Nj5rWRGTz9Z7zs+GhRv2v/AAUaVKtKDJ3WSsZ0wm3kzQcIGjddQbAp0XnbvtfzGtxnXVWSVsq260qztLLsYV325k37LQDNqoVFCp+6GjormEhH6ZWiC2tWs8BNVHRZbvEpLnQoCVLL6KgSZXeyvfIQB126dqJVgZ1jMoCh9skZm0Tio69e6IxOjSC/SMB/6SuldYJaWTkoyhdWs3xVMwNSWMtxIUlWKUgTexglqoeGjUQCa7a08rPYop+J9htn0EqGUx7Y+RFJNRc+lyFGkhZ4SaShSFnNZwAgj+3gpBopTALye0NpnAXKFyrbiTr3VqaE+77gZsXp4kAehkniV4v5UoacQpkxw7taphNOaya+1UmxUq2ppKMG6t8bYD6BHhkTzU1Muz1sISTfYpkln5ZzGuBeyn1HFHg5gWIKPUzsW4EPQEXZVM8Sl1xpEFlQBMEAN8zEcloViHjIk3/3bIKW8hRAeZ88/wB+eDHifHFI94+HlWPgP4zMxVPgTsnUuTB31THhylMG/U4pp0LnGR/i9D5/i8mKatCnMheQVWx7DTfGjU5cD45/NSyiiBy7EuqvqH33aiwOIC1W/fysqbi/iadeSvmgc9H3FyRm0EnMVxkz9VydOCCzK5JbpMyR128y3keWMYQWiLjHwIE9LR+xj5kId5SPmpSJPxeWafo5lQdCkBP5V3LWbtnU1CpFBfNBUjaiXGtce/iUwYR7BbyUuS359nLTWer36xRVuYGzU7JOk/q28xUKeTghvKbGPUEuhgYmhADrXot3SMcmqF2+CWaiVUbYgu3I17tlA0a0aiDoNwPFsZok/JhWv9jf7GmsBskOs2awaj8W7sKpUu83aGVnb1qzlJzjth8FiRir8tLR909Y1JtqWDktUpHhfabcPhSjp5axXBnftTIStfV8MNd7pf2Gk2pfkGV2evXvkKXgzDcS16tqyUInc+Rd8q01qEHntsFkdpLFQFZ71v7Lbs3QlzPngj69dZcU6X1hgZkuekFHmbF0gScxlrXo+5PoddQ/RsyW78OP+2itz9H3eHXLUvwyluy74WtXMhEepx19UMo+0d9suoYUeluftqKqgWn+DmeZdMNPeQtuFaN20ZsN3pMNq/Gm0szjEe6zJrhlUW0Sg09tvYNd1Sp1bsVrSqKJu58lsPtuLKczyTsqhNn3baWuEF4jW6rS0glq8fNqfq786+QSjQNQV1BNEB4FYkarTQ6su7T/ALna8lastTwZHgZ4AxMTM0Nm5m57k1en0x08ubV7s+Sio/yljfjkxFlqGAARS67FLrZvXUqwvJHQv61ZtF5g9zCzpUFllya9UWKu1SJ1kuZtItK/CYvYkVMyARXQVpMiXT6q0Y8GO/6WMt3MnLr085MD2++YSNfnUrQrQSY7TvlVo/AmXzEzHOu9bXazoszd1LHzMSbz8lyAgj8cyLp59sDChdi8iD52PPXboyfF3Tmy9Qdac0Kno3UAWUjmdC+05MOZGJ9/Vc066f05oTGpcm7nrshZoheQxsn+wCiDmS/lCflOBjFrqqXlsLcrpQ8GJs6spq/m1ea8v357C+eA5RT6W/MXkCm+cC1sy9vr7y0oHlTTfTZBowLpbNI4b2er8VjzFcfBwQ07JwsCVs3RX8NsYumNubPLF2ye6VpVxp+hesSVnwMH5gpiWT+OBPkJ4H88quNbIMFrJUCRWJmzlHJHPB4lzQ8SltWnGWDFGU+3FLFtMykx91+ZRXTGe1p8hcx+ZBMfmOMOBrxIAH3IgXA/eEQVpUOqz702S2uajU6atqJF6lkYGQjFa1KBWz7W3ITWYdDSbVjUQFhTWSl5U7semwUuy1eCUJ0oKcy8dG8MBdKW+hSShmZ5/8QAVRAAAgECAwUGAwcDAgIHBQERAQIDABEEEiExMkFRYRATIkJScQWBkSAjYqGxwdEUM3Lh8AYwJENTgpKywhU0VHOiRGODo9LiJZPx8gc1QGR0s8Pj/9oACAEBAAk/ABSkk0pR+K0LmoLQyPbvWXTNxANBDwLemgbHCd0dd8kiiBdyFLNYW149jrEzkpnbroayEB9HMfi5baUq5HjXhfmKUjg34qFC9qOtQpGEUhWVdX1Ju3YiaNmzBfFysTyoSmF/DDEjZWlPE3sdB89aO5a6neW4vla3EcfsEhkN1oDIHz82ZupNYkYe4JVmW+U8qxuFij/6pW8LyHiGH6djMF4ladiTvAjdo1I6NWKEt+DUiqyavwy0+aN9VddVb2IplDc1qElOLru1tFXgwI2eqXotIsOHj8MUKcBQWWdNqBrKp/EaxPdQDZBDotCi/fcAuz59gOUfZfR9XZfJtvemU/4tS3FvtD/los+HeWTDuv8A9YrcSYlPY6j7Dsjrusu2sRImfeysfF70da2douvBa1XifT2ChbmtCls48tCyk3K0vWhwpaGyhRIb09hsYoSVbiG2adaTu7jX359qsQm8QN37IJqF0TgzLQo9gprBNtDIttvFqbxwHu29uBqzd6LOvWlPcS7j1owrQ/oaNpcIe5l6ptU1Y4jDbevAg0LRS/dyULkUhdDfY1sv1qNo39LURHnIXO+xb6XNWxHxKLF2TEwteJo7a/nTmJKe8T6bu8O1GjbirragGXs1PpoW7Wt2ChW56uwf8pukcx/RqCpiQNG9VIyOm8podg7DR+zKzCJAiLwVRwA+0pNtW7dnYftlUGmvvsoWKUCbEsztvEngTyqVI1lusd/L+KgMUMNmWNQtla/FjxPWsNPgZDvNC/eL/wCFtf8A6qxsMzlboq3VtByNBg0cf3rN5m6dkihO+7pU817Xv2C1vN/NK0sjnRV81fFMP8Ng4RbztQkGEDnujNbvCvW1AgjeaoYnLurLOy+NLX0U8jTZhwasemNgxEIxErYdTovECtMW6hcJhiwf+hQcW/FyHCiSe0UaWwdcy9RQJbg3YQPxUaiUFL3fzNejWgcZlPSpRGYgCvNjcCwpycx1LU5w0GAsHMXFhTmKdBY3betxvUy2PrUNWHTENf8AtouVWPsP2tU6YeNBmKhcqxckUVgCi65ZsTe7dQKla8puzcePHscoVW6r6qJFGj4NuWh4eLdgJZjZaXI6by0O5DpldV7FLSNsWkMT/l9aKmJk8Ls1svUW2+1BzCHIQvvFeF6BNDsFCh9m2g7d/Dzw4kDpsal0ngVv+RtpSB6lod6Ty4VKoKePEuy8OVGyjd7RQoAGhQrSRCNKHChQ+0GbDyxmORU22NElAfC3ThRoUaBVJAFV/nwNK0sk/wDclK39gtAB495S1aA0VJ5rRCtF5qiLsE+dN4a8EE/3cnz41qSPzpdJBp+FhsIoarut6hwIr2am/wCj41e7f58aOklx8xQtHIbo34uFCzp92/uNlIx7zVeVQmOP63awvry6VNhY0wSSNEZWEdwdStzt6ChQvNELTJxYeqhR2UilfKX50pw2NSMDDNvK9vKWFe1HtB/y7T2LmA3lNJt3SfLR+wVik8rtu/PsIUni1SraIaltPl7/AGDUt02Ryny1ZZwLo9RsrrtWhR7MNOi+pozXxXBwOULLBcs5PAaaC9D/AJVh3qZGbpXmFmrU/wDKs0yCyu6327ah+a6ikqacwYVLZQv9xhyXhekET+ZF1y/SlzO2xaN2HloUyAoC/i6UABtogrJqtS/dDUf60FilkWwlK3dSNRYnZUrzvxZmuakIRtCv2MkOCSNpWnZ+C9Nt71q1DsUhuTVmax8P57KBDg+IdaP2EQo5y+Lb8q0A0VexiQu7Ro1FLLcCRmVSeFYmI4iQhEiV7lQdt7UbChZUuYc+zTzmpXfCwCyjgW9QqVnSNQir6QL27ASdtMoiGrcaijhHlRF3fc8T24oQBTqC3TSy8aWV0CHIsXFuFzyrMq+XnRJaskTiyMi7XOutuHYVEiaa6hlO0GoYkECWnw676sedFo09W1fmOFRrrsdNVo3FJb8a0mdODLS5X/Wls2yglpI0TEBNgky7w6Gh2Ch2PqZgir0sSb0KcImNgMIvprtFTJNiYkIezBvs/B8WMIfPbW3PLtoa9gpLs2gWgr/E8UOPkWpM8Stdn2NK3P25UGA/OnDij9gULijZHFL0ahpahQ7B2CuFFihQb3BraikWUo4sjpmjbbvD6Vhlw8beRFsPpWppcsAjBdm2NyWsZHPhVi7yJovpktzFRCPFyZpZ5V4Kf9alEwjbKWo3ZuC1cKfC1Gt060dRu0byx/dP+xrnmBWhaZdUb9RQsy71Gj99oH/yWho9j7UbCf8AJhsoAkUC8cq6PxVhsNJw8D8GU8RST/1WZzMzW7sr5co57b09lO2nEiHSVPSa3a0dKdXD7FX9+xQgPlWiDejQvejQBodo7VJagR2npZqlYou6nlX2HYdlZcxA2LbZ2GnvBsR/RWklvBKtRFW/L37UGJ+HSDIGfXu6KfEcFv2WUZ1BqN4pozZ0fQr/AMo0PtCj3aH6t7CohgxpkR2vLJ+K3AUijW+bzdk6YR893lbxEryAtQEsgHibdv8AKsArS2skyS6rRZJPLZrBjzJ6Dh1oeMHeRvBa383pFk2+FhpxoAiOMu3sNtBi1Yq2J7wIkK/mSOVABeC9mHRmk2S+n5VqBvGsCMRJAUETTKDnLHUkdKsypJYP6qFHx+Uf6cqjd/8AFaBihLl8Rzka9wvRRR26VqKBZ1ObnsqVlk4FfLt0FEI3q/3xo3Y732MQYmG6oW+at5PEvJeutYtZJi3HT3Udew2AosV5tRpyIm2pw+laCnVbm7X9PG1EJDAoWcr08lTqjpuo3mre8tLkTizVA4wUt4DKU/ukg3t7cBRBI0+1cLWHEuoswazL7UcQZiLSma12PO47DUzQzJxHEciOIrJgPitjnTasv+NHJbUxcPdelWikoLQpRG/Soi6cHXatE4rATrZeUbDUEcvagA8jBVvs1oiXGy53ltugaWAoUKFMTGxvl68xRrRV3aJNCySa5F8p5dqd7FHL3zra9wt2rDYjEPPMjjExH7hYw3izHZsq33Mv5+b8+wAisjAN3cEXrfj7WqbvHn1nnXZb0L0o0Q6el6P9PLVnHqX7QoUNSLUKHYNPsmhQ0NH7v8q8UTAoyNxB5cj1ppGmlRSzOu7pqtPZpG8dI8RFiVdcra7KPRqNpYxb+KWzDdrQ0bRz+Bvfga1mTxBfaiRG2qr6b0rGRPC+m9QprI+770d4ZkokFGoaOuvvQ461vweKJ6FmBoUbxPoytQvG9G69mhratbO0hQakXMfV9kULrSItnUUQmJnNmiHn6/8AIlRy3lXavvUCQhEysV855mjTXwvlb0UVOl45V4Utj5W4MOY7cRLh39UTlamM8wXJnZRmYcL22/8AJ1PafsCimRNXnl0RP5otisVxxc67P8FOz3pmd23mbtenokk6Vqo/2a3RUYuNjL5q+MLFisRmSTDZDZEHFmOn0pIjChAeaLeVVFr35Ugw0OGJiaVN6UjQkmmMpI3m20Ler/TskWJW3iw/ipW7p9q/v70t0Q23rEnpUH9OkpuE5dmIMV9GTsNYdIoUfNLi5f0FWgV08czf3ZeFvwisakKcAiF79BXxSS8i5o0iiDM2lxpeiVw6ndXa3S9OirKdIla+nEn5/YVXMZvldbq3QjlXwgYeWdrtLDK2RbbDla9a0acxR0bx8Go1uir/ANViPuMGW5bWf5UxdnOrUawXfAbzI+VmoSxIg1R91m4C41tU6T4wR/etCgVYA21RbzHsJRWPiZVvlHtTh/MrabDsvagSl/EF2kUGCX0btF2bdoAJLfL8tv2HKMpurLSxtMnhOLt94ycqBNEvG4syNypXiKeDLL07ACK0vvJ5WpTE665f4rdS0aUtLWlCj2BsxX7tlbY2u3p2G7Hs34sOcgoPFHHnl7oSsEuBwW9tTTlpnYs7dTtoeF/yPZOywT6SRc6N3HYaivBHoX60/gQXahYnWiD9kUCQ+7SNn1Jb8PCruaxKB5LZIfN1vTxRqwIZ32LbW461qL9i8bluwdmpp9FHh7CG0ySRPqsicQRUh/psQ/8A7k29BMNbEny0UMEH3KN6wNppXaM6f4+9Gyv4WoKVbzL+lDxDeo7KezSLl+Yo5cNLqvzoKUfwtS2RxmoEqPLWdQp8AbaR1o74o2hn3fwtWlluvvTAQOSrdL1NHJLa4XZmpCsiaMG50W/o1OaUJvMACco96gTDwtZIcPEvhjQbFFQlcPNufxepVS27+KhQd5HTzWAvxvRYv3EcjX5ka1s/5RINTNIU2Zm3agaVokzN7fay5VIH1vQQlxluy3+nXtNSqycFdb2oYdl4N3Wo9jQWhoaNx9g9h7dB9oVhJHjjH19qZcTMuzCQt4F/zYfoKZI4L3EKKFVeVvsxs+LLqsZX2tTtIyP3btwv0pHiByyKxXeX1LzFaIm4oXhSN3d7FuAPL3pmR0N1Zamw0inxXaJWPtrSRYSY78sUQGanZ3kYs7cWY3rDHEF4yIyHy92/BtP0qWKL8UrZRRgxEWh76Bg41vbXaO0N3CfVuZpzIgPhYrb8uwKozavTLLhiQBMutr7L2rEKMHhrZ2Xea+wAGo8kEekcS+Xqetav1W+WoIJ4ICMubjzNxRTDRol1ZuHAC1YiMqiE6tbMaxCGYWGTQHadg5D7DpH3jhM7tZVvxJqcYl40Txp7bL0iRQxLljjTZ1J6nifs+9MCYk0La5bnRQPrSRhhvlBvGgE/CopyHG6vqp3RyfCq+bpSsJPMrbfn2Eqy7rVck9jeHgvaPCTapc4iTInQfL7I30Dq3qBrCyYkYqwR0W4S3PW9PBFhVJ83hjtzvWJeM4to5ws2zIUGXThfbWHilwJjzNiFk2HgLcalH9MIjdOb30P0v2CgLUAUoXNDxih2bPsbBTqJk2cQwO0Gmiw2DXbBACA55sTc9mTIw81bOzhvUrSSS+RedLnnP9rCimW+MI72CH+1Gw0OXqfMaNml8b9F7Ho/ZOvA0obZvaV9aYu5rQUVEi3Csyg7dNho0QFaiBR7d3ktHZsb1A7KFqVXKOHytutbXWlsn/27AebDk+ZOaU94XQh+WwkGkSNX2qmmWkAZTQoXjvr+GictDPiMKudLbXFBh0atVF45Vbg3P50to2P06UbMKOvY9pU8Ls3Hka2P4qa7ReH5VFfGD+6i+dexEaSWBoy7LdkXiy8qs8LeKNm8rVezao69hyyRm61MJ7IEV8uXQdK2ipVzahUDjNoAbkHh2ROkcozIzeYai46f8mISxS6OlR2mOskXrpSPsgtxOX/kOERt40Ps6ChR7D9hWIqbvZnF0wttfmKH9FgtgRNpHX7YL4x18AZfDEp83U1F40cMrr9CPpe1QLhMHh92K4ZrnrQIIHiosUplQ9VDH6Gpbx24qB+gog9vwuIxpMZWxoiOfZu59lqw8GGybWRi0jacb8O0qTLAkyhOCtqL9anCbBBAEJaS5tQuy6NQpScwBTxcuH0vRzw6SPLb+8x81PlCaPOu1z0qZ8zjK7Ft4HbftD93fxFdl/sKxVd4rSMwiGaToK0BFm/FU15ncqYvSBxrRWYJm4Uysy8Va47bXJrazZmpQg4LViRTXc0SGFOzt6moUHZhE3dInmfhc8APtHT7T3fCr3C9EuzD82PZhsNjYZbXixUXeJccQDR1Y5v99OXsBUrp1WnST9azLRBo3NaLQvQ1HYLfZZYklBKKGuzWpHKR+YL8z+Q7GjQRRmRi7W0HLr2gmos7yaUFxnxZ1v0StSwtNjeL9E5LQcwhwWC7flWISSSXwqq6ZUHQ0Wy81osf8lo0xf8Ayq4ojtCiLJmDs5t1sOJpFbDK9jOVt7XJ3aALUKAFKe8vq3T2qUQqdrt0BOzsRkv4gG0+dEu3mrVaY+E3WgS8fH8PI+1G2nZK0Uy8enIisMfheNsT/VYRbrIeqVmeMLmdPMltM3tWqto1CynWhnw2KXK/S/GgWibWJ/UKe0EB7uO/nc8BXdO7oSB5utqZnwmLcXRti200qNGR97LtCn9xWq70T8HU0SHSghkdAjBdmgtpQLKeHMHaKOZLXX2PA1osnh/iheo1VJ38K7F1raNPDWhoB22o/p6ih4xWjCvehRXO0ayFV8uYAj8iK0NS2w0DHJ4dy5uflRuo83/IlcSrq1FVxKjZ6uoqK8vni9dD7B7Bf7evpNG47BXjej9oU6YKEJdDPT/1OIbQzsvgT/AVM8srbzNr9g/YNl8q0kUpTireFtuulYdD1akKyX3TulenWsSmEibRnflxA61A2JPCV5PD78rUFtH4Cy7G69gIrO+J8TTM270UViZTGpukLNdL/wCOy9I8csn3nj2tfW9fdiMb3qPKo3lurHKm3QE3ohIYPh0bzsu+yjSwrEH4XgPhUQmAiOrzncUc8ooWJQM1Ct2Id3G3XiRQKq5b5XpSrj9OBHT7BEMdrMqaZvegL9ptG5u34vnTKWt5etDscqHFm/FSKMgtdRve/YiniG7D2lAke2h9gE3NAw5lzc62faHaDLLIQqIi5mJ6WrFRRTuLphIvE/z4LVgKNGjUtqIDUb0wWnRZchKMwzAGhi8S8EQlxOJhUPDqu4zE7aa9+w9pIai0hvZV404KS4d7xMv9u9xp9aIF+LURKODfYLQwTj+6i3aNuduNSS9w2/LK33k9vVyH4a3hTkUb0VBqVrVkY/41Gka/nS91H6fM1EKBu1ZytPFEX2FuWutFngd9ZSu+BpoTQYRnZn2+9YhXdjZ4tcy/6UqIG8sfhX6UKRWggK93C+yaQ6qp6cTWHMHxXFCyqkzFBAeJU7t9iitBR7D7dmqN5aFlQ3H+tGk0FOIkHl40qxAaNpcPzBHI1GIlc3yLsX2vwrWSMUCSK3wt0f0tRdYY51d4G3SQdtJkCZ41/wASocmt3b8xetRsajefC6xPUCkyzBUWZTkk1tqBwvUAw8pOZkW2WxJ1WuFEFxwagUEbaNRuzLZqS8kJOn5iu8kgCIsxdLd3LxHtyNCjZgaeDBYiJPuVVcqsep60hSZDY1wqJnEa53KjdHOhfu0MjXbyj7O37L3xUQzdzxkXjl69K4U7KyG6staTR7/JqTx7ZIh5qH2BYf8AJG2mBt6aGRfsbO2LwDflbdWrfEviY+iGprR+WFN1f+SL9mmy3zpnWG++q+9qNwu7RqaVMPbxqrae31q5RX/KsOYUKDhv9bUTlFC6r5q207SOvhLM2aiAD/vShojj5qfCaEZnkhkiLSLcBc9YxjiX/APFRJNC7GnuIvBKV9e1h9aRXxk/iRW2KOZqVpJG2s3Z8UggxqbMK63MlMMXh508c2GQlIX4q9OGHSkYou83BaILemnYDUIi+a3WhdamQwB8obUH6Vqo0UtQsYMg/wDoU0O0Ek0uqmgVvSZ2yfd+G/i69hIFDsw7yxxb7Lra9OI1A6/tW5fwlttqcuVUIp6DZQJJ2L6vajn7s2zfawUmIF8pfYinq2yvjvfz8cFgNT82r4Phvho2f1Mo7yc/M1K0sshu7u1y3YCIV89LZfM7djG1Elqenp7VBAGnbPKyplLtsubUFW/AbKUN0ahqaw7NIm/fRY7bSx4VvLp2J3gTy1h7SOuRm4ZeVux/Heyp+/t2GwbSuBo3P2pVjZzZWagJZE35X3UpjLJ62/YVME5ttp9FGnDN/rQYjo1J96Dd5Wa96YutvD+H2rD2xELlxMvnQ7Q3tzrCSyQQN97iFXwJfYCezBypgn8XenZYnKPzpP8A2ljsGSu/4HnBucx4qNLnjUvf4iU5nf8AgcvsjU71Ghwo0hkk2UHlexKovIXJpEkYIzlX5AE0VjSFM7FvcCw61kCDKrM3M7LUqhGejZMRufKgP6rDjXqtFnSC69bHQinUxhEWyrlC6bAK1L0PHbI1SsYbHuF9FzcgVLK7LoFdr/rW4aP3LmmXDug3lXeFTLiI21Q0pM4a91X9qgeWDGIwdLbB/oaHmsPaos+Nc5YlZtCv4eRp2KDcbpyPWlKYtFyv+Kpu4I5qW+WlOyLIMjhTvC4OtKxW9s3C/wBkdg7XaORNVK86RU+IxjNPAo/uji6jnzFbtTNH1Wiq4hR4lqLx7ZYh5qHaLEDxEne+2NCafIvBeLUMi0aBt2G6n7BrENBDLvKtLkuO0+LtH2SH13ql7oILZgtQriEdMsTOvLeaj3kkriNOHQUYfiPgtaWRkUPxK5A1xX/Dr4wSvb7nHzEJ1bwV8GwQS9gX+Nyps9wK+FQGeKXJh4lx8mJicHS5INSuIGkyBhpGGtfKBs2UPv0cBrbLa61Cxyi9k7CpL+X0+9SWg/ta7FB0rm+v07BWho6TTFz9a0hTwRLyUdgp2R0OZWXapqFg77+Iw9rt/mm61SDAz8cTgB4P/vkO1flUP9X8ObbjMF449PUOHzohh07BTZ2NyF9F+PYc0hRVZvVYWHzodgqHvcOi3ns+V0F+XEWp7sN4eZaJP2O9E3/WB7ZemWjWjYi3cPbdc6XPQDWoJGhSXKs81s2iniNui3PUn7BofYNYzEQwHyJIQuu3QfZN4uC1pF5UWvZaNlo0bmmqTVtVWpQnJqxMGGCLmLTyZfpzPTsNRKY8RZiy72nCtrG/Zh5XR91lUmh9n+9GNfxCj2bprZXvRphmGxal0TdVdlZyX3Wb9qN2o1q/DNUy2cNvXBBGhUjnRoF5JWyIq8zU2Kxzz2MrwzkRXB8qbGt+KvgM8uJkW6SvqVvsJJ0S41pT8RwsqCFcKGyrI3Cx9ztqGTCPEmW8PiiXnZbg00fxJOP9Pv8AzQ+KkZHG1Woykd0plMoGknHLbhyrxN2AnNu+9LeWU2Revzq8aM/zVqQSos2Qo+me9wK0CzGL2DAisxhWV4lPvWKz3xLQL/iTtNAvPKXg92HGjICYe8unBk/1rOGSVN3rca0/dlIn+fEGn71Ikj/cVh0eGLvXC7veakCnZVEgiiT18TQyLKMy9RsvQbIRZWC+Jveie6l8S9GG0UurfdTryccaJKUbnhR0UWr7qA7C3H2FAozDWXjVlla6vysaxAgaeLaVvdxtqfCzYUJmWZZAubmAGsbigsc8f/us2y/4GpSjobMrUAH2svqoEt6aKd33mYrobNs0Ne3YO0G8S5t3b0FDXZQ07XaOVDdWWkWPFx+LE4dePN0H6itVqWxHiVloFJTv8VpVEPFl2O3Ej/kCj8qwufBD07/+Q/ilaKAnwK7Xa3U9usbby1qKPgf8uvYLfZRgSM3yNIw+yPsqXUKRZaAh1uqp5a3onDL7jWsCjErcxFnVkPp5GsPLhrbdXrvW93r4xHgcM4RhDinujOOoGlRvgjECJmNyX65TStEuIKpAh2so1LUHM3ks1l5a8aMGrf3glsx5DpU/f4dkBmVdbcynNaLEIxUtwb2qUviIMQ29tKsL/r2ChUoaaLC+Xg5U3A6iiD2GynjRzoNzPWiyb3hqRop72VkbKfrWEmgm4yxr3ch/yTdcViYvhsyoZHxeD8Gg9cJosULHKzbSOtqBNKw/yodpQMFLFna2g21rI7hOmvGpYhg8Yrd8ssYbJCq7R8hWR8X8SP8AUXEAWSOL0u3G5saLlyPGGXT5faVpWjBKRLfxk6AacKwZw6NKcPPFEtgl1OuvC1jTUOw2Cih27fsjtF5/K1EsaPYae0AF/n16VMDELlmXQhR6eOvCiTGW8N9PtkthZD97FtuKkYYjvzZOBjOoPuNn2ZxCkSZ+rfhHWge6k3fw9O3bWjCiB2GnJWMWRfTRo0Fa0b2vztYVkGMCOXaLY2zsW8WEBllFr3XZb518POBk+HkRzYR7Lb25qedYlskgsyoun1NTXw0riR2fgHJX8hWNTFQo5RkbgwNiL1h5IGG6/wDBFJhsaUTOzYrQog45x4q+Jx4IqmcxYj87eb6rWEggbD3u6L45b6gs3HpUqwmdsod9lYNQkDgOreIPbaadHyETqF4a7KQwLPZ096lWWYqpzrwYCs/3uULK/TZUqWxFrrE18tYlpoMXkldlXJlYdDUTrFLI8vh8jNyFSs9i8KTJusu2u8ixEGIVglxlZQaxbOJfuXjyf2L7KlTFnFYeKS8PhXTaKmsU75Z+JUlzZajEkDza6i+W2ptUokwGHhHyRdgosJ3kKAItu8ZmNrCoSFcd7Erea2htW5ixeMtwcaihs7E7wodV50QVAulAi3+zQ4UbyQ3ki9xtonEYLF2zo3/UuNA6j9ehNBleM61p8SgXRv8AtlH7il2GzLQvC28tG4/DW2gDGxpfCdV9q21qtWR7nxJwU8T+LbrVoUddr+br/FHwg+EttIrZW3sdo5UN1ZaRY54/FisKvD8ajlzHCtVNE1c1HdU2p5rVoR9oXb1UbNR+y1aN26mh4I9/57KIJfgvl21A2IhB8cSyZSw967/4RjgmkW8ppbSo3hbysvBh9kfbPgBoMsYI83h/XbU2KmK8FchF99axEsmK4M85ZV62H71i3ZTwbWnWfYMzxqSFGwDTZReWV+LamkBPFWoXINOGshH5mp0hxbS92MOAbSu2oVQBvUjRSIbMrbV7IXlESGRyq7qjaTSEMd350G0mEWHVvClwNWYmsXDJNPGrhoo8iFth6WvsNC4S353rb2EJ+Juyac4kC0XmX5k1clvLUcWNSOPM/dS5e79z0rSYnwtsy9alMqI1l/FbTN9gE/40P7aZU/ybT9L0SUnnTAjoi2eY/tWmHwlsNEvCyfYndJwPukVL5m6mhRWKGGzu7Lce1jtvyoIZAMoZFAVPa3HrTtLDMQzK/BhxHWn46tWMjkZ9iKD+R7D4dv2XcYgGzo36io1jAG6p/ntG9u0NR9kFC6h1UrvqeNRMglGZaxCyuN6JQwZOJvcfuadvsTQSlR37Mm1dgyHsHZwFcaUo4AJXoewXIFMw0096ZQR5eNAEP5fSedAsg/3akYPm3unLs2dppxKGtZgLUeyEyo4VXVeC518VcIi3ZhnGEnjyd9sUNSIJLZc/mtyvyqJJoJczTZ6lP/tNUsIfMbeRqPdTxP3UM7Hj6GNIsqng1f8ARMQtxszIwIIIZfagkXfwpE+JUnLIU0BbkawQxn9BAZEL6kJcKwHMa1KU8yo29GRwvQvK4s6rtLc6xMEIi0LM2rW4WFfeT4dwixPux7SDbjxoqjXOdVXjwrSTDpluW5cfpapr4mDIqp0Atel1hktL01o95hXvZlW1wwIBtUdoJVziFkItdOIo3u+ZfqKZXe8bZg3h2bKOkUBtRd/6+STMsWl3K6H5Gox3roDLJ5ipSj4YjcsWt4SNKKlFbvG+gJNCR4MCpCxJxtsRadYlLoUTza66e1CyYle89m8w7CQwprRvo/4aIN6Nrraj4C/j/Q0t4JDnRvfWge+tlf3HCmZHQ/Sgq4yIXniXj+MVGww8nq2U6vh5+u4eRoeGjrtU0NY9K0K69jEIfLUryhdFzNfL7Ue1jEH/ALU/obr0pcjr/sEdKcxyx0gQp/71hl/6s+pfw1tFDjU18G+1dpWhlglmZk9j0/51y1HZ2N4j6qdhG+8vBqHY7RzRNnRl4EUbvlCKq7FA7BoDf/kEOZLDep0LjijZl+oo3Y7FWsaJC2qYPDsGZveoB8NwflWHf+Zokk9gsj7p9VqJDA6NWp7Mb/TYcTZ5AUDbfcVgYJJ8I7rFZiFUHecj1BaQrjsHN3WJXjlJJH0va9ERq2+52Io2k1EI1MLqLbW8J1NQo2FY2YtvSD8Hz8xqVRh4jdSyjVuZPE+1Y9sFiMNB/TZBGGaaMajwaFfc1cJNiAsYbeZVB1NOhLC+RfL70Daj2hbkWBZaRLK2bMF1atMbjVyrzRT/AKa0amUzO2kStfw2OtCjWoQ5HT1KfKaiWKCPDd8bLa7EaXrR8FD3ETcO/l8Tn5aCsVBNI3uP1FFSym3h1H17MTDE8S5ist93iRXxCDPpky7Ot6d8XO2ilFstSrHCm+qeY+9LR+bVLAIk2ys/hb2NMrmPS6tmX5H7Q7BTBuq0ilQMvKi3eg3fYERfUSeFIO98r0KW6rvVs7JXM2lmzViGkHFaUHvUAkbzadahWZkGYhtlhx1p0fP4jk2X9uwEUSRKMrLRpGyerh2Grd4hvTFpPV2EhfMV7BrR4dg20b0LrQ7A2UC7Mvlo+EebtcrIm66Nu+xFTNK/qdr0GCNcytbNlQbSKws+HijUIpdQAqjgNacf1Ii73JzWgElX+y/FaTpJGdyZKIXHrvpxJHkemdJ0bJBNL08jU7hG65gp6g1hu/w8m1otSv4gNoNfFO/+I4GWWJcGUPeRxB9Ay8Q1Z/hc8WmNwm93Z4Mn4SdOlTKXifxp51Tg3tzrNJDL4vD5W501o5d9fVRJU71CyPT5VlGjddbUrmaTcy8ddlqS39KQls2ht/NQnDHGYdC7uf7l/P8AOoi7RhpdOC310p74RJO9VWTzHQm/ypLYaGIJIIPCzLcX+dYvunabPBAy6vd7Wv7UcgTDELre3AUzASySBPlZAKldMNgMGVkaFfFly1mjGLx/cd8W3mzfxTLJh/heDSSTldtbfS1QrHE+IzYdF9jcAcrUCPTQswqRhG++nBqlvH5WbhRtGn5mrl01rWSD7lv2NXkXeD8L0LMN5aexX/dj0rWNfDJDf+0eXtQJj/3pWsR3c370LijZDvUbodK2dg7No7XCOn/uuJbyfgb8P6UhjkQ2ZafLIv5jkelLZB/fw/GA8x+E/l2SumGLeN022qXvYEksj8xzqUSrYEPwa/LsFjWzsF2Y2Wt9DZrNcfUdo7N36fnVtRehoozUDQo0e3b/AMoHLQAHJaTMnRrULfirZKuZSG6kUKQOTun006qq/Z1FBwZUsrMthoSTY8fF4j8hUbSpj4SW1NkNjkvSyhc4iZeLEbc3S9EDOl1v7caxMeIlyd6oRc1oxxsAB7XIomN18M0u2VW4oDsW3G1EPi5yTM+v1PsNtaImfJ1UWHYEys+jNvL/AKULN9iK2HX+0hH91v4p1kjguF13jxIoEk0CHG92jxu4StUxD94esUY0HzsK0nlvjcZ1d6ezCsOhb1ReH8tlGVW+TfxRaVijIq5bbRbWsuHg5s2UfnQVcRiFywW1uvF7/pRoqI1YL117JWGHLZjFwv2Cjdux3M19VK+ED3oeFNWolP1oBEFL2bKNjUzmQtucKHjG8tAm43eF+tbKe0o3V+wSCKPYio0lkVV+leCZPT1oo7S6rlbnzp1ZYtmXZ9lgQ3YCDQBpQwH2XviPOu3n9KNMFD7117fMLdu1DZl9S8QakzQyj6Hip6iiUUsDBLEeAFYuHA/HUKFVfdntwHvUBw2MgfJPF58O/EUXleZvHI+23AVZPiaD5TUxilU92ksvH8DUbqaf+m+L4bWKYad5+FqR48ZE5E8TbwJ23HI04SVLgaZlYHQqQeBp45YsQDGytvRtyt+hrOJS+jDUBfajJLCrXBK5SV41ExAc5U2uF262qMhJLasyr78axEAjMBKt3nEiwte2w08H9cJg2HdXO75gRxvpahBPFgk1ZWtp8/yFRlExOcRMlt2xuKV4osOFziRCAj7WvpzrDRCNIY4iiAqr2GhNudFhM8ymKLL4SmrMSaLaqgb31JFDu1YJJO23ZdiaQziRBGksSnKumZx8tL1d44P+lTJs120kGEj+KYz+nRtmllDKvQCpi+E+E4LvZ28tyLn/AOmiYhiHBgi8xU7L+y1E0jDiFpSODUTkNHwtRsH8P8UbJP4R78KOSQ7q8GI2rQ0DGl8J3q8cb+GRG2MvI1eTBz/kfSaJEZ81AOp3G7NtbGrX7J7HWPFxi2FxDcR6GP6HhStHIhysrU9mG1eDLxBHKhaD/roOMDH/ANPI9r5yihFC6WUcqBt9hVb8NcaHYj/1uOXvIVVvDDHzbmx/IUOwKwPl/mivNVNRrHPxVdj0hQjg32T9o/YPgXd7FZZHjSVPSVYXHYKZSDvdL0KJFD7JLRx3RU5X1qWSIokc86xNa5Uiy/NrWqfExX1d9FkbaNWUU8XdKuURGPw2FYRQ2NdXlZW8WnlX8PIVmbDMe8R2bxXa7MD7E1kGKm+7j9QS4zGhsR1+hBoKCqBPCttnYWEgt3fLqOyNkut7t5utWxOJgPhgcaAeqtJcTdQy+VBt7DZqfMbfTU9qq8iROyBtl7V44YXCSpbdjis7/U2FWIfc9uFqGlFfCLs1WKDVpfKB70i/EcZxdtIk/mpS9t1dir7CnZggyqG8o10HSgTT92sh/S9FSVNsy7PtKHjvqpbL9SKwEeAw6rZIlX8yeNHv5N5z5VosLedtlJmy7XbzfZ0pbl/T2Gh2DtFya0INqMsjBLRsrebhe/Chewprr2BfF5jShSvH1dqqg3Q37604dl3j1+wCAwuvY6k8V40Afw0O1E9itJPgJOE8PjT5odfoaMeOwbbuIwzZl+Y2jt+9wkv96FtjUFnwU/Nt0/swp3MJa8M6UEi+NwJbEQ7q4yMfuOHKgxVtqtoynirDgRWbuILZgu9qbCnH9aBqNhcjyt1olJtyKV/0ajdKtF8UgXQ8Jl9LVG0OJia0kR2oaeFGUHMJbqtx+LYKxPjia9k2/U1hblr2Evi2+1qNr9mZqG9qi+22isbr5uftRVEkbf8AN7X5U7RybrfP9qwscwXe4M3Db+mhqZQIEKQRS8FKBbXHTpQcvPKSiOltCQKIwyYeExl11F2Nr26LXfR4fGOyy8AyvZrdLqoNQiKSHCnAxOfPK7MS3yTSrpgfh0H9Xim677k/ktYnT47i+4SybVBGbLbpSBsN8Cw4+6bzORcg0IjNjc0ndsuwX3qjI/7bS3zAFSrFFNIEaVtijiacfEYOAZRnX5HbStFKDqrrlZT7GtC1i3vRsuIQOxXg420Fu+rVqtIe4kNlb9qUy4SfSRP3HUUe9w0vjilXiKezgfWhrU13zMpiRfFs0a+y19tS3gVAysijMAbkg9e32qaMzz7IPN0pGRl3lbSh2GnCfEohaGVj/eX0MefI0hR0NmVvKa/xdG3ZFO1SOVN/0afQwtvQvxU9ORo9gIamfvs+ihdMutzfnsrRSdrVrhJtj8jyNG9CyijQ8dRPLHgcEHlWsOIIXfLlXZWg7HKMuqtTBcTwPrrScD5NQKstbf8AkD7Sgx5h86w5ixGHg7mV76SWO0DhQoVrQoUu8oZSvWo2Zj5RSkNQ7AD8vzop3rG0Qb8Nxm9ge8Y+wrEPIhiDqzeewuW+jGtT6aGVxvVgUaHGQkI/m5XBoOUOEKhuWoNIzzhg8ZXhbeJ6WoWA+wSa2HCv+RWnayYYW9yxoUK29siiRIrIhazNxNqQQ4345i3vN5zEu+AeC3o3WJQq/LShRsgGZkzeICxIr7nDDZEv2SR9gdgpQxHBqGtABWo6DYq7K2ensJyk0dtEGx2rRu1C6HRqIYbaQRr6aFQuD1WtvYiP+FtlGzDWhcnVqBKg7tE27IXEZOjldPrWija1BpJH3I/M2l9Oy4YU5athqdRiQz2i9S5tdaFFwgORVTbejs3GoUQP8qBJpCZs1lbgF239/wCaJL8F7FZ3Y2VVqUxHb3EXif58FoQRRnfWTE5mb6aVgsKXfxq2xZPmNlRz/DZue8lWxOH4TQ+JfnyrUw4fOEbda3MVD/TPIu47fds3Cz+WsRAMQ2WSIJOOIuBeoJ/h3xEv3OKDRWS485qayYhQ0cq6jTUGk8B/uwHcmSiBjvOnFzyb8VOYZwbRTPtf8D07H+snEMXm8ZBNvyNB4cSFKlk8/vRf+lkA7t+DrRidUGVO9iVz7aioYsNPwkTRHbkQd2l2by0uX8NIO/IzI3ttFO0jbWTZk+dF1hJ8Cs17CuNYjdXebXZwohyPNRstFGSXRwyhgD7GiuClfWQOwytw0J2cdK7/ALvCjJAj8GNluP8AurVligkbF4pum8fyAonCz/FpXSKV3yLOikExg8Kcn4b/AMLYXwK/nl/ksanlOM+MY4yzxS6MIxxPvRWQl/6TArz4BrfU03eAIBIvpBvt60LQPu9KxjiIbIn8SfQ18LR34Mn+uo+tYiTEXjL/AHqWydBRtiMGe8Rf1FHsJK1LdmJzKPKB/NN/0aTdf/sm5iioMVgjp+RoktxbjSuuLU3Rl9thvQylaLFvPm/ahc1HcYGEyvFezO3BaAbGv4kTyxcievThVp53hIXS9AEr5WpEj0Asi5dnHSjV2hkGaKZdjVZfisS+Bv8A4hRwP4qDKB9b1uE9g1P+7UTnBsy8VtRYud1VH70xSMUXSDCxje2u/OgbmswUDQNRo6SSqv1NYd5IZUyB18qg2vWFEoMeRXbYp59h7HIIprT7Ef10FWcbrUtmoXNaMD/y8I99btzJqKRwNWsu7eo2oUGX86KtQ7GzW0rR11VvSedWhjXfduJ5+5o5Jwgnldl3AdFT82NTCVYXytwPU+1GjHGG8Al1zNHfMQbcCahWGCCZy8qeaNRkAI/FTtHCX3m1Kr1txqUztm1l9XXWozP4Mq3bdNPdzh7Bdgo/ez+OXog2UVIItQsvatbiQW+ZIq3eJ903tqRQAKUCxfQKBvUCCDqvZtoFndrLUrSYgrZ3Zr5fwLWUx/5aqeVqAfEsLxw8urVISX2/biK/75inyN5brofnQuaPYNKW49VGxG7UZTDvutz7L/ho2HYQFij7xi3LZ9aNXY7qL70AFj8Ob1czSM8l6KhrXVf2pA+3wRNd1txIFNdymRn8zD5/tRu7bzU6v1WnilDrcBdfka2Ju1E8877qJqdNaCGZwCqowbbsGnGlKMujK3Ym5YB12ZRs0rZQvZHEbq1mjzAg/LpTmJ9kES/uacKpOrEbtOjlheyfPnTEDitbsd7fOipLfX50neKdV6GiWZ6A/nrRAJoeYVq1Eg9id/8AEsTHnsvkQ7Naw2GeNjuMn+tBMPJFqyMBlI5ggafO9EqwOZOjcvY0bqm8vpvy/CalbDScVXdb5bKhXDySQsshTddeOnCnTEBTsibxfSgyvAncT/LYadYPjMQth8U2gn/BJ+zVs+HSiJIn34q0lXWKbjGaR+6JHfQhyFmToalGEx9hvgKsvEjTzrXw4fFYMC+eKZdJFsCL9dGozrIm/E8RzL9NKwWMlixBzI2JYRrCQLXSsPJFGm4z+c1Ajv8Aj8OYn8QpJQ/lOK2hejAWb3IFbG2BvN7HY3yJoar4qUpGdi9gINBgvqp1atFouyv4XXy25350c6HVG5invCn9pvMrdDakzt8TdYcKym+nI9adMThvgWHOqm696f8A8upu9xXxtv6iaz7qgmwYn5tS97BhlHw/4ej8XPEewqVMnwfCNiZLa+M62NIZMZ8TviX5xJwFZZEI3q1HlajYihqm97caFsPiTZ199DQvAj5Vb31FbR2Alju+9RtFINbNWYxk+LLtt0rMUF8ubaRwvbjUyjG4cZhE3mHKgQ6UKNEor3RvxDiD0pAsgdh9CQL1ikMav3Ukq+Zj5V4e5pFd3G83l9uwWagJDF4evQijdd6KZfMKAX4rGPEv/wAQBxH4qFFnVGzMiWzXF7bdOV6P30hBzJZbEbKLM+tm61KjOqAMFiy/U8TTIVtmsjUNulJaQNq+beHK1JSVGzS6ladjFNP/AEsXRScuYVKHwZULhlV72RRYk+7Zu2wEEZkbNyHYals+xJTQtKN16QqRQ+1qO0dkECSSNvWtR7l0NmVvNUimippVoVl2+L2pVPZaSbyRW/udBWHR3BvCi6rHwzC+09aLxGSRpCzKTmvS37jw6WF3Pqt+lEPiMUS3Vbc+tajYy+ocRQ7rumcKrAWcHJp7jh7HsezDdX1UpJryQvmrdeQhOijQVOsCKhbMw3uQA59o1rFRBzJlEPmtrrW/jD3h9hoBT2RCfk1TBE2szUA4Q5cvqreJ7BQ3BaK/60VK57Iqenr1pRLjJBeKLl+Jqdmd95moEMKlPfE/2lXS3MntFGzouZfSvEg0Kd3UW2tppoKKlh5W7Dcg0KILHdWhQqAwzr/7zy09NIwQ7GK6ULtQq5Kb6/v2CiQw3eyG7+Vl/eg61MFtrQcSPpKrKPe99tChQp0jyeX6607RSIQyuvlI1FTNLM5uztQDyvza2z3rVl07TQDgr/sULDsDEnYq6lqlXDNwi35W+Q2fMikWKBdxV/c8TV63qAPComngGrIr5M45XqSCCeTRsGsgzdDlFCyygSr7HWh70LUxYlR+QArnQYOnNfqD0pGibjFwH+J/Y06vhpd1vQx2ow5UPdayylN3Ny4qelSuYZ0EkLhrXXlccRsNTd9G+lpawTGE8VlsVPEHQ6074H43AMkGImsY8Uv/AGMpH5GkbC43DtkxWEl34XqyTL/am4oaRwoYEhWte2x1P6GvhvxPF6ASOIg1upq0ClvFay69TzpPG+7dhdvlQtxR/NG/OomuniEq7rpzFYNPiWGXRS+kiCvi7/DZ5NuGn3W91OhqBGgFgssWqXOy6H/0kUP6WZtjK2aNvntApLsvBq1UG7RLx6VF3WHVyYok1bXrSZA3W5X3FDsNm8jek0CrIaiTEqU3H1sw49KxaunxXHF58WoPgTgDfjXjiQnB4IleRsG+lKJ8J8HX+omCnR5SP5tWvxP4/N/USnX7qAU6ifG4r+gwaL5Y1FiwFG8IXus34+IFL40oeIdh1TxVdpE+4lVeNt01KImI8K/zR0FEhlN6Kx42AXRqUxSIbMrDjWHTvTLnM/mta2X2p7NxpVD+YLxoWbzUK141imDtE6ywFQEd9gDGlUR4RO9KQ7sd6gMpZbRsGy5GpGcgXIXlzoZcSB921/7yj9xQum660RJBLqrcY25iiysviilTzciKUL8TjF5YlH98etevMUKmaJMpPhW+ZraC3WhQ+xCshyXtF4ue9bjSgBKVhIcK5iX1UWEMOrZfL1pBGkQEKJ0XtPYaDBCcobgTT9I5TQ8Xkeltybn9ond8I61sP2D94DeN/wAQ1FYgzPjILu6+5K3+WlPUtSJU0fzU06fnRpqLMpFgq8qBVV0CrUe3g6XpdZZM0jKtrINtC8EfhCq29bS9+tcaN1Dr3kF/7oBv8qFsPiW71Pne4+t6i0L5g/QbbVmincbzNepxhzFCzSNsaRLi6rbYaGr3LfU7K3u2N1YpdfnsNDS+tCyRIFX5UL2Gf6dqkhdWoXp9+8sntwSlt5VVeApe8ZPDGnN6nMmJkc3TLujh/FunYfsGsMJonXI6K2VfesPkjkfRW662rCrA8NyP8QSLnkaPeueK0NOH71vst+mlAg1LYH1VEJeqtQlRuTr+4pbRA+J+Cip5G+G4VSqYfya+FLD8/ZKFRM7kb3ppda3yfoKNlHYLkcFrh2bKwyzK8WQ975W9S2/Kmpb0NQaHZ3iwuLK0TBcrcCbg6ViJzjI1NsHPH3bvzKEGzW5caaf+qucoC3T296OvVb/r2pd28tITJfwsvlpO9jDZmXNbN0qJMDG20RXzN7sdaiDyufC7eX/Wm7tB5qdZBwZf9ew1pc0Ks+M+HSGIr64zqKmiw4farat9BQxU/VgsK/8A1a1hsInV5O8b+KmRP8NKxsunJz/NYyf5salM+HfwyrtuvP3HChqtirLuup1DDoa0IrTDSNeCe/8AYc0neQHcnTdb3p7RbM+3L7jlSFFfclRvA/s2ypxhfjsC5MJjZdExK/8AYT/s1YObBHC3TEQSpYrINMo50gSTXupgu4aunB08sqU5aCGNO7RuB2t+db7SIY1Zt0DhWOkgzxl5WU5kVSdp4bFrAieBGZBPDtt1U1i0hnPBfCfmtBMbDzTb9KeQwP4XwuIXMn0NABQ26KfINkU/p6NTgjbnDXDDmDX95dQ3GjaS2n81C8jJfOEW+zjRo2o3x2EGZ0XzpzFbL6rUo7rGwnIvC+wg9anRMD8LikKQi5zy5jY8mqe7YhzisW7plZQFvl2nraky4nHFcHgo/Qmw2JqGTFHAwS4YTqvgXFPon5AtT2XBQjE4x9pMh1AP1NKUMqAsvUiiEZQSv8ULGrlTvVsnHg96JUKbZKAJFC1BiY9W5W61ZMYB4k5itopSWOlQPC+heF1sddRpSfdKMzqvLn2cKu0fmX/fGp5C2IsjlvOotYN9BTgZd1WpmHz/ACosGXVfw8aFsbF5UX+6vq96DDDMPvVZt08xWEladm/6M/XmKdop4m0b0kUndYo6Tou6W9Q9+NKxCC7t6ay6emiU9LVvdhpxFPO5WFwt2CWUsaBgxEt7ozZndeDMaN1icBuq8amus6B2CfT7QLsToFosFU3ydfbnQIp7x7ElPloX4o68KXTytwah2Mo13eNYWDFKtx3U6ko1wRragB+FfsljoStTRoYM4SF9C2faFoMFgmdFvyBNqGh40an14c/epiVY6LWyNM7ewpqN1Ta1FYsQhuW5j3rVjvfyauuLx6m3OOLp+XzaltI7ZlZdntUSy8VRvNb2rS5vlUbvSlDgXsrbNeVKBCf250ni2Wby62FOxd96gzM2iqtBkZdGVhr2GtSPUL0tmlf8h2f3JF8bchRDyon3EXqY34dOwUACtbIPEvz20C0spyJT3SEFV6txalSABAPoNT7nshSVSNjLx9+VKqA+VRpRAqCQ4NGszpx6UEd7FmZX8IUcb0/fPa97fnbhR/qp18sFjb3fYPkDWCwmDOKe7tFHlv7naTQ924tRviOPT5USykdr1OzKOdRC6IQzMQnvx5VGBPjT3zBxwO7S2/xrLJ+tYKSCJIszYrZ4uQoEmoVnj2FW/Wo+6hdvAnIUSjcGXqL/AKVqG81I0wW+dNgtwpCkLbitQpYygHgV2sb9KKMjeJHTUMOwadsrjHYJfu3VvEyLrp1WpUhe/eY/CiJSrsdO9AI2HQMKlVJBIAsQXnck+w7NBTt3g81ABuX8U4JJ3qTxg/LrQtWivo3vW0Vzogq9QvNK3lWphLKo1iibw/M0kUUezLEun17JVPstGoy44sFvSajRlZbaUGDDeVh+VI4WrvPgC2HmVduTatYNp4RvMq5vkwFBIMTxidrBv8Tw+dI82DXdEq/eQr7edPapu6STVMnjjag4hbfaJe+hb/OM61EYb+fAt30be8TeIfKsbhsTNAfAyNZ5BsCsreIEUQhWtHH9mbjGaTI6/mOY6Ursy+KyDUdRT91jv6P+nV8haO/Am1ytYjvpWfNPPkIBUXJy34DUnnV0AN1qf+qiHkn1+h21hThJHFhLa4XqDREkTjNDMu7KvMdj3Uo0ovwYC+nvVyaBIXRgvFeNArA+vh4k8T2+Q5T+JDwpL4TE+LTyE07BuBXy1JKyl1aFl8QVxz42p7/E/ikuV0K/2oxVj/TFMNhkTztbVqVoMJ8JU4nFW3pMQ+wfoKEsU+LJ+I/E5ZUN0gUXjW52hqS8hvN0ynQUMzqM/wBK0cGzJ78RQ40dUYFa3MTGJPnx7HZEFQaHSy0/jIuqLUTBf8eW21FlddVaoGxONlZMmJeQ/dKNunG+lIUkJN5Q21T5SK1Q7yr5f9KFca3h9hFWaCPvT3ChMqoNWsKFsQms8X/qX96jEsSG0b/9ka1gxYzBl2X49hrZRJUbq9hOlMAb7tBc/lYrf5a8KlaWRzdmbsOoQL9BbtPabOu7RuznM1OXIGUE9KNPeDYj+igsiPqrL+ooXjO4/P7BBodptSku/h8O2gyyRTo7BvfnT5JEt3q8JBsDCk0iXy8uw0aezy4fLH1bMNKesSsokS5yfO160jQeNuFOhVsjy5t0LtsaN4woyqvp8o+e9UJTo1qjWJdPkf2vR8Qc5vf5USW8y0GbMdArW+RpUijv4lTzcr9iLDi0d1gniurxsNhqaObHBwZZIt1jYbBQoXNLeW4PiXjwryCosgRyEVeK8DTkGQk0HWeU2efNurxNEkXoaNukNW9XELRs0ceRf83/ANL1qfs6Plu2fn0oh4Vc6rwci16lMUybGWsbO8TalM/h+g0pSxNT2nQ55E/g145F3Wo3J7DRtLg5LydUIFC4VczdPejWKt8PgfvHwmXSRup+gNHQ0bVP+VTJIH0ZSooUSIi4D/48a1VXIX24VqKbxDh2XNOqLDHnZm97AU6SbbMvSjZQdF4LRt+L+a3gKIQWoVo6nw+9BVhkezou7G53oz+Fhcigxw0h3W3om9LftTKbiiAFo2bymj4h2Hbo34T2ElN5VoEGhW5tdm8o50ihrXllbebqxpzjpRwXSNaijEGIiEiErz2iiplaNXZfUDy/b5ijf1fzQBYUXi6r/FZMbhdmf/eqn3ousLoGim2vEpvYH1L0od5g33MVB4lX/fFTUAkwc4tKyf25Oo9J6GprP5im32YVhxBNxniXwt/kKsybIsQp/ttw1p7wPrk8rHmOVSmKT6iozgp+M8SZkf8AyFY5MFiv+qlZu8w0v+Lbye1xWDtjwtsPiVe8WM6FuD/rUUkMvpdf32VtwzmF/Ztld2Eg1dXcLmU6W1qBJMWFCJDgcyhv83Ovyr4fBFisZE8ISJswVXUgsCdbjxaVj/hOOyDclwYhnvxAIObNUuKgghYmV4sI8+TkCFrGQY6KXdeEm46MpAKmoJY8JNrhpXUq0J4EX4UxnwD6d7xVuTUXZxirOBlssWgJPHjWYofN1p7OfDZaNpF/MUGEsmZkbgirxPuexM6g+Ja8axaLfaVOytzg3MUbMKheX4mE/pmlfULEb3NYfAyYXAIsQmZfvJZjc5lozlEvivirk6G2qqPyHu1fFf6MfGrNiOHc4dD4Vv7DQVE6wfEXzor7ViTQEmtFkFBGM8hDFlvaIC7EfktbmfJfqoANGjZU3PntoUWhg5tvNV0RE1Lca2ijkwkRMqD/ACuajtBKnerbWymhUKz4hwGRkkuEG06DjUSxh0DhF2KrcKCI9yGZtPbWhcXNZgyb2Wolkhw7ZZlXej62oI7xeV1zDW42HsdxmGRguh12qavFkey9OhqFS5A7yK39pvUv4TT3wsD2T3PaKFApHxK6nrt41F3aHdWtGpWE4Y5j5WHD50jd2m83pqEvAm8y0KPYQR6aBOQXb27Njdg7DTl8Nw45KCywyDRv3FAvC249Ch9g0cpoJ/UC6CJVIaRrmxLbLc6GZl/tS5QoY8wBwO7UxeSLD99EW5Ja4o2U0O6bgm35k1EJVG1DpmrDrhw2xV5dhp1UAX8VJv6r+etSrNJOjoyv4tvEipWLYiVUeXjqbU+mHlKLK3iKHZpTiJFXd9VL4BULmBDZn4L9jFdzFI2bcDa9L1IZZ5Tmd+fYHYT+F3Zd1r+WpTKw2UoIYi7frTrE0gLh28ttlGhZ1gMaN77aFH2qxDGhZXk/JRX/AF8jyn9BTB2KZm/CdfCalDlwcy+kioFWQNd39VRIO7JIdV8TX4E1pHToixHg3i96NbKe68C2lHPJTEljWoFC3ZqKKx4IAFmfZcVDPJhIm7xrL4Quy9IbR71GjQYK4ureqkzMtyW40rlA1mI8nWxoAl6NTIjJsRtre1RMYztbhWoPYKcIH8LFtmvOnYzaJGocX6n2oVvA3pzI7+fjR8D7HqzKDZW9XWjQY4XELklXpwYdRwpROhX7xeE0R1DqedP3uHlF4pfUvI8mHEdmQwTuyKFbxKRzoArKMj1qO0ULRuPfL79gDfEviHjs3AcCamYQbZG807epuw3eC8bc1I2Ubz4TwNbzJT2VNLr5mOwfzW0WDI3W9I4u3h+XKlEWMfRV3UxHT8LVAmJ/pZDBiMJL5lJLKRyIuy1i7psbA4vwTxdFJtmHQ0e5fzKvh+q7KP8ASz8Xwrd1f3GqmoGmI2sq/wAXonDseDrlpklgO6ytu/750RiY/Tut9djUDC2cBldbVE+Hc7ZcLbX3FfF8NisPxw2OjKD9xXw4YXGD+1PFIJIpuhIJs361tljOS/BhqPzoIMTg53LNoHdWjXQc9a+FSGUbJsY2VfptqXvQrrqoyqqjgorCwQfFJPA+OS+dkPEa2ueYrGQYSfUuZ7mOe3qsD4hWPTGuHj75hH3EEnqQW1A2i9YX4lhcDFEHmw+NlLIh5rn2U4l/q8CU+dvD9DTMq4cMNNL5iGN6AKTxh0bk1rg1or+At6eRo2I0anIj4r2m8ZOV/Y0A7J4tOVcKdwkngkRdcyngRxqJj8I+G+OIyp/flOtjURbFYonF4x4tWCeVLfnaokOJ+IT933kh/swxi9h9NTQiwsuP+4w0GzusMmhIJ50uYRXydVFQGfHwwmKBGayXY2LN7KWrVnJLfOvlQNAOUcMyNsajdHF1rU1xoaRG3yNDvSt45UZfIf2rXCSeKNq1Ub2WhiQ+T77vmDXbmtuFK3cvsbhpw/MUpPe/rSkViRhE+IHuHdt3XnUolNtfetBSLZjdm8315UKEZlVG1lcKtgCTtoXifSVP+zb+OXY+sl7pxUDZf3rKEl3+bC4NvqB9hWCvqrV/cbRfxVLt8LhGur2NTAO53TT3S13RfIx4fY+Y9NQNNJkLWiW2UAbbDgKPy7DmJ3u00S+Fbh6KyTQSigXw52NyoUNfsuQhNyvD6GoVE9lCt5VtxA99ashkR0bw+sENU0RzbUDeJeFWLD8WvSgRThmHFWuOnYNaFBT0alVkDeYj9KhWSVWQQlvJtuaXbOZd7nso1vVK6wvvRq2jfKuFLOYShCmBtVfhfQ3FCX+nxCZ42lXkSCLjbY0ay8vrT5FCZv8ALoKS0C+JFbjWwUNWey1sWIdm10kNPdhvLl3eWtbooEvI2Va0Q2TTlxq0ax+GNF4LRNjvNTl4+DdnDy/zSsE9C8+lBvxZhx1oEUKJFGzD7GzsldMG795aK1w3X1DpUGLmxcukqovjlbnfYq0keHeT7tIImJCKdrM3m+VESIjc94UuVeC0amujoOma+hFBZmdfpT5LC6/irzUCQg/KpWEaEsi++2hp/vXtFEjSttIJV3cn70rX/DV29Q6Ub86BKmj+X7098fhVMuG/Eo1ZP3FMJvhuKtnCf9RLbhfiPzFFWB8UbruyKdjDpU74dJ/Cjrr4zwN+dfFMLiGRtyW8Tfnp+dYZ+6cZlZfEvXUdmyhqKPgNLbD4VDNMvqA4fM2o3ml0X8K8hRob6jMV5mg0uFk8MuTy8mtTz4fGQjYrWSVfY89NaNkE5u3N8tzf5taluowjFvkykVNYoMqI+ubnaiolitovlIsfrSGWF1/pvisS7f8AP9GrE4TGwyjOjS4ZPEp2FWArDopXY0LH9DWIl6caKe7LTQU0Q9qxKIOKsDlqVPFp4aeVGXQmJrVisag5tOFr44mcHdWR53+i2pPimKdfCcV/REafiBoHHYGd89kfJIt/ldeWorCYpDxlxeIErewAVQKkzOakYKNg5e1ZrDddNo/mg00ex2Xy8tKnd44dERmJ+gqVGnwyATpxS+ovQssGIcKvS5Ips2W6N8iaNcaGvYaBJrV4/B8uFDwle+j6rx+lM0ZifWUeWh/U/wBLJ36Q/wDavw1p74v4ghlxnrgjJ1HQ20pQk3xECMaax4can61hJYpfir/0mDd9ERFNpLcrVEUwk14IOTKmmf5mrGN+HKhs0NHKjr4Cu29RXn+HDvWbyhdl7HaKNnLZqf7ltGohgRR3TWveji1aF/DUXfDDsC8TbGrERQws4iTDlczNrfQ8LVMXQaLLltmvt0NC7ubWbQe5Nayqxu6t9LUc5TdoEEVM0vxHCsO+ZtrLsBrdNSorqPCref2pVb8LbKJCmtQRldG2OvKiXw7+HrGfSaYkrXeXyfdZPX+Kt2hYVwo1lNhZWYa0KNqcm9IxC71L2PZSwDNUrwxyo8PVo20IrU27B9kmTDPvLy6iiksMopS+Hb/6KH2dtDtzEON79qNlpewUCDQbMRsWjdibNQ24gBfkKLmZdGz7ew0SLDtZio3V9N9vYLX1WsCsYdFyrbwtpa9jwNaBjmVeVbzIQtCzAXb3oXDIpWiSBvNQ8mvzuaF2V6FP3V/Bn49aZzBFhO8Zrm7XFh7XpTGr3OWLy/WnM3gDP0a1yB0FaLxao7yt+VWkk9H805ViP92oUCW/DW0UdKFy7BV/ETsA61NEcSFzOqa5L8CaFantNZgw1DLpZup4i1auN01tqO7nz9nBqK60LA9hIPZvCh7UAewUaAdWFDw0bMPLRANACT9aQi1OVeJwytyI2VF/+b/ii/fwL5JBvAdQdRTrIl74SfgrHah5A8uBotE6H6EVApxQ+6xjKx3/AFW2a1M0Jwm4FbdvqajWO+uLw/8A2TetfwN+RoUPEKVsgNi1DXdk/EOFJsPiC7fnWDwcATRlXCox/OvheGxQ4nuMv5rasN/Ttbd73N9KLFYXHeZeA/in0gxhb5PcULs2Blt8hmFaLKcPZuDKVU0O7MkjOsy62uSfEOIpRPA63lgXxLLF6l6rt9qx4xPwufx/0c6X7u/FGFYGXH4htgRSIl92rGpDCNTFD4I19ztP1FZmU8FTLREX4d4fShfqv+xUcr28pWsBKX4LotBMM1ti+I+zcLV9ymzvdsX14VPO8XD+mkVv1BNTfF5RxQSiMfMhVr4WIOryB/ntJJoNC+1mT+KnSboUZT+lYUkJtNRPG3JhTtE67GU2I+lYKHHx7Ln7uX5OP3BorFjkRZJoXXLIQCFvpoVua2YiFJfnYqfzWhaXVyvK9DVN6hQ7NFoXajZD9KF5sGc5XmvmFIH+H41cssfBb1LfDSkMkvNabPHFGMXjMY6KuWJN2NTxOvzLCnTC47GuJO9lFv6aEbCOWlSz4QSXwPwdE4QDSVzx1pHKBe6wa/8A9PHoZNfU17U7Wy6Zv0qJmdqHjU6BuHO9HJOmqN+1YV7mf72fjc8D1rFtLhtEyOwVlf8AcUWkhO7beWmZIVt7s2t70CFFDSTxfOj4Z0/PjQCTeSXirCkQGLxMzcuGX3qDlIqPuup1F7cKeJFM2UIujX26DlWKiPxIR51VW1U+lqjMc0Zsy0SLizr6hQuaGnZEsSJtZd5vfsXvIH0eJtjUTJh5Nxv/AEnrW2klSygSB+L63rRaMjoL5GK6tyv2i7KL0K3TUSsZxZXOzWgXwT6sno7QL33uzb2Hw/YNXeA76Un9XPPH4FbdvyNCOZW/uLFr3bUhCn8PYKNqFYdop8KpjctqWvre469kiFfTx5VE0Sqn3WTUBxzqFHaS1na+aOxv4auBz/iiAKVmkO6q/Wl7wbWDUNBf86AVL3ULTq00R7yVfd6BZWlLP8yajKII0RgVtdgNTpWS8QGddmnO1H2asNllLCzekcdeJrGHAo6MVmsLAgE63IrEw4tEPhmh3W7CSNFLN5anXFjDrkw3IL9gaocrfPUVqurN8qYLHEt26AU/3WIQr7MuhvU6xxp18Te3vR0kmVfkTS+EukXyAJoVq/BV/erd5bh5KCylGzXarPI5vRuaFlokGg0kjn6mis/xV1zyp5MODsB5tTifFQEw4HD8TJ6z0F6ctJI2dm61vDsFh2MVyISuXzHgOwm9rr2OEAF+weKp1kbgqtWRpMNqrLy7b0b0FNAg0Lj1dhoUAD/vjQ04t6etI4xcFuOkmutxQCTL08NJ3cg3W/3tFAiQeX1e1H++O9w1/LMo2fMXFHKdjo2qt0INARY6FfvVVt9eDj240bYbEDup15X3X+RoNZJCrVMkfAM+4ynyt0NC+GLWlh2th3PA/hPA1uPQJzVEe73JGbwqvzNfG8Bh+gkzNU//ALRfo+n0FRxRoPKi1Elvxrp9aTug/hli8rIeI51uYiEtBfmLkD5a1onfKj8grBlNb/wvEpBL/wDKz3jf5BrGlvPhoJQiN5mGl/pepRhsbg5gky/o/wA1qCCXA83k7vvW/wAt0f4m1YIo5ISPDpIJGmY7FW2mtfF8Fg5S2c4eEM/cj0kqNPfWoMRMUtefvAmGW+oII1fT8VfHp8TPxgibKi/LVqjY/ic/zrQBb9PegZZNjy+VamWR+Cy/taiQ67VfX8tBS42J+DYV8g+iqwqcPDznyKV+ZtWNuiXaaVN2NBqzXFDumcd/MreQH+2nuE20LYudx3i/9nfW3yXb1JpRFM8ZdV2BwCf9g8KgDtGbPwO0i45cQeor4jkRY2fJJFsI2qTeviaQRVB/VfDZoP6bEq75XYNx1+RFYmDEwRpKFS4Du1xkRk2izbalBx0W0BdZ14nlcUt1Is46UT3L6o34a50LsP0pGLOcqqvmJoaJqy8FrQLWgK5M1aonij6odhFG8Z8eFloLBF8PP/SUgezyqmoBW3Gm/ppvifinZ9zD4NPFqTw0vUTQzYhRDgQ2yLDjef586xJMssRjkldbrBhIxYADmzULRndVvLSqrje/FQKLL4lX9a1FCzl8k6+WTTQkVC7x4XPO6hbZF43+VKZIztUNajeJzq3KirREatRDzR+LLyWtHjf6ryo2SWzVpiEHgf24GixmjHd2by24Vh4MMqIqKkK2XTjTlJIzdSKjEfxZBZ0HnqXDyzJvLDJcp76U68iq0u7aybPpSqkZ1bibVh0L828VOCw307lGX21qGTDvweDZ/wCEk1i4sbh5d+Bz3b+4vpeomw8hbQvppzqYzhbXfmba1qtbr0xzeXsOVmFuwVFfZ9KAeJ0/Kkvhjvr6KUgUO1Jo0ESB++YEtJbxWt5b7OxiB9g0alapW+TU7afiqyS/+b/WhTtDCHV51l1deUcY663NK6YYkrGrNc9LmhUbRbLr9bmhwI+tBTI2i5mtt0q2dGKNl11Gm3sUlF3qOkkMmROoU6Dt3ThpPyBamYBhZv8AWhRIOzsninOJgWde78t+BrQdgoBoCmeOI8W+ybAr+fClysBloCQzvdkva6jqKbu8N3neMvBfamv/ABwo3EY74/IU7ASSNK/LbYfpRs1C8x4emjZCPm1JZa1aj2CsdgxjstxEzhmj6ADW5oOmeTvsVPKmiZuXPpQsmFgEL82cnNcnjp26mj2SCIBfTxrP39z3mbdtwt2DKOC0K0FKAKPh9NKIw3hKr2Biv4aNIrFuK6UJMOjcW/Skzx+paDpba3++NHvQfMm36VLLeK6iJU8xHhueWhrWeIZWX1crilKMPpUpSixS92PH50Q1DQ+RqRnVd5eK1vROGEnpI11qES4DDQDGLDwcvbKtYdMOyuHWJF3VPD6Uv9s/dI3mjOtr9OFQJKyfcYlG/I/SjeHfgY8UNMGXddG3ZFO1WFG+GdwMjb0DG/gb9jVw1G7K2YL5fpVkxEW6i+YcqldPnumrYmASd3dt5SRca0rOuxvUvy40ACPKv6ryPStZsI2Vm9a0LSIxnVfXE2pt7fualviYkyMzf9dH16j9KYf1mFZf6heTbAx/A429al/oviMS2OHl6eRh5l5EaisBHgsZJ/dlWcqj/wCaMtmrEYTFYnB4YrDFh9yB2GpJ4tZa+HNi5mHeO2T72ZzqxB4L+KpV/wCHvhaA/wDRMPZXycLycKgE6Qay4hdIlPVzqxpxfbm3VUcTbl71hsVi4I7hmiXSVurHhWAgwJTS7gvSQY2M8YJWiap1imv4VadVdW/74F6T4kJl4ooce4K3rD/EMSQbKs6yaty4CoEUMwmxKeVQNY4L++rmnGIMchMKsuk8/GUj0rwFEvjJcy521yZtrk89tEthYoTBG3rC5QW+Zp2R437zwdQCajLAaOyVHfCKR38Ns3dX2OPwmg8ryxZV0sEPA0vgxq5cR+CYaN9dtSvFKmqujWNawTeFmA/tyDajV42U+FvTQouIlOayb1RKib6DhFzVRWiL5f5qJlaTcTzfSlaNr3Kt5gaF2wvhducZojvSuaKWsMxxcS5GUNZioO336VjzG+KVpsXM9isUG1I7LfUmnaIznVV3Y4Ry+lQqgkKYl4V3mA0ii+ZIY0buW8fVuOyjZl2Vq8Xiy8udJrF4W9uda6eFvxDZU+KIxbd20MTXeY7NelYad+krmg2GigkAkC8VNb/d5WTyseK2p8MmEkjuzCPxa+XWi0tvM21qYAYc5Qv5/wAUCx8q8ehqeCfEPFn7uLprkJ52rDPEzNZYdpU8qwyRYiJhdl0KqAdNNNdNax0UTPFmldFu8pvuA8Kj/psN5rb0vuanEzNHd8vlblQpLtJC4X3sSKPeMhzKg3b9aN2Y3bsNMzy4T80OnY4DcVoMq9W+v2dCK0I/KrunlorJFIKW+EbVk9H2T/y42nYbCr2rETE7AUcWapVfCxvmVVXLt261qxod2prMcQG3eGWnaIndZf8AWss6huK6NUYAvuVGuGwyeVVtWHeedmyRsrWWO/GtyX7xPnt/O9aEDNdqw7vGEkiZl5shFh11oGxoXHYgLyXSiCymxK9gpAcOuscXrNAAfYNEk22tQuYxoGq2gyqq7LVrHH/9bVx0Le/Kg6DD4JYBfevxYmjmZLhX+vHlQBeRfB060e8fg1GjZaPYCKCglSt2UNt0O2ja+8FFv0rENE35N7ih43YszepjQqMtFHozcFoWLVN3jlszoF0XlqdvGsOoW+4zXWgFBO6v2DeT8lpaNG7UaG3snLu+qOmz5iipaB8y8msau6YoXRm17tTy9jREhGnQ24iolcc1rEGGX0tpWNiGFYBO4dc2Y8aLxJLpzjzdDSiccVFI0P4WpVk6qdaNCzcVpmP6r/pX/R524rutQ8ceHSCdOKldh9jQX7oFY1ta7Ma2oRkfjfKNKVVkLBS3MWFqfSKEJpxN6gOGxsRz5uanharTQSeCWJt2VORonEYCcHu24q3ob8Qoain1PmWjcPu0QsWLHd3byt5W+tXiR/A/4GGxhTLHifJKu7LyvQKOfCwbnRKzYdvD/FQ5MQgGISLpqJEX8mApxGdzx7rA7VYUFw2ORbth31+nqWoPiGAlTjhpMyN1ySA1i58bEs8bXnK5rFGW3h00NZ5Z8c3/AELARb0vJjWJQTTf2sGG+4wy8Xf1EVgzFHAgZ55V8bM2ga3M1M7iW0mMlZvFJ6Y71GqRrsVdlWwmMl0L+Vuuw60ElnbEgLKAwPdHTXhtrg2Vj5XHBqxr4NNGhnhY6/hyjbWAcoPGsuImN0X1lDfIPzNAkJ/flSopzYZbBrBR86AwmG2u21mHG1QDCYTOsGFTkgIUE+7VuvOo+RtWv9NM0B6ptQ/S6f8AcrWCb7l1PFH0rUQSEDqvA1/YxovF+FxQsyNt/QiohicHP4Z8M+7IvMciOBqVp8E582/E3ocfoeNatQ+VG2Ze+g6txFWVg+jNQ7yb1v4moXxMHLzLTsiSDI3UUby4fQdVr+7FbOluArB91AJM2KZ2v3p2olCKFHKyz7Ml/IlBHnMhklml1USEEgEfhFQNHLHvpt8Ntg9qzBebc61XZInMU2aCVbxN76i9R3ZiWC/iNySelF2eU+TbrytyrELCRJdGlbxN150uJxKMCjoseQajgW/ioO7QvmDTyd43y0Ap1YDwsFrNlkfK7BbiPjc0nelWsr/pUqWz2yK3i22Jos5JzXbn8qAgvrKymmYpxZtrUWVCfEy6kDjQYwhiEd1tpwv1rU0VFb8TBl+Rr/3aZRPB1RtR9Nn2FzI4yuvqU6GvLut6l4GlLSNuqtC/4hutW6fsMDWhq4/ap+6gk0V+CmssinTmKQnDE6r6KG37B+2K0NbOxj3Skn5msP3OQWkfa0lE93fwlv3os8Y0Zm83MjpQsp4LTqlQNisXiLJAkTbrczUqS46dMkZXkbXqbuoLbVoqYTNkXXXmL0t3ZLxuu1SReiVYaU8gK+P5niPkBQ1jwratzNAAChQ0prKd6pVlDLmzLUQljO3w3PyoNAjzAZPwmmsvZtpypH+7VxbM3sOzabfrSFoWRhIYkBbXZYnj1rwwLu/69a56vQ3YV19WtAGMucqt5jRuxo3amNGgZGYZs/HTp2PnbsFNl4qp3qJYUWB4rTsEfeWls66MvpqwVyQvy7ATxoAtQqUO4Fz/AKUelBSBqrlt2vD1/iga29i1Myx7QvpPOiTWLmigfaiuQOzLJbitJlrENGPS2ysJHKPWlYp43A0D1hkxcB8y7y0Ww78Vb9jT5xQBb6fnUenlddtEvylTe+Y40plbdDrsYcmB/Sm7uVTmkw7cPalCwuQEnXyNYWzfzRvJ35C/i2WpBKk5s7FdwcwKljONgvJBi/8A4tLA5b+oUjK6mzJxU+1AzYOfSWL9GX8Qp++gnXNDMuxl/nmKN0bdbsHip+4+LYVbRT+tRwNKzRf9VKuv0PEdKQShNO+TzDk3Ws7QuoLOu8UO7IOvOtgIkinTclFPFgvidvvcK+iyHmtT6psw+LU2U/8A3OQarXw5nXm8YmT6isBGHdxpEzDX62o/1fxCXRPTGo0CIOAFWlm8ifi4fIfyaCukRaTNb+7Laxc9F3RWrN4m9zt7BcVK1vS2tRqY08vlVeVjVsM7bisueQ/4ptP5Cs+Bw8rDOqtfE4lj632LWOPw+G90SFdPnfer4inxSGJbvHIpifT02NqJLSvYn8I1pLx3hz2rwpEyPK3+K3JoaToJ16sHIP5PWgN/9K2TwQyfWNTRIKnQimSL45hk8HATrSNEyHKc41Q0AyMMskbbki8jRvhp9LNtib0t/vWhcHdp3CRHOGTerSKYZ0ZfzpjFMuhZtjVOHDbyqun1p1KudVVt1vaioSQa+krQGVqiWcS7kUq3RWGoI0qWX/2nC8s02TcdzokSKdTl2k0ZMQySZvHsPAs/+T/kKj1D2LXv3nEtSXw0u1V8jVKwxAeyxZdGWxub/SolnVNsTMQPypd7erCrA8P3jtEts443IonvCvDyuONXM18xdvPfjRDpezhfIw50Cx2Oi8aHeKq5inq5j3qPf2XXVDQJiDgMF2t0XqeFRzoY0uiOviai0cKaBKSyNrRDt1p7x58+X8WymVBThqNG+JwF5IfxRHVl+W9Rp6KsRwWlINC82EGvWP8A0oEka07GOK+ReC320ZI0y7YgNG9jwo0ihYmLZvf7GjUXUgHKVHm4X6U5MLbVoLJFKv61Bngd734xf8lSW7R2ots2Yvl8XtflR7FZmY6UeGuX9KKrfTM1XcYeUO6rqbVdE3Yk9CCoklRvE6N4bj3qBEeO5Vg2Y5T5b8qUd9h7qvT/AGCK3JHz/XWhdqdyxj7rpbITSqkLEKvPjrbl2CuM60IsNY5JYlW2ck2BAraKF/GCvuKF9pqXIJfArdeVOScoVvlerSSIQHXNay7CflxrWOL7pP3o7aOxNPka53y8WrRRQOanvnw0mb5AmjZfL2HtuoO8FO91oA9GqCKZA/eWbn70LXp+5BBMspbjw9hUvfRg2VmG91p0dw98nL3oqF3cq0CEPFdvyoguzebltveipZwUZWXhz9/4rR9q0lnj3qBFcOwajeAO9Q1AsF4L8udPb5eKnVw2q5eVSEnivYON2TtNZaWtGorQYH8NDM1TMp9NCOVeDMNaZk6bRUR7iXQyr5T1FSJIvJf4pshqOxHnT96ISRd10GtZZQwyueDe4oXQLniVvKRwobDSM7R/eYV+MT3qa2JBzB18Oyo1hD+LIuzrbpV3wmKcAc4JDoHX9xXiETlfoSL0PHHvULuNi5f1oPGF8V18tv4oI7tq+Gl/tzH1KfI1Ykx4hN/Bz6OvTrVsLiYmJiLbq32oR6TWGXE4IN97hJdsZ5qamnwgO3uW1U9Y2/Zq+PQ4qHgk8JJ+e2j8F/T9DXxDBRshvaKQW/M18aT2WUM35a0jQ4Rtsz78vtyHWgApXLQ7XCfKsRKTzWy/mKgRHbefaze5NSiKcLeJ+TCpZjJYlmF9LbdePCgEnPgkZfMOdaLn/Wwof2oxfrlp7Cckt/FC4gkObqjaGtVrzwGI+6MRb6Zex2jddVZeB6UVw3xFRlgx/Buj0hCeR9unMHitawTWVrNb/Fv9etC8gTOjc+YPZrf72D9xR8VTOcQujQr5vakcpezLTv3UdyicFvttR/B8+BoxhZRkZXW96gXBwYSJoGdGDO5O05hxbYOlFQksiSMG3ZMuwH8IonvXczUoeNxZlrWI6xtzFNOIRGSiw7S/AGpdN5FpQqSpuryPOhYR6x/KhaePcakvBJ4JkahK6PrHLFyPA0mj6svG521GkTLdrL8zrUUERwoLIuIcx90mwnQHU1d4BYI0DZ7/AEpFgZRmgRrs3RSTrbbUyRzeVZvCPrWHlMfqi8S/UUjX/FULhOLZdNaNCx8y0xR0N1ahbDytucIn2lW6culZwhPh4flWK+Uq1gnZYtFlh8dTAybMjbW6WNFxgJ9VZdqc1+X6UCELGz0wuWyhPMetZXEW6pXrfXpS4D4aJLIsSeBNBttXA27NR2DWpWhT1Lrlp/BuQy1lKuNVaiO4nvYcR/yCyhYi2ZaIcK5Ct0uaP2C5jFAlqUiohKFQ3UtanYFgoRV4bSb1sJo0KDRMPkaiHfxAq0q/9brcXHOm8cj542bnxFRvJp3UgX8qhaJk0cNvAii2shT6ighMCXZUULs2sbcTQLBPJ5m1A09r0NYvCzepuNGzA1iJJ12qG4NfbRoarF4a2Bf3p7x7xXrzo2ZGK5uNQ2nlXu8xYktyvejqfE3vRJR0DL+tHZG/6GnYL+Ea0e7SgQKax87VsH2kVW5r/FElqgTq3moroayhToS1QiVdVH80GdBvBaPZhu6kQ3d2fNm+XKneKSTSRvcnZbhsp2M1YhJkyB/Cu4x8utQw4cRJdmbekP8ANOHJF2/iiCLVqw3larxsd6uVuwUWixA1WZ/VbZpwrRC2UtRoEk1Ejsmvu22k8Qbwv+xoHNQ0oPkvm8NZip4MtRd0RwX/AFprsPLWYNSB422q1TNNhxtS+qVZiNqy+B/kdhqcPbeXjQoAihsoWhn8adgZndsoVdTTp8Mg5PrL9KwGJ+IzJ55Xst/YVhMJhhtLMy3+pr4pOjcEw2v56VjZ0gXzuxvWJOJjXRiyjXntqMQSHdeH912UolCbmITwsvz2iu4+JLHwmX71F55hYkUrxtGLJLtyj0k8RQtfZKmq+9GKSG+Zu9j7zXnYEUsTHlDgLfmzGsG2Hw0bb8r3aToALCoI422BlWuEY+38Rlw8Ee3DoqgSt1J1+VQusT3i799F65B5veooJWKGJUnW6WO32rQqSGrQofyNEpiYgA6t+TCgxw7m6/g/Ca3XBVvnRXDfDg2XvJfP0jG1jSvmw5/rMKXILONkg+gGnTtGnA013/8AsWKO1D6T0NCzRkqhPA8RWxJcyM3ENe9bjeJaNpIfGn70lknW6/h5ijZQ3+zUMYni8Tsq7wpQj2ujdeXzqFsPCp3Gb60bzKvHkNtFSsUhmDbVQkb3y4CgQAAFV/FZR/s/Wks5dZQ3ErxFCwlTNQUHar8jSlHQ60ZFh8hdhmU9SKI7wbaRm1yvapVCVgxiZuDcKeDC4bYuXmdmvOkvzd6xUcOLKgQtNutrcrfhet/GWbEvBHouXyVj7vxQNlZaiOOji3CrWlT2ap5MHir/ANjFsCr+z2Fj70cVBh/Wvij/AHFPBLbi8X8Wp7Qt42VemzsNmrARGcjfLv8AW17UcJhZZbKwdWsyjXbqL1g0xEewPBPWGlw6vsZoyfzrH6XKhNfr7VhUkxYOkqy+EHjoL0WIxIJlVFv3DjdYU/exKTlZdnvQBJHPd60K1na+ezXHTsPZOkSxR5wr+boOxlDA6L6ttO1k2L6amaQqmRGbyCpTLkXIt+C1hWjw6fdvLzY3IofY1PZEXnxMfdJ+HqaCB8PKUjWLlre566fYNQkr5pcNiSFX5Vj3xGDC+BZYVWy6k6iihm4Jw7BWyhS+Boyue1ylG8Dynu+q8Ow+JHDfSpnCPEMkPl11v70SzyMS1HxynvPHsUnThwrMXEG8G3hyNYcxu+6+9aMm504G4qJY0bdT9z1pHKLvNThPxNTsJPJl2V6KNmjBK1IiMvqajvkmtxTRK6b1Bu+wbvEzN5gLkMPlavV+VOzg3Kll4VoBQBY7tanj2AHIuZvsgso5LQJoWYVMl47ZVXzX5U5Fh4Voacl0oWik09uVLt0f7Cd5OV1LbFrib9mIWFypylvN0qIO4bIybddmnZqlWBYWJajsP2RRoWNWR02M2nYfD8qApm+dBWHMrUUQJ10WmaJIlzNlY1hMTbB4V8Q92G6ttK+A4KFCdCzm/wCVYCeDg3dOWQ1ilduMZ0bt1mwmvyNJaJDZ5n3VpEOLYePFy2L/AC9IqES24vxqGBBySpWC8loUioOfGhrTAANvNVnfyOv6GpWwyDxRS8f8feiG6ouT6jZRAJ9K/wAUzr1WNf1tUTylPHAreO7AkBmUeUEfOoHlMmv9b8Nb71f8l3X+dTQY2CWbImKg0zaaq6nVGo2nwun+ScGHy+zikJ4qjZjTutYvOZUuFXrTvIyIEXO17DkK0RFLM3pAua2HWtkujfPZTl3wk5RFPK17LUzRN5lePe97VhMIq3CieVAov7AXNF3mS2SUwuFN/ICQKP8Aaa9a4DFm4A17l+KH9unbt2r70LPkAm910JP0FOzTRBZQV4KDZtaP/SYNfcUdlKXR/Gnz2ik8CVs/Y0QG4+9D7xVu9GfWNs9l2NY/lXcEPFaIQtfUeZhRYNLZZXbypxoO9gFV3jyBUF7HpXgGHPdpyYdiA4mIeG21l4g1h3kkvurw96xF5uEUX7mogZuChczfTZesbBhlXhLKL/O+lYrDYsxb7rLmtyFhSY2SxFkijNlvsNjSYtpSviRFHz1rASEI17yuDQ7/AA00p+4bcvwevgOClJ8+FJgf9xWPSB32YP4h4c3RZN0/lWDk+G4jizLcN7ViLwnijZgw5MKwBXXV4Gt88p0pgwyFl4ac7dpIohX8reqoxPg5dJYTsbqOTDga+KYuf4TNojCU+A+hxwamZ24s2vYTlBvRII4LUSkN5mXX5GpWiKaqvX3pAzyMWL5t750NH3D6rdkBmkfwp+E+3GszyD+6oXc96GZfTUbxfgfavvW8+g/1pogwcMssreBba6i2tBQ0rk+FbL8hWQxSbuf56CgZcE/H0UB2aDtYxtko3P2ATURRYVzBG3WozwxnahY5W+VOY0Ggfy35GtWU2oXEgtRC38zbFp874WNp5ZYdumuWhZU1dffkKeWP4nG50CXWRTs16UK4mvLEgb6VoEkunttFCyq5tShgibvq1FaM2xaFORG9s1FFXQZGbxtfkKiEbA2bqf2r0AVsoFpFfIvRqOoFv5rSwo2LUd/Ra50PFEQ3up0/js1WP7Io3YioVn5o+z8qGUA3XjlqF80reAqtsx6VaKRGyuHYZlY86jQYlE7wRMu1dt2trasgHBV7DXp/MfaGtbtBlbizftTZhR09NKqdFrRh2isoAoKUk4su6Ry7BSqIwd3jx21a9CwoA0gPuwofPL/FN90nFr/SoimFGIEE8vN7EhRRURY7DtAys9iVNS/EsMnq/pc4/msZhfiRt4kKmCZfk1YiCN53zQLBJrcNYiiASKIWgXRkKsvMcaWNVUbqLlValdhwVaBApKOT8NI1JQ7N5GF/xDsCzI3hs2S9xtW7A1h1w0pazWXT6Lb9KLTS651K5UXbbXaaklw0i7sqbvtcVAVOz+twFo5R1Zd16lidMegkhli0SSZdY3t5cw0Iolcdhkzf5pxU1ZJ1/uxek/YwcfWdFysp53FSwYvCz30xEYkUilKKHMjopOVQNgtQBq4xOM8Ev4EG360LXoXvIFX5UbT4zGHEt0QaD8qbImbRePHQCvBFHpFEp3P9etY+eeBSCEkctqKFJ3uBxHhniP6+44GnE+Bl/tSqb/I9hEcSC5ZuQo9xhpHJZ243N7VKHiwyMMRbdswIyHqaNiK0jk1X+KJDQeJf3ob4o7K1kTb7diSFJUkYCLaptSYcvk3Yl4/i/FSX80rcqdpYHbxr70TGh0Crwp1EijxUUiW2sr6VZ5JW8TRLtY9aBSVPDLE2ljT5F9KeH9KDOH3121oT5VUeK3SpZbHw+CBI6+LR4uUtmZUs2XoWo6elf5rcnQRn3T/Ttc4n4fI4RGl1bDX8yH9qe5w8xibloSKiusVhpxfhR2RZPe3H63o/Y1WgsuGlGWWJ9VdeorPPg11li2vB/K9agSF41ysV83vR7LstRPGJVzxl1tnXXUX2ijkHNm3ulQIl95lYLntxvsqVX5q2hqbJiGJQoV1C8705SF/Kv50q5lGUMot9etZnXi3XqaFlyFvpeg8cee0rrrdeg5igjwCYvHOyfeEagC/LpTvlXjRfEzSRFAzJpRGtD/k6Vi5sRgXQEwux0IuNrViEwQw8V4k1cytwWns19xR+Z7HVfeihhK2bNQtisecy32xxf/lUsrsjkzRpoAuo050jqjuzRdFubAiplBOxBvNQtG+61PdovHF7cRRtMnhbqtOHCDMzfnRupjbxexpTmLXV6FzUpGIL2RMl1+dBJJbZlbXjzFDxu1/rW/a7dgAZZL/5e9bqOH+lH7mJre7UdSctbqDslluy5miWMeIHhrwqJoYn3UZs2X50fFQodhAVd41spGMo8SwW+8deYH71D9xKrGJXiZittt9dD9aw+KnjcFXd/uI2a24M2Wx61GmFCYrxsZHzoOBWy2IHOsxkz2SVEYrID5vEL18TQYjVcuu7yFuBoiJJWzBols1z5GNG8ITLeXXZwv6qguQ9mf1LzA51OJMoGdehq4Habqe1aN0iJyL77alAKDxK3m9q1HYKbP2ZmoMpHlatFFJ4gfE3qorrwX962ijRupo6vu1OskSGyuVHirFrBFEAXdl010A041OJvh6Pkd12tMRfUHpsqOP+pTGviA8+610AqBsaeDxfeqP/AA7KwsQI3rxio9Yt/J6zwFYh5/iPdWSAICcx27ouxA8N2r4Ti1TqoRj+dQCJxpZ9WqHESJ6UWsM0KtwdDSsGba2wX+lYxg/1p71H86FqGtDs4mtpV6J7lPEy9dRRsWWhUrR5trLut0IrDRQYhd9olyrL1K7AfYCmIeB/A351vo5dfY60ciXvKi7Fv05GiI5xvp17SyNzWgiP6W3W/ikKvLYHW+yiHmbSCLjI1IuLhxZzTwvsYDkfKRwNYmDFQS6gzTJHJF0cE1NFicWsZISFrqg4kmoY45H8GZV8VuCjpQySBbtGZAxT369g7ModjYZmAH1NBgAcrI2z+Kw+Rz5lawrGyzrtKXOVaXhrK2iQji5NG8MRzFztlfi5/ajTui8GXy/KrywEayxain1IzKvXiKNHR/DRsVahmYLdLNlPyNFrsQBM8WTLbQi3Fr7TT3l1KtspO9hl8DU6xwRvnVmTNm+VYeODiXdbu1GV504v5WrDS94rWK2pP6dotJ2Zy3ee/KnZx0qMFTwapUwOFBu2LK7g5X4mjPi5bWkxWIrFzSw33Nm3boKRgp3vanUvF96q9RWhPFvLWeXER6ln2W6CnEMJxUYduCrmF6GpxcmReN7nhQP9ZOM7fgB/enCAocq+2wUNR9gqPxNWbu6ezDavBgeBFRZJ11nwA/WL/wDFoE/hbbTFT6aZ3FtWfTXlaofHh2OWXOd065be9OSo8rVN3iZR48lst9oIo0pkhvl3c2vtUE8fqKLmX6f6mgZBa65f3FMQjby0KxPev4s8GX+3y1oUtgaQIpOibcvTWlJJ8oFI0TrvKwsfsTRxZEzWfz/hXrWFOGyRhJLvm71vVWi0Ow2pMiO5KryHAU+cWBDfLZQJtvUrA8mokKN6heBULTtyQbfqdBTd/JHvwoP7SeXSjRCdjtlB3acRQR37124LYgk1iI8RC/mRq9JWkAuHVl6mhoh3aWzcFoXEVr5mt04UZGci07yvcs/QcrAUPCJP07NraVwo2dvCv81ttejfux+ZriewXLQD9SKQxlVuqt5qNC0n60KhUsVsvJTz7AmMOITfikCmC2uobzdKxMhw+HnaJsU0SCVeIubi/vULy47CzEwzIiSQSoDqbLodaJnUvmRWU+BvwqDpQSCDvM9nctI3y2VAoljTKjt4ma1EibeZfT/rU7gcFbVfodKQ4CeU3aaDcL+phWGSOFBYSpFdGY8Ta4JqOLVSnIlOI4U0EsKOIhMsvjsdbkHlTrKqmxZO3dNBrkaFf3qV61YUxdlBZk9AHEmhdJd23H2FA2Bo3WtVpykZPjbpTupU3R/NUzzMVBd24tx7CZFjPi20gCk6Iv6Vov4qC2HH/WrswpO7dN5eK0BK7HdXatKEGXvpSiWXOdAPkteRI8Wj8sjEN+TGlKYJN+2ne8r9Kx8mCk5wXj/8pFdz8Ww+7E8yXk+TAeMcw1fBTBBhpu/mxoTIl+Q0s124CsBjIcI+5siUJ/kbXrH4bC+87Ma+JJOvVC1FMYEN5e4bJIU43TY1TySrJ4lakpLU9wKRqlVH4K/hP50aNGtBtou+DQ927K2XXmWsdAaefAYqJ7OuITMl+jLrbrlo2C+C1CzULqaPhP5VxNOY3U5W9uB+tOrr51ZeHKnKJxVeHy5UKejWcttZkjLZfoKwONxjqngjSE+Ko5xIdiGMgRj0gVh5ZS62sqGjmn2RYOLaP8jwpsmOlIi6Rsde7UeoLtNFoPKZR/cYe/D5dhFoApccbE2vQYo9KWC6NWLtLKgLxcy26FqTQ+o6VHdL3zJ4qnRcMjBXisGaU+m1vDUCYTDhyRDEuX68z9gyRpKQ6yprlYcCORrzkKkq7Ft1ohAr2z8KUyJGMzMvKiDbwtSLKl8qq2n0NSyShXKoZX7yS2yzcBah4UsjKvlGwacqluJB4k9VL3saqItV3bUSqndapmsw3awf9biUXzMcv0G2sO8rKMwiiXwqBXw3GjCyeacBbNxPtU8CtwjVsx/KphCkXiCKmtqxKxd1sRVzyyew2CsKMNEg8AVrySf5mpske437XryQn5udFHzYitUmTupm5uNprhDRyiV/G3pXaT8gDT9xHiZSyc0jXzn5UWELHLF0QaD8gKLBhrmo3djdvsIkuhAV1uuvaWRN4NG27RiwPx/rpDjD19L1A0WJRsjJKtmU0wYelqUo/BW7GUil1FYlYlTxZHYrm6AjjSLHsZW1zswta55UWsDlz/tekzDiyb1Sq/JaVlokJxWplm8PiZdgNQpIZEyqzeTqKJBp7ta7M7cv3oXY1F3bhO8y9KUoHF1PYC1qNNdid49pAI8p+eygL3vcrr/+qrRHvLu/qXlSWQTZYubKOPzrwu99W/Wg6Yj4iRLLZrNHCLhVrABZpltLLOxdr0SWPYMubekOxBzp3kTDsUuy6sRodPe9QqbyLIsXqtwakcyT6lpdl76aCipkAsxXYT0o+EyF1pe8jLB1X1A62qMQLnzIi+Tpely8lqCT+vz6v5WHK1HwR/meNAgVAUjTVG9X+vZoFo6cKN2J1rnQ20NyM/8AmNHoqr5QKXNcUaFOG/2dKxEUONFwsGJ8IYW58zUMGHeff7nXLxv4r1iGQTfdM80SpmbN5iNo96lvPgpnyRKmSykak21I0WkGNjDDI5bJ47a2yk+H51MroTvfsP8ASgwKbzdeYomgRnOnYFlhl34n3W5H3606pPiVySYSVw7M+0MpagMFOLxtKUsyjYw6jbrWMwoGTuwgWy5NoItxvwpryPdHiXUqw4jof5HbqvYaNjsYA71OzcPF+lDQ1qhqIR2HaQqquagQB5uFfEYEPJbu35VHipl4Okar+9YpsK0wvGuLXKH9mGlJZWGZWRgw/KkZXi8Tyl8q24DWjnklfeXxZm+VY2OX4jJ9zmib+0vmNxx4VNicTM7gCLMWz3qDFpJB4jCnhYNbS9f8Oy4SbhjMEVL/ADAApoPjGGGrPFIsUsP/AMyN7W96gfDYEv3SPcMoUau1xcXqFP6D4b91hltcNINGf5bAf8qdqem1GtNoKW6GUYmFeASTWw9mDUiih2CsOhXra9TT9yupRvEPoaiWDGRf3UDbeuvOgw/y2D51fuNkuIXz9F6dafu3n0hhXWR+dh++grC4TE4mFl/pppizNCgv4DwYVb4bjzshdvDIfwvsb52NQvE6dh0NrUdRRKuuxqS8R2qv7fxU1kXwTv6W4Nrz41ipceb6rCnh9wdNfahjYPxhRdfcA618SgxsHNX8XzBopjfiPFFbwR/5GsVKuKnOZmRitfF3CDzTwd4tfFPh+RxqUut/kVqTvf6KwjCrcd6b2Py1b5CntBhhaKLgt9SerHiewUxBIswHKiSF4GtyTwsrbG6GviU8KIc4gLhkB/xp0lt6bj9aLCpWMLYiNE2eEeK9gKKtFKPzrNlEYDM3Fra/nftNBJYJ9JcPMuaOX3FSR4JEckxPe2vEHWmSQHRdumluVOJI31uq29qYRXRyzSqWibhZrbNlJeRGzKojyktSZoJRaVP1ol8O/iib9L/vQ37urcH6g1tXxQPzoyJP0oM0Um6rNwppYsZi5b51QNpyr4y872AEECOwv+QpS3oaVrfkKmsj7VXzU6oEN9Ws7e3OpsVho5P7DxAMJf4r4niyDwdUrGyNiUlXEujrm0F1UsRsAJvWzAY8Rn/FhpQ0MNG0uNvDF0Tzt+1AK+IH9NEvohXePzNDsKgLSlaeyTgLIvqsbjsPbbudmfkORHGjmTaYv4olZ4hkg+IWvJH+F/UtBbyaxSp4kkX1KeIoXd9AGp/dW2VAsRjTIGVdOPGiCKLOx1ZttRgEeb1USiH5rSAWa/er+l6wSP8AiaV7fkaggWL0qp/c0/dMfK2q/Wl8PPh9aFL4772bhytRsx3aBJj3mWpZHd95mbeosVHBf9aA07DQogsB24fusZEd9djrxvWhqbuQde9Kn9q7vFwx2dUm1W55caFpH5bPp2Sh7bHHm7CYHnsrXTxfK+yj3pbRlfWsBAsUS8E8T34sdpoWUDLlK7vLTtgWYJeysxG3qKw7Yiedsihdl6gUTRMYzGUtlI2lqwTxTQWI00a/2Dso2eZwn1rgRR8Ew/OuDdn4v1p1fONiNqvQ0O2VoUGqvwv1PAfI08OJhiYiKaJbtL7sLFqhxMJxOGEzdyxkbnYg7KGLJYEXZF8TjZottKEYxKayrLBoYjYWC7BUaIBuqi2Vfai2X00LMd6nuX29OdbsWnYaNiKheLFENJHLA29Ja+42lzUGCEEaXMGLVIzLlF7KbAB+dYbAuhxK4kqGyOxByiO+c2142r4c2GVPv3RfEqX8uYcRcfKgAwrLrvLxqxQ7rVsoqql8i/vQvY0tm40QS3lpWEZ0DVhzhsKiAPLO4C5uJzGwqd8fMOEC5U/8TfsDUUGG6hc7fnU7zMTtfU/KkZGQ5XVtCvuKZ4oS3jdVzFV5gV/xHA48kONiMeQ81NYoYmFH7sqj5kIv5DWKxERDHWEqtwOLaa+1qnzoNHnMuX5EVDFhE0H9bhZ7xEk28SGxWrYvE4aE97FNy9S04lhx79xOX2WbQfIGsMhdWKn3FBsLMAVTFYbwSqDoRfipr44MRCn3WFQxESF5TbUkkDaW8NC0cahF+XYa9qNMGY4aWEtzsVZf0anUU9Esx4LU4xOL/wCxTXL7mnaMcEia1QeA6K/ClhPxbckwvlZDtZuQGhrGf1ca69zD4YGP/qFQlpXH/RcFEpu343tqF/WsDJjcRPoZmhlXIg8i+GyrWGKjo16kseKPUIx+EXRUdrSRj8EnD2NxU/8AUwJrIhXLJD/mnD3FxSkUdaOX0v6f9KjID7jjdf2NIJ8JMMmJw7bHSicZ8JlGcpteGn7+Yb+Ef+6vVfWPatZ/R6fejZV2n+KXVvKv6UcrE+Ff98akeJEL4aUo3G+YflRJZ3763uAB+hrzqrdgoUPdakt3BvFxu3tU5IOttlhTsVPlzftUDh5DZWbRfrTlvPK3N/UKYgtop/FwoEMDZu1rj7GHWQvZA2W2posuIxa9wjoQo9nB5ii4RPApfe051qkgJRffbWuGl8UL+k1jPuUFmiiXcDczzoxl0GbNmu9tpAruxiYH8aqupHvxqVu9L2CNsWihmiksiPqvuRUQVJYVOZFFtdtqDmM7jPtrDtNOV2bqr1uNtItm8DftWMxOGmiF3SKUrmHOwr4zi+4e5mYvuoNWN9uylt/WSXT8MS6Iv0t9TW2TDpMP84nF6cRpOm9yHE1Agw2EuIEZd3Swv14nrQvJFAO8bizMS35AjslSKMC4VuVAlfV6jQ0oEgUco/F2A86VzKVtEV2KeN62ivHETrG37VHLDiPUtrN71EMVgD5PNGT5kPA1OcdgnNkm4x/hceVqUiRh4F4tfZ8qBdl0U+omnZJdrFf4pBKo8yfxTany9hI/f/SgoUm7ZV/Wjk2bo0+lQd+7raKVW/tn2qdgX0VVjLf6UrxrwfLlzN1HKkMq+pNewsivvfiFJ3acVWgxDmyBvNQIIoe/YfDGLL25XQ7qjU9jLJrqlDb6qLv8RVAx8BOVuNzasjSW8ETNbNt3etYNZ3khOV0bxwEcbULCi0MDsCzsvkPGoUUQTydy/KPZ2EkgWo3XzrzFG6OLrQUhh5uyK6mneNX0YLxoKVfUtz+dAdkqggcWqRSXa+9REgiOZqws/j3WyG1YdpTA2pXgRrQ8MiBuw7ZHX9Ds7FZrC9C5YZl9qnWMEXDZqnwnxHBzg3LW8B2XXjWHeTA4e3dGCezxjZcoeBrBPjZw90VldTrwve1RSYYzgzf1fe2DXueBtUqTyA/3VTLm7TkH50dA1cT9jaKZySfBK3ispFinMDZsNPCY8Q4OeDFE96m3cI/OsZ8StLD90yMN47UcaVjJJZN288Xds2zLfW3MXo2ajRo0RXKkaRxeyrQj+JY1N9mb7iI+w32rG77BA0rZY4x7DRRRT45jZeCPZFPyrCvkJ0sptUTK1O8rquVQ+v1NYawA3ma1f8Q4KAroyQffP9FrCYmLAYaa/wDXy2EruBuAarl2Oa+FYGL4pgZQpdE8MsR1SRVJNr1GkUGJmGCxxRAos+47ez2Hs9G8OIjMZHvVpcbhc+CxitxZPAT8xZqOuHlKo3TaD9LVq+Iwiu/V08D18efCz415Xwvw6JAYY4I7i71EI3nm7yUDYGVXFGjTUaBINTXTARsHZdc0raH6UW92rGjBYfes2/8AThXeQ4bYZW0kk/gV5qACJvvWIOEwu8kSWM8vUA6KOrVF3cDWMiJfX/JjrI30AqJZcbPphcM27p53/CKmmxOKk1eWRf0A2dKxWJi/+TMVqGHG+mWeAd6ns4saFXcVK8Uqbro1mFLHhpm86raN/cDd/SlureIe3NTxFDKawq/EvhT+QqM8XVTXxPr3DHxg8srViLwXu8UzWT3HI1g/6ScG/wDU4Vu7a/6Gvjfw74qgFlX4nhg0i/8A3xTevhOBxk7bFw00xv8AKu7/AKrhgsF5f85NbewoKt91V3UXkKa6PKktm2KQGBI661tdAt/ahs+7b56jtNAiMbnU0NXbxN6V4mpJXcD7/OwIXkNBXmvdm2Ko2k0S5f8AuTFbF+gHAUpRkTIzerrUSiQtmL8faoW293KwXjwPYGjbirDWh2ca3cnn51ZMLh/CvJnN9vsKcscPdMrgfQ229NeVNef/AKz250Nj6VN3oNmsniysKgwvxLFI5aLGmNotu0haVO86aUP8lq/cS8PSeVEtddOdYfvsXBfwYlA65el9lOMCE8UcTqzX6KRXxtHibQxCB7/mKnbQaBVbxnkeVYWfBQTp93mvqOh4iipxXxG0enkw9yXb5kBRW7GMv8/vR8C5g+bgjqQaKy4ePQShbcSdKmieIuGbLt+dBbu5Ph3fl0rxMfL0rc2uvtsWpSq4SHv2Vbf3W2KefH6jsFAA3oUQUwseROw/YO0ZZEbVWXkRSHvwMz4Teb/uHzDpwqQu6+IIfLRUKOLUPBIbf4qL2+utA5di04kX0v8AzStEfxfzWooWWiUP4aUH8S/xTq6/mPlTiN+DM2XLbmaeOVydWgX8zfSrSxrut5tefQcqBCE5b0D3R3KFiez5r9hXTFxkFXy2D7b/AE07cwjJyq3WnuHGV1bVWHWnYPtuvl5WpUku33jNyOhoboGZb5hqL6GlXvyNHbpspFeQLutsqFZ43jaMq3lvsI5EG1AANoW9PWpxioCgcv1o6jxp+4oaL2ChxqJ5EKlpGsbKdgUUAHUfOhcBL2XpWAgvx79XuG99lHCYbqqR/rmr4mAjcVAH6LWMxcoQajZXw/DBPVNdmY0NUYo3Ztjm/Uf6UtnYizV8Siwkis8f9G+VZJ8pIbu2rGzj3mIrE97NbR2J8XvTmbDP/cgbdb/XrXxJ4UwyEvhZYxI8abdPUOtfGJ4o47FL4Y5FY8hXxhcUFfvZYpk8bDYLbdOlGy0BH1dgv61j8BAp54kN+S3p4povLLE2ZaND7AvetDWHSaPL3SvuuqHhm5UjYnDjNgmfELHu32AHZ0NfDI58DhnkgVsTEGtm25stfDp8MI/FulgvEgmr5vN2Biuuq8+FNmcAZm9Rq8SHmp8XtSzQGU+LELBcSjkQ4rE4TophSP8A9NYHD45eKLkcN8gb1/wfBkXztg5Er/hyKCbrLXwCAv7PN+gFfCsdAvLDYD+Qaw2OCc8dPlX/AOs1/wATfDYZbHLh8KHxMjNwWyaamkMUuDRJYQwszRS3YZuoIYGiLyOfh2I9pNYyfaQUbJjIco6XFwfkaJ/qYCYsR0kW6t/9SsasYPiuE79v80GV7fLIaiKDEwfUrT2fA4s/NJBXx18HhMYhM+EC3ZFzXcI3BaUpFg5xHDdtW3gfrc1C1RSViYMPGOM0oX9a+P4Z+mHDS/8AlBoSiLRHxVrO1/Ko4Xp48MrWsjHxNasOxlItEZbeJugrEFuKouirfkK0jFSKi+SJd76UgihG6v8ANZjxatI47yyM1R2Mv9tPRGN1f56k0KSo6S8VCx7QJ8MTrBJs919Josj+lt7/APKFbODU8/tEov8AU1gMTjWKZwJsSFXnsUVBDhcOu7DAtl9yTqabIg2t/A50DhIn0cpvyf5N+2gobNWJ8ooEJsXm1LZK0gmtNH77GFbJV3uR4GlyyJ/u47Lw4beSPY8n8CoLqvhCqLKopkxPxFx9/ivJAKd8VI5+9m9bclpLYvE7/wCBBrlvzPGtaXqvvy+daoDu+mo1eJvCzN5AeNqRcTJA7ezGxAb9DTlpHN2atlEAgVvCm1OlC+JKXdWW4LtsDg8KKoqeFfzJt870CFXytRMmDEOaNW1y6jSoncOAVUL5uVYYwTx6KvGgQDvdhzQSUdAabRvucQvQ1Oi4+DWHvXtf51O8WJiOW5ANS4FlkO+YFW1EM4lyRRpuKTyo2w6/c4f8UaXXP/3pMzey0bDh+L2p7RDyrs7DrXutGjZwbrVissne3VbeLZ9O0UKH2ARfXsjEkbL4wyXy9aYq67rLTLhviOxZ9iTdH5H8VRGOVPK/lHP586k7uEmyijoKN1TxMeBPAUCC3jfpTNEfw7PpSCRfUn8Ufk1GyjsdSW+q0L1OQfKv80z91vqy7Nmmn0qR5YBuM+n5dh7B2jwrQuaGopiFvQvesPIIRvOV0+vY+ZQAmZm3QNBRoEV5yNG020LrYFWagDyWhlK60SEk8Sr9oUtrJwp/PTcK2Mh7OjrQ20i4md2F0bw3bhY1E0Iw8RmaJ9dgJAo2mcSz/LxKp+pkrhSu35VFY8manMMyao8Xhy18OWSdt90D5W65QbClwXw9OiRRs311r4opHJJC/wCmlYXE4tuYjNqw6w5tq95/6RRSJ/b9QeFYhYvK6qg8JrHYqSUpdVRiChHIcaaXEjhiFXxqeR51Ks0XFk8vQjge0ssDN4mWkBUaq2bnSYaaEruYlfCWGzXat+dS4bDTzxkwRokjKwGiKDs9jX/EeDMuIIhlRc5MNxuOALW61i8PiWLtG3ctrp6hwNXlDNlYp4hrsHvt0rGxSTAaQQ+N06EDYawDwYQsYBLGrsWbiMxtrXw2SV1veV8Sc7DgDdjWFnwo4NK7ov8A4rEUnxGVPXhMTBiB9CRUkXv8T+BOn/4SOoHxPM/Bfi5lt/8AepCK+J/FU6Y34UD+fdVj8c/WH4U37R2qP/iXGe0Jg/8AxK/4SDn/ALX4tjA/5Xc18e+D/BoX2RYHCXbT3t+lWTEzoMHikdSrRM/jQkH8aU6RIIjJEzSBfGviWvi3dT4jDo5ggBd718OnxWEx+P7/AAsTuEKXXxk1hoMGcEHbDIvi1ZclieNYubFSG+TP5R0A0FFgJUsy9RqDUvRuqnQijM8gfPdLkrc9Kl+KN7O9Jjj0llI/U0sOHTi88or4qZRfVcFFm/NrVCYUkXMPV7k1H/bGZm2t9TT3wmG+6h5Fz/AraBb6bKtHzZd6rs54t2Dxztmb/Ef62rbjW8f/AMpdW+pKrQodgpAy1pJxSkKMKFbDsrbSl14Ou98xxp1kjPp/3+VDxpdV6jbaiCVoULmgTCD4m/7Vv4qO5/Jay9WqVExED5omb81NO0MqcG/kUbzRWs4tqp4V8OfFzpqZX3I/2FfEUmnOzC4Rs31NBfgfwVNHfzy9BzrBthfhV9HfTvbed2/YVZ522zvw/wAfT70fDHurRo6GvNvdH/1rc/XnW8Fs60aQrHISUb1W0NDstlTcDc6Xx/jXxKOjcQa2CoGlnTRm4MtRR4uSwJTgsR2tbjagcPi18QV9Q1uRoMQw8VuBHOkUxyL96oTY3E13XzvSoUfeVX48NtTyLil38NKu3qpFYeUcttS+MXRk2sttl6DvEeflp28Hly3zVAqY17Qw4riucEE+yrf51G5jSyRIqncUWUfTb7mkdV2arYe1XJpW+S1Ew6tRNCjQzhNQvXht4UFW/lX/AF7QQ9LeikSep/4FTd7fb07De3+7e1NcgW+VEx57F1DfMbPl2h5cNsSVP7sH+J4j8NMs+Dm1gxKbkn8N0rVNrfxRysfyFOXZtrUbv08tcdF9qQGpSADutrSkjgyisQkjyXzIu1PfsPjBsymiFjjJKqvM22/QUTbivYO02Ip6OlEg1y7DahKI3UCbx8TqzfW1a2NO/cIpORNrngK2UK74TqCQwfR+S+9NaInQtrpQUyD6HrRrbHqGrb9rglcGv9jY8RqMFdjfO4oNLOTeNpV0Q8+pol8R8SxCQL11ufzyUfuMGowkfsgC3r09pUdWp8aVvuYfdb3rAXfnNP8AtWCwEi+lb5vrWBghVuCqfDV1tSsCgoZQf05VP/T/AP3XXw/SpSWY01p4/CzKwZfy0IpURxpPFsEb7dOh4VGjlxnaL3vtoeE+WnaRVvZW2KOVKRYa1NdiQVhzfXQcdmtrbaxeLwwnbM8qJZWXadQ28KxePiiliDxLio8jM1+IB3rCy86EsgSNGVsNkiXUA3z722+ykWBZDmkEWrP/AJOdtJaMNmC9dl6SsVDhk/G235V8IQ4v/wCOQmD6ZLE1jJXwfPHgMv1Otf8ADvwj4w3D+m0mb2DCsV8d+CODYwv98EI6Nmr/AI3iXpNga/43dukGDT/8U1jPjvxT3kMS/llr4LhsI3rcjP8AUC/51jR36ZMuVdPAxZaxs+LlbUtK2ajWoWlLP5FrAf1ELxd2E9F+IFI8eCY+ASbetYR5+9OSBOvqY1nOKfxSBGK1FO3vO9qCQYDCIzN3Si8mTU3O2pWnxc0pyQ8+J9hyFC6ubNR0jhRfyvTFINsr+tq0d1M7/wDe2fkF7B2aUbph8sS/LU1sw0EcK+9g7fmw+nYwRVFyxqIzJwla6o3+OhL/ACBoBL2yp+/S/K57Us9CvftO3eXg3uKgZsTARIQi3tGN5r9NKdZbNlZV5baGSNdWPpHU0rCDzS2/ue1TJEF2J5vpSqAKk+VTMF5UvevSOIRuq7Fz8gaCJFiUs6xJ95objxcKwaTzJvPMS2vS5o2kii8AXYnyFMSo3aBU9aGtFQyC4VmC5ugvWUOPS2b8xR0YarRERivqwP00p/KdH49BV2RGsrNy502nYyiMvlbn9KKqkItZW1Y8AAdorKDKd3l0HSjWsTeGRenMUrHEROQrepTwNRlRGTni9HT+KnUx6Mqs29tvpXije5SjaMm6FqNqlvONakQ/DINZnxSd4iryXjc8AKwUSQFr6i7n3NLEE5d0n8VOU6L4f0rFSfU1iGNSSO9wQzfmLU5NO1O1HtNG1aGjR7DcjSiWLVw+yexBicFPpLA+xuo5MOdStN8Pn/tO21W4ow9QpGBeit63ti1q4F6W5p7sRZv57FUsPrT26NS7OCm+alaMkZrPppz1q5ah0pApXzcaP2coEaZ2Ldk4ebQMvq59gNzUbNIfLRCXFrtQWwpLBxZvxU4Qr5Wo9jWFqFCj9kcK4N28RXFbVtFWw0BItPM2RPqaBlw+CR3ibg0hvZrDrlp7A3ZqTTizfxRAo0aeSOBjeytlzVZppdxn4MOHzruIh1kWsVFp6AW/So55+8UpuhdtNQFbjbrdeVCvjGEwPrjs8ki/JRa9fFxB1kwz+M82O2p2OEdLo+HXNm9uHvWGUwrvEzXZuWypu6mbhAu79Lmocbim5yt4P/qJoQYZeSgyH9hUrs4Fn2R5zcm+YDTgLWtXwrEMEgOgx1lDjW6yZeXlrDNHqUd0xQsubYWGX69a+MYSGC5W8rZGuNosdagxfxWbgUTIhrAJ8Lg+St9Wr4oWkfaUzSvWAeeX/tsb+y18QMScVhUD8zeviMGBhU2zQSGfGTdS2xK+BIiIvgMwAFvzJruIF5QxAUST6jR7ASaxsGB5I3ilb/uD9yKwYnisAs0q5ZL32nbb2FYKALCoZt87dOBrCZ2Gqh/KalxKMWu6cGrDHEvwMpqBIlHBV7JR/Vzrw8i0SDMrp9QakeOXdsm3XSmWJZRdGXxtKzehF5WG21R/0kqW37SzvcA3WMaKOutJOZpHVT3z5nufUaPhjbu19l0HZmc8kF6Rk/yarySut2WbdivyFFv7l0ZvOp2NT3LuzFj/AJVKsUSLmZ32KBtNQkYXR4oJdluEkw4k+WOmLvbV22nsNGjR7OHbK8T2K5lPAggj5ilDO6JYhbeG2l7U5aFLNipvWfTShWTYeNS01b1IyK1G7/VqK4KL6yyewpDhsN7+J/c0SXp223KNutzHzrZOmbJyp7qgy9grbIuZVo2V9KRrlckvPob/AK14J494LWsyb3VP9Oxu7hH1Y+letRCIuLxJvBF4n35miP6aK4Tjc8WFKSaUp4A/up409gvlXbS2lQlJF9XIiolGHxPhdKgJwoYmReKE/tT5buPFSxgxXdCq8dpualOHUbE2u3y4CpkMGAKLIk0lrBr68qe6JvycZG4saYk/YQBr6t2D7AuxrDsmIDbxksG+ey/vajcLvI/hZfl/F+w0dezebb2jo32hw7I+/wADifBPD+jLyYcDT9/gp1z4afhIv8jiKGWvvAu7V1NEFiaAPqNGwoWHZtNHOv4ul+z3ofa2URRD3Hi7SyNwZdtWK/lQJHCk2UQAaGZaTsBtQ+wOwcKGxz9gEuCLVEkvxFwGyuuZYPkfN+lTvKZfCyvqLciDwrwR5jlvJlFv4r4m0bjeWHx08zJbxNL+1EmowT+Kh4v0oq8fFGbSkaKRt8Hy25Ht2nd7CStHZrQUytoqupyxjnptNBpUvq6qbUI3AQZ0XdJH0NAPhX8jbFb1DkaPew4iMdzdvDfiD1qNcoayELwrHQYbIL3dwKGJ+KScoIq/4VSHk+Ll/bSsLhIsTKlpIsSzyIF6MlrfOvhWCjvKSsys0jc8mYNa3C1r2r4TGITP3wkgVrrfTW7a5a+KwxLbciKL9QutQS4xv8P3avhEEPV2rGphl5QoFrH4nE9HlJHYSezU1hyoGpZ/DpROJ4sEWy/WsA8L+fFOm3olKza3Zm1//WelfCRgoVHinxWjN7Iuv1IqMd6+ry2tmoduIXN6F1NRFOGmrVaJm1vM2v8A4RrQztwbWsEsNts0gp5ZViDRkwkAtqGGo3dp2VFHgIW0Pc77f5OdTx1q5SAtPl/wBahcltaw64iXg026v/dH7k0brh0zmJbKCoBJOnCy1hBO7IbKzeFPxXOz3+Qpu+kG76U/xH70t5sHv9Uo6o/5Ggs0OGdB3Tbs051UN+FRd2p2lbellbelc7WNGnzS8Ik8TfQVefF8YMOhnkX3C6L/AN5hUCYROeIxIv8A+CP/APGrGxnosX7tepWJ+VRJIL+x+op2YjbE298udFqahQDfEcQe5F/IgosS12Zm8x4mgQP1rMTwVajZF4sy/oK+9k57amhwEHNt5qhJPHEz7fkKlaWRvMzdhpGRdPkae6qfGvpvx7CDN5/5q6frUBDj7yCXjfjejWrJ4H52pw/8UVaBzutTtFh7jI6+boOtJ9zBpGi7FXgDrt51vyC+nkXprpfiKIgw/Pi1Qhi/F9a0Z7lLeXmLVKgDaZeNEmPNmy0jGBHB+VFW2ob0BhfiMW9F5ZPxLWJbM/iiw8beL5mlGHg4Iv7k6mhfF41Lqvpj4fXsHbEJbrZVah9l1jX1Ns/KlJU7iv8A+h/2p2MmxsxCSezA6MKziJfI/lbjbpQYX7dPxf8AJNW75OPqFDse2GxJvDL/APDy8HH70jR4jDvkcN+ooMFoA01qXMK0o1soWBrU0fut5qFbh3fsuJm4su7QpWLcFGtDLt1alBtUP5msMwHFlao52zfiFLICOD0HQ0X0rSmo1bsFDsPZlIandZNXiaKzX2gKRw1oUCAezZE5kPyF6xvcY2LfDDwS9VNTd8+seIxOz3Rf3P2HIFO/yb7IIXi1aKNFqJ1Um127D0ooUzn30p2SOXfXg3LshdIMRmETldHy7be1SuqNGZEddqHjXxFyGG7LP3f1AqVJV84iUv8ArpUONltw8Kj8iK+Dwe81YbCGAkXQIawbq+Oj+6whgSRdLgOgUC2oNYedIILZpXbKrew0uOdMY5FkGdFbw2bgBt0oSH2U1hp39kNYGf5pWFesM5PRDVk53dB+9Tw87XZ2t7KKD4hh0Ea/lr+dQQRYY2spiGX6H9TepczC9ul+lYZJ1fezresBBEw8wTWiB2CpBI6+VKcQRHb7frUWK+JyyuVCbiacdNafDfDYvRAlm/mg+Ibm2grDxRtyRPF9TQoAoxoW6wrThhFh+7HuzCgvel+6iz7ubZmPQVKkdpDDLBnctdbhmN+enADUUqZJ0dH8OxQLnT5EUpWPTVmuzdWPHsAZHFmWtcJOp7puh/dabPPIzAM3M6ualWONdWZti0JiJf7SQr9/OOYvpFH+NqnEcL6tg8GzKjf5yb8h+gqCLDRLsSJQq/QUfsGxDVYS+v1e/wDPa9oyxZfc8KjZmOnh/SrRIul3a3yApBDENrVi5J7eSHZ9awkeGHrbxtXxRzIh3W1amQqNFbZ2HsLD571C8bjLIvNaIaGXxRfjqKycW9VEGRNz+KJJ7P7e6/tREqgZrLyp/C/j/FtNhUSBmtK8q6/L5UM8smiLxkbYST0p1kLnO3U06QxJXgi9Z3qPf99bMz72nI9hWxNtG1+lEL+Gj4JdMtKojiGd29r2HzrciNg1HwFxm6ihdd1V9qipSKl/5GF/qII38a33ulRd1D5lRM2X/wCZEf1FaH0NaRCp4qx1t0oErTEr9jVaPaPsmxqQtNHvw/xQo1KkPx3Cplwsz6DFJ6HPMcDWFkjK6XIv+YpAgrKFrZQpiKIkWlYVcZvF4qe0kw8LfoKHjjujfmKAAPlrZ9hbuP2qNiTsVawl5r+Fst29jULBGOcN5dTfSoRGZR96umVW2aW506F8oHILajF8moqQpo5JOfOiLrpRo0f+V8ITGOt2CghdTXw84TBYzcV7SFSptt4e1DRlBUhs2nuKweFwkIXZEnifqzHWsVLhXOM++eFsrFQl0Fxw39KCxT6TMq6bCVb5HKaNzK5f6kmjWtD7E0ZBGqs+v0FHP/in81D82rKF/DSO8jHwKu0npWNMTS+FpyueKNzsDNyva54Uhilhcq61GTCkli350LPKhkb5mjZrZm6X2CtVNTvLFhEyQqfIpJNhW5iPuX9jQNwcv0uKFzUUkt5GK5eV6iWEfjcCviMBf0I+v5ViZzhnje8UsbhGuCbBmtkvzFY8JiPG2GwDsbKoI1udKMpkTSRwtx10G8BUazIz6Fr/AKbawQV4xxY5b68CeVEFdxFVhHkJ4gCsU7yN5Fv+tO1n9WlAm1QsofRjxIqTuraqvCsYCq+Utel7w/hqEIObVLRrU0Gte1141La/nfb8hV5EjXMxb+KjyX8WXdVAdgpgf98BQWJBsdtfpRIBO821q8CDhxpHCW1aphEItQy6ZR7/AKULwriI9VUZmA5kba3G8cEyIWSeMklSCOOuoow4ZJDdnlYKz9bbxqOeXDwG7PFC+UrsNyQOF6KyGTTbopG2lu4S0pdt47GjtwPKtFXxKsumVeb/AMdaivhjuTsvjuPMta4RmvDP5aAlRXEcMXkll2l2/CgpzNipfFicU+/M/M9BwHCjRp6P2FNKcnP00KYq6ag1gS3xFBllWIaVjxEh1jwmGfxt86Bw+F4IvH3PGj2Gj2i+fxKelClayKXfooBNNeMAMi341HaOJd5V1DU3ie/5UlklOWVfQ/8Ar2KxY8FpjJiNir6L8DUofENqyeg7fEfrX3jtuhtslufSnu4IP02VDbF2sz8KmZ2ajWUZDcKyk5+ntSfdPs/iuFZQrOLs1OHaFyAV2NRvM6eL35UbNxTzfOiUTmtcde00PENH+yjO5NlVazQoLFbp/c11APPbTucLOBrP4oZOhI1RqllWRFvErb6/4SrtFQoJhp3q6ZhrtGy9OskfJv4+0a0b7YrhtXmOVDwtrKnI0aNmFXk8q4pd9Ryb1CoUKSbmIwrWBrFI44LJ4TWFkUeq3h+o0q4NGspdDlbK2YfIjsClRqzZdfrTmOZDmXLWrSPdm6nt1WgCK+H/ANUWYMkqGxA5GnM/mf1L71FdomzANSK5ke7l936CoM8b3N2fjSiEeZFbw/SjQobB/wA93jMmhdVvYc9CDXxCWXEpmZXW7/1PVhfwN71K6Tj+2H/tfPiKyF4j/kNP2qFCrusNk8A0F+FY4vgMFhWdMEEstkU2W9+xAU2X/ip3nHDb/Aof0zRKSzuu8OVhenv/AIr/ADRIpTfizdho0DqLVZHxOiMWClUqF35PEaeOIRmzyza5OGtYqDEw4dgF7pg2g4XHl22rDCCLDxhIYgc31NC7MbktUaSRkAsj7CDtFePATeJJGcDu/wADE8RWWRDMAXhcOL8rjjXwERJ68WR/IFfGBBFxgwm38rLUMgHmRZyudubEatXwzCBh607xvq16RMMvphXL+latSFmwkRKQs33bPza2uugtUbpJM8ZETpaOVf8AI8zsHGliEBz2KMoKkanYflUpFIZT/jQCjrUvstQZ25t5vrSoQpsyot6kMScFZrViQ+h0XnUObWlA9KL/ADThOi614l9T/wAUzO2xgtBIv1pABxlfZUzYhUbXNus2pCgfrUqgE/70pDiHLgMz61FBiVI8MQUW6XNfCklnTYkUxUCoPicDcvA9YrExITrE+EOZqlPes5ec+i/k+QpLYbEtJI07Psy3W9qDS4LyPh2LXJ23txqERYrzPPrr0JorJG4sy7QRRI+E4854pPR1+VSRyyBAVm8irbQ/iahbAIbqvGZvU1CgqQqhbvT5Ot6+HzzwGJxFdCrNETvpepLNxVvC30NGlbsNEAV/bX8650lJSl8FNojelvQa1FOVWQZJOq1k746TN3hYt15W2WqVXKLlyhbZdTtPE04j23ZqHCgQvlDUOwUDpSXby0NJcKyLUrhYj4VLbvypFzyaq5XdflSGJb3idtmatIZUySfsfcVoqNYv5bcDQ/C03mJ4j21p7ODcu2o0vfU14i26vmkOtr9KeROSqvDgB0oEA7tHu7mzFqWOQs4fvfNxFvattCgAH1if0vQZNfFSaLorcW96HghXN8+Aq9yN6gWZzu1g58MJblDNGVzW22vW1PA37fY3W0auf2MZ3TuCVRdLjZbNzoMYI75UVdJTxJAsG+VKYmnTO+D3jb24ig2GkgvkhC3XqAdoqMFW4N+1Ahb7G/5H1rSPE3jDeljsI+dWM2HfI9Agj7LkJKLPWo7DUzLDij3Uq8LHjapTh5o3KMsq2Fx12U6SofMrXFYOPN6k8J/KsVLE3AOuapYJSh2ZrbPcUVjmke65GvdeIsONHadWrFJi1Urd1Uhddo1pSkLokir7j7G7TWvWIazeJyGvm96JcCkWgAoFCw7D2HQ/800+54q040bud5uxAcPJLJK4K3uooM/w3E4B8TEhbcTYyA0FChtKiyD6+9E0TeiBRpaUhTusVo9h3jaoUlgw6d3ErE6L8jUGFnhdBIEtLnsbbCGr4WkCtvmJXu/uXJNYWWWeFvGiIWItzApu5kik7uSC1m2Zh9RSALwoWceIGjZZP151PJGy+ZfN8uNYXuJ4rXZd1r8r7KbcW7FqJdKJN6FGj4nXVSN4dax79wHiEURR5hKq7Q+vhsLm1WhwfxDO2DMS+C48l2Nx7mtsWjB3BbQam9C5NbCd5f4rEqGH4t6k738TNpQXqqUbelWbdosaRS/ANUwjTaVX+BRu9MUUUfdqYTMd5majaPi7aJR7wk+23bYVoy77eVPc8+lSGKM7+Kfb8qT+ow9svf7XX26URPg8RrFKm6y0iuI2BZW3Wtw9qggvFiAkCvcK0pBN1HHJo1MxlnOeV+IXr1NSmKIOVOX/ACY1iWR1uQy+HjTjC48+J4nuUk6qdorG4bANwY4nKT7WrHDHPhHJRGW7ADbZzr8qlMS//ZJX5+hqFitWP+W6o5mv/wCE4BgUhbQ4xuEpHGLlzoaocyMujIeYPOsMMbF60ju4/wAk4/L6VGuTmtxTzxe0rViZvnrWIJ91py32BS3hnWxbip4MOoNC0uHcr79R0OhHYWY4YGSNQ28p2/SkBB81KzBN78PG9HsYCwvQoXh2PUSTOkGeKVluR1FGxogq1LdeNMoJ8Mi9aKi+jp7URhUCW7pW8TsLfTaKCxQjy+jbtrv4MM48bIviYHQfnwo7gsqeZuvtesMsuf8AtMWPgtw0OyhtqUFE1VG2UdW2rVqJLHeahe4oMfav/fYo/vfx2oqQ3+9aNppbSMq7en5Ul2KWVVqa06NdUibdPU86cN/Tx92ioth7+5rdauH2NWTe+w/3E+8v7i9FoyBurvN7cz/sGnWFY/u0fRG1O8dajgCodXdCbE8SR+trVKsikBrq1115f8o2aNw6+41o6Yv7uZOUoFIGH++NP/3WpGXtNHwnt8iN+fhH5tQURtiHy08kB5oxH6VilnXlKt/9awMT9UcrWBiTqzFqKhF1VVXsOqm9G7f0qpJ7gn7N7cCtJYUGW+7S2HNqdCvAtUoLrvKtaA7rM1qdT0WnzFvKKFCjto0KPyWh9o69gu2WhddnLNy17bQFNIpfK1zxqdM8Xwd0ghQHcba5NChRoMxNRskfFrfzUqkDytJm/wDKKJES7hRONjY2J50JAqGRvvebte2nAdgrRS4oWkjXu3910pP6p8JGZYob+JrmxAr4F8pkqB/hc06ZZVhewep3LPLoH3Sx02/IURLiRw4LWt9tEpGOHqpRFBFvStsXoBxPSozHCOe8x5sedEi9aN2MCkij60Ls2tKo8Ns3HlasNBiZI7zQNOuazgaAA6N7GsBBNPiHyqqTBe7dyDbwi3Hdp0GGBMbrFdhf6a+/Q1HmPNtn0FSMQfKlCwHmWnBCX1br7Ux6qn+lPYN5V20AP1rRaIXq37Uc5NHMB9KcdEXYtZpGGqxfzTpFCm7yA/CKdxC+963/AIFWw2Ag2L/A4momiwo3E8zdTUgS98qJ+VFBDik72BVbcltcfXYRUal5JLePdUDUs3QCizYDBXWK9he5uWNuZo/e4hiWrZHjXQfJb/8Aqrab/qaTvp1bucKnqfi3sKkOJmbxePQfnx5Cgww4AyI28/Itfh0q0WLTVaBhnTSDGP8Ao9RTJ/w0rlZsUguuLZfLz7rm3GmMTxeLDYrDMLp/iRoV6ag0iPyxEAsrf5J5T9RWSb4nPuLtCdTQfFTzu04nGuRjqVahdgKHT7Ro1tI7p+w7Db66UhPG607kHVuwgZzaoyj9rqy4nDOmlMRlay04Q+VudAEvut+1HL/Tt8mX+RUazSKkhlbypbrwp7sCWXNzP7XrwRDcRF3uOnL3pLzeX0oOFuZpiWPY6hkFwG81aUezZXGhHKXts8h61LZD5F2WqS+HkTvLot+pU8qN3cFH+Y1AobIytG5LUPtbrafajZm1Mcqt4lPI9KxYjxKofCj6s1+VH/larTHuy4ky8mFxWjdmooGJuabPpVpV/Dt+lAg9hs3kb9uz/wCzwlvoCR+duw6UoNEhnNJeaN9WVt36UxJ4rRIIHhrfG9RuKP2ZkHm3v4qaSRRu1GT/AJN/FBUQDxMy6347aLER8F3nHtQRUjGVi/lbh9aNWZuA60wL+arPKG8PVTT6qeFHWjQsD2GjR+xsNbwoWahZ00ZaFarWIdPh2NjyCddWg/ladHQrfDyrqk6Hip7ZXRL7q0fsCuLdmk6NfEL1Omf2P63o+NPow4g18Cw2MgjfJL3gJZNL+XhXwWDCTXuJYnOlQwRxJbMUXxPbZc0TIfM380bou9+I8hT9xhM1g3PotRCONN1F/wB7aN6fhVv1oqrcGbSmWX/X961dNPDVkohct/FWFjDz55JZWfwx5cuhvqAeAAN6wL4bvEBQrLmjceocqe8kXgdWbMelZu7PFqYOfyoArWsZ8q0AAvmol/xNotXfiqj+KeyjdWgTV41AuV830oH/ADb9qXvXJ1ZqIZxu/hrVTwb9qd+5Ubi/t0oXjQ+NfV0qMomyBOtNd4CGVPU3KoVi+JfFQS4X/qoib2A4Zqu888gRV6k2Aorngdo3K7LgkGuPxCf/AMiVrJ3hRPnR8EcPdI+tk1u5NuDa3PK1FZYE/tLt709eGVfzogMfM2z5mkZX4q1HuniH94bUaoH+Mf8AD3o4w+3pr4l/SzS6y4CRghYn8B49Vq0/xaUfdRcIvxvRlxnxPGS+FzqbniOtAN8RnF5W9HStUGmm2hvsSFo3Arb2Hsamo3JcWoVz/TWpu4MkbKW5qdoo1myjgtBhFfwB94DrQXPAmQvxfsRmCatlXdHOpmjPqXQ0b0pNqmLuFcRpwZwbWo2hGuTgqkcfyrxuRkzBtOlvVsFFTIuvj2J786zcmfi38ULYiLws1HmLMvPTZVliZxdeNC0Di60TUbP0Ua1GYmAvl7BcUFjh/Ow7DdWNkVuDD/W1HVvN+9Pa65VoWufM1KBR7D9j2b/+U8S03aA4/FTun51lkXmrUpDitGxswT5bf2FNS3HYaIC34+aiwB3PxW29iKgO61NQ+yjKpO6tDUHT9qjj0B1Qb20VMFJ8XSsQI2CEiUrmW/tUTtKUMhlbb8+ZpSki7zeqmIJrU8FohJR6qhSE90JFdFsZG81G5FHUVvgnNT2IptKNko+zCjdPVRupo9gutC8Ugsy0Pf8AEOwbK2UM/wALf+xiF38I/qX8PMVZ4nGeCdNUmTmpoUCQd2ksJFzL1FOpPpXWsPPL7LlH1NQFJBG0m3OLDbcisZPyYxRgfS5pHm+GCHunnbeM3HOKNExypwbiDwI5GtOEkXGNuXtyNOow8+kiu2X2YE8RXwn4T8Tw2lpsKvdN13awDQLxhJLa9KQRvJlyojDUC+0D9b0jLh9sUK6Zx+y1hnTEJu23QvK1Dwg5iq8D70QBRyKaZWIHhZf3oVhy782S6/nwrGRJmJvCnj/IVjBL8WEZZMLaz35ZaDHFh7KzLlNuooBYpbI7NcZNjAgj5UIkmw+HySrAuZNRuWNtdhuKWNBP4TZTnZqBNaih92dKH+vyqFoZAilkl2gG9tPkac/vQCimtSAsdQzVjC+dAWZl3U9+VEpEPq1QqFXaGJs3uRTiXEmW2Ic/24lqC7Byqs2ne2105W4imzM+it6elawbQtLueGNOFC+Dwy5m/Ex2KPejvnWn0imjP0INOHviZCG4asTev/jMR+iVuRlSn+R0H51mCPovMDhW5DdEfg0ZJI/OsUJ035iqWZdPS28tFoIiT/TRt5E4v7cqN8Dh2+5W39xh5z+1aioHw2PdwkUeFH9+Q8AtfDZ8fzeJ++NWgxWFskMU/gK82qSiF961Lbz/AMdOz09mzsNPXFx2aMUyJ7nT+aFmGjNQJhdihbkw+yA4ZCjo2xlNBjxp/MP51oCBX8HVbeLMv5U7MptdvU3M9KyiMaq3AA7RbjXyTzf6VKrIyZigb86F0za32UAzcXpVJy5i1FgnktwWriWMXVm6cb19yJHyh32UimTzS8WoahrUKIDIbrSAK2+V586azWylm+Y2UxdUi7+T3bYKCKyj2prQR+FHb9RU4ldhf2+wK0PbsahYj/mGt4doJ7ND2Eg1oaPaQB+KtS5C1siiMjfPQfktCgAKDSR8kOv50KHjFHu1JszMPzp++RVuzbOzw0KGv2Iwoo3aht81OEBU6/sKN0PFfrWkreIO28RbZetKYsa8PYgLx7jem+hq7E0eNbPVRrdTb86O2n0PlbZSkEcKuG4cvmKID9ordG61L9351/epWEc9g6cGtqL+3ZtFRf1vw3bGNkkB5xt+2w1j0njJ8J7psxXqOdFXkY3szDO4B0QAG9ARZYs0UGVrM19xSxrByYaO91ErCPX51ig/gMgRS0hsNuzgK+Ky4aCW3eOt1Xrotzep558IvhWWdbM3OoRiMDil7vFYfg45ryYcDTnE/DcTdsNief4W5MOIpgCP7UjcPwnp+lM8Um467Mw4g1Izq/ra7KeR/mnUR9aRmxZ0bkx5k8ulC8p8SQN+rD9qlUl23PN7mjTscw8a9iaqv+pNamtVpIvEPO5y/RRenZOkCCEfXVjSpHI+867zf943b8+whmAyrSyzxiQJJBFED3khuEY/LbUvdR78SpvSXJ2t+HjWS9vGqtex5XrWFmzK3WjQGHxM8f8AUQ96ujLcgH6jZUzzSWszvt7Rcngu2gGcbF4L701hLH4W2ZWGwacKVgF36GWPgv8ANHb5f5qFUWJ7RW807Xs3sou1Fzioowzll0lIF2K/uKOcHRb06FmJKqu8i30DUdIAJJ2XzyMP2FgKOFgCJn7gy3lIuBcDoWq4NbBW3DY8iTnlkQEfmlQMz3MzJbiAQimmMcnGJv2PGtMSH+5K/nfpQMuB4PxSpRLDiUzTYhG/6vgimlAUUwVUHHy82PSirrEWiwcHGFNhkYcGb9OxInw0SF5O+UMoA1O2sNHhsGZVjSNNLfL2GtG7Ht4J2cK2+Wl7P+rjZvmdB+ZpSSF/2fajmgi83rbif4pbiisiTwd9E9uI1I9x9gUbAN+lR2UKMv4rmmu7B7M3XSgwW5yt6b6Vqq7WbdXn71t9bbfkOFDV9aW+XepLKRdaNyNau42+3MVqw3OlSuIkzWTgt9tG0uHbvIOnQHrUVpBoz86YCI8WoZpZL90vNhSyjFo9l2ZV55uN6BCuLqfVbs1Ywozt0C2F+m2nPcj+7L6ug6UAANEXmaN2Y0HFEHs20e1STTqXRijZeY20O03/AORojeFj6TQswrdP/IOlHu6Pu3H5UbKN1a2ReL57BRuqN3S2/DpQ0FChSKEgXKmVbFup59mrUSVNAEtx7Dx+yNaNHKqvdn2HTkKS83qoO76/KlKsrGz8Sp4UTnoqOb/zSrkA8uyjRrWrmiCFo1K2Y6MvY6gLrXCQj8qNm4P/ADXhJ3W4N7Gvk1arRoUNaB7s7KPYqIiZY/Dpw5VM0MnqVrV8UefElN9lca8gFFfE8MqTFQiS5rrbWwJ3etY/FFp75IMMpdWt+I7aweJxOOxiBMVMTuJtyXFYH4eiayGWZAWTrc18b+GiDCr3kcSxZC0jHVVO01II7C65vNUTYj4biv7qeZW4Oh4MKxWGxOFOsU4cLmXqu0GsZhUxqoGws4mBSVdfu34q3I1LFD8836aVj7zAi6SxkBhzBF6Inn8npT260hkBB83GmJk8y9OFIRHFYu3vspy/Nm/PszAcctbV7B4X8tAnSy1rTZIwb9g+5lUxv0U3BPypM2TxMgbwrbxZQzW3l1pFS/ijjZbfIClDxyb6ek1Ywj+0jcvURWGaSOSbufhqSrbJENc/zoeH1USEqUGH1/tbnXhHFvM3YbkbzVlR+D+r3ooFB8a0asVQ7jarrtpCZiJCiebx6EX5amlDLJuOuxqRkGCjzOW8y7APe+yolxeL+HSrLEH/AOtjXXuz7cKnBPxJI8LgugD3t0Ym5aj2AvCyJFHBsV3vcMei1NLofHHJqr9LUywyyvkfC+ltpIqR5UFgrNtkt+1YdQh3WTRkPMGr474PMfkwrEDvRv4aTSSOpcuDgtL8QmKEpfakLMNFvtN+FJBibbk8LeJfZ11FfEZZE9GLUTD/AMWjfUmggxOKAlmMXBK1jw2+3NzvH9q0AHYK8+naNV1pc+w7uuovUL9WZcqr7k1MojGrd3rmI2W6Ch3cfn5t7mltHetBUzZOC8KNDSjdgbLQAUvZl/SmAKs3i9qRiwt4lXxcTpTtLZBmDczrY0okYAWXyrb9a/slsi+/K3ZYk/lSq0KW7xG2sOhqBpWXdyLQeKws6/z2HwM1vZqdTM3lWht/2KVhFms1HvJBZqMkTrusGylT70TOxfxMm2/z/WlZbndbbQVIWv42bgNp9qJ7s2X/AOZbQX6chUyBwPn9K8MS7i9h7TS+IHe/atlG601iKNC60aH/ACdVffT9xWvlDj8r18veh/yx4/7jfLYKFzTtaiD7rUaCWLN3jJr3uul/arDtfKxHiP8AHWtVpgAftEnEHdT9jWUNxVeBoMQfNWq0O2Vcsp1Vdq05MV95qcuoUH50CV5LQsg2K1Ej+a107VUiS3yo1zzdil8OeDbV6irS4dt1qcAHyPWjDeVqFmoZHNIxeeQQoq7WY3talysPz+xPBhoHuzO66+1xasE8s0AZmlVM2fqTrSGJgDAzxbzX1I16cqjx+KXiuHhP61gJgpbK7S+BG+elQYDDSQtmRNJNdgOXWiXVhZnyFPH5gAeF6FLS0FutLb8VK2fMMqru8b/tQUodCtTLKCNOdSsEbe5UaAyt13q0VtPlQHfIzwO3+JOX8uwe1AAihQ7HuZN1fa96DGXDsuqqTs3G2226Hpaj3mc55LLbQ3HDdI4CmU4YoGX/AO6e4oOPguCfSLZ/UP6fbnRVsM5zFFQWW2z6cKBJq0sg8vBaNzQLdmrVlMjGgxeNt78J7E7yJvC686nVi/iXp0NBFxce77/xV3w2IXuZkbivC3UcK1Zl72Jlb+6Nt161K4g70yNB5FkIsXA69gthkP8A4zQsIMQhC9CGFC44cwelLfES64hv/wDWP1aloVacYgFUwYTO8/stQYmKXvc8MGEJlMI5FxXwQTpM5llcXjcvxJapj8Kxp4zXgb/9IlfFI8VhIEMhm71XsoFzqNtb80t4l9PBB8hW83aK9+wVwvT5JpUS6/LabUUI3lYeajZ01ajT2jH70aOhrgKIsNq0bWsVpCWZ1/y+VEpJ4t7brzogv+DZstrVu6LbvC9Jlc8q2oal7pW81SxyG2ZW2bKJRJ9ulOqbTmaoWkS2WR9i3p48EG2CZvG3sg1pMMZL2fFzrx9uQrEomuoiCj9BWNn+bVjSc3z/AFqFsTLJsSJQrWqZjOvheCdcssfS1OsTbVZedRRxMbRqqafM9aRxhlPjl9bUzJ1okmhQofaLEnYvWttG7U7RrYlW268KI2+1DUUf+RvjVP4oWil8LqPK1H72LY3qXhW3Y3aaPYKHYpZzsVaIZ+CcqGs7iJfYamm8Bp2ZG3l9Nah905qgXDJbc3hcD9/sCk4737UfCal82UJ2Cx7SQp9OlC59VAkrvKW8NbD/ALtQ8FSq+fVSt/zoUSWJrMANWyi9MG0DKy8jrsqVCSbZPNWn4qZmA8583yq57D9k3kv8x/pUqrC+8reboOtFj+GhqPNxo1tFAFhu0v3qUbuMMjOvJjckdm2jqN2pm72LSdv7arfQLbUNWCQo4srKuTU7CTpWLxf3Byf00OKsEjAXxVD/AFKSQq+Rp3Yquo2aa1j3E1tyCBISnK7NcViBjNjMy4ky93wBOgGvGn7wDitKSx8teG3pXtXwndaj7NRBoO+niDc+lCxo2Ma3UfOhR2OJV8O7fQ0Oz5t/NAHw5fpsp8knkHq6UtHOo0UN5b1d4incuq7Chve3Xr7U8QQzhktZXNtWyAWHiWh/TYDB+CQoukSjS3vyFIUw6KI414Lfget+PGhZTQdIOLKt2+fSr9jWzDK1HtNsRHqvJ1O0UN02rhRu2xfw1L3UjeFfxVh5RM2kIVd48VIqXucTEf8AoM/FH4A0lpb2k4XbjQY4YWIYLv0oVV0tQ0MQYdcrrQ0j3Or+r2ABoUKeI43JmcvuYZD53/ZNprFy/wBAjBJ3d74nFHk3BE6CsNFhovTGtvrzNQJKp4OtI0M4ZVjiTzuxsBXwh+585hlRqiaMJwdbVoO0a0bhfB9OwdiFhFZaJKr4PpT2tSt4t/8AC3tyo+K1NZTR40LlNGoabaKgG1QLLiGvlf00zO3BV/il1NEIJd3n0NLeSPRv5oa0SDQWZ5EDNK1OgbgqatWEM+Kl0w8T6liPMRsCjiad53F8ixaJB/gDR7/4rNlbHYttRhISdfm1fDMbjBs71Y8sf1NfBWC//wByl6jfDneET328xcfnej49kSc2qTF4vFogGAcN4YGzgmpGTFBy/fr4WLHqKe2MTSPE+WTo/I9aGsWiR85K7qdTpnSPJpw0uaF4X1il4UOwqKfsHYKwkOEyRhWEXnPqN6NkLZd7W+3Z2N2HtFGh9k2IoEArno6SLZT15Vsk+wQKNA0PF5QFvTiFPzpLNxbi1KWY04lw8S767HY7SKF77v8ArRulRd7hJdEb0mtn2UMbjytvfSuHYK8TUGlkc5VRf2FKY5EJVlcWKkbRahxqJSo0C0jCO/8AsUMtKXNEowNw1eYat2FkYeamYuT4qIZn1/xrNfy1oB5exzE7iyMq6aDTZ2Au54UtmFG5Ha3iXY1HK6asy8zShJPUtOzN53oyCWSxTuWsWsedf/s0bTYmcA24INSaF48QgBrVTW3sAkR1yujeZT14UuLKk3iDyX7sdOdTSwTRi2HYyHwg3Go+tY+bExHRWaLKeo14UHe+l77vtQQJt8NCpWRygtm4ML7vU8aDZ7WUrxPNr9o0oaHsJFaSfrRKmgTRvG6nepVoA0KFD37BY28VDWPa1SrFisCQC7cV8v53X2YU4fB41yXRVAyy7DmpVdHXxL6qLGNN1m8vT2oAgCzLSXXzpyp2/qw4DweVUOmbXlQJQmytRrWQjwq1AhhThVPhblatRKmrLxIoaCtZmGVeQY/r0rUp4RK3hy8yPahiMTjI3+4dd5yNQwHtRdMTJcNnQZVJ2XvxolMan90PoJl9fuNhFQwRYVQEu+t1GzZrf2IrAWk9eIs1vYfzReXE/wBLJE3XS40qEyyI3dInNha/57aiAinTvI8qjQEAjZzHOipx0iXS+oiHrP7DjWGM2Bxl1nEnik12yN1r77Bzi68pouXuKl73BTrmQ8uhoZigvlp4O+wV/ihSZLpIYyFRNCOMgqwcoC/v9naBZep+wLxxC+X1NwX51vuGcNzY0eNEyfx/NDQrb/KjfgtCyneoEum6tBlR/lSXZPN+lOSa3ju0G0G9s/OruxrDuFPFvDWN7+dPCyYZc/5mwrAMiZGKvNL4i1jlUAWH+gNXxcvoTwxr/k1D+m+B4STusHhgtu/YbZD+HlUgSDDJnl08T8lHUmnjPxPGjPKvCBNqxDooqJMfjzv4rbBhhzPqp/8A2n8VnlaaWU6s5PmI2LRgi907w/U2rA4X4ph32o0WRvkbkU7vhE/97+FYrV4PxRmlOKwOKUFXLEd2eDURIg1if1L/ACONK5D7pYar7UfATZX8v+LU9sThI7PBxv669moXhfcb0mhu+KN+Yo6/YNzT5rjX8O2iCkd8vh59kzRR22ouY+wHYxLGj2GgRRX7Jo9m+Hy+69aNkebMp9IG09go0SaNzSEL6molqRVFC5obPItR+NU3E/XralKcVoLa+rZdaNBSkm7Qzwv/AG35itV7Dcjsdi/qbbQ1G9TbRu1M0YVPAqrfM3I9KNSNFLGcyOu1TTlppXLO3FidSaKpptamsR+Zpndzqq7FU/z2LdV29pXvSLl6F7U7BxbKoXe59oNh2io783XatPHHOp1DaZ/maNpWku/ROPzo8A3yOzs1XsOkhPyokW3X9Pv0pdUOaOVGsVbmCKUDvD47Lsb+K1SBRGvVjtraiVpJFpWyjt7JS8WHUpEvpB1pyQKLmOXazeVuYoqxU2utc6KKzHwqzUpR13lahcA0EIGniWjncoO7y8Gvrf5UxWMhyz+mwJH1NqGyttDWhQAajRJoUKFRrWijgtG57Gt3gyN1FeON/C6epTtBqa0E1mgd28Ou69+Z3T1rSfCt3Ul6IZa1h/8AL/pW6aG9tWohLHKdf5o7DamsVoAuPNSscu9lp9MneKy7qkg2UnrpUHiH3l04m1spoLPjcKSC2uS/ka/SnjjjwpCyNK1szHaq9awb4ZJYxGZlmJZ2GtyeF+FRrikKfdluC8NeDKaymW1m9+dZtDQykby0dZcO/wBafupVnkCuutr6g69GFTS42eU5Ilc2zMdiqPL1NMZcHE905Tv6rcF5dKW4G+v70AkiePCt6HHl9jWkGmjeSWvGhp0hwkuEZp+qRyo+UVq7GwFYxI6mEyxPYP2c6Pgi/Nu0Es2i0S8eC8TMjaNKL3+Q3aiiw+Ed8zxIT4+VyaFcBQ+f70P9DThYr2aoV92ru3mTazMAq1MryyXsi9KQQo+xprINOprHGQxqXIgjLbOpsKwNk4NM37CplgXlEmX89tSvKYomZS7cbaVCGPWorR4XA9+V4F2bKKsk+NK4OH3epbQYKJYVSLemfiBTmDBiQPBhPJGoG+3M1inwHwWO+Zl38RasMgkk8ESneZzsuanL4qV8zu1HhQbFMUIjWGS2R+ZqUOxPdyr6lNP9wzlfZWqUI00SFyyK3Q7wPIViXdtuqbPa1SqYZPCwasUXlL548UuyRTzoBJ10niH/AJl6U4RF1rcgBGbmewUfsmjR7DRo0QePhajRo0OwkURRo2Avlomw7Si38z7KIRaw7SvxbbSqxj32zeBfc064t7asm6tPl6LUQ6tx+tKEMhsi+Zv9OtAEn6VtbbE2n0qHDMJ2XXN49NSBSkCiQwoXnTzULrwahmUG4HqrDwYdYFyeBdX6seJqISmRPCxYjIedGo0R4z4XZfF7HpQt+1Dxdo7D5c1DShUCxSf6WvRvbsc9F4VDeKS6vzTkwoXXbdfMKTz3LKdfajdR5a1SlI7AY0NjlrzoVZW1BB6UKZlKHw/hqUSu1iwXqAfrQtSFDxPqp1VojmAakCMN4f60dRSmOJt7p7Uc8fXy0Q2WYtdemykMn4KW0cm+tMCp1WtDW2gHAN7NsakADEtkTYvt0o2HmWnVX8jeo9aiMWIjOkq/xz60Sko860rl3RLfgYaG/Q0oUHyr2ICT5qNKrfirh2LRoAfY1NeBePYaO8dF/fsFD7+C7w9V2sv7iigixP3E/UjY9hWsZ1oWX1V44TvL6eopwyKumU/nWjI5DrTULKg1LUDiYDvsm77X5c6MYwkr5leJeJBGS+zZTzFVHfYYutmlj8huOFLFF/Rp3krF8l7GxW549KV5ZCn3/e7rE7th0507y4LGMXK89dQeFxTjEQjwq7LrpsOuw0LqfzFbaGo3vwmgRrQs5TJF87gmrvZBFN3a5mSRNBcfiULrWkk5MQjD37iDzXI878eQoBQK4UWGFfVkTbG38VaGXFZBLwDMLgMPfjWFinWLTvu8y1AMMe4MWFhA3UJuWbqaco6nQ1jJbHgGsKPYLLGuatWY3btNp3PcQdGIJLD2WtjDMx/y2UW28FpGPYt5VHgpdAdVotKsmtY+DDKTokR7x7cjlrBYjFvznfIv0FNF8OwcI8bYePxNfYqk6ljwpChfSKFmzd0nAX58zSKGxEqQL82BP5A0mWGJd1WJ2C51NuvAVMnw7BFrQB1BzKOdxrekUPjFF+WlyfzWls96e1u4hvyVEJNRMnwrAAnCR8Hl9bUb4T4aoVU4M3G/zoi8q5Bb8Zt+lBu5iVQWbjbpRtkF/rQ8S05ivTs0hO81MSOzUAKv53qGNeoUUd07G2fSp2dOKP4lb5GsOmFx0e/3HgDjquw0t5kW0yp042pif+ejSSPsVdrdhUM/FuQuTTsAbo3DMv8AyFIX1NRLUlEl+C5rIv8AkaRplvulckP8tT5gTconhT6Cgqr2a5Btb8hTF3e8S/LbWrU+wUbxwO0cS8lBtQsw7DYisSIMSuqFudDxg27DpRN6L99m2+UCiS/NvN2y91IIyYb2ys44MTsFr1pWpooANWb1ULuBZm68aBUgeNqfOvZxq7M3loOY++yN86mgGFiky4vIt5JWCgiMcPc8KTIg8LBKOa+q0bEbVo3Zf3o+ItQoqluDUcg/DSi7ebjWpU3oBSdAv8mvAVuxfoKC2QfpR20uhbV/TTh1P1X3rOE4NT/eyMx6Lck2rRhuml1tpXlreFbRRMb2ujeqpO5d4ckDuLp1qBYoOdioY8wDso2FFRikHgb1dDSFGXRl7JRI7C4C+X37BSkpDoi+tzsFJ3acWfSsTnYjdT+aisvBmo/YNGiDY71GjW3sTvOfL5mi0kmGu4bodWA6UQGjOasNFLgMS+5KpKRMdulJ38AcmNk1UxcHU8qnT1IWap0jDaq2YVik10KL+1QO0ciLZ30Q30BpFTDifu5Vh8TR+x2WNHOuAcrLZQJWjY3/ANRQeVZfHh04Bz061OmFxPwx7NBKuVm9IHNqwjsiEPOuI8Sq23Io9N6w7SYP4hIZVP4uI5UiqF8zekbPmKH/AEQvnLOp+79rc9KiaIBdrLZn/FTEhfyrVaNi41X1daBmBYiDCrp3rDmeC0+r4gageGJFTYBwApLxbqRdDz6njTvC+GdS8PubXFWi+KYfSSLZntSkEVxlNFYZT5G3Sf2qd8WMBi3ggwx1S6+Y0OFc+3nXGw/P7G5Bhwx/zfUn6BakgmS6B2R9hGxSNvYLOBSNGi+fYAOpNYt8Y3FIFzL/AOI6fS9YDD4d388o7xvlfSsRJL0ZtPkKQk1PBgofVK1qVk+HYXXCxupUyNxlYH8hwFLWlsU8xP8Agn+tBpC+FmCbeII43OynOJxk6d1sPdYKLYXb1NbdFfdQpEUT2UKKkubVKUOO+IlG6pWkMSqq/mSfelvJPMzFjR8BYflehoLXoWZ7qjc3XXL8xWHcP0Wh9jgb9gq4WmNqdkzgMjLQVJBJ3cqroGuLhrfI3oE/85iCOK9hINXJ+2gJoV4ifTQ7peu2gXPNqFHShRyg14e9P1bhS5Yo/wA+Zo3AraRREsbzGJy3G9xWsLaxv07NtN7rWreVvTQswoWYUbtzahW0ULjj4b/lzosVO7m5fzQ7E0P4daFgTT5LDxVugUdDQ7MU0GAiFmdm3/woKQYD/hzCZ0ETi/ffy1IIoIv7abdu0kneY8T2Elr7v+tFgv4azB+DNWo4tQBYdjsFJBZl4KdvzoqYkjyFlH9w30bppatjUuRgKcYKMReJC2mzX60qFVcJn469Kzma/iX63+VFgGWzVMgCLmzPpm0vW4GzVYEinH4Dx+VakiytSKRKpGvJr3oXufDRyKWsx9POsR3scGkR6GtJRVwV1VqOpNG6U6pjFHhb1dDSlHXeXtGc0jIFBLZV3mJOz8qJQddtDM3NvsGiB0o01oxRtRs3aNalSBn8b82PBBzNO2TCwlYk8qF/CooXoXik/I8GHWr47AZw64hd+Jvfy0qJMsYaKVIj96mzW261PdV3VEm79aIQrxDG9QB1AObvfFdSLOB8zmFY+LDJiLwPO/hjuuoPz4VnxUE4aCeFXCyLKBvLfeW9JFO/w2d5IMasLJL4D5jxsLaU64iPGEmdHa7ZuN+OvA0O8wWIugSZeG0fNTsNOxjHBfNUCBD8+yV5XXwIztfKOVDo1AktsWsxBOXLT3h+HIIOjP56LJDjMU8zr6wLAUKiWWCVMjo2xlPCoJ3ET3OOTVZUG7n5SDYeDVlTEqtpY/S38GtGDsa0VRm/ypkZe/OJTmM7utjz/t9ooUaNnC3+nZrpQq73hi8HDRFqMohNkVY/CvUczU15DtULeT6DZ8yKijj5vP8AeN9Nn6074lhul91fYbBQpGNvLU7YvGD/AOy4Ne8f58F+dQQ/CIOg76f67q/nRfE4j/t52Mj/AFOz5UNBQoKThcHJLdmsFLOAD+VDbWHjiz72RAt/e1AOcDHaV+TtQK013Mme/WmJcvetprZ3lbMQv5gmluj8V0ZGGxlPAioMJ8bgXZNcQz2/FfQ18N/pWI886H6Bb0a3jW8aN2o0vh6rQymjcGjd4t1ulbcQmVejjVayCQoVuy5tvQ0PtGj2CiRR7RQ/5AJp8i+lf5qJRVjehYDsFbaBceasQcTODmVfKt61Gq0LI1eJ6GS7iUfOh/cQMrcjQykbvXqK2eat4UNPNWr20PqoWYUpYjeXZRq2lYhYmXcSxzOelv5FbRvUb0aKd4l2dcpbNfl2G4o1tpVfkzU5gwKj7qLZJiG5AUHwvwSL/wB0wMemcDgP3aoxHGIxHHCvhSJRwUdqKAq2/wAq2BRRAK0llpmy+aixQ+natBrD/YoKP8aN+ObrQuh3JeMdKWQHR12UrFVBZgtAqP5505AQ+Lw9LCn7uW3hzbrfOoCjIuX/AC260pBHBq0YU+XERdd//WkvPBpKq8VpEdl3A1/rpyoKJCSbLoPkKQoRvFvF4tfyoqDOLM+XxUVzV3pZsOww+ThLwJ6baDmQsQysvhC8LHnT+60RDi13Jf2NG7Fb0lPfpspfCm6FogUCzU4DemiCRTALT0aJEY/3YUcirurRs3Zt7DZ+DV8R/q8Lg7Z4V3zwC22AE1GsODxcXd9wmwrtUKOh40qkHUNXhWgpVxutsbmK1wkqFXwRbxa8U5isLPDYXCupWi6ofw8eX6UmIlgjQ2KL5m8ILX4AlSanQYzCsj/0sieG6mx8XWoneESd9h/K0D8RfiKmaPmE8OY6gsbeY8TRoELRvdfF70OwMcyENfg/Aj8q28eTUXKtuMtOMRi49BO2yL/EcTUyyPjpMoUNdixO0/Xb0Nf+64JBDH8uNYrDYUPuidjnb/FBqawXxTED1iFIB8u8N6+CY3E8xL8Z7sfRK+Gv8JgTyI7TIOYN+BposHitjKW8BPQ06uq7rCpEMRxj4aFE4Kju1z85P+QKheUrvW4e54UFkZVQWTmFUG7bOHAGpe6TZlh8P57aiCJQrEQ4ZODStlv7DaawEmK5TYg9zH9N41j2WA6dxhR3Mfzt4m+ZqJEXgqLYUKJFDscAQ4eLDbba2L/q4oVY46fwYSLm/wDAqUyzSuXd22sx1JNAGulHYewXXvf2o2ZWDjjra9P3c6C7wt+q8xR0A7TRJqGXEvxjhG77ngKxrwc4ML+7mv8Ah5MXDxaVmaRv+/e4psf8Cn9Ey9/B9R4hTRYrC/8Ab4d88fz4r8wK8LcqY6nOrULR4n7z2bzD60KDFqX606fJqdaItQoUrdp7TTeHjTd4gPhb1DtUlidFWnPwvD8EIvO//c4fOoIBBkBfvD30srXIN24W6Wrh/u1cVo3I8tfJewfNq8VCgS3FVrEos3CBNX+fp+dFYkBuq9BTARjUs+yh3mtjK/7ChWx0yUVvGuQlulNaWIfdN+1IVZTZqF17BdK2pvp6hzFCzUNU8v70KNbR2C9C7N8/npTFk4Ff5qJvxC4/SkdOjUARUupsVb0sNdRUi4uLDWOHgQWRh+KuWxdNmwAcqa4oGwoB08y+rlrwq6pR0BsrersNKrc1YaU6yyEZzl2e1J4YxursWsGuIQ6eBspW/EAflVkCndbb9KQSqpsyrvL1I5U74eeOPMjx6EKP1qaHH91oksSBZE4ajY30BpQmFkO3DLpYcr7Dzpj/AE+QXWnVmtfMOvCpj3kZt3Um8vseIqNGbroagniVt1lbMtFzJE2ZFil0v1BpGCtvrXjTh2Yd4BjA3dM2me1YJpnls0DhsuW1waNNWFSMIgRivnPqNYgCR75kCnw/76UowVgLsz7x4mkeWIbjNtX50qHDtuuv705kZaS7elf3qbI58iNSDDR9N5vnTNlFPY0bScVoAVu0GCjyt5aF2O7QIoWnKa/ipSGTg1DSlIX1Ubo4s6tusDwIoZcosvDL09qPYyG72ujXFKCpqVzA30+Yp8vRVA/TqBUrEDm3++AFGyFs30v9g6GoVcndYk+GlDfhal8K+ahRCYeD+5PI1lj9zWsBFnlbRpf4FRtM4O7wWtcWIjHAreVm0v8AJai+/EhL45vFz3AdKgvI+rTy6u/uaFarQV16+YUXwuc7YW/Y6VjDJhD4TJExRkPUA1if6nA4/wAaTHak/nR6P2lLO+6q+aoR8QeO2TI9oNeZGra32WFQRp8GMgVMOkeTwFwmfTqaNl9K0vstTrG/CFfFK3so/ekX4bD62tJO3/pX86L4jEHbNM/eSN8z2KzE8FqRIk4LxahQ7BWv9VjZ2X2Vyg/JBT2ihXROLngop+kMI3Yk5Dt5VxNc6PjDArWnd7akMWJWchHQ2YXqfDYuCxzNMuV9BfatQLFH6i9MIY+u1vlStK50L7S3QUThU2phNklYSLCwDyRLb5nmaP8ArSLI3Woli9qcxyL+fQjiOYrTDTtrFxw8m0oenFTxFIGC8WFM0UyAzxLt1A8QHutQLI3rfWmsvBV0o3VCSvPXrSHuQ2Qt2Cj2qppAD2C9DsFD2bsCByhdndrLGo2sawv9Z8SKWkxVrvfoTuiviNp//gcH45vnwWvhWE+GwttfIJZ26lzs+VEljXFewULnsUmn71+CRfzQOBXiqbze520SX81N41pwxdNSOFHNZqXhUVngkBLdDR1jfMKNIkc0VyJfX+A0hR1OVlalJUAn6bawsRkMuf8AqfOBa2T2o+A7K0Vt5PTRsL3ahb1dhv2ailCING8NWlz+V/2r7iYbobnUpdidCrfnUSyLl8bjal9mzjoTSsI8xCM23QkVp2NWtAkCjca0ae/JaAPFmXt0WRQGDLWITNfSJd759lwp3gtOpt5V51M6Md/hryqCPFxkatsP1oOMMvgu21b7BRIWgS9OWTYr8vnUImitwqUxsPLyoCRbf71pAQfLTAhTfK/6HpUjXiZ3EXlVjppV3gwubuk9ObU2NHMlC1MXPJaVYxzXbU+QHa7XIX6UKfvYm2ptHzqVcPPt7ot4GNYUYReDKu9QZpCLNz041e9G1HSjWhrReDNS2/WtCutYckmPO1v1raj/AK0MsnB+VQsyoSVdNjVGZGP+9elEYhI2+Tf6UVIlcmy+W2mWjpQ0o3SLxftTAsoyN7ilBU6NWxGPaPApvu/vXutDsXKLVso0pJPlqXVfvcU/BpTw+Q0pLIdkvD60gdjtlaiU/qEaedl2rEuhC/5MwWkUBPAi5dNKmqe3+VYfFOODJBIf0FfD/icEnFkwT2b3HGvg+PliOyaKFvzXbUrYJ5LlZZ42jsx4WYVOP/ZXxVrRzcIpvI4rwYzCuYJ05Ov2QMPheE8vhVui8WP+INO5zqFxOIfRpCdSgA3VHHnSkM+BZ4Gt5wGX9WWsMcBhcNIjN31kz92CEUckXb1NZ/ibjjBpF85Dp9AadcFEfJhtD83Ov6VEzs51br1JrE3TiYdi8dpqEtAHsjcLc71MWbT7qLbQXDqRlVVUZmpHeZhcJtPzrD69WoWJ3loVshiaQ/IE0f6n4o+ER1winW7C93qcvb+1CmiRDoOw0pq47Nh0PZuvsrajBq0xK4tIHN/I1Rd6zyGCFG3VyKCzEn3HtY0/fRxf3pxsc8l/D+tIsowEDzez6AU/ic03ChmT/dqUICK0YGhSiSJxllibY6/72Gpe8wsmiEjdPpYcDRWN45QzLwWgwUOQob3O3sArNYH1afTsatSPNRJv2ijahegD+FhSyiQ7FXxVqTpW2gTGu9UndSpcDN4gVOhVhxFfEngSXyYZRGtvlrXE9vXs9qGg3jwX50f6h/Sui/60QkfoTQUoYE0gTGImz1io2IVvvEXwnr8/kaJXWsQyc1WnpdAK4xEr7ik8EqFb9RUfg4UMrg60l5of7yetaAHGmuqklfnQXxoUzOgOh22vx601vS1eKM/lQrdNIwglJVH9RG2uVHLpUlrb8TaNQ8YH0pWJJ3mosVHiXqOA9zRUYgm/Quf2X9gONXxCS7YttmPEVlM6j7zIwOVuI07BYDi1C7is938JXr2L4AuZm4LQYX08S01CiFFszVkIXzKN7s49mHVmfw/5daLZ+Obb2Hw0pNAFhwagR3jbq1GyvHulvMtFVZtCtYYOg0XgV+dS6eiXT86FBgFNi5XT50Lellr5NwaiUk7XAYHRaWn8FBkfi1BZ4OKNsrNlBzFG8vz5UfG48NCgGT8/lRzxnzfzW2iSo8tbDrRqRkAXL7ryo6Si3zGo7AC76+3tUrynF/dqrbI4+N+rfoKAFYBPiIOpMq2VLdb2qWIY03+4wD3VhwvmHhpD3VHRgVb2NRNeDJlha4ux2Xow/wBRHGZFeFMmUrwI4qaUg4qJZWifylhfe2W96lWB1B8Lbel6fvIicpZtLt0Fb5/3eriiLUKJoUbLUJlXCDMq838opElxD7yK2i9CaUABCFVdi06zzpy3f9aF+9SONPYFnIp1FvFdmsNtyxJ4dawT45Dp/V4qX+mwny88nyr/AIo+HfB08yYHCIn/ANclf8afF8V0THWH0jWviP8AxJL1SXFtWP8A+JF9nxI/UV/xV8dg6T3dfzUV8ZwOK188Zgb8tKlvNP8A9A+JWYNeVReOS49SfmtHsi/poW1DzaXHQbawyY34i2rTY1c6pyKx7v1zViJcRIvnbh0A4DpWLgwuFw9jLNPJlGtaSokqnHTw+A3UNZV2+TjWKnx77VWZvAvsg0p1gw0YzSyeWNKF0Y3jk9a1hAI/E4ln8BVToMqdAFAoz/FMQOOyFDt9qxhGfxGDDcLjSsKkSsbhduzmeVffYlz4eXvXwo/FfjbqGdjdghOu6Npr4ycI8Eqzw4RLOykajwL4VoWScX/x6fL9qFhRTFzzI0M+J2ogOhC1I8sr6s7sWY+5PYCQNvaLFbVuPQubeGjYeVq1HqWl8SjxdV515MTh3qwnx8D4vEnjkdrhaF2PE/mT0oWMrRwL+ZNbh2NR4ULXo3Kmhq9Db2HRtGU7G9xTWmLsoh2tYbbcxRSLFjg2n16deFRmOaM5WRttMiBLXUtq1+XYaPaKFAkmipAo5OjUARUpjkjOZaAHeMWbJ1pnkb0fyalDxyraSLKBp0oBGIsyuutGx7Yy0ERAdvTevUKKpHxZtlRHEuvnfRb+1S3Q8Nir7CjcUVBbzO1h8zTgsDT6LpXn3161qho0C8T7VpHEbDQtT8Ke0EeLsy/l2rmDDKw6GkypxX01gocTLNCYUeX/AKm+1gPVyo9gureFl9QoXgk/tuV3ulC6mnYxI2ZVo1wqMSnhKmjVkxmGOmfVWXobcaIeNr5G6UGbhZf0pHGFjQB25Ek/ncfkKLys75IFl4P5m+VYho8Im6rH+819QaC5z/1X12UWQjy9aNBZf450L3N2rQZ9EbzCjrsptfN2KCvFdn51h1zPuN6aAyvumhQoKSi7G605NAAx0aLd1xC+bjS77eGog5U7rVO6GRs2XhUSStzrAfNGrFQQYUxgRxupWTPxJOy1SoI30Usws3tSs0h3VdjlTYPCB7UKF14q1aH0t+xoUKiWUmKSMK+74lIvQuKek+dPp0o0Pu22r6TSlTegrgUiRgWDRUNRvRNt+VXBoElaFCzCiti+ZbML6fpQzK1m/ej307HRfT/rQUo+8Gp9DqW2ZKxEeIkwj93PEXCFbHxFugpzKTKbPwbl2xpJh8Sgikh4ZaxcWFwZjytE7OWmUaiMtsVTWEOGgQWW573D2/DINV/71M2ExcJCoVIKyq20AjRudOZI4/Ci8AKw1mQEb+9e9j7j9qRb7M1GlBYGsLeXeVF3fnUZHNR5fapjHUOSzlpHXfe/L2p8rEXyJvSVH3MezIn/AKmoiaT9K32xMiAbTcqoAFYZsXOz/d4RFzi49XBj76CvjBj2D+lws1vk0vH2Sv8AhCF+InxiCL5lpLufpXx3/hX4WnozvIR+a1/x/wDAk/wwf/8A0r/94nwb54D/APLr/jP/AIbm6PA/7NUX/DOOJ80F0JrANgovikFltLnjE6XeIg/VaNnHhb3FRZ5n1ghfYg4Mw58hXuzUl3lN26ch9LVrJO5PyFfdRwKDL6nvsFQKsqaq3UVx3fnsqMyT4rExf1LLyDXPyFqKBlkMt32eGpTj5NNG3FPts5U/dQ7oSLQdgsAPFXhRFuv7AdSbVjHn+JY9i8zr4FS53RSWqaODCIBjEeVrKqsSHH/j/wDOKL4X4ZseXY8/amZj9AOZqG0q7+f/AK1TxFEssTlQ1C6p/sCiSWPjJ51uGkLxc+VNnU7WXUr7igMTBxC+IfzRbDTLut6DQili+J4QSYZ4DdZGjbNp7DNQucFhocJCPYAChYYTJhAx2ySNcs3zCn5EU1wHLfPZWqmiXVNV9qNxW8utDVNV9q21gMNjDiITGpmX+0x869krGKN8yr6TzFfd/FoJAgkXTv8AQkX5SaHXjRJx8iIkM9lvZTcKw2kfiXZSNE6GzVqTrRU3Gbwtf/Z+w+RRRtxZmHAa1EqOdO9bVvlTVrRKGgCfUvYLljm/xUafxTMKh72FDlL+m/WpSy+ZfMvtzrMVU7GWxo2oEKaF2JrV8PM0bf43NqW47D0XsNTGJlQlGK3vRJJqFxh38KyFdL0NKPh406pInYhRZXDrRuXQHs1U0e8UMy5W8y0t4GPg/g1q9RNLIBmKjaANtXV0ohJd5H4q3MUL+hl2OvMUPDWyo8zxrdvakJbg1IssUhuwf9qGZ1sVSYj8rVhp42ltutuEcRRtign+Pf25j1Ch3QiURxN5up9zV3WC2UrrdjsqZzNGne96G3WzC5/UfKiHQAeIddR2Gt6lJcm6n086cKFqB41QkKzf9YoG8KG3sGh3WK71ICBrZtjUEiDP4G/YUksszTBFycjxPTsFyaBQ0DwpcvJaNMzGrECgQ3m7NTlu560bhXDr0YbDR1glzM0XhMi8VNqdWdd5fMt+YpKHY6O8styjxFjYDTLaoGgw5cmNWbMwXhc9hrDvG+Ny9y23MDxFttfEA+vcyoZQ13G0ivA3BuFOpzr+fCkKMPCytRtIh+tJdn81GxoKkyad4uxvegRlSzL1Ov6D86sKbJGxszVileFlD97s01vQMi8X68lpgSpoVoF+7Umoo4F3pVRApl43YjbSk8WpgGJstOsYjXNZtrdB1oaijd1TKfcaUzKGFD/orSBirN4QpPioXWlWRDdbNQ7Sqm2lJ4+a0VcIuZXbl7HjQs4crh1b1cT8tKLC+r/zQ2778WoVB3U4iLB307tTvyHq2ig8gKdcJhRpicdPx6aat/gK+GXfYfjXxbVv/vUdfFsf8UY7YmlMMX/gSvhGBT2gW9YPCrpxiFfD4JY+KmIVgIEUnaqAMtf+64i/dSLu35GpWTI6yKvUG4NIf/Z/etiXbgVGtqWhtpa2YfC/mxoXtKczclQD92PY1oUxAzs3BQb/AKEVG07wtnRm8KX2XttNIWC7rFbKorGH4tjv/hsHqL8mfZXwFMB8JItBOg3H5Mx3ga1FDwL4n/itcB8Of5SzjQn2T9aFT3ncfdYdNZJKtDhYbiDDJsQH7GqbsiepaxyQYmJ/DI8R3TtU0bq8zFfqbVc4u/fd1zio2B0bp1pO9gYfl0NO0sfJd+P5HaKxIlt5V0b5g1hf6SYnWaVSqMOo2V8Kw0zsAGmwvPmLHMK+KSjA3ucLiI86oOLE2GtdJvoqtSWT/wBpTo3vHZKvqTR1o05Bf9a2ULrUbBrm733gdlhRuB2hgXQSJ7jUH6XqdDiy5kMMnhzcbqeBorh8XBpg58Z4D1jMmxl5XpO7lXavYK4HsYEDxPX93FNYdEG0/M/oaCiYpmk+ez7GrFSPmQbU5w/AsVvlo6DwqvQUKlZIyfEV8WXrajQXo/mWnaSMILtt1/ikDLxXhV3hLgf4nka2YqFGX3yKaFR2ifdalbMmvho2kHZqTW0jMF51Grx2tXjifxRScGWp2gCoSjepuA6VnAJujdL2NS3kWl3HKMa1yeCkyq2l6bMxGpo54ntdPao1ijJ3Fo3YbVpzHKhvShZB/di9J51o8Z3aOTEjcbjG1QtHLHpb9x0oeGhoVtUV2AJbLyHGiyTyXLI2mWoe7dLNMyrbM4sAGNQ2xS+Ata+Ya2qMFSMqhdPnUt5l1aJtG96RXyNm+ezWsiPwXatQkEaKV2flRBFaUaHik0qYtLJuIuv+78qmDSC6KkS7rcbtfh0vSDo3Zx3ff+KbMEvquvva1BXuC8bfLS1Aq4BUrxWhQJlH80aIC71akGow4I3W8tIHt5aBAXdVNi0egXtHZpHvZl23sRf9KQHlKu350BLDzWhZqFaimaQFbuGW2U8R7UfdaxbQOngileUqIvY8KAnGHxAifFIwZO8JNvEefOkUmTxKVbWp7r1/Q0l8NOBkblYWy0Ld5pTqzA/Sg3+K0CAfN/NC7ON75WrVexiex79G81Gz8V4rQ7pY93/WiwZdrNQIvcs7+f2rRidjeWjSJEsAKqy+a5vc0N8j5c6N9M12a+3WluyNlb2PZH47DWh/K9gJY7tOFmjfYvC1GzinVp02caN48MmXJ+p+tCxc5moCR6AFTWhKRNMIl1Zyg7rDqOYQrfkWpV+61gwQ/tQe44tQXPxZq2VDKOpWpbJ1ps445WpyFGvUnlSPLPJZ8KI95X59BzNSDuOLPs+Q41hlw+Ev3GH5siHVj7tQ7eGRfkEFbkua/wA5bUAFLWX9qxCYSAJmaeVgqqR1PMNWBn/4hxnMIUhH7tXxZPg+AfZgMPxH+C1gQ7/9tihmY+y7BVmdf7srbb+gcgNCbW4Chqd2mI+J48F2l/8Ah4thkP6L1q0OHhTazaKBxJNWxc/HGbYkrEyYrESm7yyNc/Y4jtB7pNWatEiC5fnwpOrwJtXqtQ+Dij7PdT5TWMCy+h/C4rC4ucpojYd7n5ga1hc7Hw3mUxN87jLUMTYx9jrGi937EAUf829ZrR8LhJldvWMjEGvGTj2xB9pLj9Urg5o2vR2UWyNcK3tU3g6/zTg9V81HXhQ1obD2IyPYNY8jTmFpQDHKNq3Gw9K/98j3XbZJblUKRfF4EtkRQq4tBy/GPzp1Qs+XM/hVeGtcO02aXX2WnMUaqFjso3R8ven7x32tXLs4UQmazL4tdaBLP4V/c09lAv8AOl+TfzRu3pbbRLsN5ONRMLH01dbG9AQyDQN5f9Ka6ulmUL/v61E8U2FRI5b8xetVbxfWvGopAw3JEbzKdoq7YOfxJ+HoezUqaBrZwqySoCYn5GkKzxG1DxCpkfun0KtdW6XqZH0V1rURNmobKYBiNVqbOgOULSeP00SprKJBvZWDD6ijfgycGHKheJ+Hpb0mhdFPjXmKdGxSJeJ//S1IUljOVlbykUCBwohJTojts61AvfqTGkvqXnagSCB4qFmC6/io+BBdv2FJl03F/YcqAzbGp8iAX/0oWanzDijUncyDatZu+zaLwUcqFppT3Se5qYQsqBXnVfEzDbY+X3qKQTYeHRWiK5FvvNfW7cBRJWjwr5UbEUVEZ3Atc7lvbh70QDSZpH3W9JoZGoVotAEOKFXItZqANMpkHi8G6NaCmZfEq/mTW+SVZuxdJFzLRprjitBcNi9uXytULDk9HhQsa0b1UAG8tTSLA+rIrHI3uKLOmmujbNmp4VKtzrZaiGJwr6OjVir4N/OFuyt6SBxo6SWv8qJDDdagsUkm+q7r/wCteMTZjdNclrb3XWpO6U+bL2swTzMovTrKoOjL5qxTwTofulVb7dtzTqk44cG6igCdq5q0U+ehllGxvVQuxNqlSNwpOVm5XuPfsJfD/wDkopKMQwVKQqy71GzSGy0bLAAFb1aak1pf6VrFXGiQD6aJZaF1liEn120eJWtT2B5YvhyiOINradwDK/yPgFAGzarT6Vh0X31P1r4g3SNFqaeNCamnk4KnqqXuoX5b1J/Uz7Tfdv150N1DlXhUjRYf4ZhUM/dsRmc/yew9nF7fkKF38nuJXrVmN2qJcam0wLqysNhv5awcGAQbBEt3/wDEdlC78Wbb8zWuMxHhgXbbm5HIUGLbF58Sb9SSST1JoZxEvhiTazHQIvVjZRWJXGf8RY499PhMMwcp6IuiqKf+kwHDCQGyfP1faGxhR2UpaSQ2FANK2pbrxY14533VbjzY1jBhFPijjCbeV6+GwNm3pMt4363Gqmp8sW93E1pE+TjX9amOFgTVnkYTL8gda1kK5TKyeL5DYKe+KlX7x24D002r73TpW18DiVX37tqBLweD6OWoaGzfUdh0qbcuchbnyFGpLUyFXbN1VtdL8qHiBpd08V09jUEZd5A6zeZbcPamDSZQNltlOn/Ro/vFZrGwO0fUVI2GxkSXgxDLmVx14hutAw/FIkD22GReDrQEPxuIEzxDT+sA86j18xxqViATvL4tOYo0tYhMNJEfA0rWDKdov0o3hTwR/wCI2fXs4UCtHo9AtI7WVaF4I/Cre21vnrR2eJ/2rjUWfmv8UBFIALIreLZwPGpHdPUGP51CjzNuzMxzLU8eGSO5XIozu1tn8UDJFfwlto/1o95A5ySBdDY/uND8qcO0DmLMvm22PYDmoXws/PyN6hWsR2NwZeBo3B7IVkhaUCXhlXmKNxzpLYyLl51rCLnw8l1l9XMNzoKh4qugW3LpWIMsrR/eIVtlPLrwo6TwkUGBk8AbhcczWqkEBfen65S2tOBPG/D9a0MmoX08xRigxKbkvP3pLSIbGgZMPLpIlHvMPKMyMtG8JPjThVhjUF3RT/dX+aGVhQoAP+VSquHvmlmDXZtvhUfvQEVgLJzUX/OtEdrl+VISIjo67GqYpjDq0TftURKUQ1Glu44rtpjLFzaguaPVOj6gUL238w0oWINGx7ABahXCtlEKovmrxkbtFiz2DL6bcqFOQqi2WhS3BFDTsHi4/maiR+X4aKiMG4VV7CTRoUWBFRB19fL3qJ3wm9I6W+6XmRyoEBtVoUag05r/ABSu+3hpcbRSEfiWmzKPVRZFffTarDqKJwzHzby/TbRTER8opM3+tKy9GrdHmpllnOz+FFBU5on7nnWsMhtHz+fWjnbLmDLQqVCzkjuvMtuJo0b8Fl/mmBTiu3NRvOSGCr5OetIryZzb1tyJob8QaTo3KntyX1VCiPGdWVbcAB+n50zZVbN8+dFSNlwuvzpzFfQP79exrvypj3Z/3alsiVbNR8J3aHiyOv53rnfs9qsJ8RZzb8ZLmjYDVmoXRKXvcT6f5qTLGp28PZaAhh2F+JFQrJJ621o2U+mlpQWldIv/ABMBSANKbuefDsaxVrU12NbTIawb3UMVD+Bd5qcxodqReH6naaFlG838UlOIsPh1zu37ComSefSKI/8AUx+Vf3PWsaiSEXSBPFK/stJ/7MwX1mNFmZtSx+ypLXqB4zyZbUK20pOJl8Mae+wVNd1XPM//AKVofcLuIeJGxfYUaNxxpTAnFkYrc/Kjxs6/vW/w/mnPcIdWqTvbNvVK0U0TZkZeFIEGO7+eVV0VWBhj0HuxoadyPyuOzbRo0aNEnsSRIe7S4k18VvF+dA7a3sOVm+V8p/UUxdqdkkh1R0FOMN8ZhAZ4l0ElvMnWkhT43LFknRkH/SwOK8pefqpVRn3UTy6nS3ChQJY0CGo0tGvD5Pre9C8sn3MC/q30pUjjfTRdaG/Gp/UUQVoaRj/Yo3Ltc1wWzP8A74UkYIJOZR/cv1/agQay5C2bd10vxolV5NrTqO9XNl5NQ8BNlaow7cEqMIux1WjadNcO/wD6aBWxt2C5o6jw0dlL4H/uW50jCN9jcKvWwvZvnRs5kIVuC3prygDxdedD+KFidH/enPc7ytzWn+5NOBjkGn4+hpWSRDZlrxYaX/8ABn1ChmjOqsuxhzo3gbatZLz/AN+PYL0PanKPwVqicd21szeaiQpq970wVkFwp81KxYmwA4mjZDoyvtWg0IPlDb1Gkb0lvan8/FdaJNEvHtkVuWytG4q37dh7Hu3AUPDQokUtzQtzokVwoUKFCiQLGlv2C1LRswoKWbey0fanqEYvBN4WVtbfLiOlWhW3evI0X3UsWwoDwYUuZKUgiktheKmgH+OYV17h4EBEB9J9x5axAlxxB/rolUGNX2ixHHgbVh+6biyVKjFdQrUsQgxEKSZYt1Wt4h9ajaJDuqsm786kxOIg8yFgx+Wa9fD4JIvUFyt+VO2G08virGwvIl8wl+7+lBlX0Jr870bsqX6N096Pc8GLLWvYalaOLklDqX8v1otNMPM27foKGbq1IwiWtbm3ZFfmnCgUa+63l6e1LQrbRvDsVvTWqcelHIi6szVoqPkReljWyRa69h4Kv00rQyG7UAJCbJ7+o+1NeWQ2Z+PWtIotAtCloaVqa2PiP0BPa2qPTWZq2M1G0RwiSs3TJc0ndfBxOi/02S7SRlrXY0LChYCsVDhPgPwx/A8p0xWIHEDzBOHNqgOGTjjZd8/4LUkkx3psTO1/qxok9ewUO2FZwgIKV3KHimJpy8VvHxXN+Gv7Kaml1ItAvJfV861hjezfjf8AgUcyRD6niazRSflRvAdz/wC6e3SvCYx4VXZl5UbYddWb1chThUqIQltr38XajXjxDQZuDIbSH8wtcLp9dR+/2D2arxohbdhGUVGkR0sqCyi1aYfFXw8/RXBUmhaSJyj9GBINStG0Yyqy8BRYRiSwmXntp+5+JReK66F7cR1qBYfi/F18K4kjjbZmqd4uYaxorLZfFwN6gdOpX96NCtOtYbDOVv8AfOl2/isQ8ki7qvw9h2C9lC+HpR72ND4uYFPaN5ku3Sxod4nBlrQ2qG0kb3k9DA+QiomQMPcr/IogS7Vu1gw96w0jgcY/FU7HGB2BgXaoHE/tS92zXC/LpTcKN2pGjy2+bc6A/r8OPvR619VaON2mWwcIU9+NEHWnoZg3BqJbBFciLwTjahdTR2G9PpKo+o7Bv+JOjUGjjZ8jldq0LpGx14e4o2YmpymD4q9IP6tBeZV845jsOh/sy+g8qFlrWLhQDik8XqqMFTTIQ4y5W20hzM1uh+dNcr/s03G9yovfmDzpjJKbsxbaOtPds3prVBvNUqSgjzbD0oL49d3T2tSaMc2akUPEpN13m6dTRYyUQ+Xivlo3BFn9/ahkU+rsFq1BNCh2mloDsNDWj2HZQ1NCkZR2YmKIxa927WL+3WtFo5oW30bY1MrwedH2rWTBYKJb55WtpSH4b8Ki0mxjXRiP2v8ANjSul/C+JbSSS+23oU+5J8xPZh4g8gtI7Wkzft7UrC/m2ViZWsoQBm8o2CpwGSxVfXQZLCzAtfXnTv8AJqec/wCfLhsqYSBTvput9RUzWNxJdvC3LSsGsUe2yufnrUlphoqS+HNzs2yoXQKbMWWnvKXt3WXhzvQpiHbSRn3V1/SsRG6REBog2/1FAIpBsV26cDUqzYx9e7TYvQmpbxSKGji8vWroTf2vwoEUl02FuFeGtHpbrSarpdaicD1Np+tSpKRsVeHzqMqji6cl+VXBZwa4ittf9ZKifU0M4VP3NaKv+70fwJXl3a1Y01MTQstGtjYvJ9UYUaNS3BRM/R7U1ca8bpgJIuZLIGQVBPhsDgWDTl7oMS41RAOjC5rGw4SHnK+3oBtJrDdP62f9USviDnuUyRGdmZVX0jbYVK2Pm9EDZYl93Op+QFFY4Iv7UES5Uj9h++poUKhaQ5grN5VJ2XOwXqWKVnjDsEbcOoKMODCh2kiifxtypbYaHWU+rkKe2KxAsPwJzofezCydFobpqIsT4ocK3m6vyXpxo7N38PQDlT2aMjKX/X2ooI9d3nRuw29h7NXw7f1MXVG0etGDW+mw0vjXVfb7BrZWoHZhJsQo38ik2r4bPZT54jlarRNqctb08YEv+agBvro3zoUSYm4dedNs1VhSrFiY0s4Tz/ioqMdsWVv+vA4H8Q7OVQKreqPw1KJOSvoahaJq8VLRzL6Wod29H2YUwR0e5fhYbKUPG3zVvagCBFmWgwlY3bMOJoapq37UFhmdiE5Se3WppY1PpYiiQwp2L+otThGoFzxod2U20c8RPhesA8kDnxthpckkTexuDU0uKRBd4m0lX3FOyFuD1mIcWku27a5GlcK8RcApfgenabKDT3R916sSajBmt8vekMc/lfy+xrx1F3aoKINL9y+syDyHn2aYpF+6f1/hNKRY01no6rtoAkcaN0J3aDIkQvnVeJ96JcnzVGwY/n8qS+YWbNrT68VolYnpQoUaKGv86iWVFbwMujrQOKw8m74fFTq4RgWXY3UEc6V4o7Dlm97ViSANwN/NR6oxGZeVXk25T0o2NLQAo9g7TXho0Lh3yfXZSN1zdgognsdBCYzdOJamUxDdogK350VTixdradnzav8ApWOfWHBJqzW4ms8ODi8cOAjNrDh/+0deVRLEiaLEugXnpz5m5J4mvEKPdy8m81AhqD4jEhgxa91TVrr89Kgb5LRcfWp2B6tUpZBvBdtPIAy3dW1y9KdqepriuHpod9DxSbh7HhWJ7p/RLwPQ7KhfL6uH1FIc1TNJieKLsXWoGhgNrMoOX69azSBbd6QuULyp7Jh3+marZhUV0bXNWNw8aNtXvM35C9YqSU8oo/3NYaRiOLzW/QVBAtumb9akES8olC/pUzMaBkiRwzr6lvqKdnZ5jJ8rW1p2KbctcLVqqV/26flTXBU/KtVAt/NHKvFaFyezQ0aPZ/8AY54p9PwuCaajeU+GJetOWeS5zeo7a0o1jkgOGxTFE2u6sAdFrCHCpwxU+r/Jaxc2MnO15nzGh2DsQu52KtPJDhp86kQMGeJ14OKSD4LhkuHvv3NtD6Y+8UdVLUSztqzN5u0VqRvN6f8AWkvNJoP9f3prhNvOVzRsma78v8RQMsrbiJS/1M/kVVuq/wCvWpJTizLutsZNdb86Umx15EUHbG4gWLBfCo9N6mu0niYLso3J+wLhTZh6kO0H5VrA4DBuaHYaGk8Idfp/o1CwPaPsYHPqzO9YKesE0GGZ7sFF1S/M9a1UtUpd3HjRvLUbSRBMoVNOBttp1iRjpI+xOtTwwOvjWWR8qkdKsmJj1kQcPxCs82KZtrWAKgcObU6uOa1tplZVXM/D5a0gZTwaj3TcvLUWnBv9a8Y/OhqKJlj/ADpwG9NKJITvI37cjT3VdEDby3OygsM40WXnRuVJ8VE90nhSlXELYZg/m6Vg1xuGGyKdrX+YqFIgzlkiXVU5LrwrQjitOEM/9pjRD5xZ6ayOMyty5Glzwt4JF5jmKlPcyao/BlPA1CkMj6lk2E0bj9qRzDLslTX6inSVGFDYxoWYUPEKNl8tS3YbjV4lUjPT766e1cRpQFZl/wAas6sLMGG9QJwcp8H4DyNEhgaKx4uMWdjsccDQQycXy2qVQgbIW4BuRprMw096NohvcmbkKO94KlD33qIiDuEZt72ApyQzewosCPNStl8pbsF7a0zBhuledC0nmb1e9RGSZ9I/w9b1ZB87X5+9DbTZAvp21mND7Wpo0exM4Q5l9+Boo0n6U5JG7RWYLqyerpSZU1bKo3RQprNTePs2jWoc2mnNetqw98U4+9xM25B1ttZuQrANiZNM07am481jfX52FFtW3W1ze9ERSoPGvpoeIGwX96AVh5f4oF08kv8ANOCpog1kt1angqSL5A1MfkDWIf5rTs6cW0096f8AKjf5Uismy6t+VBk/3zFSPf0j/TWsPFiOrLr9dtLiYidqqAaOLj0yuVUfea311pZo414JZb86hZNfPJmHEbKlVLa6WFFi3Vj2RNQUU4FF2qyigXNNdtAWbpoK1RdWNHozftQ21sRz/wCU0N6tGds1GjRo01GjR0liZPqDRPeBMkn+S6GjfDYfwDqeJpQP8ewUbONlAhxo1GhQodmCT+sDknEHl5dOYN9eRIIIrBrjMTOhiaWVrkqRpqd0qVFrAaViGlMahFzcgLD57KPYQqjzNQZE4t5m/ik8Z0VVp1R23vw/hHWgYsPF/bX0D+TRXDYGDwyYh91fb1NURiiXWXES/wBya1RNKzj/AGalUzr/ANUvLrQJjXy8PnSFUH3cS+ZubUlo1Nl9hp2Ch2G+Lxa53t5I+A+dMHxKx54mPC/koFzgJTkfnG2o+hob2tGQwNGhKuuqvbxD2vQsy61vObkAWoOWO4Q2g9+xDLHxVWt+dKxRN5hwrZWJmTCYllMsIYhXK3sSONqVndmsqio+6A8JXNfXj2qwW9gx4GjZl+jCnyEWzRrvRttoLD8Zw8dpcLwxKgb6D1DiKQOr6qWXKWFZopOKyUTb8PYARVkPp4UjK/BuP+ooZk4OtNkehlfg1EtY5l5UFhxPFF3X9uvSiwk1jbN72oiWJ9x1rQINfemBddEf1GkY2pFDM48TeX3PKpZIpUZs0sXiDenKKe+Iw+3qvOku9gjP7UP+lRjT8YrRTuM3karqAacOpHgZqi8D/keYrGlbG+qf60r/ANTtY+V+teFqFj2Gzrutzrf4r6hzp+afStttR9hA8TizV4kbWJvUtNboKlCITldtmlFQi2Z5wt9gOzWnM4gGjFdWpTIIj4kC8uN/elUs2n66DrQsFG1tNaV7wEunz51c0qo2zxVDeQ/l8qHdvxRqURtxWhZxy1pHTTx3a+ZuYpckRbwDpwoWNWVxQ+29tK1kja2b1X403Gj2mjb09kzqo4LW8aF2Y2WnSEAFmdum2iSo3WoF4/TS2/DRCylrr9Kd0hckty2G/wCVEGMqCnG/O5okPRTD4m3Hcb58DSXHNdR9RQuOKlaeRei009DTizPS3ZDlez7ppNQhKLn3m5VEjN/lRjRuTNSII7eAvutcGx9qxkT/AItmapZM+ipkbwsTz0oGW3m40rj3qK7b2aK+ZNop8pHqFjWIVfasc3/hqWR1H9yXuvDGOZNEogQxN63Yec0ZDS0AKNMoP+VOtOv1qZVI4rWpDBDfYUN2b8ltUBhwcjXgvxWj/k/8Voo3qFmauMtvyNcDQsAo7HJEg/SjRo0aFCtBjfv8PbyltHo2Wh2JRIST9a1fzH1VsoUKX7Iod7NxX+TXiI2LwX2FAyStuotOHxbj7uJNvy/mrxwXtDAn7CphhoBswSt963v6f1pMkEekUK7qW4UViKbvqb3FHuwd5+NOSxt4dub51YYqRdSevAUbSyxnJ+BKWyE5V+VDsjJapSmvhRNWagww6Yju0Rf+tVBbbUhiYnNEi78h59BRGexgxCcY2pG70G1Kp13FbxV3UN9heUKfobGnz0bVK8Mcm6xhNj7V8QQEE+NoWBr4tgiJNqNIUvyvpWFXJKLJKGDp7gitFFMULIVJ6HbR7TTPGq7GjW5v86BMaW73lameHERG7LuvG1BYvjSC7xDRcWOa8pOnGt8HV23uViamunpbZQyfO9C/HsUEVeSP8/mK+afxS1d4T5vT70brQs8j3Z22aczSFkB3W8tHWQ2T58aw8UxlUoverfLfzCpTHIo16isKhCkd75WkXbYnqLV92jPu7cgo3KcvMvEVNaJ7MtuPQ0d2l8Q/ugfrWmOw63jb1qOFHYdK0nRfqOBo0iMya3alWxfMje/ChYq9CjTlJlo3N9V60bxcVp/Fy7GsBQteto8atxU9KRg36jnTxdxvSluIHltzNQLBZbB8u7poBWNlBh8TiKTKjZRexG222sAAmId54VDZe7uBbOTfe5VMoz2OXaC3vXiYuSzc2/ioQTmytQs50Yq261+F6VmuA+VutAMq6e9Gz8Udv0pQysa3DwahWXU2C8a0FKBR7TWyjZxxb9qbsFr7x7DVhQo9gOYGhWqca2UWIAGrc+Pyp1IYXy+n361oTpV1NMos1yX2U7RwoCPTnvtJtz7OBo07IKL5vMW/anTKgGjtTpp4bLrSsyMuXThrtp4yxbhxFJnRvNxX2pzLAN/LvZeNKEZzfL+gqd2LyXnbb3ai4AFHwO2SMzMB9TsFYiWOSJsrKslxcflUzd492dqkYB7WRdxuH1pVnMiEoqw+JmHCvhdlkF1P+hrCtAW4sun5VEZYdujEq3S4rAYTC4ZNsS3vUUhjjGSJBHsHE66a1hZfrGP3rDY0pxaLu2/Q1jcVAfx4Y18XwUvR2yGsMs684mD1hZYv84yKy9mMeCa2rKtTiWXKE8KW0HQUbD00ocjlur701zTWQYlAPmQKXY9DUt2G7Lqv70acg1LWdjTgGvD+LjQvNhGz/LiK1FYj+hg7ozvOVvdRyorKJYy8My6ZwDlYMOYPYrITqrZd08KBVxp/rWqneX1dRXiRh4Wpae5tdkoUOw+yj+KBiTpvH51oKyxQrvzvoq/OkOKxT+E4l1/QUf6jFbzmRvBEObmh/U4zdkx7r+UY8ooskJ1Lvxo/6mjTd0n5t7CgI4UvI19pA5mj4L/r/pXK1ugrXShTv0VagjiSIXkxErWVOpY1fHzICz4tv7ScPAPNrx0FAySsv3ETb0n42tsW9HUJ4F/IC1OW4TxO3hkWsBImJkhvHLLEGC3+etf8RY94LjOsCiCJFPNV0rHhwy6PvAjobiviqpWPSWsSrxxbFMw0qeLTlMtS2IrFYkQtGBPDPIHUNxtcUocUlhV1rVaF6F2oVHG1nzap4va/Kixhl2q35imdMrAtkazI3TlSd38XS5aPhjQOIHr5jjT90/pbp+lHT8qGmygVv22R/wAmoFJRx/mhY1rH5k/ij4K0lXcf9jQuix5W+Yo/cIuZX6U1pxqtA5JKDBPOVOvypzJh4TmzsAGy3sDlv7UbJL4o/fiKO/RBvoy0GjgL5lZeFZ0msROix2FxsIvWKviNcya3S2y560deK1MztseItlVhrYjTbT6stmXirChvIv5aUl8JiFDf4k8KF0NG1qP+S1x83WnINqhM4PyNYV4geJqNQ0S5M3PsUB4XNiNtjRaNJFt150WJkTRqVZA4Iki9YIsbW6VF3WHDZwuu23EmszhHyKu6ump+e2ppHhkfMyM301rCtLIn3gVhw4WpyFxDem4Wm7+MRtf2qZS/GJqRomXg1HvlHq26UbtxXjWVKdZFBvQpgc1EPzrSh3i7PDTWc+WjVu8q7LWYK4zeL/eytTW0miD2a0jE+UrQI+wViuLqzbKbNIdnyoWzeFqVjOH+QX/dqNRKyy3VW9JFjcULk0CP8q1NWjttatwbWrlRsaG3dC7OFCnbZmstRtaPeb009ifNQKT8FWjQ1TXsWxQ2ZW/Q0krq77Fe67NVA51hu9kvk4K8a6ljWEXDxYdS7qqjzansmeP9PmKwvdO2yaH9SKlTFwHin7ig3VGotG481KqOd2ZV0+dAjk20NWn4omKmviM/VZfGPzr4Z8PxR9QQxN/9NfBZ4nCFz3GJzaAEnerB475sn81gwg5ySfsBUrH8K6LQAt5ausfBeLV9ymHkV0T2N9a962h+w0QG4rRWjdq0o0aFwa/tMbxt+1TNgp8I5fB41I8+UNvRuu0oTWIixccEfcwmJWVbHUt4tdagUCplA6sKmSOZNx/2NEEDzDWnE0Db6fuKZWX9DyI51IoZUNXogKKivp/cfZ8hQYYgb8T+b2qMu6ayF/D3fuTR/wDaWJ4ImkQ+e1qlOFwq7sdrD5LSNhoiLqtvv5va+wdawwwmCB3E3fdm8xopiJxz3VrQVOiBdWeVtP8AWvHIhsWl4HoKLFhpSMHli0deRNf5t0o6O/0W5t2KUQgNwvasB3zjRTK2lSyjAsWMSIuSHw7coGlRRln1iS391xxY+kU5xOLfVmb9ByFC0a2kPLW4UVhosS06ZVlfeit6aPezRXiQNsXXS9Il8SmRzC1sgGwg0Vn7rxwOy+Q6gVhoHjbys+RvprpXwzDSEcGr4Jh7fgZhXwowk8sS37rWFl+Tg/sKwsoHNloulTBqNO4jzZsvC/OjcUSrflRWl7yRzZRSpPg/F/0R2uu3X2PWoZI0begfxae4p2yKdq70bVEIvi6LfvYvCcQo4/5CpWTDlyI5ZbDMB0rEI7+nNvUjFOTViFLE7nHtFn8rULHyt/HYLqd5aN1NS3xO8vL2oXVdfa1DrWhA0plIcaMv6e9NZfMVoAvGbq1FjMw+8vwPShrx96QMp/LrXEZlbpR2VjI8MEXcdrZzTAg7rCjoraj3oKJYJirdVOygGAXI1JdDuN6qFaqd5ae6Gj4RSKTsu1FANrVdz5lpCrUpIao42m6seOulqCmMtd2UkfICokxGGz6Ll/tcdLa2pJEcndWxFRmKONz7BjzqYu622r4b8qIQLGFVk81tbn86jDx6eDaze1QZUCHa2t/cU7K4O1ad3A0s3MUVu6FOe2oSnNpae9AGjTZUFh2aMguGr5txpyr0AwYeFlprqaiSUOMln2a8alYMvBGuKFuTVqKPY8qG+4uxgAb6HZqRQs1DZu9hAUNl7NQu7SNI/BVoZJAoYr0N7UKFGy7aLiYHRlbdqVC3FF3tOJNGzChci7fz2G0zjMYuKjhfrQByDy0AiHRflSHvN4NtqUiTayxLrYgnbWJcoRuLe7HbremIWnvbsNiRRfuF8Vl4sNlLdpJi4Vupva1QsqvvIy5T7i9OpcbrLoy9DQELLtl8jfwaAKNSkHzUSf8AKi2HZeK8feoBFLwxEK/mRTJjsMdk0G8vuKdZU4rx+lAyQeV+KVZ4W3WoKejUGT/Gp8/cKZ3ZdO7ykXvejfCT/ewf4Hh8tRQ/Sn+S1lLUCW4BatDH+dcYVRm6jQ0Lo2na1GnJpqFHsRXWnaPptFIJPxL/AK0TGtOxqJo09TU/1oKeq0XXNvKdjDrUEkR6airvI2uVvDR79xsTyL8qWwqC/J91l9jRPxDDe+Sdf2anwIZOMqlJfYg3rCPiMdmCrPKoa2nkXX6mnLu3iKXuW9zUaxIN1VpyeIbhTCeQcfJ/rWaWXbl9uQpSsOK8DBufCo1D8GpGEkLhUfhkAAqWOObFXRWlbKFXYa2RHIv6UCUBu56Crq2zLX+NTsYImLRId1RzA/E2tKwD3iyelkte34dlqxDzL3d5Ay5QrfxSAAtn+QAsKLG7kKzbrU+sgzp77DahiZs0OUsiltugDEcTTpHj8Nd1/HtZhRUT4iUKUbW1ttxSy4YpYOFbTXW4r4o+HSQXVmdrfXZevicGIXgXsyt87GsLhJhzi/0IrDqrDnIR+oqFYl4ynX9NahZy62ibZlN9tSKaFxS04vyalKnmtWP601jSRylfLKuYGgrJiHLTRWspvc2tUrrGrh9N+FhUEMXxEoTOq6DFW4otrX2lhROGfgu1aCzSAXVdunvtpGyD/wCn3q0M406NQpcgA4teh7N6aHs379g8B3l/em0ofeuPH8v9iiBLF+a1uQ+FerVhy+IVs0obcYcBpRRC93yrurtOWh4hfd1+dL4Xu0WtG6UVz0F/qodwrS2caMvpokpenpWd1XxAcq0lgTvU+W2uDXFQwSKwuodb2NYYYZo2OxswatGonuyfpRBVtlbqa0myluyWIoKSdasKxRkUgMS2wNsFY0d8qbuUj5e9JIs8Zys67NhA+XH5VF3TO2R863y82sdaaQwxuMhbZ9K8TuCWRWscx1Hy2VG7u97qF3SDqL1AyKV829e9YeINzy1EobgyaUc0PqXe+dNY++7UTllGkyL+tTjEoN0rSv8A1Offv4QvtRo3sxrU1xU0CGy+P3rRUo0VULtT1e1JdVHipLVGCetStEfqv0r7qQHdbze3YLFqN14Nxp6IagpzDL4q8LdmxT4gvLjSKkTWjjCbQgvYnrtokr2HSjcCj2reDBi6KfPJwFOWdiWogMRtaib+avu1bSntDkzy+ptNPnXOghSA6/Ohvtb/AGaILLtC09sQq+JPVSK5Q7rrp8xRs1StIzsFDO2awpjG8XjzeZun6aVZJH0K+VqTvIz5OPyrDmP1s2ir71il27qVhQcQP7sty2WjUzI/FeDe4qFcFjTslTdY198nOksh8p8tOrpwrCsLeamaLCyJlxTKwvIgIYgGu7w14Iz3KqWyXF7ACpS7dFp2t6aFRhE4u2i/U0e9/wAdB9TWyJrr86FJdlogFL/Oh2GjejRo9hrQUQi82/ikMr+qmVAKd8vNv2FJSVD/ADQadU1VE0dP8TSNEyHKZ8psp5ONqGnjkQi6yq11+RpGmkpWLNqsKaD5t/F6mEYXYkS7tJbmzbze5rW9RPLl8qV90i7Il2LQJqdnXICz7CGpEd9jv7bDat9XAamX7wiMJ5tbG4o6RKIvntNYrDIyNeKGVxvdRTpLh75i6LbPzsDaoEWw32UZvYV/u+l6JieNL3XW60CuHwyZA0lrtxLG3M3oM5l+7UL5r7fyBoZ2Z7O34bXprQgnu06jQ1oY7FvY6GsoVtc1LKSly4dCoCbb689KgVsGzW8O1bjU2ohu8UeJfMNbViL4Ke9sGUGVl4EnbesfHhreGJZ5BzJ2082GwzCWSd0P961gqk1iWw+KO47osqfNWGyofh0WIwZS0+GhdFcOCQTZqwMy4WZssWLhcSRsTwOy1L3T/j0v7HZRe31HadKXKea9huOtAAivFG2/H5XFY2EYvSQYcTAOh/Caw39N8fiJYjFR2/qFPo2ANQK4pzYqy26WtWHw08B2skZuvuKV4Jj/AHYWbwyNzU8BSKCjevNlU6gZuNa3oVoRut6aFnShX9tt0+mlz816UbA6o3SmzoaVsq2vQA7AoTP95ZdVPD5V7OtO1iaGr6/Ok8a/3VoU9kNPmnS2RvUvEGlIDBvD0NaFwV+lFj70FM6C69RyoWdaHiFN/hW8Y9OwAArRqTKlrip2Q6JIGXMSPw1aYk+Ep5hranciRdcvTmeVaMhtWGUW8LS68OgoS+NvG7rZct+HG9R3fi7b1WArVjsoEMRqtarbeWoGLZypZWtQlCcSrfkaxaaqX0UgM3pApGRh5WoGjseh2Gyb6hd23Fv10oWaW7VGZEvqq7W6ULMJcrRLwq0SuNI+Xzo3C8KIvT/40hK8GrEZFy3UNr8qRTLE90l8vyNEm4o5WtQsaHaaFGhfT7JChmFKihnLFF02aCt4/irYKGgrUjyrrso+I1EFI3moWWjQI0pyvJqCEjz+qjRtSKECd27L5yOJ60B3xkDXXe+tZ2iXc9VK6d43BaYxyPF4G2FWOyjvaq3YaNHvF8qvspxgsTwD7v1qIleDpqrVhUluwum7nF9RejgsIcQ5kKNLurc2UBQadsiZUAiU8Bak+8PzNOuDh4F95vYVh1l/HNr9BsouU8qs27S/4vxo+CfwN+1DSls1a5Wz0PDw7BQodh7CAvNqF/xv+wrM1aChf0rQoWT9aSwHY9yOC1FBgBBu4t/AbciTtHQ0ko4yYnC/cI5/+Wbg++lQq8JAVVNr+5NFW5c1rUeqpVj6eZvYUWgTn5mopDiVXzbr1sTwr7ClQTliVdlorYKF8OzShcRi7VxjYt8hSsRAWkb3GgFbI9X6sdtTIjLYKrXu19tvb5Ubqq5EokB92omLlgpX3PGj3s0r5Y2byrwF6e8lrslTSQSB3YumjaC371hVa8SytOzeJRssB10oLHlD4lmbgt9n50iYmQ+ZtFVadXmi+jLSKkSgBMu3rT2imBQKvG+0/JQaLH4biL5H9N+BreIyRletT6taQw21tyJp2CR7i8F+VYZhI75UfC6N7ldlYtZJ8bKXYy+AONAgHDRVrC9+2MCwQJLwdzZW+W2sMuNgKBWV/NbTMDz61LNLhviOGM8ZTWfAkG1zwZTVsRgpf7GMi1jk/huhqPNh+87stybbY0SjUMy8x9ggMgzV4fxD/elYn+vwoP8AYxfjpx8Lx5IGSbck9n5+9P8A09joJd5vlUPd4NBY6W7w0VidBQYw7Oq0QVYXUr2D75Bp16UNR2b6UASt8v71sQ50qe8cpzOq7G5X7JUhU7zvsWnfEIIO8nfbHa4soI2mhfCz+JW/VT7Ubitlaq4rXDycvIa0NHXy14lYWod2jz3tyvQYyblyvhVupqQOUN/rUXiteRF49aHY9pVo0dBRoAkVNG8v/YN5gdNLcRU5nQXKmJcrX+dYeYSoAxmZcuX3AOypO/OXNd13b3tUgaQSbq7tuYNHSW5Ri1/lRsFF6GXDA5sqNqwpVaFju5uHKrOD5Q30qyf72U6CXMW4HhcU1kLeNU3m1vpyIrDyopBKZtu02JpP6lkJKpLqvW96yBgxVuVRFJBvda2mjtNmouZjILMq7sQ1/M01CmYTo9unG9S+BNirpScNKdnZdjeaj3uHJsG81OJDs0oEIadM/FdjUP6iHbl81OY5BtVttDO0lCyturVu9KfdJ76Zj+dqFMMryAZeO2hYZuy4tW/2GxBoF24t70mbGzi0SekUNXiv1vma9JdaiCL2TAfdd4G/apbsOLUbv2HXt1FFbXA6n5dgU8VVqxhhxFi33q+BrdRQ73DPsmTZ7HkaF7USFXdfivvQWRZB4XoXiPi9lokUKSswVtB/pU14/S3iVqwOTJvSxLdfoa+IxYZtFkV4iLr0NfEXjh/X51AMTi9ney7q1M8rnn2xMY03mo2Io72970NRQpLx9PLVpB+f0paRqiaiB+f6Uh/yagJHHFt1aJY82/YVc0KW7HdX+aFLrQstD+aG99Fq3xfH8XP9iI/Leqdpm8kflj9l2CmU3FqJI4NUtv0phHP+tX7zbKn7rSNzo0bfiamvKNjvzpdmrfLbRo6vBIiNsubXFPmxczhPpz+dWz/qa1k8tQSKJde+k8K3qWzI3smnU1h1D5sxcbNNlufH8qDEr9ae026y8zUkWHKXukrWNiVvY86Noe9EXTJsvS3giQo4DWDai2zqprBOJEnLCcN4ZI9Ra3Q0bsu9+IU7RpMm8u3r86SzFbbxsvsOFG0MoAVV4KNWf9FFTXw2HkuG99RejsQp/kDYioHxWIkvaKO2wcSTwpFgkERXDwq2bJxJJq6TYhBdPMor4hOEiYSKreNVblY0h+HTbExSLeCT3G1aljxpxLCzRNmyQoLKOeu2oUxWBxAyzYaVcyn5Uj4z4S8SNisM/kLeS/MaEGmOL+E4jWCfl+B+TUbxYiMSRON11NRgN6lo5uzUqaCuXJLcL3q0ZPBqjyn1CnHxbBJ/bSf+7D/g+35aigwJYoyvvo/I05im9/C3vULnGRIROzN5rmwXpagVRzZb8G7RZJdvRuz2ahcXo3Lnw+1C3VaDuIEztZf16dexmU8bNRvBMgs3obgaFlJ0ajR9qGZHFDTyNWjCmtItaMaZjhpI0ZlzeFqORCLFF2N70M0ji+Ure9Kqxy+N4kH9q/A1u0x6UfGN5aHhGxuxiSaRkUmmM9l8asovrypGTGSvlVAuuXgGoKBF4bIKLdFXzGsyouvh8vtU6mTC7y+VvlTqY0fd/wBKVAAbMVj3db6UysyaVd3a+7sU+9ZgBvFf2pNyzLfQtx40jFyv+xUxwupClmy5qNpF3v2oasuvyrfk4jyjnRIRadyXIP02CtFItRoZ7m7BvNzoNkv4S221MQvFqtJyenOHmRcoDeap2Qo21V0aols218ulbvSi3D/SiYinmi0as5B/ttx+dESA6xrQZWnvJ8tgoA1cd/PkXoo1vQ0XSlJF6IKBsvWnzvfYmysKsBKBPAu/lvreomMTPlLdTSrNP624n2p74nEDVvQn8mnAt6v2oMFA2L/rRuEbKy+mg0iCwZmXjR40tnB8Der2NEMnqpWYdO0AC96FDtFmK5WbiR/FBHikGSRHXRx1rCqqNmXPtZQdlr8qmsjDwSruuOdMXgPlVtG9qI7hRfLycjU2oaA+FvUKw0CYo7Syiz+1RoAOAWgAuypS6tu8mFPcDeX/AHw7A2TgreX50qpON5fVSFXXepSWbdoqjZ8ro21etFXlYWC1OolR8vclSG9+VH7uTdbr2rcUADQapGDcVpjUSj8TamgR+rUaFCwoZ29VClJNfJaa781rELBhYhnlllayovEk1nwvwrY8uyTE+/Ja8I7DQseKfxTaU+VhutUmV/I1AROkvdlv0PtQIddKNkvUugG/REsnF12djGPky7aikErkl5GbeHSo3kRP7fpYHzUi3iF7RC9YVYk9b+JvpspzIw4N5loocUvFl0YcNKAVzwXShcA0VIELFfe1ZQGGWO3tpfrTqJUJM/DLwoZpInMcar5tSLUAkfNtSRyFK8WDlN0d+Bp2SFmGf8S8qd5XT7py7lsltbC9RrIZW3vQoBJag4wcovFLxUHgadGEoARl4IP9SaLd+d8qt2o6qLoHa5Y0tvw0ARKcqr1qV5YV17otZl9jUEqYkLmGJiUbeTLsaph8Qnmdp8Qw8MjOx9O3QUnefDVwrNPDbadgt+K9AtA63V138I52EfuKiMrTn7iSPdnU7CtARsDu0l/xUc1CnKKBvBb014gfEeKdamE8V7xuVyn5jnUseEnkAyTHRJ2GwPybbZqw9sQm+z+X2FENLL4i7UxkkU2KLeM39yK0ni8Ei9edHUfvejqy6fsaFmTeo0bBe12QsMrZWtmHL2oEkmgbim8ZjvQtjcOPum9Q9NaSJR8ulJQCP5G5GktIm2jRuauXQlKAWPr5q2hd6gJRLAYpVbjrQvhn1jbpQvelZTxVvNRBSRcrLRAYUhIHGizJ5qKmw2r5vagvexkWJorNiTuq7G31qJIGXVU6CiVRRZO83udr02dnvmHFdRx51Hlc3s/q+VKzOl3DIv1v0otNHa2ZfDmvxp2DMtlzNf6fMCrYlsmrN5T05UHEZfIhX870LUUmVPNvZOf58bVKspdA91128KdrgHMtQGB+80HJNbD3paHgZb0ewFj9g7jWoxYdFFs+wexqFpYk/uy00ZkYZ1LNo3C1fdyqQGV3/SjlQbuWnvxZqCJHELRo2z3NI/eo/hlblyAGwUPExtb+afSO6Ivoc3FHfO1qPsy0obMLENWjUVIQWVloBWZB+epNTB45fD1BzHh7UbFzb+BTe68aPRqYlT5aYEydN2sN3uGXwM/Imvu1vcKvl9qFx66IEYF6sjnX8LVC3eKLlf4oEUaFC9a0GZ5dVCtsFPnjfg21ezVOKtTkht5fSaNYdpDoHXgt+N6clTu81rOVXQN5lrwLvJ/JpygiTMrdaJTu95f4rVtjUNVOn+tBUINyo8tJLgp/Wq95E/XTxLT/AHgNkod3NFYH5UVxGIcZVVWv3bHZRWSVgWYvQKxhrrRtiI+fmHbpQU0hQ141IpWAHELUDP17ysN9ZKw6LQJFRMaIiXlxq1xRbJUuRPKvmc8lHE1fDYRDnbDqdnpD82o3pezTk1G9CtTUmo8v8UddG/KgsjiNN/ym2y44VdXgNpYH34z15ryamYpwWoZBix4Zi27ejnZ1vSa8W4LTpKmyyUAssG71WmMMHny8TV5IvNzWhksOe9TeMrmUJr8jVkjm0celqJOISQjoV4Udsw+liT+lEgQJm+t9aUJh8fJ4OjBtM1LGjrKCsS6Cx8JsPdqxaCeeb7tcv3a3JuWPAAVh4IXiXuisDZlZxcFgeRq6TJpHn/Q0hke11RfMalwpw72aXIpDW2lagWcyuI0TqetCXEfCnkITpqRfpQu7tlSiSVkORvUu0fxUp71t1EUs30FRNEsSZcOjrZm4kkdaOVsQvg/ei6THxK6+XlRchN3ERby1EkiuR3k8PhZiNVzjzWaxqVcThptY503XrTA/AJbvMPPPtIFJbC/FU79eSybJFrhrT+Ols42OK+8j5rRI6/salWVAgaQBt2/AXoOI0A+8b9DULYnDw6QYtdZYOn4l6UYpcLNuSwbjLx9jzFYiKKSJwiozeKW/IVhpQZN+a5JYcNOlOro26y9g+5kbe5Pa5FEUe7J8rbKBHZB32Hf+7oSVXiQBrUfcxpM3dp6VubCjv3F2pF8KgKrdKFnQ3lVf1oWnj/vov61vptWvOL0KUf1kS6fjHKgRzWtw1wIdaLZq0IpgAXt9aN/S3KgQ6Vp8Rw6a/wD3UCh4b2ZaN0ekBuKDTo3iX8Iub/prW64ypfpRsMlFyd5C0eUe2takiizlLKpTUKetOAR42vpmoaKuZm5CpbFNQvr4Zah7pQucM4yk2UkKBQcShrluS8LU6xRnyqx+lBu6IUF1TTNbX2ovFPMQqINr/wClT974dqtqp62qNCw8y6GoyRpdmodg50LL2M2bg3aKHutTF2lTvXybFU7LdaxDGF0Cl+fOpFxA0bNl3W4ivvouK7Pnen/q7WtAz2dBxtzo2ZF1RvLRYr5mqytwosyenqOIrJGJbzMq+9gabcNa0tRS97xdmH8ULh3y0bIgyRLztxprSO+ajmdqNKwjFDwHeanYxruFl/KncIDmydedqGnZKhXYEZvE3Cio5LWwHI/sa1cCztwbsF14rQvcfOgwXZRWROCtwpwW4KuztnMMITw/5cKJsreBv5FEjTMVJ3vanIYfVafPIfEF9XO/WgVJ0ZWWpRIxJJVv1NK0nrf1GhdpBey+X3FGyqmZeft7UbxkcKxCxImuVvN0rDjDEaHL5utPaR/Ak6+VhsDDrUqRFBaOVtQvK/SiI0XeVG8N+dCgAFO8rUgin/Jq1FHtSiCOTUkVqiSkUColoogFBnotr5aCY/HJp3a/2oj+Mjj0FS/1GNn0wsLcuYXyoPzotJJIczt6idtCjQ7dGrQ0SHFbZb/xWsUkK3+ppwmNh3Pxr6TX3Tr4Z4PQ/wDBpQIybVcFE+lGxbUtzFEyyM+gWomC5vzrY+970n9VicRcJEq7bVh2w19i1IIyFuv4qe80a7fUvA+61L44t5W21o36ML2ogJKUgZv1tUTRLH4Ud1tqNhHSlYz4YZZc3FhcClEuHzuhVtxntsb5X0qwzvnUouVdt9ANlOqSWBLJpsFEf1Sf/hOoq7/hXbX9JGko654gevE2pPuMgT6bKnLqjIkuHfXU7B1o91N5kbb8qFp5n4+VBoBSrLMdpbW1I6QpzXKPYChRsqjxUWw0h1BX9xSRYqF9+F9xv4NKvczk2UNmyPfx3J4319iKF5/hpOJhPTzCndIPh+FLaed6NmFCz0SVPlpwI2cMyFdbi/GoWT/LSlzrJtRHBv8AKklCW8SyrTqY5BlkibxRyKdqn/YNCX4cJP7GJd7pG3oc8jwak1a2ULxX1A1IkshZmmtNdZRwFvKRzqDEsB4WsmityvWGRYlR0COb7wIze47BRJA7NJ3i7tH9F9prDKMSHJfEXu0t9gI2aUNImzN8qYkUL3W3uKGbDS3HuOINa4SbX25g09vTR6N0rRqT/wCeo/WhR0lXLS3uPA3pNKSBSa0WIHBqsuKjHgrNG8ZpFDJbv4l4GjZOFEXWgwbX9v1/arrxCjyirNDbKHbev0NEs98qIBujgBSsqHzdaADN5s3uKm1sWfKu570kcSy3EXDNEPMffW1SCI95q2XMwUcbfSu8ZV8zLrbZegrKbhM3TbpTqoAzAN5ugpr6Zu526rrmqRosUzDu0C5fD6r00SLxZ+PWsdFHoA1To5tZvDQsewKRyajYv5W/mnSQjimynyKAfmewUbMtFkfDyoZAy66bF6k8aGrm+Vdi9KGnYWEL2Dhd7TXS/GkeGFzeLMdbe9ORisYBqm+qcCaIxMG6syby/wCQqX7o1qKchiNGX9KBlj9XGmBFQmQSpk3rW43pHe+6G/epgZAL9EonuU3F/c0bNAdG61h1inDh3K8R0+wxA21L3jcWzXriM1JdG3W4x34087tcatb50QjNur5iOftT3UbFrGRPFJYMi7wbleiCFNuw07d2NI83L2HGh2jsABHnoAqTvfxRY9WoaI2tD2Zd+OiCjbjrutTBQ3BtlZdWF6PhO83qqFBiEXOGVdYxt8R69hsazGFLGReHzoCOMbbeagT6moXkGtRLH6l4UAbUMy04J4r2LQodgpaGSi71i0mxXDC4bxv8+C0hwGDfTuYN9x+J9tLFi8YmxF1ii/y9XtUryzSbzv8AxwHSiv29R2bjN4ffl862GLL87kVsinRSraMpDagih9zJO908rqTqK+9gY3XmvNW6imVkyUo7mU7W8tIHzaoW4UFWM/rwpmiRttWknxEeeKW97rxqxcbnE0CKOqHX9xR3t9f1FIEJbMFqV3/qpc4Vt1V1JIHzokPK1lb08SfoKlKSPpJEu11HSryYHfCb1lsbG3PN+lNuwZoreW17/PZQdIX8Vlo926bCvH/WtMXwb11MU7qUPlzadfyvUUuKkkuckO1QNpN6gnggjJktMpDPK2l9eAFOcNjpG8DJxtqSeXvQZbjwSqu8KW+tk9/9BQ0Vro3NT/FOFXZUMiYYHM7uuXNbYBQ8MfiVj5loZv5rQ4j76HpIo/cUpnmxSmKDCJrJM50oAYuWCWZ6zGlI96OsGKjg+To5/wDRS3caJfy9aao0lU7UeiQEF/6ef7xD0W9YnuZ/PhS11foL/vWHODxS6H039ju1MXwyH/omKbbh2P8A6TXw2AyYdQ7YzYQg5G9tRR3FWIRRR5c9ibXA3jyruwmKzZFVvEuXQhhtWlaMSDMrMvl5jpTqViRnzO2XMo5X49OxC78FXs3UN1+f+xQs0n6UdfLT606jvRpxZXHKhbDT+b0ngwoMqcG6cCKcsR5qSz0AUKahuR21uE3WtGFGzjZW+dGpaTU9g1bR68cssqJk5pY3rXDS6/41KVK8aNismW7eG7WvqOVOsyW8Q8y+/wDNMcnBeyUm26ra/wCzQ8R/3atYsX/dVd+RwR4f8bXvWUyGxDLoFtoAOg4CovHNMtnTydAOVMywpp89mtK4QE+FLFg3SlY5N1/TbjUKtM8hYP0OlrVGVmI1PThQU9250bYRa9OjBz4lA3bHj/NMubiONGgRQJVKcRQA23rVNEWP4qNxUrHEOVZIUXxSAEZ1A4+E1qrbG/3xovh0fSJ2XVvalYC11Ztc3Mk86LD/AB1oEfhreo0d5rL86JEMVolb2piPxUe4mt4mTdb/ACFIYrm2fyV4l/DSkNSXmTg27bZ9acYnFyDYmiDqakRmyeKQN4V51ePCKbJ+KnMEuJ3WdTsPG1RQggm7tZu96g/tSKufwOnBgdh+tqFC7H7AvbSmWRSPCynSmuNgbpyok0KGkZJCtzsR2NtNrny0LMPC1AljtWhWq9jKGUgBaC5sh1b9uteahmUULK27Wx9KcyNtZaRb8UfZQvAuuRV1X+am0i3l8xWkVnOsa7VX8RouXdNrNvNzNG9jvVoaap/6aFAfEy8OdWfwjuE5ki9yDSrExF1VuXSobQnTMF0Jp5Fkb8/lR+ZW1FhOnpod5/lUDID86nWP/PSsVAT/AJipogOrivi2Ch/ynUV8YSc8sOrSV8Lec+vFThB9Fuax4wWGfbDhfAPy1NRNNKN530VaInx8q3SHyRj1uOPRTTs8jnMzNtY0KH21JoV0v8jcGgyMCWT1G+0CnjcNJGEZF1bXa3WtZY53aP67Ka2FnOV7+R+DU57tv92pScmrH+aDB9is2xaxZRB/aWNPC1KZIsRFl+f+h2UzIscmeN/Q3G3Q07ysgvaXjfiBUaQzxa8gwo9miGnUrh+8T67DW3xj8qW8Mf3EV+XE0B/R4o6St5DR0izN9dAPp4vmKCo7k2l9IAvahu8P3FGz0/dy7FdvP0NAB9jfi96Vi67Il3mJ2WrAT4eRvumle2VEO9qDtrw2sFb025ViFnhWzPC21b8a+6l4o1bkQtHm5naas8mxV609oTw3RQBI81NaSJw6/KsNZ4JYpBLLvxA3BRKF5JcM6IvUiwrXuAEv78fyqF4JXjEqo66lG2Gt+bGxy/JUcfq4o3vHHID/AJIG/f7DvE3BuBpUw3xmMWU+WccqEMcEQuHMotIDsyc6mgx+nghZiyMl7GKRT9RRnTCZ7tE+/hJQahVZ/G00zSlnnYkku1ztrxq6hAX1yqCTYD3JoXWkcKblAG3alYSFbMQLdNK0FZMji79018ooAKdK1WjZ0GX6Ub14MbBotuIoqk+FH3DqvDZlo7N2jRIIFbwoeIUSCDR6OtC6GtTWyjxpr8wPLQz4Sfe/D1FXeF9Y3XiKCOPRtyDhWIKFBuSeJae7yjM6ldFPGtj711/Sskme+gbxL71HburO7HyLrrWHDJhw2RG9F9ppepCr+lKy8VV+KnSgIoY/L9dTVxbg3lpw4IBY+r3pVw8p2dfY0Sera0zRFvMu2szFR4i3lHCi0a7A2b/elbWXsHlogEaIG2LfjRLLpnb1dKQO34jpSucQoN3zG6rwBJoriJt7XdBpWEVt/hTggbFrRhqtI7O/0apFkOUN7dOxWdAwZ3ZfFtuflUPfI5zuvFasv4ey8sTCxVqlQlR/Yf8AagYnceFG/asoVxZas5W1l68qmyYSLxzc5G25BUOSMaQxeVFrEHE4kQ90hVfBGNmlQozGTvM7ftWVZV2N9nX8NAuRsRaRYwNAsa2FaNS61KoYarWr0alZGfRGXUL70btfVvVQ+dEkHzUoDEbF2UOy0eIiawdfyvQ2bjcG+fYLa0bEa0/C6LwoiKcUPZq+6ugvl3Wo6b2ZfNTXeUZFWohKPTTNDL5FXVWrUmnijwMCL3cJYgu1tS1d1/Wxw7qPcWGxL8TTuQm6vp6UqyQvvo2yrvidSq8FqViC1wq03Qt/NIC3Nai4fWho+jfhNRq1OABvX58vekILbqcW6saFl4KtFU5Lxag2Fg4t52qJZfiJHhh9H4n/AGWpmlmlOZ2bzGh2D7R7FBoXZtMtNZ4vN141L3bReNo12M37UdW8TfMk0Lxzm0qjhT3mgTwSW/vRcCOop0aOVMhbLvLtFutEhaUyd4vgdW2cQb0nfzbLLu+9Mr90mcKvFeNq1nw3hT/7pHxU0ggwznxNyXrU39Qi7+moo9hIVtG/msN3zKBEVEgGW58R19lq7pFiiUKsQKQv3qlv8bcaQukj/dy++mtJmngaPIV3QxOi/S96Ud9LJkSX0CxJo2bb09xU15X8dw1/kaDPDwfzL/Ip1lU6q606DBqp739qLZpLlQqljp7cKLtGX76ZmW2zRV1q8cg867WPtRM8KHKX/wBav3Y9X50bZDqvArRoLFEdjNqzD2o3Jw3eNzazqb1rIsF53XhIw8Ce4HjNYGKf4hMgmiDbi+hm5kCp7YngEXxuOBegQVNq2wZ/h+L6OpLoT7o3/wBFDtcmNCSq8r0SGFRpisG4yT4aTXXgyUIsXhsUC9nU99hsu0gjlcUWBkPc4vlJbZIPxDS9JDB8WwiXlSJSFxqcJEHlb1Cs4e/ytSNHHi4jkZl/uJexK/Ooi4K2XxWynnWYkDxFufTsUiVyGZv2ob9rfvevMLrQ9+y5oEVowrfXbR8JpFaZtwM2X86OrjxqfKw0IoaUdKe8L7elMCK50bqy3oAq4IK0D3T6o1BZUjN4zxFBVfDuVsvQkUhZBUtoxqvhJ+VudOFI3P8AWlQzaXZSbgDUA1HnM7feK/mUcPnQEaDdQeUVkB4s9Ykp5N67abNvCgqRREquy/O5I20Qac5Ih5vyrDq3SVefECorq24jafmawjLIhvGpfjzP7UjYd13Jh4vqOVP/AFEI0DpqOeyuGlHRDauKGmJbsYRouqrxp441vxasRFl/yrEa23lpy6DzZa1DUqyKvBqjCE/PThQ0WnKOKxEojTa/Ba2prmZh4qZDHGfnmokEAj60TpUV403GbbUjusY0wyqD3h4VKAoFf9E+FYbdzbB/LUpijHm80nv/ABWHbE4Qjh5OtZRdszc6A/y+waGgokHsuG8tCiSKdVa1/FpXDSidaWlApav3oOqNsI96OeF9fxJ0NEhhu0Sv71aOZ13W58xQsR2gHJ5aZTIo1XzL8qVTY6LVwBqqrQIB3W/0oh4NWUrsXpQ1bZ+KobINitQuX0+VYgulqNAufNSnvNeO78q0FFC67q7W+VNlml3kC8OFFmjU2DcfmKIutEBeObZ860ZhYt5vYUpLHcT00buaTu19VRtNO/zNFMV8S3XxI1jg6J6m61M8rMczO1/EeN71pRuP+QO3+3H4U/E3E1vP+nYaOjiiY8Xhnz4Vuu0p8+HWlCxPpIq+R+I/iiYy4tG/DNwv71Kcq6BQ1FVlVcmdvyNTd7iH0uvlpGA2/KiVZB3WLToTo4p/6rEyjIqJqNaw8sML9KHYt2ijIdV4rrZvlx6HpQsXXO3zrV7IF6LY/veiww2FXICvOiFKA9y/lcnS5PtoKDGZE75GXyteyfU0j9/KgDWbdPSgz4YSFFm8r220AH/3sp+8hO8rbppskvmibeFBRJa1m2f6UDEUF2DftWBnPnQsRt4X1o53Or+5207pIz2TLrQ76IHLn9utTZC3BttAaVPBAs+ClgiefcDnVb0WkSFmBd9+VybtI3Vjr9BSB2whWOOX1KTore2prm1DbWvw74ggSb8DjVJAOamguddFy7re37UO2TukJsznhTs0f/Vu2huNQaRWtw99oNePDC5nwnGK+0rTkS4ZsyHmvKvheGxReMyJFAe5xNxvqp1EhG2xFyKxDY34aukjol3hB2hkPEUjSZQzdQBc3+grdNaQweJi3FuAo2YVvChUXeo91f58R1ps2Gl1jfpWqg3oaOov70NR2Hh2HM3qoXaLVl/DzoaUT3bU91YaUaFlCWZqKtrZq4PQvQ7uN3L92uy54+9YhSp8Lo3lTpTpIhY5GVje2tunA0ix2Fl5j5mjQLCinfjjLr9CdPyFBQx4Og/iolebPbRRQU5N9tmtXMbGswSTw/IcqLOwoJpeylso4kCsIHhO+20KetYfu0V7bt1DfOl8PFS3m41EsZNvByvzo75196dVXjRLxebmp60CWNZg4NmDUPmWopGo+dTfRKnfZwUVK4ABsy+5pTKnqSjUCT4Y6FWXWphFLxgekeKRW3v4tUwkI8q/vSNKzeVda8E0iiNlTZprrQafDvru2ZelA7NF9PQVgcmC8YN/IymwqZkwUDFnfgijjSsMFBsK8fxNQ+8Vxkb1dasWFC2njWLwlqADj86H2LXbg1btDSg/fcXfZ7W7RRvQy0Kj0W9nYbvCmAFLb0/ipjHhMSBhvwrfz/LStHRstLdRqx6U+ddqstasaFbaics+6oXeonDou+0i6UcjDzer5Uc4G9RKyN6v0tUPcNJza4ajdBUjtZcq1IxeLxNt3ed+FHvF9HPpWgcksvo5C9QoQRZPUreqiS583Hs3fIlFcuwtSWmPp89RlEDUc7gfWixPlWhdzu0SSdi1D3UXraj3cbi0pXel6E8ulQSAdNRWbqvGkodmoo0ew/YAEkm+3oXiaFo4xpUrjGCEyInCw4ULNGbVxo0Yc0qCO7aNG/kYfOg4ws79xjov+yl9VvqfrQiLkeF/VyIrnXEUVsNcp8xoRKyJlUN5h6aYop0q0iPdFb0OKZRHkO3sF2qFmUC9vV0qExQ3ywXbNwvlv0qF5psQ4w0EKcSASWJ4AFttT7XJkltrejeJdVl3SvXpQCYYPmim25rbgY8lqVXRfMraC22lXEYcr3sXpyNw+t7UHlCJ3jrxjvsFbToWp2SZP16Glvw70b3zFMmJiap2WDiq7/QXoFMnl81YV1fysxHhvxrhSBCz2UryG0mnZ0fSlaMiipJ8y1qExUf/AJHrYxavUeyzKNgPLlR01v8Ah9+zef8AIczQsw48COYrnVpcBKAMVAvkPUDZTd9hd2VP2bkasMF8QXMnhF0PmToQawyYZoV1mRQG7290cEa3FTGDEPri+TnmRSR/DPiu08IMQ3L8DVA6Tk5GQ7bnYa28W9R50OyW6s52eUcBSqOTVo66wO3BuXsaBSSPQZqFbaFE921AkvXgHprjmT6Uv3EnTdPYdu5RuRpTUWdk2UrBi2tFUVbFNdeRocaQuMRdGCeXgdlEQpF4Vup/QUVIa9lp1Kjj6qFEikuqeamZjFoq8CxoPGOCNWIMTSqHZX8XAGw5V5d2owCLZ2K6kilLt6aHcI1gyiQ20vcn35VNIY+C+XShRvITvN5akz32r1pS6nYy1413JE5rRJgk8SnpUEZiT0rlP1rd9LbKvFm0DNusfegDRvemtdaINKI3P0aoZBEN3j+dMwYHRlqXfPiZqfQaZL+Ki0UgNBQ8e9la4/Kh4NrfKmuF1LLr/s1hP6synSO+TWkMU+I8coRR434C/pq6RwEB299LVN/Tfi8re9ERIl8jBrqx4G9EMKXLJwZaQzQcGXbRryNbsanWJWBCs3mIoV4kB1C7V+VHWIXZfVRugOjUpFChWtGtFo8KFxHNlbqraGnEjxDuJW46bjH3G3sUSIQBdhfLTo/EpQbN+/WpWiZzZEK6vRWIgf3G2t86u8aG91/PTlQJkYeBs27zol0YaNxX3q8kPFqurLu0M9h4Pfr0qbOzMECquUbNb0rshIzxI2+OVR9xGWuE9PStFFNdhurQIYUPuevmNG0ltSvAVK4+dFo1X1eb2FGztTd5yo3A3aBdzuJQWSTgnlX+TQ/Y2qZSx8r1hc4/DWFs346wihf8amWPmtYiM8vFXi/xIahWztNGlzSvoi0c00msjftR+5Q7fUacoyULRz+MLyvXDWhdjR3x4ejDZWmFx4/o8cfQ/km/Q1dcd8OcxryljHL20I6Go7KbB6giZXXxNxJqUqI20apXmdBmyM3DmKls9s1ulYYvkUR2R7K1uI0qGSERArrNcNfmLDsiZ2j1JC0bkCzdDQ0bbk2qw2EUinF4VDKj2tnHqX96xKTtO7WZk1tQtFI5d+oTXL9bUiys3hjX8VBv/Z2M31h30vxooDiGvlXyKNFX5CmDs7iCZF9W0H5caxTGZzdbrp7GgSgJGbytbTQ0LNUrDn19xVsPL6vIaVJfS38GpkdUF8j+FvlwJoGAL601anDuNOWWhQ2m/wDio/mnaK1HOBLHY+6PQ1YGuB7OFGvoKmeJjp4al73JsuBemygne5UFKyDLNA+scy1d+OJ+GSauByt50pJfhuLQ5mwrXZHP4TQJHQ1gYMSJCVe11kBOxi2oK9KuqTveOYHdU8/aoBjcKotHI6/exL+BuXSvFH58rXyHkaNgN6hu7a0Wmu3lqyyJQyY3D7/N150oLEZWXsUmgRR1G61ECRK2M4b60okYjdraKuCKfJiE81bpo7aOqLdAPM17CmI0pmRwPL9bUjHur73ztaomAU3zrtp2lLJdXoUVa1EFSpLIV99lWYX3loIYUfOw8zXoNKz7iq12kbgtLP8ADngPexOvj1JPtpe1T2nkspw/Jxo2tLs2rSIH2Ii7X/3xqNlgRirK67L8etIDhmTNG3qvt7BZH3ewjNQfQXDrs9jQIaCV0deRrNkI8nPhRUqlG0IfP1p+9h9D0xjnsbI37GnZHGrfxVn1pwDwWlljwymzovmU8xQUwalCPyqFszWylaRsK2wu3lHypkxBQC8sdP3i8KVe41eeVGIbOLkD/GisUKDdXSl0Q5IM3OiZU+ppWVOK+o9a1mA8bVHniO8jVMJE3mw8tK+El4q+z61qjfPN/pSlH6VFeNbM3DZxFEiNj4eyfPMg1T017UFKnareakukqkMvvUbRDiu2gWCedq1bt0FGmBA4rRsaBbPA0XvxBPsa4ilBDrlp8nNeDUBhseRlVqMskMY3mXax+vWnbON5Q270FHIQ18/Ggs8RQ3Urls16wuo5MaMkXNc2973FTlG5baxUZIbzaVLeMjSrSBLhVzULRpwXy9hHzaw+ZNZWZKyxOEstDvGevvdpigX96ZARsXyxiiwhI+bnpQ8VsqL6RR7lRsXzfSoCL+Ztcw96azrtX+KNoxoqr5utIHU65W/WnYR8V/0pIxI251otExoNKOnGobEeWhQJoVso0KBaQ7q0RJO21vT0FHXzv6envQAC9g8a3u3ThWgbSgbo16Ot6WR8NiohG0mtom8h/wDFVx8V+BsMNjOUkQNlY+2w1MhjkTMvm+QrEOkJO6um2iTegUxcD+AjlxBpVgRxrl21csN7NzrRj8uxVMuch68EU+kicL86N1bitHK5uUl9JPH250oimw6ZSvqHqFG8pxHhXpY5r/Kj3eEaze5JrDvlAsxeI5G+ZosYTv4dqjVCh7xVfWUyG+Y35UbCkSVYxdPxIb2PvRZ2YFsnpA602UHeLeWjw0b1VLLbL4EXczfiB4UBh3c2Evk+fKjDiowdHXxL8jUoV2t4G3dNKR1j4FN36ivmajcga1yRzXWjtP2ArdGqID/Fj+9Bw/ZfL5X4oaZ1AN4cVDo69Qf2qBH4R/FsMLfKTkaxa/0WJKyriUTTu24hRU0WIw7PlYlLrKFbQ66ioIYCN1YVyrUinF4PTndODc+lTjCuiarvLLwykcjV1ZNZYNdnF0vtWm2ja36UrB0Oq01nTZ+HqaySYh/DJx96NlDae1C+Gn319DcRR20CXHmrjq4C1cMKNpE2rzrYws3uKN1niU0jO3pWhRIYGj4/PRbJQszeqpRCwFEEbob20vSCTqw3aUoo8Xh2c61SgY04N7ca1rMdaBCD9ajMgy7qi9/4qF8OoF44m8q02eSeQRRJm8XOw5A8TQUZzaSNdcvEEe1hzvRs46b1FIpEjsmXebQ1MO9KDLEG8RY/tU+sgzZNuXXQ/rSeBHyluF60sh8XYdaLCiQjWEny2Gl2my/iqN0ZdqstClCAmyqyt9b1Ce/DXZ10yDgflUxl4N3u8xPWo7vxZqdZTxf00zyzSpo/DTbQJY+Fajc5BnYrvFq+98Ga70914I1LZIzZVbzNRsAKRJmnlCKrrmUjjcUEyxAK/wCJhtNHI/poZXHnpzJCXuzdKheNk8C32Mo2WqNpQFIstYN4UOyVWvasY2Iw22yfuKw8eNRN9U319wKheGTira0WUjfiah3DsuZWXxL8+INOCp4r2blLeMb/ACqHvDy2KtNfTYN0ew7DrRoa0wR/ypWVl7CD1WpVkDrmAXy9h8ZHh5UjKUfMkvvps5UBNhz5t41KJYW8RXjSEngvGiEsLL86xUZPVqaM+zUiGiwX8NYh0J4K1QpOB6lsfqKMsDN5X1VvYinRG290zeKkIWs4YNZm4dKQs7bqrRR8Qg8b8EqUu3Te+XSkZ5F3EXdJ/F0oKhB323Vod9Kn/W5dE9utfeTtq/G7UAB+a1rWDaRDu5ai+8y3UNSER33q53DLwNERYuLa3q61FmX1eqou7f1LUitULBODrsoUaFlHmrNDDxZtvyFaepm2/M0SqcX/AIodorQrWyRQ3ZK6q9s6q29bUXrXB/FYzDi4uBfdcGnaQx/9JwLt50OpH0rWnWTS+ZaOf/HsjeVyloVX1dadSGFAqhOtRBLD61FaSB9fbnXBbN/NOptwpRDLHuOvCmMGMWJkVuBvtZb8elNLLj98O9tjHTZWposIMKMn+TnU/QWoGPFs1lZOPO9CTDwuPDKupynW1FQJdi+lBoBRvNEBnT1KeH8U7+Ly+mi0ojGvTpWW54sbUakWORn0e+W9+BvpaoEeSJsrvA4NYlQ58knhaoFufMnhqdg/46TwS4awYHS4YVyNHt86A/t9pe9gPDiPapRNhX0IOqno4pmwjQXvhs+ZLn0Dhc7aWd8GP7iwEB/lenbuS+cL11F6NnX8+YpUixoH9mW1m2g0zRHD+GJkWypSiHFLriMOv/nTpUDTQSg9+2wqDe1qBRnF2dl8S/6013G9W2wFIThp9H/kUbwPqj8CKNpF/SlujbrZaHgfd7G61KkrReAsjXHPbRZaQpHIgzL140NKJK8aykNQUMDQN6RQDsRa0UkFg3SlWINvBPN8qIB20SXLcW8P0oEoaDX3Q1ESs65uljTnDQSjN+H3tROJk80rtf2tUzROhDq6a5bGpoJMREoeeJ75QnPZtplRUsrKzeLppRUFzlZs1ivX2rFWmhyrEvFrcPYVhUw/cMGXJtc7db8KdgjqJHiVrqrmtwA1wPYaKlSKUMB4ov8A8X+KlZZH2g7tRMZG3LrvHoRSF1jGZk9PWiSzafWpe9KOt2Vr62N6JpkcS76hdxiaxDu6nzKL+4Pt2KCnmHSt0Cy1wpTFh4tIqQM8zizcQBX9v4fD4esrbKPcynzeVqlRivpapmKgWaheKMBZeag07GPk1HsneK/pakfDTjT+rg3vmONYWDFQnRcbAv8A5raqaxMkzHwxMZN0DhWGXEpXe4aXjFKvh+tLlmJy9KBd10yijkUHSJe2xaixo0VR/wAuxVIaj3uGvm/EtTLCfx6L9a0PZFE5fztt+Va1h7LtPAe9T6n07tNeaKTM3UGkDyO5PvelorcUvzWlrMoNEFB59tL98F8D+g8xQYI+qlvzp3ihTeaoP6uR9snoHEk06zY1haSag1m8ztUpmY7WXYtQCaddbv8AxRAIpNeLUPZqLU1b1Suea34U67u6NtQWia4rFlGHrpWDbUlVzb8qkxa+2JNfE8RLgxvxP4slQRF5fBzWQ8uhqUfDnUElH3Wq8eD2f1M/hQ/48W+VK0rf9pL+w4VNEz4h2RMOr/eWHmI4LttR9l4dho9m+B4aBDZArfLT9AK8jNG36jsNG7SffQdJF4fMVJbH/BnU/wCcZNivyax+bUVMEqiRAvlvrY9RSMzwaRyr5R6W6cqNR906izrwbqKKLLm8EnENyNKov9PlSqjgeWjdaMYlXdbnS52jW5X0r/pUux85WnBQUlniTMrrodOIqcvaELFM262lgOVaGtk8Ql9mHh/PSvBFBwbjbWgstt4Mv71IxTjE1Awtn7xw/mfgPamBrKQ7iORF8zc6S7U9xS0KNYlsnBG1X6GsL7tE37Gp+6M3gtILamkbPHaQH1Jsb6UxJ5rQ7PxL+Z+zmzDfJ/anWPq50prjZ0NcfJ/FfMdmopzzB405KHz8D7ipmjCsCklIP6iO0eJ0ylAfyI60NJN5m0ybdvZuk2agAeFC08esDN+lErLEewaP+VDYa1RqNmRg60W1bWhdkG9QuvY9kvWyOo0la2xqIP8AjR40Q7Nb5CgQKZQeb6CgSFprl6jY2TMV6aG9cr/LW16Fwm9QQlx5hu1CWklsUfoL7afuSgzIG0LbbAU6hqAUYixcsoA46jkKnu+zKvm6WPCtXNAJru9m2iQVaixHXy0AWG8taN5lqYRqDfL6+lqhOGbGb68k9utIwj3o9viPK4pVhNynh5jWr96bGPIRl63qSLJJcNdTmjt/NSK7Oi5nTpfjW10DVlLjdpWY8QtKCG8lWSGIaKvPUUbpBf8AKpREcdMZi3S5C0bRxtveqgInb6NSAlzRAVRd6vGpNnzbbcGAr7/g7vt+nCmTDYnuisivu2OmlRstajeVetSsnBuTe4qb/wBm4rjxgk9xwqIYeU7r7Y36hqcEcFZaLRu+ulM05ba76t2Ghc1O0fFi38UrGYbjUyurjMAvl26HrVxU/eEb0T7f+7RBobaKxScW9VD25N7UCXDHxeoUKFQlZMuRm4W7CpZk1WihCXujb31pEIsPLWGsUF7poaexdPNWGZoR5ovFQ42yrQKs43PN7NSqZD41Qrdbcz0omVgNrc6LZZzeRb2QKPM3QU+d30xGK807cl5LS2G3NUwlVTay0UjQCnEgBswXatDfNAEHYrVGEa+6FqFSiL4GDAfKiVRPK1ammCzR2K+LX5fvUq66sq0tCy8Fpdw7FqJMx13iv6ViXaF9GgnbvE+prGj4KVOt0LfJTWfHz8JsU3e/QbKxy4jFnRIIvHL7WGysO+Ew7i6KursKDx/nTiVRw/0oWe9Gj2SKDRD+G5Ca0bCfxJ/kK2jsuJovECu3TiPakR8JjYyuKibYj6XAHXhTCSTAuJ4G9cL7D8iNaOU5vGq7L/Kgo0Hdy+aN+HyPGhZxvU7LzWn++00bjahZiNRQ2UGCIuZVqKyP4JEXjQZEJutL3qlcyhmFgx4tUaJIRqyL+lIJIXv4fTV58Hz8yf75fmaeJ5MQws8ikhVGwUVlxdk7zLotCiwWAZpPxMb2FKCw3ed6F45N5eNStHiVcjum67TfnSZmkNv5NC8ZbwK3KgD/AL1tT2BoE+1cKFGxp747B2imbj0ekPcOdO31P+vZGxflXm2Ub/8AIT+ohbNnESljHlOubSvC9YgxwwRMyq2z2pjFMh3DuvzU9DSWCm02FfXuGPC3FeRpFdkbNldcyt0IrEwgzTsDhU3o/wBrUda8MiVpi4P7q8/xV7OtG4NJeZd3rSlWFHfGWhWpSgCKDGJtxqDFl1o6jdoaMKGdAtmUrYXP71xprqN62p0olydY09uHvWzzUTEr+ZV62IqPMV3FbY3OnVZsPGkllXVuJNR2uNGXzcfrTWbilKzSADd19zRyQhsxarKRpdaXwudCfNWV9MqovlA524Vo3JeFDXjmoFLdvlsaAKxDvWXbmsDancvs+VbqDOWXeI6CkEyIGX8II11omSQ0gZCPFmpQig+FRWeSSXy5fpaluNaZdoAUNq16NmNo/ptoELkGjHjRIVdaCpIIndU5gEAH6kU9m1JaomOPI7qaVvWznTrpagXjw6LAmnpFquo9NMoREzvza97AfSsOFn1um0tyLdajV+atsqyTEAMjdNljRMTrWjDQMtBZ4+DbaZRIdsWz6UjIw4N2ePDPuxPUt4otDE3l7CoCm9zW3gau6vtlWj3iDa6/vTlFVd5etHOCT96uyj3i5xZV4jjWjLq2XZ1NqOZhtZT+dQvJwzrt+fMUzlStvbWhQ1iN/lxqULfdK730qylGGbN16VCxUOQy+ZRzoUAFXzUsizad3KrWy86Gvq49g37eKhueJaawrDxTSIPA7r4lvShpAdQ2tSLGCc1vNIetQtK8rZURf1PQcTTiaeXTEzpvTtyXkgqXuoj/AGovM/RR+9KIcPwiVv8AzHjQ7q5a8veZVtbRbHTbTtMj2bvGsb34gitV4NUqo0Vms1Ao1rMvpoFJPWu2jY0vGoWhnj8Nlb+6NRcVib9z4uTUist/EtPdW7BQ7virftQZPxLr+XEUhVspKuF3bXO2v+JcVgxOptAq6DlfW9YZZcNKdJ01SX2bgaT+rAXTBS79+FjSYLDE3ZcIkpdl92qJ42Xg1DI9Al3OVV606XxG9ANWjpM78/Kg5saAkZ/7sjLq5rDRK2JTI7heH+vGgTgZG/8A0R5Vb+piHj/GPV2HZSBMPLhSSq8GvoaFjEjptteJt8H23xRS8cmQr5uOvtQ2m1RMo7DZhTKDskS+pX1WNMoD3/0rcOjVJdwaDPG5urt5W5E0LgHVf2rWaXwxD9TS6DeVqwvembkv6Uhw5G8j8fcf7IrBNcn7krZ9vK3C1RtE7eVltW2dCGX22GiUj2lqhcqBvcKGo81S95GRUJQiiCm1m/atjvr+E6GiCScrLQuXoNmG6q1hZoIpwTE8sZUSW22rVNyeHhIh2imE0E8eaF+NvSeoodY39S1iIcMCrMXmbKuguRQY3du7IPXjTlAT9OtYmN2kA12bx12e1YWJjmIuvMgqNvtQYE61z7EZj0FWjXrQLRoLBuZrgexBLhJTnK8QelYmLBY5vJsDe6/uKwTywL/1qeJPqKYo3ENXxOHEhxaXC9yM+X567QN2h4+K8Vo3R9jVo67tGvmKFkY+JaIKmhSeNf7oraK31oF1dc30rnQVNL+1IQy7VbzKa/sScvI1auu2m/lqFo9nW9Rs2lLZB5V0+tIgdDZm4tRBRdEVvnr7VoEe5Wo9H13houwCm8S39uu2iQYzlZ2tZduymzpIjDvP1q4j4uPLXcmRMtmTa3O9TsI/Iq1lKC+XnSk9hvIdgogmjRAbLTrKxXKuX+Ka5JuwWoTCYh4l0p2RNuX8VBSfUtSCQWs1agvrQBI3aRUeRr/zpQtHF4vfkKUSFT+1FhHB4UC8xxrzPb6amgM6qWduNidlHbWt8UZSf8abaf1rMXFl60O6/F5qOVaURP6l2N7iiG18vLUGlMqcV/1qZigIuj7detHKk65l5N0IqHXjlrBQyBOLXuvUVmJ4tUXRWpwW/O9NZT5qdZYimaNl2i1OQQuUlelKskR4MNKRZIHN2Vv1Bod2x1kh2GkgG0r6emtOIm2lfK1P3LvZjdeXpNKZU4pszUFCW3VoiTEenlQWGT8qRXEqnxNR20NMXBkP+a0CJAlvmKRo3Zjdabu+at5venV5Nq0FyB8rJxomHDyNq3FfnTrKr7GXiKKh32t2amQ/kKs5fyV3mJed8sMSddgAq2K+O4lbYyZNkf4AeQ486tj/AIxJuYZt2Lq/L/GnYPKLoG25eFk4LyoEAVoax07QJa0TNddKPHc9NOJXK+Llrw9q/wClYB91vPHzQmpct+eygro1Ad27ZUfzLTkyX8LUFlMo4+b3oWz/AJVPKZ1lHdOugy8amLmhYcWpwQ1HXy0EVdy6afWmLCNbB10ZR05j/YIoJj8C+jqy5l9mU1iX+D4vgpu0N/1WkMuH8mJ30Ps4rCRJKdBMmo+Y2j5U4dH1Wxv9DUThgcqrbVj0rGzR4WIZUidi0gXba3D51EsUfLzOeZPGudGoP6nAOLMlr6HlzFSmf4c+oZdTF0ahb1Ly9qIz34rf9abxzjRltoBe1IGDRSIV6sCo/WjmYxiKUtt02fPnUSB49rc6F58n3XXnS8aDRQfm9RqFCZV6e1OBLr3br+nzpNll60+b8AqFRDl8SqKe4B8LVmdI938NIHW+56qiXBjymLTLz1506BQAviW+ypXRS+ZWi8OVvYVfFQnRyW8XuCdvsbGpryOAviX+18qfvsRfe2aVqwFaK7BWbpWgAoXXYq0xVq+8SsHJO8e+2xUvxZq+Je8MH8moIDPsZIEzyH3NBIsFC94IlXUe5qOWN1UZ1m2luY02WIIp7fDsW++T/Yf1UFE6eJWpCjA2ZetAEKWP50uUkkkDZ8uyRhx0ajfKLUWGhsVHGgxJOyk72f8A7KJaf+iwPCIaZuhNQf02E2d42mYdBQ72ZxYLx9zWhQa+9C2YmmNqklT/AAkIqDBNxL4hCp+TRjNXxQ4Ge+6S7p8mCg1/xNg8Y59eFmZm+ZQUMMHU7+GmLD5eGsVC2LiNlil8LSLbhcjUUGWVNGVqF2oUbLTWZaIPBlo3hl8S9OlcK2Ws1HeAdfnrRuB5aW0ijSoWmjn8DJUX9YXGniyqooKJLjxn022Cg8o3EZvCnVqdRIpCvl3m1/SnJYtfPRSQumdREu8LUSHdlAXku3ZUvdzbc17acanSxUssIa7LqBmpdCamcLxValdIibKmasy8NVtm5aUGkZkzXVuJqMliPp26kULNsZulLkuOzip7FZ7EWXy+xNQPEYU7tgm6nLX9rCjRokP6v4rbiEzfQA0dutC7CuLeKrKyof3saZZYnfWzctTR8ESFm9zW12zVGxgD5M/DNttVkdMPdi2mrUif0+FTfV7525fKoVL3/uNUoU+KyrH/AIjbz1NJIc/pWu8jZPEobn7UEhc77P8AtUyXpHEr2zq6/wBthtykcDSSleDK278qtiE6b1BMjbVZacwQJuWXzUvcKhsz8fl/NGyg+X9TT5IuNqfKH+7BVrAn3osjpJpInl4bOIp0klk2ZR5fahYNSaruOujL7GgcTD/2yL4l/wAhx96xAlhG4u0N8+BoXst2RreH/WszE8W2rT3hPnTe9qDjGX8B3ve9WRd5stOZMhyp0W1RtK3BEo6h7KinjSNA9/EnArWJt70qgEalqDMU3or73saQmN+HmQ8jTs8Sbv4flRp7qv5+9WibJfxennQGJxEa5A3Badnd6wES/wDEWJRkh9SK3FutSjE/EGJM+N25Dxycz+LhwpDi8bm8Ly+JVb1a7zUrSufE7tR1o0aOTTIWrDwtEECpKzG/KmzxNtDLx4VLZCd1NlSvGjWPypBLHm3l21FPAee8K+JRyRo26y2asXDduCtwNTJLHF50j58L8aVvwMvE+1YOfEYpEzlItdBtrCWblFJYL8jWE9ry1hIg1QEpySSlmwxC20UH8xasUiScQqkflb9KKSwPo8T2dHHUHSpx8Gxh8m/AT7bVpP6r4Z60++g/lKwIhxLSKYnE3gVwdNtKe6Y3dPQ3H5UAaAAFPeXzS8F9qvi8MeDN406qaIxfw3EaTw8G+XBqYv8ADMTqv4D6TWjEajlXkOq/rQv4TPJ0XUL9T/5acvGseeNuVrAULQS8eXWnUg7H/cVCplUapwPLs1lrfBzL+4oC1EKAKJ7stZT0okAmlAnTb7Vw2HpR8A1y06xzquZUbiRwqJoyODLaiHjH9zO3D96EkVh4GbT6EcKVpgNlap+lC7Poq1KDJbdrMoHKhZtDo19oBFHw7KRZnxSZDE3G2w1j3ihOnc4fwL/JpqjSRonDhWW6tbmKX7+U5pOVGp/wYSd//wDG1LZlFIoE0ZlRl6nVSeY+y6IkwaR5XayRRq1iWPU1h3xJJs08l1z87Abor4WiTm3ePMxmytzUG3518SE9kL3Rllso5AXK1hGjgfTv3iMkrD8N/wCBULwvJs77+7KegOtL3OGj1WLzHqajzqh8T8Kx/j42j0rFJII/70zLZIzyvzr4pB8kNY9T7Q08eNKRyRPI6FUjZlK6HiwvUKTD8DUxwWLw8RliWXw95bUqDztcjnS/1eHXQ8JI/Y8R0NSrOlvmp6igKGtNZ0p9aG5r2HwGnLU/ypwC+6tTqqL4wq7W6VFeLdjApbRX8aR+ag0SW8AZeHAC1AAlfDQJ73fdfKAbGmuogERXoDrSuS7EGf02Gy1PeJ47q+my+n1o2jb7vOu9emKyYdyHu2uvEUG8Wi1IkySNmki9NSISuoJ0K0qIiiy5F3udbaN7U7huC1pGn+zXhY7A3m+tdaAC9hAVX/0prhju1qzKpnVPNYUhkFj3f4WPGkZMRH4cqrZr8KNohGsj/Py0FEWHsvtephFOrZo32e40phLP08n02mjsrDpGFgyOoXwsxPSgouSV+fMmtuIJLewoXK+Xi3sKxM8WH+Hr/UYszqgD66AWo2i59L0CgBv9aKhVYJ1YnlQugqZZRbd8y/Ko5VvuuurJ/pRYMEAu2359iqbVMqKguVambscEKLk9TT5llXdfmeVd2j5fCnvtsKPczDiuz5iprBHzJ6dOIpc00vikY7AelEBU8MYGymMZj57p6USkjDjsb2NEgV9xiHGrJsb3Gw1hGisdJYtVpxKvrX9xTKRwalEcj3/xv160GFL90Dej3cg0ZuPyqNirflR2bp6USRfRW2ULs1qNLlVqlWMeb8VS6xtlVF0udtQorEgvK+tYl/HvWbbRJNJfBYJ7QI2yWX+Fp7Q7jzJxHpHSlKihogAbq3Go0VCO01F3cjDxMvMdKnuV4Ml6giKjfyaVE8SK+aTNqPlQdWUHIW/an7xpFuxXyNxrEoIAQE+etFCGF0cebpVog+5ybpWjuQFb1X0rUuudGXjTvh5fUjFSvPZRrQns1FGjTtV2HqXbU+deKmu5+FfE/wAGkMh6r5ahbC4pdIp5dyVep4/5UjwYgDMMO9vvOqHYaVsMq6NH5vn26o2jpwao3xHwrGKQU4rJUFoi/Br26XNLIY22ou2nR2xVmd1/JR0HCk1CBfle5NS5pYh96n7ipXEMbfSpjLC+oan7xeDUwJ4NyreH514i2oXnU2YINF2aVCrSOLPemulOy0SWHBq0NHKoe7tSK4dfC/6EVOqT4RrRplv3l9KYPNsjVeXXrRsu4yMv5ijkk4Nf96UTp6tL/UaVCxxk7ZFiWPxe9AhwfH70+VCdWPlpzLCG8LFbflXDdqTLYZlzDQ9KIDPoy+ns3n/IUKWnE8T6Q4hz4kbyqaS+PwP38A4tbfWh9icRDBf34tgZb6Sczahmdt6VtrVto6r6tR9Kxg+GvMtomjsiK3LZoKmnxMiXBRJQzSNwUNrUEWAwF7rhIGLM3+bnVqRY15LUrRIfCrLvEn09aVUS/h9R/wArcfmafuojurtaQ8lA1Jr/AKJgx/1Ct45f82GwdAaRBKU+6w66WXgzelax0jTS7wWNGX5KwNBMSpbx8deJueNd9h4GGqXDa0n9OmmsOqHTW4NRCOeFYzIEa6MHXMrKeRFb1aEUdeNcq349ew6cK3Dv+1AxmTRXXaq8fyvrQYCZ7Qr6VHCoO8Ci1G7M5FPZEsuVvKflzq6BRZV4t/pRBwd9WdNWY+Vf3NaSuty20RrUs5iy+Nj5m4/KnePDeGHDorWso42oMqIps7edr8KCa81pu5YHKxf9acRygAu51GlDY1w3mrxZB86BVeC+qkZSri7+leOnGsW0wZr5UXX608hhyeFIm57L3oWki0IZdeooAKr2Whw7ODUASW1bpQBjTFCBi3mU2W4NP3OLw5WRkK3XXUUYDJKNFh6VEYnBtbZ86MpndsyroEC257b0dVPdt+xrZJ4W6MKPhOlfFGwJndAFWMPmF9Wa/AVMMQIrBmX2ohEijyr/ADWEXEFhbMzWZaJWTEHuo/ntpLpIRdvsOyOPMtFZWmA8a7/zFOs6cea0rFqgZ3DZbBht+tYdpIeHHKOoB0qWzngtMCvFWp2hZeDcflUaxYjzPwf5UwiaMEoV+utRPJDsz0wZKIAWpVhjkBu7cCBQjxWIIzNEJBt96LYlnfK0TLrF/wB4VM0iEaK+1fnSt0VtvvQzwn6fOiMJiSu8m78xSnDOT4MSv9qSjeG17r5qdyCNjVYq+lRlkB1oKUdd2jdaFEJENrNW+d5uIpmqXKlS5y7H86awom7Vu6GWU7sS06xLBH3Urchy/wAjxpFIkGZG6dKXYt/pWoajR7ATTuGSdlWJdkl+JO3TSphFjI/A2lhIvB6niZVU7GoEg+ahUS0v0alei7onqotdd2sTLiJBorPwo3aloXXzLXjSjdPskg05YCoEliPr8p5qfKaD/HPgO8pH9/C0x+JQIP7kemJg6OnEVIuIi9SbV9x2Cmd1LXCJvO2zQcB121YP5E8sf+tOpp7SQHRum0UxTDygxhvWvq+f6U7nCyuEVtVupv41B4VGXaLxMy6ilsrHdXS3tRzDatFo3XatFigpdzdatAaJXvBe/MUWKsfF86ILLvUxJHq83MVqIrFl9PX27I7vHomulqBAeTM3K9DSXiFsNKw6TGRNJ21tby6cedBjGANH3utK0LJcM6+YdagS4O+vhK30vpT+E+S+mvK9YVnC+ZKd9Rdsy5dazZo3sq+VqN2fYze16F2U9nyoi9CiUZGDq3pYbK0GJGZ15SDR1pP/AM24/wAfSNvsb8R3TsdeKmiThp9LcY3G1G6jsNaUglRtHRvN/rUofBRauzb0XRgKkXorJTZ3Hm2Kg6DgKKE/9q63/wDCvmP0HvXw3F4iRtDK+8w5Xt4V6AVhn110wY8Psf5vWDxWHQtmeWWJnaQ8yTTKq7Hhw6d2rf5nU/K9qTFYvEslzFuqjDbuklx9KnURDajcfZBtrCzwwymwxcy8fYfyaPdCVS8cBQBlS+l+PMjox7BW5xo3BrY4NDs2RofnRtIZMit+FdDb3IoBWGka/vQB6mvAGAC8aS5Bsh81Xjw8P1amWHDZbKnLjsqZ8j5YJAunsCaDWmS/qsvSsVDIkq953VtwkcTRu35dKhidnbwfXWsKpLHwP/rU57oAZQ372pLxbGf+KVSzalnbT5UoAYhfVWrtEWCDbsqZDrvSJvaczUjBpQbS9RrSkSJe7VzFcqDEHjyoMxKhqPSlXJC2ZEO6G52olHxACvl5C+lfEoUnS3dB5N0CpxiLrldl3FI5UDIYwEdU1f3A418Oe8vheXEudvPIKZSVa6/5A9elDbJU7z4eLdR9F02IOgrQO95fxW00o2QjKtAmSU5V+dd73yRgo6MMina7PfgADTliLFlbduQbAewAqBcLIfMu78xTmSbOcwXdC8Oxw3y3actlGVfama6+VdjcwawVoCPVZr1g0QYiUyvfFuxvs3RYCgqqRqiA6+9ya0YVm6NQ4738UWs5yqjaluopTEiaNE3H3FBcNIwtZty9ZmzalvL9aNNlAszfKpnRiMhK8qhmSCXcm/esQTO4urq1z86hE83/AG0HhZflV5LKFuo/UU5STb0NQh0fTVfC3yqayNqcJNqh/wATwpGwuI2GOTn0PGgoB8zUCGPmpyGGqsteF/UtBSvlbrWT+pdgivK1kivWITH4uKQq7xXK342OlYSJBza7UVB/Ctv0o7KNYbBYb4fBriMVItlQfu3IUFGFyWUxxeORztlJpO8d82ZZ7kEkHxG/GsaB9P5r4mgj6zEU8eIcaoyNf5UcvYGKjgtR2lk8MSdaALBfl7mokncLk8DcqgxAtsCt+xqeaLo6H9qxMEo5O38isHBL/hIP5r4O/wAmr4NP8iaheJXfc5WFChQoUNOD/wA0Msg3loWYbyUDl8y+n7KlnchVVfMTsoNHJGxRhxUjaKZ2jrE/+zPiY1zwGwJ/ElYAQy7E+JYPTP72qWfFR8M0Vn+gNOuDg4rtdqCLzlbU1mCnzy7zf4rwqMAD/d6kZcwyuobeXkaC5e68BX31vU14YPu4223tvW6X0+Rp+GjW4A2FC0V6cR3O+3l96l77W2f1Ud6tlqZUsdKRZO6O8y71FjBaypsokCjUoMii7QcWXjb+KKvAFzgrQ1FR50yZi3p96kEp3s6tsqUSwq5P4cov4qjEkQNmVtlBEDglmXj7CixrFllRQGSfyHpTq6nwvz+dYZG6rpXeQX2eb+KxKSN5eFYMzcLI16hlCFirRFLN0+VRvHw3T8qJFjTAFfy61BO/4hGfEedYaeKGf72JnW3dyj+RpS6Sg90X8j0pEkL29xwPZsrxA7hq7/DsVZZ09PJ16inWRGGaOVd11Owjp2bwreG9R4ZXRtVdeII5ViHwuGVc8+BRM7ofwfhoGKEeJVLXP1qcRMWspDa6dalZ2bi7Xpl+aip2w52honMf6GpjI/B60kvcMu3TrWNjwsZNx3UJQ9ddW+rGsSuJ+GyRWa+vfG4PdnNrtFC2Jw41Xmo/ijY8aHYdKG2isQ4M1Y55UG2JUsrdDehHFGlo0VtBpTxzFz4FXURrRprHZSMLHKXLb/Wm8XVd005fMhNl60pZ9Rm/Yfnwoq8qvmJTRV6W+mtqREnjuAz+Ueqtmt3zaUGKlAW9OlRWjRbrLs/KgMnXjUN0J4VIuJQi9m1VT/NG7v4svS2g/WpREzP94i/lt4VI6y6+IE7dTb5k2p7IpaTJl3dKlyxRyhmsv1NQjupePWgQ3HsOpOtd3eaLLmfYNTt6Uyuwc2ZN0rw7BXGjYKt782400meaVFRk51NGZpJLoi+2vtQ0fX2cbaQOqvrRKZOXXU1c7BR3zr8q1TCDJHyueNPdnkWJE9Q1J+Wgv706iSSMTUiltmajSdw/Fk/cUA8XrXZUoj2q3Ek6kEDlQsTQDvpu/tU7xyAA/UXsaQJzlTZ8xUqyLwZaF0osjR+JakLmDVeS2pLcpUXdp+8g3VZdDfhT+AsA6bSvLXs2OpqAvK/hu3lrEukF+8SJG41eS2um35ioELqf9g0hiUDRVbQmnaFlO8n7jlQum1JU1Q/xTg39VLnbZydD0NFviOE//DRj/wBVOJD+a+4phHk81DRTdpeFqInxdrKvCOpX7xiSyFdOmtCjQ1/SkIXhzasO0xiUJaKKw6XIovhIQTlR9MgG85H70VEeiorbQo0F+v8ANIrVClBlXpVxNcBW40jXk1WgVHNqlV53Oir4j9BQt1amXO3GnJuaCydWrARn20rAsPZqgmWp8TFXxOVfe9eILKwD8+xaHYoK0LR9PJQyTj86GSZNHRqHg8y+n7BIIo1w8vBve1YCcvfdhnjzfLMlfCPiUQbUriIZSi+2VSKwbHD+YQoy/wDmC1J/TRE3WLeZf2rxSjzPqazOeaLc/XYKmbvPQjnw+54mnJ6NV4hOcqyq2qg7QtQoBh/AjLxThpQaWL+2rbLpx0+tqlsjPlZqe8DaWbgaiRGQ7/q96RikbeNT5alXIVsD15Vu62VqNbOwUaJZNmRtljRJL7q/tSANPvfh6GpEjwsoPeZ/L0HvWPhfEa3iLFWa3AaWJ+dIYtrKW83YLkeqiFY62WiWsP0p1cOM367etAIv50AHHmoWBpmp3BTR1LVYSDb+LrV4s6kqG81toqVURNGBbX3vSI8nF6Npord+q/k/80n/AOeMElnQD+8tCzg7vYSIm2N6Dz/mhZh+fUU//Qi3gfjCx4jpzFEEHdZTow4EdOzdNbjUzLyai/wrFNtngTNE3Uppb5V8Y+HY2Lm6ujCpsK3tjUqfDI4kCFTiErE4UYoNpJ35ey+wFfEnk6RQ5RRxEpTVFWe35gCvhOB713zPK8AkdjxN2vR0/Shs3qH/AEabeX0tyo3BoUCLVYyR1sdaKjvAd6l2UfAd6rNTFByFMSL3ZqIYj/d6dBEwNn2aEcBzpmMY0XnrUWWWZ17pb6ldD9aOt/GjUNb8OVIWaSM0xJZsoGa17UMyPaxN9BQDxpchV020hDFr+JR4V10pr+Rm5MKLZjvN+nzolEO8zVhjJbwK/lb3oK15AmXptNvypWUR2YCVbFdbGvC5FmXsBe638NWjXy+3Kjo27m3utxypVcEXsD4qBBoXFwvZpJz6cqNsq7vqps2dsz9DxomyUbKJK2LrRuoBNaSYjxv861fESBF+ZtTrL3eePOm62lG6jytT923JqvJNwROPueFBkZJbNAuxUrbfdX+amjIdirIreNCOlYp4sQb25abKN2C2akUMnhWy2+tYmQBLd8y/nYV4B5ZQP1FMjmSyI6tzpVMBkupbgw2kUWlTzqjW+hp2etoPmo3VlB7LGX+KJmwkRyZG5e1OsbS3ABPEbaPd8SyU6TA3LFfF8+lElv3oRzpLZrq98y8xy9jU3dT8YZdjexoSRSbLt+VjRMkaDfC6/Oj3OKy6TxfuONQKysLLiYd1vccKF8S+hK0XklB8P4m6UO5jPndgKwzKCM275eevCksT5unQVEkh5M3hX3vvVKqcXcRAqorwgDe9trNRjlkxvgiVmtkjBIN+prBJO8aCIMjIdBoKwOIjJ9NPj0J8qpmr/wBpEfhg/wBKw+OMkpsr4j87CkYGIbrcaSWIAkIuy1SiSc+JmvfW3E0cqr5l/ap30+rVFKUfm361DLCvNHN6xc/XMD+oqWY+0lYudD1QfxWPifpLD/BrP8kEi/lY1/T4hC5fe7tl+TUQrdalRhUSmlKUaAZTwoMq3vE/I8jRb+rU3ct5utWUkZZU6VrA/H09godhuKJBFfEjhuBGKTvYX/dajwjRef8AppdF62K1iVCvueb32AU8s5Hl3Vp4bFd2Lh7nnUSmO+8ym31qCJ+qm361C6Mvizbf0qa+Kxmjlf8AqlG0+5oLGobTqorJBiZXKqy7oYbFPvwNd8IYPCUm2sw2k2pWEMvgZsun1oXl5N5xQYQk5161q3m7BQLKd2rIRQLRI3jy8udJaWAZS4868L9RQZlDjdoa/rRHfDxJzVq+G9/ECY3Z1LZedqVQgQxorqG8Nwdh40QDe/Y+UEgZmO7XijU6PQEjOu81btP4aBC+qjmlBPirQbHWlZVbxJm2leFBQ62YOu8x50aSltGRlcPusp2iixgfny5Umr6zwpQtKN4er/XsYLb+1KfJ0P4f0oEOtMf6bZDPxg9+a0VZWGZHXVWXmDyrYaHhBspreFbRWqNVyNqe3KjZwu76qOlDXjR1FC7LWkEm8vpblXKk7yGUbvXga0ThTi/adU0oAunBqF0TTTYvHsPhNbKWxI0v+WykMkKJZlW2jHbryosxbRA3LhTCRlYME1yk6bSOFI/dRpcsE05bfektAUyhW9XU0CgMllWlY341CqSRvvbdeIP1pQE1KHbr0rVvLwpoCjeb96OjA3zcxqD+tYhTJJCJYoozmrVycrBuvOkQ2jLWVtGbje9ERI7ebhSrlZMvPNbS5o2AfMvzpFPWmaRyaUplJWiArCzL6vepVi/Ci20qNQoa6o2o9qCllN+lbJFvQJFs1TSIx8Sy7BHbnTXOfbt2KOxQwMhajqFNC6lwG9hqals0EQEaW32PC9NC0GERSAjXDyEftWGURupbOnht9KJKe5t9DRIJ0pWKRt41OutFIXc3ZJPN86G2M6fuKIdQbB1NwfmKRpXtcItQJhp5480qJs0tagJZzazv5bUQXc37MeMLABm1UtmPIAcal7rCqT4F0Zr3OtDOb7GolmSzeJd1v3FfC1xKyGz3uFVuNHxAU9yNC1MY1Au2XTWrvANjVPPLF5Q67nQU8qg+UtVw3NaXS/iqJw4JLM3m5DsvKztoHXRlpQCNFFMUfn/NITIWtReGaRw0nHTiBWKxCu26jSBT8gKdIkdrpEzZj7mokkCeJlbzW4nnUKhW2sq/r0qJSDVk0uzV/dxXiylrZYxw9zQvGiAf7FRRm59IqJdKVB/97FYiQDo1Wlbi0gvTkSSVLIuGvZsrcRxpxMu1WXzdaNJsG9TLiIdLOutFYpP19qGV/U1TAONxPV7Ubxv6aWw8tOR0agsgHzrBQH3jFQLC3OLw1j1SMHX+o2fWoRNAdk8PiWsSwJ0Kd4QP/Dzod4KCHMviT32ULvqYm9a+mgRLh/C8JXXqDQz4SXSRfQaijTDugCOmy+u2gRQ7IrxJ4pJW0SMcSxr4kMT8TJBZE3chqJGawKvrdLcvf2NYrF4SZLoHha6SC2oaM34cq+MQSo9wrRN4r8QQGrEYuUbbiPL+Z1rApI3qlcsawileSvRkiPJlpsNLcZWSVAwYexrRC2xfLTv3wRXfKBZVGxT70j3fdVPCbjZ+dC6P95u+Y7aSzIDk03r05V0bMDTCKdBqnFW/iheJFLMtXKGhRsONWVeDLsYdKRu7IyurNfMp3v5FFVxUS6t60O69ELLC2jL+RFYeWN/OyLo3O1DEajwvU7ExeFouh2mwqMlZBnj6g8RQqJpANOQU9TUYlt9KASmUoKQyGMZn6DnTswcFVb0twNKVYGxWj4CNa3l316UQZohdP4oX9NBvwqtIHk4LwrKiCgwhbQT+huYpe9w7+GVNoYHzCh32Fm8bhKFm7PLoj8V6e1RNIRvZdg63qcSYTIX7naY+qmtrbtaPa61vKfEtbaGxsobqKK5yLrxK1opNmUeU0LDzBedHWtCpo+60CYJd78PWjp5GoBqFrU/jHYKPgajcWpljj9X7VsrbTC6bCaRsNMR4F/0pQQrH/Wu6zx2Koy6rrUzASvmaPgaJyxNbXZUSljc5uOu2ncliDdtl77NaAZ0a1uh20QU2/PjTJHHJfKtBCjLkDMu71qdZYU1T8V+RFK8WBe3eyq1nawvl6C9RJDGllmljAzyaG5OlRiPJY/5Hr12VLdxCPBlOrcQKjYo3BW/etGE2T2U3NxRzwyqDyNjqKV54ZbW/DzFRSrKR4V2UWhYX0bXnxpmVymnHPrsPKp+/eSPMxGxelTIrWGRdua/Clvl8tJkjTxKv5GiRHJ5etbFSmKkswP4ripkjv4VLNa5obG/KjlbZWyJcqt77adcQ9s0oZfBmudOotavhcDlIDK796VUAVKInixEDSxOfGCH3aTnly6a8DQI41KwU9kveRBdEfUVhoHVWAWFWy7b7AKiKM+vi8g26mr4mCDwALp3g27amgwjTTurI82ZY1sCutYgT4mY743dOAFKqoj5JFDao38drrG23MzWFhtpDKYn3X89uJP7Vg+6RuEUNI34S60F51dHJ8Mg8tSGeF97gaWKJoh+nCsIsUEW+/mqJ+OXMv70mb1fiqERIlvAv50llYZE5t70usIysp2qeNMHivsbyVoL6OjajrQEmnibj8xT+GkUnmRY/I0r4xHQWlbeXpenYxbGXj7dgAY71WPdWZnbp5a4NaNaBiXa3OhZwLll/WpllD6si7fY9ajpLLzWgUhoiFzp0b3oMG4rT5mIp9TwHloUAijQLUrQRnzcatNGw3jvUe9i4q21acsyb6cfeivYKCyO/lblUMkCL5s11boL0jAJuL+/vS2RBlCtUPdP6krFCdOCN/BrAGNvO6bfnT91HYNBKW48/lRRPi0G30YpagZMZF4cX8PfQtzsKPf8Aw2TRkb+5BJ6CP0NLaOQ5cHiuF/QxpbqOwRwIL3lRfEwNXcnm3515nCVeKZ5+8iC7b8DcUiYnGZQHnygZ6wwZuAVRQXtEc6OSFi3mW3MUrYaYWbL767KJZ0a7M21r8TTRy4HD2/qEXVlCkEMbjYSaKjz+9RCN0GVutSMgKk6U9yviRvUtWjD7y2/tvy9jUISBDqnOhZCN3sf26GgDQPfYPxJ1jO1flSlYtjTNstWJX8RbnWKR5LeALrrXmNf3I7mJ+OU7U9qS5DXb+KFoXFmVf1rh5qbPJyWn8N92ja3+7ULK2xfTzFR2mHhdvXyNbVqyniGonuX8SNRARt7pQUSKbP15Gnzy8I120XkjdPDF6TRvCupWnCTJ/wC7z8vwN0qIthGNpIz5OoopLhn8botJkUa530Gm2g2KkO1mGVL9BtNI6xCMXhXwhWy2YljoPYCjGWktmydObHVuwAFazZj5f1vWqPTIyyqG8Plvwo5Oq0Lg79ao4t8qN0/aho9Gy0QG4NQyYmLWNvV0/ijZ13qGtFDoGujZgQewXNcdGo6cKN17BetEfR477jUYQyN4XLfpQQR6hWGni10PyqVURyG71+FtlAsI/P8ApWiHWtcu8PTRY93ur6b1sDfrRFoyHZeuutL4jq3vtNSsQrEKjD86h70r4mqW0Y3VVdPn+dFgkmjHh0NSl5Dq3h3aC+NQjHLrV1U28Xz12U9nsSnU0hHcRkoxa+dSbiozKjajXjWs7OS/hpSARatHvu8COdC6a6/vQJNBsv4qNx3dC7xvXGMVtlGepGjlh1jZfK2y+mtQJLdMrtJwGoFcq2yTH8tKPd4BZO9new0OzQ8yOFIih+7Cuu0prob+1HzaLQ0nhSQt7jWsN3sjnOzquZgo4Dpz7PaT9rUCyDeqN2X/AKr8Jo3xOJGVn9N+XyogEbtWH4fV7daBLEWX89lGtmWhfWh4aLBk1DemoGYHY+xv4NYhTI+xONGhcjsYRP66lDMzZcuw361CQEY7352pO7TsukSbvvRkkw6i5ZGtr8uNTyyQA28W3XnWH7qRdGlzX8XEmpwEH4tGp+4mvvLuN7igytmtnXdoloX/ADoiJvyb5UAMu7/NG0j+GNetOS8z+Jv1NKyg2KldvECpbxE/3YvL7ikaZUvZ21HQmhIrSniwVE61EhbarsxNYQoF33TX8qsFtemAgiNr/rSXibVlbULzoWXilAhqEd5LAmVR+/CsP3mLzFhL+otSt/j6ake3FW2VEkxkSzMm2M+1G8g18FDuJw3iQMVV2/ZqDi26rVMsQ67fkKfucADlReMtqxTws8YSPzKi9BSpio7bYrrUl04I/irDZb+aFrfkachG3Q/hNQrMg9S3H1qFVT0sqyL/APUDWEiLr5sK/cv9DdaSf4d8Ug0ixMqW7wel7bwqBsB8WQqZ1TdxCjUMOB96gbFYAHusfBf73D8Q+XpzqcYlJVv8O+If/EJ6G/GKT+GqJkaktHEpLVGwjsZC3CkQiJCyS+Zc4JAJ5dmFSafjNMLr8hU6kNwGGQL+lMcNhJSR3wTTT2FOshgfMjFdGtsNjUpSbXx+9707RlCFeXpwNT/1RnTIVXe/KsWkE+IiIlifUvfYKLaksy/vToJ9qqvEcj1otHLE30Ip2lc8ajeMONjeYVoq6M1Ayr5WrV33QtDp2Eq8e6y0F2ZXTkadjh2bMvYfDejqKIV/OvWho2q0piQC+VfMp437Ac3ZIvjsQlAADscAsbOir4azkx76/vRsG3TRaOOTwPb9flTEv+vJq4GhmZhqtAA+VVoiOdBbD4n/ANDUl40iI7qXVcx2H2pxBh2BWV2sbIfLfX8qjaeS3919NegoWVdAtbj9hFbrV8q3hWpFDwHRlrauqN+1b43aHYaNsTDs6ihZhpOnXn86IN6FmFA9z5qFweK1uvQIIo2cUaFcdDQ8e1/w321MrxJby29rCj3UXBfbbQTu5xYelhYfWnS6xr4tfDw1tWWRJfCgbQkc6DCUeVtnv7mo721PL50ofETZc/63/wBKeQTm4duGv+9abKhJBTizC5OlJdp/Cp2Uq52BVlex8NMgO6Qq7gF9LUC0StlR9v1BoqkhOq+pfw9aLC53BoRapEQR2ZU/mkUxYmAyI3lZgeB6Urd/kuy+ke9AlTxpA7nTLmoeMUfDSKjBbZU3r8qFlUXYdKDIsoKlW52vs7I9ZYQE4X1ryQhQvUDZV0Z92jHEuJZo4mdwvesOFIJGBy72X86DA52OX86IiQw94/VuPzoWZnNl5cqTPNI9lWnV5sBI+Hdl2cxTtE4G8ulDUdgH+VCmZ2oAigXXiobLSEIeDVDZES5K6DTrR0gGcKV0pFhO3vY9lIuIRLGR/PfjYcqizZfE6t5lB2EcRQVBhWfIyrq99bD8NIHY2yjj8qFj2ASYk8GqTJCfO36AUrFt9383SofHl+6ZditxuKa5ahZnNaAVq7CiyYh/MvOjdy1y5bT53orIjapxRvlSqZpTqhXw6XP0oKy+ZOFWQoNreX51OrxH62r+1Fv+/KpmCweGJV2M19SaW0k7iCL24msKDdlEF2uqqOY6i1LZSjdbUPf5caKxIN3Jq/z6UQUpfGBq3vTllkTe/g1GWud7hSZlfwq3pFTd8D4rpSmWXPqnpYDjSMEO6V/aiWdDdf8AWiX55VtlF6hgEZG8tT2UcY20YVdGYW71f3FOHDCyy+qrTOu76o/nTvJJK2TN6aMmSEd3ni1C2oGDBIMqBt5qRrjcb1nmK+9g9a1L/TrHbuoH8TPfrURfKMulSvFc+WgkvVlsfyoSJ/j4qxuRjwlQ/tep4cR3fiilhl+8jPTjUwgx0fgTGKtllHokFQsuGkPeS4JN6BxqJYTRVp3H3GK8mKX9n5ioVJ50NMoX6kVnVDhO/lt0C/u9RlXlL/QCie5lXuhc/wBuTZb9CKhDsEAUtw6Utl8tBpcEkhKxlrLn+WtC5vSg91vcq/8AdwoIVeLHTXnSeLi1XzGnIaOPJKv6/KhdV29Kis54eugVZG/MULYuwKr6as0Mosy1qtXDcG7IhER881Cxp/A+jJzFeJHGjcVNAvCTYOK0PYbE7tH7xN0/salYRKbqv7Ui6N4qgWORdRZqRY8np81aA0vCgQwokI4yNQeZCgzc7UCPTQ+8Te/FQH9ThF2euP8Akdmija1NSWQVZl3czcjpSIABlZaN04e1DxcD6qACbaVUU7FXszmEkbn50vgQJlXpao0ib0JsoENQ0ca0f8a3Sa0bjR1rQim1p0ZMQPFFxKnnRvhZtUbtJB4UvhBoby1oQaN+dC1ATRNsdKDOp5NapAi28SkHxdfemEq28fMtqdahfJClw17Kt+NCzGwb+T+RooAdP9ivFmJsGXT61KURsviXlXfSSLxbd6G1Isch8OdDu8r9KyqcuVwGzMW529qzRufCytqNeVtadjMFKovTYPlUKkvs4DTS+tYGWLTwSowyyW22txNYtcQI98eZaco5uv8Anb96Yx0LyQHPHy6r86zxpKi2YNvXFipp1yndULryNAq+ymzAmy/60rSiVco8wHOp5Cr7GK7OhFAuzmze2tPburN4m3rcKFkYWzDrqDSqiINFHTZUaqsn3jL+JtTQIkRqHfTQLezbVY8F6gAVFkxC+Fw23TpTiJ4fDI3NDcHSpVkfI0f42XaCTS3eVbJy607RZ/Mmn50WkmlXvddSzCjpagqeLIfz1oXD6rQAVz77dKEWVyU8W0NqSKHeZNf4pgzSWZmC215aUNKZrOvjVl3T06UbRyjxelrUe7aU7xXw0yNG3PZbpShQ2ppcjroHWoRIqcU/ioSkvNv2p1bNr4abW3GoUmVNGD7KK4ZuKts+RomRCbJry0FFQV1/yoU6tKqhbt+t6DFUG/wqzV/bSluor5otFo5F2OujfWpEkkbgu36U+VXuHXiD7U7M5GXmVFG2JxH+yaNy7ZF/c0LwYW35a1mdHGZYpet9Vqe2Km8EbP8AQCiGUDeajenDMm7/ABUbavb/AEqYra2TMulIy+PMAq73tSsDSKC7cazyr4WddtIpMezoDrSd4Uod2+yjG4J3GbwtesOrBwwZH2L+LrUyGdbeHrRYK626A86apkRJUKurrmDfLnSlmdrUbLFt/c0QSutFc/mVqhVZttudAqw3lahcfYNfewvtV6GKLjYjMPu/8WpkZZTd0fwhmHH8LfiFZrL533vZv541wUP8gwNWSOPBm7toFHhoF8JgIWtLwcnaRSWLjX5bPnyoMAd1v44H2qY4SaKCUyvk7wzOd1ADu1E4Iobmqqu81KI0Y3kfbl42HWkKr/sChQ3biPq3+lEkjWltLGM00PG3Nf4pAulwpXZztQAmXb+OkD7QVb/SkL9h7MojiAzM3XYB1pAmKife9aH9xTbN5aN8PKaKvDOu9+hoa8a5Xuy2PYfDJvj8QqySMuWeLkw4/Om3tGpVL5sqNx9jRXx2LL+9C6n9aHiG7S3kXe03hSWSmjxCTrz8SDitqXbcr6l6EVop3qOzxBeh4e1Evh5fGi8uan2pei0AQtKuZuWgPyokCjw0ak6063w33kS8wTqKFbDu9t70QL1qTQJiNbw1T+KFpEqYowFnTbma+ytFbWnK8G4/lRtJHqydONAs+zLSMY3cBG5Ny+dTYeJA3hUv4qxcb6bFWse4fYUSEtb3NTzstrosS9SKw04ijLBZS378azFPKWrVDQVzksvO3KpUEreJw2wU/dG9uA+Yp+9PNaRAQbl/TpaiX/wqJXUHUqurWoMwkHgC8jxoK0qopjbMBmHQVtUJUpNzctxBrvhGDmyDXZbaaZh5RFLta+vh6Uud94Kra0EdiMiRN5Rw/PjU9pAtwi8L8KRxKTmLDd06GkQrLuhdMza66VGwjXeb3/SgAjHLTaH01ITbczU6p4gWDNw12CmbvEGv+lbw8Te/8Vh1mmtkhOWypa9zbnUjEPq3+lEpKd1/SedQrLIw1lXaj0bOP7Dtx/CawUcQw48bKu81XTK2V1bysdbHpyNK0UoH3sXH3rRkukUvpzaG4/3anSDHRRjxLxJ2BjSO0L3uU82mwXrD4GDFYTJ3C2sWTZUoljY35Zb8OteUflSB31Vddl6dSHGZmQWGvKjZTvf6Ue8C+Fa4JbrUpkh/Rje9+tFTGT9KcBQ3i4/lSeHNvKN35VqiAXIX6XooqZ8iqW4mnXqy/wClStHY/wC7irJIm32oghqGppVD5uFa1mK+lTb86wsRZNSr+KpVw8J8LKq9hofOi88xS/chgLnbtp/6RYrCLDJ4dvGjpwanDvxWiABWZifKv8UjRyqoz3e9FkINEl31C09oIPN1qd4sNsitrsOw1G0cCDJDe1/fSoVjjw8Ld82a/etr4gKF4zsVtaCv3bhzCQfEBWGeXBI5ZJYvGY169KkSSJ9jJRpFz+bk3vWxdE6fThTsZx5q8+9Vk4lPL9KdTLItyq73SpxDDfNk8xpzG4Uq3HPTKsbP42blRiaAjQrsovn3mfz1iIp4cODkb18s1LH/AFAbTJyokLRcxs+xul7Utu8GSI/qa1BFFHZzlVG2350WDA0GLHz0e7mHnoIHiuVmReJ68aHs3qpw1xw8vYaNgTSlnPloKpVbMtSGSIaKG2W5VhW+9uGiDnje+pqaXA4OCLuzE+oax21A5lO/Ne7Mf2FT/WjE5QZ1X1EaikRxN4xFbQLXwOCQKQGa7/LS9fD4IOS6/wA0jjCnwuzeBfkKIlifYya0MkflT1UbKi6LQ31Eeb53qYpPF4tW31NZf/ukTf8AmWi4caMC2l/aljLt4uvypWL5bJla2VutFUJ81CtjC60fmV17dtZ5MOm+vppQXXcb9jQs/FfTRXKPxa1sNCiCwp2SRxdUyXzW52pXVA11Da5b9aF+DUSjKb/60bP5hQur7GpPAu+F3vcXrRiNjfnW01oEFlNG6Sap+F6BFHsNHU71DNJatwGgQHXMp6ULt5aBDCrWoWvrRtGgF/npRv6SaVXjfRlage731b1X60fDfxr159guyUV7nlx+lFohqWYtbZUKmFzsbXI1Ioj4OmjR9V61LZY7Zs21rbCedAu50VeC8qaQy4glpJV4E7be3ChcmS6M3kQaKoHQUxdr3rjQsRQYaeZuNNYGlSVQdj+oa5helAfi2xVtspUJVspbboaAiG+Fze+oFSGK52tt43qZWAcUimRH8EvDmbfvQsqLp8qURRHey/PWsTnUtn1XdbrUoxDyIbsy6Rrs+VRtiGTysb32mlOHk7zKIwuw+3KpWdnY7u98qd8qLaJfVrxrPAq735m+2g4PrUFfc+9EtxWo6YuZFzELtpO9vu5W+lDIU4eZr9j+H00fEv06CnMTB1bMGtR1bzO1vzrIWPJuHCsoxmtvUwGmvWrvFe7K2oo3ifRk/VT+1H7uUXX50bR4jSf3Hmqe4Ln+lnblyqHuTBZJU6Wsf5otJCPJE3ja+wr7VHdI07rd3tu3rW75a1kw33T9V8pof2qRQS11X2qAB4t51rLddcpalUw8fV8qyiTapbatRXMY1XZU2HhEcZPczKdTY7BzvsqJQGQhmXea+zbsqHuwGurcWqYd5FYOnFlNgG60B3gAs1G9jlosEMd1DUbji1SqM251oqF/OjvrarhgaFCsOgK7W9VNpcsfny6Vt2K3FqZFg3gmqlhyFTOsAIs7rqvO46ViUwsI2uzeJvYc6hZX4zvv07Fz4rlrmnaUJulqN5JTlT24mjw8bVrJK1q3UUM/+RqNdGtBpq1965pWwb/VfmKw2TymWPxJJyINGySeBvY1jDhXc5niOqPX3OJXUxN+o5ihndtlEljWrlNKNiKRgu1XqEYh3uHEi7vtUvcRoMzK/lHTnTs8Y2M62NbGv+VASoTms3A1LNGuW6L6W6VN3feG7v6qiUq8e+2rfWvIxFYER6ZJ5Qt83UnhVlSFLAdKu3tSM+njZaRpRelKzTbOlOMQjDj4fenAYf71qMFfS1Oqxm5Vn7cMksmJsgdtqAa6VkM7nNfl0Bp9m+60BKr09lvdVp1QDZQYJM9olTa1uNqhtKN1W/eolRjtWjanDJwLIDpSxh/UsS/xTs7c2r9T+1aofEFbXKeNqvJInFm/ICr5xtVqNS5FbzVqQPEvqXmKsyyLa/pvxoWkRrGjYHzUi4e68WvnNr7Oz5fYRO9W+cesGiP6WZwBm2LVklkW7crjbR1jNwrLpV15xfx0pwjxC6r6l5ULhBmVfUa0C6f4inU28q+X3p2MwfKy/vRUufL+tG60KFSsVa1268vahcFTfpT3Y734afuyEJXjduArfh8L8+jVwPaaBLCtHq7LDcp0B2ispuP1rUnY1aDsPgNf3VP5VoyUQ3lzEbtAEje6inB5UDlNKXjbRlWg5hPmZSB+dG8cu8vp61s8reqjdG3G9VAiKStVNCtjaVsor38Q2+ocq0IojOopc2fzcqKiI28e05eB/WtVbTnl53pFs6b2X86IikC7XbjyoLdSfF/pQ3NF9tlQd4HjPm4Cl7rIAUX0DpaixBv4vVTd5O0YPHjfTbspxEr+PxcgacBy12BXd6+1MlzJmjZtbtt0PWipUKNmmX/Zo3Xzr6uelZQNjKNRrTkp6fTTtsvd+JrKWA3jy5VBP3D2cSrCSq361KskUqXDX/I8qBLBhYN1vTwzJOpKNsZehogsDegZZW8TxeVRy96GS7XVV8tXJJKqzeavA23Sgvfen1+1C+Cl0lb0MToafWM3iYLeiskLuHX+OnWntMHVomTycaijbFREd/E6Zr226ddbUFgkSZpIMi2SxJbIKdiJJCfFszHWpllSWMSJb86F45BkdW5GplK+ZaNa0pFaGRdG69RQNnBDcqCsr8GpVAk0bMt9u3bQAZtlZ0HlLVB3gnUZpPMijU/Kp0iz+FVbQg2vRQJFdrvpQjkdEykMdGqWRJW/u8LML6e1CXEMniba2nYATSrEnFm2URIvOhTALU4Vk1aipMRyeKlBqNc+2/KizJwak7sR7zpvNWik5pGagxIUmy8uNC802kat5Vo0LxYVdOrcKe99XDcXoD/GrK1OxgfxW4VEMRMMklomuMh4k8KBU8VqFXZNxiNVvyNRNi8LbKCu8g686KlXTMq8db20oalD2OUCCy5aN6DN/jQLIDqtDUOXLr4brytSLEQcpqxo1/egFvlwqzJm8utr8zUoQnVs1OrB+IpDG4329fKmYB9/+KdIxtZ2pO8SNbNLbZTd5K2hYL4mrFHDQFLx3axYjaKf2lorI+S6UChB3WpSSTQtM35VJr5mWj3qXys/UVlOH0fP+3v2WJSlUjTu15W/el26sG5Ud7sH3g83Tsj+64daQiQ0lju9GqK8Tb6UMoka9ChZ01Sntk3H9PT2oqP+0i/daG/vftQs1P4E0WixnicZl5JY60PAPNWi7KDNQ26MvpNGzLWHAjNu9UnxfKnSQbFRdoFMI5aBkXatXB4NQ8VARJyXpzrWNvC/tQ9m9S8DRoUeNW71d5fVV1ZK1Qrk+VFpYpBmRunEHqKW/wDvlWsDjLInqFWmiNnW/mXrQUA+UcB2vbg1aCtKKuSDdfTWrru1oB27wrZ5hTKxIs5XZfpRuy/mvZvUF00WgWxQ0QN77QaPjUVpiItY/wAQ5fxTaI12qHKm1mfe02Wo9F7TZ+tHShRtTsJReylvagwYEBeWlIAG3m6H9TUryOHOr/oP2rV28IDeHZQYRDQlvF4ttKoVACruozEa6UgQsjLW06P6uo9qynuwLr0PGlMlvLx01sKjDeZT5ivKpLTa+bhpcEcttATILmNxplYX1/OkVpPMA2tExlxluy7Fpu9klbKzFd0fzsrOikDN+xptnq1/KobKBfInmt/NIMfhJF++wrx7OYZT+1Y4/BviJOuBlb7qWsHJgsR67XjenjNmDMQ/A7BpRB9KkbwpGCsbKx81IQue7vxtxtRjXCUSVpw7HXwg+GlYrIuV2/mijw7qvKuZTGalzic5mRYiF1vbKNdtBgqAjI62y8wQeNTGMNGTI3Jf/wBdf1JwzsjZ/IHy+I2oNEFcJKma/ito1QSRZt1mXeqBpcUYcuGsuZVY6G4oKXQWDNyqMqWF6Ki6bzcG9qXOwFgW4W2WpbqeDbPaiyU4aQvqvEdaBK2BZWoRlguyVtKGo8LdCNooPuG6xc+FFi5A1blwoIH13luOIrCySwtct4DkYUhid2uyen61E0scgG7zpcnSjR2dgunL1Vni0+7ReJosWfSt8Pqp3l+VXkVPRUejaMtJdBvr6l5a0DrW+wzPTMkWGzCSVW3hWxvDGvpUdipLLjsrP0J1H0rWCIWV1/M1oyC1efjXjZDfw8qhZ1xHgLr5LGvHDJyNqzyBB7sacOF2rxX5U74bEcHiqH+vwttZ4F8a+4prilWRozutUeRZH4bFvsFMvfC+VCu8uoNBcLittl3H/g0vhDhsy7rDjUudImOT09rlFVLO2fLtqZpWfZbQUjIq6FqBce+7UyRCP1VFHi7mwOei1+KsuXKddgqFsPHLpl9dtulRSGdHtKjebqDwNTSiFiJO6bRl9zWw7tHReDUNHa9RhgnA0WzsPEW8lP3vHOF530NSCMO2+d3WiCEGrbKf7viy1ml18u2nswoqGlGV29Q6UingG9NqcBuCrtqyqmwLQvmP0pgw6eWgwbygbPeiqyemghLDSkssepvy6UEEqi3U0bml3qDR+lvTUqxyPpNEzb3JhT6SJ41zXKt17MxNtQvEdaUBV3VWrotJqd6j4KsVrR49f8hTKRfL1qyPwZWomSP81oqRQBo2xBHdxfPzU1pEsV/FzoWmiF4m9S8uyKOWRZgGRttjROHdC3gmbfy7cp6UQGTRv2NCzLtb1UeNeB0A91ei2U6t1NEiive4c97D1XYy9go0L3pWbiwWh4aFE94Dryp7XOrfvTmWMbrduqNSUbMKACsfoaN0ajoa31rdo0Okqdefzo+Mi6/xWjCt9aFZMjI26uZ2YjS3K2nEUOjVxWhTF2DDbstRBLKDmamIjBNwNL0QqozEUVOY2JtcmkiKgm/hoxqVRSqEWDHqRwoAOhYG1Mb3oBED23QGNMU74ZrAcDwrxhgykMN03uCpp79/mze1ZwdQG5CnkjkKeBkOinnTDFlUBWdNHXZQjDsWObUmpLkVrWU3uNRSDPFuyR+FhTHPiBnjnjFm2+ddjUBj/wCgX7roMvAmpf6+B8BES0yBZFW/g1G1l5nhRNnF9akZ0hBEa+m9DvVYX1FJkrY4NIAPNbzUgK3sOltlHQozRt6Da5+RpFMsSlBKb3uNj++lYmXEkKM0u1n8PGorrELgPzWoHnwowqLPd2vIX8bm17bX0qEwYKaJQsXpI6knjTEQR/mb/tVgDtFSFTe624GlJMkIkc8zSEWF6iUsb2biKOewvalCi9PoguKmWSIKBGoSxXnc8aVSICFUDlalMZDmTTmdtPvGwanzLHotNqjKoWozPhnF0tvJeu6hVNAnQU+d9De1auHuSK2tYVw1pdAKBcqctm2WokJHJ4QDwqCNLgFmZcx28K7nDmIaiJMue/E241qVNLdEawFeakjQg2DBQTT6zeAmtGn8UjUtwNAtaKXvQVlwMZWJbdRV0zHVW1FJ3EqC5yaqakK2F686kGhE6Fr/AHq3C87UkSfehGCLYEGnMakg3Q60e+toJQLSfP1fOipZW0K9g/p5z504+4qLvcTF5kNkYfrRsgbZfle1L4SlFVMMgZdOppAY3Fypq14vAxO1hw7BQiVHa7MRdvlROIctYZ6AVXF8tX10NIFZLgsPNUx/qZCpVvKNRwq2KnG45Augvwp1l77xI9rsLmoMNizpllZbP8zxoXhkF+7fhenJMalhmJOnK9PkzgkmgjYiYNlZ7gXtxtUhHdgkDheh43Y3NLrunkdajUtlDFrak0SLXuV2MDWYkr3hJpCpnWwblVyGqZkl4Faa7KbF+dbTqewAniOBFKVvWjpsNO6HD6k05kJ1JolSARddtaIT86KaAKL8DfbWUtodBcUMpH9y/mqyyImfpblWxhXGtL0glINtaUori5Wlu9MfYbBW6+hqxJUqb1sIvSIvQLs9qNOyGhZwu9R42NaMKJR1Oh61Ct5x4lPAi+ytpa9ugoqq4WMMi9LXa/VuNAKlle3IEGwHtQVbCtvbzo2YcaysxIAt1qwMeoPa7RsDbMpsafEma15M9svyHZtTUVtU2pSzjYeQtfssR2XBXjRs1cdPnzrahtWoXZXE2NKDci4okxvqOlDOj3DLzFHMoOhoeMH5VsPClRQoJ2ans3SdlHs//8QALhEAAgICAgICAwEAAgICAgMAAQIAEQMhEjEEEBMiIDJBURQwI0IzYQUkQ1Jx/9oACAECAQEIAFzX2rQNU/vvQ9uxP1Uer9lbj44gYdvRMBYCouO+1Wpdfh1C4nKchLl+gZcwDjmcejKA9ZgKmuoEBhxETgwg5RHMRrEHuoIIRHcAa83D8iXPGy3hisGEyKVtYw+oYIRx5S+Qola7UbqMpU0Qsr/pVuJjKHFgivQBPX5UB2Tf4N8ZEwn1cEuv+upUoCIt7IEP4kWKLhsULHtVd58jDtM0DiBrlz4hz+T05CgkhzfrJbtxDYOKzGf9lTiIwmIwH0PVzYlHo8QRRdOBo4x8GYqVxjHYGVCxBCIeLY54jtzONlisGHEkfyLXsj8Pj+t/irEQqHEOvyqX/noAmHivoYFEVQPQy8moergs+iaG+VwURK/Ii4OpcH5VPjVRQdAD9QQRPjWMjDYx5CDTK1wQTPjOTGVGDDwWiAbqcAJlZQNsQGsJlvseiLExXdRYPwFGasWwo1HTkKmfx+Zo4kLpxZXUahWzyGTCxyDIvlu2NA6YsoyLF+w4yqM1XuvYM+MFbHX4BiOiSe69gXNCE36AJ0OAX9ix6HrjAIa6IAHUHrlZoR3s1FAr/oA/AezD7KAx8R7CuV0wIaOl9YTF/HI54/XHhZ/s+XAGNwpwiNc+QT5VmIWbix3GNbOPIHUNAJUHdT+bs1Sgas5zu5kcrRjJzx8xhychUCgx05qcc8XEysbRhL5j0R+IF6GNq0XTl+dXKrsn2qXs8wv6fhUBrs+YCaXHlbI1C67jdGsW1v0i2x9N8mMkjHmTIaBFGiPZMB/6auBQI5IGgY+PlDgP8+LJMacYOtezBBCsyYuQqDA/9+AxUW6K4wJ/zEWwDnGUgvjdCPrfp3Cx/JTqHzaB4v5bkGj5F/VvkWorqRxAwv8AKaxPyEUfaxn8jHga1XMOfOYBuwV5iwD66/D9oj1MgFXB+Ci/wr1ZP5kXqN4Yv64/HyobUBj3U5V2NQbicV6v0+Jcg+2NSmjft22WmMUv5X+FeggHsi/yqMP6AIIROM4wJWa5m0hgFnV/XSupiZmUXGzs1EWRRK3quBrdAKYLBh3FsGLnKrFYfLY/lTy1IpZiwt8ZvGgfGHRXvYZbHJb/ALHrsAwChUIlGrn7CxGC1oGXKJnX4H2AfyuV6v0ZdRsjIKXFicfZkOvbMF2U6s3D1tB9QIimpxY9cAuyW/AmoGglzr/tv8OInmBtGG7uHJ/YQHHJcT8TRKWNBRAJVwoTd1uVOO4VBjIa0rchyhRXG2VUWeLl43jjWDYTJX3Vx/R2PQPoGoRWwRyFi9V6H4oLaMhH/RdTlXZyifKIMoit6B3sAR/1mM2PVyry7LQTPfA0i8iDFGttl/g/EixDyviEWhL9D/PzsSoF9mLfsWIyhhRfx2Uni2M/zGP8KBxYxZin1ZDZuYwh6ZgouKrObKKoFF8SN+rY2XsKO5/IU49K56m6og/G4MsETaG4CO4Rx9dQeluiYRWwTZ9CGgaEaL6Uho6V+bs/8Nk1BhMHj3PgrcUEdq0qCP0YopfbN/5YogjGpixhByYty9ggmWPQE5fyIxP7X6EEr0PQ9cb6HoivYPoD1cuPjDCZcbI1xTzjCv2x5SpnM9qmc9HC6sKFCtrUypYsFKaWG0KHRfSkTDk5CjkxBwZh8gBKc7ExZGNg42FcSRwNE7lFDUBmMhTvJj4dFeP4V6Xr2rBtF8dbH4sI+MGBXHQysup/ybhdn1FEEJqKL95H4LcxAs1xYTEBbJstZ9lgBZ/5Bc1iDcf2Q2L9Py/lFjZ+8xsf6PQhHtrGwmxZJhsG/wAXzD/1TIxglwmo0D1pnUOKjoUaIQ5sseC0pxqT9KZe0atjHk5jaDg5EEyrxeZV4nmqsG6ZLG0x8WudREVM5tjxFz5Fu3BiNyHFutHkSOPpWrRVjXEuChK/hXsH2rXoulbH4XFH+kCcBBjECzqCVBQgFQmplbmaGEUIG3F2bi7c+7nG4AF6IU9iHQnc+IQ4yImOoBKnU3KgWUBL4GiIBB6IqMGyGoUVIujAYTGYznU5GK1RguQbKnG+weRgwu1V/wCQMRORFNMBomDfrInNYf8ADRx5Kjf5CogPOUOzkZiaGXTxHDrcVpmvIlTGbEMEVv4XBvfsV/WQAWPQ37Rr0XT+j2QD7HokCDZnUHvO9CKaUzH+sxtyJEOhQxiaELExT+AlAwLXphqIRUHqpUAl/wCVHTkKmJ60crslMFyWfVGoRXTMKor3AdmMLFwljDfoLAahpxTHB/QEc9cmXRy0w3hPRiASpc8lK2MijJj5DC1/YlbFHgEFg+QwyEOXXo+SvHc8TJvjFx3cBgAKxTOxBFP8LLX4XPj1fsH2r/wvj/o9chNmDUoS5Q7irRP4MwUWXcufSv8ASphShc/lxTQl3AIFqEzvXsQe1x0fakHqHUEsmCeVWM8pjPNeLJmAyHEcWS9H/wDx1ZtQ42Q2QsA3CTUyMqrcxZGbswMIu4l3A1nVkbnLFkb/AMrYcNEQKcTUEY/wdQsT1mo6iXiepXByJVzKhyJUyoSLmHJqy3lY85+MeNmBfX+NCpuK1Q5Xd6S6mCuJJoHtl1D+GNv5HS/YPu5cq4q1v0WqBiTNdRWsehBLme7gE/sxDk0EO9TuBR7MFGV+AMuX6r/cKMl2DHPLUXXYYQtMuMZlqYLViGbF/wDstkgmPJepccauVrUJuZvutRPpMrBjranS5bBDY8jp2PJYdKSRONxiQgvWRdYwewWimFTe8yFhMhoKQCZifZByIGBrCwx8gfGx4ydv4yD7Lhdci1Mlg3FNmWYq32HowMIpBjCjUI/BHLdul/8ASW/xVvvqf2D6vDBOxEBA3kNtCtC45Svp4uO7lUPSj8bg9EkHYlw2YqmWB6ub9GFDUYskTLBkj1yv0NQ5xC3FORXIpP1q5xFTKAq2flJEWMJdRYgXJE69MRkGhMRJNzMOnUH++nAcXMicVmJdbdKyGYmJFHycNfcBXL81GT6UwyoH+qkP2Qw6dwO8Lh0BBWIBNDrlyG4fwDj+uQTr3/ffBjuChLlm6NzJMh+sT7LOoTHb7TJ1ALqeIJkQqdqPZnNR38iwUfZUHv0Jfq/QPs0v2bNn39Pla4h5CMNRsuNVqHJC5j53cAFG3MWXX25iZLeMvAwRoiqxosoU0PGQgXFFCFtx2CtaCnHIeOtmMWq5UVZX9nkikM8fax01UNiOTwuY8v8A6EIv9CqCQMaKw5RgVFjiMmj4qgKQtRl/y/d/itXvIB/PdzlATXomJ6YWIWJABQar0xoS7MUkmYkBNzAKAmdradenyDH2Xd+wFMOFT1wyJEyk9K4PsfidehudTPlZjMjBdHBjo8or4UFNkA7QuDLECIY4AizEIMQZYVIO8yclgsCXcW70mBmNsq0KgYCP3cA5Qq2IwbGkU65VK1qjPKoYzeIUBGU8pmxgpYVl47ypxP1xH5RbNiQsGnMIeMxkspvja1FCogVbncZbhte/wr1XsmoWmzAo9VKg1CZ9v5kJuij/AOggzM389ItkCY1pTMPUy/sYIzhBZUF25MNCLjCiIf56fEG2LKmnx5f4YD7sDs5QOjlJmNXfYfMV1G8jVE/G2Kw3FzUyfVABMRZkPGgoti99cWPfC9RcRUxMZ/8AYBk2pdcgn/1BiBsH/irUXxADcXQmM834R9OYaIgU3HZWmMAGD1XrzXulAHGmj/ryCEss8tK0Exq6zCgSwW/2fNyzVMN7EAhRl7uBpygYOOLuvxnQ3v8AG5cLQmL3v8CfRUdy5kHIXLnM3CtTGiN2vBTcV7FDAdTNpiYG5dPiZxtBVwDdzksWv56dA4onkh4tjfjoiXRjZABrnu2y52cUp+Q9roxnsw2RcwmmMNAkTh8kOKp4aVd5f/K9gKF7XG+U0MiJ46XFzcNxPLW/srBxyVlDRSV7DKY2ZRBnFTLnLzw8zFiq51+3KY0bIaU40UUdMxIJA6DWNej1EA8jMTKUfU/AyC1xkkEEqrNR+MoxUH5O55GXjjs+JgfI/wAjBaisFj5DkNmVUBqBpoiFa6Bv8itwrXoGvdy4CBC05UJzJMbuBI0Q/YRR1Fh5UeLLkAt0FD0ZUAMqV/gY9G4wDLR/UlTjetHJ5CiDOzGgPEzZOm8V8Rp6P8TC8HjNdxfGmPALqHCqmA4R386WQOXI0cYtp8PNrioEXXlEkxRZgxioXOE2uJxlWwgEbHRtcncJ/wBNuaCckIKjyC4psXkGuAYFu+oBYiNWoKGoJ5nkf/xJ42H4UqNjs6QA7GVSjkjK6ijM2QuRFZhHxfIbZdCh7v0YID6YVA1/9lwvULSzEVmgxgicBHxXGtGERgVEEfKMWy+Vs37A/iYDDMIxPjPLJn5peML5uecHA4Pj8fEu3TJxFI7+W+gPG5fumHiKHEAbBVdAvxOi+4XH95ctBlKiY3PI3hIAJhz8BczeTkyioR8mMtB/4xZGS5x5H7YCijSuBOVzyBq4AXMXGTBjqLiP9AAi7EdYiD+5AQbCtyGvK8sIOKeHhr/y5FzBmoVYjk4ja+TnXiGDk1ZValfnf4AziG1CCDB6v87lxoAWMGHiaIxCIgHqpxEyeOjzGSh4lWnkMWagg4j8gYDbhY1XrxzWUQKSxScMuQ1Mniug5gPy2BxqwKgYyv8ASBDc3C7MaUYOQsrhqMAI3j8vuXdhpQLWjRmN/iNnJh+RuQOStKqljMCUI4qY2/hfGHFRcdai4/8AQoXozjOpyDdK1Goarebygg4p43jHKeTDGzaKIq9TIaWKRlctCLP5V/0Ax0DjkqxMQyD6vhyJ36Ui9n0o5ehawpZ2lCD7QEfi+RUG8d5GLRRqZGAb1X4MC2gmZf1bFjDtMigjWPIUhytk7DGqBhBxvcxvuoDKiwrcCVCoMXGIq0JnRmH1GQxsrNqeIuN2Ktm8F+wwvYJ5GDKcalIhW5iVa0Dxm2MzZWDUPGzFhxbiCL/B34C45NzlYmTIEHI5s7ZO8WAueZBI0E2PRYKd+bm4Y6Hi/qRF5V9v+0S/8qjFNGJ5zDTHN4+T9s3wBfoh3H/Y16IlGUTKMxZSoth5AO1XKYMy/wBbyVWNnsayMWNzxX4min+R8cH49GZVIPIYn/pJ5CVeh0KE7joGFRSTqA2LgMEHqhLgaXPLpPsMO+8CcsxSeb5Bv4kBK7BAbr42uocQRSWQI2MEGLM+Ik2PFVudxV16EMcclIhYKNt5C1SEEm2w4BdtpRFUHcsCXFGrbzMpL68P9TCfR/C/Q/G/QaEg/gYkPsrXZlSpVQIAJsCUTGSxU4ldQQaMwZb0bsQp/Q7qmipuE/51LudiiiceixIqdS5cL+VlNJhxuv75QVPOYm3UIiZAehLnIRSP6ykTlM+Q5H1iQDcwKQ7ZQovTPa6N2Z8zJqI/zEctKKCiVALmPFUdwmOoGrUuF4+f+KxZ+0xlulwgdwAjZ51KINlGsR+piwP5GQgZMGLxkCzuD/uuE1BLl+v1gPvZFkrUP4VOM4zgCKL4yvpTUwPyX15OPmnIYstiXL3UqAerqXLgYGBpyjURRx8lNHNlLn40w4vjHoweuZGpkL1S4yQ3EopbQ+VsWShkzBzyAYsTZwdlODiYsYsGGAUtxRcQhEs/KWGif6S4hzXCSewL0MeD+sFoT+aVgDGyIdDUsdxX3M2XjSzDmXAKRmZzZqvQ/wC6rlWalEGiJfqofSkHs9T+aK1+A/Bsd7iqS1TAWGQAAwGHx2V/pxZZTfhcMOSK5g5QORFNzItfYeNjCC4TL9CHuPmXHGdnnkJrmviOOG/Lb73ASfrG8dvhLp4t41ZmfNyCxdLF2ZkNACYxMtVxgygaDOW3CTAp/i4b7NIJjz72fIQbLZyTQOQtB5HD9MXkMx+zRD/nkuxy02HKH0Qa9E+7Mv8AGvViXACZxl8ROVy/kFRTDL9BfSmp3BdwMP6avX5HuMu7GI8WLHxst2pUwGpYYUWFezCwEZzExFtkIo9ZHHQxygRUxMUPE+hGyqsfMzGhwiqTEAHrzbY6UFFLHw87DNxj+Gw6Ti2YA5HTjQQQnkbinipMYknYWDGTPqvZ8hB03kk6DOzd8iDFsnapU+IFaLePZ0mILqEaqJjmbxBmTWLxmxN9/VSvQH4dCXL9BYF/wIf7X8GZQp23EC4rf0ayCwNwLZhWvYG5foqegyACvVAyj6EIn9lHuVYo7xtcRgwsD0d6Pp2h5N1jxBe7AjZ1EbIzmY0uLqBeQmVSfsFysJ8p/hdm0dAVAhaJjVZxnUdv4CONmEfKtTx1Iy7byS2NhPF00MT9TF3HQ8Khpez5Kr1k8lmhJPdgRe4G/k+AncCyp5fkDBjDTxvKOY6RP9NCDIoMxZaNjOodblTr/oPtVuBK76lx8nCY/Jv6Nl2CB4+fkKKNWxXIclB/C1/gMJoaRhWiIIVB6N+l9LCKFgmoWQ6OBq1AfVRtTlYhuEMsV2ELFzFxCDFFEAiDREFTLjDQK/8ABjJ7VFHoS47joAHs5si3UORk2MWdC1vlVDjJTBpoNiILjFMO2z+Yx0C5b1cMuDQuYcX9PXvyvGGdOJ//AB/jHxjTHKP42UTHhOb7MLU/XB5K1T5AA31oypUqV+BahZbO+Q8cXIHGqzH1LhNRskyq2RaGPw0TcW7Ih5JkNYmJUGI/E2HA/dAYfRHI2Arf0D1foGvYhgnc/tFxRiPUx5jEe5c4gx8X+cSO1QNGUQCKgAn8qBRCvEXA1S47ULnMoLdSCLHpQVjNxFxL/aZnrGSDKBEAqI1RUAbkEBI0chQ1MrM0OzAIQIWroYtWwUk1FxitgfgRGX+Ai1oZEowZHC8ZhNiCLserly/VSpUK3qBQBqIahe+gLjrqdagOpW9/ArOSVUKKn6mjjfiY6BfsoOvWPKL+1Fhonjsq5MVaGiJWoIYTUu5UGoTcCLVAopgxlelcrpkeA3BCAdEqUM43FQETY9BhcVyxN9n0RYnH+FBQqXLnMlo4BXaoQN5l5LUyoS0RDU+vRVVmOup8vxITELu3JmYjUShZNlz9XBBor/sAbIYqAerqIjPfERVInEfx6JIidVMiXCsxGAQQo1X/ANNenJFGMANwGo+d7oJiIHJrlQmm3YMe2ql7o/r9Sw4GGAADZ8lh+mLK4H3V1fQplgIbr+RYepUVZdQNC8DauA3KqcQy0abGbGPLcVgfWiKhUrDYgh9aE+cq5ER77v8AC4TuD+Akzy2CKI2Qk3C7kaTcvjFzG7mdqWY25NUcwcRsnITNudLhJ7VQooS4LY0PGwDCm8niBiWxnAcf7eRmqY0Itin7EQi42O4qEGL6xZDibkM2IMPlx3FIly4WoQNLgPorYqIQy0QP/UhADt9j35I+tzD3UOhrNnOMBmxZA44kg/qdrosMbjjCCOubVxiOGInzcNF2Qiwub+MrA9CiIdCciBDbdLjN7OH/ABNaMBg9FADYXLWiM0XJumBucAZ8JhQgThKhQGJiKsWb5Q36iCFa9kRDPPOlhEDxQYFvvFxI15akqK8fHx2QC5JAEGItqJjVOvWMBmo5sKgWvhYCTygyW1DIwZaGfMQlnEFyZPkyk3OQGb1U4ypUx7FRHOE2HwK/2RvEcRkZeySIQ7NZuEzlFaExBxNxyQ2x9hC1DeTKoOkylm245LUTERsh6U8smIZ8NTAnxrwiMMgo/sOLDxsbR8oxMVDNe4GMDkwEGLQlEHSMSu6uLjsRcYWUI5CiAm79CAg6lH06BzQ5hPqgcrsJnvtfIMXLcDGB/wDSAeqhEGIdxtdJZ3KMKGV6TZAnnn7qI4iwMIzzw/shmTiAFlACLjIsRUVZc5AQ5IDLnj4GfbN/414LkyDGOIv+nLn+d+IVdQTyEONw8xuHHq5cGJKgpMlBhMbnC0TIALhVHEyeEj/rl8V8fZl+rgPogHssTVFQ/wBo+NLgADUTo+sltYiIwFAK+MRc451FIyiZvIP6YwpJN8SIoAOxgXIPpkwtj7uoMn8i8WxilQL1cZgsfNXXMntdQm+4JsGKFaOg/pQONcGEo/3jBY65v/BlcjQzMBFz/wCjKIHEsfwMSJynKFoLMxLU87/5RDsRhUuEz/8AHZQjMrM55FiM4hfVznOc5X6QMxpfH8KvtksY+my8SaZ+R15WVlThPFX7QRVmTGMiEMrHE0TIG/BRbQQrMWT4jRyq+Mc8ePz606ZUyLYz+Ej7XJhbGaaoDAYD6uoh4mZFsQ2P2xrzE6NQqDGcqdBg41mwZMmWlGJ8SgxerOMFxrEURvvnZCQECZEP1XyQ2smbArG04AHePKQKhygDakZFmTIQ/FgDUAlV6HoGX6EC6uEWKgUAVETgNUvcVAOgBGUEaCAiMjjoMbisYOU3/RUVYNCecPsGgMqMs4xAVYGEDuZAS2sPJdNlwntfBxBwwf4iDMXjk7bEmLCtguxFjJnVdAsz9qgnlNbkzxlJFxQqC25FplYqsGIOphJqgzPFzOD9lyX0rsIM5/qZVMcAiYspxfVvI8eh8mNMpUzx/OB+ruiZVo+R4pxG/QiwQxepuZMfOYSao59ZAQNTPiLCxhI+SChPqRsEXBmb+fZrmJchb6v4uRvsXV1anbEa5LS1MGFVQPPMXYITKU6LW1zDgY7hBXuahBH5X7s+mfjAbiwbhIEKDJ2yMkTJ/gdTK47Km4BU8whhoRTKBhxwJAIFEucomQgzGEJuUIMiobGTOzTFjL7mlNR+QBY0WaphYhuK8i3a2WmdrapicAiZUKPCoMbAIcJB+qEjRB9K7L0ucH9seQL15HjA/fGGINDxfKKGiOORdeV4xxGxBB6AnGCIBdzyBdGNVaBj4eLcw2TgtQZQBZogbOKk5Tx1DtxdnTCKgyW0zKCv2NV9Av8AZgI+MCeWwIEZvt9cPBTbjy0GomRHU8lQnS7U00Ale6g+zSvwq4oC9X6Wr3XpsSNAjobhyH+/Ix0KmTGCDKrUK3LIgyQN+KY4WCdHOx1A1zFjXuKgSzAFLXPLJGJqwY7+xUlRQRS0IK9ZL5G1MUDyMdQCtS6lA9/HuxTLA5qAg+gaiv8A7k8YuvJNq08LOFPE5EGRaObEcbEEQD0KuowIhbdQGZArY7i22OwAR3My2s4cu/GQO2/JRlep47Aaj5eTWcPklDbMcnkmeHiAQzMAOsGSsYWZ0VcZuXA0XJVclzLerDiOHH1VOqhlQT7ZjxVU4ih6A93BBqXYikqIdiwim4IdxbB9EVM+KjyAqcbhSBag9VMSf05XI1LJ9Bqnifdqn/0eNQ8SLLItWoA6KqP4aqZQQxE6Mwvwa1zYvlXmnWoNQH0UH8dSoiZLIVvWLKUMzeOM4+XGoIbfjZuaTzcfIcoF940BEP2EZK3ONC5/J4qWCszY1THrFl5aL44zY8JtsXk/FPJzrlNqDR2mO9sHKLxgJiZm4VMuFlP18QUtHMnyIVj4mQ7glgCcjdjHlYbmPKCbJ4kQ2DBuPkVBPDw/GpyMdQn0FuVLlQelM7lRjUDjjOVnSGA/yGOYwF6sichOSzmonyCYcL5TYyOuEUtns+jPAcDLRU/wkExQSpBDV9R8fH7HE3JYbsgeSvFrg3E1MOThMuAZBzx0R2PejHSnmJyS13cAmAgG1yrjyj7ITi6fyMmTRCyvSS46gi5VrUKlRvG3AzI4JmTEpHJcWQsvEvhF7H1NGKpvbN/BhKkcWbHq18LCeYaeXjKsXniZeeo9hTTu7NZTZqHx+Cc3gU1cQWY4KGziz12mXmalnnxXFjbLlss38DH31Abhr3cEHsIQbUUbAxr/ACcTOOpUyYw0Xf1bKnHoAuaieDfePw8STP5Axjgm2Mr8FJVgQr33/wCoMOxAgUWNCuRV+XKKwYaz4y6mBSIIDUxZSh0+JM45K+JkNH3lFrCOOOYU5Cda9Y8pUcS2OhzSgevR3qL1FnW4pjdQipqEktQyDglzE65V2x5n6ih2rlTY62cRBUsMbIe0zonWbOzdeJkCMYr2m2Wmo4coTSM+Vxv/AIrxg6jiVS/1JXjTbPQY4luIHH1OLjXGFCNgG/Q3NCONwGFwICzyisBgPsyrmNyvYexCKGyLnEVsoDCtCjhwBBZWlFnP5t/TGK/LCl/Yo4ZpjeEcIH5WIUUHmQflE5DGeK46PflYqBKh+Mu4pIiORsLlTIKdvFP/AKlK9HYqMBxmJqaZVr7AG5wauU8Z6mdOP3W7hipqWEExZRk1BGFS5kyA/qIqWY4QjiXxnElwD/TC1dKD/eQ4hQ5Vx9RZMA+haeIobIATgUTKhUmBmu5j8sdNzDMOLqrL92UF/wDxolfuV4ihlItUemGKgrEdY8/IVKVtiyp3CJodu3+JjJ22lEX7G5x3cqCMAITxFlsyHpcoisD7q9lslmlx4wNx3Cx7yfscG9OhQxX/AN94sRczM4A4KhoxDqCnSochTQXGRbF2bpU8ZOVh3+IXDuOpTRSDfoMRMecrOWPL23jasNjIjA1MXcq1qcZycCph1qcTxIAtDR8cq9oXUrYiWCQwxKp5TsWMuUIIrchDjowIrYgwi4/l3HUBIWqG26CgdQaEwhGDWP2ioHahgYY8oQGjM63PgsWPiK9rmCoQA5ysObtwYUqWeUzhQ/FMa83BbHz/APXO63Q+Xi1qMrP++Nv8II2Of+3Agu4zEdL9uwoEH4eQaSLuAkRGMGWjUA1Zs5TCcaCp85l2JREJPRKq4pv+KSY+F8Qsq4MRF7Z82qX1hbksxtuo6/0FjU4GHLx6yOcuwbI1lSxuip2jQewxETOVi+QrftlXGyErjEBgEowaMV5m/a4pINgZhk1kKAWT322UYyBMqBxYVjjapYImIkAiIxPfIzL5DDHU472FselWxDBqcv8AEVmNph8VlIZp5RYZNYvIUduz5nKrk8f40sKShsZLc3E8xsR4NldncRAMYMRhjx2XBJmJRiNn40y/o+N8ZmLKbqNxcbClela9RVI0QPY9svKDCsZApqZXOIiYQ2c2FU5NSh0oxgxwqxeJnER1v9bA7sGfKwUoRg2eKu1fYEGEGeN4T+QZ/wAR/GHKHuxXNLia+sutShMahCSSCz6cUKiYhkXbp8cD/wCD3XoORL4m4rauLsz44O5QMyowG4mPmli2TU6jpzEwnj9WzY72E0Kg1AKYxGs0XSLCOIhXiNoASAe9eqLNQ8VfiTjM/kqgoJtQZ5pKkEKtgmJkZTrL5IZRahHxi8zAvxx+R2FOHGWcEpRaZHQtv5OWoUa/pTBozMAOXFifouQrqK/2gobNmCdwLKqGF66B9OuwY2FMg+6AMKjZQDxAeFhUZuQ3zoRMo6Ni7h4HtsaXLZY+INucmGsgRX/+LwMAyEnKMbjJYyeQv6zJjr7Lif8AkbR5Aj77yZq0qNV2czHSpiKj7BhfENjWtvgUfZQK7B9sGJ0qVKBEUlDRDiDKRF2YMyD6oaftsUw4ch/RnyDRLMOg5U7YAmBgY9r0pJGylm45IbT5CQFPQslDYEd7JARQADDvrAr4z8ZZ1xWzLlyPuMiheUxEtjUzzh9QZjZdhsZ4qWGUDnxi5sqjhMStfEKrNk+yAgXMp3QVipsLk+XsAAayurCoMGQi5zpdYinHi64kUXGtWoK2rABh12plwG4wAFlSz/q5ddTGhZrZz/6Lk8hca1G8nJznjsSu0IUExl1yPygmB1gdYGUj2PT4UftH8jxjcTymyD6aaDLwikqbgIYQa0WxiHHFb44pr7FTcOxUXGwsFlAHGHxf6pDIaaoPQEZQRUTVqYIgAGoGXtz5gA+vyMTAxMBihW1HXi0G4RUKkRwQ1xuLtRIo1OVLUIs3AFPjatUXZyNy5KQDMYbIAqnF9Sw8beETyAGx75TH9Y5Y5LjWVsePYMF/IFnLk1AYkK1Mni/1CrA0VyMuhjzDplYVrLxNLDjdJhIKzyBsEBGAisbikNCtdZHe5jyDjyIzDK/2OekoUzmADFqYPHRE+2ZcAEyeKjPyGHGAahI8XHZfyWK7tW744f7lbGo/8a5YuaDIDAYDfoEjrMa+y4/JOUAGvWJqNR15CcgPrGWukTnZIxqBAI1/zKwCzGL+x4W3KHGHO/iSNhQdfEZ8LQ4zUyYiBzgNj0hr0aIjYyOlWAAidCMDVhSMi3P1NTjYh3iucbuY8LFoEEOxCqcYl/8AHYhlWKIgJBnjl6PDxvuGSeP5K4V4Pm8lshKxOO+SGjH2dqg+KeP+wiaylj4yEpyOc5EIM/5b1UXEHUswO4RTbXIVP1Gb7By2ZsnfiggGZupfHYLltAAjcGaoSrR8JbUTDgT7AffcfzPgWk8YHnzf/k/yHKJkLuZiBxtcdmc2xX/+xx/4ysDGW+yiT4gTQOJ16TIw0weDJA0GElbLJ8Z5LjIYWKP9itawKAZtgREYhSWRwwsXHYA2ci8qMH1HELC4E5ljApOy+lsI4bY4qszeWD9EVHQ23pH4mj6E6MIiCvqa4HRUNClCIRRWFagYr0+KhyBYlRA7TFvBkoDUBl7mNt8HyOuFiMQ4u1sSP5yFRS7mhlHGhEsYSAHAYEO3dJn4hVXydqD6ViOlAJ3cLAmCCYTvbKCJxoa0ouF+XSi9mgDCjMYuIR3GMWUvI5YolCDZocjcBLGWOoZ2IPrGAMKmZaGhg8U7aFHXs8f6U/qt+lRMpU03/KZhRZvqaxZ875+CY8j8aeieltTRZTAQQQvCxTBAmhGFiWch4nHiVIdTgeUCgQsFncRfjaZsRzJxieIuJbAByLTcCv1OPEtWfiIN+hKhWxUrUuxFPMUVBE5UJcRlHbBVgaFQMHIEL2MRZUcTTLCKMIocYQTqIv2jp/v6tRTHfasLMziwDFcBQJhAYm8dMaYoo5FW+6QoOAooRBv0swKvCicSk6+IWKsVHrkQXazFg9KA4mT6d5MpymhixbABb6wZQpiMGgI6DDj9oDcIiirg3uVrT4cam4CcfSkPDjUw+Opj+L/j4GHYwCxMKnmJ5Xh/Yvi8UsU4tiQKtyxdl8nOBwh5Bay00BHXvLjv7DC5YbhYR1cmwOoHKtxLNEax6uMoI3iHGDfoCVLFVO5UqtwkCA31/Y02IBcXJWM4owMwvQYFerlj+FrNwkmD7GGx6U1FqFgRTEWeMW0NhPs2g1sCcXRxkqVapam7+NTDhInGuwzX9cZbjbDcUArR8hOO4X3QxrqyVb+Bq0bvQzE/rPHx2eRwpSljnK1XpTKqWB2AR64G5n+mRWPP+z9jcFQpx2q5GUxHDDR0Ix5mWk70KaYiepZjh3iKAOMyY/6EyMBUE7g9K45ET5RU5irg32K6jIGgUVUUhW4wi4Ddj0y2IlkRlHcv0IfXc0pi6NxruMOQ0RA1RP8A42nc8ROTG3G4f/pVJ2HD3OI7gihWEKcewauYVVm++dUZiAlnT4rUgwJy0HPBuU/br4GgYpEzVVsFIJIxGrXn/wCsd7UV4rd3nHJYqLiFlMt9rR6yKf6X4C4FuKlUA1t1xJsGY9xgRKB3P5OViogIG/IxhkgFoBFWoQG1KAEAVtRMZQzKx6hH10TEUkzIOMVDGYqIcrAaR1O4H5dZE/oxNYhEOoHsxlBNlkDRiyCYzyhIXcuNcAsRLIjrR5Spw1AwGgRf4VD6q4whiHdTIlGACri//GZc8Nj8tS+4ZyO5g3ovFiabWQAIoHjAM9HNo0LPyVB1P/SYCeImb9Z48Eyi2MQDkI/ZhYqgpdtCSRU8Y7MaDeWjQCxOo5PGOoKrePuJ+0WNFAswgBYzExGMzdCP/IhsQKG0f/f0rEiGYxCZl/WHqD9JiGoPsTcyzD+sP7zoRv2EX0T9oojwTsRNOQGidQgVBBB37c0wqUC3sd+hP7P4fQnYn//EACsRAAEDBAICAQMEAwEAAAAAAAEAEDEgITBAEUECUVBhgZEiMqGxAxJxYP/aAAgBAgEJPwDSF/h+m6v9vgTt3CO5Cg/DDZFBxRkNEhpaO/h+t+V+NHsruqdWMHiSvH+sH6gjwfR+EugjRe3KHXIX0Xuq5UFFTXOqV5YQvLkdc0dW+A6VldftKPJFv+rphfgMHjy/t+mnBO0JR4wf9c7cNNYp6o6eP/EXCClzZ4QQ4ohrrq32eDVGmUUUda2zYoXUZZa1ENBUHTLDR8d+UGu8Go2YS1q4+MOGKox+KlRXBwyPm40BgkUQu6ZHzchzmj+a4eQhCBQhoYcBp+QNU4Zq8rLh5CkU9U9qUOCpHzvdEI5Jaa4Nd0SKZzDTKOeEbIOL6YsTV1QaAo5O91VZBWV80OUeWFM1RmkVnj4UUWKF8JQu0oPKF6LlXV1NQtm95DyNcsDQcpQCPC837ph5UoIsHChS8BC1UB5eQ0fDjAUeUGF0EKQvHP0vFCuSwcqR8NGEHkLw4P1Qshdck+l/i/JXkPEfRElBFjagOEeApUsc80m/reCGnZElDjhwxQrPFEI20Y1ZDG6G2buEUW7zy0GqcMIWpktOkEEb7dhVIxyu1+0NYvOmY+VsEaDXAboY5rmvsqdo55GbpffGOFGkaJKF9so5xZDVF0Lubt3nKHKFE6k/FWp6UldtAwFzinVnEb7UjHLGDxUUMXBGuWn4g0zQPwjzTbGXKPACLRiH3QuKSrnWjTE4S/eA4zbaig2YZBswwoLivprjfhQ0tflr5o1y45rimVZDjDCjH0wriiUGsWN9UUHagI8IxihQg8YJcMX6UveiyOf80FFDR9qcMKS5s/dI5+6hoUOMYoKuFZTsBy4Qw+qexin+lPtjc5f2o2YqxQwmu7jkoI8FiwR0ZcKyvQEMcMGsGsPfeMsaYUURqeV2PIaTQdQK41pfx54fqk0FBQjZoVwozhGmKZxwMt0VbakY75JwBhyjwHk0hGs8fCnRnLOCC1+c8nahXO35cFDg++ipyWNUOWD3wwM5tjHJU4hdSornFcKM4ioo8g/RpbxuvBzdSgiu+9i6lWGQaYsozCocEMb+qruEbNcUDMc8VGiDXYq9UNDfbBLGucEo2Qs0tcIOdGFbxrKuNYYrH3iGDk0WUK7hdq/SDDlWcNOENChftGAqCvLkjqiwR5rj4GC4QUuaDZS5XigrLy0LeI/nFdWKH+w/lG/ooI/pAimNP80BBCuzBhZhKlWCN37VwoRqtwirlrFDEKxyg5r/AFeKPI9djCZeGO37Rui3S6nD0r1C5VxXZoQ4Y3UlAIMP1FBeKBQwC+Y0FjqGF7Ru54Xpoq6XbSjyUEaihQeArlhdSgvFRoCrqk4ByoOgeVDfSg2KKsKey3dYc6suKC10KCjRauC1yhikUww7b08+qTV1xXdixplHnLKigoNC7U09UTQdU0emDlGmX7s0aPanAab02yC+0G9UF/zsSdkWU7xyjo0+9P18z//EAC4RAAICAQQBBAIBBQEAAwEAAAECABEDBBIhMRATICJBMlEFFCMwQmEzQFJxYv/aAAgBAwEBCABsQ+ivMuhUPXgwAnyoHZPm/AaK4PZUHoKRDULQmVcr2KhM2GbTNpleD4yc4wfAl+MRhJlmBzN5hMMMA8X4Y0IGuGA/R0bjE1TOhXNHQzG1kGYzyUJsNtP49I4aE0LiNvEuA+8nxqNOuZaOLM+kfZkVwwsRmVe5XtsnoCvYNwh/6e5UMq4P8VxGrs5C3ELS7le0cRGD8QCuy6/Y2GNjhQwrDNx27fCizXlCFFlcu6N7CIZfkmHmG4RxGO3mY33i4x9XFc9Y5KMRgoILP8lyDVIGUZFZQI6kHcqtYh835uNqqzDERKHnPgXMtFHfSPtZHDixt+x7C0r9+CwXsFn8byeibHhlYDgdV5PiofBHm/N1D/hGQxX3rzVSyIHjU0IryjbWuO1y4SYhM5K8+x1h9nAlxaMYg2BifZMWbaLDMEfchVuze0bZjzDYUOAByVd02mNam4GsTkH3bR3G1hx5tjg37HwpkFMmJMYpevJIE5MArwSFFk6h8zVhXGBy3jdxQJignmH2BfCrQuE//DVqgcHsrXUuND4uvIUE8lwOFXJQl35qZGhiIXNB02NXkggy6E3BjMq0bGl+1mP7EGXY+2ZEqEkQNtIcZ2XbcZZWwwcwSr9jMFFnU6cZRY02oOFvTyAgw+08TcT0F85dUEOxUwvk5zAACh5uBZ8R2zoBAvhe43B8MePAIbspOvaR/iuCd9K9TeDN4jG4fFA+b8AxXow5B9FzNzVCxg0zHk+kcYOxlYHmGbS3QwFuxpwKB/p1NApp9h3iiTHRrueopxiOtcTftBU48OTMKY4yF2zUOEWyjVP+iGXUBnfBH9rg6nTDLyNG+QN6bH2PkK9LZFmXLncVFU2JVe0Rci1y7YjLAlwDwBHHkMRCd3sIuljHxcLS791+L8jjwfFe4eLm7+3MYthPqVzyUMfCpgQCUORKnF+R3cajBjFwgheeDyNOQwuZMg3ARjTFHI9BtpR6O0/UW467oorxuBJQj+2drTC+U5GV68ceyoIb+pXvuV5WjCvMVQY7L0D5AJ4h8CXbExnAMOZF7GV8hpVSvaRDK8gyvYPZcuVAfJmmrkQfqBZ1wXXcLHkkQsIGuX4EB+jW01NxXlVYu01KXTgEMPTdbxN6To/O0/8AfY6BxFbdaOrHGdrBTu3QQ+3Pk9NC0walcog99XFQmegZ6RnpwrBwYZZg7h8VLpIBDE7l7VMdrNDHpxdsOPbdRGHZdrP+S4JvBNeD4EKSmQ3EzKQLVgY0siOl8hga4yBx3c5Yw/CJqGiZFcXLhMuFRVylB3DMvqYzQQ3ZIXMmxsbNfpupuVUuHJRqCZSpIEVg4Ksg2ivDGhxh9QpeSE8wG4RYo58DYG349LqRlFH3LtWeqR0dQ0Odp6hPEJ+oROb8L3L58qPhCfAmXIXbYmPEEHsrwTUAuMB/rXgwy2g9lS/HUu4FAN+CJcs/WN/o0DDiBEplNhHBEPEH/GQGMl8FtMPp0ZOyCYABEfYZuoTnxjNNMqbTEcoamTTln+C0G5yYl4IyIe1Rtwn/ACBQfGrxnNjpdLqfXG1kf1AQQABQA8XGPPkgETUaY4j6mPS6sZBtb2q0V77ZVM9L7npEQJUJ8Ezn78KNxjUFhPjKaTjGmweRyZ6QUfLhuA60ZUTb9ggQ0Y3fky5fgQnmvB8dTqd9YtMx5f8Ap0E2KJQgEEK/YHEBsQ2JkDEghWO3mMoYUcqbDXhphNpUxP8A6NUJrkPl3KICGEysxw8Ji3tApUbU75jLR3BSGhUXfh0vkZtOhJzDCy5lXKPIU3NvN+yrmp0pQ78el1e/4t3K9hMBM3mbzC3tJ8KNojmbahNQj4gewcQkmCx5uoMk3xmuEy5fi4Xruy0qxYhM7hgNxCuIXBkfJYANrcPhRNs2wrcoidiZcjXQBKj5eoDFNzU9XCLgikqbg5EQ70gF2TuIPH4T8hMOJeSyD41GUq9RlmAjG9l6uhD/AMdP9hjIrjyxI6xahmynG3sIuarS188el1d/B79p/wAKC52Y3ccUBBHPPiqjS/afJvzc3QvAL7uhEyfcdPsY1DWIUKy5wDLvvGrdrdiGAwAQeDDyIRUIELKo+ZRW5VQycDUUAYPDGadjuKlXKZNpZa4B4a1372i4VOP4gG7GFt01Kcbg+aiD4JKtMiF6odwxhXyVWDCx5oDmf1gGU42HMryRc1Wkv5pps5Wkyg3/AID7ALMVdo8FflMjWa8GdQtCb8cDyfJabofDGuyYISZu4qK23iaV/UFTKdjblKbkDzIm3mD/ALjdVPKZkyCgYepU5lQQkTcIepUyqG+JyLqExbdMNTqn2sildRiubShov1c3A8DDV2GUZ04xuWTluBEOw7phbkiZAN3Awvi+cyJaQ/axCNoBIviJpsWPHuzUDNbu9QAWyjjFnO+ip9mr0+75rpdVR2OOZUrztEoQnbCfJArwRXtx+XNLLi9XACsLGE15Iru/Y9/Q+UrxyJkKnorFG03GNnijNpmHKcDXNQQU3Lhb+wqwrcyIVPjETfCZCTRgEEq4BUIsQrXRHjJxzA+2yEStSSrbtHnLnMQ0/wCH8eIHCrxgcA3AosmGFPiDMblDMibqYZXapj1HNHPj2ncMNVzdXN5PRuZcW4XGQkcZEZZgyb0uA+zVaaxuXS6oj4ODfts+88j2E3FHEDRN9/LU5NtQGzLl37rl+LhnAgh8EeD4VgDynp5Jk0/69AniYbVaIjspFT02iuGybFB4+aHji4rT7hg8EjxlNUZVH5LuwkEtMqDCDS2CVZuRO+YucKZiy7uCTMT2u2ZEqafJfwb4qCrejWTepxMUm0rMOLC//pptOVF4tUjY8rBlaZGYdUzCnGI4XtPYeZl0TFvhgVkQBz5vnyGuAV448JE7h4J8qOInd+NY1TBlLix7NpM2NDYh78X4MJg8GGEXALEIqC2OxdPpQB/c9NajgKeVeBM2R7CYqgxiYtLixMWV0EAKni5cU2L8CHqw5vxlIrlAzzHiY4ymVScZ9N9bk2JwBjPEqpuo1H+M0THcFOU1MTFWuEgrFrdCgvdGZoMjERmI4iDeaiZsmG9urdncFwYrfRqvFAwgiA+bmbdsO3SPkZfn7KlDyfCmjABZjeALMqhCBUdqFTUtdzTKFWx2JcVd3QCrC5gyEQOjR8SwoR4uEebhncqVUK3NNgVBcRSeZkehUfFldrmME8OMZEozcwiEmPDPVKtAQRYVqMsQEfT/ABlgwzIrEzHQWoWC9plTUA0xCtyxFmiIcdsKyJwQdGCcgMytxcGT4zG/y5YGIbHOQKDUVyq1FBIuEU0VwH3Ri75C7FZdRX+ip3CxLrxVdWZYMvyOZQEuX5rxU+NcqB2GXxjXwxoXGNmZzNPyghEVbNThRQPcLWYeIIjlZw3Kun66l+ByIP0BiYwYAO8z4sNBkw7uYuAA3FOX1aK2ouJ8nNxtgcbwbJC0B3v/AFdQuGjub+AYNwyqUPEswMJcIBmbJ6OMtEYvjBgJBmVgUM0+LJiHOofiop+vL2RzogOXjDeSsx8NsYgAkTGbFnYVNggnmL+icGzDvjgVOouVGB2gWIVhWoyPjbfixt6q2T+vN3KnIlwLBD7QPAbwhqUJQqB7sR3ZYzORP/3Uj5TTcoJsrtSFMYwwKxjWOCPCsVNjcrLcdN3IlTHiLGDGQtLg0/oklrWEXFTiBQDMgG0QTecZgzFpq2Y1WM+ktHvmM4QWVZszQ4S/AOlcdf8A8sDUPPS7hKBmyATUY8dA5dG4KbZlyphW39fKx+AJw4gGZtxg+J8kRycGMLEZ2Fxcu96d1CdC9tjctb5aVNPj35KXXZ8SY/RW4ULRMS4l2rdRSCJUKwWJYaMD9wezqBr8EeyhKJirNtyqm6XAYejDDG27huxNiJ24281OB5ZKFiKxU2L3CxkX7GLAxFk41QWX1mHECWxanHnXcgqHIoEOYdQ5ZlzlVJC5i6iF810u3JVs5qBaW56u0TLl3GaVaWN8RN02DJ21q20uYr32nEu+AKXt3V1Kn0UxNuXJp0yP6pxkIKVmLHmuJtscqfGnxX82zv6j3EyFeYdv5TAwZfTbErKai4+4E4qY2OIUlX3Xgi4VrwGP1UInUT5dlYR4Hke6oFiiWI7CXLgMTmxGUgmGDEcpoYNOuCyPZXmgeDqTqMOdVVNKcb1lLaHT8xMqP88eXU5jwjpmyH5JodNe7Ir7BSM4PJOUDq2YWeXXnHjIWiEIPAFcnerGo6AgTIOQIE3RMWJKI/BxDeQ8bKhfaPi4LNZZSeIFqLyISqio+RRN5bokDqERwBAD3BX3W084MBc22oyX/bV8ZVbNNcwgHtMRdrigX4uX5LVAT4KwCvFQiYzUNEe8ewCCEgCFz9bj7QxEYBhcImBABD73NLcTqa9C+meGhiXNB/TYQCcetxMdgKz1HBonKYXP2XJ6UkxD9T4rLCi4+p2ttj6gGYyzdjU7TsVRfJs7rAjLvETJsG2BCeWZgg4drMxm46/oN+mu4Fow2RKqXDyIR9FOBKJ6xYCx3PnzDHwvqBemJbkxVs1AvpqFg4EuX5uoTZi8eSPYREylH2uRMuqbAf7mLVYc34QRwxUhVuuZkyFBYhoiB/oEkzr3AXCQqQnmJe33Fgohwv8AkMrhBZxtRs5cYyCouFMHxUqCbIiNuWjlQ1cMu4wisV6bJu6DkG42U9FiWM0zqhp/RUxcCKbmqbJjAZMWvw3TCAVPT3m44YCPZNH07nCLxhQMLOXHtNjIaaDyvzfZFUVCvMRGY0uPGEj5ggoEkm4PAxnkjSYt72cvDw19eB4IMuoPA8dw2DLhm0fYNiOoKzL/AAyHnGul1+A/DTf1hb+84sTT7vTG6V4sQETiOn69M/ZWptgW5tiLMy8cGJk9zi1mFgRtLpxQUbDyz0ISSbMqorFSDKBEZdrUSIZUozn6CTYZsmiYn4l5myHGgyDQIBeof8jyLE3Co2VdgRMfqrndXBqPyJhyBODmyigBqcwuop8C/tDTXKLdLhPbggChlzUOA+7mUbl1BGf6XSYqTnMPlAIfA87LPsHkr4IuDiMfIhg835Blwtc78ij4PMypXIivXand0SBBL5ozYLsHjmGlJIJuVK5gTDjFs+RWFLha/jM6/cEbFXe0QiAfsqfocibeZgxDGkY3xNY67Ribo8LzBxAgPMbA4VmRBZ5cy+Y4Aj5kECNlz3BBApMXF9laXpnA7bITN/d77qlW+ZkphSxRMuZNPjs6bPm1Tl/DeCYrA/4iJUAuH8vFeB7BV1L8X53TdN03GK9y4wmRQreMbbHqMtGEwkEXFciHJC5PipU2mbIVgsGw1MJjRcY3u77+fFSoohUGYwhb5cEWHcYxuKomoXe2PGcS7IFoQZK4bcDMmoZMRxxRQjNbhYxqZlfJl2L/AE+xvkq10qGLjgAELACZdXsbaA26fcfGTzCjLTEP+1JJ2gqQJhxFvlMulbUkF0RcahV8EQqTBwP8Fy/LMFEDUN0VwRY/wg37D5uorxnAWzlooSR1GFiespX5Bw0479oEXHcKiGoUjCY2viZyT2BB4EEXEXiYwkwuA2061MjvS6PGVxhYEo7oupUZ/TfOFysFUL6RYTcXNlzQmAEkuczVMLEEuGxFySyYgs2wsBGyfoW5mbR7qITTP0EwBRBjj6cZK3PplUfHFQ4jhWG04EVcfxdSsqVB52gwr7bgsypULAQ5J+RgWhK2G/bftIg91QQH6OblQgzJXIjLcKFTYRtw9ircXGALJaur8VHl0Y6h13CjDVTuJiZouFQLO6M8yEkxWuaOgOWO47RrdOpxbxh16t+WYt6J26TFnVt2XMeIF2rUyjcwUD01HxOUT1RPk0GBj2unH2mJV6K3OFELXxNxDRXI7YljNvyuZCGi606ZhvOoTMtp7b88ShKgUeC4jZP22YfRct3pGLLAr79sKwf2j5B83K8FqEUm/O6V4vxY6n3c4cRhRhh/UqjYB8Y0gCqIWvwFJgAEdoTcupjfbYJxhoNMPsY1SFvuHKBMjux4u+zMSc2bshQDsNzIwbHY/plxuDNT0IpmW94jxMg9Yk2XPxXAx7TABAoEq4RxAsOQiHkT7mHEcj1MmHYITQgsieg0zYd67W0zHE20gwH/AB5HC9nMT0bPYWYcHqGocAHyVRRBmXDtG4Ml8EHYdp9iggedvMEJlmAeD4IglXAGHWUeCLlEQRVEWhBUNQECNlqHITCYTHPXjG5WessOb9FyZUMIsTFhcNbfFRQwox5gxhu3xsB8Edww36j8RBMpKm4pfPwuHRKhtggE4+oJUqzUd/oEzseMGX0muarKM3VQCanXDTkY1B3KC2o0jM2/HiJ201y4Ggab/NSoEVeX5moHy8KpMTCPvCRia5kzt9EcXMIDpRyqFYrGTcKKMQdjeQdgolgRcDm+fAEIv/ApsRluOkqpUIIgeouW4+QiByZcLEnxfEDgtUq4VqL3KDkhCCIDAYx3RRZqMbGyYU3ZOUBuWRCA0bGCI7GtpsLywRcouY1C8C/IWbv10LhbyPAMWXUxPY5OLGW3w8Hwxo3AJUqVKly5dCBvBMzizFwmubI4GDIu87lIYWCovlTQ4XMyDh2u2gO4XHTcIjE/E+HxmviaH5Bb6qoTfvvzuM3GFweyoPIKzvgssKHsI27hgZZl+Oam0KOL2rLnUUUbVmLcypUUcRSQZvBNDEQDwjBVhPMsrzPVJMyi+YcBysLIRFpQLlSq7WiOD+oaUS5cy7yamXUY8AX1W/47gmo2Rlotjurh7gbaYGsR+4IRxN6hto8GX5MMDGWDGUURMWS/iXTdE0mOrcZ0ZtiVcU/UAsQqRECrd5CdpK4swyDcMOb1R4JJMGJTwz41/wBShTmBgfF8w+yptlQiE0J2ICVPHDR1qciEAxsZ7Aa4IfYVDCEV4EPi4G2yyeQi0CTpAWYxFlAGOTApbpcO8kFVjggRVhubAO+FHO+FvNhRZ/ltSdbl9NNH/JtjUYc41Yzf+elwKTYZh0IYGIjODFME1GAZ02zS52U+jlAj3UCyoBzPuofBlzIpR7DMb9RXZmT46VAjQji4DfMwtZmZqW5jBY8riU2BqMDY29VMTqw3qCDyBYgAnpqG3R0oGejuFhAw7OMfRBHgC4FnULS40IlQy4HsUTjvooD3t4+LD93XRygdrlBm6XA0Z7FAYyPDVFe5fhe434maLtohlQgTrprB5wsATbvvM4USqm/7jMT5yFlQldNq3d9j/wArrkw4ysTTFMW9tJh/p8oY6fTBsnGUumP08CrQ5I+FzvwRFlx+Dcy4lziDUPhBD4/5XTvEzI4scGfEDjbCsIlVABMi7hUxhfT4sYjBjO7jGp20WUKOENGFgYUo2qP6eS5lpjcyIdM+9MTIPmN7CKu6KKm0TaAIQRCT1BR7IFywJul+BCOPBMNjmDwrlRNpfltojJt6OMRsYE9NTDg+1Acd343mLR7y10QUAqDKIATEXiOaWaH8GMxnxUVZqm2OJg3MS0ELXULE+alQTVaxcQIXEv8AV5TnyYsb5XORuTwMGgfDg9VjwYZicOCsFg14qVUfNnDGEF8YJVpkQZlms0BdiyJky4Txp/5nLj4yab+Sw5+gQZUIhE68V+hjTlSjMh9MrkyEAk5Ay2qNugNczGRVwkdkkNGx7lhvRtMeMEbmqoCO4xscHKyH5Y8qv1Vzbxcawxlk+KuBbm2o3iq8cVwSRFPNxWKGjamXXVmdzas2AHk4wTCk2TZCliiMKiekIMQm2hCR9Z24qaL/AMjBEbwJr8JyqCqYwqhRsMrmbZtleGZVFnU676T021PJCAALFpE+X8bp1y5g0/kMyjDsQmZMoHEXKUYBXXdyLI8GA3G4WERWmbF6w3KqYs/wy6j+E+8WTT5cDU2k/lcmL4vp9UmdbXuEQideGX7GZBkWxgyH7GJDyMv9s2ByLgJU8KpZYQR2lVMuFT3W3gMwXvIpcfHErLe7cjDk4K5TE5ApmyGuCIFJh+JiKCLFiEw+2vYrQubuMxY2ST1GYnskxSeyclGorIYVoQmBlgaF4ckY7poSGVllS6iNN0LcQGAio9HpWH3/ACOofFtbGM1iHN+suTLmYqBgQGnx4Wb5NuVOECEm2/i9KMWHef5BghCB3fKduP0lx94FDPMufYRBFqbR9FIVB7OAfT4WEQkGZMXqcjBnv4PkwJlFNrP4hktsWLLk072uh/kF1AojmESvFcVOQ1RavhHKzKgB+OHlK8YMoQ7Wyr/bEc80MQ3JRInpj74EdkrkZlUVFZWX4h7NGpkykuVmna7EKBptoR3A4nfI81Q9hlX7QL8HqMP0qkwMcfVrkjIeiQywmxwTUJszQBlY23BhFzqboWlmbzLM67yKj95tyr8d7k8DHmyrtbFplQTOa4iqSLmHYaUIwGAGatFcNkfEm1eMpUJU0y/C5qcZfGRNLmGXEDLqJlgyccmj5Khuzh/WXCW5GHU0dj1Ymv8A41cwLofUw5LP8drhqFpu4RKrw/7nq0ee45IG2YLUTs8xM9psZCXe4puWPoP8qmQ7RYALQjiYzR4HfyLfUyg+qZpeWICjjl7Ioeixm1kYQkXzX6MPA8nx+K+4nwsLmuAb7i5GXgnY4qLgazQwKOXArrG5VgZwwudSwYVhXyTO4+VV4gD5exgC8gN+8uZgajZS4AJdgu2aBQ2Vb/ktWEHoIwBO5smZVikP+WKtgAYRydHn3AEEXKnIgyGvkCGJq+JflkDCimRcbUeCJ/K6L1E3rhzNgyBl0moXPjDgw+MgZRvnDchR8bhAImM1xCayc2DCLmP4tFapnYgcYmBEyg9xEoR8IboBMImoyfOihM1KHcWGmBDUAJQhFxl4NFDU5SKVYbo8QGvBhK4RZLFvJ9hNSjKhUGKdpjOKhq6gtZ34/LrT5b+B7hWWRCTCxm4mBQOWy5i3xTBhUCzwOoyXNWNigwUegYrMDQGV7p33VaszExTMRtAZ2JqMC5UKtps7aV/Qyg34IuAGBquLVQihx4yYw4mLMcB9N2IZeP5DTHDlNfw2opjilmoZczuRQg/tGjjN8Tf8tsqah9rAzDlZ8nOTHtFjHm32Iq5HWw+LfMWMpwTzC1cAgM1yo2Jd1zHkDd6n8rmJ9jhojhuvBBnQj4w3EZCooAGLP/1ELmarL6rhFUy/F+buV4q514UX1sO6FQvZHi/0gF8o1DnubZsmyFSOszrjHzwYWync3kTXYi+LjIrK29SvTB2COCpxM43uMpekGVNjVF2/ela1I8NzNVpVzrR0+qfTN6OdXBHBFw/HqosV93bDqVUv9Z9xFNhOTHk+GbCMx+en/jtNpzuUuJcAmXmUrAhsLsp2l32vvC5ldqGVN4mLAauYsrqdjZ8O1/UXDmDrYrcPFj6A/bg9qG/eqyUhmlcMgE1K7ai0SIiqBDxzBm3PtWXDFphQyYr6OMibRVnM4x46CpXMXxcu4eJRMHivB8DuXYptpsFspHY+rhNdBjVTHk2iG/yTFk3cEttFltUFFzJrcjTT4Gyt6jy5fngii+OukNOcbbdsfM7HlCzjgNj2bIylDTad9jww+NTpUzrTJlzaA7XxahMotODNsJuYyVMB+UfMAag58ZcAchwupbf6OfcQaPjoXNwuOIDv4jpYiCjFNiCwZwBcRvVybZnR9K5ZB8fyYc8FbFGPd1GDfWTF6go4cKoKmoQskoiKeJkxluWCY15Azr1FZTyC9d012vA7YBjcbIp5DqbuFl6JFeDKJiyouMmbAsKCGX5Vge5lUdDZzASTAQJdn47q63WdwzagsaDOWNLg0J/PN4qV4EdvqVxNRisWFf1VhWgCUytXphl9BoUbMC7LML2Kbbfl8SuKOXQ5dO2/T4f5RAKy48m4XODAKnNxxwJjJIqAmb13bJrwhKo2hdwTp8lECisyZTu4KljxlRsXy8I1iMtGY0IHPcZ9omM5AfUCuMr1Ln1AI0Cm7KqydmgJ/sBNTYxmK5qYmsCUOo2D7AUrdqSD8VJC/MtYpQbPOOzZVCC+8lB3MmIA2RYnBlVFMAvpE+ySPqOaEuXDVRHa7ijeaC42UUXxm4VPipe0Uqpt+TZcpMx4meYwMPCLnsUVIyCwVI9juEExgn5NUcR19F90GJH+RfIDQCjGBbNqHI2zEhdqiH6iMHjDxdSrmo0OPOPl6Gq0ZtMP8sCduTHnRxaggzJ+onBvxsS901KB1+TXhcOQyahAV1THCBkI2uAQarg5WPxg+B2nDjLGFa4gexN7LlIJFiNmODiYnLNxUB4g/wCxTR5zO3G0/jC20c5QXxklRMJoT1tvYcGNjtrhUYwdi2wMZpjZitl22qQr7fvAjVbFNwotjC/i6/sHjkJcValwVGajw4uEV4M+qOnHzhhAIhQCNi+4W+W0ADEORufoYkDch9pjkAXEoncAxU7kOqAmPKmXoioxP0uP7JizLwRMqWIho7DVGbh1MOIPw+LCEHDIEO44swZjVhunXwIDNoMz6LFm/J/4p8ZvBpsmtxZVXLkPy8A8S4TYhxiYVAXaGRWUqV0rYDeNyQRtEGH1AbwZCp2s1MsqOoJhAWFRdzBp09S4OpdQRmg8V+3YDtst8SphAK8viJ6ULjWyuUuYRvHKgKKDacONwxqoUzlzMls1RCK4yXkFAu+LtHXII2IGIhSXfZNRsgYWpit9Sr7ZaPiyYrlehnNcq24XEphQyccRiuPhTjNbmLFJitptI5JYnvGAB8xCAIMabw6jJY5ZRfFeNZrU0gmL+Txat/RIsijkf0stF6f5AiWZ/VNQ2tqd2P5Y8lPcfIcbcY8i5BCsAl+LqWJsBjpuHgcLc3mEcS6mLIpPEy699LnKZ0fHlG5SvyoB9jVMy7iHTE1cFx+jG5UTJarYxZQw3AiA3AbhHxJgruXCwCzIdxuIhJjflNOA1gk8xkDRcRU8EsrGKDttk4BIZgqkRyQprGmTbcGIg2N4qntSkTazcKQBbAKYwoSmY0GUCGL8IchuM24xDUGLnkpCKiOCpARsm61diDtVMQUWdoInpxV28jkw4STYIYigEyfStkHZW4rMIpH1f/21+qbCQiZM2A6YpMP8a7Au2mzspGLLrcRI3TA9psIIfH8cWkrl86byAqaNF+T5soc0pDKoYpmfdMeoY/Ft1mhzcHgVLlmOt/IKOIUBjnaI+Jm+WVWKcBM0z6rAlDLs0n5BHw1UONMnI2lRKiODwTV8E0KiUU5GILudezUQiixx4iRZZz8lI47cq3yAUt16YHEX8qmTjIZpfyIjBuw1OQIpNQonccirLlVTgkGYwNsZAwo5MJXhfkTziQgw58amp33lV73o2fKxqYSrYwSyF2mR1HSE1cZSTwRUcEC5jyNdB2VZjCvzGAqAirmNLMGBNsdQDNRZoQPTBVGPibCJUsgwEGVD4BI6z4cWpXa66dMDf3eZm065hyyh02xgcOS4SeHDZ3PMx6uhTFPXFlltQqusT48zJnRiCqsb3xdV/wDYZFb8dwuE+C0BIgPg8zIWJ+QMp+kOhZz8/SWp6SiHF+vUzYzcR948A8RWDCHIB8YAwBIB4uVZiZdnAYsc1m2Jgx2KI4EcqnJD/Kjn4ymYCQ8qMIoFQUDRysKnGwtClJBkbmJqCPzDBhYKAx8IbkMhHBxAjkLnUzV2MlzRuSpBGRepsU9ZAUNKj/TBFMfGS20eh6SfHHpl3km1QR3GXmanUuz/ABw5s33p9QdlTUZyqml36/NUTR41e0p163ZpjDN+bY4UqCEQivBoiBARtI0wwMSpN93+9Xi3pY0+TaamxiC02XzMmT0qCNldibuDb96bDvaZTt+A9Sk2z1Co4XK4i6pjBq0+xqkgziJnVm2+cqX1VGDiK4acGVtMBF8blupzjfaQbELfpbD0No7j5Vqbovctr5IByAFbhNTdUzBL+WU7SGmfA2RtyYsAQWW3f6sLExxnt6mXowi8YAzt8qGAI4In9Mt3N+07QQan+vG3jlsdggLiVOtdzU0Jp6jKAKIBXmEw4SxuBHQT1wnI9XUZTTZHfHQiaRtQbyag2mxBo3bmLgP3j2Y5mIzLtmLGmJdqq1dK4Pa7SJVdBnnqEdjIjd0D1tm2VDqUVwk/MUSCODQHX1MuLY9gvY4RlxEGZcNuNuRCh2tyYiluBgyHGCIzF/kxYk1Np7hUBbl/QxqGYLHxHCaYszmpg0ZHzf1FIoK1w8R9Ocil08NFO4QGZD/sNwyCDcAYjCOKNhG/bKDFezRAAJm0RuMq3fMInNVHHG5cSHKAcptBQF1yYaHePljMlepcC2ptF6tsO4sx09hiDGUEcmVNpEMYTOilDWLIcbAiwYF3TZUoiXYqb1Qc5M5PSIcxqZCEUIpc3HG1bOwVZ9NEXnYasQcRyX6x5CIrgiYyTzMmpHRBR+gGEV/2Cd8KAjhNMmMkqvcypjGO2KAdE1MijKthXAsBVKUzpnKElchLtZimf+AGRc2dsvY5gb4TsyrgYg3Hy+tjo6fMML2f6s5nAbM6YiNi5rplzakxteHT0VHndRsb76CkmyVGJuAwhXmDkRgRC2RhaFYp3ZaIJHbgMyzkGA8QGzc6NxjxL/RO4cHiAcTHw0dGJuPaiPYFhXYgAj4NAeZcPhrrjNZa58tktkB3ekxYgYTvQGL8eqvwVBmz6gxVwExjCtzJlPJKC2hxF1o5RsnI+RRi/wAA67TA0Y7qEZSPiV/7iyO8ZVyGi4bEYMjDoZ2ETVD7TMrdHLQmVhsM02sBXZkyFd1jUZWL0Hb47VwYCg5fC2QBI14CccArwJp8wX4PnxjG1CcsJhfGqkMwomDAGx7wi2eXWpfFy7iOVPGbIclT8SDBVXCwAhyk/j6TE7mFKLFxiGsRAxELAcNZqAAi4oJaE1CCWDxWEdbog9yu7C1BxCwWUWg4hFw9UKqBqFzhhUycJc20vGX6cK24X4szdCYVFc7R9O3psJnYrl3Lpc5dagT9+O47heZjIrdMzcbY7hn2TDYMBJjjjkuzcABj0zbpwJ6qVMXzUqALjk41ADbrFrkukfJgDdMhU0VBJqYk9NeSuT6oL2+wR6HMLConpobmRmPymHUchWyYMbMWJ/UqvLYCEDg4GvgqQagFCw24mzizNj6LG7hByAv4ZCvhH2mPSmY8p/ELiLfkFAh6iQ8COa5C20dQwqBRXCvsbmVcP5DxmbaBSdQf9LAdhhUAlQ5dhpwb5EyH6CAqIeOn5BWK2xovK7YPiagcHwUgMfOqtsNxMbBzetTgGaFShucmEVKP2pWoqbzRZuYz0pJxhEFlmQUyoZqiVArFkUgiAsOIF5gSjcyMC3xwMVbgg4muOzZDELKdxLFjcZ3SjHzDKAZplXuLk+fKj95XCC4rbwTPUUcTEgyMYmJGJVsuPInwmTHsNTDnN7WzY6YwH9w8THlYKVGLUNi4iJizHcM+PZwNu7gKIoA7IoxqB4B3DbLAM3H62EiynxPA8EgDnfRoAfurEvYaiEGxFNGZBxcw5LEsw/l4zgbIIIwj9QkiCOAym9NxnIj9RR87h6h6g/OZvyMx9iZpuIWYSdkHUEZFY2ehFUF7msFpMHQg6h7n3AIhILQ9CZfoTJxMnBjuwC0js2cg4kUKCMiKWE045aYedwmUU0sr0/OIGCbQG4HF1mJLUQBNN+cob4P/AFmpJLTUAIg2rNKTdTUisk7w+E/BoOUvwovETDE/MRu4DXWU3hBJ4j9ww+W/KCY+Q1mITs8Dk8kUIOo87WDsQ9ifUE//xAAvEQABAgUEAQMDBAMBAQAAAAABADEQESAhMAJAQVFQMmGBcaGxAxIi0WDB4TNC/9oACAEDAQk/APMsYcrnYt4p4DdunCEeMYepslh5xjBoOGxi3FImhhFuyyufOtW2B8onq6R+Kz4809ruS911UZBcIJq/T+E6BlSJ1DAFp8hZOrA4OKfSftgaAtx4Mobt8JwPH4NbpuEcD/4Tzf5i4qMjwhdGL0snwDyTZmTRen1C4VtYT4n270HcDZi8C0L1Oh/IZH8S9To4jLDxhY0iVI/wEwFXNPFLIyIwiVfx4pjHTPIykCD8n/SmdU5Fv2gf2n/BpcJxFjAovB4apngCBtDnyjGp8vp1D7hejU/se6eaeIGYq4wC/kOKHCCM8bT+xh6euvcL4xF46pH7LTp1ISjKSY1MjfacbYXQvRqlpiLnN8HtOjcBsxl9E8hPyrxkhW2NgmCD1saBaImi9Bn46aNoCWntGLIzEBS2I26wmBqND9doSO3FQzaiSUFpxsmRQvA0+nmS4RXqLDr3K1TOAJosYXPg+Mgn9FpkijIdozCKMChNWUpIw5ysVqRM0KmEX8S5wkft1MTx7FfqzHtZG/ZKMwh91+oB9BP8oHWfdABGIvQaBMwaAztQWTd+RcXCvMye9vZS0lEmftASoNN0ZBCdIujsX2jFoabdhaovET2rRK0hC8OMBg1Bketk6elhtNUlqmEBKD7gIzNXOTgzQnq1UOXKuHB2fPkXNIyn1ECniphhFPCtp8Sxzc4WgHRngFYi8AhBgjIdJvFG6O1KNkZwH094cU/SsVOhtm8VetxcKycrVOjjGKAjbYmDQY+EYwOMOJ08IZxmNNoN41qChSZnOJ6jwhAXxGvnxJnLCI8QbYgT73T0C8DvbVPsWRl+4ygZFD5GA7ZwhIiDUW8QZWnk+P7R/dLkOtQP1dDA45TjJ8o2rLL5XL03EG2QiaBtxMrTIw/9Nf2C/TGr2LIP9oGZwW1cFC4RkjB8HpP2wsXTGsbMQNRRxthdejS3uYjBpsng6tqDhEhXRvguvgwNAjfSfAFGAp7pcHEZaOT37BCwYKyFlxaPzh9QWm6KCuEcDhCu4oKZHcFXVtkebxC/keg3yV/wfRXKvNPJcfkwuYc4XgJwMirHA2QWo43BVjEgxEgcQqaHS1yJYQeL4X/KeHqViE+BsA2rnJcKyCM8l0yGT06nxCLhONiYvsB4QoWqbg1GsWNTGloWIwcZmTDO2II3Qlp/NbQMoGl18HFpmEZ6eRyEyF6uKbhPtn2xTxsE35rZMWgyYK5rvpRw21DlCR4PFdqDaIn2KxZCVGpaohNQ+2KtC5Vz1hdPG8XoEwj8ISOA3X/1zxPr5Vxwf9GLQbnAajMQFsJQg8WyujgsELoXyBlcowcVC/a/lpQkjOkXQmECZch/+/lMbpuYiyYtQ0BW2BkL02KMRsng6ELJkFY4Pp/X9ZQtckJib1MihZX09ITB+0XGzenigyzmDp09BpcIUXPSH7SW+qel0f5CBzmGn+PGof7RBB6i+JxsAtSKutLUG2OwT1BCkygXWkn9Qm+o9eyFuuUfoe/Y+8XgEZoWzt1Eq0/qtU0b4eIG8OIPmCMoXRxG6FRkjOhqrHgoSPB4NRgbLTIiLwGJ4mJVxVzG4EBHlc4eVakI2TrnA6M4CynILUUYH+IWo/VakUcBspy6nb4rKNAkhAwEBgKOMUicXq5XEGQlAReHMDAq6EyrBWWr+KZFakSmQpNbwMBEzBTGkRMOY2oDZRWLiF6etoKLIwapomDQETAq6FkLIxvOtwgrBGIt2XrY0uIdbDmuydCYxc0NQJGLBPAxNLRMlzQxTRE4HPxA1d4223GAIYHpCCY1mYV4PjOFqe6wjnvgYQE1zRaFxgdOhei6ZG6uMDIptixiMrU9YBmPKKCFLw6ydeA//9k="); - - - --scrollbutton:url("data:image/svg+xml,%3Csvg enable-background='new 0 0 100 100' height='100' viewBox='0 0 100 100' width='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m50 76h-26c-3.1 0-5-3.4-3.4-6l26-44c1.5-2.6 5.3-2.6 6.9 0l26 44c1.6 2.7-.4 6-3.4 6z' fill='%23fff'/%3E%3C/svg%3E"); -} -.is-mobile{ - --toggle-width: 45px; - --toggle-thumb-height: 8px; - --toggle-thumb-width: 20px; -} - - - - -/*================ Dark Theme =================*/ -.theme-dark { - --New-Obsidiantoggle: url("data:image/svg+xml,%3Csvg id='custom-logo' width='512' height='512' viewBox='0 0 512 512' fill='none' xmlns='http://www.w3.org/2000/svg' style='height:100%25;width:100%25;'%3E%3Cdefs%3E%3CradialGradient id='b' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-48 -185 123 -32 179 429.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.4'/%3E%3Cstop offset='1' stop-opacity='.1'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(41 -310 229 30 341.6 351.3)'%3E%3Cstop stop-color='%23fff' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.1'/%3E%3C/radialGradient%3E%3CradialGradient id='d' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(57 -261 178 39 190.5 296.3)'%3E%3Cstop stop-color='%23fff' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.4'/%3E%3C/radialGradient%3E%3CradialGradient id='e' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-79 -133 153 -90 321.4 464.2)'%3E%3Cstop stop-color='%23fff' stop-opacity='.3'/%3E%3Cstop offset='1' stop-opacity='.3'/%3E%3C/radialGradient%3E%3CradialGradient id='f' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-29 136 -92 -20 300.7 149.9)'%3E%3Cstop stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.2'/%3E%3C/radialGradient%3E%3CradialGradient id='g' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(72 73 -155 153 137.8 225.2)'%3E%3Cstop stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.4'/%3E%3C/radialGradient%3E%3CradialGradient id='h' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(20 118 -251 43 215.1 273.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.1'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.3'/%3E%3C/radialGradient%3E%3CradialGradient id='i' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-162 -85 268 -510 374.4 371.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='.5' stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.3'/%3E%3C/radialGradient%3E%3Cfilter id='a' x='80.1' y='37' width='351.1' height='443.2' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeBlend in='SourceGraphic' in2='BackgroundImageFix' result='shape'/%3E%3CfeGaussianBlur stdDeviation='6.5' result='effect1_foregroundBlur_744_9191'/%3E%3C/filter%3E%3C/defs%3E%3Crect id='logo-bg' fill='%23000000' width='512' height='512' rx='100'/%3E%3Cg filter='url(%23a)'%3E%3Cpath d='M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z' fill='%23000' fill-opacity='.3'/%3E%3C/g%3E%3Cpath id='arrow' d='M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z' fill='%23616161'/%3E%3Cpath d='M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z' fill='url(%23b)'/%3E%3Cpath d='M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z' fill='url(%23c)'/%3E%3Cpath d='M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z' fill='url(%23d)'/%3E%3Cpath d='M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z' fill='url(%23e)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z' fill='url(%23f)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z' fill='url(%23g)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z' fill='url(%23h)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z' fill='url(%23i)'/%3E%3C/svg%3E"); - --color-base-00: rgba(0, 0, 0); - --color-base-20: rgba(30, 30, 30); - --color-base-05: #171717b7; - --bg-primary: 0, 0, 0; - --bg-secondary: 30, 30, 30; - --background-settings: rgba(30, 30, 30, .9); - --background-settings-alt: rgba(30, 30, 30, .65); - --background-settings-2: rgba(78, 75, 75, .2); - --text-selection: hsla(var(--interactive-accent-hsl), 0.35); - /*Accent*/ - --accent-h: 170; - --accent-s: 69%; - --accent-l: 42%; - --color-accent-faint: hsl(var(--accent-h), calc(var(--accent-s) - 20%), calc(var(--accent-l) - 10%)); - --color-accent-active: hsla(var(--accent-h), calc(var(--accent-s) - 23%), calc(var(--accent-l) - 25%), 0.65); - --color-accent-2: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 10%)); - --color-glow: hsl(calc(var(--accent-h) + 1), calc(var(--accent-s) - 36%), calc(var(--accent-l) - 25%)); - --color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l); - --color-accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); - --color-accent-1: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 3.8%)); - /*Code*/ - --code-background: rgba(30, 30, 30, 0.75); - --text-close-color: #ff909b; - --background-close-hover: #e6647170; - --background-close-active: #f2394c8a; - --background-close: #b4000066; -} -/*================ Light Theme =================*/ -.theme-light { - --New-Obsidiantoggle: url("data:image/svg+xml,%3Csvg id='custom-logo' width='512' height='512' viewBox='0 0 512 512' fill='none' xmlns='http://www.w3.org/2000/svg' style='height:100%25;width:100%25;'%3E%3Cdefs%3E%3CradialGradient id='b' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-48 -185 123 -32 179 429.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.4'/%3E%3Cstop offset='1' stop-opacity='.1'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(41 -310 229 30 341.6 351.3)'%3E%3Cstop stop-color='%23fff' stop-opacity='.6'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.1'/%3E%3C/radialGradient%3E%3CradialGradient id='d' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(57 -261 178 39 190.5 296.3)'%3E%3Cstop stop-color='%23fff' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.4'/%3E%3C/radialGradient%3E%3CradialGradient id='e' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-79 -133 153 -90 321.4 464.2)'%3E%3Cstop stop-color='%23fff' stop-opacity='.3'/%3E%3Cstop offset='1' stop-opacity='.3'/%3E%3C/radialGradient%3E%3CradialGradient id='f' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-29 136 -92 -20 300.7 149.9)'%3E%3Cstop stop-color='%23fff' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.2'/%3E%3C/radialGradient%3E%3CradialGradient id='g' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(72 73 -155 153 137.8 225.2)'%3E%3Cstop stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.4'/%3E%3C/radialGradient%3E%3CradialGradient id='h' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(20 118 -251 43 215.1 273.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.1'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.3'/%3E%3C/radialGradient%3E%3CradialGradient id='i' cx='0' cy='0' r='1' gradientUnits='userSpaceOnUse' gradientTransform='matrix(-162 -85 268 -510 374.4 371.7)'%3E%3Cstop stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='.5' stop-color='%23fff' stop-opacity='.2'/%3E%3Cstop offset='1' stop-color='%23fff' stop-opacity='.3'/%3E%3C/radialGradient%3E%3Cfilter id='a' x='80.1' y='37' width='351.1' height='443.2' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-opacity='0' result='BackgroundImageFix'/%3E%3CfeBlend in='SourceGraphic' in2='BackgroundImageFix' result='shape'/%3E%3CfeGaussianBlur stdDeviation='6.5' result='effect1_foregroundBlur_744_9191'/%3E%3C/filter%3E%3C/defs%3E%3Crect id='logo-bg' fill='%23ffffff' width='512' height='512' rx='100'/%3E%3Cg filter='url(%23a)'%3E%3Cpath d='M359.2 437.5c-2.6 19-21.3 33.9-40 28.7-26.5-7.2-57.2-18.6-84.8-20.7l-42.4-3.2a28 28 0 0 1-18-8.3l-73-74.8a27.7 27.7 0 0 1-5.4-30.7s45-98.6 46.8-103.7c1.6-5.1 7.8-49.9 11.4-73.9a28 28 0 0 1 9-16.5L249 57.2a28 28 0 0 1 40.6 3.4l72.6 91.6a29.5 29.5 0 0 1 6.2 18.3c0 17.3 1.5 53 11.2 76a301.3 301.3 0 0 0 35.6 58.2 14 14 0 0 1 1 15.6c-6.3 10.7-18.9 31.3-36.6 57.6a142.2 142.2 0 0 0-20.5 59.6Z' fill='%23000' fill-opacity='.3'/%3E%3C/g%3E%3Cpath id='arrow' d='M359.9 434.3c-2.6 19.1-21.3 34-40 28.9-26.4-7.3-57-18.7-84.7-20.8l-42.3-3.2a27.9 27.9 0 0 1-18-8.4l-73-75a27.9 27.9 0 0 1-5.4-31s45.1-99 46.8-104.2c1.7-5.1 7.8-50 11.4-74.2a28 28 0 0 1 9-16.6l86.2-77.5a28 28 0 0 1 40.6 3.5l72.5 92a29.7 29.7 0 0 1 6.2 18.3c0 17.4 1.5 53.2 11.1 76.3a303 303 0 0 0 35.6 58.5 14 14 0 0 1 1.1 15.7c-6.4 10.8-18.9 31.4-36.7 57.9a143.3 143.3 0 0 0-20.4 59.8Z' fill='%23000000'/%3E%3Cpath d='M182.7 436.4c33.9-68.7 33-118 18.5-153-13.2-32.4-37.9-52.8-57.3-65.5-.4 1.9-1 3.7-1.8 5.4L96.5 324.8a27.9 27.9 0 0 0 5.5 31l72.9 75c2.3 2.3 5 4.2 7.8 5.6Z' fill='url(%23b)'/%3E%3Cpath d='M274.9 297c9.1.9 18 2.9 26.8 6.1 27.8 10.4 53.1 33.8 74 78.9 1.5-2.6 3-5.1 4.6-7.5a1222 1222 0 0 0 36.7-57.9 14 14 0 0 0-1-15.7 303 303 0 0 1-35.7-58.5c-9.6-23-11-58.9-11.1-76.3 0-6.6-2.1-13.1-6.2-18.3l-72.5-92-1.2-1.5c5.3 17.5 5 31.5 1.7 44.2-3 11.8-8.6 22.5-14.5 33.8-2 3.8-4 7.7-5.9 11.7a140 140 0 0 0-15.8 58c-1 24.2 3.9 54.5 20 95Z' fill='url(%23c)'/%3E%3Cpath d='M274.8 297c-16.1-40.5-21-70.8-20-95 1-24 8-42 15.8-58l6-11.7c5.8-11.3 11.3-22 14.4-33.8a78.5 78.5 0 0 0-1.7-44.2 28 28 0 0 0-39.4-2l-86.2 77.5a28 28 0 0 0-9 16.6L144.2 216c0 .7-.2 1.3-.3 2 19.4 12.6 44 33 57.3 65.3 2.6 6.4 4.8 13.1 6.4 20.4a200 200 0 0 1 67.2-6.8Z' fill='url(%23d)'/%3E%3Cpath d='M320 463.2c18.6 5.1 37.3-9.8 39.9-29a153 153 0 0 1 15.9-52.2c-21-45.1-46.3-68.5-74-78.9-29.5-11-61.6-7.3-94.2.6 7.3 33.1 3 76.4-24.8 132.7 3.1 1.6 6.6 2.5 10.1 2.8l43.9 3.3c23.8 1.7 59.3 14 83.2 20.7Z' fill='url(%23e)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M255 200.5c-1.1 24 1.9 51.4 18 91.8l-5-.5c-14.5-42.1-17.7-63.7-16.6-88 1-24.3 8.9-43 16.7-59 2-4 6.6-11.5 8.6-15.3 5.8-11.3 9.7-17.2 13-27.5 4.8-14.4 3.8-21.2 3.2-28 3.7 24.5-10.4 45.8-21 67.5a145 145 0 0 0-17 59Z' fill='url(%23f)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M206 285.1c2 4.4 3.7 8 4.9 13.5l-4.3 1c-1.7-6.4-3-11-5.5-16.5-14.6-34.3-38-52-57-65 23 12.4 46.7 31.9 61.9 67Z' fill='url(%23g)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M211.1 303c8 37.5-1 85.2-27.5 131.6 22.2-46 33-90.1 24-131l3.5-.7Z' fill='url(%23h)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M302.7 299.5c43.5 16.3 60.3 52 72.8 81.9-15.5-31.2-37-65.7-74.4-78.5-28.4-9.8-52.4-8.6-93.5.7l-.9-4c43.6-10 66.4-11.2 96 0Z' fill='url(%23i)'/%3E%3C/svg%3E"); - --color-base-00: rgba(255, 255, 255); - --color-base-20: rgba(225, 225, 225); - --color-base-05: #f6f4f4b7; - --bg-primary: 255, 255, 255; - --bg-secondary: 225, 225, 225; - --background-settings: rgba(225, 225, 225, .9); - --background-settings-alt: rgba(225, 225, 225, .65); - --background-settings-2: rgba(78, 75, 75, .2); - --text-selection: hsla(var(--interactive-accent-hsl), 0.35); - --accent-h: 170; - --accent-s: 69%; - --accent-l: 42%; - --color-accent-faint: hsl(var(--accent-h), calc(var(--accent-s) + 10%), calc(var(--accent-l) - 4%)); - --color-accent-active: hsla(var(--accent-h), calc(var(--accent-s) - 13%), calc(var(--accent-l) + 10%), 0.65); - --color-accent-2: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 10%)); - --color-glow: hsl(calc(var(--accent-h) + 1), calc(var(--accent-s) - 36%), calc(var(--accent-l) - 25%)); - --color-accent-hsl: var(--accent-h), var(--accent-s), var(--accent-l); - --color-accent:hsl(var(--accent-h), calc(var(--accent-s) - 20%), calc(var(--accent-l) - 10%)); - --color-accent-1: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 3.8%)); - /*Code*/ - --code-background: rgba(225, 225, 225, 0.75); - --text-close-color: #791d26; - --background-close-hover: #99212d70; - --background-close-active: #88111c8a; - --background-close: #b4000066; -} -/*----------------------- General ------------------------*/ -.checkbox-container:not(.is-enabled):after{ - box-shadow: 0 0 0.6em red; -} -/*Note Animation*/ -.workspace-split.mod-vertical.mod-root .workspace-tabs:not(.mod-stacked) .view-content { - animation: 0.25s slide-down forwards; -} -/*left pane Animation*/ -.workspace-split.mod-left-split .workspace-leaf-content, .workspace-leaf-content:not(:has(.view-content)) { - animation: 0.15s slide-left forwards; -} -/*right pane Animation*/ -.workspace-split.mod-right-split .workspace-leaf-content { - animation: 0.15s slide-right forwards; -} -/*Keyframe for the above animations*/ -@keyframes slide-down { - 0% { transform: translateY(0%); opacity: 0; } - 15% { transform: translateY(-5px); opacity: 0; } - 25% { transform: translateY(-10px); } - 45% { opacity: 0.5; } - 65% { opacity: 0.7; } - 100% { transform: translateY(0%); opacity: 1; } -} -@keyframes slide-left { - 0% { transform: translateX(0%); opacity: 0;} - 15% { transform: translateX(-5px); opacity: 0; } - 25% { transform: translateX(-10px); } - 45% { opacity: 0.5; } - 65% { opacity: 0.7;} - 100% { transform: translateX(0%); opacity: 1;} -} -@keyframes slide-right { - 0% { transform: translateX(0%); opacity: 0; } - 15% { transform: translateX(5px); opacity: 0; } - 25% { transform: translateX(10px); } - 45% { opacity: 0.5; } - 65% { opacity: 0.7;} - 100% { transform: translateX(0%); opacity: 1;} -} -/*Tab, WCB Spacing for Styling*/ -.workspace-tab-header, -.titlebar-button { - border-right: 1px solid transparent; - border-left: 1px solid transparent; -} -/*----------------------- Title bar Tabs ------------------------*/ -/*Remove Curved Connectors for Classic Tabs*/ -.workspace-split.mod-root .workspace-tab-header.is-active::before, .workspace-split.mod-root .workspace-tab-header.is-active::after, .workspace-tab-header.is-active { - box-shadow: none; -} -/*Tab Spacing Between Each Other*/ -.mod-root .workspace-tab-header-container-inner { - padding: 2.5px 15px 0px 10px; - gap: 4px; -} -/*Centers Tab Text*/ -.workspace .mod-root .workspace-tab-header-inner-title { - text-align: center; - color: var(--inactivetab); -} -.workspace-tab-header.is-active.mod-active .workspace-tab-header-inner .workspace-tab-header-inner-title{ - color: var(--activetab-highlight); -} -/*Resolves jumping tab bug*/ -.workspace .mod-root .workspace-tab-header:not(.is-active, :hover) .workspace-tab-header-inner-close-button{ - visibility: hidden; -} -.workspace .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(.is-active) .workspace-tab-header-inner-close-button { - display: flex; -} -.workspace-tab-header-inner .workspace-tab-header-inner-icon{ - color: var(--activetab-faint); -} - -/*Styles Hover Tab*/ -.workspace-tab-header:hover { - background: var(--tab-background-active); - color: var(--activetab-faint); - opacity: 0.85; - border-image-slice: 1; - border-right: 1px solid; - border-image-source: linear-gradient(to top, transparent, var(--activetab-highlight), transparent); - border-left: 1px solid; -} -/*Styles Active Tab*/ -.workspace-tab-header.is-active, .workspace-tab-header:active { - border-image-slice: 1; - border-right: 2px solid; - border-image-source: linear-gradient(to top, transparent, var(--activetab-highlight), transparent); - border-left: 2px solid; -} -.workspace-tab-header:active{ - background: var(--tab-background-clicked); -} -.workspace-tab-header.is-active.mod-active{ - background: var(--tab-background-active-clicked); -} -.workspace-tab-header.is-active.mod-active .workspace-tab-header-inner .workspace-tab-header-inner-icon{ - color: var(--activetab-highlight); -} -/*Active Tab Growth Ani*/ -.workspace .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active:not(.mod-stacked) { - flex-grow: 1.25; - max-width: var(--tab-width); - transition: max-width 100ms ease-in-out; - color:var(--activetab-highlight); -} -.mod-left-split .workspace-tab-header.has-active-menu, .mod-right-split .workspace-tab-header.has-active-menu, -.mod-left-split .workspace-tab-header.is-active, .mod-right-split .workspace-tab-header.is-active{ - background-color: var(--tab-background-active-clicked); -} - -.mod-root .workspace-tab-header:not(.mod-stacked) { - max-width: var(--tab-max-width); - transition: max-width 200ms ease-in-out; -} - - /*Active Tab Animation unstacked*/ - @keyframes float { - 0% { transform: translateY(-5%); transition: ease 0.5s; } - 50% { transform: translateY(3%); transition: ease 0.5s; } - 100% { transform: translateY(-5%); transition: ease 0.5s;} - } - .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active.mod-active{ - animation: float 4.9s ease-in-out infinite; - } - -/*Height of Note Tabs*/ -.workspace-tab-header-container-inner { - margin-bottom: 5px; - margin-top: 5px; -} -/*Secondary Headers in Sidepanels*/ -.workspace-split.mod-horizontal .workspace-tab-header-container{ - background-color: var(--background-tertiary); -} -/*Removes Old Note Tab Hover*/ -.workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner { - background: transparent; -} -/*Resolve Incorrect Background Tabs Font Color and on hover*/ -.is-focused .workspace-tab-header { - color: var(--text-faint); -} -.is-focused .workspace-tab-header:hover{ - color: var(--text-accent); -} -/*Remove Bottom Header Seperator*/ -.workspace-tab-header-container { - border-bottom: none; -} -/*Corrects preview*/ -body:not(.is-mobile) .workspace-leaf-content[data-type="markdown"] .markdown-preview-view{ - padding-top: 50px; -} -/*Corrects preview scroll*/ -body:not(.is-mobile) .workspace-leaf-content[data-type="markdown"] .markdown-preview-view::-webkit-scrollbar-track{ - margin-top: 40px; -} -/*Corrects editor*/ -body:not(.is-mobile) .workspace-leaf-content[data-type='markdown'] .cm-editor{ - margin-top:40px; -} -/*Styles text search on mobile*/ -body:not(.is-mobile) .workspace-leaf-content[data-type="markdown"] .document-search-container { - width: 100%; - position:absolute; - background: var(--background-tertiary); - --webkit-backdrop-filter: blur 120px; - backdrop-filter: blur(8px); - margin-top:40px; -} -/*Bumps down content for text search in preview*/ -body:not(.is-mobile) .document-search-container ~ .markdown-preview-view { - margin-top:50px; -} -/*Bumps down content for text search in editor*/ -body:not(.is-mobile) .document-search-container ~ .cm-editor{ - padding-top:46px; -} -/*Bumps down content for text search and replace in editor*/ -body:not(.is-mobile).document-search-container.mod-replace-mode ~ .cm-editor{ - margin-top:50px; -} -.nav-file-tag{ - color:var(--custom-acc-text); - background-color: var(--custom-acc-back); -} -.nav-folder-title[data-count]::after, .tree-item-flair{ - padding: 0 var(--size-4-1); - background-color: var(--custom-acc-back); - color:var(--custom-acc-text); - border-radius: var(--radius-s); - margin-right: -1px; - align-self: center; -} -.tree-item-self:hover .tree-item-flair{ - color: var(--custom-acc-text); -} -/*----------------------- Window Control Buttons ------------------------*/ -/*Readjusts the Sizing of WCB*/ -.titlebar-button { - height: 30px; - align-self: center; - margin-right: 3px; -} -.mod-linux .titlebar-button, .mod-windows .titlebar-button { - padding: 0px 13px 0px 13px; -} -/*WCB Styling Hover*/ -.titlebar-button:not(.mod-logo):hover, .mod-windows .titlebar-button.mod-close:hover { - border-radius: var(--radius-s); - opacity: 0.85; - border-image-slice: 1; - border-right: 1px solid; - border-left: 1px solid; -} -.mod-windows .titlebar-button.mod-close:active, .titlebar-button:active { - border-image-slice: 1; - opacity: 1; - border-right: 1px solid; - border-left: 1px solid; - border-radius: var(--radius-s); -} -.titlebar-button:not(.mod-logo):hover { - background: var(--text-selection); - color: var(--text-muted); - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); -} -.titlebar-button.mod-logo:hover{ -background:transparent; -} -.titlebar-button:not(.mod-logo):active, .titlebar-button:active { - background-color: var(--color-accent-active); - opacity: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); -} -.mod-linux .titlebar-button.mod-close:hover { - background-color: var(--background-close-hover); - color: var(--text-close-color); - border-image-source: linear-gradient(to top, transparent, var(--text-close-color), transparent); -} -/*WCB Styling Active*/ -.titlebar-button.mod-close:active { - background-color: var(--background-close-active); - color: var(--text-close-color); - opacity: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-close-color), transparent); -} -/*Removes Redundant background coloring of WCB*/ -.is-hidden-frameless:not(.is-fullscreen) .titlebar-button-container.mod-right, -.is-hidden-frameless:not(.is-fullscreen).is-focused .titlebar-button-container.mod-right { - background-color: transparent; -} -/*Obsidian Frame hide default*/ -.mod-windows .titlebar-button.mod-close:hover { - background-color: var(--background-close-active); - color: var(--text-close-color); - border-image-source: linear-gradient(to top, transparent, var(--text-close-color), transparent); -} -/*Win11 Max Min window icon*/ -:is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize svg { - -webkit-mask-image: var(--win-maximize); - } - .is-maximized:is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize svg { - -webkit-mask-image: var(--win-minimize); - } - :is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize svg { - -webkit-mask-size: cover; - background-color: var(--text-faint); - width: var(--icon-s); - height: var(--icon-s); - } - :is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize{ - padding: 0px 10px 0px 12px; - } - :is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize:hover svg, :is(.mod-linux, .mod-windows) .titlebar-button.mod-maximize:active svg{ - background-color: var(--text-accent); - } -/*======================= Status-bar ==========================*/ -/*General*/ -.status-bar{ -border-image-slice: 1; -border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -border-bottom: 2px solid; -height: 2.2%; -border-top: 0px solid; -} - -/*Status Bar Hover*/ -.CG-Fullstatus-off .status-bar { -margin: 0px 20px 12px 0px; -border-top: 1px solid; -} - -/*Full Status Bar*/ -body:not(.CG-Fullstatus-off) .status-bar { - position: sticky; - border-radius: 0px; - background: var(--background-secondary); -} - -/*Status Bar Clickable Icons Hover/Active*/ -.status-bar-item.mod-clickable:hover { - color: var(--text-accent); - box-shadow: 0 0 0.5em var(--text-accent); -} - -.status-bar-item.mod-clickable:active, .status-bar-item.plugin-obsidian-languagetool-plugin:active { - color: var(--text-accent); - background-color: var(--color-accent-active); - box-shadow: 0 0 0.3em var(--color-accent-active); -} - -.status-bar-item.plugin-obsidian-languagetool-plugin:hover { - color: var(--text-accent); - background: var(--text-selection); - box-shadow: 0 0 0.3em var(--text-accent); -} - -/*======================== Scrollbar ========================*/ -/*Scrollbar Hover*/ -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:hover { - background: var(--color-accent-active); - background-clip: padding-box; -} -/*Scrollbar Active*/ -body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:active { - background: var(--text-accent); - background-clip: padding-box; -} - -/*======================== Note Editor ========================*/ -.cm-lineNumbers .cm-gutterElement { - text-align: center !important; -} -.markdown-source-view.mod-cm6 .cm-gutters .cm-lineNumbers .cm-gutterElement.cm-active { - color: var(--text-accent); - background: var(--text-selection); - border-radius: var(--radius-s); - padding-left: 3px; - border-image-slice: 1; - border-left: 2px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-right: 2px solid; -} -body:not(.line-active-disable) .markdown-source-view .cm-scroller .cm-line { - padding-left: 5px; - padding-right: 5px; -} -/*Active Line Highlight*/ -body:not(.line-active-disable) .markdown-source-view .cm-scroller .cm-line.cm-active:not(:has(.mk-note-footer, .mk-floweditor-container)) { - background: var(--text-selection); - border-radius: var(--radius-s); - border-image-slice: 1; - border-top: 2px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; -} -/*Hover Line Highlight*/ -.markdown-source-view.mod-cm6 .cm-line:hover { - background: var(--text-selection); - border-radius: var(--radius-s); - opacity: 0.85; -} -/*================ Dragging Ghost ===================*/ -.drag-ghost, .drag-ghost-action { - backdrop-filter: blur(5px) saturate(120%) !important; - border-image-slice: 1; - border-image-source: linear-gradient(to left, transparent, var(--text-accent), transparent); - border-top: 2px solid; - border-bottom: 2px solid; -} -.drag-ghost-self { - background-color: transparent; -} -/*================ SidePanel =================*/ -body:not(.is-grabbing) .tree-item-self.is-clickable:hover{ - background-color: var(--custom-acc-hover); - border-image-source: linear-gradient(to right, transparent, var(--custom-acc-text), transparent); -} -/*Removes bottom resize seperation */ -.workspace-split.mod-horizontal>*>.workspace-leaf-resize-handle { - border-bottom: 0px; -} -/*Edits and Styles Visible Seperation Resize left and right*/ -.workspace-split.mod-left-split>.workspace-leaf-resize-handle, .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle { - border-right: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to bottom, transparent, var(--text-accent), transparent); - height: 95%; -} -.workspace-split.mod-right-split>.workspace-leaf-resize-handle { - border-left: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to bottom, transparent, var(--text-accent), transparent); - height: 95%; -} -/*Add Styling to Resize Handle*/ -.workspace-leaf-resize-handle:hover, .pdf-sidebar-resizer:hover, .surfing_root_3FoL3a { - background: var(--text-accent); - box-shadow: 0 0 5px var(--text-accent), 0 0 10px var(--text-accent), 0 0 20px var(--text-accent), 0 0 35px var(--text-accent); -} -/*Minor Spacing*/ -body:not(.is-mobile) .workspace-split.mod-left-split, body:not(.is-mobile) .workspace-split.mod-right-split { - padding-right: 2px; - padding-left: 1px; -} -/*Navigation Bottom Style*/ -.nav-header { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 3px solid; -} -/*Unifies the right side pane background*/ -.workspace-split.mod-right-split .workspace-tabs .node-insert-event{ - background-color: var(--background-primary); -} -/*------------ SidePanel: Files --------------*/ -/*Drop line Styled with spaces*/ -.nav-folder.mod-root .nav-folder>.nav-folder-children { - padding-left: 3px; - border-left: 2px outset var(--custom-acc-faint); -} -/*Nav File Active Stying*/ -.nav-file-title.is-active { - color: var(--custom-acc-text); - border-image-slice: 1; - border-top: 2px solid; - border-image-source: linear-gradient(to right, transparent, var(--custom-acc-text), transparent); - border-bottom: 2px solid; - background-color: var(--custom-acc-back); -} -/*Add Bottom Styling for Navigator*/ -body:not(.is-mobile) .workspace-leaf-content>.nav-header+*, .search-result-container.mod-global-search { - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Sets correct background to r/l sidepanels*/ -.node-insert-event, iframe, .surfing_app_zUmbJa { - background-color: var(--background-primary); -} -/*SidePanel Tree Tags to the right*/ -.nav-file-title-content, .nav-folder-title-content { - flex: 1 1 auto; -} -/*Adds spacing to pane items for style */ -.tree-item-self.is-clickable { - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Styles Hover for Pane Items */ -.tree-item-self.is-clickable:hover,.suggestion-item.is-selected:not(.mod-group):hover { - color: var(--text-accent); - border-image-slice: 1; - border-top: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -body:not(.is-grabbing) .tree-item-self.is-being-dragged:hover .tree-item-icon, .tree-item-self.is-being-dragged .tree-item-icon { - color: var(--text-accent); -} -/*Styles Active and Dragged for Pane Items */ -.tree-item-self.is-clickable:active, body:not(.is-grabbing) .tree-item-self.is-being-dragged:hover, .tree-item-self.is-being-dragged { - background-color: var(--color-accent-active); - color: var(--text-accent); - border-image-slice: 1; - border-top: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Fixes Incorrect text coloring*/ -.backlink-pane>.tree-item-self, .outgoing-link-pane>.tree-item-self, .backlink-pane>.tree-item-self.is-collapsed, .outgoing-link-pane>.tree-item-self.is-collapsed, -.search-empty-state { - color: var(--custom-acc-faint); -} -/*------------ SidePanel: Search --------------*/ -/*Style Loading bar*/ -.search-result-container.is-loading:before { - border-radius: 10px; - box-shadow: 0 0 0.5em var(--text-accent); -} -/*Styles Result File Dropdown matches*/ -.search-result-file-matches { - color: var(--text-accent); - background: var(--text-selection); - box-shadow: 0 0 0 transparent; - border-image-slice: 1; - border-top: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Style Bottom Seperation for Search*/ -.search-results-info { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Styles seperation line*/ -.search-result-file-match { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Fixes hover text of search results*/ -.search-result-file-match:hover { - color: var(--text-accent); -} -/*Fixes coloring of clear*/ -.search-input-clear-button { - color: var(--text-faint); - height: 20px; -} -/*Style Hovering/Active of clear*/ -.search-input-clear-button:hover { - color: var(--text-accent); - background: var(--text-selection); - border-radius: var(--radius-s); -} -.search-input-clear-button:active { - color: var(--text-accent); - background-color: var(--color-accent-active); - border-radius: var(--radius-s); -} -/*corrects active coloring for icons*/ -.input-right-decorator.clickable-icon.is-active{ - background: var(--color-accent-active); -} -.input-right-decorator.clickable-icon.is-active:hover{ - background: var(--text-selection); -} -/*Dropdown highlight when hovered*/ -.tree-item .tree-item-self .tree-item-icon:hover { - background-color: var(--text-selection); - border-radius: var(--radius-s); -} -.tree-item .tree-item-self .tree-item-icon:active { - border-radius: var(--radius-s); - background-color: var(--color-accent-active); -} -/*Changes Tags height and background*/ -body:not(.is-mobile) .tag-container { - background: var(--background-primary); - height: 100%; - padding-top: 2%; -} -/*Search row Header*/ -.search-row { - margin: 0px; - padding: var(--size-4-2); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Search info header*/ -.search-results-info { - margin: 0px; - padding: var(--size-4-1) var(--size-4-2) var(--size-4-1); -} -/*Search parameter Headers*/ -.search-params { - padding: var(--size-4-1) var(--size-4-4); - margin: 0px; - background: var(--background-tertiary); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; -} -/*Sidepanel Search Suggestion Style*/ -.suggestion-container.mod-search-suggestion .suggestion{ - border-image-slice: 1; - border-left: 2px solid; - border-right: 2px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - background-color: var(--background-settings); -} -.suggestion-container.mod-search-suggestion{ -border-color:transparent; -} -/*Sidepanel Search Suggestion items Style*/ -.search-suggest-item.suggestion-item{ - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Sidepanel Search Suggestion items Style on hover*/ -.search-suggest-item.suggestion-item:hover:not(.mod-group){ - border-image-slice: 1; - border-top: 1px solid; - border-bottom: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background-color: var(--text-selection); -} -/*Sidepanel Search Suggestion items Style on active*/ -.search-suggest-item.suggestion-item:active{ - border-image-slice: 1; - border-top: 2px solid; - border-bottom: 2px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background-color: var(--color-accent-active); -} -.list-item-part.clickable-icon:active{ - background-color: var(--color-accent-active); -} -/*Fixes bad padding from Vanilla*/ -.search-suggest-item.mod-group:not(:first-child){ - border-bottom: transparent ; - padding: 3px 6px 3px 14px; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*------------------- Title bar: Tabs Stacked --------------*/ -/*Stacked Tabs text Readable*/ -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner-title { - text-orientation: upright; - letter-spacing: -3px; - text-transform: uppercase; -} -/*Stacked active tab highlight*/ -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header.is-active { - background-color: var(--tab-background-active); -} -/*Stacked Tab Style*/ -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { - --webkit-backdrop-filter: blur 120px; - backdrop-filter: blur(18px); - border-radius: 0px; - width: var(--GC-stacked-width); - box-shadow: none; -} -.workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header:hover { - background-color: var(--tab-background-active); - --webkit-backdrop-filter: blur 120px; -} -/*=============== Side Dock ================*/ -/*Centers and adds Styles for Tab Headers*/ -.mod-left-split .workspace-tab-header-container-inner, .mod-right-split .workspace-tab-header-container-inner { - width: 100%; - justify-content: center; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; -} -/*Corrects Position of Custom Sidebar toggle*/ -.workspace-ribbon .sidebar-toggle-button { - margin: 5px 2px 0px 3px; -} -/*Displays Full Custom Toggle*/ -.sidebar-toggle-button { - align-items: center; - padding: 0 0 0 0; -} -/*Hover Highlight for Custom Toggle*/ -body.is-hidden-frameless .sidebar-toggle-button.mod-left:hover { - background: var(--text-selection); - border-radius: 5px; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 2px solid; - border-right: 2px solid; -} -/*Active Highlight for Custom Toggle*/ -body.is-hidden-frameless .sidebar-toggle-button.mod-left:active { - background: var(--color-accent-active); - border-radius: 5px; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 2px solid; - border-right: 2px solid; -} -body:not(.is-hidden-frameless) .sidebar-toggle-button { - margin-top: 1px; -} -/*Sidebar Stylings*/ -.workspace-ribbon.side-dock-ribbon { - flex: 0 0 50px; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 2px solid; - border-right: 2px solid; - margin-top: 45px; -} -/*Removed L-Side toggle seperator and background*/ -.workspace-ribbon.mod-left:before { - border-bottom: var(--tab-outline-width) solid transparent; - background-color: transparent; -} -/*Sidepanel Nav Button Spacing*/ -.clickable-icon.nav-action-button{ - border-right: 1px solid transparent; - border-left: 1px solid transparent; -} -/*Sidepanel Nav Button Spacing*/ -.clickable-icon.nav-action-button:hover{ - background: var(--tab-background-active); - box-shadow: 0 0 0 transparent; - border-image-slice: 1; - border-right: 1px solid; - border-left: 1px solid; - border-image-source: linear-gradient(to top, transparent, var(--activetab-highlight), transparent); -} -/*Clickable Menu Button Style*/ -.clickable-icon.has-active-menu{ - box-shadow: 0 0 0 transparent; - border-image-slice: 1; - border-right: 1px solid; - border-left: 1px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); -} -/*Clickable button when active*/ -.clickable-icon.nav-action-button:active{ - background-color: var(--tab-background-clicked); - box-shadow: 0 0 0 transparent; - border-image-slice: 1; - border-right: 2px solid; - border-left: 2px solid; - border-image-source: linear-gradient(to top, transparent, var(--activetab-highlight), transparent); -} - -/*Animation for clickables like buttons, tabs, files etc*/ -@keyframes hover { - from { transform: scale(100%); } - to { transform: scale(105%); } - } - - .clickable-icon:not(.input-right-decorator):hover, .markdown-rendered button.copy-code-button:hover, .mod-left-split .workspace-tab-header:hover, - .mod-right-split .workspace-tab-header:hover, .mod-windows .titlebar-button:hover, .modal-close-button { - animation: hover 0.2s forwards; - } - - @keyframes pressed { - 0%{ transform: scale(1.05);} - 50% { transform: scale(0.95);} - 100% { transform: scale(1);} - } - - .clickable-icon:not(.input-right-decorator):active, .markdown-rendered button.copy-code-button:active, .mod-left-split .workspace-tab-header:active, - .mod-right-split .workspace-tab-header:active, .mod-windows .titlebar-button:active,.modal-close-button:active{ - animation: pressed 0.3s forwards; - } - - @keyframes bighover { - from {transform: scale(1); } - to { transform: scale(1.025); } - } - - .setting-item.setting-item-heading.style-settings-heading:hover,.mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover, - .tree-item-self.is-clickable:hover, .menu-item:hover, .vertical-tab-nav-item:hover, .community-item:hover, .callout:hover{ - animation: bighover 0.2s forwards; - } - - @keyframes bigpressed { - 0%{ transform: scale(1.025);} - 50% { transform: scale(0.975);} - 100% { transform: scale(1); } - } - .setting-item.setting-item-heading.style-settings-heading:active, .mod-root .workspace-tab-header:not(.mod-stacked):active, - .tree-item-self.is-clickable:active, .menu-item:active, .suggestion-item.mod-complex:not(.mod-group):active, .vertical-tab-nav-item:active, - .community-item:active, .callout:active{ - animation: bigpressed 0.3s forwards; - } - -/*Custom Styled L-Sidebar Toggle*/ -.is-hidden-frameless .sidebar-toggle-button.mod-left>.clickable-icon, body:not(.is-tablet) .is-mobile .view-header-nav-buttons, -.is-mobile .mod-left-split-toggle, body.is-tablet .sidebar-toggle-button.mod-left>.clickable-icon { - color: transparent; - background-repeat: no-repeat; - background-position: center; - background-size: 100%; - border-radius: 8px; - background-color: var(--text-accent); - background-blend-mode: luminosity; - padding: 0px 0px 18px 18px; -} -/*Displays Custom Sidebar Toggle*/ -.CG-MObsidian-sbt.is-hidden-frameless .sidebar-toggle-button.mod-left>.clickable-icon, .is-hidden-frameless .sidebar-toggle-button.mod-left>.clickable-icon, -body:not(.is-tablet) .CG-MObsidian-sbt.is-mobile .view-header-nav-buttons, body:not(.is-tablet) .is-mobile .view-header-nav-buttons, .is-mobile .mod-left-split-toggle, -.CG-MObsidian-sbt.is-mobile .mod-left-split-toggle, body.is-tablet .CG-MObsidian-sbt.sidebar-toggle-button.mod-left>.clickable-icon, -body.is-tablet .sidebar-toggle-button.mod-left>.clickable-icon, .CG-MObsidian-sbt .titlebar-button-container.mod-left { - background-image: var(--New-Obsidiantoggle); -} -body.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left{ - color: transparent; - border-radius: 5px; - background-repeat: no-repeat; - background-position: center; - background-size: 100%; - background-color: var(--text-selection); - background-blend-mode:overlay; - width: 32px; - margin-left: 9px; -} -body.is-frameless:not(.is-hidden-frameless) .titlebar-button.mod-logo{ - margin-right:0px; -} -body.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left:hover { - color: transparent; - background-repeat: no-repeat; - border-radius: 6px; - background-position: center; - background-size: 100%; - background-color: var(--text-accent); - background-blend-mode: luminosity; - width: 32px; -} -/*Removes default logo*/ -body:not(.is-hidden-frameless) svg.logo-full { - display: none; -} -/*Classic Obsidian header*/ -.CG-Obsidian-sbt.is-hidden-frameless .sidebar-toggle-button.mod-left>.clickable-icon, -body:not(.is-tablet) .CG-Obsidian-sbt .is-mobile .view-header-nav-buttons, -.CG-Obsidian-sbt.is-mobile .mod-left-split-toggle,body.is-tablet .CG-Obsidian-sbt.sidebar-toggle-button.mod-left>.clickable-icon, -.CG-Obsidian-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left{ - background-size: 90%; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='150%' height='150%' class='logo-full'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='82.85' y1='30.41' x2='51.26' y2='105.9' gradientTransform='matrix(1, 0, 0, -1, -22.41, 110.97)' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%236c56cc'%3E%3C/stop%3E%3Cstop offset='1' stop-color='%239785e5'%3E%3C/stop%3E%3C/linearGradient%3E%3C/defs%3E%3Cpolygon points='62.61,0 30.91,17.52 18,45.45 37.57,90.47 65.35,100 70.44,89.8 81,26.39 62.61,0' fill='%2334208c'%3E%3C/polygon%3E%3Cpolygon points='81,26.39 61.44,14.41 34.43,35.7 65.35,100 70.44,89.8 81,26.39' fill='url(%23a)'%3E%3C/polygon%3E%3Cpolygon points='81,26.39 81,26.39 62.61,0 61.44,14.41 81,26.39' fill='%23af9ff4'%3E%3C/polygon%3E%3Cpolygon points='61.44,14.41 62.61,0 30.91,17.52 34.43,35.7 61.44,14.41' fill='%234a37a0'%3E%3C/polygon%3E%3Cpolygon points='34.43,35.7 37.57,90.47 65.35,100 34.43,35.7' fill='%234a37a0'%3E%3C/polygon%3E%3C/svg%3E"); - background-color: transparent; - background-blend-mode: normal; -} -.CG-Obsidian-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left, .CG-Obsidian-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left:hover { - background-size: 80%; - background-color: transparent; -} -.CG-Obsidian-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left:hover { - background-color: var(--text-accent); - background-blend-mode: luminosity; -} - -/*Custom header*/ -.CG-Custom-sbt.is-hidden-frameless .sidebar-toggle-button.mod-left>.clickable-icon, -body:not(.is-tablet) .CG-Custom-sbt.is-mobile .view-header-nav-buttons, .CG-Custom-sbt.is-mobile .mod-left-split-toggle, -body.is-tablet .CG-Custom-sbt.sidebar-toggle-button.mod-left>.clickable-icon, -.CG-Custom-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left { - background-size: 115%; - background-image: var(--CG-workspace-custom-sbt); -} -.CG-Custom-sbt.is-frameless:not(.is-hidden-frameless) .titlebar-button-container.mod-left:hover { - background-size: 115%; - background-color: var(--text-accent); - background-blend-mode: luminosity; -} -/*================ Popover ==============*/ -/*Style Tooltip and Notice*/ -.tooltip, .notice, .suggestion-container { - color: var(--text-accent); - backdrop-filter: blur(5px) saturate(120%); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 2px solid; - border-bottom: 2px solid; -} - -/*Removes Tooltip Arrow*/ -.tooltip .tooltip-arrow { - display: none; -} -/*============ Prompt =================*/ -/*Prompt Style*/ -.prompt { - background: var(--background-settings); - backdrop-filter: blur(5px) saturate(120%) !important; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-right: 3px solid; - border-left: 3px solid; -} -/*Prompt Item Style*/ -.suggestion-item { - color: var(--text-faint); - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Prompt Tag Color Fixed*/ -.suggestion-item.mod-complex .suggestion-hotkey { - background-color: var(--background-modifier-hover); -} -/*Prompt Input*/ -input.prompt-input { - border-radius: 5px; - margin: 5px; - background: var(--background-settings-2); - padding: 10px; -} -/*=============== Callouts ================*/ -.markdown-rendered cite { - font-family: var(--CG-cite-font); - font-size: 2.75em; - display: block; - text-align: right; - font-style: normal; -} -/*Callout Style*/ -.callout { - background: var(--background-settings-2); - border-radius: 5px; - opacity: 0.85; - border-image-slice: 1; - border-top: 2px solid; - border-image-source: linear-gradient(to right, transparent, rgb(var(--callout-color)), transparent); - border-bottom: 2px solid; - background-color: rgba(var(--callout-color), 0.3); -} -/*Callout Cursor Change*/ -.callout.is-collapsible .callout-title { - cursor: var(--cursor-link); -} -/*Callout Hover Style*/ -.callout:hover { - background-color: rgba(var(--callout-color), 0.4); -} -.callout:active { - background-color: rgba(var(--callout-color), 0.5); -} - -/*Heading Fix in callouts*/ -.callout-content h3, .callout-content h2, .callout-content h4, .callout-content h5, .callout-content h6 { - padding-left: 15px; -} -.callout-content blockquote{ - margin:10px; -} - -/*--------------Code Blocks Copy Button-------------------*/ -/*Styles code copy button*/ -.markdown-rendered button.copy-code-button { - background: var(--interactive-normal); - border-radius: 3px; - display: inline !important; - padding: 2px 6px; - background-color: transparent; -} -/*Styles code copy button active*/ -.markdown-rendered button.copy-code-button:active { - background: var(--color-accent-active); -} -/*Moves up code flair*/ -.markdown-source-view.mod-cm6 .code-block-flair { - top: 5px; - height:26px; -} -.code-block-flair{ - display:flex; -} -/* set up to replace copy button text */ -.markdown-rendered button.copy-code-button { - font-size: 0px; -} -.copy-code-button::after { - font-size: var(--font-ui-smaller); -} -/* list of text replacements */ -.language-java>.copy-code-button::after { - content: "Java"; -} -.language-javascript>.copy-code-button::after, .language-js>.copy-code-button::after { - content: "JavaScript"; -} -.language-html>.copy-code-button::after { - content: "HTML"; -} -.language-typescript>.copy-code-button::after, .language-ts>.copy-code-button::after { - content: "TypeScript"; -} -.language-css>.copy-code-button::after { - content: "CSS"; -} -.language-cpp>.copy-code-button::after { - content: "C++"; -} -.language-c>.copy-code-button::after { - content: "C"; -} -.language-sql>.copy-code-button::after { - content: "SQL"; -} -.language-shell>.copy-code-button::after { - content: "Shell"; -} -.language-terminal>.copy-code-button::after { - content: "Terminal"; -} -.language-python>.copy-code-button::after { - content: "Python"; -} -.language-react>.copy-code-button::after { - content: "React"; -} -.language-json>.copy-code-button::after { - content: "JSON"; -} -.language-rman>.copy-code-button::after { - content: "RMAN"; -} -.copy-code-button::after { - content: "Copy"; -} -/*================ Graph ===================*/ -/*Graph Pane Style*/ -.workspace-split.mod-left-split .view-content, .workspace-split.mod-right-split .view-content { - border-image-slice: 1; - border-image-source: linear-gradient(to right, var(--background-tertiary), var(--text-accent), var(--background-tertiary)); - border-bottom: 2px solid; -} -/*Styles Graph Controls*/ -.graph-controls, .graph-controls.is-close, .graph-controls:not(.is-close), .workspace-split:not(.mod-root) .graph-controls.is-close { - background: var(--background-settings-alt); - backdrop-filter: blur(5px) saturate(120%); - padding: 2px; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-right: 1px solid; - border-left: 1px solid; -} -/*Buttons Spacing*/ -.graph-controls-button { - padding: 5px; - border-radius: 5px; -} -.graph-controls .setting-item { - padding: 7px; -} -/*Hover Graph Control Items*/ -.tree-item-self:hover { - background: var(--text-selection); -} -/*Active Graph Control Items*/ -.tree-item-self:active { - background: var(--color-accent-active); -} -body:not(.is-grabbing) .tree-item-self.is-clickable:active { - background-color: var(--custom-acc-active); -} -/*Spacing for Graph Control Items*/ -.graph-control-section>.tree-item-self { - padding-left: 10px; -} -/*Readjusts item width*/ -.graph-control-section.mod-filter>.tree-item-self { - margin-right: 25%; -} -/*Removes border*/ -.graph-control-section { - border-bottom: none; -} -.graph-control-section-header { - color: var(--text-accent); -} -/*============== Tables ================*/ -/*Add Glow Effect to Table and centers table*/ -.markdown-rendered table, .markdown-source-view.mod-cm6 .cm-table-widget table { - box-shadow: 0em 0em 0.75em 0.01em var(--text-accent), inset 0em 0em 0.35em var(--text-accent); - margin-inline: auto; - margin-top:16px; - margin-bottom:20px; -} -/*Accent's Table*/ -.markdown-rendered td, .markdown-rendered th, .markdown-rendered thead tr>* { - border: 1px solid var(--text-accent) !important; - box-shadow: inset 0em 0em 0.35em var(--text-accent); - max-width: var(--table-column-max-width); -} -/*=============== Heading Styling ==========================*/ -/* Heading Line Reader */ -.markdown-preview-view hr { - margin-block-start: 3em; - border: solid 0px transparent; - height: 0; - border-bottom: 2.25px solid; - border-image-slice: 1; - border-image: linear-gradient(to left, transparent, var(--text-accent) 45%, transparent 45%, transparent 55%, var(--text-accent) 5%, transparent) 3; - text-align: -webkit-center; - margin-block-end: 2.5em; -} -/* Heading Line Preview */ -.hr.cm-line hr { - margin-block-start: 2em; - margin-block-end: 0.8em; - border-top: 2.25px solid !important; - border-image-slice: 1; - border-width: 1px; - text-align: -webkit-center; - border-image: linear-gradient(to left, transparent, var(--text-accent) 45%, transparent 45%, transparent 55%, var(--text-accent) 5%, transparent) 3; -} -/*New Default CyberGlow Heading*/ -.CG-NewObsidian-hr .markdown-preview-view hr::after, body:not(.CG-OG-hr, .CG-Hyrule-hr, .CG-Apple-hr, .CG-Windows-hr, .CG-Lorule-hr, -.CG-ClassicObsidian-hr) .markdown-preview-view hr::after { - content: ' '; - -webkit-mask-image: var(--newoutlined-logo); - -webkit-mask-size: 100%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-45%, -50%); - padding: 1rem; -} -.CG-NewObsidian-hr .hr.cm-line hr::after, body:not(.CG-OG-hr, .CG-Hyrule-hr, .CG-Apple-hr, .CG-Windows-hr, .CG-Lorule-hr, -.CG-ClassicObsidian-hr) .hr.cm-line hr::after { - content: ' '; - -webkit-mask-image: var(--newoutlined-logo); - -webkit-mask-size: 80%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-40%, -33%); - padding: 1rem; -} -/*Classic Obsidian Logo Heading*/ -.CG-ClassicObsidian-hr .markdown-preview-view hr::after { - content: ' '; - -webkit-mask-image: var(--outlined-logo); - -webkit-mask-size: 65%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-35%, -50%); - padding: 1rem; -} -.CG-ClassicObsidian-hr .hr.cm-line hr::after{ - content: ' '; - -webkit-mask-image: var(--outlined-logo); - -webkit-mask-size: 60%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-30%, -35%); - padding: 1rem; -} -/*Custom Heading Shiekal*/ -.CG-OG-hr .markdown-preview-view hr::after { - content: '₪'; - display: inline-block; - font-size: 1.65rem; - position: absolute; - left: 50%; - transform: translate(-50%, -50%); - transform-origin: 5% 50%; - padding: 0.5rem; - color: #E69900; - text-shadow: 0 0 5px #ffaa00, 0 0 10px #ffaa00, 0 0 20px #ffaa00, 0 0 40px #ffaa00, 0 0 80px #ffaa00; -} -.CG-OG-hr .hr.cm-line hr::after { - content: '₪'; - display: inline-block; - font-size: 1.65rem; - position: absolute; - transform: translate(-50%, -50%); - transform-origin: 5% 50%; - margin-top: -0.2rem; - color: #E69900; - text-shadow: 0 0 5px #ffaa00, 0 0 10px #ffaa00, 0 0 20px #ffaa00, 0 0 40px #ffaa00, 0 0 80px #ffaa00; -} -/*Custom Heading Apple*/ -.CG-Apple-hr .markdown-preview-view hr::after { - content: ' '; - -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47c-1.34.03-1.77-.79-3.29-.79c-1.53 0-2 .77-3.27.82c-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51c1.28-.02 2.5.87 3.29.87c.78 0 2.26-1.07 3.81-.91c.65.03 2.47.26 3.64 1.98c-.09.06-2.17 1.28-2.15 3.81c.03 3.02 2.65 4.03 2.68 4.04c-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5c.13 1.17-.34 2.35-1.04 3.19c-.69.85-1.83 1.51-2.95 1.42c-.15-1.15.41-2.35 1.05-3.11Z'/%3E%3C/svg%3E"); - -webkit-mask-size: 109%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-50%, -55%); - padding: 1rem; -} -.CG-Apple-hr .hr.cm-line hr::after { - content: ' '; - -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47c-1.34.03-1.77-.79-3.29-.79c-1.53 0-2 .77-3.27.82c-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51c1.28-.02 2.5.87 3.29.87c.78 0 2.26-1.07 3.81-.91c.65.03 2.47.26 3.64 1.98c-.09.06-2.17 1.28-2.15 3.81c.03 3.02 2.65 4.03 2.68 4.04c-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5c.13 1.17-.34 2.35-1.04 3.19c-.69.85-1.83 1.51-2.95 1.42c-.15-1.15.41-2.35 1.05-3.11Z'/%3E%3C/svg%3E"); - -webkit-mask-size: 120%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-58%, -45%); - padding: 1rem; -} -/*Custom Heading Microsoft*/ -.CG-Windows-hr .markdown-preview-view hr::after { - content: ' '; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M0 0v11.408h11.408V0zm12.594 0v11.408H24V0zM0 12.594V24h11.408V12.594zm12.594 0V24H24V12.594z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 65%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-35%, -50%); - padding: 1rem; -} -.CG-Windows-hr .hr.cm-line hr::after { - content: ' '; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M0 0v11.408h11.408V0zm12.594 0v11.408H24V0zM0 12.594V24h11.408V12.594zm12.594 0V24H24V12.594z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 80%; - -webkit-mask-repeat: no-repeat; - display: inline-block; - background-color: var(--text-accent); - position: absolute; - transform: translate(-35%, -30%); - padding: 1rem; -} - -/*----------------- Menu --------------------*/ -/*Removes Unneeded Menu Seperator*/ -.menu-separator { - display: none; -} -/*Removes disabled (greyed out) items until they are enabled*/ -.menu-item.is-disabled { - display: none; -} -/*Adds Styling to Menu Dropdown*/ -.menu { - background: var(--background-settings); - backdrop-filter: blur(5px) saturate(120%) !important; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 2px solid; - border-bottom: 2px solid; -} -/*Colors Menu Text*/ -.menu-item, .menu-item-icon { - color: var(--text-faint); -} -/*Adds some spacing for the items*/ -.menu-item { - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Colors Menu Text on hover*/ -.menu-item:hover, .menu-item-icon:hover, .menu-item.selected { - color: var(--text-accent); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 1px solid; - border-bottom: 1px solid; -} -/*Fixes Highlight Issue for Icons in Menu*/ -.menu-item:hover .menu-item-icon, .menu-item.selected .menu-item-icon { - border: none; - background: transparent; - color: var(--text-accent); -} -/*Colors Menu Text on active*/ -.menu-item:active, .menu-item:active:not(.is-disabled):not(.is-label) { - color: var(--text-accent); - background-color: var(--color-accent-active); -} -/*Displays Red for Permanent Deletion */ -.menu-item.is-warning { - background-color: var(--background-close); - color: var(--text-close-color); - margin-top: 5px; -} -.menu-item.is-warning .menu-item-icon { - color: var(--text-close-color); -} -/*Styling on Warning active*/ -.menu-item.is-warning:active { - background: var(--background-close-active) !important; - color: var(--text-accent); -} -/*Resolves Styling on Warning Hover*/ -.menu-item.is-warning:hover, .menu-item.is-warning.selected, .menu-item:hover.is-warning:not(.is-disabled):not(.is-label), -.menu-item.selected.is-warning:not(.is-disabled):not(.is-label) { - color: var(--text-close-color); - background: var(--background-close-hover); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-close-color), transparent); - border-top: 1px solid; - border-bottom: 1px solid; -} -.menu-item.is-warning.selected .menu-item-icon { - color: var(--text-close-color); -} -.clickable-icon:active { - background-color: var(--tab-background-clicked); -} -/*================== Headers ======================*/ -/*Centered Header 1*/ -.markdown-preview-section h1, .cm-header-1, .markdown-rendered h1 { - font-family: var(--title-heading); - text-align: center; -} -/*Headers Styling Preview/Source*/ -.cm-s-obsidian .HyperMD-header-2, .cm-s-obsidian .HyperMD-header-3, .cm-s-obsidian .HyperMD-header-4, .cm-s-obsidian .HyperMD-header-5, -.cm-s-obsidian .HyperMD-header-6, .metadata-properties-heading { - padding: 15px 0px 0px 0px !important; - position: relative; - border-bottom: 2px solid; - border-image-slice: 1; -} -/*Headers Styling Read*/ -.markdown-preview-view h2, h2, .markdown-preview-view h3, h3, .markdown-preview-view h4, h4, .markdown-preview-view h5, h5, .markdown-preview-view h6, h6 { - padding-bottom: 5px; border-bottom: 2px solid; border-image-slice: 1; -} - -/*Glow for Heading 1*/ -.cm-header-1:not(.cm-formatting), h1, .metadata-properties-heading, .cm-formatting-header:is(.cm-header-1) { - text-shadow: - 0 0 5px var(--h1-glow), 0 0 10px var(--h1-glow), - 0 0 20px var(--h1-glow), 0 0 40px var(--h1-glow), 0 0 45px var(--h1-glow); - color: var(--text-normal); -} - -/*Glow and Colors for Heading 2*/ -.cm-s-obsidian .HyperMD-header-2, .markdown-preview-view h2, h2, .cm-formatting-header:is(.cm-header-2) { - border-image-source: linear-gradient(to right, var(--h2-glow), transparent); - text-shadow: 0 0 5px var(--h2-glow), 0 0 10px var(--h2-glow), 0 0 20px var(--h2-glow), 0 0 10px var(--h2-glow); - color: var(--text-normal); -} -/*Glow and Colors for Heading 3*/ -.cm-s-obsidian .HyperMD-header-3, .markdown-preview-view h3, h3, .cm-formatting-header:is(.cm-header-3) { - border-image-source: linear-gradient(to right, var(--h3-glow), transparent); - text-shadow: 0 0 5px var(--h3-glow), 0 0 10px var(--h3-glow), 0 0 20px var(--h3-glow), 0 0 10px var(--h3-glow); - color: var(--text-normal); -} -/*Glow and Colors for Heading 4*/ -.cm-s-obsidian .HyperMD-header-4, .markdown-preview-view h4, h4, .cm-formatting-header:is(.cm-header-4) { - border-image-source: linear-gradient(to right, var(--h4-glow), transparent); - text-shadow: 0 0 5px var(--h4-glow), 0 0 10px var(--h4-glow), 0 0 20px var(--h4-glow), 0 0 10px var(--h4-glow); - color: var(--text-normal); -} -/*Glow and Colors for Heading 5*/ -.cm-s-obsidian .HyperMD-header-5, .markdown-preview-view h5, h5, .cm-formatting-header:is(.cm-header-5) { - border-image-source: linear-gradient(to right, var(--h5-glow), transparent); - text-shadow: 0 0 5px var(--h5-glow), 0 0 10px var(--h5-glow), 0 0 20px var(--h5-glow), 0 0 10px var(--h5-glow); - color: var(--text-normal); -} -/*Glow and Colors for Heading 6*/ -.cm-s-obsidian .HyperMD-header-6, .markdown-preview-view h6, h6, .cm-formatting-header:is(.cm-header-6) { - border-image-source: linear-gradient(to right, var(--h6-glow), transparent); - text-shadow: 0 0 5px var(--h6-glow), 0 0 10px var(--h6-glow), 0 0 20px var(--h6-glow), 0 0 35px var(--h6-glow); - color: var(--text-normal); -} -/*Return of Heading numbers Styled*/ -:not(.cm-active).cm-line span:not(.cm-formatting-header):not(.cm-hashtag):not(.cm-inline-code):not(.cm-highlight).cm-header::before { - font-size: 0.7rem; - margin-right: 5px; - font-weight: bold; -} -/*Removes redundant heading number for links and tags*/ -.mod-cm6.is-live-preview div:not(.cm-active).cm-line .cm-header~span.cm-header::before, -.mod-cm6.is-live-preview div:not(.cm-active).cm-line .cm-header.cm-hmd-internal-link::before { - display: none; -} -/*Sets content for heading numbers h1-h6*/ -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-1::before { - content: 'H1'; - margin-top: calc(var(--h1-size) - 0.1em); -} -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-2::before { - content: 'H2'; - margin-top: calc(var(--h2-size) - 0.2em); -} -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-3::before { - content: 'H3'; - margin-top: calc(var(--h3-size) - 0.2em); -} -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-4::before { - content: 'H4'; - margin-top: calc(var(--h4-size) - 0.3em); -} -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-5::before { - content: 'H5'; - margin-top: calc(var(--h5-size) - 0.4em); -} -body:not(.mini-header-hide) :not(.cm-active).cm-line span:not(.cm-formatting-header).cm-header-6::before { - content: 'H6'; - margin-top: calc(var(--h6-size) - 0.4em); -} -/*------------------- Buttons and dropdowns ---------------------*/ -/*Button and Dropdown Styling*/ -button:not(.clickable-icon):not(.markdown-rendered button.copy-code-button), .dropdown, .search-results-info .dropdown, .style-settings-export, -.style-settings-import, .metadata-container .metadata-add-button { - color: var(--text-accent); - box-shadow: 0 0 0.2em var(--text-accent); - background-color: var(--interactive-normal); - border-image-slice: 1; - border-top: 3px solid; - border-bottom: 3px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} - -@keyframes fadeHoverGlow { - 0% { box-shadow: 0 0 0.2em var(--text-accent);} - 100% { box-shadow: 0 0 0.5em var(--text-accent);} -} -@keyframes fadeHoverBackground { - 0% {background-color: var(--interactive-normal);} - 100% {background-color: var(--text-selection);} -} - -/*Button and Dropdown hover Styling*/ -button:not(.clickable-icon):not(.markdown-rendered button.copy-code-button):hover, .dropdown:hover, .style-settings-export:hover, - .style-settings-import:hover, .metadata-container .metadata-add-button:hover { - animation: 0.4s fadeHoverGlow forwards, 0.2s fadeHoverBackground forwards, 0.2s bighover forwards; -} - -/*Button and Dropdown active Styling*/ -button:not(.clickable-icon):not(.markdown-rendered button.copy-code-button):active, .dropdown:focus, .style-settings-export:active, -.style-settings-import:active, .metadata-container .metadata-add-button:active { - animation: 0.3s bigpressed forwards; - box-shadow: 0 0 0.9em var(--text-accent); - background-color: var(--color-accent-active); -} -/*Search dropdown*/ -.search-results-info .dropdown { - text-align-last: center; - max-width: 50%; -} -/*Adds padding and reduces size for Style Settings Ex/Import*/ -.style-settings-export, .style-settings-import { - font-size: small; - padding: 3px; -} -/*Hides Disabled buttons*/ -.clickable-icon[aria-disabled='true'] { - visibility: hidden; -} -/*Adds hover Settings small buttons*/ -.setting-editor-extra-setting-button:hover { - color: var(--activetab-highlight); -} -/*------------ Settings: Close Buttons --------------------*/ -/*Close Button on Hover*/ -.modal-close-button:hover, .document-search-close-button:hover, a.kanban-plugin__search-cancel-button.clickable-icon:hover, -a.kanban-plugin__item-postfix-button.is-enabled.clickable-icon:hover, .graph-controls:not(.is-close) .graph-controls-button.mod-close:hover, -.workspace .mod-root .workspace-tab-header .workspace-tab-header-inner-close-button:hover, .multi-select-pill-remove-button:hover{ - color: var(--text-close-color); - background-color: var(--background-close-hover); -} -/*Close Button on active*/ -.modal-close-button:active, .document-search-close-button:active, a.kanban-plugin__search-cancel-button.clickable-icon:active, -a.kanban-plugin__item-postfix-button.is-enabled.clickable-icon:active, .multi-select-pill-remove-button:active, -.workspace .mod-root .workspace-tab-header .workspace-tab-header-inner-close-button:active, -.graph-controls:not(.is-close) .graph-controls-button.mod-close:active { - color: var(--text-close-color); - background-color: var(--background-close-active); -} -/*Pinned Tab*/ -.mod-root .mod-pinned:hover { - background-color: var(--background-modifier-hover); -} -/*================= Settings ====================*/ -/*Style Left Panel Settings Headings*/ -.vertical-tab-header-group-title { - color: var(--text-accent); - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, var(--text-accent), transparent); - padding-bottom: 0px; - margin-bottom: 5px; -} -/*Settings*/ -body:not(.is-phone) .vertical-tab-header-group .vertical-tab-header-group-title { - display: flex; - align-items: center; - padding-left: 0px; -} -/*Options Icon*/ -body:not(.is-phone) .vertical-tab-header-group:nth-last-of-type(3) .vertical-tab-header-group-title::before { - content: " "; - width: 16px; - height: 16px; - background-color: currentColor; - margin-right: 4px; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="16" height="16" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M6 9a2 2 0 0 1 1.937 1.5H13.5a.5.5 0 0 1 .09.992l-.09.008l-5.563.001a2 2 0 0 1-3.874 0L2.5 11.5a.5.5 0 0 1-.09-.992l.09-.008h1.563A2 2 0 0 1 6 9Zm0 1a1 1 0 1 0 0 2a1 1 0 0 0 0-2Zm4-7a2 2 0 0 1 1.937 1.5H13.5a.5.5 0 0 1 .09.992l-.09.008l-1.563.001a2 2 0 0 1-3.874 0L2.5 5.5a.5.5 0 0 1-.09-.992L2.5 4.5h5.563A2 2 0 0 1 10 3Zm0 1a1 1 0 1 0 0 2a1 1 0 0 0 0-2Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Core Plugins Icon*/ -body:not(.is-phone) .vertical-tab-header-group:nth-last-of-type(2) .vertical-tab-header-group-title::before { - content: " "; - width: 16px; - height: 16px; - background-color: currentColor; - margin-right: 4px; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M7 3a2 2 0 0 1 4 0h1.5A1.5 1.5 0 0 1 14 4.5V7h-1a1 1 0 0 0 0 2h1v2.5a1.5 1.5 0 0 1-1.5 1.5H11a2 2 0 0 1-4 0H5.5A1.5 1.5 0 0 1 4 11.5V10a2 2 0 0 1 0-4V4.5A1.5 1.5 0 0 1 5.5 3H7Zm2-1a1 1 0 0 0-1 1v1H5.5a.5.5 0 0 0-.5.5V7H4a1 1 0 0 0 0 2h1v2.5a.5.5 0 0 0 .5.5H8v1a1 1 0 0 0 2 0v-1h2.5a.5.5 0 0 0 .5-.5V10a2 2 0 0 1 0-4V4.5a.5.5 0 0 0-.5-.5H10V3a1 1 0 0 0-1-1Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Community Plugins Icon*/ -body:not(.is-phone) .vertical-tab-header-group:nth-last-of-type(1) .vertical-tab-header-group-title::before { - content: " "; - width: 16px; - height: 16px; - background-color: currentColor; - margin-right: 4px; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="16" height="16" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M13.25 1.75a.75.75 0 0 0-1.5 0v1h-1a.75.75 0 0 0 0 1.5h1v1a.75.75 0 0 0 1.5 0v-1h1a.75.75 0 0 0 0-1.5h-1v-1ZM4 2a2 2 0 0 0-2 2v7.75a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.5a2 2 0 0 0-2-2H8.75V4a2 2 0 0 0-2-2H4Zm3.25 6.75v3.5H4a.5.5 0 0 1-.5-.5v-3h3.75Zm0-4.75v3.25H3.5V4a.5.5 0 0 1 .5-.5h2.75a.5.5 0 0 1 .5.5ZM12 12.25H8.75v-3.5H12a.5.5 0 0 1 .5.5v2.5a.5.5 0 0 1-.5.5Z"%2F%3E%3C%2Fsvg%3E'); -} -/*------------------ Settings: Toggles --------------------*/ -/*Add Glow to Toggle and adds fluid animations*/ -.checkbox-container, .checkbox-container:hover{ - box-shadow: 0 0 0.1em transparent; - transition: background 0.3s ease-in, box-shadow 0.4s ease-in; -} -.checkbox-container.is-enabled { - box-shadow: 0 0 0.7em var(--text-accent); - transition: background 0.3s ease-in, box-shadow 0.4s ease-in; -} - -.checkbox-container:not(.is-enabled):after{ - transition: background 0.6s ease-in, box-shadow 0.6s ease-in; -} - -.checkbox-container:after{ -transition: background 0.3s ease-in, box-shadow 0.3s ease-in; -} -/*Colors Toggle*/ -.checkbox-container.is-enabled:after { - background: var(--color-glow); - transition: transform 0.15s ease-in-out, width 0.1s ease-in-out, left 0.1s ease-in-out, background 0.3s ease-in, box-shadow 0.3s ease-in; - -} -/*Style Slider*/ -input[type='range'], -body:not(.is-mobile) input[type=range]:focus { - background-color: var(--text-accent); - box-shadow: 0 0 0.5em var(--text-accent); -} -/*------------------- Settings: Background -------------------------*/ - -/*Corrects coloring for headings in settings items*/ -.setting-item-name { - color: var(--text-accent); -} -/*Styles Settings Modal*/ -.modal { - border-radius: 3px; - background: var(--background-settings); - backdrop-filter: blur(5px) saturate(120%) !important; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 3px solid; - border-top: 3px solid; -} -body.is-frameless:not(.mod-macos):not(.is-mobile) .modal { - height: 95%; -} -/*Removes Line Seperator*/ -.modal.mod-settings .vertical-tab-header { - border-right: transparent; -} -/*Adds Header to Setting*/ -.modal.mod-settings .vertical-tab-content-container { - padding: 35px 0px 0px 0; -} -/*Styles Content of Setting*/ -.modal .setting-item { - background: var(--background-settings-2); - border-radius: 3px; - margin: 0px 0px 5px 0px; - border-color: transparent; - padding: 18px; -} -/*Adds Styled Seperation line*/ -.community-modal-search-results-wrapper { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 2px solid; - background-color: var(--background-primary); - border-radius: 3px; -} -/*Removes double background for settings (huh)*/ -.horizontal-tab-content, .vertical-tab-content, .vertical-tab-header, .modal-sidebar { - background: transparent; -} - -/*Textbox Styling*/ -textarea, input[type='text'], input[type='search'], input[type='email'], input[type='password'], input[type='number'], input.metadata-property-key-input[type='text'], -.metadata-property-value .multi-select-input, .metadata-property input[type='number'], .metadata-input-longtext{ - background: var(--background-settings-2); - text-align: center; - border-top: 0px solid transparent; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Textbox hover Styling*/ -textarea:hover, input[type='text']:hover, input[type='search']:hover, input[type='email']:hover, input[type='password']:hover, -.metadata-property-value .multi-select-input:hover{ - background: var(--text-selection); -} -/*Stylizes meta prop input text*/ -.metadata-property input[type='text']:hover, .metadata-property input[type='number']:hover, .metadata-input-longtext:hover{ - background: var(--text-selection); - border-top: 0px solid transparent; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Textbox active Styling*/ -textarea:active, textarea:focus, input[type='text']:active, input[type='search']:active, input[type='email']:active, input[type='password']:active, -input[type='number']:active, input[type='text']:focus, input[type='search']:focus, input[type='email']:focus, input[type='password']:focus, -input[type='number']:focus, textarea:focus-visible, input[type='text']:focus-visible, input[type='search']:focus-visible, select:focus, -input[type='email']:focus-visible, input[type='password']:focus-visible, input[type='number']:focus-visible, -.workspace-leaf.mod-active .view-header-title:focus, .metadata-property input[type='text']:focus, .metadata-property-value .multi-select-input:focus, -.metadata-property input[type='number']:focus, .metadata-input-longtext:focus { - border-top: 0px solid transparent; - box-shadow: none; - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background-color: var(--color-accent-active); -} -/*Styles metadata prop icon*/ -.metadata-property-icon{ - background-color: var(--color-accent-active); - color: var(--text-accent); - opacity: 1; - padding:var(--size-2-2); -} -.metadata-property-icon:before{ - width: 0; -} -/*Styles metadata prop icon on hover*/ -.metadata-property-icon:hover{ - background: var(--text-selection); -} -/*Removes unnecessary padding*/ -.metadata-property .multi-select-container{ - padding: 0; -} -/*Adds a small gap*/ -.metadata-property{ - gap: 3px; -} -/*Styles textbox and remove scrollbar from longtextbox*/ -.metadata-input-longtext, .metadata-input-text{ - height: var(--metadata-input-height); - -webkit-box-pack: center; - -webkit-box-orient: horizontal; -} -.metadata-input-longtext::-webkit-scrollbar{ - display: none; -} -/*Styles metadata frame highlight*/ -.metadata-property:hover, .metadata-property:focus-within { -box-shadow: 0 0 3px 0.2px var(--text-accent); -} -/*Remove Unnecessary highlighting*/ -.metadata-property-value:focus-within{ - background-color: transparent; -} -/**/ -.metadata-property ::-webkit-calendar-picker-indicator{ - padding:3px; - margin-left:-2px; -} -.metadata-property ::-webkit-calendar-picker-indicator:hover{ -background-color: var(--text-faint); -border-radius: 3px; -cursor: var(--cursor-link); -} -.metadata-property ::-webkit-calendar-picker-indicator:active{ -background-color: var(--text-accent); -} - -/*-------------------- Settings: Sidebar -----------------------*/ -/*Adds spacing for style and colors text*/ -.vertical-tab-nav-item { - color: var(--text-faint); - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Items hover styling*/ -body:not(.is-mobile) .vertical-tab-nav-item:not(.is-active):hover { - color: var(--text-accent); - border-image-slice: 1; - border-top: 1px solid; - border-bottom: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Items active styling*/ -.vertical-tab-nav-item.is-active, .horizontal-tab-nav-item.is-active:active, .vertical-tab-nav-item.is-active:active, -.horizontal-tab-nav-item.is-active:hover, .vertical-tab-nav-item.is-active:hover, .vertical-tab-nav-item:active { - color: var(--text-accent); - background: var(--color-accent-active); - border-image-slice: 1; - border-top: 2px solid; - border-bottom: 2px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*-------------- Text Finder --------------------*/ -/*Centers Finder Modal*/ -.document-search-container { - margin-left: 0px; -} -/*Adds styling for Finder*/ -.document-search-container { - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - width: 100%; -} -/*Corrects Background color*/ -body:not(.is-mobile) .document-search-container { - background-color: var(--background-settings); -} -/*----------- Settings: Community ---------------------*/ -/*Removes seperator*/ -.community-modal-details { - border-left: transparent; -} -.modal-setting-nav-bar { - border-bottom: transparent; -} -/*Corrects spacing for options*/ -.mod-community-modal .modal-sidebar .setting-item { - padding: 7px; - margin-left: 5px; -} -/*Corrects icon color*/ -.mod-community-modal .modal-sidebar button.clickable-icon { - color: var(--text-faint); -} -/*Spacing for Style*/ -.community-item { - border: transparent; - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - color: var(--text-faint); -} -/*Style on Hover*/ -.community-item:hover, .suggestion-item.is-selected:not(.mod-group) { - background-color: var(--text-selection); - border-bottom: 1px solid; - border-top: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - color: var(--text-accent); -} -/*Style on active*/ -body:not(.is-mobile) .community-item.is-selected, -.community-item.is-selected:hover { - background-color: var(--text-selection); - border-bottom: 2px solid; - border-top: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - color: var(--text-accent); -} -.community-item:active { - background-color: var(--color-accent-active); - border-bottom: 2px solid; - border-top: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - color: var(--text-accent); -} -/*Needed to correct the really not well implemented Font Coloring for Community items*/ -body:not(.is-mobile) .community-item.is-selected .community-item-author, .community-item.is-selected:hover .community-item-author, -.community-item.is-selected .community-item-repo, .community-item.is-selected:hover .community-item-repo, -.community-item.is-selected .community-item-downloads, .community-item.is-selected:hover .community-item-downloads, -.community-item.is-selected .community-item-updated, .community-item.is-selected:hover .community-item-updated, -.community-item:hover .community-item-downloads, .community-item:hover .community-item-author, .community-item:hover .community-item-name, -.community-item:hover .community-item-updated, .community-item:active .community-item-downloads, .community-item:active .community-item-author, -.community-item:active .community-item-name, .community-item:active .community-item-updated, .community-item.is-selected .community-item-downloads, -.community-item.is-selected .community-item-author, .community-item.is-selected .community-item-name, .community-item.is-selected .community-item-updated { - color: var(--text-accent); -} -.community-item-downloads, .community-item-author, .community-item-name, .community-item-updated { - color: var(--text-faint); -} -/*Flair Style*/ -.community-item.is-selected .flair, .community-item.is-selected:hover .flair, .flair.mod-pop { - color: var(--text-accent); - background-color: var(--text-selection); -} -/*Corrects Setting Header 1 Style*/ -.vertical-tab-content h1, .community-modal-info .markdown-rendered h1 { - text-align: center; - border-bottom: 2px solid !important; - border-image-slice: 1; - border-width: 1px; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Sets Sizing for Community Modal Controls*/ -.community-modal-controls { - max-width: var(--modal-community-sidebar-width); -} -/*================ Progress Bar ====================*/ -.progress-bar-subline { - border-radius: 10px; -} -/*========= Plugins =========*/ -/*--------- Calendar Plugin ----------*/ -.year.svelte-1vwr9dd.svelte-1vwr9dd{ - --interactive-accent: var(--text-normal); - } -/*---------------- Surfing Plugin ---------------*/ -/*Changes addressbar width*/ -.wb-search-bar { - width: 95%; -} -/*New Page changed radius*/ -.wb-page-search-bar-input-container, .wb-page-search-bar-input { - border-radius: 3px !important; -} -/*New page buttons more visible*/ -.wb-create-btn, .wb-search-btn, .wb-close-btn { - opacity: 0.8; -} -/*Colors settings icon on new page*/ -.surfing-settings-icon { - color: var(--text-accent); - cursor: help; -} -/*Colors refresh button*/ -.wb-refresh-button, .wb-refresh-button .lucide-refresh-cw { - color: var(--text-faint); -} -/*Colors refresh button on hover*/ -.wb-refresh-button .lucide-refresh-cw:hover { - color: var(--text-accent); -} -/*Removes unnecessary margins for Surfing Tabs*/ -.surfing_app_zUmbJa { - margin: 0px; - border-radius: 0px; - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Colors Font on active and selected texts for Surfing Tab*/ -.surfing_root_px3YjW.surfing_isSelected_px3YjW :where(.css-dev-only-do-not-override-1i536d8).ant-typography { - color: var(--text-accent); -} -/*Color font for Surfing Tab*/ -:where(.css-dev-only-do-not-override-1i536d8).ant-typography { - color: var(--text-faint); -} -/*Readjusts borders for Surfing Tabs*/ -.surfing_root_px3YjW { - border-left: 2px solid transparent; - border-right: 2.5px solid transparent; - border-bottom: 0px; -} -/*Styles Surfing Active and Selected Tabs*/ -.surfing_root_px3YjW:active, .surfing_root_px3YjW.surfing_isSelected_px3YjW { - background-color: var(--color-accent-active); - border-radius: 3px; - border-image-slice: 1; - opacity: 1; - border-right: 3.5px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 3px solid; -} -/*Styles Surfing hover Tabs*/ -.surfing_root_px3YjW:hover, .surfing_root_px3YjW.surfing_isSelected_px3YjW { - background-color: var(--text-selection); - border-radius: 3px; - border-image-slice: 1; - opacity: 1; - border-right: 2.5px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 2px solid; -} -/*Web Frame Slight Transparency*/ -.wb-frame { - opacity: 0.8; -} -/*Setting's Surfing Nav spaces and colored*/ -.wb-navigation-item { - color: var(--text-faint); - border-right: 1px solid transparent; - border-left: 1px solid transparent; -} -/*Setting's Surfing Nav on Hover*/ -.wb-navigation-item:hover { - background-color: var(--text-selection); - border-radius: 3px; - border-image-slice: 1; - opacity: 1; - border-right: 1px solid; - border-left: 1px solid; - border-image-source: linear-gradient(to bottom, transparent, var(--text-accent), transparent); -} -/*Setting's Surfing Nav on active*/ -.wb-navigation-item-selected, .wb-navigation-item:active, .wb-navigation-item-selected:hover { - background-color: var(--color-accent-active); - border-radius: 3px; - border-image-slice: 1; - opacity: 1; - border-right: 2px solid; - border-image-source: linear-gradient(to bottom, transparent, var(--text-accent), transparent); - border-left: 2px solid; -} -/*---------------- LanguageTool Plugin ------------*/ -/*LanguageTool popup styled*/ -.lt-predictions-container-glass.cm-tooltip, .lt-predictions-container.cm-tooltip, .lt-predictions-container-glass, .lt-predictions-container { - background: var(--background-settings-alt); - backdrop-filter: blur(5px) saturate(120%); - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); -} -/*Bottom Button resized*/ -button:not(.clickable-icon).lt-ignore-btn { - margin: 0px 10px 10px 10px; -} -/*------------------- Style Settings ------------------------*/ -/*Adds Styling to the Modal Title*/ -.modal-title { - text-align: center; - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - text-shadow: 0 0 5px var(--text-accent), - 0 0 10px var(--text-accent), - 0 0 20px var(--text-accent); -} -/*Colors text*/ -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item .setting-item-name, -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item .setting-item-description, .setting-item-description { - color: var(--text-faint); -} -/*Fixes weird reset button with Theme in Style Settings*/ -.themed-color-wrapper .pickr-reset>button { - padding: 5px; -} -/*Gives some and corrects height of group container*/ -.themed-color-wrapper>div+div { - margin-top: auto; - margin-left: 5px; -} -/*Adds Style to Setting Item in Style Settings*/ -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item { - background: var(--background-settings-alt); - border-radius: 5px; - padding: 10px; - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - margin-bottom: 10px; -} -/*Adds Style to Setting Item on hover in Style Settings*/ -.setting-item.setting-item-heading.style-settings-heading.is-collapsed:hover { - border-bottom: 1px solid; - border-top: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background: var(--text-selection); -} -/*Colors text when hover*/ -.setting-item.setting-item-heading.style-settings-heading.is-collapsed:hover .setting-item-name, -.setting-item.setting-item-heading.style-settings-heading.is-collapsed:hover .setting-item-description, -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item.setting-item-heading.style-settings-heading:not(.is-collapsed) .setting-item-description { - color: var(--text-accent); -} -/*Adds Style to Setting Item on active in Style Settings*/ -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item.setting-item-heading.style-settings-heading.is-collapsed:active, -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item.setting-item-heading.style-settings-heading:not(.is-collapsed) { - border-bottom: 1px solid; - border-top: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background: var(--color-accent-active); -} -/*Style Settings corrected background color*/ -.workspace-split.mod-horizontal .workspace-leaf-content[data-type="style-settings"]{ - background-color: var(--background-primary); - } -/*Colors text when active*/ -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item.setting-item-heading.style-settings-heading.is-collapsed:active, -body:not(.is-mobile) .workspace-leaf-content .view-content .setting-item.setting-item-heading.style-settings-heading:not(.is-collapsed) .setting-item-name { - color: var(--text-accent); -} -/*Fits Style Options within box*/ -.style-settings-container [data-level='1'].setting-item-heading.style-settings-heading.is-collapsed, -.style-settings-container [data-level='2'].setting-item-heading.style-settings-heading.is-collapsed, -.style-settings-container [data-level='3'].setting-item-heading.style-settings-heading.is-collapsed, -.style-settings-container [data-level='4'].setting-item-heading.style-settings-heading.is-collapsed, -.style-settings-container [data-level='5'].setting-item-heading.style-settings-heading.is-collapsed { - padding-left: 30px; -} -.style-settings-container [data-level='1'].setting-item-heading.style-settings-heading:not(.is-collapsed), -.style-settings-container [data-level='2'].setting-item-heading.style-settings-heading:not(.is-collapsed), -.style-settings-container [data-level='3'].setting-item-heading.style-settings-heading:not(.is-collapsed), -.style-settings-container [data-level='4'].setting-item-heading.style-settings-heading:not(.is-collapsed), -.style-settings-container [data-level='5'].setting-item-heading.style-settings-heading:not(.is-collapsed) { - padding-left: 30px; -} -/*=============== Mermaid Entity Box Color fix ================*/ -.attributeBoxOdd, .attributeBoxEven { - fill: var(--background-primary) !important; -} -/*================= Text Stylings ===================*/ -/*Styles Bold Text*/ -.cm-strong, strong { - color: var(--text-normal); - text-shadow: 0 0 5px var(--text-accent), 0 0 10px var(--text-accent), 0 0 20px var(--text-accent), 0 0 40px var(--text-accent); -} -/*Styles Italic Text*/ -.cm-em, em { - color: var(--text-normal); - text-shadow: 0 0 5px var(--text-accent), 0 0 10px var(--text-accent), 0 0 20px var(--text-accent), 0 0 40px var(--text-accent); -} -/*Styles Strikeout*/ -.cm-strikethrough, del, ul > li.task-list-item[data-task="x"], ul > li.task-list-item[data-task="X"] { - text-decoration-color: var(--text-close-color); - color: var(--text-close-color); - text-shadow: 0 0 5px var(--text-close-color), 0 0 10px var(--text-close-color), 0 0 20px var(--text-close-color), 0 0 40px var(--text-close-color); -} -/*Styles Underline*/ -span.cm-html-embed, u { - text-shadow: 0 0 5px var(--text-accent), 0 0 10px var(--text-accent), 0 0 20px var(--text-accent), 0 0 40px var(--text-accent); -} -/*================== Code Fence Style =====================*/ -/*Styles Code Blocks*/ -.markdown-preview-view pre, .markdown-rendered pre { - border-image-slice: 1; - border-top: 3px solid; - border-bottom: 3px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -.markdown-rendered pre code, .markdown-source-view.mod-cm6 .cm-line.HyperMD-codeblock{ -color:var(--text-normal); -} -/*Removes indent lines in code*/ -.markdown-source-view.mod-cm6 .cm-line.HyperMD-codeblock .cm-indent::before { - display: none; -} -/*Edit mode Adds styling at start of codeblock*/ -body:not(.no-codeblock-line-numbers) .cm-s-obsidian div.HyperMD-codeblock-begin-bg { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 2px solid; - padding-bottom: 15px; -} -/*Edit mode Adds styling at end of codeblock*/ -body:not(.no-codeblock-line-numbers) .cm-s-obsidian div.HyperMD-codeblock-end-bg { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; -} -/*Sets reset for code gutter*/ -body:not(.no-codeblock-line-numbers) .HyperMD-codeblock-begin { - counter-reset: codeblock-line-numbers; -} -/*Sets custom code gutterline*/ -body:not(.no-codeblock-line-numbers) .HyperMD-codeblock:not(.HyperMD-codeblock-begin, - .HyperMD-codeblock-end)::before { - counter-increment: codeblock-line-numbers; - content: counter(codeblock-line-numbers); - text-align: center; - width: 1.7em; - color: var(--text-faint); - position: absolute; - left: 0; -} -/*Spacing for gutterline*/ -body:not(.no-codeblock-line-numbers) .HyperMD-codeblock.cm-line:not(.HyperMD-codeblock-begin, - .HyperMD-codeblock-end) { - padding-left: 2em; -} - -/*Changes Code Font*/ -.cm-gutterElement, body:not(.no-codeblock-line-numbers) .HyperMD-codeblock:not(.HyperMD-codeblock-begin, .HyperMD-codeblock-end)::before, .markdown-rendered pre code, .markdown-source-view.mod-cm6 .cm-line.HyperMD-codeblock, .cm-s-obsidian span.cm-inline-code, .markdown-rendered code{ - font-family: 'OxaniumFira'; -} -/*================ Blockquotes Style ================*/ -/*Sets style for Blockquotes*/ -.markdown-preview-view blockquote { - padding: 2rem 2rem 1rem 3rem; - border-left: transparent; - background: linear-gradient(95deg, var(--text-selection), var(--block-color)); - border-radius: 3px; -} -/*Quote Styling for blockquotes*/ -.markdown-preview-view blockquote p:first-of-type::before { - content: '❝'; - font-family: arial; - opacity: .45; - font-size: 100px; - color: var(--text-accent); - position: absolute; - top: -3.75rem; - left: -0.3rem; - margin-left: -0.3em; - z-index: -1; -} -.markdown-preview-view blockquote p { - position: relative; -} -/*Corrects spacing of quote sign and text for blockquotes*/ -.markdown-preview-view blockquote> :first-child { - z-index: 1; - margin-left: -0.5em; -} -/*Code Segment Style*/ -.cm-s-obsidian span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code):not(.obsidian-search-match-highlight), .markdown-rendered code { - background: var(--background-modifier-hover); - border-radius: 5px; - padding-left: 5px; - padding-right: 5px; -} -/* blockquotes, embeds, tables inner/outer glow */ -.markdown-preview-view blockquote, .markdown-preview-view .markdown-embed, .markdown-preview-view .file-embed, .markdown-preview-view th { - box-shadow: 0em 0em 0.5em 0.1em var(--text-accent) , inset 0em 0em 2em var(--text-accent); -} -/*============== Empty Tab ==================*/ -/*Sets Style for Empty Title*/ -.empty-state-title { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 3px solid; - text-shadow: 0 0 5px var(--text-accent), 0 0 10px var(--text-accent), 0 0 20px var(--text-accent), 0 0 40px var(--text-accent), 0 0 80px var(--text-accent); -} -/*Sets Spacing for Empty Items*/ -body:not(.is-mobile) .empty-state-action { - border-bottom: 1px solid transparent; - border-top: 1px solid transparent; - padding: 0 5px 0 5px; -} -/*Sets Spacing for Empty Items hover*/ -body:not(.is-mobile) .empty-state-action:hover { - background: var(--text-selection); - border-radius: 3px; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; - border-top: 1px solid; -} -/*Sets Spacing for Empty Items active*/ -body:not(.is-mobile) .empty-state-action:active { - background-color: var(--color-accent-active); - border-radius: 3px; - box-shadow: 0 0 0.3em var(--text-accent); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; - border-top: 2px solid; -} -/*================ Canvas ================*/ -/*---------------- Canvas right hand controls --------------------*/ -/*Sets Style for Right controls*/ -.canvas-controls { - gap: 0px; - backdrop-filter: blur(5px) saturate(120%) !important; - border-left: 1px solid; - border-right: 1px solid; - border-image-slice: 1; - background-color: var(--background-settings); - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-radius: 5px; -} -/*Sets color for right control items*/ -.canvas-control-item { - border-bottom: none; - border-radius: 3px; - background-color: transparent; - color: var(--text-faint); -} -/*Sets color for right control items hover*/ -.canvas-control-item:hover { - background-color: var(--background-modifier-hover); - color: var(--text-accent); -} -/*Sets color for right control items active*/ -.canvas-control-item:active { - background-color: var(--color-accent-active); -} -/*Hides disabled items until they can be used*/ -.canvas-control-item.is-disabled { - display: none; -} -/*Removes Group Default Style*/ -.canvas-control-group { - border: none; - background: transparent; - box-shadow: none; - border-radius: 0px; -} -/*----------------- Canvas Menu Card ----------------------*/ -/*Card Menu styling*/ -.canvas-card-menu, .theme-dark .canvas-card-menu { - box-shadow: none; - backdrop-filter: blur(5px) saturate(120%) !important; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; - border-top: 1px solid; - background-color: var(--background-settings); -} -/*Resize Card Menu*/ -.canvas-card-menu .canvas-card-menu-button { - color: var(--text-faint); - margin: 2px; - padding: var(--size-2-2); - border-radius: 3px; -} -/*Removes unnecessary Bounce Animation*/ -.canvas-card-menu .canvas-card-menu-button.mod-draggable:hover svg { - transform: none; - filter: none; -} -/*Card Menu styling hover*/ -.canvas-card-menu .canvas-card-menu-button:hover, .canvas-card-menu .canvas-card-menu-button.mod-draggable:active { - color: var(--text-accent); - background-color: var(--background-modifier-hover); -} -/*Removes default Fill Coloring*/ -.theme-dark .canvas-card-menu .canvas-card-menu-button svg, .canvas-card-menu .canvas-card-menu-button svg { - fill: transparent; -} -/*--------------- Internal Canvas ----------------------*/ -/*Right Click Menu Stlying*/ -.canvas-menu { - background-color: var(--background-settings-alt); - backdrop-filter: blur(4px) saturate(120%) !important; - border: 0px solid var(--background-modifier-border); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; - border-top: 1px solid; -} -/*Canvas Container Styled*/ -.canvas-node.is-themed .canvas-node-container, .canvas-node-group .canvas-node-container, .canvas-node.is-selected .canvas-node-container { - border-color: var(--text-normal); - box-shadow: 0 0 10px 5px rgba(var(--canvas-color), 0.7), inset 0 0 20px 5px rgba(var(--canvas-color), 0.7), var(--shadow-stationary); -} -/*Canvas Container Styled selected*/ -.canvas-node.is-selected.is-themed .canvas-node-container, .canvas-node.is-focused.is-themed .canvas-node-container, -.canvas-node.is-focused .canvas-node-container { - box-shadow: 0 0 10px 5px rgba(var(--canvas-color), 0.9), inset 0 0 30px 10px rgba(var(--canvas-color), 0.7), var(--shadow-stationary); -} -/*Styles Group Label*/ -.canvas-wrapper:not(.mod-readonly) .canvas-group-label, .canvas-node-group.is-themed .canvas-group-label:not([contenteditable="true"]) { - background: rgba(var(--canvas-color), 0.6); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, rgba(var(--canvas-color)), transparent); - border-bottom: 2px solid; - border-top: 2px solid; - margin-top: -10px; -} -/*Styles Node Labels*/ -.canvas-node-label { - color: var(--text-accent); - padding: 5px; - background: rgba(var(--canvas-color), 0.6); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, rgba(var(--canvas-color)), transparent); - border-bottom: 2px solid; - border-top: 2px solid; - margin-top: -5px; - border-radius: 3px; - cursor: pointer; -} -/*=============== File Explorer Icon for files/folders ========================*/ -/*Removes Collapse Chevron in Nav File Tree Only*/ -.tree-item.nav-folder .tree-item-icon.collapse-icon.nav-folder-collapse-indicator{ - display: none; -} -/*Shifts Content to the left*/ -.nav-file-title-content, .nav-folder-title-content { - margin-left: -20px; -} -/*Opened Folder svg not Collapsed and sets style for folder icons*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-folder-title-content::before { - margin-right: 4px; - position: relative; - content: " "; - display: inline-block; - width: 20px; - height: 20px; - vertical-align: -5px; - background-color: var(--custom-acc-faint); - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M3 3a2 2 0 0 0-2 2v6c0 .413.125.797.34 1.116L2.81 7.08A1.5 1.5 0 0 1 4.25 6h8.753v-.004a2 2 0 0 0-2-2H6.175l-1.11-.887A.5.5 0 0 0 4.753 3H3Zm11.941 4.64a.5.5 0 0 0-.48-.64H4.25a.5.5 0 0 0-.48.36l-1.46 5a.5.5 0 0 0 .48.64h9.46a1.5 1.5 0 0 0 1.44-1.08l1.251-4.28Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-repeat: no-repeat; - -webkit-mask-size: 100%; -} -/*Closed Folder svg Colapsed */ -.workspace-leaf-content[data-type="file-explorer"] .is-collapsed .nav-folder-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 28 28"%3E%3Cpath fill="currentColor" d="M15.821 6.5h7.929a2.25 2.25 0 0 1 2.229 1.938l.016.158l.005.154v13a2.25 2.25 0 0 1-2.096 2.245L23.75 24H4.25a2.25 2.25 0 0 1-2.245-2.096L2 21.75V10.499l8.207.001l.196-.009a2.25 2.25 0 0 0 1.088-.393l.156-.12L15.821 6.5ZM10.207 4c.46 0 .908.141 1.284.402l.156.12l2.103 1.751l-3.063 2.553l-.085.061a.75.75 0 0 1-.29.106L10.206 9L2 8.999V6.25a2.25 2.25 0 0 1 2.096-2.245L4.25 4h5.957Z"%2F%3E%3C%2Fsvg%3E'); -} -/* File svg and sets style for file icons*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title .nav-file-title-content::before { - margin-right: 4px; - position: relative; - content: " "; - display: inline-block; - width: 20px; - height: 20px; - vertical-align: -5px; - -webkit-mask-repeat: no-repeat; - background-color: var(--custom-acc-faint); - -webkit-mask-size: 100%; - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M8 4.5V1H4.5A1.5 1.5 0 0 0 3 2.5v11A1.5 1.5 0 0 0 4.5 15h7a1.5 1.5 0 0 0 1.5-1.5V6H9.5A1.5 1.5 0 0 1 8 4.5Zm1 0V1.25L12.75 5H9.5a.5.5 0 0 1-.5-.5ZM5.5 8h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1ZM5 10.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5Zm.5 1.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1Z"%2F%3E%3C%2Fsvg%3E'); -} -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title:hover .nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-folder-title:hover .nav-folder-title-content::before { - background-color: var(--custom-acc-text); -} -/*Vault svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M14 13.5a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3ZM2 7.75A3.75 3.75 0 0 1 5.75 4h12.5A3.75 3.75 0 0 1 22 7.75v8.5A3.75 3.75 0 0 1 18.25 20H5.75A3.75 3.75 0 0 1 2 16.25v-8.5ZM5.75 7a.75.75 0 0 0-.75.75v8.5a.75.75 0 0 0 1.5 0v-8.5A.75.75 0 0 0 5.75 7Zm5.53 1.22a.75.75 0 1 0-1.06 1.06l1.195 1.196A2.985 2.985 0 0 0 11 12c0 .556.151 1.077.415 1.524L10.22 14.72a.75.75 0 1 0 1.06 1.06l1.196-1.195c.447.264.968.415 1.524.415s1.077-.151 1.524-.415l1.196 1.195a.75.75 0 1 0 1.06-1.06l-1.195-1.196c.264-.447.415-.968.415-1.524s-.151-1.077-.415-1.524L17.78 9.28a.75.75 0 0 0-1.06-1.06l-1.196 1.195A2.986 2.986 0 0 0 14 9c-.556 0-1.077.151-1.524.415L11.28 8.22Z"%2F%3E%3C%2Fsvg%3E'); - background-color: var(--custom-acc-text); -} -/*Applies Pen svg for active file*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title.is-active .nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M10.733 2.56a1.914 1.914 0 0 1 2.707 2.708L12.707 6l.263.263a1.75 1.75 0 0 1 0 2.474l-1.116 1.117a.5.5 0 0 1-.708-.708l1.117-1.116a.75.75 0 0 0 0-1.06L12 6.707l-5.955 5.955a1.65 1.65 0 0 1-.644.398l-2.743.914a.5.5 0 0 1-.632-.632l.914-2.743a1.65 1.65 0 0 1 .398-.644l7.395-7.395Z"%2F%3E%3C%2Fsvg%3E'); - background-color: var(--custom-acc-text); -} -/*Styles when item has focus*/ -.workspace-leaf.mod-active .tree-item-self.has-focus{ - box-shadow: 0 0 4px 2px var(--text-accent); -} -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M6 1.002h3v3.5a1.5 1.5 0 0 0 1.5 1.5H14v6.996a2 2 0 0 1-2 2H8.666A5.5 5.5 0 0 0 4 5.207V3.002a2 2 0 0 1 2-2Zm4.5 4h3.497l-3.989-4H10v3.5a.5.5 0 0 0 .5.5ZM10 10.5a4.5 4.5 0 1 1-9 0a4.5 4.5 0 0 1 9 0Zm-4.5 1.88a.625.625 0 1 0 0 1.25a.625.625 0 0 0 0-1.25Zm0-4.877c-1.048 0-1.864.818-1.853 1.955a.5.5 0 0 0 1-.01c-.006-.579.36-.945.853-.945c.472 0 .853.392.853.95c0 .202-.07.315-.36.544l-.277.215C5.21 10.616 5 10.929 5 11.5a.5.5 0 0 0 .992.09l.011-.156c.017-.148.1-.254.346-.448l.277-.215c.513-.41.727-.732.727-1.318c0-1.104-.822-1.95-1.853-1.95Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Sets Archive svg for zipped files*/ -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".zip"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".7z"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".rar"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".zipx"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".arc"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".pea"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".gzip"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .is-unsupported[data-path$=".b1"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M12.005 4.5h-1.44L8.158 7.033l-.111.106a1.5 1.5 0 0 1-.823.353L7.07 7.5H2v7l.005.164A2.5 2.5 0 0 0 4.5 17h8.504v-1.941a.515.515 0 0 1 0-.117L13.002 14h-.498a.5.5 0 0 1 0-1h.497v-2H12.5a.5.5 0 0 1 0-1h.5V9h-.495a.5.5 0 0 1-.5-.5v-4Zm2 0h-1V8h1V4.5Zm1 0h.495a2.5 2.5 0 0 1 2.479 2.174l.016.162L18 7v7.5a2.5 2.5 0 0 1-2.336 2.495L15.5 17h-1.496v-1.5h.496a.5.5 0 0 0 0-1h-.497v-.955a.478.478 0 0 0 0-.09V12.5h.502a.5.5 0 1 0 0-1h-.503L14 9h.505a.5.5 0 0 0 .5-.5v-4ZM7.932 3.21A1.5 1.5 0 0 0 7.167 3H4.5l-.164.005A2.5 2.5 0 0 0 2 5.5v1h5.07l.082-.007a.5.5 0 0 0 .22-.094l.061-.055L9.385 4.29L8.067 3.3l-.135-.09Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Video svg for supported video files*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".webm"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".mp4"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".mkv"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".mov"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".m4a"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M2 5.5A2.5 2.5 0 0 1 4.5 3h7A2.5 2.5 0 0 1 14 5.5v5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 10.5v-5Zm4.5.32v4.36c0 .25.274.403.487.273l3.259-1.992a.54.54 0 0 0 0-.922l-3.26-1.991a.32.32 0 0 0-.486.273Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Audio svg for supported audio files*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".3gp"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".flac"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".mp3"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".ogg"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".wav"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M15.987 3.016a1 1 0 0 0-1.285-.79l-7 2.187A1 1 0 0 0 7 5.368V13.5a2.5 2.5 0 1 0 1 2V8.368l7-2.188v2.843c.343.03.678.093 1 .184V3.18c0-.056-.005-.11-.013-.164ZM19 14.5a4.5 4.5 0 1 1-9 0a4.5 4.5 0 0 1 9 0Zm-2.263-.435l-2.994-1.65a.5.5 0 0 0-.742.437v3.3a.5.5 0 0 0 .742.438l2.994-1.65a.5.5 0 0 0 0-.875Z"%2F%3E%3C%2Fsvg%3E') -} -/*Picture svg for supported Picture files*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".svg"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".bmp"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".jpeg"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".jpg"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".png"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".gif"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M4.5 2A2.5 2.5 0 0 0 2 4.5v7c0 .51.152.983.414 1.379l4.384-4.384a1.7 1.7 0 0 1 2.404 0l4.384 4.384A2.49 2.49 0 0 0 14 11.5v-7A2.5 2.5 0 0 0 11.5 2h-7Zm7 3.502a1.002 1.002 0 1 1-2.004 0a1.002 1.002 0 0 1 2.004 0Zm1.379 8.084L8.495 9.202a.7.7 0 0 0-.99 0l-4.384 4.384c.396.262.87.414 1.379.414h7c.51 0 .983-.152 1.379-.414Z"%2F%3E%3C%2Fsvg%3E'); -} -/*PDF svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".pdf"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 32 32"%3E%3Cpath fill="currentColor" d="M9 16a1 1 0 0 0-1 1v5a1 1 0 1 0 2 0v-1h.5a2.5 2.5 0 0 0 0-5H9Zm1.5 3H10v-1h.5a.5.5 0 0 1 0 1Zm3.5-2a1 1 0 0 1 1-1h.5a3.5 3.5 0 1 1 0 7H15a1 1 0 0 1-1-1v-5Zm2 3.915a1.5 1.5 0 0 0 0-2.83v2.83ZM20 22v-5a1 1 0 0 1 1-1h3a1 1 0 1 1 0 2h-2v1h2a1 1 0 1 1 0 2h-2v1a1 1 0 1 1-2 0ZM17 9V2H8a3 3 0 0 0-3 3v8a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2v1a3 3 0 0 0 3 3h16a3 3 0 0 0 3-3v-1a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2v-1h-7a3 3 0 0 1-3-3Zm10 6v9H5v-9h22Zm-8-6V2.117a3 3 0 0 1 1.293.762l5.828 5.828A3 3 0 0 1 26.883 10H20a1 1 0 0 1-1-1Z"%2F%3E%3C%2Fsvg%3E'); -} -/*HTML svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".html"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="24" height="24" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M9 7a1 1 0 0 1 .117 1.993L9 9H7a3 3 0 0 0-.176 5.995L7 15h2a1 1 0 0 1 .117 1.993L9 17H7a5 5 0 0 1-.217-9.995L7 7h2Zm8 0a5 5 0 0 1 .217 9.995L17 17h-2a1 1 0 0 1-.117-1.993L15 15h2a3 3 0 0 0 .176-5.995L17 9h-2a1 1 0 0 1-.117-1.993L15 7h2ZM7 11h10a1 1 0 0 1 .117 1.993L17 13H7a1 1 0 0 1-.117-1.993L7 11h10H7Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Draw svg for Excalidraw*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".excalidraw.md"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M3 6a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v3.003c-.341.016-.68.092-1 .229V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9.5a.5.5 0 0 1-1 0V6Zm.4 11.035c.369.184.83.335 1.217.25c.251-.056.577-.193.943-.347c.885-.373 2.003-.843 2.862-.497c.637.256.584.981.405 1.33c-.035.066-.008.16.065.177a4.6 4.6 0 0 0 1.112.088a.917.917 0 0 1 .023-.14l.375-1.498a2.18 2.18 0 0 1 .578-1.02l4.83-4.83a1.87 1.87 0 1 1 2.644 2.645l-4.83 4.829a2.197 2.197 0 0 1-1.02.578l-1.222.305c-1.121.328-2.794.222-3.313-.183c-.449-.35-.467-.887-.316-1.244c.034-.08-.026-.183-.111-.17c-.495.07-.9.25-1.3.427c-.585.26-1.156.513-1.976.411c-.711-.088-1.107-.459-1.325-.825c-.122-.204.147-.392.36-.286Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Canvas svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".canvas"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M7.5 2v3H2v-.5A2.5 2.5 0 0 1 4.5 2h3Zm1 0v8H14V4.5A2.5 2.5 0 0 0 11.5 2h-3Zm5.5 9H8.5v3h3a2.5 2.5 0 0 0 2.5-2.5V11Zm-6.5 3V6H2v5.5A2.5 2.5 0 0 0 4.5 14h3Z"%2F%3E%3C%2Fsvg%3E'); -} -/*CSS svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".css"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M10 6.5V2H5.5A1.5 1.5 0 0 0 4 3.5v7.67c.552.196 1.03.548 1.38 1.004A2.498 2.498 0 0 1 9.5 12a2.5 2.5 0 0 1 4.5 1.5c0 .444-.193.843-.5 1.118c.319.425.5.949.5 1.5v.382a2.49 2.49 0 0 1-.5 1.5h1a1.5 1.5 0 0 0 1.5-1.5V8h-4.5A1.5 1.5 0 0 1 10 6.5Zm1 0V2.25L15.75 7H11.5a.5.5 0 0 1-.5-.5ZM3 12a2 2 0 0 0-2 2v2a2 2 0 1 0 4 0a.5.5 0 0 0-1 0a1 1 0 1 1-2 0v-2a1 1 0 1 1 2 0a.5.5 0 0 0 1 0a2 2 0 0 0-2-2Zm8.5 0a1.5 1.5 0 0 0-1.5 1.5v.382a1.5 1.5 0 0 0 .83 1.342l.894.447a.5.5 0 0 1 .276.447v.382a.5.5 0 0 1-1 0a.5.5 0 0 0-1 0a1.5 1.5 0 0 0 3 0v-.382a1.5 1.5 0 0 0-.83-1.342l-.894-.447a.5.5 0 0 1-.276-.447V13.5a.5.5 0 0 1 1 0a.5.5 0 0 0 1 0a1.5 1.5 0 0 0-1.5-1.5ZM6 13.5a1.5 1.5 0 0 1 3 0a.5.5 0 0 1-1 0a.5.5 0 0 0-1 0v.382a.5.5 0 0 0 .276.447l.895.447A1.5 1.5 0 0 1 9 16.118v.382a1.5 1.5 0 0 1-3 0a.5.5 0 0 1 1 0a.5.5 0 0 0 1 0v-.382a.5.5 0 0 0-.276-.447l-.895-.447A1.5 1.5 0 0 1 6 13.882V13.5Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Text File svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".txt"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 28 28"%3E%3Cpath fill="currentColor" d="M14 2a.75.75 0 0 1 .75.75V4h3.75V2.75a.75.75 0 0 1 1.5 0V4h.75A2.25 2.25 0 0 1 23 6.25v12.246h-4.754a2.25 2.25 0 0 0-2.25 2.25V25.5H6.75a2.25 2.25 0 0 1-2.25-2.25v-17A2.25 2.25 0 0 1 6.75 4H8V2.75a.75.75 0 0 1 1.5 0V4h3.75V2.75A.75.75 0 0 1 14 2Zm-6 8.25c0 .414.336.75.75.75h10a.75.75 0 0 0 0-1.5h-10a.75.75 0 0 0-.75.75Zm0 4.5c0 .414.336.75.75.75h10a.75.75 0 0 0 0-1.5h-10a.75.75 0 0 0-.75.75Zm0 4.5c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5h-4.5a.75.75 0 0 0-.75.75Zm9.496 5.81l5.065-5.064h-4.315a.75.75 0 0 0-.75.75v4.315Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Document svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".docx"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".doc"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".odt"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".wps"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".wpd"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M21.17 3.25q.33 0 .59.25q.24.24.24.58v15.84q0 .34-.24.58q-.26.25-.59.25H7.83q-.33 0-.59-.25q-.24-.24-.24-.58V17H2.83q-.33 0-.59-.24Q2 16.5 2 16.17V7.83q0-.33.24-.59Q2.5 7 2.83 7H7V4.08q0-.34.24-.58q.26-.25.59-.25m-.8 8.09l1.2 3.94H9.6l1.31-6.56H9.53l-.78 3.88l-1.11-3.75H6.5l-1.19 3.77l-.78-3.9H3.09l1.31 6.56h1.37m14.98 4.22V17H8.25v2.5m12.5-3.75v-3.12H12v3.12m8.75-4.37V8.25H12v3.13M20.75 7V4.5H8.25V7Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Presentation svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".key"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".pptx"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".ppt"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".odp"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".dps"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M13.25 3.25q1.21 0 2.33.31q1.12.32 2.09.89q.97.55 1.77 1.36q.79.8 1.36 1.77q.58.97.89 2.09Q22 10.79 22 12t-.31 2.33q-.31 1.12-.89 2.09q-.57.97-1.36 1.77q-.8.81-1.77 1.36q-.97.58-2.09.89q-1.12.31-2.33.31q-1.07 0-2.1-.25q-1.03-.26-1.95-.74q-.92-.49-1.7-1.18q-.81-.7-1.43-1.58H2.83q-.33 0-.59-.24Q2 16.5 2 16.17V7.83q0-.33.24-.58Q2.5 7 2.83 7h3.24q.62-.88 1.43-1.58q.78-.7 1.7-1.18q.93-.48 1.95-.74q1.03-.25 2.1-.25m.63 1.28v6.84h6.84q-.12-1.37-.69-2.56T18.55 6.7q-.91-.91-2.12-1.48q-1.2-.57-2.55-.69M9.5 10.84q0-.57-.2-.97q-.19-.41-.52-.66q-.33-.26-.78-.37q-.45-.12-1-.12H4.37v6.55h1.54V13h1.03q.48 0 .93-.16q.46-.14.82-.41q.36-.26.58-.67q.23-.4.23-.92m3.75 8.66q.98 0 1.89-.24q.9-.26 1.71-.68q.81-.45 1.48-1.08q.67-.61 1.17-1.37q.5-.77.83-1.66q.31-.89.39-1.85h-8.08V4.53q-1.45.12-2.73.76T7.67 7h3.5q.33 0 .59.25q.24.25.24.58v8.34q0 .33-.24.59q-.26.24-.59.24h-3.5q.53.6 1.17 1.06q.66.44 1.35.78q.72.33 1.49.49q.77.17 1.57.17M6.85 10q.47 0 .76.19q.28.19.28.7q0 .22-.1.36q-.1.14-.26.25q-.16.07-.35.1q-.18.04-.38.04h-.89V10h.94Z"%2F%3E%3C%2Fsvg%3E'); -} -/*Spreadsheet svg*/ -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".xlsx"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".xls"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".et"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".ods"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".csv"]>.nav-file-title-content::before, -.workspace-leaf-content[data-type="file-explorer"] .nav-file-title[data-path$=".xml"]>.nav-file-title-content::before { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M21.17 3.25q.33 0 .59.25q.24.24.24.58v15.84q0 .34-.24.58q-.26.25-.59.25H7.83q-.33 0-.59-.25q-.24-.24-.24-.58V17H2.83q-.33 0-.59-.24Q2 16.5 2 16.17V7.83q0-.33.24-.59Q2.5 7 2.83 7H7V4.08q0-.34.24-.58q.26-.25.59-.25M7 13.06l1.18 2.22h1.79L8 12.06l1.93-3.17H8.22L7.13 10.9l-.04.06l-.03.07q-.26-.53-.56-1.07q-.25-.53-.53-1.07H4.16l1.89 3.19L4 15.28h1.78m8.1 4.22V17H8.25v2.5m5.63-3.75v-3.12H12v3.12m1.88-4.37V8.25H12v3.13M13.88 7V4.5H8.25V7m12.5 12.5V17h-5.62v2.5m5.62-3.75v-3.12h-5.62v3.12m5.62-4.37V8.25h-5.62v3.13M20.75 7V4.5h-5.62V7Z"%2F%3E%3C%2Fsvg%3E'); -} -/*================= Kanban Update ============*/ -/*Removes Unneccessary background*/ -.workspace-split:not(.mod-left-split) .node-insert-event{ - background-color: transparent; -} -/*Sets the style for lists and spacing for hover list style*/ -.kanban-plugin__item { - border: transparent; - background: var(--background-settings-2); - color: var(--text-faint); - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - border-radius: 3px; -} -/*removes redundant default title wrapper styling*/ -.kanban-plugin__item-title-wrapper { - border: transparent; - background-color: transparent; -} -/*Styles internal Kanban Lane*/ -.kanban-plugin__lane-items { - border-top: 1px solid; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background-color: var(--background-primary); - border-radius: 5px; -} -/*Styles List on hover/active*/ -.kanban-plugin__item:hover, .kanban-plugin__item:active { - background-color: var(--text-selection); - color: var(--text-accent); - border-top: 1px solid; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -.kanban-plugin__item:active { - color: var(--text-accent); - border-top: 1px solid; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background-color: var(--color-accent-active); -} -/*Adds some padding and style for kanban textbox of lists*/ -.kanban-plugin__grow-wrap>textarea, .kanban-plugin__grow-wrap:after { - border-radius: 3px; - padding: 2px; - width: 98%; - border-bottom: 1px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Style Kanban textbox when in focus*/ -.kanban-plugin__grow-wrap>textarea:focus { - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Styles Kanban Containers*/ -.kanban-plugin__lane { - border-left: 2px solid; - border-right: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - background-color: var(--background-secondary); -} -/*Removes line seperator*/ -.kanban-plugin__lane-header-wrapper, .kanban-plugin__item-button-wrapper, .kanban-plugin__item-form { - border: none; -} -/*Removes Default Plugin Hue Change*/ -.kanban-plugin__item-prefix-button-wrapper input[type=checkbox] { - filter: hue-rotate(0deg); -} -/*Removes Item Content overcolor*/ -.kanban-plugin__item-content-wrapper { - background-color: transparent; -} -/*Styled to match with finder search*/ -.kanban-plugin__search-wrapper { - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - justify-content: center; -} -/*Expand searchbox*/ -input.kanban-plugin__filter-input { - width: 50%; - margin-right: 5px; -} -/*Try to center icon*/ -.kanban-plugin__icon { - margin-top: 2px; -} -/*========== NEW PDF ==============*/ -/*Styles PDF Sidebar*/ -.pdf-sidebar-container { - border-right: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - background-color: var(--background-tertiary); -} -.pdf-sidebar-container .thumbnail::before { - box-shadow: none; -} -/*Styles page thumbnail*/ -.pdf-sidebar-container .thumbnail { - border: none; - padding: var(--size-4-2); - border-bottom: 2px solid transparent; - border-top: 2px solid transparent; -} -/*Styles page thumbnail on Hover*/ -.pdf-sidebar-container .thumbnail.selected, .pdf-sidebar-container .thumbnail:hover { - background: var(--text-selection); - border-bottom: 2px solid; - border-top: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Styles page thumbnail page number flair*/ -.pdf-sidebar-container .thumbnail::after { - font-weight: var(--font-semibold); - background-color: var(--background-tertiary); - right: 115px; -} -/*Styles page thumbnail page number flair selected*/ -.pdf-sidebar-container .thumbnail.selected::after { - background-color: var(--text-selection); -} -/*Styles PDF Toolbar*/ -.pdf-toolbar { - background-color: var(--background-tertiary); - border-bottom: none; - border-bottom: 3px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Removes redundant 2nd background on Container*/ -.workspace-leaf-content[data-type="pdf"] .view-content { - background-color: transparent; -} -/*Shifts slightly the PDF thumnails*/ -.pdf-sidebar-content-wrapper{ - width:160px - } -/*============== Links Styling ===============*/ -/*Colors Internal Link text*/ -.cm-s-obsidian span.cm-hmd-internal-link, a.internal-link { - color: var(--internal-link-hover); -} -/*Adds Hover Effect on Internal Links*/ -.cm-s-obsidian span.cm-hmd-internal-link:hover, .markdown-rendered .internal-link:hover { - color: var(--text-normal); - text-shadow: 0 0 5px var(--internal-link-hover), 0 0 10px var(--internal-link-hover), 0 0 20px var(--internal-link-hover), 0 0 35px var(--internal-link-hover); -} -/*Adds Hover Effect on External Links*/ -.cm-s-obsidian span.cm-link:hover, .external-link:hover { - color: var(--text-normal); - text-shadow: 0 0 5px var(--link-external-color), 0 0 10px var(--link-external-color), 0 0 20px var(--link-external-color), 0 0 35px var(--link-external-color); -} -/*================== Lists =======================*/ -/*Sets uncollapsed bullet point with animations*/ -li:not(.is-collapsed) .list-bullet:after, .cm-formatting-list .list-bullet:after { - content: '▻'; - color: var(--bulletlist-color); - font-weight: bold; - transform: translate(10.5px, 5px) rotate(90deg); - text-shadow: 0 0 5px var(--bulletlist-color), 0 0 10px var(--bulletlist-color), 0 0 20px var(--bulletlist-color), 0 0 35px var(--bulletlist-color); -} -/*Realigns Custom bullet point*/ -.list-bullet { - align-items: baseline; - margin-right: 10px; -} -/*Sets collapsed bullet point with animations*/ -li.is-collapsed .list-bullet:after, .is-collapsed~.cm-formatting-list .list-bullet:after { - content: '▻'; - color: var(--bulletlist-color); - font-weight: bold; - text-shadow: 0 0 5px var(--bulletlist-color), 0 0 10px var(--bulletlist-color), 0 0 20px var(--bulletlist-color), 0 0 35px var(--bulletlist-color); - background-color: transparent; - box-shadow: none; - transform: translate(0px, 0px) rotate(0deg); - margin-left: -0.4em; -} -/*Removes hover dot */ -.cm-fold-indicator:hover~.cm-formatting-list .list-bullet:after, .cm-fold-indicator:hover.is-collapsed~.cm-formatting-list .list-bullet:after { - background-color: transparent; - box-shadow: none; -} -/*----------------------* Number list ----------------------------*/ -/*Styles Default Number List*/ -ol>li::marker, ul>li::marker, .cm-s-obsidian .cm-formatting-list { - color: var(--text-normal); - font-weight: bold; - border-image-source: linear-gradient(to right, var(--bulletlist-color), transparent); - text-shadow: 0 0 5px var(--bulletlist-color), 0 0 10px var(--bulletlist-color), - 0 0 20px var(--bulletlist-color), 0 0 35px var(--bulletlist-color); -} -/*Adds style to the Identation guide */ -.markdown-rendered.show-indentation-guide li>ul::before, .markdown-rendered.show-indentation-guide li>ol::before, .markdown-source-view.mod-cm6 .cm-indent::before { - box-shadow: 0 0 5px var(--bulletlist-color), 0 0 10px var(--bulletlist-color), - 0 0 20px var(--bulletlist-color), 0 0 35px var(--bulletlist-color); - width: 0px; -} -/*Aligns Number List with identation guide*/ -.markdown-rendered ol { - margin-left: 3px; -} -/*Recheck Position*/ -/*================ General UI =======================*/ -/*Removes double background on Note Content*/ -.workspace-split.mod-root .view-content .node-insert-event { - background-color: transparent; -} -/*Changes App's background*/ -.workspace { - background-color: var(--background-secondary); -} -/*Sets style for active view header*/ -.workspace-leaf.mod-active .view-header { - border-top: 3px solid; - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Sets spacing for view header and colors*/ -.view-header { - margin: 0px; - background: var(--background-primary-alt); - border-top: 3px solid transparent; - border-bottom: 2px solid transparent; -} -/*Colors the fade in header title*/ -.view-header-title-container:not(.mod-at-end):after { - background: linear-gradient(to right, transparent, var(--transparent-primary-alt)); -} -/*Header bar background changed*/ -:is(.is-focused .workspace-leaf.mod-active .view-header, .view-header), .workspace-split.mod-right-split .workspace-tabs .nav-header, .workspace-split.mod-left-split .workspace-tabs .nav-header, .search-row, .search-results-info { - background: var(--background-tertiary); - backdrop-filter: blur(18px) saturate(120%); -} -:is(.is-focused .workspace-leaf.mod-active .view-header, .view-header), - .workspace-split.mod-right-split .workspace-tabs.mod-top .nav-header, - .workspace-split.mod-left-split .workspace-tabs.mod-top .nav-header, - .search-row, .search-results-info { -border-radius: 5px 5px 0 0; -} -/*Header Title Colored*/ -.is-focused .workspace-leaf.mod-active .view-header-title, .workspace-leaf.mod-active .view-header-title, .workspace-leaf.mod-active .view-header-icon { - color: var(--activetitle-highlight); -} -.view-header-title{ - color: var(--Inactive-title); -} -/*Breadcrumb File Path*/ -.view-header-title-parent .view-header-breadcrumb { - color: var(--text-faint); -} -/*Breadcrumb File Path on Hover*/ -.view-header-title-parent .view-header-breadcrumb:hover { - color: var(--text-accent); - background: var(--text-selection); -} -/*Breadcrumb File Path on Active*/ -.view-header-title-parent .view-header-breadcrumb:active { - color: var(--text-accent); - background: var(--color-accent-active); -} -/*Breadcrumb Active Page*/ -.workspace-leaf.mod-active .view-header-title, .workspace-leaf.mod-active .view-header-icon { - background: var(--title-background-active-clicked); - padding: 5px; - border-radius: var(--radius-s); - margin-left: 5px; - border-image-slice: 1; - border-right: 2px solid; - border-image-source: linear-gradient(to top, transparent, var(--activetitle-highlight), transparent); - border-left: 2px solid; -} -/*Breadcrumb Active Page on hover*/ -.workspace-leaf.mod-active .view-header-title:hover{ - background: var(--title-background-clicked); -} -/*Removes Redundant and unnecessary background coloring*/ -body:not(.is-fullscreen).is-hidden-frameless .mod-top .workspace-tab-header-container, body.is-focused .workspace-ribbon.mod-left, -body.is-focused .titlebar, body.is-focused .workspace-ribbon.mod-left, .workspace-tab-header-container, -body:not(.is-mobile) .workspace-split.mod-root, .workspace-tabs .workspace-leaf, .mod-root .workspace-tabs .workspace-leaf { -background: transparent; -} -/*Right Window Spacing*/ -body:not(.is-mobile) .workspace-split.mod-vertical>* { - margin-right: 5px; -} -/*Right of Left Sidepanel Window Spacing*/ -body:not(.is-mobile) .workspace-split.mod-left-split { - margin-right: 5px; -} -/*Main Pane View Content Style*/ -.workspace-leaf-content .view-content { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 3px solid; -} -/*======================= Style Setting's Workspace ===============================*/ -/*-------------------- Style Setting's Workspace: Background Color ------------------*/ -.CG-workspace-background { - --background-primary: rgba(var(--bg-primary), - var(--CG-workspace-background-workspace-slider, 0.45)); - --background-secondary: rgba(var(--bg-secondary), - var(--CG-workspace-background-workspace-slider, 0.45)); -} -/*--------------- Style Setting's Workspace: Background Images ------------------------*/ -/*Applies the theme's Community Background*/ -.CG-workspace-background .app-container { - --Obsidianbg: var(--bgimage); - --CGworkspace-background-image: var(--Obsidianbg); -} -/*Applies the custom image to the background*/ -.CG-workspace-background.CG-workspace-background-image-custom .app-container { - --CGworkspace-background-image: var(--CG-workspace-background-image-custom-option); -} -/*Applies the background colors as overlay for superior transparency to background image*/ -.CG-workspace-background .horizontal-main-container, .app-container { - background: var(--CGworkspace-background-image); - background-color: var(--background-primary); - background-blend-mode: overlay; - background-size: cover; -} - -/*Applies background image customizations*/ -body:not(.is-phone).CG-workspace-background .workspace, body:not(.is-phone).CG-workspace-background .status-bar { - background-color: var(--background-secondary); - backdrop-filter: brightness(var(--CG-workspace-background-brightness, 1.15)) blur(var(--CG-workspace-background-blur, 15px)) saturate(var(--CG-workspace-background-saturation, 2)) contrast(var(--CG-workspace-background-contrast, 100%)); -} -/*Removes sidebar coloring when custom image enabled*/ -.CG-workspace-background .workspace-ribbon.mod-left.is-collapsed { - background-color: transparent; -} -.workspace-split.mod-root .view-content, .workspace-leaf.mod-active .view-header{ - backdrop-filter: brightness(var(--CG-workspace-background-brightness, 1.15)) blur(var(--CG-workspace-background-blur, 15px)) saturate(var(--CG-workspace-background-saturation, 2)) contrast(var(--CG-workspace-background-contrast, 100%)); -} -/*=========== CheckBox =================*/ -.markdown-preview-view .task-list-item-checkbox { - border: 1px solid var(--text-accent); - box-shadow: 0 0 0.5em var(--text-accent); -} -.markdown-source-view.mod-cm6 .cm-indent::before { - border-right: var(--indentation-guide-width) solid var(--text-accent); - transform: translateX(0.24em); -} -/*------------------------- Style Settings: Custom Checkbox -------------------------------*/ -.CG-custom-checkbox .view-content .task-list-item-checkbox { - appearance: none; - scale: 1.22; -} -.CG-custom-checkbox input[type='checkbox']:checked:after { - background-color: black; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='x'], .CG-custom-checkbox li.task-list-item[data-task='x'] .task-list-item-checkbox { - background-color: green; - border: 1px solid green; - box-shadow: 0 0 5px green, 0 0 10px green, 0 0 15px green; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='x']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='x'] .task-list-item-checkbox:hover { - background-color: rgb(2, 169, 2); - border: 1px solid rgb(2, 169, 2); -} -.CG-custom-checkbox [data-task='x'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='x'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="m8.5 16.586l-3.793-3.793a1 1 0 0 0-1.414 1.414l4.5 4.5a1 1 0 0 0 1.414 0l11-11a1 1 0 0 0-1.414-1.414L8.5 16.586Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='?'], .CG-custom-checkbox ul>li.task-list-item[data-task='?'] .task-list-item-checkbox { - background-color: gold; - border: 1px solid gold; - box-shadow: 0 0 5px gold, 0 0 10px gold, 0 0 15px gold; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='?']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='?'] .task-list-item-checkbox:hover { - background-color: rgb(209, 178, 2); - border: 1px solid rgb(209, 178, 2); -} -.CG-custom-checkbox [data-task='?'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='?'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M12 4a5 5 0 0 0-5 5a1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629c-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247c-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299c.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5Zm0 17.25a1.25 1.25 0 1 0 0-2.5a1.25 1.25 0 0 0 0 2.5Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='-'], .CG-custom-checkbox ul>li.task-list-item[data-task='-'] .task-list-item-checkbox { - background-color: red; - border: 1px solid red; - box-shadow: 0 0 5px red, 0 0 10px red, 0 0 15px red; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='-']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='-'] .task-list-item-checkbox:hover { - background-color: rgb(215, 4, 4); - border: 1px solid rgb(215, 4, 4); -} -.CG-custom-checkbox [data-task='-'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='-'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="m2.397 2.554l.073-.084a.75.75 0 0 1 .976-.073l.084.073L8 6.939l4.47-4.47a.75.75 0 1 1 1.06 1.061L9.061 8l4.47 4.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L8 9.061l-4.47 4.47a.75.75 0 0 1-1.06-1.061L6.939 8l-4.47-4.47a.75.75 0 0 1-.072-.976l.073-.084l-.073.084Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='!'], .CG-custom-checkbox ul>li.task-list-item[data-task='!'] .task-list-item-checkbox { - background-color: darkorange; - border: 1px solid darkorange; - box-shadow: 0 0 5px darkorange, 0 0 10px darkorange, 0 0 15px darkorange; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='!']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='!'] .task-list-item-checkbox:hover { - background-color: rgb(217, 119, 0); - border: 1px solid rgb(217, 119, 0); -} -.CG-custom-checkbox [data-task='!'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='!'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M5.96 4.457a2.075 2.075 0 1 1 4.08 0l-.856 4.56a1.205 1.205 0 0 1-2.368 0l-.855-4.56ZM9.5 12.5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='>'], .CG-custom-checkbox ul>li.task-list-item[data-task='>'] .task-list-item-checkbox { - background-color: skyblue; - border: 1px solid skyblue; - box-shadow: 0 0 5px skyblue, 0 0 10px skyblue, 0 0 15px skyblue; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='>']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='>'] .task-list-item-checkbox:hover { - background-color: rgb(112, 174, 198); - border: 1px solid rgb(112, 174, 198); -} -.CG-custom-checkbox [data-task='>'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='>'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M5.74 3.2a.75.75 0 0 0-.04 1.06L9.227 8L5.7 11.74a.75.75 0 1 0 1.1 1.02l4-4.25a.75.75 0 0 0 0-1.02l-4-4.25a.75.75 0 0 0-1.06-.04Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='/'], .CG-custom-checkbox ul>li.task-list-item[data-task='/'] .task-list-item-checkbox { - background-color: palevioletred; - border: 1px solid palevioletred; - box-shadow: 0 0 5px palevioletred, 0 0 10px palevioletred, 0 0 15px palevioletred; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='/']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='/'] .task-list-item-checkbox:hover { - background-color: rgb(190, 100, 130); - border: 1px solid rgb(190, 100, 130); -} -.CG-custom-checkbox [data-task='/'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='/'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M10 2a8 8 0 1 0 0 16a8 8 0 0 0 0-16Zm0 1a7 7 0 0 1 6.982 6.5H3.018A7 7 0 0 1 10 3Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='R'], .CG-custom-checkbox ul>li.task-list-item[data-task='R'] .task-list-item-checkbox { - background-color: rosybrown; - border: 1px solid rosybrown; - box-shadow: 0 0 5px rosybrown, 0 0 10px rosybrown, 0 0 15px rosybrown; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='R']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='R'] .task-list-item-checkbox:hover { - background-color: rgb(156, 119, 119); - border: 1px solid rgb(156, 119, 119); -} -.CG-custom-checkbox [data-task='R'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='R'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M2.984 8.625v.003a.5.5 0 0 1-.612.355c-.431-.114-.355-.611-.355-.611l.018-.062s.026-.084.047-.145a6.7 6.7 0 0 1 1.117-1.982C4.096 5.089 5.605 4 8 4s3.904 1.089 4.802 2.183a6.7 6.7 0 0 1 1.117 1.982a4.077 4.077 0 0 1 .06.187l.003.013v.004l.001.002a.5.5 0 0 1-.966.258l-.001-.004l-.008-.025a4.872 4.872 0 0 0-.2-.52a5.696 5.696 0 0 0-.78-1.263C11.286 5.912 10.044 5 8 5c-2.044 0-3.285.912-4.028 1.817a5.7 5.7 0 0 0-.945 1.674a3.018 3.018 0 0 0-.035.109l-.008.025ZM8 7a2.5 2.5 0 1 0 0 5a2.5 2.5 0 0 0 0-5ZM6.5 9.5a1.5 1.5 0 1 1 3 0a1.5 1.5 0 0 1-3 0Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='+'], .CG-custom-checkbox ul>li.task-list-item[data-task='+'] .task-list-item-checkbox { - background-color: silver; - border: 1px solid silver; - box-shadow: 0 0 5px silver, 0 0 10px silver, 0 0 15px silver; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='+']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='+'] .task-list-item-checkbox:hover { - background-color: rgb(162, 162, 162); - border: 1px solid rgb(162, 162, 162); -} -.CG-custom-checkbox [data-task='+'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='+'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M15 5.5a4.5 4.5 0 1 1-9 0a4.5 4.5 0 0 1 9 0Zm-4-2a.5.5 0 0 0-1 0V5H8.5a.5.5 0 0 0 0 1H10v1.5a.5.5 0 0 0 1 0V6h1.5a.5.5 0 0 0 0-1H11V3.5Zm-.5 7.5c1.33 0 2.55-.472 3.5-1.257V12.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 12.5v-7A2.5 2.5 0 0 1 4.5 3h1.1a5.463 5.463 0 0 0-.393 1H4.5A1.5 1.5 0 0 0 3 5.5V9h2.5a.5.5 0 0 1 .5.5c0 .052.008.162.032.308c.041.247.115.494.228.718c.308.618.843.974 1.74.974c.692 0 1.168-.212 1.492-.592c.326.06.663.092 1.008.092Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='b'], .CG-custom-checkbox ul>li.task-list-item[data-task='b'] .task-list-item-checkbox { - background-color: steelblue; - border: 1px solid steelblue; - box-shadow: 0 0 5px steelblue, 0 0 10px steelblue, 0 0 15px steelblue; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='b']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='b'] .task-list-item-checkbox:hover { - background-color: rgb(82, 152, 209); - border: 1px solid rgb(82, 152, 209); -} -.CG-custom-checkbox [data-task='b'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='b'][type='checkbox']:checked:after { - -webkit-mask-image: - url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M4 4.5A2.5 2.5 0 0 1 6.5 2h7A2.5 2.5 0 0 1 16 4.5v13a.5.5 0 0 1-.794.404L10 14.118l-5.206 3.786A.5.5 0 0 1 4 17.5v-13Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='B'], .CG-custom-checkbox ul>li.task-list-item[data-task='B'] .task-list-item-checkbox { - background-color: hotpink; - border: 1px solid hotpink; - box-shadow: 0 0 5px hotpink, 0 0 10px hotpink, 0 0 15px hotpink; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='B']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='B'] .task-list-item-checkbox:hover { - background-color: rgb(220, 90, 155); - border: 1px solid rgb(220, 90, 155); -} -.CG-custom-checkbox [data-task='B'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='B'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M6.13 2.793A3.91 3.91 0 0 1 8.5 2c.24 0 .431.125.542.211c.124.098.24.223.344.348a.5.5 0 0 1 .114.318V6.5H8.415a1.5 1.5 0 1 0 0 1H9.5v9.415a.5.5 0 0 1-.183.387C8.855 17.68 8.237 18 7.5 18c-1.186 0-2.069-.598-2.64-1.313a4.057 4.057 0 0 1-.819-1.752a2.68 2.68 0 0 1-1.054-.555C2.435 13.907 2 13.14 2 12c0-.557.037-1.06.12-1.5h3.13c.636 0 1.16.475 1.24 1.089a1.5 1.5 0 1 0 1.004-.006A2.25 2.25 0 0 0 5.25 9.5H2.441c.153-.298.358-.55.625-.729a1.58 1.58 0 0 1 .212-.118c-.284-.832-.21-1.806.064-2.571c.175-.492.453-.957.835-1.267c.252-.205.552-.34.88-.366c.144-.683.549-1.248 1.074-1.656ZM10.5 14.5h.75a2.25 2.25 0 0 0 2.25-2.25v-1.835a1.5 1.5 0 1 0-1 0v1.835c0 .69-.56 1.25-1.25 1.25h-.75V2.877a.5.5 0 0 1 .114-.318c.103-.125.22-.25.344-.348c.11-.086.301-.211.542-.211a3.91 3.91 0 0 1 2.37.793c.525.408.93.973 1.073 1.656c.328.025.628.161.88.366c.382.31.66.775.835 1.267c.274.765.348 1.74.064 2.57c.072.034.143.074.212.12c.275.183.484.445.638.754c.303.605.428 1.449.428 2.474c0 1.141-.435 1.907-.987 2.38a2.68 2.68 0 0 1-1.054.555c-.1.558-.38 1.204-.819 1.752c-.57.715-1.454 1.313-2.64 1.313c-.736 0-1.355-.32-1.816-.698a.5.5 0 0 1-.184-.387V14.5ZM7 6.5a.5.5 0 1 0 0 1a.5.5 0 0 0 0-1Zm0 6a.5.5 0 1 0 0 1a.5.5 0 0 0 0-1Zm6-3a.5.5 0 1 0 0-1a.5.5 0 0 0 0 1Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='D'], .CG-custom-checkbox ul>li.task-list-item[data-task='D'] .task-list-item-checkbox { - background-color: olivedrab; - border: 1px solid olivedrab; - box-shadow: 0 0 5px olivedrab, 0 0 10px olivedrab, 0 0 15px olivedrab; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='D']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='D'] .task-list-item-checkbox:hover { - background-color: rgb(123, 163, 41); - border: 1px solid rgb(123, 163, 41); -} -.CG-custom-checkbox [data-task='D'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='D'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M10.752 8.997a.748.748 0 1 1 0-1.497a.748.748 0 0 1 0 1.497Zm-.749 1.752a.748.748 0 1 0 1.497 0a.748.748 0 0 0-1.497 0ZM8 8.996A.748.748 0 1 1 8 7.5a.748.748 0 0 1 0 1.497Zm-.749 1.752a.748.748 0 1 0 1.497 0a.748.748 0 0 0-1.497 0Zm-2-1.752a.748.748 0 1 1 0-1.497a.748.748 0 0 1 0 1.497ZM2 4.5A2.5 2.5 0 0 1 4.5 2h7A2.5 2.5 0 0 1 14 4.5v7a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 11.5v-7ZM13 6H3v5.5A1.5 1.5 0 0 0 4.5 13h7a1.5 1.5 0 0 0 1.5-1.5V6Zm-1.5-3h-7A1.5 1.5 0 0 0 3 4.5V5h10v-.5A1.5 1.5 0 0 0 11.5 3Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='I'], .CG-custom-checkbox ul>li.task-list-item[data-task='I'] .task-list-item-checkbox { - background-color: dodgerblue; - border: 1px solid dodgerblue; - box-shadow: 0 0 5px dodgerblue, 0 0 10px dodgerblue, 0 0 15px dodgerblue; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='I']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='I'] .task-list-item-checkbox:hover { - background-color: rgb(28, 132, 235); - border: 1px solid rgb(28, 132, 235); -} -.CG-custom-checkbox [data-task='I'] input[type='checkbox']:checked:after, -.CG-custom-checkbox [data-task='I'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M8 7a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-1 0v-3A.5.5 0 0 1 8 7Zm0-.75a.749.749 0 1 0 0-1.5a.749.749 0 0 0 0 1.498ZM2 8a6 6 0 1 1 12 0A6 6 0 0 1 2 8Zm6-5a5 5 0 1 0 0 10A5 5 0 0 0 8 3Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='i'], .CG-custom-checkbox ul>li.task-list-item[data-task='i'] .task-list-item-checkbox { - background-color: goldenrod; - border: 1px solid goldenrod; - box-shadow: 0 0 5px goldenrod, 0 0 10px goldenrod, 0 0 15px goldenrod; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='i']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='i'] .task-list-item-checkbox:hover { - background-color: rgb(199, 151, 28); - border: 1px solid rgb(199, 151, 28); -} -.CG-custom-checkbox [data-task='i'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='i'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M9.5 6.502a.5.5 0 0 1 1 0v1.002a.5.5 0 0 1-1 0V6.502Zm3.35.941a.5.5 0 0 0-.707 0l-.708.709a.5.5 0 0 0 .707.707l.709-.709a.5.5 0 0 0 0-.707Zm-4.998 0a.5.5 0 1 0-.707.707l.708.709a.5.5 0 1 0 .707-.707l-.708-.709ZM10 2c3.314 0 6 2.597 6 5.8c0 1.677-.745 3.216-2.204 4.594a.599.599 0 0 0-.145.213l-.026.081l-.936 3.917c-.184.771-.865 1.33-1.67 1.39l-.144.005h-1.75c-.818 0-1.535-.516-1.776-1.262l-.038-.133l-.935-3.916a.595.595 0 0 0-.17-.295c-1.39-1.312-2.133-2.77-2.2-4.355L4 7.8l.003-.191C4.108 4.494 6.753 2 10 2ZM7.955 15l.319 1.334l.026.096c.097.3.376.522.712.563l.113.007h1.713l.106-.003a.856.856 0 0 0 .741-.525l.031-.1l.329-1.372h-4.09ZM10 3C7.368 3 5.212 4.953 5.015 7.414l-.012.212L5 7.779l.004.217c.056 1.304.674 2.525 1.888 3.671c.188.178.33.398.414.64l.043.15L7.716 14H9.5V9.497a.5.5 0 1 1 1 0V14h1.785l.387-1.615l.051-.15c.086-.215.218-.409.386-.568C14.383 10.465 15 9.181 15 7.8C15 5.157 12.769 3 10 3Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='N'], .CG-custom-checkbox ul>li.task-list-item[data-task='N'] .task-list-item-checkbox { - background-color: plum; - border: 1px solid plum; - box-shadow: 0 0 5px plum, 0 0 10px plum, 0 0 15px plum; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='N']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='N'] .task-list-item-checkbox:hover { - background-color: rgb(193, 137, 193); - border: 1px solid rgb(193, 137, 193); -} -.CG-custom-checkbox [data-task='N'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='N'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M4.5 2A2.5 2.5 0 0 0 2 4.5v7A2.5 2.5 0 0 0 4.5 14h3.672a2.5 2.5 0 0 0 1.767-.732l3.329-3.329A2.5 2.5 0 0 0 14 8.172V4.5A2.5 2.5 0 0 0 11.5 2h-7ZM3 4.5A1.5 1.5 0 0 1 4.5 3h7A1.5 1.5 0 0 1 13 4.5V8h-2.5A2.5 2.5 0 0 0 8 10.5V13H4.5A1.5 1.5 0 0 1 3 11.5v-7Zm6 8.25V10.5A1.5 1.5 0 0 1 10.5 9h2.25c-.055.083-.118.16-.19.232l-3.328 3.329a1.564 1.564 0 0 1-.232.19Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='Q'], .CG-custom-checkbox ul>li.task-list-item[data-task='Q'] .task-list-item-checkbox, -.CG-custom-checkbox .task-list-item-checkbox[data-task='"'], .CG-custom-checkbox ul>li.task-list-item[data-task='"'] .task-list-item-checkbox { - background-color: tan; - border: 1px solid tan; - box-shadow: 0 0 5px tan, 0 0 10px tan, 0 0 15px tan; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='Q']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='Q'] .task-list-item-checkbox:hover, -.CG-custom-checkbox .task-list-item-checkbox[data-task='"']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='"'] .task-list-item-checkbox:hover { - background-color: rgb(183, 156, 122); - border: 1px solid rgb(183, 156, 122); -} -.CG-custom-checkbox [data-task='Q'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='Q'][type='checkbox']:checked:after, -.CG-custom-checkbox [data-task='"'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='"'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M9.646 11.146c1.387-1.386 2.008-2.76 2.24-4.352A2 2 0 1 1 13 5c-.001 2.592-.528 4.734-2.647 6.854a.5.5 0 0 1-.708-.708Zm-6 0c1.387-1.386 2.009-2.76 2.24-4.352A2 2 0 1 1 7 5c-.001 2.592-.528 4.734-2.647 6.854a.5.5 0 0 1-.708-.708Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='P'], .CG-custom-checkbox ul>li.task-list-item[data-task='P'] .task-list-item-checkbox, -.CG-custom-checkbox .task-list-item-checkbox[data-task='p'], .CG-custom-checkbox ul>li.task-list-item[data-task='p'] .task-list-item-checkbox { - background-color: limegreen; - border: 1px solid limegreen; - box-shadow: 0 0 5px limegreen, 0 0 10px limegreen, 0 0 15px limegreen; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='P']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='P'] .task-list-item-checkbox:hover, -.CG-custom-checkbox .task-list-item-checkbox[data-task='p']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='p'] .task-list-item-checkbox:hover { - background-color: rgb(45, 184, 45); - border: 1px solid rgb(45, 184, 45); -} -.CG-custom-checkbox [data-task='P'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='P'][type='checkbox']:checked:after, -.CG-custom-checkbox [data-task='p'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='p'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M15.056 9.004c.46-1.427.693-2.677.693-3.754c0-2.398-.939-4.247-2.5-4.247c-.847 0-1.109.504-1.437 1.747c.018-.065-.163.634-.215.821c-.101.359-.277.97-.527 1.831a.247.247 0 0 1-.03.065L8.174 9.953a5.885 5.885 0 0 1-2.855 2.326l-1.257.482a1.75 1.75 0 0 0-1.092 1.967l.686 3.539a2.25 2.25 0 0 0 1.673 1.757l8.25 2.022a4.75 4.75 0 0 0 5.733-3.44l1.574-6.173a2.75 2.75 0 0 0-2.665-3.43h-3.165Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='C'], .CG-custom-checkbox ul>li.task-list-item[data-task='C'] .task-list-item-checkbox, -.CG-custom-checkbox .task-list-item-checkbox[data-task='c'], .CG-custom-checkbox ul>li.task-list-item[data-task='c'] .task-list-item-checkbox { - background-color: crimson; - border: 1px solid crimson; - box-shadow: 0 0 5px crimson, 0 0 10px crimson, 0 0 15px crimson; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='C']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='C'] .task-list-item-checkbox:hover, -.CG-custom-checkbox .task-list-item-checkbox[data-task='c']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='c'] .task-list-item-checkbox:hover { - background-color: rgb(194, 19, 54); - border: 1px solid rgb(194, 19, 54); -} -.CG-custom-checkbox [data-task='C'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='C'][type='checkbox']:checked:after, -.CG-custom-checkbox [data-task='c'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='c'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M15.056 14.183c.46 1.427.693 2.676.693 3.753c0 2.398-.939 4.247-2.5 4.247c-.8 0-1.078-.45-1.383-1.546l-.27-1.022c-.1-.358-.276-.97-.526-1.83a.247.247 0 0 0-.03-.066l-2.866-4.485a5.885 5.885 0 0 0-2.855-2.327l-1.257-.481A1.75 1.75 0 0 1 2.97 8.458l.686-3.538a2.25 2.25 0 0 1 1.673-1.758l8.25-2.021a4.75 4.75 0 0 1 5.733 3.44l1.574 6.172a2.75 2.75 0 0 1-2.665 3.43h-3.165Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='u'], .CG-custom-checkbox ul>li.task-list-item[data-task='u'] .task-list-item-checkbox { - background-color: lawngreen; - border: 1px solid lawngreen; - box-shadow: 0 0 5px lawngreen, 0 0 10px lawngreen, 0 0 15px lawngreen; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='u']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='u'] .task-list-item-checkbox:hover { - background-color: rgb(112, 222, 3); - border: 1px solid rgb(112, 222, 3); -} -.CG-custom-checkbox [data-task='u'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='u'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="m8.75 4l4.548.001l.108.015l.113.033l.102.048l.038.023l.049.035l.076.067l.084.101l.059.1l.041.105l.023.097l.01.125v4.504a.75.75 0 0 1-1.493.102l-.006-.102L12.5 6.56l-4.22 4.223a.75.75 0 0 1-.978.073l-.084-.073L5.75 9.31l-2.469 2.47a.75.75 0 0 1-1.133-.977l.073-.084l2.998-3a.75.75 0 0 1 .977-.073l.084.073l1.47 1.474L11.441 5.5H8.75a.75.75 0 0 1-.743-.648L8 4.75A.75.75 0 0 1 8.75 4Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='d'], .CG-custom-checkbox ul>li.task-list-item[data-task='d'] .task-list-item-checkbox { - background-color: firebrick; - border: 1px solid firebrick; - box-shadow: 0 0 5px firebrick, 0 0 10px firebrick, 0 0 15px firebrick; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='d']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='d'] .task-list-item-checkbox:hover { - background-color: rgb(197, 38, 38); - border: 1px solid rgb(197, 38, 38); -} -.CG-custom-checkbox [data-task='d'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='d'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="m8.75 12l4.548-.001l.108-.015l.113-.033l.102-.048l.038-.023l.049-.035l.076-.067l.084-.101l.059-.1l.041-.105l.023-.098l.01-.124V6.746a.75.75 0 0 0-1.493-.102l-.006.102L12.5 9.44L8.28 5.217a.75.75 0 0 0-.978-.073l-.084.073L5.75 6.69L3.28 4.219a.75.75 0 0 0-1.133.977l.073.084l2.998 3a.75.75 0 0 0 .977.073l.084-.073L7.75 6.807l3.691 3.693H8.75a.75.75 0 0 0-.743.648L8 11.25c0 .414.336.75.75.75Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='<'], .CG-custom-checkbox ul>li.task-list-item[data-task='<'] .task-list-item-checkbox { - background-color: cornflowerblue; - border: 1px solid cornflowerblue; - box-shadow: 0 0 5px cornflowerblue, 0 0 10px cornflowerblue, 0 0 15px cornflowerblue; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='<']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='<'] .task-list-item-checkbox:hover { - background-color: rgb(91, 132, 208); - border: 1px solid rgb(91, 132, 208); -} -.CG-custom-checkbox [data-task='<'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='<'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="m12.815 12.197l-7.532 1.255a.5.5 0 0 0-.386.318L2.3 20.728c-.248.64.421 1.25 1.035.942l7.674-3.837a6.5 6.5 0 0 1 10.589-5.38a.752.752 0 0 0-.263-1.124l-18-9c-.614-.307-1.283.303-1.035.942l2.598 6.958a.5.5 0 0 0 .386.318l7.532 1.255a.2.2 0 0 1 0 .395ZM17.5 12a5.5 5.5 0 1 1 0 11a5.5 5.5 0 0 1 0-11Zm2 5.5h-2V15a.5.5 0 0 0-1 0v3a.5.5 0 0 0 .5.5h2.5a.5.5 0 0 0 0-1Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='*'], .CG-custom-checkbox ul>li.task-list-item[data-task='*'] .task-list-item-checkbox { - background-color: yellow; - border: 1px solid yellow; - box-shadow: 0 0 5px yellow, 0 0 10px yellow, 0 0 15px yellow; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='*']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='*'] .task-list-item-checkbox:hover { - background-color: rgb(224, 224, 3); - border: 1px solid rgb(224, 224, 3); -} -.CG-custom-checkbox [data-task='*'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='*'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M9.104 2.9a1 1 0 0 1 1.794 0l1.93 3.91l4.317.628a1 1 0 0 1 .554 1.706l-3.124 3.044l.738 4.3a1 1 0 0 1-1.451 1.054l-3.86-2.03l-3.862 2.03a1 1 0 0 1-1.45-1.055l.737-4.299l-3.124-3.044a1 1 0 0 1 .554-1.706l4.317-.627l1.93-3.912ZM4.39 12.687a.5.5 0 0 1-.078.703l-2.5 2a.5.5 0 1 1-.624-.781l2.5-2a.5.5 0 0 1 .702.078ZM4.312 5.11a.5.5 0 1 1-.624.78l-2.5-2a.5.5 0 1 1 .624-.78l2.5 2Zm11.297 7.578a.5.5 0 0 0 .079.703l2.5 2a.5.5 0 1 0 .624-.781l-2.5-2a.5.5 0 0 0-.703.078Zm.079-7.578a.5.5 0 0 0 .624.78l2.5-2a.5.5 0 1 0-.624-.78l-2.5 2Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='l'], .CG-custom-checkbox ul>li.task-list-item[data-task='l'] .task-list-item-checkbox { - background-color: palegreen; - border: 1px solid palegreen; - box-shadow: 0 0 5px palegreen, 0 0 10px palegreen, 0 0 15px palegreen; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='l']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='l'] .task-list-item-checkbox:hover { - background-color: rgb(129, 213, 129); - border: 1px solid rgb(129, 213, 129); -} -.CG-custom-checkbox [data-task='l'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='l'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 20 20"%3E%3Cpath fill="currentColor" d="M7.318 6.5c.168-.873.397-1.657.67-2.32c.301-.733.648-1.294 1.008-1.663C9.354 2.149 9.693 2 10 2c.307 0 .646.149 1.004.517c.36.37.707.93 1.008 1.663c.273.663.502 1.447.67 2.32H7.318Zm-.255-2.7a7.188 7.188 0 0 1 .827-1.52A8.02 8.02 0 0 0 2.804 6.5h3.497c.182-1.007.441-1.922.762-2.7Zm5.874 0a7.19 7.19 0 0 0-.827-1.519A8.02 8.02 0 0 1 17.196 6.5h-3.497c-.182-1.007-.441-1.922-.762-2.7Zm.913 3.7h3.752c.234.712.37 1.468.394 2.253a4.39 4.39 0 0 0-2.495-.752c-.54 0-1.048.09-1.514.255A20.147 20.147 0 0 0 13.85 7.5Zm-.851 2.258a19.325 19.325 0 0 0-.157-2.258H7.158A19.438 19.438 0 0 0 7 10c0 .875.056 1.714.158 2.5h3.982c.272-1.128.93-2.109 1.859-2.742ZM11.003 13.5H7.318c.168.873.397 1.657.67 2.32c.301.733.648 1.294 1.008 1.663c.358.368.697.517 1.004.517c.307 0 .646-.149 1.004-.517c.254-.26.502-.617.732-1.063c-.491-.934-.736-1.87-.736-2.738l.003-.182Zm-8.199 0a8.02 8.02 0 0 0 5.087 4.219a7.187 7.187 0 0 1-.828-1.518c-.32-.78-.58-1.694-.762-2.701H2.804Zm3.346-1H2.398A7.992 7.992 0 0 1 2 10c0-.873.14-1.713.398-2.5H6.15C6.052 8.295 6 9.134 6 10c0 .866.052 1.705.15 2.5ZM19 13.682c0-2.033-1.465-3.681-3.499-3.681c-2.033 0-3.501 1.648-3.501 3.681c0 1.524.982 3.53 3.256 5.236c.145.11.345.11.49 0C18.022 17.212 19 15.206 19 13.682Zm-2-.182a1.5 1.5 0 1 1-3 0a1.5 1.5 0 0 1 3 0Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='S'], .CG-custom-checkbox ul>li.task-list-item[data-task='S'] .task-list-item-checkbox { - background-color: lightcoral; - border: 1px solid lightcoral; - box-shadow: 0 0 5px lightcoral, 0 0 10px lightcoral, 0 0 15px lightcoral; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='S']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='S'] .task-list-item-checkbox:hover { - background-color: rgb(200, 107, 107); - border: 1px solid rgb(200, 107, 107); -} -.CG-custom-checkbox [data-task='S'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='S'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M13.973 7.722c.018.173.027.354.027.545c0 1.297-.452 2.169-.89 2.715a3.603 3.603 0 0 1-.603.596a2.61 2.61 0 0 1-.236.162l-.009.005a.5.5 0 0 0-.262.44V13.5a.5.5 0 0 1-.5.5H11a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1h-.5a.5.5 0 0 1-.5-.5v-.603a.5.5 0 0 0-.45-.498a2.855 2.855 0 0 1-.464-.143a3.16 3.16 0 0 1-1.063-.707c-.443-.45-.714-1.042-.86-1.453c-.143-.409-.471-.779-.94-.911A.307.307 0 0 1 2 8.89v-.794a.29.29 0 0 1 .21-.279c.485-.139.809-.531.946-.945c.112-.34.31-.776.632-1.103a4.818 4.818 0 0 1 1.262-.906c.039-.02.07-.034.09-.043l.02-.01l.004-.001a.5.5 0 0 0 .303-.46V2.675a7.2 7.2 0 0 0 .7.527c.317.208.687.405 1.074.51c.114-.328.27-.64.464-.928h-.006c-.279-.029-.62-.18-.985-.419a7.02 7.02 0 0 1-.94-.757a.774.774 0 0 0-.827-.15a.76.76 0 0 0-.48.704v1.877a6.09 6.09 0 0 0-1.39 1.028c-.477.482-.736 1.084-.87 1.491c-.056.167-.168.268-.272.297A1.29 1.29 0 0 0 1 8.095v.795c0 .585.389 1.098.951 1.257a.43.43 0 0 1 .27.281c.166.472.498 1.223 1.09 1.823A4.158 4.158 0 0 0 5 13.287v.213A1.5 1.5 0 0 0 6.5 15H7a1 1 0 0 0 1-1h2a1 1 0 0 0 1 1h.5a1.5 1.5 0 0 0 1.5-1.5v-1.043a4.61 4.61 0 0 0 .89-.85c.562-.7 1.11-1.788 1.11-3.34c0-.65-.092-1.232-.27-1.752a4.01 4.01 0 0 1-.757 1.207Zm-.182-3.847a3.001 3.001 0 0 1-.91 3.502c-.417.329-.988.304-1.478.1l-2.39-.989c-.49-.203-.912-.589-.974-1.116a3.001 3.001 0 0 1 5.752-1.497Zm-1.53 2.717a2.001 2.001 0 1 0-3.228-1.337c.002.02.01.057.066.116a.87.87 0 0 0 .297.193l2.39.99a.84.84 0 0 0 .347.073c.08-.002.113-.023.128-.035ZM5.75 7.5a.75.75 0 1 0 0-1.5a.75.75 0 0 0 0 1.5Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='k'], .CG-custom-checkbox ul>li.task-list-item[data-task='k'] .task-list-item-checkbox { - background-color: steelblue; - border: 1px solid steelblue; - box-shadow: 0 0 5px steelblue, 0 0 10px steelblue, 0 0 15px steelblue; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='k']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='k'] .task-list-item-checkbox:hover { - background-color: rgb(80, 149, 206); - border: 1px solid rgb(80, 149, 206); -} -.CG-custom-checkbox [data-task='k'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='k'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cg fill="currentColor"%3E%3Cpath d="M11 6a1 1 0 1 0 0-2a1 1 0 0 0 0 2Z"%2F%3E%3Cpath d="M7.5 12v-.5h1A.5.5 0 0 0 9 11v-1h1a4 4 0 1 0-3.838-2.87L2.292 11a1 1 0 0 0-.292.707V13a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-.5h1a.5.5 0 0 0 .5-.5ZM7 6a3 3 0 1 1 3 3H8.5a.5.5 0 0 0-.5.5v1H7a.5.5 0 0 0-.5.5v.5h-1a.5.5 0 0 0-.5.5v1H3v-1.293l4.089-4.089a.5.5 0 0 0 .113-.534C7.072 6.748 7 6.384 7 6Z"%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='w'], .CG-custom-checkbox ul>li.task-list-item[data-task='w'] .task-list-item-checkbox { - background-color: darkorange; - border: 1px solid darkorange; - box-shadow: 0 0 5px darkorange, 0 0 10px darkorange, 0 0 15px darkorange; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='w']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='w'] .task-list-item-checkbox:hover { - background-color: rgb(216, 120, 1); - border: 1px solid rgb(216, 120, 1); -} -.CG-custom-checkbox [data-task='w'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='w'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 16 16"%3E%3Cpath fill="currentColor" d="M3.999 3h-.503a1.5 1.5 0 0 0-1.5 1.5v1c0 1.252.922 2.288 2.122 2.471a4.004 4.004 0 0 0 3.381 2.998V12h-1.5a2 2 0 0 0-2 2v.504a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5V14a2 2 0 0 0-2-2h-1.5v-1.03a4.004 4.004 0 0 0 3.381-3A2.501 2.501 0 0 0 14 5.5v-1A1.5 1.5 0 0 0 12.5 3H12a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2Zm8 1h.5a.5.5 0 0 1 .5.5v1a1.5 1.5 0 0 1-1 1.414V4Zm-8 0v2.915A1.502 1.502 0 0 1 2.996 5.5v-1a.5.5 0 0 1 .5-.5H4Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='f'], .CG-custom-checkbox ul>li.task-list-item[data-task='f'] .task-list-item-checkbox { - background-color: orangered; - border: 1px solid orangered; - box-shadow: 0 0 5px orangered, 0 0 10px orangered, 0 0 15px orangered; -} -.CG-custom-checkbox .task-list-item-checkbox[data-task='f']:hover, .CG-custom-checkbox ul>li.task-list-item[data-task='f'] .task-list-item-checkbox:hover { - background-color: rgb(214, 57, 0); - border: 1px solid rgb(214, 57, 0); -} -.CG-custom-checkbox [data-task='f'] input[type='checkbox']:checked:after, .CG-custom-checkbox [data-task='f'][type='checkbox']:checked:after { - -webkit-mask-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="1em" height="1em" viewBox="0 0 24 24"%3E%3Cpath fill="currentColor" d="M4 14q0-2.625 1.25-4.675T8 5.875q1.5-1.4 2.75-2.138L12 3v3.3q0 .925.625 1.462q.625.538 1.4.538q.425 0 .813-.175q.387-.175.712-.575L16 7q1.8 1.05 2.9 2.912Q20 11.775 20 14q0 2.2-1.075 4.012q-1.075 1.813-2.825 2.863q.425-.6.663-1.313Q17 18.85 17 18.05q0-1-.375-1.887q-.375-.888-1.075-1.588L12 11.1l-3.525 3.475q-.725.725-1.1 1.6Q7 17.05 7 18.05q0 .8.238 1.512q.237.713.662 1.313q-1.75-1.05-2.825-2.863Q4 16.2 4 14Zm8-.1l2.125 2.075q.425.425.65.95q.225.525.225 1.125q0 1.225-.875 2.087Q13.25 21 12 21t-2.125-.863Q9 19.275 9 18.05q0-.575.225-1.112q.225-.538.65-.963Z"%2F%3E%3C%2Fsvg%3E'); - -webkit-mask-size: 100%; -} -/*========== Mobile UI =============*/ -/*Fixes strange tiny next/prev buttons on finder for PDF*/ -.is-phone .pdf-findbar .pdf-toolbar-button{ - padding:3px; -} -/*Readapts scroller editor*/ -body.is-phone .markdown-source-view.mod-cm6 .cm-scroller::-webkit-scrollbar-track { - margin-bottom: 48px; -} -/*Fixes the offset for header title for note*/ -.is-mobile .view-header-title-container { - padding-left: 0px; -} -/*Corrects Scrollbar height for edit/preview new view*/ -.is-mobile .workspace-leaf-content[data-type='markdown'] .view-content ::-webkit-scrollbar-track { - margin-bottom: 34px; - margin-top:50px; -} -/*Shifts body for new style in markdown only for Mobile*/ -.is-mobile .workspace-leaf-content[data-type="markdown"] .markdown-preview-view.is-readable-line-width .markdown-preview-sizer{ - margin-top:50px; -} -.is-mobile .view-content > .markdown-source-view.mod-cm6 > .cm-editor > .cm-scroller{ - padding-top:60px; -} -/*Sets style for header in markdown only*/ -.workspace-leaf-content[data-type="markdown"] .view-header { - position: absolute; - width: 100%; - background: var(--background-tertiary); - --webkit-backdrop-filter: blur 120px; - backdrop-filter: blur(18px); - z-index: 90 !important; - border-radius: 5px 5px 0 0; -} -/*On phone brighter text color*/ -.is-phone .suggestion-item, .is-phone .menu-item, .is-phone .menu-item-icon, .is-mobile .tree-item .tree-item-self, -.mobile-toolbar-option{ - color: var(--text-accent); -} -/*On phone icon in file tree text color*/ -body.is-phone .workspace-leaf-content[data-type="file-explorer"] .nav-file-title .nav-file-title-content::before, -body.is-phone .workspace-leaf-content[data-type="file-explorer"] .nav-folder-title .nav-folder-title-content::before{ -background-color: var(--text-accent); -} -/*Sets Spacing of items on nav bar*/ -.mobile-navbar-actions { - justify-content: space-around; -} -/*Bottom Nav Styled*/ -.mobile-navbar-actions, -.is-phone .workspace-drawer .nav-header { - border-bottom: 2px solid; - border-top: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} -/*Unique Menu Style*/ -.is-mobile .menu, .theme-dark.is-mobile .prompt, .is-mobile .prompt { - background: var(--background-settings); - border-radius: 3px; - border-image-slice: 1; - border-top: 2px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; -} -/*Styles text search on mobile*/ -.is-mobile .workspace-leaf-content[data-type="markdown"] .document-search-container { - width: 100%; - position:absolute; - background: var(--background-tertiary); - --webkit-backdrop-filter: blur 120px; - backdrop-filter: blur(18px); - margin-top:50px; -} -/*Bumps down content for text search.is-mobile .document-sear in preview*/ -.is-mobile .document-search-container ~ .markdown-preview-view { - margin-top:60px; -} -/*Bumps down content for text search in editor*/ -.is-mobile .document-search-container ~ .cm-editor{ - padding-top:60px !important; -} -/*Bumps down content for text search and replace in editor*/ -.is-mobile .document-search-container.mod-replace-mode ~ .cm-editor{ - margin-top:60px; -} -/*Sets appropriate spacings between header, Finder and replacer*/ -.is-mobile .document-search, .is-mobile .document-replace{ - margin-top: 10px; -} -/*Adds a blur effect to PDF thumbnail container on mobile*/ -.is-mobile .pdf-content-container.sidebarOpen .pdf-sidebar-container { - backdrop-filter: blur(8px); -} -/*"Float Phone Menu "*/ -.is-phone .menu{ - top: 20%!important; -} -/*Sets the color for toolbar style*/ -.mobile-toolbar-option:active { - background: var(--text-selection); - border-image-slice: 1; - border-right: 1px solid; - border-image-source: linear-gradient(to top, transparent, var(--text-accent), transparent); - border-left: 1px solid; - border-radius: var(--radius-s); - padding-top:3px; - padding-bottom:3px; -} -/*Mobile Navigation Bar (bottom)*/ -.mobile-navbar { - backdrop-filter: blur(18px); - background: var(--background-tertiary); - background-attachment: fixed !important; -} -/*Edit Mode Toolbar*/ -.mobile-toolbar-options-container { - padding: 26px 10px; - align-items: center; - z-index: 90; - backdrop-filter: blur(18px); - background: var(--background-settings); - background-attachment: fixed !important; - position: absolute; - bottom: 0px; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-top: 2px solid; -} -/*Fixes misaligned bullet points in mobile preview*/ -.is-mobile .markdown-rendered .list-collapse-indicator{ - margin-left:-2.5em; -} -/*Mobile and Notice Style*/ -.pull-action.mod-activated, .pull-action, .is-phone .notice { - background: var(--background-tertiary); - --webkit-backdrop-filter: blur 120px; - backdrop-filter: blur(18px); - z-index: 90 !important; - border-radius: 5px 5px 0 0; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; - border-top: 1px solid; - border-radius: var(--radius-s); - color: var(--text-normal); -} -/*--------------- Mobile UI: Sidepanel -----------------*/ -/*On Phone side panels are full screen*/ -.is-phone .workspace-drawer.mod-left, .is-phone .workspace-drawer.mod-right { - border-radius: 0px; - min-width: -webkit-fill-available; - backdrop-filter: blur(16px); -} -/*Corrects the file Search location */ -.is-mobile .search-row{ - margin-top: 57px; - border-radius: 0px; -} -/*Change background for parameter, search row and search info*/ -.is-phone .search-params, .is-phone .search-row, .search-results-info { - background: var(--background-settings); -} -/*Background for sidepanels*/ -.is-phone .theme-dark .workspace-drawer-inner, .is-phone .workspace-drawer-inner { - background: var(--background-primary); -} -/*Colors uncolored text*/ -.workspace-drawer-header-info, .workspace-drawer-header-name-text, .workspace-drawer-tab-option-item-title, .workspace-drawer-active-tab-title, -.workspace-drawer-active-tab-icon, .workspace-drawer-tab-option-item-icon { - color: var(--text-accent); -} -/*Styles active tab header in side panel*/ -.is-mobile .workspace-drawer-active-tab-header { - z-index: 90; - backdrop-filter: blur(18px); - background: var(--background-settings); - background-attachment: fixed; - position: absolute; - width: -webkit-fill-available; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; -} -/*Corrects the view from the style above*/ -.is-mobile .workspace-drawer-active-tab-container .workspace-drawer-active-tab-content .nav-files-container, .is-mobile .tag-container { - padding-top: 60px; - margin-bottom: -50px; - padding-bottom: 60px; - backdrop-filter: blur(18px); -} -/*Sidepanel Scrollbar re-positioning*/ -body.is-mobile .nav-files-container::-webkit-scrollbar-track, .is-mobile .tag-container::-webkit-scrollbar-track { - margin-top: 55px; - margin-bottom: 40px; -} -/*Sidepanel top header*/ -.is-mobile .workspace-drawer-header { - border-top: 2px solid; - border-bottom: 2px solid; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - background: var(--background-settings); -} -/*Corrects view for outline*/ -.is-mobile .workspace-drawer-active-tab-content .outline { - padding-top: 60px; -} -/*Colors Right Hand Icons in Header for sidepanel*/ -.is-mobile .workspace-drawer-active-tab-back-icon, .is-mobile .workspace-drawer-active-tab-icon:last-child, .is-mobile .workspace-drawer-header-icon { - color: var(--text-faint); -} -/*Sidepanel Tabs and Vault Name spacing, */ -.is-mobile .workspace-drawer-tab-option-item, .is-mobile .workspace-drawer-header-switcher { - padding: 3px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Sidepanel Tabs, Vault Name, Settings Button and Sub header panels style on Active*/ -.is-mobile .workspace-drawer-tab-option-item:active, .is-mobile .workspace-drawer-header-switcher:active, .is-mobile .workspace-drawer-header-icon:active, -.workspace-drawer-header-icon:active, .workspace-drawer-active-tab-icon:active, .workspace-drawer-active-tab-back-icon:active, -.workspace-drawer-active-tab-title:active { - background: var(--text-selection); - color: var(--text-accent); - box-shadow: 0 0 0 transparent; - border-image-slice: 1; - border-top: 1px solid; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 1px solid; - border-radius: var(--radius-s); -} -/*Sub header side panel spacing*/ -.workspace-drawer-active-tab-icon, .workspace-drawer-active-tab-back-icon, .workspace-drawer-active-tab-title { - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - padding: 1px; -} -/*Spacing for Settings Button*/ -.is-mobile .workspace-drawer-header-icon{ - padding-top: var(--size-2-2); - padding-left: 5px; - padding-right: 5px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -/*Bottom nav Style*/ -.is-mobile .workspace-drawer .nav-header { - background: var(--background-tertiary); - background-attachment: fixed !important; - z-index: 1; -} -/*Fixed Kanban Board View*/ -.is-mobile .kanban-plugin__board{ - margin-bottom: 50px; -} -/*Removes unnecessary background color*/ -.is-phone .workspace-split.mod-root .view-content{ -background-color: transparent; -} -.is-mobile .tree-item-self.nav-file-title.is-active{ - background: var(--text-selection); -} -/*Fixes Backlinks view for styled header*/ -.is-mobile .workspace-leaf-content[data-type='backlink'] .view-content,.is-mobile .workspace-leaf-content[data-type='outgoing-link'] .view-content { - margin-top:60px -} -/*Fix missing active style*/ -.is-phone .clickable-icon.has-active-menu{ - background-color: var(--text-selection); -} -/*---------------- Mobile: Settings -----------------------*/ -/*Colors group title in Settings*/ -.is-phone .vertical-tab-header-group-title, .is-phone .setting-item-heading .setting-item-name { - color: var(--text-accent); - padding-bottom: 5px; -} -/*Styled back button in settings similar to close button*/ -.is-phone .modal-setting-back-button { - color: var(--text-accent); - height:24px; - top: calc(var(--safe-area-inset-top) + 9px); - left: var(--size-4-5); - padding: 2px 0px 5px 5px; - border-radius: var(--radius-s); -} -/*Styled back button on hover*/ -.is-phone .modal-setting-back-button:active { - background: var(--text-selection); -} -/*Settings header style*/ -.is-phone .modal.mod-sidebar-layout .modal-title { - z-index: 90; - backdrop-filter: blur(18px); - background: var(--background-tertiary); - background-attachment: fixed !important; - position: absolute; - width: -webkit-fill-available; - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; - border-top: 2px solid; -} -/*Resets scroll bar for Settings header style*/ -.is-phone .modal.mod-settings .vertical-tab-header::-webkit-scrollbar-track { - margin-top: 50px; -} -/*Resets scroll bar for Settings header style in settings pages*/ -.is-phone .modal.mod-settings .vertical-tab-content::-webkit-scrollbar-track { - margin-top: 5px; -} -/*Spacing for styled Settings header*/ -.is-phone .modal.mod-settings .vertical-tab-header { - padding-top: 50px; -} -/*Colors settings nav item list on phone*/ -.is-phone .modal.mod-settings .vertical-tab-nav-item, -.is-phone.theme-dark .modal.mod-settings .vertical-tab-nav-item { - background-color: var(--background-settings-alt); - border-bottom: 1px solid transparent; - color: var(--text-accent); -} -/*Styles settings list when active settings nav item list on phone*/ -.is-phone .modal.mod-settings .vertical-tab-nav-item:active, -.is-phone .modal.mod-settings .vertical-tab-nav-item.is-active{ - background: var(--text-selection); - border-top: 1px solid; -} -/*Colors settings items background*/ -.is-phone .modal .setting-item { - background-color: var(--background-settings-alt); -} -/*Spacing for styled Settings pages*/ -.is-phone .modal.mod-settings .vertical-tab-content { - margin-top: 40px; -} -/*brings close button to the front for styled headers*/ -.is-phone .modal.mod-lg .modal-close-button, -.is-phone .modal.mod-sidebar-layout .modal-close-button { - z-index: 100; -} -/*Removes breadcrumps if enabled*/ -.CG-header-crumbs.is-phone .view-header-title-parent { - display: none; -} -/*Bumps down community controls for full view*/ -.is-phone .community-modal-controls { - margin-top: 50px; -} -/*Corrects full view for community info due to styled headers*/ -.is-phone .community-modal-info { - padding-top: 50px; -} -/*Removes unnecessary padding from prompt input (quick switcher etc)*/ -.is-phone .prompt-input-cta { - padding: 0; -} -/*Colors input field for prompt*/ -.theme-dark.is-mobile .prompt input.prompt-input, .prompt input.prompt-input { - background-color: var(--background-settings-2); - padding: 1%; - border: 1px solid var(--background-settings-2); -} -/*Sets spacing for buttons on empty*/ -.is-mobile .empty-state-action{ - border-bottom: 2px solid transparent; - border-top: 2px solid transparent; -} -/*Sets spacing for active buttons on empty*/ -.is-mobile .empty-state-action:active { - background: var(--text-selection); - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 2px solid; - border-top: 2px solid; -} -/*Corrects coloring on Bookmark icon*/ -.view-action.mod-bookmark{ - color:var(--activetab-faint); - } -/*------------- Tablet -------------------*/ -/*Adds some nice blur in the sidepanel panes*/ -.is-tablet .workspace-drawer-tab-container > *, .is-tablet .workspace-drawer-ribbon{ - backdrop-filter: blur(18px); -} -/*Minor Spacings in tablet tab header*/ -.is-tablet .sidebar-toggle-button.mod-left { - padding-right: 5px; - border-left: 2px solid transparent; - border-right: 2px solid transparent; -} -/*Style Tablet Settings*/ -.is-tablet .modal.mod-settings .modal-content { - border-image-slice: 1; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); - border-bottom: 3px solid; - border-top: 3px solid; -} -/*Sets hover on tablet*/ -.is-tablet .clickable-icon:hover{ - background-color: var(--text-selection); -} -/*Sets hover and active background color on tablet*/ -body:not(.is-grabbing).is-tablet .tree-item-self.is-clickable:hover{ -background-color: var(--text-selection); -} -body:not(.is-grabbing).is-tablet .tree-item-self.is-clickable:active{ - background-color: var(--color-accent-active); -} - -/*Removes the useless color overlay when translucency is enabled */ -body.is-frameless.is-hidden-frameless .titlebar{ - background:transparent; -} - -.workspace-tabs:not( .mod-top) .workspace-leaf-content, .workspace-tabs:not(.mod-top) .workspace-leaf-content, .workspace-split.mod-vertical.mod-root .workspace-tabs:not(.mod-stacked) .view-content{ - border-radius: 0 0 5px 5px; -} - -.workspace-split:not(.mod-horizontal.mod-left-split, .mod-horizontal.mod-right-split ) .workspace-tabs:not(.mod-top) .workspace-tab-header-container{ - background: transparent; -} - -.workspace-split:not(.mod-horizontal.mod-left-split, .mod-horizontal.mod-right-split ) .workspace-tabs .workspace-leaf{ - border-radius: 5px; -} - -/*Embedded HTML height fix*/ -span.internal-embed.is-loaded.node-insert-event.wb-view-content-embeded{ -height:600px} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Everforest/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Everforest/manifest.json deleted file mode 100644 index 44c1482..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Everforest/manifest.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Everforest", - "version": "0.0.0", - "minAppVersion": "0.16.0", - "author": "MrGlitchByte" -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/Everforest/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Everforest/theme.css deleted file mode 100644 index d897bba..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Everforest/theme.css +++ /dev/null @@ -1,675 +0,0 @@ -/***** TABLE OF CONTENTS *****/ -/* TODO: Reformat entire CSS file as below. -/* 1. Font -/* 2. Colours -/* 2.1. Dark theme color variables -/* 2.2. Light theme color variables -/* 2.3. Dark theme implementation -/* 2.4. Light theme implementation -/* 3. General UI -/* 3.1. Title Bar -/* 4. Markdown (editor / preview) -/* 4.1. Headings -/* 4.1.1. Fix font weights -/* 4.2. Links -/* 4.2.1. Nifty arrow before internal links (also applies to embeds) -/* 4.3. Embeds -/* 4.4. Tables -/* 4.5. Popovers -/* 4.6. Task Lists -/* 4.7. Blockquotes -/* 4.8. Code -/* 4.9. Bulleted lists -/* 4.10. Misc Fixes -/* 5. Graph view colours -/* 6. Notion Colour Blocks -/* 7. In-document header (scrolls with the document) [remove for compatibility with Andy's mode] -/* 7.1. Adjustments for non-in-document headers (graphs, etc)\ -/* 7.2. Active pane border -/* 7.3. Misc fixes -/* 8. Tags -/* 8.1. Tag custom colours -/***** *****/ - -/* 1. Font */ -body { - /* font stacks taken directly from Notion */ - --font-monospace: "Hack Nerd Font", "Source Code Pro", monospace; - -webkit-font-smoothing: auto; - --h1-color: var(--text-title-h1); - --h2-color: var(--text-title-h2); - --h3-color: var(--text-title-h3); - --h4-color: var(--text-title-h4); - --h5-color: var(--text-title-h5); - --h6-color: var(--text-title-h6); -} - -/* 2. Colours */ -:root -{ - /* 2.1 Dark theme color variables */ - --bg0-dark: #22282c; - --bg1-dark: #272f34; - --bg-dark: #2f383e; - --bg2-dark: #374247; - --bg3-dark: #404c51; - --bg4-dark: #4a555b; - --bg5-dark: #525c62; - --bg_visual: #503946; - --bg_red: #4e3e43; - --bg_green: #404d44; - --bg_blue: #394f5a; - --bg_yellow: #4a4940; - --shadow: #00000070; - - --fg-dark: #d3c6aa; - --grey0-dark: #7f897d; - --grey1-dark: #859289; - --grey2-dark: #9aa79d; - - --faded-red: #e67e80; - --faded-orange: #e69875; - --faded-yellow: #dbbc7f; - --faded-green: #a7c080; - --faded-aqua: #83c092; - --faded-blue: #7fbbb3; - --faded-purple: #d699b6; - - --dim-red: #da6362; - --dim-orange: #d77f48; - --dim-yellow: #bf983d; - --dim-green: #899c40; - --dim-aqua: #569d79; - --dim-blue: #5a93a2; - --dim-purple: #b87b9d; - - - /* 2.2 Light theme color variables */ - --bg0-light: #f0edd8; - --bg1-light: #f6f1dd; - --bg-light: #fdf6e3; - --bg2-light: #f3efda; - --bg3-light: #edead5; - --bg4-light: #e4e1cd; - --bg5-light: #dfdbc8; - --grey0-light: #a4ad9e; - --grey1-light: #939f91; - --grey2-light: #879686; - --shadow-light: #3c474d20; - - - --bg_visual_light: #eaedc8; - --bg_red_light: #fbe3da; - --bg_green_light: #f0f1d2; - --bg_blue_light: #e9f0e9; - --bg_yellow_light: #faedcd; - - --fg-light: #5c6a72; - - --light-red: #f85552; - --light-orange: #f57d26; - --light-yellow: #bf983d; - --light-green: #899c40; - --light-aqua: #569d79; - --light-blue: #5a93a2; - --light-purple: #b87b9d; - - --light-dim-red: #f1706f; - --light-dim-orange: #f39459; - --light-dim-yellow: #e4b649; - --light-dim-green: #a4bb4a; - --light-dim-aqua: #6ec398; - --light-dim-blue: #6cb3c6; - --light-dim-purple: #e092be; - - -} - -/* 2.3 Dark theme implementation */ -.theme-dark -{ - --background-primary: var(--bg-dark); - --background-primary-alt: var(--bg-dark); - --background-secondary: var(--bg-dark); - --background-secondary-alt: var(--bg-dark); - --text-normal: var(--fg-dark); - --text-faint: var(--grey1-dark); - --text-title-h1: var(--dim-red); - --text-title-h2: var(--dim-orange); - --text-title-h3: var(--dim-yellow); - --text-title-h4: var(--dim-green); - --text-title-h5: var(--dim-aqua); - --text-title-h6: var(--dim-purple); - --text-link: var(--faded-blue); - --text-a: var(--dim-aqua); - --text-a-hover: var(--faded-aqua); - --text-mark: rgba(215, 153, 33, 0.4); /* light-yellow */ - --pre-code: var(--bg1-dark); - --text-highlight-bg: var(--bg_green); - --interactive-accent: var(--dim-aqua); - --interactive-before: var(--bg5-dark); - --background-modifier-border: var(--bg5-dark); - --text-accent: var(--dim-blue); - --interactive-accent-rgb: var(--dim-blue); - --inline-code: var(--dim-blue); - --code-block: var(--fg-dark); - --vim-cursor: var(--faded-blue); - --text-selection: var(--bg5-dark); -} - -/* 2.4 Light theme implementation */ -.theme-light -{ - --background-primary: var(--bg-light); - --background-primary-alt: var(--bg-light); - --background-secondary: var(--bg-light); - --background-secondary-alt: var(--bg-light); - --text-normal: var(--fg-light); - --text-faint: var(--grey1-light); - --text-title-h1: var(--light-red); - --text-title-h2: var(--light-orange); - --text-title-h3: var(--light-yellow); - --text-title-h4: var(--light-green); - --text-title-h5: var(--light-aqua); - --text-title-h6: var(--light-purple); - --text-link: var(--light-blue); - --text-a: var(--light-dim-blue); - --text-a-hover: var(--light-blue); - --text-mark: rgba(215, 153, 33, 0.4); /* light-yellow */ - --pre-code: var(--bg1-light); - --text-highlight-bg: var(--light-dim-green); - --interactive-accent: var(--bg5-light); - --interactive-before: var(--bg5-light); - --background-modifier-border: var(--bg5-light); - --text-accent: var(--light-dim-green); - --interactive-accent-rgb: var(--light-dim-green); - --inline-code: var(--light-blue); - --code-block: var(--fg-light); - --vim-cursor: var(--light-blue); - --text-selection: rgba(189, 174, 147, 0.5); /* light3 */ -} - -.theme-dark code[class*="language-"], -.theme-dark pre[class*="language-"], -.theme-light code[class*="language-"], -.theme-light pre[class*="language-"] -{ - text-shadow: none ; - background-color: var(--pre-code) ; -} - -/* 3. General UI */ -.view-header-title { - font-weight: 700; - } - - /* 3.1. Title bar */ - .titlebar { - background-color: var(--background-secondary-alt); - } - - .titlebar-inner { - color: var(--text-normal); - } - -.graph-view.color-circle, -.graph-view.color-fill-highlight, -.graph-view.color-line-highlight -{ - color: var(--interactive-accent-rgb) ; -} -.graph-view.color-text -{ - color: var(--text-a-hover) ; -} -/* -.graph-view.color-fill -{ - color: var(--background-secondary); -} -.graph-view.color-line -{ - color: var(--background-modifier-border); -} -*/ - -html, -body -{ - font-size: 16px ; -} - -strong -{ - font-weight: 600 ; -} - -a, -.cm-hmd-internal-link -{ - color: var(--text-a) ; - text-decoration: none ; -} - -a:hover, -.cm-hmd-internal-link:hover, -.cm-url -{ - color: var(--text-a-hover) ; - text-decoration: none ; -} - - -/*---------------------------------------------------------------- -TAGS -----------------------------------------------------------------*/ - -.token.tag { - padding: 0px 0px; - background-color: transparent; - border: none; - } - - .token.tag:hover { - background: transparent; - color: var(--text-a-hover) !important; - } - - /*---------------------------------------------------------------- - TAG PILLS - ----------------------------------------------------------------*/ - .markdown-preview-section h1 a.tag, - .markdown-preview-section h2 a.tag, - .markdown-preview-section h3 a.tag, - .markdown-preview-section h4 a.tag, - .markdown-preview-section h5 a.tag, - .markdown-preview-section h4 a.tag { - font-weight: inherit; - } - - .tag { - background-color: var(--tag-base); - border: 1px solid var(--interactive-accent); - color: var(--text-a); - font-weight: 500; - padding: 1.5px 6px; - padding-left: 6px; - padding-right: 6px; - text-align: center; - text-decoration: none !important; - display: inline-block; - cursor: pointer; - border-radius: 8px; - transition: 0.2s ease-in-out; - } - - .tag:hover { - color: var(--interactive-accent); - } - - /*---------------------------------------------------------------- - TAG REF STYLING - ----------------------------------------------------------------*/ - - .tag[href^="#❗️"], - .tag[href^="#important❗️"] { - background-color: var(--tag-base); - border: 1px solid var(--boldred); - } - - .tag[href^="#📓"], - .tag[href^="#journal📓"] { - background-color: var(--tag-base); - border: 1px solid var(--purple); - } - - .tag[href^="#🌱"], - .tag[href^="#seedling🌱"], - .tag[href^="#🌿"], - .tag[href^="#budding🌿"], - .tag[href^="#🌳"], - .tag[href^="#evergreen🌳"] { - background-color: var(--tag-base); - border: 1px solid var(--boldgreen); - } - -mark -{ - background-color: var(--text-mark) ; -} - -.view-actions a -{ - color: var(--text-normal) ; -} - -.view-actions a:hover -{ - color: var(--text-a) ; -} - -.HyperMD-codeblock-bg -{ - background-color: var(--pre-code) ; -} - -.HyperMD-codeblock -{ - line-height: 1.4em ; - color: var(--code-block) ; -} - -.HyperMD-codeblock-begin -{ - border-top-left-radius: 4px ; - border-top-right-radius: 4px ; -} - -.HyperMD-codeblock-end -{ - border-bottom-left-radius: 4px ; - border-bottom-right-radius: 4px ; -} - -th -{ - font-weight: 600 ; -} - -thead -{ - border-bottom: 2px solid var(--background-modifier-border) ; -} - -.HyperMD-table-row -{ - line-height: normal ; - padding-left: 4px ; - padding-right: 4px ; - /* background-color: var(--pre-code) ; */ -} - -.HyperMD-table-row-0 -{ - padding-top: 4px ; -} - -.CodeMirror-foldgutter-folded, -.is-collapsed .nav-folder-collapse-indicator -{ - color: var(--text-a) ; -} - -.nav-file-tag -{ - color: var(--text-a) ; -} - -.is-active .nav-file-title -{ - color: var(--text-a) ; - background-color: var(--background-primary-alt) ; -} - -.nav-file-title -{ - border-bottom-left-radius: 0 ; - border-bottom-right-radius: 0 ; - border-top-left-radius: 0 ; - border-top-right-radius: 0 ; -} - -img -{ - display: block ; - margin-left: auto ; - margin-right: auto ; -} - -.HyperMD-list-line -{ - padding-top: 0 ; -} - -.CodeMirror-code, -.CodeMirror-linenumber, -.cm-formatting -{ - font-family: var(--font-monospace) ; - font-size: 0.9em; -} - -.markdown-preview-section pre code, -.markdown-preview-section code -{ - font-size: 0.9em ; - background-color: var(--pre-code) ; -} - -.markdown-preview-section pre code -{ - padding: 4px ; - line-height: 1.4em ; - display: block ; - color: var(--code-block) ; -} - -.markdown-preview-section code -{ - color: var(--inline-code) ; -} - -.cm-s-obsidian, -.cm-inline-code -{ - -webkit-font-smoothing: auto ; -} - -.cm-inline-code -{ - color: var(--inline-code) ; - background-color: var(--pre-code) ; - padding: 1px ; -} - -.workspace-leaf-header-title -{ - font-weight: 600 ; -} - -.side-dock-title -{ - padding-top: 15px ; - font-size: 20px ; -} - -.side-dock-ribbon-tab:hover, -.side-dock-ribbon-action:hover, -.side-dock-ribbon-action.is-active:hover, -.nav-action-button:hover, -.side-dock-collapse-btn:hover -{ - color: var(--text-a); -} - -.side-dock -{ - border-right: 0 ; -} - -.cm-s-obsidian, -.markdown-preview-view -{ - /* padding-left: 10px ; */ - padding-right: 10px ; -} - -/* vertical resize-handle */ -.workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, -.workspace-split.mod-left-split > .workspace-leaf-resize-handle, -.workspace-split.mod-right-split > .workspace-leaf-resize-handle -{ - width: 1px ; - background-color: var(--dim-aqua); -} - -/* horizontal resize-handle */ -.workspace-split.mod-horizontal > * > .workspace-leaf-resize-handle -{ - height: 1px ; - background-color: var(--dim-aqua); -} - -/* Remove vertical split padding */ -.workspace-split.mod-root .workspace-split.mod-vertical .workspace-leaf-content, -.workspace-split.mod-vertical > .workspace-split, -.workspace-split.mod-vertical > .workspace-leaf, -.workspace-tabs -{ - padding-right: 0px; -} - -.markdown-embed-title -{ - font-weight: 600 ; -} - -.markdown-embed -{ - padding-left: 10px ; - padding-right: 10px ; - margin-left: 10px ; - margin-right: 10px ; -} - -.cm-header-1, -.markdown-preview-section h1 -{ - font-weight: 500 ; - font-size: 34px ; - color: var(--text-title-h1) ; -} - -.cm-header-2, -.markdown-preview-section h2 -{ - font-weight: 500 ; - font-size: 26px ; - color: var(--text-title-h2) ; -} - -.cm-header-3, -.markdown-preview-section h3 -{ - font-weight: 500 ; - font-size: 22px ; - color: var(--text-title-h3) ; -} - -.cm-header-4, -.markdown-preview-section h4 -{ - font-weight: 500 ; - font-size: 20px ; - color: var(--text-title-h4) ; -} - -.cm-header-5, -.markdown-preview-section h5 -{ - font-weight: 500 ; - font-size: 18px ; - color: var(--text-title-h5) ; -} - -.cm-header-6, -.markdown-preview-section h6 -{ - font-weight: 500 ; - font-size: 18px ; - color: var(--text-title-h6) ; -} - -.suggestion-item.is-selected -{ - background-color: var(--text-selection); -} - -.empty-state-container:hover -{ - background-color: var(--background-secondary-alt); - border: 5px solid var(--interactive-accent) ; -} - -.checkbox-container -{ - background-color: var(--interactive-before); -} - -.checkbox-container:after -{ - background-color: var(--interactive-accent); -} - -.checkbox-container.is-enabled:after -{ - background-color: var(--bg5-dark); -} - -.mod-cta -{ - color: var(--background-secondary-alt) ; - font-weight: 600 ; -} - -.mod-cta a -{ - color: var(--background-secondary-alt) ; - font-weight: 600 ; -} - -.mod-cta:hover -{ - background-color: var(--interactive-before) ; - font-weight: 600 ; -} - -.CodeMirror-cursor -{ - background-color: var(--vim-cursor) ; - opacity: 60% ; -} - -input.task-list-item-checkbox { - border: 1px solid var(--faded-blue); - appearance: none; - -webkit-appearance: none; -} - -input.task-list-item-checkbox:checked -{ - background-color: var(--faded-blue); - box-shadow: inset 0 0 0 2px var(--background-primary); -} - -::selection -{ - background-color: var(--text-selection) ; -} - -.mermaid .note -{ - fill: var(--dark3) ; -} - -.frontmatter-container { - display: none; -} - -/* Bullet point relationship lines */ -.markdown-source-view.mod-cm6 .cm-indent::before, -.markdown-rendered.show-indentation-guide li > ul::before, -.markdown-rendered.show-indentation-guide li > ol::before { - position: absolute; - border-right: 1px solid var(--dim-blue); -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/manifest.json deleted file mode 100644 index a05266f..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "ITS Theme", - "version": "1.2.11", - "minAppVersion": "0.16.0", - "author": "SlRvb", - "authorUrl": "https://github.com/SlRvb" -} \ No newline at end of file diff --git a/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/theme.css b/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/theme.css deleted file mode 100644 index f1166a4..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/ITS Theme/theme.css +++ /dev/null @@ -1,13514 +0,0 @@ -@charset "UTF-8"; -/* @settings -name: ITS Theme Settings -id: ITS -settings: - - - id: info-text-SlRvb-ITS-Theme - type: info-text - title: "ITS Theme by SlRvb" - description: "ℹ [Guide / Docs](https://publish.obsidian.md/slrvb-docs/ITS+Theme/ITS+Theme) | ⚙ [Github](https://github.com/SlRvb/Obsidian--ITS-Theme) | ☕ [Support](https://ko-fi.com/slrvb)" - markdown: true - #- - # title: Class Test toggle - # id: minimalist-workspace - # type: class-toggle - - - title: Workspace - id: ITS-Workspace - type: heading - level: 1 - collapsed: true - - - title: Sizes - id: ITS-Sizes - type: class-select - allowEmpty: true - default: sizing-readable - options: - - - label: Readable - value: sizing-readable - - - label: Minimized - value: sizing-mini - - - label: Large - value: sizing-large - - - title: Roundness - id: radius-s - type: variable-number-slider - default: 0 - format: px - min: 0 - max: 12 - step: 1 - - - title: Resize Scrollbars - id: scrollbar-width - type: variable-number-slider - default: 12 - format: px - min: 4 - max: 15 - step: 1 - - - title: Sizing - id: ITS-Sizing - type: heading - level: 2 - collapsed: true - - - title: Note Width - id: file-line-width - type: variable-number-slider - default: 700 - format: px - min: 400 - max: 1800 - step: 100 - #- - # title: Titlebar Sizing - # id: titlebar-height - # type: variable-number-slider - # default: 40 - # format: px - # min: 20 - # max: 50 - # step: 10 - - - title: Tab Outline Height - id: tab-outline-width - type: variable-number-slider - default: 2 - format: px - min: 0 - max: 4 - step: 1 - - - title: Sidebar - id: ITS-Sizing-Sidebar - type: heading - level: 3 - collapsed: true - - - title: Sidebar Text Sizing - id: nav-item-size - type: variable-number-slider - default: 14 - format: px - min: 10 - max: 20 - step: 1 - - - title: Sidebar Tab Icon Sizing - id: sidebar-tab-icon-size - type: variable-number-slider - default: 18 - format: px - min: 10 - max: 20 - step: 1 - - - title: Sidebar Ribbon Width Sizing - id: ribbon-width - type: variable-number-slider - default: 40 - format: px - min: 20 - max: 50 - step: 5 - - - title: Notes - id: ITS-Note-Sizing - type: heading - level: 3 - collapsed: true - - - title: Note Title Size - id: file-header-font-size - type: variable-number-slider - default: 15 - format: px - min: 10 - max: 20 - step: 1 - - - title: Note Breadcrumb Title Size - id: file-header-breadcrumb-font-size - type: variable-number-slider - default: 13.5 - format: px - min: 10 - max: 20 - step: 1 - - - title: Inline Title Size - id: inline-title-font-size - type: variable-number-slider - default: 34 - format: px - min: 10 - max: 50 - step: 1 - - - title: Popover - id: ITS-Sizing-Popover - type: heading - level: 3 - collapsed: true - - - title: Popover Width - id: popover-width - type: variable-number-slider - default: 450 - format: px - min: 300 - max: 1000 - step: 100 - - - title: Popover Height - id: popover-height - type: variable-number-slider - default: 400 - format: px - min: 300 - max: 1000 - step: 100 - - - title: Settings - id: ITS-Settings - type: heading - level: 3 - collapsed: true - - - title: Settings Menu Width - id: modal-width - type: variable-number-slider - default: 90 - format: vw - min: 40 - max: 100 - step: 5 - - - title: Settings Menu Height - id: modal-height - type: variable-number-slider - default: 85 - format: vh - min: 40 - max: 100 - step: 5 - - - title: Titlebar - id: ITS-Titlebar - type: heading - level: 2 - collapsed: true - - - title: Titlebar Colors - id: titlebar-colors - type: class-toggle - - - title: Titlebar Bubbles - id: titlebar-bubbles - type: class-toggle - - - title: Tabs - id: ITS-tabs - type: heading - level: 2 - collapsed: true - - - title: Tab Widths - id: tab-widths - type: class-select - allowEmpty: true - default: none - options: - - - label: Auto - value: tab-auto - - - label: Wide - value: tab-wide - - - title: Sidebar - id: ITS-Sidebar - type: heading - level: 2 - collapsed: true - - - title: Sidebar Tabs Styling - id: ITS-Sidebar-Styling - type: class-select - allowEmpty: true - default: none - options: - - - label: Wide - value: sidebar-tabs-wide - - - label: Underline - value: sidebar-tabs-underline - - - label: Overline - value: sidebar-tabs-overline - - - label: Tabular - value: sidebar-tabs-tabular - - - title: Bottom Navbar Buttons - id: navbar-bottom - type: class-toggle - - - title: Sidebar Ribbon - id: ITS-Sidebar-Ribbon - type: heading - level: 3 - - - title: Floating Sidebar Ribbon - id: ITS-Sidebar-Ribbon-Float - type: class-select - allowEmpty: true - default: none - options: - - - label: Plain - value: sidebar-ribbon-float - - - label: Minimized - value: sidebar-ribbon-mini-float - - - title: Floating Sidebar Ribbon - id: ITS-Sidebar-Ribbon-Float-Position - type: class-select - default: sidebar-float-bottom - options: - - - label: Bottom - value: sidebar-float-bottom - - - label: Center - value: sidebar-float-center - - - label: Top - value: sidebar-float-top - - - - title: File Explorer - id: ITS-File-Explorer - type: heading - level: 2 - collapsed: true - - - title: File Explorer Styling - id: file-explorer-flat - type: class-toggle - - - title: Folder Icon - id: folder-icon - type: variable-text - default: '"\e801"' - - - title: Folder Font Family - id: folder-f - type: variable-text - default: 'its' - - - title: File Icon - id: file-icon - type: variable-text - default: '"\e800"' - - - title: Display Folder Arrow On Hover - id: folder-arrow - type: class-toggle - default: true - - - title: File Font Family - id: file-f - type: variable-text - default: 'its' - - - title: Vault Title - description: Desktop only - id: ITS-Vault-Title - type: heading - level: 2 - collapsed: true - - - title: Vault Font - description: Vault Title fonts. - id: vault-font - type: variable-text - default: "'Calisto MT', 'Palatino Black', 'Book Antiqua', 'Georgia', 'Suez One', serif" - - - title: Vault Title Size - id: vault-name-font-size - type: variable-number-slider - default: 20 - format: px - min: 10 - max: 25 - step: 1 - - - title: Vault Title Font Weight - id: vault-name-font-weight - type: variable-number-slider - format: px - default: 900 - min: 100 - max: 900 - step: 100 - - - title: Vault Title Color - id: vault-name-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Hide Vault Title - id: vault-title-none - type: class-toggle - - - title: Add Vault Title Icon - id: vault-icon - type: class-toggle - - - title: Vault Image - id: vault-icon-image - type: variable-text - default: "url()" - - - title: Background Image - id: ITS-Background-Image - type: heading - level: 2 - collapsed: true - - - title: Background Image - description: Toggle to apply background image to vault - id: background-image - type: class-toggle - - - title: Background Image - id: background-image-url - type: variable-text - default: "url()" - - - title: Background Position Height - id: background-image-height - type: variable-number-slider - format: "%" - default: 50 - min: 0 - max: 100 - step: 1 - - - title: Background Position Width - id: background-image-width - type: variable-number-slider - format: "%" - default: 50 - min: 0 - max: 100 - step: 1 - - - title: Image Blur - id: background-image-blur - type: variable-number-slider - format: px - default: 11 - min: 0 - max: 20 - step: 1 - - - title: Note Opacity - id: background-image-opacity - type: variable-number-slider - format: "%" - default: 90 - min: 20 - max: 100 - step: 1 - - - title: Side Panel Opacity - id: background-image-sidebar-opacity - type: variable-number-slider - format: "%" - default: 90 - min: 20 - max: 100 - step: 1 - - - title: Minimalist Workspace - description: Hide UI elements unless hovered over. - id: ITS-Minimalist-Workspace - type: heading - level: 2 - collapsed: true - - - title: Minimalist Workspace - description: Hide everything listed below with just 1 toggle - id: minimalist-workspace - type: class-toggle - - - title: Hide Resize Handles - id: hide-resize-handle - type: class-toggle - - - title: Hide Scrollbars - id: hide-scrollbar - type: class-toggle - - - title: Hide Sidebar Ribbon - id: hide-sidebar-ribbon - type: class-toggle - - - title: Hide Sidebar Ribbon Icons - id: hide-sidebar-ribbon-icons - type: class-toggle - - - title: Hide Vault Name - id: hide-vault-name - type: class-toggle - - - title: Hide Search/File Explorer Nav Icons - id: hide-nav-header - type: class-toggle - - - title: Hide File Explorer Icons - id: hide-file-explorer-icons - type: class-toggle - - - title: Hide App Title Bar - id: hide-titlebar - type: class-toggle - - - title: Hide Status Bar - id: hide-status-bar - type: class-toggle - - - title: Hide Outline Plugin Heading Icons - id: hide-outline-heading - type: class-toggle - - - title: Hide Tabs - id: hide-titlebar-tab - type: class-toggle - - - title: Hide Tab Outline - id: hide-tab-outline - type: class-toggle - - - title: Hide Note Title Bar - id: hide-note-title - type: class-toggle - - - title: Hide Note Title Bar Icons - id: hide-note-title-icons - type: class-toggle - #- - # title: Hide Frontmatter - # id: hide-frontmatter - # type: class-toggle - - - title: Note - id: ITS-Note - type: heading - level: 1 - collapsed: true - - - title: Document - description: Emulation of microsoft document look. - id: writing-document - type: class-toggle - - - title: Paper Shadow - description: Vignette / paper burn option - id: paper - type: class-toggle - - - title: Writing - description: Minimalistic/distraction free layout design for notes. - id: writing - type: class-toggle - - - title: Text - id: ITS-Text - type: heading - level: 2 - collapsed: true -# - -# title: Note Text Size -# description: Adjust size for text in notes. -# id: font-text-size -# type: variable-number-slider -# default: 16 -# format: px -# min: 10 -# max: 20 -# step: 1 - - - title: Justify Text - description: Justify preview and editor text - id: justified - type: class-toggle - - - title: Font Ligatures - description: (Depends On Font) Text combines into symbols ie. - - > becomes -->. - id: lig - type: class-toggle - - - title: Paragraph Spacing - description: Adjust spacing size for "paragraphs". Search "spacing" for more fine tuned adjustments. - id: p-spacing - type: variable-number-slider - default: 1 - format: rem - min: 0 - max: 2 - step: 0.1 - - - title: Fonts - id: ITS-Fonts - type: heading - level: 3 - collapsed: true - - - title: Text Font - description: Changes text font for preview and edit mode. - id: default-font - type: variable-text - default: "Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Microsoft YaHei Light', sans-serif" - - - title: Monospace Font - id: font-monospace - type: variable-text - default: "'Fira Code Medium', 'Source Code Pro', monospace" - - - title: Comments Font - id: comment-font - type: variable-text - default: "'Fira Code Medium'" - - - title: Advanced Text Decoration - id: ITS-Text-Decoration - type: heading - level: 3 - collapsed: true - - - title: Bold Weight - id: bold-weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - title: Bold Color - id: bold-color - type: variable-themed-color - format: hex - default-dark: '#bccad8' - default-light: '#697580' - - - title: Italic Color - id: italic-color - type: variable-themed-color - format: hex - default-dark: '#bccad8' - default-light: '#697580' - - - title: Strikethrough Text Color - id: strikethrough-color - type: variable-themed-color - format: hex - default-dark: '#bccad8' - default-light: '#697580' - - - title: Strikethrough Line - id: strikethrough-line-thickness - type: variable-number-slider - default: 1 - format: px - min: 1 - max: 5 - step: 1 - - - title: Strikethrough Line Color - id: strikethrough-line-color - type: variable-themed-color - format: hex - default-dark: '#bccad8' - default-light: '#697580' - - - title: Images - id: ITS-Image - type: heading - level: 2 - collapsed: true - - - title: Live Preview Image Float - id: lp-img-float - type: class-toggle - - - title: Center Images - description: Center ALL images, excluding those with |left or |right in them. - id: img-adj-center - type: class-toggle - - - title: Clear Images - description: Push image under/over headings or horizontal lines - id: img-adj-clears - type: heading - level: 3 - collapsed: false - - - title: Image Captions with Alt Text - description: Make any alt text in image display as an image caption - id: image-caption - type: class-toggle - - - title: Horizontal Lines - description: Push image under/over any horizontal lines - id: clear-hr - type: class-toggle - - - title: Headings - description: Push image under/over all headings 1-6 - id: clear-headings - type: class-toggle - - - title: Heading Specific - description: Push image under/over some headings and not others - id: img-adj-clears-headings - type: heading - level: 4 - collapsed: true - - - title: Header 1 - id: clear-heading-1 - type: class-toggle - - - title: Header 2 - id: clear-heading-2 - type: class-toggle - - - title: Header 3 - id: clear-heading-3 - type: class-toggle - - - title: Header 4 - id: clear-heading-4 - type: class-toggle - - - title: Header 5 - id: clear-heading-5 - type: class-toggle - - - title: Header 6 - id: clear-heading-6 - type: class-toggle - - - title: Note Title - id: ITS-Note-Title - type: heading - level: 2 - collapsed: true - - - title: Note Title Styling - id: ITS-Note-Title-Styling - type: class-select - allowEmpty: true - default: none - options: - - - label: Note Title Gradient - value: file-header-gradient - - - label: Note Title Underline - value: note-title-underline - - - label: Note Title Overline - value: note-title-overline - - - title: Inline Title Styling - id: Inline-Title-Styling - type: class-select - allowEmpty: true - default: Heading - options: - - - label: Heading - value: inline-title-style-heading - - - label: Text - value: inline-title-style-text - - - title: Inline Title Specifics - id: ITS-Inline-Title - type: heading - level: 3 - collapsed: true - - - title: Inline Title Sizes - id: Inline-Title-Sizes - type: class-select - allowEmpty: true - default: none - options: - - - label: Small - value: inline-title-small - - - label: Medium - value: inline-title-medium - - - label: Large - value: inline-title-large - - - title: Inline Title Fonts - id: inline-title-font - type: variable-text - default: 'Calisto MT' - - - title: Inline Title Font Weights - id: inline-title-weight - type: variable-number-slider - default: 700 - min: 100 - max: 900 - step: 100 - - - title: Inline Title Positions - id: Inline-Title-Positions - type: class-select - allowEmpty: true - default: none - options: - - - label: Left - value: inline-title-position-left - - - label: Center - value: inline-title-position-center - - - label: Right - value: inline-title-position-right - - - title: Headers - id: ITS-Headers - type: heading - level: 2 - collapsed: true - - - title: Headings - description: Heading and Vault Title fonts. - id: font - type: variable-text - default: "'Calisto MT', 'Palatino Black', 'Book Antiqua', 'Georgia', 'Suez One', serif" - - - title: Header Font Weights - id: header-weight - type: variable-number-slider - default: 700 - min: 100 - max: 900 - step: 100 - - - title: Header Underline Height - id: header-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 8 - step: 1 - - - title: Heading Spacing - description: Adjust header spacing - id: heading-spacing - type: variable-number-slider - default: 10 - format: px - min: 0 - max: 50 - step: 10 - - - title: Header Positions - id: ITS-Header-positions - type: class-select - allowEmpty: true - default: none - options: - - - label: Left - value: headings-left - - - label: Center - value: headings-center - - - label: Right - value: headings-right - - - title: Hide Header Underline - description: Hide ALL header underlines. - id: hide-header-underline - type: class-toggle - - - title: Heading Indicators - id: heading-indicator - type: class-toggle - - - title: Heading Styles - description: Heading styling. - id: ITS-Header-Styles - type: heading - level: 3 - collapsed: false - - - title: Center Header With Lines - description: Center ALL headings with lines on either side - id: hcl - type: class-toggle - - - title: Header Color Override - description: Header color always applied over other markdown in the header - id: heading-color-override - type: class-toggle - - - title: Illusion Theme Inspired Headings - id: illusion - type: class-toggle - - - title: Advanced Heading Options - id: ITS-Advanced-Header - type: heading - level: 3 - collapsed: true - - - title: Heading Top Spacing - description: Adjust header spacing above the header - id: heading-spacing-top - type: variable-number-slider - default: 10 - format: px - min: 0 - max: 50 - step: 10 - - - title: Heading Bottom Spacing - description: Adjust header spacing below the header - id: heading-spacing-bottom - type: variable-number-slider - default: 10 - format: px - min: 0 - max: 50 - step: 10 - - - title: Header Font - id: ITS-Header-Fonts - type: heading - level: 4 - collapsed: true - - - title: Heading 1 - id: h1-font - type: variable-text - default: '"Calisto MT"' - - - title: Heading 2 - id: h2-font - type: variable-text - default: '"Calisto MT"' - - - title: Heading 3 - id: h3-font - type: variable-text - default: '"Calisto MT"' - - - title: Heading 4 - id: h4-font - type: variable-text - default: '"Calisto MT"' - - - title: Heading 5 - id: h5-font - type: variable-text - default: '"Calisto MT"' - - - title: Heading 6 - id: h6-font - type: variable-text - default: '"Calisto MT"' - - - title: Header Font Size - id: ITS-Header-Font-Size - type: heading - level: 4 - collapsed: true - - - title: Heading 1 - id: h1-size - type: variable-number-slider - default: 34 - format: px - min: 12 - max: 40 - step: 2 - - - title: Heading 2 - id: h2-size - type: variable-number-slider - default: 30 - format: px - min: 12 - max: 40 - step: 2 - - - title: Heading 3 - id: h3-size - type: variable-number-slider - default: 26 - format: px - min: 12 - max: 40 - step: 2 - - - title: Heading 4 - id: h4-size - type: variable-number-slider - default: 24 - format: px - min: 12 - max: 40 - step: 2 - - - title: Heading 5 - id: h5-size - type: variable-number-slider - default: 20 - format: px - min: 12 - max: 40 - step: 2 - - - title: Heading 6 - id: h6-size - type: variable-number-slider - default: 18 - format: px - min: 12 - max: 40 - step: 2 - - - title: Header Colors - id: ITS-Header-Colors - type: heading - level: 4 - collapsed: true - - - title: Heading 1 Color - id: h1-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 2 Color - id: h2-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 3 Color - id: h3-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 4 Color - id: h4-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 5 Color - id: h5-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 6 Color - id: h6-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Header Alignment - id: ITS-Header-Alignment - type: heading - level: 4 - collapsed: true - - - title: Heading 1 - id: h1-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Heading 2 - id: h2-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Heading 3 - id: h3-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Heading 4 - id: h4-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Heading 5 - id: h5-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Heading 6 - id: h6-text-align - type: variable-select - allowEmpty: true - default: left - options: - - left - - center - - right - - - title: Illusion Headings Specifics - id: ITS-illusion-headers - type: heading - level: 4 - collapsed: true - - - title: Illusion Heading 1 - id: illusion-h1 - type: class-toggle - - - title: Illusion Heading 2 - id: illusion-h2 - type: class-toggle - - - title: Illusion Heading 3 - id: illusion-h3 - type: class-toggle - - - title: Illusion Heading 4 - id: illusion-h4 - type: class-toggle - - - title: Illusion Heading 5 - id: illusion-h5 - type: class-toggle - - - title: Illusion Heading 6 - id: illusion-h6 - type: class-toggle - - - title: Advanced Heading Underlines - description: Specific adjustments to heading underlines. - id: ITS-Advanced-Header-Underlines - type: heading - level: 3 - collapsed: true - - - title: Underline Height - description: Resize specific heading underlines heights. - id: ITS-Header-Underlines-Height-Specific - type: heading - level: 5 - collapsed: true - - - title: H1 Underline Height - id: h1-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: H2 Underline Height - id: h2-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: H3 Underline Height - id: h3-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: H4 Underline Height - id: h4-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: H5 Underline Height - id: h5-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: H6 Underline Height - id: h6-border-line-height - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 6 - step: 1 - - - title: Underline Width - description: Resize specific heading underlines widths. - id: ITS-Header-Underlines-Width-Specific - type: heading - level: 5 - collapsed: true - - - title: H1 Underline Width - id: h1-border-line-width - type: variable-number-slider - default: 100 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: H2 Underline Width - id: h2-border-line-width - type: variable-number-slider - default: 85 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: H3 Underline Width - id: h3-border-line-width - type: variable-number-slider - default: 65 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: H4 Underline Width - id: h4-border-line-width - type: variable-number-slider - default: 44 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: H5 Underline Width - id: h5-border-line-width - type: variable-number-slider - default: 25 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: H6 Underline Width - id: h6-border-line-width - type: variable-number-slider - default: 0 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: Hide Underlines - description: Remove specific heading underlines. - id: ITS-Header-Underlines-Hide-Specific - type: heading - level: 5 - collapsed: true - - - title: Hide H1 Underline - id: hide-header-underline-1 - type: class-toggle - default: false - - - title: Hide H2 Underline - id: hide-header-underline-2 - type: class-toggle - default: false - - - title: Hide H3 Underline - id: hide-header-underline-3 - type: class-toggle - default: false - - - title: Hide H4 Underline - id: hide-header-underline-4 - type: class-toggle - default: false - - - title: Hide H5 Underline - id: hide-header-underline-5 - type: class-toggle - default: false - - - title: Hide H6 Underline - id: hide-header-underline-6 - type: class-toggle - default: false - - - title: Underline Colors - description: Change colors for specific heading underlines. - id: ITS-Header-Underlines-Colors-Specific - type: heading - level: 5 - collapsed: true - - - title: Heading 1 Line Color - id: h1-border-line-color - type: variable-themed-color - format: hex - default-dark: '#912e2e' - default-light: '#bb5555' - - - title: Heading 2 Line Color - id: h2-border-line-color - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#c14343' - - - title: Heading 3 Line Color - id: h3-border-line-color - type: variable-themed-color - format: hex - default-dark: '#bf5e5e' - default-light: '#ce6d6d' - - - title: Heading 4 Line Color - id: h4-border-line-color - type: variable-themed-color - format: hex - default-dark: '#61afef' - default-light: '#5599d0' - - - title: Heading 5 Line Color - id: h5-border-line-color - type: variable-themed-color - format: hex - default-dark: '#2f3b4d' - default-light: '#b5c2d8' - - - title: Heading 6 Line Color - id: h6-border-line-color - type: variable-themed-color - format: hex - default-dark: '#2a2e35' - default-light: '#ccd6eb' - - - title: Links - id: ITS-Links - type: heading - level: 2 - collapsed: true - - - title: Link Style - id: link-style - type: class-select - allowEmpty: true - default: none - options: - - - label: Underline - value: link-underline - - - label: Notion Style - value: link-notion - - - label: All Caps - value: link-caps - - - title: Link Font - id: link-font - type: variable-text - default: '"Inter"' - - - title: Exernal Links Font - id: link-external-font - type: variable-text - default: '"Inter"' - - - title: Link Font Weights - id: link-weight - type: variable-number-slider - default: 500 - min: 100 - max: 900 - step: 100 - - - title: Lists - id: ITS-Lists - type: heading - level: 2 - collapsed: true - - - title: Default Bullet Disc Shape - id: list-default-bullet - type: class-toggle - - - title: Colorful Bullet Color - description: Toggle on to use colorful bullets - id: list-bullet-color - type: class-toggle - - - title: Colorful Bullet Lines - description: Toggle on to use colorful bullet lines - id: list-lines-color - type: class-toggle - - - title: Neon Lines - description: Toggle on for lines to have a neon glow effect - id: list-neon - type: class-toggle - - - title: Lists / Bullet Adjustments - id: ITS-Lists-Lines - type: heading - level: 3 - collapsed: true - - - title: Bullet Shape - description: Add quotes around your new bullet. For example "~" - id: bullet - type: variable-text - default: '⬥' - - - title: Bullet Shape Font - id: bullet-font - type: variable-text - default: '"ITS"' - - - title: List Line Width - id: indentation-guide-width - type: variable-number-slider - default: 2 - format: px - min: 0 - max: 3 - step: 1 - - - title: List Root Spacing - id: root-list-spacing - description: Adjust list margins (ul, ol) - type: variable-number-slider - default: 10 - format: px - min: 1 - max: 16 - step: 1 - - - title: List Spacing - description: Adjust list item spacing (li) - id: list-spacing - type: variable-number-slider - default: 1 - format: px - min: 1 - max: 16 - step: 1 - - - title: Original Bullet Lines - description: Lines appear beside bullet - id: list-bullet-side-lines - type: class-toggle - - - title: Alternate Indentation Style - id: alternate-indent - type: class-toggle - - - title: Checkboxes - id: Checkboxes - type: heading - level: 2 - collapsed: true - - - title: Disable Alternate Checkboxes - id: alt-chkbx-off - type: class-toggle - - - title: Colorful Task Text - description: Add color to the text of the task. - id: check-color - type: class-toggle - default: true - - - title: Colorful Task Backgrounds - description: Add color to the background of the task. - id: check-bg - type: class-toggle - default: true - - - title: Normal Task Text - description: Reapply regular text color and font weight to the text of the task. - id: check-text - type: class-toggle - - - title: Restore Checkbox Strike - id: chkbx-strike - type: class-toggle - - - title: Advanced Checkbox Strike - description: Strike for specific checkbox types. - id: Checkbox-Strike-Specific - type: heading - level: 5 - collapsed: true - - - title: "[x] Regular" - id: checkbox-strike-regular - type: class-toggle - - - title: "[X] Checked" - id: checkbox-strike-checked - type: class-toggle - - - title: "[-] Dropped" - id: checkbox-strike-dropped - type: class-toggle - - - title: "[>] Forward" - id: checkbox-strike-frwd - type: class-toggle - - - title: "[D] Defer / Date" - id: checkbox-strike-date - type: class-toggle - - - title: "[?] Question" - id: checkbox-strike-q - type: class-toggle - - - title: "[/] Half" - id: checkbox-strike-half - type: class-toggle - - - title: "[+] Add" - id: checkbox-strike-add - type: class-toggle - - - title: "[R] Research" - id: checkbox-strike-rsrch - type: class-toggle - - - title: "[!] Important" - id: checkbox-strike-imp - type: class-toggle - - - title: "[i] Idea" - id: checkbox-strike-idea - type: class-toggle - - - title: "[B] Brainstorm" - id: checkbox-strike-brn - type: class-toggle - - - title: "[P] Pro" - id: checkbox-strike-pro - type: class-toggle - - - title: "[C] Con" - id: checkbox-strike-con - type: class-toggle - - - title: "[Q] Quote" - id: checkbox-strike-quot - type: class-toggle - - - title: "[N] Note" - id: checkbox-strike-brn - type: class-toggle - - - title: "[b] Bookmark" - id: checkbox-strike-book - type: class-toggle - - - title: "[I] Info" - id: checkbox-strike-info - type: class-toggle - - - title: "[p] Paraphrase" - id: checkbox-strike-para - type: class-toggle - - - title: Callouts - id: ITS-Callouts - type: heading - level: 2 - collapsed: true - - - title: Original Callout Styling - description: Pre Obsidian v1 Callout Styling - id: callout-original - type: class-toggle - - - title: Block Callout Styling - id: callout-block - type: class-toggle - - - title: Outline Callout Styling - id: callout-outline - type: class-toggle - - - title: Disable ITS Quote Callout Styling - id: default-callout-quote - type: class-toggle - - - title: Tags - id: Tags - type: heading - level: 2 - collapsed: true - - - title: Colored Text Tags - description: Tags appear as just colored text, no background color. - id: tag-text - type: class-toggle - - - title: Tag Radius Style - id: ITS-Tag-Style - type: class-select - allowEmpty: true - default: none - options: - - - label: Bubble Tags - value: tag-bubble - - - label: Notion Tags - value: tag-notion - - - title: Outline Tags - id: tag-outline - type: class-toggle - - - title: Tag Outline Border Size - id: tag-border-width - type: variable-number-slider - default: 2 - format: px - min: 1 - max: 4 - step: 1 - - - title: Tag Font - id: tag-font - type: variable-text - default: '"Inter"' - - - title: Tables - id: ITS-Tables - type: heading - level: 2 - collapsed: true - - - title: Alternating Background Colors - id: ITS-Table-Alt-Colors - type: class-select - allowEmpty: true - default: none - options: - - - label: Original Alternating Background - value: tables-alt-original - - - label: No Alternating Backgrounds - value: tables-no-alt-background - - - label: No Alt Column Background - value: tables-no-alt-column-background - - - label: No Alt Row Background - value: tables-no-alt-row-background - - - title: Table Styling - id: ITS-Table-Styling - type: class-select - allowEmpty: true - default: none - options: - - - label: Add Table Borders - value: tables-borders - - - label: Dark and Bold First Column - value: table - - - label: Wikipedia - value: tables-style-wikipedia - - - title: Center Tables - description: Center tables to middle of page - id: tables-center - type: class-toggle - - - title: Wide Table - description: Tables widened to touch ends of the page - id: tables-wide - type: class-toggle - - - title: Disable Row Hover Highlight - id: tables-no-hover - type: class-toggle - - - title: Table Header Adjustments - id: ITS-Table-Header-Adj - type: heading - level: 3 - collapsed: true - - - title: Table Header Height Padding - id: table-header-padding-y - type: variable-number-slider - format: px - default: 4 - min: 0 - max: 20 - step: 1 - - - title: Table Header Width Padding - id: table-header-padding-x - type: variable-number-slider - format: px - default: 10 - min: 0 - max: 20 - step: 1 - - - title: Table Header Font Size - id: table-header-size - type: variable-number-slider - format: px - default: 16 - min: 12 - max: 30 - step: 1 - - - title: Table Header Font Weight - id: table-header-weight - type: variable-number-slider - default: 800 - min: 100 - max: 900 - step: 100 - - - title: Table Cell Adjustments - id: ITS-Table-Cell-Adj - type: heading - level: 3 - collapsed: true - - - title: Table Cell Height Padding - id: table-cell-padding-y - type: variable-number-slider - format: px - default: 4 - min: 0 - max: 20 - step: 1 - - - title: Table Cell Width Padding - id: table-cell-padding-x - type: variable-number-slider - format: px - default: 10 - min: 0 - max: 20 - step: 1 - - - title: Table Cell Font Size - id: table-text-size - type: variable-number-slider - format: px - default: 16 - min: 12 - max: 30 - step: 1 - #- - # title: Table Cell Font Weight - # id: table-text-weight - # type: variable-number-slider - # default: 500 - # min: 100 - # max: 900 - # step: 100 - - - title: Horizontal Line - id: ITS-HR-Line - type: heading - level: 2 - collapsed: true - - - title: Horizontal Line Centered Vertically - id: hr-center-vertically - type: class-toggle - - - title: Horizontal Line Height - id: hr-thickness - type: variable-number-slider - default: 2 - format: px - min: 0 - max: 5 - step: 1 - - - title: Horizontal Line Width - id: hr-width - type: variable-number-slider - default: 100 - format: "%" - min: 0 - max: 100 - step: 10 - - - title: No Horizontal Line Symbol - description: Hide the horizontal Line Symbol entirely - id: hr-no-icon - type: class-toggle - - - title: Horizontal Line Symbol - id: ITS-HR-Line-Symbol - type: heading - level: 3 - collapsed: true - - - title: Horizontal Line Symbol - description: Add quotations around symbol ("⚡"). Use the codepoint for symbols from supported font icons ("\e800"). - id: hr-icon-symbol - type: variable-text - default: '"⚡"' - - - title: Horizontal Line Symbol Fonts - description: Font Icons. Default font aligns emojis. - id: hr-icon-font - type: variable-select - default: its - options: - - its - - Material Icons Sharp - - remixicon - - fa5 - - default-font - - - title: Horizontal Line Symbol Padding - id: hr-icon-padding-x - type: variable-number-slider - default: 4 - format: px - min: 0 - max: 10 - step: 1 - - - title: Embeds - id: ITS-Embeds - type: heading - level: 2 - collapsed: true - - - title: Clean Embeds - description: Embeds that look like they're part of the note. - id: embed-clean - type: class-toggle - - - title: Dark Background Embeds - id: embed-dark-background - type: class-toggle - - - title: Embed Heading Minified - description: Shrink embed headers - id: embed-mini-headers - type: class-toggle - - - title: Canvas - id: ITS-Canvas - type: heading - level: 2 - collapsed: true - - - title: Canvas Cards Styling - id: canvas-cards - type: class-toggle - - - title: Canvas Arrow Coloful Text - id: canvas-arrow-text-color - description: Make text on canvas arrows match the color of the arrows - type: class-toggle - - - title: Canvas Card Background Color Brightness - id: canvas-color-opacity - type: variable-number-slider - default: 0.07 - format: '' - min: 0.04 - max: 0.18 - step: .02 - - - title: Properties / Metadata - id: ITS-Metadata - type: heading - level: 2 - collapsed: true - - - title: Metadata Key Font Size - id: metadata-label-font-size - type: variable-number-slider - default: .9 - format: em - min: .4 - max: 1.5 - step: .1 - - - title: Metadata Value Font Size - id: metadata-input-font-size - type: variable-number-slider - default: .9 - format: em - min: .4 - max: 1.5 - step: .1 - - - title: Metadata Key Width - id: metadata-label-width - type: variable-number-slider - default: 9 - format: em - min: 8 - max: 15 - step: 1 - - - title: Metadata Colorful Label Styling - id: select - type: class-select - allowEmpty: true - default: none - options: - - - label: Text Color - value: metadata-label-text-color - - - label: Label Background - value: metadata-label-background - - - title: Metadata Value Background - id: metadata-value-background - type: class-toggle - - - title: Metadata Title Positions - id: metadata-title-align - type: variable-select - allowEmpty: true - default: center - options: - - left - - center - - right - - - title: Metadata Title No Icon - id: metadata-title-no-icon - type: class-toggle - - - title: Colors - id: ITS-Colors - type: heading - level: 1 - collapsed: true - - - title: Text - id: ITS-Colors-Text - type: heading - level: 2 - collapsed: true - - - title: Text - id: text - type: variable-themed-color - format: hex - default-dark: '#bccad8' - default-light: '#697580' - - - title: Soft Text - id: soft-text - type: variable-themed-color - format: hex - default-dark: '#aab3ca' - default-light: '#d04e4e' - - - title: Faint Text - id: text-faint - type: variable-themed-color - format: hex - default-dark: '#4e5b6f' - default-light: '#4e5b6f' - - - title: File Explorer Titles - description: File/Folder text color. - id: nav-item-color - type: variable-themed-color - format: hex - default-dark: '#aab3ca' - default-light: '#7e8ea3' - - - title: "`` Text" - description: "Html `` text color." - id: i-at - type: variable-themed-color - format: hex - default-dark: '#bf5e5e' - default-light: '#c14343' - - - title: Workspace - description: Recolor some UI colors - id: Workspace-Colors - type: heading - level: 2 - collapsed: true - - - title: Note - description: Note and sidebar colors. - id: note - type: variable-themed-color - format: hex - default-dark: '#1a1e24' - default-light: '#f8fbff' - - - title: Outer Sidebar - id: outer-bar - type: variable-themed-color - format: hex - default-dark: '#0e0f15' - default-light: '#dfe7ef' - - - title: Sidebar - description: Change only sidebar, right settings pane colors. - id: side-bar - type: variable-themed-color - format: hex - default-dark: '#1a1e24' - default-light: '#f8fbff' - - - title: Dark Sidebar - description: Left settings bar, background, graph background, and pane separator colors. - id: dark-sidebar - type: variable-themed-color - format: hex - default-dark: '#10161d' - default-light: '#7e8ea3' - - - title: UI Elements - id: Workspace-Colors-Elements - type: heading - level: 3 - - - title: Button - id: bttn - type: variable-themed-color - format: hex - default-dark: '#7c2929' - default-light: '#c24747' - - - title: Sidebar Active Icon Color - id: sidebar-icon-color-active - type: variable-themed-color - format: hex - default-dark: '#e5ebee' - default-light: '#e5ebee' - - - title: Sidebar Hover Background Color - id: nav-item-background-hover - type: variable-themed-color - format: hex - default-dark: '#7c2929' - default-light: '#c24747' - - - title: File Icon - description: File icon color. - id: file-icon-color - type: variable-themed-color - format: hex - default-dark: '#586477' - default-light: '#a6bbde' - - - title: Folder Icon - description: Folder icon color. - id: folder - type: variable-themed-color - format: hex - default-dark: '#883737' - default-light: '#c14343' - - - title: Folder Icon Open - description: Open folder icon color. - id: folder-open - type: variable-themed-color - format: hex - default-dark: '#e05858' - default-light: '#ce6d6d' - - - title: Scrollbar FG Color - description: Scrollbar thumb/foreground color - id: scrollbar-thumb-bg - type: variable-themed-color - format: hex - opacity: true - default-dark: '#863737' - default-light: 'rgba(134, 173, 218, 0.157)' - - - title: Tab Stack Shadow - id: tab-stacked-shadow-color - type: variable-themed-color - format: rgba - opacity: true - default-dark: '#001c4a15' - default-light: '#001c4a15' - - - title: Popover Background Color - id: popover-background - type: variable-themed-color - format: rgb - default-dark: '#1a1e24' - default-light: '#f8fbff' - - - title: Note Elements - id: Note-Element-Colors - type: heading - level: 2 - collapsed: true - - - title: Headers / Headings - id: ITS-Colors-Headings - type: heading - level: 3 - - - title: Headings - description: Heading (Vault, etc) Color - id: headers - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#d04e4e' - - - title: Tags - id: ITS-Colors-Tags - type: heading - level: 3 - - - title: Tag Background - id: tag - type: variable-themed-color - format: hex - default-dark: '#571a1a' - default-light: '#c65656' - - - title: Tag Text Color - id: tag-color - type: variable-themed-color - format: hex - default-dark: '#e5ebee' - default-light: '#e5ebee' - - - title: Lists - id: ITS-Colors-Lists - type: heading - level: 3 - - - title: Bullet Color - id: list-marker-color - type: variable-themed-color - format: hex - default-dark: '#883737' - default-light: '#c14343' - - - title: Number Color - id: list-numbered-color - type: variable-themed-color - format: hex - default-dark: '#883737' - default-light: '#c14343' - - - title: List Line Color - id: indentation-guide-color - type: variable-themed-color - format: hex - default-dark: '#283846' - default-light: '#ccd6eb' - - - title: Blockquote - id: ITS-Colors-Blockquotes - type: heading - level: 3 - - - title: Embed/Blockquote - description: Embed/Blockquote color. - id: embed-bg - type: variable-themed-color - format: hex - default-dark: '#10161d' - default-light: '#f1f5ff' - - - title: Blockquote Border - description: Blockquote Border color. - id: blockquote-border-color - type: variable-themed-color - format: hex - default-dark: '#252c36' - default-light: '#dde4ef' - - - title: Code - id: ITS-Colors-Code - type: heading - level: 3 - - - title: Code Background - id: code-bg - type: variable-themed-color - format: hex - default-dark: '#232831' - default-light: '#eef6ff' - - - title: Code Text - id: code-text - type: variable-themed-color - format: hex - default-dark: '#fa4545' - default-light: '#ea4262' - - - title: Horizontal Line - id: ITS-Colors-HR - type: heading - level: 3 - - - title: HR Border Line - id: hr - type: variable-themed-color - format: hex - default-dark: '#3c5274' - default-light: '#d6deea' - - - title: HR Icon - id: hr-icon-color - type: variable-themed-color - format: hex - default-dark: '#883737' - default-light: '#c14343' - - - title: Progress Bar - id: ITS-Colors-Progress-Bar - type: heading - level: 3 - - - title: Progress Bar Value Color - description: HTML value color - id: progress - type: variable-themed-color - format: hex - default-dark: '#863737' - default-light: '#912e2e' - - - title: Progress Bar Background Color - description: HTML value color - id: progress - type: variable-themed-color - format: hex - default-dark: '#252c36' - default-light: '#e1e9f6' - - - title: Tables - id: ITS-Colors-Tables - type: heading - level: 3 - - - title: Table Header BG Color - id: th - type: variable-themed-color - format: hex - default-dark: '#652121' - default-light: '#c14343' - - - title: Table Header Text Color - id: th-text - type: variable-themed-color - format: hex - default-dark: '#e5ebee' - default-light: '#e5ebee' - - - title: Table Header Text Edit Color - id: table-header-text-color - type: variable-themed-color - format: hex - default-dark: '#e06c75' - default-light: '#a35158' - - - title: Table Alt Row Colors - description: Alternating row/column color for table. - id: td - type: variable-themed-color - format: rgb - opacity: true - default-dark: '#06080c60' - default-light: '#d0ddef62' - - - title: Table Border Line Colors - id: table-border-color - type: variable-themed-color - format: hex - default-dark: '#3c5274' - default-light: '#d6deea' - - - title: Other Elements - id: ITS-Colors-Others - type: heading - level: 3 - - - title: Comments - id: code-comment - type: variable-themed-color - format: hex - default-dark: '#4e5b6f' - default-light: '#4e5b6f' - - - title: Footnotes - id: footnote - type: variable-themed-color - format: hex - default-dark: '#6e7e89' - default-light: '#8996a0' - - - title: Aside Background Color - id: aside-bg - description: Aside background color and dark theme setting alternating setting item color. - type: variable-themed-color - format: hex - default-dark: '#11151d' - default-light: '#f1f5ff' - - - title: Other - id: Other-Colors - type: heading - level: 2 - collapsed: true - - - title: Accent - id: accent - type: variable-themed-color - format: hex - default-dark: '#883737' - default-light: '#c14343' - - - title: Lite Accent - id: lite-accent - type: variable-themed-color - format: hex - default-dark: '#e06c75' - default-light: '#a35158' - - - title: Accent 2 - id: accent2 - type: variable-themed-color - format: hex - default-dark: '#3c5274' - default-light: '#d6deea' - - - title: Lite Accent 2 - description: Link color. - id: accent2-lite - type: variable-themed-color - format: hex - default-dark: '#61afef' - default-light: '#5599d0' - - - title: Dark Accent - id: dark-accent - type: variable-themed-color - format: hex - default-dark: '#652121' - default-light: '#c35c5c' - - - title: Deep Dark Accent - id: deep-dark-accent - type: variable-themed-color - format: hex - default-dark: '#3f1010' - default-light: '#2f1010' - - - title: Inactive - description: Inactive note; file text; unresolved and external link, editor and external link hover; and mermaid text color. - id: inactive - type: variable-themed-color - format: hex - default-dark: '#586477' - default-light: '#a6bbde' - - - title: Background - description: Scrollbar background color - id: bg - type: variable-themed-color - format: hex - default-dark: '#252c36' - default-light: '#dde4ef' - - - title: Lines - description: Explorer, heading, input box, settings, frontmatter, and mermaidjs lines - id: lines - type: variable-themed-color - format: hex - default-dark: '#283846' - default-light: '#ccd6eb' - - - title: Outline - id: outline - type: variable-themed-color - format: hex - default-dark: '#cfd7dd' - default-light: '#912e2e' - - - title: Foreground - description: Active file selected title color, Graph Node Color, Kanban Plugin Button color. - id: fg - type: variable-themed-color - format: hex - default-dark: '#cfd7dd' - default-light: '#912e2e' - - - title: Rainbows - id: ITS-Rainbows - type: heading - level: 2 - collapsed: true - - - title: Theme Rainbows - description: Illusion Header BG, Style Settings Colors, List Lines - id: ITS-Rainbows-Theme - type: heading - level: 3 - collapsed: true - - - title: Theme Rainbow 1 - id: theme-rainbow-1 - type: variable-themed-color - format: hex - default-dark: '#7c2929' - default-light: '#bb5555' - - - title: Theme Rainbow 2 - id: theme-rainbow-2 - type: variable-themed-color - format: hex - default-dark: '#652121' - default-light: '#a53f3f' - - - title: Theme Rainbow 3 - id: theme-rainbow-3 - type: variable-themed-color - format: hex - default-dark: '#471d1d' - default-light: '#862c2c' - - - title: Theme Rainbow 4 - id: theme-rainbow-4 - type: variable-themed-color - format: hex - default-dark: '#381919' - default-light: '#662828' - - - title: Theme Rainbow 5 - id: theme-rainbow-5 - type: variable-themed-color - format: hex - default-dark: '#424c61' - default-light: '#697795' - - - title: Theme Rainbow 6 - id: theme-rainbow-6 - type: variable-themed-color - format: hex - default-dark: '#2e333d' - default-light: '#a4aec2' - - - title: Rainbow - id: ITS-Rainbows-Rainbow - type: heading - level: 3 - - - title: Rainbow 1 - id: theme-rainbow-1 - type: variable-themed-color - format: hex - default-dark: '#b03a3a' - default-light: '#dd3c3c' - - - title: Rainbow 2 - id: theme-rainbow-2 - type: variable-themed-color - format: hex - default-dark: '#d59929' - default-light: '#f1ab27' - - - title: Rainbow 3 - id: theme-rainbow-3 - type: variable-themed-color - format: hex - default-dark: '#207a20' - default-light: '#118811' - - - title: Rainbow 4 - id: theme-rainbow-4 - type: variable-themed-color - format: hex - default-dark: '#3232c5' - default-light: '#3333cc' - - - title: Rainbow 5 - id: theme-rainbow-5 - type: variable-themed-color - format: hex - default-dark: '#7f307f' - default-light: '#a824a8' - - - title: Rainbow 6 - id: theme-rainbow-6 - type: variable-themed-color - format: hex - default-dark: '#dd4794' - default-light: '#e83b94' - - - title: Highlights - id: RGBA - type: heading - level: 2 - collapsed: true - - - title: Text Highlight - description: Markdown mark highlight color. - id: text-highlight-bg - type: variable-themed-color - format: rgb - opacity: true - default-dark: '#7a141466' - default-light: 'rgba(229, 149, 149, 0.37)' - - - title: Text Selection - description: Cursor selection highlight color. - id: highlight - type: variable-themed-color - format: rgb - opacity: true - default-dark: '#7a141466' - default-light: 'rgba(229, 149, 149, 0.37)' - - - title: Search Highlight - id: text-highlight-bg-active - type: variable-themed-color - format: rgb - opacity: true - default-dark: '#fd737340' - default-light: '#fd737340' - - - title: Hover Color - id: hvr - type: variable-themed-color - format: rgb - opacity: true - default-dark: 'rgba(168, 60, 60, 0.4)' - default-light: 'rgba(255, 0, 0, 0.212)' - - - title: Hover Active color - id: hvr-active - type: variable-themed-color - format: rgb - opacity: true - default-dark: 'rgba(212, 47, 47, 0.4)' - default-light: 'rgba(253, 115, 115, 0.4)' - #- - # title: Search 2 - # description: Search match highlight and background transparent color for settings. - # id: background-modifier-form-field-highlighted - # type: variable-themed-color - # format: rgb - # opacity: true - # default-dark: '#347bed22' - # default-light: '#f0838322' - #- - # title: Text Selection - # description: Cursor dragged highlights - # id: text-selection - # type: variable-themed-color - # format: rgb - # opacity: true - # default-dark: '#4d171746' - # default-light: '#e5959537' - - - title: Graph Colors - id: Graph - type: heading - level: 2 - collapsed: true - - - title: Graph Background - id: graph-bg - type: variable-themed-color - format: hex - default-dark: '#0b0f13' - default-light: '#eef3fd' - - - title: Graph Lines - id: graph-lines - type: variable-themed-color - format: hex - default-dark: '#571a1a' - default-light: '#e4e7f8' - - - title: Graph Node - id: graph-node - type: variable-themed-color - format: hex - default-dark: '#cfd7dd' - default-light: '#c14343' - - - title: Graph Current Node - id: graph-focused - type: variable-themed-color - format: hex - opacity: true - default-dark: '#fd737366' - default-light: '#fd737366' - - - title: Graph Attachment - id: graph-img - type: variable-themed-color - format: hex - default-dark: '#4c78cc' - default-light: '#4c78cc' - - - title: Graph Tags - id: graph-tag - type: variable-themed-color - format: hex - default-dark: '#c14343' - default-light: '#000000' - - - title: Plugins - id: ITS-Plugins - type: heading - level: 1 - collapsed: true - - - title: Disable ITS Styled Statblocks - id: default-statblock - type: class-toggle - - - title: Breadcrumbs Box Style - id: breadcrumbs-block - type: class-toggle - - - title: Dataview - id: ITS-Plugins-Dataview - type: heading - level: 2 - collapsed: true - - - title: Dataview Regular Styled Tables - id: dataview-regular-table - type: class-toggle - - - title: Auto Sized Dataview Tables - id: dataview-table-auto - type: class-toggle - - - title: Kanban Adjustments - id: ITS-Plugins-Kanban - type: heading - level: 2 - collapsed: true - - - title: Boxed Style - id: kanban-boxed - type: class-toggle - - - title: Minimal Style - id: kanban-minimal - type: class-toggle - - - title: Kanban Center Titles - id: kanban-title-center - type: class-toggle - - - title: Alternate Color Schemes - id: ITS-Alt-Color-Scheme - type: heading - level: 1 - collapsed: true - - - title: Accent Color - description: Use the Obsidian accent color picker in the Appearance tab as theme color - id: accent-color - type: class-toggle - - - title: SlRvb Blue - id: slrvb-b - type: class-toggle - - - title: SlRvb Gray - id: slrvb-g - type: class-toggle - - - title: School Days - id: s-d - type: class-toggle - - - title: TTRPG - id: select - type: class-select - allowEmpty: true - default: none - options: - - - label: SlRvb D&D - value: dnd - - - label: WOTC/Beyond - value: wotc-beyond - - - label: Pathfinder - value: pathfinder - - - title: Tangerine Dunes - id: t-d - type: class-toggle - - - title: Drowned - id: drwn - type: class-toggle - - - title: Nord - id: nord - type: class-toggle - - - title: Minimalist - id: mini - type: class-toggle - - - title: Notion - id: notion - type: class-toggle -# - -# title: Nebula -# id: nebula -# type: class-toggle -# - -# title: Adventure -# id: advt -# type: class-toggle - - - title: ITS Dark - id: its-d - type: class-toggle -*/ -/*Fonts*/ -@font-face { - font-family: "Fira Code"; - src: url("data:font/woff2;charset=utf-8;base64,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") format("woff2"), url("data:font/woff;charset=utf-8;base64,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") format("woff"); - font-weight: 500; - font-style: normal; - font-display: swap; -} -/*Icon: ITS Icons*/ -@font-face { - font-family: "its"; - src: url("data:application/octet-stream;base64,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") format("woff"), url("data:application/octet-stream;base64,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AREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAARmaWxlBmZvbGRlcgZidWxsZXQOZC1hbmQtZC1icmFuZHMGbm90ZS0yBmxheWVycwdwcmludGVyCGJhY2tsaW5rB291dGxpbmsEbGluawVjbG9zZRBmb3JtYXQtbGlzdC10ZXh0CHBlbmNpbC0xBmJvb2stMwxwbGFuZXQtc2hhcnAJbGlnaHRuaW5nDWxpbmstZXh0ZXJuYWwNbGluay1pbnRlcm5hbBBmb290bm90ZS13cml0aW5nC2xlLWJlYW4tZG5kB3NlYXJjaDIIZm9vdG5vdGUPYW5nbGUtZG91YmxlLXVwCWNoYXItbWFpbg9jaGFyLWFudGFnb25pc3QJY2hhci1zaWRlCmNoYXItZXh0cmEJY2hhcmFjdGVyJGljX2ZsdWVudF9wZW9wbGVfY29tbXVuaXR5XzE2X2ZpbGxlZA5mYS1jaGVjay1zb2xpZAVtaW51cxdmZWF0aGVyLWljb24tcGFwZXItcGxhbg1jYWxlbmRhci1maWxsEWZvbnRpc3RvLXF1ZXN0aW9uFWJveGljb25zLXBsdXMtbWVkaWNhbBRlbHVzaXZlLWljb25zLXNlYXJjaBlmb250LWF3ZXNvbWU0LWV4Y2xhbWF0aW9uCWxpZ2h0YnVsYhFidWJibGUtY2hhcnQtZmlsbA10aHVtYi11cC1maWxsD3RodW1iLWRvd24tZmlsbA1mb250aXNvLXF1b3RlEWZpbGUtcGFwZXItMi1maWxsDWJvb2ttYXJrLWZpbGwLZW50eXBvLWluZm8EaGFsZgdleGFtcGxlEmFuZ2xlLWRvdWJsZS1yaWdodApvay1jaXJjbGVkCm1hcC1tYXJrZXIFYXdhcmQLc3RyZWV0LXZpZXcNYnVsbGV0LXNlbGVjdAVzcGluMgR0aW1lBGNoYXQEY3JvdwpzaWducy1wb3N0BWhlYXJ0BGxvY2sIeWluLXlhbmcOc3dvcmQtZmlsbC1maXgAAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViw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") format("truetype"); -} -body, -.theme-dark, -.theme-light { - --accent-h: 0; - --accent-s: 49%; - --accent-l: 49%; - --background-primary: var(--note); - --background-primary-alt: var(--outer-bar); - --background-secondary: var(--side-bar); - --background-secondary-alt: var(--outer-bar); - --background-modifier-form-field: var(--input-bg); - --background-modifier-message: var(--dark-accent); - --toggle-thumb-color: transparent; - --popover-background: var(--background-primary); - --background-modifier-border: var(--lines); - --background-modifier-border-hover: var(--bg); - --background-modifier-border-focus: var(--accent); - --divider-color: var(--outer-bar); - --divider-color-hover: var(--accent); - --prompt-border-color: var(--outline); - --text-on-accent: var(--text-dl); - --text-normal: var(--text); - --text-accent: var(--accent2-lite); - --text-accent-hover: var(--lite-accent); - --text-muted: var(--soft-text); - --text-faint: var(--faint-text); - --text-highlight-bg: var(--hvr); - --text-highlight-bg-active: var(--hvr-active); - --text-selection: var(--highlight); - --interactive-normal: var(--code-bg); - --interactive-hover: var(--embed-bg); - --interactive-accent: var(--bttn); - --interactive-accent-hover: var(--bg); - --interactive-accent-hsl: var(--selected-rgb); - --background-modifier-hover: var(--hvr-active); - --background-modifier-success: var(--success-bg); - --background-modifier-error: var(--failure-bg); - --background-modifier-active-hover: var(--dark-accent); - --background-modifier-cover: var(--td); - --icon-opacity: 1; - --icon-color: var(--soft-text); - --icon-color-active: var(--text-dl); - --icon-color-hover: var(--text); - --icon-color-focused: var(--text); - --drag-ghost-background: var(--dark-accent); - --drag-ghost-text-color: var(--text-dl); - --tooltip-color: var(--text-dl); - --italic-color: inherit; - --bold-color: inherit; - --text-dl: #e5ebee; - --accent-text: #dcddde; - --list-color-1: var(--rainbow-1); - --list-color-2: var(--rainbow-2); - --list-color-3: var(--rainbow-3); - --list-color-4: var(--rainbow-4); - --list-color-5: var(--rainbow-5); - --list-color-6: var(--rainbow-6); -} - -.theme-dark { - --deep-dark-accent: #3f1010; - --dark-accent: #652121; - --lite-accent: #c94d4d; - --accent: #863737; - --accent2: #42536e; - --accent2-lite: #61afef; - --accent-color: 134, 55, 55; - --side-bar: var(--note); - --side-bar-bg: var(--outer-bar); - --outer-bar: #0b0f13; - --dark-sidebar: #0d1014; - --bttn: var(--dark-accent); - --input-bg: rgba(0, 0, 0, 0.3); - --selected-rgb: 168, 60, 60; - --hvr: rgba(168, 60, 60, 0.4); - --hvr2: var(--highlight); - --hvr-active: rgba(212, 47, 47, 0.4); - --highlight: #7a141466; - --bg: #252c36; - --fg: #cfd7dd; - --success-bg: #32603e; - --failure-bg: #772d2d; - --inactive: #586477; - --outline: var(--outer-bar); - --folder: var(--accent); - --folder-open: #e05858; - --file-icon-color: #586477; - --file-icon-color: var(--inactive); - --lines: var(--hr); - --note: #1a1e24; - --note-rgb: 26, 30, 36; - --text: #bccad8; - --headers: #c14343; - --soft-text: #97a1b9; - --faint-text: #4e5b6f; - --code-text: #fa4545; - --footnote: #63778f; - --code-bg: #232831; - --embed-bg: var(--dark-sidebar); - --aside-bg: #11151d; - --th: var(--dark-accent); - --th-text: var(--text-dl); - --td: #06080c60; - --drop-shadow: #06080c60; - --tag: var(--dark-accent); - --tag-text: #d04e4e; - --table: #283345; - --hr: #2f3b4d; - --i-at: #bf5e5e; - --progress: var(--accent); - --progress-bg: var(--bg); - --graph-bg: var(--outer-bar); - --graph-lines: var(--dark-accent); - --graph-node: var(--text); - --graph-fill: var(--headers); - --graph-404: #727e93; - --graph-img: #4c78cc; - --graph-tag: var(--headers); - --graph-focused: var(--accent2-lite); - --theme-rainbow-1: #7c2929; - --theme-rainbow-2: #652121; - --theme-rainbow-3: #471d1d; - --theme-rainbow-4: #381919; - --theme-rainbow-5: #424c61; - --theme-rainbow-6: #2e333d; - --rainbow-1: #b03a3a; - --rainbow-2: #d59929; - --rainbow-3: #207a20; - --rainbow-4: #3232c5; - --rainbow-5: #7f307f; - --rainbow-6: #dd4794; -} - -.theme-light { - --deep-dark-accent: #2f1010; - --dark-accent: #c35c5c; - --lite-accent: #cd2626; - --accent: #912e2e; - --accent2: #aac1d3; - --accent2-lite: #5599d0; - --side-bar: var(--note); - --side-bar-bg: var(--outer-bar); - --outer-bar: #eef3fd; - --dark-sidebar: #f1f5ff; - --bttn: var(--headers); - --input-bg: var(--td); - --selected-rgb: 52, 123, 237; - --hvr: rgba(255, 0, 0, 0.212); - --hvr2: var(--highlight); - --hvr-active:rgba(253, 115, 115, 0.4); - --highlight: rgba(229, 149, 149, 0.37); - --bg: #e1e9f6; - --fg: var(--accent); - --success-bg: #599049; - --failure-bg: #772d2d; - --inactive: #a6bbde; - --outline: var(--bg); - --folder: var(--accent); - --file-icon-color: #7e8ea3; - --file-icon-color: var(--inactive); - --folder-open: #ce6d6d; - --lines: #b5c2d8; - --icons: #d04e4e; - --note: #f8fbff; - --note-rgb: 248, 251, 255; - --text: #30353a; - --headers: #c14343; - --faint-text: #4e5b6f; - --soft-text: #697580; - --code-text: #ea4262; - --footnote: #8996a0; - --code-bg: var(--embed-bg); - --embed-bg: var(--dark-sidebar); - --aside-bg: var(--dark-sidebar); - --th: var(--headers); - --th-text: var(--text-dl); - --td: #d0ddef62; - --drop-shadow: #d0ddef62; - --tag: #c65656; - --tag-text: var(--lite-accent); - --table: #ccd6eb; - --hr: #d6deea; - --i-at: var(--folder); - --progress: var(--accent); - --progress-bg: var(--bg); - --graph-bg: var(--note); - --graph-lines: #e4e7f8; - --graph-node: var(--headers); - --graph-fill: var(--folder); - --graph-404: #727e93; - --graph-img: #4c78cc; - --graph-tag: #000000; - --graph-focused: var(--text-highlight-bg-active); - --theme-rainbow-1: #bb5555; - --theme-rainbow-2: #a53f3f; - --theme-rainbow-3: #862c2c; - --theme-rainbow-4: #662828; - --theme-rainbow-5: #697795; - --theme-rainbow-6: #a4aec2; - --rainbow-1: #dd3c3c; - --rainbow-2: #f1ab27; - --rainbow-3: #118811; - --rainbow-4: #3333cc; - --rainbow-5: #a824a8; - --rainbow-6: #e83b94; -} - -body.theme-dark, -body.theme-light { - --font-default: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; - --font-monospace: "Fira Code", "Fira Code Medium", "Source Code Pro", monospace; - --font-text: var(--font-text-override), var(--font-default); - --font-monospace-default: var(--font-monospace-default-override), var(--font-monospace); - --font-interface: var(--font-interface-override), var(--font-default); - --rmx: "remixicon"; - --mdi: "Material Icons Sharp"; - --its: "its"; - --fa5: "Font Awesome 5 Free Solid"; - --fa6: "Font Awesome 6 Free Solid"; - --rpg: "rpg-awesome"; - --radius-s: 0; - --radius-m: calc(var(--radius-s) * 1.1); - --radius-l: calc(var(--radius-s) * 1.2); - --radius-xl: calc(var(--radius-s) * 1.5); - --radius-h: calc(var(--radius-s) / .50); - --slider-track-radius: var(--radius-h); - --input-radius: var(--radius-s); - --icon-btn-radius: var(--radius-s); - --tag-radius: var(--radius-l); - --slider-thumb-radius: var(--radius-h); - --status-bar-radius: var(--radius-m) 0 0 0; - --checkbox-radius: var(--radius-m); - --toggle-radius: var(--radius-h); - --toggle-thumb-radius: var(--radius-h); - --clickable-icon-radius: var(--radius-s); - --pill-radius: var(--radius-m); - --bold-weight: 900; - --font-ui-smaller: 13.5px; - --font-ui-small: 14px; - --font-ui-medium: 15px; - --font-ui-large: 20px; - --font-smallest: .85em; - --font-smaller:.90em; - --font-small: .95em; - --icon-xs: 14px; - --icon-s: 16px; - --icon-m: 17px; - --icon-l: 18px; - --line-height-tight: 1.3em; - --scroll-size: 7px; - --divider-width: 2px; - --divider-width-hover: 5px; - --tag-padding-x: 7px; - --tag-padding-y: 3px; - --prompt-border-width: 3px; - --tab-outline-width: 2px; - --shadow-s: 2px 2px 0 var(--outline); - --shadow-m: 3px 3px 0 var(--outline); - --shadow-ml: 4px 4px 0 var(--outline); - --shadow-l: 5px 5px 0 var(--outline); - --input-shadow: var(--shadow-s); - --input-shadow-hover: var(--shadow-m); - --embed-block-shadow-hover: var(--input-shadow); - --message-color: var(--text-dl); - --message-box-shadow: var(--shadow-s); - --message-border-width: 0px; - --message-border-color: var(--outline); - --toggle-shadow: none; - --box-border-s: 1px solid var(--outline); - --box-border: 2px solid var(--outline); - --box-border-m: 3px solid var(--outline); -} - -.backlink-pane > .tree-item-self.is-collapsed:hover, -.outgoing-link-pane > .tree-item-self.is-collapsed:hover, -.tree-item-self:hover :is(.tree-item-inner-subtext, .tree-item-icon, .tree-item-flair) { - color: var(--nav-item-color-hover); -} - -.tree-item-self:hover .collapse-icon svg.svg-icon { - color: unset; -} - -.nav-file-tag { - background-color: var(--tag); - color: var(--text-on-accent); -} - -.search-result-hover-button, -.nav-folder-title:hover svg.svg-icon, -.search-result-file-title:hover .collapse-icon svg.svg-icon { - color: var(--nav-item-color-hover); -} - -input[type=range] { - border-radius: var(--slider-track-radius); -} - -.notice, -.tooltip { - color: var(--message-color); - box-shadow: var(--message-box-shadow); - border: var(--message-border-width) solid var(--message-border-color); -} - -.tree-item-self { - align-items: center; -} - -.theme-dark, -.theme-light { - --modal-border-color: var(--outline); - --modal-border-width: 3px; - --modal-community-sidebar-width: 310px; - --modal-sidebar-background: var(--dark-sidebar); - --modal-nav-item-background: transparent; - --modal-nav-item-background-hover: var(--td); - --setting-item-padding: 10px 15px; - --setting-item-background: transparent; - --setting-item-alt-background: var(--setting-item-background); - --setting-item-alt-background-hover: var(--td); - --setting-item-heading-background: transparent; - --setting-item-background-hover: var(--hvr); - --setting-item-heading-border: 2px solid var(--headers); - --setting-item-border-color: var(--table); - --toggle-width: 20px; - --toggle-s-width: 20px; - --toggle-border-width: 1px; -} - -.vertical-tab-content { - padding: 35px; -} -.vertical-tab-content .setting-item { - padding-left: 18px; - padding-right: 18px; -} -.vertical-tab-content .installed-plugins-container { - padding: 0; -} -.vertical-tab-content .setting-item { - border: 0; - border-bottom: 1px solid; - padding: var(--setting-item-padding); - background: var(--setting-item-background); - border-color: var(--setting-item-border-color); -} -.vertical-tab-content .setting-item-heading { - background: var(--setting-item-heading-background); - border-bottom: var(--setting-item-heading-border); -} -.vertical-tab-content .setting-item-heading:hover { - background: var(--setting-item-background-hover); -} -.vertical-tab-content .setting-item:nth-child(even):not(.setting-item-heading) { - background-color: var(--setting-item-alt-background); -} -.vertical-tab-content .setting-item:nth-child(even):not(.setting-item-heading):hover { - background-color: var(--setting-item-alt-background-hover); -} - -.setting-item.setting-item:hover { - background-color: var(--modal-nav-item-background-hover); -} - -.vertical-tab-header { - background-color: var(--modal-sidebar-background); -} - -.horizontal-tab-nav-item, -.vertical-tab-nav-item { - background-color: var(--modal-nav-item-background); -} - -.vertical-tab-header-group-title { - color: var(--headers); - font-size: var(--font-ui); -} - -:is(.mod-linux, .mod-windows) .titlebar-button.mod-close:hover { - color: var(--text-dl); -} - -.u-pop { - color: var(--text); -} - -button.mod-cta:hover { - color: var(--text); -} - -.checkbox-container, -.checkbox-container:after { - box-shadow: var(--toggle-shadow); -} - -.checkbox-container.mod-small { - width: var(--toggle-s-width); - height: var(--toggle-s-width); -} - -.checkbox-container.is-enabled { - background-color: var(--accent); -} - -.setting-item:hover .checkbox-container { - box-shadow: 0 0 0 1px var(--background-modifier-border); -} - -.community-item { - border: var(--box-border); - box-shadow: var(--shadow-s); -} - -.community-item:hover { - background-color: var(--modal-nav-item-background-hover); - border-color: var(--outline); -} - -.community-modal-info-name { - font-family: var(--h2-font); - font-weight: var(--h2-weight); -} - -.mod-community-modal .modal-sidebar button.clickable-icon:hover { - color: var(--text-dl); -} - -.menu { - border-width: var(--modal-border-width); - border-color: var(--modal-border-color); -} -.menu .menu-item.selected .menu-item-icon { - color: var(--text-normal); -} - -.setting-hotkey, -.suggestion-hotkey { - border-radius: var(--radius-s); - background-color: var(--code-bg); - color: var(--soft-text); - font-size: 12px; - box-shadow: var(--code-shadow); -} - -.theme-dark, -.theme-light { - --status-bar-text-color: var(--text-muted); - --status-bar-background: var(--outer-bar); - --status-bar-border-color: var(--accent); -} - -.theme-dark, -.theme-light { - --sidebar-markdown-font-size: var(--font-text-size); - --sidebar-tab-text-display: none; - --sidebar-tab-background-color: var(--bttn); - --ribbon-background: var(--outer-bar); - --ribbon-background-collapsed: var(--note); - --ribbon-width: 40px; - --ribbon-border-width: 0; - --ribbon-border-color: var(--outer-bar); - --ribbon-icon-size: var(--icon-l); - --ribbon-icon-stroke: var(--icon-l-stroke-width); - --sidebar-icon-color: var(--text); - --sidebar-icon-color-active: var(--text-dl); - --sidebar-tab-icon-size: var(--icon-l); - --sidebar-tab-icon-stroke: var(--icon-l-stroke-width); - --sidebar-tab-background-color-hover: var(--accent); - --sidebar-tab-color-hover: var(--text-on-accent); - --sidebar-tab-border-color: transparent; - --sidebar-tab-border-color-active: var(--bttn); - --sidebar-tab-border-width: 0; - --sidebar-tab-padding: 0 var(--size-4-3); -} - -:is(.mod-right-split, .mod-left-split) .workspace-tab-header-container-inner { - padding: 0; - margin: 0; -} - -.mod-right-split .workspace-tab-header-container-inner { - margin-left: 2px; -} - -:is(.mod-left-split, .mod-right-split) .workspace-tab-header-inner { - padding: var(--sidebar-tab-padding); -} - -.workspace-ribbon.mod-left { - margin-top: 0; - gap: 0; -} - -.sidebar-toggle-button { - padding: 0; - position: relative; - height: var(--header-height); -} -.sidebar-toggle-button .clickable-icon { - padding: 10px; -} - -:is(.mod-left-split, .mod-right-split) .workspace-tab-header-inner-icon .svg-icon { - --icon-size: var(--sidebar-tab-icon-size); - --icon-stroke: var(--sidebar-tab-icon-stroke); -} - -:is(.mod-left-split, .mod-right-split) .workspace-tab-header-inner { - background-color: transparent; - border-bottom: var(--sidebar-tab-border-width) solid var(--sidebar-tab-border-color); -} - -:is(.mod-left-split, .mod-right-split) .is-active .workspace-tab-header-inner { - border-color: var(--sidebar-tab-border-color-active); -} - -.clickable-icon.side-dock-ribbon-action { - padding: 10px; -} - -.workspace-ribbon { - padding: 0; - border-right: var(--ribbon-border-width) solid var(--ribbon-border-color); -} - -.workspace-ribbon .side-dock-ribbon-action .svg-icon { - --icon-size: var(--ribbon-icon-size); - --icon-stroke: var(--ribbon-icon-stroke); -} - -:is(.mod-left-split, .mod-right-split) .workspace-tab-header.is-active, -:is(.mod-left-split, .mod-right-split) .workspace-tab-header { - --background-modifier-hover: var(--sidebar-tab-background-color); - --tab-text-color: var(--text); - --tab-text-color-active: var(--text-dl); - --tab-text-color-focused: var(--text); - --tab-text-color-focused-active: var(--text-dl); - --tab-text-color-focused-active-current: var(--sidebar-icon-color-active); -} -:is(.mod-left-split, .mod-right-split) .workspace-tab-header.is-active .workspace-tab-header-inner-icon, -:is(.mod-left-split, .mod-right-split) .workspace-tab-header .workspace-tab-header-inner-icon { - --icon-color-focused: var(--sidebar-icon-color-active); -} - -:is(.mod-left-split, .mod-right-split) .is-active:hover .workspace-tab-header-inner, -:is(.clickable-icon, .workspace-tab-header-inner-icon):hover, -.workspace-tab-header-container .clickable-icon:hover, -.workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner, -.side-dock-ribbon .clickable-icon:hover, -.workspace-tab-header:hover .workspace-tab-header-inner .workspace-tab-header-inner-icon { - color: var(--sidebar-tab-color-hover); -} - -.side-dock-actions { - margin-top: var(--header-height); -} - -.workspace-tab-header-inner .workspace-tab-header-inner-icon { - color: var(--sidebar-icon-color); -} - -.tree-item-self .tree-item-icon { - position: relative; - margin-left: -3px; -} - -body { - --search-border: var(--box-border); - --search-box-shadow: var(--shadow-s); -} - -/*Search Styling*/ -.search-results-children .search-result { - margin-right: 0px; - margin-bottom: 10px; - background: var(--note); - border: var(--search-border); - box-shadow: var(--search-box-shadow); -} - -.search-result-container { - padding-left: var(--size-4-3); - padding-right: var(--size-4-2); -} - -.search-result-file-title { - background: var(--code-bg); - box-shadow: 0 2px 0 var(--td); - padding: 5px 10px; - line-height: var(--lh); - margin-bottom: 0; -} - -.search-result:not(.is-collapsed) .search-result-file-title:not(:hover) { - color: var(--text); -} - -.search-result-file-matches { - margin: 0; - padding: 0; - border: 0; - box-shadow: unset; -} - -.search-result-file-match { - margin: auto; - width: auto; - z-index: 0; - padding: 8px 10px; - color: var(--text); - left: 0; -} - -.search-result-file-match:hover { - padding-right: var(--size-4-5); -} - -.search-result-file-title:hover .search-result-file-matched-text { - color: var(--text-on-accent); - border-bottom: 2px solid var(--text-on-accent); -} - -.search-result-hover-button:not(:hover) { - color: var(--text); -} -.search-result-hover-button:hover { - background-color: var(--bttn); -} - -.cm-s-obsidian span.obsidian-search-match-highlight { - box-shadow: 0 0 0 2px var(--accent); - border-radius: var(--radius-s); - background-color: var(--text-highlight-bg-active); -} - -.search-results-info .dropdown:hover { - color: var(--lite-accent); - font-weight: 900; -} - -.search-results-result-count:hover { - color: var(--text-dl); -} -.search-results-result-count:hover .more-options-icon { - background-color: var(--text-dl); -} -.search-results-result-count:hover .more-options-icon svg { - fill: var var(--sidebar-tab-background-color-hover); -} - -.document-search-container.document-search-container { - padding: var(--size-4-2); - background-color: transparent; -} -.document-search-container.document-search-container .document-search, .document-search-container.document-search-container .document-replace { - flex-wrap: wrap; - justify-content: center; -} - -body { - --tab-curve: var(--radius-s); - --tab-radius: var(--radius-s); - --tab-radius-active: var(--radius-s); - --tab-font-size: var(--font-size); - --tab-font-weight: 500; - --tab-font-weight-active: 900; - --tab-width: 200px; - --tab-max-width: 320px; - --tab-outline-width: 0; - --tab-outline-color: var(--accent); - --tab-divider-color: var(--hr); - --tab-background: var(--outer-bar); - --tab-background-active: var(--note); - --tab-container-background: var(--tab-background); - --tab-text-color: var(--inactive); - --tab-text-color-active: var(--text); - --tab-text-color-focused: var(--inactive); - --tab-text-color-focused-active: var(--text); - --tab-text-color-focused-active-current: var(--text); - --tab-text-color-hover: var(--text); - --tab-stacked-font-weight: 700; - --tab-stacked-font-size: 15px; - --tab-stacked-shadow: -10px 0 10px var(--tab-stacked-shadow-color); - --tab-stacked-shadow-color: var(--drop-shadow); -} - -.view-header-title-container:not(.mod-at-end):after { - display: none; -} - -.workspace-tab-header.workspace-tab-header:hover { - color: var(--tab-text-color-hover); -} - -.workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner-close-button, -body.is-focused :is(.mod-left-split, .mod-right-split) .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner-title { - color: var(--text-dl); -} - -.is-active .workspace-tab-header-inner-title { - font-weight: var(--tab-font-weight-active); -} - -.workspace .mod-root .workspace-tab-header-inner-title { - padding-right: 10px; -} - -.mod-root .workspace-tab-header-container-inner { - padding-top: 2px; -} - -.mod-root .mod-stacked .workspace-tab-header:hover .workspace-tab-header-inner { - color: var(--tab-text-color-hover); -} - -body { - --vault-name-font-size: 20px; - --vault-name-font-weight: var(--font-bold); - --vault-name-color: var(--headers); - --vault-font: var(--font); - --nav-item-color: var(--text); - --nav-item-color-hover: var(--text-dl); - --nav-item-color-active: var(--text-dl); - --nav-item-color-highlighted: var(--text-dl); - --folder-open-text-color: var(--text); - --nav-item-background-hover: var(--dark-accent); - --nav-item-background-active: var(--dark-accent); - --nav-item-background-selected: var(--hvr); - --nav-item-border-width: 0px; - --nav-item-border-color: var(--lite-accent); - --nav-item-background-border-color-hover: var(--dark-accent); - --nav-item-padding: 4px 8px; - --explorer-padding: 4px 4px 4px 3px; - --explorer-item-padding: 2px 8px; - --nav-item-children-padding-left: 8px; - --nav-item-children-margin-left: 15px; - --folder-text-color: var(--nav-item-color); - --file-text-color: var(--nav-item-color); - --nav-item-size: var(--font-ui-small); - --nav-item-weight: 500; - --nav-item-weight-hover: 700; - --nav-item-weight-active: 700; - --nav-item-white-space: wrap; - --nav-indentation-guide-width: 2px; - --nav-indentation-guide-color: var(--lines); - --folder-weight: 700; -} - -.nav-folder-collapse-indicator, -.tree-item-icon.nav-folder-collapse-indicator { - display: none; -} - -.nav-folder-title { - --nav-item-weight: var(--folder-weight); -} - -.nav-folder.mod-root > .nav-folder-title:hover { - color: var(--dark-accent); -} - -.nav-files-container { - padding: var(--explorer-padding); -} - -.nav-folder.is-collapsed .nav-folder-title:not(.is-being-dragged) { - color: var(--folder-text-color); -} - -.nav-folder:not(.mod-root) > .nav-folder-title:not(.is-being-dragged) { - color: var(--folder-open-text-color); -} - -.nav-folder-title.nav-folder-title.is-active.is-active { - color: var(--text-dl); -} -.nav-folder-title.nav-folder-title.is-active.is-active .nav-folder-title-content::before { - color: var(--text-dl); -} - -.nav-file-title { - color: var(--file-text-color); -} - -.nav-file-tag { - margin-left: auto; -} - -.nav-folder.mod-root > .nav-folder-title { - font-family: var(--vault-font); -} - -.nav-folder.mod-root > .nav-folder-children .nav-folder > .nav-folder-title, .nav-folder.mod-root > .nav-folder-children .nav-file > .nav-file-title { - border: 2px solid transparent; - margin-bottom: 0; - padding: var(--explorer-item-padding); -} -.nav-folder.mod-root > .nav-folder-children .nav-folder > .nav-folder-title:hover, .nav-folder.mod-root > .nav-folder-children .nav-file > .nav-file-title:hover { - border-color: var(--nav-item-background-border-color-hover); -} - -body { - --titlebar-background: var(--note); - --titlebar-background-focused: var(--outer-bar); - --titlebar-text-color: var(--text-normal); -} - -.is-hidden-frameless:not(.is-fullscreen).is-focused .titlebar-button-container.mod-right, .is-hidden-frameless:not(.is-fullscreen) .titlebar-button-container.mod-right { - background: transparent; -} - -.workspace-tab-header.is-active .workspace-tab-header-inner-close-button { - color: var(--tab-text-color-focused-active-current); -} - -body { - --file-header-font-size: var(--font-ui-medium); - --file-header-font-weight: 600; - --file-header-parent-font-weight: 600; - --file-header-breadcrumb-font-size: var(--font-ui-smaller); - --file-header-breadcrumb-color: var(--inactive); - --file-header-color: var(--inactive); - --file-header-color-active: var(--text); - --file-header-background: var(--note); - --file-header-left-color: var(--dark-accent); - --file-header-right-color: var(--outer-bar); -} - -.is-focused .workspace-leaf.mod-active .view-header, -.workspace-leaf .view-header { - gap: 0; - margin: 0; - padding: 0 var(--size-4-3); - background: var(--file-header-background); -} - -.view-header-title-parent { - font-weight: var(--file-header-parent-font-weight); -} - -.view-header-title { - color: var(--file-header-color); -} - -.mod-active { - color: var(--file-header-color-active); -} - -.view-header-title-container, -.view-header-title-parent { - align-content: center; - align-items: center; -} - -.view-header-breadcrumb { - font-size: var(--file-header-breadcrumb-font-size); - color: var(--file-header-breadcrumb-color); -} - -.clickable-icon[aria-disabled=true]:hover { - color: var(--inactive); -} - -.popover.hover-popover { - min-height: auto; - background-color: var(--popover-background); -} -.popover.hover-popover > .markdown-embed > .markdown-embed-content { - padding: 0; -} -.popover.hover-popover .markdown-preview-view { - background-color: var(--popover-background); -} - -@media (max-width: 500px) { - .theme-dark, .theme-light { - /*Mobile Sizes*/ - --radius: 0px; - --micro: 70px; - --tiny: 100px; - --small: 150px; - --small-med: 200px; - --med-small: 250px; - --medium: 300px; - --med-tall: 450px; - --tall: 500px; - } -} -.is-mobile.is-mobile { - --interactive-accent: var(--lite-accent); - --caret-color: var(--text-normal); - --tag-background: var(--tag); - --modal-background: var(--background-primary); - --settings-home-background: var(--background-primary); - --search-result-background: var(--background-secondary); - --background-modifier-form-field: var(--td); - --background-modifier-cover: var(--outer-bar); - --background-modifier-hover: var(--hvr-active); - --toggle-width: 22px; -} -.is-mobile.is-mobile .prompt { - border: var(--prompt-border-width) solid var(--prompt-border-color); -} -.is-mobile.is-mobile .menu { - border: var(--prompt-border-width) solid var(--modal-border-color); -} -.is-mobile.is-mobile .vertical-tab-nav-item.is-active, .is-mobile.is-mobile button.mod-cta:not(:hover) { - background-color: var(--dark-accent); -} -.is-mobile.is-mobile .checkbox-container { - height: var(--toggle-width); -} -.is-mobile.is-mobile .side-dock-ribbon { - background-color: var(--ribbon-background); -} -.is-mobile.is-mobile.is-tablet .sidebar-toggle-button { - padding-left: unset; -} -.is-mobile.is-mobile .pull-down-action, .is-mobile.is-mobile .pull-out-action { - border-radius: var(--radius-h); -} -.is-mobile.is-mobile .notice { - border-radius: var(--radius-s); -} -.is-mobile.is-mobile.is-phone .vertical-tab-header-group-title, .is-mobile.is-mobile.is-phone .setting-item-heading .setting-item-name { - font-size: var(--font-ui-medium); -} -.is-mobile.is-mobile.is-phone .setting-item { - gap: unset; - padding: var(--setting-item-padding); -} -.is-mobile.is-mobile.is-phone .setting-item-heading { - margin: 0; -} -.is-mobile.is-mobile.is-phone .mod-sync-log { - --modal-top: 0; -} -.is-mobile.is-mobile .view-header-title { - padding: 0 var(--size-4-1); -} - -.is-mobile { - --mobile-toolbar-background: var(--deep-dark-accent); -} -.is-mobile .workspace-drawer-backdrop { - opacity: 0.9 !important; -} -.is-mobile .workspace-drawer:is(.mod-left, .mod-right) { - border: none; - box-shadow: 0 0 5px var(--outline), 0 0 5px var(--outline), 0 0 5px var(--outline); -} -.is-mobile .workspace-drawer-active-tab-container.is-fullscreen .workspace-drawer-active-tab-title { - text-align: center; -} -.is-mobile .modal.mod-settings .vertical-tab-content { - padding: var(--size-4-2) max(var(--size-4-2), var(--safe-area-inset-right)) 100px max(var(--size-4-2), var(--safe-area-inset-left)); -} -.is-mobile .mobile-toolbar { - background-color: var(--mobile-toolbar-background); -} -.is-mobile .mobile-toolbar-option { - color: var(--text-dl); -} -.is-mobile .view-header-title-container { - padding-left: 0; -} - -.is-mobile .markdown-rendered .list-collapse-indicator { - margin-left: -2.3em; - padding-right: 0em; -} - -body { - --scrollbar-thumb-bg: var(--accent); - --scrollbar-active-thumb-bg: var(--lite-accent); - --scrollbar-border-width: 0; - --scrollbar-width: 12px; -} - -body:not(.native-scrollbars) ::-webkit-scrollbar { - background-color: inherit; - width: var(--scrollbar-width); - height: calc(var(--scrollbar-width) + 1px); -} - -body { - --latex-color: var(--lite-accent); - --latex-format-color: var(--inactive); - --latex-syntax-color: var(--soft-text); -} - -.mjx-math { - font-style: normal; -} - -.MJX-TEX { - font-size: 130%; - color: var(--latex-color); -} - -/*Math Block Margin Reduction*/ -.mjx-container[jax=CHTML][display=true] { - margin: 3% 0 !important; -} - -/*Math Editor*/ -.cm-s-obsidian span.cm-math:not(.cm-formatting-math-begin):not(.cm-formatting-math-end) { - color: var(--latex-syntax-color); -} - -.cm-s-obsidian span.cm-math, -.cm-s-obsidian span.hmd-fold-math-placeholder { - color: var(--latex-format-color); - font-style: normal; -} - -body { - --inline-title-position: left; -} - -.inline-title { - text-align: var(--inline-title-position); - padding-bottom: 0; - z-index: 2; -} - -body { - --font-frontmatter: var(--font-small); -} - -.cm-hmd-frontmatter { - font-size: var(--font-frontmatter); -} - -.frontmatter-container:not(.is-collapsed) { - border-bottom: 2px solid var(--hr); -} -.frontmatter-container:not(.is-collapsed) .frontmatter-container-header { - border-bottom: 0; - margin-bottom: 0; - border-top: 2px solid var(--hr); - padding-top: var(--size-4-2); -} - -.frontmatter-container .frontmatter-container-header { - justify-content: center; - font-weight: 600; - content: "/ec10"; -} -.frontmatter-container .frontmatter-section-data-item { - color: var(--text); -} -.frontmatter-container .frontmatter-section-label { - text-transform: unset; -} - -body { - --h1-size: 34px; - --h2-size: calc(var(--h1-size) - 4px); - --h3-size: calc(var(--h1-size) - 8px); - --h4-size: calc(var(--h1-size) - 12px); - --h5-size: calc(var(--h1-size) - 14px); - --h6-size: calc(var(--h1-size) - 16px); - --header-weight: 700; - --h1-weight: var(--header-weight); - --h2-weight: var(--header-weight); - --h3-weight: var(--header-weight); - --h4-weight: var(--header-weight); - --h5-weight: var(--header-weight); - --h6-weight: var(--header-weight); - --font: "Calisto MT", "Palatino Black", "Book Antiqua", "Georgia", "Suez One", serif; - --h1-font: var(--font); - --h2-font: var(--font); - --h3-font: var(--font); - --h4-font: var(--font); - --h5-font: var(--font); - --h6-font: var(--font); - --heading-formatting: var(--inactive); - --h1-color: var(--headers); - --h2-color: var(--headers); - --h3-color: var(--headers); - --h4-color: var(--headers); - --h5-color: var(--headers); - --h6-color: var(--headers); - --header-text-align: left; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); - --header-padding: 0; - --h1-padding: var(--header-padding); - --h2-padding: var(--header-padding); - --h3-padding: var(--header-padding); - --h4-padding: var(--header-padding); - --h5-padding: var(--header-padding); - --h6-padding: var(--header-padding); - --heading-spacing: 10px; - --heading-spacing-top: var(--heading-spacing); - --heading-spacing-bottom: var(--heading-spacing); - --header-background: transparent; - --h1-background: var(--header-background); - --h2-background: var(--header-background); - --h3-background: var(--header-background); - --h4-background: var(--header-background); - --h5-background: var(--header-background); - --h6-background: var(--header-background); - --h1-border-color: var(--theme-rainbow-1); - --h2-border-color: var(--theme-rainbow-2); - --h3-border-color: var(--theme-rainbow-3); - --h4-border-color: var(--theme-rainbow-4); - --h5-border-color: var(--theme-rainbow-5); - --h6-border-color: var(--theme-rainbow-6); - --h1-border-width: 0; - --h2-border-width: 0; - --h3-border-width: 0; - --h4-border-width: 0; - --h5-border-width: 0; - --h6-border-width: 0; - --header-border-line-color: var(--table); - --h1-border-line-color: var(--header-border-line-color); - --h2-border-line-color: var(--header-border-line-color); - --h3-border-line-color: var(--header-border-line-color); - --h4-border-line-color: var(--header-border-line-color); - --h5-border-line-color: var(--header-border-line-color); - --h6-border-line-color: var(--header-border-line-color); - --h1-border-left-color: var(--h1-border-line-color); - --h2-border-left-color: var(--h2-border-line-color); - --h3-border-left-color: var(--h3-border-line-color); - --h4-border-left-color: var(--h4-border-line-color); - --h5-border-left-color: var(--h5-border-line-color); - --h6-border-left-color: var(--h6-border-line-color); - --h1-border-right-color: var(--h1-border-line-color); - --h2-border-right-color: var(--h2-border-line-color); - --h3-border-right-color: var(--h3-border-line-color); - --h4-border-right-color: var(--h4-border-line-color); - --h5-border-right-color: var(--h5-border-line-color); - --h6-border-right-color: var(--h6-border-line-color); - --header-shadow: transparent; - --h1-shadow: var(--header-shadow); - --h2-shadow: var(--header-shadow); - --h3-shadow: var(--header-shadow); - --h4-shadow: var(--header-shadow); - --h5-shadow: var(--header-shadow); - --h6-shadow: var(--header-shadow); - --header-border-line-width: 100%; - --h1-border-line-width: 100%; - --h2-border-line-width: 85%; - --h3-border-line-width: 65%; - --h4-border-line-width: 44%; - --h5-border-line-width: 25%; - --h6-border-line-width: 0; - --header-border-line-left: none; - --header-border-line-height: 4px; - --h1-border-line-height: var(--header-border-line-height); - --h2-border-line-height: var(--header-border-line-height); - --h3-border-line-height: var(--header-border-line-height); - --h4-border-line-height: var(--header-border-line-height); - --h5-border-line-height: var(--header-border-line-height); - --h6-border-line-height: var(--header-border-line-height); - --header-border-line-align: none; - --header-arrow-icon-size: 10px; - --header-arrow-icon-color: var(--collapse-icon-color); -} - -h1, .is-live-preview .HyperMD-header-1 { - box-shadow: var(--h1-shadow); -} -h1::before, h1::after, .is-live-preview .HyperMD-header-1::before, .is-live-preview .HyperMD-header-1::after { - content: ""; - display: block; - background: var(--h1-border-right-color); - width: var(--h1-border-line-width); - height: var(--h1-border-line-height); - margin: var(--header-border-line-align); -} -h1::before, .is-live-preview .HyperMD-header-1::before { - display: var(--header-border-line-left); - background: var(--h1-border-left-color); -} -h1 .heading-collapse-indicator, h1 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-1 .heading-collapse-indicator, .is-live-preview .HyperMD-header-1 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -h2, .is-live-preview .HyperMD-header-2 { - box-shadow: var(--h2-shadow); -} -h2::before, h2::after, .is-live-preview .HyperMD-header-2::before, .is-live-preview .HyperMD-header-2::after { - content: ""; - display: block; - background: var(--h2-border-right-color); - width: var(--h2-border-line-width); - height: var(--h2-border-line-height); - margin: var(--header-border-line-align); -} -h2::before, .is-live-preview .HyperMD-header-2::before { - display: var(--header-border-line-left); - background: var(--h2-border-left-color); -} -h2 .heading-collapse-indicator, h2 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-2 .heading-collapse-indicator, .is-live-preview .HyperMD-header-2 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -h3, .is-live-preview .HyperMD-header-3 { - box-shadow: var(--h3-shadow); -} -h3::before, h3::after, .is-live-preview .HyperMD-header-3::before, .is-live-preview .HyperMD-header-3::after { - content: ""; - display: block; - background: var(--h3-border-right-color); - width: var(--h3-border-line-width); - height: var(--h3-border-line-height); - margin: var(--header-border-line-align); -} -h3::before, .is-live-preview .HyperMD-header-3::before { - display: var(--header-border-line-left); - background: var(--h3-border-left-color); -} -h3 .heading-collapse-indicator, h3 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-3 .heading-collapse-indicator, .is-live-preview .HyperMD-header-3 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -h4, .is-live-preview .HyperMD-header-4 { - box-shadow: var(--h4-shadow); -} -h4::before, h4::after, .is-live-preview .HyperMD-header-4::before, .is-live-preview .HyperMD-header-4::after { - content: ""; - display: block; - background: var(--h4-border-right-color); - width: var(--h4-border-line-width); - height: var(--h4-border-line-height); - margin: var(--header-border-line-align); -} -h4::before, .is-live-preview .HyperMD-header-4::before { - display: var(--header-border-line-left); - background: var(--h4-border-left-color); -} -h4 .heading-collapse-indicator, h4 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-4 .heading-collapse-indicator, .is-live-preview .HyperMD-header-4 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -h5, .is-live-preview .HyperMD-header-5 { - box-shadow: var(--h5-shadow); -} -h5::before, h5::after, .is-live-preview .HyperMD-header-5::before, .is-live-preview .HyperMD-header-5::after { - content: ""; - display: block; - background: var(--h5-border-right-color); - width: var(--h5-border-line-width); - height: var(--h5-border-line-height); - margin: var(--header-border-line-align); -} -h5::before, .is-live-preview .HyperMD-header-5::before { - display: var(--header-border-line-left); - background: var(--h5-border-left-color); -} -h5 .heading-collapse-indicator, h5 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-5 .heading-collapse-indicator, .is-live-preview .HyperMD-header-5 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -h6, .is-live-preview .HyperMD-header-6 { - box-shadow: var(--h6-shadow); -} -h6::before, h6::after, .is-live-preview .HyperMD-header-6::before, .is-live-preview .HyperMD-header-6::after { - content: ""; - display: block; - background: var(--h6-border-right-color); - width: var(--h6-border-line-width); - height: var(--h6-border-line-height); - margin: var(--header-border-line-align); -} -h6::before, .is-live-preview .HyperMD-header-6::before { - display: var(--header-border-line-left); - background: var(--h6-border-left-color); -} -h6 .heading-collapse-indicator, h6 .cm-fold-indicator.cm-fold-indicator, .is-live-preview .HyperMD-header-6 .heading-collapse-indicator, .is-live-preview .HyperMD-header-6 .cm-fold-indicator.cm-fold-indicator { - position: absolute; -} - -.HyperMD-header.HyperMD-header .cm-fold-indicator .collapse-indicator { - padding-right: 5px; -} - -.HyperMD-header.HyperMD-header .collapse-indicator.collapse-indicator svg, -.view-content :is(h1, h2, h3, h4, h5, h6) .collapse-indicator.collapse-indicator svg { - width: var(--header-arrow-icon-size); - height: var(--header-arrow-icon-size); - color: var(--header-arrow-icon-color); -} - -h1, -.markdown-rendered h1, -.is-live-preview .HyperMD-header-1.cm-line { - display: block; - background: var(--h1-background); - text-align: var(--h1-text-align); - padding: var(--h1-padding); - border: var(--h1-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -h2, -.markdown-rendered h2, -.is-live-preview .HyperMD-header-2.cm-line { - display: block; - background: var(--h2-background); - text-align: var(--h2-text-align); - padding: var(--h2-padding); - border: var(--h2-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -h3, -.markdown-rendered h3, -.is-live-preview .HyperMD-header-3.cm-line { - display: block; - background: var(--h3-background); - text-align: var(--h3-text-align); - padding: var(--h3-padding); - border: var(--h3-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -h4, -.markdown-rendered h4, -.is-live-preview .HyperMD-header-4.cm-line { - display: block; - background: var(--h4-background); - text-align: var(--h4-text-align); - padding: var(--h4-padding); - border: var(--h4-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -h5, -.markdown-rendered h5, -.is-live-preview .HyperMD-header-5.cm-line { - display: block; - background: var(--h5-background); - text-align: var(--h5-text-align); - padding: var(--h5-padding); - border: var(--h5-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -h6, -.markdown-rendered h6, -.is-live-preview .HyperMD-header-6.cm-line { - display: block; - background: var(--h6-background); - text-align: var(--h6-text-align); - padding: var(--h6-padding); - border: var(--h6-border-width) solid; - border-radius: var(--radius-m); - margin-block-start: var(--heading-spacing-top); - margin-block-end: var(--heading-spacing-bottom); - word-wrap: normal; - word-break: keep-all; -} - -body { - --pane-background: var(--note); - --font-ligatures: none; -} - -.cm-s-obsidian .CodeMirror-line, -.cm-s-obsidian .cm-line, -.markdown-preview-section { - text-rendering: optimizeLegibility; - font-variant-ligatures: var(--font-ligatures); -} - -.workspace-split.mod-root .view-content { - background-color: var(--pane-background); -} - -body .cm-s-obsidian.markdown-source-view:not(.is-live-preview) { - --tag-background: transparent; - --tag-color: var(--tag-text); - --tag-padding-x: 0; - --tag-size: var(--font-size); - --h1-font: var(--font-default); - --h2-font: var(--font-default); - --h3-font: var(--font-default); - --h4-font: var(--font-default); - --h5-font: var(--font-default); - --h6-font: var(--font-default); - --header-weight: 900; - --h1-weight: var(--header-weight); - --h2-weight: var(--header-weight); - --h3-weight: var(--header-weight); - --h4-weight: var(--header-weight); - --h5-weight: var(--header-weight); - --h6-weight: var(--header-weight); - --h1-size: var(--font-text); - --h2-size: var(--font-text); - --h3-size: var(--font-text); - --h4-size: var(--font-text); - --h5-size: var(--font-text); - --h6-size: var(--font-text); - --p-spacing: 0.25em; - --list-marker-color-collapsed: var(--list-marker-color); - --tag-radius: 0; - --tag-border-radius: 0; - --tag-border-width: 0; -} -body .cm-s-obsidian.markdown-source-view:not(.is-live-preview) .cm-line.HyperMD-codeblock { - padding-left: 5px; -} - -body { - --link-decoration: none; - --link-decoration-hover: none; - --link-external-decoration: none; - --link-unresolved-opacity: 1; - --link-unresolved-color: var(--inactive); - --link-color-hover: var(--lite-accent); - --link-external-color-hover: var(--text-accent-hover); - --link-font: inherit; - --link-external-font: var(--link-font); - --link-weight: inherit; - --link-border: none; - --link-transform: none; - --link-background: transparent; - --link-background-hover: var(--link-background); -} - -.is-live-preview .cm-hmd-internal-link, -.internal-link { - font-family: var(--link-font); -} - -.is-live-preview .cm-underline, -.external-link { - font-family: var(--link-external-font); -} - -a[href^=https], -.internal-link, -.external-link, -.cm-underline { - font-weight: var(--link-weight); - border-bottom: var(--link-border); - text-transform: var(--link-transform); - background-color: var(--link-background); -} -a[href^=https]:hover, -.internal-link:hover, -.external-link:hover, -.cm-underline:hover { - background-color: var(--link-background-hover); -} - -.cm-s-obsidian:not(.is-live-preview) .cm-link, .cm-s-obsidian .cm-line.cm-active .cm-formatting-link + .cm-link.cm-link, .cm-s-obsidian .cm-image-alt-text.cm-link:not(.cm-formatting), .cm-s-obsidian .cm-formatting-link-string.cm-string { - color: var(--text-muted); -} - -/*-External Links-*/ -.external-link { - background-image: url(); - padding-right: unset; -} - -/*Change External Link Symbol*/ -.external-link:after { - content: "\e809"; - font-family: var(--its); - padding-left: 2px; - display: inline-block; - font-size: inherit; - opacity: 0.5; - font-weight: 100 !important; - font-style: normal !important; -} - -.theme-dark, -.theme-light { - --checkbox-size: var(--font-text-size); - --checkbox-color: var(--accent); - --checkbox-color-hover: var(--dark-accent); - --checkbox-border-color: var(--accent); - --checkbox-border-color-hover: var(--dark-accent); - --checklist-done-color: var(--inactive); - --checklist-done-decoration: none; - --checklist-done-weight: 900; - --bullet: ""; - --bullet-font: var(--its); - --list-indent: 25px; - --list-spacing: 1px; - --root-list-spacing: 10px; - --root-list-bullet-spacing: 0; - --list-marker-min-width: 0; - --list-marker-color: var(--accent); - --list-marker-color-other: var(--accent2); - --list-marker-color-collapsed: var(--inactive); - --list-numbered-color: var(--headers); - --list-bullet-size: calc(var(--font-text-size) / 2.5); - --list-bullet-transform: rotate(45deg); - --list-bullet-radius: var(--radius-h); - --list-bullet-box-shadow-color: var(--table); - --collapse-icon-color-collapsed: var(--inactive); - --indentation-guide-color: var(--lines); - --indentation-guide-width: 2px; - --indentation-guide-color-active: var(--accent); - --indentation-guide-editing-indent: 1px; - --list-color-1: var(--indentation-guide-color); - --list-color-2: var(--indentation-guide-color); - --list-color-3: var(--indentation-guide-color); - --list-color-4: var(--indentation-guide-color); - --list-color-5: var(--indentation-guide-color); - --list-color-6: var(--indentation-guide-color); -} - -ul, ol { - display: flow-root; -} - -.markdown-rendered ul, .markdown-rendered ol { - margin-block-start: var(--root-list-spacing); - margin-block-end: var(--root-list-spacing); -} -.markdown-rendered ul ul, .markdown-rendered ul ol, .markdown-rendered ol ul, .markdown-rendered ol ol { - margin-block-start: 0; - margin-block-end: 0; -} - -body:not(.list-default-bullet) .list-bullet::after, body:not(.list-default-bullet) .list-bullet::before { - display: none; -} -body:not(.list-default-bullet) ul > li:not(.task-list-item)::marker { - margin-right: -10px; -} -body:not(.list-default-bullet) .is-live-preview .cm-formatting-list-ul::before, body:not(.list-default-bullet) ul > li:not(.task-list-item)::before { - content: var(--bullet); - font-family: var(--bullet-font); - font-size: var(--font-text-size); - font-weight: 100; - color: var(--list-marker-color); - background-color: transparent; - transform: unset; - position: unset; - height: unset; -} -body:not(.list-default-bullet) ul > li:not(.task-list-item)::marker, body:not(.list-default-bullet) .is-live-preview .cm-formatting-list-ul { - color: transparent; -} - -ul > li:not(.task-list-item)::before { - float: left; - margin-left: -21px; - margin-right: 7px; -} - -.cm-formatting-list-ol, .cm-formatting-list-ul { - padding-inline-start: var(--root-list-bullet-spacing); -} - -.is-live-preview .cm-formatting-list-ul { - font-family: var(--font-monospace); -} -.is-live-preview .cm-formatting-list-ul::before { - margin-right: -15px; - margin-left: -5px; -} - -.markdown-source-view.mod-cm6 .task-list-label .task-list-item-checkbox { - margin: 0; -} - -.markdown-preview-view .task-list-item-checkbox { - margin-right: 8px; -} - -ul > li.task-list-item.task-list-item .task-list-item-checkbox { - margin-inline-start: calc(var(--checkbox-size) * -1.4); -} - -ol > li::marker, -.cm-line .cm-formatting-list-ol { - color: var(--list-numbered-color); -} - -:is(ul, ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(1)::before { - --indentation-guide-color: var(--list-color-1); -} - -:is(ul ul, ol ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(2)::before { - --indentation-guide-color: var(--list-color-2); -} - -:is(ul ul ul, ol ol ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(3)::before { - --indentation-guide-color: var(--list-color-3); -} - -:is(ul ul ul ul, ol ol ol ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(4)::before { - --indentation-guide-color: var(--list-color-4); -} - -:is(ul ul ul ul ul, ol ol ol ol ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(5)::before { - --indentation-guide-color: var(--list-color-5); -} - -:is(ul ul ul ul ul ul, ol ol ol ol ol ol) > li, -.cm-hmd-list-indent .cm-indent:nth-child(6)::before { - --indentation-guide-color: var(--list-color-6); -} - -:is(ul, ol) li:not(:first-of-type) p:first-of-type { - margin-block-start: var(--p-spacing); -} - -:is(.markdown-source-view, .markdown-rendered) :is(ul, ol) li { - padding-top: unset; - padding-bottom: var(--list-spacing); - margin-block-start: var(--list-spacing); -} - -li.is-collapsed .list-bullet:after, -.is-collapsed ~ .cm-formatting-list .list-bullet:after { - box-shadow: 0 0 0 4px var(--list-bullet-box-shadow-color); -} - -/*List Arrows*/ -.markdown-rendered .list-collapse-indicator { - margin-inline-start: -2.2em; - padding-inline-end: 0; -} - -.markdown-source-view.mod-cm6 .cm-line.cm-line:not(.HyperMD-header):not(.HyperMD-task-line) .cm-fold-indicator .collapse-indicator { - right: 0.5rem; - padding-right: 0; -} - -.theme-dark, -.theme-light { - --table-header-weight: var(--font-bold); - --table-header-size: var(--font-text); - --table-header-color: var(--th-text); - --table-header-text-color: var(--lite-accent); - --table-header-background: var(--th); - --table-header-background-hover: var(--accent); - --table-border-color: var(--note); - --table-column-alt-background: var(--td); - --table-row-alt-background: var(--td); - --table-row-background-hover: var(--highlight); - --table-row-alt-background-hover: var(--highlight); - --table-row-edit-font-size: var(--font-small); - --table-add-button-background: var(--bttn); - --table-add-button-color: var(--text-dl); - --table-add-button-size: var(--size-4-6); - --table-add-button-col-width: var(--table-add-button-size); - --table-add-button-row-height: var(--table-add-button-size); - --table-add-button-border-color: var(--note); - --table-cell-padding-x: var(--size-4-2); - --table-cell-padding-y: var(--size-2-2); - --table-header-padding-x: var(--size-4-2); - --table-header-padding-y: var(--size-2-2); - --table-column-min-width: 3ch; - --table-selection-border-radius: var(--radius-s); -} - -.cm-s-obsidian .HyperMD-table-row-0 { - color: var(--table-header-text-color); -} - -body:not(.table-unwrap) .cm-s-obsidian .HyperMD-table-row.HyperMD-table-row { - min-width: min-content; - white-space: pre-wrap; -} - -.markdown-rendered table td { - word-break: normal; -} - -.is-live-preview .cm-table-widget table { - margin-block-start: 0; - margin-block-end: 0; -} - -.cm-s-obsidian .HyperMD-table-row { - font-size: var(--table-row-edit-font-size); -} - -.markdown-rendered th { - padding: var(--table-header-padding-y) var(--table-header-padding-x); -} -.markdown-rendered td { - padding: var(--table-cell-padding-y) var(--table-cell-padding-x); -} -.markdown-rendered table th { - --latex-color: var(--table-header-color); -} - -.markdown-source-view.mod-cm6 .cm-table-widget { - padding: var(--table-add-button-size); - padding-top: var(--size-4-4); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-btn, .markdown-source-view.mod-cm6 .cm-table-widget .table-row-btn { - color: var(--table-add-button-color); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-col-btn { - width: var(--table-add-button-col-width); -} -.markdown-source-view.mod-cm6 .cm-table-widget .table-row-btn { - height: var(--table-add-button-row-height); -} - -.markdown-rendered table thead tr > th:first-child { - border-top-left-radius: var(--radius-s); -} -.markdown-rendered table thead tr > th:last-child { - border-top-right-radius: var(--radius-s); -} -.markdown-rendered table tbody tr:last-child > td:last-child { - border-bottom-right-radius: var(--radius-s); -} -.markdown-rendered table tbody tr:last-child > td:first-child { - border-bottom-left-radius: var(--radius-s); -} - -.theme-dark, -.theme-light { - --tag-color: var(--text-dl); - --tag-color-hover: var(--text-dl); - --tag-background: var(--tag); - --tag-background-hover: var(--accent); - --tag-border-color: var(--tag); - --tag-border-color-hover: var(--accent); - --tag-decoration-hover: underline; - --tag-font: var(--font-default); - --tag-font-weight: inherit; -} - -a.tag, -.cm-hashtag { - font-family: var(--tag-font); - font-weight: var(--tag-font-weight); -} - -body { - --embed-block-shadow-hover: inset 0 0 0 2px var(--outline); - --embed-padding: 0 10px 0 24px; - --embed-header-size: 18px; - --embed-title-padding: 5px 24px; - --embed-title-align: center; - --embed-title-white-space: wrap; - --embed-title-overflow: unset; - --embed-thickness: 2px; - --embed-border-type: solid; - --embed-border: var(--embed-thickness) var(--embed-border-type) var(--embed-border-color); - --embed-border-color: transparent; - --embed-border-left-color: var(--headers); - --embed-border-right-color: var(--embed-border-color); - --embed-border-top-color: var(--embed-border-color); - --embed-border-bottom-color: var(--embed-border-color); - --embed-border-left: 2px solid var(--embed-border-left-color); - --embed-border-right: 2px solid var(--embed-border-right-color); - --embed-border-top: 2px solid var(--embed-border-top-color); - --embed-border-bottom: 2px solid var(--embed-border-bottom-color); - --embed-border-color-hover: var(--outline); - --embed-border-left-color-hover: var(--embed-border-left-color); - --embed-border-right-color-hover: var(--embed-border-color-hover); - --embed-border-top-color-hover: var(--embed-border-color-hover); - --embed-border-bottom-color-hover: var(--embed-border-color-hover); -} - -.markdown-embed, -.internal-embed:not(.image-embed) { - display: flow-root; -} - -.markdown-embed.markdown-embed:hover { - --embed-border-left: var(--embed-thickness) var(--embed-border-type) var(--embed-border-left-color-hover); - --embed-border-right: var(--embed-thickness) var(--embed-border-type) var(--embed-border-right-color-hover); - --embed-border-top: var(--embed-thickness) var(--embed-border-type) var(--embed-border-top-color-hover); - --embed-border-bottom: var(--embed-thickness) var(--embed-border-type) var(--embed-border-bottom-color-hover); -} - -.markdown-embed-title { - padding: var(--embed-title-padding); - text-align: var(--embed-title-align); - white-space: var(--embed-title-white-space); - text-overflow: var(--embed-title-overflow); -} - -.markdown-embed:not(.canvas-node-content) { - padding: 0; -} -.markdown-embed:not(.canvas-node-content) .markdown-embed-content { - padding: var(--embed-padding); -} - -.markdown-embed-content > .markdown-preview-view > .markdown-preview-sizer { - min-height: unset !important; -} - -.markdown-embed.markdown-embed hr { - margin: 1.5em 0; -} - -.markdown-embed-link { - top: 8px; - right: var(--scrollbar-width); -} - -.markdown-embed .markdown-rendered ol:has(li:nth-child(10)) { - --list-indent: 30px; -} -.markdown-embed .markdown-rendered ol:has(li:nth-child(100)) { - --list-indent: 40px; -} - -.file-embed { - background-color: var(--outer-bar); -} - -body { - --code-background: var(--code-bg); - --code-normal: var(--code-text); - --code-shadow: 0 2px 0 var(--outline); -} - -.cm-s-obsidian div.HyperMD-codeblock.HyperMD-codeblock-begin-bg { - padding-top: 6px; -} - -.cm-s-obsidian span.cm-inline-code, -.markdown-rendered pre { - box-shadow: var(--code-shadow); -} - -.cm-s-obsidian div.HyperMD-codeblock-begin-bg { - border-top-left-radius: var(--radius-s); - border-top-right-radius: var(--radius-s); -} - -.cm-s-obsidian div.HyperMD-codeblock-end-bg { - border-bottom-left-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); -} - -body { - --comment-font: var(--font-monospace); - --code-comment: var(--text-faint); -} - -.cm-s-obsidian span.cm-comment { - font-family: var(--comment-font); -} - -body { - --hr-icon-symbol: ""; - --hr-icon-font: var(--its); - --hr-icon-background: transparent; - --hr-icon-padding-x: 4px; - --hr-icon-color: var(--headers); - --hr-color: var(--hr); - --hr-thickness: 2px; - --hr-width: auto; - --hr-alignment: -50%, -50%; - --hr-text-offset: 12px; -} - -/*Stylized HR/Horizontal Line*/ -.hr.cm-line:not(.cm-active), -.markdown-rendered hr { - margin-left: auto; - margin-right: auto; - width: var(--hr-width); -} -.hr.cm-line:not(.cm-active)::after, -.markdown-rendered hr::after { - content: var(--hr-icon-symbol); - font-family: var(--hr-icon-font); - font-size: var(--font-text-size); - display: inline-block; - position: absolute; - left: 50%; - transform: translate(var(--hr-alignment)) rotate(0deg); - transform-origin: 50% 50%; - color: transparent; - text-shadow: 0 0 0 var(--hr-icon-color); - padding: 0 var(--hr-icon-padding-x); - background-color: var(--hr-icon-background); -} - -.hr.cm-line { - border-top: var(--hr-thickness) solid var(--hr); - --hr-color: transparent; -} - -.markdown-source-view.mod-cm6 .cm-content :is(.hr, .HyperMD-hr) { - contain: style !important; -} - -:is(.mod-left-split, .mod-right-split) { - --hr-icon-background: var(--side-bar); -} - -body { - --blockquote-border-thickness: 7px; - --blockquote-border-color: var(--bg); - --blockquote-style: normal; - --blockquote-padding: var(--size-4-3) var(--size-4-6); - --blockquote-padding-lp: 7px 20px; - --blockquote-background-color: var(--embed-bg); -} - -.markdown-rendered blockquote { - background: var(--blockquote-background-color); - display: flow-root; -} - -.is-live-preview .HyperMD-quote.HyperMD-quote.HyperMD-quote { - border-left: var(--blockquote-border-thickness) solid var(--blockquote-border-color); - padding: var(--blockquote-padding-lp); -} -.is-live-preview .HyperMD-quote.HyperMD-quote.HyperMD-quote::before { - display: none; -} -.is-live-preview .HyperMD-quote.HyperMD-quote.HyperMD-quote + .HyperMD-quote { - padding-top: 0; -} - -.markdown-rendered blockquote, -.markdown-rendered div div > blockquote { - padding: var(--blockquote-padding); -} - -.markdown-rendered blockquote blockquote { - padding: 0 0 0 var(--size-4-3); -} - -.markdown-rendered blockquote blockquote, -.cm-blockquote-border.cm-transparent::before { - --blockquote-border-thickness: 2px; - --blockquote-border-color: var(--accent); -} - -.markdown-rendered blockquote { - border-top-right-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); -} - -body { - --callout-margin: 5px 0; - --callout-padding: var(--size-4-3) var(--size-4-4); -} - -.callout.callout.callout { - --callout-blend-mode: normal; - margin: var(--callout-margin); -} - -.callout .callout { - --callout-margin: 0; -} - -.callout-icon { - align-self: center; -} - -body { - --strikethrough-color: inherit; - --strikethrough-line-color: inherit; - --strikethrough-line-thickness: 1px; -} - -del, -.cm-strikethrough { - color: var(--strikethrough-color); - text-decoration-thickness: var(--strikethrough-line-thickness); - text-decoration-color: var(--strikethrough-line-color); -} - -.cm-s-obsidian .cm-tag { - font-family: var(--font-monospace); -} - -:is(.markdown-preview-view, -.markdown-rendered, -.markdown-source-view.is-live-preview.is-live-preview) progress::-webkit-progress-bar { - background-color: var(--progress-bg); - box-shadow: none; - border-radius: var(--radius-s); -} -:is(.markdown-preview-view, -.markdown-rendered, -.markdown-source-view.is-live-preview.is-live-preview) progress::-webkit-progress-value { - background-color: var(--progress); -} - -/* Tag Pane */ -.tag-container { - padding: 0; - --nav-item-children-margin-left: 12px; -} -.tag-container .tree-item-self { - align-items: center; -} -.tag-container .tree-item-children { - padding: 0; -} - -.tag-pane-tag .tree-item-inner > .tree-item-inner-text::before, -.tag-pane-tag-text:before { - content: "#"; - padding-right: 5px; - margin-left: 1px; - position: relative; - color: var(--tag-text); - width: var(--size-4-4); -} - -.tag-pane-tag.tag-pane-tag:hover .tree-item-inner-text::before, -.tag-container .tree-item-self:hover .tag-pane-tag-text:before { - color: var(--text-dl); -} - -.tag-pane-tag .collapse-icon + .tree-item-inner > .tree-item-inner-text:before { - content: none; - padding-left: 2px; - color: var(--tag-text); -} - -body { - --outline-symbol: "H"; - --outline-symbol-padding-right: 4px; - --outline-arrow-visibility: hidden; - --outline-arrow-display: none; - --outline-arrow-margin: -16px; -} - -body .outline, -body [data-type=outline] { - --nav-item-children-margin-left: 12px; -} -body .outline .tree-item-children, -body [data-type=outline] .tree-item-children { - transition: all 0.3s ease-in-out; -} -body .outline .collapse-icon svg, -body [data-type=outline] .collapse-icon svg { - visibility: var(--outline-arrow-visibility); -} -body .outline .tree-item:not(.is-collapsed) > .mod-collapsible .tree-item-icon.collapse-icon, -body [data-type=outline] .tree-item:not(.is-collapsed) > .mod-collapsible .tree-item-icon.collapse-icon { - margin-left: var(--outline-arrow-margin); -} -body .outline .tree-item-self::before, -body [data-type=outline] .tree-item-self::before { - content: var(--outline-symbol); - font-family: var(--font-default); - font-weight: 900; - color: var(--headers); - padding-right: var(--outline-symbol-padding-right); -} -body .outline .tree-item-self:hover::before, -body [data-type=outline] .tree-item-self:hover::before { - color: var(--text-dl); -} -body .outline .tree-item.is-collapsed .collapse-icon svg, -body [data-type=outline] .tree-item.is-collapsed .collapse-icon svg { - visibility: visible; -} -body .outline .tree-item.is-collapsed .tree-item-self::before, -body [data-type=outline] .tree-item.is-collapsed .tree-item-self::before { - display: none; -} - -.is-mobile .outline, -.is-mobile [data-type=outline] { - --nav-item-children-margin-left: 28px; - --nav-item-children-padding-left: 0; -} - -.hide-outline-heading [data-type=outline] { - --outline-symbol: ""; - --outline-arrow-visibility: visible; - --outline-arrow-margin: -3px; - --outline-symbol-padding-right: 0; -} - -body { - --popover-width: 650px; - --popover-font-size: var(--font-size); - --popover-max-height: 600px; - --popover-border: 3px solid var(--outline); -} - -.popover.hover-popover { - border: var(--popover-border); - box-shadow: var(--shadow-l); -} - -.backlink-pane, -.outgoing-link-pane { - padding: var(--size-4-3); -} -.backlink-pane > .tree-item-self, -.outgoing-link-pane > .tree-item-self { - text-align: center; - background-color: var(--code-bg); - margin-bottom: 10px; - padding: 4px 6px; - box-shadow: 0 4px 0 var(--outline); -} - -.embedded-backlinks { - clear: both; -} - -.outgoing-link-item { - align-items: center; -} -.outgoing-link-item .tree-item-inner { - font-size: var(--font-ui-medium); -} -.outgoing-link-item .tree-item-inner-subtext { - font-size: var(--font-ui-smaller); -} -.outgoing-link-item:nth-child(odd):not(:hover) { - background-color: var(--td); -} - -body { - --graph-controls-section-header-padding: var(--nav-item-parent-padding); - --graph-background: var(--graph-bg); - --graph-text: var(--text-normal); - --graph-arrow: var(--soft-text); - --graph-line: var(--graph-lines); - --graph-line-hover: var(--accent); - --graph-node: var(--headers); - --graph-node-focused: var(--graph-focused); - --graph-node-hover-outline: var(--text-dl); - --graph-node-hover-fill: var(--graph-fill); - --graph-node-tag: var(--graph-tag); - --graph-node-attachment: var(--graph-img); - --graph-node-unresolved: var(--graph-404); -} - -.workspace-leaf-content[data-type=graph] .view-content { - background-color: var(--graph-background); -} - -.graph-view.color-circle { - color: var(--graph-node-hover-outline); -} -.graph-view.color-line-highlight { - color: var(--graph-line-hover); -} -.graph-view.color-fill-highlight { - color: var(--graph-node-hover-fill); -} -.graph-view.color-arrow { - color: var(--graph-arrow); -} - -.graph-controls { - --nav-item-color-hover: var(--text); -} - -.graph-control-section { - padding: 0; - border-bottom-color: var(--table); -} -.graph-control-section > .tree-item-self { - padding: var(--size-4-2) var(--size-4-2); -} -.graph-control-section:not(.is-collapsed) > .tree-item-self { - font-weight: 900; - border-bottom: 2px solid var(--accent); -} -.graph-control-section .graph-control-section-header { - font-size: var(--font-ui-medium); -} -.graph-control-section .setting-item:not(.setting-item-heading) { - padding: 0.5em 0.8em; -} -.graph-control-section .graph-color-groups-container { - padding: 8px 12px; -} -.graph-control-section .graph-color-button-container { - padding: 0 12px; -} -.graph-control-section .graph-color-button-container button { - margin-top: 0; -} - -.mermaid rect:not([style]) { - fill: var(--embed-bg) !important; - stroke: var(--inactive) !important; - stroke-width: 1px; -} -.mermaid .classLabel .label { - fill: var(--inactive) !important; -} -.mermaid g.classGroup line { - stroke: var(--table) !important; -} -.mermaid .active0 { - fill: var(--accent2) !important; -} -.mermaid .done0 { - fill: var(--accent2-lite) !important; - stroke: var(--inactive) !important; -} -.mermaid .doneText, .mermaid .taskTextOutside0 { - fill: var(--text) !important; -} -.mermaid .exclude-range { - fill: var(--inactive) !important; -} -.mermaid line { - stroke: var(--text-faint) !important; -} -.mermaid .noteText > tspan { - fill: var(--footnote) !important; -} -.mermaid .entityBox { - fill: var(--bg) !important; - stroke: var(--table) !important; -} -.mermaid .attributeBoxEven { - fill: var(--note) !important; -} -.mermaid .attributeBoxOdd { - fill: var(--dark-accent) !important; -} -.mermaid .node-label { - stroke: white !important; -} -.mermaid .face { - stroke: var(--text) !important; -} - -/*-- Publish Settings --*/ -.publish-upload-item .flair { - background-color: var(--interactive-normal); - color: var(--text); -} - -.publish-upload-item-title { - color: var(--text); - font-weight: 600; -} - -.publish-change-list .tree-item-children { - --nav-item-children-margin-left: 12px; -} -.publish-change-list .file-tree-item-checkbox { - --checkbox-border-color-hover: var(--text); -} -.publish-change-list .tree-item-self.mod-file { - margin-left: 16px; -} - -.internal-query { - background: var(--note); - border: 3px solid var(--outline); -} -.internal-query .internal-query-header { - background-color: var(--code-bg); - box-shadow: 0 2px 0 var(--td); - padding: 5px; -} -.internal-query .internal-query-header-title { - font-size: var(--font-smallest); - font-weight: 600; - line-height: 18px; - color: var(--soft-text); -} -.internal-query .search-result-container { - padding: 0 7px; - border: 0; -} -.internal-query .search-results-children .tree-item { - background: var(--note); - margin: 10px 0; -} -.internal-query .search-result-file-match { - width: 100%; -} -.internal-query .search-empty-state { - color: var(--text-error); - font-family: var(--font-monospace); - text-align: center; - margin: 10px; -} - -body { - --slide-background: var(--note); - --r-heading-color: var(--headers); - --r-heading-font: var(--font); - --r-heading-text-transform: capitalize; - --r-heading-font-weight: var(--header-weight); - --r-main-font: var(--font-default); - --r-progress-color: var(--lite-accent); -} - -.reveal { - --h1-border-line-width: 100%; - --h2-border-line-width: 100%; - --h3-border-line-width: 100%; - --h4-border-line-width: 100%; - --h5-border-line-width: 100%; - --h6-border-line-width: 100%; -} - -.slides-container, -.reveal-viewport { - background-color: var(--slide-background); -} - -.reveal { - color: var(--text); - font-size: calc(var(--font-text-size) + 0.7em); -} -.reveal code { - color: var(--code-text); - background: var(--code-bg); - padding: 4px; - font-family: var(--font-monospace); - box-shadow: var(--code-shadow); -} -.reveal button { - --input-shadow: none; - --input-shadow-hover: none; -} -.reveal .progress { - color: var(--r-progress-color); -} -.reveal img { - margin: 5px; -} -.reveal table :is(td, th) { - border-color: var(--table); -} -.reveal li::marker { - --list-marker-color: transparent; -} - -.bookmark + .tree-item-children { - --nav-item-children-margin-left: 12px; - --nav-item-children-padding-left: 4px; -} -.bookmark.tree-item-self.mod-collapsible { - --nav-item-weight: 900; -} -.bookmark.tree-item-self { - gap: 4px; - padding: var(--explorer-item-padding); -} -.bookmark.tree-item-self > .tree-item-icon { - margin-left: -7px; -} - -.workspace-leaf-content[data-type=bookmarks] .view-content { - padding: 0 var(--size-4-2); -} - -/* .bookmark.tree-item-self { padding: var(--explorer-item-padding); } */ -body { - --canvas-node-padding: 0 7px; - --canvas-color-opacity: 0.07; -} - -body.theme-dark { - --canvas-color: 88, 100, 159; -} - -body.theme-light { - --canvas-color: 166, 180, 204; -} - -.canvas-control-group, -.canvas-control-item { - border-width: 2px; - border-color: var(--outline); -} - -.canvas-control-item { - background-color: var(--note); -} - -.canvas-card-menu { - border: var(--box-border); -} - -.canvas-node.is-themed .canvas-node-content { - background-color: rgba(var(--canvas-color), var(--canvas-color-opacity)); -} - -.theme-dark .canvas-minimap rect.is-themed, .theme-dark .canvas-minimap rect { - fill-opacity: var(--canvas-color-opacity); -} -.theme-dark .canvas-minimap path, .theme-dark .canvas-minimap path.is-themed { - stroke: rgba(var(--canvas-color), calc(var(--canvas-color-opacity) + 0.5)); -} - -.canvas-node-placeholder { - line-height: var(--line-height-tight); -} - -.canvas-node-connection-point::after { - border-color: rgb(var(--canvas-color)); -} - -body { - --metadata-property-radius: var(--radius-s); - --metadata-title-align: center; - --metadata-title-size: var(--font-text-size); - --metadata-title-color: var(--text-muted); - --metadata-title-weight: 900; - --metadata-title-icon: ""; - --metadata-title-icon-font: var(--its); - --metadata-title-icon-padding: 5px; - --metadata-remove-color: var(--accent-text); - --metadata-remove-color-hover: var(--text-dl); - --metadata-icon-color: var(--icon-color); - --metadata-button-text-color: var(--inactive); - --metadata-input-background: transparent; - --metadata-label-background-active: var(--td); - --metadata-input-background-active: var(--td); -} - -.metadata-properties-heading { - display: block; -} - -.metadata-properties-title { - font-size: var(--metadata-title-size); - color: var(--metadata-title-color); - text-align: var(--metadata-title-align); - font-weight: var(--metadata-title-weight); - margin-bottom: 5px; -} -.metadata-properties-title::before { - content: var(--metadata-title-icon); - font-family: var(--metadata-title-icon-font); - margin-right: var(--metadata-title-icon-padding); - font-weight: 100; -} - -.metadata-property-icon { - color: var(--metadata-icon-color); -} - -.metadata-add-button:not(:hover) { - color: var(--metadata-button-text-color); -} -.metadata-add-button.metadata-add-button { - margin-top: 0; -} - -.metadata-property:focus-within { - --metadata-property-background-hover: var(--td); -} - -.metadata-property[data-property-key=tags] .multi-select-pill { - padding: var(--tag-padding-y) var(--tag-padding-x); - gap: 0; -} - -.metadata-property[data-property-key=tags] .multi-select-pill-remove-button { - color: var(--metadata-remove-color); - margin-right: 0; -} -.metadata-property[data-property-key=tags] .multi-select-pill-remove-button:hover { - color: var(--metadata-remove-color-hover); -} - -.multi-select-pill-content { - margin-left: 0; -} - -.metadata-property:not([data-property-key=tags]) .multi-select-container .multi-select-pill:not(:nth-last-child(2))::after { - content: ","; -} - -.multi-select-container { - vertical-align: unset; -} - -@container (width < 380px) { - .metadata-property[data-property-type=multitext] { - flex-wrap: unset; - } -} -@container (width < 280px) { - .metadata-property[data-property-type] { - flex-wrap: wrap; - } - - .metadata-property { - border-bottom: var(--metadata-divider-width) solid var(--metadata-divider-color); - } - .metadata-property > * { - --metadata-divider-width: 0; - } -} -.workspace-split:not(.mod-root) .metadata-container { - --metadata-divider-width: 0; -} - -body { - --style-settings-heading-border-top-color: transparent; - --style-settings-heading-border-bottom-color: transparent; - --style-settings-border-top-color: transparent; - --style-settings-border-bottom-color: transparent; - --style-settings-background-color: transparent; - --style-settings-heading-background-hover: var(--dark-accent); - --style-settings-heading-color: var(--text-dl); - --style-settings-heading-color-hover: var(--text-dl); -} - -.style-settings-heading .setting-item-name { - font-weight: 900; - font-size: var(--font-ui-medium); -} - -.style-settings-container, -[data-type=style-settings] { - --setting-item-heading-border: transparent; -} -.style-settings-container .setting-item.setting-item, -[data-type=style-settings] .setting-item.setting-item { - padding: 8px 15px; - margin-top: 0; -} -.style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed), -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed) { - --icon-color: var(--text-dl); -} -.style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):not(:hover) .setting-item-name, .style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):not(:hover) .style-settings-collapse-indicator, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):not(:hover) .setting-item-name, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):not(:hover) .style-settings-collapse-indicator { - color: var(--text-dl); -} -.style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):hover, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):hover { - background-color: var(--style-settings-heading-background-hover); - --style-settings-heading-border-bottom-color: var(--style-settings-heading-border-top-color); -} -.style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .setting-item-description, .style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .setting-item-name, .style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .style-settings-collapse-indicator, .style-settings-container .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .clickable-icon, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .setting-item-description, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .setting-item-name, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .style-settings-collapse-indicator, -[data-type=style-settings] .setting-item-heading.setting-item-heading:not(.is-collapsed):hover .clickable-icon { - color: var(--text-dl); -} - -.view-content .style-settings-container .setting-item:not(.setting-item-heading) { - flex-direction: row; - align-items: center; -} -.view-content .style-settings-container .setting-item:not(.setting-item-heading) .setting-item-control { - padding-top: 0; -} - -.workspace-leaf-content[data-type=style-settings] .view-content { - padding: 20px; -} - -.themed-color-wrapper > div { - border-radius: var(--radius-s); -} - -.style-settings-filter-result-count { - color: var(--text); - opacity: 0.7; - font-weight: 500; -} - -.style-settings-container .style-settings-heading { - background-color: var(--style-settings-background-color); - border-top: 2px solid var(--style-settings-heading-border-top-color); - border-bottom: 2px solid var(--style-settings-heading-border-bottom-color); - margin-bottom: 0; -} -.style-settings-container .style-settings-heading:not(.is-collapsed) .setting-item-description { - color: var(--text-dl); -} - -.style-settings-container { - border: 2px solid var(--style-settings-border-bottom-color); - border-top: 0; - padding: 0; - padding-bottom: 10px; -} - -.style-settings-heading.style-settings-heading[data-level="0"] { - --setting-item-heading-border: 2px solid var(--table); - margin-bottom: 0; - padding: 12px 15px; - margin-top: 0; -} - -.style-settings-heading[data-level="0"]:not(.is-collapsed) { - --setting-item-heading-border: 2px solid var(--accent); - background-color: var(--deep-dark-accent); -} -.style-settings-heading[data-level="0"]:not(.is-collapsed) .setting-item-name, .style-settings-heading[data-level="0"]:not(.is-collapsed) .style-settings-collapse-indicator { - color: var(--text-dl); -} - -.style-settings-heading[data-level="0"] + .style-settings-container { - border: 2px solid var(--outline); - border-top: 0; -} - -.style-settings-heading[data-level="0"] + .style-settings-container { - padding-left: 0; -} -.style-settings-heading[data-level="0"] + .style-settings-container .style-settings-collapse-indicator { - margin: 0; -} - -.setting-item-heading[data-level="1"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-1); - --style-settings-background-color: var(--theme-rainbow-1); - --setting-item-heading-background: var(--theme-rainbow-1); -} - -.style-settings-heading[data-level="1"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-1); -} - -.setting-item-heading[data-level="2"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-2); - --style-settings-background-color: var(--theme-rainbow-2); - --setting-item-heading-background: var(--theme-rainbow-2); -} - -.style-settings-heading[data-level="2"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-2); -} - -.setting-item-heading[data-level="3"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-3); - --style-settings-background-color: var(--theme-rainbow-3); - --setting-item-heading-background: var(--theme-rainbow-3); -} - -.style-settings-heading[data-level="3"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-3); -} - -.setting-item-heading[data-level="4"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-4); - --style-settings-background-color: var(--theme-rainbow-4); - --setting-item-heading-background: var(--theme-rainbow-4); -} - -.style-settings-heading[data-level="4"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-4); -} - -.setting-item-heading[data-level="5"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-5); - --style-settings-background-color: var(--theme-rainbow-5); - --setting-item-heading-background: var(--theme-rainbow-5); -} - -.style-settings-heading[data-level="5"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-5); -} - -.setting-item-heading[data-level="6"]:not(.is-collapsed) { - --style-settings-heading-border-top-color: var(--theme-rainbow-6); - --style-settings-background-color: var(--theme-rainbow-6); - --setting-item-heading-background: var(--theme-rainbow-6); -} - -.style-settings-heading[data-level="6"] + .style-settings-container { - --style-settings-border-bottom-color: var(--theme-rainbow-6); -} - -.style-settings-heading .style-settings-collapse-indicator::after { - font-family: var(--its); - padding-left: 10px; - font-weight: 100; -} - -.style-settings-heading:not([data-level="0"]) .style-settings-collapse-indicator { - padding-right: 7px; -} - -.style-settings-heading[data-id=ITS] .style-settings-collapse-indicator::after { - content: "\e817"; -} - -.style-settings-heading[data-id=Text-CSS] .style-settings-collapse-indicator::after { - content: "\e80d"; -} - -.style-settings-heading[data-id=ITS-Workspace] .style-settings-collapse-indicator::after { - content: "\e805"; -} - -.style-settings-heading[data-id=ITS-Note] .style-settings-collapse-indicator::after { - content: "\e804"; -} - -.style-settings-heading[data-id=ITS-Colors] .style-settings-collapse-indicator::after { - content: "\ec10"; -} - -.style-settings-heading[data-id=ITS-Plugins] .style-settings-collapse-indicator::after { - content: "\ec06"; -} - -.style-settings-heading[data-id=ITS-Alt-Color-Scheme] .style-settings-collapse-indicator::after { - content: "\ec24"; -} - -.style-settings-info-text[data-id^=info-text-SlRvb] { - text-align: center; - justify-content: center; -} -.style-settings-info-text[data-id^=info-text-SlRvb] .setting-item-control { - display: none; -} -.style-settings-info-text[data-id^=info-text-SlRvb] .link-favicon { - display: none !important; - vertical-align: unset; -} - -body { - --dataview-th-border-bottom: 2px solid var(--headers); - --dataview-th-background: var(--outer-bar); - --dataview-th-alt-color: rgba(var(--accent-color), 10%); - --dataview-th-color: var(--headers); - --dataview-th-font: var(--font); - --dataview-th-font-size: larger; - --dataview-th-font-weight: var(--header-weight); - --dataview-th-count-font-size: var(--font-text-size); - --dataview-th-count-color: var(--dataview-th-color); - --dataview-table-width: 100%; -} - -.table-view-table { - width: var(--dataview-table-width); -} -.table-view-table > thead > tr { - --table-header-background: var(--dataview-th-background); -} -.table-view-table > thead > tr > th { - --table-header-color: var(--dataview-th-color); - --table-header-font: var(--dataview-th-font); - font-size: var(--dataview-th-font-size); - font-weight: var(--dataview-th-font-weight); - border-bottom: var(--dataview-th-border-bottom); -} -.table-view-table > thead > tr > th:nth-child(2n+2) { - --table-column-alt-background: var(--dataview-th-alt-color); -} -.table-view-table > thead > tr:hover { - --dataview-th-count-color: var(--text-dl); -} -.table-view-table > thead > tr:hover > th { - --table-header-color: var(--text-dl); -} - -.dataview.small-text { - font-size: var(--dataview-th-count-font-size); - color: var(--dataview-th-count-color); -} - -.dataview.result-group { - padding-left: 0; -} - -.dataview.result-group > .contains-task-list { - padding-inline-start: 0; -} -.dataview.result-group > .contains-task-list .task-list-item.is-checked .task-list-item-checkbox { - margin-left: 0; -} - -.is-live-preview .block-language-dataviewjs > :is(p, span) { - line-height: var(--lh); -} - -.dataview.dataview.inline-field-standalone-value { - padding-left: 0; - padding-right: 0; - display: inline; - border-radius: 0; - font-family: inherit; - background-color: transparent; -} -.dataview.dataview.inline-field-standalone-value span > a.tag:nth-of-type(odd) { - display: none; -} -.dataview.dataview.inline-field-key, .dataview.dataview.inline-field-value { - border-radius: var(--radius); - font-family: inherit; - font-weight: bold; - padding: 0 10px; -} -.dataview.dataview.inline-field-key { - background-color: var(--bttn); - color: var(--text-dl); -} -.dataview.dataview.inline-field-value { - background-color: var(--td); -} -.dataview.dataview.inline-field-value a.tag:first-child { - display: none; -} - -body:not(.list-default-bullet) .dataview.dataview ul > li:not(.task-list-item)::before, body:not(.list-default-bullet) .dataview.dataview ul > li .task-list-item-checkbox { - margin-left: 0; -} -body:not(.list-default-bullet) .dataview.dataview ul > li ul::before { - left: 0.4em; -} -body:not(.list-default-bullet) .dataview.dataview div div > ul { - padding-inline-start: 0; -} -body:not(.list-default-bullet) .dataview.dataview.table-view-table ul { - padding-inline-start: 0; -} - -/* Hover Editor */ -body:is(.theme-dark, .theme-light) { - --he-title-bar-active-fg: var(--text); - --he-title-bar-active-pinned-bg: var(--note); - --he-title-bar-active-action: var(--lite-accent); - --he-title-bar-active-bg: var(--embed-bg); - --he-title-bar-inactive-fg: var(--inactive); - --he-title-bar-inactive-bg: var(--note); - --he-title-bar-inactive-pinned-bg: var(--note); - --he-title-bar-inactive-action: var(--soft-text); - --he-popover-border-radius: var(--radius-s); - --he-text-on-accent-inactive: var(--text); - --he-text-on-accent-active: var(--headers); -} - -.popover.hover-editor:not(.show-navbar) .view-header { - padding: 0; -} - -.popover.hover-editor .markdown-source-view { - --file-margins: var(--size-4-3); -} - -.obsidian-icon-folder-icon, -.iconize-icon.iconize-icon.iconize-icon { - margin-right: var(--file-icon-margin) !important; - border: 0; - padding: 0 !important; - width: var(--nav-item-size); -} -.obsidian-icon-folder-icon svg, -.iconize-icon.iconize-icon.iconize-icon svg { - width: var(--nav-item-size); - color: var(--folder-open); -} -.obsidian-icon-folder-icon + .nav-folder-title-content, .obsidian-icon-folder-icon + .nav-file-title-content, -.iconize-icon.iconize-icon.iconize-icon + .nav-folder-title-content, -.iconize-icon.iconize-icon.iconize-icon + .nav-file-title-content { - --folder-icon: ; - --file-icon: ; -} -.obsidian-icon-folder-icon + .nav-folder-title-content::before, .obsidian-icon-folder-icon + .nav-file-title-content::before, -.iconize-icon.iconize-icon.iconize-icon + .nav-folder-title-content::before, -.iconize-icon.iconize-icon.iconize-icon + .nav-file-title-content::before { - content: ""; - width: unset; - margin-right: unset; -} - -body { - --kanban-lane-background: var(--code-bg); - --kanban-lane-border: var(--box-border-m); - --kanban-lane-box-shadow: var(--shadow-s); - --kanban-lane-padding: 0 4px; - --kanban-card-title-background: var(--note); - --kanban-card-title-border: 0px 2px 0 var(--outline); - --kanban-card-metadata-background: var(--note); - --kanban-card-border: var(--box-border); - --kanban-card-margin: 2px 0; - --kanban-link-color: var(--accent2-lite); - --kanban-link-font-weight: inherit; - --kanban-link-symbol: ; - --kanban-tag-background: var(--tag-background); - --tag-background-color: var(--tag-background); - --kanban-button-background: var(--code-bg); - --kanban-button-shadow: var(--input-shadow); -} - -.kanban-plugin__lane.kanban-plugin__lane { - background-color: var(--kanban-lane-background); - border-radius: var(--radius-m); - border: var(--kanban-lane-border); - box-shadow: var(--kanban-lane-box-shadow); -} -.kanban-plugin__lane.kanban-plugin__lane .kanban-plugin__lane-items { - margin: 0; - padding: var(--kanban-lane-padding); -} - -.kanban-plugin__lane-header-wrapper { - border: none; - padding: 5px 10px; - padding-bottom: 0; -} - -.kanban-plugin__item-content-wrapper.kanban-plugin__item-content-wrapper { - border-radius: var(--radius-m); -} - -.kanban-plugin__item.kanban-plugin__item { - border: var(--kanban-card-border); - margin: var(--kanban-card-margin); -} - -.kanban-plugin__item-title-wrapper { - padding: 2px 8px; - background: var(--kanban-card-title-background); - align-self: center; - align-items: center; -} -.kanban-plugin__item-title-wrapper:not(:only-child) { - border: none; - box-shadow: var(--kanban-card-title-border); -} - -.kanban-plugin__item.kanban-plugin__item .markdown-preview-view a.internal-link, -.kanban-plugin__item-title .markdown-preview-view a.internal-link { - color: var(--kanban-link-color); - font-weight: var(--kanban-link-font-weight); -} -.kanban-plugin__item.kanban-plugin__item .markdown-preview-view a.internal-link.is-unresolved, -.kanban-plugin__item-title .markdown-preview-view a.internal-link.is-unresolved { - color: var(--link-unresolved-color); - opacity: var(--link-unresolved-opacity); - filter: var(--link-unresolved-filter); - text-decoration-style: var(--link-unresolved-decoration-style); - text-decoration-color: var(--link-unresolved-decoration-color); -} -.kanban-plugin__item.kanban-plugin__item .markdown-preview-view a.tag, -.kanban-plugin__item-title .markdown-preview-view a.tag { - background: var(--kanban-tag-background); -} - -.kanban-plugin__item-title .markdown-preview-view a.internal-link:after { - content: var(--kanban-link-symbol); - font-family: var(--its); - color: var(--accent); -} - -.kanban-plugin__item-content-wrapper { - background: var(--kanban-card-metadata-background); - background-color: var(--kanban-card-metadata-background); -} - -.kanban-plugin__item-metadata-wrapper:not(:empty) { - padding: 2px 6px; - z-index: 0; - background: transparent; -} - -.kanban-plugin__meta-table td { - padding: 0; -} -.kanban-plugin__meta-table td.kanban-plugin__meta-key { - color: var(--footnote); - font-weight: 600; -} -.kanban-plugin__meta-table td .kanban-plugin__meta-value { - display: block; -} - -.kanban-plugin__item-button-wrapper.kanban-plugin__item-button-wrapper { - border: 0; - background-color: var(--kanban-button-background); - padding: 0; -} -.kanban-plugin__item-button-wrapper.kanban-plugin__item-button-wrapper button { - box-shadow: var(--kanban-button-shadow); -} - -.kanban-plugin__item-postfix-button { - padding-left: 0; - padding-right: 0; - margin-right: -7px; -} - -.kanban-plugin__item-form .kanban-plugin__item-input-wrapper textarea { - background: transparent; -} - -.kanban-plugin__item-prefix-button-wrapper input[type=checkbox] { - filter: none; -} - -.kanban-plugin__item hr { - --hr-icon-background: var(--kanban-card-title-background); -} - -.internal-link.BC-Link, -button[class^=BC] { - cursor: pointer; -} - -.BC-trail { - border: 0; - z-index: 10; - margin-bottom: 0 !important; -} -.BC-trail .BC-trail-path-container.BC-trail-path-container { - font-weight: var(--bold-weight); - display: flex; - justify-content: center; - align-items: center; -} -.BC-trail .BC-trail-sep { - color: var(--inactive); - font-weight: 900; -} - -.BC-trail.is-readable-line-width { - width: auto !important; -} - -[data-type=BC-matrix] div.view-content.view-content { - padding: 0; -} -[data-type=BC-matrix] div.view-content.view-content .BC-matrix-buttons { - padding: var(--size-4-2) var(--size-4-4) var(--size-4-1); -} - -.BC-Matrix.BC-Matrix.BC-Matrix > .BC-matrix-hier { - border: 0; -} -.BC-Matrix.BC-Matrix.BC-Matrix > .BC-matrix-hier .BC-Matrix-square { - border: 2px solid var(--outline); - border-radius: var(--radius-s); - box-shadow: var(--shadow-m); -} -.BC-Matrix.BC-Matrix.BC-Matrix > .BC-matrix-hier .BC-Matrix-header { - --h4-border-line-height: 0; - --h6-border-line-height: 0; -} -.BC-Matrix.BC-Matrix.BC-Matrix > .BC-matrix-hier ol { - --list-numbered-color: transparent; - padding-left: 10px; -} - -/* .BC-Matrix .BC-Matrix-square li::before { - content: var(--bullet); - font-family: var(--its); - color: var(--bullet-icon-color); - visibility: visible; - margin-top: -2px; - margin-left: -5px; -} */ -.breadcrumbs-block .BC-trail { - background-color: var(--note); - padding: var(--size-4-1); - border: var(--box-border); - box-shadow: var(--shadow-m); - border-radius: var(--radius); - justify-content: center; - text-align: center; -} -.breadcrumbs-block .BC-trail .BC-trail-grid-item { - box-shadow: var(--shadow-s); - background-color: var(--outer-bar); -} - -.BC-grid-wrapper.BC-grid-wrapper { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; -} -.BC-grid-wrapper.BC-grid-wrapper .BC-grid-options.BC-grid-options { - position: relative; - width: unset; - height: unset; - border: 0; -} -.BC-grid-wrapper.BC-grid-wrapper .BC-grid-options.BC-grid-options:hover .BC-grid-options-options.BC-grid-options-options { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - align-items: center; -} -.BC-grid-wrapper.BC-grid-wrapper .BC-grid-options.BC-grid-options:hover .BC-grid-options-options.BC-grid-options-options .tree-item-flair { - margin: 0 10px; -} -.BC-grid-wrapper.BC-grid-wrapper .BC-trail-grid.BC-trail-grid, .BC-grid-wrapper.BC-grid-wrapper .BC-trail-grid-item.BC-trail-grid-item { - border: 0; - font-size: var(--font-ui-small); - font-weight: bold; -} -.BC-grid-wrapper.BC-grid-wrapper .BC-trail-grid-item.BC-trail-grid-item { - padding: 5px 10px; - margin: 5px; - text-align: center; - border: var(--box-border); - border-radius: var(--radius); -} - -/*--Plugin: 5e Statblock--*/ -body:not(.default-statblock) { - --statblock-primary-color: var(--text); - --statblock-background-color: var(--note); - --statblock-bar-color: var(--accent); - --statblock-rule-color: var(--accent); - --statblock-alt: var(--td); - --statblock-alt-padding: 0.25em 0.3em; - --statblock-image-border-color: var(--hr); - --statblock-border-size: 0; - --statblock-border-color: var(--lines); - --statblock-bar-border-size: 0; - --statblock-bar-border-color: var(--statblock-bar-color); - --statblock-box-shadow-color: var(--outline); - --statblock-box-shadow-x-offset: 0; - --statblock-box-shadow-y-offset: 0; - --statblock-box-shadow-blur: 20px; - --statblock-heading-font: var(--font); - --statblock-heading-font-color: var(--headers); - --statblock-heading-font-variant: normal; - --statblock-heading-font-weight: var(--header-weight); - --statblock-heading-line-height: 28px; - --statblock-subheading-font-size: var(--font-small); - --statblock-subheading-font-style: italic; - --statblock-subheading-font-weight: normal; - --statblock-font-color: var(--text); - --statblock-content-font: var(--font-default); - --statblock-content-font-size: var(--font-text-size); - --statblock-property-name-font-color: var(--headers); - --statblock-property-font-color: var(--text); - --statblock-section-heading-border-size: 4px; - --statblock-section-heading-border-color: var(--table); - --statblock-section-heading-font-color: var(--footnote); - --statblock-section-heading-font-size: var(--h3-size); - --statblock-section-heading-font-variant: normal; - --statblock-section-heading-font-weight: var(--header-weight); - --statblock-traits-font-weight: bold; - --statblock-traits-font-style: normal; -} - -body:not(.default-statblock) .obsidian-statblock-plugin { - --header-border-line-width: 0; - --h1-border-line-width: var(--header-border-line-width); - --h2-border-line-width: var(--header-border-line-width); - --h3-border-line-width: var(--header-border-line-width); - --h4-border-line-width: var(--header-border-line-width); - --h5-border-line-width: var(--header-border-line-width); - --h6-border-line-width: var(--header-border-line-width); -} -body:not(.default-statblock) .obsidian-statblock-plugin .statblock-content { - padding: 0.45em; -} -body:not(.default-statblock) .obsidian-statblock-plugin .statblock-content .statblock-item-container { - margin-bottom: 0.2rem; -} -body:not(.default-statblock) .obsidian-statblock-plugin .statblock-content > div > .statblock-item-container:not(.group-container):not(.inline-container):not(.rule-container) { - padding: var(--statblock-alt-padding); -} -body:not(.default-statblock) .obsidian-statblock-plugin .statblock-inline-item { - padding: var(--statblock-alt-padding); -} -body:not(.default-statblock) .obsidian-statblock-plugin .column > .statblock-item-container:nth-child(odd):not(.rule-container, -.table-container, -.traits-container, -.heading-container) { - background: var(--statblock-alt); -} -body:not(.default-statblock) .obsidian-statblock-plugin .spell-list .spell-level .property-text, body:not(.default-statblock) .obsidian-statblock-plugin .property-name { - color: var(--statblock-property-name-font-color); -} -body:not(.default-statblock) .obsidian-statblock-plugin .spell-list .spell-level .property-text { - font-weight: 600; -} -body:not(.default-statblock) .obsidian-statblock-plugin .spell-list .spells .property-text { - font-style: normal; -} -body:not(.default-statblock) .obsidian-statblock-plugin li::marker { - --list-marker-color: transparent; -} - -.obsidian-statblock-plugin :is(.statblock-heading.heading, .section-header)::before, .obsidian-statblock-plugin :is(.statblock-heading.heading, .section-header)::after { - display: none; -} -.obsidian-statblock-plugin :is(.statblock-heading.heading, .section-header) > :not(.collapse-indicator) { - margin: 0; -} - -.excalidraw.excalidraw.excalidraw { - --default-bg-color: var(--note); - --input-bg-color: var(--note); - --input-border-color: var(--bg); - --island-bg-color: var(--note); - --button-gray-1: var(--bg); - --button-gray-2: var(--bttn); - --popup-bg-color: var(--code-bg); - --popup-secondary-bg-color: var(--dark-sidebar); - --overlay-bg-color: var(--embed-bg); - --keybinding-color: var(--soft-text); - --input-label-color: var(--text); - --icon-fill-color: var(--text); - --text-primary-color: var(--text); - --color-primary: var(--accent); - --color-primary-darker: var(--text-dl); - --color-primary-darkest: var(--deep-dark-accent); - --color-primary-light: var(--accent); - --color-selection: var(--lite-accent); - --color-promo: var(--accent2-lite); - --link-color: var(--accent2-lite); - --select-highlight-color: var(--accent); - --shadow-island: - 0 0 0 1px var(--outline), - 2px 2px 0 var(--outline); - --dialog-border-color: var(--hr); - --default-border-color: var(--hr); - --input-hover-bg-color: var(--td); - --button-hover: var(--dark-accent); - --sidebar-bg-color: var(--dark-sidebar); - --sidebar-border-color: var(--hr); - --border-radius-md: var(--radius-m); - --border-radius-lg: var(--radius-l); -} - -.excalidraw .menu-item.menu-item { - color: var(--text); -} - -.excalidraw .ToolIcon .ToolIcon__icon:hover, -.excalidraw .menu-item:hover { - color: var(--text-dl); - --icon-fill-color: var(--text-dl); -} - -/*Plugin: Fantasy Calendar*/ -.workspace-leaf-content[data-type=FANTASY_CALENDAR] .view-content { - padding: 0 10px; -} - -body .fantasy-calendar .weekdays.weekdays, body .fantasy-calendar .weeks { - font-weight: 900; - background-color: var(--th); - color: var(--th-text); - border-radius: var(--radius-s); -} - -body .fantasy-calendar .weekdays .weekday, body .fantasy-calendar .weeks .week-num { - padding: 0px; - border-radius: var(--radius-s); -} -body .fantasy-calendar .weeks .week-num-container { - padding: 0px 5px; - color: var(--text); - background-color: var(--outer-bar); -} - -textarea, -body .fantasy-calendar-element details[open], -body .fantasy-calendar-create-calendar details[open], -body .fantasy-day.day { - border-radius: var(--radius-s); -} - -.fantasy-day.day.active { - background-color: var(--bttn); - color: var(--text-dl); -} -.fantasy-day.day.viewing { - border: none; - background-color: var(--lite-accent); - color: var(--text-dl); -} -.fantasy-day.day.viewing .dots-container { - padding: 2px; -} - -:not(.dnd):not(.wotc) h3.fantasy-title::after { - display: none; -} - -.fantasy-calendar-create-calendar .modal { - padding: 20px; - min-width: 70vw; -} -.fantasy-calendar-create-calendar .modal-content { - padding: 0 30px; -} -.fantasy-calendar-create-calendar h3 { - font-size: var(--h3-size); - text-align: center; - margin: 10px 0; -} -.fantasy-calendar-create-calendar h3::after { - width: 100%; - margin-top: 10px; -} - -body .fantasy-calendar-date-fields { - flex-wrap: wrap; - flex-direction: column; - padding: 30px; -} - -body .fantasy-calendar-element details[open], -body .fantasy-calendar-create-calendar details[open] { - margin: 10px 0; - border: 2px solid var(--outline); - box-shadow: 4px 4px 0 var(--outline); -} - -.fantasy-calendar-container .event { - padding: 10px; -} -.fantasy-calendar-container .event:nth-child(even) { - box-shadow: 0 0 10px var(--outline); -} - -.fantasy-calendar.full-view .fantasy-day.day:nth-child(even):not(.viewing, .active) { - background-color: var(--td); -} - -.fantasy-calendar.full-view .flag.flag { - padding: 2px 10px; -} - -.dice-roller-view .dice-button .clickable-icon { - margin: 0 7px; - --sidebar-tab-background-color-hover: transparent; -} -.dice-roller-view .dice-button .clickable-icon .cls-1 { - fill: var(--interactive-accent); - stroke: var(--interactive-accent); -} -.dice-roller-view .dice-button:hover .cls-1 { - fill: var(--accent); - stroke: var(--accent); -} -.dice-roller-view .dice-button svg g { - color: var(--text-dl); - fill: var(--text-dl); -} -.dice-roller-view .advantage-disadvantage button { - background: var(--success-bg); - color: var(--text-dl); -} -.dice-roller-view .advantage-disadvantage button:hover { - background-color: var(--dark-accent); -} -.dice-roller-view .advantage-disadvantage button + button { - background: var(--failure-bg); -} - -.dice-roller.markdown-embed .dice-roller-result ul { - margin: 0; -} - -.dice-roller.has-embed .internal-embed *:last-child:not(svg):not(.dice-content-copy):not(.markdown-embed .dice-roller):not(.dice-roller-result > .embedded-table-result *) { - margin: unset; -} - -/*Button Plugin*/ -body { - --button-border-radius: var(--radius-m); - --button-background: var(--bttn); - --button-text: var(--text-dl); - --button-border: var(--bttn); - --button-background-hover: var(--interactive-accent-hover); -} - -body .button-default.button-default { - box-shadow: var(--shadow-s); -} - -body .button-default.button-default:hover { - --button-background: var(--button-background-hover); - --button-border: var(--button-background-hover); - box-shadow: var(--shadow-l); -} - -.modal-content.button-maker { - width: auto; -} - -body { - --initiative-xp: sandybrown; - --initiative-tracker-border: var(--lines); -} - -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker { - margin: 0; -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .initiative-tracker-table { - width: auto; - border-spacing: 0; -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .initiative-tracker-creature:hover td { - border-top: 1px solid var(--initiative-tracker-border); - border-bottom: 1px solid var(--initiative-tracker-border); -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .initiative-tracker-creature:hover td:first-child { - border-left: 1px solid var(--initiative-tracker-border); -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .initiative-container { - border-top-left-radius: var(--radius-s); - border-bottom-left-radius: var(--radius-s); -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .initiative-container .tree-item-flair-outer { - margin: 0; - padding-left: 0; -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .controls-container { - border-top-right-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); -} -.obsidian-initiative-tracker.obsidian-initiative-tracker.obsidian-initiative-tracker .editable.initiative.tree-item-flair { - background: var(--td); -} - -.encounter-container > .encounter-instance { - margin: 5px; - padding: 15px; - border: var(--box-border); - box-shadow: var(--shadow-s); - border-radius: var(--radius-m, 0.5em); -} - -.block-language-encounter { - --header-border-height: 0; - --h4-border-line-height: var(--header-border-height); -} -.block-language-encounter .encounter-container { - grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); -} -.block-language-encounter .encounter-name.encounter-name { - display: block; -} - -.encounter-instance.encounter-instance.encounter-instance .creature-li strong { - font-family: var(--font-monospace); - font-size: calc(var(--font-text-size) - 2px); -} -.encounter-instance.encounter-instance.encounter-instance .encounter-name.encounter-name h3 { - font-size: 20px; - font-weight: 900; - margin-top: -5px; -} -.encounter-instance.encounter-instance.encounter-instance .encounter-creatures.encounter-creatures.encounter-creatures.encounter-creatures h4 { - font-size: 16px; - margin-top: 6px; - margin-bottom: 2px; - color: var(--text); - font-family: var(--font-default); - font-weight: bold; -} -.encounter-instance.encounter-instance.encounter-instance .encounter-name { - justify-content: space-between; -} -.encounter-instance.encounter-instance.encounter-instance ul li.creature-li.creature-li { - width: unset; -} -.encounter-instance.encounter-instance.encounter-instance li::marker { - --list-marker-color: transparent; -} -.encounter-instance.encounter-instance.encounter-instance .dice-roller-result { - font-family: var(--font-monospace); - color: var(--lite-accent); -} -.encounter-instance.encounter-instance.encounter-instance .dice-roller-button { - color: var(--text-faint); - vertical-align: -2px; - margin-right: -5px; -} -.encounter-instance.encounter-instance.encounter-instance .encounter-xp, .encounter-instance.encounter-instance.encounter-instance .xp-parent { - color: var(--initiative-xp); - font-weight: bold; - margin: 0; -} -.encounter-instance.encounter-instance.encounter-instance .xp-parent:after { - content: "\f102"; - /*"\e4fb" f753*/ - font-family: var(--fa5); - color: var(--initiative-xp); - font-weight: 10 !important; - padding-left: 5px; -} -.encounter-instance.encounter-instance.encounter-instance .xp-parent .paren.left, .encounter-instance.encounter-instance.encounter-instance .xp-parent .paren.right, .encounter-instance.encounter-instance.encounter-instance .xp.text { - display: none; -} -.encounter-instance.encounter-instance.encounter-instance ul li:not(:hover) .xp-parent.xp-parent.xp-parent { - display: none; -} - -.block-language-leaflet .leaflet-distance-control, -.leaflet-container .leaflet-control-attribution { - background-color: var(--note) !important; - color: var(--text) !important; -} - -.leaflet-container.leaflet-container { - background-color: var(--outer-bar); -} - -.leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar, .leaflet-touch .leaflet-bar a:first-child { - border: none; - border-radius: var(--radius-s); -} -.leaflet-touch .leaflet-control-expandable, .leaflet-touch .leaflet-bar.leaflet-bar a { - background-color: var(--note); - border-color: var(--table); - color: var(--text); -} - -.leaflet-container .leaflet-control-attribution a { - color: var(--accent2-lite) !important; -} - -.longform-explorer.longform-explorer ul li::before { - display: none; -} -.longform-explorer.longform-explorer button { - cursor: pointer; -} -.longform-explorer.longform-explorer .new-scene-container, .longform-explorer.longform-explorer .tab-list, .longform-explorer.longform-explorer .new-draft-container, .longform-explorer.longform-explorer .compile-container { - border-color: var(--hr); -} -.longform-explorer.longform-explorer #project-picker { - justify-content: space-between; -} -.longform-explorer.longform-explorer #project-picker select { - width: 100%; - text-overflow: ellipsis; -} -.longform-explorer.longform-explorer .tab-list button { - color: var(--headers); -} -.longform-explorer.longform-explorer .tab-list .selected { - border-color: var(--accent); - background-color: var(--outer-bar); - color: var(--text); -} -.longform-explorer.longform-explorer .draft-container.draft-container { - white-space: pre-wrap; -} -.longform-explorer.longform-explorer .drafts-title-container.drafts-title-container button { - color: var(--text); - background-color: var(--interactive-normal); -} -.longform-explorer.longform-explorer .drafts-title-container.drafts-title-container button:hover { - background-color: var(--interactive-accent-hover); -} -.longform-explorer.longform-explorer .longform-compile-container .longform-compile-step { - background: var(--note); - border: var(--box-border); - box-shadow: var(--shadow-s); - padding: 5px 10px; -} -.longform-explorer.longform-explorer .longform-compile-container .longform-step-kind-pill.longform-step-kind-pill { - background-color: var(--tag-background); -} -.longform-explorer.longform-explorer .longform-compile-container .longform-compile-step-options > div { - border-color: var(--lite-accent); -} - -.auto-class-settings__match-list li { - border-radius: var(--radius-s); - --list-marker-color: transparent; -} - -.auto-class-settings__match-group-header:hover, -li.auto-class-settings__match-list-item:hover { - background-color: var(--td); -} - -ul.auto-class-settings__match-group-list { - margin-left: 16px; - border-left: 2px solid var(--accent); -} - -.auto-class-manage-match__class-list-item { - justify-content: start; - flex-direction: row-reverse; - --list-marker-color: transparent; -} -.auto-class-manage-match__class-list-item span { - margin-right: 10px; -} -.auto-class-manage-match__class-list-item .auto-class-manage-match__class-list-control { - margin-bottom: -4px; -} - -.qe-popup-menu .menu-item { - --interactive-accent-hover: var(--dark-accent); -} - -.menu-item.is-qe-folder { - font-weight: var(--folder-weight); -} - -object.link-favicon { - height: inherit !important; - margin-right: 5px; -} - -/* Heatmap Calendar Fix */ -.heatmap-calendar-graph { - --list-indent: 0; -} -.heatmap-calendar-graph ul li { - border: 0; -} -.heatmap-calendar-graph ul li::before { - display: none; -} - -.theme-dark .heatmap-calendar-boxes .isEmpty { - background-color: var(--inactive); -} - -/*Emoji Toolbar*/ -img.emoji.emoji { - object-fit: cover; -} - -.folder-note-underline .has-folder-note .nav-folder-title-content, -.alx-folder-with-note.nav-folder > .nav-folder-title > .nav-folder-title-content { - text-decoration-color: var(--lite-accent); -} - -.folder-note-underline .has-folder-note .nav-folder-title-content.nav-folder-title.is-active, -.alx-folder-with-note.nav-folder .nav-folder-title.is-active { - color: var(--text-dl); -} - -.fn-whitespace-stop-collapsing .nav-folder-title-content { - padding-top: 0; - padding-bottom: 0; -} - -.settings-search-input { - padding: 8px 6px; - border: 0; -} - -/* MAKE.md */ -.mk-sidebar { - --nav-item-background-selected: var(--nav-item-background-active); - --file-header-color-active: var(--text-dl); - --nav-item-color-selected: var(--text-dl); -} -.mk-sidebar .mk-main-menu-button:hover { - color: var(--text-dl); -} -.mk-sidebar .mk-tree-text::before { - display: none; -} -.mk-sidebar .mk-tree-item { - --vertical-padding: unset; -} -.mk-sidebar .mk-tree-item.is-selected, .mk-sidebar .mk-tree-item.is-active, .mk-sidebar .mk-tree-item:hover { - --folder-open-text-color: var(--text-dl); -} -.mk-sidebar .mk-tree-item.is-selected svg, .mk-sidebar .mk-tree-item.is-active svg, .mk-sidebar .mk-tree-item:hover svg { - --icon-color: var(--text-dl); - color: var(--text-dl); -} -.mk-sidebar .mk-tree-item.tree-item-self { - gap: 1px; -} - -.cm-s-obsidian .templater-command-bg, .cm-s-obsidian .templater-inline .cm-templater-command { - background-color: var(--code-bg); - box-shadow: var(--code-shadow); -} - -.oit li::before { - --bullet: ""; - --list-marker-color: transparent; -} - -.oit .oit-img-toolbar li::before { - margin-left: 0; -} - -.oit-normal .oit-img-footer .oit-img-toolbar > li[class]::before { - margin-inline: revert; -} - -/* Vault Icon */ -body { - --vault-icon-image: ""; -} - -.nav-folder.mod-root > .nav-folder-title { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; -} - -.nav-folder.mod-root > .nav-folder-title::before { - content: ""; - background-image: var(--vault-icon-image); - background-size: contain; - background-repeat: no-repeat; -} - -.vault-icon .nav-folder.mod-root > .nav-folder-title::before { - width: 32px; - height: 28px; - margin-right: 5px; -} - -.vault-icon .workspace-drawer-header-name::before { - margin-right: 10px; -} - -.vault-icon .workspace-drawer-header { - padding-left: 10px; - padding-right: 10px; -} - -.vault-title-none .nav-folder.mod-root > .nav-folder-title { - display: none; -} - -body { - --folder-icon: ""; - --folder-font: var(--its); - --file-icon: ""; - --file-font: var(--its); - --file-icon-margin: 6px; - --nav-item-children-padding-left: 2px; -} - -/*Nav Folder/File Icons*/ -.nav-folder-children .nav-folder-title .nav-folder-title-content::before, -.nav-file-title .nav-file-title-content::before { - margin-right: var(--file-icon-margin); - font-size: var(--nav-item-size); - font-weight: 10; - width: var(--nav-item-size); -} - -.nav-folder-children .nav-folder-title-content::before { - content: var(--folder-icon); - font-family: var(--folder-font); - color: var(--folder); - text-align: center; -} - -.nav-folder-children .nav-folder:not(.is-collapsed) > .nav-folder-title .nav-folder-title-content::before { - color: var(--folder-open); -} -.nav-folder-children .nav-folder:not(.is-collapsed) > .nav-folder-title .nav-folder-title-content:hover::before { - color: var(--nav-item-color-active); -} - -.nav-file-title .nav-file-title-content::before { - content: var(--file-icon); - font-family: var(--file-font); - text-align: center; - color: var(--file-icon-color); -} - -.nav-folder-title:is(.is-active, :hover) .nav-folder-title-content::before, -.nav-file-title:is(.is-active, :hover) .nav-file-title-content::before, -.nav-file-title:is(.is-active, :hover) .nav-file-icon { - color: var(--nav-item-color-active); -} - -.file-explorer-flat { - --explorer-root-folder-margin: 0; - --explorer-root-folder-padding: 0; - --explorer-root-folder-indentation-width: 0; - --explorer-root-folder-background: rgb(var(--accent-color), 0.3); - --explorer-root-background: rgb(var(--accent-color), 0.1); - --explorer-root-border-color: rgb(var(--accent-color)); - --explorer-root-folder-color: var(--text); - --explorer-root-folder-open-color: var(--folder); - --explorer-root-collapsed-background: transparent; - --explorer-folder-open-background: var(--td); -} -.file-explorer-flat .nav-folder.mod-root > .nav-folder-children > .nav-folder > .nav-folder-children { - margin: var(--explorer-root-folder-margin); - padding-left: var(--explorer-root-folder-padding); - border-width: var(--explorer-root-folder-indentation-width); - border-color: var(--explorer-root-folder-indentation-color); - border-bottom: 2px solid var(--explorer-root-border-color); - background-color: var(--explorer-root-background); -} -.file-explorer-flat .nav-folder.mod-root > .nav-folder-children > .nav-folder > .nav-folder-title:not(:hover) { - background-color: var(--explorer-root-collapsed-background); - color: var(--explorer-root-folder-color); -} -.file-explorer-flat .nav-folder.mod-root > .nav-folder-children > .nav-folder:not(.is-collapsed) > .nav-folder-title:not(:hover) { - background-color: var(--explorer-root-folder-background); - border-bottom-color: var(--explorer-root-border-color); - color: var(--explorer-root-folder-open-color); -} -.file-explorer-flat .mod-root .nav-folder-children > .nav-folder:not(.is-collapsed) > .nav-folder-title > .nav-folder-title-content { - text-align: center; - transition: cubic-bezier(1, 0, 0, 1); - text-transform: uppercase; - letter-spacing: 0.25em; - padding: 3px 0; - width: 100%; -} -.file-explorer-flat .mod-root .nav-folder-children > .nav-folder:not(.is-collapsed) > .nav-folder-title > .nav-folder-title-content::before { - float: left; -} -.file-explorer-flat .mod-root .nav-folder-children > .nav-folder:not(.is-collapsed) > .nav-folder-children > .nav-folder:not(.is-collapsed) > .nav-folder-title:not(:hover) { - background-color: var(--explorer-folder-open-background); - border-bottom-color: var(--explorer-root-border-color); -} - -body.folder-arrow .nav-files-container .nav-folder-title:hover .nav-folder-collapse-indicator, body.folder-arrow .nav-files-container .nav-folder-title:hover .tree-item-icon.nav-folder-collapse-indicator { - display: flex; - margin-left: -2px; -} -body.folder-arrow .nav-files-container .tree-item-self.is-active .collapse-icon svg { - color: var(--text-dl); -} -body.folder-arrow .nav-files-container .nav-folder-children .nav-folder-title:hover .nav-folder-title-content::before { - margin-left: var(--file-icon-margin); -} - -body { - --image-border-color: var(--background-modifier-border); - --image-border-width: 1px; - --image-border-padding: 8px; - --image-border-background: var(--td); -} - -/*----Image Positions/Adjustments----*/ -body { - --micro: 70px; - --tiny: 100px; - --small: 200px; - --small-med: 300px; - --med-small: 400px; - --medium: 500px; - --med-tall: 600px; - --tall: 700px; -} - -.popover.hover-popover { - --micro: 70px; - --tiny: 100px; - --small: 150px; - --small-med: 200px; - --med-small: 250px; - --medium: 300px; - --med-tall: 450px; - --tall: 500px; -} - -/*----Mobile----*/ -@media (max-width: 500px) { - .theme-dark, .theme-light { - /*Mobile Sizes*/ - --radius: 0px; - --micro: 70px; - --tiny: 100px; - --small: 150px; - --small-med: 200px; - --med-small: 250px; - --medium: 300px; - --med-tall: 450px; - --tall: 500px; - } -} -/*-Image Sizing-*/ -/*Fit image within bounds WITHOUT stretching*/ -img:is([alt*=cover], [alt*=cvr]), -.image-embed:is([src*="#cover"], [src*="#cvr"]), -span.image-embed:is([src*="#cover"], [src*="#cvr"]) img { - object-fit: cover; -} - -img[alt][alt]:not([alt*=relative])[alt*=hmicro] { - height: var(--micro); -} -img[alt][alt]:not([alt*=relative])[alt*=htiny] { - height: var(--tiny); -} -img[alt][alt]:not([alt*=relative])[alt*=hsmall] { - height: var(--small); -} -img[alt][alt]:not([alt*=relative])[alt*=hs-med] { - height: var(--small-med); -} -img[alt][alt]:not([alt*=relative])[alt*=hm-sm] { - height: var(--med-small); -} -img[alt][alt]:not([alt*=relative])[alt*=hmed] { - height: var(--medium); -} -img[alt][alt]:not([alt*=relative])[alt*=hm-tl] { - height: var(--med-tall); -} -img[alt][alt]:not([alt*=relative])[alt*=htall] { - height: var(--tall); -} -img[alt][alt]:not([alt*=relative])[alt*=hfull] { - height: 100%; -} -img[alt][alt]:not([alt*=relative])[alt*=wmicro] { - width: var(--micro); -} -img[alt][alt]:not([alt*=relative])[alt*=wtiny] { - width: var(--tiny); -} -img[alt][alt]:not([alt*=relative])[alt*=wsmall] { - width: var(--small); -} -img[alt][alt]:not([alt*=relative])[alt*=ws-med] { - width: var(--small-med); -} -img[alt][alt]:not([alt*=relative])[alt*=wm-sm] { - width: var(--med-small); -} -img[alt][alt]:not([alt*=relative])[alt*=wmed] { - width: var(--medium); -} -img[alt][alt]:not([alt*=relative])[alt*=wm-tl] { - width: var(--med-tall); -} -img[alt][alt]:not([alt*=relative])[alt*=wtall] { - width: var(--tall); -} -img[alt][alt]:not([alt*=relative])[alt*=wfull] { - width: 100%; -} - -.image-embed[alt][alt*=relative], -div:not(.image-embed) > img[alt][alt*=relative] { - --micro: 10%; - --tiny: 20%; - --small: 30%; - --small-med: 40%; - --med-small: 50%; - --medium: 60%; - --med-tall: 70%; - --tall: 85%; -} -.image-embed[alt][alt*=relative][alt*=wmicro], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wmicro] { - width: var(--micro); -} -.image-embed[alt][alt*=relative][alt*=wtiny], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wtiny] { - width: var(--tiny); -} -.image-embed[alt][alt*=relative][alt*=wsmall], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wsmall] { - width: var(--small); -} -.image-embed[alt][alt*=relative][alt*=ws-med], -div:not(.image-embed) > img[alt][alt*=relative][alt*=ws-med] { - width: var(--small-med); -} -.image-embed[alt][alt*=relative][alt*=wm-sm], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wm-sm] { - width: var(--med-small); -} -.image-embed[alt][alt*=relative][alt*=wmed], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wmed] { - width: var(--medium); -} -.image-embed[alt][alt*=relative][alt*=wm-tl], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wm-tl] { - width: var(--med-tall); -} -.image-embed[alt][alt*=relative][alt*=wtall], -div:not(.image-embed) > img[alt][alt*=relative][alt*=wtall] { - width: var(--tall); -} -.image-embed[alt][alt*=relative][alt*=hmicro], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hmicro] { - width: var(--micro); -} -.image-embed[alt][alt*=relative][alt*=htiny], -div:not(.image-embed) > img[alt][alt*=relative][alt*=htiny] { - width: var(--tiny); -} -.image-embed[alt][alt*=relative][alt*=hsmall], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hsmall] { - width: var(--small); -} -.image-embed[alt][alt*=relative][alt*=hs-med], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hs-med] { - width: var(--small-med); -} -.image-embed[alt][alt*=relative][alt*=hm-sm], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hm-sm] { - width: var(--med-small); -} -.image-embed[alt][alt*=relative][alt*=hmed], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hmed] { - width: var(--medium); -} -.image-embed[alt][alt*=relative][alt*=hm-tl], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hm-tl] { - width: var(--med-tall); -} -.image-embed[alt][alt*=relative][alt*=htall], -div:not(.image-embed) > img[alt][alt*=relative][alt*=htall] { - width: var(--tall); -} -.image-embed[alt][alt*=relative][alt*=hfull], -div:not(.image-embed) > img[alt][alt*=relative][alt*=hfull] { - width: 100%; -} - -.image-embed[alt][alt*=relative], -div:not(.image-embed) > img[alt][alt*=relative] { - display: block; - margin: auto; - max-height: 100%; - object-fit: cover; -} - -/*Height*/ -/*Image Locations*/ -/*Center Image*/ -.img-adj-center.img-adj-center img, -img:is([alt*=ctr], [alt*=center]) { - display: block; - margin-left: auto; - margin-right: auto; -} - -.img-adj-center.img-adj-center .is-live-preview img { - margin-left: auto !important; - margin-right: auto !important; -} - -/*Left & Right*/ -:not(.is-live-preview) img:is([alt*=left], [alt*=locl]), :not(.is-live-preview) img[src*="#locl"] img, -:not(.is-live-preview) .image-embed:is([alt*=left], [alt*=locl]), -:not(.is-live-preview) .image-embed[src*="#locl"] img { - float: left; - margin-right: 2%; - margin-top: 0px; - margin-bottom: 0px; -} -:not(.is-live-preview) img:is([alt*=right], [alt*=locr]), :not(.is-live-preview) img[src*="#locr"] img, -:not(.is-live-preview) .image-embed:is([alt*=right], [alt*=locr]), -:not(.is-live-preview) .image-embed[src*="#locr"] img { - float: right; - margin-left: 2%; - margin-bottom: 0px; -} - -/*--Image Position--*/ -img[alt*="p+"], .image-embed[src*="#p+"] img { - object-fit: cover; -} - -/*Inner Image*/ -img[alt*="p+c"], .image-embed[src*="#p+c"] img { - object-position: center; -} - -img[alt*="p+t"], .image-embed[src*="#p+t"] img { - object-position: top; -} - -img[alt*="p+b"], .image-embed[src*="#p+b"] img { - object-position: bottom; -} - -img[alt*="p+l"], .image-embed[src*="#p+l"] img { - object-position: left; -} - -img[alt*="p+r"], .image-embed[src*="#p+r"] img { - object-position: right; -} - -img[alt*="p+cl"], .image-embed[src*="#p+cl"] img { - object-position: 15%; -} - -img[alt*="p+ccl"], .image-embed[src*="#p+ccl"] img { - object-position: 25%; -} - -img[alt*="p+cr"], .image-embed[src*="#p+cr"] img { - object-position: 60%; -} - -img[alt*="p+ccr"], .image-embed[src*="#p+ccr"] img { - object-position: 75%; -} - -img[alt*="p+tc"], .image-embed[src*="#p+tc"] img { - object-position: 50% 10%; -} - -img[alt*="p+tcc"], .image-embed[src*="#p+tcc"] img { - object-position: 50% 20%; -} - -img[alt*="p+cct"], .image-embed[src*="#p+cct"] img { - object-position: 50% 30%; -} - -img[alt*="p+ct"], .image-embed[src*="#p+ct"] img { - object-position: 50% 40%; -} - -img[alt*="p+cb"], .image-embed[src*="#p+cb"] img { - object-position: 50% 60%; -} - -img[alt*="p+ccb"], .image-embed[src*="#p+ccb"] img { - object-position: 50% 70%; -} - -img[alt*="p+bc"], .image-embed[src*="#p+bc"] img { - object-position: 50% 80%; -} - -img[alt*="p+bcc"], .image-embed[src*="#p+bcc"] img { - object-position: 50% 90%; -} - -/*Invert Colors*/ -.theme-dark img[alt*=invertb], .theme-dark .image-embed[src*="#invertb"] { - filter: invert(1) hue-rotate(180deg); -} -.theme-dark img[alt*=invertbc], -.theme-dark .image-embed[src*="#invertbc"] { - filter: invert(1) hue-rotate(180deg) contrast(1.5); -} - -.theme-light img[alt*=invertw], .theme-light .image-embed[src*="#invertw"] { - filter: invert(1) hue-rotate(180deg); -} -.theme-light img[alt*=invertwc], .theme-light .image-embed[src*="#invertwc"] { - filter: invert(1) hue-rotate(180deg) contrast(1.45); -} - -img:is([alt*=flip-x], -[alt*=flip-horizontal]) { - transform: scale(-1, 1); -} -img:is([alt*=flip-y], -[alt*=flip-vertical]) { - transform: scale(1, -1); -} -img:is([alt*=flip-xy], -[alt*=flip-vertical-horizontal]) { - transform: scale(-1, -1); -} - -/*Fit image within bounds WITHOUT stretching*/ -img[alt*=cover], -img:is([alt*=cover], [alt*=cvr]), -.image-embed:is([src*="#cover"], [src*="#cvr"]), -span.image-embed:is([src*="#cover"], [src*="#cvr"]) img { - object-fit: cover; -} - -/*Fix Float Issues*/ -:is(img, .image-embed)[alt*=clear], -.image-embed[src*="#clear"] { - clear: both; -} - -img[alt*=unclr], -.image-embed[src*="#unclr"] { - clear: none !important; -} - -:not(.lp-img-float) .is-live-preview img:is([alt*=right], [alt*=locr]), :not(.lp-img-float) .is-live-preview img:is([alt*=left], [alt*=locl]), :not(.lp-img-float) .is-live-preview .image-embed:is([alt*=right], [alt*=locr]), :not(.lp-img-float) .is-live-preview .image-embed:is([alt*=left], [alt*=locl]) { - float: unset; -} - -img:is([alt~=lp], [alt~=live-preview]):is([alt*=right], [alt*=locr]), -.image-embed:is([alt~=lp], [alt~=live-preview]):is([alt*=right], [alt*=locr]) { - float: right !important; -} -img:is([alt~=lp], [alt~=live-preview]):is([alt*=left], [alt*=locl]), -.image-embed:is([alt~=lp], [alt~=live-preview]):is([alt*=left], [alt*=locl]) { - float: left !important; -} - -.clear-hr { - --hr-width: 100%; -} - -.clear-headings :is(h1, h2, h3, h4, h5, h6), -.clear-heading-1 h1, -.clear-heading-2 h2, -.clear-heading-3 h3, -.clear-heading-4 h4, -.clear-heading-5 h5, -.clear-heading-6 h6 { - clear: both; -} - -/*Banners*/ -img[alt*=banner], -.image-embed[alt*=banner] img { - display: block; - object-fit: cover; - width: 100%; - margin-bottom: 0px; - clear: both; -} - -img[alt~=banner], -.image-embed[alt~=banner] img, -.image-embed[src*="#banner"] { - height: var(--small); -} - -img[alt~="banner+small"], -.image-embed[alt~="banner+small"] img, -.image-embed[src*="#banner+small"] { - height: var(--tiny); -} - -img[alt~="banner+tall"], -.image-embed[alt~="banner+tall"] img, -.image-embed[src*="#banner+tall"] { - height: var(--medium); -} - -:is(img, .internal-embed)[alt*=sban], -:is(img, .internal-embed)[alt~=sban], -.internal-embed[src*="#sban"] img { - object-fit: cover; - width: 100%; -} - -/*Portait*/ -img[alt*=portrait], -.image-embed[alt*=portrait] img { - object-fit: cover; -} - -img[alt~=portrait], -.image-embed[alt~=portrait] img, -.image-embed[src~="#portrait"] { - height: var(--small-med); - width: 40%; -} - -img[alt~="portrait+small"], -.image-embed[alt~="portrait+small"] img, -.image-embed[src~="#portrait+small"] { - height: var(--small); - width: 25%; -} - -img[alt~="portrait+tall"], -.image-embed[alt~="portrait+tall"] img, -.image-embed[src~="#portrait+tall"] { - height: 500px; - width: 50%; -} - -/*Profile*/ -img[alt*=profile], -.image-embed[alt*=profile] img { - object-fit: cover; - border-radius: 50%; -} - -img[alt~=profile], -.image-embed[alt~=profile] img, -.image-embed[src*="#profile"] { - height: var(--tiny); - width: var(--tiny); -} - -img[alt~="profile+medium"], -.image-embed[alt~="profile+medium"] img, -.image-embed[src*="#profile+medium"] { - height: var(--small); - width: var(--small); -} - -img[alt~="profile+tall"], -.image-embed[alt~="profile+tall"] img, -.image-embed[src*="#profile+tall"] { - height: var(--medium); - width: var(--medium); -} - -img[alt~=sprf] { - object-fit: cover; - border-radius: 100%; -} - -/*Image Shapes*/ -img[alt*=circle] { - border-radius: 50%; -} - -img[alt~=square], -.image-embed[alt~=square] img { - border-radius: 0; -} - -img[alt~=border], -.internal-embed[alt~=border] img { - border: var(--image-border-width) solid var(--image-border-color); - padding: var(--image-border-padding); - background: var(--image-border-background); -} - -.image-captions .image-embed::after, -.image-embed[src*="#cap"]::after { - content: attr(alt); - color: var(--inactive, var(--faint-text)); - display: block; - text-align: center; -} - -.mobile-image-viewer img[alt][alt][alt] { - height: 100%; - width: 100%; - object-fit: contain; -} - -.internal-embed:not(.image-embed)[alt*=htiny] .markdown-embed-content { - height: var(--tiny); -} -.internal-embed:not(.image-embed)[alt*=hsmall] .markdown-embed-content { - height: var(--small); -} -.internal-embed:not(.image-embed)[alt*=hs-med] .markdown-embed-content { - height: var(--small-med); -} -.internal-embed:not(.image-embed)[alt*=hm-sm] .markdown-embed-content { - height: var(--med-small); -} -.internal-embed:not(.image-embed)[alt*=hmed] .markdown-embed-content { - height: var(--medium); -} -.internal-embed:not(.image-embed)[alt*=hm-tl] .markdown-embed-content { - height: var(--med-tall); -} -.internal-embed:not(.image-embed)[alt*=htall] .markdown-embed-content { - height: var(--tall); -} -.internal-embed:not(.image-embed)[alt*=full] .markdown-embed-content, .internal-embed:not(.image-embed)[alt*=full] .markdown-embed-content > .markdown-preview-view { - max-height: unset; -} -.internal-embed:not(.image-embed)[alt*=wtiny] { - width: 20%; -} -.internal-embed:not(.image-embed)[alt*=wsmall] { - width: 30%; -} -.internal-embed:not(.image-embed)[alt*=ws-med] { - width: 40%; -} -.internal-embed:not(.image-embed)[alt*=wm-small] { - width: 50%; -} -.internal-embed:not(.image-embed)[alt*=wmed] { - width: 60%; -} -.internal-embed:not(.image-embed)[alt*=wm-tl] { - width: 80%; -} -.internal-embed:not(.image-embed)[alt*=wtall] { - width: 95%; -} - -.internal-embed[alt*=right] { - float: right; - margin-left: 0.5em; -} - -.internal-embed[alt*=left] { - float: left; - margin-right: 0.5em; -} - -.internal-embed[alt*=center] { - margin: auto; -} - -:not(.lp-embed-float) .is-live-preview .internal-embed:is([alt*=right], [alt*=left]) { - float: unset; -} - -/*Embed Link Hide/Move*/ -.internal-embed:is([alt~=lk-hvr], [alt~=link-hover]):not(:hover) .markdown-embed-link, -.internal-embed:is([alt~=nlk], [alt~=no-link]) .markdown-embed-link { - display: none; -} - -.internal-embed:is([alt*=lk-l], [alt~=link-left]) .markdown-embed-link { - left: 10px; - right: unset; -} - -.internal-embed:is([alt*=lk-clear], [alt~=link-clear]) .markdown-embed-link { - background-color: transparent; -} - -/*Title Hide/Show*/ -.internal-embed:is([alt~=no-t], -[alt~=no-title]) .markdown-embed-title, -.file-embed-title { - display: none; -} - -.internal-embed:is([alt~=no-inline-title], -[alt~=no-it]) .inline-title, -.file-embed-title { - display: none; -} - -.internal-embed:is([alt~=ttl], -[alt~=title]) .markdown-embed-title, -.file-embed-title { - display: block; -} - -/*Hide Headings*/ -.internal-embed[alt~=no-h] .markdown-embed :is(h1, -h2, -h3, -h4, -h5, -h6), -.internal-embed[alt~=no-h].markdown-embed :is(h1, -h2, -h3, -h4, -h5, -h6) { - display: none; -} - -/*Hide Specific Headings*/ -.internal-embed[alt~=no-h1] .markdown-embed h1, -.internal-embed[alt~=no-h2] .markdown-embed h2, -.internal-embed[alt~=no-h3] .markdown-embed h3, -.internal-embed[alt~=no-h4] .markdown-embed h4, -.internal-embed[alt~=no-h5] .markdown-embed h5, -.internal-embed[alt~=no-h6] .markdown-embed h6, -.internal-embed[alt~=no-h1].markdown-embed h1, -.internal-embed[alt~=no-h2].markdown-embed h2, -.internal-embed[alt~=no-h3].markdown-embed h3, -.internal-embed[alt~=no-h4].markdown-embed h4, -.internal-embed[alt~=no-h5].markdown-embed h5, -.internal-embed[alt~=no-h6].markdown-embed h6 { - display: none; -} - -.internal-embed:is([alt~=no-margin], [alt~=nmg]) { - --embed-padding: 0; - --embed-title-padding: 0; -} - -.internal-embed[alt~=collapse] { - --embed-padding:0; - --embed-title-padding: 0; - --p-spacing: 0; -} -.internal-embed[alt~=collapse] *:not(.tag, .callout) { - margin-block-start: 0; - margin-block-end: 0; -} - -body.embed-mini-headers .markdown-embed { - --h1-size: var(--embed-header-size); - --h2-size: var(--embed-header-size); - --h3-size: var(--embed-header-size); - --h4-size: var(--embed-header-size); - --h5-size: var(--embed-header-size); - --h6-size: var(--embed-header-size); -} - -/*Clean Embeds*/ -.embed-clean .internal-embed > .markdown-embed, .embed-clean .internal-embed.is-loaded:not(.image-embed), -.internal-embed[alt*=clean] > .markdown-embed, -.internal-embed[alt*=clean].is-loaded:not(.image-embed) { - --embed-padding: 0; - border: none; - box-shadow: none; -} -.embed-clean .internal-embed > .markdown-embed:not(:hover), .embed-clean .internal-embed.is-loaded:not(.image-embed):not(:hover), -.internal-embed[alt*=clean] > .markdown-embed:not(:hover), -.internal-embed[alt*=clean].is-loaded:not(.image-embed):not(:hover) { - --embed-border-color: transparent; - --embed-border-left-color: var(--embed-border-color); - --embed-border-right-color: var(--embed-border-color); - --embed-border-top-color: var(--embed-border-color); - --embed-border-bottom-color: var(--embed-border-color); - --embed-border-left: var(--embed-thickness) var(--embed-border-type) var(--embed-border-left-color); - --embed-border-right: var(--embed-thickness) var(--embed-border-type) var(--embed-border-right-color); - --embed-border-top: var(--embed-thickness) var(--embed-border-type) var(--embed-border-top-color); - --embed-border-bottom: var(--embed-thickness) var(--embed-border-type) var(--embed-border-bottom-color); -} -.embed-clean .internal-embed.inline-embed, -.internal-embed[alt*=clean].inline-embed { - --embed-title-padding: 0; -} - -.embed-dark-background { - --embed-background: var(--embed-bg); - --embed-border-left-color: transparent; - --embed-border-color-hover: var(--accent); - --embed-border-left-color-hover: var(--embed-border-color-hover); - --embed-border-right-color-hover: var(--embed-border-color-hover); - --embed-border-top-color-hover: var(--embed-border-color-hover); - --embed-border-bottom-color-hover: var(--embed-border-color-hover); - --hr-icon-background: var(--embed-bg); - --blockquote-background-color: linear-gradient(to right, var(--note), transparent); - --table-border-color: var(--embed-bg); -} - -.theme-dark { - --chbx-q: 253, 175, 0; - --chbx-h: 92, 118, 153; - --chbx-d: 62, 69, 82; - --chbx-i: 194, 42, 42; - --chbx-a: 248, 114, 181; - --chbx-R: 170, 179, 202; - --chbx-id:231, 231, 171; - --chbx-B: 136, 94, 233; - --chbx-P: 79, 165, 79; - --chbx-C: 207, 67, 67; - --chbx-N: 133, 91, 65; - --chbx-b: 230, 129, 63; - --chbx-I: 82, 139, 212; - --chbx-c: 149, 233, 238; - --chbx-r: 249, 190, 123; -} - -.theme-light { - --chbx-q: 253, 175, 0; - --chbx-h: 168, 177, 189; - --chbx-d: 203, 212, 235; - --chbx-i: 219, 1, 1; - --chbx-a: 248, 114, 181; - --chbx-R: 159, 186, 223; - --chbx-id:202, 199, 0; - --chbx-B: 182, 118, 255; - --chbx-P: 79, 165, 79; - --chbx-C: 214, 108, 108; - --chbx-N: 161, 106, 73; - --chbx-b: 251, 146, 76; - --chbx-I: 82, 139, 212; - --chbx-c: 149, 217, 238; - --chbx-r: 249, 190, 123; -} - -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) :is(.task-list-label, p) > input:is([type=checkbox], [type=checkbox i]):checked, body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) > input:is([type=checkbox], [type=checkbox i]):checked, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) :is(.task-list-label, p) > input:is([type=checkbox], [type=checkbox i]):checked, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) > input:is([type=checkbox], [type=checkbox i]):checked { - background-color: transparent; - font: var(--its); - font-family: var(--its); - font-size: inherit; - font-weight: 10; - text-align: center; - border: 0; - cursor: pointer; -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) :is(.task-list-label, p) > input:is([type=checkbox], [type=checkbox i]):checked::after, body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) > input:is([type=checkbox], [type=checkbox i]):checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) :is(.task-list-label, p) > input:is([type=checkbox], [type=checkbox i]):checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked:is([data-task=X], -[data-task=">"], -[data-task="-"], -[data-task=">"], -[data-task=D], -[data-task="?"], -[data-task="/"], -[data-task="+"], -[data-task=R], -[data-task="!"], -[data-task=i], -[data-task=B], -[data-task=P], -[data-task=C], -[data-task=Q], -[data-task=N], -[data-task=b], -[data-task=I], -[data-task=p], -[data-task=L], -[data-task=E], -[data-task=A], -[data-task=r], -[data-task=c], -[data-task=o], -[data-task=d], -[data-task=T], -[data-task=t], -[data-task=O], -[data-task=F], -[data-task=W], -[data-task="~"], -[data-task="@"], -[data-task=f], -[data-task=a], -[data-task="&"], -[data-task=s], -[data-task=H]) > input:is([type=checkbox], [type=checkbox i]):checked::after { - background-color: transparent; - top: -4px; - left: 0px; - -webkit-mask-image: unset; -} - -ul > li.task-list-item[data-task=x] > ul li:not([data-task=x]) { - color: var(--text-normal); -} - -/*--Checkbox Type Icons--*/ -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=X]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=X] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=X] p > input[type=checkbox]:checked::after { - content: "\ec01"; - color: var(--accent2-lite, var(--text-accent)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=">"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=">"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=">"] p > input[type=checkbox]:checked::after { - content: "\ec03"; - color: var(--text-normal); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=D]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=D] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=D] p > input[type=checkbox]:checked::after { - content: "\ec04"; - color: rgb(var(--chbx-h)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="-"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="-"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="-"] p > input[type=checkbox]:checked::after { - content: "\ec02"; - color: rgb(var(--chbx-d)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="?"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="?"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="?"] p > input[type=checkbox]:checked::after { - content: "\ec05"; - color: rgb(var(--chbx-q)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="!"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="!"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="!"] p > input[type=checkbox]:checked::after { - content: "\ec08"; - color: rgb(var(--chbx-i)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="+"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="+"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="+"] p > input[type=checkbox]:checked::after { - content: "\ec06"; - color: rgb(var(--chbx-a)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="/"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="/"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="/"] p > input[type=checkbox]:checked::after { - content: "\ec17"; - color: var(--accent, var(--interactive-accent)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=R]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=R] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=R] p > input[type=checkbox]:checked::after { - content: "\ec07"; - color: rgb(var(--chbx-R)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=i]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=i] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=i] p > input[type=checkbox]:checked::after { - content: "\ec09"; - color: rgb(var(--chbx-id)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=B]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=B] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=B] p > input[type=checkbox]:checked::after { - content: "\ec10"; - color: rgb(var(--chbx-B)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=P]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=P] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=P] p > input[type=checkbox]:checked::after { - content: "\ec11"; - color: rgb(var(--chbx-P)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=C]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=C] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=C] p > input[type=checkbox]:checked::after { - content: "\ec12"; - color: rgb(var(--chbx-C)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=I]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=I] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=I] p > input[type=checkbox]:checked::after { - content: "\ec16"; - color: rgb(var(--chbx-I)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=Q]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=Q] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=Q] p > input[type=checkbox]:checked::after { - content: "\ec13"; - color: rgb(var(--chbx-R)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=N]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=N] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=N] p > input[type=checkbox]:checked::after { - content: "\ec14"; - color: rgb(var(--chbx-N)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=b]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=b] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=b] p > input[type=checkbox]:checked::after { - content: "\ec15"; - color: rgb(var(--chbx-b)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=p]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=p] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=p] p > input[type=checkbox]:checked::after { - content: "\ec19"; - color: rgb(var(--chbx-R)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=E]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=E] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=E] p > input[type=checkbox]:checked::after { - content: "\ec18"; - color: rgb(var(--chbx-I)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=L]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=L] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=L] p > input[type=checkbox]:checked::after { - content: "\ec21"; - color: rgb(var(--chbx-N)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=A]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=A] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=A] p > input[type=checkbox]:checked::after { - content: "\ec20"; - color: rgb(var(--chbx-P)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=r]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=r] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=r] p > input[type=checkbox]:checked::after { - content: "\ec22"; - color: rgb(var(--chbx-r)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=c]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=c] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=c] p > input[type=checkbox]:checked::after { - content: "\ec29"; - color: rgb(var(--chbx-c)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=o]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=o] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=o] p > input[type=checkbox]:checked::after { - content: "\ec24"; - color: rgb(var(--chbx-b)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=d]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=d] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=d] p > input[type=checkbox]:checked::after { - content: "\ec25"; - color: rgb(var(--chbx-I)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=T]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=T] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=T] p > input[type=checkbox]:checked::after { - content: "\ec26"; - color: rgb(var(--chbx-R)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=t]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=t] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=t] p > input[type=checkbox]:checked::after { - content: "\ec27"; - color: rgb(var(--chbx-R)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=O]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=O] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=O] p > input[type=checkbox]:checked::after { - content: "\e805"; - color: rgb(var(--selected-rgb)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=F]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=F] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=F] p > input[type=checkbox]:checked::after { - content: "\ec28"; - color: rgb(var(--chbx-h)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=W]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=W] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=W] p > input[type=checkbox]:checked::after { - content: "\e813"; - color: rgb(var(--chbx-P)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="~"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="~"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="~"] p > input[type=checkbox]:checked::after { - content: "\ec33"; - color: rgb(var(--chbx-C)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="@"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="@"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="@"] p > input[type=checkbox]:checked::after { - content: "\e900"; - color: rgb(var(--chbx-b)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=f]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=f] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=f] p > input[type=checkbox]:checked::after { - content: "\e81e"; - color: rgb(var(--chbx-N)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=H]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=H] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=H] p > input[type=checkbox]:checked::after { - content: "\ec30"; - color: rgb(var(--chbx-a)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task="&"]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="&"] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task="&"] p > input[type=checkbox]:checked::after { - content: "\ec32"; - color: rgb(var(--chbx-B)); -} -body:not(.alt-chkbx-off) .markdown-source-view.mod-cm6 .task-list-item-checkbox[data-task=s]::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=s] > input[type=checkbox]:checked::after, body:not(.alt-chkbx-off) .task-list-item.is-checked[data-task=s] p > input[type=checkbox]:checked::after { - content: "\ec31"; - color: rgb(var(--chbx-d)); -} - -/*Restore Strike Throughs*/ -.check-strike .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:not([data-task=" "]), .check-strike .markdown-preview-view ul > li.task-list-item.is-checked, .check-strike .markdown-preview-view ol > li.task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-regular .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=x], .checkbox-strike-regular ul li[data-task=x].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-checked .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=X], .checkbox-strike-checked ul li[data-task=X].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-frwd .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=">"], .checkbox-strike-frwd ul li[data-task=">"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-date .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=D], .checkbox-strike-date ul li[data-task=D].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-dropped .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"], .checkbox-strike-dropped ul li[data-task="-"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-q .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="?"], .checkbox-strike-q ul li[data-task="?"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-imp .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="!"], .checkbox-strike-imp ul li[data-task="!"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-add .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="+"], .checkbox-strike-add ul li[data-task="+"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-half .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"], .checkbox-strike-half ul li[data-task="/"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-rsrch .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=R], .checkbox-strike-rsrch ul li[data-task=R].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-idea .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=i], .checkbox-strike-idea ul li[data-task=i].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-brn .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=B], .checkbox-strike-brn ul li[data-task=B].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-pro .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=P], .checkbox-strike-pro ul li[data-task=P].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-con .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=C], .checkbox-strike-con ul li[data-task=C].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-info .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=I], .checkbox-strike-info ul li[data-task=I].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-quot .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=Q], .checkbox-strike-quot ul li[data-task=Q].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-note .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=N], .checkbox-strike-note ul li[data-task=N].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-book .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=b], .checkbox-strike-book ul li[data-task=b].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-para .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=p], .checkbox-strike-para ul li[data-task=p].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-ex .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=E], .checkbox-strike-ex ul li[data-task=E].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-loc .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=L], .checkbox-strike-loc ul li[data-task=L].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-ans .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=A], .checkbox-strike-ans ul li[data-task=A].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-rwd .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=r], .checkbox-strike-rwd ul li[data-task=r].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-choice .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=c], .checkbox-strike-choice ul li[data-task=c].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-option .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=o], .checkbox-strike-option ul li[data-task=o].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-do .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=d], .checkbox-strike-do ul li[data-task=d].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-time .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=T], .checkbox-strike-time ul li[data-task=T].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-talk .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=t], .checkbox-strike-talk ul li[data-task=t].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-plot .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=O], .checkbox-strike-plot ul li[data-task=O].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-fore .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=F], .checkbox-strike-fore ul li[data-task=F].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-world .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=W], .checkbox-strike-world ul li[data-task=W].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-conf .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="~"], .checkbox-strike-conf ul li[data-task="~"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-char .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="@"], .checkbox-strike-char ul li[data-task="@"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-clue .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=f], .checkbox-strike-clue ul li[data-task=f].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-heal .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=H], .checkbox-strike-heal ul li[data-task=H].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-symb .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="&"], .checkbox-strike-symb ul li[data-task="&"].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -.checkbox-strike-lock .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=s], .checkbox-strike-lock ul li[data-task=s].task-list-item.is-checked { - text-decoration: line-through 2px; -} - -/*----Checked Bg----*/ -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=X], -.check-bg :is(ul, ol) > li[data-task=X].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=">"], -.check-bg :is(ul, ol) > li[data-task=">"].task-list-item.is-checked { - background: rgba(var(--chbx-h), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=D], -.check-bg :is(ul, ol) > li[data-task=D].task-list-item.is-checked { - background: rgba(var(--chbx-h), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="-"], -.check-bg :is(ul, ol) > li[data-task="-"].task-list-item.is-checked { - background: rgba(var(--chbx-d), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="?"], -.check-bg :is(ul, ol) > li[data-task="?"].task-list-item.is-checked { - background: rgba(var(--chbx-q), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="!"], -.check-bg :is(ul, ol) > li[data-task="!"].task-list-item.is-checked { - background: rgba(var(--chbx-i), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="+"], -.check-bg :is(ul, ol) > li[data-task="+"].task-list-item.is-checked { - background: rgba(var(--chbx-a), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="/"], -.check-bg :is(ul, ol) > li[data-task="/"].task-list-item.is-checked { - background: linear-gradient(to left, var(--accent, var(--interactive-accent)) 0%, transparent 1%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=R], -.check-bg :is(ul, ol) > li[data-task=R].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=i], -.check-bg :is(ul, ol) > li[data-task=i].task-list-item.is-checked { - background: rgba(var(--chbx-id), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=B], -.check-bg :is(ul, ol) > li[data-task=B].task-list-item.is-checked { - background: rgba(var(--chbx-B), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=P], -.check-bg :is(ul, ol) > li[data-task=P].task-list-item.is-checked { - background: rgba(var(--chbx-P), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=C], -.check-bg :is(ul, ol) > li[data-task=C].task-list-item.is-checked { - background: rgba(var(--chbx-C), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=I], -.check-bg :is(ul, ol) > li[data-task=I].task-list-item.is-checked { - background: rgba(var(--chbx-I), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=Q], -.check-bg :is(ul, ol) > li[data-task=Q].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=N], -.check-bg :is(ul, ol) > li[data-task=N].task-list-item.is-checked { - background: rgba(var(--chbx-N), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=b], -.check-bg :is(ul, ol) > li[data-task=b].task-list-item.is-checked { - background: rgba(var(--chbx-b), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=p], -.check-bg :is(ul, ol) > li[data-task=p].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=E], -.check-bg :is(ul, ol) > li[data-task=E].task-list-item.is-checked { - background: rgba(var(--chbx-I), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=L], -.check-bg :is(ul, ol) > li[data-task=L].task-list-item.is-checked { - background: rgba(var(--chbx-N), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=A], -.check-bg :is(ul, ol) > li[data-task=A].task-list-item.is-checked { - background: rgba(var(--chbx-P), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=r], -.check-bg :is(ul, ol) > li[data-task=r].task-list-item.is-checked { - background: rgba(var(--chbx-r), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=c], -.check-bg :is(ul, ol) > li[data-task=c].task-list-item.is-checked { - background: rgba(var(--chbx-c), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=o], -.check-bg :is(ul, ol) > li[data-task=o].task-list-item.is-checked { - background: rgba(var(--chbx-b), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=d], -.check-bg :is(ul, ol) > li[data-task=d].task-list-item.is-checked { - background: rgba(var(--chbx-I), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=T], -.check-bg :is(ul, ol) > li[data-task=T].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=t], -.check-bg :is(ul, ol) > li[data-task=t].task-list-item.is-checked { - background: rgba(var(--chbx-R), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=O], -.check-bg :is(ul, ol) > li[data-task=O].task-list-item.is-checked { - background: rgba(var(--selected-rgb), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=F], -.check-bg :is(ul, ol) > li[data-task=F].task-list-item.is-checked { - background: rgba(var(--chbx-h), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=W], -.check-bg :is(ul, ol) > li[data-task=W].task-list-item.is-checked { - background: rgba(var(--chbx-P), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="~"], -.check-bg :is(ul, ol) > li[data-task="~"].task-list-item.is-checked { - background: rgba(var(--chbx-C), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="@"], -.check-bg :is(ul, ol) > li[data-task="@"].task-list-item.is-checked { - background: rgba(var(--chbx-b), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=f], -.check-bg :is(ul, ol) > li[data-task=f].task-list-item.is-checked { - background: rgba(var(--chbx-N), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=H], -.check-bg :is(ul, ol) > li[data-task=H].task-list-item.is-checked { - background: rgba(var(--chbx-a), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="&"], -.check-bg :is(ul, ol) > li[data-task="&"].task-list-item.is-checked { - background: rgba(var(--chbx-B), 20%); -} -.check-bg .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=s], -.check-bg :is(ul, ol) > li[data-task=s].task-list-item.is-checked { - background: rgba(var(--chbx-d), 20%); -} - -/*----Checked Text----*/ -body ul > li.task-list-item[data-task][data-task=x] > span > *, body .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=x] span:not([class^=cm-list]) { - opacity: 70%; -} - -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=x] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=x] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=X] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=X] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=">"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=">"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=D] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=D] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="-"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="-"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="?"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="?"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="!"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="!"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="+"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="+"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="/"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="/"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=R] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=R] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=i] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=i] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=B] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=B] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=P] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=P] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=C] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=C] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=I] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=I] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=Q] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=Q] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=N] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=N] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=b] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=b] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=p] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=p] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=E] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=E] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=L] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=L] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=A] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=A] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=r] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=r] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=c] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=c] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=o] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=o] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=d] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=d] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=T] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=T] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=t] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=t] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=O] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=O] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=F] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=F] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=W] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=W] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="~"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="~"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="@"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="@"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=f] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=f] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=H] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=H] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task="&"] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task="&"] span:not([class^=cm-list]) { - opacity: 70%; -} -body:not(.check-color, .check-text) ul > li.task-list-item[data-task][data-task=s] > span > *, body:not(.check-color, .check-text) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task][data-task=s] span:not([class^=cm-list]) { - opacity: 70%; -} - -/* Checkbox Text Normal */ -/*--Checkbox Text Colors--*/ -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=X] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=X].task-list-item.is-checked { - color: var(--text-faint); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=">"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=">"].task-list-item.is-checked { - color: var(--text-normal); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=D] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=D].task-list-item.is-checked { - color: rgb(var(--chbx-h)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="-"].task-list-item.is-checked { - color: rgb(var(--chbx-d)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="?"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="?"].task-list-item.is-checked { - color: rgb(var(--chbx-q)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="!"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="!"].task-list-item.is-checked { - color: rgb(var(--chbx-i)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="+"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="+"].task-list-item.is-checked { - color: rgb(var(--chbx-a)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="/"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="/"].task-list-item.is-checked { - color: var(--text-muted); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=R] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=R].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=i] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=i].task-list-item.is-checked { - color: rgb(var(--chbx-id)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=B] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=B].task-list-item.is-checked { - color: rgb(var(--chbx-B)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=P] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=P].task-list-item.is-checked { - color: rgb(var(--chbx-P)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=C] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=C].task-list-item.is-checked { - color: rgb(var(--chbx-C)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=I] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=I].task-list-item.is-checked { - color: rgb(var(--chbx-I)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=Q] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=Q].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=N] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=N].task-list-item.is-checked { - color: rgb(var(--chbx-N)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=b] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=b].task-list-item.is-checked { - color: rgb(var(--chbx-b)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=p] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=p].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=E] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=E].task-list-item.is-checked { - color: rgb(var(--chbx-I)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=L] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=L].task-list-item.is-checked { - color: rgb(var(--chbx-N)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=A] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=A].task-list-item.is-checked { - color: rgb(var(--chbx-P)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=r] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=r].task-list-item.is-checked { - color: rgb(var(--chbx-r)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=c] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=c].task-list-item.is-checked { - color: rgb(var(--chbx-c)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=o] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=o].task-list-item.is-checked { - color: rgb(var(--chbx-b)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=d] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=d].task-list-item.is-checked { - color: rgb(var(--chbx-I)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=T] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=T].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=t] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=t].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=O] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=O].task-list-item.is-checked { - color: rgb(var(--selected-rgb)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=F] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=F].task-list-item.is-checked { - color: rgb(var(--chbx-h)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=W] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=W].task-list-item.is-checked { - color: rgb(var(--chbx-R)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="~"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="~"].task-list-item.is-checked { - color: rgb(var(--chbx-C)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="@"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="@"].task-list-item.is-checked { - color: rgb(var(--chbx-b)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=f] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=f].task-list-item.is-checked { - color: rgb(var(--chbx-N)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=H] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=H].task-list-item.is-checked { - color: rgb(var(--chbx-a)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="&"] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task="&"].task-list-item.is-checked { - color: rgb(var(--chbx-B)); -} -.check-color.check-color .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task=s] [class^=cm-list]:not(.cm-formatting-task), .check-color.check-color.check-color ul > li[data-task=s].task-list-item.is-checked { - color: rgb(var(--chbx-d)); -} - -/*Callout Positioning*/ -:not(.is-live-preview) .callout.callout.callout:is([data-callout-metadata~="p+l"], -[data-callout-metadata~=left]) { - float: left; - margin: unset; - margin-right: 8px; -} - -:not(.is-live-preview) .callout.callout:is([data-callout-metadata~="p+r"], -[data-callout-metadata~=right]) { - float: right; - margin: unset; - margin-left: 8px; -} - -.callout.callout.callout:is([data-callout-metadata~=ctr], -[data-callout-metadata~=center]) { - display: block; - margin: auto; - float: unset; -} - -.callout.callout.callout.callout:is([data-callout-metadata~=no-t], -[data-callout-metadata~=no-title]) > .callout-title { - display: none; -} - -.callout.callout.callout.callout:is([data-callout-metadata~=s-t], -[data-callout-metadata~=show-title]) > .callout-title { - display: flex; -} -.callout.callout.callout.callout:is([data-callout-metadata~=s-t], -[data-callout-metadata~=show-title]) > .callout-content > p { - margin-top: 0; -} - -.callout.callout.callout.callout:is([data-callout-metadata~=subtitle], -[data-callout-metadata~=subt]) .callout-title { - align-content: center; - align-items: center; -} -.callout.callout.callout.callout:is([data-callout-metadata~=subtitle], -[data-callout-metadata~=subt]) .callout-title em { - display: block; - font-style: normal; - font-size: var(--font-small); - line-height: 12px; - font-weight: normal; -} -.callout.callout.callout.callout:is([data-callout-metadata~=subtitle], -[data-callout-metadata~=subt]) .callout-title em em { - font-style: italic; - display: inline-block; -} - -.callout:is([data-callout-metadata~=no-i], -[data-callout-metadata~=no-icon]) > .callout-title .callout-icon { - width: 0; - height: 0; -} - -.callout:is([data-callout-metadata~=n-th], -[data-callout-metadata~=no-table-header]) .callout-content > table { - margin-bottom: 5px; -} -.callout:is([data-callout-metadata~=n-th], -[data-callout-metadata~=no-table-header]) .callout-content > table th { - display: none; -} - -.callout:is([data-callout-metadata~=t-w], -[data-callout-metadata~=table-wide]) table { - width: 100%; -} -.callout:is([data-callout-metadata~=t-w], -[data-callout-metadata~=table-wide]) table td { - width: calc(var(--tbl-w) / 2); -} - -.callout[data-callout-metadata~=table-cell-top] table td { - vertical-align: top; -} - -.callout[data-callout-metadata~=embed] .callout-content, .callout[data-callout-metadata~=embed] > .callout-content > p { - margin: 0; - padding: 0; -} - -.callout[data-callout-metadata~=collapse] * { - margin: 0 !important; - padding: 0 !important; - grid-gap: 0 !important; -} - -.callout.callout.callout:is([data-callout-metadata~=nbrd], -[data-callout-metadata~=no-border]) { - border: 0; -} - -.callout.callout.callout[data-callout-metadata~=clean], -.callout.callout.callout[data-callout-metadata~=clean] > .callout-content { - border: 0; - box-shadow: none; - --callout-color: transparent; - --callout-padding: 0; -} -.callout.callout.callout[data-callout-metadata~=clean] .callout-content, -.callout.callout.callout[data-callout-metadata~=clean] > .callout-content .callout-content { - padding: 0; -} - -.callout[data-callout-metadata~=clear] { - clear: both; -} - -.callout #vid { - text-align: left; -} - -/*--Callout Coloring--*/ -.callout.callout.callout { - --callout-blue: 82, 139, 212; - --callout-green: 86, 179, 117; - --callout-orange: 230, 129, 63; - --callout-red: 193, 67, 67; - --callout-purple: 153, 97, 218; - --callout-gray: 166, 189, 197; - --callout-yellow: 208, 181, 48; - --callout-pink: 227, 107, 167; - --callout-brown: 161, 106, 73; - --callout-black: 0, 0, 0; -} -.callout.callout.callout:is([data-callout-metadata~=color-blue], -[data-callout-metadata~=c-blue], -[data-callout-metadata~=background-color-blue], -[data-callout-metadata~=bg-c-blue]) .callout-title { - --callout-color: var(--callout-blue); -} -.callout.callout.callout:is([data-callout-metadata~=color-green], -[data-callout-metadata~=c-green], -[data-callout-metadata~=background-color-green], -[data-callout-metadata~=bg-c-green]) .callout-title { - --callout-color: var(--callout-green); -} -.callout.callout.callout:is([data-callout-metadata~=color-orange], -[data-callout-metadata~=c-orange], -[data-callout-metadata~=background-color-orange], -[data-callout-metadata~=bg-c-orange]) .callout-title { - --callout-color: var(--callout-orange); -} -.callout.callout.callout:is([data-callout-metadata~=color-red], -[data-callout-metadata~=c-red], -[data-callout-metadata~=background-color-red], -[data-callout-metadata~=bg-c-red]) .callout-title { - --callout-color: var(--callout-red); -} -.callout.callout.callout:is([data-callout-metadata~=color-purple], -[data-callout-metadata~=c-purple], -[data-callout-metadata~=background-color-purple], -[data-callout-metadata~=bg-c-purple]) .callout-title { - --callout-color: var(--callout-purple); -} -.callout.callout.callout:is([data-callout-metadata~=color-gray], -[data-callout-metadata~=c-gray], -[data-callout-metadata~=background-color-gray], -[data-callout-metadata~=bg-c-gray]) .callout-title { - --callout-color: var(--callout-gray); -} -.callout.callout.callout:is([data-callout-metadata~=color-yellow], -[data-callout-metadata~=c-yellow], -[data-callout-metadata~=background-color-yellow], -[data-callout-metadata~=bg-c-yellow]) .callout-title { - --callout-color: var(--callout-yellow); -} -.callout.callout.callout:is([data-callout-metadata~=color-pink], -[data-callout-metadata~=c-pink], -[data-callout-metadata~=background-color-pink], -[data-callout-metadata~=bg-c-pink]) .callout-title { - --callout-color: var(--callout-pink); -} -.callout.callout.callout:is([data-callout-metadata~=color-brown], -[data-callout-metadata~=c-brown], -[data-callout-metadata~=background-color-brown], -[data-callout-metadata~=bg-c-brown]) .callout-title { - --callout-color: var(--callout-brown); -} -.callout.callout.callout:is([data-callout-metadata~=color-black], -[data-callout-metadata~=bg-black], -[data-callout-metadata~=background-color-black], -[data-callout-metadata~=bg-c-black]) .callout-title { - --callout-color: var(--callout-black) ; -} -.callout.callout.callout:is([data-callout-metadata~=color-], [data-callout-metadata~=c-]) { - --callout-color: var(--callout); -} -.callout.callout.callout:is([data-callout-metadata~=background-blue], -[data-callout-metadata~=bg-blue], -[data-callout-metadata~=background-color-blue], -[data-callout-metadata~=bg-c-blue]) { - background-color: rgba(var(--callout-blue), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-green], -[data-callout-metadata~=bg-green], -[data-callout-metadata~=background-color-green], -[data-callout-metadata~=bg-c-green]) { - background-color: rgba(var(--callout-green), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-orange], -[data-callout-metadata~=bg-orange], -[data-callout-metadata~=background-color-orange], -[data-callout-metadata~=bg-c-orange]) { - background-color: rgba(var(--callout-orange), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-red], -[data-callout-metadata~=bg-red], -[data-callout-metadata~=background-color-red], -[data-callout-metadata~=bg-c-red]) { - background-color: rgba(var(--callout-red), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-purple], -[data-callout-metadata~=bg-purple], -[data-callout-metadata~=background-color-purple], -[data-callout-metadata~=bg-c-purple]) { - background-color: rgba(var(--callout-purple), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-gray], -[data-callout-metadata~=bg-gray], -[data-callout-metadata~=background-color-gray], -[data-callout-metadata~=bg-c-gray]) { - background-color: rgba(var(--callout-gray), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-yellow], -[data-callout-metadata~=bg-yellow], -[data-callout-metadata~=background-color-yellow], -[data-callout-metadata~=bg-c-yellow]) { - background-color: rgba(var(--callout-yellow), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-pink], -[data-callout-metadata~=bg-pink], -[data-callout-metadata~=background-color-pink], -[data-callout-metadata~=bg-c-pink]) { - background-color: rgba(var(--callout-pink), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-brown], -[data-callout-metadata~=bg-brown], -[data-callout-metadata~=background-color-brown], -[data-callout-metadata~=bg-c-brown]) { - background-color: rgba(var(--callout-brown), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-black], -[data-callout-metadata~=bg-black], -[data-callout-metadata~=background-color-black], -[data-callout-metadata~=bg-c-black]) { - background-color: rgba(var(--callout-black), 10%); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-blue], -[data-callout-metadata~=bg-c-blue]) { - --callout-color: var(--callout-blue); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-green], -[data-callout-metadata~=bg-c-green]) { - --callout-color: var(--callout-green); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-orange], -[data-callout-metadata~=bg-c-orange]) { - --callout-color: var(--callout-orange); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-red], -[data-callout-metadata~=bg-c-red]) { - --callout-color: var(--callout-red); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-purple], -[data-callout-metadata~=bg-c-purple]) { - --callout-color: var(--callout-purple); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-gray], -[data-callout-metadata~=bg-c-gray]) { - --callout-color: var(--callout-gray); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-yellow], -[data-callout-metadata~=bg-c-yellow]) { - --callout-color: var(--callout-yellow); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-pink], -[data-callout-metadata~=bg-c-pink]) { - --callout-color: var(--callout-pink); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-brown], -[data-callout-metadata~=bg-c-brown]) { - --callout-color: var(--callout-brown); -} -.callout.callout.callout:is([data-callout-metadata~=background-color-black], -[data-callout-metadata~=bg-c-black]) { - --callout-color: var(--callout-black); -} - -.callout.callout.callout { - --callout-micro: 10%; - --callout-tiny: 20%; - --callout-small: 30%; - --callout-small-med: 40%; - --callout-med-small: 50%; - --callout-medium: 60%; - --callout-med-tall: 80%; - --callout-tall: 95%; -} -.callout.callout.callout[data-callout-metadata~=wmicro] { - max-width: unset; - width: var(--callout-micro); -} -.callout.callout.callout[data-callout-metadata~=wtiny] { - max-width: unset; - width: var(--callout-tiny); -} -.callout.callout.callout[data-callout-metadata~=wsmall] { - max-width: unset; - width: var(--callout-small); -} -.callout.callout.callout[data-callout-metadata~=ws-med] { - max-width: unset; - width: var(--callout-small-med); -} -.callout.callout.callout[data-callout-metadata~=wm-sm] { - max-width: unset; - width: var(--callout-med-small); -} -.callout.callout.callout[data-callout-metadata~=wmed] { - max-width: unset; - width: var(--callout-medium); -} -.callout.callout.callout[data-callout-metadata~=wm-tl] { - max-width: unset; - width: var(--callout-med-tall); -} -.callout.callout.callout[data-callout-metadata~=wtall] { - max-width: unset; - width: var(--callout-tall); -} -.callout.callout.callout[data-callout-metadata~=sban], .callout.callout.callout[data-callout-metadata~=wfull] { - width: 100%; - float: unset; - max-width: 100%; -} -.callout.callout.callout[data-callout-metadata~=wtiny-c] { - width: 19%; -} -.callout.callout.callout[data-callout-metadata~=wsmall-c] { - width: 32.4%; -} -.callout.callout.callout[data-callout-metadata~=ws-med-c] { - width: 39%; -} -.callout.callout.callout[data-callout-metadata~=wm-sm-c] { - width: 49%; -} -.callout.callout.callout[data-callout-metadata~=wmed-c] { - width: 59%; -} -.callout.callout.callout[data-callout-metadata~=wm-tl-c] { - width: 79%; -} -.callout.callout.callout[data-callout-metadata~=wfit] { - width: fit-content; - max-width: min-content; -} - -.callout.callout[data-callout-metadata~=static] { - --callout-micro: 50px; - --callout-tiny: 100px; - --callout-small: 200px; - --callout-small-med: 300px; - --callout-med-small: 400px; - --callout-medium: 500px; - --callout-med-tall: 600px; - --callout-tall: 700px; -} - -.callout.callout:is([data-callout-metadata~=content-padding-small], -[data-callout-metadata~=c-p-sm]) { - --callout-content-padding: 6px; -} - -.callout.callout:is([data-callout-metadata~=content-padding-medium], -[data-callout-metadata~=c-p-med]) { - --callout-content-padding: 12px; -} - -.callout.callout:is([data-callout-metadata~=content-padding-large], -[data-callout-metadata~=c-p-lg]) { - --callout-content-padding: 24px; -} - -.callout.callout:is([data-callout-metadata~=txt-l], -[data-callout-metadata~=text-left]) > .callout-content > * { - text-align: left; -} - -.callout.callout:is([data-callout-metadata~=txt-r], -[data-callout-metadata~=text-right]) > .callout-content { - text-align: right; -} - -.callout.callout:is([data-callout-metadata~=txt-c], -[data-callout-metadata~=text-center]) > .callout-content { - text-align: center; -} - -.callout.callout:is([data-callout-metadata~=ttl-c], -[data-callout-metadata~=title-center]) .callout-title { - justify-content: center; -} -.callout.callout:is([data-callout-metadata~=ttl-c], -[data-callout-metadata~=title-center]) .callout-title-inner { - display: block; - flex: unset; -} - -.callout.callout:is([data-callout-metadata~=text-small], -[data-callout-metadata~=txt-s]) > .callout-content > * { - --font-text-size: var(--font-smallest); - --tag-size: var(--font-smallest); - --table-text-size: var(--font-smallest); - font-size: var(--font-text-size); -} - -/*Infobox*/ -:is(.is-mobile:not(.is-tablet), -.is-mobile:not(.is-tablet) .is-live-preview, -.is-live-preview) .callout[data-callout~=infobox]:not([data-callout-metadata~=mobile]) > .callout-content { - float: unset !important; - max-width: 100%; - margin: 0 !important; - width: auto; -} - -.callout.callout[data-callout~=infobox] { - --callout-color: var(--note, var(--background-primary)); - --callout-padding: 0; - --callout-content-padding: 5px; - --callout-margin: 0 0 0 5px; - background: var(--note, var(--background-primary)); - --h1-border-line-height: 0; - --h2-border-line-height: 0; - --h3-border-line-height: 0; - --h4-border-line-height: 0; - --h5-border-line-height: 0; - --h6-border-line-height: 0; - border: 0; - box-shadow: none; - width: auto; - max-width: 300px; - float: right; - border-radius: var(--radius-s); -} -.callout.callout[data-callout~=infobox] > .callout-title { - justify-content: center; - align-items: center; - align-self: center; -} -.callout.callout[data-callout~=infobox] > .callout-title > .callout-icon { - align-self: center; -} -.callout.callout[data-callout~=infobox]:not(.is-collapsed) > .callout-title { - padding: 0; -} -.callout.callout[data-callout~=infobox] .callout-fold { - padding-right: 0; -} -.callout.callout[data-callout~=infobox].is-collapsed .callout-fold { - border: 1px solid var(--hr, var(--background-modifier-border)); - border-radius: var(--radius-m); -} -.callout.callout[data-callout~=infobox] > .callout-title .callout-title-inner { - display: none; -} -.callout.callout[data-callout~=infobox] > .callout-title .callout-icon { - height: 0; -} -.callout.callout[data-callout~=infobox]:not([data-callout-metadata~=show-title], -[data-callout-metadata~=s-t], -[data-callout-metadata~=show-icon], -[data-callout-metadata~=s-i]) .callout-icon svg { - width: 0; - height: 0; -} -.callout.callout[data-callout~=infobox]:not(:hover):not(.is-collapsed) .callout-title { - background-color: transparent; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox]:not(:hover):not(.is-collapsed) > .callout-title, .callout.callout[data-callout~=infobox]:is([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]):not(:hover):not(.is-collapsed) > .callout-title { - display: flex; - gap: 0; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox].is-collapsed .callout-title, .callout.callout[data-callout~=infobox]:is([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]).is-collapsed .callout-title { - border: 1px solid var(--hr, var(--background-modifier-border)); - display: flex; - align-items: center; - align-content: center; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox] .callout-title .callout-title-inner, .callout.callout[data-callout~=infobox]:is([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]) .callout-title .callout-title-inner { - display: unset; - align-items: center; - align-content: center; - padding: 5px 10px; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox] .callout-fold, .callout.callout[data-callout~=infobox]:is([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]) .callout-fold { - margin-top: auto; - margin-bottom: auto; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox].is-collapsed .callout-fold, .callout.callout[data-callout~=infobox]:is([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]).is-collapsed .callout-fold { - border: 0; -} -.callout.callout[data-callout~=infobox] > .callout-content { - border: 1px solid var(--table, var(--background-modifier-border)); - margin: 0; - border-radius: var(--radius-s); -} -.callout.callout[data-callout~=infobox] table { - width: 100%; -} -.callout.callout[data-callout~=infobox] table td { - white-space: pre-wrap; - word-wrap: normal; - word-break: normal; -} -.callout.callout[data-callout~=infobox] :is(p, table) { - margin-block-start: 0; - margin-block-end: 0; - margin: 0; -} -.callout.callout[data-callout~=infobox] .callout-content > :is(h1, h2, h3, h4, h5, h6) { - font-size: 20px; - text-align: center; - margin: 0; - padding: 2px; - color: var(--text-normal); - background: var(--outer-bar, var(--background-secondary)); -} -.callout.callout[data-callout~=infobox] .internal-embed, .callout.callout[data-callout~=infobox] img { - display: block; - margin: auto; - padding: auto; - text-align: center; -} -.callout.callout[data-callout~=infobox][data-callout-metadata][data-callout-metadata][data-callout-metadata~=left] { - --callout-margin: 0 5px 0 0; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox] { - max-width: unset; - float: unset; - --callout-margin: 5px 0 0 0; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox] > .callout-title { - color: var(--text-normal); - background: var(--outer-bar, var(--background-secondary)); - border: 1px solid var(--table, var(--background-modifier-border)); - border-bottom: none; -} -.callout.callout[data-callout~=infobox] .callout-content > .callout[data-callout~=infobox] > .callout-content { - border-top: none; -} - -.callout.callout[data-callout~=infobox][data-callout-metadata~=wikipedia] table { - --table-header-color: var(--text, var(--text-normal)); - --table-header-background: transparent; - --table-header-background-hover: var(--td, var(--table-background)); - --table-row-background-hover: var(--td, var(--table-background)); - --table-row-alt-background: transparent; - --table-column-alt-background: transparent; - --table-border-color: transparent; - --table-header-border-color: transparent; -} -.callout.callout[data-callout~=infobox][data-callout-metadata~=wikipedia] table tr:last-child { - margin-bottom: 2px; -} - -@media print { - .callout[data-callout~=infobox] { - max-width: 400px; - } -} -.theme-light .callout[data-callout~=infobox][data-callout-metadata~=wikipedia] { - --th-text: var(--th); -} - -.illusion.illusion .callout[data-callout~=infobox].is-collapsed.is-collapsed[data-callout-metadata~=left] { - margin-left: -30px; -} -.illusion.illusion .callout[data-callout~=infobox].is-collapsed.is-collapsed[data-callout-metadata~=right] { - margin-right: -30px; -} -.illusion.illusion .callout[data-callout~=infobox] [data-heading] { - --illusion-box-shadow: none; - --header-shadow: var(--illusion-box-shadow); - --h1-shadow: var(--header-shadow); - --h2-shadow: var(--header-shadow); - --h3-shadow: var(--header-shadow); - --h4-shadow: var(--header-shadow); - --h5-shadow: var(--header-shadow); - --h6-shadow: var(--header-shadow); -} - -/*Image Grid*/ -.callout.callout[data-callout=grid] { - --callout-padding: 0; - --callout-content-padding: 0; - background: transparent; - border: 0; - margin: 0; - box-shadow: none; -} -.callout.callout[data-callout=grid] .callout-content { - display: block; - width: 100%; - border: 0; - box-shadow: unset; - padding: 0; -} -.callout.callout[data-callout=grid] .callout-title { - display: none; -} -.callout.callout[data-callout=grid] .callout-content p { - display: flex; - margin-block-start: 0; - margin-block-end: 0; - justify-content: center; -} -.callout.callout[data-callout=grid] .callout-content img { - display: table-cell; - vertical-align: middle; - padding: 3px; - max-height: 35vh; -} -.callout.callout[data-callout=grid] .callout-content img[alt=wfull] { - max-height: unset; -} -.callout.callout[data-callout=grid][data-callout-metadata~=masonry] .callout-content p { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(0, auto)); - grid-gap: 0; - margin: 0; - margin-top: 1px; -} -.callout.callout[data-callout=grid][data-callout-metadata~=masonry] .callout-content img { - display: flex; - flex: 1; - align-self: stretch; - object-fit: cover; - max-height: unset; -} - -/* Cards */ -.callout[data-callout~=cards] { - --callout-color: transparent; - --callout-icon: layout-dashboard; - --callout-padding: 0; - --callout-content-padding: 0px; - --callout-blend-mode: normal; - box-shadow: none; - border: 0; - width: auto; -} -.callout[data-callout~=cards] > .callout-title { - display: none; -} -.callout[data-callout~=cards] > .callout-content { - display: grid; - grid-template-columns: repeat(3, 1fr); - grid-gap: 5px; - border-radius: 0; - padding-inline-start: 0px; - padding: 0; -} -.callout[data-callout~=cards] p { - margin-block-start: 0; - margin-block-end: 0; - padding: 0; -} -.callout[data-callout~=cards]:not([data-callout-metadata~=nstr], [data-callout-metadata~=no-strong]) strong { - display: block; - text-align: center; - margin: auto; - background-color: var(--outer-bar, var(--background-secondary)); -} -.callout[data-callout~=cards] br { - display: none; -} -.callout[data-callout~=cards][data-callout-metadata~=flex] > .callout-content { - gap: unset; - grid-template-columns: none; - display: flex; - flex-direction: row; - flex-wrap: wrap; -} -.callout[data-callout~=cards][data-callout-metadata~=flex] > .callout-content .callout { - flex: 1 1 250px; - margin: 5px; -} - -/* Dataview Cards */ -.callout[data-callout~=cards][data-callout-metadata~=dataview] { - --callout-content-padding: 0; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .callout-content { - display: unset; - grid-template-columns: unset; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] br { - display: block; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .block-language-dataview { - padding: 5px; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .dataview.table-view-table { - display: grid; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .dataview.table-view-table :is(td, tr) { - border: 0; - background: transparent; - padding: 0; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .dataview.table-view-table strong { - background: transparent; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .table-view-thead th { - border: 0; - background-color: transparent; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .table-view-thead tr { - display: none; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .dataview.table-view-table tbody { - display: grid; - grid-template-columns: repeat(3, 1fr); - grid-gap: 10px; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview] .dataview.table-view-table tbody tr { - display: grid; - align-content: flex-start; - margin: 0; - padding: 10px; - border: 2px solid var(--outline, var(--background-modifier-box-shadow)); - box-shadow: var(--shadow-ml, var(--input-shadow)); -} - -.callout[data-callout~=cards][data-callout-metadata~=dvl] .callout-content { - display: block; -} -.callout[data-callout~=cards][data-callout-metadata~=dvl] br { - display: unset; -} -.callout[data-callout~=cards][data-callout-metadata~=dvl] .block-language-dataviewjs .dataview-result-list-li, .callout[data-callout~=cards][data-callout-metadata~=dvl] .list-view-ul li { - padding: 10px; - background-color: var(--outer-bar, var(--background-secondary)); - box-shadow: var(--shadow-s, var(--input-shadow)); - margin-bottom: 5px; -} -.callout[data-callout~=cards][data-callout-metadata~=dvl] .dataview.list-view-ul li::before { - margin-left: -27px; -} -.callout[data-callout~=cards][data-callout-metadata~=dvl] ul { - padding-inline-start: unset; -} - -.callout[data-callout~=cards][data-callout-metadata~="1"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(1, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="2"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(2, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="3"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(3, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="4"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(4, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="5"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(5, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="6"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(6, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="7"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(7, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="8"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(8, 1fr); -} -.callout[data-callout~=cards][data-callout-metadata~="9"] :is(.dataview.table-view-table tbody, -.callout-content) { - grid-template-columns: repeat(9, 1fr); -} - -.callout[data-callout~=cards][data-callout-metadata~=dataview] img:not(.link-favicon) { - width: 100%; - object-fit: cover; -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-micro] img { - height: var(--micro); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-tiny] img { - height: var(--tiny); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-small] img { - height: var(--small); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-small-med] img { - height: var(--small-med); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-med-small] img { - height: var(--med-small); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-medium] img { - height: var(--medium); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-med-tall] img { - height: var(--med-tall); -} -.callout[data-callout~=cards][data-callout-metadata~=dataview][data-callout-metadata~=img-tall] img { - height: var(--tall); -} - -/*Captions*/ -.callout.callout[data-callout~=caption] { - background: transparent; - text-align: center; - box-shadow: none; - border: 0; - padding: 0; - margin: 0; - --callout-content-padding: 0; - max-width: 30vh; -} -.callout.callout[data-callout~=caption] > .callout-content { - overflow: hidden; -} -.callout.callout[data-callout~=caption] > .callout-content > p :is(.image-embed, img) + br { - display: none; -} -.callout.callout[data-callout~=caption] > .callout-content img { - display: block; - margin: auto; -} -.callout.callout[data-callout~=caption] > .callout-title { - display: none; -} -.callout.callout[data-callout~=caption] p { - margin-block-start: 0; - margin-block-end: 0; - color: var(--text-faint); -} -.callout.callout[data-callout~=caption]:is([data-callout-metadata~=sban], [data-callout-metadata~=banner]) .image-embed img { - width: 100%; -} - -/* Recite */ -.callout.callout[data-callout=recite] { - --callout-color: 193, 67, 67; - --callout-icon: ''; - --callout-margin: 10px; - --callout-padding: 5px 10px 10px 10px; - border-style: solid; - border-width: 11px; - border-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA8CAYAAADxJz2MAAAFWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjgwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNjAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSI4MCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNjAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjMwMC8xIgogICB0aWZmOllSZXNvbHV0aW9uPSIzMDAvMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+RCZhbXA7RCBCb3JkZXI8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIDEuMTAuNCIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+SLcLyAAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/8xD50SiUhcVLWA35UWJjMZNfhcXMKIPNm2fejJo3Xu+NJFtlO0WJjV8L/gK2ylopIiVLWRMbpuc8o0Yy53bP/dzvPed077mgRNO66ZR3g5nJ2uHRoDoTm1Urn/Ch0EQdqqY71mRkJEpJe7+VaLHrTq9W6bh/rWYh4ejgqxIe0i07KzwmPLGStTzeEm7UU9qC8IlwwJYLCt94erzAzx4nC/zpsR0Nh0CpF1aTvzj+i/WUbQrLy2kz08v6z328l9QmMtMRWVtltuAQZpQgKuMME6KfHgbF99NJL12yo0R+93f+FEuSq4u3WMVmkSQpsgREXZbqCVkN0RMy0qx6/f/bV8fo6y1Urw1CxaPrvrZD5Sbkc677ceC6+UMoe4DzTDF/aR8G3kTPFbW2PfCvw+lFUYtvw9kGNN9bmq19S2UyFcOAl2Ooi0HDFVTPFXr2c87RHUTX5KsuYWcXOiTeP/8FK5Jny8RYHqYAAAAJcEhZcwAALiMAAC4jAXilP3YAAAG5SURBVHic7dyxSiNRFMbxv0OwEkvZfrEWleWAvbA+giB5ANtgcx/gFJK0+wAbwUdYV7bZRjiIirXYL1tbiajFXHV3Y5KBbIyTfL8yOQxfPu5kprkXKnCzRTfrVpmdBm7WdbPFKrNFhYt9As6BnVGD1cgOcJ5/+0CNfl+4WQG0AB80N8U+AiduloBOirh/bejVFehmH4AjYJ/ZLO9Jg7KDo9xJj54C3ewzcAlsjjdbrWwCl7mbvzyvLjebp7xdW28YrE6WgG9u1gFSiriFvALdbBk4QeVV0aL8b1wGKNysCVwA6xONVS/rwIWbNefc7GHSaeps6HugiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIyCzQTqURaafSiBpAE/gCLAwbThFzY0/0DlS8K2+A3SJFdIE14Gy8sabKGbCWIroFQIq4AjaA9kRj1UMb2MidvexYzzuw99zsB/CVcoe2vPgNNFPE9z8/7HmI5IEV4PiNgtXBMbDyb3nQ5ymcIn4BW8AecDfebO/aHWUHW7mTHn2PNMnnpLTd7CdwSHmOyiy5BrZTxOmgoaHvgfkCq8DBfwpWBwfA6rDyAB4BTjVxWZByO0gAAAAASUVORK5CYII=") 11; - border-image-outset: 9px 0px; - box-shadow: 0px 0px 10px var(--outline, var(--background-modifier-box-shadow)); - background: var(--note, var(--background-primary)); - text-align: justify; -} -.callout.callout[data-callout=recite] .callout-title { - padding: 0; - background: transparent; - color: rgba(var(--callout-color), 1); - justify-content: center; -} -.callout.callout[data-callout=recite][data-callout-metadata*=bg-]:not([data-callout-metadata*=bg-c]) .callout-title { - color: var(--text-normal); -} -.callout.callout[data-callout=recite] .callout-title-inner { - flex: unset; -} -.callout.callout[data-callout=recite] .callout-content { - padding: 0; - padding-top: 10px; -} - -/* Unwrapped Table */ -.callout.callout[data-callout-metadata~=table], -.callout.callout[data-callout~=table] { - border: 0; - background-color: transparent; - --callout-padding: 0; -} -.callout.callout[data-callout-metadata~=table] .callout-content, -.callout.callout[data-callout~=table] .callout-content { - padding: 0; - border: 0; - background-color: transparent; - box-shadow: none; -} -.callout.callout[data-callout-metadata~=table]:not([data-callout-metadata~=show-title], -[data-callout-metadata~=s-t]) .callout-title, -.callout.callout[data-callout~=table]:not([data-callout-metadata~=show-title], -[data-callout-metadata~=s-t]) .callout-title { - display: none; -} -.callout.callout[data-callout-metadata~=table] table, -.callout.callout[data-callout~=table] table { - white-space: nowrap; - margin: 0; - margin: auto; - overflow-x: scroll; -} -.callout.callout[data-callout-metadata~=table] table th, .callout.callout[data-callout-metadata~=table] table td, -.callout.callout[data-callout~=table] table th, -.callout.callout[data-callout~=table] table td { - white-space: nowrap; -} - -/* Metadata */ -.callout.callout[data-callout~=Metadata i] { - --callout-icon: layers; - --callout-color: 82, 139, 212; - --callout-border-width: 2px; - --callout-title-padding: 5px; - --callout-content-padding: 0px 10px 10px; - box-shadow: 0px 0px 0px 1px var(--outline); -} -.callout.callout[data-callout~=Metadata i] .callout-title { - background-color: transparent; - justify-content: center; -} -.callout.callout[data-callout~=Metadata i] .callout-title-inner { - flex: unset; - color: rgb(var(--callout-color)); -} -.callout.callout[data-callout~=Metadata i]:not([data-callout-metadata~=no-strong], [data-callout-metadata~=no-str]) .callout-content strong { - color: rgb(var(--callout-color)); -} -.callout.callout[data-callout~=Metadata i] .dataview.inline-field-key { - background: rgb(var(--callout-color)); - color: var(--text-on-accent); - font-weight: 900; -} -.callout.callout[data-callout~=Metadata i] .dataview.inline-field-value { - font-weight: unset; - background: transparent; -} -.callout.callout[data-callout~=Metadata i] table th { - background-color: var(--aside-bg, rgba(var(--callout-color), 0.5)); -} -.callout.callout[data-callout~=Metadata i] table { - --tbl-td-h: 0; - --tbl-td-w: 5px; - white-space: nowrap; - margin: 0; - width: 100%; -} -.callout.callout[data-callout~=Metadata i] .callout-content p:last-child { - margin-bottom: 0; -} -.callout.callout[data-callout~=Metadata i] .callout-content p:first-child { - margin-top: 0; -} -.callout.callout[data-callout~=Metadata i] .callout-content, .callout.callout[data-callout~=Metadata i] ul { - margin: 0; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at] { - background: var(--outer-bar, var(--background-secondary-alt)); - border: 0; - text-align: center; - padding: 0; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at].is-collapsible:not(.is-collapsed) { - display: flex; - flex-direction: row-reverse; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at]:not(.is-collapsible) .callout-title, .callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at] .callout-title-inner, .callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at]:not(.is-collapsed) .callout-icon { - display: none; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at] .callout-fold { - display: flex; - align-content: center; - align-items: center; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at] .callout-fold svg { - margin-bottom: unset; -} -.callout.callout[data-callout~=Metadata i][data-callout-metadata~=i-at] .callout-content { - padding: 0px; - margin: auto; - overflow-y: hidden; -} -.callout.callout[data-callout~=Metadata i]:is([data-callout-metadata~=tbl-cln], [data-callout-metadata~=table-clean]) table :is(td, tr, th) { - background-color: transparent; - border-color: transparent; -} - -/* Columns */ -.callout[data-callout*=column] { - --callout-color: var(--text-normal); - --callout-icon: layout-dashboard; - --columns: 2; - background: transparent; - box-shadow: none; - border: 0; - width: auto; - padding: 0; -} -.callout[data-callout*=column] > .callout-content .callout-content { - border: 0; -} -.callout[data-callout*=column] > .callout-content { - display: grid; - grid-template-columns: repeat(var(--columns), 1fr); - gap: 10px; - background: transparent; - box-shadow: none; - border: 0; - padding: 0; -} -.callout[data-callout*=column][data-callout-metadata~="3"] .callout-content { - --columns: 3; -} -.callout[data-callout*=column][data-callout-metadata~="4"] .callout-content { - --columns: 4; -} -.callout[data-callout*=column][data-callout-metadata~="5"] .callout-content { - --columns: 5; -} -.callout[data-callout*=column][data-callout-metadata~="6"] .callout-content { - --columns: 6; -} -.callout[data-callout*=column][data-callout-metadata~="7"] .callout-content { - --columns: 7; -} -.callout[data-callout*=column][data-callout-metadata~="8"] .callout-content { - --columns: 8; -} -.callout[data-callout*=column][data-callout-metadata~="9"] .callout-content { - --columns: 9; -} -.callout[data-callout*=column][data-callout-metadata~=flex] > .callout-content { - gap: 5px; - grid-template-columns: none; - display: flex; - flex-direction: row; - flex-wrap: wrap; -} -.callout[data-callout*=column][data-callout-metadata~=flex] > .callout-content .callout { - flex: 1 1 calc(var(--file-line-width) / 2.5); -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~="3"] > .callout-content .callout { - flex: 1 1 calc(var(--file-line-width) / 3.5); -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout { - flex: 1 1 auto; -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout[data-callout-metadata~=wmicro] { - width: 5%; -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout[data-callout-metadata~=wtiny] { - width: 10%; -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout[data-callout-metadata~=wsmall] { - width: 20%; -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout[data-callout-metadata~=ws-med] { - width: 30%; -} -.callout[data-callout*=column][data-callout-metadata~=flex][data-callout-metadata~=resize] .callout[data-callout-metadata~=wmed] { - width: 40%; -} -.callout[data-callout*=column][data-callout-metadata~=dataview] > .callout-content { - grid-template-columns: unset; - gap: unset; -} -.callout[data-callout*=column][data-callout-metadata~=dataview] > .callout-content .dataview.list-view-ul { - columns: var(--columns); -} -.callout[data-callout*=column][data-callout-metadata~=dataview] > .callout-content .dataview li { - break-inside: avoid; -} -.callout[data-callout*=column][data-callout-metadata~=list-global] .callout > .callout-content, .callout[data-callout*=column][data-callout-metadata~=list] > .callout-content { - grid-template-columns: unset; -} -.callout[data-callout*=column][data-callout-metadata~=list-global] .callout > .callout-content > ul, .callout[data-callout*=column][data-callout-metadata~=list] > .callout-content > ul { - columns: var(--columns); -} -.callout[data-callout*=column][data-callout-metadata~=list-global] .callout > .callout-content > ul > li, .callout[data-callout*=column][data-callout-metadata~=list] > .callout-content > ul > li { - break-inside: avoid; -} -.callout[data-callout*=column][data-callout-metadata~=list-global] .callout > .callout-content > ul .list-bullet::after, .callout[data-callout*=column][data-callout-metadata~=list] > .callout-content > ul .list-bullet::after { - position: relative; -} - -/*Kanban*/ -.callout.callout[data-callout~=kanban] { - --callout-color: unset; - --callout-icon: layout-dashboard; - --callout-padding: 0; - --item-outline: 0 0 0 1px var(--outline, var(--background-modifier-border)); - --lane-width: 250px; - background: transparent; - box-shadow: none; - border: 0; - width: auto; -} -.callout.callout[data-callout~=kanban] .callout-title { - justify-content: center; - background: var(--code-bg, var(--background-primary)); - padding: 5px; - border-radius: var(--radius-s); -} -.callout.callout[data-callout~=kanban] .callout-title-inner { - flex: unset; -} -.callout.callout[data-callout~=kanban] .callout-content { - padding: 0; -} -.callout.callout[data-callout~=kanban] ul li::marker, .callout.callout[data-callout~=kanban] ul li::before, .callout.callout[data-callout~=kanban] .list-bullet, .callout.callout[data-callout~=kanban] ul::before, .callout.callout[data-callout~=kanban] :is(ul, ul ul) .list-collapse-indicator { - list-style-type: none; - color: transparent; - display: none !important; -} -.callout.callout[data-callout~=kanban] ul { - display: flex; - margin-block-start: 5px; - padding-inline-start: 0; - text-align: center; - overflow: auto; -} -.callout.callout[data-callout~=kanban] ul.list-view-ul { - margin-inline-start: unset; -} -.callout.callout[data-callout~=kanban] ul li { - min-width: var(--lane-width); - border: 0; - padding: 5px; - margin: 5px 1px; - padding-top: 4px; - background: var(--note, var(--background-primary-alt)); - border-radius: var(--radius-s); - box-shadow: var(--item-outline), var(--shadow-s); -} -.callout.callout[data-callout~=kanban] ul ul { - flex-direction: column; - text-align: left; - overflow: unset; -} -.callout.callout[data-callout~=kanban] ul ul li { - min-width: calc(var(--lane-width) / 2); - padding: 5px; - box-shadow: var(--item-outline), var(--shadow-s); - background: var(--code-bg, var(--background-primary)); -} -.callout.callout[data-callout~=kanban] ul ul li :is(img, .internal-embed) { - margin-bottom: -6px; -} -.callout.callout[data-callout~=kanban] ul.contains-task-list .task-list-item-checkbox { - margin-inline-start: 0; -} -.callout.callout[data-callout~=kanban] .task-list-item-checkbox { - cursor: default; -} - -/* Timeline */ -.callout.callout[data-callout~=timeline] { - --callout-icon: "clock-12"; - --callout-padding: 0px; - --callout-title-padding: 10px; - --callout-content-padding: 10px; - --timeline-shadow: var(--outline, var(--background-modifier-box-shadow)); - --micro: 50px; - --tiny: 100px; - --small: 200px; - --small-med: 300px; - --med-small: 400px; - --medium: 500px; - --med-tall: 600px; - --tall: 700px; - --c-timeline: calc(50% - 2px); - background-color: transparent; - margin: 0; - border: 0; - clear: both; -} -.callout.callout[data-callout~=timeline] .callout-title { - background: rgba(var(--callout-color), 0.35); - align-content: center; - align-items: center; -} -.callout.callout[data-callout~=timeline] .callout-title em { - font-style: normal; - display: block; - font-size: 14px; - line-height: 12px; - color: rgb(var(--callout-color)); -} -.callout.callout[data-callout~=timeline] .callout-icon { - background-color: var(--note, var(--background-primary)); - transform: scale(1.2); - border-radius: 20px; - height: var(--icon-size); - width: var(--icon-size); -} -.callout.callout[data-callout~=timeline] .callout-content { - background-color: rgb(var(--callout-color), 0.1); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-l] { - border-right: 4px solid rgb(var(--callout-color)); - margin-right: var(--c-timeline); - z-index: 0; -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-l] > .callout-title, .callout.callout[data-callout~=timeline][data-callout-metadata~=t-l] > .callout-content { - box-shadow: -4px 4px 0 var(--timeline-shadow); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-r] { - border-left: 4px solid rgb(var(--callout-color)); - margin-left: var(--c-timeline); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-r] > .callout-title, .callout.callout[data-callout~=timeline][data-callout-metadata~=t-r] > .callout-content { - box-shadow: 4px 4px 0 var(--timeline-shadow); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-l] > .callout-title { - flex-direction: row-reverse; - text-align: right; -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-l] > .callout-title .callout-icon { - float: right; - position: absolute; - margin-right: -20px; -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-r] > .callout-title .callout-icon { - float: left; - position: absolute; - margin-left: -20px; -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-1] .callout-title { - margin-top: var(--micro); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-2] .callout-title { - margin-top: var(--tiny); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-3] .callout-title { - margin-top: var(--small); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-4] .callout-title { - margin-top: var(--small-med); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-5] .callout-title { - margin-top: var(--med-small); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-6] .callout-title { - margin-top: var(--medium); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-7] .callout-title { - margin-top: 350px; -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-8] .callout-title { - margin-top: var(--med-tall); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-9] .callout-title { - margin-top: var(--tall); -} -.callout.callout[data-callout~=timeline][data-callout-metadata~=t-10] .callout-title { - margin-top: 750px; -} - -.callout[data-callout=kith] { - --callout-icon: user; - --callout-color: 115, 167, 202; - border-color: rgba(var(--callout-color), 0.7); -} -.callout[data-callout=kith] .callout-title-inner { - font-weight: unset; - color: rgb(var(--callout-color)); -} -.callout[data-callout=kith] .callout-title-inner em { - display: block; - font-style: normal; - font-size: var(--font-small); - line-height: 12px; - font-weight: normal; -} -.callout[data-callout=kith] .callout-title-inner em em { - font-style: italic; - display: inline-block; -} -.callout[data-callout=kith][data-callout-metadata=family] { - --callout-icon: users; -} -.callout[data-callout=kith][data-callout-metadata=friend] { - --callout-icon: user-check; - --callout-color: 115, 202, 144; -} -.callout[data-callout=kith][data-callout-metadata=romantic] { - --callout-icon: user-plus; - --callout-color: 202, 115, 180; -} -.callout[data-callout=kith][data-callout-metadata=antagonist] { - --callout-icon: user-x; - --callout-color: 241, 74, 74; -} - -/* Asides */ -.callout[data-callout~=aside] { - --callout-icon: message-square; - --callout-color: ""; - background-color: var(--aside-bg, var(--background-secondary)); - box-shadow: 0.3em 0.3em 0 var(--accent, var(--background-modifier-box-shadow)), 0 0 0 1px var(--accent, var(--background-modifier-box-shadow)); - float: right; - position: relative; - margin: 0; - margin-right: -1.2em; - margin-left: 5px; - max-width: 400px; -} -.callout[data-callout~=aside]:not([data-callout-metadata~=no-t]) .callout-content { - padding: 5px 10px; -} -.callout[data-callout~=aside]:not([data-callout-metadata~=no-t]) .callout-content p:first-child { - margin-top: 0; -} -.callout[data-callout~=aside]:not([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]) .callout-title-inner { - display: none; -} -.callout[data-callout~=aside]:not([data-callout-metadata~=show-title], [data-callout-metadata~=s-t]) .callout-title { - justify-content: space-between; -} -.callout[data-callout~=aside].is-collapsed { - background-color: transparent; - box-shadow: none; - --callout-border-width: 0; - --callout-padding: 0px 4px; -} -.callout[data-callout~=aside].is-collapsed .callout-title-inner { - display: none; -} -.callout[data-callout~=aside].is-collapsed .callout-title { - justify-content: space-between; - --callout-title-padding: 0px; -} -.callout[data-callout~=aside].is-collapsed .callout-fold { - margin: 0; - padding: 0; - margin-left: -25px; - visibility: hidden; -} - -.callout[data-callout~=aside][data-callout-metadata~=clean] { - background: transparent; - box-shadow: none; -} - -.callout[data-callout~=aside][data-callout-metadata~=tufte] { - background: transparent; - box-shadow: none; - float: right; - position: relative; -} -.callout[data-callout~=aside][data-callout-metadata~=tufte]:not(.is-collapsed) { - width: 400px; - margin-right: -25.3em; -} -.callout[data-callout~=aside][data-callout-metadata~=tufte] .callout-title { - padding-top: 0; -} -.callout[data-callout~=aside][data-callout-metadata~=tufte].is-collapsed .callout-title { - justify-content: unset; -} -.callout[data-callout~=aside][data-callout-metadata~=tufte].is-collapsed .callout-content { - display: none; -} - -.callout.callout.callout[data-callout~=aside]:is([data-callout-metadata~=left], [data-callout-metadata~="p+l"]) { - margin-left: -1.6em; -} -.callout.callout.callout[data-callout~=aside]:is([data-callout-metadata~=left], [data-callout-metadata~="p+l"]):not(.is-collapsed) { - margin-right: 10px; -} -.callout.callout.callout[data-callout~=aside]:is([data-callout-metadata~=left], [data-callout-metadata~="p+l"])[data-callout-metadata~=tufte]:not(.is-collapsed) { - margin: unset; - margin-left: -25em !important; -} -.callout.callout.callout[data-callout~=aside]:is([data-callout-metadata~=left], [data-callout-metadata~="p+l"])[data-callout-metadata~=tufte]:not(.is-collapsed) .callout-title { - padding-top: 5px; - flex-direction: row-reverse; -} - -.is-mobile.is-mobile .callout[data-callout~=aside]:is([data-callout-metadata~=left], [data-callout-metadata~="p+l"]) { - margin-left: 0; -} - -.is-live-preview .callout[data-callout~=aside] { - float: unset; -} - -.is-live-preview.is-live-preview .callout.callout[data-callout~=aside] { - margin: 5px; -} - -body:not(.default-callout-quote) .callout.callout[data-callout=quote] { - --callout-icon: ""; - --callout-color: var(--color-accent); - --callout-padding: 20px 30px; - --callout-border-width: 0 0 0 4px; - --callout-border-opacity: .7; - display: flex; - flex-direction: column-reverse; - box-shadow: var(--shadow-l); -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-content { - padding: 0; - overflow: hidden; -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-content p:first-child { - margin-block-start: 0; -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-content p:last-child { - margin-block-end: 0; -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-icon { - height: 0; - width: 0; -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-title { - background: transparent; - text-align: right; - padding-top: 5px; - padding-right: 0; - display: block; -} -body:not(.default-callout-quote) .callout.callout[data-callout=quote] > .callout-title-inner::before { - content: "~ "; -} - -.callout.callout[data-callout=quote][data-callout-metadata~=author] { - --callout-icon: ""; - --callout-color: var(--color-accent); - --callout-padding: 20px 30px; - --callout-border-width: 0 0 0 4px; - --callout-border-opacity: .7; - display: flex; - flex-direction: column-reverse; - box-shadow: var(--shadow-l); -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-content { - padding: 0; - overflow: hidden; -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-content p:first-child { - margin-block-start: 0; -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-content p:last-child { - margin-block-end: 0; -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-icon { - height: 0; - width: 0; -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-title { - background: transparent; - text-align: right; - padding-top: 5px; - padding-right: 0; - display: block; -} -.callout.callout[data-callout=quote][data-callout-metadata~=author] .callout-title-inner::before { - content: "~ "; -} -.callout.callout[data-callout=quote][data-callout-metadata~=mark] { - --callout-padding: 20px 40px 20px 30px; -} -.callout.callout[data-callout=quote][data-callout-metadata~=mark] .callout-content::before { - display: block; - float: right; - content: "”"; - font-family: var(--font); - color: var(--headers); - transform: scale(4); - position: absolute; - right: 50px; - margin-top: 20px; -} - -.published-container .callout.callout[data-callout=quote][data-callout-metadata~=mark] .callout-content::before { - right: 65px; -} - -.callout-original .callout, -.callout:is([data-callout-metadata~=callout-original], -[data-callout-metadata~=co-o]) { - --callout-padding: 0; - --callout-title-padding: 10px 15px; - --callout-content-padding: 5px 15px; - --callout-border-opacity: 1; - --callout-margin: 5px 5px 5px 0; - --callout-border-width: 0 0 0 3px; - background-color: var(--note, var(--background-primary)); - box-shadow: var(--shadow-m); - margin: var(--callout-margin); -} -.callout-original .callout .callout-title, -.callout:is([data-callout-metadata~=callout-original], -[data-callout-metadata~=co-o]) .callout-title { - background: rgba(var(--callout-color), 0.1); -} - -.callout-block .callout, -.callout:is([data-callout-metadata~=callout-block], -[data-callout-metadata~=co-block]) { - --callout-padding: 0; - --callout-content-padding: 0 10px; - --callout-title-padding: 6px 10px; - --callout-title-background: var(--callout-color); - --callout-border-opacity: .5; -} -.callout-block .callout .callout-title, -.callout:is([data-callout-metadata~=callout-block], -[data-callout-metadata~=co-block]) .callout-title { - background-color: rgba(var(--callout-title-background, var(--callout-color)), 0.2); -} -.callout-block .callout.is-collapsible:not(.is-collapsed) > .callout-content, -.callout:is([data-callout-metadata~=callout-block], -[data-callout-metadata~=co-block]).is-collapsible:not(.is-collapsed) > .callout-content { - border-bottom: 1px solid rgba(var(--callout-color), var(--callout-border-opacity)); -} - -.callout-side-icon .callout, -.callout:is([data-callout-metadata~=callout-side-icon], -[data-callout-metadata~=co-si]) { - --callout-title-padding: 0 0 0 20px; - --callout-title-background: transparent; - --callout-border-width: 0; - display: flex; - flex-direction: row; - align-items: center; -} -.callout-side-icon .callout .callout-title-inner, -.callout:is([data-callout-metadata~=callout-side-icon], -[data-callout-metadata~=co-si]) .callout-title-inner { - display: none; -} - -.callout-alternate-line .callout, -.callout.callout[data-callout-metadata~=alt-line] { - border: 0; - background-color: transparent; - --callout-padding: 0; - --callout-title-padding: 5px 10px; - --callout-content-padding: 0px 10px 10px; -} -.callout-alternate-line .callout .callout-title, -.callout.callout[data-callout-metadata~=alt-line] .callout-title { - background: transparent; - border-bottom: 2px solid var(--table, var(--background-modifier-border)); -} -.callout-alternate-line .callout .callout-fold, -.callout.callout[data-callout-metadata~=alt-line] .callout-fold { - color: rgb(var(--callout-color)); -} -.callout-alternate-line .callout .callout-content.callout-content, -.callout.callout[data-callout-metadata~=alt-line] .callout-content.callout-content { - border: 0; - border-bottom: 1px solid rgba(var(--callout-color), 0.5); -} - -@media print { - .print.print .markdown-preview-view .callout:is([data-callout*=cards], -[data-callout*=column]) .callout-content { - display: grid !important; - } - .print.print .markdown-preview-view .callout:is([data-callout*=column][data-callout-metadata*=flex]) .callout-content { - display: flex !important; - } -} -.markdown-rendered table tr { - height: unset; -} - -.canvas-cards .canvas-node.is-themed { - --shadow-border-themed-inset: none; - --shadow-border-themed: none; -} -.canvas-cards .canvas-node.is-themed .canvas-node-container { - border-color: var(--outline); - box-shadow: inset 0 0 0 2px var(--outline), var(--shadow-m); -} -.canvas-cards .canvas-node.is-themed .canvas-node-container:hover .canvas-node-content { - background-color: rgba(var(--canvas-color), 0.2); -} - -.canvas-arrow-text-color .canvas-path-label { - color: rgb(var(--canvas-color)); -} - -.sizing-readable.sizing-readable { - --font-ui-smaller: 13.5px; - --font-ui-small: 14px; - --font-ui-medium: 15px; - --font-ui-large: 20px; - --font-smallest:.88em; - --font-smaller:.9em; - --font-small: .95em; - --icon-xs: 14px; - --icon-s: 16px; - --icon-m: 17px; - --icon-l: 18px; - --header-height: 40px; - --ribbon-width: 40px; -} - -.sizing-mini.sizing-mini { - --font-ui-smaller: 11px; - --font-ui-small: 12px; - --font-ui-medium: 14px; - --font-ui-large: 20px; - --font-smallest: .70em; - --font-smaller: .88em; - --font-small: .95em; - --icon-xs: 12px; - --icon-s: 13px; - --icon-m: 14px; - --icon-l: 15px; - --vault-name-font-size: 14px; - --header-height: 35px; - --ribbon-width: 30px; - --inline-title-size: 20px; - --scrollbar-width: 8px; - --scrollbar-height: 8px; -} - -.sizing-large.sizing-large, -.sizing-large.sizing-large div { - --font-ui-smaller: 16px; - --font-ui-small: 18px; - --font-ui-medium: 20px; - --font-ui-large: 24px; - --font-smallest: 1em; - --font-smaller: 1.2em; - --font-small: 1.5em; - --table-row-edit-font-size: var(--font-text-size); - --font-frontmatter: var(--font-text-size); - --code-size: var(--font-text-size); - --icon-xs: 16px; - --icon-s: 18px; - --icon-m: 20px; - --icon-l: 24px; - --header-height: 50px; - --ribbon-width: 50px; - --inline-title-size: 40px; - --scrollbar-width: 15px; -} - -iframe { - border-width: var(--radius-m); - border-style: none; - border-color: initial; - border-image: initial; -} - -/* Video w/ Aspect Ratio:
*/ -#vid { - position: relative; - padding-bottom: 56.25%; -} - -#vid iframe { - position: absolute; - width: 100%; - height: 100%; -} - -.textLayer ::selection, -.xfaLayer .highlight { - background-color: var(--highlight); -} - -.dataview-table-auto { - --dataview-table-width: auto; -} - -.dataview-regular-table .dataview { - --dataview-th-background: var(--th); - --dataview-th-color: var(--th-text); - --dataview-th-font: var(--table-header-font); - --dataview-th-font-size: var(--table-header-size); - --dataview-th-font-weight: var(--table-header-weight); - --dataview-th-border-bottom: var(--table-border-width) solid var(--table-border-color); - --dataview-th-alt-color: var(--table-column-alt-background); - --dataview-th-count-color: var(--dataview-th-color); -} - -.dataview-cards, -.dvl-c { - --dataview-th-color: var(--text); - --dataview-th-font: var(--font-default); - --dataview-th-font-size: var(--font-text-size); - --dataview-th-count-color: var(--text); - --dataview-th-background: var(--note); - --dataview-th-border-bottom: none; -} -.dataview-cards .table-view-table > thead::before, -.dvl-c .table-view-table > thead::before { - content: "\e805"; - font-family: var(--its); - float: left; - padding: 5px 10px 5px 10px; -} -.dataview-cards .table-view-table > thead > tr, -.dvl-c .table-view-table > thead > tr { - display: flex; - flex-direction: column; - border: var(--box-border-s); - box-shadow: var(--shadow-m); - margin: 0; - flex-wrap: wrap; - float: left; - position: absolute; - margin-top: 30px; -} -.dataview-cards .table-view-table > thead > tr:hover, -.dvl-c .table-view-table > thead > tr:hover { - --text-selection: var(--td); -} -.dataview-cards table .table-view-table > thead > tr, -.dvl-c table .table-view-table > thead > tr { - position: absolute; - right: 0; -} -.dataview-cards .table-view-table > thead:not(:hover) > *, -.dvl-c .table-view-table > thead:not(:hover) > * { - display: none; -} -.dataview-cards .dataview th:hover, -.dvl-c .dataview th:hover { - background: var(--td); -} -.dataview-cards .dataview strong, -.dvl-c .dataview strong { - display: block; - text-align: center; - margin: auto; - background-color: var(--outer-bar, var(--background-secondary)); -} -.dataview-cards .list-view-ul li, .dataview-cards .dataview.table-view-table > tbody > tr, -.dvl-c .list-view-ul li, -.dvl-c .dataview.table-view-table > tbody > tr { - display: flex; - flex-direction: column; - background-color: var(--note); - border: var(--box-border-m); - box-shadow: var(--shadow-m); - margin: 5px 0; - padding: 10px; -} -.dataview-cards .list-view-ul li:hover, .dataview-cards .dataview.table-view-table > tbody > tr:hover, -.dvl-c .list-view-ul li:hover, -.dvl-c .dataview.table-view-table > tbody > tr:hover { - --text-selection: var(--td); - background-color: var(--text-selection); -} -.dataview-cards .list-view-ul, .dataview-cards .dataview.table-view-table > tbody.table-view-tbody, -.dvl-c .list-view-ul, -.dvl-c .dataview.table-view-table > tbody.table-view-tbody { - display: flex; - flex-direction: row; - flex-wrap: wrap; - padding-inline-start: 0; -} -.dataview-cards .block-language-dataviewjs .dataview-result-list-li, .dataview-cards .list-view-ul li, .dataview-cards .dataview.table-view-table > tbody > tr, -.dvl-c .block-language-dataviewjs .dataview-result-list-li, -.dvl-c .list-view-ul li, -.dvl-c .dataview.table-view-table > tbody > tr { - flex: 1 0 200px; - margin: 5px; -} -.dataview-cards .dataview.table-view-table td, -.dvl-c .dataview.table-view-table td { - padding: 0; - background-color: transparent; - border: 0; -} -.dataview-cards .list-view-ul li::before, -.dvl-c .list-view-ul li::before { - display: none; -} -.dataview-cards .dataview.table-view-table li, -.dvl-c .dataview.table-view-table li { - box-shadow: none; - border: 0; - padding: 0; -} - -/*Dataview*/ -.dataview-list .block-language-dataviewjs .dataview-result-list-li, .dataview-list .list-view-ul li, -.dvl .block-language-dataviewjs .dataview-result-list-li, -.dvl .list-view-ul li { - background-color: var(--note); - border: var(--box-border-m); - box-shadow: var(--shadow-m); - margin-bottom: 8px; - padding: 10px; - margin-left: -25px; -} -.dataview-list .block-language-dataviewjs .dataview-result-list-li::before, .dataview-list .list-view-ul li::before, -.dvl .block-language-dataviewjs .dataview-result-list-li::before, -.dvl .list-view-ul li::before { - margin-left: -27px; - display: none; -} -.dataview-list .block-language-dataviewjs .dataview-result-list-li:nth-child(even), .dataview-list .list-view-ul li:nth-child(even), -.dvl .block-language-dataviewjs .dataview-result-list-li:nth-child(even), -.dvl .list-view-ul li:nth-child(even) { - border: var(--box-border-m); -} -.dataview-list.kanban .block-language-dataviewjs .dataview-result-list-li, .dataview-list.kanban .list-view-ul li, -.dvl.kanban .block-language-dataviewjs .dataview-result-list-li, -.dvl.kanban .list-view-ul li { - background-color: var(--aside-bg); -} -.dataview-list.kanban .block-language-dataviewjs .dataview-result-list-li, .dataview-list.kanban .list-view-ul li, -.dvl.kanban .block-language-dataviewjs .dataview-result-list-li, -.dvl.kanban .list-view-ul li { - flex: 1 1 200px; - box-shadow: 4px 4px 0 var(--outline); - border: 1px solid var(--outline); - margin-bottom: 10px; -} -.dataview-list.kanban table td > .dataview-ul, -.dvl.kanban table td > .dataview-ul { - display: block; - padding-inline-start: 1em; -} - -.kanban-title-center .kanban-plugin__item-title-wrapper { - text-align: center; -} - -.kanban-boxed .kanban-plugin__lane { - --kanban-lane-border: var(--box-border-m); - --kanban-lane-box-shadow: var(--shadow-m); -} - -.kanban-boxed .kanban-plugin__item.kanban-plugin__item { - border: 0; - border-left: 3px solid var(--accent); - border-radius: var(--radius); -} - -.kanban-minimal, -.kbn { - --kanban-lane-background: transparent; - --kanban-lane-border: none; - --kanban-lane-box-shadow: none; - --kanban-card-title-background: var(--code-bg); - --kanban-card-title-border: 0 1px 0 var(--outline); - --kanban-card-metadata-background: var(--code-bg); - --kanban-card-margin: 0; - --kanban-link-color: var(--text); - --kanban-link-font-weight: 600; - --kanban-link-symbol: ""; - --kanban-button-background: transparent; - --kanban-button-shadow: transparent; -} - -.metadata-label-text-color .metadata-property { - --metadata-label-background: transparent; - --metadata-label-text-color: var(--headers); - --metadata-icon-color: var(--headers); -} - -.metadata-label-background .metadata-property { - --metadata-label-background: var(--tag); - --metadata-label-text-color: var(--text-dl); - --metadata-icon-color: var(--text-dl); -} - -.metadata-value-background .metadata-property { - --metadata-input-background: var(--td); -} - -.metadata-title-no-icon { - --metadata-title-icon: ""; - --metadata-title-icon-padding: 0; -} - -/*Table Centered*/ -.tables-center .cm-table-widget.cm-table-widget .table-wrapper, .tables-center table, -.t-c .cm-table-widget.cm-table-widget .table-wrapper, -.t-c table { - margin-left: auto; - margin-right: auto; -} - -.tables-wide .cm-table-widget.markdown-rendered .table-wrapper, .tables-wide table, -.t-w .cm-table-widget.markdown-rendered .table-wrapper, -.t-w table { - width: 100%; -} - -.tables-no-alt-background.tables-no-alt-background, -.table-nalt.table-nalt { - --table-column-alt-background: transparent; - --table-row-alt-background: transparent; -} - -.tables-no-alt-column-background.tables-no-alt-column-background { - --table-column-alt-background: transparent; -} - -.tables-no-alt-row-background.tables-no-alt-row-background { - --table-row-alt-background: transparent; -} - -:is(.table-alto, .tables-alt-original) .markdown-rendered tbody tr > td:nth-child(2n+2), :is(.table-alto, .tables-alt-original) .markdown-rendered tbody tr:nth-child(odd) { - background-color: transparent; -} -:is(.table-alto, .tables-alt-original) .markdown-rendered tbody tr > td:nth-child(odd) { - background-color: var(--table-column-alt-background); -} -:is(.table-alto, .tables-alt-original) .markdown-rendered tbody tr:nth-child(even) { - background-color: var(--table-row-alt-background); -} - -.tables-no-hover { - --table-header-background-hover: var(--table-header-background); -} -.tables-no-hover tbody tr:nth-child(odd):hover { - --table-row-background-hover: var(--table-row-alt-background); -} -.tables-no-hover tbody tr:nth-child(even):hover { - --table-row-background-hover: var(--table-row-background); -} - -.tables-borders { - --table-border-color: var(--hr); -} - -/*Bolded Right Side Table*/ -.table.table td:nth-child(1) { - font-weight: 900; -} -.table.table tr:not(:hover) td:nth-child(1) { - background-color: var(--outer-bar); -} - -.table-column-header tr td:nth-child(1) { - background-color: var(--table-header-background); -} -.table-column-header tr td:nth-child(1):hover { - background-color: var(--table-header-background-hover); -} - -.tables-styling-wikipedia, -.table-wikipedia { - --table-header-color: var(--text); - --table-header-background: transparent; - --table-header-background-hover: var(--td); - --table-row-background-hover: var(--td); - --table-row-alt-background: transparent; - --table-column-alt-background: transparent; -} -.tables-styling-wikipedia tr:last-child, -.table-wikipedia tr:last-child { - margin-bottom: 2px; -} - -.lig, -.ligatures { - --font-ligatures: normal; -} - -/*Justify text*/ -.justify .markdown-preview-section, .justify .cm-s-obsidian, .justify.markdown-preview-view, .justify.cm-s-obsidian, -.justified .markdown-preview-section, -.justified .cm-s-obsidian, -.justified.markdown-preview-view, -.justified.cm-s-obsidian { - text-align: justify; -} - -.poem p, -.poem-lp .cm-line { - text-align: center; -} - -.writing.writing { - --file-line-width: 600px; - --link-color: var(--text); - --link-color-hover: var(--soft-text); - --link-background-hover: var(--highlight); - --link-external-color: var(--text); - --link-external-color-hover: var(--soft-text); - --highlight: var(--td) !important; - --text-highlight-bg: var(--highlight); - --hr-icon-symbol: !important; - --header-text-align: center; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); - --blockquote-background-color: transparent; - --blockquote-border-thickness: 3px; - --blockquote-border-color: var(--accent); - --code-normal: var(--text); - --code-background: var(--td); -} -.writing.writing.markdown-source-view.mod-cm6 .cm-sizer, .writing.writing .markdown-source-view.mod-cm6 .cm-scroller .cm-sizer, .writing.writing .markdown-preview-sizer { - max-width: var(--file-line-width); - margin: auto; -} -.writing.writing .internal-link::after, .writing.writing .cm-underline::after, .writing.writing .external-link::after { - font-family: var(--its); - font-size: calc(var(--font-text-size) - 2px); - font-style: normal !important; - font-weight: 100 !important; - vertical-align: 2px; - color: var(--accent); - opacity: unset; - margin-right: -8px; -} -.writing.writing .internal-link::after, .writing.writing span:not(.cm-link) .cm-underline::after { - content: "\e819"; -} -.writing.writing .external-link::after { - content: "\e818"; -} -.writing.writing, .writing.writing.hcl, .writing.writing .hcl { - --header-border-line-height: 0; - --h1-border-line-height: var(--header-border-line-height); - --h2-border-line-height: var(--header-border-line-height); - --h3-border-line-height: var(--header-border-line-height); - --h4-border-line-height: var(--header-border-line-height); - --h5-border-line-height: var(--header-border-line-height); - --h6-border-line-height: var(--header-border-line-height); -} -.writing.writing .markdown-preview-section, .writing.writing .cm-s-obsidian, .writing.writing.markdown-preview-view, .writing.writing.cm-s-obsidian { - text-align: justify; -} -.writing.writing .markdown-preview-view pre, .writing.writing.markdown-preview-view pre, .writing.writing .HyperMD-codeblock:not(.cm-formatting-code-block) { - border-left: 5px solid var(--code-bg); - border-right: 5px solid var(--code-text); - filter: saturate(70%); -} -.writing.writing .footnote-link, .writing.writing .cm-inline-footnote, .writing.writing .cm-inline-footnote-end, .writing.writing .cm-inline-footnote-end + .cm-link { - color: var(--inactive); -} -.writing.writing .footnote-link:hover, .writing.writing .cm-inline-footnote:hover, .writing.writing .cm-inline-footnote-end:hover, .writing.writing .cm-inline-footnote-end + .cm-link:hover { - background-color: var(--link-background-hover); -} - -.writing-document:not(.is-mobile), -.writing-document.is-tablet.is-tablet { - /* Fix embeds */ - /* Embed */ - /* .markdown-preview-section { min-height: 100% !important; } */ -} -.writing-document:not(.is-mobile) .markdown-source-view.mod-cm6 .cm-scroller, -.writing-document.is-tablet.is-tablet .markdown-source-view.mod-cm6 .cm-scroller { - padding: 0; -} -.writing-document:not(.is-mobile) .is-live-preview .HyperMD-header::before, -.writing-document.is-tablet.is-tablet .is-live-preview .HyperMD-header::before { - margin-left: -10px; - margin-right: 15px; -} -.writing-document:not(.is-mobile) div:not(.workspace-tabs):not(.markdown-embed-content) > :is(.markdown-preview-view, .cm-editor):not(.kanban-plugin__markdown-preview-view):not(.BC-Matrix):not(.community-plugin-readme), -.writing-document.is-tablet.is-tablet div:not(.workspace-tabs):not(.markdown-embed-content) > :is(.markdown-preview-view, .cm-editor):not(.kanban-plugin__markdown-preview-view):not(.BC-Matrix):not(.community-plugin-readme) { - background: var(--td); - padding: 0; -} -.writing-document:not(.is-mobile) :not(.markdown-embed-content) .markdown-preview-section:not(.kanban-plugin__markdown-preview-view), -.writing-document:not(.is-mobile) .view-content .cm-s-obsidian > .cm-editor .cm-contentContainer, -.writing-document.is-tablet.is-tablet :not(.markdown-embed-content) .markdown-preview-section:not(.kanban-plugin__markdown-preview-view), -.writing-document.is-tablet.is-tablet .view-content .cm-s-obsidian > .cm-editor .cm-contentContainer { - --padding: 10px; - background: var(--note, var(--background-primary)); - box-shadow: 0 0 20px var(--outline, var(--background-box-shadow)); - max-width: calc(var(--file-line-width) + var(--padding)); - height: auto; - padding: 0 var(--padding); - border-radius: var(--radius-l); -} -.writing-document:not(.is-mobile) .markdown-embed.markdown-embed.markdown-embed .markdown-preview-section, -.writing-document.is-tablet.is-tablet .markdown-embed.markdown-embed.markdown-embed .markdown-preview-section { - padding: unset; - box-shadow: unset; -} - -.paper { - --paper-edges-note: 0 0 60px var(--outline) inset; - --paper-edges-ui: 0 0 25px var(--outline) inset; - --file-header-background: transparent; - --pane-background: transparent; -} -.paper, .paper .modal.mod-settings .vertical-tab-content-container, .paper .workspace-split:not(.mod-left-split, .mod-right-split) .workspace-leaf-content[data-type=markdown], .paper .workspace-leaf-content[data-type=graph] > canvas, .paper .workspace-drawer-inner, .paper .modal, .paper .community-plugin-search, .paper .prompt, .paper .kanban-plugin__lane.kanban-plugin__lane { - box-shadow: var(--paper-edges-note); -} -.paper .workspace-tabs, .paper .modal.mod-settings .vertical-tab-header { - box-shadow: var(--paper-edges-ui); -} -.paper .CodeMirror-gutter.CodeMirror-linenumbers, .paper .CodeMirror-gutter.CodeMirror-foldgutter, .paper .markdown-source-view.mod-cm6 .cm-gutters, .paper .workspace-leaf:not(.mod-active) .workspace-tab-header-container, .paper .workspace-tabs .workspace-leaf, .paper .workspace-tab-header-container, .paper .horizontal-tab-content, .paper .vertical-tab-content, .paper .horizontal-tab-nav-item:not(.is-active), .paper .vertical-tab-nav-item:not(.is-active) { - background: transparent; -} - -.wide, -.note-width-wide { - --file-line-width: 100%; -} - -.readable, -.note-width-readable { - --file-line-width: 700px; - --page-width: 700px; -} -.readable.markdown-source-view.mod-cm6 .cm-sizer, .readable .markdown-source-view.mod-cm6 .cm-scroller .cm-sizer, .readable .markdown-preview-sizer, -.note-width-readable.markdown-source-view.mod-cm6 .cm-sizer, -.note-width-readable .markdown-source-view.mod-cm6 .cm-scroller .cm-sizer, -.note-width-readable .markdown-preview-sizer { - max-width: var(--file-line-width); - margin: auto; -} - -.hide-outline-symbol { - --outline-symbol: ""; - --outline-arrow-visibility: visible; - --outline-symbol-padding-right: 0; - --outline-arrow-margin: 0; -} - -.titlebar-colors.titlebar-colors.titlebar-colors { - --titlebar-text-color: var(--inactive); - --titlebar-text-color-focused: var(--text-dl); - --titlebar-background: var(--dark-accent); - --titlebar-background-focused: var(--dark-accent); - --titlebar-bubble-colors: var(--outline); - --sidebar-tab-background-color: var(--note); - --tab-text-color: var(--text-dl); - --tab-text-color-focused: var(--text-dl); - --tab-container-background: var(--dark-accent); - --tab-font-weight: 500; - --tab-font-weight-active: 900; - --tab-outline-width: 0; - --tab-divider-color: var(--td); -} -.titlebar-colors.titlebar-colors.titlebar-colors .workspace-tab-header.is-active { - --sidebar-tab-color-hover: var(--text); - --sidebar-icon-color: var(--text); -} -.titlebar-colors.titlebar-colors.titlebar-colors.theme-light { - --sidebar-icon-color-active: var(--text); -} -.titlebar-colors.titlebar-colors.titlebar-colors .sidebar-toggle-button, .titlebar-colors.titlebar-colors.titlebar-colors .workspace-tabs.mod-top .workspace-tab-header-container, .titlebar-colors.titlebar-colors.titlebar-colors .workspace-tab-header-container .workspace-tab-header-inner-icon { - --sidebar-icon-color: var(--text-on-accent); - --icon-color: var(--text-dl); -} -.titlebar-colors.titlebar-colors.titlebar-colors :is(.mod-left-split, .mod-right-split) .workspace-tab-header.is-active, .titlebar-colors.titlebar-colors.titlebar-colors :is(.mod-left-split, .mod-right-split) .workspace-tab-header .workspace-tab-header-inner-icon { - --tab-text-color-focused-active-current: var(--text); -} - -.titlebar-bubbles.titlebar-bubbles.titlebar-bubbles { - --tab-outline-width: 0; - --titlebar-bubble-colors: #0b0f13; - --titlebar-bubble-colors-inactive: #0b0f1350; - --tab-text-color-focused-active: var(--text); - --tab-divider-color: transparent; -} - -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) { - --tab-radius: var(--radius-m); - --tab-radius-active: var(--radius-m); - --tab-text-padding: 3px 5px; - --tab-text-padding-inner: 1px 3px; - --tab-gap: 0 10px; - --tab-text-color-focused-active-current: var(--text); - --tab-curve: 0; -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header-container-inner, .titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header-container { - align-items: center; - align-content: center; - gap: var(--size-2-3); -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header:not(.is-active) .workspace-tab-header-inner, .titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header-container-inner, .titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header-inner { - margin: unset; - padding: var(--tab-text-padding); -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header { - box-shadow: 2px 2px 0 var(--titlebar-bubble-colors); - border: 2px solid var(--titlebar-bubble-colors); - padding: var(--tab-text-padding-inner); - --sidebar-tab-background-color-hover: transparent; -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header:not(.is-active) { - --titlebar-bubble-colors: var(--titlebar-bubble-colors-inactive); -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .mod-stacked .workspace-tab-header { - border: none; -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header:not(.is-active):hover { - background-color: var(--titlebar-bubble-colors-inactive); -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner { - background-color: unset; -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab-header-new-tab { - padding: 0; -} -.titlebar-bubbles :is(.mod-left-split, .mod-right-split, .mod-root) .workspace-tab:not(.mod-stacked) .workspace-tab-header:not(.is-active) .workspace-tab-header-inner { - color: var(--text-on-accent); -} - -.tab-auto { - --tab-width: auto; - --tab-max-width: 100%; -} -.tab-auto .workspace .mod-root .workspace-tab-header { - flex: unset; -} - -.tab-wide { - --tab-width: auto; - --tab-max-width: 100%; -} -.tab-wide .workspace .mod-root .workspace-tab-header, .tab-wide .workspace-tab-header-container-inner { - flex: auto; -} -.tab-wide .workspace-tab-header-spacer { - display: none; -} - -.tag-notion.tag-notion { - --tag-radius: 5px; - --tag-border-radius: 5px; -} - -.tag-bubble.tag-bubble { - --tag-radius: 25px; - --tag-border-radius: 25px; -} - -.tag-outline { - --tag-border-width: 2px; -} -.tag-outline.tag-outline { - --tag-background: transparent; - --tag-color: var(--tag-text); -} - -.tag-text.tag-text { - --tag-background: transparent; - --tag-color: var(--lite-accent); - --tag-padding: 0; - --tag-padding-x: 0; - --tag-padding-y: 0; - --font-size: var(--font-size); -} - -/*Spaced Lists*/ -.spaced-lists li, -.s-li li { - margin-top: 10px; -} - -/*Live Preview Indent Style*/ -.alternate-indent .is-live-preview { - --indentation-guide-color: transparent; - --indentation-guide-color-active: transparent; - --list-color-1: var(--indentation-guide-color); - --list-color-2: var(--indentation-guide-color); - --list-color-3: var(--indentation-guide-color); - --list-color-4: var(--indentation-guide-color); - --list-color-5: var(--indentation-guide-color); - --list-color-6: var(--indentation-guide-color); -} -.alternate-indent .is-live-preview .cm-hmd-list-indent { - margin-right: 5px; - margin-left: -2px; -} -.alternate-indent .is-live-preview .HyperMD-list-line-2 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-1); -} -.alternate-indent .is-live-preview .HyperMD-list-line-3 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-2); -} -.alternate-indent .is-live-preview .HyperMD-list-line-4 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-3); -} -.alternate-indent .is-live-preview .HyperMD-list-line-5 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-4); -} -.alternate-indent .is-live-preview .HyperMD-list-line-6 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-5); -} -.alternate-indent .is-live-preview .HyperMD-list-line-7 .cm-hmd-list-indent { - background-color: var(--theme-rainbow-6); -} -.alternate-indent .is-live-preview .HyperMD-list-line-8 .cm-hmd-list-indent { - background-color: var(--rainbow-1); -} -.alternate-indent .is-live-preview .HyperMD-list-line-9 .cm-hmd-list-indent { - background-color: var(--rainbow-2); -} -.alternate-indent .is-live-preview .HyperMD-list-line-10 .cm-hmd-list-indent { - background-color: var(--rainbow-3); -} -.alternate-indent .is-live-preview .HyperMD-list-line-11 .cm-hmd-list-indent { - background-color: var(--rainbow-4); -} -.alternate-indent .is-live-preview .HyperMD-list-line-12 .cm-hmd-list-indent { - background-color: var(--rainbow-5); -} -.alternate-indent .is-live-preview .HyperMD-list-line-13 .cm-hmd-list-indent { - background-color: var(--rainbow-6); -} -.alternate-indent .is-live-preview .HyperMD-list-line-2, .alternate-indent .is-live-preview .HyperMD-list-line-3, .alternate-indent .is-live-preview .HyperMD-list-line-4, .alternate-indent .is-live-preview .HyperMD-list-line-5, .alternate-indent .is-live-preview .HyperMD-list-line-6, .alternate-indent .is-live-preview .HyperMD-list-line-7, .alternate-indent .is-live-preview .HyperMD-list-line-8, .alternate-indent .is-live-preview .HyperMD-list-line-9, .alternate-indent .is-live-preview .HyperMD-list-line-10, .alternate-indent .is-live-preview .HyperMD-list-line-11, .alternate-indent .is-live-preview .HyperMD-list-line-12, .alternate-indent .is-live-preview .HyperMD-list-line-13 { - --collapse-icon-color: var(--text-dl); - --collapse-icon-color-collapsed: var(--text-dl); -} - -.list-lines-color.list-lines-color { - --list-color-1: var(--rainbow-1); - --list-color-2: var(--rainbow-2); - --list-color-3: var(--rainbow-3); - --list-color-4: var(--rainbow-4); - --list-color-5: var(--rainbow-5); - --list-color-6: var(--rainbow-6); -} - -.list-bullet-color.list-bullet-color { - --list-bullet-color-1: var(--rainbow-1); - --list-bullet-color-2: var(--rainbow-2); - --list-bullet-color-3: var(--rainbow-3); - --list-bullet-color-4: var(--rainbow-4); - --list-bullet-color-5: var(--rainbow-5); - --list-bullet-color-6: var(--rainbow-6); -} -.list-bullet-color.list-bullet-color :is(ul, ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-1 .cm-formatting-list::before { - color: var(--list-bullet-color-1); -} -.list-bullet-color.list-bullet-color :is(ul ul, ol ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-2 .cm-formatting-list::before { - color: var(--list-bullet-color-2); -} -.list-bullet-color.list-bullet-color :is(ul ul ul, ol ol ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-3 .cm-formatting-list::before { - color: var(--list-bullet-color-3); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul, ol ol ol ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-4 .cm-formatting-list::before { - color: var(--list-bullet-color-4); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul ul, ol ol ol ol ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-5 .cm-formatting-list::before { - color: var(--list-bullet-color-5); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul ul ul, ol ol ol ol ol ol) li::before, .list-bullet-color.list-bullet-color .HyperMD-list-line-6 .cm-formatting-list::before { - color: var(--list-bullet-color-6); -} -.list-bullet-color.list-bullet-color :is(ul, ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-1 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-1); -} -.list-bullet-color.list-bullet-color :is(ul ul, ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-2 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-2); -} -.list-bullet-color.list-bullet-color :is(ul ul ul, ol ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-3 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-3); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul, ol ol ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-4 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-4); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul ul, ol ol ol ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-5 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-5); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul ul ul, ol ol ol ol ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-6 .task-list-item-checkbox { - --checkbox-border-color: var(--rainbow-6); -} -.list-bullet-color.list-bullet-color :is(ul ul ul ul ul ul ul, ol ol ol ol ol ol ol) li .task-list-item-checkbox, .list-bullet-color.list-bullet-color .HyperMD-list-line-7 .task-list-item-checkbox { - --checkbox-border-color: var(--accent); -} - -.list-default-bullet { - --list-marker-color: var(--text-faint); - --list-marker-color-hover: var(--text-muted); - --list-marker-color-collapsed: var(--inactive); - --list-bullet-border: none; - --list-bullet-radius: 50%; - --list-bullet-size: 0.4em; - --list-bullet-transform: none; -} - -.list-neon { - --neon: 0 0 5px; - --neon-wide: -2px 0 10px; - --indentation-guide-color-active: var(--text-dl); - --list-color-1: var(--rainbow-1); - --list-color-2: var(--rainbow-2); - --list-color-3: var(--rainbow-3); - --list-color-4: var(--rainbow-4); - --list-color-5: var(--rainbow-5); - --list-color-6: var(--rainbow-6); - --list-shadow-color-1: var(--neon) var(--rainbow-1), var(--neon-wide) var(--rainbow-1); - --list-shadow-color-2: var(--neon) var(--rainbow-2), var(--neon-wide) var(--rainbow-2); - --list-shadow-color-3: var(--neon) var(--rainbow-3), var(--neon-wide) var(--rainbow-3); - --list-shadow-color-4: var(--neon) var(--rainbow-4), var(--neon-wide) var(--rainbow-4); - --list-shadow-color-5: var(--neon) var(--rainbow-5), var(--neon-wide) var(--rainbow-5); - --list-shadow-color-6: var(--neon) var(--rainbow-6), var(--neon-wide) var(--rainbow-6); -} -.list-neon .cm-hmd-list-indent .cm-indent::before { - width: 0; -} -.list-neon :is(ul ul, ol ol)::before, .list-neon .cm-indent::before { - box-shadow: var(--list-shadow-color-1); -} -.list-neon :is(ul ul ul, ol ol ol)::before, .list-neon .cm-indent:nth-child(2)::before { - box-shadow: var(--list-shadow-color-2); -} -.list-neon :is(ul ul ul ul, ol ol ol ol)::before, .list-neon .cm-indent:nth-child(3)::before { - box-shadow: var(--list-shadow-color-3); -} -.list-neon :is(ul ul ul ul ul, ol ol ol ol ol)::before, .list-neon .cm-indent:nth-child(4)::before { - box-shadow: var(--list-shadow-color-4); -} -.list-neon :is(ul ul ul ul ul ul, ol ol ol ol ol ol)::before, .list-neon .cm-indent:nth-child(5)::before { - box-shadow: var(--list-shadow-color-5); -} -.list-neon :is(ul ul ul ul ul ul ul, ol ol ol ol ol ol ol)::before, .list-neon .cm-indent:nth-child(6)::before { - box-shadow: var(--list-shadow-color-6); -} - -.list-bullet-side-lines .markdown-rendered { - --indentation-guide-color: transparent; - --list-color-1: var(--indentation-guide-color); - --list-color-2: var(--indentation-guide-color); - --list-color-3: var(--indentation-guide-color); - --list-color-4: var(--indentation-guide-color); - --list-color-5: var(--indentation-guide-color); - --list-color-6: var(--indentation-guide-color); -} -.list-bullet-side-lines :is(ul, ol) li { - border-left: var(--indentation-guide-width) solid var(--accent); - padding-left: 3px; - --list-numbered-color: var(--headers); -} -.list-bullet-side-lines :is(ul, ol) > li:nth-child(even) { - border-left-color: var(--accent2); - --list-numbered-color: var(--accent2); -} -.list-bullet-side-lines :is(ul, ol) > li:nth-child(even)::before { - --list-marker-color: var(--accent2); -} - -/*--Kanban--*/ -/*Credit: https://github.com/Braweria/Spectrum*/ -.kanban { - --list-indent: -15px; -} - -/*Hide Bullet*/ -.kanban ul { - list-style: none; -} - -.kanban ul li::before { - content: ""; - margin: 0px; - padding: 0; - float: unset; -} - -.kanban.kanban li > ul::before { - left: 0; -} - -.kanban :is(ul, ol) { - display: flex; - flex-direction: row; - border-radius: 0; - flex-wrap: wrap; -} -.kanban :is(ul, ol) li { - flex: 1 1 25%; - margin-left: 0px; - margin-right: 10px; - border: 0; -} - -.kanban ol li { - margin-left: 15px; -} - -.kanban ul ul, -.kanban ol ol { - display: flex; - flex-direction: column; - justify-content: center; - margin-right: 20px; - background: var(--td); -} -.kanban ul ul > li, -.kanban ol ol > li { - margin-left: 20px; - margin-right: 0; - width: 100%; -} - -.kanban.markdown-rendered .list-collapse-indicator { - margin-left: -15px; - padding-right: 0px; -} - -.kanban.markdown-rendered ol .list-collapse-indicator { - margin-left: -30px; -} - -.kanban ul > li.task-list-item.task-list-item .task-list-item-checkbox { - margin-inline-start: calc(var(--checkbox-size) * -0.45); -} -.kanban ul > li.task-list-item.task-list-item .list-collapse-indicator { - margin-left: -18px; -} - -.kanban .markdown-rendered ul.has-list-bullet li p:first-of-type { - margin-block-start: 0; -} - -/*Remove Note Titlebar Gradient*/ -.file-header-gradient { - --file-header-background: linear-gradient(to right, var(--file-header-left-color), var(--file-header-right-color)); -} - -body { - --note-title-border-color: var(--headers); -} - -.note-title-underline.note-title-underline .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, .note-title-underline.note-title-underline .workspace-leaf-content .view-header { - border-bottom: 4px solid transparent; -} -.note-title-underline.note-title-underline .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, .note-title-underline.note-title-underline .workspace-leaf.mod-active .view-header { - border-bottom-color: var(--note-title-border-color); -} -.note-title-underline.note-title-underline .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { - border-right: 4px solid var(--note-title-border-color); -} - -.note-title-overline.note-title-overline .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, .note-title-overline.note-title-overline .workspace-leaf-content .view-header { - border-top: 4px solid transparent; -} -.note-title-overline.note-title-overline .workspace-split.mod-root > .workspace-leaf:first-of-type:last-of-type .view-header, .note-title-overline.note-title-overline .workspace-leaf.mod-active .view-header { - border-top-color: var(--note-title-border-color); -} -.note-title-overline.note-title-overline .workspace .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header { - border-left: 4px solid var(--note-title-border-color); -} - -.sidebar-tabs-wide :is(.mod-left-split, .mod-right-split) .workspace-tab-header-container { - padding-right: 0; -} -.sidebar-tabs-wide :is(.mod-left-split, .mod-right-split) .workspace-tab-header-container-inner { - flex: 1 0 auto; -} -.sidebar-tabs-wide :is(.mod-left-split, .mod-right-split) .workspace-tab-header { - width: 100%; -} -.sidebar-tabs-wide :is(.mod-left-split, .mod-right-split) .workspace-tab-header-inner { - justify-content: center; -} -.sidebar-tabs-wide :is(.mod-left-split, .mod-right-split) .workspace-tab-header-spacer { - display: none; -} - -.sidebar-tabs-underline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split), -.sidebar-tabs-overline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split) { - --tab-outline-width: 0; - --sidebar-icon-color: var(--inactive); - --sidebar-icon-color-active: var(--headers); - --icon-color-focused: var(--text); - --sidebar-tab-border-color: var(--inactive); - --sidebar-tab-border-color-active: var(--headers); - --sidebar-tab-border-width: 4px; - --sidebar-tab-background-color: var(--note); -} -.sidebar-tabs-underline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split) .is-active.is-active, -.sidebar-tabs-overline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split) .is-active.is-active { - --sidebar-tab-border-color: var(--sidebar-icon-color-active); - --tab-text-color-focused-active: var(--text); - --tab-text-color-focused-active-current: var(--text); -} -.sidebar-tabs-underline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split) .is-active.is-active:hover, -.sidebar-tabs-overline :is(.mod-left-split.mod-left-split, .mod-right-split.mod-right-split) .is-active.is-active:hover { - --sidebar-icon-color-active: var(--text); - --sidebar-tab-border-color: var(--sidebar-tab-border-color-active); - --sidebar-tab-background-color-hover: var(--accent); -} - -.sidebar-tabs-overline :is(.mod-left-split, .mod-right-split) .workspace-tab-header-inner { - border-bottom: unset; - border-top: var(--sidebar-tab-border-width) solid var(--sidebar-tab-border-color); -} - -.sidebar-tabs-tabular :is(.mod-left-split, .mod-right-split, .workspace-ribbon.mod-left) { - --sidebar-tab-background-color: var(--note); - --sidebar-tab-border-width: 0; - --sidebar-tab-padding: 0 var(--size-4-4); - --sidebar-icon-color-active: var(--lite-accent); - --sidebar-icon-color: var(--soft-text); - --tab-outline-width: 0; - --tab-container-background: var(--outer-bar); - --titlebar-background: var(--outer-bar); -} - -.navbar-bottom .nav-header { - display: flex; - position: absolute; - bottom: 5px; - z-index: 2; - width: 100%; - justify-content: center; -} -.navbar-bottom .nav-header .nav-buttons-container { - padding: 2px 0; - align-items: center; - background: var(--note); - border: 2px solid var(--outline); - box-shadow: var(--shadow-s); - width: fit-content; -} -.navbar-bottom .workspace-tabs .backlink-pane, -.navbar-bottom .workspace-tabs .search-result-container.mod-global-search, .navbar-bottom .workspace-tabs .nav-header + div:is(.tag-container, .nav-files-container) { - margin-bottom: 60px; - background: var(--side-bar); - box-shadow: 4px 4px 5px var(--outline); - padding-bottom: 20px; - padding-top: 10px; -} -.navbar-bottom .nav-files-container { - background: var(--outer-bar); -} -.navbar-bottom .nav-header ~ .search-input-container { - margin: 15px auto; -} -.navbar-bottom .mod-global-search { - padding-top: 0; -} - -.headings-center, -.hc { - --header-text-align: center; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); - --header-border-line-align: auto; -} - -.headings-left { - --header-text-align: left; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); -} - -.headings-right { - --header-text-align: right; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); - --header-border-line-align: auto 0 auto auto; -} - -.hcl, -.headings-center-lines { - --header-text-align: center; - --h1-text-align: var(--header-text-align); - --h2-text-align: var(--header-text-align); - --h3-text-align: var(--header-text-align); - --h4-text-align: var(--header-text-align); - --h5-text-align: var(--header-text-align); - --h6-text-align: var(--header-text-align); - --h1-border-line-height: 6px; - --h2-border-line-height: 5px; - --h3-border-line-height: 4px; - --h4-border-line-height: 3px; - --h5-border-line-height: 3px; - --h6-border-line-height: 3px; - --header-border-line-left: block; -} -.hcl .HyperMD-header.cm-line, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6), -.headings-center-lines .HyperMD-header.cm-line, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6) { - display: flex; - width: 100%; - align-items: center; -} -.hcl .HyperMD-header.cm-line:not(.HyperMD-header) > :not(.collapse-indicator), .hcl .HyperMD-header.cm-line > :not(.collapse-indicator):nth-child(2):not(:last-child):not(:first-child), -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6):not(.HyperMD-header) > :not(.collapse-indicator), -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6) > :not(.collapse-indicator):nth-child(2):not(:last-child):not(:first-child), -.headings-center-lines .HyperMD-header.cm-line:not(.HyperMD-header) > :not(.collapse-indicator), -.headings-center-lines .HyperMD-header.cm-line > :not(.collapse-indicator):nth-child(2):not(:last-child):not(:first-child), -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6):not(.HyperMD-header) > :not(.collapse-indicator), -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6) > :not(.collapse-indicator):nth-child(2):not(:last-child):not(:first-child) { - margin-left: 10px; - margin-right: 10px; -} -.hcl .HyperMD-header.cm-line:before, .hcl .HyperMD-header.cm-line:after, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6):before, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6):after, -.headings-center-lines .HyperMD-header.cm-line:before, -.headings-center-lines .HyperMD-header.cm-line:after, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6):before, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6):after { - flex: 1; -} -.hcl .HyperMD-header.cm-line:before, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6):before, -.headings-center-lines .HyperMD-header.cm-line:before, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6):before { - margin-right: 0.3em; -} -.hcl .HyperMD-header.cm-line:after, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6):after, -.headings-center-lines .HyperMD-header.cm-line:after, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6):after { - margin-left: 0.3em; -} -.hcl .HyperMD-header.cm-line sup, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6) sup, -.headings-center-lines .HyperMD-header.cm-line sup, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6) sup { - margin-top: -10.5px; -} -.hcl .HyperMD-header.cm-line sub, -.hcl :is(h1, -h2, -h3, -h4, -h5, -h6) sub, -.headings-center-lines .HyperMD-header.cm-line sub, -.headings-center-lines :is(h1, -h2, -h3, -h4, -h5, -h6) sub { - margin-top: 10.5px; -} - -body { - --illusion-header-text: var(--text-dl); - --illusion-h1-background: var(--theme-rainbow-1); - --illusion-h2-background: var(--theme-rainbow-2); - --illusion-h3-background: var(--theme-rainbow-3); - --illusion-h4-background: var(--theme-rainbow-4); - --illusion-h5-background: var(--theme-rainbow-5); - --illusion-h6-background: var(--theme-rainbow-6); - --illusion-border-line-height: 0; - --illusion-box-shadow: var(--shadow-l); - --illusion-header-padding: 5px 25px; - --illusion-header-arrow-icon-size: 13px; - --illusion-header-arrow-color: var(--illusion-header-text); -} - -.illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading], .illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header), .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading], .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header) { - --h1-background: var(--illusion-h1-background); - --h2-background: var(--illusion-h2-background); - --h3-background: var(--illusion-h3-background); - --h4-background: var(--illusion-h4-background); - --h5-background: var(--illusion-h5-background); - --h6-background: var(--illusion-h6-background); - --header-border-line-height: var(--illusion-border-line-height); - --h1-border-line-height: var(--illusion-border-line-height); - --h2-border-line-height: var(--illusion-border-line-height); - --h3-border-line-height: var(--illusion-border-line-height); - --h4-border-line-height: var(--illusion-border-line-height); - --h5-border-line-height: var(--illusion-border-line-height); - --h6-border-line-height: var(--illusion-border-line-height); - --headers: var(--illusion-header-text); - --h1-color: var(--illusion-header-text); - --h2-color: var(--illusion-header-text); - --h3-color: var(--illusion-header-text); - --h4-color: var(--illusion-header-text); - --h5-color: var(--illusion-header-text); - --h6-color: var(--illusion-header-text); - --heading-formatting: var(--illusion-header-text); - --header-shadow: var(--illusion-box-shadow); - --h1-shadow: var(--illusion-box-shadow); - --h2-shadow: var(--illusion-box-shadow); - --h3-shadow: var(--illusion-box-shadow); - --h4-shadow: var(--illusion-box-shadow); - --h5-shadow: var(--illusion-box-shadow); - --h6-shadow: var(--illusion-box-shadow); - --header-padding: var(--illusion-header-padding); - --h1-padding: var(--illusion-header-padding); - --h2-padding: var(--illusion-header-padding); - --h3-padding: var(--illusion-header-padding); - --h4-padding: var(--illusion-header-padding); - --h5-padding: var(--illusion-header-padding); - --h6-padding: var(--illusion-header-padding); - --collapse-icon-color: var(--headers); - --collapse-icon-color-collapsed: var(--text-dl); - --header-arrow-icon-color: var(--text-dl); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-color: var(--illusion-header-text); - display: flow-root; -} -.illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading] [class*=cm-formatting], .illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading] .cm-foldPlaceholder, .illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header) [class*=cm-formatting], .illusion.illusion :is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header) .cm-foldPlaceholder, .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading] [class*=cm-formatting], .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(h1, h2, h3, h4, h5, h6)[data-heading] .cm-foldPlaceholder, .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header) [class*=cm-formatting], .illusion.illusion:is(.markdown-preview-view, .is-live-preview) :is(.is-live-preview .HyperMD-header) .cm-foldPlaceholder { - color: var(--illusion-header-text); -} - -.illusion-h1 :is(.markdown-preview-view, .is-live-preview) h1[data-heading], .illusion-h1 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-1, .illusion-h1:is(.markdown-preview-view, .is-live-preview) h1[data-heading], .illusion-h1:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-1 { - --h1-background: var(--illusion-h1-background); - --h1-color: var(--illusion-header-text); - --h1-padding: var(--illusion-header-padding); - --h1-border-line-height: var(--illusion-border-line-height); - --h1-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.illusion-h2 :is(.markdown-preview-view, .is-live-preview) h2[data-heading], .illusion-h2 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-2, .illusion-h2:is(.markdown-preview-view, .is-live-preview) h2[data-heading], .illusion-h2:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-2 { - --h2-background: var(--illusion-h2-background); - --h2-color: var(--illusion-header-text); - --h2-padding: var(--illusion-header-padding); - --h2-border-line-height: var(--illusion-border-line-height); - --h2-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.illusion-h3 :is(.markdown-preview-view, .is-live-preview) h3[data-heading], .illusion-h3 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-3, .illusion-h3:is(.markdown-preview-view, .is-live-preview) h3[data-heading], .illusion-h3:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-3 { - --h3-background: var(--illusion-h3-background); - --h3-color: var(--illusion-header-text); - --h3-padding: var(--illusion-header-padding); - --h3-border-line-height: var(--illusion-border-line-height); - --h3-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.illusion-h4 :is(.markdown-preview-view, .is-live-preview) h4[data-heading], .illusion-h4 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-4, .illusion-h4:is(.markdown-preview-view, .is-live-preview) h4[data-heading], .illusion-h4:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-4 { - --h4-background: var(--illusion-h4-background); - --h4-color: var(--illusion-header-text); - --h4-padding: var(--illusion-header-padding); - --h4-border-line-height: var(--illusion-border-line-height); - --h4-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.illusion-h5 :is(.markdown-preview-view, .is-live-preview) h5[data-heading], .illusion-h5 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-5, .illusion-h5:is(.markdown-preview-view, .is-live-preview) h5[data-heading], .illusion-h5:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-5 { - --h5-background: var(--illusion-h5-background); - --h5-color: var(--illusion-header-text); - --h5-padding: var(--illusion-header-padding); - --h5-border-line-height: var(--illusion-border-line-height); - --h6-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.illusion-h6 :is(.markdown-preview-view, .is-live-preview) h6[data-heading], .illusion-h6 :is(.markdown-preview-view, .is-live-preview) .HyperMD-header-6, .illusion-h6:is(.markdown-preview-view, .is-live-preview) h6[data-heading], .illusion-h6:is(.markdown-preview-view, .is-live-preview) .HyperMD-header-6 { - --h6-background: var(--illusion-h6-background); - --h6-color: var(--illusion-header-text); - --h6-padding: var(--illusion-header-padding); - --h6-border-line-height: var(--illusion-border-line-height); - --h6-shadow: var(--illusion-box-shadow); - --header-arrow-icon-size: var(--illusion-header-arrow-icon-size); - --header-arrow-icon-color: var(--illusion-header-text); - --collapse-icon-color-collapsed: var(--accent-text); -} - -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header.HyperMD-header:hover .cm-header.cm-header:not(.cm-header-6)::before { - margin-top: 0px; -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-1 { - --indicator-heading-text: "H1"; - --indicator-heading-size: var(--h1-size); -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-2 { - --indicator-heading-text: "H2"; - --indicator-heading-size: var(--h2-size); -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-3 { - --indicator-heading-text: "H3"; - --indicator-heading-size: var(--h3-size); -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-4 { - --indicator-heading-text: "H4"; - --indicator-heading-size: var(--h4-size); -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-5 { - --indicator-heading-text: "H5"; - --indicator-heading-size: var(--h5-size); -} -.heading-indicator .is-live-preview .HyperMD-header.HyperMD-header-6 { - --indicator-heading-text: "H6"; - --indicator-heading-size: var(--h6-size); -} -.heading-indicator .is-live-preview .HyperMD-header .cm-fold-indicator::before { - float: left; - font-family: var(--font-monospace); - color: var(--footnote); - font-size: 12px; - content: var(--indicator-heading-text); - margin-left: -18px; - margin-top: calc(var(--indicator-heading-size) / 2.5); -} -.heading-indicator .is-live-preview .HyperMD-header:hover .cm-fold-indicator::before { - margin-top: -5px; -} - -.heading-color-override h1 > *, .heading-color-override h2 > *, .heading-color-override h3 > *, .heading-color-override h4 > *, .heading-color-override h5 > *, .heading-color-override h6 > *, .heading-color-override .cm-s-obsidian .cm-header > * { - color: var(--headers); -} - -.h-line.h-line, -.hide-header-underline.hide-header-underline, -:is(.h-line, .hide-header-underline) div { - --header-border-line-height: 0; - --h1-border-line-height: var(--header-border-line-height); - --h2-border-line-height: var(--header-border-line-height); - --h3-border-line-height: var(--header-border-line-height); - --h4-border-line-height: var(--header-border-line-height); - --h5-border-line-height: var(--header-border-line-height); - --h6-border-line-height: var(--header-border-line-height); -} - -.hide-header-underline-1 div { - --h1-border-line-height: 0; -} - -.hide-header-underline-2 div { - --h2-border-line-height: 0; -} - -.hide-header-underline-3 div { - --h3-border-line-height: 0; -} - -.hide-header-underline-4 div { - --h4-border-line-height: 0; -} - -.hide-header-underline-5 div { - --h5-border-line-height: 0; -} - -.hide-header-underline-6 div { - --h6-border-line-height: 0; -} - -.link-caps { - --link-transform: uppercase; -} - -.link-underline.link-underline { - --link-decoration-thickness: 2px; - --link-decoration-color: var(--text); - --link-decoration: underline; - --link-external-decoration: underline; -} - -.link-notion { - --link-border: 1px solid var(--hr); - --link-weight: 600; - --link-decoration: none; - --link-color: var(--text); - --link-external-color: var(--soft-text); -} - -.hr-no-icon.hr-no-icon div, -.hr-tog.hr-tog div { - --hr-icon-symbol: ; - --hr-image: ; -} - -.hr-center-vertically .hr { - --hr-thickness: 0; - --hr-alignment: -50%; -} -.hr-center-vertically .hr hr { - --hr-color: var(--hr); - --hr-thickness: 2px; -} - -.inline-title-style-heading { - --inline-title-size: var(--h1-size); - --inline-title-weight: var(--header-weight); - --inline-title-color: var(--h1-color); -} - -.inline-title-style-text.inline-title-style-text .inline-title { - --inline-title-font: var(--font-default); - --inline-title-size: var(--font-text-size); - --inline-title-weight: var(--font-bold); - --inline-title-color: var(--text-normal); -} - -.inline-title-small { - --inline-title-size: var(--font-ui-small); -} - -.inline-title-medium { - --inline-title-size: var(--font-ui-medium); -} - -.inline-title-font-normal { - --inline-title-size: var(--font-size); -} - -.inline-title-position-left { - --inline-title-position: left; -} - -.inline-title-position-center { - --inline-title-position: center; -} - -.inline-title-position-right { - --inline-title-position: right; -} - -.minimalist-workspace.minimalist-workspace { - --divider-color: transparent; - --scrollbar-thumb-bg: transparent; - --tab-outline-width: 0; - --tab-outline-color: transparent; -} - -.hide-resize-handle { - --divider-color: transparent; -} - -.hide-scrollbar { - --scrollbar-thumb-bg: transparent; -} - -.hide-tab-outline.hide-tab-outline { - --tab-outline-width: 0; - --tab-outline-color: transparent; -} - -.minimalist-workspace .nav-folder.mod-root > .nav-folder-title:not(:hover), -.hide-vault-name .nav-folder.mod-root > .nav-folder-title:not(:hover) { - height: 6px; - opacity: 0; -} - -.minimalist-workspace .view-header:not(:hover):not(:focus-within), -.hide-note-title .view-header:not(:hover):not(:focus-within) { - position: absolute; - width: 100%; - opacity: 0; - z-index: 5; -} - -.minimalist-workspace .view-header:not(:hover):not(:focus-within) .view-header-icon, .minimalist-workspace .view-header:not(:hover):not(:focus-within) .view-header-nav-buttons, .minimalist-workspace .view-header:not(:hover):not(:focus-within) .view-actions, -.hide-note-title-icons .view-header:not(:hover):not(:focus-within) .view-header-icon, -.hide-note-title-icons .view-header:not(:hover):not(:focus-within) .view-header-nav-buttons, -.hide-note-title-icons .view-header:not(:hover):not(:focus-within) .view-actions { - opacity: 0; - width: 0; - padding: 0 5px; -} - -.minimalist-workspace .side-dock-ribbon:is(.mod-left, .mod-right):not(:hover), -.hide-sidebar-ribbon .side-dock-ribbon:is(.mod-left, .mod-right):not(:hover) { - opacity: 0; - flex: 0 0 10px; - padding: 0; -} - -.minimalist-workspace .side-dock-ribbon:is(.mod-left, .mod-right):not(:hover) :is(.side-dock-actions, .side-dock-settings), -.hide-sidebar-ribbon-icons .side-dock-ribbon:is(.mod-left, .mod-right):not(:hover) :is(.side-dock-actions, .side-dock-settings) { - display: none; -} - -.minimalist-workspace .titlebar:not(:hover), -.hide-titlebar .titlebar:not(:hover) { - width: 100%; - opacity: 0; - --titlebar-background: transparent; - --titlebar-background-focused: transparent; -} - -.minimalist-workspace .status-bar:not(:hover), -.hide-status-bar .status-bar:not(:hover) { - min-width: 100px; - padding: 0; - opacity: 0; - --icon-s: 0; - --status-bar-font-size: 0; - --status-bar-background: transparent; - --status-bar-border-color: transparent; - --status-bar-text-color: transparent; -} - -.minimalist-workspace .workspace-tab-header-container:not(:hover), -.hide-titlebar-tab .workspace-tab-header-container:not(:hover) { - height: 12px; - opacity: 0; -} - -.minimalist-workspace .nav-header:not(:hover) .nav-buttons-container, -.hide-nav-header .nav-header:not(:hover) .nav-buttons-container { - display: none; -} - -.minimalist-workspace .frontmatter-container:not(:hover), -.hide-frontmatter .frontmatter-container:not(:hover) { - height: 10px; - opacity: 0; -} -.minimalist-workspace .frontmatter-container:not(:hover) > *, -.hide-frontmatter .frontmatter-container:not(:hover) > * { - display: none; -} - -.minimalist-workspace .nav-folder .nav-folder-title, -.hide-file-explorer-icons .nav-folder .nav-folder-title { - --folder-icon: ""; - --file-icon-margin: 0; -} -.minimalist-workspace .nav-folder .nav-folder-title .nav-folder-title-content::before, -.hide-file-explorer-icons .nav-folder .nav-folder-title .nav-folder-title-content::before { - content: ""; - width: 0; -} -.minimalist-workspace .nav-file .nav-file-title, -.hide-file-explorer-icons .nav-file .nav-file-title { - --file-icon: ""; - --file-icon-margin: 0; -} -.minimalist-workspace .nav-file .nav-file-title .nav-file-title-content::before, -.hide-file-explorer-icons .nav-file .nav-file-title .nav-file-title-content::before { - content: ""; - width: 0; -} - -.background-image { - --background-image-url: url(); - --background-image-height: 50%; - --background-image-width: 50%; - --background-image-blur: 11px; - --background-image-shadow: var(--outline); - --background-image-opacity: 90%; - --background-image-sidebar-opacity: var(--background-image-opacity); - --background-image-note-padding: 20px; - --background-image-note-width: calc(var(--file-line-width) + var(--background-image-note-padding)); - --file-margins: 0 0; - --scrollbar-bg: rgba(var(--note-rgb)); -} -.background-image.theme-light { - --background-image-shadow: #0E0F1530; -} - -body.background-image:is(.theme-dark, .theme-light) .workspace { - background: var(--background-image-url); - background-repeat: no-repeat; - background-position: var(--background-image-width) var(--background-image-height); - background-size: cover; -} -body.background-image .workspace-tab-header-container, body.background-image .workspace > .workspace-leaf, body.background-image .workspace-split.mod-root .view-content, body.background-image .workspace-tabs .workspace-leaf { - backdrop-filter: blur(var(--background-image-blur)); -} -body.background-image .workspace-leaf-content[data-type=style-settings], body.background-image .kanban-plugin.kanban-plugin, body.background-image .markdown-preview-section.markdown-preview-section:not(.kanban-plugin__markdown-preview-view), body.background-image .cm-editor .cm-contentContainer, body.background-image .cm-editor .inline-title { - background: rgba(var(--note-rgb), var(--background-image-opacity)); -} -body.background-image .markdown-preview-section.markdown-preview-section:not(.kanban-plugin__markdown-preview-view), body.background-image .cm-editor .cm-contentContainer { - height: auto; -} -body.background-image.is-focused .workspace-leaf.mod-active .view-header, body.background-image .view-header, body.background-image .view-header-title-parent, body.background-image .view-header-title, body.background-image :is(.view-header-nav-buttons, .view-actions) > .clickable-icon, body.background-image .workspace-split:is(.mod-left-split, .mod-right-split) .workspace-tab-container, body.background-image .workspace-tabs { - background: rgba(var(--note-rgb), var(--background-image-sidebar-opacity)); -} -body.background-image .kanban-plugin.kanban-plugin, body.background-image .workspace > .workspace-split, body.background-image .workspace-split.mod-root .view-content, body.background-image .workspace-tabs .workspace-leaf, body.background-image.is-focused .workspace-tabs.mod-top, body.background-image .workspace-tabs.mod-top, body.background-image :is(.markdown-preview-view, .markdown-source-view) { - background: transparent; -} -body.background-image :is(.markdown-preview-view, -.markdown-source-view.mod-cm6 .cm-scroller) { - padding-top: 0; - padding-bottom: 0; -} -body.background-image .cm-editor .inline-title, body.background-image .markdown-preview-section, body.background-image .view-content .cm-s-obsidian > .cm-editor .cm-contentContainer { - height: auto; - padding: 0 var(--background-image-note-padding); - box-shadow: 0 0 20px var(--background-image-shadow); -} -body.background-image .cm-contentContainer .cm-gutter { - margin-left: calc(var(--background-image-note-padding) * -1); -} -body.background-image .markdown-embed-content .markdown-preview-section:not(.kanban-plugin__markdown-preview-view), body.background-image .popover.popover .markdown-preview-section { - box-shadow: unset; -} - -.sidebar-ribbon-float:not(.is-mobile) .side-dock-ribbon.mod-right, .sidebar-ribbon-float:not(.is-mobile) .side-dock-ribbon.mod-left, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon.mod-right, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon.mod-left { - position: absolute; - border: 1px solid var(--lines); - box-shadow: 4px 4px 0 var(--outline); - width: var(--ribbon-width); - top: var(--ribbon-float-top); - bottom: var(--ribbon-float-bottom); - --ribbon-background-collapsed: var(--ribbon-background) ; -} -.sidebar-ribbon-float:not(.is-mobile) .side-dock-ribbon.mod-right, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon.mod-right { - right: 10px; -} -.sidebar-ribbon-float:not(.is-mobile) .side-dock-ribbon.mod-left, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon.mod-left { - left: 10px; -} -.sidebar-ribbon-float:not(.is-mobile).sidebar-float-top, -.sidebar-ribbon-mini-float:not(.is-mobile).sidebar-float-top { - --ribbon-float-top: 45px; -} -.sidebar-ribbon-float:not(.is-mobile).sidebar-float-bottom, -.sidebar-ribbon-mini-float:not(.is-mobile).sidebar-float-bottom { - --ribbon-float-bottom: 45px; -} -.sidebar-ribbon-float:not(.is-mobile).sidebar-float-center .side-dock-ribbon.mod-right, .sidebar-ribbon-float:not(.is-mobile).sidebar-float-center .side-dock-ribbon.mod-left, -.sidebar-ribbon-mini-float:not(.is-mobile).sidebar-float-center .side-dock-ribbon.mod-right, -.sidebar-ribbon-mini-float:not(.is-mobile).sidebar-float-center .side-dock-ribbon.mod-left { - --ribbon-float-top: 50%; - transform: translate(0, -50%); -} -.sidebar-ribbon-float:not(.is-mobile) .side-dock-settings, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-settings { - border-top: var(--tab-outline-width) solid var(--tab-outline-color); -} -.sidebar-ribbon-float:not(.is-mobile) .sidebar-toggle-button, -.sidebar-ribbon-mini-float:not(.is-mobile) .sidebar-toggle-button { - position: relative; -} -.sidebar-ribbon-float:not(.is-mobile) .side-dock-actions, -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-actions { - margin-top: 0; -} - -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon:not(:hover) .sidebar-toggle-button.mod-left { - height: 0; - position: relative; - padding: 0 7px; - align-items: center; -} -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon:not(:hover) { - padding: calc(var(--icon-size) + 2px); - width: var(--ribbon-width); - animation-duration: 5s; - --tab-outline-width: 0; -} -.sidebar-ribbon-mini-float:not(.is-mobile) .side-dock-ribbon.mod-left:not(:hover) :is(.side-dock-actions, .side-dock-settings) { - display: none; -} - -.side-dock-ribbon { - text-align: center; - align-items: center; -} - -.slrvb-g { - --font: "Norwester", "Staatliches", "Racing Sans One", "Heavitas", "Playfair Display", serif; - --header-weight: 100; - --vault-name-font-size: 25px; - --vault-name-font-weight: 300; - --font-monospace: "Fira Code"; - --hr-icon-symbol: "🏴"; - --highlight: rgba(163, 188, 218, 0.3); - --hvr: rgba(129,155,199,0.25); - --hvr-active: rgba(163, 188, 218, 0.22); - --setting-item-heading-border: 2px solid var(--dark-accent); -} - -.theme-dark.slrvb-g, .theme-dark .slrvb-g { - --outer-bar: #0E0F15; - --dark-sidebar: #090C0E; - --side-bar: var(--note); - --note: #171B21; - --note-rgb: 23, 27, 33; - --accent-color: 81, 91, 113; - --accent: #515b71; - --lite-accent: #8e9ab4; - --dark-accent: #333A49; - --deep-dark-accent: #222731; - --accent2: #889FC3; - --accent2-lite: #cde2ff; - --headers: #9DB1CA; - --text: #AAB3CA; - --soft-text: #778495; - --code-text: #707a90; - --i-at: #5D7B98; - --footnote: #576571; - --inactive: #3c4a64; - --tag-text: #8690ab; - --folder-open: #F1F7FF; - --tag: #353d52; - --th: var(--dark-accent); - --table: #242b3d; - --highlight: rgba(101, 116, 135, 0.27); - --theme-rainbow-1: var(--lite-accent); - --theme-rainbow-2: var(--code-text); - --theme-rainbow-3: var(--accent); - --theme-rainbow-4: var(--inactive); - --theme-rainbow-5: var(--table); - --theme-rainbow-6: var(--aside-bg); -} - -.theme-light.slrvb-g, .theme-light .slrvb-g { - --outer-bar:#eef3fd; - --dark-sidebar: #F1F7FF; - --side-bar: var(--note); - --note: #f8fbff; - --note-rgb: 248, 251, 255; - --accent-color: 174, 189, 212; - --accent: #aebdd4; - --lite-accent: #a6aec7; - --dark-accent: #6e7a92; - --deep-dark-accent: #171C22; - --inactive: #C0C8D6; - --file-icon-color: #A6B4CC; - --folder: var(--headers); - --folder-open: var(--accent); - --headers: #6e7a92; - --text: #171C22; - --accent2: #404c62; - --accent2-lite: #000000; - --soft-text: #90a0c3; - --code-text: #8193b5; - --i-at: #8f9cbe; - --table: #ccd6eb; - --tag: #7485a3; - --tag-text: var(--tag); - --hr: #d6deea; - --theme-rainbow-1: var(--file-icon-color); - --theme-rainbow-2: var(--soft-text); - --theme-rainbow-3: var(--tag); - --theme-rainbow-4: var(--dark-accent); - --theme-rainbow-5: var(--accent2); - --theme-rainbow-6: var(--deep-dark-accent); -} - -/*----Theme: SlRvb Blue----*/ -.slrvb-b { - --font: "Recursive Sans Linear Static Black", "Oleo Script", "Calisto MT"; - /*Works, but if it doesn't, needs !important*/ - --font-monospace: "Fira Code"; - --highlight: rgba(46, 124, 214, 0.3); - --hvr: rgba(0, 137, 255, 0.4); - --hvr-active: rgba(60, 102, 168, 0.4); -} - -.theme-dark.slrvb-b, .theme-dark .slrvb-b { - --outer-bar: #0e0f15; - --dark-sidebar: #10161d; - --side-bar: var(--note); - --note: #1a1e24; - --note-rgb: 26, 30, 36; - --accent-color: 57, 77, 100; - --accent: #394d64; - --lite-accent: #6ca6e0; - --dark-accent: #293e64; - --deep-dark-accent: #1f283b; - --accent2: #4c78cc; - --accent2-lite: #4c87cc; - --headers: #2b71cd; - --text: #AAB3CA; - --soft-text: #6d7a9b; - --code-text: slategray; - --i-at: #5d7b98; - --footnote: #6e7e89; - --folder-open: #386ab6; - --file-icon-color: #63748d; - --code-bg: #232831; - --tag: var(--dark-accent); - --th: var(--dark-accent); - --td: #030a1495; - --hr: #3c5274; - --lines: #465164; - --theme-rainbow-1: var(--accent2); - --theme-rainbow-2: var(--headers); - --theme-rainbow-3: var(--dark-accent); - --theme-rainbow-4: var(--deep-dark-accent); - --theme-rainbow-5: var(--accent); - --theme-rainbow-6: var(--soft-text); -} - -.theme-light.slrvb-b, .theme-light .slrvb-b { - --outer-bar: #eef3fd; - --dark-sidebar: #f1f5ff; - --side-bar: var(--note); - --note: #f8fbff; - --note-rgb: 248, 251, 255; - --accent-color: 100, 160, 219; - --accent: #64a0db; - --lite-accent: #5174a3; - --dark-accent: #517cbf; - --deep-dark-accent: #101b2f; - --accent2: #4c78cc; - --accent2-lite: #5599d0; - --headers: #4378c1; - --text: #283a67; - --soft-text: #4e99d0; - --code-text: #4296ea; - --i-at: var(--headers); - --footnote: #8996a0; - --inactive: #a6bbde; - --folder-open: #6da5ce; - --file-icon-color: #8897b4; - --bg: #dde4ef; - --fg: #025d9f; - --code-bg: #f1f5ff; - --tag: #5885b2; - --th: #587aa8; - --td: #d0ddef62; - --table: #ccd6eb; - --hr: #d6deea; - --lines: #b5c2d8; - --highlight: rgba(46, 124, 214, 0.2); - --theme-rainbow-1: var(--accent); - --theme-rainbow-2: var(--headers); - --theme-rainbow-3: var(--th); - --theme-rainbow-4: var(--text); - --theme-rainbow-5: var(--file-icon-color); - --theme-rainbow-6: var(--inactive); -} - -.theme-dark.wotc-beyond, .theme-dark .wotc-beyond, -.theme-light.wotc-beyond, -.theme-light .wotc-beyond { - --header-weight: 500; - --font: "its-Draconis", "Draconis", Inter; - --font-monospace: "its-Fira Code", "Fira Code", Inter; - --font-default: "its-Bookerly", "Bookerly", Inter; - --font-text: var(--font-default); - --vault-name-font-size: 25px; - --hr-icon-symbol: ""; - --hr-icon-font: var(--its); - --hr-icon-symbol: ; - --hr-image-height: 5px; - --hr-image-width: 100%; - --hr-thickness: 0; - --embed-h: #c93c3c; - --h2-color: sandybrown; - --h3-color: #a11111; - --h1-border-line-color: var(--embed-h); - --h2-border-line-color: var(--h2-color); - --h3-border-line-color: var(--h3-color); - --h1-border-right-color: linear-gradient(to right, var(--h1-border-line-color), transparent); - --h2-border-right-color: linear-gradient(to right, var(--h2-border-line-color), transparent); - --h3-border-right-color: linear-gradient(to right, var(--h3-border-line-color), transparent); - --h4-border-right-color: linear-gradient(to right, var(--header-border-line-color), transparent); - --h5-border-right-color: linear-gradient(to right, var(--header-border-line-color), transparent); - --h6-border-right-color: linear-gradient(to right, var(--header-border-line-color), transparent); - --h1-border-left-color: linear-gradient(to left, var(--h1-border-line-color), transparent); - --h2-border-left-color: linear-gradient(to left, var(--h2-border-line-color), transparent); - --h3-border-left-color: linear-gradient(to left, var(--h3-border-line-color), transparent); - --h4-border-left-color: linear-gradient(to left, var(--header-border-line-color), transparent); - --h5-border-left-color: linear-gradient(to left, var(--header-border-line-color), transparent); - --h6-border-left-color: linear-gradient(to left, var(--header-border-line-color), transparent); - --icon-color: var(--text); - --drop-shadow: var(--td); - --paper-edges: 0 0 60px var(--outline) inset; - --paper-edges-m: 0 0 100px var(--outline) inset; - --tab-container-background: transparent; - --tab-titlebar-color: transparent; - --pane-background: transparent; - --file-header-background: transparent; - --kanban-card-title-background: var(--td); - --kanban-card-metadata-background: var(--note); -} - -.theme-dark.wotc-beyond, .theme-dark .wotc-beyond { - --outline: #0000008c; - --headers: #c14343; - --code-text: #fa4545; - --tag-text: #d04e4e; - --dark-accent: #652121; - --accent: #863737; - --i-at: #bf5e5e; - --folder: var(--accent); - --hr-image: url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' viewBox='0 0 100 7' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3E%3Crect id='Artboard1' x='0' y='0' width='100' height='7' style='fill:none;'/%3E%3Cpath d='M50,2.5L100,3.5L50,4L0,3.5L50,2.5Z' style='fill:rgb(146, 47, 47);'/%3E%3C/svg%3E") no-repeat center center; - --hr: #772d2d; - --hvr-active: rgba(212, 47, 47, 0.4); - --highlight: #7a141466; -} - -.theme-light.wotc-beyond, .theme-light .wotc-beyond { - --outer-bar: #fbe2c5; - --dark-sidebar: #f6e3cd; - --side-bar: #fff6e4; - --note: #fffcf0; - --note-rgb: 255, 252, 240; - --accent-color: 199, 89, 89; - --accent: #c75959; - --lite-accent: #a35158; - --dark-accent: #cd645e; - --deep-dark-accent: #2e1010; - --accent2: #000000; - --accent2-lite: #df6262; - --headers: #c14343; - --text: #412f2f; - --code-text: #681010; - --inactive: #e2b7a3; - --file-icon-color: #ebbd92; - --folder-open: var(--text); - --bg: var(--dark-sidebar); - --code-bg: #f3e6d2; - --aside-bg: #faf2e9; - --embed-bg: var(--aside-bg); - --td: #fae0be60; - --table: var(--outline); - --hr: var(--table); - --lines: var(--inactive); - --outline: #fbb4577e; - --hr-image: url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' viewBox='0 0 100 7' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3E%3Crect id='Artboard1' x='0' y='0' width='100' height='7' style='fill:none;'/%3E%3Cpath d='M50,2.5L100,3.5L50,4L0,3.5L50,2.5Z' style='fill:rgb(200, 57, 57);'/%3E%3C/svg%3E") no-repeat center center; -} - -body.wotc-beyond .workspace-leaf-content, body.wotc-beyond .workspace-tabs, body.wotc-beyond .vertical-tab-content, body.wotc-beyond .modal.modal, body.wotc-beyond .community-modal-sidebar, body.wotc-beyond .canvas-wrapper { - box-shadow: var(--paper-edges); -} - -body:not(.wotc-beyond) .wotc-beyond:is(.markdown-source-view, -.markdown-preview-view) { - box-shadow: var(--paper-edges); -} - -.wotc-beyond .cm-line.hr, -.pathfinder .cm-line.hr { - bottom: -10px; -} -.wotc-beyond.markdown-rendered hr::after, .wotc-beyond .markdown-rendered hr::after, .wotc-beyond .cm-line:not(.cm-active) hr, -.pathfinder.markdown-rendered hr::after, -.pathfinder .markdown-rendered hr::after, -.pathfinder .cm-line:not(.cm-active) hr { - content: ""; - display: block; - position: relative; - background: var(--hr-image); - background-size: var(--hr-image-width); - height: var(--hr-image-height); - background-repeat: no-repeat; - background-position: center; -} - -.wotc-beyond .internal-embed.markdown-embed { - border-style: solid; - border-width: 11px; - border-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA8CAYAAADxJz2MAAAFWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjgwIgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iNjAiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSI4MCIKICAgdGlmZjpJbWFnZUxlbmd0aD0iNjAiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjMwMC8xIgogICB0aWZmOllSZXNvbHV0aW9uPSIzMDAvMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+RCZhbXA7RCBCb3JkZXI8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIDEuMTAuNCIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMS0wMlQxNjowNTo0MS0wODowMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+SLcLyAAAAYFpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAACiRdZHPK0RRFMc/8xD50SiUhcVLWA35UWJjMZNfhcXMKIPNm2fejJo3Xu+NJFtlO0WJjV8L/gK2ylopIiVLWRMbpuc8o0Yy53bP/dzvPed077mgRNO66ZR3g5nJ2uHRoDoTm1Urn/Ch0EQdqqY71mRkJEpJe7+VaLHrTq9W6bh/rWYh4ejgqxIe0i07KzwmPLGStTzeEm7UU9qC8IlwwJYLCt94erzAzx4nC/zpsR0Nh0CpF1aTvzj+i/WUbQrLy2kz08v6z328l9QmMtMRWVtltuAQZpQgKuMME6KfHgbF99NJL12yo0R+93f+FEuSq4u3WMVmkSQpsgREXZbqCVkN0RMy0qx6/f/bV8fo6y1Urw1CxaPrvrZD5Sbkc677ceC6+UMoe4DzTDF/aR8G3kTPFbW2PfCvw+lFUYtvw9kGNN9bmq19S2UyFcOAl2Ooi0HDFVTPFXr2c87RHUTX5KsuYWcXOiTeP/8FK5Jny8RYHqYAAAAJcEhZcwAALiMAAC4jAXilP3YAAAG5SURBVHic7dyxSiNRFMbxv0OwEkvZfrEWleWAvbA+giB5ANtgcx/gFJK0+wAbwUdYV7bZRjiIirXYL1tbiajFXHV3Y5KBbIyTfL8yOQxfPu5kprkXKnCzRTfrVpmdBm7WdbPFKrNFhYt9As6BnVGD1cgOcJ5/+0CNfl+4WQG0AB80N8U+AiduloBOirh/bejVFehmH4AjYJ/ZLO9Jg7KDo9xJj54C3ewzcAlsjjdbrWwCl7mbvzyvLjebp7xdW28YrE6WgG9u1gFSiriFvALdbBk4QeVV0aL8b1wGKNysCVwA6xONVS/rwIWbNefc7GHSaeps6HugiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIyCzQTqURaafSiBpAE/gCLAwbThFzY0/0DlS8K2+A3SJFdIE14Gy8sabKGbCWIroFQIq4AjaA9kRj1UMb2MidvexYzzuw99zsB/CVcoe2vPgNNFPE9z8/7HmI5IEV4PiNgtXBMbDyb3nQ5ymcIn4BW8AecDfebO/aHWUHW7mTHn2PNMnnpLTd7CdwSHmOyiy5BrZTxOmgoaHvgfkCq8DBfwpWBwfA6rDyAB4BTjVxWZByO0gAAAAASUVORK5CYII=") 11; - border-image-outset: 9px 0px; - box-shadow: 0px 0px 10px var(--outline, var(--background-modifier-box-shadow)); -} - -.dnd.dnd { - --font: "Cinzel Decorative", "Amarante", "Oleo Script", "Lobster 1.3", Inter; - --font-monospace: "Fira Code Medium", "Recursive Mono Linear Static Medium", "Source Code Pro", Inter; - --hr-icon-symbol: ""; - --hr-icon-font: var(--mdi); - --embed-h: #c93c3c; - --h1-color: var(--headers); - --h2-color: sandybrown; - --h3-color: var(--embed-h); - --highlight: rgba(60, 168, 122, 0.4); - /*Text highlights*/ - --hvr-active: rgba(255, 128, 0, 0.4); - /*Search Highlight*/ - --hvr: rgba(66, 157, 104, 0.2); - /*Cursor dragged highlights*/ -} - -.theme-dark .dnd, .theme-dark.dnd { - --outer-bar: #0e0f15; - --dark-sidebar: #1c2f2b; - --side-bar: var(--note); - --note: #1a1e24; - --accent-color: 84, 139, 103; - --accent: #548b67; - --lite-accent: #45b480; - --dark-accent: #2e4d3c; - --deep-dark-accent: #1b2c25; - --accent2: #cc824c; - --accent2-lite: #61efc9; - --headers: #3eb281; - --text: #dcdedd; - --soft-text: #aacac9; - --code-text: #71dfac; - --i-at: #5ebfa9; - --inactive: #587770; - --folder: var(--accent); - --file-icon-color: var(--soft-text); - --folder-open: #9a5f3b; - --bg: #1e3831; - --fg: white; - --code-bg: #222e31; - --embed-bg: var(--outer-bar); - --tag: var(--dark-accent); - --th: var(--dark-accent); - --table: #2c3836; - --hr: #2b4e41; - --graph-bg: var(--note); - --graph-lines: #244047; - --graph-node: var(--headers); - --graph-fill: var(--headers); - --graph-404: #1f6f29; - --graph-img: var(--accent2); - --graph-tag: saddlebrown; - --theme-rainbow-1: var(--accent); - --theme-rainbow-2: var(--accent2); - --theme-rainbow-3: var(--h3-color); - --theme-rainbow-4: var(--hr); - --theme-rainbow-5: var(--dark-sidebar); - --theme-rainbow-6: var(--outer-bar); -} - -.theme-light.dnd, .theme-light .dnd { - --outer-bar: #dfefe6; - --dark-sidebar: var(--embed-bg); - --side-bar: var(--note); - --note: #f8fbff; - --accent-color: 121, 199, 142; - --accent: #79c78e; - --lite-accent: #ac7c10; - --dark-accent: #5a8d71; - --deep-dark-accent: #1b2c25; - --accent2: #cca04c; - --accent2-lite: #35be89; - --headers: #0e934c; - --text: #697580; - --soft-text: #52ad67; - --code-text: #35ad76; - --i-at: #48804e; - --folder: #64c9a3; - --folder-open: var(--accent2); - --fg: #029f08; - --bg: #cbe2d5; - --code-bg: #f1f5ff; - --embed-bg: var(--code-bg); - --aside-bg: #ecf6f1; - --inactive: #91c1ad; - --tag: #56c681; - --th: #549f54; - --table: #ccd6eb; - --hr: #d6deea; - --lines: var(--inactive); - --graph-bg: var(--note); - --graph-lines: #e4e7f8; - --graph-node: var(--headers); - --graph-fill: #2e5db2; - --graph-404: #727e93; - --graph-img: var(--accent2); - --graph-tag: #000000; - --theme-rainbow-1: var(--accent); - --theme-rainbow-2: var(--accent2); - --theme-rainbow-3: var(--h3-color); - --theme-rainbow-4: var(--headers); - --theme-rainbow-5: var(--code-text); - --theme-rainbow-6: var(--file-icon-color); - --hvr-active: rgba(255, 128, 0, 0.2); -} - -.pathfinder.pathfinder { - --font: "Taroca"; - --header-weight: 100; - --h1-font: "Taroca"; - --h2-font: var(--h1-font); - --h3-font: "Norwester"; - --h4-font: var(--h3-font); - --h5-font: var(--h3-font); - --h6-font: var(--h3-font); - --h1-border-line-height: 1.5px; - --h2-border-line-height: 1.5px; - --h3-border-line-height: 2px; - --h4-border-line-height: 0; - --h5-border-line-height: 0; - --h6-border-line-height: 0; - --h1-border-line-color: var(--header-border-line-color); - --h2-border-line-color: var(--header-border-line-color); - --h3-border-line-color: var(--header-border-line-color); - --h4-border-line-color: var(--header-border-line-color); - --h5-border-line-color: var(--header-border-line-color); - --h6-border-line-color: var(--header-border-line-color); - --h1-border-left-color: var(--h1-border-line-color); - --h2-border-left-color: var(--h2-border-line-color); - --h3-border-left-color: var(--h3-border-line-color); - --h4-border-left-color: var(--h4-border-line-color); - --h5-border-left-color: var(--h5-border-line-color); - --h6-border-left-color: var(--h6-border-line-color); - --h1-border-right-color: var(--h1-border-line-color); - --h2-border-right-color: var(--h2-border-line-color); - --h3-border-right-color: var(--h3-border-line-color); - --h4-border-right-color: var(--h4-border-line-color); - --h5-border-right-color: var(--h5-border-line-color); - --h6-border-right-color: var(--h6-border-line-color); - --vault-name-font-weight: 100; - --dataview-th-background: var(--th); - --dataview-th-alt-color: var(--hvr); - --dataview-th-color: var(--text-dl); - --dataview-th-border-bottom: var(--th); - --hr-image: url("data:image/svg+xml,%3C!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3E%3Csvg width='100%25' height='100%25' viewBox='0 0 1000 204' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3E%3Cg transform='matrix(1,0,0,1,1.7053e-13,-398.169)'%3E%3Crect id='Artboard1' x='-0' y='398.169' width='1000' height='203.661' style='fill:none;'/%3E%3CclipPath id='_clip1'%3E%3Crect id='Artboard11' serif:id='Artboard1' x='-0' y='398.169' width='1000' height='203.661'/%3E%3C/clipPath%3E%3Cg clip-path='url(%23_clip1)'%3E%3Cg transform='matrix(4.31034,0,0,4.31034,-267.917,-1094.41)'%3E%3Cpath d='M178.389,380.983C175.751,387.924 169.433,393.494 159,393.565C127.289,393.78 136.335,361.89 118,362C108.448,361.996 110.806,374.866 115,377C114.833,377.167 100.762,372.819 105,357C76.617,370.354 62.389,358 62.389,358C62.389,358 80.399,363.885 90.791,357.333C109.271,345.683 133.119,337.401 142,364C147.001,347.144 172.305,357.468 163,370.565C163.721,364.587 151.808,358.708 151,370.565C150.447,378.68 162.397,385.825 170.144,377.076C176.411,369.999 170.344,356.114 162,354C170.327,353.643 175.921,358.556 178.389,365.031C180.857,358.556 186.45,353.643 194.777,354C186.434,356.114 180.367,369.999 186.634,377.076C194.38,385.825 206.33,378.68 205.777,370.565C204.97,358.708 193.056,364.587 193.777,370.565C184.472,357.468 209.776,347.144 214.777,364C223.658,337.401 247.507,345.683 265.986,357.333C276.379,363.885 294.389,358 294.389,358C294.389,358 280.16,370.354 251.777,357C256.015,372.819 241.944,377.167 241.777,377C245.971,374.866 248.329,361.996 238.777,362C220.443,361.89 229.488,393.78 197.777,393.565C187.344,393.494 181.027,387.924 178.389,380.983Z' style='fill:rgb(139,38,45);'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E%0A"); - --hr-image-height: 16px; - --hr-thickness: 2px; - --hr-icon-symbol: ; - --highlight: rgba(191, 0, 0, 0.2); - --hvr: rgba(191, 0, 0, 0.2); - --hvr-active: #e5800040; -} - -.theme-dark .pathfinder, .theme-dark.pathfinder { - --accent: #863737; - --lite-accent: #c94d4d; - --dark-accent: #652121; - --headers: #ddaf78; - --h1-color: var(--headers); - --h2-color: #2f4f87; - --h3-color: #a22b30; - --h4-color: #d0765b; - --h5-color: #694b3c; - --h6-color: var(--text); - --code-text: #c94d4d; - --i-at: #bf5e5e; - --folder: #a22b30; - --folder-open: #e58000; - --hr: #8b262d; - --header-border-line-color: var(--dark-accent); - --graph-bg: var(--embed-bg); - --graph-lines: #65212190; - --graph-node: var(--theme-rainbow-1); - --graph-tag: var(--theme-rainbow-3); - --graph-img: var(--theme-rainbow-2); - --graph-line-hover: var(--lines); - --graph-node-hover-fill: var(--theme-rainbow-4); - --theme-rainbow-1: var(--h1-color); - --theme-rainbow-2: var(--h2-color); - --theme-rainbow-3: var(--h3-color); - --theme-rainbow-4: var(--h4-color); - --theme-rainbow-5: var(--h5-color); -} - -.theme-light .pathfinder, .theme-light.pathfinder { - /*Colors*/ - --outer-bar: #e2ded8; - --dark-sidebar: #e2ded8; - --side-bar: #ECE9E4; - --note: #ECE9E4; - --note-rgb: 236, 233, 228; - --accent-color: 94, 0, 0; - --accent: #800008; - --lite-accent: #e58000; - --dark-accent: #800008; - --deep-dark-accent: #5e0000; - --accent2: #461413; - --accent2-lite: #0f5cbc; - --link-color-hover: #1B9AF0; - --headers: #ca9759; - --h1-color: var(--headers); - --h2-color: #002564; - --h3-color: #5d0000; - --h4-color: #a76652; - --h5-color: #393636; - --text: #393636; - --soft-text: #5C1C16; - --code-text: #5C1C16; - --i-at: #5C1C16; - --footnote: #676767; - --inactive: #cdab9a; - --folder: #a22b30; - --folder-open: var(--headers); - --file-icon-color: #676767; - --bg: #d2c4be; - --embed-bg: #E0DACB; - --aside-bg: #E0DACB; - --tag: #5e0000; - --th: #5e0000; - --td: #E0DACB99; - --header-border-line-color: black; - --table: #00000060; - --hr: #5c1c16; - --lines: #b6a697; - --outline: rgba(124, 49, 3, 0.4); - --hr-image-width: contain; - --graph-lines: var(--embed-bg); - --graph-node: var(--theme-rainbow-1); - --graph-tag: var(--theme-rainbow-4); - --graph-img: var(--theme-rainbow-2); - --graph-line-hover: var(--lines); - --graph-node-hover-fill: var(--theme-rainbow-4); - --theme-rainbow-1: #ca9759; - --theme-rainbow-2: #3276b5; - --theme-rainbow-3: #002564; - --theme-rainbow-4: #5d0000; - --theme-rainbow-5: #e58000; - --theme-rainbow-6: #393636; -} - -.pathfinder.markdown-rendered hr, .pathfinder .markdown-rendered hr { - overflow: visible; - display: flow-root; -} -.pathfinder .cm-line:not(.cm-active) hr { - margin-top: -25px; -} - -.mini { - --font: var(--font-default); - --background-modifier-hover: var(--td); - --tag-color: var(--accent2-lite); - --hr-icon-symbol: ; - --file-icon: ; - --folder-icon: ; - --header-border-line-height: 0; - --nav-item-border-width: 2px; - --nav-item-border-color: var(--text); - --setting-item-heading-border: 2px solid var(--accent); - --shadow-s: 1px 1px 0 var(--outline); - --shadow-l: 4px 4px 0 var(--outline); - --modal-border-width: 1px; - --modal-border-color: var(--table); - --tab-outline-color: transparent; - --drag-ghost-text-color: var(--text); - --message-color: var(--text); - --message-border-width: 1px; -} - -.theme-dark.mini, .theme-dark .mini { - --outer-bar: var(--note); - --dark-sidebar: var(--note); - --side-bar: var(--note); - --note: #1a1e24; - --note-rgb: 26, 30, 36; - --accent-color: ; - --accent: #546078; - --lite-accent: #aab3ca; - --dark-accent: #394151; - --deep-dark-accent: var(--note); - --accent2-lite: var(--text-dl); - --headers: var(--text); - --code-text: var(--text); - --i-at: var(--text-faint); - --inactive: #586477; - --tag-text: var(--accent2-lite); - --code-bg: #232831; - --aside-bg: var(--note); - --embed-bg: var(--note); - --tag: var(--note); - --folder: var(--text-dl); - --file-icon-color: #aab3ca; - --th: var(--note); - --td: #06080c50; - --table: var(--bg); - --outline: #0b0f13; - --highlight: rgba(81, 100, 122, 0.6); - --hvr: rgba(87, 113, 156, 0.4); - --hvr-active: rgba(101, 124, 156, 0.4); - --graph-bg: var(--outer-bar); - --graph-lines: #363c4950; - --graph-node: var(--fg); - --graph-fill: var(--headers); - --graph-404: #727e93; - --graph-img: #6b90ad; - --graph-tag: black; - --graph-focused: var(--text-highlight-bg-active); - --theme-rainbow-1: var(--graph-404); - --theme-rainbow-2: var(--accent); - --theme-rainbow-3: var(--dark-accent); - --theme-rainbow-4: var(--code-bg); - --theme-rainbow-5: var(--td); - --theme-rainbow-6: var(--graph-tag); -} - -.theme-light.mini, .theme-light .mini { - --background-modifier-form-field-highlighted: #99a4bb30; - --highlight: #99a4bb50; - --hvr: #99a4bb50; - --hvr-active: #99a4bb50; - --outer-bar: var(--note); - --dark-sidebar: var(--note); - --side-bar: var(--note); - --note: #f8fbff; - --text-dl: #000000; - --soft-text: #99a4bb; - --inactive: #d2daee; - --accent: #b5c2d8; - --lite-accent: #aab3ca; - --dark-accent: #d5ddeb; - --deep-dark-accent: var(--note); - --accent2: #d6def3; - --accent2-lite: var(--text-dl); - --bg: #eef3ff; - --aside-bg: var(--note); - --embed-bg: var(--note); - --bttn: var(--dark-accent); - --tag: var(--note); - --outline: #e1e9f6; - --th: var(--note); - --folder: var(--text-dl); - --headers: var(--text); - --i-at: var(--soft-text); - --code-text: var(--text); - --graph-bg: var(--outer-bar); - --graph-lines: #e5e9f3; - --graph-node: var(--text); - --graph-fill: var(--headers); - --graph-404: #727e939c; - --graph-img: #8ec1e9; - --graph-tag: var(--accent2-lite); - --graph-focused: #b6c9f1; - --theme-rainbow-1: var(--bg); - --theme-rainbow-2: var(--td); - --theme-rainbow-3: var(--outline); - --theme-rainbow-4: var(--inactive); - --theme-rainbow-5: var(--accent); - --theme-rainbow-6: var(--graph-img); -} - -/*----Theme: Drowned----*/ -.drwn { - --hr-icon-symbol: ""; - --hr-icon-font: var(--mdi); -} - -.theme-dark.drwn, .theme-dark .drwn { - --outer-bar: #0b0f13; - --note: #1a1e24; - --accent-color: 55, 136, 118; - --accent: #378876; - --lite-accent: #6CE0D3; - --dark-accent: #216565; - --deep-dark-accent: #103F3D; - --accent2: #5cb2d6; - --accent2-lite: #49d8e2; - --headers: #399F94; - --text: #bccad8; - --code-text: #72cdd0; - --i-at: #5EBFA9; - --inactive: #2b5b77; - --tag-text: var(--folder-open); - --folder-open: #58c8e0; - --folder-text-color: #71a6b7; - --file-icon-color: #204c5d; - --bg: #1e2f33; - --hr: #0f465d; - --tag: #1A5753; - --th: var(--dark-accent); - --td: rgba(6,12,12,0.38); - --table: #2b4448; - --lines: #1e4765; - --tab-stack-shadow: rgba(0,74,63,0.08); - --highlight: rgba(60,168,131,0.25); - --hvr: rgba(115,253,190,0.25); - --hvr-active: rgba(52,237,181,0.13); - --graph-lines: #04303d; - --theme-rainbow-1: var(--headers); - --theme-rainbow-2: var(--accent); - --theme-rainbow-3: var(--inactive); - --theme-rainbow-4: var(--file-icon-color); - --theme-rainbow-5: var(--table); - --theme-rainbow-6: var(--code-bg); -} - -.theme-light.drwn, .theme-light .drwn { - --outer-bar: #eef3fd; - --dark-sidebar: #e8f9f7; - --accent-color: 67, 193, 165; - --accent: #43C1A5; - --lite-accent: #51a38e; - --dark-accent: #25a99e; - --deep-dark-accent: #102F26; - --accent2: #D6EAE3; - --accent2-lite: #75c8b9; - --headers: #40B1A4; - --text: #697580; - --soft-text: #4ED0B8; - --code-text: #69cfd2; - --i-at: #43C1AE; - --footnote: #89A09E; - --inactive: #A6DED4; - --tag-text: var(--accent); - --folder: var(--headers); - --folder-open: #a1d9ff; - --folder-text-color: #7EA3A2; - --file-icon-color: #A6DED8; - --fg: #2E918A; - --bg: var(--table); - --embed-bg: #f1f5ff; - --tag: #49b99d; - --th: var(--headers); - --td: rgba(145, 212, 199, 0.27); - --table: #CCEBE2; - --hr: #D6EAE9; - --lines: #b8e5e7; - --drop-shadow: rgba(0,74,52,0.08); - --highlight: rgba(144, 237, 231, 0.5); - --hvr: rgba(131,240,207,0.3); - --hvr-active: rgba(119, 220, 193, 0.5); - --theme-rainbow-1: var(--code-text); - --theme-rainbow-2: var(--accent2-lite); - --theme-rainbow-3: var(--accent); - --theme-rainbow-4: var(--lite-accent); - --theme-rainbow-5: var(--fg); - --theme-rainbow-6: var(--deep-dark-accent); -} - -.theme-dark.its-d, .theme-dark .its-d { - --hvr: rgba(60, 8, 8, 0.46); - --highlight: rgba(139, 6, 6, 0.4); - --outer-bar: black; - --dark-sidebar: #000000; - --side-bar: var(--outer-bar); - --note: #070b11; - --accent: #803232; - --dark-accent: var(--aside-bg); - --deep-dark-accent: #270f0f; - --accent2: var(--text); - --accent2-lite: #c5575b; - --headers: #aa3333; - --text: #475569; - --soft-text: var(--accent); - --code-text: var(--accent); - --footnote: #577093; - --inactive: #1b262f; - --file-icon-color: var(--text); - --fg: var(--headers); - --bg: var(--inactive); - --code-bg: var(--aside-bg); - --embed-bg: black; - --aside-bg: #04070c; - --tag: var(--table); - --th: var(--hr); - --td: #03000054; - --table: #380b13; - --hr: #571a1a; - --graph-bg: rgba(13, 20, 29, 0.51); - --graph-lines: var(--hr); - --theme-rainbow-1: var(--headers); - --theme-rainbow-2: var(--accent); - --theme-rainbow-3: var(--hr); - --theme-rainbow-4: var(--table); - --theme-rainbow-5: var(--file-icon-color); - --theme-rainbow-6: var(--code-bg); -} - -.theme-light.its-d, .theme-light .its-d { - --outer-bar: #d5e1f3; - --dark-sidebar: #dce4f6; - --note: #e6edf8; - --bg:#d9e4f0; - --code-bg: #e6ebf8; -} - -.nebula { - --font: "Norwester", var(--font-default); - --header-weight: 500; - --vault-name-font-weight: 500; - --checklist-done-color: var(--inactive); -} - -.theme-dark.nebula, -.theme-dark .nebula { - --note: #070b11; - --hr: #1b1e2b; - --table: #241a4e; - --headers: #8065fa; - --embed-bg: #1b1e2b; - --soft-text: #7f66d8; - --code-text: #9278ff; - --tag: var(--accent); - --accent-color: 114, 53, 211; - --accent: #3a2791; - --accent2-lite:#7b6cff; - --lite-accent: #b19eff; - --inactive: #594c9a; - --dark-accent: #40327e; - --th: var(--dark-accent); - --code-bg: #141235; - --outer-bar: #19113a; - --lines: #30275a; - --folder-open: var(--text); - --theme-rainbow-1: var(--headers); - --theme-rainbow-2: var(--code-text); - --theme-rainbow-3: ; - --theme-rainbow-4: ; - --theme-rainbow-5: ; - --theme-rainbow-6: ; -} - -.notion.notion { - --font: var(--font-default); - --header-font-weight: 900; - --vault-name-font-weight: 900; - --header-border-line-height: 0; - --h1-border-line-height: var(--header-border-line-height); - --h2-border-line-height: var(--header-border-line-height); - --h3-border-line-height: var(--header-border-line-height); - --h4-border-line-height: var(--header-border-line-height); - --h5-border-line-height: var(--header-border-line-height); - --h6-border-line-height: var(--header-border-line-height); - --hr-icon-symbol: ""; - background: var(--note); - --text-dl: white; -} - -.theme-dark .notion, .theme-dark.notion { - --scrollbar-bg: #3b4044; - --scrollbar-thumb-bg: #474C50; - --outer-bar: var(--embed-bg); - --dark-sidebar: var(--side-bar); - --side-bar: #373C3F; - --note: #2F3437; - --note-rgb: 47, 52, 55; - --headers: var(--text); - --text: #EBEBEB; - --soft-text: #A8ABAC; - --code-text: var(--text); - --i-at: var(--bttn); - --footnote: #7A7D7F; - --inactive: #5D6265; - --accent-color: 66, 180, 224; - --accent: var(--tag); - /*#474C50*/ - --lite-accent: var(--bttn); - --dark-accent: #4B5053; - /*#26292B*/ - --deep-dark-accent: var(--outer-bar); - --accent2: var(--soft-text); - --accent2-lite: #2EA1CF; - --folder: var(--text); - --folder-open: var(--bttn); - --file-icon-color: var(--dark-accent); - --nav-item-color-active: var(--tag); - --bg: #3C4144; - --code-bg: var(--bg); - --embed-bg: #3F4447; - --aside-bg: var(--note); - --tag: #708dbb; - --bttn: #43B3E0; - /*#889FC3*/ - --th: #373c3f; - --td: #0f0f0f33; - --hr: #3C3F43; - --table: #4C5153; - --lines: var(--table); - /*#3E4245*/ - --outline: #0f0f0f40; - --highlight: rgb(255, 255, 255, 0.1); - --hvr: rgba(45, 170, 219, 0.3); - --hvr-active: rgba(45, 170, 219, 0.3); - --graph-bg: var(--note); - --graph-lines: #5D626555; - --graph-node: var(--headers); - --graph-fill: var(--folder); - --graph-404: var(--inactive); - --graph-img: var(--soft-text); - --graph-tag: var(--accent); - --graph-focused: var(--accent); - --theme-rainbow-1: var(--lite-accent); - --theme-rainbow-2: var(--tag); - --theme-rainbow-3: var(--text-faint); - --theme-rainbow-4: var(--inactive); - --theme-rainbow-5: var(--hr); - --theme-rainbow-6: var(--td); -} - -.theme-light.notion, .theme-light .notion { - --scrollbar-bg: #EDECE9; - --scrollbar-thumb-bg: #D3D1CB; - --text-on-accent: white; - --outer-bar: #F1F1EF; - --dark-sidebar: var(--side-bar); - --side-bar: #F7F6F3; - --note: #FFFFFF; - --note-rgb: 247, 246, 243; - --accent-color: 67, 179, 224; - --accent: #43B3E0; - --lite-accent: var(--bttn); - --dark-accent: var(--accent); - --accent2: var(--soft-text); - --accent2-lite: #2EA1CF; - --deep-dark-accent: var(--outer-bar); - --headers: var(--text); - --text: #37352f; - /*#8D8C89*/ - --inactive: #CFCECD; - --soft-text: #82817C; - --code-text: var(--text); - --i-at: var(--bttn); - --footnote: #A09E9A; - --file-icon-color: #69685f; - --folder: var(--text); - --folder-open: var(--bttn); - --th: var(--side-bar); - --table-header-color: var(--text); - --td: #37352F10; - --bg: #EDECE9; - --code-bg: #f7f6f3; - --embed-bg: #F1F1EF; - --aside-bg: var(--note); - --tag: var(--bttn); - --bttn: #43B3E0; - --table:#e9e9e7; - --hr: rgba(55, 53, 47, 0.1); - --lines: var(--hr); - --outline: #0f0f0f15; - --graph-bg: var(--note); - --graph-lines: #CFCECD55; - --graph-node: var(--soft-text); - --graph-fill: var(--folder); - --graph-404: var(--file-icon-color); - --graph-img: #000; - --graph-tag: var(--accent); - --graph-focused: var(--accent); - --highlight: rgba(55, 53, 47, 0.078); - --hvr: rgba(45, 170, 219, 0.2); - --hvr-active: rgba(45, 170, 219, 0.3); - --theme-rainbow-1: var(--lite-accent); - --theme-rainbow-2: var(--text-faint); - --theme-rainbow-3: var(--text); - --theme-rainbow-4: var(--soft-text); - --theme-rainbow-5: var(--footnote); - --theme-rainbow-6: var(--inactive); -} - -/*----Theme: School Days----*/ -.s-d.s-d { - /*FONTS*/ - --font: /*'Recursive Sans Casual Static',*/ "Recursive Sans Linear Static Black", "RocknRoll One Regular", var(--font-default); - --vault-font: "CollegiateBlackFLF", "Jersey M54", var(--font-default); - --vault-name-font-weight: 100; - --font-monospace: "Recursive Mono Linear Static Medium", var(--font-default); - --solve-font: "Recursive Sans Linear Static Regular", var(--font-default); - --inline-title-font: var(--vault-font); - --inline-title-color: var(--accent2); - --inline-title-weight: 500; - --hr-icon-symbol: "", "✏"; - --hr-icon-font: var(--mdi); - --bullet: ""; - --bullet-font: var(--mdi); - background: var(--note); -} - -.theme-dark.s-d, .theme-dark .s-d { - --outer-bar: #0e0f15; - --dark-sidebar: #10161d; - --side-bar: var(--note); - --accent: #485b76; - --lite-accent: #d0913d; - --dark-accent: #2b3550; - --deep-dark-accent: #212731; - --accent2: var(--lite-accent); - --headers: #4378c1; - --text: #dcddde; - --soft-text: #aab3ca; - --code-text: #e6a210; - --i-at: var(--lite-accent); - --inactive: #586477; - --folder: var(--headers); - --folder-open: var(--lite-accent); - --fg: white; - --bg: #232a34; - --code-bg: #232831; - --embed-bg: #12151a; - --tag: #273346; - --th: var(--dark-accent); - --table: #2f3440; - --hr: #414b5c; - --latex-color: #b2cfff; - --latex-format-color: #61afef; - --latex-syntax-color: #ebbd3e; - --header-solve: #c7c7c7; - --answer: darkseagreen; - --answer-bg: #293c33; - --highlight: rgba(86, 128, 226, 0.4); - --hvr-active: rgba(255, 183, 0, 0.4); - --hvr: rgba(65, 82, 119, 0.31); - --theme-rainbow-1: var(--accent2); - --theme-rainbow-2: var(--headers); - --theme-rainbow-3: var(--accent); - --theme-rainbow-4: var(--dark-accent); - --theme-rainbow-5: var(--tag); - --theme-rainbow-6: var(--deep-dark-accent); -} - -.theme-light.s-d, .theme-light .s-d.s-d { - /*--DEFAULT VARIABLES--*/ - --outer-bar: #e3f0fd; - --dark-sidebar: var(--embed-bg); - --side-bar: var(--note); - --accent-color: 109, 153, 212; - --accent: #6d99d4; - --lite-accent: #e6af66; - --dark-accent: #4382c1; - --deep-dark-accent: #6c8bb4; - --accent2: var(--lite-accent); - --headers: #4382c1; - --text: #697580; - --soft-text: #6f8fd8; - --code-text: #ebab16; - --i-at: var(--th); - --inactive: #91a3c1; - --folder-open: var(--lite-accent); - --folder: var(--headers); - --fg: #025d9f; - --bg: #e1e6ed; - --embed-bg: #f1f5ff; - --tag: #5685c6; - --th: #b48c55; - --table: #c9ced9; - --hr: #d6deea; - --latex-color: #5895fa; - --latex-format-color: #9ed3ff; - --latex-syntax-color: #fdaf00; - --header-solve: #a87643; - --answer: #4f904f; - --answer-bg: #dbe8e2; - --highlight: rgba(118, 186, 253, 0.4); - --hvr-active: rgba(255, 166, 0, 0.4); - --hvr: rgba(149, 192, 229, 0.37); - --graph-bg: var(--note); - --graph-lines: #ecedf8; - --graph-node: var(--headers); - --graph-fill: #2e5db2; - --graph-404: #727e93; - --graph-img: #4c78cc; - --graph-tag: #000000; - --graph-focused: var(--lite-accent); - --theme-rainbow-1: var(--accent2); - --theme-rainbow-2: var(--fg); - --theme-rainbow-3: var(--headers); - --theme-rainbow-4: var(--accent); - --theme-rainbow-5: var(--th); - --theme-rainbow-6: var(--graph-404); -} - -/*--Solve Page--*/ -/*Header*/ -.s-d.s-d.solve, .s-d.s-d .solve { - --headers: var(--header-solve); - --h3-font: var(--solve-font); - --h4-font: var(--solve-font); - --h5-font: var(--solve-font); - --h6-font: var(--solve-font); -} -.s-d.s-d.solve th, .s-d.s-d.solve td:nth-child(1), .s-d.s-d .solve th, .s-d.s-d .solve td:nth-child(1) { - background-color: var(--outer-bar); -} -.s-d.s-d.solve td mark, .s-d.s-d .solve td mark { - color: var(--answer); - background-color: var(--answer-bg); - font-weight: 600; - padding: 2px; -} -.s-d.s-d.solve tr, .s-d.s-d .solve tr { - width: 10% !important; -} - -/*----Theme: Tangerine Dunes----*/ -.t-d { - --hr-sym: ""; - --hr-f: var(--mdi); - --header-weight: 500; - background: var(--note); -} - -.theme-dark.t-d, .theme-dark .t-d { - --outer-bar: #0b0f13; - --side-bar: var(--note); - --note: #1a1e24; - --accent-color: 223, 123, 65; - --accent: #DF7B41; - --lite-accent: #C48A69; - --dark-accent: #c66c39; - --deep-dark-accent: #62250F; - --accent2: #8F3F2B; - --accent2-lite: #E57858; - --headers: #DF7B41; - --text: #bccad8; - --code-text: #FA8A45; - --i-at: #BF7F5E; - --folder-open: #D8AF97; - --file-icon-color: #8F3F2B; - --tag: var(--th); - --th: #a66038; - --td: rgba(12,9,6,0.38); - --table: #463228; - --hr: #744F3C; - --highlight: rgba(148, 87, 49, 0.575); - --hvr: rgba(253,162,115,0.25); - --hvr-active: rgba(236, 110, 52, 0.3); - --theme-rainbow-1: var(--i-at); - --theme-rainbow-2: var(--headers); - --theme-rainbow-3: var(--accent2); - --theme-rainbow-4: var(--tag); - --theme-rainbow-5: var(--table); - --theme-rainbow-6: var(--dark-sidebar); -} - -.theme-light.t-d, .theme-light .t-d { - --outer-bar: #eef3fd; - --side-bar: var(--note); - --note: #f8fbff; - --accent-color: 232, 175, 142; - --accent: #E8AF8E; - --lite-accent: #C48A69; - --accent2: #A9523C; - --accent2-lite: #E57858; - --dark-accent: #dc8a67; - --deep-dark-accent: #7B4430; - --headers: #E19363; - --text: #697580; - --soft-text: #CF9870; - --code-text: #EA7542; - --i-at: #C16E43; - --folder-open: #EDB595; - --folder: #BA5D4B; - --fg: #91542E; - --tag: #e48751; - --table: #CCD6EB; - --hr: #CFC2BB; - --th: var(--dark-accent); - --highlight: rgba(255, 158, 89, 0.4); - --hvr: rgba(253,157,115,0.25); - --hvr-active: rgba(255, 158, 89, 0.4); - --theme-rainbow-1: var(--headers); - --theme-rainbow-2: var(--soft-text); - --theme-rainbow-3: var(--i-at); - --theme-rainbow-4: var(--file-icon-color); - --theme-rainbow-5: var(--tag); - --theme-rainbow-6: var(--file-icon-color); -} - -.nord { - --hr-icon-symbol: ""; - --hr-icon-font: var(--mdi); - background: var(--note); -} - -.theme-dark.nord, .theme-dark .nord.nord { - --outer-bar: #242933; - --dark-sidebar: #3B4252; - --side-bar: var(--outer-bar); - --note: #2E3440; - --note-rgb: 46, 52, 64; - --accent-color: 94, 129, 172; - --accent: #5E81AC; - --lite-accent: #5E81AC; - --dark-accent: #4C566A; - --deep-dark-accent: var(--outer-bar); - --accent2: #81A1C1; - --accent2-lite: #88C0D0; - --headers: #88C0D0; - --text: #ECEFF4; - --code-text: #81A1C1; - --i-at: #81A1C1; - --tag-text: var(--folder); - --folder: #A3BE8C; - --folder-open: #3c9ba8; - --nav-item-color: var(--soft-text); - --bg: #3B4252; - --code-bg: var(--dark-sidebar); - --embed-bg: #1d2129; - --aside-bg: #242933; - --tag: var(--dark-accent); - --table: #434C5E; - --hr: var(--table); - --lines: #4C566A; - --graph-bg: var(--outer-bar); - --graph-lines: var(--lines); - --graph-node: var(--fg); - --graph-fill: var(--headers); - --graph-img: var(--folder); - --graph-tag: var(--headers); - --highlight: rgba(60, 159, 168, 0.4); - --hvr: rgba(81, 120, 138, 0.48); - --hvr-active: rgba(136, 192, 208, 0.565); - --theme-rainbow-1: #BF616A; - --theme-rainbow-2: #D08770; - --theme-rainbow-3: #A5916A; - --theme-rainbow-4: #88A073; - --theme-rainbow-5: #A48EAD; - --theme-rainbow-6: #29395a; - --rainbow-1: var(--theme-rainbow-1); - --rainbow-2: var(--theme-rainbow-2); - --rainbow-3: var(--theme-rainbow-3); - --rainbow-4: var(--theme-rainbow-4); - --rainbow-5: var(--theme-rainbow-5); - --rainbow-6: var(--theme-rainbow-6); -} - -.theme-light.nord, .theme-light .nord { - --outer-bar: #E5E9F0; - --dark-sidebar: #dde2ec; - --side-bar: var(--outer-bar); - --note: #FBFBFC; - --accent-color: 143, 188, 187; - --accent: #5E81AC; - --lite-accent: #3c66a8; - --dark-accent: #29395a; - --deep-dark-accent: #4C566A; - --accent2: #81A1C1; - --accent2-lite: #8FBCBB; - --headers: #88C0D0; - --text: #4C566A; - --soft-text: #7e8dac; - --code-text: #81A1C1; - --i-at: #81A1C1; - --inactive: var(--soft-text); - --tag-text: var(--accent2-lite); - --folder: var(--headers); - --nav-item-color: var(--soft-text); - --folder-open: #4C566A; - --bg: #bdcce6; - --code-bg: #ECEFF4; - --aside-bg: #D8DEE9; - --embed-bg: var(--code-bg); - --tag: var(--accent); - --table: var(--lines); - --hr: #D8DEE9; - --lines: #b5c1d4; - --graph-bg: var(--outer-bar); - --graph-lines: var(--lines); - --graph-node: var(--deep-dark-accent); - --graph-fill: var(--fg); - --graph-img: var(--sphd-ed-2); - --graph-tag: var(--headers); - --highlight: rgba(97, 148, 231, 0.3); - --hvr: rgba(119, 235, 210, 0.4); - --hvr-active: rgba(92, 207, 228, 0.25); - --theme-rainbow-1: #BF616A; - --theme-rainbow-2: #D08770; - --theme-rainbow-3: #A5916A; - --theme-rainbow-4: #88A073; - --theme-rainbow-5: #A48EAD; - --theme-rainbow-6: var(--soft-text); - --rainbow-1: var(--theme-rainbow-1); - --rainbow-2: var(--theme-rainbow-2); - --rainbow-3: var(--theme-rainbow-3); - --rainbow-4: var(--theme-rainbow-4); - --rainbow-5: var(--theme-rainbow-5); - --rainbow-6: var(--theme-rainbow-6); -} - -.advt { - --font: "Quicksand"; - --f-w-h: 900; - --link-f: var(--font); - --f-w-l: 700; - --f-w-tag: 600; -} - -.theme-dark.advt, -.theme-dark .advt { - background: var(--note); - color: var(--text); - --background-primary: var(--note); - --background-primary-alt: var(--deep-dark-accent); - --background-secondary: var(--side-bar); - --background-secondary-alt: var(--outer-bar); - --background-modifier-border: var(--table); - --background-modifier-form-field-highlighted: rgba(254, 160, 71, 0.427); - --text-selection: rgba(241, 173, 105, 0.25); - --text-highlight-bg-active: rgba(255, 187, 124, 0.4); - --text-normal: var(--text); - --text-muted: var(--soft-text); - --text-accent: var(--accent2-lite); - --text-accent-hover: var(--accent2); - --interactive-normal: var(--outer-bar); - --interactive-hover: var(--embed-bg); - --interactive-accent: var(--accent); - --interactive-accent-hover: var(--dark-accent); - --scrollbar-bg: var(--bg); - --scrollbar-thumb-bg: var(--tag); - --text-faint: #886b5e; - --adcs: #7bad88; - /*#6eca85*/ - --adcs-2: #614d3e; - /*#5c3e2a*/ - --adcs-3: #fc9c42; - /*#f54d4d*/ - --adcs-hr: #8f3434; - /*#c06714*/ - --note: #392f2b; - --outer-bar: #292321; - --side-bar: var(--note); - --code-bg: var(--aside-bg); - --dark-sidebar: #1d1714; - --headers: #7bad88; - --th: #63816d; - --accent: #ad4646; - --tag: #8f3434; - --accent2-lite: #e39b59; - --accent2: var(--hr); - --bttn: #964242; - --dark-accent: #0f0c0b; - --bg: var(--hr); - --table: var(--hr); - --hr: #614d3e; - --inactive: var(--hr); - --td: #29232170; - --outline: #100c0b; - --footnote: #886b5e; - --soft-text: #a78a7d; - --code-text: #fc9c42; - --embed-bg: var(--outer-bar); - --aside-bg: #312824; - --scrollbar-bg: #292321; - --scrollbar-thumb-bg: var(--hr); - --indentation-guide: var(--table); - --indentation-guide-active: var(--accent); -} - -.theme-light.advt, -.theme-light .advt { - --background-primary: var(--note); - --background-modifier-form-field-highlighted: rgba(249, 133, 25, 0.295); - --text-selection: rgba(241, 173, 105, 0.25); - --text-highlight-bg-active: rgba(255, 187, 124, 0.4); - --text-normal: var(--text); - --text-faint: var(--soft-text); - --text-muted: var(--soft-text); - --text-accent: var(--accent2-lite); - --text-accent-hover: var(--accent2); - --interactive-normal: var(--outer-bar); - --interactive-hover: var(--embed-bg); - --interactive-accent: var(--accent); - --interactive-accent-hover: var(--dark-accent); - background: var(--note); - color: var(--text); - --adcs: #6eca85; - --adcs-2: #83644f; - --adcs-3: #fc9637; - --adcs-hr: #f54d4d; - --note: #6e5849; - --outer-bar: #503d35; - --outline: #4e3a31; - --embed-bg: #58433a; - --bg: #796258; - --dark-sidebar: #46342e; - --aside-bg: #614d3f; - --code-bg: #624a40; - --accent: #6eca85; - --lite-accent: #f0db9e; - --accent2: #bf5e5e; - --dark-accent: #5d4738; - --bttn: #c5864b; - --table: #5e463d; - --lines: #a87d68; - --text: #eeeae8; - --soft-text: #c0a195; - --headers: #aadb7f; - --code-text: var(--headers); - --accent2-lite: #ffb765; - --footnote: #9c796b; - --inactive: var(--footnote); - --file-icon-color: #ad8271; - --file-icon-color: var(--text); - --i-at: #f7d26b; - --td: #49383170; - --th: #739258; - --hr: var(--table); - --scrollbar-bg: #9d755580; - --scrollbar-thumb-bg: var(--accent); - --indentation-guide: var(--lines); - --indentation-guide-active: var(--accent); - --ch-class: #fc9637; - --ch-delimiter: var(--lines); - --ch-num: var(--accent); - --ch-keyword: var(--lite-accent); - --ch-string: var(--headers); -} - -.theme-dark.accent-color, -.theme-dark .accent-color { - --accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); - --lite-accent: hsl(var(--accent-h), var(--accent-s), 70%); - --dark-accent: hsl(var(--accent-h), var(--accent-s), 30%); - --deep-dark-accent: hsl(var(--accent-h), 20%, 10%); - --accent2: hsl(var(--accent-h), var(--accent-s), 50%); - --accent2-lite: hsl(var(--accent-h), 50%, 70%); - --headers: hsl(var(--accent-h), var(--accent-s), 50%); - --soft-text: hsl(var(--accent-h), 20%, 55%); - --faint-text: hsl(var(--accent-h), 20%, 45%); - --code-text: hsl(var(--accent-h), var(--accent-s), 60%); - --inactive: hsla(var(--accent-h), var(--accent-s), 75%, 40%); - --tag-text: var(--headers); - --folder: var(--accent); - --folder-open: var(--lite-accent); - --file-icon-color: hsl(var(--accent-h), 20%, 30%); - --bg: hsl(var(--accent-h), 0%, 17%); - --code-bg: hsl(var(--accent-h), 20%, 15%); - --dark-sidebar: hsl(var(--accent-h), 20%, 7%); - --outer-bar: hsl(var(--accent-h), 10%, 5%); - --note: hsl(var(--accent-h), 0%, 10%); - --table: hsl(var(--accent-h), 20%, 24%); - --hr: hsl(var(--accent-h), 20%, 25%); - --hr-icon-color: var(--accent2); - --lines: hsl(var(--accent-h), 20%, 25%); - --highlight: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 30%); - --hvr: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 40%); - --hvr-active: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 30%); - --theme-rainbow-1: hsl(var(--accent-h), var(--accent-s), 60%); - --theme-rainbow-2: hsl(var(--accent-h), var(--accent-s), 50%); - --theme-rainbow-3: hsl(var(--accent-h), var(--accent-s), 30%); - --theme-rainbow-4: hsl(var(--accent-h), var(--accent-s), 20%); - --theme-rainbow-5: hsl(var(--accent-h), var(--accent-s), 10%); - --theme-rainbow-6: hsl(var(--accent-h), var(--accent-s), 5%); -} - -.theme-light.accent-color, -.theme-light .accent-color { - --accent: hsl(var(--accent-h), var(--accent-s), var(--accent-l)); - --lite-accent: hsl(var(--accent-h), var(--accent-s), 50%); - --dark-accent: hsl(var(--accent-h), var(--accent-s), 40%); - --deep-dark-accent: hsl(var(--accent-h), 20%, 10%); - --accent2: hsl(var(--accent-h), var(--accent-s), 50%); - --accent2-lite: hsl(var(--accent-h), var(--accent-s), 70%); - --headers: hsl(var(--accent-h), var(--accent-s), 50%); - --soft-text: hsl(var(--accent-h), 20%, 55%); - --faint-text: hsl(var(--accent-h), 20%, 45%); - --code-text: hsl(var(--accent-h), var(--accent-s), 50%); - --inactive: hsla(var(--accent-h), var(--accent-s), 80%); - --tag-text: var(--headers); - --folder: var(--accent); - --folder-open: var(--lite-accent); - --file-icon-color: hsl(var(--accent-h), 20%, 30%); - --bg: hsl(var(--accent-h), var(--accent-s), 85%); - --code-bg: hsl(var(--accent-h), var(--accent-s), 90%); - --dark-sidebar: hsl(var(--accent-h), 10%, 90%); - --outer-bar: hsl(var(--accent-h), 10%, 92%); - --note: hsl(var(--accent-h), 0%, 94%); - --td: hsla(var(--accent-h), var(--accent-s), 50%, 10%); - --table: hsl(var(--accent-h), 20%, 80%); - --hr: hsl(var(--accent-h), 20%, 85%); - --hr-icon-color: var(--accent2); - --lines: hsl(var(--accent-h), 20%, 80%); - --outline: hsla(var(--accent-h), var(--accent-s), 80%); - --highlight: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 20%); - --hvr: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 30%); - --hvr-active: hsla(var(--accent-h), var(--accent-s), var(--accent-l), 50%); - --theme-rainbow-1: hsl(var(--accent-h), var(--accent-s), 60%); - --theme-rainbow-2: hsl(var(--accent-h), var(--accent-s), 50%); - --theme-rainbow-3: hsl(var(--accent-h), var(--accent-s), 30%); - --theme-rainbow-4: hsl(var(--accent-h), var(--accent-s), 20%); - --theme-rainbow-5: hsl(var(--accent-h), var(--accent-s), 10%); - --theme-rainbow-6: hsl(var(--accent-h), var(--accent-s), 0%); -} - -.its.its { - --font-default: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; - --font-monospace: "Fira Code", "Fira Code Medium", "Source Code Pro", monospace; - --hr-icon-symbol: ""; - --hr-icon-font: var(--its); -} - -.theme-dark.its, .theme-dark .its { - --deep-dark-accent: #3f1010; - --dark-accent: #652121; - --lite-accent: #c94d4d; - --accent: #863737; - --accent2: #42536e; - --accent2-lite: #61afef; - --accent-color: 134, 55, 55; - --side-bar: var(--note); - --side-bar-bg: var(--outer-bar); - --outer-bar: #0b0f13; - --dark-sidebar: #0d1014; - --bttn: var(--dark-accent); - --input-bg: rgba(0, 0, 0, 0.3); - --selected-rgb: 168, 60, 60; - --hvr: rgba(168, 60, 60, 0.4); - --hvr2: var(--highlight); - --hvr-active: rgba(212, 47, 47, 0.4); - --highlight: #7a141466; - --bg: #252c36; - --fg: #cfd7dd; - --success-bg: #32603e; - --failure-bg: #772d2d; - --inactive: #586477; - --outline: var(--outer-bar); - --folder: var(--accent); - --folder-open: #e05858; - --file-icon-color: #586477; - --file-icon-color: var(--inactive); - --lines: var(--hr); - --note: #1a1e24; - --note-rgb: 26, 30, 36; - --text: #bccad8; - --headers: #c14343; - --soft-text: #97a1b9; - --faint-text: #4e5b6f; - --code-text: #fa4545; - --footnote: #63778f; - --code-bg: #232831; - --embed-bg: var(--dark-sidebar); - --aside-bg: #11151d; - --th: var(--dark-accent); - --th-text: var(--text-dl); - --td: #06080c60; - --drop-shadow: #06080c60; - --tag: var(--dark-accent); - --tag-text: #d04e4e; - --table: #283345; - --hr: #2f3b4d; - --i-at: #bf5e5e; - --progress: var(--accent); - --progress-bg: var(--bg); - --graph-bg: var(--outer-bar); - --graph-lines: rgba(var(--selected-rgb), .2); - --graph-node: var(--text); - --graph-fill: var(--headers); - --graph-404: #727e93; - --graph-img: #4c78cc; - --graph-tag: var(--headers); - --graph-focused: var(--text-highlight-bg-active); - --theme-rainbow-1: #7c2929; - --theme-rainbow-2: #652121; - --theme-rainbow-3: #471d1d; - --theme-rainbow-4: #381919; - --theme-rainbow-5: #424c61; - --theme-rainbow-6: #2e333d; -} - -.theme-light.its, .theme-light .its { - --deep-dark-accent: #2f1010; - --dark-accent: #c35c5c; - --lite-accent: #cd2626; - --accent: #912e2e; - --accent2: #aac1d3; - --accent2-lite: #5599d0; - --side-bar: var(--note); - --side-bar-bg: var(--outer-bar); - --outer-bar: #eef3fd; - --dark-sidebar: #f1f5ff; - --bttn: var(--headers); - --input-bg: var(--td); - --selected-rgb: 52, 123, 237; - --hvr: rgba(255, 0, 0, 0.212); - --hvr2: var(--highlight); - --hvr-active:rgba(253, 115, 115, 0.4); - --highlight: rgba(229, 149, 149, 0.37); - --bg: #e1e9f6; - --fg: var(--accent); - --success-bg: #599049; - --failure-bg: #772d2d; - --inactive: #a6bbde; - --outline: var(--bg); - --folder: var(--accent); - --file-icon-color: #7e8ea3; - --file-icon-color: var(--inactive); - --folder-open: #ce6d6d; - --lines: #b5c2d8; - --icons: #d04e4e; - --note: #f8fbff; - --note-rgb: 248, 251, 255; - --text: #30353a; - --headers: #c14343; - --faint-text: #4e5b6f; - --soft-text: #697580; - --code-text: #ea4262; - --footnote: #8996a0; - --code-bg: var(--embed-bg); - --embed-bg: var(--dark-sidebar); - --aside-bg: var(--dark-sidebar); - --th: var(--headers); - --th-text: var(--text-dl); - --td: #d0ddef62; - --drop-shadow: #d0ddef62; - --tag: #c65656; - --tag-text: var(--lite-accent); - --table: #ccd6eb; - --hr: #d6deea; - --i-at: var(--folder); - --progress: var(--accent); - --progress-bg: var(--bg); - --graph-bg: var(--note); - --graph-lines: #e4e7f8; - --graph-node: var(--headers); - --graph-fill: var(--folder); - --graph-404: #727e93; - --graph-img: #4c78cc; - --graph-tag: #000000; - --graph-focused: var(--text-highlight-bg-active); - --theme-rainbow-1: #bb5555; - --theme-rainbow-2: #a53f3f; - --theme-rainbow-3: #862c2c; - --theme-rainbow-4: #662828; - --theme-rainbow-5: #697795; - --theme-rainbow-6: #a4aec2; -} - -.slrvb-g, -.slrvb-b, -.wotc-beyond, -.dnd, -.pathfinder, -.notion, -.drwn, -.its-d, -.mini, -.nebula, -.s-d, -.t-d, -.nord, -.accent-color, -.its { - --h1-font: var(--font); - --h2-font: var(--font); - --h3-font: var(--font); - --h4-font: var(--font); - --h5-font: var(--font); - --h6-font: var(--font); - --h1-weight: var(--header-weight); - --h2-weight: var(--header-weight); - --h3-weight: var(--header-weight); - --h4-weight: var(--header-weight); - --h5-weight: var(--header-weight); - --h6-weight: var(--header-weight); - --h1-color: var(--headers); - --h2-color: var(--headers); - --h3-color: var(--headers); - --h4-color: var(--headers); - --h5-color: var(--headers); - --h6-color: var(--headers); - --illusion-h1-background: var(--theme-rainbow-1); - --illusion-h2-background: var(--theme-rainbow-2); - --illusion-h3-background: var(--theme-rainbow-3); - --illusion-h4-background: var(--theme-rainbow-4); - --illusion-h5-background: var(--theme-rainbow-5); - --illusion-h6-background: var(--theme-rainbow-6); - --h1-border-line-height: var(--header-border-line-height); - --h2-border-line-height: var(--header-border-line-height); - --h3-border-line-height: var(--header-border-line-height); - --h4-border-line-height: var(--header-border-line-height); - --h5-border-line-height: var(--header-border-line-height); - --h6-border-line-height: var(--header-border-line-height); - --header-border-line-color: var(--table); - --h1-border-line-color: var(--header-border-line-color); - --h2-border-line-color: var(--header-border-line-color); - --h3-border-line-color: var(--header-border-line-color); - --h4-border-line-color: var(--header-border-line-color); - --h5-border-line-color: var(--header-border-line-color); - --h6-border-line-color: var(--header-border-line-color); - --h1-border-left-color: var(--h1-border-line-color); - --h2-border-left-color: var(--h2-border-line-color); - --h3-border-left-color: var(--h3-border-line-color); - --h4-border-left-color: var(--h4-border-line-color); - --h5-border-left-color: var(--h5-border-line-color); - --h6-border-left-color: var(--h6-border-line-color); - --h1-border-right-color: var(--h1-border-line-color); - --h2-border-right-color: var(--h2-border-line-color); - --h3-border-right-color: var(--h3-border-line-color); - --h4-border-right-color: var(--h4-border-line-color); - --h5-border-right-color: var(--h5-border-line-color); - --h6-border-right-color: var(--h6-border-line-color); - --font-print-override: var(--font-default); - --icon-color: var(--soft-text); - --metadata-icon-color: var(--icon-color); - --metadata-button-text-color: var(--inactive); - --inline-title-color: var(--headers); - --inline-title-font: var(--h1-font); - --inline-title-weight: var(--h1-weight); - --link-color: var(--accent2-lite); - --link-color-hover: var(--lite-accent); - --link-external-color: var(--text-accent); - --link-external-color-hover: var(--text-accent-hover); - --link-unresolved-color: var(--inactive); - --embed-border-left-color: var(--headers); - --embed-border-color-hover: var(--outline); - --embed-border-left-color-hover: var(--embed-border-left-color); - --embed-border-right-color-hover: var(--embed-border-color-hover); - --embed-border-top-color-hover: var(--embed-border-color-hover); - --embed-border-bottom-color-hover: var(--embed-border-color-hover); - --code-normal: var(--code-text); - --code-background: var(--code-bg); - --checkbox-color: var(--accent); - --checkbox-border-color: var(--accent); - --checkbox-color-hover: var(--dark-accent); - --lines: var(--hr); - --indentation-guide-color: var(--lines); - --indentation-guide-color-active: var(--accent); - --list-color-1: var(--indentation-guide-color); - --list-color-2: var(--indentation-guide-color); - --list-color-3: var(--indentation-guide-color); - --list-color-4: var(--indentation-guide-color); - --list-color-5: var(--indentation-guide-color); - --list-color-6: var(--indentation-guide-color); - --list-marker-color: var(--accent); - --list-numbered-color: var(--lite-accent); - --th: var(--dark-accent); - --table-header-background: var(--th); - --table-header-background-hover: var(--accent); - --table-column-alt-background: var(--td); - --table-row-alt-background: var(--td); - --table-row-background-hover: var(--highlight); - --table-border-color: var(--note); - --dataview-th-count-color: var(--dataview-th-color); - --dataview-th-background: var(--outer-bar); - --dataview-th-alt-color: rgba(var(--accent-color), 10%); - --dataview-th-color: var(--headers); - --dataview-th-border-bottom: 2px solid var(--headers); - --tag: var(--dark-accent); - --tag-background: var(--tag); - --tag-background-hover: var(--accent); - --tag-border-color: var(--tag); - --tag-border-color-hover: var(--accent); - --embed-border-left: 2px solid var(--headers); - --hr-color: var(--hr); - --hr-icon-color: var(--headers); - --hr-icon-background: var(--note); - --blockquote-border-color: var(--bg); - --blockquote-background-color: var(--embed-bg); - --folder: var(--headers); - --nav-item-background-hover: var(--dark-accent); - --sidebar-tab-background-color-hover: var(--accent); - --latex-color: var(--lite-accent); - --latex-format-color: var(--inactive); - --latex-syntax-color: var(--soft-text); - --i-at: var(--soft-text); - background-color: var(--background-primary); - --background-primary: var(--note); - --background-primary-alt: var(--deep-dark-accent); - --background-secondary: var(--side-bar); - --background-secondary-alt: var(--outer-bar); - --background-modifier-border: var(--table); - --background-modifier-hover: var(--hvr-active); - --background-modifier-form-field: var(--td); - --text-highlight-bg: var(--hvr); - --text-highlight-bg-active: var(--hvr-active); - --text-selection: var(--highlight); - --text-normal: var(--text); - --text-muted: var(--soft-text); - --text-accent: var(--accent2-lite); - --text-accent-hover: var(--accent2); - --interactive-normal: var(--outer-bar); - --interactive-hover: var(--inactive); - --interactive-accent: var(--dark-accent); - --interactive-accent-hover: var(--inactive); - --scrollbar-bg: var(--bg); - --scrollbar-thumb-bg: var(--tag); - --graph-bg: var(--note); - --graph-lines: var(--highlight); - --graph-node: var(--text); - --graph-fill: var(--lite-accent); - --graph-404: var(--inactive); - --graph-img: var(--accent2); - --graph-tag: var(--dark-accent); - --graph-focused: var(--accent2-lite); -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Minimal/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Minimal/manifest.json deleted file mode 100644 index 247f8df..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Minimal/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Minimal", - "version": "7.4.7", - "minAppVersion": "1.5.0", - "author": "@kepano", - "authorUrl": "https://twitter.com/kepano", - "fundingUrl": "https://www.buymeacoffee.com/kepano" -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Minimal/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Minimal/theme.css deleted file mode 100644 index 2edeb30..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Minimal/theme.css +++ /dev/null @@ -1,2158 +0,0 @@ -/* --------------------------------------------------------------------------- - -Minimal Theme by @kepano - -User interface replacement for Obsidian. - -Designed to be used with the Minimal Theme Settings -plugin and the Hider plugin. - -Sponsor my work: -https://www.buymeacoffee.com/kepano - -Readme: -https://github.com/kepano/obsidian-minimal - ------------------------------------------------------------------------------ - -MIT License - -Copyright (c) 2020-2023 Stephan Ango (@kepano) - -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. - -*/ -body{--font-editor-theme:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Ubuntu,sans-serif;--font-editor:var(--font-editor-override),var(--font-text-override),var(--font-editor-theme)}body{--blockquote-style:normal;--blockquote-color:var(--text-muted);--blockquote-border-thickness:1px;--blockquote-border-color:var(--quote-opening-modifier);--embed-block-shadow-hover:none;--font-ui-smaller:11px;--normal-weight:400;--bold-weight:600;--link-weight:inherit;--inline-title-margin-bottom:1rem;--h1-size:1.125em;--h2-size:1.05em;--h3-size:1em;--h4-size:0.90em;--h5-size:0.85em;--h6-size:0.85em;--h1-weight:600;--h2-weight:600;--h3-weight:500;--h4-weight:500;--h5-weight:500;--h6-weight:400;--h1-variant:normal;--h2-variant:normal;--h3-variant:normal;--h4-variant:normal;--h5-variant:small-caps;--h6-variant:small-caps;--h1-style:normal;--h2-style:normal;--h3-style:normal;--h4-style:normal;--h5-style:normal;--h6-style:normal;--line-width:40rem;--line-height:1.5;--line-height-normal:var(--line-height);--max-width:88%;--max-col-width:18em;--icon-muted:0.5;--nested-padding:1.1em;--folding-offset:32px;--list-edit-offset:0.5em;--list-indent:2em;--list-spacing:0.075em;--input-height:32px;--header-height:40px;--metadata-label-width:9rem;--metadata-label-font-size:var(--font-adaptive-small);--metadata-input-font-size:var(--font-adaptive-small);--mobile-left-sidebar-width:280pt;--mobile-right-sidebar-width:240pt;--top-left-padding-y:0px;--image-muted:0.7;--image-radius:4px;--heading-spacing:2em;--p-spacing:1.75rem;--border-width:1px;--table-border-width:var(--border-width);--table-selection:var(--text-selection);--table-selection-border-color:var(--text-accent);--table-selection-border-width:0px;--table-selection-border-radius:0px;--table-drag-handle-background-active:var(--text-selection);--table-drag-handle-color-active:var(--text-accent);--table-add-button-border-width:0px;--file-margins:var(--size-4-2) var(--size-4-12)}.mod-macos{--top-left-padding-y:24px}.is-phone{--metadata-label-font-size:var(--font-adaptive-smaller);--metadata-input-font-size:var(--font-adaptive-smaller)}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.is-phone{--border-width:0.75px}}body{--base-h:0;--base-s:0%;--base-l:96%;--accent-h:201;--accent-s:17%;--accent-l:50%}.theme-dark,.theme-light{--color-red-rgb:208,66,85;--color-orange-rgb:213,118,63;--color-yellow-rgb:229,181,103;--color-green-rgb:168,195,115;--color-cyan-rgb:115,187,178;--color-blue-rgb:108,153,187;--color-purple-rgb:158,134,200;--color-pink-rgb:176,82,121;--color-red:#d04255;--color-orange:#d5763f;--color-yellow:#e5b567;--color-green:#a8c373;--color-cyan:#73bbb2;--color-blue:#6c99bb;--color-purple:#9e86c8;--color-pink:#b05279}.theme-light,.theme-light.minimal-default-light,body .excalidraw{--bg1:white;--bg2:hsl( var(--base-h), var(--base-s), var(--base-l) );--bg3:hsla( var(--base-h), var(--base-s), calc(var(--base-l) - 50%), 0.12 );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 6%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 12%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 20%) );--tx1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 90%) );--tx2:hsl( var(--base-h), calc(var(--base-s) - 20%), calc(var(--base-l) - 45%) );--tx3:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) - 25%) );--tx4:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) - 60%) );--ax1:hsl( var(--accent-h), var(--accent-s), var(--accent-l) );--ax2:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) + 6%) );--hl1:hsla( var(--accent-h), 50%, calc(var(--base-l) - 20%), 30% );--hl2:rgba(255, 225, 0, 0.5);--sp1:white}.excalidraw.theme--dark,.theme-dark,.theme-dark.minimal-default-dark,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-l:60%;--base-l:15%;--bg1:hsl( var(--base-h), var(--base-s), var(--base-l) );--bg2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) - 2%) );--bg3:hsla( var(--base-h), var(--base-s), calc(var(--base-l) + 40%), 0.12 );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 6%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 12%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-l) + 20%) );--tx1:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 67%) );--tx2:hsl( var(--base-h), calc(var(--base-s) - 20%), calc(var(--base-l) + 45%) );--tx3:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 20%) );--tx4:hsl( var(--base-h), calc(var(--base-s) - 10%), calc(var(--base-l) + 50%) );--ax1:hsl( var(--accent-h), var(--accent-s), var(--accent-l) );--ax2:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) + 8%) );--ax3:hsl( var(--accent-h), var(--accent-s), calc(var(--accent-l) - 5%) );--hl1:hsla( var(--accent-h), 50%, 40%, 30% );--hl2:rgba(255, 177, 80, 0.3);--sp1:white}.theme-light.minimal-light-white{--background-primary:white;--background-secondary:white;--background-secondary-alt:white;--ribbon-background:white;--titlebar-background:white;--bg1:white}.theme-dark.minimal-dark-black{--base-d:0%;--titlebar-background:black;--background-primary:black;--background-secondary:black;--background-secondary-alt:black;--ribbon-background:black;--background-modifier-hover:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 10%));--tx1:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 75%) );--tx2:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 50%) );--tx3:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 25%) );--ui1:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 12%) );--ui2:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 20%) );--ui3:hsl( var(--base-h), var(--base-s), calc(var(--base-d) + 30%) )}.theme-light{--mono100:black;--mono0:white}.theme-dark{--mono100:white;--mono0:black}.theme-dark,.theme-light,.theme-light.minimal-light-contrast .titlebar,.theme-light.minimal-light-contrast.is-mobile .workspace-drawer.mod-left,.theme-light.minimal-light-contrast.minimal-status-off .status-bar{--background-modifier-accent:var(--ax3);--background-modifier-border-focus:var(--ui3);--background-modifier-border-hover:var(--ui2);--background-modifier-border:var(--ui1);--background-modifier-form-field-highlighted:var(--bg1);--background-modifier-form-field:var(--bg1);--background-modifier-success:var(--color-green);--background-modifier-hover:var(--bg3);--background-modifier-active-hover:var(--bg3);--background-primary:var(--bg1);--background-primary-alt:var(--bg2);--background-secondary:var(--bg2);--background-secondary-alt:var(--bg1);--background-table-rows:var(--bg2);--checkbox-color:var(--ax3);--code-normal:var(--tx1);--divider-color:var(--ui1);--frame-divider-color:var(--ui1);--icon-color-active:var(--tx1);--icon-color-focused:var(--tx1);--icon-color-hover:var(--tx2);--icon-color:var(--tx2);--icon-hex:var(--mono0);--interactive-accent-hover:var(--ax1);--interactive-accent:var(--ax3);--interactive-hover:var(--ui1);--list-marker-color:var(--tx3);--modal-border-color:var(--ui2);--nav-item-background-active:var(--bg3);--nav-item-background-hover:var(--bg3);--nav-item-color:var(--tx2);--nav-item-color-active:var(--tx1);--nav-item-color-hover:var(--tx1);--nav-collapse-icon-color:var(--tx2);--nav-collapse-icon-color-collapsed:var(--tx2);--nav-indentation-guide-color:var(--ui1);--prompt-border-color:var(--ui3);--quote-opening-modifier:var(--ui2);--ribbon-background:var(--bg2);--scrollbar-active-thumb-bg:var(--ui3);--scrollbar-bg:transparent;--scrollbar-thumb-bg:var(--ui1);--search-result-background:var(--bg1);--tab-text-color-focused-active:var(--tx1);--tab-outline-color:var(--ui1);--text-accent-hover:var(--ax2);--text-accent:var(--ax1);--text-blockquote:var(--tx2);--text-bold:var(--tx1);--text-code:var(--tx4);--text-error:var(--color-red);--text-faint:var(--tx3);--text-highlight-bg:var(--hl2);--text-italic:var(--tx1);--text-muted:var(--tx2);--text-normal:var(--tx1);--text-on-accent:var(--sp1);--text-selection:var(--hl1);--text-formatting:var(--tx3);--title-color-inactive:var(--tx2);--title-color:var(--tx1);--titlebar-background:var(--bg2);--titlebar-background-focused:var(--bg2);--titlebar-text-color-focused:var(--tx1);--workspace-background-translucent:hsla(var(--base-h),var(--base-s), var(--base-l), 0.7)}.theme-dark .view-actions,.theme-light .view-actions{--icon-color-active:var(--ax1)}.theme-light.minimal-light-contrast{--workspace-background-translucent:rgba(0,0,0,0.6)}.theme-light.minimal-light-contrast .theme-dark{--tab-container-background:var(--bg2);--ribbon-background-collapsed:var(--bg2)}.theme-light{--interactive-normal:var(--bg1);--interactive-accent-rgb:220,220,220;--active-line-bg:rgba(0,0,0,0.035);--background-modifier-cover:hsla(var(--base-h),calc(var(--base-s) - 70%),calc(var(--base-l) - 20%),0.5);--text-highlight-bg-active:rgba(0, 0, 0, 0.1);--background-modifier-error:rgba(255,0,0,0.14);--background-modifier-error-hover:rgba(255,0,0,0.08);--shadow-color:rgba(0, 0, 0, 0.1);--btn-shadow-color:rgba(0, 0, 0, 0.05)}.theme-dark{--interactive-normal:var(--bg3);--interactive-accent-rgb:66,66,66;--active-line-bg:rgba(255,255,255,0.04);--background-modifier-cover:hsla(var(--base-h),var(--base-s), calc(var(--base-l) - 12%), 0.5);--text-highlight-bg-active:rgba(255, 255, 255, 0.1);--background-modifier-error:rgba(255,20,20,0.12);--background-modifier-error-hover:rgba(255,20,20,0.18);--background-modifier-box-shadow:rgba(0, 0, 0, 0.3);--shadow-color:rgba(0, 0, 0, 0.3);--btn-shadow-color:rgba(0, 0, 0, 0.2)}.theme-light.minimal-light-white{--background-table-rows:var(--bg2)}.theme-light.minimal-light-tonal{--background-primary:var(--bg2);--background-primary-alt:var(--bg3);--background-table-rows:var(--bg3)}.theme-dark.minimal-dark-tonal{--ribbon-background:var(--bg1);--background-secondary:var(--bg1);--background-table-rows:var(--bg3)}.theme-dark.minimal-dark-black{--background-primary-alt:var(--bg3);--background-table-rows:var(--bg3);--modal-border:var(--ui2);--active-line-bg:rgba(255,255,255,0.085);--background-modifier-form-field:var(--bg3);--background-modifier-cover:hsla(var(--base-h),var(--base-s),calc(var(--base-d) + 8%),0.9);--background-modifier-box-shadow:rgba(0, 0, 0, 1)}body{--font-adaptive-normal:var(--font-text-size,var(--editor-font-size));--font-adaptive-small:calc(var(--font-ui-small) * 1.07);--font-adaptive-smaller:var(--font-ui-small);--font-adaptive-smallest:var(--font-ui-smaller);--line-width-wide:calc(var(--line-width) + 12.5%);--font-code:calc(var(--font-adaptive-normal) * 0.9);--table-text-size:calc(var(--font-adaptive-normal) * 0.875)}.minimal-dev-block-width .mod-root .workspace-leaf-content:after{display:flex;align-items:flex-end;content:"\00a0pane\00a0";font-size:12px;color:gray;font-family:var(--font-monospace);width:100%;max-width:100%;height:100vh;top:0;z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .view-header:after{display:flex;align-items:flex-end;color:green;font-size:12px;font-family:var(--font-monospace);content:" ";width:var(--folding-offset);height:100vh;border-left:1px solid green;border-right:1px solid green;background-color:rgba(0,128,0,.1);top:0;left:max(calc(50% - var(--line-width)/ 2 - 1px),calc(50% - var(--max-width)/ 2 - 1px));z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable-off .mod-root .view-header:after{display:flex;align-items:flex-end;color:green;font-size:12px;font-family:var(--font-monospace);content:" ";width:var(--folding-offset);height:100vh;border-left:1px solid green;border-right:1px solid green;background-color:rgba(0,128,0,.1);top:0;left:calc(50% - var(--max-width)/ 2 - 1px);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width .mod-root .view-content:before{display:flex;align-items:flex-end;content:"\00a0max\00a0";font-size:12px;color:red;width:var(--max-width);height:100vh;border-left:1px solid red;border-right:1px solid red;top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .workspace-leaf-content:before{display:flex;align-items:flex-end;content:"\00a0wide\00a0";font-size:12px;color:orange;font-family:var(--font-monospace);width:var(--line-width-wide);max-width:var(--max-width);height:100vh;border-left:1px solid orange;border-right:1px solid orange;background-color:rgba(255,165,0,.05);top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.minimal-dev-block-width.minimal-readable .mod-root .view-content:after{display:flex;align-items:flex-end;color:#00f;font-size:12px;font-family:var(--font-monospace);content:"\00a0normal";width:var(--line-width);max-width:var(--max-width);height:100vh;border-left:1px solid #00f;border-right:1px solid #00f;background-color:rgba(0,0,255,.08);top:0;left:50%;transform:translate(-50%,0);z-index:999;position:fixed;pointer-events:none}.CodeMirror-wrap>div>textarea{opacity:0}.markdown-source-view.mod-cm6 hr{border-width:2px}.mod-cm6 .cm-editor .cm-line{padding-left:0;padding-right:0}.cm-editor .cm-content{padding-top:.5em}.markdown-source-view{color:var(--text-normal)}.markdown-source-view.mod-cm6 .cm-sizer{display:block}.markdown-source-view.mod-cm6 .cm-scroller{padding-left:0;padding-right:0}.cm-s-obsidian .cm-line.HyperMD-header{padding-top:calc(var(--p-spacing)/ 2)}.markdown-rendered .mod-header+div>*{margin-block-start:0}body :not(.canvas-node) .markdown-source-view.mod-cm6 .cm-gutters{position:absolute!important;z-index:0;margin-inline-end:0}body :not(.canvas-node) .markdown-source-view.mod-cm6.is-rtl .cm-gutters{right:0}body{--line-number-color:var(--text-faint);--line-number-color-active:var(--text-muted)}.markdown-source-view.mod-cm6 .cm-gutters{color:var(--line-number-color)!important}.markdown-source-view.mod-cm6 .cm-editor .cm-gutterElement.cm-active .cm-heading-marker,.markdown-source-view.mod-cm6 .cm-editor .cm-lineNumbers .cm-gutterElement.cm-active{color:var(--line-number-color-active)}.cm-editor .cm-lineNumbers{background-color:var(--gutter-background)}.cm-editor .cm-lineNumbers .cm-gutterElement{min-width:var(--folding-offset);padding-inline-end:0.5em}.is-rtl .cm-editor .cm-lineNumbers .cm-gutterElement{text-align:left}@media (max-width:400pt){.cm-editor .cm-lineNumbers .cm-gutterElement{padding-inline-end:4px;padding-inline-start:8px}}.cm-editor .cm-lineNumbers .cm-gutterElement{font-variant-numeric:tabular-nums}.cm-editor .cm-gutterElement.cm-active .cm-heading-marker,.cm-editor .cm-lineNumbers .cm-gutterElement.cm-active{color:var(--text-muted)}.markdown-source-view.mod-cm6 .edit-block-button{cursor:var(--cursor);color:var(--text-faint);background-color:var(--background-primary);top:0;opacity:0;transition:opacity .2s;padding:4px 4px 4px 9px}.markdown-source-view.mod-cm6 .edit-block-button svg{margin:0!important}.markdown-source-view.mod-cm6.is-live-preview.is-readable-line-width .cm-embed-block>.edit-block-button{width:30px!important;padding-left:7px!important}.is-live-preview:not(.is-readable-line-width) .cm-embed-block>.edit-block-button{padding-left:0!important;margin-left:0!important;padding:4px}.markdown-source-view.mod-cm6 .edit-block-button:hover{background-color:var(--background-primary);color:var(--text-muted)}.markdown-source-view.mod-cm6 .edit-block-button svg{opacity:1}.markdown-source-view.mod-cm6 .edit-block-button:hover svg{opacity:1}.markdown-source-view.mod-cm6 .cm-embed-block{padding:0;border:0;border-radius:0}.markdown-source-view.mod-cm6 .cm-embed-block:hover{border:0}.metadata-container{--input-height:2rem}.markdown-source-view .metadata-container{transform:translateX(-4px)}body.metadata-heading-off .metadata-properties-heading{display:none}.metadata-add-property-off .mod-root .metadata-add-button{display:none}.metadata-dividers{--metadata-divider-width:1px;--metadata-gap:0px}.metadata-icons-off .workspace-leaf-content[data-type=all-properties] .tree-item-inner{margin-left:-16px}.metadata-icons-off .workspace-leaf-content[data-type=all-properties] .tree-item-icon{display:none}.metadata-icons-off .metadata-property-icon{display:none}figure{margin-inline-start:0;margin-inline-end:0}.markdown-preview-view .mod-highlighted{transition:background-color .3s ease;background-color:var(--text-selection);color:inherit}.inline-title{padding-top:16px}.minimal-status-off .status-bar{--status-bar-position:static;--status-bar-radius:0;--status-bar-border-width:1px 0 0 0;--status-bar-background:var(--background-secondary);--status-bar-border-color:var(--ui1)}body:not(.minimal-status-off) .status-bar{background-color:var(--background-primary);--status-bar-border-width:0}.status-bar{transition:color .2s linear;color:var(--text-faint);font-size:var(--font-adaptive-smallest)}.status-bar .sync-status-icon.mod-success,.status-bar .sync-status-icon.mod-working{color:var(--text-faint)}.status-bar:hover,.status-bar:hover .sync-status-icon.mod-success,.status-bar:hover .sync-status-icon.mod-working{color:var(--text-muted);transition:color .2s linear}.status-bar .plugin-sync:hover .sync-status-icon.mod-success,.status-bar .plugin-sync:hover .sync-status-icon.mod-working{color:var(--text-normal)}.status-bar .status-bar-item{cursor:var(--cursor)!important}.status-bar .status-bar-item.cMenu-statusbar-button:hover,.status-bar .status-bar-item.mod-clickable:hover,.status-bar .status-bar-item.plugin-editor-status:hover,.status-bar .status-bar-item.plugin-sync:hover{text-align:center;background-color:var(--background-modifier-hover)!important}.tab-stack-top-flipped{--tab-stacked-text-transform:rotate(180deg);--tab-stacked-text-align:right}.tab-stack-center{--tab-stacked-text-align:center}.tab-stack-center-flipped{--tab-stacked-text-transform:rotate(180deg);--tab-stacked-text-align:center}.tab-stack-bottom{--tab-stacked-text-transform:rotate(180deg)}.tab-stack-bottom-flipped{--tab-stacked-text-align:right}.view-header-title,.view-header-title-parent{text-overflow:ellipsis}.view-header-title-container:not(.mod-at-end):after{display:none}body:not(.is-mobile) .view-actions .view-action:last-child{margin-left:-1px}.minimal-focus-mode .workspace-ribbon:not(.is-collapsed)~.mod-root .view-header:hover .view-actions,.mod-right.is-collapsed~.mod-root .view-header:hover .view-actions,.view-action.is-active:hover,.workspace-ribbon.mod-left.is-collapsed~.mod-root .view-header:hover .view-actions,body:not(.minimal-focus-mode) .workspace-ribbon:not(.is-collapsed)~.mod-root .view-actions{opacity:1;transition:opacity .25s ease-in-out}.view-header-title-container{opacity:0;transition:opacity .1s ease-in-out}.view-header-title-container:focus-within{opacity:1;transition:opacity .1s ease-in-out}.view-header:hover .view-header-title-container,.workspace-tab-header-container:hover+.workspace-tab-container .view-header-title-container{opacity:1;transition:opacity .1s ease-in-out}.is-phone .view-header-title-container,.minimal-tab-title-visible .view-header-title-container{opacity:1}.minimal-tab-title-hidden .view-header-title-container{opacity:0}.minimal-tab-title-hidden .view-header-title-container:focus-within{opacity:1;transition:opacity .1s ease-in-out}.minimal-tab-title-hidden .view-header:hover .view-header-title-container,.minimal-tab-title-hidden .workspace-tab-header-container:hover+.workspace-tab-container .view-header-title-container{opacity:0}body.window-title-off .titlebar-text{display:none}.titlebar-button-container.mod-right{background-color:transparent!important}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame),.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white){--titlebar-background:var(--bg1)}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame).is-focused .workspace-tabs.mod-top,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .sidebar-toggle-button.mod-right,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .workspace-ribbon.mod-left.is-collapsed,.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white).is-focused .workspace-tabs.mod-top{--titlebar-background-focused:var(--bg1)}.is-hidden-frameless.theme-dark:not(.minimal-dark-black):not(.colorful-frame):not(.minimal-dark-tonal):not(.minimal-light-white) .workspace-ribbon.mod-left:not(.is-collapsed),.is-hidden-frameless.theme-light:not(.minimal-light-tonal):not(.colorful-frame):not(.minimal-light-white):not(.minimal-dark-tonal):not(.minimal-light-white) .workspace-ribbon.mod-left:not(.is-collapsed){--titlebar-background:var(--bg2)}.mod-macos.is-hidden-frameless:not(.is-popout-window) .sidebar-toggle-button.mod-right{right:0;padding-right:var(--size-4-2)}body.is-focused{--titlebar-background-focused:var(--background-secondary)}.is-hidden-frameless:not(.colorful-frame) .mod-left-split .mod-top .workspace-tab-header-container{--tab-container-background:var(--background-secondary)}.mod-root .workspace-tab-header-status-icon{color:var(--text-muted)}.modal button:not(.mod-warning),.modal.mod-settings button:not(.mod-cta):not(.mod-warning),.modal.mod-settings button:not(.mod-warning){white-space:nowrap;transition:background-color .2s ease-out,border-color .2s ease-out}button.mod-warning{border:1px solid var(--background-modifier-error);color:var(--text-error);box-shadow:0 1px 1px 0 var(--btn-shadow-color);transition:background-color .2s ease-out}button.mod-warning:hover{border:1px solid var(--background-modifier-error);color:var(--text-error);box-shadow:0 2px 3px 0 var(--btn-shadow-color);transition:background-color .2s ease-out}.document-replace,.document-search{max-width:100%;padding:0}.document-search-container{margin:0 auto;max-width:var(--max-width);width:var(--line-width)}.is-mobile .CodeMirror-foldgutter-open:after,.is-mobile span[title="Fold line"]:after{transform:translateX(-2px)!important}body.is-mobile .CodeMirror-foldgutter-folded:after,body.is-mobile span[title="Unfold line"]:after{content:"›";font-family:sans-serif;transform:translateY(-2px);transform:rotate(-90deg) translateY(2px) translateX(-.45em)}body.is-mobile .CodeMirror-foldgutter-open:after,body.is-mobile span[title="Fold line"]:after{content:"›";font-family:sans-serif;transform:rotate(360deg)}.modal-button-container .mod-checkbox{--checkbox-radius:4px}.modal-container.mod-confirmation .modal{width:480px;min-width:0}body{--progress-outline:var(--background-modifier-border);--progress-complete:var(--text-accent)}.markdown-preview-view progress,.markdown-rendered progress,.markdown-source-view.is-live-preview progress{width:220px}.markdown-preview-view progress[value]::-webkit-progress-bar,.markdown-rendered progress[value]::-webkit-progress-bar,.markdown-source-view.is-live-preview progress[value]::-webkit-progress-bar{box-shadow:inset 0 0 0 var(--border-width) var(--progress-outline)}.markdown-preview-view progress[value^='1']::-webkit-progress-value,.markdown-preview-view progress[value^='2']::-webkit-progress-value,.markdown-preview-view progress[value^='3']::-webkit-progress-value,.markdown-rendered progress[value^='1']::-webkit-progress-value,.markdown-rendered progress[value^='2']::-webkit-progress-value,.markdown-rendered progress[value^='3']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='1']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='2']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='3']::-webkit-progress-value{background-color:var(--color-red)}.markdown-preview-view progress[value^='4']::-webkit-progress-value,.markdown-preview-view progress[value^='5']::-webkit-progress-value,.markdown-rendered progress[value^='4']::-webkit-progress-value,.markdown-rendered progress[value^='5']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='4']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='5']::-webkit-progress-value{background-color:var(--color-orange)}.markdown-preview-view progress[value^='6']::-webkit-progress-value,.markdown-preview-view progress[value^='7']::-webkit-progress-value,.markdown-rendered progress[value^='6']::-webkit-progress-value,.markdown-rendered progress[value^='7']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='6']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='7']::-webkit-progress-value{background-color:var(--color-yellow)}.markdown-preview-view progress[value^='8']::-webkit-progress-value,.markdown-preview-view progress[value^='9']::-webkit-progress-value,.markdown-rendered progress[value^='8']::-webkit-progress-value,.markdown-rendered progress[value^='9']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='8']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value^='9']::-webkit-progress-value{background-color:var(--color-green)}.markdown-preview-view progress[value='1']::-webkit-progress-value,.markdown-preview-view progress[value='100']::-webkit-progress-value,.markdown-rendered progress[value='1']::-webkit-progress-value,.markdown-rendered progress[value='100']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='1']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='100']::-webkit-progress-value{background-color:var(--progress-complete)}.markdown-preview-view progress[value='0']::-webkit-progress-value,.markdown-preview-view progress[value='2']::-webkit-progress-value,.markdown-preview-view progress[value='3']::-webkit-progress-value,.markdown-preview-view progress[value='4']::-webkit-progress-value,.markdown-preview-view progress[value='5']::-webkit-progress-value,.markdown-preview-view progress[value='6']::-webkit-progress-value,.markdown-preview-view progress[value='7']::-webkit-progress-value,.markdown-preview-view progress[value='8']::-webkit-progress-value,.markdown-preview-view progress[value='9']::-webkit-progress-value,.markdown-rendered progress[value='0']::-webkit-progress-value,.markdown-rendered progress[value='2']::-webkit-progress-value,.markdown-rendered progress[value='3']::-webkit-progress-value,.markdown-rendered progress[value='4']::-webkit-progress-value,.markdown-rendered progress[value='5']::-webkit-progress-value,.markdown-rendered progress[value='6']::-webkit-progress-value,.markdown-rendered progress[value='7']::-webkit-progress-value,.markdown-rendered progress[value='8']::-webkit-progress-value,.markdown-rendered progress[value='9']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='0']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='2']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='3']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='4']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='5']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='6']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='7']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='8']::-webkit-progress-value,.markdown-source-view.is-live-preview progress[value='9']::-webkit-progress-value{background-color:var(--color-red)}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar,body:not(.native-scrollbars) ::-webkit-scrollbar{width:11px;background-color:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar:horizontal,body:not(.native-scrollbars) ::-webkit-scrollbar:horizontal{height:11px}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-corner,body:not(.native-scrollbars) ::-webkit-scrollbar-corner{background-color:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-track,body:not(.native-scrollbars) ::-webkit-scrollbar-track{background-color:transparent}body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb{background-clip:padding-box;border-radius:20px;border:3px solid transparent;background-color:var(--background-modifier-border);border-width:3px 3px 3px 3px;min-height:45px}body:not(.hider-scrollbars).styled-scrollbars .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:hover,body:not(.hider-scrollbars).styled-scrollbars .modal .vertical-tab-header::-webkit-scrollbar-thumb:hover,body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) .modal .vertical-tab-header::-webkit-scrollbar-thumb:hover,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:hover{background-color:var(--background-modifier-border-hover)}body:not(.hider-scrollbars).styled-scrollbars .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:active,body:not(.hider-scrollbars).styled-scrollbars .modal .vertical-tab-header::-webkit-scrollbar-thumb:active,body:not(.hider-scrollbars).styled-scrollbars ::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) .mod-left-split .workspace-tabs ::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) .modal .vertical-tab-header::-webkit-scrollbar-thumb:active,body:not(.native-scrollbars) ::-webkit-scrollbar-thumb:active{background-color:var(--background-modifier-border-focus)}.tooltip{transition:none;animation:none}.tooltip.mod-left,.tooltip.mod-right{animation:none}.tooltip.mod-error{color:var(--text-error)}.markdown-preview-view blockquote{padding:0 0 0 var(--nested-padding);font-size:var(--blockquote-size)}.markdown-source-view.mod-cm6 .HyperMD-quote,.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote{font-size:var(--blockquote-size)}.is-live-preview .cm-hmd-indent-in-quote{color:var(--text-faint)}.is-live-preview.is-readable-line-width>.cm-callout .callout{max-width:var(--max-width);margin:0 auto}.callouts-outlined .callout .callout-title{background-color:var(--background-primary);margin-top:-24px;z-index:200;width:fit-content;padding:0 .5em;margin-left:-.75em;letter-spacing:.05em;font-variant-caps:all-small-caps}.callouts-outlined .callout{overflow:visible;--callout-border-width:1px;--callout-border-opacity:0.5;--callout-title-size:0.8em;--callout-blend-mode:normal;background-color:transparent}.callouts-outlined .cm-embed-block.cm-callout{padding-top:12px}.callouts-outlined .callout-content .callout{margin-top:18px}body{--checkbox-radius:50%;--checkbox-top:2px;--checkbox-left:0px;--checkbox-margin:0px 6px 0px -2em}.checkbox-square{--checkbox-size:calc(var(--font-text-size) * 0.85);--checkbox-radius:4px;--checkbox-top:1px;--checkbox-left:0px;--checkbox-margin:0px 8px 0px -2em}body.minimal-strike-lists{--checklist-done-decoration:line-through}body:not(.minimal-strike-lists){--checklist-done-decoration:none;--checklist-done-color:var(--text-normal)}.markdown-preview-section>.contains-task-list{padding-bottom:.5em}.mod-cm6 .HyperMD-task-line[data-task] .cm-formatting-list-ol~.task-list-label .task-list-item-checkbox{margin:1px}.markdown-preview-view .task-list-item-checkbox{position:relative;top:var(--checkbox-top);left:var(--checkbox-left);line-height:0}.markdown-preview-view ul>li.task-list-item{text-indent:0}.is-mobile .mod-cm6 .HyperMD-task-line[data-task] .task-list-item-checkbox{margin-inline-start:-.4em}.is-mobile .markdown-preview-view input[type=checkbox].task-list-item-checkbox{top:.2em}.minimal-code-scroll{--code-white-space:pre}.minimal-code-scroll .HyperMD-codeblock.HyperMD-codeblock-bg{overflow-y:scroll;white-space:pre}.minimal-code-scroll .cm-hmd-codeblock{white-space:pre!important}@media print{.print{--code-background:#eee!important}}body{--embed-max-height:none;--embed-decoration-style:solid;--embed-decoration-color:var(--background-modifier-border-hover)}.embed-strict{--embed-background:transparent;--embed-border-left:0;--embed-padding:0}.embed-strict .markdown-embed-content{--folding-offset:0px}.embed-strict .el-embed-heading.el-p>p{margin-block-start:0;margin-block-end:0}.embed-strict .internal-embed .markdown-embed,.embed-strict .markdown-preview-view .markdown-embed,.embed-strict.markdown-preview-view .markdown-embed{padding:0}.embed-strict .internal-embed .markdown-embed .markdown-embed-title,.embed-strict .markdown-embed-title{display:none}.embed-strict .internal-embed:not([src*="#^"]) .markdown-embed-link{width:24px;opacity:0}.embed-underline .internal-embed:not(.pdf-embed){text-decoration-line:underline;text-decoration-style:var(--embed-decoration-style);text-decoration-color:var(--embed-decoration-color)}.embed-hide-title .markdown-embed-title{display:none}.contextual-typography .embed-strict .internal-embed .markdown-preview-view .markdown-preview-sizer>div,.embed-strict.contextual-typography .internal-embed .markdown-preview-view .markdown-preview-sizer>div{margin:0;width:100%}.markdown-embed .markdown-preview-view .markdown-preview-sizer{padding-bottom:0!important}.markdown-preview-view.is-readable-line-width .markdown-embed .markdown-preview-sizer,.markdown-preview-view.markdown-embed .markdown-preview-sizer{max-width:100%;width:100%;min-height:0!important;padding-bottom:0!important}.markdown-embed .markdown-preview-section div:last-child p,.markdown-embed .markdown-preview-section div:last-child ul{margin-block-end:2px}.markdown-preview-view .markdown-embed{margin-top:var(--nested-padding);padding:0 calc(var(--nested-padding)/ 2) 0 var(--nested-padding)}.internal-embed:not([src*="#^"]) .markdown-embed-link{right:0;width:100%}.file-embed-link,.markdown-embed-link{top:0;right:0;text-align:right;justify-content:flex-end}.file-embed-link svg,.markdown-embed-link svg{width:16px;height:16px}.markdown-embed .file-embed-link,.markdown-embed .markdown-embed-link{opacity:.6;transition:opacity .1s linear}.markdown-embed .file-embed-link:hover,.markdown-embed .markdown-embed-link:hover{opacity:1}.markdown-embed .file-embed-link:hover:hover,.markdown-embed .markdown-embed-link:hover:hover{background-color:transparent;--icon-color:var(--text-accent)}.file-embed-link:hover,.markdown-embed-link:hover{color:var(--text-muted)}.markdown-embed .markdown-preview-view{padding:0}.internal-embed .markdown-embed{border:0;border-left:1px solid var(--quote-opening-modifier);border-radius:0}a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}.theme-dark a[href*="obsidian://search"]{background-image:url("data:image/svg+xml,")}body{--adaptive-list-edit-offset:var(--list-edit-offset)}.is-rtl{--adaptive-list-edit-offset:calc(var(--list-edit-offset)*-1)}.markdown-preview-view ol>li,.markdown-preview-view ul>li,.markdown-source-view ol>li,.markdown-source-view ul>li,.mod-cm6 .HyperMD-list-line.cm-line{padding-top:var(--list-spacing);padding-bottom:var(--list-spacing)}.is-mobile ul>li:not(.task-list-item)::marker{font-size:.8em}.is-mobile .workspace-leaf-content:not([data-type=search]) .workspace-leaf-content[data-type=markdown] .nav-buttons-container{border-bottom:none;padding-top:5px}.is-mobile .mod-root .workspace-leaf-content[data-type=markdown] .search-input-container{width:calc(100% - 160px)}.embedded-backlinks .nav-header~.search-input-container{width:calc(100% - 140px);margin-top:12px}.embedded-backlinks .nav-buttons-container{position:absolute;right:0;top:14px}.embedded-backlinks .backlink-pane>.tree-item-self,.embedded-backlinks .backlink-pane>.tree-item-self:hover{text-transform:none;color:var(--text-normal);font-size:var(--font-adaptive-normal);font-weight:500;letter-spacing:unset}body{--pdf-dark-opacity:1}.theme-dark:not(.pdf-shadows-on),.theme-light:not(.pdf-shadows-on){--pdf-shadow:none;--pdf-thumbnail-shadow:none}.theme-dark:not(.pdf-shadows-on) .pdf-viewer .page,.theme-light:not(.pdf-shadows-on) .pdf-viewer .page{border:0}.theme-dark:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnailSelectionRing,.theme-light:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnailSelectionRing{padding:0}.theme-dark:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnail::after,.theme-light:not(.pdf-shadows-on) .pdf-sidebar-container .thumbnail::after{right:var(--size-4-2);bottom:var(--size-4-2)}.theme-dark{--pdf-thumbnail-shadow:0 0 1px 0 rgba(0,0,0,0.6);--pdf-shadow:0 0 1px 0 rgba(0,0,0,0.6)}.theme-dark .pdf-viewer .canvasWrapper{opacity:var(--pdf-dark-opacity)}.theme-dark.pdf-invert-dark .workspace-leaf-content[data-type=pdf] .pdf-thumbnail-view .thumbnailImage,.theme-dark.pdf-invert-dark .workspace-leaf-content[data-type=pdf] .pdf-viewer .canvasWrapper{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.theme-light.pdf-blend-light .workspace-leaf-content[data-type=pdf] .pdf-thumbnail-view .thumbnailImage,.theme-light.pdf-blend-light .workspace-leaf-content[data-type=pdf] .pdf-viewer .canvasWrapper{mix-blend-mode:multiply}body{--table-header-border-width:0;--table-column-first-border-width:0;--table-column-last-border-width:0;--table-row-last-border-width:0;--table-edge-cell-padding-first:0;--table-edge-cell-padding-last:0;--table-cell-padding:4px 10px;--table-header-size:var(--table-text-size)}.markdown-source-view.mod-cm6 table{border-collapse:collapse}.markdown-rendered th{--table-header-size:var(--table-text-size)}.markdown-preview-view table,.markdown-source-view.mod-cm6 table{border:var(--border-width) solid var(--border-color);border-collapse:collapse}.markdown-preview-view td,.markdown-preview-view th,.markdown-source-view.mod-cm6 td,.markdown-source-view.mod-cm6 th{padding:var(--table-cell-padding)}.markdown-preview-view td:first-child,.markdown-preview-view th:first-child,.markdown-source-view.mod-cm6 td:first-child,.markdown-source-view.mod-cm6 th:first-child{padding-left:var(--table-edge-cell-padding-first)}.markdown-preview-view td:first-child .table-cell-wrapper,.markdown-preview-view th:first-child .table-cell-wrapper,.markdown-source-view.mod-cm6 td:first-child .table-cell-wrapper,.markdown-source-view.mod-cm6 th:first-child .table-cell-wrapper{padding-left:0}.markdown-preview-view td:last-child,.markdown-preview-view th:last-child,.markdown-source-view.mod-cm6 td:last-child,.markdown-source-view.mod-cm6 th:last-child{padding-right:var(--table-edge-cell-padding-last)}.markdown-preview-view td:last-child .table-cell-wrapper,.markdown-preview-view th:last-child .table-cell-wrapper,.markdown-source-view.mod-cm6 td:last-child .table-cell-wrapper,.markdown-source-view.mod-cm6 th:last-child .table-cell-wrapper{padding-right:0}.cm-embed-block.cm-table-widget.markdown-rendered{margin-top:-8px!important;padding:var(--table-drag-padding)}.markdown-source-view.mod-cm6 .cm-table-widget .table-col-drag-handle{top:0;left:0!important}.markdown-source-view.mod-cm6 .cm-table-widget .table-row-drag-handle{top:0!important;left:0}.markdown-preview-view th,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th,.table-view-table>thead>tr>th{padding:var(--table-cell-padding)}.markdown-preview-view th:first-child,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th:first-child,.table-view-table>thead>tr>th:first-child{padding-left:var(--table-edge-cell-padding-first)}.markdown-preview-view th:last-child,.markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th:last-child,.table-view-table>thead>tr>th:last-child{padding-right:var(--table-edge-cell-padding-last)}.is-live-preview .el-table{width:100%;max-width:100%}.cm-hmd-table-sep-dummy,.cm-s-obsidian .HyperMD-table-row span.cm-hmd-table-sep{color:var(--text-faint);font-weight:400}body.minimal-unstyled-tags{--tag-background:transparent;--tag-background-hover:transparent;--tag-border-width:0px;--tag-padding-x:0;--tag-padding-y:0;--tag-size:inherit;--tag-color-hover:var(--text-accent-hover)}body.minimal-unstyled-tags.is-mobile.theme-dark{--tag-background:transparent}body:not(.minimal-unstyled-tags){--tag-size:0.8em;--tag-padding-y:0.2em;--tag-background:transparent;--tag-background-hover:transparent;--tag-color:var(--text-muted);--tag-border-width:1px;--tag-border-color:var(--background-modifier-border);--tag-border-color-hover:var(--background-modifier-border-hover);--tag-color-hover:var(--text-normal)}body.is-mobile.theme-dark{--tag-background:transparent}h1,h2,h3,h4{letter-spacing:-.02em}body,button,input{font-family:var(--font-interface)}.cm-s-obsidian span.cm-error{color:var(--color-red)}.markdown-preview-view,.popover,.workspace-leaf-content[data-type=markdown]{font-family:var(--font-text)}.markdown-preview-view,.view-content>.cm-s-obsidian,.view-content>.markdown-source-view.mod-cm6.is-live-preview>.cm-scroller,body{font-size:var(--font-adaptive-normal);font-weight:var(--normal-weight)}.view-content>.cm-s-obsidian,.view-content>.markdown-source-view,.view-content>.markdown-source-view.mod-cm6 .cm-scroller{font-family:var(--font-editor)}.cm-formatting:not(.cm-formatting-code-block):not(.cm-formatting-hashtag){color:var(--text-formatting)}.hide-markdown .is-live-preview .cm-formatting.cm-formatting-code.cm-inline-code,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-em,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-highlight,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-link,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-strikethrough,.hide-markdown .is-live-preview .cm-formatting.cm-formatting-strong{display:none}.hide-markdown .is-live-preview .cm-formatting-quote{opacity:0}.hide-markdown .is-live-preview .cm-formatting-link,.hide-markdown .is-live-preview .cm-formatting:has(+.cm-header),.hide-markdown .is-live-preview .cm-hmd-internal-link.cm-link-has-alias,.hide-markdown .is-live-preview .cm-link-alias-pipe{display:none}.active-line-on .cm-line.cm-active,.active-line-on .markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote.cm-active{background-color:var(--active-line-bg);box-shadow:-25vw 0 var(--active-line-bg),25vw 0 var(--active-line-bg)}body{--content-margin:auto;--content-margin-start:max( calc(50% - var(--line-width)/2), calc(50% - var(--max-width)/2) );--content-line-width:min(var(--line-width), var(--max-width))}.markdown-preview-view .markdown-preview-sizer.markdown-preview-sizer{max-width:100%;margin-inline:auto;width:100%}.markdown-source-view.mod-cm6.is-readable-line-width .cm-content,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer{max-width:100%;width:100%}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.embedded-backlinks,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.inline-title,.markdown-source-view.mod-cm6.is-readable-line-width .cm-sizer>.metadata-container{max-width:var(--max-width);width:var(--line-width);margin-inline:var(--content-margin)!important}.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>:not(div){max-width:var(--content-line-width);margin-inline-start:var(--content-margin-start)!important}.is-readable-line-width{--file-margins:1rem 0 0 0}.is-mobile .markdown-preview-view{--folding-offset:0}.minimal-line-nums .workspace-leaf-content[data-type=markdown]{--file-margins:var(--size-4-8) var(--size-4-8) var(--size-4-8) 48px}.minimal-line-nums .workspace-leaf-content[data-type=markdown].is-rtl{--file-margins:var(--size-4-8) 48px var(--size-4-8) var(--size-4-8)}.minimal-line-nums .workspace-leaf-content[data-type=markdown] .is-readable-line-width{--file-margins:1rem 0 0 var(--folding-offset)}.minimal-line-nums .workspace-leaf-content[data-type=markdown] .is-readable-line-width.is-rtl{--file-margins:1rem var(--folding-offset) 0 0}.minimal-line-nums .mod-left-split .markdown-preview-view,.minimal-line-nums .mod-left-split .markdown-source-view.mod-cm6 .cm-scroller,.minimal-line-nums .mod-right-split .markdown-preview-view,.minimal-line-nums .mod-right-split .markdown-source-view.mod-cm6 .cm-scroller{--file-margins:var(--size-4-5) var(--size-4-5) var(--size-4-5) 48px}.view-content .reader-mode-content.is-readable-line-width .markdown-preview-sizer{max-width:var(--max-width);width:var(--line-width)}.markdown-preview-view .inline-embed{--max-width:100%}body{--container-table-max-width:var(--max-width);--table-max-width:none;--table-width:auto;--table-margin:inherit;--table-wrapper-width:fit-content;--container-dataview-table-width:var(--line-width);--container-img-width:var(--line-width);--container-img-max-width:var(--max-width);--img-max-width:100%;--img-width:auto;--img-margin-start:var(--content-margin-start);--img-line-width:var(--content-line-width);--container-chart-width:var(--line-width);--container-chart-max-width:var(--max-width);--chart-max-width:none;--chart-width:auto;--container-map-width:var(--line-width);--container-map-max-width:var(--max-width);--map-max-width:none;--map-width:auto;--container-iframe-width:var(--line-width);--container-iframe-max-width:var(--max-width);--iframe-max-width:none;--iframe-width:auto}body .wide{--line-width:var(--line-width-wide);--container-table-width:var(--line-width-wide);--container-dataview-table-width:var(--line-width-wide);--container-img-width:var(--line-width-wide);--container-iframe-width:var(--line-width-wide);--container-map-width:var(--line-width-wide);--container-chart-width:var(--line-width-wide)}body .max{--line-width:var(--max-width);--container-table-width:var(--max-width);--container-dataview-table-width:var(--max-width);--container-img-width:var(--max-width);--container-iframe-width:var(--max-width);--container-map-width:var(--max-width);--container-chart-width:var(--max-width)}table.dataview{--table-min-width:min(var(--line-width),var(--max-width))}.cards table.dataview{--table-width:100%;--table-min-width:none}body{--table-drag-space:16px;--container-table-margin:calc(var(--content-margin-start) - var(--table-drag-space));--container-table-width:calc(var(--line-width) + var(--table-drag-space)*2);--table-drag-padding:var(--table-drag-space)}body:not(.table-100):not(.table-max):not(.table-wide) .markdown-preview-view{--container-table-margin:var(--content-margin-start)}.maximize-tables-auto{--container-table-max-width:100%;--container-table-width:100%;--container-dataview-table-width:100%;--container-table-margin:0;--table-drag-padding:var(--table-drag-space) 0;--table-max-width:100%;--table-margin:var(--content-margin-start) auto;--table-width:auto}.maximize-tables-auto .cards{--container-table-max-width:var(--max-width)}.maximize-tables-auto .cards .block-language-dataview{--table-margin:auto}.maximize-tables{--container-table-max-width:100%;--container-table-width:100%;--container-table-margin:0;--table-drag-padding:var(--table-drag-space) 0;--table-min-width:min(var(--line-width), var(--max-width));--table-max-width:100%;--table-margin:auto;--table-width:auto;--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px;--table-wrapper-width:auto}.table-100,.table-max,.table-wide{--table-max-width:100%;--table-width:100%}.table-wide{--container-table-width:var(--line-width-wide);--container-dataview-table-width:var(--line-width-wide);--container-table-margin:auto;--table-edge-cell-padding-first:0px}.table-max{--container-table-width:var(--max-width);--container-table-max-width:calc(var(--max-width) + var(--table-drag-space)*2);--container-dataview-table-width:var(--max-width);--container-table-margin:auto;--table-edge-cell-padding-first:0px;--table-margin:0}.table-100{--container-table-width:100%;--container-dataview-table-width:100%;--container-table-max-width:100%;--container-table-margin:auto;--table-edge-cell-padding-first:16px;--table-edge-cell-padding-last:16px;--table-margin:0;--table-drag-padding:var(--table-drag-space) 0}.table-100 .dataview.list-view-ul{max-width:var(--max-width);width:var(--line-width);margin-inline:auto}.img-100,.img-max,.img-wide{--img-max-width:100%;--img-width:100%}.img-wide{--container-img-width:var(--line-width-wide);--img-line-width:var(--line-width-wide);--img-margin-start:calc(50% - var(--line-width-wide)/2)}.img-max{--container-img-width:var(--max-width);--img-line-width:var(--max-width);--img-margin-start:calc(50% - var(--max-width)/2)}.img-100{--container-img-width:100%;--container-img-max-width:100%;--img-line-width:100%;--img-margin-start:0}.map-100,.map-max,.map-wide{--map-max-width:100%;--map-width:100%}.map-wide{--container-map-width:var(--line-width-wide)}.map-max{--container-map-width:var(--max-width)}.map-100{--container-map-width:100%;--container-map-max-width:100%}.chart-100,.chart-max,.chart-wide{--chart-max-width:100%;--chart-width:100%}.chart-wide{--container-chart-width:var(--line-width-wide)}.chart-max{--container-chart-width:var(--max-width)}.chart-100{--container-chart-width:100%;--container-chart-max-width:100%}.iframe-100,.iframe-max,.iframe-wide{--iframe-max-width:100%;--iframe-width:100%}.iframe-wide{--container-iframe-width:var(--line-width-wide)}.iframe-max{--container-iframe-width:var(--max-width)}.iframe-100{--container-iframe-width:100%;--container-iframe-max-width:100%}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .cm-table-widget,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>table),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .cm-table-widget,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>table){width:var(--container-table-width);max-width:var(--container-table-max-width);margin-inline:var(--container-table-margin)!important}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .table-wrapper,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .table-wrapper{width:var(--table-wrapper-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>.block-language-dataview>table),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>.block-language-dataviewjs),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>.block-language-dataview>table),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>.block-language-dataviewjs){width:var(--container-dataview-table-width);max-width:var(--container-table-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer table,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content table{width:var(--table-width);max-width:var(--table-max-width);margin-inline:var(--table-margin);min-width:var(--table-min-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .block-language-dataviewjs>:is(p,h1,h2,h3,h4,h5,h6),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .block-language-dataviewjs>:is(p,h1,h2,h3,h4,h5,h6){width:var(--line-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .block-language-dataviewjs>.dataview-error,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .block-language-dataviewjs>.dataview-error{margin:0 auto;width:var(--content-line-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer .dataview.dataview-error-box,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content .dataview.dataview-error-box{margin-inline:var(--table-margin)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed{padding-top:.25rem;padding-bottom:.25rem}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(.image-embed),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(.image-embed){width:var(--container-img-width);max-width:var(--container-img-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>.image-embed img,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(.image-embed) img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>.image-embed img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(.image-embed) img{max-width:var(--img-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>img,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>img{max-width:var(--img-line-width);margin-inline-start:var(--img-margin-start)!important}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-chart),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-dataviewjs canvas),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-chart),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-dataviewjs canvas){width:var(--container-chart-width);max-width:var(--container-chart-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-chart) canvas,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-dataviewjs canvas) canvas,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-chart) canvas,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-dataviewjs canvas) canvas{max-width:var(--map-chart-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-leaflet),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-leaflet){width:var(--container-map-width);max-width:var(--container-map-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.block-language-leaflet) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.block-language-leaflet) iframe{max-width:var(--map-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.cm-html-embed),.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>iframe),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.cm-html-embed),.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>iframe){width:var(--container-iframe-width);max-width:var(--container-iframe-max-width)}.markdown-preview-view.is-readable-line-width .markdown-preview-sizer div:has(>.cm-html-embed) iframe,.markdown-preview-view.is-readable-line-width .markdown-preview-sizer>div:has(>iframe) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content div:has(>.cm-html-embed) iframe,.markdown-source-view.mod-cm6.is-readable-line-width .cm-contentContainer.cm-contentContainer>.cm-content>div:has(>iframe) iframe{max-width:var(--iframe-max-width);width:var(--iframe-width)}.borders-none{--divider-width:0px;--tab-outline-width:0px}body{--cards-min-width:180px;--cards-max-width:1fr;--cards-mobile-width:120px;--cards-image-height:400px;--cards-padding:1.2em;--cards-image-fit:contain;--cards-background:transparent;--cards-border-width:1px;--cards-aspect-ratio:auto;--cards-columns:repeat(auto-fit, minmax(var(--cards-min-width), var(--cards-max-width)))}@media (max-width:400pt){body{--cards-min-width:var(--cards-mobile-width)}}.cards.table-100 table.dataview tbody,.table-100 .cards table.dataview tbody{padding:.25rem .75rem}.cards table.dataview{--table-width:100%;--table-edge-cell-padding-first:calc(var(--cards-padding)/2);--table-edge-cell-padding-last:calc(var(--cards-padding)/2);--table-cell-padding:calc(var(--cards-padding)/3) calc(var(--cards-padding)/2);line-height:1.3}.cards table.dataview tbody{clear:both;padding:.5rem 0;display:grid;grid-template-columns:var(--cards-columns);grid-column-gap:0.75rem;grid-row-gap:0.75rem}.cards table.dataview>tbody>tr{background-color:var(--cards-background);border:var(--cards-border-width) solid var(--background-modifier-border);display:flex;flex-direction:column;margin:0;padding:0 0 calc(var(--cards-padding)/3) 0;border-radius:6px;overflow:hidden;transition:box-shadow .15s linear;max-width:var(--cards-max-width);height:auto}.cards table.dataview>tbody>tr:hover{border:var(--cards-border-width) solid var(--background-modifier-border-hover);box-shadow:0 4px 6px 0 rgba(0,0,0,.05),0 1px 3px 1px rgba(0,0,0,.025);transition:box-shadow .15s linear}.cards table.dataview tbody>tr>td:first-child{font-weight:var(--bold-weight);border:none}.cards table.dataview tbody>tr>td:first-child a{display:block}.cards table.dataview tbody>tr>td:last-child{border:none}.cards table.dataview tbody>tr>td:not(:first-child){font-size:calc(var(--table-text-size) * .9);color:var(--text-muted)}.cards table.dataview tbody>tr>td>*{padding:calc(var(--cards-padding)/3) 0}.cards table.dataview tbody>tr>td:not(:last-child):not(:first-child){padding:4px 0;border-bottom:1px solid var(--background-modifier-border);width:calc(100% - var(--cards-padding));margin:0 calc(var(--cards-padding)/2)}.cards table.dataview tbody>tr>td a{text-decoration:none}.cards table.dataview tbody>tr>td>button{width:100%;margin:calc(var(--cards-padding)/2) 0}.cards table.dataview tbody>tr>td:last-child>button{margin-bottom:calc(var(--cards-padding)/6)}.cards table.dataview tbody>tr>td>ul{width:100%;padding:.25em 0!important;margin:0 auto!important}.cards table.dataview tbody>tr>td:has(img){padding:0!important;background-color:var(--background-secondary);display:block;margin:0;width:100%}.cards table.dataview tbody>tr>td img{aspect-ratio:var(--cards-aspect-ratio);width:100%;object-fit:var(--cards-image-fit);max-height:var(--cards-image-height);background-color:var(--background-secondary);vertical-align:bottom}.markdown-source-view.mod-cm6.cards .dataview.table-view-table>tbody>tr>td,.trim-cols .cards table.dataview tbody>tr>td{white-space:normal}.links-int-on .cards table{--link-decoration:none}.markdown-source-view.mod-cm6.cards .edit-block-button{top:-1px;right:28px;opacity:1}.cards.table-100 table.dataview thead>tr,.table-100 .cards table.dataview thead>tr{right:.75rem}.cards.table-100 table.dataview thead:before,.table-100 .cards table.dataview thead:before{margin-right:.75rem}.cards table.dataview thead{user-select:none;width:180px;display:block;float:right;position:relative;text-align:right;height:24px;padding-bottom:0}.cards table.dataview thead:hover:after{background-color:var(--background-modifier-hover)}.cards table.dataview thead:hover:before{background-color:var(--text-muted)}.cards table.dataview thead:after,.cards table.dataview thead:before{content:'';position:absolute;right:0;top:0;width:10px;height:16px;cursor:var(--cursor);text-align:right;padding:var(--size-4-1) var(--size-4-2);margin-bottom:2px;border-radius:var(--radius-s);font-weight:500;font-size:var(--font-adaptive-small)}.cards table.dataview thead:before{background-color:var(--text-faint);-webkit-mask-repeat:no-repeat;-webkit-mask-size:16px;-webkit-mask-position:center center;-webkit-mask-image:url('data:image/svg+xml;utf8,')}.cards table.dataview thead>tr{top:-1px;position:absolute;display:none;z-index:9;border:1px solid var(--background-modifier-border-hover);background-color:var(--background-secondary);box-shadow:var(--shadow-s);padding:6px;border-radius:var(--radius-m);flex-direction:column;margin:24px 0 0 0;width:100%}.cards table.dataview thead:hover>tr{display:flex;height:auto}.cards table.dataview thead>tr>th{display:block;padding:3px 30px 3px 6px!important;border-radius:var(--radius-s);width:100%;font-weight:400;color:var(--text-normal);cursor:var(--cursor);border:none;font-size:var(--font-ui-small)}.cards table.dataview thead>tr>th[sortable-style=sortable-asc],.cards table.dataview thead>tr>th[sortable-style=sortable-desc]{color:var(--text-normal)}.cards table.dataview thead>tr>th:hover{color:var(--text-normal);background-color:var(--background-modifier-hover)}.list-cards.markdown-preview-view .list-bullet,.list-cards.markdown-preview-view .list-collapse-indicator,.list-cards.markdown-preview-view.markdown-rendered.show-indentation-guide li>ul::before{display:none}.list-cards.markdown-preview-view div>ul{display:grid;gap:.75rem;grid-template-columns:var(--cards-columns);padding:0;line-height:var(--line-height-tight)}.list-cards.markdown-preview-view div>ul>li{background-color:var(--cards-background);padding:calc(var(--cards-padding)/2);border-radius:var(--radius-s);border:var(--cards-border-width) solid var(--background-modifier-border);overflow:hidden}.list-cards.markdown-preview-view div>ul .image-embed{padding:0;display:block;background-color:var(--background-secondary);border-radius:var(--image-radius)}.list-cards.markdown-preview-view div>ul .image-embed img{aspect-ratio:var(--cards-aspect-ratio);object-fit:var(--cards-image-fit);max-height:var(--cards-image-height);background-color:var(--background-secondary);vertical-align:bottom}.list-cards.markdown-preview-view div>ul>li>a{--link-decoration:none;--link-external-decoration:none;font-weight:var(--bold-weight)}.list-cards.markdown-preview-view div ul>li:hover{border-color:var(--background-modifier-border-hover)}.list-cards.markdown-preview-view div ul ul{display:block;width:100%;color:var(--text-muted);font-size:var(--font-smallest);margin:calc(var(--cards-padding)/-4) 0;padding:calc(var(--cards-padding)/2) 0}.list-cards.markdown-preview-view div ul ul ul{padding-bottom:calc(var(--cards-padding)/4)}.list-cards.markdown-preview-view div ul ul>li{display:block}.cards.cards-16-9,.list-cards.cards-16-9{--cards-aspect-ratio:16/9}.cards.cards-1-1,.list-cards.cards-1-1{--cards-aspect-ratio:1/1}.cards.cards-2-1,.list-cards.cards-2-1{--cards-aspect-ratio:2/1}.cards.cards-2-3,.list-cards.cards-2-3{--cards-aspect-ratio:2/3}.cards.cards-cols-1,.list-cards.cards-cols-1{--cards-columns:repeat(1, minmax(0, 1fr))}.cards.cards-cols-2,.list-cards.cards-cols-2{--cards-columns:repeat(2, minmax(0, 1fr))}.cards.cards-cover,.list-cards.cards-cover{--cards-image-fit:cover}.cards.cards-align-bottom table.dataview tbody>tr>td:last-child,.list-cards.cards-align-bottom table.dataview tbody>tr>td:last-child{margin-top:auto}@media (max-width:400pt){.cards table.dataview tbody>tr>td:not(:first-child){font-size:80%}}@media (min-width:400pt){.cards-cols-3{--cards-columns:repeat(3, minmax(0, 1fr))}.cards-cols-4{--cards-columns:repeat(4, minmax(0, 1fr))}.cards-cols-5{--cards-columns:repeat(5, minmax(0, 1fr))}.cards-cols-6{--cards-columns:repeat(6, minmax(0, 1fr))}.cards-cols-7{--cards-columns:repeat(7, minmax(0, 1fr))}.cards-cols-8{--cards-columns:repeat(8, minmax(0, 1fr))}}.cm-formatting.cm-formatting-task.cm-property{font-family:var(--font-monospace);font-size:90%}input[data-task="!"]:checked,input[data-task="*"]:checked,input[data-task="-"]:checked,input[data-task="<"]:checked,input[data-task=">"]:checked,input[data-task="I"]:checked,input[data-task="b"]:checked,input[data-task="c"]:checked,input[data-task="d"]:checked,input[data-task="f"]:checked,input[data-task="k"]:checked,input[data-task="l"]:checked,input[data-task="p"]:checked,input[data-task="u"]:checked,input[data-task="w"]:checked,li[data-task="!"]>input:checked,li[data-task="!"]>p>input:checked,li[data-task="*"]>input:checked,li[data-task="*"]>p>input:checked,li[data-task="-"]>input:checked,li[data-task="-"]>p>input:checked,li[data-task="<"]>input:checked,li[data-task="<"]>p>input:checked,li[data-task=">"]>input:checked,li[data-task=">"]>p>input:checked,li[data-task="I"]>input:checked,li[data-task="I"]>p>input:checked,li[data-task="b"]>input:checked,li[data-task="b"]>p>input:checked,li[data-task="c"]>input:checked,li[data-task="c"]>p>input:checked,li[data-task="d"]>input:checked,li[data-task="d"]>p>input:checked,li[data-task="f"]>input:checked,li[data-task="f"]>p>input:checked,li[data-task="k"]>input:checked,li[data-task="k"]>p>input:checked,li[data-task="l"]>input:checked,li[data-task="l"]>p>input:checked,li[data-task="p"]>input:checked,li[data-task="p"]>p>input:checked,li[data-task="u"]>input:checked,li[data-task="u"]>p>input:checked,li[data-task="w"]>input:checked,li[data-task="w"]>p>input:checked{--checkbox-marker-color:transparent;border:none;border-radius:0;background-image:none;background-color:currentColor;-webkit-mask-size:var(--checkbox-icon);-webkit-mask-position:50% 50%}input[data-task=">"]:checked,li[data-task=">"]>input:checked,li[data-task=">"]>p>input:checked{color:var(--text-faint);transform:rotate(90deg);-webkit-mask-position:50% 100%;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M10.894 2.553a1 1 0 00-1.788 0l-7 14a1 1 0 001.169 1.409l5-1.429A1 1 0 009 15.571V11a1 1 0 112 0v4.571a1 1 0 00.725.962l5 1.428a1 1 0 001.17-1.408l-7-14z' /%3E%3C/svg%3E")}input[data-task="<"]:checked,li[data-task="<"]>input:checked,li[data-task="<"]>p>input:checked{color:var(--text-faint);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z' clip-rule='evenodd' /%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="?"]:checked,li[data-task="?"]>input:checked,li[data-task="?"]>p>input:checked{--checkbox-marker-color:transparent;background-color:var(--color-yellow);border-color:var(--color-yellow);background-position:50% 50%;background-size:200% 90%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="white" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task="?"]:checked,.theme-dark li[data-task="?"]>input:checked,.theme-dark li[data-task="?"]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"%3E%3Cpath fill="black" fill-opacity="0.8" fill-rule="evenodd" d="M4.475 5.458c-.284 0-.514-.237-.47-.517C4.28 3.24 5.576 2 7.825 2c2.25 0 3.767 1.36 3.767 3.215c0 1.344-.665 2.288-1.79 2.973c-1.1.659-1.414 1.118-1.414 2.01v.03a.5.5 0 0 1-.5.5h-.77a.5.5 0 0 1-.5-.495l-.003-.2c-.043-1.221.477-2.001 1.645-2.712c1.03-.632 1.397-1.135 1.397-2.028c0-.979-.758-1.698-1.926-1.698c-1.009 0-1.71.529-1.938 1.402c-.066.254-.278.461-.54.461h-.777ZM7.496 14c.622 0 1.095-.474 1.095-1.09c0-.618-.473-1.092-1.095-1.092c-.606 0-1.087.474-1.087 1.091S6.89 14 7.496 14Z"%2F%3E%3C%2Fsvg%3E')}input[data-task="/"]:checked,li[data-task="/"]>input:checked,li[data-task="/"]>p>input:checked{background-image:none;background-color:transparent;position:relative;overflow:hidden}input[data-task="/"]:checked:after,li[data-task="/"]>input:checked:after,li[data-task="/"]>p>input:checked:after{top:0;left:0;content:" ";display:block;position:absolute;background-color:var(--background-modifier-accent);width:calc(50% - .5px);height:100%;-webkit-mask-image:none}input[data-task="!"]:checked,li[data-task="!"]>input:checked,li[data-task="!"]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="\""]:checked,input[data-task="“"]:checked,li[data-task="\""]>input:checked,li[data-task="\""]>p>input:checked,li[data-task="“"]>input:checked,li[data-task="“"]>p>input:checked{--checkbox-marker-color:transparent;background-position:50% 50%;background-color:var(--color-cyan);border-color:var(--color-cyan);background-size:75%;background-repeat:no-repeat;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="white" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task="\""]:checked,.theme-dark input[data-task="“"]:checked,.theme-dark li[data-task="\""]>input:checked,.theme-dark li[data-task="\""]>p>input:checked,.theme-dark li[data-task="“"]>input:checked,.theme-dark li[data-task="“"]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"%3E%3Cpath fill="black" fill-opacity="0.7" d="M6.5 10c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.318.142-.686.238-1.028.466c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.945c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 6.5 10zm11 0c-.223 0-.437.034-.65.065c.069-.232.14-.468.254-.68c.114-.308.292-.575.469-.844c.148-.291.409-.488.601-.737c.201-.242.475-.403.692-.604c.213-.21.492-.315.714-.463c.232-.133.434-.28.65-.35l.539-.222l.474-.197l-.485-1.938l-.597.144c-.191.048-.424.104-.689.171c-.271.05-.56.187-.882.312c-.317.143-.686.238-1.028.467c-.344.218-.741.4-1.091.692c-.339.301-.748.562-1.05.944c-.33.358-.656.734-.909 1.162c-.293.408-.492.856-.702 1.299c-.19.443-.343.896-.468 1.336c-.237.882-.343 1.72-.384 2.437c-.034.718-.014 1.315.028 1.747c.015.204.043.402.063.539l.025.168l.026-.006A4.5 4.5 0 1 0 17.5 10z"%2F%3E%3C%2Fsvg%3E')}input[data-task="-"]:checked,li[data-task="-"]>input:checked,li[data-task="-"]>p>input:checked{color:var(--text-faint);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}body:not(.tasks) .markdown-preview-view ul li[data-task="-"].task-list-item.is-checked,body:not(.tasks) .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task]:is([data-task="-"]),body:not(.tasks) li[data-task="-"].task-list-item.is-checked{color:var(--text-faint);text-decoration:line-through solid var(--text-faint) 1px}input[data-task="*"]:checked,li[data-task="*"]>input:checked,li[data-task="*"]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z' /%3E%3C/svg%3E")}input[data-task="l"]:checked,li[data-task="l"]>input:checked,li[data-task="l"]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="i"]:checked,li[data-task="i"]>input:checked,li[data-task="i"]>p>input:checked{--checkbox-marker-color:transparent;background-color:var(--color-blue);border-color:var(--color-blue);background-position:50%;background-size:100%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="white" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="white" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task="i"]:checked,.theme-dark li[data-task="i"]>input:checked,.theme-dark li[data-task="i"]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172"%2F%3E%3Cpath fill="none" stroke="black" stroke-opacity="0.8" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138"%2F%3E%3Cpath fill="black" fill-opacity="0.8" d="M256 160a32 32 0 1 1 32-32a32 32 0 0 1-32 32Z"%2F%3E%3C%2Fsvg%3E')}input[data-task="S"]:checked,li[data-task="S"]>input:checked,li[data-task="S"]>p>input:checked{--checkbox-marker-color:transparent;border-color:var(--color-green);background-color:var(--color-green);background-size:100%;background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill="white" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E')}.theme-dark input[data-task="S"]:checked,.theme-dark li[data-task="S"]>input:checked,.theme-dark li[data-task="S"]>p>input:checked{background-image:url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="20" height="20" preserveAspectRatio="xMidYMid meet" viewBox="0 0 48 48"%3E%3Cpath fill-opacity="0.8" fill="black" fill-rule="evenodd" d="M26 8a2 2 0 1 0-4 0v2a8 8 0 1 0 0 16v8a4.002 4.002 0 0 1-3.773-2.666a2 2 0 0 0-3.771 1.332A8.003 8.003 0 0 0 22 38v2a2 2 0 1 0 4 0v-2a8 8 0 1 0 0-16v-8a4.002 4.002 0 0 1 3.773 2.666a2 2 0 0 0 3.771-1.332A8.003 8.003 0 0 0 26 10V8Zm-4 6a4 4 0 0 0 0 8v-8Zm4 12v8a4 4 0 0 0 0-8Z" clip-rule="evenodd"%2F%3E%3C%2Fsvg%3E')}input[data-task="I"]:checked,li[data-task="I"]>input:checked,li[data-task="I"]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M11 3a1 1 0 10-2 0v1a1 1 0 102 0V3zM15.657 5.757a1 1 0 00-1.414-1.414l-.707.707a1 1 0 001.414 1.414l.707-.707zM18 10a1 1 0 01-1 1h-1a1 1 0 110-2h1a1 1 0 011 1zM5.05 6.464A1 1 0 106.464 5.05l-.707-.707a1 1 0 00-1.414 1.414l.707.707zM5 10a1 1 0 01-1 1H3a1 1 0 110-2h1a1 1 0 011 1zM8 16v-1h4v1a2 2 0 11-4 0zM12 14c.015-.34.208-.646.477-.859a4 4 0 10-4.954 0c.27.213.462.519.476.859h4.002z' /%3E%3C/svg%3E")}input[data-task="f"]:checked,li[data-task="f"]>input:checked,li[data-task="f"]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.395 2.553a1 1 0 00-1.45-.385c-.345.23-.614.558-.822.88-.214.33-.403.713-.57 1.116-.334.804-.614 1.768-.84 2.734a31.365 31.365 0 00-.613 3.58 2.64 2.64 0 01-.945-1.067c-.328-.68-.398-1.534-.398-2.654A1 1 0 005.05 6.05 6.981 6.981 0 003 11a7 7 0 1011.95-4.95c-.592-.591-.98-.985-1.348-1.467-.363-.476-.724-1.063-1.207-2.03zM12.12 15.12A3 3 0 017 13s.879.5 2.5.5c0-1 .5-4 1.25-4.5.5 1 .786 1.293 1.371 1.879A2.99 2.99 0 0113 13a2.99 2.99 0 01-.879 2.121z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="k"]:checked,li[data-task="k"]>input:checked,li[data-task="k"]>p>input:checked{color:var(--color-yellow);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M18 8a6 6 0 01-7.743 5.743L10 14l-1 1-1 1H6v2H2v-4l4.257-4.257A6 6 0 1118 8zm-6-4a1 1 0 100 2 2 2 0 012 2 1 1 0 102 0 4 4 0 00-4-4z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="u"]:checked,li[data-task="u"]>input:checked,li[data-task="u"]>p>input:checked{color:var(--color-green);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 7a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0V8.414l-4.293 4.293a1 1 0 01-1.414 0L8 10.414l-4.293 4.293a1 1 0 01-1.414-1.414l5-5a1 1 0 011.414 0L11 10.586 14.586 7H12z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="d"]:checked,li[data-task="d"]>input:checked,li[data-task="d"]>p>input:checked{color:var(--color-red);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12 13a1 1 0 100 2h5a1 1 0 001-1V9a1 1 0 10-2 0v2.586l-4.293-4.293a1 1 0 00-1.414 0L8 9.586 3.707 5.293a1 1 0 00-1.414 1.414l5 5a1 1 0 001.414 0L11 9.414 14.586 13H12z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="w"]:checked,li[data-task="w"]>input:checked,li[data-task="w"]>p>input:checked{color:var(--color-purple);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M6 3a1 1 0 011-1h.01a1 1 0 010 2H7a1 1 0 01-1-1zm2 3a1 1 0 00-2 0v1a2 2 0 00-2 2v1a2 2 0 00-2 2v.683a3.7 3.7 0 011.055.485 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0 3.704 3.704 0 014.11 0 1.704 1.704 0 001.89 0A3.7 3.7 0 0118 12.683V12a2 2 0 00-2-2V9a2 2 0 00-2-2V6a1 1 0 10-2 0v1h-1V6a1 1 0 10-2 0v1H8V6zm10 8.868a3.704 3.704 0 01-4.055-.036 1.704 1.704 0 00-1.89 0 3.704 3.704 0 01-4.11 0 1.704 1.704 0 00-1.89 0A3.704 3.704 0 012 14.868V17a1 1 0 001 1h14a1 1 0 001-1v-2.132zM9 3a1 1 0 011-1h.01a1 1 0 110 2H10a1 1 0 01-1-1zm3 0a1 1 0 011-1h.01a1 1 0 110 2H13a1 1 0 01-1-1z' clip-rule='evenodd' /%3E%3C/svg%3E")}input[data-task="p"]:checked,li[data-task="p"]>input:checked,li[data-task="p"]>p>input:checked{color:var(--color-green);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z' /%3E%3C/svg%3E")}input[data-task="c"]:checked,li[data-task="c"]>input:checked,li[data-task="c"]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M18 9.5a1.5 1.5 0 11-3 0v-6a1.5 1.5 0 013 0v6zM14 9.667v-5.43a2 2 0 00-1.105-1.79l-.05-.025A4 4 0 0011.055 2H5.64a2 2 0 00-1.962 1.608l-1.2 6A2 2 0 004.44 12H8v4a2 2 0 002 2 1 1 0 001-1v-.667a4 4 0 01.8-2.4l1.4-1.866a4 4 0 00.8-2.4z' /%3E%3C/svg%3E")}input[data-task="b"]:checked,li[data-task="b"]>input:checked,li[data-task="b"]>p>input:checked{color:var(--color-orange);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M5 4a2 2 0 012-2h6a2 2 0 012 2v14l-5-2.5L5 18V4z' /%3E%3C/svg%3E")}.colorful-active .nav-files-container{--nav-item-background-active:var(--interactive-accent);--nav-item-color-active:var(--text-on-accent)}.colorful-active #calendar-container .active,.colorful-active #calendar-container .active.today,.colorful-active #calendar-container .active:hover,.colorful-active #calendar-container .day:active{background-color:var(--interactive-accent);color:var(--text-on-accent)}.colorful-active #calendar-container .active .dot,.colorful-active #calendar-container .day:active .dot,.colorful-active #calendar-container .today.active .dot{fill:var(--text-on-accent)}body:not(.colorful-active) .horizontal-tab-nav-item.is-active,body:not(.colorful-active) .vertical-tab-nav-item.is-active{background-color:var(--background-modifier-hover);color:var(--text-normal)}body{--frame-background:hsl( var(--frame-background-h), var(--frame-background-s), var(--frame-background-l));--frame-icon-color:var(--frame-muted-color)}.theme-light{--frame-background-h:var(--accent-h);--frame-background-s:var(--accent-s);--frame-background-l:calc(var(--accent-l) + 30%);--frame-outline-color:hsla( var(--frame-background-h), var(--frame-background-s), calc(var(--frame-background-l) - 6.5%), 1 );--frame-muted-color:hsl( var(--frame-background-h), calc(var(--frame-background-s) - 10%), calc(var(--frame-background-l) - 35%))}.theme-dark{--frame-background-h:var(--accent-h);--frame-background-s:var(--accent-s);--frame-background-l:calc(var(--accent-l) - 25%);--frame-outline-color:hsla( var(--frame-background-h), calc(var(--frame-background-s) - 2%), calc(var(--frame-background-l) + 6.5%), 1 );--frame-muted-color:hsl( var(--frame-background-h), calc(var(--frame-background-s) - 10%), calc(var(--frame-background-l) + 25%))}.colorful-frame.theme-dark{--tab-outline-width:0px}.colorful-frame,.colorful-frame.is-focused{--frame-divider-color:var(--frame-outline-color);--titlebar-background:var(--frame-background);--titlebar-background-focused:var(--frame-background);--titlebar-text-color:var(--frame-muted-color);--minimal-tab-text-color:var(--frame-muted-color)}.colorful-frame .workspace-tabs:not(.mod-stacked),.colorful-frame.is-focused .workspace-tabs:not(.mod-stacked){--tab-text-color:var(--minimal-tab-text-color);--tab-text-color-focused:var(--minimal-tab-text-color)}.colorful-frame .mod-top .workspace-tab-header-container,.colorful-frame .titlebar,.colorful-frame .workspace-ribbon.mod-left:before,.colorful-frame.is-focused .mod-top .workspace-tab-header-container,.colorful-frame.is-focused .titlebar,.colorful-frame.is-focused .workspace-ribbon.mod-left:before{--tab-outline-color:var(--frame-outline-color);--tab-divider-color:var(--frame-outline-color)}.colorful-frame .mod-root .workspace-tab-header .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-root .workspace-tab-header .workspace-tab-header-inner-icon{--icon-color:var(--minimal-tab-text-color-active);--icon-color-hover:var(--minimal-tab-text-color-active);--icon-color-active:var(--minimal-tab-text-color-active);--icon-color-focused:var(--minimal-tab-text-color-active)}.colorful-frame .mod-left-split .mod-top .workspace-tab-header,.colorful-frame .mod-right-split .mod-top .workspace-tab-header,.colorful-frame .sidebar-toggle-button,.colorful-frame .workspace-tab-header-new-tab,.colorful-frame .workspace-tab-header-tab-list,.colorful-frame .workspace-tab-header:not(.is-active),.colorful-frame.is-focused .mod-left-split .mod-top .workspace-tab-header,.colorful-frame.is-focused .mod-right-split .mod-top .workspace-tab-header,.colorful-frame.is-focused .sidebar-toggle-button,.colorful-frame.is-focused .workspace-tab-header-new-tab,.colorful-frame.is-focused .workspace-tab-header-tab-list,.colorful-frame.is-focused .workspace-tab-header:not(.is-active){--background-modifier-hover:var(--frame-outline-color);--icon-color:var(--frame-icon-color);--icon-color-hover:var(--frame-icon-color);--icon-color-active:var(--frame-icon-color);--icon-color-focused:var(--frame-icon-color);--icon-color-focus:var(--frame-icon-color)}.colorful-frame .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame .mod-right-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.colorful-frame.is-focused .mod-right-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon{color:var(--frame-icon-color)}.workspace-leaf-resize-handle{transition:none}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle{-webkit-app-region:no-drag;border:0;z-index:15}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:after{content:"";height:100%;width:1px;background:linear-gradient(180deg,var(--frame-outline-color) var(--header-height),var(--divider-color) var(--header-height));top:0;position:absolute}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:hover:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:hover:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:hover:after{background:var(--divider-color-hover)}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-right-split>.workspace-leaf-resize-handle:after{left:0}.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-left-split>.workspace-leaf-resize-handle:after,.colorful-frame.is-hidden-frameless:not(.minimal-focus-mode) .workspace-split.mod-vertical>*>.workspace-leaf-resize-handle:after{right:0}body.colorful-headings{--h1-color:var(--color-red);--h2-color:var(--color-orange);--h3-color:var(--color-yellow);--h4-color:var(--color-green);--h5-color:var(--color-blue);--h6-color:var(--color-purple)}body.colorful-headings .modal{--h1-color:var(--text-normal);--h2-color:var(--text-normal);--h3-color:var(--text-normal);--h4-color:var(--text-normal);--h5-color:var(--text-normal);--h6-color:var(--text-normal)}.is-mobile .tree-item-self .collapse-icon{width:20px}body:not(.minimal-icons-off) svg.calendar-day,body:not(.minimal-icons-off) svg.excalidraw-icon,body:not(.minimal-icons-off) svg.globe,body:not(.minimal-icons-off) svg.longform,body:not(.minimal-icons-off) svg.obsidian-leaflet-plugin-icon-map{background-color:currentColor}body:not(.minimal-icons-off) svg.excalidraw-icon path{display:none}body:not(.minimal-icons-off) svg.bar-graph{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.excalidraw-icon{-webkit-mask-image:url('data:image/svg+xml;utf8,')}body:not(.minimal-icons-off) svg.longform{-webkit-mask-image:url('data:image/svg+xml;utf8,')}.workspace-ribbon.mod-left{border-left:0;transition:none}.minimal-focus-mode.is-translucent .workspace-ribbon.mod-left.is-collapsed,.minimal-focus-mode.is-translucent .workspace-ribbon.mod-left.is-collapsed:before{background-color:var(--background-primary)!important}.minimal-focus-mode .workspace-ribbon.mod-left{transition:background-color 0s linear 0s}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed{border-color:transparent;background-color:var(--background-primary)}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:before{background-color:var(--background-primary);border-color:transparent}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed .side-dock-actions,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed .side-dock-settings{opacity:0;transition:opacity .1s ease-in-out .1s}.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:hover .side-dock-actions,.minimal-focus-mode .workspace-ribbon.mod-left.is-collapsed:hover .side-dock-settings{opacity:1;transition:opacity .1s ease-in-out .1s}.minimal-focus-mode.borders-title .workspace-ribbon.mod-left.is-collapsed{border-right:none}.minimal-focus-mode .mod-top-right-space .sidebar-toggle-button.mod-right{opacity:0}.minimal-focus-mode:not(.minimal-status-off) .status-bar{opacity:0;transition:opacity .2s ease-in-out}.minimal-focus-mode .status-bar:hover{opacity:1;transition:opacity .2s ease-in-out}.minimal-focus-mode .mod-root .workspace-tabs{position:relative}.minimal-focus-mode .mod-root .workspace-tabs:before:hover{background-color:#00f}.minimal-focus-mode .mod-root .workspace-tab-header-container{height:0;transition:all .1s linear .6s;--tab-outline-width:0px}.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-container-inner,.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-new-tab,.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-tab-list{opacity:0;transition:opacity .1s linear .6s}.minimal-focus-mode .mod-root .workspace-tab-header-container .workspace-tab-header-spacer:before{width:100%;content:" ";background-color:transparent;height:15px;position:absolute;z-index:100;top:0;left:0}.minimal-focus-mode .mod-root .workspace-tab-header-container:hover{height:var(--header-height);--tab-outline-width:1px;transition:all .1s linear 50ms}.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-container-inner,.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-new-tab,.minimal-focus-mode .mod-root .workspace-tab-header-container:hover .workspace-tab-header-tab-list{opacity:1;transition:opacity .1s linear 50ms}.minimal-focus-mode.mod-macos:not(.is-fullscreen) .workspace:not(.is-left-sidedock-open) .mod-root .workspace-tabs.mod-stacked .workspace-tab-container .workspace-tab-header-inner{padding-top:30px}body.show-view-header .app-container .workspace-split.mod-root>.workspace-leaf .view-header{transition:height .1s linear .1s}body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header{height:0;transition:all .1s linear .5s}body.minimal-focus-mode.show-view-header .view-header::after{width:100%;content:" ";background-color:transparent;height:40px;position:absolute;z-index:-9;top:0}body.minimal-focus-mode.show-view-header .view-actions,body.minimal-focus-mode.show-view-header .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header-title-container{opacity:0;transition:all .1s linear .5s}body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header:focus-within,body.minimal-focus-mode.show-view-header .mod-root .workspace-leaf .view-header:hover,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header{height:calc(var(--header-height) + 2px);transition:all .1s linear .1s}body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-actions,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .mod-root .workspace-tab-header-container:hover~.workspace-tab-container .view-header .view-header-title-container,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-actions,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header:focus-within .view-header-title-container,body.minimal-focus-mode.show-view-header .view-header:hover .view-actions,body.minimal-focus-mode.show-view-header .view-header:hover .view-header-nav-buttons,body.minimal-focus-mode.show-view-header .view-header:hover .view-header-title-container{opacity:1;transition:all .1s linear .1s}body.minimal-focus-mode.show-view-header .view-content{height:100%}.full-width-media{--iframe-width:100%}.full-width-media .markdown-preview-view .external-embed,.full-width-media .markdown-preview-view .image-embed img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-preview-view audio,.full-width-media .markdown-preview-view img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-preview-view p:has(.external-embed),.full-width-media .markdown-preview-view video,.full-width-media .markdown-source-view .external-embed,.full-width-media .markdown-source-view .image-embed img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-source-view audio,.full-width-media .markdown-source-view img:not(.link-favicon):not(.emoji):not([width]),.full-width-media .markdown-source-view p:has(.external-embed),.full-width-media .markdown-source-view video{width:100%}.markdown-rendered img:not(.emoji),.markdown-rendered video,.markdown-source-view img:not(.emoji),.markdown-source-view video{border-radius:var(--image-radius)}.table-small table:not(.calendar){--table-text-size:85%}.table-tiny table:not(.calendar){--table-text-size:75%}.row-hover{--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px}.row-alt{--table-row-alt-background:var(--background-table-rows);--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px}.col-alt .markdown-rendered:not(.cards){--table-column-alt-background:var(--background-table-rows)}.table-tabular table:not(.calendar){font-variant-numeric:tabular-nums}.table-lines{--table-border-width:var(--border-width);--table-header-border-width:var(--border-width);--table-column-first-border-width:var(--border-width);--table-column-last-border-width:var(--border-width);--table-row-last-border-width:var(--border-width);--table-edge-cell-padding:8px;--table-edge-cell-padding-first:8px;--table-edge-cell-padding-last:8px;--table-add-button-border-width:1px}.table-nowrap{--table-white-space:nowrap}.table-nowrap .table-wrap,.trim-cols{--table-white-space:normal}.table-numbers{--table-numbers-padding-right:0.5em}.table-numbers table:not(.calendar){counter-reset:section}.table-numbers table:not(.calendar)>thead>tr>th:first-child{white-space:nowrap}.table-numbers table:not(.calendar)>thead>tr>th:first-child::before{content:" ";padding-right:var(--table-numbers-padding-right);display:inline-block;min-width:2em}.table-numbers table:not(.calendar)>thead>tr>th:first-child .cm-s-obsidian,.table-numbers table:not(.calendar)>thead>tr>th:first-child .table-cell-wrapper{display:inline-block;min-width:10px}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child{white-space:nowrap}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper::before,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child::before{counter-increment:section;content:counter(section) " ";text-align:center;padding-right:var(--table-numbers-padding-right);display:inline-block;min-width:2em;color:var(--text-faint);font-variant-numeric:tabular-nums}.table-numbers table:not(.calendar).table-editor>tbody>tr>td:first-child .table-cell-wrapper .cm-s-obsidian,.table-numbers table:not(.calendar):not(.table-editor)>tbody>tr>td:first-child .cm-s-obsidian{display:inline-block;min-width:10px}.table-numbers .table-editor{--table-numbers-padding-right:0}.row-lines-off{--table-row-last-border-width:0}.row-lines-off .table-view-table>tbody>tr>td,.row-lines-off table:not(.calendar) tbody>tr:last-child>td,.row-lines-off table:not(.calendar) tbody>tr>td{border-bottom:none}.row-lines:not(.table-lines) .markdown-preview-view:not(.cards),.row-lines:not(.table-lines) .markdown-source-view:not(.cards){--table-row-last-border-width:0px}.row-lines:not(.table-lines) .markdown-preview-view:not(.cards) .table-view-table>tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-preview-view:not(.cards) table:not(.calendar) tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-source-view:not(.cards) .table-view-table>tbody>tr:not(:last-child)>td,.row-lines:not(.table-lines) .markdown-source-view:not(.cards) table:not(.calendar) tbody>tr:not(:last-child)>td{border-bottom:var(--table-border-width) solid var(--table-border-color)}.col-lines .table-view-table thead>tr>th:not(:last-child),.col-lines .table-view-table>tbody>tr>td:not(:last-child),.col-lines table:not(.calendar) tbody>tr>td:not(:last-child){border-right:var(--table-border-width) solid var(--background-modifier-border)}.row-hover{--table-row-background-hover:hsla( var(--accent-h), 50%, 80%, 20% )}.theme-dark .row-hover,.theme-dark.row-hover{--table-row-background-hover:hsla( var(--accent-h), 30%, 40%, 20% )}:root{--image-mix:normal}.image-blend-light{--image-mix:multiply}.theme-dark .markdown-preview-view img,.theme-dark .markdown-source-view img{opacity:var(--image-muted);transition:opacity .25s linear}@media print{body{--image-muted:1}}.theme-dark .markdown-preview-view img:hover,.theme-dark .markdown-source-view img:hover,.theme-dark .print-preview img{opacity:1;transition:opacity .25s linear}.theme-light img{mix-blend-mode:var(--image-mix)}div[src$="#invert"],div[src$="#multiply"]{background-color:var(--background-primary)}.theme-dark div[src$="#invert"] img,.theme-dark img[src$="#invert"],.theme-dark span[src$="#invert"] img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.theme-dark div[src$="#multiply"] img,.theme-dark img[src$="#multiply"],.theme-dark span[src$="#multiply"] img{mix-blend-mode:screen}.theme-light div[src$="#multiply"] img,.theme-light img[src$="#multiply"],.theme-light span[src$="#multiply"] img{mix-blend-mode:multiply}.theme-light div[src$="#invertW"] img,.theme-light img[src$="#invertW"],.theme-light span[src$=invertW] img{filter:invert(1) hue-rotate(180deg)}img[src$="#circle"],span[src$="#circle"] img,span[src$="#round"] img{border-radius:50%;aspect-ratio:1/1}img[src$="#outline"],span[src$="#outline"] img{border:1px solid var(--ui1)}img[src$="#interface"],span[src$="#interface"] img{border:1px solid var(--ui1);box-shadow:0 .5px .9px rgba(0,0,0,.021),0 1.3px 2.5px rgba(0,0,0,.03),0 3px 6px rgba(0,0,0,.039),0 10px 20px rgba(0,0,0,.06);margin-top:10px;margin-bottom:15px;border-radius:var(--radius-m)}body{--image-grid-fit:cover;--image-grid-background:transparent;--img-grid-gap:0.5rem}@media (max-width:400pt){body{--img-grid-gap:0.25rem}}.img-grid-ratio{--image-grid-fit:contain}.img-grid .image-embed.is-loaded{line-height:0}.img-grid .image-embed.is-loaded img{background-color:var(--image-grid-background)}.img-grid .image-embed.is-loaded img:active{background-color:transparent}.img-grid .markdown-preview-section>div:has(.image-embed)>p{display:grid;margin-block-start:var(--img-grid-gap);margin-block-end:var(--img-grid-gap);grid-column-gap:var(--img-grid-gap);grid-row-gap:0;grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.img-grid .markdown-preview-section>div:has(.image-embed)>p>br{display:none}.img-grid .markdown-preview-section>div:has(.image-embed)>p>img{object-fit:var(--image-grid-fit);align-self:stretch}.img-grid .markdown-preview-section>div:has(.image-embed)>p>.internal-embed img{object-fit:var(--image-grid-fit);height:100%;align-self:center}body:not(.zoom-off) .view-content div:not(.canvas-node-content) img{max-width:100%;cursor:zoom-in}body:not(.zoom-off) .view-content img:active{cursor:zoom-out}body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{background-color:var(--background-primary);padding:10px}body:not(.zoom-off) .view-content .image-embed:not(.canvas-node-content):active,body:not(.zoom-off) .view-content .markdown-preview-view img[referrerpolicy=no-referrer]:active{--container-img-width:100%;--container-img-max-width:100%;aspect-ratio:unset;cursor:zoom-out;display:block;z-index:200;position:fixed;max-height:calc(100% + 1px);max-width:100%;height:calc(100% + 1px);width:100%;object-fit:contain;margin:-.5px auto 0!important;text-align:center;padding:0;left:0;right:0;bottom:0}body:not(.zoom-off) .view-content .image-embed:not(.canvas-node-content):active:after{background-color:var(--background-primary);opacity:.9;content:" ";height:calc(100% + 1px);width:100%;position:fixed;left:0;right:1px;z-index:0}body:not(.zoom-off) .view-content .image-embed:not(.canvas-node-content):active img{aspect-ratio:unset;top:50%;z-index:99;transform:translateY(-50%);padding:0;margin:0 auto;width:calc(100% - 20px);max-height:95vh;object-fit:contain;left:0;right:0;bottom:0;position:absolute;opacity:1}body:not(.zoom-off) .view-content .markdown-source-view.mod-cm6 .cm-content>[contenteditable=false]:has(.image-embed:not(.canvas-node-content):active){contain:unset!important}.labeled-nav.is-fullscreen:not(.colorful-frame),.labeled-nav.mod-windows{--labeled-nav-top-margin:0}.labeled-nav{--labeled-nav-top-margin:var(--header-height)}.labeled-nav.is-translucent .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-header-container-inner{background-color:transparent}.labeled-nav.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .workspace-tabs.mod-top-left-space .workspace-tab-header-container{padding-left:0}.labeled-nav.mod-macos .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav.mod-macos.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .mod-top .workspace-tab-header-container:before{-webkit-app-region:drag;position:absolute;width:calc(100% - var(--divider-width));height:calc(var(--header-height) - var(--tab-outline-width));border-bottom:0 solid var(--tab-outline-color)}.labeled-nav.mod-macos.is-hidden-frameless:not(.is-fullscreen) .workspace-ribbon.mod-left:not(.is-collapsed){border:none;--tab-outline-width:0px}.labeled-nav.colorful-frame.is-hidden-frameless:not(.is-fullscreen) .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav.mod-macos:not(.hider-ribbon) .mod-left-split .mod-top .workspace-tab-header-container:before,.labeled-nav:not(.is-hidden-frameless) .mod-left-split .mod-top .workspace-tab-header-container:before{border-bottom:var(--tab-outline-width) solid var(--tab-outline-color)}.labeled-nav.colorful-frame.is-hidden-frameless:not(.is-fullscreen) .workspace-ribbon.mod-left:not(.is-collapsed),.labeled-nav.mod-macos:not(.hider-ribbon) .workspace-ribbon.mod-left:not(.is-collapsed),.labeled-nav:not(.is-hidden-frameless) .workspace-ribbon.mod-left:not(.is-collapsed){--tab-outline-width:1px}.labeled-nav:not(.is-hidden-frameless) .mod-left-split .mod-top .workspace-tab-header-container:before{position:absolute;top:0;content:" "}.labeled-nav.hider-ribbon.mod-macos.is-hidden-frameless:not(.is-fullscreen):not(.is-popout-window) .mod-left-split:not(.is-sidedock-collapsed) .workspace-tabs.mod-top-left-space .workspace-tab-header-container{padding-left:0}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-spacer{display:none}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-inner-title{display:inline-block;font-weight:500;font-size:var(--font-adaptive-smaller)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container{position:relative;flex-direction:column-reverse!important;height:auto;width:100%}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .sidebar-toggle-button.mod-left{position:absolute;justify-content:flex-end;padding-right:var(--size-4-2);top:0;right:0}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-header-container-inner{padding-top:var(--size-4-2);margin-top:var(--labeled-nav-top-margin);flex-direction:column!important;background-color:var(--background-secondary)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container .workspace-tab-container-inner{flex-grow:1;gap:0;padding:var(--size-4-2) var(--size-4-3)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header{--icon-color:var(--text-muted);--tab-text-color:var(--text-muted);--tab-text-color-focused:var(--text-muted);padding:0;margin-bottom:2px;border:none;height:auto}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:not(:hover){background-color:transparent}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:hover{opacity:1;--tab-text-color-active:var(--text-normal);--tab-text-color-focused:var(--text-normal);--tab-text-color-focused-active:var(--text-normal);--tab-text-color-focused-active-current:var(--text-normal);--icon-color:var(--text-normal)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header .workspace-tab-header-inner{gap:var(--size-2-3);padding:var(--size-4-1) var(--size-4-2);box-shadow:none;border:none}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.has-active-menu:hover,.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:hover{background-color:transparent}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active:hover .workspace-tab-header-inner,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner{background-color:var(--nav-item-background-hover)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header.is-active .workspace-tab-header-inner-icon,.labeled-nav .mod-left-split .mod-top .workspace-tab-header:hover .workspace-tab-header-inner-icon{color:var(--icon-color-active)}.labeled-nav .mod-left-split .mod-top .workspace-tab-header-container{border:none;padding:0}body:not(.links-int-on){--link-decoration:none}body:not(.links-ext-on){--link-external-decoration:none}body:not(.sidebar-color) .mod-right-split{--background-secondary:var(--background-primary)}body:not(.sidebar-color) .mod-right-split :not(.mod-top) .workspace-tab-header-container{--tab-container-background:var(--background-primary)}body{--minimal-tab-text-color:var(--text-muted);--minimal-tab-text-color-active:var(--text-normal)}.workspace-tabs:not(.mod-stacked){--tab-text-color:var(--minimal-tab-text-color);--tab-text-color-focused:var(--minimal-tab-text-color);--tab-text-color-active:var(--minimal-tab-text-color-active);--tab-text-color-focused-active:var(--minimal-tab-text-color-active);--tab-text-color-focused-active-current:var(--minimal-tab-text-color-active)}.tabs-plain-square .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0}.tabs-plain-square .mod-root .workspace-tab-header-container{padding-right:0}.tabs-plain-square .mod-root .workspace-tab-header-container-inner{margin-top:-1px;margin-left:-15px}.tabs-plain-square .mod-root .workspace-tab-header{padding:0}.tabs-plain-square .mod-root .workspace-tab-header-inner{padding:0 8px}.tabs-square .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0}.tabs-underline .mod-root{--tab-curve:0;--tab-radius:0;--tab-radius-active:0;--tab-outline-width:0px;--tab-background-active:transparent}.tabs-underline .mod-root .workspace-tab-header-container{border-bottom:1px solid var(--divider-color)}.tabs-underline .mod-root .workspace-tab-header{border-bottom:2px solid transparent}.tabs-underline .mod-root .workspace-tab-header:hover{border-bottom:2px solid var(--ui2)}.tabs-underline .mod-root .workspace-tab-header:hover .workspace-tab-header-inner{background-color:transparent}.tabs-underline .mod-root .workspace-tab-header.is-active{border-bottom:2px solid var(--ax3)}.tabs-underline .mod-root .workspace-tab-header-inner:hover{background-color:transparent}body:not(.sidebar-tabs-underline):not(.sidebar-tabs-index):not(.sidebar-tabs-square) .workspace>.workspace-split:not(.mod-root) .workspace-tabs:not(.mod-top) .workspace-tab-header-container{--tab-outline-width:0}.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked){--tab-background:var(--frame-outline-color);--tab-outline-width:1px}.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-close-button,.tabs-modern.colorful-frame .mod-root .mod-top.workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover .workspace-tab-header-inner-close-button{color:var(--minimal-tab-text-color-active)}.tabs-modern.minimal-focus-mode .mod-root .workspace-tab-header-container:hover{--tab-outline-width:0px}.tabs-modern .mod-root{--tab-container-background:var(--background-primary)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked){--tab-background:var(--background-modifier-hover);--tab-height:calc(var(--header-height) - 14px);--tab-outline-width:0px}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner::after,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header::after,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header::before{display:none}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-container-inner{align-items:center;margin:0;padding:2px var(--size-4-2) 0 var(--size-4-1)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner-title{text-overflow:ellipsis;-webkit-mask-image:none}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header{background:0 0;border-radius:5px;border:none;box-shadow:none;height:var(--tab-height);margin-left:var(--size-4-1);padding:0}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active .workspace-tab-header-inner-title{color:var(--tab-text-color-active)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active.mod-active,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:hover{opacity:1;background-color:var(--tab-background)}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-new-tab{margin-right:0}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header-inner{padding:0 var(--size-4-1) 0 var(--size-4-2);border:1px solid transparent}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(.is-active):hover .workspace-tab-header-inner{background-color:transparent}.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header.is-active:not(.mod-active) .workspace-tab-header-inner,.tabs-modern .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header:not(:hover):not(.mod-active) .workspace-tab-header-inner{border:1px solid var(--tab-outline-color)}.tabs-modern.sidebar-tabs-default .mod-right-split,.tabs-modern.sidebar-tabs-wide .mod-right-split{--tab-outline-width:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-spacer,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-spacer,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-spacer{display:none}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container{padding-right:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{padding:0;margin:0;flex-grow:1;gap:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header{flex-grow:1;border-radius:0;max-width:100px}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header:hover,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header:hover,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header:hover{background-color:transparent}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header:hover .workspace-tab-header-inner{background-color:transparent}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner{border-bottom:2px solid transparent;border-radius:0}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header .workspace-tab-header-inner:hover{border-color:var(--ui2)}.sidebar-tabs-underline .mod-right-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner,.sidebar-tabs-underline:not(.labeled-nav) .mod-left-split .workspace-tab-header-container .workspace-tab-header.is-active .workspace-tab-header-inner{border-color:var(--ax3);padding-top:1px}.sidebar-tabs-square .mod-left-split,.sidebar-tabs-square .mod-right-split{--tab-radius:0px}.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top),.sidebar-tabs-index:not(.labeled-nav) .mod-left-split,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top),.sidebar-tabs-square:not(.labeled-nav) .mod-left-split{--tab-background-active:var(--background-secondary)}.sidebar-tabs-index .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner,.sidebar-tabs-square .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{padding:1px var(--size-4-2) 0;margin:6px 0 calc(var(--tab-outline-width) * -1);flex-grow:1}.sidebar-tabs-index .mod-right-split .workspace-tab-header,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header,.sidebar-tabs-square .mod-right-split .workspace-tab-header,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header{flex-grow:1;max-width:100px;border-radius:var(--tab-radius) var(--tab-radius) 0 0}.sidebar-tabs-index .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-index.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-index:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active,.sidebar-tabs-square .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-square.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-square:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active{box-shadow:0 0 0 var(--tab-outline-width) var(--tab-outline-color);color:var(--tab-text-color-active);background-color:var(--tab-background-active)}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-container-inner,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container-inner,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-container-inner{flex-grow:1;border:1px solid var(--tab-outline-color);padding:3px;margin:6px 8px 6px;border-radius:4px}.sidebar-tabs-wide .mod-right-split .workspace-tab-header,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header{flex-grow:1}.sidebar-tabs-wide .mod-right-split .workspace-tab-header.is-active,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header.is-active,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header.is-active{border-color:transparent}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-container,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-container,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-container{padding-right:0}.sidebar-tabs-wide .mod-right-split .workspace-tab-header-spacer,.sidebar-tabs-wide.labeled-nav .mod-left-split .workspace-tabs:not(.mod-top) .workspace-tab-header-spacer,.sidebar-tabs-wide:not(.labeled-nav) .mod-left-split .workspace-tab-header-spacer{display:none}.full-file-names{--nav-item-white-space:normal}body:not(.full-file-names){--nav-item-white-space:nowrap}body:not(.full-file-names) .tree-item-self{white-space:nowrap}body:not(.full-file-names) .tree-item-inner{text-overflow:ellipsis;overflow:hidden}.theme-dark,.theme-light{--h1l:var(--ui1);--h2l:var(--ui1);--h3l:var(--ui1);--h4l:var(--ui1);--h5l:var(--ui1);--h6l:var(--ui1)}.h1-l .markdown-reading-view h1:not(.embedded-note-title),.h1-l .mod-cm6 .cm-editor .HyperMD-header-1{border-bottom:1px solid var(--h1l);padding-bottom:.4em;margin-block-end:0.6em}.h2-l .markdown-reading-view h2,.h2-l .mod-cm6 .cm-editor .HyperMD-header-2{border-bottom:1px solid var(--h2l);padding-bottom:.4em;margin-block-end:0.6em}.h3-l .markdown-reading-view h3,.h3-l .mod-cm6 .cm-editor .HyperMD-header-3{border-bottom:1px solid var(--h3l);padding-bottom:.4em;margin-block-end:0.6em}.h4-l .markdown-reading-view h4,.h4-l .mod-cm6 .cm-editor .HyperMD-header-4{border-bottom:1px solid var(--h4l);padding-bottom:.4em;margin-block-end:0.6em}.h5-l .markdown-reading-view h5,.h5-l .mod-cm6 .cm-editor .HyperMD-header-5{border-bottom:1px solid var(--h5l);padding-bottom:.4em;margin-block-end:0.6em}.h6-l .markdown-reading-view h6,.h6-l .mod-cm6 .cm-editor .HyperMD-header-6{border-bottom:1px solid var(--h6l);padding-bottom:.4em;margin-block-end:0.6em}.is-tablet .workspace-drawer{padding-top:0}.is-tablet .workspace-drawer:not(.is-pinned){margin:30px 16px 0;height:calc(100vh - 48px);border-radius:15px;border:none}.is-tablet .workspace-drawer-ribbon{background-color:var(--background-primary);border-right:1px solid var(--background-modifier-border)}.is-tablet .workspace-drawer-header,.is-tablet .workspace-drawer.is-pinned .workspace-drawer-header{padding-top:var(--size-4-4)}.is-mobile{--font-bold:600;--font-ui-medium:var(--font-adaptive-small);--interactive-normal:var(--background-secondary);--background-modifier-form-field:var(--background-secondary);--background-modifier-form-field-highlighted:var(--background-secondary)}.is-mobile .markdown-source-view.mod-cm6 .cm-gutters{margin-left:0}.is-mobile .workspace-drawer.mod-left.is-pinned{max-width:var(--mobile-left-sidebar-width);min-width:150pt}.is-mobile .workspace-drawer.mod-right.is-pinned{max-width:var(--mobile-right-sidebar-width);min-width:150pt}.backlink-pane>.tree-item-self,.backlink-pane>.tree-item-self:hover,.outgoing-link-pane>.tree-item-self,.outgoing-link-pane>.tree-item-self:hover{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);font-weight:500}body{--canvas-dot-pattern:var(--background-modifier-border-hover)}.canvas-node-label{font-size:var(--font-adaptive-small)}.canvas-edges :not(.is-themed) path.canvas-display-path{stroke:var(--background-modifier-border-focus)}.canvas-edges :not(.is-themed) polyline.canvas-path-end{stroke:var(--background-modifier-border-focus);fill:var(--background-modifier-border-focus)}.canvas-node-container{border:1.5px solid var(--background-modifier-border-focus)}.node-insert-event.mod-inside-iframe{--max-width:100%;--folding-offset:0px}.node-insert-event.mod-inside-iframe .cm-editor .cm-content{padding-top:0}.is-mobile .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content{display:none}body:not(.is-mobile) .nav-folder.mod-root>.nav-folder-title .nav-folder-title-content{font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:var(--font-adaptive-smallest)}.nav-buttons-container{justify-content:flex-start}.nav-file-tag{padding-top:.2em;background-color:transparent;color:var(--text-faint)}.nav-file .is-active .nav-file-tag,.nav-file:hover .nav-file-tag{color:var(--text-muted)}input.prompt-input,input.prompt-input:focus,input.prompt-input:focus-visible,input.prompt-input:hover{border-color:rgba(var(--mono-rgb-100),.05)}.is-mobile .mod-publish .modal-content{display:unset;padding:10px 10px 10px;margin-bottom:120px;overflow-x:hidden}.is-mobile .mod-publish .button-container,.is-mobile .modal.mod-publish .modal-button-container{padding:10px 15px 30px;margin-left:0;left:0}.is-mobile .modal.mod-publish .modal-title{padding:10px 20px;margin:0 -10px;border-bottom:1px solid var(--background-modifier-border)}.is-mobile .publish-site-settings-container{margin-right:0;padding:0}.is-mobile .modal.mod-publish .modal-content .publish-sections-container{margin-right:0;padding-right:0}@media (max-width:400pt){.is-mobile .publish-changes-info,.is-mobile .publish-section-header{flex-wrap:wrap;border:none}.is-mobile .publish-changes-info .publish-changes-add-linked-btn{flex-basis:100%;margin-top:10px}.is-mobile .publish-section-header-text{flex-basis:100%;margin-bottom:10px;margin-left:20px;margin-top:-8px}.is-mobile .publish-section{background:var(--background-secondary);border-radius:10px;padding:12px 12px 1px}.is-mobile .publish-changes-switch-site{flex-grow:0;margin-right:10px}}.release-notes-view .cm-scroller.is-readable-line-width{width:var(--line-width);max-width:var(--max-width);margin:0 auto}.search-results-info{border-bottom:none}@media (max-width:400pt){.is-mobile .modal.mod-sync-log{width:100vw;height:100vh;max-height:calc(100vh - 32px);box-shadow:0 -32px 0 32px var(--background-primary);bottom:0;padding-bottom:10px}}.obsidian-banner.solid{border-bottom:var(--divider-width) solid var(--divider-color)}.contextual-typography .markdown-preview-view div.has-banner-icon.obsidian-banner-wrapper{overflow:visible}.theme-dark .markdown-preview-view img.emoji{opacity:1}body.theme-dark .button-default,body.theme-light .button-default{border:none;box-shadow:none;height:var(--input-height);background:var(--background-modifier-hover);color:var(--text-normal);font-size:revert;font-weight:500;transform:none;transition:all .1s linear;padding:0 20px}body.theme-dark .button-default:hover,body.theme-light .button-default:hover{border:none;background:var(--background-modifier-border-hover);box-shadow:none;transform:none;transition:all .1s linear}body.theme-dark .button-default:active,body.theme-dark .button-default:focus,body.theme-light .button-default:active,body.theme-light .button-default:focus{box-shadow:none}body .button-default.blue{background-color:var(--color-blue)!important}.button-default.red{background-color:var(--color-red)!important}.button-default.green{background-color:var(--color-green)!important}.button-default.yellow{background-color:var(--color-yellow)!important}.button-default.purple{background-color:var(--color-purple)!important}.workspace-leaf-content[data-type=calendar] .view-content{padding:5px 0 0 0}.mod-root #calendar-container{width:var(--line-width);max-width:var(--max-width);margin:0 auto;padding:0}body{--calendar-dot-active:var(--text-faint);--calendar-dot-today:var(--text-accent)}#calendar-container{padding:0 var(--size-4-4) var(--size-4-1);--color-background-day-empty:var(--background-secondary-alt);--color-background-day-active:var(--background-modifier-hover);--color-background-day-hover:var(--background-modifier-hover);--color-dot:var(--text-faint);--calendar-text-active:inherit;--color-text-title:var(--text-normal);--color-text-heading:var(--text-muted);--color-text-day:var(--text-normal);--color-text-today:var(--text-normal);--color-arrow:var(--text-faint);--color-background-day-empty:transparent}#calendar-container .table{border-collapse:separate;table-layout:fixed}#calendar-container h2{font-weight:400;font-size:var(--h2)}#calendar-container .arrow{cursor:var(--cursor);width:22px;border-radius:4px;padding:3px 7px}#calendar-container .arrow svg{width:12px;height:12px;color:var(--text-faint);opacity:.7}#calendar-container .arrow:hover{fill:var(--text-muted);color:var(--text-muted);background-color:var(--background-modifier-hover)}#calendar-container .arrow:hover svg{color:var(--text-muted);opacity:1}#calendar-container tr th{padding:2px 0 4px;font-weight:500;letter-spacing:.1em;font-size:var(--font-adaptive-smallest)}#calendar-container tr th:first-child{padding-left:0!important}#calendar-container tr td{padding:2px 0 0 0;border-radius:var(--radius-m);cursor:var(--cursor);border:1px solid transparent;transition:none}#calendar-container tr td:first-child{padding-left:0!important}#calendar-container .nav{padding:0;margin:var(--size-4-2) var(--size-4-1)}#calendar-container .dot{margin:0}#calendar-container .month,#calendar-container .title,#calendar-container .year{font-size:calc(var(--font-adaptive-small) + 2px);font-weight:400;color:var(--text-normal)}#calendar-container .today,#calendar-container .today.active{color:var(--text-accent);font-weight:600}#calendar-container .today .dot,#calendar-container .today.active .dot{fill:var(--calendar-dot-today)}#calendar-container .active .task{stroke:var(--text-faint)}#calendar-container .active{color:var(--text-normal)}#calendar-container .reset-button{text-transform:none;letter-spacing:0;font-size:var(--font-adaptive-smaller);font-weight:500;color:var(--text-muted);border-radius:4px;margin:0;padding:2px 8px}#calendar-container .reset-button:hover{color:var(--text-normal);background-color:var(--background-modifier-hover)}#calendar-container .day,#calendar-container .reset-button,#calendar-container .week-num{cursor:var(--cursor)}#calendar-container .day.adjacent-month{color:var(--text-faint);opacity:1}#calendar-container .day{padding:2px 4px 4px}#calendar-container .day,#calendar-container .week-num{font-size:calc(var(--font-adaptive-smaller) + 5%)}#calendar-container .active,#calendar-container .active.today,#calendar-container .day:hover,#calendar-container .week-num:hover{background-color:var(--color-background-day-active);color:var(--calendar-text-active)}#calendar-container .active .dot{fill:var(--calendar-dot-active)}#calendar-container .active .task{stroke:var(--text-faint)}.block-language-chart canvas,.block-language-dataviewjs canvas{margin:1em 0}.theme-dark,.theme-light{--chart-color-1:var(--color-blue);--chart-color-2:var(--color-red);--chart-color-3:var(--color-yellow);--chart-color-4:var(--color-green);--chart-color-5:var(--color-orange);--chart-color-6:var(--color-purple);--chart-color-7:var(--color-cyan);--chart-color-8:var(--color-pink)}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact,.checklist-plugin-main .group .page,.checklist-plugin-main .group svg{cursor:var(--cursor)}.workspace .view-content .checklist-plugin-main{padding:10px 10px 15px 15px;--todoList-togglePadding--compact:2px;--todoList-listItemMargin--compact:2px}.checklist-plugin-main .title{font-weight:400;color:var(--text-muted);font-size:var(--font-adaptive-small)}.checklist-plugin-main .group svg{fill:var(--text-faint)}.checklist-plugin-main .group svg:hover{fill:var(--text-normal)}.checklist-plugin-main .group .title:hover{color:var(--text-normal)}.checklist-plugin-main .group:not(:last-child){border-bottom:1px solid var(--background-modifier-border)}.checklist-plugin-main .group{padding:0 0 2px 0}.checklist-plugin-main .group .classic:last-child,.checklist-plugin-main .group .compact:last-child{margin-bottom:10px}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact{font-size:var(--font-adaptive-small)}.checklist-plugin-main .group .classic,.checklist-plugin-main .group .compact{background:0 0;border-radius:0;margin:1px auto;padding:0}.checklist-plugin-main .group .classic .content{padding:0}.checklist-plugin-main .group .classic:hover,.checklist-plugin-main .group .compact:hover{background:0 0}.markdown-preview-view.checklist-plugin-main ul>li:not(.task-list-item)::before{display:none}.checklist-plugin-main .group .compact>.toggle .checked{background:var(--text-accent);top:-1px;left:-1px;height:18px;width:18px}.checklist-plugin-main .compact .toggle:hover{opacity:1!important}.checklist-plugin-main .group .count{font-size:var(--font-adaptive-smaller);padding:0;background:0 0;font-weight:400;color:var(--text-faint)}.checklist-plugin-main .group .group-header:hover .count{color:var(--text-muted)}.checklist-plugin-main .group .checkbox{border:1px solid var(--background-modifier-border-hover);min-height:18px;min-width:18px;height:18px;width:18px}.checklist-plugin-main .group .checkbox:hover{border:1px solid var(--background-modifier-border-focus)}.checklist-plugin-main button:active,.checklist-plugin-main button:focus,.checklist-plugin-main button:hover{box-shadow:none!important}.checklist-plugin-main button.collapse{padding:0}body:not(.is-mobile) .checklist-plugin-main button.collapse svg{width:18px;height:18px}.is-mobile .checklist-plugin-main .group-header .title{flex-grow:1;flex-shrink:0}.is-mobile .checklist-plugin-main button{width:auto}.is-mobile .checklist-plugin-main.markdown-preview-view ul{padding-inline-start:0}.is-mobile .workspace .view-content .checklist-plugin-main{padding-bottom:50px}body #cMenuModalBar{box-shadow:0 2px 20px var(--shadow-color)}body #cMenuModalBar .cMenuCommandItem{cursor:var(--cursor)}body #cMenuModalBar button.cMenuCommandItem:hover{background-color:var(--background-modifier-hover)}.MiniSettings-statusbar-button{padding-top:0;padding-bottom:0}.dataview-inline-lists .markdown-preview-view .dataview-ul,.dataview-inline-lists .markdown-source-view .dataview-ul{--list-spacing:0}.dataview-inline-lists .markdown-preview-view .dataview-ul li:not(:last-child):after,.dataview-inline-lists .markdown-source-view .dataview-ul li:not(:last-child):after{content:", "}.dataview-inline-lists .markdown-preview-view ul.dataview-ul>li::before,.dataview-inline-lists .markdown-source-view ul.dataview-ul>li::before{display:none}.dataview-inline-lists .markdown-preview-view .dataview-ul li,.dataview-inline-lists .markdown-source-view .dataview-ul li{display:inline-block;padding-right:.25em}.markdown-rendered table.dataview{margin-block-start:0;margin-block-end:0}.markdown-preview-view .table-view-table>thead>tr>th,body .table-view-table>thead>tr>th{font-weight:400;font-size:var(--table-text-size);color:var(--text-muted);border-bottom:var(--table-border-width) solid var(--table-border-color);cursor:var(--cursor)}table.dataview ul.dataview-ul{list-style:none;padding-inline-start:0;margin-block-start:0em!important;margin-block-end:0em!important}.markdown-preview-view:not(.cards) .table-view-table>tbody>tr>td,.markdown-source-view.mod-cm6:not(.cards) .table-view-table>tbody>tr>td{max-width:var(--max-col-width)}body .dataview.small-text{color:var(--text-faint)}body:not(.row-hover) .dataview.task-list-basic-item:hover,body:not(.row-hover) .dataview.task-list-item:hover,body:not(.row-hover) .table-view-table>tbody>tr:hover{background-color:transparent!important;box-shadow:none}body.row-hover .dataview.task-list-basic-item:hover,body.row-hover .dataview.task-list-item:hover,body.row-hover .table-view-table>tbody>tr:hover{background-color:var(--table-row-background-hover)!important}body .dataview-error{background-color:transparent}.dataview.dataview-error,.markdown-source-view.mod-cm6 .cm-content .dataview.dataview-error{color:var(--text-muted)}body div.dataview-error-box{min-height:0;border:none;background-color:transparent;font-size:var(--table-text-size);border-radius:var(--radius-m);padding:15px 0;justify-content:flex-start}body div.dataview-error-box p{margin-block-start:0;margin-block-end:0;color:var(--text-faint)}.block-language-dataviewjs:has(.dataview-error-box) table.dataview{display:none}.trim-cols .markdown-preview-view .table-view-table>tbody>tr>td,.trim-cols .markdown-source-view.mod-cm6 .table-view-table>tbody>tr>td,.trim-cols .markdown-source-view.mod-cm6 .table-view-table>thead>tr>th{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ul .dataview .task-list-basic-item:hover,ul .dataview .task-list-item:hover{background-color:transparent;box-shadow:none}body .dataview.result-group{padding-left:0}body .dataview .inline-field-standalone-value,body .dataview.inline-field-key,body .dataview.inline-field-value{font-family:var(--font-text);font-size:calc(var(--font-adaptive-normal) - 2px);background:0 0;color:var(--text-muted)}body .dataview.inline-field-key{padding:0}body .dataview .inline-field-standalone-value{padding:0}body .dataview.inline-field-key::after{margin-left:3px;content:"|";color:var(--background-modifier-border)}body .dataview.inline-field-value{padding:0 1px 0 3px}.markdown-preview-view .block-language-dataview table.calendar th{border:none;cursor:default;background-image:none}.markdown-preview-view .block-language-dataview table.calendar .day{font-size:var(--font-adaptive-small)}.database-plugin__navbar,.database-plugin__scroll-container,.database-plugin__table{width:100%}.dbfolder-table-container{--font-adaptive-normal:var(--table-text-size);--font-size-text:12px}.database-plugin__cell_size_wide .database-plugin__td{padding:.15rem}.database-plugin__table{border-spacing:0!important}.MuiAppBar-root{background-color:transparent!important}.workspace-leaf-content .view-content.dictionary-view-content{padding:0}div[data-type=dictionary-view] .contents{padding-bottom:2rem}div[data-type=dictionary-view] .results>.container{background-color:transparent;margin-top:0;max-width:none;padding:0 10px}div[data-type=dictionary-view] .error,div[data-type=dictionary-view] .errorDescription{text-align:left;font-size:var(--font-adaptive-small);padding:10px 12px 0;margin:0}div[data-type=dictionary-view] .results>.container h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:var(--font-adaptive-smallest);font-weight:500;padding:5px 7px 0 2px;margin-bottom:6px}div[data-type=dictionary-view] .container .main{border-radius:0;background-color:transparent;font-size:var(--font-adaptive-smaller);line-height:1.3;color:var(--text-muted);padding:5px 0 0}div[data-type=dictionary-view] .main .definition{padding:10px;border:1px solid var(--background-modifier-border);border-radius:5px;margin:10px 0 5px;background-color:var(--background-primary)}div[data-type=dictionary-view] .main .definition:last-child{border:1px solid var(--background-modifier-border)}div[data-type=dictionary-view] .main .synonyms{padding:10px 0 0}div[data-type=dictionary-view] .main .synonyms p{margin:0}div[data-type=dictionary-view] .main .definition>blockquote{margin:0}div[data-type=dictionary-view] .main .label{color:var(--text-normal);margin-bottom:2px;font-size:var(--font-adaptive-smaller);font-weight:500}div[data-type=dictionary-view] .main .mark{color:var(--text-normal);background-color:var(--text-selection);box-shadow:none}div[data-type=dictionary-view] .main>.opener{font-size:var(--font-adaptive-small);color:var(--text-normal);padding-left:5px}body .excalidraw,body .excalidraw.theme--dark{--color-primary-light:var(--text-selection);--color-primary:var(--interactive-accent);--color-primary-darker:var(--interactive-accent-hover);--color-primary-darkest:var(--interactive-accent-hover);--ui-font:var(--font-interface);--island-bg-color:var(--background-secondary);--icon-fill-color:var(--text-normal);--button-hover:var(--background-modifier-hover);--button-gray-1:var(--background-modifier-hover);--button-gray-2:var(--background-modifier-hover);--focus-highlight-color:var(--background-modifier-border-focus);--default-bg-color:var(--background-primary);--default-border-color:var(--background-modifier-border);--input-border-color:var(--background-modifier-border);--link-color:var(--text-accent);--overlay-bg-color:rgba(255, 255, 255, 0.88);--text-primary-color:var(--text-normal)}.git-view-body .opener{text-transform:uppercase;letter-spacing:.05em;font-size:var(--font-adaptive-smallest);font-weight:500;padding:5px 7px 5px 10px;margin-bottom:6px}.git-view-body .file-view .opener{text-transform:none;letter-spacing:normal;font-size:var(--font-adaptive-smallest);font-weight:400;padding:initial;margin-bottom:0}.git-view-body .file-view .opener .collapse-icon{display:flex!important;margin-left:-7px}.git-view-body{margin-top:6px}.git-view-body .file-view{margin-left:4px}.git-view-body .file-view main:hover{color:var(--text-normal)}.git-view-body .file-view .tools .type{display:none!important}.git-view-body .file-view .tools{opacity:0;transition:opacity .1s}.git-view-body .file-view main:hover>.tools{opacity:1}.git-view-body .staged{margin-bottom:12px}.git-view-body .opener.open{color:var(--text-normal)}div[data-type=git-view] .search-input-container{margin-left:0;width:100%}.git-view-body .opener .collapse-icon{display:none!important}.git-view-body main{background-color:var(--background-primary)!important;width:initial!important}.git-view-body .file-view>main:not(.topLevel){margin-left:7px}div[data-type=git-view] .commit-msg{min-height:2.5em!important;height:2.5em!important;padding:6.5px 8px!important}div[data-type=git-view] .search-input-clear-button{bottom:5.5px}.mod-macos.hider-frameless .workspace-ribbon{border:none}.is-tablet.hider-ribbon{--ribbon-width:0px}.is-tablet.hider-ribbon .side-dock-ribbon{display:none}.hider-ribbon .workspace-ribbon{padding:0}:root{--hider-ribbon-display:none}.ribbon-bottom-left-hover:not(.is-mobile){--hider-ribbon-display:flex}.hider-vault .nav-folder.mod-root>.nav-folder-title{height:4px}.hider-ribbon .workspace-ribbon-collapse-btn{display:none}.hider-ribbon .workspace-ribbon.mod-right{pointer-events:none}.hider-ribbon .workspace-ribbon.mod-left{position:absolute;border-right:0px;margin:0;height:var(--header-height);overflow:visible;flex-basis:0;bottom:0;top:auto;display:var(--hider-ribbon-display)!important;flex-direction:row;z-index:17;opacity:0;transition:opacity .25s ease-in-out;filter:drop-shadow(2px 10px 30px rgba(0,0,0,.2));gap:0}.hider-ribbon .side-dock-actions,.hider-ribbon .side-dock-settings{flex-direction:row;display:var(--hider-ribbon-display);border-top:var(--border-width) solid var(--background-modifier-border);background:var(--background-secondary);margin:0;position:relative;gap:var(--size-2-2)}.hider-ribbon .side-dock-actions{padding-left:8px}.hider-ribbon .side-dock-settings{border-right:var(--border-width) solid var(--background-modifier-border);border-top-right-radius:var(--radius-m);padding:0 var(--size-2-2)}.hider-ribbon .workspace-ribbon.mod-left .side-dock-ribbon-action{display:var(--hider-ribbon-display);margin:7px 0 8px}.hider-ribbon .workspace-ribbon.mod-left:hover{opacity:1;transition:opacity .25s ease-in-out}.hider-ribbon .workspace-ribbon.mod-left .workspace-ribbon-collapse-btn{opacity:0}.hider-ribbon .workspace-split.mod-left-split{margin:0}.hider-ribbon .workspace-leaf-content .item-list{padding-bottom:40px}.popover.hover-editor{--folding-offset:10px}.theme-dark,.theme-light{--he-title-bar-inactive-bg:var(--background-secondary);--he-title-bar-inactive-pinned-bg:var(--background-secondary);--he-title-bar-active-pinned-bg:var(--background-secondary);--he-title-bar-active-bg:var(--background-secondary);--he-title-bar-inactive-fg:var(--text-muted);--he-title-bar-active-fg:var(--text-normal);--he-title-bar-font-size:14px}.theme-light{--popover-shadow:0px 2.7px 3.1px rgba(0, 0, 0, 0.032),0px 5.9px 8.7px rgba(0, 0, 0, 0.052),0px 10.4px 18.1px rgba(0, 0, 0, 0.071),0px 20px 40px rgba(0, 0, 0, 0.11)}.theme-dark{--popover-shadow:0px 2.7px 3.1px rgba(0, 0, 0, 0.081),0px 5.9px 8.7px rgba(0, 0, 0, 0.131),0px 10.4px 18.1px rgba(0, 0, 0, 0.18),0px 20px 40px rgba(0, 0, 0, 0.28)}.popover.hover-editor:not(.snap-to-viewport){--max-width:92%}.popover.hover-editor:not(.snap-to-viewport) .markdown-preview-view,.popover.hover-editor:not(.snap-to-viewport) .markdown-source-view .cm-content{font-size:90%}body .popover.hover-editor:not(.is-loaded){box-shadow:var(--popover-shadow)}body .popover.hover-editor:not(.is-loaded) .markdown-preview-view{padding:15px 0 0 0}body .popover.hover-editor:not(.is-loaded) .view-content{height:100%;background-color:var(--background-primary)}body .popover.hover-editor:not(.is-loaded) .view-actions{height:auto}body .popover.hover-editor:not(.is-loaded) .popover-content{border:1px solid var(--background-modifier-border-hover)}body .popover.hover-editor:not(.is-loaded) .popover-titlebar{padding:0 4px}body .popover.hover-editor:not(.is-loaded) .popover-titlebar .popover-title{padding-left:4px;letter-spacing:-.02em;font-weight:var(--title-weight)}body .popover.hover-editor:not(.is-loaded) .markdown-embed{height:auto;font-size:unset;line-height:unset}body .popover.hover-editor:not(.is-loaded) .markdown-embed .markdown-preview-view{padding:0}body .popover.hover-editor:not(.is-loaded).show-navbar .popover-titlebar{border-bottom:var(--border-width) solid var(--background-modifier-border)}body .popover.hover-editor:not(.is-loaded) .popover-action,body .popover.hover-editor:not(.is-loaded) .popover-header-icon{cursor:var(--cursor);margin:4px 0;padding:4px 3px;border-radius:var(--radius-m);color:var(--icon-color)}body .popover.hover-editor:not(.is-loaded) .popover-action.mod-pin-popover,body .popover.hover-editor:not(.is-loaded) .popover-header-icon.mod-pin-popover{padding:4px 2px}body .popover.hover-editor:not(.is-loaded) .popover-action svg,body .popover.hover-editor:not(.is-loaded) .popover-header-icon svg{opacity:var(--icon-muted)}body .popover.hover-editor:not(.is-loaded) .popover-action:hover,body .popover.hover-editor:not(.is-loaded) .popover-header-icon:hover{background-color:var(--background-modifier-hover);color:var(--icon-color-hover)}body .popover.hover-editor:not(.is-loaded) .popover-action:hover svg,body .popover.hover-editor:not(.is-loaded) .popover-header-icon:hover svg{opacity:1;transition:opacity .1s ease-in-out}body .popover.hover-editor:not(.is-loaded) .popover-action.is-active,body .popover.hover-editor:not(.is-loaded) .popover-header-icon.is-active{color:var(--icon-color)}body.minimal-dark-black.theme-dark,body.minimal-dark-tonal.theme-dark,body.minimal-light-tonal.theme-light,body.minimal-light-white.theme-light,body.theme-dark{--kanban-border:0px}body:not(.is-mobile) .kanban-plugin__grow-wrap>textarea:focus{box-shadow:none}body:not(.minimal-icons-off) .kanban-plugin svg.cross{height:14px;width:14px}body .kanban-plugin__icon>svg,body .kanban-plugin__lane-settings-button svg{width:18px;height:18px}body .kanban-plugin{--kanban-border:var(--border-width);--interactive-accent:var(--text-selection);--interactive-accent-hover:var(--background-modifier-hover);--text-on-accent:var(--text-normal);background-color:var(--background-primary)}body .kanban-plugin__markdown-preview-view{font-family:var(--font-text)}body .kanban-plugin__board>div{margin:0 auto}body .kanban-plugin__checkbox-label{color:var(--text-muted)}body .kanban-plugin__item-markdown ul{margin:0}body .kanban-plugin__item-content-wrapper{box-shadow:none}body .kanban-plugin__grow-wrap::after,body .kanban-plugin__grow-wrap>textarea{padding:0;border:0;border-radius:0}body .kanban-plugin__grow-wrap::after,body .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__item-title p,body .kanban-plugin__markdown-preview-view{font-size:var(--font-ui-medium);line-height:1.3}body .kanban-plugin__item{background-color:var(--background-primary)}body .kanban-plugin__item-title-wrapper{align-items:center}body .kanban-plugin__lane-form-wrapper{border:1px solid var(--background-modifier-border)}body .kanban-plugin__lane-header-wrapper{border-bottom:0}body .kanban-plugin__lane-header-wrapper .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__lane-input-wrapper .kanban-plugin__grow-wrap>textarea,body .kanban-plugin__lane-title p{background:0 0;color:var(--text-normal);font-size:var(--font-ui-medium);font-weight:500}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea{padding:0;border-radius:0;height:auto}body .kanban-plugin__item-form .kanban-plugin__grow-wrap{background-color:var(--background-primary)}body .kanban-plugin__item-input-wrapper .kanban-plugin__grow-wrap>textarea::placeholder{color:var(--text-faint)}body .kanban-plugin__item .kanban-plugin__item-edit-archive-button,body .kanban-plugin__item button.kanban-plugin__item-edit-button,body .kanban-plugin__item-settings-actions>button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled,body .kanban-plugin__lane-action-wrapper>button{background:0 0;transition:color .1s ease-in-out}body .kanban-plugin__item .kanban-plugin__item-edit-archive-button:hover,body .kanban-plugin__item button.kanban-plugin__item-edit-button.is-enabled,body .kanban-plugin__item button.kanban-plugin__item-edit-button:hover,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{color:var(--text-normal);transition:color .1s ease-in-out;background:0 0}body .kanban-plugin__new-lane-button-wrapper{position:fixed;bottom:30px}body .kanban-plugin__lane-items>.kanban-plugin__placeholder:only-child{border:1px dashed var(--background-modifier-border);height:2em}body .kanban-plugin__item-postfix-button-wrapper{align-self:flex-start}body .kanban-plugin__item button.kanban-plugin__item-postfix-button.is-enabled,body .kanban-plugin__item button.kanban-plugin__item-prefix-button.is-enabled,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button.is-enabled{color:var(--text-muted)}body .kanban-plugin button{box-shadow:none;cursor:var(--cursor);height:auto}body .kanban-plugin__item button.kanban-plugin__item-postfix-button:hover,body .kanban-plugin__item button.kanban-plugin__item-prefix-button:hover,body .kanban-plugin__lane button.kanban-plugin__lane-settings-button:hover{background-color:var(--background-modifier-hover)}body .kanban-plugin__item-button-wrapper>button{color:var(--text-muted);font-weight:400;background:0 0;min-height:calc(var(--input-height) + 8px)}body .kanban-plugin__item-button-wrapper>button:hover{color:var(--text-normal);background:var(--background-modifier-hover)}body .kanban-plugin__item-button-wrapper>button:focus{box-shadow:none}body .kanban-plugin__item-button-wrapper{padding:1px 6px 5px;border-top:none}body .kanban-plugin__lane-setting-wrapper>div:last-child{border:none;margin:0}body .kanban-plugin.something-is-dragging{cursor:grabbing;cursor:-webkit-grabbing}body .kanban-plugin__item.is-dragging{box-shadow:0 5px 30px rgba(0,0,0,.15),0 0 0 2px var(--text-selection)}body .kanban-plugin__lane-items{border:var(--kanban-border) solid var(--background-modifier-border);padding:0 4px;margin:0;background-color:var(--background-secondary)}body .kanban-plugin__lane{background:0 0;padding:0;border:var(--border-width) solid transparent}body .kanban-plugin__lane.is-dragging{box-shadow:0 5px 30px rgba(0,0,0,.15);border:1px solid var(--background-modifier-border)}body .kanban-plugin__lane .kanban-plugin__item-button-wrapper{border-top-left-radius:8px;border-top-right-radius:8px;border-top:1px solid var(--background-modifier-border);border-bottom-width:0;padding:4px 4px 0 4px}body .kanban-plugin__lane.will-prepend .kanban-plugin__lane-items{border-radius:8px}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-form{border-top:1px solid var(--background-modifier-border);border-radius:8px 8px 0 0;padding:4px 4px 0;border-bottom-width:0}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-form+.kanban-plugin__lane-items{border-top-width:0;border-radius:0 0 8px 8px}body .kanban-plugin__lane.will-prepend .kanban-plugin__item-button-wrapper+.kanban-plugin__lane-items{border-top-width:0;border-radius:0 0 8px 8px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-button-wrapper,body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-form{border-top:none;border-radius:0 0 8px 8px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__item-button-wrapper{padding:0 4px 4px 4px;border-bottom-width:1px}body .kanban-plugin__lane:not(.will-prepend) .kanban-plugin__lane-items{border-bottom:none;border-top-width:1px;border-radius:8px 8px 0 0}body .kanban-plugin__item-form .kanban-plugin__item-input-wrapper{min-height:calc(var(--input-height) + 8px);display:flex;justify-content:center}body .kanban-plugin__item-button-wrapper,body .kanban-plugin__item-form{background-color:var(--background-secondary);border:var(--kanban-border) solid var(--background-modifier-border)}body .kanban-plugin__item-form{padding:0 4px 5px}body .kanban-plugin__markdown-preview-view ol,body .kanban-plugin__markdown-preview-view ol.contains-task-list .contains-task-list,body .kanban-plugin__markdown-preview-view ul,body .kanban-plugin__markdown-preview-view ul.contains-task-list .contains-task-list{padding-inline-start:1.8em!important}@media (max-width:400pt){.kanban-plugin__board{flex-direction:column!important}.kanban-plugin__lane{width:100%!important;margin-bottom:1rem!important}}body .cm-heading-marker{cursor:var(--cursor);padding-left:10px}.theme-light{--leaflet-buttons:var(--bg1);--leaflet-borders:rgba(0,0,0,0.1)}.theme-dark{--leaflet-buttons:var(--bg2);--leaflet-borders:rgba(255,255,255,0.1)}.leaflet-top{transition:top .1s linear}.mod-macos.minimal-focus-mode .mod-root .map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3) .leaflet-top{top:calc(18px + var(--ewt-traffic-light-y));transition:top .1s linear}body .leaflet-container{background-color:var(--background-secondary);font-family:var(--font-interface)}.map-100 .markdown-preview-sizer.markdown-preview-section .el-lang-leaflet:nth-child(3){margin-top:-16px}.leaflet-control-attribution{display:none}.leaflet-popup-content{margin:10px}.block-language-leaflet{border-radius:var(--radius-m);overflow:hidden;border:var(--border-width) solid var(--background-modifier-border)}.map-wide .block-language-leaflet{border-radius:var(--radius-l)}.map-max .block-language-leaflet{border-radius:var(--radius-xl)}.workspace-leaf-content[data-type=obsidian-leaflet-map-view] .block-language-leaflet{border-radius:0;border:none}.map-100 .block-language-leaflet{border-radius:0;border-left:none;border-right:none}.block-language-leaflet .leaflet-control-expandable-list .input-container .input-item>input{appearance:none}body .block-language-leaflet .leaflet-bar.disabled>a{background-color:transparent;opacity:.3}body .leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}body .leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}body .leaflet-control-layers-toggle{border-radius:4px}body .block-language-leaflet .leaflet-control-expandable,body .block-language-leaflet .leaflet-control-has-actions .control-actions.expanded,body .block-language-leaflet .leaflet-distance-control,body .leaflet-bar,body .leaflet-bar a,body .leaflet-control-layers-expanded,body .leaflet-control-layers-toggle{background-color:var(--leaflet-buttons);color:var(--text-muted);border:none;user-select:none}body .leaflet-bar a.leaflet-disabled,body .leaflet-bar a.leaflet-disabled:hover{background-color:var(--leaflet-buttons);color:var(--text-faint);opacity:.6;cursor:not-allowed}body .leaflet-control a{cursor:var(--cursor);color:var(--text-normal)}body .leaflet-bar a:hover{background-color:var(--background-modifier-hover);color:var(--text-normal);border:none}body .leaflet-touch .leaflet-control-layers{background-color:var(--leaflet-buttons)}body .leaflet-touch .leaflet-bar,body .leaflet-touch .leaflet-control-layers{border-radius:5px;box-shadow:2px 0 8px 0 rgba(0,0,0,.1);border:1px solid var(--ui1)}body .block-language-leaflet .leaflet-control-has-actions .control-actions{box-shadow:0;border:1px solid var(--ui1)}body .leaflet-control-expandable-list .leaflet-bar{box-shadow:none;border-radius:0}body .block-language-leaflet .leaflet-distance-control{padding:4px 10px;height:auto;cursor:var(--cursor)!important}body .block-language-leaflet .leaflet-marker-link-popup>.leaflet-popup-content-wrapper>*{font-size:var(--font-adaptive-small);font-family:var(--font-interface)}body .block-language-leaflet .leaflet-marker-link-popup>.leaflet-popup-content-wrapper{padding:4px 10px!important}.leaflet-marker-icon svg path{stroke:var(--background-primary);stroke-width:18px}.map-view-marker-name{font-weight:400}.workspace-leaf-content[data-type=map] .graph-controls{background-color:var(--background-primary)}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-split.mod-root .workspace-leaf-content[data-type=map] .view-header{position:fixed;background:0 0!important;width:100%;z-index:99}body:not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-header-title{display:none}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-actions{background:0 0}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .view-content{height:100%}body:not(.is-mobile):not(.plugin-sliding-panes-rotate-header) .workspace-leaf-content[data-type=map] .leaflet-top.leaflet-right{top:var(--header-height)}.obsidian-metatable{--metatable-font-size:calc(var(--font-adaptive-normal) - 2px);--metatable-font-family:var(--font-interface);--metatable-background:transparent;--metatable-foreground:var(--text-faint);--metatable-key-background:transparent;--metatable-key-border-width:0;--metatable-key-border-color:transparent;--metatable-value-background:transparent;padding-bottom:.5rem}.obsidian-metatable::part(key),.obsidian-metatable::part(value){border-bottom:0 solid var(--background-modifier-border);padding:.1rem 0;text-overflow:ellipsis;overflow:hidden}.obsidian-metatable::part(key){font-weight:400;color:var(--tx3);font-size:calc(var(--font-adaptive-normal) - 2px)}.obsidian-metatable::part(value){font-size:calc(var(--font-adaptive-normal) - 2px);color:var(--tx1)}body .NLT__header-menu-header-container{font-size:85%}body .NLT__button{background:0 0;box-shadow:none;color:var(--text-muted)}body .NLT__button:active,body .NLT__button:focus,body .NLT__button:hover{background:0 0;color:var(--text-normal);box-shadow:none}.NLT__app .NLT__button{background:0 0;border:1px solid var(--background-modifier-border);box-shadow:0 .5px 1px 0 var(--btn-shadow-color);color:var(--text-muted);padding:2px 8px}.NLT__app .NLT__button:active,.NLT__app .NLT__button:focus,.NLT__app .NLT__button:hover{background:0 0;border-color:var(--background-modifier-border-hover);color:var(--text-normal);box-shadow:0 .5px 1px 0 var(--btn-shadow-color)}.NLT__td:nth-last-child(2),.NLT__th:nth-last-child(2){border-right:0}.NLT__app .NLT__td:last-child,.NLT__app .NLT__th:last-child{padding-right:0}.NLT__app .NLT__th{background-image:none!important}.NLT__app th.NLT__selectable:hover{background-color:transparent;cursor:var(--cursor)}.NLT__menu .NLT__menu-container{background-color:var(--background-secondary)}.NLT__menu .NLT__header-menu-item{font-size:var(--font-adaptive-small)}.NLT__menu .NLT__header-menu{padding:6px 4px}.NLT__menu .NLT__drag-menu{font-size:var(--font-adaptive-small);padding:6px 4px}.NLT__menu svg{color:var(--text-faint);margin-right:6px}.NLT__menu .NLT__selectable:hover,.NLT__menu .NLT__selected{background:0 0}.NLT__menu .NLT__selected>.NLT__selectable{background-color:var(--background-modifier-hover)}.NLT__menu .NLT__selectable{cursor:var(--cursor)}.NLT__menu div.NLT__selectable{min-width:110px;border-radius:var(--radius-m);padding:3px 8px 3px 4px;margin:1px 2px 1px;cursor:var(--cursor);height:auto;line-height:20px}.NLT__menu div.NLT__selectable:hover{background-color:var(--background-modifier-hover)}.NLT__menu .NLT__textarea{font-size:var(--table-text-size)}.NLT__tfoot tr:hover td{background-color:transparent}.modal .quickAddPrompt>h1,.modal .quickAddYesNoPrompt h1{margin-top:0;text-align:left!important;font-size:var(--h1);font-weight:600}.modal .quickAddYesNoPrompt p{text-align:left!important}.modal .quickAddYesNoPrompt button{font-size:var(--font-ui-small)}.modal .yesNoPromptButtonContainer{font-size:var(--font-ui-small);justify-content:flex-end}.quickAddModal .modal-content{padding:20px 2px 5px}div#quick-explorer{display:flex}div#quick-explorer span.explorable{align-items:center;color:var(--text-muted);display:flex;font-size:var(--font-adaptive-smaller);line-height:16px}div#quick-explorer span.explorable:last-of-type{font-size:var(--font-adaptive-smaller)}div#quick-explorer span.explorable.selected,div#quick-explorer span.explorable:hover{background-color:unset!important}div#quick-explorer span.explorable.selected .explorable-name,div#quick-explorer span.explorable:hover .explorable-name{color:var(--text-normal)}div#quick-explorer span.explorable.selected .explorable-separator,div#quick-explorer span.explorable:hover .explorable-separator{color:var(--text-normal)}div#quick-explorer .explorable-name{padding:0 4px;border-radius:4px}div#quick-explorer .explorable-separator::before{content:"\00a0›"!important;font-size:1.3em;font-weight:400;margin:0}body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label).selected,body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label):hover{background-color:var(--background-modifier-hover);color:var(--text-normal)}body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label).selected .menu-item-icon,body:not(.colorful-active) .qe-popup-menu .menu-item:not(.is-disabled):not(.is-label):hover .menu-item-icon{color:var(--text-normal)}.workspace-leaf-content[data-type=recent-files] .view-content{padding-top:10px}.mod-root .workspace-leaf-content[data-type=reminder-list] main{max-width:var(--max-width);margin:0 auto;padding:0}.modal .reminder-actions .later-select{font-size:var(--font-settings-small);vertical-align:bottom;margin-left:3px}.modal .reminder-actions .icon{line-height:1}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main{margin:0 auto;padding:15px}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .group-name{font-weight:500;color:var(--text-muted);font-size:var(--font-adaptive-small);padding-bottom:.5em;border-bottom:1px solid var(--background-modifier-border)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-list-item{line-height:1.3;font-size:var(--font-adaptive-small)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .no-reminders{color:var(--text-faint)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-time{font-family:var(--font-text);font-size:var(--font-adaptive-small)}:not(.mod-root) .workspace-leaf-content[data-type=reminder-list] main .reminder-group .reminder-file{color:var(--text-faint)}body .modal .dtchooser{background-color:transparent}body .modal .dtchooser .reminder-calendar .year-month{font-weight:400;font-size:var(--font-adaptive-normal);padding-bottom:10px}body .modal .dtchooser .reminder-calendar .year-month .month,body .modal .dtchooser .reminder-calendar .year-month .year{color:var(--text-normal)}body .modal .dtchooser .reminder-calendar .year-month .month-nav:first-child{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E")}body .modal .dtchooser .reminder-calendar .year-month .month-nav:last-child{background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E")}body .modal .dtchooser .reminder-calendar .year-month .month-nav{-webkit-mask-size:20px 20px;-webkit-mask-repeat:no-repeat;-webkit-mask-position:50% 50%;color:var(--text-faint);cursor:var(--cursor);border-radius:var(--radius-m);padding:0;width:30px;display:inline-block}body .modal .dtchooser .reminder-calendar .year-month .month-nav:hover{color:var(--text-muted)}body .modal .dtchooser .reminder-calendar th{padding:.5em 0;font-size:var(--font-adaptive-smallest);font-weight:500;text-transform:uppercase;letter-spacing:.1em}body .modal .dtchooser .reminder-calendar .calendar-date{transition:background-color .1s ease-in;padding:.3em 0;border-radius:var(--radius-m)}body .modal .dtchooser .reminder-calendar .calendar-date.is-selected,body .modal .dtchooser .reminder-calendar .calendar-date:hover{transition:background-color .1s ease-in;background-color:var(--background-modifier-hover)!important}body .modal .dtchooser .reminder-calendar .calendar-date.is-selected{font-weight:var(--bold-weight);color:var(--text-accent)!important}body .markdown-preview-view th,body .markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th,body .table-view-table>thead>tr>th{cursor:var(--cursor);background-image:none}.markdown-source-view.mod-cm6 th{background-repeat:no-repeat;background-position:right}.style-settings-container[data-level="2"]{background:var(--background-secondary);border:1px solid var(--ui1);border-radius:5px;padding:10px 20px;margin:2px 0 2px -20px}.workspace-leaf-content[data-type=style-settings] div[data-id=instructions] .setting-item-name{display:none}.workspace-leaf-content[data-type=style-settings] div[data-id=instructions] .setting-item-description{color:var(--text-normal);font-size:var(--font-adaptive-smaller);padding-bottom:.5em}.workspace-leaf-content[data-type=style-settings] .view-content{padding:var(--size-4-4) 0}.workspace-leaf-content[data-type=style-settings] .view-content>div{width:var(--line-width);max-width:var(--max-width);margin:0 auto}.workspace-leaf-content[data-type=style-settings] .style-settings-heading[data-level="0"] .setting-item-name{padding-left:17px}.workspace-leaf-content[data-type=style-settings] .setting-item{max-width:100%;margin:0 auto}.workspace-leaf-content[data-type=style-settings] .setting-item-name{position:relative}.workspace-leaf-content[data-type=style-settings] .style-settings-collapse-indicator{position:absolute;left:0}.setting-item-heading.style-settings-heading,.style-settings-container .style-settings-heading{cursor:var(--cursor)}.modal.mod-settings .setting-item .pickr button.pcr-button{box-shadow:none;border-radius:40px;height:24px;width:24px}.setting-item .pickr .pcr-button:after,.setting-item .pickr .pcr-button:before{border-radius:40px;box-shadow:none;border:none}.setting-item.setting-item-heading.style-settings-heading.is-collapsed{border-bottom:1px solid var(--background-modifier-border)}.setting-item.setting-item-heading.style-settings-heading{border:0;padding:10px 0 5px;margin-bottom:0}.setting-item .style-settings-export,.setting-item .style-settings-import{text-decoration:none;font-size:var(--font-ui-small);font-weight:500;color:var(--text-muted);margin:0;padding:2px 8px;border-radius:5px;cursor:var(--cursor)}.setting-item .style-settings-export:hover,.setting-item .style-settings-import:hover{background-color:var(--background-modifier-hover);color:var(--text-normal);cursor:var(--cursor)}.mod-root .workspace-leaf-content[data-type=style-settings] .style-settings-container .setting-item:not(.setting-item-heading){flex-direction:row;align-items:center;padding:.5em 0}.workspace-split:not(.mod-root) .workspace-leaf-content[data-type=style-settings] .setting-item-name{font-size:var(--font-adaptive-smaller)}.themed-color-wrapper>div+div{margin-top:0;margin-left:6px}.theme-light .themed-color-wrapper>.theme-light{background-color:transparent}.theme-light .themed-color-wrapper>.theme-dark{background-color:rgba(0,0,0,.8)}.theme-dark .themed-color-wrapper>.theme-dark{background-color:transparent}@media (max-width:400pt){.workspace-leaf-content[data-type=style-settings] .setting-item-name{font-size:var(--font-adaptive-small)}.workspace-leaf-content[data-type=style-settings] .setting-item-info:has(.search-input-container){width:100%;margin-right:0}}body .todoist-query-title{display:inline;font-size:var(--h4);font-variant:var(--h4-variant);letter-spacing:.02em;color:var(--h4-color);font-weight:var(--h4-weight);font-style:var(--h4-style)}body .is-live-preview .block-language-todoist{padding-left:0}ul.todoist-task-list>li.task-list-item .task-list-item-checkbox{margin:0}body .todoist-refresh-button{display:inline;float:right;background:0 0;padding:5px 6px 0;margin-right:0}body .is-live-preview .todoist-refresh-button{margin-right:30px}body .todoist-refresh-button:hover{box-shadow:none;background-color:var(--background-modifier-hover)}.todoist-refresh-button svg{width:15px;height:15px;opacity:var(--icon-muted)}ul.todoist-task-list{margin-left:-.25em}.is-live-preview ul.todoist-task-list{padding-left:0;margin-left:.5em;margin-block-start:0;margin-block-end:0}.contains-task-list.todoist-task-list .task-metadata{font-size:var(--font-adaptive-small);display:flex;color:var(--text-muted);justify-content:space-between;margin-left:.1em;margin-bottom:.25rem}.is-live-preview .contains-task-list.todoist-task-list .task-metadata{padding-left:calc(var(--checkbox-size) + .6em)}.todoist-task-list .task-date.task-overdue{color:var(--color-orange)}body .todoist-p1>input[type=checkbox]{border:1px solid var(--color-red)}body .todoist-p1>input[type=checkbox]:hover{opacity:.8}body .todoist-p2>input[type=checkbox]{border:1px solid var(--color-yellow)}body .todoist-p2>input[type=checkbox]:hover{opacity:.8}body .todoist-p3>input[type=checkbox]{border:1px solid var(--color-blue)}body .todoist-p3>input[type=checkbox]:hover{opacity:.8}body.theme-light{--color-axis-label:var(--tx1);--color-tick-label:var(--tx2);--color-dot-fill:var(--ax1);--color-line:var(--ui1)}.tracker-axis-label{font-family:var(--font-interface)}.tracker-axis{color:var(--ui2)}.tabs-manager .chat-view{--assistant-message-color:var(--background-primary);--padding-md:var(--size-4-2) var(--size-4-3);--padding-lg:var(--size-4-3) var(--size-4-3);--chat-box-color:var(--background-primary)}.tabs-manager .chat-view .ow-dialogue-timeline{padding:var(--size-4-4) var(--size-4-3) var(--size-4-8)}.tabs-manager .chat-view .ow-dialogue-timeline .ow-message-bubble .ow-content-wrapper{box-shadow:none;border-color:var(--background-modifier-border);border-radius:var(--radius-m)}.tabs-manager .chat-view .ow-dialogue-timeline .ow-message-bubble.ow-user-bubble .ow-content-wrapper{border-width:0;background-color:var(--interactive-accent)}.tabs-manager .chat-view .input-area .input-form .chat-box{border-radius:0;box-shadow:none;grid-row:1;grid-column:1/3;height:100px;border:none;padding:var(--size-4-3) var(--size-4-4) var(--size-4-2)}.tabs-manager .chat-view .input-area .input-form .chat-box:hover{height:100px}.tabs-manager .chat-view .input-area{padding:0;gap:0}.tabs-manager .chat-view .header{border-bottom:1px solid var(--background-modifier-border)}.tabs-manager .chat-view .input-form{border-top:1px solid var(--background-modifier-border)}.tabs-manager .chat-view .input-area .input-form .chat-box .info-bar span{color:var(--text-faint)}.tabs-manager .chat-view .input-area .input-form .btn-new-chat{display:none}.zoom-plugin-header{--link-color:var(--text-normal);--link-decoration:none;font-size:var(--font-ui-small);padding:0;justify-content:center;margin:var(--size-4-2) auto;max-width:var(--max-width)}.zoom-plugin-header>.zoom-plugin-title{text-decoration:none;max-width:15em;overflow:hidden}.zoom-plugin-header>.zoom-plugin-delimiter{color:var(--text-faint);padding:0 var(--size-4-1)}.theme-dark.minimal-atom-dark{--color-red-rgb:225,109,118;--color-orange-rgb:209,154,102;--color-yellow-rgb:206,193,103;--color-green-rgb:152,195,121;--color-cyan-rgb:88,182,194;--color-blue-rgb:98,175,239;--color-purple-rgb:198,120,222;--color-pink-rgb:225,109,118;--color-red:#e16d76;--color-orange:#d19a66;--color-yellow:#cec167;--color-green:#98c379;--color-cyan:#58b6c2;--color-blue:#62afef;--color-purple:#c678de;--color-pink:#e16d76}.theme-light.minimal-atom-light{--color-red-rgb:228,87,73;--color-orange-rgb:183,107,2;--color-yellow-rgb:193,131,2;--color-green-rgb:80,161,80;--color-cyan-rgb:13,151,179;--color-blue-rgb:98,175,239;--color-purple-rgb:166,38,164;--color-pink-rgb:228,87,73;--color-red:#e45749;--color-orange:#b76b02;--color-yellow:#c18302;--color-green:#50a150;--color-cyan:#0d97b3;--color-blue:#62afef;--color-purple:#a626a4;--color-pink:#e45749}.theme-light.minimal-atom-light{--base-h:106;--base-s:0%;--base-l:98%;--accent-h:231;--accent-s:76%;--accent-l:62%;--bg1:#fafafa;--bg2:#eaeaeb;--bg3:rgba(0,0,0,.1);--ui1:#dbdbdc;--ui2:#d8d8d9;--tx1:#232324;--tx2:#8e8e90;--tx3:#a0a1a8;--hl1:rgba(180,180,183,0.3);--hl2:rgba(209,154,102,0.35)}.theme-light.minimal-atom-light.minimal-light-white{--bg3:#eaeaeb}.theme-dark.minimal-atom-dark,.theme-light.minimal-atom-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-atom-light.minimal-light-contrast .titlebar,.theme-light.minimal-atom-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-atom-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-atom-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:220;--base-s:12%;--base-l:18%;--accent-h:220;--accent-s:86%;--accent-l:65%;--bg1:#282c34;--bg2:#21252c;--bg3:#3a3f4b;--divider-color:#181a1f;--tab-outline-color:#181a1f;--tx1:#d8dae1;--tx2:#898f9d;--tx3:#5d6370;--hl1:rgba(114,123,141,0.3);--hl2:rgba(209,154,102,0.3);--sp1:#fff}.theme-dark.minimal-atom-dark.minimal-dark-black{--base-d:5%;--bg3:#282c34;--divider-color:#282c34;--tab-outline-color:#282c34}.theme-light.minimal-ayu-light{--color-red-rgb:230,80,80;--color-orange-rgb:250,141,62;--color-yellow-rgb:242,174,73;--color-green-rgb:108,191,67;--color-cyan-rgb:76,191,153;--color-blue-rgb:57,158,230;--color-purple-rgb:163,122,204;--color-pink-rgb:255,115,131;--color-red:#e65050;--color-orange:#fa8d3e;--color-yellow:#f2ae49;--color-green:#6CBF43;--color-cyan:#4cbf99;--color-blue:#399ee6;--color-purple:#a37acc;--color-pink:#ff7383}.theme-dark.minimal-ayu-dark{--color-red-rgb:255,102,102;--color-orange-rgb:250,173,102;--color-yellow-rgb:255,209,55;--color-green-rgb:135,217,108;--color-cyan-rgb:149,230,203;--color-blue-rgb:115,208,255;--color-purple-rgb:223,191,255;--color-pink-rgb:242,121,131;--color-red:#ff6666;--color-orange:#ffad66;--color-yellow:#ffd137;--color-green:#87D96C;--color-cyan:#95e6cb;--color-blue:#73d0ff;--color-purple:#dfbfff;--color-pink:#f27983}.theme-light.minimal-ayu-light{--base-h:210;--base-s:17%;--base-l:98%;--accent-h:36;--accent-s:100%;--accent-l:50%;--bg1:#fff;--bg2:#f8f9fa;--bg3:rgba(209,218,224,0.5);--ui1:#E6EAED;--tx1:#5C6165;--tx2:#8A9199;--tx3:#AAAEB0;--hl1:rgba(3,91,214,0.15)}.theme-dark.minimal-ayu-dark,.theme-light.minimal-ayu-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-ayu-light.minimal-light-contrast .titlebar,.theme-light.minimal-ayu-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-ayu-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-ayu-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:222;--base-s:22%;--base-l:15%;--accent-h:35;--accent-s:100%;--accent-l:60%;--bg1:#232937;--bg2:#1E2431;--bg3:rgba(51,61,80,0.5);--ui1:#333C4A;--ui2:#333C4A;--ui3:#333C4A;--tx1:#cccac2;--tx2:#707A8C;--tx3:#495063;--hl1:rgba(64,159,255,0.25)}.theme-dark.minimal-ayu-dark.minimal-dark-black{--accent-h:40;--accent-s:75%;--accent-l:61%;--bg3:#0E1017;--tx1:#BFBDB6;--divider-color:#11151C;--tab-outline-color:#11151C}.theme-light.minimal-catppuccin-light{--color-red-rgb:230,69,83;--color-orange-rgb:254,100,12;--color-yellow-rgb:223,142,29;--color-green-rgb:64,160,43;--color-cyan-rgb:23,146,154;--color-blue-rgb:33,102,246;--color-purple-rgb:137,56,239;--color-pink-rgb:234,119,203;--color-red:#E64553;--color-orange:#FE640C;--color-yellow:#DF8E1D;--color-green:#40A02B;--color-cyan:#17929A;--color-blue:#2166F6;--color-purple:#8938EF;--color-pink:#EA77CB}.theme-dark.minimal-catppuccin-dark{--color-red-rgb:235,153,156;--color-orange-rgb:239,160,118;--color-yellow-rgb:229,200,144;--color-green-rgb:166,209,138;--color-cyan-rgb:129,200,190;--color-blue-rgb:140,170,238;--color-purple-rgb:202,158,230;--color-pink-rgb:244,185,229;--color-red:#EB999C;--color-orange:#EFA076;--color-yellow:#E5C890;--color-green:#A6D18A;--color-cyan:#81C8BE;--color-blue:#8CAAEE;--color-purple:#CA9EE6;--color-pink:#F4B9E5}.theme-light.minimal-catppuccin-light{--base-h:228;--base-s:20%;--base-l:95%;--accent-h:11;--accent-s:59%;--accent-l:67%;--bg1:#F0F1F5;--bg2:#DCE0E8;--bg3:hsla(228,11%,65%,.25);--ui1:#CCD0DA;--ui2:#BCC0CC;--ui3:#ACB0BE;--tx1:#4D4F69;--tx2:#5D5F77;--tx3:#8D8FA2;--hl1:rgba(172,176,190,.3);--hl2:rgba(223,142,29,.3)}.theme-light.minimal-catppuccin-light.minimal-light-tonal{--bg2:#DCE0E8}.theme-light.minimal-catppuccin-light.minimal-light-white{--bg3:#F0F1F5;--ui1:#DCE0E8}.theme-dark.minimal-catppuccin-dark,.theme-light.minimal-catppuccin-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-catppuccin-light.minimal-light-contrast .titlebar,.theme-light.minimal-catppuccin-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-catppuccin-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-catppuccin-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:229;--base-s:19%;--base-l:23%;--accent-h:10;--accent-s:57%;--accent-l:88%;--bg1:#303446;--bg2:#242634;--bg3:hsla(229,13%,52%,0.25);--ui1:#41455A;--ui2:#51576D;--ui3:#626880;--tx1:#C6D0F5;--tx2:#A6ADCE;--tx3:#848BA7;--sp1:#242634;--hl1:rgba(98,104,128,.5);--hl2:rgba(223,142,29,.4)}.theme-dark.minimal-catppuccin-dark.minimal-dark-black{--ui1:#303446;--hl2:rgba(223,142,29,.5)}.theme-dark.minimal-dracula-dark{--color-red-rgb:255,85,85;--color-orange-rgb:255,184,108;--color-yellow-rgb:241,250,140;--color-green-rgb:80,250,123;--color-cyan-rgb:139,233,253;--color-blue-rgb:98,114,164;--color-purple-rgb:189,147,249;--color-pink-rgb:255,121,198;--color-red:#ff5555;--color-orange:#ffb86c;--color-yellow:#f1fa8c;--color-green:#50fa7b;--color-cyan:#8be9fd;--color-blue:#6272a4;--color-purple:#bd93f9;--color-pink:#ff79c6}.theme-dark.minimal-dracula-dark,.theme-light.minimal-dracula-light.minimal-light-contrast .titlebar,.theme-light.minimal-dracula-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-dracula-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:232;--base-s:16%;--base-l:19%;--accent-h:265;--accent-s:89%;--accent-l:78%;--bg1:#282a37;--bg2:#21222c;--ui2:#44475a;--ui3:#6272a4;--tx1:#f8f8f2;--tx2:#949FBE;--tx3:#6272a4;--hl1:rgba(134, 140, 170, 0.3);--hl2:rgba(189, 147, 249, 0.35)}.theme-dark.minimal-dracula-dark.minimal-dark-black{--ui1:#282a36}.theme-dark.minimal-eink-dark,.theme-light.minimal-eink-light{--collapse-icon-color:var(--text-normal);--icon-color-active:var(--bg1);--icon-color-hover:var(--bg1);--icon-color-focused:var(--bg1);--icon-opacity:1;--indentation-guide-color:var(--tx1);--indentation-guide-color-active:var(--tx1);--indentation-guide-width-active:3px;--interactive-normal:var(--bg1);--input-shadow:0 0 0 1px var(--tx1);--link-unresolved-opacity:1;--link-unresolved-decoration-style:dashed;--link-unresolved-decoration-color:var(--tx1);--metadata-label-background-active:var(--bg1);--metadata-input-background-active:var(--bg1);--modal-border-color:var(--tx1);--modal-border-width:2px;--nav-item-color-hover:var(--bg1);--nav-item-color-active:var(--bg1);--prompt-border-color:var(--tx1);--prompt-border-width:2px;--calendar-dot-active:var(--bg1);--calendar-dot-today:var(--bg1);--calendar-text-active:var(--bg1);--tag-border-width:1.25px;--tag-background:transparent;--tag-background-hover:transparent;--tag-border-color:var(--tx1);--tag-border-color-hover:var(--tx1);--text-on-accent:var(--bg1);--text-on-accent-inverted:var(--bg1)}.theme-dark.minimal-eink-dark.tabs-modern,.theme-light.minimal-eink-light.tabs-modern{--minimal-tab-text-color-active:var(--bg1);--tab-text-color-focused-active-current:var(--bg1)}.theme-dark.minimal-eink-dark .suggestion-container,.theme-light.minimal-eink-light .suggestion-container{border-width:3px}.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-inline-code,.theme-dark.minimal-eink-dark .markdown-rendered code,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-inline-code,.theme-light.minimal-eink-light .markdown-rendered code{font-weight:600}.theme-dark.minimal-eink-dark .metadata-property-icon,.theme-light.minimal-eink-light .metadata-property-icon{--icon-color-focused:var(--tx1)}.theme-dark.minimal-eink-dark .checkbox-container,.theme-light.minimal-eink-light .checkbox-container{background-color:var(--bg1);box-shadow:0 0 0 1px var(--tx1);--toggle-thumb-color:var(--tx1)}.theme-dark.minimal-eink-dark .checkbox-container.is-enabled,.theme-light.minimal-eink-light .checkbox-container.is-enabled{background-color:var(--tx1);--toggle-thumb-color:var(--bg1)}.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-formatting-highlight,.theme-dark.minimal-eink-dark .cm-s-obsidian span.cm-highlight,.theme-dark.minimal-eink-dark .community-item .suggestion-highlight,.theme-dark.minimal-eink-dark .dropdown:hover,.theme-dark.minimal-eink-dark .horizontal-tab-nav-item:hover,.theme-dark.minimal-eink-dark .markdown-rendered mark,.theme-dark.minimal-eink-dark .status-bar .plugin-sync:hover .sync-status-icon.mod-success,.theme-dark.minimal-eink-dark .status-bar .plugin-sync:hover .sync-status-icon.mod-working,.theme-dark.minimal-eink-dark .status-bar-item.mod-clickable:hover,.theme-dark.minimal-eink-dark .suggestion-item.is-selected,.theme-dark.minimal-eink-dark .text-icon-button:hover,.theme-dark.minimal-eink-dark .vertical-tab-nav-item:hover,.theme-dark.minimal-eink-dark button,.theme-dark.minimal-eink-dark select:hover,.theme-dark.minimal-eink-dark:not(.colorful-active) .horizontal-tab-nav-item.is-active,.theme-dark.minimal-eink-dark:not(.colorful-active) .vertical-tab-nav-item.is-active,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-formatting-highlight,.theme-light.minimal-eink-light .cm-s-obsidian span.cm-highlight,.theme-light.minimal-eink-light .community-item .suggestion-highlight,.theme-light.minimal-eink-light .dropdown:hover,.theme-light.minimal-eink-light .horizontal-tab-nav-item:hover,.theme-light.minimal-eink-light .markdown-rendered mark,.theme-light.minimal-eink-light .status-bar .plugin-sync:hover .sync-status-icon.mod-success,.theme-light.minimal-eink-light .status-bar .plugin-sync:hover .sync-status-icon.mod-working,.theme-light.minimal-eink-light .status-bar-item.mod-clickable:hover,.theme-light.minimal-eink-light .suggestion-item.is-selected,.theme-light.minimal-eink-light .text-icon-button:hover,.theme-light.minimal-eink-light .vertical-tab-nav-item:hover,.theme-light.minimal-eink-light button,.theme-light.minimal-eink-light select:hover,.theme-light.minimal-eink-light:not(.colorful-active) .horizontal-tab-nav-item.is-active,.theme-light.minimal-eink-light:not(.colorful-active) .vertical-tab-nav-item.is-active{color:var(--bg1)}.theme-light.minimal-eink-light{--base-h:0;--base-s:0%;--base-l:100%;--accent-h:0;--accent-s:0%;--accent-l:0%;--ax3:#000;--bg1:#fff;--bg2:#fff;--bg3:#000;--ui1:#000;--ui2:#000;--ui3:#000;--tx1:#000;--tx2:#000;--tx3:#000;--hl1:#000;--hl2:#000;--sp1:#fff;--text-on-accent:#fff;--background-modifier-cover:rgba(235,235,235,1)}.theme-light.minimal-eink-light.minimal-light-white{--bg3:#fff}.theme-dark.minimal-eink-dark,.theme-light.minimal-eink-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-eink-light.minimal-light-contrast .titlebar,.theme-light.minimal-eink-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-eink-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-eink-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:0;--base-s:0%;--base-l:0%;--accent-h:0;--accent-s:0%;--accent-l:100%;--ax3:#fff;--bg1:#000;--bg2:#000;--bg3:#fff;--ui1:#fff;--ui2:#fff;--ui3:#fff;--tx1:#fff;--tx2:#fff;--tx3:#fff;--hl1:#fff;--hl2:#fff;--sp1:#000;--background-modifier-cover:rgba(20,20,20,1)}.theme-light.minimal-eink-light.minimal-light-tonal{--bg3:#bbb;--ui1:#bbb;--modal-border-color:var(--ui1);--prompt-border-color:var(--ui1)}.theme-dark.minimal-eink-dark.minimal-dark-tonal{--bg3:#444;--ui1:#444;--modal-border-color:var(--ui1);--prompt-border-color:var(--ui1)}.theme-light.minimal-everforest-light{--color-red-rgb:248,85,82;--color-orange-rgb:245,125,38;--color-yellow-rgb:223,160,0;--color-green-rgb:141,161,1;--color-cyan-rgb:53,167,124;--color-blue-rgb:56,148,196;--color-purple-rgb:223,105,186;--color-pink-rgb:223,105,186;--color-red:#f85552;--color-orange:#f57d26;--color-yellow:#dfa000;--color-green:#8da101;--color-cyan:#35a77c;--color-blue:#3795C5;--color-purple:#df69ba;--color-pink:#df69ba}.theme-dark.minimal-everforest-dark{--color-red-rgb:230,126,128;--color-orange-rgb:230,152,117;--color-yellow-rgb:219,188,127;--color-green-rgb:167,192,128;--color-cyan-rgb:131,192,146;--color-blue-rgb:127,187,179;--color-purple-rgb:223,105,186;--color-pink-rgb:223,105,186;--color-red:#e67e80;--color-orange:#e69875;--color-yellow:#dbbc7f;--color-green:#a7c080;--color-cyan:#83c092;--color-blue:#7fbbb3;--color-purple:#d699b6;--color-pink:#d699b6}.theme-light.minimal-everforest-light{--base-h:44;--base-s:87%;--base-l:94%;--accent-h:83;--accent-s:36%;--accent-l:53%;--bg1:#fdf6e3;--bg2:#efebd4;--bg3:rgba(226,222,198,.5);--ui1:#e0dcc7;--ui2:#bec5b2;--ui3:#bec5b2;--tx1:#5C6A72;--tx2:#829181;--tx3:#a6b0a0;--hl1:rgba(198,214,152,.4);--hl2:rgba(222,179,51,.3)}.theme-light.minimal-everforest-light.minimal-light-tonal{--bg2:#fdf6e3}.theme-light.minimal-everforest-light.minimal-light-white{--bg3:#f3efda;--ui1:#edead5}.theme-dark.minimal-everforest-dark,.theme-light.minimal-everforest-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-everforest-light.minimal-light-contrast .titlebar,.theme-light.minimal-everforest-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-everforest-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-everforest-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:203;--base-s:15%;--base-l:23%;--accent-h:81;--accent-s:34%;--accent-l:63%;--bg1:#2d353b;--bg2:#232a2e;--bg3:rgba(71,82,88,0.5);--ui1:#475258;--ui2:#4f585e;--ui3:#525c62;--tx1:#d3c6aa;--tx2:#9da9a0;--tx3:#7a8478;--hl1:rgba(134,70,93,.5);--hl2:rgba(147,185,96,.3)}.theme-dark.minimal-everforest-dark.minimal-dark-black{--hl1:rgba(134,70,93,.4);--ui1:#2b3339}.theme-light.minimal-flexoki-light{--color-red-rgb:175,48,41;--color-orange-rgb:188,82,21;--color-yellow-rgb:173,131,1;--color-green-rgb:102,128,11;--color-cyan-rgb:36,131,123;--color-blue-rgb:32,94,166;--color-purple-rgb:94,64,157;--color-pink-rgb:160,47,111;--color-red:#AF3029;--color-orange:#BC5215;--color-yellow:#AD8301;--color-green:#66800B;--color-cyan:#24837B;--color-blue:#205EA6;--color-purple:#5E409D;--color-pink:#A02F6F}.theme-dark.minimal-flexoki-dark{--color-red-rgb:209,77,65;--color-orange-rgb:218,112,44;--color-yellow-rgb:208,162,21;--color-green-rgb:135,154,57;--color-cyan-rgb:58,169,159;--color-blue-rgb:67,133,190;--color-purple-rgb:139,126,200;--color-pink-rgb:206,93,151;--color-red:#D14D41;--color-orange:#DA702C;--color-yellow:#D0A215;--color-green:#879A39;--color-cyan:#3AA99F;--color-blue:#4385BE;--color-purple:#8B7EC8;--color-pink:#CE5D97}.theme-light.minimal-flexoki-light{--base-h:48;--base-s:100%;--base-l:97%;--accent-h:175;--accent-s:57%;--accent-l:33%;--bg1:#FFFCF0;--bg2:#F2F0E5;--bg3:rgba(16,15,15,0.05);--ui1:#E6E4D9;--ui2:#DAD8CE;--ui3:#CECDC3;--tx1:#100F0F;--tx2:#6F6E69;--tx3:#B7B5AC;--hl1:rgba(187,220,206,0.3);--hl2:rgba(247,209,61,0.3)}.theme-light.minimal-flexoki-light.minimal-light-tonal{--bg2:#FFFCF0}.theme-dark.minimal-flexoki-dark,.theme-light.minimal-flexoki-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-flexoki-light.minimal-light-contrast .titlebar,.theme-light.minimal-flexoki-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-flexoki-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-flexoki-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:360;--base-s:3%;--base-l:6%;--accent-h:175;--accent-s:49%;--accent-l:45%;--bg1:#100F0F;--bg2:#1C1B1A;--bg3:rgba(254,252,240,0.05);--ui1:#282726;--ui2:#343331;--ui3:#403E3C;--tx1:#CECDC3;--tx2:#878580;--tx3:#575653;--hl1:rgba(30,95,91,0.3);--hl2:rgba(213,159,17,0.3)}.theme-dark.minimal-flexoki-dark.minimal-dark-black{--ui1:#1C1B1A}.theme-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light{--color-red-rgb:204,36,29;--color-orange-rgb:214,93,14;--color-yellow-rgb:215,153,33;--color-green-rgb:152,151,26;--color-cyan-rgb:104,157,106;--color-blue-rgb:69,133,136;--color-purple-rgb:177,98,134;--color-pink-rgb:177,98,134;--color-red:#cc241d;--color-orange:#d65d0e;--color-yellow:#d79921;--color-green:#98971a;--color-cyan:#689d6a;--color-blue:#458588;--color-purple:#b16286;--color-pink:#b16286}.theme-light.minimal-gruvbox-light{--base-h:49;--base-s:92%;--base-l:89%;--accent-h:24;--accent-s:88%;--accent-l:45%;--bg1:#fcf2c7;--bg2:#f2e6bd;--bg3:#ebd9b3;--ui1:#ebdbb2;--ui2:#d5c4a1;--ui3:#bdae93;--tx1:#282828;--tx2:#7c7065;--tx3:#a89a85;--hl1:rgba(192,165,125,.3);--hl2:rgba(215,153,33,.4)}.theme-light.minimal-gruvbox-light.minimal-light-tonal{--bg2:#fcf2c7}.theme-light.minimal-gruvbox-light.minimal-light-white{--bg3:#faf5d7;--ui1:#f2e6bd}.theme-dark.minimal-gruvbox-dark,.theme-light.minimal-gruvbox-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-gruvbox-light.minimal-light-contrast .titlebar,.theme-light.minimal-gruvbox-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-gruvbox-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-gruvbox-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-h:24;--accent-s:88%;--accent-l:45%;--bg1:#282828;--bg2:#1e2021;--bg3:#3d3836;--bg3:rgba(62,57,55,0.5);--ui1:#3c3836;--ui2:#504945;--ui3:#665c54;--tx1:#fbf1c7;--tx2:#bdae93;--tx3:#7c6f64;--hl1:rgba(173,149,139,0.3);--hl2:rgba(215,153,33,.4)}.theme-dark.minimal-gruvbox-dark.minimal-dark-black{--hl1:rgba(173,149,139,0.4);--ui1:#282828}.theme-dark.minimal-macos-dark,.theme-light.minimal-macos-light{--color-red-rgb:255,59,49;--color-orange-rgb:255,149,2;--color-yellow-rgb:255,204,0;--color-green-rgb:42,205,65;--color-cyan-rgb:2,199,190;--color-blue-rgb:2,122,255;--color-purple-rgb:176,81,222;--color-pink-rgb:255,46,85;--color-red:#ff3b31;--color-orange:#ff9502;--color-yellow:#ffcc00;--color-green:#2acd41;--color-cyan:#02c7be;--color-blue:#027aff;--color-purple:#b051de;--color-pink:#ff2e55}.theme-light.minimal-macos-light{--base-h:106;--base-s:0%;--base-l:94%;--accent-h:212;--accent-s:100%;--accent-l:50%;--bg1:#fff;--bg2:#f0f0f0;--bg3:rgba(0,0,0,.1);--ui1:#e7e7e7;--tx1:#454545;--tx2:#808080;--tx3:#b0b0b0;--hl1:#b3d7ff}.theme-light.minimal-macos-light.minimal-light-tonal{--bg1:#f0f0f0;--bg2:#f0f0f0}.theme-dark.minimal-macos-dark,.theme-light.minimal-macos-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-macos-light.minimal-light-contrast .titlebar,.theme-light.minimal-macos-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-macos-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-macos-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:106;--base-s:0%;--base-l:12%;--accent-h:212;--accent-s:100%;--accent-l:50%;--bg1:#1e1e1e;--bg2:#282828;--bg3:rgba(255,255,255,0.11);--divider-color:#000;--tab-outline-color:#000;--ui1:#373737;--ui2:#515151;--ui3:#595959;--tx1:#dcdcdc;--tx2:#8c8c8c;--tx3:#686868;--hl1:rgba(98,169,252,0.5);--sp1:#fff}.theme-dark.minimal-macos-dark.minimal-dark-black{--divider-color:#1e1e1e;--tab-outline-color:#1e1e1e}.theme-dark.minimal-nord-dark,.theme-light.minimal-nord-light{--color-red-rgb:191,97,106;--color-orange-rgb:208,138,112;--color-yellow-rgb:235,203,139;--color-green-rgb:163,190,140;--color-cyan-rgb:136,192,208;--color-blue-rgb:129,161,193;--color-purple-rgb:180,142,173;--color-pink-rgb:180,142,173;--color-red:#BF616A;--color-orange:#D08770;--color-yellow:#EBCB8B;--color-green:#A3BE8C;--color-cyan:#88C0D0;--color-blue:#81A1C1;--color-purple:#B48EAD;--color-pink:#B48EAD}.theme-light.minimal-nord-light{--base-h:221;--base-s:27%;--base-l:94%;--accent-h:213;--accent-s:32%;--accent-l:52%;--bg1:#fff;--bg2:#eceff4;--bg3:rgba(157,174,206,0.25);--ui1:#d8dee9;--ui2:#BBCADC;--ui3:#81a1c1;--tx1:#2e3440;--tx2:#7D8697;--tx3:#ADB1B8;--hl2:rgba(208, 135, 112, 0.35)}.theme-dark.minimal-nord-dark,.theme-light.minimal-nord-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-nord-light.minimal-light-contrast .titlebar,.theme-light.minimal-nord-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-nord-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-nord-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:220;--base-s:16%;--base-l:22%;--accent-h:213;--accent-s:32%;--accent-l:52%;--bg1:#2e3440;--bg2:#3b4252;--bg3:rgba(135,152,190,0.15);--ui1:#434c5e;--ui2:#58647b;--ui3:#58647b;--tx1:#d8dee9;--tx2:#9eafcc;--tx3:#4c566a;--hl1:rgba(129,142,180,0.3);--hl2:rgba(208, 135, 112, 0.35)}.theme-dark.minimal-nord-dark.minimal-dark-black{--ui1:#2e3440}.theme-light.minimal-notion-light{--base-h:39;--base-s:18%;--base-d:96%;--accent-h:197;--accent-s:71%;--accent-l:52%;--bg2:#f7f6f4;--bg3:#e8e7e4;--ui1:#ededec;--ui2:#dbdbda;--ui3:#aaa9a5;--tx1:#37352f;--tx2:#72706c;--tx3:#aaa9a5;--hl1:rgba(131,201,229,0.3);--link-weight:500}.theme-dark.minimal-notion-dark,.theme-light.minimal-notion-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-notion-light.minimal-light-contrast .titlebar,.theme-light.minimal-notion-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-notion-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-notion-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:203;--base-s:8%;--base-d:20%;--accent-h:197;--accent-s:71%;--accent-l:52%;--bg1:#2f3437;--bg2:#373c3f;--bg3:#4b5053;--ui1:#3e4245;--ui2:#585d5f;--ui3:#585d5f;--tx1:#ebebeb;--tx2:#909295;--tx3:#585d5f;--hl1:rgba(57,134,164,0.3);--link-weight:500}.theme-dark.minimal-notion-dark.minimal-dark-black{--base-d:5%;--bg3:#232729;--ui1:#2f3437}.theme-light.minimal-rose-pine-light{--color-red-rgb:180,99,122;--color-orange-rgb:215,130,125;--color-yellow-rgb:234,157,53;--color-green-rgb:40,105,131;--color-cyan-rgb:87,147,159;--color-blue-rgb:87,147,159;--color-purple-rgb:144,122,169;--color-pink-rgb:144,122,169;--color-red:#b4637a;--color-orange:#d7827e;--color-yellow:#ea9d34;--color-green:#286983;--color-cyan:#56949f;--color-blue:#56949f;--color-purple:#907aa9;--color-pink:#907aa9}.theme-dark.minimal-rose-pine-dark{--color-red-rgb:234,111,146;--color-orange-rgb:233,155,151;--color-yellow-rgb:246,193,119;--color-green-rgb:47,116,143;--color-cyan-rgb:157,207,215;--color-blue-rgb:157,207,215;--color-purple-rgb:196,167,231;--color-pink-rgb:196,167,231;--color-red:#eb6f92;--color-orange:#ea9a97;--color-yellow:#f6c177;--color-green:#31748f;--color-cyan:#9ccfd8;--color-blue:#9ccfd8;--color-purple:#c4a7e7;--color-pink:#c4a7e7}.theme-light.minimal-rose-pine-light{--base-h:32;--base-s:57%;--base-l:95%;--accent-h:3;--accent-s:53%;--accent-l:67%;--bg1:#fffaf3;--bg2:#faf4ed;--bg3:rgba(233,223,218,0.5);--ui1:#EAE3E1;--ui2:#dfdad9;--ui3:#cecacd;--tx1:#575279;--tx2:#797593;--tx3:#9893a5;--hl1:rgba(191,180,181,0.35)}.theme-dark.minimal-rose-pine-dark,.theme-light.minimal-rose-pine-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-rose-pine-light.minimal-light-contrast .titlebar,.theme-light.minimal-rose-pine-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-rose-pine-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-rose-pine-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:247;--base-s:23%;--base-l:15%;--accent-h:2;--accent-s:55%;--accent-l:83%;--bg1:#1f1d2e;--bg2:#191724;--bg3:rgba(68,66,86,0.5);--ui1:#312F41;--ui2:#403d52;--ui3:#524f67;--tx1:#e0def4;--tx2:#908caa;--tx3:#6e6a86;--hl1:rgba(126,121,155,0.35)}.theme-dark.minimal-rose-pine-dark.minimal-dark-black{--ui1:#21202e}.theme-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light{--color-red-rgb:220,50,47;--color-orange-rgb:203,77,22;--color-yellow-rgb:181,137,0;--color-green-rgb:133,153,0;--color-cyan-rgb:42,161,152;--color-blue-rgb:38,139,210;--color-purple-rgb:108,113,196;--color-pink-rgb:211,54,130;--color-red:#dc322f;--color-orange:#cb4b16;--color-yellow:#b58900;--color-green:#859900;--color-cyan:#2aa198;--color-blue:#268bd2;--color-purple:#6c71c4;--color-pink:#d33682}.theme-light.minimal-solarized-light{--base-h:44;--base-s:87%;--base-l:94%;--accent-h:205;--accent-s:70%;--accent-l:48%;--bg1:#fdf6e3;--bg2:#eee8d5;--bg3:rgba(0,0,0,0.062);--ui1:#e9e1c8;--ui2:#d0cab8;--ui3:#d0cab8;--tx1:#073642;--tx2:#586e75;--tx3:#ABB2AC;--tx4:#586e75;--hl1:rgba(202,197,182,0.3);--hl2:rgba(203,75,22,0.3)}.theme-light.minimal-solarized-light.minimal-light-tonal{--bg2:#fdf6e3}.theme-dark.minimal-solarized-dark,.theme-light.minimal-solarized-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-solarized-light.minimal-light-contrast .titlebar,.theme-light.minimal-solarized-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-solarized-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-solarized-light.minimal-light-contrast.minimal-status-off .status-bar{--accent-h:205;--accent-s:70%;--accent-l:48%;--base-h:193;--base-s:98%;--base-l:11%;--bg1:#002b36;--bg2:#073642;--bg3:rgba(255,255,255,0.062);--ui1:#19414B;--ui2:#274850;--ui3:#31535B;--tx1:#93a1a1;--tx2:#657b83;--tx3:#31535B;--tx4:#657b83;--hl1:rgba(15,81,98,0.3);--hl2:rgba(203, 75, 22, 0.35)}.theme-dark.minimal-solarized-dark.minimal-dark-black{--hl1:rgba(15,81,98,0.55);--ui1:#002b36}.theme-dark.minimal-things-dark,.theme-light.minimal-things-light{--color-red-rgb:255,48,108;--color-orange-rgb:255,149,2;--color-yellow-rgb:255,213,0;--color-green-rgb:75,191,94;--color-cyan-rgb:73,174,164;--color-purple-rgb:176,81,222;--color-pink-rgb:255,46,85;--color-red:#FF306C;--color-orange:#ff9502;--color-yellow:#FFD500;--color-green:#4BBF5E;--color-cyan:#49AEA4;--color-purple:#b051de;--color-pink:#ff2e55}.theme-light.minimal-things-light{--color-blue-rgb:27,97,194;--color-blue:#1b61c2}.theme-dark.minimal-things-dark{--color-blue-rgb:77,149,247;--color-blue:#4d95f7}.theme-light.minimal-things-light{--accent-h:215;--accent-s:76%;--accent-l:43%;--bg1:white;--bg2:#f5f6f8;--bg3:rgba(162,177,187,0.25);--ui1:#eef0f4;--ui2:#D8DADD;--ui3:#c1c3c6;--tx1:#26272b;--tx2:#7D7F84;--tx3:#a9abb0;--hl1:#cae2ff}.theme-light.minimal-things-light.minimal-light-tonal{--ui1:#e6e8ec}.theme-light.minimal-things-light.minimal-light-white{--bg3:#f5f6f8}.theme-dark.minimal-things-dark,.theme-light.minimal-things-light.minimal-light-contrast .mod-left-split,.theme-light.minimal-things-light.minimal-light-contrast .titlebar,.theme-light.minimal-things-light.minimal-light-contrast .workspace-drawer.mod-left,.theme-light.minimal-things-light.minimal-light-contrast .workspace-ribbon.mod-left:not(.is-collapsed),.theme-light.minimal-things-light.minimal-light-contrast.minimal-status-off .status-bar{--base-h:218;--base-s:9%;--base-l:15%;--accent-h:215;--accent-s:91%;--accent-l:64%;--bg1:#24262a;--bg2:#202225;--bg3:#3d3f41;--divider-color:#17191c;--tab-outline-color:#17191c;--ui1:#3A3B3F;--ui2:#45464a;--ui3:#6c6e70;--tx1:#fbfbfb;--tx2:#CBCCCD;--tx3:#6c6e70;--hl1:rgba(40,119,236,0.35);--sp1:#fff}.theme-dark.minimal-things-dark.minimal-dark-black{--base-d:5%;--bg3:#24262a;--divider-color:#24262a;--tab-outline-color:#24262a} -/* Plugin compatibility */ - -/* @plugins -core: -- backlink -- command-palette -- daily-notes -- file-explorer -- file-recovery -- global-search -- graph -- outgoing-link -- outline -- page-preview -- publish -- random-note -- starred -- switcher -- sync -- tag-pane -- word-count -community: -- buttons -- dataview -- calendar -- obsidian-charts -- obsidian-checklist-plugin -- obsidian-codemirror-options -- obsidian-dictionary-plugin -- obsidian-embedded-note-titles -- obsidian-excalidraw-plugin -- obsidian-git -- obsidian-hider -- obsidian-hover-editor -- obsidian-kanban -- obsidian-metatable -- obsidian-minimal-settings -- obsidian-outliner -- obsidian-system-dark-mode -- obsidian-style-settings -- quickadd -- sliding-panes-obsidian -- todoist-sync-plugin -*/ -/* @settings - -name: Minimal -id: minimal-style -settings: - - - id: instructions - title: Documentation - type: heading - level: 2 - collapsed: true - description: Use the Minimal Theme Settings plugin to set hotkeys, adjust features, select fonts, and choose from preset color schemes. Use the settings below for more granular customization. Go to https://minimal.guide for documentation. - - - id: interface - title: Interface colors - type: heading - level: 2 - collapsed: true - - - id: base - title: Base color - description: Defines all background and border colors unless overridden in more granular settings - type: variable-themed-color - format: hsl-split - default-light: '#' - default-dark: '#' - - - id: bg1 - title: Primary background - description: Background color for the main window - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: bg2 - title: Secondary background - description: Background color for left sidebar and menus - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: bg3 - title: Active background - description: Background color for hovered buttons and currently selected file - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: ui1 - title: Border color - type: variable-themed-color - description: For buttons, divider lines, and outlined elements - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: ui2 - title: Highlighted border color - description: Used when hovering over buttons, dividers, and outlined elements - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: ui3 - title: Active border color - description: Used when clicking buttons and outlined elements - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: accent-color - title: Accent color - type: heading - level: 2 - collapsed: true - - - id: ax1 - title: Accent color - type: variable-themed-color - description: Used primarily for links - format: hex - default-light: '#' - default-dark: '#' - - - id: ax2 - title: Accent color (hover) - type: variable-themed-color - description: Used primarily for hovered links - format: hex - default-light: '#' - default-dark: '#' - - - id: ax3 - title: Accent color interactive - type: variable-themed-color - description: Used for buttons, checklists, toggles - format: hex - default-light: '#' - default-dark: '#' - - - id: sp1 - title: Text on accent - type: variable-themed-color - description: Used primarily for text on accented buttons - format: hex - default-light: '#' - default-dark: '#' - - - id: extended-palette - title: Extended colors - type: heading - level: 2 - collapsed: true - - - id: color-red - title: Red - description: Extended palette colors are defaults used for progress bar status, syntax highlighting, colorful headings, and graph nodes - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-orange - title: Orange - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-yellow - title: Yellow - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-green - title: Green - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-cyan - title: Cyan - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-blue - title: Blue - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-purple - title: Purple - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: color-pink - title: Pink - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: blockquotes - title: Blockquotes - type: heading - level: 2 - collapsed: true - - - id: blockquote-color - title: Blockquote text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: blockquote-background-color - title: Blockquote background color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: blockquote-border-color - title: Blockquote border color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: blockquote-border-thickness - title: Blockquote border thickness - type: variable-number-slider - format: px - default: 1 - min: 0 - max: 5 - step: 1 - - - id: blockquote-size - title: Blockquote font size - description: Accepts any CSS font-size value - type: variable-text - default: '' - - - id: blockquote-font-style - title: Blockquote font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: callouts - title: Callouts - type: heading - level: 2 - collapsed: true - - - id: callouts-style - title: Callout style - type: class-select - allowEmpty: false - default: callouts-default - options: - - - label: Filled - value: callouts-default - - - label: Outlined - value: callouts-outlined - - - id: callout-blend-mode - title: Color blending - description: Blend the color of nested callouts - type: variable-select - allowEmpty: false - default: var(--highlight-mix-blend-mode) - options: - - - label: On - value: var(--highlight-mix-blend-mode) - - - label: Off - value: normal - - - id: canvas - title: Canvas - type: heading - level: 2 - collapsed: true - - - id: canvas-dot-pattern - title: Canvas dot pattern - description: Color for background dot pattern - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-blocks - title: Code blocks - type: heading - level: 2 - collapsed: true - - - id: code-size - title: Code font size - description: Accepts any CSS font-size value - type: variable-text - default: 13px - - - id: minimal-code-scroll - title: Scroll long lines - description: Turns off line wrap for code - type: class-toggle - default: false - - - id: code-background - title: Code background color - description: Background for code blocks - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-normal - title: Code text color - description: Color of code when syntax highlighting is not present - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: syntax-highlighting - title: Syntax highlighting - type: heading - level: 3 - collapsed: false - - - id: code-comment - title: "Syntax: comments" - description: Syntax highlighting for comments - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-function - title: "Syntax: functions" - description: Syntax highlighting for functions - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-keyword - title: "Syntax: keywords" - description: Syntax highlighting for keywords - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-important - title: "Syntax: important" - description: Syntax highlighting for important text - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-operator - title: "Syntax: operators" - description: Syntax highlighting for operators - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-property - title: "Syntax: properties" - description: Syntax highlighting for properties - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-punctuation - title: "Syntax: punctuation" - description: Syntax highlighting for punctuation - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-string - title: "Syntax: strings" - description: Syntax highlighting for strings - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-tag - title: "Syntax: tags" - description: Syntax highlighting for tags - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: code-value - title: "Syntax: values" - description: Syntax highlighting for values - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: dataview - title: Dataview - type: heading - level: 2 - collapsed: true - - - id: trim-cols - title: Trim Dataview columns - description: Disables word wrapping in table cells, and trims long text - type: class-toggle - default: true - - - id: dataview-inline-lists - title: Force tables lists inline - description: Makes lists inside of table cells inline and comma separated - type: class-toggle - default: false - - - id: max-col-width - title: Dataview maximum column width - description: Maximum width for Dataview columns, accepts any CSS width value - type: variable-text - default: 18em - - - id: embed-blocks - title: Embeds and transclusions - type: heading - level: 2 - collapsed: true - - - id: embed-strict - title: Use strict embed style globally - description: Transclusions appear seamlessly in the flow of text. Can be enabled per file using the embed-strict helper class - type: class-toggle - default: false - - - id: embed-hide-title - title: Hide embed titles - description: Hide title of the transcluded file (if strict embed is off) - type: class-toggle - default: false - - - id: embed-underline - title: Underline embedded text - description: Transcluded text is underlined. Can be enabled per file using the embed-underline helper class - type: class-toggle - default: false - - - id: embed-max-height - title: Maximum height of embeds - type: variable-text - description: For transcluded text, accepts valid CSS units - default: '' - - - id: embed-decoration-style - title: Embedded text underline style - type: variable-select - description: Requires underlines to be enabled - allowEmpty: true - default: solid - options: - - - label: Solid - value: solid - - - label: Dashed - value: dashed - - - label: Dotted - value: dotted - - - label: Double - value: double - - - label: Wavy - value: wavy - - - id: embed-decoration-color - title: Embedded text underline color - type: variable-themed-color - description: Requires underlines to be enabled - format: hex - default-light: '#' - default-dark: '#' - - - id: embed-background - title: Embed background - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: graphs - title: Graphs - type: heading - level: 2 - collapsed: true - - - id: graph-line - title: Line color - description: Changing graph colors requires closing and reopening graph panes or restarting Obsidian - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: graph-node - title: Node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: graph-node-focused - title: Active node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: graph-node-tag - title: Tag node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: graph-node-attachment - title: Attachment node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: graph-node-unresolved - title: Unresolved node color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: headings - title: Headings - type: heading - level: 2 - collapsed: true - - - id: level-1-headings - title: Level 1 Headings - type: heading - level: 3 - collapsed: true - - - id: h1-font - title: H1 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h1-size - title: H1 font size - description: Accepts any CSS font-size value - type: variable-text - default: 1.125em - - - id: h1-weight - title: H1 font weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: h1-color - title: H1 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h1-variant - title: H1 font variant - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h1-style - title: H1 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h1-l - title: H1 divider line - description: Adds a border below the heading - type: class-toggle - default: false - - - id: level-2-headings - title: Level 2 Headings - type: heading - level: 3 - collapsed: true - - - id: h2-font - title: H2 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h2-size - title: H2 font size - description: Accepts any CSS font-size value - type: variable-text - default: 1em - - - id: h2-weight - title: H2 font weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: h2-color - title: H2 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h2-variant - title: H2 font variant - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h2-style - title: H2 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h2-l - title: H2 divider line - description: Adds a border below the heading - type: class-toggle - default: false - - - id: level-3-headings - title: Level 3 Headings - type: heading - level: 3 - collapsed: true - - - id: h3-font - title: H3 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h3-size - title: H3 font size - description: Accepts any CSS font-size value - type: variable-text - default: 1em - - - id: h3-weight - title: H3 font weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: h3-color - title: H3 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h3-variant - title: H3 font variant - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h3-style - title: H3 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h3-l - title: H3 divider line - description: Adds a border below the heading - type: class-toggle - default: false - - - id: level-4-headings - title: Level 4 Headings - type: heading - level: 3 - collapsed: true - - - id: h4-font - title: H4 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h4-size - title: H4 font size - description: Accepts any CSS font-size value - type: variable-text - default: 0.9em - - - id: h4-weight - title: H4 font weight - type: variable-number-slider - default: 500 - min: 100 - max: 900 - step: 100 - - - id: h4-color - title: H4 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h4-variant - title: H4 font variant - type: variable-select - allowEmpty: false - default: small-caps - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h4-style - title: H4 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h4-l - title: H4 divider line - description: Adds a border below the heading - type: class-toggle - default: false - - - id: level-5-headings - title: Level 5 Headings - type: heading - level: 3 - collapsed: true - - - id: h5-font - title: H5 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h5-size - title: H5 font size - description: Accepts any CSS font-size value - type: variable-text - default: 0.85em - - - id: h5-weight - title: H5 font weight - type: variable-number-slider - default: 500 - min: 100 - max: 900 - step: 100 - - - id: h5-color - title: H5 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h5-variant - title: H5 font variant - type: variable-select - allowEmpty: false - default: small-caps - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h5-style - title: H5 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h5-l - title: H5 divider line - description: Adds a border below the heading - type: class-toggle - default: false - - - id: level-6-headings - title: Level 6 Headings - type: heading - level: 3 - collapsed: true - - - id: h6-font - title: H6 font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: h6-size - title: H6 font size - description: Accepts any CSS font-size value - type: variable-text - default: 0.85em - - - id: h6-weight - title: H6 font weight - type: variable-number-slider - default: 400 - min: 100 - max: 900 - step: 100 - - - id: h6-color - title: H6 text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: h6-variant - title: H6 font variant - type: variable-select - allowEmpty: false - default: small-caps - options: - - - label: Normal - value: normal - - - label: Small caps - value: small-caps - - - label: All small caps - value: all-small-caps - - - id: h6-style - title: H6 font style - type: variable-select - allowEmpty: false - default: normal - options: - - - label: Normal - value: normal - - - label: Italic - value: italic - - - id: h6-l - title: H6 divider line - type: class-toggle - description: Adds a border below the heading - default: false - - - id: icons - title: Icons - type: heading - level: 2 - collapsed: true - - - id: icon-muted - title: Icon opacity (inactive) - type: variable-number-slider - default: 0.5 - min: 0.25 - max: 1 - step: 0.05 - - - id: icon-color - title: Icon color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: icon-color-hover - title: Icon color (hover) - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: icon-color-active - title: Icon color (active) - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: icon-color-focused - title: Icon color (focused) - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: images - title: Images - type: heading - level: 2 - collapsed: true - - - id: image-muted - title: Image opacity in dark mode - description: Level of fading for images in dark mode. Hover over images to display at full brightness. - type: variable-number-slider - default: 0.7 - min: 0.25 - max: 1 - step: 0.05 - - - id: image-radius - title: Image radius - description: Rounded corners for images - type: variable-number-slider - default: 4 - min: 0 - max: 16 - step: 1 - format: px - - - id: image-blend-light - title: Blend images in light mode - description: Allow images to blend into the color scheme background color - type: class-toggle - default: false - - - id: zoom-off - title: Disable image zoom - description: Turns off click + hold to zoom images - type: class-toggle - - - id: image-grid-fit - title: Image grid crop - description: Sets how images get cropped in a grid - type: variable-select - default: cover - options: - - - label: Crop to fit - value: cover - - - label: Show full image - value: contain - - - id: image-grid-background - title: Image grid background - description: Background of images in cells, useful when images are not cropped to fit - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: indentation-guides - title: Indentation guides - type: heading - level: 2 - collapsed: true - - - id: ig-adjust-reading - title: Horizontal adjustment in reading mode - type: variable-number-slider - default: -0.65 - min: -1.2 - max: 0 - step: 0.05 - format: em - - - id: ig-adjust-edit - title: Horizontal adjustment in edit mode - type: variable-number-slider - default: -1 - min: -10 - max: 10 - step: 1 - format: px - - - id: indentation-guide-color - title: Indentation guide color - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: indentation-guide-color-active - title: Indentation guide color (active) - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: links - title: Links - type: heading - level: 2 - collapsed: true - - - id: links-internal - title: Internal links - type: heading - level: 3 - collapsed: true - - - id: link-color - title: Internal link color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: link-color-hover - title: Internal link color (hover) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: link-unresolved-opacity - title: Unresolved link opacity - type: variable-number-slider - default: 0.7 - min: 0.25 - max: 1 - step: 0.05 - - - id: link-unresolved-color - title: Unresolved link color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: link-unresolved-decoration-color - title: Unresolved link underline color - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: links-external - title: External links - type: heading - level: 3 - collapsed: true - - - id: link-external-color - title: External link color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: link-external-color-hover - title: External link color (hover) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: active-line - title: Line numbers - type: heading - level: 2 - collapsed: true - - - id: active-line-on - title: Highlight active line - description: Adds a background to current line in editor - type: class-toggle - default: false - - - id: folding-offset - title: Gutter offset - description: Width of the file margin used for gutter - type: variable-number-slider - default: 32 - min: 0 - max: 60 - step: 1 - format: px - - - id: gutter-background - title: Gutter background - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: line-number-color - title: Line number color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: line-number-color-active - title: Active line number color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: active-line-bg - title: Active line background - description: Using a low opacity color is recommended to avoid conflicting with highlights - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: lists - title: Lists and tasks - type: heading - level: 2 - collapsed: true - - - id: checkbox-color - title: Checkbox color - description: Background color for completed tasks - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: checkbox-shape - title: Checkbox shape - type: class-select - allowEmpty: false - default: checkbox-circle - options: - - - label: Circle - value: checkbox-circle - - - label: Square - value: checkbox-square - - - id: minimal-strike-lists - title: Strike completed tasks - description: Adds strikethrough line and greyed text for completed tasks - type: class-toggle - default: false - - - id: list-spacing - title: List item spacing - description: Vertical space between list items in em units - type: variable-number-slider - default: 0.075 - min: 0 - max: 0.3 - step: 0.005 - format: em - - - id: list-indent - title: Nested list indentation - description: Horizontal space from left in em units - type: variable-number-slider - default: 2 - min: 1 - max: 3.5 - step: 0.1 - format: em - - - id: pdf - title: PDFs - type: heading - level: 2 - collapsed: true - - - id: pdf-page-style - title: PDF page style - description: Borders and shadows around pages - type: class-select - allowEmpty: false - default: pdf-seamless-on - options: - - - label: Seamless - value: pdf-seamless-on - - - label: Shadows - value: pdf-shadows-on - - - id: pdf-invert-dark - title: Invert PDFs in dark mode - description: Best for working with black text on white pages - type: class-toggle - default: true - - - id: pdf-blend-light - title: Blend PDFs in light mode - description: Allow PDFs to blend into the color scheme background color - type: class-toggle - default: true - - - id: pdf-dark-opacity - title: PDF opacity in dark mode - description: Fade PDF pages in dark mode - type: variable-number-slider - default: 1 - min: 0.25 - max: 1 - step: 0.05 - - - id: progress - title: Progress bars - type: heading - level: 2 - collapsed: true - - - id: progress-complete - title: Completed progress bar color - description: Defaults to your accent color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: properties - title: Properties - type: heading - level: 2 - collapsed: true - - - id: metadata-heading-off - title: Hide properties heading - description: Hide "Properties" heading above properties - type: class-toggle - default: false - - - id: metadata-add-property-off - title: Hide "Add property" button - description: Hide "Add property" button below properties - type: class-toggle - default: false - - - id: metadata-icons-off - title: Hide property icons - description: Hide icons next to property names - type: class-toggle - default: false - - - id: metadata-dividers - title: Property row lines - description: Display borders between properties - type: class-toggle - default: false - - - id: metadata-label-width - title: Property name width - description: Width for the name of the property - type: variable-number-slider - format: rem - default: 8 - min: 4 - max: 12 - step: 0.25 - - - id: sidebars - title: Sidebars - type: heading - level: 2 - collapsed: true - - - id: sidebar-lines-off - title: Hide sidebar relationship lines - description: Turns off lines in file navigation - type: class-toggle - - - id: sidebar-tabs-style - title: Sidebar tab style - type: class-select - allowEmpty: false - default: sidebar-tabs-default - options: - - - label: Index round - value: sidebar-tabs-index - - - label: Index square - value: sidebar-tabs-square - - - label: Modern compact - value: sidebar-tabs-default - - - label: Modern wide - value: sidebar-tabs-wide - - - label: Underline - value: sidebar-tabs-underline - - - - id: mobile-left-sidebar-width - title: Mobile left sidebar width - description: Maximum width for pinned left sidebar on mobile - type: variable-number - default: 280 - format: pt - - - id: mobile-right-sidebar-width - title: Mobile right sidebar width - description: Maximum width for pinned right sidebar on mobile - type: variable-number - default: 240 - format: pt - - - id: ribbon - title: Ribbon - type: heading - level: 2 - collapsed: true - - - id: ribbon-style - title: Ribbon style - description: Ribbon menu can be hidden using the Hider plugin - type: class-select - allowEmpty: false - default: ribbon-hidden - options: - - - label: Default - value: ribbon-hidden - - - label: Bottom left hover - value: ribbon-bottom-left-hover - - - id: tables - title: Tables - type: heading - level: 2 - collapsed: true - - - id: table-text-size - title: Table font size - description: All of the following settings apply to all tables globally. To turn on these features on a per-note basis use helper classes. See documentation. - type: variable-text - default: 1em - - - id: table-column-min-width - title: Minimum column width - type: variable-text - default: 6ch - - - id: table-column-max-width - title: Maximum column width - type: variable-text - default: none - - - id: maximize-tables-off - title: Maximize table width - description: Determines how wide tables should behave when they become wider than the line width - type: class-select - allowEmpty: false - default: maximize-tables-off - options: - - - label: Fit to line width - value: maximize-tables-off - - - label: Overflow line width - value: maximize-tables-auto - - - label: Always fill - value: maximize-tables - - - id: row-lines - title: Row lines - description: Display borders between table rows globally - type: class-toggle - default: false - - - id: col-lines - title: Column lines - description: Display borders between table columns globally - type: class-toggle - default: false - - - id: table-lines - title: Cell lines - description: Display borders around all table cells globally - type: class-toggle - default: false - - - id: row-alt - title: Striped rows - description: Display striped background in alternating table rows globally - type: class-toggle - default: false - - - id: col-alt - title: Striped columns - description: Display striped background in alternating table columns globally - type: class-toggle - default: false - - - id: table-tabular - title: Tabular figures - description: Use fixed width numbers in tables globally - type: class-toggle - default: false - - - id: table-numbers - title: Row numbers - description: Display row numbers in tables globally - type: class-toggle - default: false - - - id: table-nowrap - title: Disable line wrap - description: Turn off line wrapping in table cells globally - type: class-toggle - default: false - - - id: row-hover - title: Highlight active row - description: Highlight rows on hover - type: class-toggle - default: false - - - id: table-row-background-hover - title: Active row background - description: Background color for hovered tables rows - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: tabs - title: Tabs - type: heading - level: 2 - collapsed: true - - - id: header-height - title: Tab bar height - type: variable-text - default: 40px - - - id: tabs-style - title: Tab style - type: class-select - allowEmpty: false - default: tabs-default - options: - - - label: Index round - value: tabs-default - - - label: Index square - value: tabs-square - - - label: Modern - value: tabs-modern - - - label: Square - value: tabs-plain-square - - - label: Underline - value: tabs-underline - - - id: minimal-tab-text-color - title: Tab text color - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: minimal-tab-text-color-active - title: Tab text color (active) - type: variable-themed-color - format: hex - opacity: true - default-light: '#' - default-dark: '#' - - - id: tab-stacks - title: Tab stacks - type: heading - level: 2 - collapsed: true - - - id: tab-stacked-pane-width - title: Stacked width - type: variable-number - description: Width of a stacked tab in pixels - default: 700 - format: px - - - id: tab-stacked-header-width - title: Spine width - type: variable-number - description: Width of the spine in pixels - default: 40 - format: px - - - id: tab-stacked-spine-orientation - title: Spine text orientation - type: class-select - default: tab-stack-top - options: - - - label: Top - value: tab-stack-top - - - label: Top flipped - value: tab-stack-top-flipped - - - label: Bottom - value: tab-stack-bottom - - - label: Bottom flipped - value: tab-stack-bottom-flipped - - - label: Center - value: tab-stack-center - - - label: Center flipped - value: tab-stack-center-flipped - - - id: tags - title: Tags - type: heading - level: 2 - collapsed: true - - - id: minimal-unstyled-tags - title: Plain tags - description: Tags will render as normal text, overrides settings below - type: class-toggle - default: false - - - id: tag-radius - title: Tag shape - type: variable-select - default: 14px - options: - - - label: Pill - value: 14px - - - label: Rounded - value: 4px - - - label: Square - value: 0px - - - id: tag-border-width - title: Tag border width - type: variable-select - default: 1px - options: - - - label: None - value: 0 - - - label: Thin - value: 1px - - - label: Thick - value: 2px - - - id: tag-color - title: Tag text color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: tag-background - title: Tag background color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: tag-background-hover - title: Tag background color (hover) - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: text - title: Text - type: heading - level: 2 - collapsed: true - - - id: tx1 - title: Normal text color - type: variable-themed-color - description: Primary text color used by default across all elements - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: hl1 - title: Selected text background - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: hl2 - title: Highlighted text background - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: tx2 - title: Muted text color - description: Secondary text such as sidebar note titles and table headings - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: tx3 - title: Faint text color - description: tertiary text such as input placeholders, empty checkboxes, and disabled statuses - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: text-formatting - title: Markdown syntax color - description: Markdown formatting syntax text color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: italic-color - title: Italic text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: bold-color - title: Bold text color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: bold-weight - title: Bold text weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: p-spacing - title: Paragraph spacing - description: Space between paragraphs in reading mode (Obsidian 1.3.7+) - type: variable-text - default: 1.75rem - - - id: heading-spacing - title: Heading spacing - description: Space between paragraphs and headings in reading mode (Obsidian 1.3.7+) - type: variable-text - default: 2em - - - id: titles - title: Titles - type: heading - level: 2 - collapsed: true - - - id: tab-title-bar - title: Tab title bar - description: Tab title bar must be turned on in Appearance settings - type: heading - level: 3 - collapsed: true - - - id: file-header-visibility - title: Tab title visibility - description: Visibility of the tab title text - type: class-select - default: minimal-tab-title-hover - options: - - - label: Hover only - value: minimal-tab-title-hover - - - label: Hidden - value: minimal-tab-title-hidden - - - label: Visible - value: minimal-tab-title-visible - - - id: file-header-font-size - title: Tab title font size - description: Accepts any CSS font-size value - type: variable-text - default: 0.9em - - - id: file-header-font-weight - title: Tab title font weight - type: variable-number-slider - default: 400 - min: 100 - max: 900 - step: 100 - - - id: file-header-justify - title: Tab title alignment - type: variable-select - default: center - options: - - - label: Center - value: center - - - label: Left - value: left - - - id: title-color - title: Tab title text color (active) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: title-color-inactive - title: Tab title text color (inactive) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: inline-title - title: Inline title - description: Inline titles must be turned on in Appearance settings - type: heading - level: 3 - collapsed: true - - - id: inline-title-font - title: Inline title font - description: Name of the font as it appears on your system - type: variable-text - default: '' - - - id: inline-title-size - title: Inline title font size - description: Accepts any CSS font-size value - type: variable-text - default: 1.125em - - - id: inline-title-weight - title: Inline title font weight - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 - - - id: inline-title-color - title: Inline title text color (active) - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: translucency - title: Translucency - type: heading - level: 2 - collapsed: true - - - id: workspace-background-translucent - title: Translucent background color - type: variable-themed-color - opacity: true - format: hex - default-light: '#' - default-dark: '#' - - - id: window-frame - title: Window frame - type: heading - level: 2 - collapsed: true - - - id: window-title-off - title: Hide window frame title - description: Hide title in the custom title bar - type: class-toggle - - - id: frame-background - title: Frame background - description: Requires colorful window frame - type: variable-themed-color - opacity: true - format: hsl-split - default-light: '#' - default-dark: '#' - - - id: frame-icon-color - title: Frame icon color - description: Requires colorful frame - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: titlebar-text-color-focused - title: Frame title color (focused) - description: Requires custom title bar - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: titlebar-text-color - title: Frame title color (inactive) - description: Requires custom title bar - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - - - id: titlebar-text-weight - title: Frame title font weight - description: Requires custom title bar - type: variable-number-slider - default: 600 - min: 100 - max: 900 - step: 100 -*/ - -/* @settings -name: Minimal Cards -id: minimal-cards-style -settings: - - - id: cards-min-width - title: Card minimum width - type: variable-text - default: 180px - - - id: cards-max-width - title: Card maximum width - description: Default fills the available width, accepts valid CSS units - type: variable-text - default: 1fr - - - id: cards-mobile-width - title: Card minimum width on mobile - type: variable-text - default: 120px - - - id: cards-padding - title: Card padding - type: variable-text - default: 1.2em - - - id: cards-image-height - title: Card maximum image height - type: variable-text - default: 400px - - - id: cards-border-width - title: Card border width - type: variable-text - default: 1px - - - id: cards-background - title: Card background color - type: variable-themed-color - format: hex - default-light: '#' - default-dark: '#' - -*/ - -/* @settings -name: Minimal Mobile -id: minimal-mobile -settings: - - - id: mobile-toolbar-off - title: Disable toolbar - description: Turns off mobile toolbar - type: class-toggle -*/ - -/* @settings -name: Minimal Advanced Settings -id: minimal-advanced -settings: - - - id: hide-markdown - title: Hide Markdown syntax - description: (EXPERIMENTAL) Warning, this can be confusing because the characters still exist they are just hidden. - type: class-toggle - - - id: styled-scrollbars - title: Styled scrollbars - description: Use styled scrollbars (replaces native scrollbars) - type: class-toggle - - - id: cursor - title: Cursor style - description: The cursor style for UI elements - type: variable-select - default: default - options: - - - label: Default - value: default - - - label: Pointer - value: pointer - - - label: Crosshair - value: crosshair - - - id: font-ui-small - title: Small font size - description: Font size in px of smaller text - type: variable-number - default: 13 - format: px - - - id: font-ui-smaller - title: Smaller font size - description: Font size in px of smallest text - type: variable-number - default: 11 - format: px - -*/ diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/manifest.json deleted file mode 100644 index 2f37ab3..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Obsidian Nord", - "version": "0.2.0", - "minAppVersion": "0.16.0", - "author": "insanum", - "authorUrl": "https://insanum.com" -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/theme.css deleted file mode 100644 index cd2a348..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidian Nord/theme.css +++ /dev/null @@ -1,525 +0,0 @@ - -:root -{ - --dark0_x: 46,52,64; /* #2e3440 */ - --dark0: rgb(var(--dark0_x)); - --dark1_x: 59,66,82; /* #3b4252 */ - --dark1: rgb(var(--dark1_x)); - --dark2_x: 67,76,94; /* #434c5e */ - --dark2: rgb(var(--dark2_x)); - --dark3_x: 76,86,106; /* #4c566a */ - --dark3: rgb(var(--dark3_x)); - - --light0_x: 216,222,233; /* #d8dee9 */ - --light0: rgb(var(--light0_x)); - --light1_x: 229,233,240; /* #e5e9f0 */ - --light1: rgb(var(--light1_x)); - --light2_x: 236,239,244; /* #eceff4 */ - --light2: rgb(var(--light2_x)); - --light3_x: 255,255,255; /* #ffffff */ - --light3: rgb(var(--light3_x)); - - --frost0_x: 143,188,187; /* #8fbcbb */ - --frost0: rgb(var(--frost0_x)); - --frost1_x: 136,192,208; /* #88c0d0 */ - --frost1: rgb(var(--frost1_x)); - --frost2_x: 129,161,193; /* #81a1c1 */ - --frost2: rgb(var(--frost2_x)); - --frost3_x: 94,129,172; /* #5e81ac */ - --frost3: rgb(var(--frost3_x)); - - --red_x: 191,97,106; /* #bf616a */ - --red: rgb(var(--red_x)); - --orange_x: 208,135,112; /* #d08770 */ - --orange: rgb(var(--orange_x)); - --yellow_x: 235,203,139; /* #ebcb8b */ - --yellow: rgb(var(--yellow_x)); - --green_x: 163,190,140; /* #a3be8c */ - --green: rgb(var(--green_x)); - --purple_x: 180,142,173; /* #b48ead */ - --purple: rgb(var(--purple_x)); -} - -body -{ - --accent-h: 354; /* --red #bf616a */ - --accent-s: 42%; - --accent-l: 56%; - - --link-decoration: none; - --link-decoration-hover: none; - --link-external-decoration: none; - --link-external-decoration-hover: none; - - --tag-decoration: none; - --tag-decoration-hover: underline; - --tag-padding-x: .5em; - --tag-padding-y: .2em; - --tag-radius: .5em; - - --tab-font-weight: 600; - --bold-weight: 600; - - --checkbox-radius: 0; - - /* --list-indent: 2em; */ - - --embed-border-left: 6px double var(--interactive-accent); -} - -.theme-dark -{ - --color-red-rgb: var(--red_x); - --color-red: var(--red); - --color-purple-rgb: var(--purple_x); - --color-purple: var(--purple); - --color-green-rgb: var(--green_x); - --color-green: var(--green); - --color-cyan-rgb: var(--frost1_x); - --color-cyan: var(--frost1); - --color-blue-rgb: var(--frost3_x); - --color-blue: var(--frost3); - --color-yellow-rgb: var(--yellow_x); - --color-yellow: var(--yellow); - --color-orange-rgb: var(--orange_x); - --color-orange: var(--orange); - /* --color-pink: var(--purple); */ - - --background-primary: var(--dark0); - --background-primary-alt: var(--dark0); - --background-secondary: var(--dark1); - --background-secondary-alt: var(--dark2); - --background-modifier-border: var(--dark2); - - --cursor-line-background: rgba(var(--red_x), 0.2); - - --text-normal: var(--light2); - --text-faint: var(--light0); - --text-muted: var(--light1); - - --link-url: var(--purple); - - --h1-color: var(--red); - --h2-color: var(--yellow); - --h3-color: var(--green); - --h4-color: var(--purple); - --h5-color: var(--frost0); - --h6-color: var(--frost2); - - --text-highlight-bg: var(--frost1); - --text-highlight-fg: var(--dark0); - - --text-accent: var(--orange); - --text-accent-hover: var(--frost2); - - --tag-color: var(--frost0); - --tag-background: var(--dark2); - --tag-background-hover: var(--dark1); - - --titlebar-text-color-focused: var(--red); - - --inline-title-color: var(--yellow); - - --bold-color: var(--yellow); - --italic-color: var(--yellow); - - --checkbox-color: var(--frost0); - --checkbox-color-hover: var(--frost0); - --checkbox-border-color: var(--frost0); - --checkbox-border-color-hover: var(--frost0); - --checklist-done-color: rgba(var(--light2_x), 0.5); - - --table-header-background: hsl(220, 16%, 16%); - --table-header-background-hover: var(--dark3); - --table-row-even-background: hsl(220, 16%, 20%); - --table-row-odd-background: hsl(220, 16%, 24%); - --table-row-background-hover: var(--dark3); - - --text-selection: rgba(var(--red_x), 0.6); - --flashing-background: rgba(var(--red_x), 0.3); - - --code-normal: var(--frost1); - --code-background: var(--dark1); - - --mermaid-note: var(--frost3); - --mermaid-loopline: var(--frost1); - --mermaid-exclude: var(--dark3); - --mermaid-seqnum: var(--dark0); - - --icon-color-hover: var(--red); - --icon-color-focused: var(--frost2); - - --nav-item-color-hover: var(--red); - --nav-item-color-active: var(--frost2); - --nav-file-tag: rgba(var(--yellow_x), 0.9); - - --graph-line: var(--dark3); - --graph-node: var(--light3); - --graph-node-tag: var(--red); - --graph-node-attachment: var(--green); - - --calendar-hover: var(--red); - --calendar-background-hover: var(--dark3); - --calendar-week: var(--yellow); - --calendar-today: var(--yellow); - - --dataview-key: var(--text-faint); - --dataview-key-background: rgba(var(--frost2_x), 0.3); - --dataview-value: var(--text-faint); - --dataview-value-background: rgba(var(--red_x), 0.3); - - --tab-text-color-focused-active: var(--frost2); - --tab-text-color-focused-active-current: var(--red); -} - -.theme-light -{ - --color-red-rgb: var(--red_x); - --color-red: var(--red); - --color-purple-rgb: var(--purple_x); - --color-purple: var(--purple); - --color-green-rgb: var(--green_x); - --color-green: var(--green); - --color-cyan-rgb: var(--frost1_x); - --color-cyan: var(--frost1); - --color-blue-rgb: var(--frost3_x); - --color-blue: var(--frost3); - --color-yellow-rgb: var(--yellow_x); - --color-yellow: var(--yellow); - --color-orange-rgb: var(--orange_x); - --color-orange: var(--orange); - /* --color-pink: var(--purple); */ - - --background-primary: var(--light3); - --background-primary-alt: var(--light3); - --background-secondary: var(--light2); - --background-secondary-alt: var(--light1); - --background-modifier-border: var(--light1); - - --cursor-line-background: rgba(var(--red_x), 0.1); - - --text-normal: var(--dark2); - --text-faint: var(--dark0); - --text-muted: var(--dark1); - - --link-url: var(--purple); - - --h1-color: var(--red); - --h2-color: var(--yellow); - --h3-color: var(--green); - --h4-color: var(--purple); - --h5-color: var(--frost0); - --h6-color: var(--frost2); - - --text-highlight-bg: var(--yellow); - --text-highlight-fg: var(--dark0); - - --text-accent: var(--orange); - --text-accent-hover: var(--frost2); - - --tag-color: var(--dark3); - --tag-background: var(--light1); - --tag-background-hover: var(--light0); - - --titlebar-text-color-focused: var(--red); - - --inline-title-color: var(--yellow); - - --bold-color: var(--green); - --italic-color: var(--green); - - --checkbox-color: var(--frost2); - --checkbox-color-hover: var(--frost2); - --checkbox-border-color: var(--frost2); - --checkbox-border-color-hover: var(--frost2); - --checklist-done-color: rgba(var(--dark2_x), 0.4); - - --table-header-background: rgba(var(--light2_x), 0.2); - --table-header-background-hover: var(--frost2); - --table-row-even-background: rgba(var(--light2_x), 0.4); - --table-row-odd-background: rgba(var(--light2_x), 0.8); - --table-row-background-hover: var(--frost2); - - --text-selection: rgba(var(--red_x), 0.6); - --flashing-background: rgba(var(--red_x), 0.3); - - --code-normal: var(--frost1); - --code-background: var(--light2); - - --mermaid-note: var(--frost0); - --mermaid-loopline: var(--frost1); - --mermaid-exclude: var(--light0); - --mermaid-seqnum: var(--light0); - - --icon-color-hover: var(--red); - --icon-color-focused: var(--frost3); - - --nav-item-color-hover: var(--red); - --nav-item-color-active: var(--frost2); - --nav-file-tag: rgba(var(--orange_x), 0.9); - - --graph-line: var(--light0); - --graph-node: var(--dark3); - --graph-node-tag: var(--red); - --graph-node-attachment: var(--green); - - --calendar-hover: var(--red); - --calendar-background-hover: var(--light0); - --calendar-week: var(--orange); - --calendar-today: var(--orange); - - --dataview-key: var(--text-faint); - --dataview-key-background: rgba(var(--frost2_x), 0.3); - --dataview-value: var(--text-faint); - --dataview-value-background: rgba(var(--red_x), 0.3); - - --tab-text-color-focused-active: var(--frost2); - --tab-text-color-focused-active-current: var(--red); -} - -table -{ - border: 1px solid var(--background-secondary) !important; - border-collapse: collapse; -} - -thead -{ - border-bottom: 2px solid var(--background-modifier-border) !important; -} - -th -{ - font-weight: 600 !important; - border: 1px solid var(--background-secondary) !important; -} - -td -{ - border-left: 1px solid var(--background-secondary) !important; - border-right: 1px solid var(--background-secondary) !important; - border-bottom: 1px solid var(--background-secondary) !important; -} - -.markdown-rendered tbody tr:nth-child(even) -{ - background-color: var(--table-row-even-background) !important; -} - -.markdown-rendered tbody tr:nth-child(odd) -{ - background-color: var(--table-row-odd-background) !important; -} - -.markdown-rendered tbody tr:nth-child(even):hover, -.markdown-rendered tbody tr:nth-child(odd):hover -{ - background-color: var(--table-row-background-hover) !important; -} - -.markdown-rendered mark -{ - background-color: var(--text-highlight-bg); - color: var(--text-highlight-fg); -} - -.markdown-rendered mark a -{ - color: var(--red) !important; - font-weight: 600; -} - -.search-result-file-matched-text -{ - color: var(--text-highlight-fg) !important; -} - -.cm-hashtag-begin:hover, .cm-hashtag-end:hover -{ - color: var(--text-accent); - /* background-color: var(--tag-background-hover); */ - text-decoration: underline; -} - -input[type=checkbox] -{ - border: 1px solid var(--checkbox-color); -} - -input[type=checkbox]:checked -{ - background-color: var(--checkbox-color); - box-shadow: inset 0 0 0 2px var(--background-primary); -} - -input[type=checkbox]:checked:after -{ - display: none; -} - -code[class*="language-"], -pre[class*="language-"] -{ - line-height: var(--line-height-tight) !important; -} - -.cm-url -{ - color: var(--link-url) !important; -} - -.cm-url:hover -{ - color: var(--text-accent-hover) !important; -} - -/* Keep highlight/marks the same between viewer and editor. */ -.cm-highlight -{ - color: var(--text-highlight-fg) !important; -} - -/* Keep inline code the same between viewer and editor. */ -.cm-inline-code -{ - border-radius: var(--radius-s); - font-size: var(--code-size); - padding: 0.1em 0.25em; -} - -.cm-formatting-code + .cm-inline-code -{ - border-radius: 0; - padding: 0.1em 0; -} - -.cm-formatting-code -{ - border-radius: var(--radius-s) 0 0 var(--radius-s); - padding: 0.1em 0 0.1em 0.25em; -} - -.cm-inline-code + .cm-formatting-code -{ - border-radius: 0 var(--radius-s) var(--radius-s) 0; - padding: 0.1em 0.25em 0.1em 0; -} - -.cm-line .cm-strong -{ - color: var(--bold-color) !important; -} - -/* - * Keep list bullet padding the same between viewer and editor. - * This is annoying with the cursor in the editor as there is a gap. - */ -/* -.cm-formatting-list -{ - padding-right: 4px !important; -} -*/ - -/* - * Keep sub-list indenting the same between viewer and editor. - * This assumes --list-indent is default at 2em. - */ -/* -.cm-indent -{ - text-indent: 1em !important; -} -*/ - -.mermaid .note -{ - fill: var(--mermaid-note) !important; -} - -.mermaid .loopLine, -{ - stroke: var(--mermaid-loopline) !important; -} - -.mermaid .loopText>tspan, -.mermaid .entityLabel -{ - fill: var(--red) !important; -} - -.mermaid .exclude-range -{ - fill: var(--mermaid-exclude) !important; -} - -.mermaid .sequenceNumber -{ - fill: var(--mermaid-seqnum) !important; -} - -.calendar .week-num -{ - color: var(--calendar-week) !important; -} - -.calendar .today -{ - color: var(--calendar-today) !important; -} - -.calendar .week-num:hover, -.calendar .day:hover -{ - color: var(--calendar-hover) !important; - background-color: var(--calendar-background-hover) !important; -} - -.markdown-embed-title -{ - color: var(--yellow); - font-weight: 600 !important; -} - -.cm-active -{ - background-color: var(--cursor-line-background) !important; -} - -.nav-file-tag -{ - color: var(--nav-file-tag) !important; -} - -.is-flashing -{ - background-color: var(--flashing-background) !important; -} - -.dataview.inline-field-key -{ - border-top-left-radius: var(--radius-s); - border-bottom-left-radius: var(--radius-s); - padding-left: 4px; - font-family: var(--font-monospace); - font-size: var(--font-smaller); - color: var(--dataview-key) !important; - background-color: var(--dataview-key-background) !important; -} - -.dataview.inline-field-value -{ - border-top-right-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); - padding-right: 4px; - font-family: var(--font-monospace); - font-size: var(--font-smaller); - color: var(--dataview-value) !important; - background-color: var(--dataview-value-background) !important; -} - -.suggestion-highlight -{ - color: var(--red); -} - diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/manifest.json deleted file mode 100644 index 85de82a..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Obsidian gruvbox", - "version": "0.2.0", - "minAppVersion": "0.16.0", - "author": "insanum", - "authorUrl": "https://insanum.com" -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/theme.css deleted file mode 100644 index 7528e46..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidian gruvbox/theme.css +++ /dev/null @@ -1,555 +0,0 @@ - -:root -{ - --dark0-hard_x: 29,32,33; /* #1d2021 */ - --dark0-hard: rgb(var(--dark0-hard_x)); - --dark0_x: 40,40,40; /* #282828 */ - --dark0: rgb(var(--dark0_x)); - --dark0-soft_x: 50,48,47; /* #32302f */ - --dark0-soft: rgb(var(--dark0-soft_x)); - --dark1_x: 60,56,54; /* #3c3836 */ - --dark1: rgb(var(--dark1_x)); - --dark2_x: 80,73,69; /* #504945 */ - --dark2: rgb(var(--dark2_x)); - --dark3_x: 102,92,84; /* #665c54 */ - --dark3: rgb(var(--dark3_x)); - --dark4_x: 124,111,100; /* #7c6f64 */ - --dark4: rgb(var(--dark4_x)); - --gray_x: 146,131,116; /* #928374 */ - --gray: rgb(var(--gray_x)); - - --light0-hard_x: 249,245,215; /* #f9f5d7 */ - --light0-hard: rgb(var(--light0-hard_x)); - --light0_x: 251,241,199; /* #fbf1c7 */ - --light0: rgb(var(--light0_x)); - --light0-soft_x: 242,229,188; /* #f2e5bc */ - --light0-soft: rgb(var(--light0-soft_x)); - --light1_x: 235,219,178; /* #ebdbb2 */ - --light1: rgb(var(--light1_x)); - --light2_x: 213,196,161; /* #d5c4a1 */ - --light2: rgb(var(--light2_x)); - --light3_x: 189,174,147; /* #bdae93 */ - --light3: rgb(var(--light3_x)); - --light4_x: 168,153,132; /* #a89984 */ - --light4: rgb(var(--light4_x)); - - --bright-red_x: 251,73,52; /* #fb4934 */ - --bright-red: rgb(var(--bright-red_x)); - --bright-green_x: 184,187,38; /* #b8bb26 */ - --bright-green: rgb(var(--bright-green_x)); - --bright-yellow_x: 250,189,47; /* #fabd2f */ - --bright-yellow: rgb(var(--bright-yellow_x)); - --bright-blue_x: 131,165,152; /* #83a598 */ - --bright-blue: rgb(var(--bright-blue_x)); - --bright-purple_x: 211,134,155; /* #d3869b */ - --bright-purple: rgb(var(--bright-purple_x)); - --bright-aqua_x: 142,192,124; /* #8ec07c */ - --bright-aqua: rgb(var(--bright-aqua_x)); - --bright-orange_x: 254,128,25; /* #fe8019 */ - --bright-orange: rgb(var(--bright-orange_x)); - - --neutral-red_x: 204,36,29; /* #cc241d */ - --neutral-red: rgb(var(--neutral-red_x)); - --neutral-green_x: 152,151,26; /* #98971a */ - --neutral-green: rgb(var(--neutral-green_x)); - --neutral-yellow_x: 215,153,33; /* #d79921 */ - --neutral-yellow: rgb(var(--neutral-yellow_x)); - --neutral-blue_x: 69,133,136; /* #458588 */ - --neutral-blue: rgb(var(--neutral-blue_x)); - --neutral-purple_x: 177,98,134; /* #b16286 */ - --neutral-purple: rgb(var(--neutral-purple_x)); - --neutral-aqua_x: 104,157,106; /* #689d6a */ - --neutral-aqua: rgb(var(--neutral-aqua_x)); - --neutral-orange_x: 214,93,14; /* #d65d0e */ - --neutral-orange: rgb(var(--neutral-orange_x)); - - --faded-red_x: 157,0,6; /* #9d0006 */ - --faded-red: rgb(var(--faded-red_x)); - --faded-green_x: 121,116,14; /* #79740e */ - --faded-green: rgb(var(--faded-green_x)); - --faded-yellow_x: 181,118,20; /* #b57614 */ - --faded-yellow: rgb(var(--faded-yellow_x)); - --faded-blue_x: 7,102,120; /* #076678 */ - --faded-blue: rgb(var(--faded-blue_x)); - --faded-purple_x: 143,63,113; /* #8f3f71 */ - --faded-purple: rgb(var(--faded-purple_x)); - --faded-aqua_x: 66,123,88; /* #427b58 */ - --faded-aqua: rgb(var(--faded-aqua_x)); - --faded-orange_x: 175,58,3; /* #af3a03 */ - --faded-orange: rgb(var(--faded-orange_x)); -} - -body -{ - --accent-h: 12; /* --faded-red #9d0006 */ - --accent-s: 107%; - --accent-l: 32%; - - --link-decoration: none; - --link-decoration-hover: none; - --link-external-decoration: none; - --link-external-decoration-hover: none; - - --tag-decoration: none; - --tag-decoration-hover: underline; - --tag-padding-x: .5em; - --tag-padding-y: .2em; - --tag-radius: .5em; - - --tab-font-weight: 600; - --bold-weight: 600; - - --checkbox-radius: 0; - - /* --list-indent: 2em; */ - - --embed-border-left: 6px double var(--interactive-accent); -} - -.theme-dark -{ - --color-red-rgb: var(--neutral-red_x); - --color-red: var(--neutral-red); - --color-purple-rgb: var(--neutral-purple_x); - --color-purple: var(--neutral-purple); - --color-green-rgb: var(--neutral-green_x); - --color-green: var(--neutral-green); - --color-cyan-rgb: var(--neutral-blue_x); - --color-cyan: var(--neutral-blue); - --color-blue-rgb: var(--faded-blue_x); - --color-blue: var(--faded-blue); - --color-yellow-rgb: var(--neutral-yellow_x); - --color-yellow: var(--neutral-yellow); - --color-orange-rgb: var(--neutral-orange_x); - --color-orange: var(--neutral-orange); - --color-pink-rgb: var(--bright-purple_x); - --color-pink: var(--bright-purple); - - --background-primary: var(--dark0); - --background-primary-alt: var(--dark0); - --background-secondary: var(--dark0-hard); - --background-secondary-alt: var(--dark1); - --background-modifier-border: var(--dark1); - - --cursor-line-background: rgba(var(--dark1_x), 0.5); - - --text-normal: var(--light0); - --text-faint: var(--light1); - --text-muted: var(--light2); - - --link-url: var(--neutral-green); - - --h1-color: var(--neutral-red); - --h2-color: var(--neutral-yellow); - --h3-color: var(--neutral-green); - --h4-color: var(--neutral-aqua); - --h5-color: var(--neutral-blue); - --h6-color: var(--neutral-purple); - - --text-highlight-bg: var(--neutral-yellow); - --text-highlight-fg: var(--dark0-hard); - - --text-accent: var(--neutral-orange); - --text-accent-hover: var(--bright-aqua); - - --tag-color: var(--bright-aqua); - --tag-background: var(--dark2); - --tag-background-hover: var(--dark1); - - --titlebar-text-color-focused: var(--bright-red); - - --inline-title-color: var(--bright-yellow); - - --bold-color: var(--neutral-yellow); - --italic-color: var(--neutral-yellow); - - --checkbox-color: var(--light4); - --checkbox-color-hover: var(--light4); - --checkbox-border-color: var(--light4); - --checkbox-border-color-hover: var(--light4); - --checklist-done-color: rgba(var(--light2_x), 0.5); - - --table-header-background: rgba(var(--dark0_x), 0.2); - --table-header-background-hover: var(--dark2); - --table-row-even-background: rgba(var(--dark2_x), 0.2); - --table-row-odd-background: rgba(var(--dark2_x), 0.4); - --table-row-background-hover: var(--dark2); - - --text-selection: rgba(var(--neutral-red_x), 0.6); - --flashing-background: rgba(var(--neutral-red_x), 0.3); - - --code-normal: var(--bright-blue); - --code-background: var(--dark1); - - --mermaid-note: var(--neutral-blue); - --mermaid-actor: var(--dark2); - --mermaid-loopline: var(--neutral-blue); - --mermaid-exclude: var(--dark4); - --mermaid-seqnum: var(--dark0); - - --icon-color-hover: var(--bright-red); - --icon-color-focused: var(--bright-blue); - - --nav-item-color-hover: var(--bright-red); - --nav-item-color-active: var(--bright-aqua); - --nav-file-tag: rgba(var(--neutral-yellow_x), 0.9); - - --graph-line: var(--dark2); - --graph-node: var(--light3); - --graph-node-tag: var(--neutral-red); - --graph-node-attachment: var(--neutral-green); - - --calendar-hover: var(--bright-red); - --calendar-background-hover: var(--dark1); - --calendar-week: var(--neutral-orange); - --calendar-today: var(--neutral-orange); - - --dataview-key: var(--text-faint); - --dataview-key-background: rgba(var(--faded-red_x), 0.5); - --dataview-value: var(--text-faint); - --dataview-value-background: rgba(var(--neutral-green_x), 0.3); - - --tab-text-color-focused-active: var(--neutral-yellow); - --tab-text-color-focused-active-current: var(--bright-red); -} - -.theme-light -{ - --color-red-rgb: var(--neutral-red_x); - --color-red: var(--neutral-red); - --color-purple-rgb: var(--neutral-purple_x); - --color-purple: var(--neutral-purple); - --color-green-rgb: var(--neutral-green_x); - --color-green: var(--neutral-green); - --color-cyan-rgb: var(--neutral-blue_x); - --color-cyan: var(--neutral-blue); - --color-blue-rgb: var(--faded-blue_x); - --color-blue: var(--faded-blue); - --color-yellow-rgb: var(--neutral-yellow_x); - --color-yellow: var(--neutral-yellow); - --color-orange-rgb: var(--neutral-orange_x); - --color-orange: var(--neutral-orange); - --color-pink-rgb: var(--bright-purple_x); - --color-pink: var(--bright-purple); - - --background-primary: var(--light0-hard); - --background-primary-alt: var(--light0-hard); - --background-secondary: var(--light1); - --background-secondary-alt: var(--light1); - --background-modifier-border: var(--light2); - - --cursor-line-background: rgba(var(--light1_x), 0.5); - - --text-normal: var(--dark0); - --text-faint: var(--dark3); - --text-muted: var(--dark2); - - --link-url: var(--neutral-green); - - --h1-color: var(--neutral-red); - --h2-color: var(--neutral-yellow); - --h3-color: var(--neutral-green); - --h4-color: var(--neutral-aqua); - --h5-color: var(--neutral-blue); - --h6-color: var(--neutral-purple); - - --text-highlight-bg: var(--bright-yellow); - --text-highlight-fg: var(--dark0); - - --text-accent: var(--neutral-orange); - --text-accent-hover: var(--bright-aqua); - - --tag-color: var(--neutral-aqua); - --tag-background: var(--light1); - --tag-background-hover: rgba(var(--light1_x), 0.6); - - --titlebar-text-color-focused: var(--bright-red); - - --inline-title-color: var(--bright-yellow); - - --bold-color: var(--neutral-yellow); - --italic-color: var(--neutral-yellow); - - --checkbox-color: var(--light4); - --checkbox-color-hover: var(--light4); - --checkbox-border-color: var(--light4); - --checkbox-border-color-hover: var(--light4); - --checklist-done-color: rgba(var(--dark2_x), 0.4); - - --table-header-background: rgba(var(--light3_x), 0.4); - --table-header-background-hover: var(--light2); - --table-row-even-background: rgba(var(--light1_x), 0.2); - --table-row-odd-background: rgba(var(--light1_x), 0.7); - --table-row-background-hover: var(--light2); - - --text-selection: rgba(var(--neutral-red_x), 0.6); - --flashing-background: rgba(var(--neutral-red_x), 0.3); - - --code-normal: var(--bright-blue); - --code-background: var(--light1); - - --mermaid-note: var(--bright-blue); - --mermaid-actor: var(--light3); - --mermaid-loopline: var(--neutral-blue); - --mermaid-exclude: var(--light2); - --mermaid-seqnum: var(--light0); - - --icon-color-hover: var(--bright-red); - --icon-color-focused: var(--bright-blue); - - --nav-item-color-hover: var(--bright-red); - --nav-item-color-active: var(--neutral-blue); - --nav-file-tag: rgba(var(--neutral-blue_x), 0.9); - - --graph-line: var(--light1); - --graph-node: var(--gray); - --graph-node-tag: var(--neutral-red); - --graph-node-attachment: var(--bright-green); - - --calendar-hover: var(--bright-red); - --calendar-background-hover: var(--light1); - --calendar-week: var(--bright-red); - --calendar-today: var(--bright-red); - - --dataview-key: var(--text-faint); - --dataview-key-background: rgba(var(--faded-red_x), 0.3); - --dataview-value: var(--text-faint); - --dataview-value-background: rgba(var(--neutral-green_x), 0.2); - - --tab-text-color-focused-active: var(--neutral-yellow); - --tab-text-color-focused-active-current: var(--bright-red); -} - -table -{ - border: 1px solid var(--background-secondary) !important; - border-collapse: collapse; -} - -thead -{ - border-bottom: 2px solid var(--background-modifier-border) !important; -} - -th -{ - font-weight: 600 !important; - border: 1px solid var(--background-secondary) !important; -} - -td -{ - border-left: 1px solid var(--background-secondary) !important; - border-right: 1px solid var(--background-secondary) !important; - border-bottom: 1px solid var(--background-secondary) !important; -} - -.markdown-rendered tbody tr:nth-child(even) -{ - background-color: var(--table-row-even-background) !important; -} - -.markdown-rendered tbody tr:nth-child(odd) -{ - background-color: var(--table-row-odd-background) !important; -} - -.markdown-rendered tbody tr:nth-child(even):hover, -.markdown-rendered tbody tr:nth-child(odd):hover -{ - background-color: var(--table-row-background-hover) !important; -} - -.markdown-rendered mark -{ - background-color: var(--text-highlight-bg); - color: var(--text-highlight-fg); -} - -.markdown-rendered mark a -{ - color: var(--red) !important; - font-weight: 600; -} - -.search-result-file-matched-text -{ - color: var(--text-highlight-fg) !important; -} - -.cm-hashtag-begin:hover, .cm-hashtag-end:hover -{ - color: var(--text-accent); - /* background-color: var(--tag-background-hover); */ - text-decoration: underline; -} - -input[type=checkbox] -{ - border: 1px solid var(--checkbox-color); -} - -input[type=checkbox]:checked -{ - background-color: var(--checkbox-color); - box-shadow: inset 0 0 0 2px var(--background-primary); -} - -input[type=checkbox]:checked:after -{ - display: none; -} - -code[class*="language-"], -pre[class*="language-"] -{ - line-height: var(--line-height-tight) !important; -} - -.cm-url -{ - color: var(--link-url) !important; -} - -.cm-url:hover -{ - color: var(--text-accent-color) !important; -} - -/* Keep highlight/marks the same between viewer and editor. */ -.cm-highlight -{ - color: var(--text-highlight-fg) !important; -} - -/* Keep inline code the same between viewer and editor. */ -.cm-inline-code -{ - border-radius: var(--radius-s); - font-size: var(--code-size); - padding: 0.1em 0.25em; -} - -.cm-line .cm-strong -{ - color: var(--bold-color) !important; -} - -/* - * Keep list bullet padding the same between viewer and editor. - * This is annoying with the cursor in the editor as there is a gap. - */ -/* -.cm-formatting-list -{ - padding-right: 4px !important; -} -*/ - -/* - * Keep sub-list indenting the same between viewer and editor. - * This assumes --list-indent is default at 2em. - */ -/* -.cm-indent -{ - text-indent: 1em !important; -} -*/ - -.mermaid .note -{ - fill: var(--mermaid-note) !important; -} - -.mermaid .actor -{ - fill: var(--mermaid-actor) !important; -} - -.mermaid .loopLine -{ - stroke: var(--mermaid-loopline) !important; -} - -.mermaid .loopText>tspan, -.mermaid .entityLabel -{ - fill: var(--neutral-red) !important; -} - -.mermaid .exclude-range -{ - fill: var(--mermaid-exclude) !important; -} - -.mermaid .sequenceNumber -{ - fill: var(--mermaid-seqnum) !important; -} - -.calendar .week-num -{ - color: var(--calendar-week) !important; -} - -.calendar .today -{ - color: var(--calendar-today) !important; -} - -.calendar .week-num:hover, -.calendar .day:hover -{ - color: var(--calendar-hover) !important; - background-color: var(--calendar-background-hover) !important; -} - -.markdown-embed-title -{ - color: var(--yellow); - font-weight: 600 !important; -} - -.cm-active -{ - background-color: var(--cursor-line-background) !important; -} - -.nav-file-tag -{ - color: var(--nav-file-tag) !important; -} - -.is-flashing -{ - background-color: var(--flashing-background) !important; -} - -.dataview.inline-field-key -{ - border-top-left-radius: var(--radius-s); - border-bottom-left-radius: var(--radius-s); - padding-left: 4px; - font-family: var(--font-monospace); - font-size: var(--font-smaller); - color: var(--dataview-key) !important; - background-color: var(--dataview-key-background) !important; -} - -.dataview.inline-field-value -{ - border-top-right-radius: var(--radius-s); - border-bottom-right-radius: var(--radius-s); - padding-right: 4px; - font-family: var(--font-monospace); - font-size: var(--font-smaller); - color: var(--dataview-value) !important; - background-color: var(--dataview-value-background) !important; -} - -.suggestion-highlight -{ - color: var(--bright-red); -} - diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/manifest.json deleted file mode 100644 index e090605..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Obsidianite", - "version": "2.0.2", - "minAppVersion": "1.1.0", - "author": "@bennyxguo", - "authorUrl": "https://github.com/bennyxguo" -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/theme.css deleted file mode 100644 index 867a5a9..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Obsidianite/theme.css +++ /dev/null @@ -1,1481 +0,0 @@ -/** --------------------------------------------------------------- -** ██████╗ ██████╗ ███████╗██╗██████╗ ██╗ █████╗ ███╗ ██╗██╗████████╗███████╗ -** ██╔═══██╗██╔══██╗██╔════╝██║██╔══██╗██║██╔══██╗████╗ ██║██║╚══██╔══╝██╔════╝ -** ██║ ██║██████╔╝███████╗██║██║ ██║██║███████║██╔██╗ ██║██║ ██║ █████╗ -** ██║ ██║██╔══██╗╚════██║██║██║ ██║██║██╔══██║██║╚██╗██║██║ ██║ ██╔══╝ -** ╚██████╔╝██████╔╝███████║██║██████╔╝██║██║ ██║██║ ╚████║██║ ██║ ███████╗ -** ╚═════╝ ╚═════╝ ╚══════╝╚═╝╚═════╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚══════╝ -** —— Version 2.1.0 -** —— Made with 💎 by Benny Guo -** Changes Log @see: https://github.com/bennyxguo/Obsidian-Obsidianite/blob/main/CHANGELOG.md -** --------------------------------------------------------------- */ - -/****************************************** - Currently only comes in dark theme, - Light theme is still working in progress, - but it wil come soon or later. -******************************************/ - -/* .theme-light { - --background-primary: #fbfbfb; - --background-primary-alt: #fbfbfb; - --background-secondary: #fbfbfb; - --background-secondary-alt: #2e3236; - --text-normal: #333; - --text-faint: #b2b2b2; - --text-title-h1: #333; - --text-title-h2: #333; - --text-title-h3: #333; - --text-title-h4: #333; - --text-title-h5: #333; - --text-link: #b4b4b4; - --text-a: #db4d52; - --text-a-hover: #db4d52; - --text-mark: #d3ffa4; - --pre-code: #ffffff; - --interactive-accent: #92a1a1; - --interactive-before: #5e6565; - --background-modifier-border: #92a1a17a; - --blockquote-border: #d6555f; - --tag-background: rgba(14, 210, 247, 0.15); - --interactive-accent-rgb: 61, 215, 251; - --font-family-editor: Avenir, 'Avenir Next'; - --font-family-preview: Avenir, 'Avenir Next'; -} */ - -.theme-dark { - --background-primary: #100e17; - --background-primary-alt: #0d0b12; - --background-secondary: #191621; - --background-secondary-alt: #0d0b12; - --text-normal: #bebebe; - --text-accent: #0fb6d6; - --text-sub-accent: #f4569d; - --text-dim: #45aaff; - --text-faint: #7aa2f7; - --text-title-h1: var(--text-accent); - --text-title-h2: #cbdbe5; - --text-title-h3: #cbdbe5; - --text-title-h4: #cbdbe5; - --text-title-h5: #cbdbe5; - --text-link: #b4b4b4; - --text-a: #6bcafb; - --text-a-hover: #6bcafb; - --text-mark: #263d92; - --code-background: var(--background-secondary); - --interactive-accent: rgba(14, 210, 247, 0.5); - --interactive-accent-hover: rgba(14, 210, 247, 0.8); - --interactive-before: #5e6565; - --blockquote-border: #4aa8fb; - --tag-background: rgba(14, 210, 247, 0.15); - --interactive-accent-rgb: #3dd7fb; - --font-family-editor: 'Rubik'; - --font-family-preview: 'Rubik'; - --bg-sub-accent-55: rgba(244, 86, 157, 0.55); - --bg-accent-55: rgba(14, 210, 247, 0.55); - --bg-accent-25: rgba(14, 210, 247, 0.25); - --text-highlight-bg: rgba(244, 86, 157, 0.25); - --background-modifier-border: rgba(14, 210, 247, 0.05); - --table-border-color: rgb(14, 210, 247, 0.15); - --test-color: rgb(122, 162, 247); - --editor-border-color: #101014; -} - -/****************************************** -** ██████╗██╗ ██╗███████╗████████╗ ██████╗ ███╗ ███╗██╗███████╗███████╗ -** ██╔════╝██║ ██║██╔════╝╚══██╔══╝██╔═══██╗████╗ ████║██║╚══███╔╝██╔════╝ -** ██║ ██║ ██║███████╗ ██║ ██║ ██║██╔████╔██║██║ ███╔╝ █████╗ -** ██║ ██║ ██║╚════██║ ██║ ██║ ██║██║╚██╔╝██║██║ ███╔╝ ██╔══╝ -** ╚██████╗╚██████╔╝███████║ ██║ ╚██████╔╝██║ ╚═╝ ██║██║███████╗███████╗ -** ╚═════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝╚══════╝ -** —— You can customized the theme using the variables below -******************************************/ - -:root { - /***************************************/ - /* FONTS RELATED */ - /***************************************/ - - /** Font Customization **/ - --default-font: 'Rubik', 'Glow Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, - Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', sans-serif; - - --default-font-size: 18px; - - /** Main text font weight **/ - --body-font-weight: 450; - - /** Font family for hash-tags **/ - --tag-font-family: 'OperatorMonoSSmLig-Book', 'Glow Sans SC', '华文细黑', 'STXihei', 'PingFang TC', - '微软雅黑体', 'Microsoft YaHei New', '微软雅黑', 'Microsoft Yahei', '宋体', 'SimSun', - 'Helvetica Neue', 'Helvetica', Arial, sans-serif !important; - - /** Font specially for codes **/ - --code-mono-font: 'OperatorMonoSSmLig-Book'; -} - -/**-------------------** -| CUSTOMIZED TAG COLOURS -**--------------------**/ - -/* For preview mode */ -a.tag[href*='#todo'], -a.tag[href*='#待完成'] { - background-color: #be2e5e; - color: #fff; -} -/* For Editor Mode */ -.cm-s-obsidian .CodeMirror-line span.cm-tag-todo:not(.cm-formatting-hashtag) { - color: #ee6a96; -} - -a.tag[href*='#working-draft'], -a.tag[href*='#进行中'] { - background-color: #4d3ca6; - color: #fff; -} - -.cm-s-obsidian .CodeMirror-line span.cm-tag-working-draft:not(.cm-formatting-hashtag) { - color: #a897ff; -} - -a.tag[href*='#notes'], -a.tag[href*='#笔记'] { - background-color: #17b978; - color: #fff; -} - -.cm-s-obsidian .CodeMirror-line span.cm-tag-notes:not(.cm-formatting-hashtag) { - color: #45e0a2; -} - -a.tag[href*='#knowledge'], -a.tag[href*='#知识'] { - background-color: #005792; - color: #fff; -} - -.cm-s-obsidian .CodeMirror-line span.cm-tag-knowledge:not(.cm-formatting-hashtag) { - color: #6cbdf3; -} - -a.tag[href*='#writing'], -a.tag[href*='#文章'] { - background-color: #f95959; - color: #fff; -} - -.cm-s-obsidian .CodeMirror-line span.cm-tag-writing:not(.cm-formatting-hashtag) { - color: #ff7a7a; -} - -a.tag[href*='#ideas'], -a.tag[href*='#想法'] { - background-color: #ffc93c; - color: #000; -} - -.cm-s-obsidian .CodeMirror-line span.cm-tag-ideas:not(.cm-formatting-hashtag) { - color: #ffdc82; -} - -/************************************** -| GENERAL STYLES -| ------------------------------------- -| Obsidian main controls related. -/**************************************/ - -::-webkit-scrollbar { - opacity: 1; - width: 0.6rem; -} - -::-webkit-scrollbar-thumb { - background-color: var(--background-modifier-border); - border-radius: 999px; -} - -::-webkit-scrollbar-track, -::-webkit-scrollbar-track-piece { - background: var(--background-secondary); -} - -.markdown-preview-view .internal-link.is-unresolved { - opacity: 0.7; -} - -.titlebar { - background-color: var(--background-primary-alt); -} - -.status-bar { - background-color: var(--background-primary-alt); - border-color: #101014; - color: var(--text-faint); - position: absolute; - margin: auto; - right: 0; - bottom: 0; - display: flex; - align-items: center; - border-top-left-radius: 8px; - padding: 8px 6px 6px 10px; - max-height: unset; - - opacity: 0.4; - transition: 0.5s; -} - -.status-bar:hover { - opacity: 1; - transition: 0.2s; -} - -.titlebar-text { - color: var(--text-accent); -} - -.theme-dark .notice { - background-color: var(--background-primary-alt); - color: var(--text-accent); -} - -/** NAVIGATION / SIDE-DOCK **/ -.nav-file-title, -.nav-folder-title { - border: 1px solid transparent; -} - -.nav-folder-collapse-indicator { - color: var(--text-accent); -} -.nav-file.is-active > .nav-file-title, -.nav-file.is-active > .nav-folder-title, -.nav-file.is-active > .nav-folder-collapse-indicator, -.nav-folder.is-active > .nav-file-title, -.nav-folder.is-active > .nav-folder-title, -.nav-folder.is-active > .nav-folder-collapse-indicator { - color: var(--text-accent); -} - -/** Side-dock icons **/ -.side-dock-ribbon-tab, -.side-dock-ribbon-action, -.workspace-ribbon-collapse-btn, -.workspace-tab-header { - transition: all 350ms ease-in-out; - opacity: 0.5; - cursor: pointer; -} -.side-dock-ribbon-tab:hover, -.side-dock-ribbon-action:hover, -.workspace-ribbon-collapse-btn:hover, -.workspace-tab-header:hover { - opacity: 1; - color: var(--text-accent); -} - -/** Left side menu -- collapsed **/ -.workspace-ribbon.is-collapsed { - background-color: var(--background-primary-alt); -} -/** Left side menu border **/ -.workspace-ribbon.mod-left.is-collapsed, -.workspace-ribbon.mod-right.is-collapsed { - border-color: var(--editor-border-color); -} - -/** Navigation tabs **/ -.is-focused .workspace-tab-header.is-active { - opacity: 1; -} - -.is-focused .mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-icon, -.is-focused .mod-active .workspace-tab-header.is-active .workspace-tab-header-inner-title { - background: var(--background-modifier-border); - color: var(--text-accent); -} - -.nav-file-title.is-active, -.nav-folder-title.is-active { - background: var(--background-secondary); - border: 1px solid var(--bg-accent-25); - color: var(--text-accent); -} - -body:not(.is-grabbing) .nav-file-title:hover, -body:not(.is-grabbing) .nav-folder-title:hover { - background: var(--background-modifier-border); - border: 1px solid var(--interactive-accent-hover); -} - -/** Folder Lists **/ -body:not(.is-grabbing) .nav-file-title:hover, -body:not(.is-grabbing) .nav-folder-title:hover { - color: var(--text-accent); -} -/** Folder list active arrow **/ -body:not(.is-grabbing) .nav-file-title:hover .nav-folder-collapse-indicator, -body:not(.is-grabbing) .nav-folder-title:hover .nav-folder-collapse-indicator { - color: var(--text-accent); -} -/** Folder List main title **/ -.nav-folder.mod-root > .nav-file-title, -.nav-folder.mod-root > .nav-folder-title { - color: var(--text-accent); -} - -/** View Header title **/ -.workspace-leaf.mod-active .view-header-title { - color: var(--text-accent); -} - -/** Little tag styles (at links) **/ -.pane-list-item:hover .pane-list-item-ending-flair { - background-color: var(--background-secondary); - color: var(--text-accent); -} - -/** SETTINGS STYLES **/ -.checkbox-container.is-enabled { - background-color: rgba(14, 210, 247, 0.7); -} - -.workspace-drop-overlay { - background-color: var(--background-primary-alt); -} - -/* except list markers */ -span.cm-formatting-list, -/*code block backticks */ span.cm-formatting-code-block.cm-hmd-codeblock, -/* optionally header hashes */ span.cm-formatting-header { - display: inline !important; -} - -/***************************************/ -/* EDITOR GENERAL STYLES */ -/***************************************/ - -.markdown-source-view.mod-cm6 .task-list-label { - position: relative; - top: -2px; - padding-top: 0; -} - -/* OBSIDIANITE CHECKBOXES */ - -.contains-task-list .task-list-item .contains-task-list { - padding-inline-start: 5px; -} - -.contains-task-list .task-list-item ul.contains-task-list::before { - left: -46px !important; - border-width: 2px; -} - -.contains-task-list .task-list-item { - position: relative; - vertical-align: middle; - box-sizing: border-box; - padding-left: 30px; -} - -.markdown-preview-view ul > li.task-list-item { - text-indent: -3em; -} - -.contains-task-list .task-list-item input[type='checkbox'] { - position: relative; - top: 2px; - left: -8px; - width: 20px; - height: 20px; - margin: 0; - opacity: 0; - z-index: 10; -} - -.markdown-preview-view .list-collapse-indicator { - margin-left: -80px !important; - box-sizing: border-box; -} - -.contains-task-list .task-list-item::before { - content: ''; - position: absolute; - top: 2px; - left: -25px; - width: 20px; - height: 20px; - display: inline-flex; - justify-content: center; - border: 2px solid #9e9e9e; - margin-right: 15px; - border-radius: 3px; - transition: all 0.3s; - box-sizing: border-box; - z-index: 1; -} - -.contains-task-list .is-checked.task-list-item::before { - border: 10px solid var(--text-accent); - animation: bounce 300ms; -} - -.contains-task-list .is-checked.task-list-item::after { - content: ''; - position: absolute; - top: 8px; - left: -21px; - border-right: 3px solid transparent; - border-bottom: 3px solid transparent; - transform: rotate(45deg); - transform-origin: 0% 100%; - animation: checked-box 125ms 250ms forwards; - z-index: 5; -} - -.markdown-preview-view ul > li.task-list-item.is-checked { - text-decoration: line-through !important; - color: var(--interactive-accent) !important; -} - -.markdown-preview-view ul > li.task-list-item.is-checked ul > li:not(.is-checked) { - text-decoration: none !important; - color: var(--text-normal) !important; -} - -@keyframes checked-box { - 0% { - width: 0; - height: 0; - border-color: #212121; - transform: translate(0, 0) rotate(45deg); - } - 33% { - width: 4px; - height: 0; - border-color: #212121; - transform: translate(0, 0) rotate(45deg); - } - 100% { - width: 4px; - height: 8px; - border-color: #212121; - transform: translate(0, -8px) rotate(45deg); - } -} - -@keyframes bounce { - 0% { - border-width: 2px; - /* transform: scale(1); */ - } - 33% { - border-width: 4px; - /* transform: scale(0.7); */ - } - 100% { - border-width: 10px; - /* transform: scale(1); */ - } -} - -/************************************** -| MAIN EDITOR / PREVIEW MODE -| ------------------------------------- -| Write in the same section to keep them -| relatively sync with css. -/**************************************/ - -/**-------------------** -| HEADING STYLES -**--------------------**/ -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: var(--default-font); - font-weight: 600; -} - -.HyperMD-header.HyperMD-header-2, -.HyperMD-header.HyperMD-header-3, -.HyperMD-header.HyperMD-header-4, -.HyperMD-header.HyperMD-header-5, -.HyperMD-header.HyperMD-header-6 { - border-bottom: 1px solid; - border-width: 1px; - border-image-slice: 1; - border-image-source: linear-gradient(to right, var(--text-sub-accent), #100e17, #100e17, #100e17); -} - -.HyperMD-header { - padding: 20px; -} - -.markdown-preview-section h1, -.cm-header-1 { - font-size: 34px; - color: var(--text-title-h1); -} - -.markdown-preview-section h2, -.cm-header-2 { - font-size: 26px; - color: var(--text-title-h2); -} - -.markdown-preview-section h3, -.cm-header-3 { - font-size: 22px; - color: var(--text-title-h3); -} - -.markdown-preview-section h4, -.cm-header-4 { - font-size: 18px; - color: var(--text-title-h4); -} - -.markdown-preview-section h5, -.cm-header-5 { - font-size: 18px; - color: var(--text-title-h5); -} - -.markdown-preview-section h6, -.cm-header-6 { - font-size: 18px; - color: var(--text-title-h5); -} - -/** headings */ -.markdown-preview-view h2, -.markdown-preview-view h3, -.markdown-preview-view h4, -.markdown-preview-view h5, -.markdown-preview-view h6 { - /* padding-top: 1.25rem; */ - margin: 45px 0 20px 0; - position: relative; - padding-bottom: 10px; - border-bottom: 1px solid; - border-width: 35%; - border-image-slice: 1; - border-image-source: linear-gradient(to right, var(--text-sub-accent), #100e17, #100e17, #100e17); -} - -.view-header-icon { - color: var(--text-accent); -} - -/** Adding different # colors **/ - -.cm-formatting.cm-formatting-header.cm-header { - color: var(--text-accent); - opacity: 0.45; -} - -/**-------------------** -| HR STYLES -**--------------------**/ - -/** hr styles -- PREVIEW MODE */ -.cm-line hr, -.markdown-preview-view hr { - margin-block-start: 4em; - margin-block-end: 4em; - border: none; - height: 0; - border-bottom: 1px solid; - border-image-slice: 1; - border-width: 1px; - border-image-source: linear-gradient(to right, transparent, var(--text-accent), transparent); -} - -.cm-line hr::after, -.markdown-preview-view hr::after { - content: '§'; - display: inline-block; - position: absolute; - left: 50%; - transform: translate(-50%, -50%) rotate(60deg); - transform-origin: 50% 50%; - padding: 0.5rem; - color: var(--text-sub-accent); - background-color: var(--background-primary); -} - -/**-------------------** -| STRONG/BOLD STYLES -**--------------------**/ - -.cm-strong, -strong { - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - padding: 0; - color: #7aa2f7; - background-color: #7aa2f7; - background-image: linear-gradient(62deg, #87c2fd 0%, #dcb9fc 100%) !important; -} - -strong .math.math-inline .MathJax { - position: inherit !important; -} - -.cm-strong .cm-selection, -strong::selection { - -webkit-text-fill-color: var(--text-faint); -} - -/**-------------------** -| STYLING -**--------------------**/ - -.cm-strong kbd, -strong kbd { - -webkit-text-fill-color: initial; -} - -/**-------------------** -| ITALIC STYLES -**--------------------**/ - -.cm-em, -em { - color: #bb9af7 !important; - font-family: OperatorMonoSSmLig-Book, Rubik, var(--default-font) !important; -} - -.cm-em.cm-formatting-em { - display: inline-flex; - width: 0.45rem; - font-size: 0.6rem; - vertical-align: text-top; -} - -/**-------------------** -| LISTING STYLES (ul, li, ol) -**--------------------**/ - -.cm-s-obsidian span.cm-formatting-list { - color: var(--text-accent); -} - -.markdown-source-view.mod-cm6 .cm-indent::before { - border-width: 2px; - border-color: var(--text-accent); - margin-left: -1px; - opacity: 0.35; - transition: opacity 500ms linear ease-in-out; -} - -.markdown-source-view.mod-cm6 .cm-active-indent::before { - opacity: 0.8; -} - -/**-------------------** -| LINKS STYLING -**--------------------**/ - -/** editor mode **/ -.cm-s-obsidian span.cm-link:not(.cm-formatting-link) .cm-underline, -.cm-s-obsidian span.cm-hmd-internal-link .cm-underline { - color: var(--text-normal); - -webkit-text-fill-color: var(--text-normal); - background-position: 0 100%; - background-repeat: repeat-x; - background-size: 5px 5px; - text-decoration: none; -} - -cm-s-obsidian span.cm-link:not(.cm-formatting-link) .cm-underline { - background-image: linear-gradient( - to bottom, - var(--bg-sub-accent-55) 0%, - var(--bg-sub-accent-55) 100% - ); -} - -.cm-s-obsidian span.cm-formatting-link { - color: var(--text-faint) !important; - opacity: 0.25; -} - -/** preview mode **/ -.external-link { - padding: 0; -} - -.internal-link, -.external-link { - color: var(--text-normal); - background-position: 0 100%; - background-repeat: repeat-x; - background-size: 5px 5px; - text-decoration: none; - transition: background 350ms ease-in-out; -} - -.cm-s-obsidian span.cm-link:not(.cm-formatting-link) .cm-underline, -.external-link { - background-image: linear-gradient( - to bottom, - var(--bg-sub-accent-55) 0%, - var(--bg-sub-accent-55) 100% - ); - transition: background 350ms ease-in-out; -} - -.cm-s-obsidian span.cm-hmd-internal-link .cm-underline, -.internal-link { - background-image: linear-gradient(to bottom, var(--bg-accent-55) 0%, var(--bg-accent-55) 100%); - transition: background 350ms ease-in-out; -} - -.internal-link:hover, -.cm-s-obsidian span.cm-hmd-internal-link .cm-underline:hover { - -webkit-text-fill-color: #fff; - color: #fff; - background-size: 4px 50px; - text-decoration-line: none !important; -} - -.cm-s-obsidian span.cm-link:not(.cm-formatting-link) .cm-underline:hover, -.external-link:hover { - -webkit-text-fill-color: #fff; - color: #fff; - background-size: 4px 50px; - text-decoration-line: none !important; -} - -/* link */ -a, -.internal-link, -.cm-hmd-internal-link, -.cm-link { - text-decoration: none !important; - color: var(--text-normal); - position: relative; - z-index: 1; -} - -.cm-url { - color: var(--text-faint) !important; - opacity: 0.4; - font-weight: normal; -} - -.cm-formatting-image { - color: var(--text-accent) !important; - opacity: 0.7; -} - -/* link hover color */ -a:hover, -.internal-link:hover { - text-decoration: none !important; - color: var(--text-accent); -} - -/**-------------------** -| TAG STYLING -**--------------------**/ - -.cm-s-obsidian span.cm-hashtag { - position: relative; - color: var(--text-accent); - opacity: 1; - font-family: var(--tag-font-family); - font-style: italic; - text-decoration: none; - font-size: 0.86rem; - font-weight: 500; -} - -.cm-s-obsidian span.cm-hashtag:hover { - text-decoration-line: underline; - text-decoration-color: var(--text-accent); -} - -.cm-s-obsidian span.cm-formatting-hashtag { - color: var(--text-faint); -} - -/** tags */ -a.tag { - background-color: var(--tag-background); - color: var(--text-accent); - white-space: nowrap; - border-radius: var(--tag-radius); - padding: var(--tag-padding-y) var(--tag-padding-x); - font-family: var(--tag-font-family); - text-decoration: none; - font-style: italic; - font-size: 0.86rem; - font-weight: 500; -} - -a.tag:hover { - border-color: var(--text-accent); - opacity: 1; - background-color: var(--tag-background) !important; - text-decoration: underline !important; - text-decoration-color: var(--text-accent); -} - -h1 a.tag, -h2 a.tag, -h3 a.tag, -h4 a.tag, -h5 a.tag, -h6 a.tag { - font-size: inherit !important; -} - -/**-------------------** -| INLINE CODE STYLING -**--------------------**/ - -.CodeMirror-activeline - span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code):not( - .obsidian-search-match-highlight - ) { - padding: 0 !important; - margin: 0 !important; -} - -.cm-s-obsidian span.cm-inline-code { - color: rgba(14, 210, 247, 0.9) !important; -} - -.cm-s-obsidian span.cm-inline-code.cm-formatting-code { - display: inline-flex; - min-width: 0.55rem; -} - -/**-------------------** -| HIGHLIGHTING STYLES -**--------------------**/ - -.cm-s-obsidian span.cm-formatting-highlight, -.cm-s-obsidian span.cm-highlight { - background-image: none !important; - background-color: var(--text-highlight-bg); - color: #fff; - -webkit-text-fill-color: #fff; - -webkit-background-clip: initial; -} - -/**-------------------** -| CODE FENCE STYLING -**--------------------**/ - -.cm-s-obsidian span.code-block-flair:not(:empty) { - color: var(--text-accent); - font-weight: 600; - text-transform: uppercase; - font-size: 0.6rem; - background: rgba(16, 14, 23, 0.86); - border-radius: 8px; - padding: 0.1em 0.8em; - margin-top: 0.3rem; - margin-right: 0.3rem; -} - -.cm-s-obsidian pre.HyperMD-codeblock { - color: var(--text-sub-accent); -} - -.cm-s-obsidian div.HyperMD-codeblock-bg { - background-color: #191621; -} - -.cm-s-obsidian div.HyperMD-codeblock-begin-bg { - border-top-left-radius: 0.3em; - border-top-right-radius: 0.3em; - border: none; -} - -.cm-s-obsidian div.HyperMD-codeblock-begin-bg:before { - position: absolute; - content: ''; - top: -5%; - left: 0; - width: 100%; - height: 60%; - margin-top: 1.5em; - border-top-left-radius: 0.3em; - border-top-right-radius: 0.3em; - background-color: #191621; -} - -.cm-s-obsidian div.HyperMD-codeblock-end-bg { - border-bottom-left-radius: 0.3em; - border-bottom-right-radius: 0.3em; - border: none; -} - -pre { - position: relative; -} - -pre[class*='language-']:before { - font-family: Rubik, Lato, Lucida Grande, Lucida Sans Unicode, Tahoma, Sans-Serif; - font-style: normal; - font-weight: 700; - font-size: 0.6rem; - color: #fff; - position: absolute; - top: 0.3rem; - right: 0.3rem; - padding: 0; - color: var(--text-accent) !important; - content: ''; - text-transform: uppercase; - background: rgba(16, 14, 23, 0.86); - border-radius: 8px; - padding: 0.1em 0.8em; - z-index: 10; -} - -pre[class$='javascript']:before, -pre[class$='js']:before { - content: 'JavaScript'; -} - -pre[class$='typescript']:before, -pre[class$='ts']:before { - content: 'typescript'; -} - -pre[class$='html']:before { - content: 'html'; -} - -pre[class$='css']:before { - content: 'css'; -} - -pre[class$='ejs']:before { - content: 'ejs'; -} - -pre[class$='vue']:before { - content: 'vue'; -} - -pre[class$='react']:before { - content: 'react'; -} - -pre[class$='shell']:before { - content: 'Shell'; -} - -pre[class$='powershell']:before { - content: 'PowerShell'; -} - -pre[class$='json']:before { - content: 'Json'; -} - -pre[class$='python']:before { - content: 'python'; -} - -/**-------------------** -| BLOCKQUOTE STYLING -**--------------------**/ - -/* Remove blockquote left margin */ -blockquote { - margin-inline-start: 0; -} - -/* blockquote style overwrite */ - -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote, -.markdown-preview-view blockquote { - position: relative; - padding: 1rem 2rem 1rem 3rem; - color: #bdbdbd; - border-top-right-radius: 5px; - border-bottom-right-radius: 5px; - margin-bottom: 2em; - margin-right: 0 !important; - border-left: 3px rgba(14, 210, 247, 0.5) solid; - border-top: transparent; - border-bottom: transparent; - border-right: transparent; - background: linear-gradient(135deg, rgba(32, 28, 41, 0.45), #100e17); -} - -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote::before, -.markdown-preview-view blockquote::before { - content: ''; - position: absolute; - top: 0; - left: 0px; - height: 2px; - width: 60%; - background: linear-gradient(90deg, rgba(13, 185, 215, 0.5), #13111a); -} - -.markdown-source-view.mod-cm6.is-live-preview .HyperMD-quote + .HyperMD-quote::before { - display: none; -} - -.HyperMD-quote::after, -.markdown-preview-view blockquote::after { - content: ''; - position: absolute; - bottom: 0; - left: 0px; - height: 2px; - width: 25%; - background: linear-gradient(90deg, rgba(13, 185, 215, 0.5), #15131c); -} - -.HyperMD-quote.HyperMD-quote-2::before, -.HyperMD-quote.HyperMD-quote-3::before, -.HyperMD-quote.HyperMD-quote-4::before, -.HyperMD-quote.HyperMD-quote-5::before { - height: 0; -} - -.markdown-preview-view blockquote p { - position: relative; -} - -.markdown-preview-view blockquote p:first-of-type::before { - content: '!!'; - font-style: italic; - font-weight: 700; - font-size: 18px; - color: var(--text-accent); - position: absolute; - top: 0.1rem; - left: -1.8rem; -} - -/**-------------------** -| FRONT-META STYLING -**--------------------**/ - -.cm-s-obsidian span.cm-def, -.cm-s-obsidian span.cm-atom { - color: var(--text-faint); -} -.cm-s-obsidian span.cm-meta { - color: var(--text-accent); -} - -.cm-s-obsidian span.cm-string { - color: var(--text-sub-accent); -} - -/**-------------------** -| CODE STYLING -**--------------------**/ - -/** inline code */ -.cm-s-obsidian - span.cm-inline-code:not(.cm-formatting):not(.cm-hmd-indented-code):not( - .obsidian-search-match-highlight - ), -.markdown-preview-view code { - overflow-wrap: break-word; - background-color: rgba(14, 210, 247, 0.05); - word-wrap: break-word; - padding: 0 5px; - border-radius: 0.3rem; - color: rgba(14, 210, 247, 0.9) !important; -} - -.theme-dark :not(pre) > code[class*='language-'], -.theme-dark pre[class*='language-'] { - background-color: var(--background-secondary); -} - -.markdown-preview-view img { - border-radius: 8px; -} - -/** code syntax theme **/ - -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-comment { - color: #6272a4; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-string, -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-string-2 { - color: #f1fa8c; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-number { - color: #bd93f9; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-variable { - color: #50fa7b; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-variable-2 { - color: white; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-def { - color: #50fa7b; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-operator { - color: #ff79c6; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-keyword { - color: #ff79c6; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-atom { - color: #bd93f9; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-meta { - color: #f8f8f2; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-tag { - color: #ff79c6; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-attribute { - color: #50fa7b; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-qualifier { - color: #50fa7b; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-property { - color: #66d9ef; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-builtin { - color: #50fa7b; -} -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-variable-3, -.theme-dark .cm-s-obsidian pre.HyperMD-codeblock span.cm-type { - color: #ffb86c; -} - -/** prism.js dracular theme **/ - -/* -* Dracula Theme for Prism.JS -* -* @author Gustavo Costa -* e-mail: gusbemacbe@gmail.com -* -* @contributor Jon Leopard -* e-mail: jonlprd@gmail.com -* -* @license MIT 2016-2018 -*/ - -pre::-webkit-scrollbar { - width: 14px; -} - -code[class*='language-'], -pre[class*='language-'] { - color: #ccc; - background: rgb(40, 41, 54); - text-shadow: none; - font-family: 'OperatorMonoSSmLig-Book', PT Mono, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', - monospace !important; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*='language-']::-moz-selection, -pre[class*='language-'] ::-moz-selection, -code[class*='language-']::-moz-selection, -code[class*='language-'] ::-moz-selection { - text-shadow: none; - background-color: #5a5f80; -} - -pre[class*='language-']::selection, -pre[class*='language-'] ::selection, -code[class*='language-']::selection, -code[class*='language-'] ::selection { - text-shadow: none; - background-color: #5a5f80; -} - -@media print { - code[class*='language-'], - pre[class*='language-'] { - text-shadow: none; - } -} - -/* Code blocks */ -:not(pre) > code[class*='language-'], -pre[class*='language-'] { - background: rgba(40, 41, 54, 1); -} - -/* Inline code */ -:not(pre) > code[class*='language-'] { - padding: 4px 7px; - border-radius: 0.3em; - white-space: normal; -} - -.limit-300 { - height: 300px !important; -} - -.limit-400 { - height: 400px !important; -} - -.limit-500 { - height: 500px !important; -} - -.limit-600 { - height: 600px !important; -} - -.limit-700 { - height: 700px !important; -} - -.limit-800 { - height: 800px !important; -} - -.theme-dark .token.comment { - color: rgba(98, 114, 164, 1); -} - -.theme-dark .token.prolog { - color: rgba(207, 207, 194, 1); -} - -.theme-dark .token.tag { - color: rgba(220, 104, 170, 1); -} - -.theme-dark .token.entity { - color: rgba(139, 233, 253, 1); -} - -.theme-dark .token.atrule { - color: rgba(98, 239, 117, 1); -} - -.theme-dark .token.url { - color: rgba(102, 217, 239, 1); -} - -.theme-dark .token.selector { - color: rgba(207, 207, 194, 1); -} - -.theme-dark .token.string { - color: rgba(241, 250, 140, 1); -} - -.theme-dark .token.property { - color: rgba(255, 184, 108, 1); -} - -.theme-dark .token.important { - color: rgba(255, 121, 198, 1); - font-weight: bold; -} - -.theme-dark .token.punctuation { - color: white; -} - -.theme-dark .token.number { - color: rgba(189, 147, 249, 1); -} - -.theme-dark .token.function { - color: rgba(80, 250, 123, 1); -} - -.theme-dark .token.class-name { - color: rgba(255, 184, 108, 1); -} - -.theme-dark .token.keyword { - color: rgba(255, 121, 198, 1); -} - -.theme-dark .token.boolean { - color: rgba(255, 184, 108, 1); -} - -.theme-dark .token.operator { - color: rgba(139, 233, 253, 1); -} - -.theme-dark .token.char { - color: rgba(255, 135, 157, 1); -} - -.theme-dark .token.regex { - color: rgba(80, 250, 123, 1); -} - -.theme-dark .token.variable { - color: rgba(80, 250, 123, 1); -} - -.theme-dark .token.constant { - color: rgba(255, 184, 108, 1); -} - -.theme-dark .token.symbol { - color: rgba(255, 184, 108, 1); -} - -.theme-dark .token.builtin { - color: rgba(255, 121, 198, 1); -} - -.theme-dark .token.attr-value { - color: #7ec699; -} - -.theme-dark .token.deleted { - color: #e2777a; -} - -.theme-dark .token.namespace { - color: #e2777a; -} - -.theme-dark .token.bold { - font-weight: bold; -} - -.theme-dark .token.italic { - font-style: italic; -} - -.theme-dark .token { - color: #ff79c6; -} - -.language-cpp .theme-dark .token.string { - color: #8be9fd; -} - -.language-c .theme-dark .token.string { - color: #8be9fd; -} - -.theme-dark .language-css .token.selector { - color: rgba(80, 250, 123, 1); -} - -.theme-dark .language-css .token.property { - color: rgba(255, 184, 108, 1); -} - -.language-java span.theme-dark .token.class-name { - color: #8be9fd; -} - -.language-java .theme-dark .token.class-name { - color: #8be9fd; -} - -.language-markup .theme-dark .token.attr-value { - color: rgba(102, 217, 239, 1); -} - -.language-markup .theme-dark .token.tag { - color: rgba(80, 250, 123, 1); -} - -.language-objectivec .theme-dark .token.property { - color: #66d9ef; -} - -.language-objectivec .theme-dark .token.string { - color: #50fa7b; -} - -.language-php .theme-dark .token.boolean { - color: #8be9fd; -} - -.language-php .theme-dark .token.function { - color: #ff79c6; -} - -.language-php .theme-dark .token.keyword { - color: #66d9ef; -} - -.language-ruby .theme-dark .token.symbol { - color: #8be9fd; -} - -.language-ruby .theme-dark .token.class-name { - color: #cfcfc2; -} - -pre.line-numbers { - position: relative; - padding-left: 3.8em; - counter-reset: linenumber; -} - -pre.line-numbers > code { - position: relative; - white-space: inherit; -} - -.line-numbers .line-numbers-rows { - position: absolute; - pointer-events: none; - top: 0; - font-size: 100%; - left: -3.8em; - width: 3em; /* works for line-numbers below 1000 lines */ - letter-spacing: -1px; - border-right: 1px solid #999; - - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.line-numbers-rows > span { - pointer-events: none; - display: block; - counter-increment: linenumber; -} - -.line-numbers-rows > span:before { - content: counter(linenumber); - color: #999; - display: block; - padding-right: 0.8em; - text-align: right; -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Silence/manifest.json b/Perlite/perlite/Demo/.obsidian/themes/Silence/manifest.json deleted file mode 100644 index 8915157..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Silence/manifest.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "Silence", - "version": "2.0.0", - "minAppVersion": "0.16.0", - "author": "Luke Ruokaismaki", - "authorUrl": "https://rmaki.com.au" -} diff --git a/Perlite/perlite/Demo/.obsidian/themes/Silence/theme.css b/Perlite/perlite/Demo/.obsidian/themes/Silence/theme.css deleted file mode 100644 index 4e76c2c..0000000 --- a/Perlite/perlite/Demo/.obsidian/themes/Silence/theme.css +++ /dev/null @@ -1,197 +0,0 @@ - -@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&display=swap"); -/* - -░██████╗██╗██╗░░░░░███████╗███╗░░██╗░█████╗░███████╗░░░░░░░█████╗░██████╗░░██████╗██╗██████╗░██╗░█████╗░███╗░░██╗ -██╔════╝██║██║░░░░░██╔════╝████╗░██║██╔══██╗██╔════╝░░░░░░██╔══██╗██╔══██╗██╔════╝██║██╔══██╗██║██╔══██╗████╗░██║ -╚█████╗░██║██║░░░░░█████╗░░██╔██╗██║██║░░╚═╝█████╗░░█████╗██║░░██║██████╦╝╚█████╗░██║██║░░██║██║███████║██╔██╗██║ -░╚═══██╗██║██║░░░░░██╔══╝░░██║╚████║██║░░██╗██╔══╝░░╚════╝██║░░██║██╔══██╗░╚═══██╗██║██║░░██║██║██╔══██║██║╚████║ -██████╔╝██║███████╗███████╗██║░╚███║╚█████╔╝███████╗░░░░░░╚█████╔╝██████╦╝██████╔╝██║██████╔╝██║██║░░██║██║░╚███║ -╚═════╝░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝░╚════╝░╚══════╝░░░░░░░╚════╝░╚═════╝░╚═════╝░╚═╝╚═════╝░╚═╝╚═╝░░╚═╝╚═╝░░╚══╝ - -Made by: Luke Ruokaismaki -Version: 1.0.0 -Repo: https://github.com/luke-rmaki/silence-obsidian -Built with PostCSS and Gulp - -To edit colors, use the vars.css file or edit the variables below if not building from source - - - -*/ -:root { - --gray-0: #c2cadc; - --gray-1: #b0bbd2; - --gray-2: #9dabc8; - --gray-3: #899bbd; - --gray-4: #7588a9; - --gray-5: #60708c; - --gray-6: #54627b; - --gray-7: #465268; - --gray-8: #343e4f; - --gray-9: #272f3c; - --gray-10: #1e2430; - --gray-11: #131821; - --gray-12: #0c1018; - --serenity-0: #c8fafd; - --serenity-1: #a3f0f3; - --serenity-2: #92e1e4; - --serenity-3: #7bced1; - --serenity-4: #6cb8bb; - --serenity-5: #60a3a6; - --serenity-6: #559193; - --serenity-7: #487a7c; - --serenity-8: #406769; - --serenity-9: #3b5b5c; - --serenity-10: #345051; - --serenity-11: #293f40; - --serenity-12: #1d2c2c; - --green-0: #cbfbdf; - --green-1: #90f8c0; - --green-2: #6ee8aa; - --green-3: #60cc95; - --green-4: #55b382; - --green-5: #4ca376; - --green-6: #418b65; - --green-7: #357453; - --green-8: #2b5b42; - --green-9: #234935; - --green-10: #193325; - --green-11: #142c1f; - --green-12: #0d2016; - --purple-0: #faf8fc; - --purple-1: #e3dcf0; - --purple-2: #cec1e5; - --purple-3: #b29bd5; - --purple-4: #9a7cc6; - --purple-5: #8862b9; - --purple-6: #6f4b9c; - --purple-7: #593b7f; - --purple-8: #473164; - --purple-9: #35244b; - --purple-10: #2a1b3c; - --purple-11: #1e132d; - --purple-12: #11091b; - --red-0: #fef7f8; - --red-1: #fad7d8; - --red-2: #f7b6b9; - --red-3: #f4858c; - --red-4: #f25060; - --red-5: #dc2d44; - --red-6: #b12232; - --red-7: #901927; - --red-8: #77131e; - --red-9: #540a12; - --red-10: #40060c; - --red-11: #310407; - --red-12: #210204; - --yellow-0: #fff8eb; - --yellow-1: #ffefd1; - --yellow-2: #ffe8b7; - --yellow-3: #ffe2a1; - --yellow-4: #ffdb7e; - --yellow-5: #ffd34b; - --yellow-6: #f3c600; - --yellow-7: #e3b800; - --yellow-8: #c5a000; - --yellow-9: #a68600; - --yellow-10: #876d00; - --yellow-11: #705a00; - --yellow-12: #5b4800; - --cerulean-0: #f7f9ff; - --cerulean-1: #d4deff; - --cerulean-2: #b1c5ff; - --cerulean-3: #7aa4ff; - --cerulean-4: #3587ff; - --cerulean-5: #0072e4; - --cerulean-6: #005ab7; - --cerulean-7: #004895; - --cerulean-8: #003a7a; - --cerulean-9: #002b5e; - --cerulean-10: #00214b; - --cerulean-11: #00183a; - --cerulean-12: #00112d; -} -body { - /*! EDITOR */ - --file-line-width: 70vw; - --background-primary: var(--gray-10); - --background-secondary: var(--gray-11); - --background-secondary-alt: var(--gray-12); - --divider-color: var(--gray-8); - - /** Ribbon */ - --ribbon-background-collapsed: var(--background-secondary); - - /** Scrollbar */ - --scrollbar-bg: var(--gray-9); - --scrollbar-thumb-bg: var(--gray-11); - - /** Titlebar */ - --titlebar-background-focused: var(--background-secondary); - - /*! TABS */ - - /*! ICONS */ - --icon-color: var(--serenity-1); - --icon-color-hover: var(--cerulean-5); - - /*! TEXT COLORS */ - --h1-color: var(--serenity-1); - --h2-color: var(--cerulean-5); - --h3-color: var(--green-1); - --h4-color: var(--purple-3); - --h5-color: var(--cerulean-3); - --h6-color: var(--purple-3); - --heading-formatting: var(--gray-1); - --text-normal: var(--serenity-0); - --text-accent: var(--yellow-5); - --text-muted: var(--gray-2); - --text-faint: var(--gray-3); - --list-marker-color: var(--purple-5); - --tag-background: var(--gray-9); - --hr-color: var(--cerulean-5); - --text-error: var(--red-4); - - /** Blockquote */ - --blockquote-border-thickness: 4px; - --blockquote-border-color: var(--interactive-accent); - --blockquote-font-style: normal; - --blockquote-color: inherit; - --blockquote-background-color: transparent; - - /** Checkboxes */ - --checkbox-radius: var(--radius-s); - --checkbox-size: 15px; - --checkbox-marker-color: var(--background-primary); - --checkbox-color: var(--interactive-accent); - --checkbox-color-hover: var(--interactive-accent-hover); - --checkbox-border-color: var(--text-faint); - --checkbox-border-color-hover: var(--text-muted); - --checklist-done-decoration: line-through; - --checklist-done-color: var(--gray-2); - - /*! MODAL */ - --modal-border-color: var(--cerulean-5); - --prompt-border-color: var(--cerulean-5); - - /*! INPUTS */ - --background-modifier-hover: var(--gray-9); - --interactive-accent: var(--cerulean-5); -} -.theme-dark { - --text-highlight-bg: var(--yellow-5); - --interactive-normal: var(--gray-9); -} -/*! OVERRIDES */ -.cm-s-obsidian span.cm-highlight { - color: #0c1018; - color: var(--gray-12); -} -.search-result-file-matched-text { - color: #0c1018; - color: var(--gray-12); -} -.nav-folder-title-content { - font-weight: bold; -} diff --git a/Perlite/perlite/Demo/Demo Documents/Callouts and Frontmatter.md b/Perlite/perlite/Demo/Demo Documents/Callouts and Frontmatter.md deleted file mode 100644 index e9151c2..0000000 --- a/Perlite/perlite/Demo/Demo Documents/Callouts and Frontmatter.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -tags: - - tag1 - - tag-test - - readme -aliases: - - Callouts - - Frontsmatter - - Sample ---- - -Im a YAML front matter document - - -# Blockquots - -> Lorem ipsum -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur et gravida diam, et varius magna. Proin `id felis quis nisl` gravida auctor a eu est. In viverra dui viverra placerat cursus. Curabitur non commodo mi. Mauris volutpat nisl vitae nulla efficitur condimentum. Nulla facilisi. Maecenas malesuada purus mi, eget fringilla quam ultrices sit amet. - -## Callouts - -> [!note] -> Lorem ipsum dolor sit amet ->> [!abstract] ->> Lorem ipsum dolor sit amet - -> [!abstract] -> Lorem ipsum dolor sit amet - -> [!info] -> Lorem ipsum dolor sit amet - -> [!todo] -> Lorem ipsum dolor sit amet - -> [!tip] -> Lorem ipsum dolor sit amet - -> [!success] -> Lorem ipsum dolor sit amet - -> [!question] -> Lorem ipsum dolor sit amet - -> [!warning] -> Lorem ipsum dolor sit amet - -> [!failure] -> Lorem ipsum dolor sit amet - -> [!danger] -> Lorem ipsum dolor sit amet - -> [!bug] -> Lorem ipsum dolor sit amet - -> [!example] -> Lorem ipsum dolor sit amet - -> [!quote] -> Lorem ipsum dolor sit amet - - -## Collapsible Callouts - -> [!note]+ Information the user should notice even if skimming. -> Test -> > [!note]+ Information the user should notice even if skimming. ->> Test - - -> [!note]+ ###code inline test. -> ```bash -> whoami -> ``` - - -> [!note]+ -> ```bash -> whoami -> ``` \ No newline at end of file diff --git a/Perlite/perlite/Demo/Demo Documents/Images.md b/Perlite/perlite/Demo/Demo Documents/Images.md deleted file mode 100644 index 0811fa5..0000000 --- a/Perlite/perlite/Demo/Demo Documents/Images.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Internal Images - -Image with a custom size - -![[background.png|300x300]] - - -Image with a alternate text and size - -![[background.png|This is a description|100]] - -Centered image - -![[background.png|center]] - -Right aligned image with a custom size - -![[background.png|right|200]] - -webp Image - -![[docs/aufbau.webp]] - -internal image + link to external source - -[![[background.png]]](https://website.com) - - - -## External images - - -![Graph](https://raw.githubusercontent.com/secure-77/Perlite/main/screenshots/graph.png) - - - - diff --git a/Perlite/perlite/Demo/Demo Documents/Latex and Mermaid.md b/Perlite/perlite/Demo/Demo Documents/Latex and Mermaid.md deleted file mode 100644 index 58ab429..0000000 --- a/Perlite/perlite/Demo/Demo Documents/Latex and Mermaid.md +++ /dev/null @@ -1,56 +0,0 @@ - -## LaTeX - - -Inline math equations go in like so: $\omega = d\phi / dt$. -Display math should get its own line and be put in in double-dollarsigns: - -$$I = \int \rho R^{2} dV$$ - -And note that you can backslash-escape any punctuation characters which you wish to be displayed literally, ex.: \`foo\`, \*bar\*, etc. - - -Consider non-empty sets $A$, $B$ and $C$. Then a binary operation $f$ is a mapping from set $A\times C$ to set $A$ or $B$. -$$f\colon D\subseteq A \times C \to \left[ \begin{array}{lcl} A \\ B \end{array} \right.$$ - -## Mermaid - -Simple Flow Chart - -```mermaid -flowchart LR - id1[[This is the text in the box1]] -``` - - -Mermaid Graph - -```mermaid -graph TD; -A-->B; -A-->C; -B-->D; -C-->D; -``` - -Sequence Diagram - -```mermaid -sequenceDiagram - participant Alice - participant Bob - Alice->>John: Hello John, how are you? - loop Healthcheck - John->>John: Fight against hypochondria - end - Note right of John: Rational thoughts
prevail! - John-->>Alice: Great! - John->>Bob: How about you? - Bob-->>John: Jolly good! -``` - - - - - - diff --git a/Perlite/perlite/Demo/Demo Documents/Links and Embedded.md b/Perlite/perlite/Demo/Demo Documents/Links and Embedded.md deleted file mode 100644 index 2e8be1d..0000000 --- a/Perlite/perlite/Demo/Demo Documents/Links and Embedded.md +++ /dev/null @@ -1,45 +0,0 @@ - -# External Links - -Just a link: https://github.com/secure-77/Perlite - -[Link with custom Name](https://github.com/secure-77/Perlite) - - -# Files - -Link to another markdown file: [[Markdown Samples]] - -Link to another markdown file with a custom linke name: [[Markdown Samples|Custom Link Name]] - -A strange cubic object that irradiates light. -Found by [[Triya]] on a beach in [[Synthea]]. LPH later discovered that the globe was probably from [[Phanes]] since it fits perfectly in an artifact stand that the party found in an underground [[Antediluvians]] ossuary underneath [[Sif]]. LPH got a confirmation of this theory when the [[Antediluvians]] ([[Stargazers]]) that [[Triya]] faced in the [[Temple of Bes]] performed the same type of magic that [[Triya]] does. - -## Links to Headings - -Link to the heading [[#PDF]] - -Link to same document heading with a custom Title [[#PDF|Scroll to PDF]] - - -## Video - -Link to internal stored Video: [[mov_bbb.mp4]] - -Video embedded: - -![[mov_bbb.mp4]] - -Youtube embedded: - -![Making a Minecraft Obsidian Block in Real Life Using Astro Tech Resin](https://www.youtube.com/watch?v=NnTvZWp5Q7o) - -## Audio - -![[docs/sample3.m4a]] - -## PDF - -Link to internal stored PDF: [[pdf-test.pdf]] - -PDF embedded: ![[pdf-test.pdf]] diff --git a/Perlite/perlite/Demo/Demo Documents/Markdown Samples.md b/Perlite/perlite/Demo/Demo Documents/Markdown Samples.md deleted file mode 100644 index d234fd5..0000000 --- a/Perlite/perlite/Demo/Demo Documents/Markdown Samples.md +++ /dev/null @@ -1,176 +0,0 @@ -# h1 Heading -## h2 Heading -### h3 Heading -#### h4 Heading -##### h5 Heading -###### h6 Heading - - -## Horizontal Rules (--) ---- - -and `___` -__________ - -and `***` - -*** - -# Tasks - - -- [ ] Task 1 -- [x] Task 2 -- [ ] Task 3 -- [ ] Task 4 -- [ ] Task 5 - -## Tags - -#tag-test #readme - -## Emphasis - -**This is bold text** - -__This is bold text__ - -*This is italic text* - -_This is italic text_ - -~~Strikethrough~~ - - `This is monospace` - -Unicode is supported. ☺ - -## Lists - -Unordered - -+ Create a list by starting a line with `+`, `-`, or `*` -+ Sub-lists are made by indenting 2 spaces: - - Marker character change forces new list start: - * Ac tristique libero volutpat at - + Facilisis in pretium nisl aliquet - - Nulla volutpat aliquam velit -+ Very easy! - -Ordered - -1. Lorem ipsum dolor sit amet -2. Consectetur adipiscing elit -3. Integer molestie lorem at massa - - -1. You can use sequential numbers... -1. ...or keep all the numbers as `1.` - -Start numbering with offset: - -57. foo -1. bar - -Nested - - 1. First, get these ingredients: - - * carrots - * celery - * lentils - - 2. Boil some water. - - 3. Dump everything in the pot and follow - this algorithm: - - find wooden spoon - uncover pot - stir - cover pot - balance wooden spoon precariously on pot handle - wait 10 minutes - goto first step (or shut off burner when done) - - Do not bump wooden spoon or it will fall. - -Notice again how text always lines up on 4-space indents (including -that last line which continues item 3 above). - -Definition list - -apples - : Good for making applesauce. -oranges - : Citrus! -tomatoes - : There's no "e" in tomatoe. - -## Paragraphs and Blockquote -are separated by a blank line. - -2nd paragraph. Itemized lists look like: - - * this one - * that one - * the other one - -### Blockquote - -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur et gravida diam, et varius magna. Proin id felis quis nisl gravida auctor a eu est. In viverra dui viverra placerat cursus. Curabitur non commodo mi. Mauris volutpat nisl vitae nulla efficitur condimentum. Nulla facilisi. Maecenas malesuada purus mi, eget fringilla quam ultrices sit amet. - - -Another one - -> Block quotes are -> written like so. -> -> They can span multiple paragraphs, -> if you like. - -## Code - -Inline `code` - -Indented code - - // Some comments - line 1 of code - line 2 of code - line 3 of code - - -Block code "fences" - -``` -Sample text here... -``` - -Syntax highlighting - -``` js -var foo = function (bar) { - return bar++; -}; - -console.log(foo(5)); -``` - -## Tables - -| Option | Description | -| ------ | ----------- | -| data | path to data files to supply the data that will be passed into templates. | -| engine | engine to be used for processing templates. Handlebars is the default. | -| ext | extension to be used for dest files. | - -Right aligned columns - -| Option | Description | -| ------:| -----------:| -| data | path to data files to supply the data that will be passed into templates. | -| engine | engine to be used for processing templates. Handlebars is the default. | -| ext | extension to be used for dest files. | - - diff --git a/Perlite/perlite/Demo/Demo Documents/background.png b/Perlite/perlite/Demo/Demo Documents/background.png deleted file mode 100644 index 8028946..0000000 Binary files a/Perlite/perlite/Demo/Demo Documents/background.png and /dev/null differ diff --git a/Perlite/perlite/Demo/Demo Documents/docs/aufbau.webp b/Perlite/perlite/Demo/Demo Documents/docs/aufbau.webp deleted file mode 100644 index e99297a..0000000 Binary files a/Perlite/perlite/Demo/Demo Documents/docs/aufbau.webp and /dev/null differ diff --git a/Perlite/perlite/Demo/Demo Documents/docs/sample3.m4a b/Perlite/perlite/Demo/Demo Documents/docs/sample3.m4a deleted file mode 100644 index b426ffb..0000000 Binary files a/Perlite/perlite/Demo/Demo Documents/docs/sample3.m4a and /dev/null differ diff --git a/Perlite/perlite/Demo/Demo Documents/mov_bbb.mp4 b/Perlite/perlite/Demo/Demo Documents/mov_bbb.mp4 deleted file mode 100644 index 0a4dd5b..0000000 Binary files a/Perlite/perlite/Demo/Demo Documents/mov_bbb.mp4 and /dev/null differ diff --git a/Perlite/perlite/Demo/Demo Documents/pdf-test.pdf b/Perlite/perlite/Demo/Demo Documents/pdf-test.pdf deleted file mode 100644 index f46dbe5..0000000 Binary files a/Perlite/perlite/Demo/Demo Documents/pdf-test.pdf and /dev/null differ diff --git a/Perlite/perlite/Demo/README.md b/Perlite/perlite/Demo/README.md deleted file mode 100644 index aa0afbb..0000000 --- a/Perlite/perlite/Demo/README.md +++ /dev/null @@ -1,48 +0,0 @@ - -# Perlite - - -![GitHub release (latest by date)](https://img.shields.io/github/v/release/secure-77/perlite) ![GitHub](https://img.shields.io/github/license/secure-77/perlite) ![GitHub last commit](https://img.shields.io/github/last-commit/secure-77/Perlite) - -#tag-test - -A web based markdown viewer optimized for [Obsidian](https://obsidian.md/) Notes - -Just put your whole Obsidian vault or markdown folder/file structure in your web directory. The page builds itself. - -It's an open source alternative to [Obsidian publish](https://obsidian.md/publish). - -Read more about Perlite and staging tips on my blog post: [Perlite on Secure77](https://secure77.de/perlite). - -If you want to discuss Perlite you can join the thread in the [Obsidian Forum](https://forum.obsidian.md/t/perlite-publish-your-notes-to-your-own-web-server/21712) or join the [Perlite Discord Server](https://discord.gg/pkJ347ssWT) - - -## Documentation on Github - -[Perlite on Github](https://github.com/secure-77/Perlite/) - -## Features - -- Auto build up, based on your folder (vault) structure -- Support Obsidian Themes -- Full responsive -- No manual parsing or converting necessary -- Full interactive Graph -- LaTeX and Mermaid support -- Link to Obsidian Vault -- Search -- Support Obisdian tags, links, images and preview -- Dark and Light Mode - -## Changelog -[Changelog](https://github.com/secure-77/Perlite/blob/main/Changelog.md) - - -## Why Perlite? -[Wiki](https://en.wikipedia.org/wiki/Perlite): -*Perlite is an amorphous volcanic glass ... typically formed by the hydration of obsidian.* - -## Safe Mode Test -You should be very cautious about disabling safe mode. If safe mode is **OFF** the following text will be red, if safe mode is **ON** you should see unrendered HTML below. - -
Red if Unsafe
diff --git a/Perlite/perlite/Demo/metadata.json b/Perlite/perlite/Demo/metadata.json deleted file mode 100644 index dd1daae..0000000 --- a/Perlite/perlite/Demo/metadata.json +++ /dev/null @@ -1,220 +0,0 @@ -[ - { - "fileName": "README", - "relativePath": "README.md", - "tags": [ - "tag-test" - ], - "headings": [ - { - "heading": "Perlite", - "level": 1 - }, - { - "heading": "Documentation on Github", - "level": 2 - }, - { - "heading": "Features", - "level": 2 - }, - { - "heading": "Changelog", - "level": 2 - }, - { - "heading": "Why Perlite?", - "level": 2 - }, - { - "heading": "Safe Mode Test", - "level": 2 - } - ] - }, - { - "fileName": "Markdown Samples", - "relativePath": "Demo Documents/Markdown Samples.md", - "tags": [ - "tag-test", - "readme" - ], - "headings": [ - { - "heading": "h1 Heading", - "level": 1 - }, - { - "heading": "h2 Heading", - "level": 2 - }, - { - "heading": "h3 Heading", - "level": 3 - }, - { - "heading": "h4 Heading", - "level": 4 - }, - { - "heading": "h5 Heading", - "level": 5 - }, - { - "heading": "h6 Heading", - "level": 6 - }, - { - "heading": "Horizontal Rules (--)", - "level": 2 - }, - { - "heading": "Tags", - "level": 2 - }, - { - "heading": "Emphasis", - "level": 2 - }, - { - "heading": "Lists", - "level": 2 - }, - { - "heading": "Paragraphs and Blockquote", - "level": 2 - }, - { - "heading": "Blockquote", - "level": 3 - }, - { - "heading": "Code", - "level": 2 - }, - { - "heading": "Tables", - "level": 2 - } - ], - "backlinks": [ - { - "fileName": "Links and Embedded", - "link": "Markdown Samples", - "relativePath": "Demo Documents/Links and Embedded.md" - }, - { - "fileName": "Links and Embedded", - "link": "Markdown Samples", - "relativePath": "Demo Documents/Links and Embedded.md", - "displayText": "Custom Link Name" - } - ] - }, - { - "fileName": "Links and Embedded", - "relativePath": "Demo Documents/Links and Embedded.md", - "headings": [ - { - "heading": "External Links", - "level": 1 - }, - { - "heading": "Files", - "level": 1 - }, - { - "heading": "Links to Headings", - "level": 2 - }, - { - "heading": "Video", - "level": 2 - }, - { - "heading": "PDF", - "level": 2 - } - ], - "links": [ - { - "link": "Markdown Samples", - "relativePath": "Demo Documents/Markdown Samples.md" - }, - { - "link": "Markdown Samples", - "displayText": "Custom Link Name", - "relativePath": "Demo Documents/Markdown Samples.md" - }, - { - "link": "#PDF", - "relativePath": "Demo Documents/Links and Embedded.md", - "cleanLink": "Links and Embedded", - "displayText": "PDF" - }, - { - "link": "#PDF", - "relativePath": "Demo Documents/Links and Embedded.md", - "cleanLink": "Links and Embedded", - "displayText": "Scroll to PDF" - } - ] - }, - { - "fileName": "Latex and Mermaid", - "relativePath": "Demo Documents/Latex and Mermaid.md", - "headings": [ - { - "heading": "LaTeX", - "level": 2 - }, - { - "heading": "Mermaid", - "level": 2 - } - ] - }, - { - "fileName": "Images", - "relativePath": "Demo Documents/Images.md", - "headings": [ - { - "heading": "Internal Images", - "level": 1 - }, - { - "heading": "External images", - "level": 2 - } - ] - }, - { - "fileName": "Callouts and Frontmatter", - "relativePath": "Demo Documents/Callouts and Frontmatter.md", - "tags": [ - "tag1", - "tag-test", - "readme" - ], - "frontmatter": {}, - "aliases": [ - "Callouts", - "Frontsmatter", - "Sample" - ], - "headings": [ - { - "heading": "Blockquots", - "level": 1 - }, - { - "heading": "Callouts", - "level": 2 - }, - { - "heading": "Collapsible Callouts", - "level": 2 - } - ] - } -] \ No newline at end of file diff --git a/Perlite/perlite/Dockerfile b/Perlite/perlite/Dockerfile deleted file mode 100644 index 038bcf1..0000000 --- a/Perlite/perlite/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM php:fpm-alpine - -LABEL maintainer="sec77 https://github.com/secure-77/Perlite" - -RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" -ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ -RUN chmod +x /usr/local/bin/install-php-extensions && install-php-extensions yaml - -WORKDIR /var/www/perlite/ -COPY ./index.php ./ -COPY ./helper.php ./ -COPY ./content.php ./ -COPY ./*.svg ./ -COPY ./*.ico ./ -COPY ./.styles/ ./.styles/ -COPY ./.js/ ./.js/ -COPY ./.src/ ./.src/ -COPY ./vendor/ ./vendor/ - -VOLUME /var/www/perlite/ - -EXPOSE 9000 diff --git a/Perlite/perlite/composer.json b/Perlite/perlite/composer.json deleted file mode 100644 index 30c6667..0000000 --- a/Perlite/perlite/composer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "secure-77/perlite", - "description": "A web based markdown viewer optimized for Obsidian Notes", - "version": "1.5.9", - "type": "project", - "keywords": ["markdown viewer","obsidian notes"], - "homepage": "https://github.com/secure-77/Perlite", - "license": "MIT", - "authors": [ - { - "name": "secure-77", - "email": "sec77@secure77.de", - "homepage": "https://secure77.de" - } - ], - "support": { - "issues": "https://github.com/secure-77/Perlite/issues", - "wiki": "https://github.com/secure-77/Perlite/wiki", - "chat": "https://discord.gg/pkJ347ssWT" - }, - "autoload": { - "psr-4" : { - "Perlite\\": ".src/" - } - }, - "config": { - "preferred-install": "dist" - }, - - "require": { - "erusev/parsedown": "^1.7.4" - } - -} diff --git a/Perlite/perlite/composer.lock b/Perlite/perlite/composer.lock deleted file mode 100644 index 4c9a35b..0000000 --- a/Perlite/perlite/composer.lock +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "2db62f4d2cd50562c79c08708a1ecdd7", - "packages": [ - { - "name": "erusev/parsedown", - "version": "1.7.4", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "support": { - "issues": "https://github.com/erusev/parsedown/issues", - "source": "https://github.com/erusev/parsedown/tree/1.7.x" - }, - "time": "2019-12-30T22:54:17+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/Perlite/perlite/content.php b/Perlite/perlite/content.php deleted file mode 100644 index 6cb850e..0000000 --- a/Perlite/perlite/content.php +++ /dev/null @@ -1,391 +0,0 @@ -setSafeMode($htmlSafeMode); - $Parsedown->setBreaksEnabled($lineBreaks); - $cleanFile = ''; - - // call menu again to refresh the array - menu($rootDir); - $path = ''; - - - // get and parse the content, return if no content is there - $content = getContent($requestFile); - if ($content === '') { - return; - } - - $wordCount = str_word_count($content); - $charCount = strlen($content); - $content = $Parsedown->text($content); - - - // Relative or absolute pathes - if ($relPathes) { - $path = $startDir; - $mdpath = ''; - } else { - $mdpath = $path; - $path = $startDir . $path; - } - - // fix links (not used) - // $oldPath = $startDir . $path; - - // // fix relativ links in parent folders - // $pattern = array('/(\[\[)(\.\.\/.*)(\]\])/'); - // $content = fixLinks($pattern, $content, $oldPath, false); - - // // // fix relativ links in same folders - // $pattern = array('/(\[\[)+([^\/]+?)(\]\])/'); - // $content = fixLinks($pattern, $content, $path, true); - - // // fix relativ links in subfolder and same folders - // $pattern = array('/(\[\[)(?!Demo Documents\/)(.+)(\]\])/'); - // $content = fixLinks($pattern, $content, $path, true); - - - $linkFileTypes = implode('|', $allowedFileLinkTypes); - - $allowedImageTypes = '(\.png|\.jpg|\.jpeg|\.svg|\.gif|\.bmp|\.tif|\.tiff|\.webp)'; - - $src_path = $uriPath . $path; - - // embedded pdf links - $replaces = ''; - $pattern = array('/(\!\[\[)(.*?.(?:pdf))(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // embedded mp4 links - $replaces = ' - '; - $pattern = array('/(\!\[\[)(.*?.(?:mp4))(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - - // embedded m4a links - $replaces = ' - '; - $pattern = array('/(\!\[\[)(.*?.(?:m4a))(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - - // links to other files with Alias - $replaces = '\\3'; - $pattern = array('/(\[\[)(.*?.(?:' . $linkFileTypes . '))\|(.*)(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // links to other files without Alias - $replaces = '\\2'; - $pattern = array('/(\[\[)(.*?.(?:' . $linkFileTypes . '))(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // img links with external target link - $replaces = 'noreferrer">image not found'; - $pattern = array('/noreferrer">(\!?\[\[)(.*?)' . $allowedImageTypes . '\|?(\d*)x?(\d*)(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // img links with size - $replaces = '

image not found

'; - $pattern = array('/(\!?\[\[)(.*?)' . $allowedImageTypes . '\|?(\d*)x?(\d*)(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // centerise or right align images with "center"/"right" directive - $pattern = '/(\!?\[\[)(.*?)' . $allowedImageTypes . '\|?(center|right)\|?(\d*)x?(\d*)(\]\])/'; - $replaces = function ($matches) use ($src_path) { - $class = "images"; // Default class for all images - if (strpos($matches[4], 'center') !== false) { - $class .= " center"; // Add 'center' class - } elseif (strpos($matches[4], 'right') !== false) { - $class .= " right"; // Add 'right' class - } - $width = $matches[5] ?? 'auto'; - $height = $matches[6] ?? 'auto'; - return '

'; - }; - $content = preg_replace_callback($pattern, $replaces, $content); - - // img links with captions and size - $replaces = '

\\4

'; - $pattern = array('/(\!?\[\[)(.*?)' . $allowedImageTypes . '\|?(.+\|)\|?(\d*)x?(\d*)(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - // img links with captions - $replaces = '

\\4

'; - $pattern = array('/(\!?\[\[)(.*?)' . $allowedImageTypes . '\|?(.+|)(\]\])/'); - $content = preg_replace($pattern, $replaces, $content); - - - // handle internal site links - // search for links outside of the current folder - $pattern = array('/(\[\[)(?:\.\.\/)+(.*?)(\]\])/'); - $content = translateLink($pattern, $content, $path, false); - - // search for links in the same folder - $pattern = array('/(\[\[)(.*?)(\]\])/'); - $content = translateLink($pattern, $content, $mdpath, true); - - - // add some meta data - $content = ' -
-
' . $cleanFile . '
-
' . $wordCount . '
-
' . $charCount . '
-
' . $content; - - echo $content; - return; - -} - - -// translate relativ links (not used) -// function fixLinks($pattern, $content, $path, $sameFolder) { - -// return preg_replace_callback($pattern, -// function($matches) use ($path, $sameFolder) { - -// $newAbPath = $path; -// echo "path: " . $path; -// echo "
"; -// $pathSplit = explode("/",$path); -// $linkFilePart = $matches[2]; -// $esapeSequence = "#regex_run#"; -// echo '$matches[1]: ' . $matches[1]; -// echo '
'; -// echo '$matches[2]: ' . $linkFilePart; -// echo '
'; - -// $linkDesc = ""; - -// # handle custom link comments and sizes -// $splitLink = explode("|", $matches[2]); -// if (count($splitLink) > 1) { -// $linkFilePart = $splitLink[0]; -// array_shift($splitLink); -// $linkDesc = '|' .implode("|", $splitLink); -// } - - -// // do extra stuff to get the absolute path -// if ($sameFolder == false) { -// $countDirs = count(explode("../",$linkFilePart)); -// $countDirs = $countDirs -1; -// $newPath = array_splice($pathSplit, 1, -$countDirs); -// $newAbPath = implode('/', $newPath); -// echo "new file path: " . $newAbPath; -// echo "
"; -// echo "old file path: " . $linkFilePart; -// echo "
"; -// } - -// if (substr($newAbPath,0,1) == '/') { -// $newAbPath = substr($newAbPath,1); -// } - - -// $origPath = explode('/', $linkFilePart); -// array_pop($origPath); -// $origPath = implode('/', $origPath); -// //check if its already an absolut path -// echo "new file path: " . $newAbPath; -// echo "
"; -// echo "old file path: " . $origPath; -// echo "
"; - - -// if (count_chars($origPath) >= count_chars($newAbPath)) { - -// $urlPath = $linkFilePart; - -// } else { - -// $linkFile = str_replace("../","",$linkFilePart); -// $urlPath = $newAbPath. '/'. $linkFile; -// } - - -// return '[['.$urlPath.$linkDesc.']]'; -// } -// ,$content); -// } - - - -//internal links -// can be simplified (no need of path translation) -function translateLink($pattern, $content, $path, $sameFolder) -{ - - return preg_replace_callback( - $pattern, - function ($matches) use ($path, $sameFolder) { - - - global $uriPath; - $newAbPath = $path; - $pathSplit = explode("/", $path); - $linkName_full = $matches[2]; - $linkName = $linkName_full; - $linkFile = $matches[2]; - - # handle custom internal obsidian links - $splitLink = explode("|", $matches[2]); - if (count($splitLink) > 1) { - - $linkFile = $splitLink[0]; - $linkName = $splitLink[1]; - } - - # handle internal popups - $popupClass = ''; - $popUpIcon = ''; - - if (count($splitLink) > 2) { - - $popupClass = ' internal-popup'; - $popUpIcon = ''; - } - - - // do extra stuff to get the absolute path - if ($sameFolder == false) { - $countDirs = count(explode("../", $matches[0])); - $countDirs = $countDirs - 1; - $newPath = array_splice($pathSplit, 1, -$countDirs); - $newAbPath = implode('/', $newPath); - } - - - $urlPath = $newAbPath . '/' . $linkFile; - if (substr($urlPath, 0, 1) == '/') { - #$urlPath = '/' . $urlPath; - $urlPath = substr($urlPath, 1); - } - - $refName = ''; - - # if same document heading reference - if (substr($linkName_full, 0, 1) == '#') { - - $splitLink = explode("#", $urlPath); - $urlPath = ''; - $refName = $splitLink[1]; - $refName = '#' . $refName; - $href = 'href="'; - } else { - #$href = 'href="?link='; - $href = 'href="' . $uriPath; - } - - $urlPath = str_replace('&', '&', $urlPath); - - #$urlPath = rawurlencode($urlPath); - $urlPath = str_replace('%23', '#', $urlPath); - - $urlPath = str_replace('~', '%80', $urlPath); - $urlPath = str_replace('-', '~', $urlPath); - $urlPath = str_replace(' ', '-', $urlPath); - - - return '' . $linkName . '' . $popUpIcon; - } - , - $content - ); -} - - -// read content from file -function getContent($requestFile) -{ - global $avFiles; - global $path; - global $cleanFile; - global $rootDir; - $content = ''; - - // check if file is in array - if (in_array($requestFile, $avFiles, true)) { - $cleanFile = $requestFile; - $n = strrpos($requestFile, "/"); - $path = substr($requestFile, 0, $n); - $content .= file_get_contents($rootDir . $requestFile . '.md', true); - } - - return $content; -} - -?> \ No newline at end of file diff --git a/Perlite/perlite/favicon.ico b/Perlite/perlite/favicon.ico deleted file mode 100644 index e2229c1..0000000 Binary files a/Perlite/perlite/favicon.ico and /dev/null differ diff --git a/Perlite/perlite/helper.php b/Perlite/perlite/helper.php deleted file mode 100644 index 170091d..0000000 --- a/Perlite/perlite/helper.php +++ /dev/null @@ -1,737 +0,0 @@ -  -
- -
 
'; - - $customSection = $customSection . ' -
' . $siteDescription . '
-
- '; - - $customSection = $customSection . ' -
-
'; -} - - -$about = '.about'; - -// add about and index to allowed files -$aboutpath = getFileInfos($rootDir . '/' . $about)[0]; -$indexpath = getFileInfos($rootDir . '/' . $index)[0]; -$aboutpath = '/' . $aboutpath; -$indexpath = '/' . $indexpath; -array_push($avFiles, $aboutpath); -array_push($avFiles, $indexpath); - - - -// hide folders -if (strcmp($hideFolders, '')) { - - $hideFolders = explode(',', $hideFolders); -} else { - $hideFolders = array(); -} - -// path management -if (!strcmp($rootDir, "")) { - - $rootDir = getcwd(); - $vaultName = mb_basename($rootDir); - $startDir = ""; -} else { - $startDir = $rootDir; -} - -// custom sort function to prefer underscore -function cmp($a, $b) -{ - $aTemp = str_replace('_', '0', $a); - $bTemp = str_replace('_', '0', $b); - return strnatcasecmp($aTemp, $bTemp); -} - -function menu($dir, $folder = '') -{ - - global $hiddenFileAccess; - global $avFiles; - $html = ''; - // get all files from current dir - $files = glob($dir . '/*'); - - // sort array - usort($files, "cmp"); - - // iterate the folders - foreach ($files as $file) { - if (is_dir($file)) { - - // check if we want to hide the folder - if (isValidFolder($file)) { - - // split Folder Infos - $folder = getFolderInfos($file)[0]; - $folderClean = getFolderInfos($file)[1]; - $folderName = getFolderInfos($file)[2]; - $folderId = str_replace(' ', '_', $folderClean); - $folderId = preg_replace('/[^A-Za-z\-]/', '_', $folderId); - $folderId = '_' . $folderId; - - - $html .= ' - '; - } else if($hiddenFileAccess) { - // dont list the folder but add the file to the array - menu($file); - } - } - } - - // iterate the files - foreach ($files as $file) { - if (isMDFile($file)) { - - $path = getFileInfos($file)[0]; - $mdFile = getFileInfos($file)[1]; - - $path = '/' . $path; - // push the the path to the array - array_push($avFiles, $path); - - // URL Encode the Path for the JS call - $pathClean = rawurlencode($path); - $pathID = str_replace(' ', '_', $path); - $pathID = preg_replace('/[^A-Za-z0-9\-]/', '_', $path); - - - $html .= ' - - '; - } - } - - return $html; -} - -function doSearch($dir, $searchfor) -{ - - // $Parsedown = new Parsedown(); - // $Parsedown->setSafeMode(false); - - //$cleanSearch = htmlspecialchars($searchfor, ENT_QUOTES); - - $result = search($dir, $searchfor); - $content = $result; - //$content = $Parsedown->text($result); - - if ($content === '') { - $content = '
No matches found.
'; - } - - return $content; -} - -function search($dir, $searchfor, $folder = '') -{ - - $files = glob($dir . '/*'); - $result = ''; - $matches = []; - - foreach ($files as $file) { - - - // in case of folder - if (is_dir($file)) { - - if (isValidFolder($file)) { - $folder = getFolderInfos($file)[0]; - $result .= search($file, $searchfor, $folder . '/'); - } - } else { - - if (isMDFile($file)) { - - $pathClean = getFileInfos($file)[0]; - $urlPathClean = rawurlencode($pathClean); - - // get the file contents, assuming the file to be readable (and exist) - $contents = file_get_contents($file); - - $contents = $contents . $pathClean; - // escape special characters in the query - $pattern = preg_quote($searchfor, '/'); - - // check if we search for an tag, if yes first parse the document to get the front matter tags - if (substr($searchfor, 0, 1) === '#') { - $Parsedown = new PerliteParsedown(); - $Parsedown->setSafeMode(true); - $contents = $Parsedown->text($contents); - $contents = strip_tags($contents); - } - - // finalise the regular expression, matching the whole line - $pattern = "/^.*$pattern.*\$/mi"; - // search, and store all matching occurences in $matches - if (preg_match_all($pattern, $contents, $matches)) { - - $result .= ' -
- '; - } - } - } - } - - - return $result; -} - -// check if file is a md file -function isMDFile($file) -{ - - $fileinfo = pathinfo($file); - - - if (isset($fileinfo['extension']) and strtolower($fileinfo['extension']) == 'md') { - return true; - } - - return false; -} - -function getFileInfos($file) -{ - - global $rootDir; - $mdFile = mb_basename($file); - if (strcmp(substr($mdFile, -3), ".md") === 0) { - $mdFile = substr($mdFile, 0, -3); - } - - $folderClean = str_replace('$' . $rootDir, '', '$' . pathinfo($file)["dirname"]); - - $folderClean = substr($folderClean, 1); - if (!strcmp($folderClean, '')) { - $pathClean = $mdFile; - } else { - $pathClean = $folderClean . '/' . $mdFile; - } - - return [$pathClean, $mdFile]; -} - -function mb_basename($path) -{ - if (preg_match('@^.*[\\\\/]([^\\\\/]+)$@s', $path, $matches)) { - return $matches[1]; - } else if (preg_match('@^([^\\\\/]+)$@s', $path, $matches)) { - return $matches[1]; - } - return ''; -} - -function getFolderInfos($file) -{ - - global $rootDir; - $folder = str_replace($rootDir . '/', '', $file); - $folderClean = str_replace('/', '-', $folder); - $folderClean = str_replace(' ', '-', $folderClean); - $folderName = mb_basename($file); - - return [$folder, $folderClean, $folderName]; -} - -function isValidFolder($file) -{ - - global $hideFolders; - $folderName = mb_basename($file); - - // check if folder is in array - if (in_array($folderName, $hideFolders, true)) { - return false; - } - - if (strcmp(substr($folderName, 0, 1), '.') !== 0) { - return true; - } - - return false; -} - -function isCached($jsonMetadaFile, $metadaTempFileSum) -{ - if (is_file($metadaTempFileSum)) { - $md5_envsum = file_get_contents($metadaTempFileSum); - $md5_filesum = md5_file($jsonMetadaFile); - - if ($md5_envsum === $md5_filesum) { - - return true; - } - } - - return false; -} - -function getfullGraph($rootDir) -{ - - global $tempPath; - global $vaultName; - - $jsonMetadaFile = $rootDir . '/metadata.json'; - $metadaTempFile = $tempPath . '/metadata_' . $vaultName . '.temp'; - $metadaTempFileSum = $tempPath . '/metadata_' . $vaultName . '.md5'; - - - - if (!is_file($jsonMetadaFile)) { - return; - } - - // check if metadata file has changed - if (is_file($metadaTempFile) and isCached($jsonMetadaFile, $metadaTempFileSum)) { - return file_get_contents($metadaTempFile); - } - - // metadata has changed / was not cached - $jsonData = file_get_contents($jsonMetadaFile); - - if ($jsonData === false) { - return; - } - - $json_obj = json_decode($jsonData, true); - if ($json_obj === null) { - return; - } - - $graphNodes = array(); - $graphEdges = array(); - - $currentNode = -1; - - - $nodeID = 0; - // create nodes - foreach ($json_obj as $id => $node) { - - $nodePath = removeExtension($node['relativePath']); - - // check if node from the json file really exists - if (checkArray($nodePath)) { - $thisNodeID = $nodeID; // does not get overwritten when a tag node gets created - - // add node to the graph - array_push($graphNodes, ['id' => $nodeID, 'label' => $node['fileName'], 'title' => $nodePath]); - $nodeID += 1; - - // create tag nodes if they don't already exist - if (isset($node["tags"])) { - foreach ($node["tags"] as $tag) { - $tag = "#" . $tag; - - $tagID = -1; - $tagExists = false; - foreach ($graphNodes as $graphNode) { - if ($graphNode["label"] == $tag) { - $tagID = $graphNode["id"]; - $tagExists = true; - } - } - - if (!$tagExists) { - $tagID = $nodeID; - - $tag = ["id" => $nodeID, "label" => $tag, "title" => $tag, "group" => "tag"]; - - array_push($graphNodes, $tag); - $nodeID += 1; - } - - array_push($graphEdges, ["from" => $thisNodeID, "to" => $tagID]); - } - } - } - } - $targetId = -1; - $sourceId = -1; - - // create links - foreach ($json_obj as $index => $node) { - - $nodePath = removeExtension($node['relativePath']); - - // check if node from the json file really exists - if (checkArray($nodePath)) { - - // create the linking between the nodes - if (isset($node['links'])) { - foreach ($node['links'] as $i => $links) { - - $source = ""; - $target = ""; - if (isset($node['relativePath'])) { - $tempPath = removeExtension($node['relativePath']); - if (checkArray($tempPath)) { - $source = $tempPath; - $tempPath = null; - } - } - - if (isset($links['relativePath'])) { - - $tempPath = removeExtension($links['relativePath']); - if (checkArray($tempPath)) { - $target = $tempPath; - $tempPath = null; - } - } - - if ($source !== '' && $target !== '') { - foreach ($graphNodes as $index => $element) { - $elementTitle = $element['title']; - - if (strcmp($elementTitle, $target) == 0) { - $targetId = $element['id']; - } - if (strcmp($elementTitle, $source) == 0) { - $sourceId = $element['id']; - } - $edgeExists = false; - - foreach ($graphEdges as $edge) { - if ($edge['from'] === $sourceId && $edge['to'] === $targetId) { - $edgeExists = true; - break; - } - if ($edge['to'] === $sourceId && $edge['from'] === $targetId) { - $edgeExists = true; - break; - } - } - if ($targetId !== -1 && $sourceId !== -1) { - if (!$edgeExists) { - array_push($graphEdges, ['from' => $sourceId, 'to' => $targetId]); - } - $targetId = -1; - $sourceId = -1; - } - } - } - } - } - } - } - - foreach ($graphEdges as $graphEdge) { - foreach ($graphNodes as &$graphNode) { - if ($graphEdge["from"] == $graphNode["id"] or $graphEdge["to"] == $graphNode["id"]) { - $nodeValue = 0; - - if (isset($graphNode["value"])) { - $nodeValue = $graphNode["value"]; - } - - $nodeValue += 1; - - $graphNode["value"] = $nodeValue; - } - } - } - - $myGraphNodes = json_encode($graphNodes, JSON_UNESCAPED_SLASHES); - $myGraphEdges = json_encode($graphEdges, JSON_UNESCAPED_SLASHES); - - // write tempfile and store sum - $metadaTempFile_handler = fopen($metadaTempFile, "w") or die("Unable to open file!"); - $graphHTML = ''; - fwrite($metadaTempFile_handler, $graphHTML); - fclose($metadaTempFile_handler); - - $metadaTempFile_handler = fopen($metadaTempFileSum, "w") or die("Unable to open file!"); - $md5_filesum = md5_file($jsonMetadaFile); - fwrite($metadaTempFile_handler, $md5_filesum); - fclose($metadaTempFile_handler); - - return $graphHTML; -} - -function removeExtension($path) -{ - - return substr($path, 0, -3); -} - -// check if node is in array -function checkArray($requestNode) -{ - global $avFiles; - $requestNode = '/' . $requestNode; - - if (in_array($requestNode, $avFiles, true)) { - - return true; - } - - return false; -} - - -function loadSettings($rootDir) -{ - - global $disablePopHovers; - global $showTOC; - global $showLocalGraph; - global $index; - global $siteTitle; - global $siteType; - global $siteImage; - global $siteURL; - global $siteDescription; - global $siteName; - global $siteTwitter; - global $uriPath; - - - // get themes - $themes = ""; - $folders = glob($rootDir . '/.obsidian/themes/*'); - $appearanceFile = $rootDir . '/.obsidian/appearance.json'; - $defaultTheme = ""; - - if (is_file($appearanceFile)) { - $jsonData = file_get_contents($appearanceFile); - if ($jsonData) { - $json_obj = json_decode($jsonData, true); - if ($json_obj) { - - // if theme is set, set it as default - if (array_key_exists('cssTheme', $json_obj)) { - $defaultTheme = $json_obj["cssTheme"]; - } - } - } - } - - // iterate the folders - foreach ($folders as $folder) { - if (is_dir($folder)) { - - $folderName = getFolderInfos($folder)[2]; - $folderClean = str_replace(' ', '_', $folderName); - $themePath = $uriPath . $rootDir . '/.obsidian/themes/' . $folderName . '/theme.css'; - - if ($defaultTheme === $folderName) { - - $themes .= ''; - } else { - - $themes .= ''; - } - } - } - - - // Meta Tags - $defaultSettings = - ' - - - - - - - - - - - - - '; - - // default settings - $defaultSettings .= ''; - $defaultSettings .= ''; - $defaultSettings .= ''; - $defaultSettings .= ''; - - - return $themes . $defaultSettings; -} diff --git a/Perlite/perlite/index.php b/Perlite/perlite/index.php deleted file mode 100644 index 8570cf1..0000000 --- a/Perlite/perlite/index.php +++ /dev/null @@ -1,1063 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <?php echo $title ?> - - -
-
-
- -
-
-
- -
-
-
-
- - - -
-
- - - - - -
-
-
-
- - - - - - -
-
-
-
- - - - - - - - -
-
-
-
- - - - - -
-
- - - -
-
-
-
-
-
-
-
-
-
-
-
- - - -
-
Files
-
-
- - -
-
-
-
-
-
- - -
-
Search
-
-
- - -
-
-
-
-
- - -
-
-
- -
-
-
-
-
-
- - - - - - - - - - -
-
- -
-
-
-
-
-
-
-
-
-
-
-
- -
- -
- - - -
-
-
-
- -
- - - - - - - - - - - - - - -
-
-
- -
-
-
-
-
-
-
-
- - -
-
- - - -
-
- - -
-
-
-
-
Display -
-
-
-
-
-
-
Font size
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
- - - -
- - - - -
-
-
-
-
-
- -
-
-
- -
- 0 words - 0 characters -
-
-
- -
-
- -
-

-

-

-

-

-

-

-

-

-
- - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Perlite/perlite/logo.svg b/Perlite/perlite/logo.svg deleted file mode 100644 index 399afa3..0000000 --- a/Perlite/perlite/logo.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Perlite/perlite/perlite.svg b/Perlite/perlite/perlite.svg deleted file mode 100644 index 399afa3..0000000 --- a/Perlite/perlite/perlite.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Perlite/perlite/settings.php b/Perlite/perlite/settings.php deleted file mode 100644 index b1c8301..0000000 --- a/Perlite/perlite/settings.php +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/Perlite/perlite/vendor/autoload.php b/Perlite/perlite/vendor/autoload.php deleted file mode 100644 index 178dcdd..0000000 --- a/Perlite/perlite/vendor/autoload.php +++ /dev/null @@ -1,25 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - /** @var \Closure(string):void */ - private static $includeFile; - - /** @var string|null */ - private $vendorDir; - - // PSR-4 - /** - * @var array> - */ - private $prefixLengthsPsr4 = array(); - /** - * @var array> - */ - private $prefixDirsPsr4 = array(); - /** - * @var list - */ - private $fallbackDirsPsr4 = array(); - - // PSR-0 - /** - * List of PSR-0 prefixes - * - * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) - * - * @var array>> - */ - private $prefixesPsr0 = array(); - /** - * @var list - */ - private $fallbackDirsPsr0 = array(); - - /** @var bool */ - private $useIncludePath = false; - - /** - * @var array - */ - private $classMap = array(); - - /** @var bool */ - private $classMapAuthoritative = false; - - /** - * @var array - */ - private $missingClasses = array(); - - /** @var string|null */ - private $apcuPrefix; - - /** - * @var array - */ - private static $registeredLoaders = array(); - - /** - * @param string|null $vendorDir - */ - public function __construct($vendorDir = null) - { - $this->vendorDir = $vendorDir; - self::initializeIncludeClosure(); - } - - /** - * @return array> - */ - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); - } - - return array(); - } - - /** - * @return array> - */ - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - /** - * @return list - */ - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - /** - * @return list - */ - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - /** - * @return array Array of classname => path - */ - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - * - * @return void - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - * - * @return void - */ - public function add($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 base directories - * - * @return void - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - * - * @return void - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - * - * @return void - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - * - * @return void - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - * - * @return void - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - - if (null === $this->vendorDir) { - return; - } - - if ($prepend) { - self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; - } else { - unset(self::$registeredLoaders[$this->vendorDir]); - self::$registeredLoaders[$this->vendorDir] = $this; - } - } - - /** - * Unregisters this instance as an autoloader. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - - if (null !== $this->vendorDir) { - unset(self::$registeredLoaders[$this->vendorDir]); - } - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return true|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - $includeFile = self::$includeFile; - $includeFile($file); - - return true; - } - - return null; - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - /** - * Returns the currently registered loaders keyed by their corresponding vendor directories. - * - * @return array - */ - public static function getRegisteredLoaders() - { - return self::$registeredLoaders; - } - - /** - * @param string $class - * @param string $ext - * @return string|false - */ - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } - - /** - * @return void - */ - private static function initializeIncludeClosure() - { - if (self::$includeFile !== null) { - return; - } - - /** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - * - * @param string $file - * @return void - */ - self::$includeFile = \Closure::bind(static function($file) { - include $file; - }, null, null); - } -} diff --git a/Perlite/perlite/vendor/composer/InstalledVersions.php b/Perlite/perlite/vendor/composer/InstalledVersions.php deleted file mode 100644 index 51e734a..0000000 --- a/Perlite/perlite/vendor/composer/InstalledVersions.php +++ /dev/null @@ -1,359 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer; - -use Composer\Autoload\ClassLoader; -use Composer\Semver\VersionParser; - -/** - * This class is copied in every Composer installed project and available to all - * - * See also https://getcomposer.org/doc/07-runtime.md#installed-versions - * - * To require its presence, you can require `composer-runtime-api ^2.0` - * - * @final - */ -class InstalledVersions -{ - /** - * @var mixed[]|null - * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null - */ - private static $installed; - - /** - * @var bool|null - */ - private static $canGetVendors; - - /** - * @var array[] - * @psalm-var array}> - */ - private static $installedByVendor = array(); - - /** - * Returns a list of all package names which are present, either by being installed, replaced or provided - * - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackages() - { - $packages = array(); - foreach (self::getInstalled() as $installed) { - $packages[] = array_keys($installed['versions']); - } - - if (1 === \count($packages)) { - return $packages[0]; - } - - return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); - } - - /** - * Returns a list of all package names with a specific type e.g. 'library' - * - * @param string $type - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackagesByType($type) - { - $packagesByType = array(); - - foreach (self::getInstalled() as $installed) { - foreach ($installed['versions'] as $name => $package) { - if (isset($package['type']) && $package['type'] === $type) { - $packagesByType[] = $name; - } - } - } - - return $packagesByType; - } - - /** - * Checks whether the given package is installed - * - * This also returns true if the package name is provided or replaced by another package - * - * @param string $packageName - * @param bool $includeDevRequirements - * @return bool - */ - public static function isInstalled($packageName, $includeDevRequirements = true) - { - foreach (self::getInstalled() as $installed) { - if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; - } - } - - return false; - } - - /** - * Checks whether the given package satisfies a version constraint - * - * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: - * - * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') - * - * @param VersionParser $parser Install composer/semver to have access to this class and functionality - * @param string $packageName - * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package - * @return bool - */ - public static function satisfies(VersionParser $parser, $packageName, $constraint) - { - $constraint = $parser->parseConstraints((string) $constraint); - $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); - - return $provided->matches($constraint); - } - - /** - * Returns a version constraint representing all the range(s) which are installed for a given package - * - * It is easier to use this via isInstalled() with the $constraint argument if you need to check - * whether a given version of a package is installed, and not just whether it exists - * - * @param string $packageName - * @return string Version constraint usable with composer/semver - */ - public static function getVersionRanges($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - $ranges = array(); - if (isset($installed['versions'][$packageName]['pretty_version'])) { - $ranges[] = $installed['versions'][$packageName]['pretty_version']; - } - if (array_key_exists('aliases', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); - } - if (array_key_exists('replaced', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); - } - if (array_key_exists('provided', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); - } - - return implode(' || ', $ranges); - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['version'])) { - return null; - } - - return $installed['versions'][$packageName]['version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getPrettyVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['pretty_version'])) { - return null; - } - - return $installed['versions'][$packageName]['pretty_version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference - */ - public static function getReference($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['reference'])) { - return null; - } - - return $installed['versions'][$packageName]['reference']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. - */ - public static function getInstallPath($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @return array - * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} - */ - public static function getRootPackage() - { - $installed = self::getInstalled(); - - return $installed[0]['root']; - } - - /** - * Returns the raw installed.php data for custom implementations - * - * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. - * @return array[] - * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} - */ - public static function getRawData() - { - @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = include __DIR__ . '/installed.php'; - } else { - self::$installed = array(); - } - } - - return self::$installed; - } - - /** - * Returns the raw data of all installed.php which are currently loaded for custom implementations - * - * @return array[] - * @psalm-return list}> - */ - public static function getAllRawData() - { - return self::getInstalled(); - } - - /** - * Lets you reload the static array from another file - * - * This is only useful for complex integrations in which a project needs to use - * this class but then also needs to execute another project's autoloader in process, - * and wants to ensure both projects have access to their version of installed.php. - * - * A typical case would be PHPUnit, where it would need to make sure it reads all - * the data it needs from this class, then call reload() with - * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure - * the project in which it runs can then also use this class safely, without - * interference between PHPUnit's dependencies and the project's dependencies. - * - * @param array[] $data A vendor/composer/installed.php data set - * @return void - * - * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data - */ - public static function reload($data) - { - self::$installed = $data; - self::$installedByVendor = array(); - } - - /** - * @return array[] - * @psalm-return list}> - */ - private static function getInstalled() - { - if (null === self::$canGetVendors) { - self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); - } - - $installed = array(); - - if (self::$canGetVendors) { - foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { - if (isset(self::$installedByVendor[$vendorDir])) { - $installed[] = self::$installedByVendor[$vendorDir]; - } elseif (is_file($vendorDir.'/composer/installed.php')) { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require $vendorDir.'/composer/installed.php'; - $installed[] = self::$installedByVendor[$vendorDir] = $required; - if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { - self::$installed = $installed[count($installed) - 1]; - } - } - } - } - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require __DIR__ . '/installed.php'; - self::$installed = $required; - } else { - self::$installed = array(); - } - } - - if (self::$installed !== array()) { - $installed[] = self::$installed; - } - - return $installed; - } -} diff --git a/Perlite/perlite/vendor/composer/LICENSE b/Perlite/perlite/vendor/composer/LICENSE deleted file mode 100644 index f27399a..0000000 --- a/Perlite/perlite/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -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. - diff --git a/Perlite/perlite/vendor/composer/autoload_classmap.php b/Perlite/perlite/vendor/composer/autoload_classmap.php deleted file mode 100644 index 0fb0a2c..0000000 --- a/Perlite/perlite/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,10 +0,0 @@ - $vendorDir . '/composer/InstalledVersions.php', -); diff --git a/Perlite/perlite/vendor/composer/autoload_namespaces.php b/Perlite/perlite/vendor/composer/autoload_namespaces.php deleted file mode 100644 index 20c027f..0000000 --- a/Perlite/perlite/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,10 +0,0 @@ - array($vendorDir . '/erusev/parsedown'), -); diff --git a/Perlite/perlite/vendor/composer/autoload_psr4.php b/Perlite/perlite/vendor/composer/autoload_psr4.php deleted file mode 100644 index 0fd2538..0000000 --- a/Perlite/perlite/vendor/composer/autoload_psr4.php +++ /dev/null @@ -1,10 +0,0 @@ - array($baseDir . '/.src'), -); diff --git a/Perlite/perlite/vendor/composer/autoload_real.php b/Perlite/perlite/vendor/composer/autoload_real.php deleted file mode 100644 index f16ff66..0000000 --- a/Perlite/perlite/vendor/composer/autoload_real.php +++ /dev/null @@ -1,38 +0,0 @@ -register(true); - - return $loader; - } -} diff --git a/Perlite/perlite/vendor/composer/autoload_static.php b/Perlite/perlite/vendor/composer/autoload_static.php deleted file mode 100644 index 04ff4ad..0000000 --- a/Perlite/perlite/vendor/composer/autoload_static.php +++ /dev/null @@ -1,47 +0,0 @@ - - array ( - 'Perlite\\' => 8, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Perlite\\' => - array ( - 0 => __DIR__ . '/../..' . '/.src', - ), - ); - - public static $prefixesPsr0 = array ( - 'P' => - array ( - 'Parsedown' => - array ( - 0 => __DIR__ . '/..' . '/erusev/parsedown', - ), - ), - ); - - public static $classMap = array ( - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit49760f5a39ccaa8600b88f06b4cfa48e::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit49760f5a39ccaa8600b88f06b4cfa48e::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit49760f5a39ccaa8600b88f06b4cfa48e::$prefixesPsr0; - $loader->classMap = ComposerStaticInit49760f5a39ccaa8600b88f06b4cfa48e::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/Perlite/perlite/vendor/composer/installed.json b/Perlite/perlite/vendor/composer/installed.json deleted file mode 100644 index cb6fbe8..0000000 --- a/Perlite/perlite/vendor/composer/installed.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "packages": [ - { - "name": "erusev/parsedown", - "version": "1.7.4", - "version_normalized": "1.7.4.0", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "time": "2019-12-30T22:54:17+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "support": { - "issues": "https://github.com/erusev/parsedown/issues", - "source": "https://github.com/erusev/parsedown/tree/1.7.x" - }, - "install-path": "../erusev/parsedown" - } - ], - "dev": true, - "dev-package-names": [] -} diff --git a/Perlite/perlite/vendor/composer/installed.php b/Perlite/perlite/vendor/composer/installed.php deleted file mode 100644 index e1e1027..0000000 --- a/Perlite/perlite/vendor/composer/installed.php +++ /dev/null @@ -1,32 +0,0 @@ - array( - 'name' => 'secure-77/perlite', - 'pretty_version' => '1.6.0', - 'version' => '1.6.0.0', - 'reference' => NULL, - 'type' => 'project', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev' => true, - ), - 'versions' => array( - 'erusev/parsedown' => array( - 'pretty_version' => '1.7.4', - 'version' => '1.7.4.0', - 'reference' => 'cb17b6477dfff935958ba01325f2e8a2bfa6dab3', - 'type' => 'library', - 'install_path' => __DIR__ . '/../erusev/parsedown', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'secure-77/perlite' => array( - 'pretty_version' => '1.6.0', - 'version' => '1.6.0.0', - 'reference' => NULL, - 'type' => 'project', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev_requirement' => false, - ), - ), -); diff --git a/Perlite/perlite/vendor/composer/platform_check.php b/Perlite/perlite/vendor/composer/platform_check.php deleted file mode 100644 index 7621d4f..0000000 --- a/Perlite/perlite/vendor/composer/platform_check.php +++ /dev/null @@ -1,26 +0,0 @@ -= 50300)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.0". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR - ); -} diff --git a/Perlite/perlite/vendor/erusev/parsedown/LICENSE.txt b/Perlite/perlite/vendor/erusev/parsedown/LICENSE.txt deleted file mode 100644 index 8e7c764..0000000 --- a/Perlite/perlite/vendor/erusev/parsedown/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013-2018 Emanuil Rusev, erusev.com - -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. diff --git a/Perlite/perlite/vendor/erusev/parsedown/Parsedown.php b/Perlite/perlite/vendor/erusev/parsedown/Parsedown.php deleted file mode 100644 index 1b9d6d5..0000000 --- a/Perlite/perlite/vendor/erusev/parsedown/Parsedown.php +++ /dev/null @@ -1,1712 +0,0 @@ -DefinitionData = array(); - - # standardize line breaks - $text = str_replace(array("\r\n", "\r"), "\n", $text); - - # remove surrounding line breaks - $text = trim($text, "\n"); - - # split text into lines - $lines = explode("\n", $text); - - # iterate through lines to identify blocks - $markup = $this->lines($lines); - - # trim line breaks - $markup = trim($markup, "\n"); - - return $markup; - } - - # - # Setters - # - - function setBreaksEnabled($breaksEnabled) - { - $this->breaksEnabled = $breaksEnabled; - - return $this; - } - - protected $breaksEnabled; - - function setMarkupEscaped($markupEscaped) - { - $this->markupEscaped = $markupEscaped; - - return $this; - } - - protected $markupEscaped; - - function setUrlsLinked($urlsLinked) - { - $this->urlsLinked = $urlsLinked; - - return $this; - } - - protected $urlsLinked = true; - - function setSafeMode($safeMode) - { - $this->safeMode = (bool) $safeMode; - - return $this; - } - - protected $safeMode; - - protected $safeLinksWhitelist = array( - 'http://', - 'https://', - 'ftp://', - 'ftps://', - 'mailto:', - 'data:image/png;base64,', - 'data:image/gif;base64,', - 'data:image/jpeg;base64,', - 'irc:', - 'ircs:', - 'git:', - 'ssh:', - 'news:', - 'steam:', - ); - - # - # Lines - # - - protected $BlockTypes = array( - '#' => array('Header'), - '*' => array('Rule', 'List'), - '+' => array('List'), - '-' => array('SetextHeader', 'Table', 'Rule', 'List'), - '0' => array('List'), - '1' => array('List'), - '2' => array('List'), - '3' => array('List'), - '4' => array('List'), - '5' => array('List'), - '6' => array('List'), - '7' => array('List'), - '8' => array('List'), - '9' => array('List'), - ':' => array('Table'), - '<' => array('Comment', 'Markup'), - '=' => array('SetextHeader'), - '>' => array('Quote'), - '[' => array('Reference'), - '_' => array('Rule'), - '`' => array('FencedCode'), - '|' => array('Table'), - '~' => array('FencedCode'), - ); - - # ~ - - protected $unmarkedBlockTypes = array( - 'Code', - ); - - # - # Blocks - # - - protected function lines(array $lines) - { - $CurrentBlock = null; - - foreach ($lines as $line) - { - if (chop($line) === '') - { - if (isset($CurrentBlock)) - { - $CurrentBlock['interrupted'] = true; - } - - continue; - } - - if (strpos($line, "\t") !== false) - { - $parts = explode("\t", $line); - - $line = $parts[0]; - - unset($parts[0]); - - foreach ($parts as $part) - { - $shortage = 4 - mb_strlen($line, 'utf-8') % 4; - - $line .= str_repeat(' ', $shortage); - $line .= $part; - } - } - - $indent = 0; - - while (isset($line[$indent]) and $line[$indent] === ' ') - { - $indent ++; - } - - $text = $indent > 0 ? substr($line, $indent) : $line; - - # ~ - - $Line = array('body' => $line, 'indent' => $indent, 'text' => $text); - - # ~ - - if (isset($CurrentBlock['continuable'])) - { - $Block = $this->{'block'.$CurrentBlock['type'].'Continue'}($Line, $CurrentBlock); - - if (isset($Block)) - { - $CurrentBlock = $Block; - - continue; - } - else - { - if ($this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - } - } - - # ~ - - $marker = $text[0]; - - # ~ - - $blockTypes = $this->unmarkedBlockTypes; - - if (isset($this->BlockTypes[$marker])) - { - foreach ($this->BlockTypes[$marker] as $blockType) - { - $blockTypes []= $blockType; - } - } - - # - # ~ - - foreach ($blockTypes as $blockType) - { - $Block = $this->{'block'.$blockType}($Line, $CurrentBlock); - - if (isset($Block)) - { - $Block['type'] = $blockType; - - if ( ! isset($Block['identified'])) - { - $Blocks []= $CurrentBlock; - - $Block['identified'] = true; - } - - if ($this->isBlockContinuable($blockType)) - { - $Block['continuable'] = true; - } - - $CurrentBlock = $Block; - - continue 2; - } - } - - # ~ - - if (isset($CurrentBlock) and ! isset($CurrentBlock['type']) and ! isset($CurrentBlock['interrupted'])) - { - $CurrentBlock['element']['text'] .= "\n".$text; - } - else - { - $Blocks []= $CurrentBlock; - - $CurrentBlock = $this->paragraph($Line); - - $CurrentBlock['identified'] = true; - } - } - - # ~ - - if (isset($CurrentBlock['continuable']) and $this->isBlockCompletable($CurrentBlock['type'])) - { - $CurrentBlock = $this->{'block'.$CurrentBlock['type'].'Complete'}($CurrentBlock); - } - - # ~ - - $Blocks []= $CurrentBlock; - - unset($Blocks[0]); - - # ~ - - $markup = ''; - - foreach ($Blocks as $Block) - { - if (isset($Block['hidden'])) - { - continue; - } - - $markup .= "\n"; - $markup .= isset($Block['markup']) ? $Block['markup'] : $this->element($Block['element']); - } - - $markup .= "\n"; - - # ~ - - return $markup; - } - - protected function isBlockContinuable($Type) - { - return method_exists($this, 'block'.$Type.'Continue'); - } - - protected function isBlockCompletable($Type) - { - return method_exists($this, 'block'.$Type.'Complete'); - } - - # - # Code - - protected function blockCode($Line, $Block = null) - { - if (isset($Block) and ! isset($Block['type']) and ! isset($Block['interrupted'])) - { - return; - } - - if ($Line['indent'] >= 4) - { - $text = substr($Line['body'], 4); - - $Block = array( - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => array( - 'name' => 'code', - 'text' => $text, - ), - ), - ); - - return $Block; - } - } - - protected function blockCodeContinue($Line, $Block) - { - if ($Line['indent'] >= 4) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['element']['text']['text'] .= "\n"; - - $text = substr($Line['body'], 4); - - $Block['element']['text']['text'] .= $text; - - return $Block; - } - } - - protected function blockCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Comment - - protected function blockComment($Line) - { - if ($this->markupEscaped or $this->safeMode) - { - return; - } - - if (isset($Line['text'][3]) and $Line['text'][3] === '-' and $Line['text'][2] === '-' and $Line['text'][1] === '!') - { - $Block = array( - 'markup' => $Line['body'], - ); - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - } - - protected function blockCommentContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - $Block['markup'] .= "\n" . $Line['body']; - - if (preg_match('/-->$/', $Line['text'])) - { - $Block['closed'] = true; - } - - return $Block; - } - - # - # Fenced Code - - protected function blockFencedCode($Line) - { - if (preg_match('/^['.$Line['text'][0].']{3,}[ ]*([^`]+)?[ ]*$/', $Line['text'], $matches)) - { - $Element = array( - 'name' => 'code', - 'text' => '', - ); - - if (isset($matches[1])) - { - /** - * https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#classes - * Every HTML element may have a class attribute specified. - * The attribute, if specified, must have a value that is a set - * of space-separated tokens representing the various classes - * that the element belongs to. - * [...] - * The space characters, for the purposes of this specification, - * are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), - * U+000A LINE FEED (LF), U+000C FORM FEED (FF), and - * U+000D CARRIAGE RETURN (CR). - */ - $language = substr($matches[1], 0, strcspn($matches[1], " \t\n\f\r")); - - $class = 'language-'.$language; - - $Element['attributes'] = array( - 'class' => $class, - ); - } - - $Block = array( - 'char' => $Line['text'][0], - 'element' => array( - 'name' => 'pre', - 'handler' => 'element', - 'text' => $Element, - ), - ); - - return $Block; - } - } - - protected function blockFencedCodeContinue($Line, $Block) - { - if (isset($Block['complete'])) - { - return; - } - - if (isset($Block['interrupted'])) - { - $Block['element']['text']['text'] .= "\n"; - - unset($Block['interrupted']); - } - - if (preg_match('/^'.$Block['char'].'{3,}[ ]*$/', $Line['text'])) - { - $Block['element']['text']['text'] = substr($Block['element']['text']['text'], 1); - - $Block['complete'] = true; - - return $Block; - } - - $Block['element']['text']['text'] .= "\n".$Line['body']; - - return $Block; - } - - protected function blockFencedCodeComplete($Block) - { - $text = $Block['element']['text']['text']; - - $Block['element']['text']['text'] = $text; - - return $Block; - } - - # - # Header - - protected function blockHeader($Line) - { - if (isset($Line['text'][1])) - { - $level = 1; - - while (isset($Line['text'][$level]) and $Line['text'][$level] === '#') - { - $level ++; - } - - if ($level > 6) - { - return; - } - - $text = trim($Line['text'], '# '); - - $Block = array( - 'element' => array( - 'name' => 'h' . min(6, $level), - 'text' => $text, - 'handler' => 'line', - ), - ); - - return $Block; - } - } - - # - # List - - protected function blockList($Line) - { - list($name, $pattern) = $Line['text'][0] <= '-' ? array('ul', '[*+-]') : array('ol', '[0-9]+[.]'); - - if (preg_match('/^('.$pattern.'[ ]+)(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'indent' => $Line['indent'], - 'pattern' => $pattern, - 'element' => array( - 'name' => $name, - 'handler' => 'elements', - ), - ); - - if($name === 'ol') - { - $listStart = stristr($matches[0], '.', true); - - if($listStart !== '1') - { - $Block['element']['attributes'] = array('start' => $listStart); - } - } - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $matches[2], - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - } - - protected function blockListContinue($Line, array $Block) - { - if ($Block['indent'] === $Line['indent'] and preg_match('/^'.$Block['pattern'].'(?:[ ]+(.*)|$)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['li']['text'] []= ''; - - $Block['loose'] = true; - - unset($Block['interrupted']); - } - - unset($Block['li']); - - $text = isset($matches[1]) ? $matches[1] : ''; - - $Block['li'] = array( - 'name' => 'li', - 'handler' => 'li', - 'text' => array( - $text, - ), - ); - - $Block['element']['text'] []= & $Block['li']; - - return $Block; - } - - if ($Line['text'][0] === '[' and $this->blockReference($Line)) - { - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - return $Block; - } - - if ($Line['indent'] > 0) - { - $Block['li']['text'] []= ''; - - $text = preg_replace('/^[ ]{0,4}/', '', $Line['body']); - - $Block['li']['text'] []= $text; - - unset($Block['interrupted']); - - return $Block; - } - } - - protected function blockListComplete(array $Block) - { - if (isset($Block['loose'])) - { - foreach ($Block['element']['text'] as &$li) - { - if (end($li['text']) !== '') - { - $li['text'] []= ''; - } - } - } - - return $Block; - } - - # - # Quote - - protected function blockQuote($Line) - { - if (preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - $Block = array( - 'element' => array( - 'name' => 'blockquote', - 'handler' => 'lines', - 'text' => (array) $matches[1], - ), - ); - - return $Block; - } - } - - protected function blockQuoteContinue($Line, array $Block) - { - if ($Line['text'][0] === '>' and preg_match('/^>[ ]?(.*)/', $Line['text'], $matches)) - { - if (isset($Block['interrupted'])) - { - $Block['element']['text'] []= ''; - - unset($Block['interrupted']); - } - - $Block['element']['text'] []= $matches[1]; - - return $Block; - } - - if ( ! isset($Block['interrupted'])) - { - $Block['element']['text'] []= $Line['text']; - - return $Block; - } - } - - # - # Rule - - protected function blockRule($Line) - { - if (preg_match('/^(['.$Line['text'][0].'])([ ]*\1){2,}[ ]*$/', $Line['text'])) - { - $Block = array( - 'element' => array( - 'name' => 'hr' - ), - ); - - return $Block; - } - } - - # - # Setext - - protected function blockSetextHeader($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (chop($Line['text'], $Line['text'][0]) === '') - { - $Block['element']['name'] = $Line['text'][0] === '=' ? 'h1' : 'h2'; - - return $Block; - } - } - - # - # Markup - - protected function blockMarkup($Line) - { - if ($this->markupEscaped or $this->safeMode) - { - return; - } - - if (preg_match('/^<(\w[\w-]*)(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*(\/)?>/', $Line['text'], $matches)) - { - $element = strtolower($matches[1]); - - if (in_array($element, $this->textLevelElements)) - { - return; - } - - $Block = array( - 'name' => $matches[1], - 'depth' => 0, - 'markup' => $Line['text'], - ); - - $length = strlen($matches[0]); - - $remainder = substr($Line['text'], $length); - - if (trim($remainder) === '') - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - $Block['closed'] = true; - - $Block['void'] = true; - } - } - else - { - if (isset($matches[2]) or in_array($matches[1], $this->voidElements)) - { - return; - } - - if (preg_match('/<\/'.$matches[1].'>[ ]*$/i', $remainder)) - { - $Block['closed'] = true; - } - } - - return $Block; - } - } - - protected function blockMarkupContinue($Line, array $Block) - { - if (isset($Block['closed'])) - { - return; - } - - if (preg_match('/^<'.$Block['name'].'(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*>/i', $Line['text'])) # open - { - $Block['depth'] ++; - } - - if (preg_match('/(.*?)<\/'.$Block['name'].'>[ ]*$/i', $Line['text'], $matches)) # close - { - if ($Block['depth'] > 0) - { - $Block['depth'] --; - } - else - { - $Block['closed'] = true; - } - } - - if (isset($Block['interrupted'])) - { - $Block['markup'] .= "\n"; - - unset($Block['interrupted']); - } - - $Block['markup'] .= "\n".$Line['body']; - - return $Block; - } - - # - # Reference - - protected function blockReference($Line) - { - if (preg_match('/^\[(.+?)\]:[ ]*?(?:[ ]+["\'(](.+)["\')])?[ ]*$/', $Line['text'], $matches)) - { - $id = strtolower($matches[1]); - - $Data = array( - 'url' => $matches[2], - 'title' => null, - ); - - if (isset($matches[3])) - { - $Data['title'] = $matches[3]; - } - - $this->DefinitionData['Reference'][$id] = $Data; - - $Block = array( - 'hidden' => true, - ); - - return $Block; - } - } - - # - # Table - - protected function blockTable($Line, array $Block = null) - { - if ( ! isset($Block) or isset($Block['type']) or isset($Block['interrupted'])) - { - return; - } - - if (strpos($Block['element']['text'], '|') !== false and chop($Line['text'], ' -:|') === '') - { - $alignments = array(); - - $divider = $Line['text']; - - $divider = trim($divider); - $divider = trim($divider, '|'); - - $dividerCells = explode('|', $divider); - - foreach ($dividerCells as $dividerCell) - { - $dividerCell = trim($dividerCell); - - if ($dividerCell === '') - { - continue; - } - - $alignment = null; - - if ($dividerCell[0] === ':') - { - $alignment = 'left'; - } - - if (substr($dividerCell, - 1) === ':') - { - $alignment = $alignment === 'left' ? 'center' : 'right'; - } - - $alignments []= $alignment; - } - - # ~ - - $HeaderElements = array(); - - $header = $Block['element']['text']; - - $header = trim($header); - $header = trim($header, '|'); - - $headerCells = explode('|', $header); - - foreach ($headerCells as $index => $headerCell) - { - $headerCell = trim($headerCell); - - $HeaderElement = array( - 'name' => 'th', - 'text' => $headerCell, - 'handler' => 'line', - ); - - if (isset($alignments[$index])) - { - $alignment = $alignments[$index]; - - $HeaderElement['attributes'] = array( - 'style' => 'text-align: '.$alignment.';', - ); - } - - $HeaderElements []= $HeaderElement; - } - - # ~ - - $Block = array( - 'alignments' => $alignments, - 'identified' => true, - 'element' => array( - 'name' => 'table', - 'handler' => 'elements', - ), - ); - - $Block['element']['text'] []= array( - 'name' => 'thead', - 'handler' => 'elements', - ); - - $Block['element']['text'] []= array( - 'name' => 'tbody', - 'handler' => 'elements', - 'text' => array(), - ); - - $Block['element']['text'][0]['text'] []= array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $HeaderElements, - ); - - return $Block; - } - } - - protected function blockTableContinue($Line, array $Block) - { - if (isset($Block['interrupted'])) - { - return; - } - - if ($Line['text'][0] === '|' or strpos($Line['text'], '|')) - { - $Elements = array(); - - $row = $Line['text']; - - $row = trim($row); - $row = trim($row, '|'); - - preg_match_all('/(?:(\\\\[|])|[^|`]|`[^`]+`|`)+/', $row, $matches); - - foreach ($matches[0] as $index => $cell) - { - $cell = trim($cell); - - $Element = array( - 'name' => 'td', - 'handler' => 'line', - 'text' => $cell, - ); - - if (isset($Block['alignments'][$index])) - { - $Element['attributes'] = array( - 'style' => 'text-align: '.$Block['alignments'][$index].';', - ); - } - - $Elements []= $Element; - } - - $Element = array( - 'name' => 'tr', - 'handler' => 'elements', - 'text' => $Elements, - ); - - $Block['element']['text'][1]['text'] []= $Element; - - return $Block; - } - } - - # - # ~ - # - - protected function paragraph($Line) - { - $Block = array( - 'element' => array( - 'name' => 'p', - 'text' => $Line['text'], - 'handler' => 'line', - ), - ); - - return $Block; - } - - # - # Inline Elements - # - - protected $InlineTypes = array( - '"' => array('SpecialCharacter'), - '!' => array('Image'), - '&' => array('SpecialCharacter'), - '*' => array('Emphasis'), - ':' => array('Url'), - '<' => array('UrlTag', 'EmailTag', 'Markup', 'SpecialCharacter'), - '>' => array('SpecialCharacter'), - '[' => array('Link'), - '_' => array('Emphasis'), - '`' => array('Code'), - '~' => array('Strikethrough'), - '\\' => array('EscapeSequence'), - ); - - # ~ - - protected $inlineMarkerList = '!"*_&[:<>`~\\'; - - # - # ~ - # - - public function line($text, $nonNestables=array()) - { - $markup = ''; - - # $excerpt is based on the first occurrence of a marker - - while ($excerpt = strpbrk($text, $this->inlineMarkerList)) - { - $marker = $excerpt[0]; - - $markerPosition = strpos($text, $marker); - - $Excerpt = array('text' => $excerpt, 'context' => $text); - - foreach ($this->InlineTypes[$marker] as $inlineType) - { - # check to see if the current inline type is nestable in the current context - - if ( ! empty($nonNestables) and in_array($inlineType, $nonNestables)) - { - continue; - } - - $Inline = $this->{'inline'.$inlineType}($Excerpt); - - if ( ! isset($Inline)) - { - continue; - } - - # makes sure that the inline belongs to "our" marker - - if (isset($Inline['position']) and $Inline['position'] > $markerPosition) - { - continue; - } - - # sets a default inline position - - if ( ! isset($Inline['position'])) - { - $Inline['position'] = $markerPosition; - } - - # cause the new element to 'inherit' our non nestables - - foreach ($nonNestables as $non_nestable) - { - $Inline['element']['nonNestables'][] = $non_nestable; - } - - # the text that comes before the inline - $unmarkedText = substr($text, 0, $Inline['position']); - - # compile the unmarked text - $markup .= $this->unmarkedText($unmarkedText); - - # compile the inline - $markup .= isset($Inline['markup']) ? $Inline['markup'] : $this->element($Inline['element']); - - # remove the examined text - $text = substr($text, $Inline['position'] + $Inline['extent']); - - continue 2; - } - - # the marker does not belong to an inline - - $unmarkedText = substr($text, 0, $markerPosition + 1); - - $markup .= $this->unmarkedText($unmarkedText); - - $text = substr($text, $markerPosition + 1); - } - - $markup .= $this->unmarkedText($text); - - return $markup; - } - - # - # ~ - # - - protected function inlineCode($Excerpt) - { - $marker = $Excerpt['text'][0]; - - if (preg_match('/^('.$marker.'+)[ ]*(.+?)[ ]*(? strlen($matches[0]), - 'element' => array( - 'name' => 'code', - 'text' => $text, - ), - ); - } - } - - protected function inlineEmailTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<((mailto:)?\S+?@\S+?)>/i', $Excerpt['text'], $matches)) - { - $url = $matches[1]; - - if ( ! isset($matches[2])) - { - $url = 'mailto:' . $url; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $matches[1], - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - protected function inlineEmphasis($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - $marker = $Excerpt['text'][0]; - - if ($Excerpt['text'][1] === $marker and preg_match($this->StrongRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'strong'; - } - elseif (preg_match($this->EmRegex[$marker], $Excerpt['text'], $matches)) - { - $emphasis = 'em'; - } - else - { - return; - } - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => $emphasis, - 'handler' => 'line', - 'text' => $matches[1], - ), - ); - } - - protected function inlineEscapeSequence($Excerpt) - { - if (isset($Excerpt['text'][1]) and in_array($Excerpt['text'][1], $this->specialCharacters)) - { - return array( - 'markup' => $Excerpt['text'][1], - 'extent' => 2, - ); - } - } - - protected function inlineImage($Excerpt) - { - if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[') - { - return; - } - - $Excerpt['text']= substr($Excerpt['text'], 1); - - $Link = $this->inlineLink($Excerpt); - - if ($Link === null) - { - return; - } - - $Inline = array( - 'extent' => $Link['extent'] + 1, - 'element' => array( - 'name' => 'img', - 'attributes' => array( - 'src' => $Link['element']['attributes']['href'], - 'alt' => $Link['element']['text'], - ), - ), - ); - - $Inline['element']['attributes'] += $Link['element']['attributes']; - - unset($Inline['element']['attributes']['href']); - - return $Inline; - } - - protected function inlineLink($Excerpt) - { - $Element = array( - 'name' => 'a', - 'handler' => 'line', - 'nonNestables' => array('Url', 'Link'), - 'text' => null, - 'attributes' => array( - 'href' => null, - 'title' => null, - ), - ); - - $extent = 0; - - $remainder = $Excerpt['text']; - - if (preg_match('/\[((?:[^][]++|(?R))*+)\]/', $remainder, $matches)) - { - $Element['text'] = $matches[1]; - - $extent += strlen($matches[0]); - - $remainder = substr($remainder, $extent); - } - else - { - return; - } - - if (preg_match('/^[(]\s*+((?:[^ ()]++|[(][^ )]+[)])++)(?:[ ]+("[^"]*"|\'[^\']*\'))?\s*[)]/', $remainder, $matches)) - { - $Element['attributes']['href'] = $matches[1]; - - if (isset($matches[2])) - { - $Element['attributes']['title'] = substr($matches[2], 1, - 1); - } - - $extent += strlen($matches[0]); - } - else - { - if (preg_match('/^\s*\[(.*?)\]/', $remainder, $matches)) - { - $definition = strlen($matches[1]) ? $matches[1] : $Element['text']; - $definition = strtolower($definition); - - $extent += strlen($matches[0]); - } - else - { - $definition = strtolower($Element['text']); - } - - if ( ! isset($this->DefinitionData['Reference'][$definition])) - { - return; - } - - $Definition = $this->DefinitionData['Reference'][$definition]; - - $Element['attributes']['href'] = $Definition['url']; - $Element['attributes']['title'] = $Definition['title']; - } - - return array( - 'extent' => $extent, - 'element' => $Element, - ); - } - - protected function inlineMarkup($Excerpt) - { - if ($this->markupEscaped or $this->safeMode or strpos($Excerpt['text'], '>') === false) - { - return; - } - - if ($Excerpt['text'][1] === '/' and preg_match('/^<\/\w[\w-]*[ ]*>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] === '!' and preg_match('/^/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - - if ($Excerpt['text'][1] !== ' ' and preg_match('/^<\w[\w-]*(?:[ ]*'.$this->regexHtmlAttribute.')*[ ]*\/?>/s', $Excerpt['text'], $matches)) - { - return array( - 'markup' => $matches[0], - 'extent' => strlen($matches[0]), - ); - } - } - - protected function inlineSpecialCharacter($Excerpt) - { - if ($Excerpt['text'][0] === '&' and ! preg_match('/^&#?\w+;/', $Excerpt['text'])) - { - return array( - 'markup' => '&', - 'extent' => 1, - ); - } - - $SpecialCharacter = array('>' => 'gt', '<' => 'lt', '"' => 'quot'); - - if (isset($SpecialCharacter[$Excerpt['text'][0]])) - { - return array( - 'markup' => '&'.$SpecialCharacter[$Excerpt['text'][0]].';', - 'extent' => 1, - ); - } - } - - protected function inlineStrikethrough($Excerpt) - { - if ( ! isset($Excerpt['text'][1])) - { - return; - } - - if ($Excerpt['text'][1] === '~' and preg_match('/^~~(?=\S)(.+?)(?<=\S)~~/', $Excerpt['text'], $matches)) - { - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'del', - 'text' => $matches[1], - 'handler' => 'line', - ), - ); - } - } - - protected function inlineUrl($Excerpt) - { - if ($this->urlsLinked !== true or ! isset($Excerpt['text'][2]) or $Excerpt['text'][2] !== '/') - { - return; - } - - if (preg_match('/\bhttps?:[\/]{2}[^\s<]+\b\/*/ui', $Excerpt['context'], $matches, PREG_OFFSET_CAPTURE)) - { - $url = $matches[0][0]; - - $Inline = array( - 'extent' => strlen($matches[0][0]), - 'position' => $matches[0][1], - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - ), - ), - ); - - return $Inline; - } - } - - protected function inlineUrlTag($Excerpt) - { - if (strpos($Excerpt['text'], '>') !== false and preg_match('/^<(\w+:\/{2}[^ >]+)>/i', $Excerpt['text'], $matches)) - { - $url = $matches[1]; - - return array( - 'extent' => strlen($matches[0]), - 'element' => array( - 'name' => 'a', - 'text' => $url, - 'attributes' => array( - 'href' => $url, - ), - ), - ); - } - } - - # ~ - - protected function unmarkedText($text) - { - if ($this->breaksEnabled) - { - $text = preg_replace('/[ ]*\n/', "
\n", $text); - } - else - { - $text = preg_replace('/(?:[ ][ ]+|[ ]*\\\\)\n/', "
\n", $text); - $text = str_replace(" \n", "\n", $text); - } - - return $text; - } - - # - # Handlers - # - - protected function element(array $Element) - { - if ($this->safeMode) - { - $Element = $this->sanitiseElement($Element); - } - - $markup = '<'.$Element['name']; - - if (isset($Element['attributes'])) - { - foreach ($Element['attributes'] as $name => $value) - { - if ($value === null) - { - continue; - } - - $markup .= ' '.$name.'="'.self::escape($value).'"'; - } - } - - $permitRawHtml = false; - - if (isset($Element['text'])) - { - $text = $Element['text']; - } - // very strongly consider an alternative if you're writing an - // extension - elseif (isset($Element['rawHtml'])) - { - $text = $Element['rawHtml']; - $allowRawHtmlInSafeMode = isset($Element['allowRawHtmlInSafeMode']) && $Element['allowRawHtmlInSafeMode']; - $permitRawHtml = !$this->safeMode || $allowRawHtmlInSafeMode; - } - - if (isset($text)) - { - $markup .= '>'; - - if (!isset($Element['nonNestables'])) - { - $Element['nonNestables'] = array(); - } - - if (isset($Element['handler'])) - { - $markup .= $this->{$Element['handler']}($text, $Element['nonNestables']); - } - elseif (!$permitRawHtml) - { - $markup .= self::escape($text, true); - } - else - { - $markup .= $text; - } - - $markup .= ''; - } - else - { - $markup .= ' />'; - } - - return $markup; - } - - protected function elements(array $Elements) - { - $markup = ''; - - foreach ($Elements as $Element) - { - $markup .= "\n" . $this->element($Element); - } - - $markup .= "\n"; - - return $markup; - } - - # ~ - - protected function li($lines) - { - $markup = $this->lines($lines); - - $trimmedMarkup = trim($markup); - - if ( ! in_array('', $lines) and substr($trimmedMarkup, 0, 3) === '

') - { - $markup = $trimmedMarkup; - $markup = substr($markup, 3); - - $position = strpos($markup, "

"); - - $markup = substr_replace($markup, '', $position, 4); - } - - return $markup; - } - - # - # Deprecated Methods - # - - function parse($text) - { - $markup = $this->text($text); - - return $markup; - } - - protected function sanitiseElement(array $Element) - { - static $goodAttribute = '/^[a-zA-Z0-9][a-zA-Z0-9-_]*+$/'; - static $safeUrlNameToAtt = array( - 'a' => 'href', - 'img' => 'src', - ); - - if (isset($safeUrlNameToAtt[$Element['name']])) - { - $Element = $this->filterUnsafeUrlInAttribute($Element, $safeUrlNameToAtt[$Element['name']]); - } - - if ( ! empty($Element['attributes'])) - { - foreach ($Element['attributes'] as $att => $val) - { - # filter out badly parsed attribute - if ( ! preg_match($goodAttribute, $att)) - { - unset($Element['attributes'][$att]); - } - # dump onevent attribute - elseif (self::striAtStart($att, 'on')) - { - unset($Element['attributes'][$att]); - } - } - } - - return $Element; - } - - protected function filterUnsafeUrlInAttribute(array $Element, $attribute) - { - foreach ($this->safeLinksWhitelist as $scheme) - { - if (self::striAtStart($Element['attributes'][$attribute], $scheme)) - { - return $Element; - } - } - - $Element['attributes'][$attribute] = str_replace(':', '%3A', $Element['attributes'][$attribute]); - - return $Element; - } - - # - # Static Methods - # - - protected static function escape($text, $allowQuotes = false) - { - return htmlspecialchars($text, $allowQuotes ? ENT_NOQUOTES : ENT_QUOTES, 'UTF-8'); - } - - protected static function striAtStart($string, $needle) - { - $len = strlen($needle); - - if ($len > strlen($string)) - { - return false; - } - else - { - return strtolower(substr($string, 0, $len)) === strtolower($needle); - } - } - - static function instance($name = 'default') - { - if (isset(self::$instances[$name])) - { - return self::$instances[$name]; - } - - $instance = new static(); - - self::$instances[$name] = $instance; - - return $instance; - } - - private static $instances = array(); - - # - # Fields - # - - protected $DefinitionData; - - # - # Read-Only - - protected $specialCharacters = array( - '\\', '`', '*', '_', '{', '}', '[', ']', '(', ')', '>', '#', '+', '-', '.', '!', '|', - ); - - protected $StrongRegex = array( - '*' => '/^[*]{2}((?:\\\\\*|[^*]|[*][^*]*[*])+?)[*]{2}(?![*])/s', - '_' => '/^__((?:\\\\_|[^_]|_[^_]*_)+?)__(?!_)/us', - ); - - protected $EmRegex = array( - '*' => '/^[*]((?:\\\\\*|[^*]|[*][*][^*]+?[*][*])+?)[*](?![*])/s', - '_' => '/^_((?:\\\\_|[^_]|__[^_]*__)+?)_(?!_)\b/us', - ); - - protected $regexHtmlAttribute = '[a-zA-Z_:][\w:.-]*(?:\s*=\s*(?:[^"\'=<>`\s]+|"[^"]*"|\'[^\']*\'))?'; - - protected $voidElements = array( - 'area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', - ); - - protected $textLevelElements = array( - 'a', 'br', 'bdo', 'abbr', 'blink', 'nextid', 'acronym', 'basefont', - 'b', 'em', 'big', 'cite', 'small', 'spacer', 'listing', - 'i', 'rp', 'del', 'code', 'strike', 'marquee', - 'q', 'rt', 'ins', 'font', 'strong', - 's', 'tt', 'kbd', 'mark', - 'u', 'xm', 'sub', 'nobr', - 'sup', 'ruby', - 'var', 'span', - 'wbr', 'time', - ); -} diff --git a/Perlite/perlite/vendor/erusev/parsedown/README.md b/Perlite/perlite/vendor/erusev/parsedown/README.md deleted file mode 100644 index b5d9ed2..0000000 --- a/Perlite/perlite/vendor/erusev/parsedown/README.md +++ /dev/null @@ -1,86 +0,0 @@ -> I also make [Caret](https://caret.io?ref=parsedown) - a Markdown editor for Mac and PC. - -## Parsedown - -[![Build Status](https://img.shields.io/travis/erusev/parsedown/master.svg?style=flat-square)](https://travis-ci.org/erusev/parsedown) - - -Better Markdown Parser in PHP - -[Demo](http://parsedown.org/demo) | -[Benchmarks](http://parsedown.org/speed) | -[Tests](http://parsedown.org/tests/) | -[Documentation](https://github.com/erusev/parsedown/wiki/) - -### Features - -* One File -* No Dependencies -* Super Fast -* Extensible -* [GitHub flavored](https://help.github.com/articles/github-flavored-markdown) -* Tested in 5.3 to 7.1 and in HHVM -* [Markdown Extra extension](https://github.com/erusev/parsedown-extra) - -### Installation - -Include `Parsedown.php` or install [the composer package](https://packagist.org/packages/erusev/parsedown). - -### Example - -``` php -$Parsedown = new Parsedown(); - -echo $Parsedown->text('Hello _Parsedown_!'); # prints:

Hello Parsedown!

-``` - -More examples in [the wiki](https://github.com/erusev/parsedown/wiki/) and in [this video tutorial](http://youtu.be/wYZBY8DEikI). - -### Security - -Parsedown is capable of escaping user-input within the HTML that it generates. Additionally Parsedown will apply sanitisation to additional scripting vectors (such as scripting link destinations) that are introduced by the markdown syntax itself. - -To tell Parsedown that it is processing untrusted user-input, use the following: -```php -$parsedown = new Parsedown; -$parsedown->setSafeMode(true); -``` - -If instead, you wish to allow HTML within untrusted user-input, but still want output to be free from XSS it is recommended that you make use of a HTML sanitiser that allows HTML tags to be whitelisted, like [HTML Purifier](http://htmlpurifier.org/). - -In both cases you should strongly consider employing defence-in-depth measures, like [deploying a Content-Security-Policy](https://scotthelme.co.uk/content-security-policy-an-introduction/) (a browser security feature) so that your page is likely to be safe even if an attacker finds a vulnerability in one of the first lines of defence above. - -#### Security of Parsedown Extensions - -Safe mode does not necessarily yield safe results when using extensions to Parsedown. Extensions should be evaluated on their own to determine their specific safety against XSS. - -### Escaping HTML -> ⚠️  **WARNING:** This method isn't safe from XSS! - -If you wish to escape HTML **in trusted input**, you can use the following: -```php -$parsedown = new Parsedown; -$parsedown->setMarkupEscaped(true); -``` - -Beware that this still allows users to insert unsafe scripting vectors, such as links like `[xss](javascript:alert%281%29)`. - -### Questions - -**How does Parsedown work?** - -It tries to read Markdown like a human. First, it looks at the lines. It’s interested in how the lines start. This helps it recognise blocks. It knows, for example, that if a line starts with a `-` then perhaps it belongs to a list. Once it recognises the blocks, it continues to the content. As it reads, it watches out for special characters. This helps it recognise inline elements (or inlines). - -We call this approach "line based". We believe that Parsedown is the first Markdown parser to use it. Since the release of Parsedown, other developers have used the same approach to develop other Markdown parsers in PHP and in other languages. - -**Is it compliant with CommonMark?** - -It passes most of the CommonMark tests. Most of the tests that don't pass deal with cases that are quite uncommon. Still, as CommonMark matures, compliance should improve. - -**Who uses it?** - -[Laravel Framework](https://laravel.com/), [Bolt CMS](http://bolt.cm/), [Grav CMS](http://getgrav.org/), [Herbie CMS](http://www.getherbie.org/), [Kirby CMS](http://getkirby.com/), [October CMS](http://octobercms.com/), [Pico CMS](http://picocms.org), [Statamic CMS](http://www.statamic.com/), [phpDocumentor](http://www.phpdoc.org/), [RaspberryPi.org](http://www.raspberrypi.org/), [Symfony demo](https://github.com/symfony/symfony-demo) and [more](https://packagist.org/packages/erusev/parsedown/dependents). - -**How can I help?** - -Use it, star it, share it and if you feel generous, [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=528P3NZQMP8N2). diff --git a/Perlite/perlite/vendor/erusev/parsedown/composer.json b/Perlite/perlite/vendor/erusev/parsedown/composer.json deleted file mode 100644 index f8b40f8..0000000 --- a/Perlite/perlite/vendor/erusev/parsedown/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "erusev/parsedown", - "description": "Parser for Markdown.", - "keywords": ["markdown", "parser"], - "homepage": "http://parsedown.org", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "require": { - "php": ">=5.3.0", - "ext-mbstring": "*" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "autoload": { - "psr-0": {"Parsedown": ""} - }, - "autoload-dev": { - "psr-0": { - "TestParsedown": "test/", - "ParsedownTest": "test/", - "CommonMarkTest": "test/", - "CommonMarkTestWeak": "test/" - } - } -} diff --git a/Perlite/web/conf.d/default.conf b/Perlite/web/conf.d/default.conf deleted file mode 100644 index 7332ce8..0000000 --- a/Perlite/web/conf.d/default.conf +++ /dev/null @@ -1,49 +0,0 @@ -server { - listen 80; - server_name 10.0.0.10; - - root /var/www/perlite; - index index.php index.html index.htm; - - access_log /var/log/nginx/php-access.log; - error_log /var/log/nginx/php-error.log; - - - location / { - try_files $uri $uri/ /index.php; - } - - # PHP-FPM Configuration Nginx - location ~ \.php$ { - try_files $uri = 404; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass perlite:9000; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param REQUEST_URI $request_uri; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param PATH_INFO $fastcgi_path_info; - } - - location ~ /\.ht { - deny all; - } - - location ~* ^/(.*)/.obsidian/appearance.json$ { - allow all; - } - - location ~* ^/(.*)/.obsidian/(.*)/theme.css$ { - allow all; - } - - location ~ \.(git|github|obsidian|trash) { - deny all; - } - - location ~ \.(md|json)$ { - deny all; - } - - -} diff --git a/Untitled.canvas b/Untitled.canvas deleted file mode 100644 index 9e26dfe..0000000 --- a/Untitled.canvas +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file