<$set name="currentTiddler" value={{$:/palette}}>
!!! Your own test
<$vars c1="$:/apps/telmiger/bricks/re8y-1" c2="$:/apps/telmiger/bricks/re8y-2">
<label><$select tiddler=<<c1>> default=''>
<$list filter='[tag[$:/tags/Colours]sort[title]]'>
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
</$select> foreground</label>
<label><$select tiddler=<<c2>> default=''>
<$list filter='[tag[$:/tags/Colours]sort[title]]'>
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
</$select> background</label>
<$wikify name="one" text="{{{[<c1>get[text]get[text]]}}}">
<$wikify name="two" text="{{{[<c2>get[text]get[text]]}}}">
Your result: <<one>> – <<two>>
<$macrocall $name=colorTest test="Readability" color1=<<one>> color2=<<two>>/>
</$wikify>
</$wikify>
</$vars>
[[Home]] | [[Color Palette Studio]] | [[Referencs]]
\define searchTerm() [search:$(field)$<userInput>]
<$list filter="[[$:/config/field-search/data/Any Field]indexes[]sortby{$:/config/field-search/sortby}]" variable=field emptyMessage="[[- configuration needed -|$:/plugins/wikilabs/field-search/readme]]">
{{||$:/plugins/wikilabs/field-search/templates/Results}}
</$list>
\define searchTerm() [search:$(field)$<userInput>]
\define openConfig()
<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/plugins/wikilabs/field-search/CP/Settings/field-search"/>
<$action-navigate $to="$:/ControlPanel"/>
- configuration needed -
</$button>
\end
<$list filter="[[$:/config/field-search/data/Tags]indexes[]sortby{$:/config/field-search/sortby}]" variable=field emptyMessage="<<openConfig>>">
{{||$:/plugins/wikilabs/field-search/templates/Results}}
</$list>
Kookma plugin library is a set of plugins, themes, and scripts, to extend functionality and add new features to Tiddlywiki. For detail information visit the library at [[GitHub|https://github.com/kookma]]. It is recommended to backup your data before installing any plugin, theme, or script.
To use in other wikis, drag and drop this link to those wikis: [[Kookma Plugin Library|$:/config/KookmaPluginLibrary]]
{"tiddlers":{"$:/Acknowledgements":{"text":"TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"},"$:/core/copyright.txt":{"type":"text/plain","text":"TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2021, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."},"$:/core/icon":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"},"$:/core/images/add-comment":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"},"$:/core/images/advanced-search-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"},"$:/core/images/auto-height":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"},"$:/core/images/blank":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"},"$:/core/images/bold":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"},"$:/core/images/cancel-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"},"$:/core/images/chevron-down":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"},"$:/core/images/chevron-left":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"},"$:/core/images/chevron-right":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"},"$:/core/images/chevron-up":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"},"$:/core/images/clone-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"},"$:/core/images/close-all-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"},"$:/core/images/close-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"},"$:/core/images/close-others-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"},"$:/core/images/copy-clipboard":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"},"$:/core/images/delete-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"},"$:/core/images/done-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"},"$:/core/images/down-arrow":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"},"$:/core/images/download-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"},"$:/core/images/edit-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"},"$:/core/images/erase":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"},"$:/core/images/excise":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"},"$:/core/images/export-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"},"$:/core/images/file":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"},"$:/core/images/fixed-height":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"},"$:/core/images/fold-all-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"},"$:/core/images/fold-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"},"$:/core/images/fold-others-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"},"$:/core/images/folder":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"},"$:/core/images/full-screen-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"},"$:/core/images/github":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"},"$:/core/images/gitter":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"},"$:/core/images/globe":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"},"$:/core/images/heading-1":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"},"$:/core/images/heading-2":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"},"$:/core/images/heading-3":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"},"$:/core/images/heading-4":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"},"$:/core/images/heading-5":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"},"$:/core/images/heading-6":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"},"$:/core/images/help":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"},"$:/core/images/home-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"},"$:/core/images/import-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"},"$:/core/images/info-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"},"$:/core/images/italic":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"},"$:/core/images/left-arrow":{"created":"20150315234410875","modified":"20150315235324760","tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"},"$:/core/images/line-width":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"},"$:/core/images/link":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"},"$:/core/images/linkify":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"},"$:/core/images/list-bullet":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"},"$:/core/images/list-number":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"},"$:/core/images/list":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"},"$:/core/images/locked-padlock":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"},"$:/core/images/mail":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"},"$:/core/images/menu-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"},"$:/core/images/mono-block":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"},"$:/core/images/mono-line":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"},"$:/core/images/new-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"},"$:/core/images/new-here-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"},"$:/core/images/new-image-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"},"$:/core/images/new-journal-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"},"$:/core/images/opacity":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"},"$:/core/images/open-window":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"},"$:/core/images/options-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"},"$:/core/images/paint":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"},"$:/core/images/palette":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"},"$:/core/images/permalink-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"},"$:/core/images/permaview-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"},"$:/core/images/picture":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"},"$:/core/images/plugin-generic-language":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-language tc-image-button\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"},"$:/core/images/plugin-generic-plugin":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-plugin tc-image-button\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"},"$:/core/images/plugin-generic-theme":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" class=\"tc-image-plugin-generic-theme tc-image-button\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"},"$:/core/images/preview-closed":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"},"$:/core/images/preview-open":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"},"$:/core/images/print-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"},"$:/core/images/quote":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"},"$:/core/images/refresh-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"},"$:/core/images/right-arrow":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"},"$:/core/images/rotate-left":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"},"$:/core/images/save-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"},"$:/core/images/size":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"},"$:/core/images/spiral":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"},"$:/core/images/stamp":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"},"$:/core/images/star-filled":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"},"$:/core/images/storyview-classic":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"},"$:/core/images/storyview-pop":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"},"$:/core/images/storyview-zoomin":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"},"$:/core/images/strikethrough":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"},"$:/core/images/subscript":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"},"$:/core/images/superscript":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"},"$:/core/images/tag-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"},"$:/core/images/theme-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"},"$:/core/images/timestamp-off":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"},"$:/core/images/timestamp-on":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"},"$:/core/images/tip":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"},"$:/core/images/transcludify":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"},"$:/core/images/twitter":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"},"$:/core/images/underline":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"},"$:/core/images/unfold-all-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"},"$:/core/images/unfold-button":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"},"$:/core/images/unlocked-padlock":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"},"$:/core/images/up-arrow":{"created":"20150316000544368","modified":"20150316000831867","tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"},"$:/core/images/video":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"},"$:/core/images/warning":{"tags":"$:/tags/Image","text":"<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"},"$:/language/Buttons/AdvancedSearch/Caption":{"text":"advanced search"},"$:/language/Buttons/AdvancedSearch/Hint":{"text":"Advanced search"},"$:/language/Buttons/Cancel/Caption":{"text":"cancel"},"$:/language/Buttons/Cancel/Hint":{"text":"Discard changes to this tiddler"},"$:/language/Buttons/Clone/Caption":{"text":"clone"},"$:/language/Buttons/Clone/Hint":{"text":"Clone this tiddler"},"$:/language/Buttons/Close/Caption":{"text":"close"},"$:/language/Buttons/Close/Hint":{"text":"Close this tiddler"},"$:/language/Buttons/CloseAll/Caption":{"text":"close all"},"$:/language/Buttons/CloseAll/Hint":{"text":"Close all tiddlers"},"$:/language/Buttons/CloseOthers/Caption":{"text":"close others"},"$:/language/Buttons/CloseOthers/Hint":{"text":"Close other tiddlers"},"$:/language/Buttons/ControlPanel/Caption":{"text":"control panel"},"$:/language/Buttons/ControlPanel/Hint":{"text":"Open control panel"},"$:/language/Buttons/CopyToClipboard/Caption":{"text":"copy to clipboard"},"$:/language/Buttons/CopyToClipboard/Hint":{"text":"Copy this text to the clipboard"},"$:/language/Buttons/Delete/Caption":{"text":"delete"},"$:/language/Buttons/Delete/Hint":{"text":"Delete this tiddler"},"$:/language/Buttons/Edit/Caption":{"text":"edit"},"$:/language/Buttons/Edit/Hint":{"text":"Edit this tiddler"},"$:/language/Buttons/Encryption/Caption":{"text":"encryption"},"$:/language/Buttons/Encryption/Hint":{"text":"Set or clear a password for saving this wiki"},"$:/language/Buttons/Encryption/ClearPassword/Caption":{"text":"clear password"},"$:/language/Buttons/Encryption/ClearPassword/Hint":{"text":"Clear the password and save this wiki without encryption"},"$:/language/Buttons/Encryption/SetPassword/Caption":{"text":"set password"},"$:/language/Buttons/Encryption/SetPassword/Hint":{"text":"Set a password for saving this wiki with encryption"},"$:/language/Buttons/ExportPage/Caption":{"text":"export all"},"$:/language/Buttons/ExportPage/Hint":{"text":"Export all tiddlers"},"$:/language/Buttons/ExportTiddler/Caption":{"text":"export tiddler"},"$:/language/Buttons/ExportTiddler/Hint":{"text":"Export tiddler"},"$:/language/Buttons/ExportTiddlers/Caption":{"text":"export tiddlers"},"$:/language/Buttons/ExportTiddlers/Hint":{"text":"Export tiddlers"},"$:/language/Buttons/SidebarSearch/Hint":{"text":"Select the sidebar search field"},"$:/language/Buttons/Fold/Caption":{"text":"fold tiddler"},"$:/language/Buttons/Fold/Hint":{"text":"Fold the body of this tiddler"},"$:/language/Buttons/Fold/FoldBar/Caption":{"text":"fold-bar"},"$:/language/Buttons/Fold/FoldBar/Hint":{"text":"Optional bars to fold and unfold tiddlers"},"$:/language/Buttons/Unfold/Caption":{"text":"unfold tiddler"},"$:/language/Buttons/Unfold/Hint":{"text":"Unfold the body of this tiddler"},"$:/language/Buttons/FoldOthers/Caption":{"text":"fold other tiddlers"},"$:/language/Buttons/FoldOthers/Hint":{"text":"Fold the bodies of other opened tiddlers"},"$:/language/Buttons/FoldAll/Caption":{"text":"fold all tiddlers"},"$:/language/Buttons/FoldAll/Hint":{"text":"Fold the bodies of all opened tiddlers"},"$:/language/Buttons/UnfoldAll/Caption":{"text":"unfold all tiddlers"},"$:/language/Buttons/UnfoldAll/Hint":{"text":"Unfold the bodies of all opened tiddlers"},"$:/language/Buttons/FullScreen/Caption":{"text":"full-screen"},"$:/language/Buttons/FullScreen/Hint":{"text":"Enter or leave full-screen mode"},"$:/language/Buttons/Help/Caption":{"text":"help"},"$:/language/Buttons/Help/Hint":{"text":"Show help panel"},"$:/language/Buttons/Import/Caption":{"text":"import"},"$:/language/Buttons/Import/Hint":{"text":"Import many types of file including text, image, TiddlyWiki or JSON"},"$:/language/Buttons/Info/Caption":{"text":"info"},"$:/language/Buttons/Info/Hint":{"text":"Show information for this tiddler"},"$:/language/Buttons/Home/Caption":{"text":"home"},"$:/language/Buttons/Home/Hint":{"text":"Open the default tiddlers"},"$:/language/Buttons/Language/Caption":{"text":"language"},"$:/language/Buttons/Language/Hint":{"text":"Choose the user interface language"},"$:/language/Buttons/Manager/Caption":{"text":"tiddler manager"},"$:/language/Buttons/Manager/Hint":{"text":"Open tiddler manager"},"$:/language/Buttons/More/Caption":{"text":"more"},"$:/language/Buttons/More/Hint":{"text":"More actions"},"$:/language/Buttons/NewHere/Caption":{"text":"new here"},"$:/language/Buttons/NewHere/Hint":{"text":"Create a new tiddler tagged with this one"},"$:/language/Buttons/NewJournal/Caption":{"text":"new journal"},"$:/language/Buttons/NewJournal/Hint":{"text":"Create a new journal tiddler"},"$:/language/Buttons/NewJournalHere/Caption":{"text":"new journal here"},"$:/language/Buttons/NewJournalHere/Hint":{"text":"Create a new journal tiddler tagged with this one"},"$:/language/Buttons/NewImage/Caption":{"text":"new image"},"$:/language/Buttons/NewImage/Hint":{"text":"Create a new image tiddler"},"$:/language/Buttons/NewMarkdown/Caption":{"text":"new Markdown tiddler"},"$:/language/Buttons/NewMarkdown/Hint":{"text":"Create a new Markdown tiddler"},"$:/language/Buttons/NewTiddler/Caption":{"text":"new tiddler"},"$:/language/Buttons/NewTiddler/Hint":{"text":"Create a new tiddler"},"$:/language/Buttons/OpenWindow/Caption":{"text":"open in new window"},"$:/language/Buttons/OpenWindow/Hint":{"text":"Open tiddler in new window"},"$:/language/Buttons/Palette/Caption":{"text":"palette"},"$:/language/Buttons/Palette/Hint":{"text":"Choose the colour palette"},"$:/language/Buttons/Permalink/Caption":{"text":"permalink"},"$:/language/Buttons/Permalink/Hint":{"text":"Set browser address bar to a direct link to this tiddler"},"$:/language/Buttons/Permaview/Caption":{"text":"permaview"},"$:/language/Buttons/Permaview/Hint":{"text":"Set browser address bar to a direct link to all the tiddlers in this story"},"$:/language/Buttons/Print/Caption":{"text":"print page"},"$:/language/Buttons/Print/Hint":{"text":"Print the current page"},"$:/language/Buttons/Refresh/Caption":{"text":"refresh"},"$:/language/Buttons/Refresh/Hint":{"text":"Perform a full refresh of the wiki"},"$:/language/Buttons/Save/Caption":{"text":"ok"},"$:/language/Buttons/Save/Hint":{"text":"Confirm changes to this tiddler"},"$:/language/Buttons/SaveWiki/Caption":{"text":"save changes"},"$:/language/Buttons/SaveWiki/Hint":{"text":"Save changes"},"$:/language/Buttons/StoryView/Caption":{"text":"storyview"},"$:/language/Buttons/StoryView/Hint":{"text":"Choose the story visualisation"},"$:/language/Buttons/HideSideBar/Caption":{"text":"hide sidebar"},"$:/language/Buttons/HideSideBar/Hint":{"text":"Hide sidebar"},"$:/language/Buttons/ShowSideBar/Caption":{"text":"show sidebar"},"$:/language/Buttons/ShowSideBar/Hint":{"text":"Show sidebar"},"$:/language/Buttons/TagManager/Caption":{"text":"tag manager"},"$:/language/Buttons/TagManager/Hint":{"text":"Open tag manager"},"$:/language/Buttons/Timestamp/Caption":{"text":"timestamps"},"$:/language/Buttons/Timestamp/Hint":{"text":"Choose whether modifications update timestamps"},"$:/language/Buttons/Timestamp/On/Caption":{"text":"timestamps are on"},"$:/language/Buttons/Timestamp/On/Hint":{"text":"Update timestamps when tiddlers are modified"},"$:/language/Buttons/Timestamp/Off/Caption":{"text":"timestamps are off"},"$:/language/Buttons/Timestamp/Off/Hint":{"text":"Don't update timestamps when tiddlers are modified"},"$:/language/Buttons/Theme/Caption":{"text":"theme"},"$:/language/Buttons/Theme/Hint":{"text":"Choose the display theme"},"$:/language/Buttons/Bold/Caption":{"text":"bold"},"$:/language/Buttons/Bold/Hint":{"text":"Apply bold formatting to selection"},"$:/language/Buttons/Clear/Caption":{"text":"clear"},"$:/language/Buttons/Clear/Hint":{"text":"Clear image to solid colour"},"$:/language/Buttons/EditorHeight/Caption":{"text":"editor height"},"$:/language/Buttons/EditorHeight/Caption/Auto":{"text":"Automatically adjust height to fit content"},"$:/language/Buttons/EditorHeight/Caption/Fixed":{"text":"Fixed height:"},"$:/language/Buttons/EditorHeight/Hint":{"text":"Choose the height of the text editor"},"$:/language/Buttons/Excise/Caption":{"text":"excise"},"$:/language/Buttons/Excise/Caption/Excise":{"text":"Perform excision"},"$:/language/Buttons/Excise/Caption/MacroName":{"text":"Macro name:"},"$:/language/Buttons/Excise/Caption/NewTitle":{"text":"Title of new tiddler:"},"$:/language/Buttons/Excise/Caption/Replace":{"text":"Replace excised text with:"},"$:/language/Buttons/Excise/Caption/Replace/Macro":{"text":"macro"},"$:/language/Buttons/Excise/Caption/Replace/Link":{"text":"link"},"$:/language/Buttons/Excise/Caption/Replace/Transclusion":{"text":"transclusion"},"$:/language/Buttons/Excise/Caption/Tag":{"text":"Tag new tiddler with the title of this tiddler"},"$:/language/Buttons/Excise/Caption/TiddlerExists":{"text":"Warning: tiddler already exists"},"$:/language/Buttons/Excise/Hint":{"text":"Excise the selected text into a new tiddler"},"$:/language/Buttons/Heading1/Caption":{"text":"heading 1"},"$:/language/Buttons/Heading1/Hint":{"text":"Apply heading level 1 formatting to lines containing selection"},"$:/language/Buttons/Heading2/Caption":{"text":"heading 2"},"$:/language/Buttons/Heading2/Hint":{"text":"Apply heading level 2 formatting to lines containing selection"},"$:/language/Buttons/Heading3/Caption":{"text":"heading 3"},"$:/language/Buttons/Heading3/Hint":{"text":"Apply heading level 3 formatting to lines containing selection"},"$:/language/Buttons/Heading4/Caption":{"text":"heading 4"},"$:/language/Buttons/Heading4/Hint":{"text":"Apply heading level 4 formatting to lines containing selection"},"$:/language/Buttons/Heading5/Caption":{"text":"heading 5"},"$:/language/Buttons/Heading5/Hint":{"text":"Apply heading level 5 formatting to lines containing selection"},"$:/language/Buttons/Heading6/Caption":{"text":"heading 6"},"$:/language/Buttons/Heading6/Hint":{"text":"Apply heading level 6 formatting to lines containing selection"},"$:/language/Buttons/Italic/Caption":{"text":"italic"},"$:/language/Buttons/Italic/Hint":{"text":"Apply italic formatting to selection"},"$:/language/Buttons/LineWidth/Caption":{"text":"line width"},"$:/language/Buttons/LineWidth/Hint":{"text":"Set line width for painting"},"$:/language/Buttons/Link/Caption":{"text":"link"},"$:/language/Buttons/Link/Hint":{"text":"Create wikitext link"},"$:/language/Buttons/Linkify/Caption":{"text":"wikilink"},"$:/language/Buttons/Linkify/Hint":{"text":"Wrap selection in square brackets"},"$:/language/Buttons/ListBullet/Caption":{"text":"bulleted list"},"$:/language/Buttons/ListBullet/Hint":{"text":"Apply bulleted list formatting to lines containing selection"},"$:/language/Buttons/ListNumber/Caption":{"text":"numbered list"},"$:/language/Buttons/ListNumber/Hint":{"text":"Apply numbered list formatting to lines containing selection"},"$:/language/Buttons/MonoBlock/Caption":{"text":"monospaced block"},"$:/language/Buttons/MonoBlock/Hint":{"text":"Apply monospaced block formatting to lines containing selection"},"$:/language/Buttons/MonoLine/Caption":{"text":"monospaced"},"$:/language/Buttons/MonoLine/Hint":{"text":"Apply monospaced character formatting to selection"},"$:/language/Buttons/Opacity/Caption":{"text":"opacity"},"$:/language/Buttons/Opacity/Hint":{"text":"Set painting opacity"},"$:/language/Buttons/Paint/Caption":{"text":"paint colour"},"$:/language/Buttons/Paint/Hint":{"text":"Set painting colour"},"$:/language/Buttons/Picture/Caption":{"text":"picture"},"$:/language/Buttons/Picture/Hint":{"text":"Insert picture"},"$:/language/Buttons/Preview/Caption":{"text":"preview"},"$:/language/Buttons/Preview/Hint":{"text":"Show preview pane"},"$:/language/Buttons/PreviewType/Caption":{"text":"preview type"},"$:/language/Buttons/PreviewType/Hint":{"text":"Choose preview type"},"$:/language/Buttons/Quote/Caption":{"text":"quote"},"$:/language/Buttons/Quote/Hint":{"text":"Apply quoted text formatting to lines containing selection"},"$:/language/Buttons/RotateLeft/Caption":{"text":"rotate left"},"$:/language/Buttons/RotateLeft/Hint":{"text":"Rotate image left by 90 degrees"},"$:/language/Buttons/Size/Caption":{"text":"image size"},"$:/language/Buttons/Size/Caption/Height":{"text":"Height:"},"$:/language/Buttons/Size/Caption/Resize":{"text":"Resize image"},"$:/language/Buttons/Size/Caption/Width":{"text":"Width:"},"$:/language/Buttons/Size/Hint":{"text":"Set image size"},"$:/language/Buttons/Stamp/Caption":{"text":"stamp"},"$:/language/Buttons/Stamp/Caption/New":{"text":"Add your own"},"$:/language/Buttons/Stamp/Hint":{"text":"Insert a preconfigured snippet of text"},"$:/language/Buttons/Stamp/New/Title":{"text":"Name as shown in menu"},"$:/language/Buttons/Stamp/New/Text":{"text":"Text of snippet. (Remember to add a descriptive title in the caption field)."},"$:/language/Buttons/Strikethrough/Caption":{"text":"strikethrough"},"$:/language/Buttons/Strikethrough/Hint":{"text":"Apply strikethrough formatting to selection"},"$:/language/Buttons/Subscript/Caption":{"text":"subscript"},"$:/language/Buttons/Subscript/Hint":{"text":"Apply subscript formatting to selection"},"$:/language/Buttons/Superscript/Caption":{"text":"superscript"},"$:/language/Buttons/Superscript/Hint":{"text":"Apply superscript formatting to selection"},"$:/language/Buttons/ToggleSidebar/Hint":{"text":"Toggle the sidebar visibility"},"$:/language/Buttons/Transcludify/Caption":{"text":"transclusion"},"$:/language/Buttons/Transcludify/Hint":{"text":"Wrap selection in curly brackets"},"$:/language/Buttons/Underline/Caption":{"text":"underline"},"$:/language/Buttons/Underline/Hint":{"text":"Apply underline formatting to selection"},"$:/language/ControlPanel/Advanced/Caption":{"text":"Advanced"},"$:/language/ControlPanel/Advanced/Hint":{"text":"Internal information about this TiddlyWiki"},"$:/language/ControlPanel/Appearance/Caption":{"text":"Appearance"},"$:/language/ControlPanel/Appearance/Hint":{"text":"Ways to customise the appearance of your TiddlyWiki."},"$:/language/ControlPanel/Basics/AnimDuration/Prompt":{"text":"Animation duration"},"$:/language/ControlPanel/Basics/AutoFocus/Prompt":{"text":"Default focus field for new tiddlers"},"$:/language/ControlPanel/Basics/Caption":{"text":"Basics"},"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint":{"text":"Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"},"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt":{"text":"Default tiddlers"},"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint":{"text":"Choose which tiddlers are displayed at startup"},"$:/language/ControlPanel/Basics/Language/Prompt":{"text":"Hello! Current language:"},"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt":{"text":"Title of new journal tiddlers"},"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt":{"text":"Text for new journal tiddlers"},"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt":{"text":"Tags for new journal tiddlers"},"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt":{"text":"Title of new tiddlers"},"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt":{"text":"Tags for new tiddlers"},"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt":{"text":"Number of overridden shadow tiddlers"},"$:/language/ControlPanel/Basics/RemoveTags":{"text":"Update to current format"},"$:/language/ControlPanel/Basics/RemoveTags/Hint":{"text":"Update the tags configuration to the latest format"},"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt":{"text":"Number of shadow tiddlers"},"$:/language/ControlPanel/Basics/Subtitle/Prompt":{"text":"Subtitle"},"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt":{"text":"Number of system tiddlers"},"$:/language/ControlPanel/Basics/Tags/Prompt":{"text":"Number of tags"},"$:/language/ControlPanel/Basics/Tiddlers/Prompt":{"text":"Number of tiddlers"},"$:/language/ControlPanel/Basics/Title/Prompt":{"text":"Title of this ~TiddlyWiki"},"$:/language/ControlPanel/Basics/Username/Prompt":{"text":"Username for signing edits"},"$:/language/ControlPanel/Basics/Version/Prompt":{"text":"~TiddlyWiki version"},"$:/language/ControlPanel/EditorTypes/Caption":{"text":"Editor Types"},"$:/language/ControlPanel/EditorTypes/Editor/Caption":{"text":"Editor"},"$:/language/ControlPanel/EditorTypes/Hint":{"text":"These tiddlers determine which editor is used to edit specific tiddler types."},"$:/language/ControlPanel/EditorTypes/Type/Caption":{"text":"Type"},"$:/language/ControlPanel/Info/Caption":{"text":"Info"},"$:/language/ControlPanel/Info/Hint":{"text":"Information about this TiddlyWiki"},"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt":{"text":"Type shortcut here"},"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption":{"text":"add shortcut"},"$:/language/ControlPanel/KeyboardShortcuts/Caption":{"text":"Keyboard Shortcuts"},"$:/language/ControlPanel/KeyboardShortcuts/Hint":{"text":"Manage keyboard shortcut assignments"},"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption":{"text":"No keyboard shortcuts assigned"},"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint":{"text":"remove keyboard shortcut"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/All":{"text":"All platforms"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac":{"text":"Macintosh platform only"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac":{"text":"Non-Macintosh platforms only"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux":{"text":"Linux platform only"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux":{"text":"Non-Linux platforms only"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows":{"text":"Windows platform only"},"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows":{"text":"Non-Windows platforms only"},"$:/language/ControlPanel/LayoutSwitcher/Caption":{"text":"Layout"},"$:/language/ControlPanel/LoadedModules/Caption":{"text":"Loaded Modules"},"$:/language/ControlPanel/LoadedModules/Hint":{"text":"These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."},"$:/language/ControlPanel/Palette/Caption":{"text":"Palette"},"$:/language/ControlPanel/Palette/Editor/Clone/Caption":{"text":"clone"},"$:/language/ControlPanel/Palette/Editor/Clone/Prompt":{"text":"It is recommended that you clone this shadow palette before editing it"},"$:/language/ControlPanel/Palette/Editor/Delete/Hint":{"text":"delete this entry from the current palette"},"$:/language/ControlPanel/Palette/Editor/Names/External/Show":{"text":"Show color names that are not part of the current palette"},"$:/language/ControlPanel/Palette/Editor/Prompt/Modified":{"text":"This shadow palette has been modified"},"$:/language/ControlPanel/Palette/Editor/Prompt":{"text":"Editing"},"$:/language/ControlPanel/Palette/Editor/Reset/Caption":{"text":"reset"},"$:/language/ControlPanel/Palette/HideEditor/Caption":{"text":"hide editor"},"$:/language/ControlPanel/Palette/Prompt":{"text":"Current palette:"},"$:/language/ControlPanel/Palette/ShowEditor/Caption":{"text":"show editor"},"$:/language/ControlPanel/Parsing/Caption":{"text":"Parsing"},"$:/language/ControlPanel/Parsing/Hint":{"text":"Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."},"$:/language/ControlPanel/Parsing/Block/Caption":{"text":"Block Parse Rules"},"$:/language/ControlPanel/Parsing/Inline/Caption":{"text":"Inline Parse Rules"},"$:/language/ControlPanel/Parsing/Pragma/Caption":{"text":"Pragma Parse Rules"},"$:/language/ControlPanel/Plugins/Add/Caption":{"text":"Get more plugins"},"$:/language/ControlPanel/Plugins/Add/Hint":{"text":"Install plugins from the official library"},"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint":{"text":"This plugin is already installed at version <$text text=<<installedVersion>>/>"},"$:/language/ControlPanel/Plugins/AlsoRequires":{"text":"Also requires:"},"$:/language/ControlPanel/Plugins/Caption":{"text":"Plugins"},"$:/language/ControlPanel/Plugins/Disable/Caption":{"text":"disable"},"$:/language/ControlPanel/Plugins/Disable/Hint":{"text":"Disable this plugin when reloading page"},"$:/language/ControlPanel/Plugins/Disabled/Status":{"text":"(disabled)"},"$:/language/ControlPanel/Plugins/Downgrade/Caption":{"text":"downgrade"},"$:/language/ControlPanel/Plugins/Empty/Hint":{"text":"None"},"$:/language/ControlPanel/Plugins/Enable/Caption":{"text":"enable"},"$:/language/ControlPanel/Plugins/Enable/Hint":{"text":"Enable this plugin when reloading page"},"$:/language/ControlPanel/Plugins/Install/Caption":{"text":"install"},"$:/language/ControlPanel/Plugins/Installed/Hint":{"text":"Currently installed plugins:"},"$:/language/ControlPanel/Plugins/Languages/Caption":{"text":"Languages"},"$:/language/ControlPanel/Plugins/Languages/Hint":{"text":"Language pack plugins"},"$:/language/ControlPanel/Plugins/NoInfoFound/Hint":{"text":"No ''\"<$text text=<<currentTab>>/>\"'' found"},"$:/language/ControlPanel/Plugins/NotInstalled/Hint":{"text":"This plugin is not currently installed"},"$:/language/ControlPanel/Plugins/OpenPluginLibrary":{"text":"open plugin library"},"$:/language/ControlPanel/Plugins/ClosePluginLibrary":{"text":"close plugin library"},"$:/language/ControlPanel/Plugins/PluginWillRequireReload":{"text":"(requires reload)"},"$:/language/ControlPanel/Plugins/Plugins/Caption":{"text":"Plugins"},"$:/language/ControlPanel/Plugins/Plugins/Hint":{"text":"Plugins"},"$:/language/ControlPanel/Plugins/Reinstall/Caption":{"text":"reinstall"},"$:/language/ControlPanel/Plugins/Themes/Caption":{"text":"Themes"},"$:/language/ControlPanel/Plugins/Themes/Hint":{"text":"Theme plugins"},"$:/language/ControlPanel/Plugins/Update/Caption":{"text":"update"},"$:/language/ControlPanel/Plugins/Updates/Caption":{"text":"Updates"},"$:/language/ControlPanel/Plugins/Updates/Hint":{"text":"Available updates to installed plugins"},"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption":{"text":"Update <<update-count>> plugins"},"$:/language/ControlPanel/Plugins/SubPluginPrompt":{"text":"With <<count>> sub-plugins available"},"$:/language/ControlPanel/Saving/Caption":{"text":"Saving"},"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description":{"text":"Permit automatic saving for the download saver"},"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint":{"text":"Enable Autosave for Download Saver"},"$:/language/ControlPanel/Saving/DownloadSaver/Caption":{"text":"Download Saver"},"$:/language/ControlPanel/Saving/DownloadSaver/Hint":{"text":"These settings apply to the HTML5-compatible download saver"},"$:/language/ControlPanel/Saving/General/Caption":{"text":"General"},"$:/language/ControlPanel/Saving/General/Hint":{"text":"These settings apply to all the loaded savers"},"$:/language/ControlPanel/Saving/Hint":{"text":"Settings used for saving the entire TiddlyWiki as a single file via a saver module"},"$:/language/ControlPanel/Saving/GitService/Branch":{"text":"Target branch for saving"},"$:/language/ControlPanel/Saving/GitService/CommitMessage":{"text":"Saved by TiddlyWiki"},"$:/language/ControlPanel/Saving/GitService/Description":{"text":"These settings are only used when saving to <<service-name>>"},"$:/language/ControlPanel/Saving/GitService/Filename":{"text":"Filename of target file (e.g. `index.html`)"},"$:/language/ControlPanel/Saving/GitService/Path":{"text":"Path to target file (e.g. `/wiki/`)"},"$:/language/ControlPanel/Saving/GitService/Repo":{"text":"Target repository (e.g. `Jermolene/TiddlyWiki5`)"},"$:/language/ControlPanel/Saving/GitService/ServerURL":{"text":"Server API URL"},"$:/language/ControlPanel/Saving/GitService/UserName":{"text":"Username"},"$:/language/ControlPanel/Saving/GitService/GitHub/Caption":{"text":"~GitHub Saver"},"$:/language/ControlPanel/Saving/GitService/GitHub/Password":{"text":"Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"},"$:/language/ControlPanel/Saving/GitService/GitLab/Caption":{"text":"~GitLab Saver"},"$:/language/ControlPanel/Saving/GitService/GitLab/Password":{"text":"Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"},"$:/language/ControlPanel/Saving/GitService/Gitea/Caption":{"text":"Gitea Saver"},"$:/language/ControlPanel/Saving/GitService/Gitea/Password":{"text":"Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"},"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading":{"text":"Advanced Settings"},"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir":{"text":"Backup Directory"},"$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel":{"text":"~TiddlySpot Control Panel"},"$:/language/ControlPanel/Saving/TiddlySpot/Backups":{"text":"Backups"},"$:/language/ControlPanel/Saving/TiddlySpot/Caption":{"text":"~TiddlySpot Saver"},"$:/language/ControlPanel/Saving/TiddlySpot/Description":{"text":"These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"},"$:/language/ControlPanel/Saving/TiddlySpot/Filename":{"text":"Upload Filename"},"$:/language/ControlPanel/Saving/TiddlySpot/Heading":{"text":"~TiddlySpot"},"$:/language/ControlPanel/Saving/TiddlySpot/Hint":{"text":"//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"},"$:/language/ControlPanel/Saving/TiddlySpot/Password":{"text":"Password"},"$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly":{"text":"The ~TiddlySpot service is currently only available in read-only form. Please see http://tiddlyspot.com/ for the latest details. The ~TiddlySpot saver can still be used to save to compatible servers."},"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL":{"text":"Server URL"},"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir":{"text":"Upload Directory"},"$:/language/ControlPanel/Saving/TiddlySpot/UserName":{"text":"Wiki Name"},"$:/language/ControlPanel/Settings/AutoSave/Caption":{"text":"Autosave"},"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description":{"text":"Do not save changes automatically"},"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description":{"text":"Save changes automatically"},"$:/language/ControlPanel/Settings/AutoSave/Hint":{"text":"Attempt to automatically save changes during editing when using a supporting saver"},"$:/language/ControlPanel/Settings/CamelCase/Caption":{"text":"Camel Case Wiki Links"},"$:/language/ControlPanel/Settings/CamelCase/Hint":{"text":"You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"},"$:/language/ControlPanel/Settings/CamelCase/Description":{"text":"Enable automatic ~CamelCase linking"},"$:/language/ControlPanel/Settings/Caption":{"text":"Settings"},"$:/language/ControlPanel/Settings/EditorToolbar/Caption":{"text":"Editor Toolbar"},"$:/language/ControlPanel/Settings/EditorToolbar/Hint":{"text":"Enable or disable the editor toolbar:"},"$:/language/ControlPanel/Settings/EditorToolbar/Description":{"text":"Show editor toolbar"},"$:/language/ControlPanel/Settings/InfoPanelMode/Caption":{"text":"Tiddler Info Panel Mode"},"$:/language/ControlPanel/Settings/InfoPanelMode/Hint":{"text":"Control when the tiddler info panel closes:"},"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description":{"text":"Tiddler info panel closes automatically"},"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description":{"text":"Tiddler info panel stays open until explicitly closed"},"$:/language/ControlPanel/Settings/Hint":{"text":"These settings let you customise the behaviour of TiddlyWiki."},"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption":{"text":"Navigation Address Bar"},"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint":{"text":"Behaviour of the browser address bar when navigating to a tiddler:"},"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description":{"text":"Do not update the address bar"},"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description":{"text":"Include the target tiddler"},"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description":{"text":"Include the target tiddler and the current story sequence"},"$:/language/ControlPanel/Settings/NavigationHistory/Caption":{"text":"Navigation History"},"$:/language/ControlPanel/Settings/NavigationHistory/Hint":{"text":"Update browser history when navigating to a tiddler:"},"$:/language/ControlPanel/Settings/NavigationHistory/No/Description":{"text":"Do not update history"},"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description":{"text":"Update history"},"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption":{"text":"Permalink/permaview Mode"},"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint":{"text":"Choose how permalink/permaview is handled:"},"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description":{"text":"Copy permalink/permaview URL to clipboard"},"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description":{"text":"Update address bar with permalink/permaview URL"},"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption":{"text":"Performance Instrumentation"},"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint":{"text":"Displays performance statistics in the browser developer console. Requires reload to take effect"},"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description":{"text":"Enable performance instrumentation"},"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption":{"text":"Toolbar Button Style"},"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint":{"text":"Choose the style for toolbar buttons:"},"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless":{"text":"Borderless"},"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed":{"text":"Boxed"},"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded":{"text":"Rounded"},"$:/language/ControlPanel/Settings/ToolbarButtons/Caption":{"text":"Toolbar Buttons"},"$:/language/ControlPanel/Settings/ToolbarButtons/Hint":{"text":"Default toolbar button appearance:"},"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description":{"text":"Include icon"},"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description":{"text":"Include text"},"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption":{"text":"Default Sidebar Tab"},"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint":{"text":"Specify which sidebar tab is displayed by default"},"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption":{"text":"Default More Sidebar Tab"},"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint":{"text":"Specify which More sidebar tab is displayed by default"},"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption":{"text":"Tiddler Opening Behaviour"},"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint":{"text":"Navigation from //within// the story river"},"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint":{"text":"Navigation from //outside// the story river"},"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove":{"text":"Open above the current tiddler"},"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow":{"text":"Open below the current tiddler"},"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop":{"text":"Open at the top of the story river"},"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom":{"text":"Open at the bottom of the story river"},"$:/language/ControlPanel/Settings/TitleLinks/Caption":{"text":"Tiddler Titles"},"$:/language/ControlPanel/Settings/TitleLinks/Hint":{"text":"Optionally display tiddler titles as links"},"$:/language/ControlPanel/Settings/TitleLinks/No/Description":{"text":"Do not display tiddler titles as links"},"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description":{"text":"Display tiddler titles as links"},"$:/language/ControlPanel/Settings/MissingLinks/Caption":{"text":"Wiki Links"},"$:/language/ControlPanel/Settings/MissingLinks/Hint":{"text":"Choose whether to link to tiddlers that do not exist yet"},"$:/language/ControlPanel/Settings/MissingLinks/Description":{"text":"Enable links to missing tiddlers"},"$:/language/ControlPanel/StoryView/Caption":{"text":"Story View"},"$:/language/ControlPanel/StoryView/Prompt":{"text":"Current view:"},"$:/language/ControlPanel/Stylesheets/Caption":{"text":"Stylesheets"},"$:/language/ControlPanel/Stylesheets/Expand/Caption":{"text":"Expand All"},"$:/language/ControlPanel/Stylesheets/Hint":{"text":"This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"},"$:/language/ControlPanel/Stylesheets/Restore/Caption":{"text":"Restore"},"$:/language/ControlPanel/Theme/Caption":{"text":"Theme"},"$:/language/ControlPanel/Theme/Prompt":{"text":"Current theme:"},"$:/language/ControlPanel/TiddlerFields/Caption":{"text":"Tiddler Fields"},"$:/language/ControlPanel/TiddlerFields/Hint":{"text":"This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."},"$:/language/ControlPanel/Toolbars/Caption":{"text":"Toolbars"},"$:/language/ControlPanel/Toolbars/EditToolbar/Caption":{"text":"Edit Toolbar"},"$:/language/ControlPanel/Toolbars/EditToolbar/Hint":{"text":"Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"},"$:/language/ControlPanel/Toolbars/Hint":{"text":"Select which toolbar buttons are displayed"},"$:/language/ControlPanel/Toolbars/PageControls/Caption":{"text":"Page Toolbar"},"$:/language/ControlPanel/Toolbars/PageControls/Hint":{"text":"Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"},"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption":{"text":"Editor Toolbar"},"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint":{"text":"Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"},"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption":{"text":"View Toolbar"},"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint":{"text":"Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"},"$:/language/ControlPanel/Tools/Download/Full/Caption":{"text":"Download full wiki"},"$:/language/Date/DaySuffix/1":{"text":"st"},"$:/language/Date/DaySuffix/2":{"text":"nd"},"$:/language/Date/DaySuffix/3":{"text":"rd"},"$:/language/Date/DaySuffix/4":{"text":"th"},"$:/language/Date/DaySuffix/5":{"text":"th"},"$:/language/Date/DaySuffix/6":{"text":"th"},"$:/language/Date/DaySuffix/7":{"text":"th"},"$:/language/Date/DaySuffix/8":{"text":"th"},"$:/language/Date/DaySuffix/9":{"text":"th"},"$:/language/Date/DaySuffix/10":{"text":"th"},"$:/language/Date/DaySuffix/11":{"text":"th"},"$:/language/Date/DaySuffix/12":{"text":"th"},"$:/language/Date/DaySuffix/13":{"text":"th"},"$:/language/Date/DaySuffix/14":{"text":"th"},"$:/language/Date/DaySuffix/15":{"text":"th"},"$:/language/Date/DaySuffix/16":{"text":"th"},"$:/language/Date/DaySuffix/17":{"text":"th"},"$:/language/Date/DaySuffix/18":{"text":"th"},"$:/language/Date/DaySuffix/19":{"text":"th"},"$:/language/Date/DaySuffix/20":{"text":"th"},"$:/language/Date/DaySuffix/21":{"text":"st"},"$:/language/Date/DaySuffix/22":{"text":"nd"},"$:/language/Date/DaySuffix/23":{"text":"rd"},"$:/language/Date/DaySuffix/24":{"text":"th"},"$:/language/Date/DaySuffix/25":{"text":"th"},"$:/language/Date/DaySuffix/26":{"text":"th"},"$:/language/Date/DaySuffix/27":{"text":"th"},"$:/language/Date/DaySuffix/28":{"text":"th"},"$:/language/Date/DaySuffix/29":{"text":"th"},"$:/language/Date/DaySuffix/30":{"text":"th"},"$:/language/Date/DaySuffix/31":{"text":"st"},"$:/language/Date/Long/Day/0":{"text":"Sunday"},"$:/language/Date/Long/Day/1":{"text":"Monday"},"$:/language/Date/Long/Day/2":{"text":"Tuesday"},"$:/language/Date/Long/Day/3":{"text":"Wednesday"},"$:/language/Date/Long/Day/4":{"text":"Thursday"},"$:/language/Date/Long/Day/5":{"text":"Friday"},"$:/language/Date/Long/Day/6":{"text":"Saturday"},"$:/language/Date/Long/Month/1":{"text":"January"},"$:/language/Date/Long/Month/2":{"text":"February"},"$:/language/Date/Long/Month/3":{"text":"March"},"$:/language/Date/Long/Month/4":{"text":"April"},"$:/language/Date/Long/Month/5":{"text":"May"},"$:/language/Date/Long/Month/6":{"text":"June"},"$:/language/Date/Long/Month/7":{"text":"July"},"$:/language/Date/Long/Month/8":{"text":"August"},"$:/language/Date/Long/Month/9":{"text":"September"},"$:/language/Date/Long/Month/10":{"text":"October"},"$:/language/Date/Long/Month/11":{"text":"November"},"$:/language/Date/Long/Month/12":{"text":"December"},"$:/language/Date/Period/am":{"text":"am"},"$:/language/Date/Period/pm":{"text":"pm"},"$:/language/Date/Short/Day/0":{"text":"Sun"},"$:/language/Date/Short/Day/1":{"text":"Mon"},"$:/language/Date/Short/Day/2":{"text":"Tue"},"$:/language/Date/Short/Day/3":{"text":"Wed"},"$:/language/Date/Short/Day/4":{"text":"Thu"},"$:/language/Date/Short/Day/5":{"text":"Fri"},"$:/language/Date/Short/Day/6":{"text":"Sat"},"$:/language/Date/Short/Month/1":{"text":"Jan"},"$:/language/Date/Short/Month/2":{"text":"Feb"},"$:/language/Date/Short/Month/3":{"text":"Mar"},"$:/language/Date/Short/Month/4":{"text":"Apr"},"$:/language/Date/Short/Month/5":{"text":"May"},"$:/language/Date/Short/Month/6":{"text":"Jun"},"$:/language/Date/Short/Month/7":{"text":"Jul"},"$:/language/Date/Short/Month/8":{"text":"Aug"},"$:/language/Date/Short/Month/9":{"text":"Sep"},"$:/language/Date/Short/Month/10":{"text":"Oct"},"$:/language/Date/Short/Month/11":{"text":"Nov"},"$:/language/Date/Short/Month/12":{"text":"Dec"},"$:/language/RelativeDate/Future/Days":{"text":"<<period>> days from now"},"$:/language/RelativeDate/Future/Hours":{"text":"<<period>> hours from now"},"$:/language/RelativeDate/Future/Minutes":{"text":"<<period>> minutes from now"},"$:/language/RelativeDate/Future/Months":{"text":"<<period>> months from now"},"$:/language/RelativeDate/Future/Second":{"text":"1 second from now"},"$:/language/RelativeDate/Future/Seconds":{"text":"<<period>> seconds from now"},"$:/language/RelativeDate/Future/Years":{"text":"<<period>> years from now"},"$:/language/RelativeDate/Past/Days":{"text":"<<period>> days ago"},"$:/language/RelativeDate/Past/Hours":{"text":"<<period>> hours ago"},"$:/language/RelativeDate/Past/Minutes":{"text":"<<period>> minutes ago"},"$:/language/RelativeDate/Past/Months":{"text":"<<period>> months ago"},"$:/language/RelativeDate/Past/Second":{"text":"1 second ago"},"$:/language/RelativeDate/Past/Seconds":{"text":"<<period>> seconds ago"},"$:/language/RelativeDate/Past/Years":{"text":"<<period>> years ago"},"$:/language/Docs/ModuleTypes/allfilteroperator":{"text":"A sub-operator for the ''all'' filter operator."},"$:/language/Docs/ModuleTypes/animation":{"text":"Animations that may be used with the RevealWidget."},"$:/language/Docs/ModuleTypes/authenticator":{"text":"Defines how requests are authenticated by the built-in HTTP server."},"$:/language/Docs/ModuleTypes/bitmapeditoroperation":{"text":"A bitmap editor toolbar operation."},"$:/language/Docs/ModuleTypes/command":{"text":"Commands that can be executed under Node.js."},"$:/language/Docs/ModuleTypes/config":{"text":"Data to be inserted into `$tw.config`."},"$:/language/Docs/ModuleTypes/filteroperator":{"text":"Individual filter operator methods."},"$:/language/Docs/ModuleTypes/global":{"text":"Global data to be inserted into `$tw`."},"$:/language/Docs/ModuleTypes/info":{"text":"Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."},"$:/language/Docs/ModuleTypes/isfilteroperator":{"text":"Operands for the ''is'' filter operator."},"$:/language/Docs/ModuleTypes/library":{"text":"Generic module type for general purpose JavaScript modules."},"$:/language/Docs/ModuleTypes/macro":{"text":"JavaScript macro definitions."},"$:/language/Docs/ModuleTypes/parser":{"text":"Parsers for different content types."},"$:/language/Docs/ModuleTypes/route":{"text":"Defines how individual URL patterns are handled by the built-in HTTP server."},"$:/language/Docs/ModuleTypes/saver":{"text":"Savers handle different methods for saving files from the browser."},"$:/language/Docs/ModuleTypes/startup":{"text":"Startup functions."},"$:/language/Docs/ModuleTypes/storyview":{"text":"Story views customise the animation and behaviour of list widgets."},"$:/language/Docs/ModuleTypes/texteditoroperation":{"text":"A text editor toolbar operation."},"$:/language/Docs/ModuleTypes/tiddlerdeserializer":{"text":"Converts different content types into tiddlers."},"$:/language/Docs/ModuleTypes/tiddlerfield":{"text":"Defines the behaviour of an individual tiddler field."},"$:/language/Docs/ModuleTypes/tiddlermethod":{"text":"Adds methods to the `$tw.Tiddler` prototype."},"$:/language/Docs/ModuleTypes/upgrader":{"text":"Applies upgrade processing to tiddlers during an upgrade/import."},"$:/language/Docs/ModuleTypes/utils":{"text":"Adds methods to `$tw.utils`."},"$:/language/Docs/ModuleTypes/utils-browser":{"text":"Adds browser-specific methods to `$tw.utils`."},"$:/language/Docs/ModuleTypes/utils-node":{"text":"Adds Node.js-specific methods to `$tw.utils`."},"$:/language/Docs/ModuleTypes/widget":{"text":"Widgets encapsulate DOM rendering and refreshing."},"$:/language/Docs/ModuleTypes/wikimethod":{"text":"Adds methods to `$tw.Wiki`."},"$:/language/Docs/ModuleTypes/wikirule":{"text":"Individual parser rules for the main WikiText parser."},"$:/language/Docs/PaletteColours/alert-background":{"text":"Alert background"},"$:/language/Docs/PaletteColours/alert-border":{"text":"Alert border"},"$:/language/Docs/PaletteColours/alert-highlight":{"text":"Alert highlight"},"$:/language/Docs/PaletteColours/alert-muted-foreground":{"text":"Alert muted foreground"},"$:/language/Docs/PaletteColours/background":{"text":"General background"},"$:/language/Docs/PaletteColours/blockquote-bar":{"text":"Blockquote bar"},"$:/language/Docs/PaletteColours/button-background":{"text":"Default button background"},"$:/language/Docs/PaletteColours/button-border":{"text":"Default button border"},"$:/language/Docs/PaletteColours/button-foreground":{"text":"Default button foreground"},"$:/language/Docs/PaletteColours/dirty-indicator":{"text":"Unsaved changes indicator"},"$:/language/Docs/PaletteColours/code-background":{"text":"Code background"},"$:/language/Docs/PaletteColours/code-border":{"text":"Code border"},"$:/language/Docs/PaletteColours/code-foreground":{"text":"Code foreground"},"$:/language/Docs/PaletteColours/download-background":{"text":"Download button background"},"$:/language/Docs/PaletteColours/download-foreground":{"text":"Download button foreground"},"$:/language/Docs/PaletteColours/dragger-background":{"text":"Dragger background"},"$:/language/Docs/PaletteColours/dragger-foreground":{"text":"Dragger foreground"},"$:/language/Docs/PaletteColours/dropdown-background":{"text":"Dropdown background"},"$:/language/Docs/PaletteColours/dropdown-border":{"text":"Dropdown border"},"$:/language/Docs/PaletteColours/dropdown-tab-background-selected":{"text":"Dropdown tab background for selected tabs"},"$:/language/Docs/PaletteColours/dropdown-tab-background":{"text":"Dropdown tab background"},"$:/language/Docs/PaletteColours/dropzone-background":{"text":"Dropzone background"},"$:/language/Docs/PaletteColours/external-link-background-hover":{"text":"External link background hover"},"$:/language/Docs/PaletteColours/external-link-background-visited":{"text":"External link background visited"},"$:/language/Docs/PaletteColours/external-link-background":{"text":"External link background"},"$:/language/Docs/PaletteColours/external-link-foreground-hover":{"text":"External link foreground hover"},"$:/language/Docs/PaletteColours/external-link-foreground-visited":{"text":"External link foreground visited"},"$:/language/Docs/PaletteColours/external-link-foreground":{"text":"External link foreground"},"$:/language/Docs/PaletteColours/foreground":{"text":"General foreground"},"$:/language/Docs/PaletteColours/menubar-background":{"text":"Menu bar background"},"$:/language/Docs/PaletteColours/menubar-foreground":{"text":"Menu bar foreground"},"$:/language/Docs/PaletteColours/message-background":{"text":"Message box background"},"$:/language/Docs/PaletteColours/message-border":{"text":"Message box border"},"$:/language/Docs/PaletteColours/message-foreground":{"text":"Message box foreground"},"$:/language/Docs/PaletteColours/modal-backdrop":{"text":"Modal backdrop"},"$:/language/Docs/PaletteColours/modal-background":{"text":"Modal background"},"$:/language/Docs/PaletteColours/modal-border":{"text":"Modal border"},"$:/language/Docs/PaletteColours/modal-footer-background":{"text":"Modal footer background"},"$:/language/Docs/PaletteColours/modal-footer-border":{"text":"Modal footer border"},"$:/language/Docs/PaletteColours/modal-header-border":{"text":"Modal header border"},"$:/language/Docs/PaletteColours/muted-foreground":{"text":"General muted foreground"},"$:/language/Docs/PaletteColours/notification-background":{"text":"Notification background"},"$:/language/Docs/PaletteColours/notification-border":{"text":"Notification border"},"$:/language/Docs/PaletteColours/page-background":{"text":"Page background"},"$:/language/Docs/PaletteColours/pre-background":{"text":"Preformatted code background"},"$:/language/Docs/PaletteColours/pre-border":{"text":"Preformatted code border"},"$:/language/Docs/PaletteColours/primary":{"text":"General primary"},"$:/language/Docs/PaletteColours/select-tag-background":{"text":"`<select>` element background"},"$:/language/Docs/PaletteColours/select-tag-foreground":{"text":"`<select>` element text"},"$:/language/Docs/PaletteColours/sidebar-button-foreground":{"text":"Sidebar button foreground"},"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover":{"text":"Sidebar controls foreground hover"},"$:/language/Docs/PaletteColours/sidebar-controls-foreground":{"text":"Sidebar controls foreground"},"$:/language/Docs/PaletteColours/sidebar-foreground-shadow":{"text":"Sidebar foreground shadow"},"$:/language/Docs/PaletteColours/sidebar-foreground":{"text":"Sidebar foreground"},"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover":{"text":"Sidebar muted foreground hover"},"$:/language/Docs/PaletteColours/sidebar-muted-foreground":{"text":"Sidebar muted foreground"},"$:/language/Docs/PaletteColours/sidebar-tab-background-selected":{"text":"Sidebar tab background for selected tabs"},"$:/language/Docs/PaletteColours/sidebar-tab-background":{"text":"Sidebar tab background"},"$:/language/Docs/PaletteColours/sidebar-tab-border-selected":{"text":"Sidebar tab border for selected tabs"},"$:/language/Docs/PaletteColours/sidebar-tab-border":{"text":"Sidebar tab border"},"$:/language/Docs/PaletteColours/sidebar-tab-divider":{"text":"Sidebar tab divider"},"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected":{"text":"Sidebar tab foreground for selected tabs"},"$:/language/Docs/PaletteColours/sidebar-tab-foreground":{"text":"Sidebar tab foreground"},"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover":{"text":"Sidebar tiddler link foreground hover"},"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground":{"text":"Sidebar tiddler link foreground"},"$:/language/Docs/PaletteColours/site-title-foreground":{"text":"Site title foreground"},"$:/language/Docs/PaletteColours/static-alert-foreground":{"text":"Static alert foreground"},"$:/language/Docs/PaletteColours/tab-background-selected":{"text":"Tab background for selected tabs"},"$:/language/Docs/PaletteColours/tab-background":{"text":"Tab background"},"$:/language/Docs/PaletteColours/tab-border-selected":{"text":"Tab border for selected tabs"},"$:/language/Docs/PaletteColours/tab-border":{"text":"Tab border"},"$:/language/Docs/PaletteColours/tab-divider":{"text":"Tab divider"},"$:/language/Docs/PaletteColours/tab-foreground-selected":{"text":"Tab foreground for selected tabs"},"$:/language/Docs/PaletteColours/tab-foreground":{"text":"Tab foreground"},"$:/language/Docs/PaletteColours/table-border":{"text":"Table border"},"$:/language/Docs/PaletteColours/table-footer-background":{"text":"Table footer background"},"$:/language/Docs/PaletteColours/table-header-background":{"text":"Table header background"},"$:/language/Docs/PaletteColours/tag-background":{"text":"Tag background"},"$:/language/Docs/PaletteColours/tag-foreground":{"text":"Tag foreground"},"$:/language/Docs/PaletteColours/tiddler-background":{"text":"Tiddler background"},"$:/language/Docs/PaletteColours/tiddler-border":{"text":"Tiddler border"},"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover":{"text":"Tiddler controls foreground hover"},"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected":{"text":"Tiddler controls foreground for selected controls"},"$:/language/Docs/PaletteColours/tiddler-controls-foreground":{"text":"Tiddler controls foreground"},"$:/language/Docs/PaletteColours/tiddler-editor-background":{"text":"Tiddler editor background"},"$:/language/Docs/PaletteColours/tiddler-editor-border-image":{"text":"Tiddler editor border image"},"$:/language/Docs/PaletteColours/tiddler-editor-border":{"text":"Tiddler editor border"},"$:/language/Docs/PaletteColours/tiddler-editor-fields-even":{"text":"Tiddler editor background for even fields"},"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd":{"text":"Tiddler editor background for odd fields"},"$:/language/Docs/PaletteColours/tiddler-info-background":{"text":"Tiddler info panel background"},"$:/language/Docs/PaletteColours/tiddler-info-border":{"text":"Tiddler info panel border"},"$:/language/Docs/PaletteColours/tiddler-info-tab-background":{"text":"Tiddler info panel tab background"},"$:/language/Docs/PaletteColours/tiddler-link-background":{"text":"Tiddler link background"},"$:/language/Docs/PaletteColours/tiddler-link-foreground":{"text":"Tiddler link foreground"},"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground":{"text":"Tiddler subtitle foreground"},"$:/language/Docs/PaletteColours/tiddler-title-foreground":{"text":"Tiddler title foreground"},"$:/language/Docs/PaletteColours/toolbar-new-button":{"text":"Toolbar 'new tiddler' button foreground"},"$:/language/Docs/PaletteColours/toolbar-options-button":{"text":"Toolbar 'options' button foreground"},"$:/language/Docs/PaletteColours/toolbar-save-button":{"text":"Toolbar 'save' button foreground"},"$:/language/Docs/PaletteColours/toolbar-info-button":{"text":"Toolbar 'info' button foreground"},"$:/language/Docs/PaletteColours/toolbar-edit-button":{"text":"Toolbar 'edit' button foreground"},"$:/language/Docs/PaletteColours/toolbar-close-button":{"text":"Toolbar 'close' button foreground"},"$:/language/Docs/PaletteColours/toolbar-delete-button":{"text":"Toolbar 'delete' button foreground"},"$:/language/Docs/PaletteColours/toolbar-cancel-button":{"text":"Toolbar 'cancel' button foreground"},"$:/language/Docs/PaletteColours/toolbar-done-button":{"text":"Toolbar 'done' button foreground"},"$:/language/Docs/PaletteColours/untagged-background":{"text":"Untagged pill background"},"$:/language/Docs/PaletteColours/very-muted-foreground":{"text":"Very muted foreground"},"$:/language/EditTemplate/Body/External/Hint":{"text":"This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"},"$:/language/EditTemplate/Body/Placeholder":{"text":"Type the text for this tiddler"},"$:/language/EditTemplate/Body/Preview/Type/Output":{"text":"output"},"$:/language/EditTemplate/Field/Remove/Caption":{"text":"remove field"},"$:/language/EditTemplate/Field/Remove/Hint":{"text":"Remove field"},"$:/language/EditTemplate/Field/Dropdown/Caption":{"text":"field list"},"$:/language/EditTemplate/Field/Dropdown/Hint":{"text":"Show field list"},"$:/language/EditTemplate/Fields/Add/Button":{"text":"add"},"$:/language/EditTemplate/Fields/Add/Button/Hint":{"text":"Add the new field to the tiddler"},"$:/language/EditTemplate/Fields/Add/Name/Placeholder":{"text":"field name"},"$:/language/EditTemplate/Fields/Add/Prompt":{"text":"Add a new field:"},"$:/language/EditTemplate/Fields/Add/Value/Placeholder":{"text":"field value"},"$:/language/EditTemplate/Fields/Add/Dropdown/System":{"text":"System fields"},"$:/language/EditTemplate/Fields/Add/Dropdown/User":{"text":"User fields"},"$:/language/EditTemplate/Shadow/Warning":{"text":"This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"},"$:/language/EditTemplate/Shadow/OverriddenWarning":{"text":"This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"},"$:/language/EditTemplate/Tags/Add/Button":{"text":"add"},"$:/language/EditTemplate/Tags/Add/Button/Hint":{"text":"add tag"},"$:/language/EditTemplate/Tags/Add/Placeholder":{"text":"tag name"},"$:/language/EditTemplate/Tags/ClearInput/Caption":{"text":"clear input"},"$:/language/EditTemplate/Tags/ClearInput/Hint":{"text":"Clear tag input"},"$:/language/EditTemplate/Tags/Dropdown/Caption":{"text":"tag list"},"$:/language/EditTemplate/Tags/Dropdown/Hint":{"text":"Show tag list"},"$:/language/EditTemplate/Title/BadCharacterWarning":{"text":"Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"},"$:/language/EditTemplate/Title/Exists/Prompt":{"text":"Target tiddler already exists"},"$:/language/EditTemplate/Title/Relink/Prompt":{"text":"Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"},"$:/language/EditTemplate/Title/References/Prompt":{"text":"The following references to this tiddler will not be automatically updated:"},"$:/language/EditTemplate/Type/Dropdown/Caption":{"text":"content type list"},"$:/language/EditTemplate/Type/Dropdown/Hint":{"text":"Show content type list"},"$:/language/EditTemplate/Type/Delete/Caption":{"text":"delete content type"},"$:/language/EditTemplate/Type/Delete/Hint":{"text":"Delete content type"},"$:/language/EditTemplate/Type/Placeholder":{"text":"content type"},"$:/language/EditTemplate/Type/Prompt":{"text":"Type:"},"$:/language/Exporters/StaticRiver":{"text":"Static HTML"},"$:/language/Exporters/JsonFile":{"text":"JSON file"},"$:/language/Exporters/CsvFile":{"text":"CSV file"},"$:/language/Exporters/TidFile":{"text":"\".tid\" file"},"$:/language/Docs/Fields/_canonical_uri":{"text":"The full URI of an external image tiddler"},"$:/language/Docs/Fields/bag":{"text":"The name of the bag from which a tiddler came"},"$:/language/Docs/Fields/caption":{"text":"The text to be displayed on a tab or button"},"$:/language/Docs/Fields/color":{"text":"The CSS color value associated with a tiddler"},"$:/language/Docs/Fields/component":{"text":"The name of the component responsible for an [[alert tiddler|AlertMechanism]]"},"$:/language/Docs/Fields/current-tiddler":{"text":"Used to cache the top tiddler in a [[history list|HistoryMechanism]]"},"$:/language/Docs/Fields/created":{"text":"The date a tiddler was created"},"$:/language/Docs/Fields/creator":{"text":"The name of the person who created a tiddler"},"$:/language/Docs/Fields/dependents":{"text":"For a plugin, lists the dependent plugin titles"},"$:/language/Docs/Fields/description":{"text":"The descriptive text for a plugin, or a modal dialogue"},"$:/language/Docs/Fields/draft.of":{"text":"For draft tiddlers, contains the title of the tiddler of which this is a draft"},"$:/language/Docs/Fields/draft.title":{"text":"For draft tiddlers, contains the proposed new title of the tiddler"},"$:/language/Docs/Fields/footer":{"text":"The footer text for a wizard"},"$:/language/Docs/Fields/hide-body":{"text":"The view template will hide bodies of tiddlers if set to: ''yes''"},"$:/language/Docs/Fields/icon":{"text":"The title of the tiddler containing the icon associated with a tiddler"},"$:/language/Docs/Fields/library":{"text":"Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"},"$:/language/Docs/Fields/list":{"text":"An ordered list of tiddler titles associated with a tiddler"},"$:/language/Docs/Fields/list-before":{"text":"If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"},"$:/language/Docs/Fields/list-after":{"text":"If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"},"$:/language/Docs/Fields/modified":{"text":"The date and time at which a tiddler was last modified"},"$:/language/Docs/Fields/modifier":{"text":"The tiddler title associated with the person who last modified a tiddler"},"$:/language/Docs/Fields/name":{"text":"The human readable name associated with a plugin tiddler"},"$:/language/Docs/Fields/plugin-priority":{"text":"A numerical value indicating the priority of a plugin tiddler"},"$:/language/Docs/Fields/plugin-type":{"text":"The type of plugin in a plugin tiddler"},"$:/language/Docs/Fields/revision":{"text":"The revision of the tiddler held at the server"},"$:/language/Docs/Fields/released":{"text":"Date of a TiddlyWiki release"},"$:/language/Docs/Fields/source":{"text":"The source URL associated with a tiddler"},"$:/language/Docs/Fields/subtitle":{"text":"The subtitle text for a wizard"},"$:/language/Docs/Fields/tags":{"text":"A list of tags associated with a tiddler"},"$:/language/Docs/Fields/text":{"text":"The body text of a tiddler"},"$:/language/Docs/Fields/throttle.refresh":{"text":"If present, throttles refreshes of this tiddler"},"$:/language/Docs/Fields/title":{"text":"The unique name of a tiddler"},"$:/language/Docs/Fields/toc-link":{"text":"Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"},"$:/language/Docs/Fields/type":{"text":"The content type of a tiddler"},"$:/language/Docs/Fields/version":{"text":"Version information for a plugin"},"$:/language/Docs/Fields/_is_skinny":{"text":"If present, indicates that the tiddler text field must be loaded from the server"},"$:/language/Filters/AllTiddlers":{"text":"All tiddlers except system tiddlers"},"$:/language/Filters/RecentSystemTiddlers":{"text":"Recently modified tiddlers, including system tiddlers"},"$:/language/Filters/RecentTiddlers":{"text":"Recently modified tiddlers"},"$:/language/Filters/AllTags":{"text":"All tags except system tags"},"$:/language/Filters/Missing":{"text":"Missing tiddlers"},"$:/language/Filters/Drafts":{"text":"Draft tiddlers"},"$:/language/Filters/Orphans":{"text":"Orphan tiddlers"},"$:/language/Filters/SystemTiddlers":{"text":"System tiddlers"},"$:/language/Filters/ShadowTiddlers":{"text":"Shadow tiddlers"},"$:/language/Filters/OverriddenShadowTiddlers":{"text":"Overridden shadow tiddlers"},"$:/language/Filters/SessionTiddlers":{"text":"Tiddlers modified since the wiki was loaded"},"$:/language/Filters/SystemTags":{"text":"System tags"},"$:/language/Filters/StoryList":{"text":"Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"},"$:/language/Filters/TypedTiddlers":{"text":"Non wiki-text tiddlers"},"GettingStarted":{"text":"\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"},"$:/language/Help/build":{"description":"Automatically run configured commands","text":"Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"},"$:/language/Help/clearpassword":{"description":"Clear a password for subsequent crypto operations","text":"Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"},"$:/language/Help/default":{"text":"\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"},"$:/language/Help/deletetiddlers":{"description":"Deletes a group of tiddlers","text":"<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"},"$:/language/Help/editions":{"description":"Lists the available editions of TiddlyWiki","text":"Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"},"$:/language/Help/fetch":{"description":"Fetch tiddlers from wiki by URL","text":"Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"},"$:/language/Help/help":{"description":"Display help for TiddlyWiki commands","text":"Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"},"$:/language/Help/import":{"description":"Import tiddlers from a file","text":"Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"},"$:/language/Help/init":{"description":"Initialise a new wiki folder","text":"Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"},"$:/language/Help/listen":{"description":"Provides an HTTP server interface to TiddlyWiki","text":"Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''sse-enabled'' - set to \"yes\" to enable Server-sent events (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"},"$:/language/Help/load":{"description":"Load tiddlers from a file","text":"Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"},"$:/language/Help/makelibrary":{"description":"Construct library plugin required by upgrade process","text":"Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"},"$:/language/Help/notfound":{"text":"No such help item"},"$:/language/Help/output":{"description":"Set the base output directory for subsequent commands","text":"Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"},"$:/language/Help/password":{"description":"Set a password for subsequent crypto operations","text":"Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"},"$:/language/Help/render":{"description":"Renders individual tiddlers to files","text":"Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"},"$:/language/Help/rendertiddler":{"description":"Render an individual tiddler as a specified ContentType","text":"(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"},"$:/language/Help/rendertiddlers":{"description":"Render tiddlers matching a filter to a specified ContentType","text":"(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers '<filter>' <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"},"$:/language/Help/save":{"description":"Saves individual raw tiddlers to files","text":"Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"},"$:/language/Help/savetiddler":{"description":"Saves a raw tiddler to a file","text":"(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"},"$:/language/Help/savetiddlers":{"description":"Saves a group of raw tiddlers to a directory","text":"(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"},"$:/language/Help/savewikifolder":{"description":"Saves a wiki to a new wiki folder","text":"<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"},"$:/language/Help/server":{"description":"Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)","text":"Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"},"$:/language/Help/setfield":{"description":"Prepares external tiddlers for use","text":"//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"},"$:/language/Help/unpackplugin":{"description":"Unpack the payload tiddlers from a plugin","text":"Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"},"$:/language/Help/verbose":{"description":"Triggers verbose output mode","text":"Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"},"$:/language/Help/version":{"description":"Displays the version number of TiddlyWiki","text":"Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"},"$:/language/Import/Imported/Hint":{"text":"The following tiddlers were imported:"},"$:/language/Import/Listing/Cancel/Caption":{"text":"Cancel"},"$:/language/Import/Listing/Hint":{"text":"These tiddlers are ready to import:"},"$:/language/Import/Listing/Import/Caption":{"text":"Import"},"$:/language/Import/Listing/Select/Caption":{"text":"Select"},"$:/language/Import/Listing/Status/Caption":{"text":"Status"},"$:/language/Import/Listing/Title/Caption":{"text":"Title"},"$:/language/Import/Listing/Preview":{"text":"Preview:"},"$:/language/Import/Listing/Preview/Text":{"text":"Text"},"$:/language/Import/Listing/Preview/TextRaw":{"text":"Text (Raw)"},"$:/language/Import/Listing/Preview/Fields":{"text":"Fields"},"$:/language/Import/Listing/Preview/Diff":{"text":"Diff"},"$:/language/Import/Listing/Preview/DiffFields":{"text":"Diff (Fields)"},"$:/language/Import/Listing/Rename/Tooltip":{"text":"Rename tiddler before importing"},"$:/language/Import/Listing/Rename/Prompt":{"text":"Rename to:"},"$:/language/Import/Listing/Rename/ConfirmRename":{"text":"Rename tiddler"},"$:/language/Import/Listing/Rename/CancelRename":{"text":"Cancel"},"$:/language/Import/Listing/Rename/OverwriteWarning":{"text":"A tiddler with this title already exists."},"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible":{"text":"Blocked incompatible or obsolete plugin."},"$:/language/Import/Upgrader/Plugins/Suppressed/Version":{"text":"Blocked plugin (due to incoming <<incoming>> not being newer than existing <<existing>>)."},"$:/language/Import/Upgrader/Plugins/Upgraded":{"text":"Upgraded plugin from <<incoming>> to <<upgraded>>."},"$:/language/Import/Upgrader/State/Suppressed":{"text":"Blocked temporary state tiddler."},"$:/language/Import/Upgrader/System/Suppressed":{"text":"Blocked system tiddler."},"$:/language/Import/Upgrader/System/Warning":{"text":"Core module tiddler."},"$:/language/Import/Upgrader/System/Alert":{"text":"You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable."},"$:/language/Import/Upgrader/ThemeTweaks/Created":{"text":"Migrated theme tweak from <$text text=<<from>>/>."},"$:/language/AboveStory/ClassicPlugin/Warning":{"text":"It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"},"$:/language/BinaryWarning/Prompt":{"text":"This tiddler contains binary data"},"$:/language/ClassicWarning/Hint":{"text":"This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."},"$:/language/ClassicWarning/Upgrade/Caption":{"text":"upgrade"},"$:/language/CloseAll/Button":{"text":"close all"},"$:/language/ColourPicker/Recent":{"text":"Recent:"},"$:/language/ConfirmCancelTiddler":{"text":"Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"},"$:/language/ConfirmDeleteTiddler":{"text":"Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"},"$:/language/ConfirmOverwriteTiddler":{"text":"Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"},"$:/language/ConfirmEditShadowTiddler":{"text":"You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"},"$:/language/ConfirmAction":{"text":"Do you wish to proceed?"},"$:/language/Count":{"text":"count"},"$:/language/DefaultNewTiddlerTitle":{"text":"New Tiddler"},"$:/language/Diffs/CountMessage":{"text":"<<diff-count>> differences"},"$:/language/DropMessage":{"text":"Drop here (or use the 'Escape' key to cancel)"},"$:/language/Encryption/Cancel":{"text":"Cancel"},"$:/language/Encryption/ConfirmClearPassword":{"text":"Do you wish to clear the password? This will remove the encryption applied when saving this wiki"},"$:/language/Encryption/PromptSetPassword":{"text":"Set a new password for this TiddlyWiki"},"$:/language/Encryption/Username":{"text":"Username"},"$:/language/Encryption/Password":{"text":"Password"},"$:/language/Encryption/RepeatPassword":{"text":"Repeat password"},"$:/language/Encryption/PasswordNoMatch":{"text":"Passwords do not match"},"$:/language/Encryption/SetPassword":{"text":"Set password"},"$:/language/Error/Caption":{"text":"Error"},"$:/language/Error/EditConflict":{"text":"File changed on server"},"$:/language/Error/Filter":{"text":"Filter error"},"$:/language/Error/FilterSyntax":{"text":"Syntax error in filter expression"},"$:/language/Error/FilterRunPrefix":{"text":"Filter Error: Unknown prefix for filter run"},"$:/language/Error/IsFilterOperator":{"text":"Filter Error: Unknown operand for the 'is' filter operator"},"$:/language/Error/FormatFilterOperator":{"text":"Filter Error: Unknown suffix for the 'format' filter operator"},"$:/language/Error/LoadingPluginLibrary":{"text":"Error loading plugin library"},"$:/language/Error/NetworkErrorAlert":{"text":"`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"},"$:/language/Error/RecursiveTransclusion":{"text":"Recursive transclusion error in transclude widget"},"$:/language/Error/RetrievingSkinny":{"text":"Error retrieving skinny tiddler list"},"$:/language/Error/SavingToTWEdit":{"text":"Error saving to TWEdit"},"$:/language/Error/WhileSaving":{"text":"Error while saving"},"$:/language/Error/XMLHttpRequest":{"text":"XMLHttpRequest error code"},"$:/language/InternalJavaScriptError/Title":{"text":"Internal JavaScript Error"},"$:/language/InternalJavaScriptError/Hint":{"text":"Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"},"$:/language/InvalidFieldName":{"text":"Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"},"$:/language/LayoutSwitcher/Description":{"text":"Open the layout switcher"},"$:/language/LazyLoadingWarning":{"text":"<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"},"$:/language/LoginToTiddlySpace":{"text":"Login to TiddlySpace"},"$:/language/Manager/Controls/FilterByTag/None":{"text":"(none)"},"$:/language/Manager/Controls/FilterByTag/Prompt":{"text":"Filter by tag:"},"$:/language/Manager/Controls/Order/Prompt":{"text":"Reverse order"},"$:/language/Manager/Controls/Search/Placeholder":{"text":"Search"},"$:/language/Manager/Controls/Search/Prompt":{"text":"Search:"},"$:/language/Manager/Controls/Show/Option/Tags":{"text":"tags"},"$:/language/Manager/Controls/Show/Option/Tiddlers":{"text":"tiddlers"},"$:/language/Manager/Controls/Show/Prompt":{"text":"Show:"},"$:/language/Manager/Controls/Sort/Prompt":{"text":"Sort by:"},"$:/language/Manager/Item/Colour":{"text":"Colour"},"$:/language/Manager/Item/Fields":{"text":"Fields"},"$:/language/Manager/Item/Icon/None":{"text":"(none)"},"$:/language/Manager/Item/Icon":{"text":"Icon"},"$:/language/Manager/Item/RawText":{"text":"Raw text"},"$:/language/Manager/Item/Tags":{"text":"Tags"},"$:/language/Manager/Item/Tools":{"text":"Tools"},"$:/language/Manager/Item/WikifiedText":{"text":"Wikified text"},"$:/language/MissingTiddler/Hint":{"text":"Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"},"$:/language/No":{"text":"No"},"$:/language/OfficialPluginLibrary":{"text":"Official ~TiddlyWiki Plugin Library"},"$:/language/OfficialPluginLibrary/Hint":{"text":"The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."},"$:/language/PageTemplate/Description":{"text":"the default ~TiddlyWiki layout"},"$:/language/PageTemplate/Name":{"text":"Default ~PageTemplate"},"$:/language/PluginReloadWarning":{"text":"Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"},"$:/language/RecentChanges/DateFormat":{"text":"DDth MMM YYYY"},"$:/language/Shortcuts/Input/AdvancedSearch/Hint":{"text":"Open the ~AdvancedSearch panel from within the sidebar search field"},"$:/language/Shortcuts/Input/Accept/Hint":{"text":"Accept the selected item"},"$:/language/Shortcuts/Input/AcceptVariant/Hint":{"text":"Accept the selected item (variant)"},"$:/language/Shortcuts/Input/Cancel/Hint":{"text":"Clear the input field"},"$:/language/Shortcuts/Input/Down/Hint":{"text":"Select the next item"},"$:/language/Shortcuts/Input/Tab-Left/Hint":{"text":"Select the previous Tab"},"$:/language/Shortcuts/Input/Tab-Right/Hint":{"text":"Select the next Tab"},"$:/language/Shortcuts/Input/Up/Hint":{"text":"Select the previous item"},"$:/language/Shortcuts/SidebarLayout/Hint":{"text":"Change the sidebar layout"},"$:/language/Switcher/Subtitle/theme":{"text":"Switch Theme"},"$:/language/Switcher/Subtitle/layout":{"text":"Switch Layout"},"$:/language/Switcher/Subtitle/language":{"text":"Switch Language"},"$:/language/Switcher/Subtitle/palette":{"text":"Switch Palette"},"$:/language/SystemTiddler/Tooltip":{"text":"This is a system tiddler"},"$:/language/SystemTiddlers/Include/Prompt":{"text":"Include system tiddlers"},"$:/language/TagManager/Colour/Heading":{"text":"Colour"},"$:/language/TagManager/Count/Heading":{"text":"Count"},"$:/language/TagManager/Icon/Heading":{"text":"Icon"},"$:/language/TagManager/Icons/None":{"text":"None"},"$:/language/TagManager/Info/Heading":{"text":"Info"},"$:/language/TagManager/Tag/Heading":{"text":"Tag"},"$:/language/Tiddler/DateFormat":{"text":"DDth MMM YYYY at hh12:0mmam"},"$:/language/UnsavedChangesWarning":{"text":"You have unsaved changes in TiddlyWiki"},"$:/language/Yes":{"text":"Yes"},"$:/language/Modals/Download":{"subtitle":"Download changes","footer":"<$button message=\"tm-close-tiddler\">Close</$button>","help":"https://tiddlywiki.com/static/DownloadingChanges.html","text":"Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"},"$:/language/Modals/SaveInstructions":{"subtitle":"Save your work","footer":"<$button message=\"tm-close-tiddler\">Close</$button>","help":"https://tiddlywiki.com/static/SavingChanges.html","text":"Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"},"$:/config/NewJournal/Title":{"text":"DDth MMM YYYY"},"$:/config/NewJournal/Text":{"text":""},"$:/config/NewJournal/Tags":{"text":"Journal\n"},"$:/language/Notifications/Save/Done":{"text":"Saved wiki"},"$:/language/Notifications/Save/Starting":{"text":"Starting to save wiki"},"$:/language/Notifications/CopiedToClipboard/Succeeded":{"text":"Copied to clipboard!"},"$:/language/Notifications/CopiedToClipboard/Failed":{"text":"Failed to copy to clipboard!"},"$:/language/Search/DefaultResults/Caption":{"text":"List"},"$:/language/Search/Filter/Caption":{"text":"Filter"},"$:/language/Search/Filter/Hint":{"text":"Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"},"$:/language/Search/Filter/Matches":{"text":"//<small><<resultCount>> matches</small>//"},"$:/language/Search/Matches":{"text":"//<small><<resultCount>> matches</small>//"},"$:/language/Search/Matches/All":{"text":"All matches:"},"$:/language/Search/Matches/Title":{"text":"Title matches:"},"$:/language/Search/Search":{"text":"Search"},"$:/language/Search/Search/TooShort":{"text":"Search text too short"},"$:/language/Search/Shadows/Caption":{"text":"Shadows"},"$:/language/Search/Shadows/Hint":{"text":"Search for shadow tiddlers"},"$:/language/Search/Shadows/Matches":{"text":"//<small><<resultCount>> matches</small>//"},"$:/language/Search/Standard/Caption":{"text":"Standard"},"$:/language/Search/Standard/Hint":{"text":"Search for standard tiddlers"},"$:/language/Search/Standard/Matches":{"text":"//<small><<resultCount>> matches</small>//"},"$:/language/Search/System/Caption":{"text":"System"},"$:/language/Search/System/Hint":{"text":"Search for system tiddlers"},"$:/language/Search/System/Matches":{"text":"//<small><<resultCount>> matches</small>//"},"$:/language/SideBar/All/Caption":{"text":"All"},"$:/language/SideBar/Contents/Caption":{"text":"Contents"},"$:/language/SideBar/Drafts/Caption":{"text":"Drafts"},"$:/language/SideBar/Explorer/Caption":{"text":"Explorer"},"$:/language/SideBar/Missing/Caption":{"text":"Missing"},"$:/language/SideBar/More/Caption":{"text":"More"},"$:/language/SideBar/Open/Caption":{"text":"Open"},"$:/language/SideBar/Orphans/Caption":{"text":"Orphans"},"$:/language/SideBar/Recent/Caption":{"text":"Recent"},"$:/language/SideBar/Shadows/Caption":{"text":"Shadows"},"$:/language/SideBar/System/Caption":{"text":"System"},"$:/language/SideBar/Tags/Caption":{"text":"Tags"},"$:/language/SideBar/Tags/Untagged/Caption":{"text":"untagged"},"$:/language/SideBar/Tools/Caption":{"text":"Tools"},"$:/language/SideBar/Types/Caption":{"text":"Types"},"$:/SiteSubtitle":{"text":"a non-linear personal web notebook"},"$:/SiteTitle":{"text":"My ~TiddlyWiki"},"$:/language/Snippets/ListByTag":{"tags":"$:/tags/TextEditor/Snippet","caption":"List of tiddlers by tag","text":"<<list-links \"[tag[task]sort[title]]\">>\n"},"$:/language/Snippets/MacroDefinition":{"tags":"$:/tags/TextEditor/Snippet","caption":"Macro definition","text":"\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"},"$:/language/Snippets/Table4x3":{"tags":"$:/tags/TextEditor/Snippet","caption":"Table with 4 columns by 3 rows","text":"|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"},"$:/language/Snippets/TableOfContents":{"tags":"$:/tags/TextEditor/Snippet","caption":"Table of Contents","text":"<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"},"$:/language/ThemeTweaks/ThemeTweaks":{"text":"Theme Tweaks"},"$:/language/ThemeTweaks/ThemeTweaks/Hint":{"text":"You can tweak certain aspects of the ''Vanilla'' theme."},"$:/language/ThemeTweaks/Options":{"text":"Options"},"$:/language/ThemeTweaks/Options/SidebarLayout":{"text":"Sidebar layout"},"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid":{"text":"Fixed story, fluid sidebar"},"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed":{"text":"Fluid story, fixed sidebar"},"$:/language/ThemeTweaks/Options/StickyTitles":{"text":"Sticky titles"},"$:/language/ThemeTweaks/Options/StickyTitles/Hint":{"text":"Causes tiddler titles to \"stick\" to the top of the browser window"},"$:/language/ThemeTweaks/Options/CodeWrapping":{"text":"Wrap long lines in code blocks"},"$:/language/ThemeTweaks/Settings":{"text":"Settings"},"$:/language/ThemeTweaks/Settings/FontFamily":{"text":"Font family"},"$:/language/ThemeTweaks/Settings/CodeFontFamily":{"text":"Code font family"},"$:/language/ThemeTweaks/Settings/EditorFontFamily":{"text":"Editor font family"},"$:/language/ThemeTweaks/Settings/BackgroundImage":{"text":"Page background image"},"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment":{"text":"Page background image attachment"},"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll":{"text":"Scroll with tiddlers"},"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed":{"text":"Fixed to window"},"$:/language/ThemeTweaks/Settings/BackgroundImageSize":{"text":"Page background image size"},"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto":{"text":"Auto"},"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover":{"text":"Cover"},"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain":{"text":"Contain"},"$:/language/ThemeTweaks/Metrics":{"text":"Sizes"},"$:/language/ThemeTweaks/Metrics/FontSize":{"text":"Font size"},"$:/language/ThemeTweaks/Metrics/LineHeight":{"text":"Line height"},"$:/language/ThemeTweaks/Metrics/BodyFontSize":{"text":"Font size for tiddler body"},"$:/language/ThemeTweaks/Metrics/BodyLineHeight":{"text":"Line height for tiddler body"},"$:/language/ThemeTweaks/Metrics/StoryLeft":{"text":"Story left position"},"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint":{"text":"how far the left margin of the story river<br>(tiddler area) is from the left of the page"},"$:/language/ThemeTweaks/Metrics/StoryTop":{"text":"Story top position"},"$:/language/ThemeTweaks/Metrics/StoryTop/Hint":{"text":"how far the top margin of the story river<br>is from the top of the page"},"$:/language/ThemeTweaks/Metrics/StoryRight":{"text":"Story right"},"$:/language/ThemeTweaks/Metrics/StoryRight/Hint":{"text":"how far the left margin of the sidebar <br>is from the left of the page"},"$:/language/ThemeTweaks/Metrics/StoryWidth":{"text":"Story width"},"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint":{"text":"the overall width of the story river"},"$:/language/ThemeTweaks/Metrics/TiddlerWidth":{"text":"Tiddler width"},"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint":{"text":"within the story river"},"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint":{"text":"Sidebar breakpoint"},"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint":{"text":"the minimum page width at which the story<br>river and sidebar will appear side by side"},"$:/language/ThemeTweaks/Metrics/SidebarWidth":{"text":"Sidebar width"},"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint":{"text":"the width of the sidebar in fluid-fixed layout"},"$:/language/TiddlerInfo/Advanced/Caption":{"text":"Advanced"},"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint":{"text":"none"},"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading":{"text":"Plugin Details"},"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint":{"text":"This plugin contains the following shadow tiddlers:"},"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading":{"text":"Shadow Status"},"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint":{"text":"The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"},"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint":{"text":"The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"},"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source":{"text":"It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"},"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint":{"text":"It is overridden by an ordinary tiddler"},"$:/language/TiddlerInfo/Fields/Caption":{"text":"Fields"},"$:/language/TiddlerInfo/List/Caption":{"text":"List"},"$:/language/TiddlerInfo/List/Empty":{"text":"This tiddler does not have a list"},"$:/language/TiddlerInfo/Listed/Caption":{"text":"Listed"},"$:/language/TiddlerInfo/Listed/Empty":{"text":"This tiddler is not listed by any others"},"$:/language/TiddlerInfo/References/Caption":{"text":"Backlinks"},"$:/language/TiddlerInfo/References/Empty":{"text":"No tiddlers link to this one"},"$:/language/TiddlerInfo/Tagging/Caption":{"text":"Tagging"},"$:/language/TiddlerInfo/Tagging/Empty":{"text":"No tiddlers are tagged with this one"},"$:/language/TiddlerInfo/Tools/Caption":{"text":"Tools"},"$:/language/Docs/Types/application/javascript":{"description":"JavaScript code","name":"application/javascript","group":"Developer","group-sort":"2"},"$:/language/Docs/Types/application/json":{"description":"JSON data","name":"application/json","group":"Developer","group-sort":"2"},"$:/language/Docs/Types/application/x-tiddler-dictionary":{"description":"Data dictionary","name":"application/x-tiddler-dictionary","group":"Developer","group-sort":"2"},"$:/language/Docs/Types/image/gif":{"description":"GIF image","name":"image/gif","group":"Image","group-sort":"1"},"$:/language/Docs/Types/image/jpeg":{"description":"JPEG image","name":"image/jpeg","group":"Image","group-sort":"1"},"$:/language/Docs/Types/image/png":{"description":"PNG image","name":"image/png","group":"Image","group-sort":"1"},"$:/language/Docs/Types/image/svg+xml":{"description":"Structured Vector Graphics image","name":"image/svg+xml","group":"Image","group-sort":"1"},"$:/language/Docs/Types/image/x-icon":{"description":"ICO format icon file","name":"image/x-icon","group":"Image","group-sort":"1"},"$:/language/Docs/Types/text/css":{"description":"Static stylesheet","name":"text/css","group":"Developer","group-sort":"2"},"$:/language/Docs/Types/text/html":{"description":"HTML markup","name":"text/html","group":"Text","group-sort":"0"},"$:/language/Docs/Types/text/plain":{"description":"Plain text","name":"text/plain","group":"Text","group-sort":"0"},"$:/language/Docs/Types/text/vnd.tiddlywiki":{"description":"TiddlyWiki 5","name":"text/vnd.tiddlywiki","group":"Text","group-sort":"0"},"$:/language/Docs/Types/text/x-tiddlywiki":{"description":"TiddlyWiki Classic","name":"text/x-tiddlywiki","group":"Text","group-sort":"0"},"$:/languages/en-GB/icon":{"type":"image/svg+xml","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"},"$:/languages/en-GB":{"name":"en-GB","description":"English (British)","author":"JeremyRuston","core-version":">=5.0.0\"","text":"Stub pseudo-plugin for the default language"},"$:/core/modules/commander.js":{"text":"!function(){'use strict';function t(t,e,n,o){var s=require('path');this.commandTokens=t,this.nextToken=0,this.callback=e,this.wiki=n,this.streams=o,this.outputPath=s.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir)}t.prototype.log=function(t){this.verbose&&this.streams.output.write(t+'\\n')},t.prototype.write=function(t){this.verbose&&this.streams.output.write(t)},t.prototype.addCommandTokens=function(t){t=t.slice(0);t.unshift(0),t.unshift(this.nextToken),Array.prototype.splice.apply(this.commandTokens,t)},t.prototype.execute=function(){this.executeNextCommand()},t.prototype.executeNextCommand=function(){var e=this;if(this.nextToken>=this.commandTokens.length)this.callback(null);else{var t=this.commandTokens[this.nextToken++];if('--'!==t.substr(0,2))this.callback('Missing command: '+t);else{t=t.substr(2);for(var n=[];this.nextToken<this.commandTokens.length&&'--'!==this.commandTokens[this.nextToken].substr(0,2);)n.push(this.commandTokens[this.nextToken++]);var o,s=$tw.commands[t];if(s){if(this.verbose&&this.streams.output.write('Executing command: '+t+' '+n.join(' ')+'\\n'),s.info.namedParameterMode&&'string'==typeof(n=this.extractNamedParameters(n,s.info.mandatoryParameters)))return this.callback(n);s.info.synchronous?(o=new s.Command(n,this).execute())?this.callback(o):this.executeNextCommand():(o=new s.Command(n,this,function(t){t?e.callback(t):e.executeNextCommand()}).execute())&&this.callback(o)}else this.callback('Unknown command: '+t)}}},t.prototype.extractNamedParameters=function(t,e){e=e||[];var n=[],o=Object.create(null);return $tw.utils.each(t,function(t){var e=t.indexOf('=');e<1&&n.push('malformed named parameter: \\''+t+'\\''),o[t.slice(0,e)]=$tw.utils.trim(t.slice(e+1))}),$tw.utils.each(e,function(t){$tw.utils.hop(o,t)||n.push('missing mandatory parameter: \\''+t+'\\'')}),0<n.length?n.join(' and\\n'):o},t.initCommands=function(t){t=t||'command',$tw.commands={},$tw.modules.forEachModuleOfType(t,function(t,e){var n,o=$tw.commands[e.info.name]={};for(n in e)$tw.utils.hop(e,n)&&(o[n]=e[n])})},exports.Commander=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/commands/build.js":{"text":"!function(){'use strict';function t(t,n){this.params=t,this.commander=n}exports.info={name:'build',synchronous:!0},t.prototype.execute=function(){var t,n=$tw.boot.wikiInfo.build;if(!n)return'No build targets defined';t=0<this.params.length?this.params:Object.keys(n);for(var e=0;e<t.length;e++){var o=t[e],r=n[o];if(!r)return'Build target \\''+o+'\\' not found';this.commander.addCommandTokens(r)}return null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/clearpassword.js":{"text":"!function(){'use strict';function t(t,n,o){this.params=t,this.commander=n,this.callback=o}exports.info={name:'clearpassword',synchronous:!0},t.prototype.execute=function(){return $tw.crypto.setPassword(null),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/deletetiddlers.js":{"text":"!function(){'use strict';function t(t,e,i){this.params=t,this.commander=e,this.callback=i}exports.info={name:'deletetiddlers',synchronous:!0},t.prototype.execute=function(){if(this.params.length<1)return'Missing filter';var e=this.commander.wiki,t=this.params[0],t=e.filterTiddlers(t);return $tw.utils.each(t,function(t){e.deleteTiddler(t)}),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/editions.js":{"text":"!function(){'use strict';function t(t,n){this.params=t,this.commander=n}exports.info={name:'editions',synchronous:!0},t.prototype.execute=function(){var e=this;this.commander.streams.output.write('Available editions:\\n\\n');var t=$tw.utils.getEditionInfo();return $tw.utils.each(t,function(t,n){e.commander.streams.output.write(' '+n+': '+t.description+'\\n')}),this.commander.streams.output.write('\\n'),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/fetch.js":{"text":"!function(){'use strict';function t(t,r,e){this.params=t,this.commander=r,this.callback=e}exports.info={name:'fetch',synchronous:!1},t.prototype.execute=function(){if(this.params.length<2)return'Missing subcommand and url';switch(this.params[0]){case'raw-file':return this.fetchFiles({raw:!0,url:this.params[1],transformFilter:this.params[2]||'',callback:this.callback});case'file':return this.fetchFiles({url:this.params[1],importFilter:this.params[2],transformFilter:this.params[3]||'',callback:this.callback});case'raw-files':return this.fetchFiles({raw:!0,urlFilter:this.params[1],transformFilter:this.params[2]||'',callback:this.callback});case'files':return this.fetchFiles({urlFilter:this.params[1],importFilter:this.params[2],transformFilter:this.params[3]||'',callback:this.callback})}return null},t.prototype.fetchFiles=function(r){var e,i=this;if(r.url)e=[r.url];else{if(!r.urlFilter)return'Missing URL';e=this.commander.wiki.filterTiddlers(r.urlFilter)}var a=0,s=function(t){if(t)return r.callback(t);a<e.length?i.fetchFile(e[a++],r,s):r.callback(null)};return s(null),null},t.prototype.fetchFile=function(i,a,s,n){if(10<n)return s('Error too many redirects retrieving '+i);var l=this;return('https://'===i.substr(0,8)?require('https'):require('http')).get(i).on('response',function(t){var r=(t.headers['content-type']||'').split(';')[0],e=[];l.commander.write('Reading '+i+': '),t.on('data',function(t){e.push(t),l.commander.write('.')}),t.on('end',function(){return l.commander.write('\\n'),200!==t.statusCode?302===t.statusCode||303===t.statusCode||307===t.statusCode?l.fetchFile(t.headers.location,a,s,n+1):s('Error '+t.statusCode+' retrieving '+i):(l.processBody(Buffer.concat(e),r,a,i),void s(null))}),t.on('error',function(t){console.log('Error on GET request: '+t),s(t)})}),null},t.prototype.processBody=function(t,r,a,e){var i,s=this,n=new $tw.Wiki;a.raw?(i=(i=r?$tw.config.contentTypeInfo[r]:null)?i.encoding:'utf8',n.addTiddler(new $tw.Tiddler({title:e,type:r,text:t.toString(i)}))):(t=this.commander.wiki.deserializeTiddlers(r||'text/html',t.toString('utf8'),{}),$tw.utils.each(t,function(t){n.addTiddler(new $tw.Tiddler(t))}));var l=n.filterTiddlers(a.importFilter||'[all[tiddlers]]'),o=0;n.each(function(t,r){var e,i;-1!==l.indexOf(r)&&(a.transformFilter?(i=(n.filterTiddlers(a.transformFilter,null,s.commander.wiki.makeTiddlerIterator([r]))||[''])[0])&&(s.commander.log('Importing '+r+' as '+i),e=new $tw.Tiddler(t,{title:i})):(s.commander.log('Importing '+r),e=t),s.commander.wiki.importTiddler(e),o++)}),s.commander.log('Imported '+o+' tiddlers')},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/help.js":{"text":"!function(){'use strict';function e(e,t){this.params=e,this.commander=t}exports.info={name:'help',synchronous:!0},e.prototype.execute=function(){var e=this.params[0]||'default',t='$:/language/Help/';this.commander.wiki.getTiddler(t+e)||(e='notfound'),e=(e=this.commander.wiki.renderTiddler('text/plain-formatted',t+e)).replace(/^(\\r?\\n)*/g,''),this.commander.streams.output.write(e)},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/import.js":{"text":"!function(){'use strict';function e(e,r,i){this.params=e,this.commander=r,this.callback=i}exports.info={name:'import',synchronous:!0},e.prototype.execute=function(){var r=this,e=require('fs');require('path');if(this.params.length<2)return'Missing parameters';var i=r.params[0],t=r.params[1],a=r.params[2]||i,s=r.params[3]||'utf8',s=e.readFileSync(i,s),t=this.commander.wiki.deserializeTiddlers(null,s,{title:a},{deserializer:t});return $tw.utils.each(t,function(e){r.commander.wiki.importTiddler(new $tw.Tiddler(e))}),this.commander.log(t.length+' tiddler(s) imported'),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/init.js":{"text":"!function(){'use strict';function t(t,i){this.params=t,this.commander=i}exports.info={name:'init',synchronous:!0},t.prototype.execute=function(){var t=require('fs');require('path');if($tw.boot.wikiTiddlersPath||$tw.utils.isDirectory($tw.boot.wikiPath)&&!$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))return'Wiki folder is not empty';for(var i=0<this.params.length?this.params:['empty'],e=0;e<i.length;e++){var r=i[e],o=$tw.findLibraryItem(r,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));if(!$tw.utils.isDirectory(o))return'Edition \\''+r+'\\' not found';o=$tw.utils.copyDirectory(o,$tw.boot.wikiPath);if(o)return o;this.commander.streams.output.write('Copied edition \\''+r+'\\' to '+$tw.boot.wikiPath+'\\n')}var n=$tw.boot.wikiPath+'/tiddlywiki.info',s=JSON.parse(t.readFileSync(n));return delete s.includeWikis,t.writeFileSync(n,JSON.stringify(s,null,$tw.config.preferences.jsonSpaces)),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/listen.js":{"text":"!function(){'use strict';var i=require('$:/core/modules/server/server.js').Server;function e(e,i,r){this.params=e,this.commander=i,this.callback=r}exports.info={name:'listen',synchronous:!0,namedParameterMode:!0,mandatoryParameters:[]},e.prototype.execute=function(){$tw.boot.wikiTiddlersPath||$tw.utils.warning('Warning: Wiki folder \\''+$tw.boot.wikiPath+'\\' does not exist or is missing a tiddlywiki.info file'),this.server=new i({wiki:this.commander.wiki,variables:this.params});var e=this.server.listen();return $tw.hooks.invokeHook('th-server-command-post-start',this.server,e,'tiddlywiki'),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/load.js":{"text":"!function(){'use strict';function r(r,t,i){this.params=r,this.commander=t,this.callback=i}exports.info={name:'load',synchronous:!1},r.prototype.execute=function(){var t=this;require('fs'),require('path');if(this.params.length<1)return'Missing filename';var r=$tw.loadTiddlersFromPath(t.params[0]),i=0;return $tw.utils.each(r,function(r){$tw.utils.each(r.tiddlers,function(r){t.commander.wiki.importTiddler(new $tw.Tiddler(r)),i++})}),i||'noerror'===t.params[1]?t.callback(null):t.callback('No tiddlers found in file \"'+t.params[0]+'\"'),null},exports.Command=r}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/makelibrary.js":{"text":"!function(){'use strict';function t(t,e,i){this.params=t,this.commander=e,this.callback=i}exports.info={name:'makelibrary',synchronous:!0},t.prototype.execute=function(){function r(t){for(var e=$tw.utils.getSubdirectories(t)||[],i=0;i<e.length;i++)$tw.boot.excludeRegExp.test(e[i])||(s=$tw.loadPluginFolder(a.resolve(t,'./'+e[i])))&&s.title&&(n[s.title]=s)}function t(t){for(var e=$tw.utils.getSubdirectories(t)||[],i=0;i<e.length;i++)$tw.boot.excludeRegExp.test(e[i])||r(a.resolve(t,'./'+e[i]))}var e=this.commander.wiki,a=(require('fs'),require('path')),i=this.params[0]||'$:/UpgradeLibrary',n={};$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),t),$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),t),$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),r);var s={title:i,type:'application/json','plugin-type':'library',text:JSON.stringify({tiddlers:n})};return e.addTiddler(new $tw.Tiddler(s)),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/output.js":{"text":"!function(){'use strict';function t(t,s,e){this.params=t,this.commander=s,this.callback=e}exports.info={name:'output',synchronous:!0},t.prototype.execute=function(){require('fs');var t=require('path');return this.params.length<1?'Missing output path':(this.commander.outputPath=t.resolve(process.cwd(),this.params[0]),null)},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/password.js":{"text":"!function(){'use strict';function s(s,t,n){this.params=s,this.commander=t,this.callback=n}exports.info={name:'password',synchronous:!0},s.prototype.execute=function(){return this.params.length<1?'Missing password':($tw.crypto.setPassword(this.params[0]),null)},exports.Command=s}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/render.js":{"text":"!function(){'use strict';function e(e,t,r){this.params=e,this.commander=t,this.callback=r}require('$:/core/modules/widgets/widget.js'),exports.info={name:'render',synchronous:!0},e.prototype.execute=function(){if(this.params.length<1)return'Missing tiddler filter';var i=this,s=require('fs'),a=require('path'),n=this.commander.wiki,e=this.params[0],o=this.params[1]||'[is[tiddler]addsuffix[.html]]',d=this.params[2]||'text/html',l=this.params[3],m=this.params[4],u=this.params[5],e=n.filterTiddlers(e);return $tw.utils.each(e,function(e){var t=n.parseTiddler(l||e),r={currentTiddler:e};m&&(r[m]=u||'');t=n.makeWidget(t,{variables:r}),r=$tw.fakeDocument.createElement('div');t.render(r,null);t='text/html'===d?r.innerHTML:r.textContent,r=a.resolve(i.commander.outputPath,n.filterTiddlers(o,$tw.rootWidget,n.makeTiddlerIterator([e]))[0]);i.commander.verbose&&console.log('Rendering \"'+e+'\" to \"'+r+'\"'),$tw.utils.createFileDirectories(r),s.writeFileSync(r,t,'utf8')}),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/rendertiddler.js":{"text":"!function(){'use strict';function t(t,r,e){this.params=t,this.commander=r,this.callback=e}exports.info={name:'rendertiddler',synchronous:!1},t.prototype.execute=function(){if(this.params.length<2)return'Missing filename';var r=this,t=require('fs'),e=require('path'),i=this.params[0],s=e.resolve(this.commander.outputPath,this.params[1]),a=this.params[2]||'text/html',n=this.params[3],m=this.params[4],h=this.params[5],e={};return $tw.utils.createFileDirectories(s),n&&(e.currentTiddler=i,i=n),m&&h&&(e[m]=h),t.writeFile(s,this.commander.wiki.renderTiddler(a,i,{variables:e}),'utf8',function(t){r.callback(t)}),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/rendertiddlers.js":{"text":"!function(){'use strict';function e(e,t,r){this.params=e,this.commander=t,this.callback=r}require('$:/core/modules/widgets/widget.js'),exports.info={name:'rendertiddlers',synchronous:!0},e.prototype.execute=function(){if(this.params.length<2)return'Missing filename';var s=this,a=require('fs'),n=require('path'),o=this.commander.wiki,e=this.params[0],l=this.params[1],m=this.commander.outputPath,u=n.resolve(m,this.params[2]),c=this.params[3]||'text/html',h=this.params[4]||'.html',t='noclean'!==(this.params[5]||'').toLowerCase(),e=o.filterTiddlers(e);return t&&$tw.utils.deleteDirectory(u),$tw.utils.each(e,function(e){var t=o.parseTiddler(l),r=o.makeWidget(t,{variables:{currentTiddler:e}}),i=$tw.fakeDocument.createElement('div');r.render(i,null);t='text/html'===c?i.innerHTML:i.textContent,r=null;!$tw.utils.hop($tw.macros,'tv-get-export-path')||(i=$tw.macros['tv-get-export-path'].run.apply(s,[e]))&&(r=n.resolve(m,i+h));e=r||n.resolve(u,encodeURIComponent(e)+h);$tw.utils.createFileDirectories(e),a.writeFileSync(e,t,'utf8')}),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/save.js":{"text":"!function(){'use strict';function e(e,t,i){this.params=e,this.commander=t,this.callback=i}exports.info={name:'save',synchronous:!0},e.prototype.execute=function(){if(this.params.length<1)return'Missing filename filter';var n=this,o=require('fs'),s=require('path'),a=this.commander.wiki,e=this.params[0],d=this.params[1]||'[is[tiddler]]',e=a.filterTiddlers(e);return $tw.utils.each(e,function(e){var t=n.commander.wiki.getTiddler(e),i=t.fields.type||'text/vnd.tiddlywiki',r=$tw.config.contentTypeInfo[i]||{encoding:'utf8'},i=s.resolve(n.commander.outputPath,a.filterTiddlers(d,$tw.rootWidget,a.makeTiddlerIterator([e]))[0]);n.commander.verbose&&console.log('Saving \"'+e+'\" to \"'+i+'\"'),$tw.utils.createFileDirectories(i),o.writeFileSync(i,t.fields.text,r.encoding)}),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/savelibrarytiddlers.js":{"text":"!function(){'use strict';function e(e,t,i){this.params=e,this.commander=t,this.callback=i}exports.info={name:'savelibrarytiddlers',synchronous:!0},e.prototype.execute=function(){if(this.params.length<2)return'Missing filename';var n=this,d=require('fs'),o=require('path'),e=this.params[0],t=this.params[1],l=this.params[2],i=this.params[3],m=n.commander.wiki.getTiddlerDataCached(e,void 0);if(!m)return'\\''+e+'\\' is not a tiddler bundle';var r=[];$tw.utils.each(m.tiddlers,function(e,t){r.push(t)}),t=t?n.commander.wiki.filterTiddlers(t,null,n.commander.wiki.makeTiddlerIterator(r)):r;var u=[];return $tw.utils.each(t,function(e){var t=m.tiddlers[e],i=o.resolve(n.commander.outputPath,l+encodeURIComponent(e)+'.json');$tw.utils.createFileDirectories(i),d.writeFileSync(i,JSON.stringify(t),'utf8');var r,a=JSON.parse(t.text),s=(a.tiddlers[e+'/readme']||{}).text,i=!!n.commander.wiki.doesPluginInfoRequireReload(a),a=a.tiddlers[e+'/icon']||{},e=a.type,a=a.text;e&&a&&(r=$tw.utils.makeDataUri(a,e)),u.push($tw.utils.extend({},t,{text:void 0,readme:s,'requires-reload':i?'yes':'no',icon:r}))}),i&&n.commander.wiki.setTiddlerData(i,u),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/savetiddler.js":{"text":"!function(){'use strict';function t(t,e,i){this.params=t,this.commander=e,this.callback=i}exports.info={name:'savetiddler',synchronous:!1},t.prototype.execute=function(){if(this.params.length<2)return'Missing filename';var e=this,t=require('fs'),i=require('path'),n=this.params[0],r=i.resolve(this.commander.outputPath,this.params[1]),i=this.commander.wiki.getTiddler(n);if(!i)return'Missing tiddler: '+n;n=i.fields.type||'text/vnd.tiddlywiki',n=$tw.config.contentTypeInfo[n]||{encoding:'utf8'};return $tw.utils.createFileDirectories(r),t.writeFile(r,i.fields.text,n.encoding,function(t){e.callback(t)}),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/savetiddlers.js":{"text":"!function(){'use strict';function e(e,t,i){this.params=e,this.commander=t,this.callback=i}require('$:/core/modules/widgets/widget.js'),exports.info={name:'savetiddlers',synchronous:!0},e.prototype.execute=function(){if(this.params.length<1)return'Missing filename';var r=this,n=require('fs'),s=require('path'),e=this.commander.wiki,t=this.params[0],o=s.resolve(this.commander.outputPath,this.params[1]),i='noclean'!==(this.params[2]||'').toLowerCase(),t=e.filterTiddlers(t);return i&&$tw.utils.deleteDirectory(o),$tw.utils.createDirectory(o),$tw.utils.each(t,function(e){var t=r.commander.wiki.getTiddler(e),i=t.fields.type||'text/vnd.tiddlywiki',i=$tw.config.contentTypeInfo[i]||{encoding:'utf8'},e=s.resolve(o,encodeURIComponent(e));n.writeFileSync(e,t.fields.text,i.encoding)}),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/savewikifolder.js":{"text":"!function(){'use strict';var r,o;function i(i,e,t){this.params=i,this.commander=e,this.callback=t}function e(i,e,t){this.wikiFolderPath=i,this.wikiFilter=e||'[all[tiddlers]]',this.commander=t,this.wiki=t.wiki,this.savedPaths=[]}exports.info={name:'savewikifolder',synchronous:!0},$tw.node&&(r=require('fs'),o=require('path')),i.prototype.execute=function(){return this.params.length<1?'Missing wiki folder path':new e(this.params[0],this.params[1],this.commander).save()},e.prototype.log=function(i){this.commander.verbose&&console.log(i)},e.prototype.tiddlersToIgnore=['$:/boot/boot.css','$:/boot/boot.js','$:/boot/bootprefix.js','$:/core','$:/library/sjcl.js','$:/temp/info-plugin'],e.prototype.save=function(){var l=this;if(r.existsSync(this.wikiFolderPath)&&!$tw.utils.isDirectoryEmpty(this.wikiFolderPath))return'The unpackwiki command requires that the output wiki folder be empty';var i=this.wiki.filterTiddlers(this.wikiFilter),n={};return $tw.utils.each(i,function(i){var e,t,s=l.wiki.getTiddler(i);s&&(-1!==l.tiddlersToIgnore.indexOf(i)?l.log('Ignoring tiddler: '+i):(e=s.fields.type,t=s.fields['plugin-type'],'application/json'===e&&t?(t=l.findPluginInLibrary(i))?(l.log('Adding built-in plugin: '+t.name),n[t.type]=n[t.type]||[],$tw.utils.pushTop(n[t.type],t.name)):(l.log('Processing custom plugin: '+i),l.saveCustomPlugin(s)):l.saveTiddler('tiddlers',s)))}),this.saveJSONFile('tiddlywiki.info',n),l.log('Writing tiddlywiki.info: '+JSON.stringify(n,null,$tw.config.preferences.jsonSpaces)),null},e.prototype.findPluginInLibrary=function(i){var e,t,s,i=i.split('/');return'$:'===i[0]&&('languages'===i[1]&&3===i.length?(e='languages'+o.sep+i[2],t=i[1],s=i[2]):('plugins'===i[1]||'themes'===i[1]&&4===i.length)&&(e=i[1]+o.sep+i[2]+o.sep+i[3],t=i[1],s=i[2]+'/'+i[3])),!!(e&&t&&s&&(e=o.resolve($tw.boot.bootPath,'..',e),r.existsSync(e)))&&{pluginPath:e,type:t,name:s}},e.prototype.saveCustomPlugin=function(i){var e=this,t=i.fields.title.split('/'),s=$tw.utils.generateTiddlerFilepath(t[t.length-1],{directory:o.resolve(this.wikiFolderPath,i.fields['plugin-type']+'s')}),t=i.getFieldStrings({exclude:['text','type']});this.saveJSONFile(s+o.sep+'plugin.info',t),e.log('Writing '+s+o.sep+'plugin.info: '+JSON.stringify(t,null,$tw.config.preferences.jsonSpaces));i=JSON.parse(i.fields.text).tiddlers;$tw.utils.each(i,function(i){e.saveTiddler(s,new $tw.Tiddler(i))})},e.prototype.saveTiddler=function(i,e){var t,s,l=e.fields.title;this.wiki.tiddlerExists('$:/config/FileSystemPaths')&&(t=this.wiki.getTiddlerText('$:/config/FileSystemPaths','').split('\\n')),this.wiki.tiddlerExists('$:/config/FileSystemExtensions')&&(s=this.wiki.getTiddlerText('$:/config/FileSystemExtensions','').split('\\n'));var n=$tw.utils.generateTiddlerFileInfo(e,{directory:o.resolve(this.wikiFolderPath,i),wiki:this.wiki,pathFilters:t,extFilters:s,originalpath:this.wiki.extractTiddlerDataItem('$:/config/OriginalTiddlerPaths',l,'')});try{$tw.utils.saveTiddlerToFileSync(e,n)}catch(i){console.log('SaveWikiFolder: Error saving file \\''+n.filepath+'\\', tiddler: \\''+e.fields.title)}},e.prototype.saveJSONFile=function(i,e){this.saveTextFile(i,JSON.stringify(e,null,$tw.config.preferences.jsonSpaces))},e.prototype.saveTextFile=function(i,e){this.saveFile(i,'utf8',e)},e.prototype.saveFile=function(i,e,t){i=o.resolve(this.wikiFolderPath,i);$tw.utils.createFileDirectories(i),r.writeFileSync(i,t,e)},exports.Command=i}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/server.js":{"text":"!function(){'use strict';var s=require('$:/core/modules/server/server.js').Server;function r(r,s,t){this.params=r,this.commander=s,this.callback=t}exports.info={name:'server',synchronous:!0},r.prototype.execute=function(){$tw.boot.wikiTiddlersPath||$tw.utils.warning('Warning: Wiki folder \\''+$tw.boot.wikiPath+'\\' does not exist or is missing a tiddlywiki.info file'),this.server=new s({wiki:this.commander.wiki,variables:{port:this.params[0],host:this.params[6],'root-tiddler':this.params[1],'root-render-type':this.params[2],'root-serve-type':this.params[3],username:this.params[4],password:this.params[5],'path-prefix':this.params[7],'debug-level':this.params[8]}});var r=this.server.listen();return $tw.hooks.invokeHook('th-server-command-post-start',this.server,r,'tiddlywiki'),null},exports.Command=r}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/setfield.js":{"text":"!function(){'use strict';function e(e,t,r){this.params=e,this.commander=t,this.callback=r}require('$:/core/modules/widgets/widget.js'),exports.info={name:'setfield',synchronous:!0},e.prototype.execute=function(){if(this.params.length<4)return'Missing parameters';var s=this.commander.wiki,e=this.params[0],a=this.params[1]||'text',n=this.params[2],d=this.params[3]||'text/plain',e=s.filterTiddlers(e);return $tw.utils.each(e,function(e){var t=s.parseTiddler(n),r={},i=s.getTiddler(e);t?(t=s.makeWidget(t,{variables:{currentTiddler:e}}),e=$tw.fakeDocument.createElement('div'),t.render(e,null),r[a]='text/html'===d?e.innerHTML:e.textContent):r[a]=void 0,s.addTiddler(new $tw.Tiddler(i,r))}),null},exports.Command=e}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/unpackplugin.js":{"text":"!function(){'use strict';function n(n,i,t){this.params=n,this.commander=i,this.callback=t}exports.info={name:'unpackplugin',synchronous:!0},n.prototype.execute=function(){if(this.params.length<1)return'Missing plugin name';var i=this,n=this.params[0],t=this.commander.wiki.getTiddlerDataCached(n);return t?($tw.utils.each(t.tiddlers,function(n){i.commander.wiki.addTiddler(new $tw.Tiddler(n))}),null):'Plugin \\''+n+'\\' not found'},exports.Command=n}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/verbose.js":{"text":"!function(){'use strict';function o(o,t){this.params=o,this.commander=t}exports.info={name:'verbose',synchronous:!0},o.prototype.execute=function(){return this.commander.verbose=!0,this.commander.streams.output.write('Boot log:\\n '+$tw.boot.logMessages.join('\\n ')+'\\n'),null},exports.Command=o}();","type":"application/javascript","module-type":"command"},"$:/core/modules/commands/version.js":{"text":"!function(){'use strict';function t(t,n){this.params=t,this.commander=n}exports.info={name:'version',synchronous:!0},t.prototype.execute=function(){return this.commander.streams.output.write($tw.version+'\\n'),null},exports.Command=t}();","type":"application/javascript","module-type":"command"},"$:/core/modules/config.js":{"text":"!function(){'use strict';exports.preferences={},exports.preferences.notificationDuration=3e3,exports.preferences.jsonSpaces=4,exports.textPrimitives={upperLetter:'[A-ZÀ-ÖØ-ÞŐŰ]',lowerLetter:'[a-zß-öø-ÿőű]',anyLetter:'[A-Za-z0-9À-ÖØ-Þß-öø-ÿŐŰőű]',blockPrefixLetters:'[A-Za-z0-9-_À-ÖØ-Þß-öø-ÿŐŰőű]'},exports.textPrimitives.unWikiLink='~',exports.textPrimitives.wikiLink=exports.textPrimitives.upperLetter+'+'+exports.textPrimitives.lowerLetter+'+'+exports.textPrimitives.upperLetter+exports.textPrimitives.anyLetter+'*',exports.htmlEntities={quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},exports.htmlVoidElements='area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr'.split(','),exports.htmlBlockElements='address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video'.split(','),exports.htmlUnsafeElements='script'.split(',')}();","type":"application/javascript","module-type":"config"},"$:/core/modules/deserializers.js":{"text":"!function(){'use strict';function c(t){var e={};if(1<arguments.length)for(var r=1;r<arguments.length;r++){var i,n=arguments[r];for(i in n)e[i]=n[i]}var s=/^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi.exec(t);if(s){var a=(s[2]?/<\\/pre>\\s*<\\/div>\\s*$/gi:/<\\/div>\\s*$/gi).exec(t);if(a){e.text=t.substring(s.index+s[0].length,a.index);var l,o,d,u=/\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi;do{}while((d=u.exec(s[1]))&&(l=d[1],o=void 0!==d[2]?d[2]:d[3],e[l]=o),d);return e}}}function a(t,e,r,i){var n=[],s=/(<\\/div>\\s*)/gi,a=e,l=r?void 0:'text/x-tiddlywiki';s.lastIndex=a;for(var o=s.exec(t);o;){var d=s.lastIndex,u=c(t.substring(a,d),i,{type:l});if(!u)break;$tw.utils.each(u,function(t,e){'string'==typeof t&&(u[e]=$tw.utils.htmlDecode(t))}),null!==u.text&&n.push(u),a=d,o=s.exec(t)}return n}exports['application/x-tiddler-html-div']=function(t,e){return[c(t,e)]},exports['application/json']=function(t,e){var r,i=[];try{r=JSON.parse(t)}catch(t){r=[{title:'JSON error: '+t,text:''}]}$tw.utils.isArray(r)||(r=[r]);for(var n=0;n<r.length;n++){var s,a=r[n],e={};for(s in a)'string'==typeof a[s]&&(e[s]=a[s]);i.push(e)}return i},exports['text/html']=function(t,e){var r=/<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,i=r.exec(t);if(i){var n=a(t,r.lastIndex,!!i[1],e),r=/<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,i=r.exec(t);return i&&n.push.apply(n,a(t,r.lastIndex,!!i[1],e)),n}var s,n=$tw.utils.extractEncryptedStoreArea(t);return n?$tw.utils.decryptStoreArea(n):(t=t,e=e,s={},$tw.utils.each(e,function(t,e){s[e]=t}),s.text=t,s.type='text/html',[s])}}();","type":"application/javascript","module-type":"tiddlerdeserializer"},"$:/core/modules/editor/engines/framed.js":{"text":"!function(){'use strict';function e(e){e=e||{},this.widget=e.widget,this.value=e.value,this.parentNode=e.parentNode,this.nextSibling=e.nextSibling,this.dummyTextArea=this.widget.document.createElement('textarea'),this.widget.editClass&&(this.dummyTextArea.className=this.widget.editClass),this.dummyTextArea.setAttribute('hidden','true'),this.parentNode.insertBefore(this.dummyTextArea,this.nextSibling),this.widget.domNodes.push(this.dummyTextArea),this.iframeNode=this.widget.document.createElement('iframe'),this.parentNode.insertBefore(this.iframeNode,this.nextSibling),this.iframeDoc=this.iframeNode.contentWindow.document,this.iframeDoc.open(),this.iframeDoc.write(''),this.iframeDoc.close(),this.iframeNode.className=this.dummyTextArea.className,this.iframeNode.style.border='none',this.iframeNode.style.padding='0',this.iframeNode.style.resize='none',this.iframeDoc.body.style.margin='0',this.iframeDoc.body.style.padding='0',this.widget.domNodes.push(this.iframeNode);e=this.widget.editTag;-1!==$tw.config.htmlUnsafeElements.indexOf(e)&&(e='input'),this.domNode=this.iframeDoc.createElement(e),'textarea'===this.widget.editTag?this.domNode.appendChild(this.iframeDoc.createTextNode(this.value)):this.domNode.value=this.value,this.widget.editType&&this.domNode.setAttribute('type',this.widget.editType),this.widget.editPlaceholder&&this.domNode.setAttribute('placeholder',this.widget.editPlaceholder),this.widget.editSize&&this.domNode.setAttribute('size',this.widget.editSize),this.widget.editRows&&this.domNode.setAttribute('rows',this.widget.editRows),this.widget.editTabIndex&&this.iframeNode.setAttribute('tabindex',this.widget.editTabIndex),this.widget.editAutoComplete&&this.domNode.setAttribute('autocomplete',this.widget.editAutoComplete),'yes'===this.widget.isDisabled&&this.domNode.setAttribute('disabled',!0),this.copyStyles(),$tw.utils.addEventListeners(this.domNode,[{name:'click',handlerObject:this,handlerMethod:'handleClickEvent'},{name:'input',handlerObject:this,handlerMethod:'handleInputEvent'},{name:'keydown',handlerObject:this.widget,handlerMethod:'handleKeydownEvent'},{name:'focus',handlerObject:this,handlerMethod:'handleFocusEvent'}]),this.iframeDoc.body.appendChild(this.domNode)}e.prototype.copyStyles=function(){$tw.utils.copyStyles(this.dummyTextArea,this.domNode),this.domNode.style.display='block',this.domNode.style.width='100%',this.domNode.style.margin='0',this.domNode.style['-webkit-text-fill-color']='currentcolor'},e.prototype.setText=function(e,t){this.domNode.isTiddlyWikiFakeDom||(this.domNode.ownerDocument.activeElement!==this.domNode&&this.updateDomNodeText(e),this.fixHeight())},e.prototype.updateDomNodeText=function(e){this.domNode.value=e},e.prototype.getText=function(){return this.domNode.value},e.prototype.fixHeight=function(){var e;this.copyStyles(),'textarea'===this.widget.editTag&&(this.widget.editAutoHeight?this.domNode&&!this.domNode.isTiddlyWikiFakeDom&&(e=$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight),this.iframeNode.style.height=e+14+'px'):(e=parseInt(this.widget.wiki.getTiddlerText('$:/config/TextEditor/EditorHeight/Height','400px'),10),e=Math.max(e,20),this.domNode.style.height=e+'px',this.iframeNode.style.height=e+14+'px'))},e.prototype.focus=function(){this.domNode.focus&&this.domNode.select&&(this.domNode.focus(),this.domNode.select())},e.prototype.handleFocusEvent=function(e){this.widget.editCancelPopups&&$tw.popup.cancel(0)},e.prototype.handleClickEvent=function(e){return this.fixHeight(),!0},e.prototype.handleInputEvent=function(e){return this.widget.saveChanges(this.getText()),this.fixHeight(),this.widget.editInputActions&&this.widget.invokeActionString(this.widget.editInputActions),!0},e.prototype.createTextOperation=function(){var e={text:this.domNode.value,selStart:this.domNode.selectionStart,selEnd:this.domNode.selectionEnd,cutStart:null,cutEnd:null,replacement:null,newSelStart:null,newSelEnd:null};return e.selection=e.text.substring(e.selStart,e.selEnd),e},e.prototype.executeTextOperation=function(e){var t=e.text;return null!==e.replacement&&(t=e.text.substring(0,e.cutStart)+e.replacement+e.text.substring(e.cutEnd),this.iframeDoc.queryCommandSupported('insertText')&&this.iframeDoc.queryCommandSupported('delete')&&!$tw.browser.isFirefox?(this.domNode.focus(),this.domNode.setSelectionRange(e.cutStart,e.cutEnd),''===e.replacement?this.iframeDoc.execCommand('delete',!1,''):this.iframeDoc.execCommand('insertText',!1,e.replacement)):this.domNode.value=t,this.domNode.focus(),this.domNode.setSelectionRange(e.newSelStart,e.newSelEnd)),this.domNode.focus(),t},exports.FramedEngine=e}();","type":"application/javascript","module-type":"library"},"$:/core/modules/editor/engines/simple.js":{"text":"!function(){'use strict';function t(t){t=t||{},this.widget=t.widget,this.value=t.value,this.parentNode=t.parentNode,this.nextSibling=t.nextSibling;t=this.widget.editTag;-1!==$tw.config.htmlUnsafeElements.indexOf(t)&&(t='input'),this.domNode=this.widget.document.createElement(t),'textarea'===this.widget.editTag?this.domNode.appendChild(this.widget.document.createTextNode(this.value)):this.domNode.value=this.value,this.widget.editType&&this.domNode.setAttribute('type',this.widget.editType),this.widget.editPlaceholder&&this.domNode.setAttribute('placeholder',this.widget.editPlaceholder),this.widget.editSize&&this.domNode.setAttribute('size',this.widget.editSize),this.widget.editRows&&this.domNode.setAttribute('rows',this.widget.editRows),this.widget.editClass&&(this.domNode.className=this.widget.editClass),this.widget.editTabIndex&&this.domNode.setAttribute('tabindex',this.widget.editTabIndex),this.widget.editAutoComplete&&this.domNode.setAttribute('autocomplete',this.widget.editAutoComplete),'yes'===this.widget.isDisabled&&this.domNode.setAttribute('disabled',!0),$tw.utils.addEventListeners(this.domNode,[{name:'focus',handlerObject:this,handlerMethod:'handleFocusEvent'},{name:'input',handlerObject:this,handlerMethod:'handleInputEvent'}]),this.parentNode.insertBefore(this.domNode,this.nextSibling),this.widget.domNodes.push(this.domNode)}t.prototype.setText=function(t,e){this.domNode.isTiddlyWikiFakeDom||(this.domNode.ownerDocument.activeElement===this.domNode&&''!==t||this.updateDomNodeText(t),this.fixHeight())},t.prototype.updateDomNodeText=function(t){this.domNode.value=t},t.prototype.getText=function(){return this.domNode.value},t.prototype.fixHeight=function(){var t;'textarea'===this.widget.editTag&&(this.widget.editAutoHeight?this.domNode&&!this.domNode.isTiddlyWikiFakeDom&&$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight):(t=parseInt(this.widget.wiki.getTiddlerText('$:/config/TextEditor/EditorHeight/Height','400px'),10),t=Math.max(t,20),this.domNode.style.height=t+'px'))},t.prototype.focus=function(){this.domNode.focus&&this.domNode.select&&(this.domNode.focus(),this.domNode.select())},t.prototype.handleInputEvent=function(t){return this.widget.saveChanges(this.getText()),this.fixHeight(),this.widget.editInputActions&&this.widget.invokeActionString(this.widget.editInputActions),!0},t.prototype.handleFocusEvent=function(t){return this.widget.editCancelPopups&&$tw.popup.cancel(0),this.widget.editFocusPopup&&$tw.popup.triggerPopup({domNode:this.domNode,title:this.widget.editFocusPopup,wiki:this.widget.wiki,force:!0}),!0},t.prototype.createTextOperation=function(){return null},t.prototype.executeTextOperation=function(t){},exports.SimpleEngine=t}();","type":"application/javascript","module-type":"library"},"$:/core/modules/editor/factory.js":{"text":"!function(){'use strict';var s='$:/config/TextEditor/EditorHeight/Mode',r='$:/config/TextEditor/EnableToolbar',t=require('$:/core/modules/widgets/widget.js').widget;exports.editTextWidgetFactory=function(d,o){var i=function(t,e){this.editorOperations||(i.prototype.editorOperations={},$tw.modules.applyMethods('texteditoroperation',this.editorOperations)),this.initialise(t,e)};return i.prototype=new t,i.prototype.render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.editShowToolbar&&(this.toolbarNode=this.document.createElement('div'),this.toolbarNode.className='tc-editor-toolbar',t.insertBefore(this.toolbarNode,e),this.renderChildren(this.toolbarNode,null),this.domNodes.push(this.toolbarNode));var i=this.getEditInfo(),s=this.editShowToolbar?d:o;this.engine=new s({widget:this,value:i.value,type:i.type,parentNode:t,nextSibling:e}),this.postRender&&this.postRender(),this.engine.fixHeight(),'true'!==this.editFocus&&'yes'!==this.editFocus||this.engine.focus(),this.addEventListeners([{type:'tm-edit-text-operation',handler:'handleEditTextOperationMessage'}])},i.prototype.getEditInfo=function(){var t,e,s=this,i='text/plain';if(this.editIndex)t=this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault),e=function(t){var e=s.wiki.getTiddlerData(s.editTitle,{});e[s.editIndex]!==t&&(e[s.editIndex]=t,s.wiki.setTiddlerData(s.editTitle,e))};else{var d=this.wiki.getTiddler(this.editTitle);if(d)t=d.getFieldString(this.editField),'text'===this.editField&&(i=d.fields.type||'text/vnd.tiddlywiki');else{switch(this.editField){case'text':t='Type the text for the tiddler \\''+this.editTitle+'\\'',i='text/vnd.tiddlywiki';break;case'title':t=this.editTitle;break;default:t=''}void 0!==this.editDefault&&(t=this.editDefault)}e=function(t){var e=s.wiki.getTiddler(s.editTitle),i={title:s.editTitle};i[s.editField]=t,s.wiki.addTiddler(new $tw.Tiddler(s.wiki.getCreationFields(),e,i,s.wiki.getModificationFields()))}}return this.editType&&(i=this.editType),{value:t||'',type:i,update:e}},i.prototype.handleEditTextOperationMessage=function(t){var e=this.engine.createTextOperation(),i=this.editorOperations[t.param];i&&i.call(this,t,e);e=this.engine.executeTextOperation(e);this.engine.fixHeight(),this.saveChanges(e)},i.prototype.execute=function(){var t,e,i;this.editTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.editField=this.getAttribute('field','text'),this.editIndex=this.getAttribute('index'),this.editDefault=this.getAttribute('default'),this.editClass=this.getAttribute('class'),this.editPlaceholder=this.getAttribute('placeholder'),this.editSize=this.getAttribute('size'),this.editRows=this.getAttribute('rows'),this.editAutoHeight=this.wiki.getTiddlerText(s,'auto'),this.editAutoHeight='yes'===this.getAttribute('autoHeight','auto'===this.editAutoHeight?'yes':'no'),this.editMinHeight=this.getAttribute('minHeight','100px'),this.editFocusPopup=this.getAttribute('focusPopup'),this.editFocus=this.getAttribute('focus'),this.editTabIndex=this.getAttribute('tabindex'),this.editCancelPopups='yes'===this.getAttribute('cancelPopups',''),this.editInputActions=this.getAttribute('inputActions'),this.editRefreshTitle=this.getAttribute('refreshTitle'),this.editAutoComplete=this.getAttribute('autocomplete'),this.isDisabled=this.getAttribute('disabled','no'),'text'===this.editField?t='textarea':(t='input',(i=$tw.Tiddler.fieldModules[this.editField])&&i.editTag&&(t=i.editTag),i&&i.editType&&(e=i.editType),e=e||'text'),this.editTag=this.getAttribute('tag',t)||'input',this.editType=this.getAttribute('type',e),this.makeChildWidgets(),this.editShowToolbar=this.wiki.getTiddlerText(r,'yes'),this.editShowToolbar='yes'===this.editShowToolbar&&!!(this.children&&0<this.children.length)&&!this.document.isTiddlyWikiFakeDom},i.prototype.refresh=function(t){var e=this.computeAttributes();return e.tiddler||e.field||e.index||e.default||e.class||e.placeholder||e.size||e.autoHeight||e.minHeight||e.focusPopup||e.rows||e.tabindex||e.cancelPopups||e.inputActions||e.refreshTitle||e.autocomplete||t[s]||t[r]||e.disabled?(this.refreshSelf(),!0):(t[this.editRefreshTitle]?this.engine.updateDomNodeText(this.getEditInfo().value):t[this.editTitle]&&(e=this.getEditInfo(),this.updateEditor(e.value,e.type)),this.engine.fixHeight(),!!this.editShowToolbar&&this.refreshChildren(t))},i.prototype.updateEditor=function(t,e){this.updateEditorDomNode(t,e)},i.prototype.updateEditorDomNode=function(t,e){this.engine.setText(t,e)},i.prototype.saveChanges=function(t){var e=this.getEditInfo();t!==e.value&&e.update(t)},i.prototype.handleKeydownEvent=function(t){if(this.toolbarNode)for(var e=this.toolbarNode.querySelectorAll('[data-tw-keyboard-shortcut]'),i=0;i<e.length;i++){var s=e[i],d=s.getAttribute('data-tw-keyboard-shortcut'),d=$tw.keyboardManager.parseKeyDescriptors(d,{wiki:this.wiki});if($tw.keyboardManager.checkKeyDescriptors(t,d)){d=this.document.createEvent('Events');return d.initEvent('click',!0,!1),s.dispatchEvent(d),t.preventDefault(),t.stopPropagation(),!0}}return!!this.propogateKeydownEvent(t)&&(t.preventDefault(),t.stopPropagation(),!0)},i.prototype.propogateKeydownEvent=function(t){var e=this.document.createEventObject?this.document.createEventObject():this.document.createEvent('Events');return e.initEvent&&e.initEvent('keydown',!0,!0),e.keyCode=t.keyCode,e.which=t.which,e.metaKey=t.metaKey,e.ctrlKey=t.ctrlKey,e.altKey=t.altKey,e.shiftKey=t.shiftKey,!this.parentDomNode.dispatchEvent(e)},i}}();","type":"application/javascript","module-type":"library"},"$:/core/modules/editor/operations/bitmap/clear.js":{"text":"!function(){'use strict';exports.clear=function(t){var e=this.canvasDomNode.getContext('2d');e.globalAlpha=1,e.fillStyle=t.paramObject.colour||'white',e.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height),this.strokeEnd()}}();","type":"application/javascript","module-type":"bitmapeditoroperation"},"$:/core/modules/editor/operations/bitmap/resize.js":{"text":"!function(){'use strict';exports.resize=function(t){var a=parseInt(t.paramObject.width||this.canvasDomNode.width,10),t=parseInt(t.paramObject.height||this.canvasDomNode.height,10);0<a&&0<t&&(a!==this.currCanvas.width||t!==this.currCanvas.height)&&this.changeCanvasSize(a,t),this.refreshToolbar(),this.saveChanges()}}();","type":"application/javascript","module-type":"bitmapeditoroperation"},"$:/core/modules/editor/operations/bitmap/rotate-left.js":{"text":"!function(){'use strict';exports['rotate-left']=function(t){this.rotateCanvasLeft(),this.refreshToolbar(),this.saveChanges()}}();","type":"application/javascript","module-type":"bitmapeditoroperation"},"$:/core/modules/editor/operations/text/excise.js":{"text":"!function(){'use strict';exports.excise=function(e,t){var i=this.wiki.getTiddler(this.editTitle),a=this.editTitle;i&&i.fields['draft.of']&&(a=i.fields['draft.of']);i=e.paramObject.title||this.wiki.generateNewTitle('New Excision');switch(this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),this.wiki.getModificationFields(),{title:i,text:t.selection,tags:'yes'===e.paramObject.tagnew?[a]:[]})),t.replacement=i,e.paramObject.type||'transclude'){case'transclude':t.replacement='{{'+t.replacement+'}}';break;case'link':t.replacement='[['+t.replacement+']]';break;case'macro':t.replacement='<<'+(e.paramObject.macro||'translink')+' \"\"\"'+t.replacement+'\"\"\">>'}t.cutStart=t.selStart,t.cutEnd=t.selEnd,t.newSelStart=t.selStart,t.newSelEnd=t.selStart+t.replacement.length}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/make-link.js":{"text":"!function(){'use strict';exports['make-link']=function(e,t){t.selection?t.replacement='[['+t.selection+'|'+e.paramObject.text+']]':t.replacement='[['+e.paramObject.text+']]',t.cutStart=t.selStart,t.cutEnd=t.selEnd,t.newSelStart=t.selStart+t.replacement.length,t.newSelEnd=t.newSelStart}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/prefix-lines.js":{"text":"!function(){'use strict';exports['prefix-lines']=function(r,t){var a=parseInt(r.paramObject.count+'',10);t.cutStart=$tw.utils.findPrecedingLineBreak(t.text,t.selStart),t.cutEnd=$tw.utils.findFollowingLineBreak(t.text,t.selEnd);var c=$tw.utils.repeat(r.paramObject.character,a),l=t.text.substring(t.cutStart,t.cutEnd).split(/\\r?\\n/gm);$tw.utils.each(l,function(t,e){for(var n=0;t.charAt(0)===r.paramObject.character;)t=t.substring(1),n++;for(;' '===t.charAt(0);)t=t.substring(1);n!==a&&(t=c+' '+t),l[e]=t}),t.replacement=l.join('\\n'),1===l.length?(t.newSelStart=t.cutStart+t.replacement.length,t.newSelEnd=t.newSelStart):(t.newSelStart=t.cutStart,t.newSelEnd=t.newSelStart+t.replacement.length)}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/replace-all.js":{"text":"!function(){'use strict';exports['replace-all']=function(t,e){e.cutStart=0,e.cutEnd=e.text.length,e.replacement=t.paramObject.text,e.newSelStart=0,e.newSelEnd=e.replacement.length}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/replace-selection.js":{"text":"!function(){'use strict';exports['replace-selection']=function(t,e){e.replacement=t.paramObject.text,e.cutStart=e.selStart,e.cutEnd=e.selEnd,e.newSelStart=e.selStart,e.newSelEnd=e.selStart+e.replacement.length}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/save-selection.js":{"text":"!function(){'use strict';exports['save-selection']=function(t,e){var s=t.paramObject.tiddler,t=t.paramObject.field||'text';s&&t&&this.wiki.setText(s,t,null,e.text.substring(e.selStart,e.selEnd))}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/wrap-lines.js":{"text":"!function(){'use strict';exports['wrap-lines']=function(t,e){e.cutStart=$tw.utils.findPrecedingLineBreak(e.text,e.selStart),e.cutEnd=$tw.utils.findFollowingLineBreak(e.text,e.selEnd),e.replacement=t.paramObject.prefix+'\\n'+e.text.substring(e.cutStart,e.cutEnd)+'\\n'+t.paramObject.suffix+'\\n',e.newSelStart=e.cutStart+t.paramObject.prefix.length+1,e.newSelEnd=e.newSelStart+(e.cutEnd-e.cutStart)}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/editor/operations/text/wrap-selection.js":{"text":"!function(){'use strict';exports['wrap-selection']=function(t,e){e.selStart===e.selEnd?(e.text.substring(e.selStart-t.paramObject.prefix.length,e.selStart+t.paramObject.suffix.length)===t.paramObject.prefix+t.paramObject.suffix?(e.cutStart=e.selStart-t.paramObject.prefix.length,e.cutEnd=e.selEnd+t.paramObject.suffix.length,e.replacement='',e.newSelStart=e.cutStart):(e.cutStart=e.selStart,e.cutEnd=e.selEnd,e.replacement=t.paramObject.prefix+t.paramObject.suffix,e.newSelStart=e.selStart+t.paramObject.prefix.length),e.newSelEnd=e.newSelStart):(e.text.substring(e.selStart,e.selStart+t.paramObject.prefix.length)===t.paramObject.prefix&&e.text.substring(e.selEnd-t.paramObject.suffix.length,e.selEnd)===t.paramObject.suffix?(e.cutStart=e.selStart,e.cutEnd=e.selEnd,e.replacement=e.selection.substring(t.paramObject.prefix.length,e.selection.length-t.paramObject.suffix.length)):(e.cutStart=e.selStart,e.cutEnd=e.selEnd,e.replacement=t.paramObject.prefix+e.selection+t.paramObject.suffix),e.newSelStart=e.selStart,e.newSelEnd=e.selStart+e.replacement.length)}}();","type":"application/javascript","module-type":"texteditoroperation"},"$:/core/modules/filterrunprefixes/all.js":{"text":"!function(){'use strict';exports.all=function(c){return function(n,t,u){n.push.apply(n,c(t,u))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/and.js":{"text":"!function(){'use strict';exports.and=function(e,i){return function(r,t,n){t=i.wiki.makeTiddlerIterator(r.toArray()),r.clear(),r.pushTop(e(t,n))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/else.js":{"text":"!function(){'use strict';exports.else=function(u){return function(n,t,e){0===n.length&&n.pushTop(u(t,e))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/except.js":{"text":"!function(){'use strict';exports.except=function(c){return function(t,e,n){t.remove(c(e,n))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/filter.js":{"text":"!function(){'use strict';exports.filter=function(i,o){return function(t,e,n){var r;0<t.length&&(r=[],t.each(function(t){0===i(o.wiki.makeTiddlerIterator([t]),n).length&&r.push(t)}),t.remove(r))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/intersection.js":{"text":"!function(){'use strict';exports.intersection=function(r){return function(n,t,e){var i;0!==n.length&&(i=r(t,e),e=n.toArray(),n.clear(),$tw.utils.each(e,function(t){-1!==i.indexOf(t)&&n.push(t)}))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/or.js":{"text":"!function(){'use strict';exports.or=function(u){return function(n,t,o){n.pushTop(u(t,o))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filterrunprefixes/reduce.js":{"text":"!function(){'use strict';exports.reduce=function(c,i){return function(t,e,n){var u,a;0<t.length&&(u='',a=0,t.each(function(r){var e=c(i.wiki.makeTiddlerIterator([r]),{getVariable:function(e){switch(e){case'currentTiddler':return''+r;case'accumulator':return''+u;case'index':return''+a;case'revIndex':return''+(t.length-1-a);case'length':return''+t.length;default:return n.getVariable(e)}}});0<e.length&&(u=''+e[0]),++a}),t.clear(),t.push(u))}}}();","type":"application/javascript","module-type":"filterrunprefix"},"$:/core/modules/filters/addprefix.js":{"text":"!function(){'use strict';exports.addprefix=function(n,t,r){var u=[];return n(function(n,r){u.push(t.operand+r)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/addsuffix.js":{"text":"!function(){'use strict';exports.addsuffix=function(n,u,t){var r=[];return n(function(n,t){r.push(t+u.operand)}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/after.js":{"text":"!function(){'use strict';exports.after=function(n,t,e){var r=[];n(function(n,t){r.push(t)});t=r.indexOf(t.operand);return-1===t||t>r.length-2?[]:[r[t+1]]}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/all/current.js":{"text":"!function(){'use strict';exports.current=function(t,e,r){r=r.widget&&r.widget.getVariable('currentTiddler');return r?[r]:[]}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all/missing.js":{"text":"!function(){'use strict';exports.missing=function(i,s,t){return t.wiki.getMissingTitles()}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all/orphans.js":{"text":"!function(){'use strict';exports.orphans=function(t,n,i){return i.wiki.getOrphanTitles()}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all/shadows.js":{"text":"!function(){'use strict';exports.shadows=function(t,i,s){return s.wiki.allShadowTitles()}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all/tags.js":{"text":"!function(){'use strict';exports.tags=function(t,e,i){return Object.keys(i.wiki.getTagMap())}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all/tiddlers.js":{"text":"!function(){'use strict';exports.tiddlers=function(t,i,e){return e.wiki.allTitles()}}();","type":"application/javascript","module-type":"allfilteroperator"},"$:/core/modules/filters/all.js":{"text":"!function(){'use strict';var n;exports.all=function(e,r,t){var i=(n||(n={},$tw.modules.applyMethods('allfilteroperator',n)),n),l=new $tw.utils.LinkedList,s=r.operand.split('+');if(1===s.length&&''===s[0])return e;if(1===s.length&&'tiddlers'===s[0])return t.wiki.each;if(1===s.length&&'shadows'===s[0])return t.wiki.eachShadow;if(2===s.length&&'tiddlers'===s[0]&&'shadows'===s[1])return t.wiki.eachTiddlerPlusShadows;if(2===s.length&&'shadows'===s[0]&&'tiddlers'===s[1])return t.wiki.eachShadowPlusTiddlers;for(var a=0;a<s.length;a++){var d=i[s[a]];d&&l.pushTop(d(e,r.prefix,t))}return l.toArray()}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/backlinks.js":{"text":"!function(){'use strict';exports.backlinks=function(i,t,n){var s=[];return i(function(i,t){$tw.utils.pushTop(s,n.wiki.getTiddlerBacklinks(t))}),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/before.js":{"text":"!function(){'use strict';exports.before=function(n,e,r){var t=[];n(function(n,e){t.push(e)});e=t.indexOf(e.operand);return e<=0?[]:[t[e-1]]}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/commands.js":{"text":"!function(){'use strict';exports.commands=function(t,n,s){var c=[];return $tw.utils.each($tw.commands,function(t,n){c.push(n)}),c.sort(),c}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/compare.js":{"text":"!function(){'use strict';exports.compare=function(n,e,t){var r=e.suffixes||[],u=(r[0]||[])[0],r=(r[1]||[])[0],i=$tw.utils.makeCompareFunction(u,{defaultType:'number'}),o=a[r]||a.eq,f='!'===e.prefix,c=[];return n(function(n,t){o(i(t,e.operand))!==f&&c.push(t)}),c};var a={eq:function(n){return 0===n},ne:function(n){return 0!==n},gteq:function(n){return 0<=n},gt:function(n){return 0<n},lteq:function(n){return n<=0},lt:function(n){return n<0}}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/contains.js":{"text":"!function(){'use strict';exports.contains=function(i,t,n){var e=[],s=(t.suffix||'list').toLowerCase();return'!'===t.prefix?i(function(i,n){i&&-1!==i.getFieldList(s).indexOf(t.operand)||e.push(n)}):i(function(i,n){i&&-1!==i.getFieldList(s).indexOf(t.operand)&&e.push(n)}),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/count.js":{"text":"!function(){'use strict';exports.count=function(n,t,u){var c=0;return n(function(n,t){c++}),[c+'']}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/days.js":{"text":"!function(){'use strict';exports.days=function(t,e,s){function i(t){return 0===(t=$tw.utils.sign(a-new Date(t).setHours(0,0,0,0)))||t===f}var n=[],u=e.suffix||'modified',r=parseInt(e.operand,10)||0,f=$tw.utils.sign(r),a=(new Date).setHours(0,0,0,0)+864e5*r;return'!'===e.prefix?(a-=864e5*f,t(function(t,e){t&&t.fields[u]&&(i($tw.utils.parseDate(t.fields[u]))||n.push(e))})):t(function(t,e){t&&t.fields[u]&&i($tw.utils.parseDate(t.fields[u]))&&n.push(e)}),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/duplicateslugs.js":{"text":"!function(){'use strict';exports.duplicateslugs=function(u,t,n){var s=Object.create(null),c=[];return u(function(u,t){var i=n.wiki.slugify(t);i in s?(!0!==s[i]&&(c.push(s[i]),s[i]=!0),c.push(t)):s[i]=t}),c}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/each.js":{"text":"!function(){'use strict';exports.each=function(t,i,u){var n,s=[],e={},o=i.operand||'title';return'value'===i.suffix&&'title'===o?t(function(t,i){$tw.utils.hop(e,i)||(e[i]=!0,s.push(i))}):'list-item'!==i.suffix?t('title'===o?function(t,i){t&&!$tw.utils.hop(e,i)&&(e[i]=!0,s.push(i))}:function(t,i){t&&(n=t.getFieldString(o),$tw.utils.hop(e,n)||(e[n]=!0,s.push(i)))}):t(function(t,i){t&&$tw.utils.each(u.wiki.getTiddlerList(i,o),function(t){$tw.utils.hop(e,t)||(e[t]=!0,s.push(t))})}),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/eachday.js":{"text":"!function(){'use strict';exports.eachday=function(e,t,s){var i=[],n=[],u=t.operand||'modified';return e(function(e,t){e&&e.fields[u]&&(e=$tw.utils.parseDate(e.fields[u]),e=(e=new Date(e).setHours(0,0,0,0))+0,-1===n.indexOf(e)&&(n.push(e),i.push(t)))}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/editiondescription.js":{"text":"!function(){'use strict';exports.editiondescription=function(t,i,n){var o,e=[];return!$tw.node||(o=$tw.utils.getEditionInfo())&&t(function(t,i){$tw.utils.hop(o,i)&&e.push(o[i].description||'')}),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/editions.js":{"text":"!function(){'use strict';exports.editions=function(t,n,i){var o,s=[];return $tw.node&&((o=$tw.utils.getEditionInfo())&&$tw.utils.each(o,function(t,n){s.push(n)}),s.sort()),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/else.js":{"text":"!function(){'use strict';exports.else=function(n,t,e){var r=[];return n(function(n,t){r.push(t)}),0===r.length?[t.operand]:r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/decodeuricomponent.js":{"text":"!function(){'use strict';exports.decodeuricomponent=function(n,t,e){var r=[];return n(function(n,t){var e=t;try{e=decodeURIComponent(t)}catch(n){}r.push(e)}),r},exports.encodeuricomponent=function(n,t,e){var r=[];return n(function(n,t){r.push(encodeURIComponent(t))}),r},exports.decodeuri=function(n,t,e){var r=[];return n(function(n,t){var e=t;try{e=decodeURI(t)}catch(n){}r.push(e)}),r},exports.encodeuri=function(n,t,e){var r=[];return n(function(n,t){r.push(encodeURI(t))}),r},exports.decodehtml=function(n,t,e){var r=[];return n(function(n,t){r.push($tw.utils.htmlDecode(t))}),r},exports.encodehtml=function(n,t,e){var r=[];return n(function(n,t){r.push($tw.utils.htmlEncode(t))}),r},exports.stringify=function(n,e,t){var r=[];return n(function(n,t){r.push($tw.utils.stringify(t,'rawunicode'===e.suffix))}),r},exports.jsonstringify=function(n,e,t){var r=[];return n(function(n,t){r.push($tw.utils.jsonStringify(t,'rawunicode'===e.suffix))}),r},exports.escaperegexp=function(n,t,e){var r=[];return n(function(n,t){r.push($tw.utils.escapeRegExp(t))}),r},exports.escapecss=function(n,t,e){var r=[];return n(function(n,t){r.push(CSS.escape(t))}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/enlist.js":{"text":"!function(){'use strict';exports.enlist=function(r,e,t){var i=!1;switch(e.suffix){case'raw':i=!0;break;case'dedupe':i=!1}var n=$tw.utils.parseStringArray(e.operand,i);if('!'!==e.prefix)return n;var s=[];return r(function(r,e){-1===n.indexOf(e)&&s.push(e)}),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/field.js":{"text":"!function(){'use strict';exports.field=function(e,i,n){var r,t=[],l=(i.suffix||i.operator||'title').toLowerCase();if('!'===i.prefix)i.regexp?e(function(e,n){e&&(null===(e=e.getFieldString(l))||i.regexp.exec(e))||t.push(n)}):e(function(e,n){e&&(null===(e=e.getFieldString(l))||e===i.operand)||t.push(n)});else if(i.regexp)e(function(e,n){!e||null!==(e=e.getFieldString(l))&&i.regexp.exec(e)&&t.push(n)});else{if(e.byField&&i.operand&&(r=e.byField(l,i.operand)))return r;e(function(e,n){!e||null!==(e=e.getFieldString(l))&&e===i.operand&&t.push(n)})}return t}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/fields.js":{"text":"!function(){'use strict';exports.fields=function(i,e,f){var s,n=[],t=(e.suffixes||[])[0]||[],u=$tw.utils.parseStringArray(e.operand);return i(function(i,e){if(i)if(-1!==t.indexOf('include'))for(s in i.fields)-1!==u.indexOf(s)&&$tw.utils.pushTop(n,s);else if(-1!==t.indexOf('exclude'))for(s in i.fields)-1===u.indexOf(s)&&$tw.utils.pushTop(n,s);else for(s in i.fields)$tw.utils.pushTop(n,s)}),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/filter.js":{"text":"!function(){'use strict';exports.filter=function(i,e,r){var t=r.wiki.compileFilter(e.operand),n=[],l='!'!==e.prefix;return i(function(i,e){0<t.call(r.wiki,r.wiki.makeTiddlerIterator([e])).length==l&&n.push(e)}),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/format/date.js":{"text":"!function(){'use strict';exports.date=function(t,n,i){var a=[];return t(function(t,i){i=$tw.utils.parseDate(i);i&&$tw.utils.isDate(i)&&'Invalid Date'!==i.toString()&&a.push($tw.utils.formatDateString(i,n||'YYYY MM DD 0hh:0mm'))}),a}}();","type":"application/javascript","module-type":"formatfilteroperator"},"$:/core/modules/filters/format/relativedate.js":{"text":"!function(){'use strict';exports.relativedate=function(t,e,i){var a=[];return t(function(t,e){e=$tw.utils.parseDate(e);e&&$tw.utils.isDate(e)&&'Invalid Date'!==e.toString()&&a.push($tw.utils.getRelativeDate(new Date-new Date(e)).description)}),a}}();","type":"application/javascript","module-type":"formatfilteroperator"},"$:/core/modules/filters/format.js":{"text":"!function(){'use strict';var f;exports.format=function(r,t,o){var e=(f||(f={},$tw.modules.applyMethods('formatfilteroperator',f)),f);if(t.suffix){e=e[t.suffix];return e?e(r,t.operand,o):[$tw.language.getString('Error/FormatFilterOperator')]}var a=[];return r(function(r,t){a.push(t)}),a}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/get.js":{"text":"!function(){'use strict';exports.get=function(t,e,n){var r=[];return t(function(t,n){!t||(t=t.getFieldString(e.operand))&&r.push(t)}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/getindex.js":{"text":"!function(){'use strict';exports.getindex=function(t,i,n){var r,a=[];return i.operand&&t(function(t,e){e=t?t.fields.title:e,(r=n.wiki.extractTiddlerDataItem(t,i.operand))&&a.push(r)}),a}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/getvariable.js":{"text":"!function(){'use strict';exports.getvariable=function(t,e,i){var n=[];return t(function(t,e){n.push(i.widget.getVariable(e)||'')}),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/has.js":{"text":"!function(){'use strict';exports.has=function(e,i,n){var u=[],t='!'===i.prefix;return'field'===i.suffix?e(t?function(e,t){e&&(!e||$tw.utils.hop(e.fields,i.operand))||u.push(t)}:function(e,t){e&&$tw.utils.hop(e.fields,i.operand)&&u.push(t)}):'index'===i.suffix?e(t?function(e,t){e&&(!e||$tw.utils.hop(n.wiki.getTiddlerDataCached(e,Object.create(null)),i.operand))||u.push(t)}:function(e,t){e&&$tw.utils.hop(n.wiki.getTiddlerDataCached(e,Object.create(null)),i.operand)&&u.push(t)}):e(t?function(e,t){e&&$tw.utils.hop(e.fields,i.operand)&&0!==e.fields[i.operand].length||u.push(t)}:function(e,t){e&&$tw.utils.hop(e.fields,i.operand)&&0!==e.fields[i.operand].length&&u.push(t)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/haschanged.js":{"text":"!function(){'use strict';exports.haschanged=function(n,t,i){var u=[];return'!'===t.prefix?n(function(n,t){0===i.wiki.getChangeCount(t)&&u.push(t)}):n(function(n,t){0<i.wiki.getChangeCount(t)&&u.push(t)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/indexes.js":{"text":"!function(){'use strict';exports.indexes=function(t,e,i){var n=[];return t(function(t,e){e=i.wiki.getTiddlerDataCached(e);e&&$tw.utils.pushTop(n,Object.keys(e))}),n.sort(),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/insertbefore.js":{"text":"!function(){'use strict';exports.insertbefore=function(e,n,r){var i=[];e(function(e,n){i.push(n)});e=r.widget&&r.widget.getVariable(n.suffix||'currentTiddler');return e!==n.operand&&(-1!==(r=i.indexOf(n.operand))&&i.splice(r,1),-1!==(r=i.indexOf(e))?i.splice(r,0,n.operand):i.push(n.operand)),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/is/binary.js":{"text":"!function(){'use strict';exports.binary=function(i,n,r){var t=[];return i('!'===n?function(i,n){r.wiki.isBinaryTiddler(n)||t.push(n)}:function(i,n){r.wiki.isBinaryTiddler(n)&&t.push(n)}),t}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/blank.js":{"text":"!function(){'use strict';exports.blank=function(n,t,u){var c=[];return n('!'===t?function(n,t){t&&c.push(t)}:function(n,t){t||c.push(t)}),c}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/current.js":{"text":"!function(){'use strict';exports.current=function(t,n,r){var e=[],u=r.widget&&r.widget.getVariable('currentTiddler');return t('!'===n?function(t,n){n!==u&&e.push(n)}:function(t,n){n===u&&e.push(n)}),e}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/draft.js":{"text":"!function(){'use strict';exports.draft=function(t,f,i){var n=[];return t('!'===f?function(t,f){t&&$tw.utils.hop(t.fields,'draft.of')||n.push(f)}:function(t,f){t&&$tw.utils.hop(t.fields,'draft.of')&&0!==t.fields['draft.of'].length&&n.push(f)}),n}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/image.js":{"text":"!function(){'use strict';exports.image=function(i,n,e){var t=[];return i('!'===n?function(i,n){e.wiki.isImageTiddler(n)||t.push(n)}:function(i,n){e.wiki.isImageTiddler(n)&&t.push(n)}),t}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/missing.js":{"text":"!function(){'use strict';exports.missing=function(i,t,s){var n=[];return i('!'===t?function(i,t){s.wiki.tiddlerExists(t)&&n.push(t)}:function(i,t){s.wiki.tiddlerExists(t)||n.push(t)}),n}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/orphan.js":{"text":"!function(){'use strict';exports.orphan=function(n,i,t){var u=[],e=t.wiki.getOrphanTitles();return n('!'===i?function(n,i){-1===e.indexOf(i)&&u.push(i)}:function(n,i){-1!==e.indexOf(i)&&u.push(i)}),u}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/shadow.js":{"text":"!function(){'use strict';exports.shadow=function(i,n,o){var s=[];return i('!'===n?function(i,n){o.wiki.isShadowTiddler(n)||s.push(n)}:function(i,n){o.wiki.isShadowTiddler(n)&&s.push(n)}),s}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/system.js":{"text":"!function(){'use strict';exports.system=function(i,s,t){var n=[];return i('!'===s?function(i,s){t.wiki.isSystemTiddler(s)||n.push(s)}:function(i,s){t.wiki.isSystemTiddler(s)&&n.push(s)}),n}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/tag.js":{"text":"!function(){'use strict';exports.tag=function(t,u,i){var n=[],o=i.wiki.getTagMap();return t('!'===u?function(t,u){$tw.utils.hop(o,u)||n.push(u)}:function(t,u){$tw.utils.hop(o,u)&&n.push(u)}),n}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/tiddler.js":{"text":"!function(){'use strict';exports.tiddler=function(i,t,n){var s=[];return i('!'===t?function(i,t){n.wiki.tiddlerExists(t)||s.push(t)}:function(i,t){n.wiki.tiddlerExists(t)&&s.push(t)}),s}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is/variable.js":{"text":"!function(){'use strict';exports.variable=function(i,n,t){var e=[];return i('!'===n?function(i,n){n in t.widget.variables||e.push(n)}:function(i,n){n in t.widget.variables&&e.push(n)}),e}}();","type":"application/javascript","module-type":"isfilteroperator"},"$:/core/modules/filters/is.js":{"text":"!function(){'use strict';var i;exports.is=function(r,t,e){var n=(i||(i={},$tw.modules.applyMethods('isfilteroperator',i)),i);if(t.operand){n=n[t.operand];return n?n(r,t.prefix,e):[$tw.language.getString('Error/IsFilterOperator')]}var o=[];return r(function(r,t){o.push(t)}),o}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/limit.js":{"text":"!function(){'use strict';exports.limit=function(n,t,i){var e=[];n(function(n,t){e.push(t)});n=Math.min(e.length,parseInt(t.operand,10));return e='!'===t.prefix?e.slice(-n):e.slice(0,n)}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/links.js":{"text":"!function(){'use strict';exports.links=function(i,t,n){var r=new $tw.utils.LinkedList;return i(function(i,t){r.pushTop(n.wiki.getTiddlerLinks(t))}),r.toArray()}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/list.js":{"text":"!function(){'use strict';exports.list=function(e,i,t){var r=[],n=$tw.utils.parseTextReference(i.operand),d=t.widget&&t.widget.getVariable('currentTiddler'),s=t.wiki.getTiddlerList(n.title||d,n.field,n.index);return'!'===i.prefix?e(function(e,i){-1===s.indexOf(i)&&r.push(i)}):r=s,r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/listed.js":{"text":"!function(){'use strict';exports.listed=function(i,t,n){var s=t.operand||'list',r=[];return i(function(i,t){$tw.utils.pushTop(r,n.wiki.findListingsOfTiddler(t,s))}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/listops.js":{"text":"!function(){'use strict';exports.order=function(t,n,r){var e=[];return'reverse'===n.operand.toLowerCase()?t(function(t,n){e.unshift(n)}):t(function(t,n){e.push(n)}),e},exports.reverse=function(t,n,r){var e=[];return t(function(t,n){e.unshift(n)}),e},exports.first=function(t,n,r){var n=$tw.utils.getInt(n.operand,1),e=[];return t(function(t,n){e.push(n)}),e.slice(0,n)},exports.last=function(t,n,r){var n=$tw.utils.getInt(n.operand,1),e=[];return t(function(t,n){e.push(n)}),e.slice(-n)},exports.rest=function(t,n,r){var n=$tw.utils.getInt(n.operand,1),e=[];return t(function(t,n){e.push(n)}),e.slice(n)},exports.butfirst=exports.rest,exports.bf=exports.rest,exports.butlast=function(t,n,r){var n=$tw.utils.getInt(n.operand,1),e=[];return t(function(t,n){e.push(n)}),e.slice(0,-n)},exports.bl=exports.butlast,exports.nth=function(t,n,r){var n=$tw.utils.getInt(n.operand,1),e=[];return t(function(t,n){e.push(n)}),e.slice(n-1,n)}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/lookup.js":{"text":"!function(){'use strict';exports.lookup=function(t,n,u){var e=[];return t(function(t,i){e.push(u.wiki.getTiddlerText(n.operand+i)||n.suffix||'')}),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/match.js":{"text":"!function(){'use strict';exports.match=function(e,o,n){var s=[];return-1!==((o.suffixes||[])[0]||[]).indexOf('caseinsensitive')?'!'===o.prefix?e(function(e,n){n.toLowerCase()!==(o.operand||'').toLowerCase()&&s.push(n)}):e(function(e,n){n.toLowerCase()===(o.operand||'').toLowerCase()&&s.push(n)}):'!'===o.prefix?e(function(e,n){n!==o.operand&&s.push(n)}):e(function(e,n){n===o.operand&&s.push(n)}),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/math.js":{"text":"!function(){'use strict';function t(o){return function(t,n,r){var u=[],e=$tw.utils.parseNumber(n.operand);return t(function(t,n){u.push($tw.utils.stringifyNumber(o($tw.utils.parseNumber(n),e)))}),u}}function n(e,o){return o=o||0,function(t,n,r){var u=[];return t(function(t,n){u.push(n)}),[$tw.utils.stringifyNumber(u.reduce(function(t,n){return e(t,$tw.utils.parseNumber(n))},o))]}}exports.negate=t(function(t){return-t}),exports.abs=t(function(t){return Math.abs(t)}),exports.ceil=t(function(t){return Math.ceil(t)}),exports.floor=t(function(t){return Math.floor(t)}),exports.round=t(function(t){return Math.round(t)}),exports.trunc=t(function(t){return Math.trunc(t)}),exports.untrunc=t(function(t){return Math.ceil(Math.abs(t))*Math.sign(t)}),exports.sign=t(function(t){return Math.sign(t)}),exports.add=t(function(t,n){return t+n}),exports.subtract=t(function(t,n){return t-n}),exports.multiply=t(function(t,n){return t*n}),exports.divide=t(function(t,n){return t/n}),exports.remainder=t(function(t,n){return t%n}),exports.max=t(function(t,n){return Math.max(t,n)}),exports.min=t(function(t,n){return Math.min(t,n)}),exports.fixed=t(function(t,n){return Number.prototype.toFixed.call(t,Math.min(Math.max(n,0),100))}),exports.precision=t(function(t,n){return Number.prototype.toPrecision.call(t,Math.min(Math.max(n,1),100))}),exports.exponential=t(function(t,n){return Number.prototype.toExponential.call(t,Math.min(Math.max(n,0),100))}),exports.power=t(function(t,n){return Math.pow(t,n)}),exports.log=t(function(t,n){return n?Math.log(t)/Math.log(n):Math.log(t)}),exports.sum=n(function(t,n){return t+n},0),exports.product=n(function(t,n){return t*n},1),exports.maxall=n(function(t,n){return Math.max(t,n)},-1/0),exports.minall=n(function(t,n){return Math.min(t,n)},1/0)}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/minlength.js":{"text":"!function(){'use strict';exports.minlength=function(n,t,e){var r=[],u=parseInt(t.operand||'',10)||0;return n(function(n,t){t.length>=u&&r.push(t)}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/modules.js":{"text":"!function(){'use strict';exports.modules=function(t,u,n){var s=[];return t(function(t,u){$tw.utils.each($tw.modules.types[u],function(t,u){s.push(u)})}),s.sort(),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/moduletypes.js":{"text":"!function(){'use strict';exports.moduletypes=function(t,s,u){var e=[];return $tw.utils.each($tw.modules.types,function(t,s){e.push(s)}),e.sort(),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/next.js":{"text":"!function(){'use strict';exports.next=function(n,t,e){var i=[],r=e.wiki.getTiddlerList(t.operand);return n(function(n,t){t=r.indexOf(t);0<++t&&t<r.length&&i.push(r[t])}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/plugintiddlers.js":{"text":"!function(){'use strict';exports.plugintiddlers=function(t,i,e){var n=[];return t(function(t,i){i=e.wiki.getPluginInfo(i)||e.wiki.getTiddlerDataCached(i,{tiddlers:[]});i&&i.tiddlers&&$tw.utils.each(i.tiddlers,function(t,i){n.push(i)})}),n.sort(),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/prefix.js":{"text":"!function(){'use strict';exports.prefix=function(n,t,r){var e=[];return'!'===t.prefix?n(function(n,r){r.substr(0,t.operand.length)!==t.operand&&e.push(r)}):n(function(n,r){r.substr(0,t.operand.length)===t.operand&&e.push(r)}),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/previous.js":{"text":"!function(){'use strict';exports.previous=function(i,n,t){var e=[],r=t.wiki.getTiddlerList(n.operand);return i(function(i,n){n=r.indexOf(n);0<=--n&&e.push(r[n])}),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/range.js":{"text":"!function(){'use strict';exports.range=function(e,r,t){for(var a,n,s,i=[],o=r.operand.split(/[,:;]/g),u=0,f=0;f<o.length;f++){if(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(o[f]))return['range: bad number \"'+o[f]+'\"'];var p=/\\.\\d+/.exec(o[f]);p&&(u=Math.max(u,p[0].length-1)),o[f]=parseFloat(o[f])}switch(o.length){case 1:if(1<=(n=o[0]))a=1;else{if(!(n<=-1))return[];a=-1}s=1;break;case 2:a=o[0],n=o[1],s=1;break;case 3:a=o[0],n=o[1],s=Math.abs(o[2])}if(0===s)return['range: increment 0 causes infinite loop'];var c=n<a?-1:1;if(1e4<(n-a)/(s*=c))return['range: too many steps (over 10K)'];var g=10010;if((n+=.5*c*Math.pow(.1,u))<a)for(f=a;n<f&&(i.push(f.toFixed(u)),!(--g<0));f+=s);else for(f=a;f<n&&(i.push(f.toFixed(u)),!(--g<0));f+=s);return g<0?['range: unexpectedly large output']:('!'===r.prefix&&i.reverse(),i)}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/reduce.js":{"text":"!function(){'use strict';exports.reduce=function(e,r,t){var n=[];e(function(e,r){n.push(r)});for(var a=t.wiki.compileFilter(r.operand),i=r.operands[1]||'',u=0;u<n.length;u++){var c=n[u],l=a.call(t.wiki,t.wiki.makeTiddlerIterator([c]),{getVariable:function(e){switch(e){case'currentTiddler':return''+c;case'accumulator':return''+i;case'index':return''+u;case'revIndex':return''+(n.length-1-u);case'length':return''+n.length;default:return t.widget.getVariable(e)}}});0<l.length&&(i=''+l[0])}return 0<n.length?[i]:[]}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/regexp.js":{"text":"!function(){'use strict';exports.regexp=function(e,t,n){function r(e,t){return e?e.getFieldString(c):'title'===c?t:null}var u,i=[],c=(t.suffix||'title').toLowerCase(),l='',s=t.operand,g=/^\\(\\?([gim]+)\\)/.exec(s);g?(l=g[1],s=s.substr(g[0].length)):(g=/\\(\\?([gim]+)\\)$/.exec(s))&&(l=g[1],s=s.substr(0,s.length-g[0].length));try{u=new RegExp(s,l)}catch(e){return[''+e]}return'!'===t.prefix?e(function(e,t){e=r(e,t);null!==e&&(u.exec(e)||i.push(t))}):e(function(e,t){e=r(e,t);null!==e&&u.exec(e)&&i.push(t)}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/removeprefix.js":{"text":"!function(){'use strict';exports.removeprefix=function(n,e,r){var t=[];return n(function(n,r){r.substr(0,e.operand.length)===e.operand&&t.push(r.substr(e.operand.length))}),t}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/removesuffix.js":{"text":"!function(){'use strict';exports.removesuffix=function(n,e,t){var r=[];return n(function(n,t){t&&t.substr(-e.operand.length)===e.operand&&r.push(t.substr(0,t.length-e.operand.length))}),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/sameday.js":{"text":"!function(){'use strict';exports.sameday=function(e,t,s){var i=[],n=t.suffix||'modified',u=new Date($tw.utils.parseDate(t.operand)).setHours(0,0,0,0);return e(function(e,t){e&&e.getFieldDay(n)===u&&i.push(t)}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/search.js":{"text":"!function(){'use strict';exports.search=function(e,i,r){var s='!'===i.prefix;if(i.suffixes){var c,n=function(e){return-1!==(i.suffixes[1]||[]).indexOf(e)},t=!1,a=i.suffixes[0]||[],f=a[0]||'';return'-'===f.charAt(0)?(c=[f.slice(1)].concat(a.slice(1)),t=!0):'*'===a[0]?(c=[],t=!0):c=a.slice(0),r.wiki.search(i.operand,{source:e,invert:s,field:c,excludeField:t,caseSensitive:n('casesensitive'),literal:n('literal'),whitespace:n('whitespace'),anchored:n('anchored'),regexp:n('regexp'),words:n('words')})}return r.wiki.search(i.operand,{source:e,invert:s})}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/shadowsource.js":{"text":"!function(){'use strict';exports.shadowsource=function(t,o,u){var r=[];return t(function(t,o){o=u.wiki.getShadowSource(o);o&&$tw.utils.pushTop(r,o)}),r.sort(),r}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/slugify.js":{"text":"!function(){'use strict';exports.slugify=function(i,u,n){var t=[];return i(function(i,u){t.push(n.wiki.slugify(u))}),t}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/sort.js":{"text":"!function(){'use strict';exports.sort=function(r,t,i){r=e(r);return i.wiki.sortTiddlers(r,t.operand||'title','!'===t.prefix,!1,!1),r},exports.nsort=function(r,t,i){r=e(r);return i.wiki.sortTiddlers(r,t.operand||'title','!'===t.prefix,!1,!0),r},exports.sortan=function(r,t,i){r=e(r);return i.wiki.sortTiddlers(r,t.operand||'title','!'===t.prefix,!1,!1,!0),r},exports.sortcs=function(r,t,i){r=e(r);return i.wiki.sortTiddlers(r,t.operand||'title','!'===t.prefix,!0,!1),r},exports.nsortcs=function(r,t,i){r=e(r);return i.wiki.sortTiddlers(r,t.operand||'title','!'===t.prefix,!0,!0),r};var e=function(r){var i=[];return r(function(r,t){i.push(t)}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/sortsub.js":{"text":"!function(){'use strict';exports.sortsub=function(t,r,e){var n=e.wiki.compileFilter(r.operand),u=[],a=[];t(function(t,r){u.push(r);var i=n.call(e.wiki,function(t){t(e.wiki.getTiddler(r),r)},{getVariable:function(t){return'currentTiddler'===t?r:e.widget.getVariable(t)}});a.push(i[0]||'')});for(var i=new Array(u.length),o=0;o<u.length;o++)i[o]=o;var c=$tw.utils.makeCompareFunction(r.suffix,{defaultType:'string',invert:'!'===r.prefix}),i=i.sort(function(t,r){return c(a[t],a[r])}),l=[];return $tw.utils.each(i,function(t){l.push(u[t])}),l}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/splitbefore.js":{"text":"!function(){'use strict';exports.splitbefore=function(t,o,n){var p=[];return t(function(t,n){n=n.split(o.operand);1===n.length?$tw.utils.pushTop(p,n[0]):$tw.utils.pushTop(p,n[0]+o.operand)}),p}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/storyviews.js":{"text":"!function(){'use strict';exports.storyviews=function(t,s,o){var e=[],r={};return $tw.modules.applyMethods('storyview',r),$tw.utils.each(r,function(t,s){e.push(s)}),e.sort(),e}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/strings.js":{"text":"!function(){'use strict';var u,i;function t(u){return function(t,e,r){var n=[];return t(function(t,r){Array.prototype.push.apply(n,u(r,e.operand||'',e.suffix||''))}),n}}exports.length=t(function(t){return[''+(''+t).length]}),exports.uppercase=t(function(t){return[(''+t).toUpperCase()]}),exports.lowercase=t(function(t){return[(''+t).toLowerCase()]}),exports.sentencecase=t(function(t){return[$tw.utils.toSentenceCase(t)]}),exports.titlecase=t(function(t){return[$tw.utils.toTitleCase(t)]}),exports.trim=function(t,r,e){var n=[],u=r.suffix||'',i=r.operand||'',o='prefix'===u?function(t,r){return[$tw.utils.trimPrefix(t,r)]}:'suffix'===u?function(t,r){return[$tw.utils.trimSuffix(t,r)]}:''===i?function(t){return[$tw.utils.trim(t)]}:function(t,r){return[$tw.utils.trimSuffix($tw.utils.trimPrefix(t,r),r)]};return t(function(t,r){Array.prototype.push.apply(n,o(r,i))}),n},exports.split=t(function(t,r){return(''+t).split(r)}),exports['enlist-input']=t(function(t,r,e){return $tw.utils.parseStringArray(''+t,'raw'===e)}),exports.join=(u=function(t,r,e){return null===t?r:t+e+r},i=null,function(t,e,r){var n=[];return t(function(t,r){n.push(r)}),0===n.length?[]:[n.reduce(function(t,r){return u(t,r,e.operand||'')},i)||'']}),exports.splitregexp=function(t,r,e){var n,u=[],i=r.suffix||'',o=(-1!==i.indexOf('m')?'m':'')+(-1!==i.indexOf('i')?'i':'');try{n=new RegExp(r.operand||'',o)}catch(t){return['RegExp error: '+t]}return t(function(t,r){Array.prototype.push.apply(u,r.split(n))}),u},exports['search-replace']=function(t,e,r){var n,u,i=[],o=e.suffixes||[],p=o[0]&&o[0][0]||'',s=(-1!==p.indexOf('g')?'g':'')+(-1!==p.indexOf('i')?'i':''),f=!(!o[1]||'regexp'!==o[1][0]);return t(function(t,r){if(r&&1<e.operands.length){n=f?e.operand:$tw.utils.escapeRegExp(e.operand);try{u=new RegExp(n,s)}catch(t){return['RegExp error: '+t]}i.push(r.replace(u,e.operands[1]))}else i.push(r)}),i},exports.pad=function(t,u,r){var i=[],o=u.operand?parseInt(u.operand):0,p=u.operands[1]||'0';return t(function(t,r){if(r&&r.length)if(r.length>=o)i.push(r);else{for(var e='',n=o-r.length;n>e.length;)e+=p;e=e.slice(0,n),u.suffix&&'suffix'===u.suffix?r+=e:r=e+r,i.push(r)}}),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/subfilter.js":{"text":"!function(){'use strict';exports.subfilter=function(i,r,e){var t=e.wiki.filterTiddlers(r.operand,e.widget,i);if('!'!==r.prefix)return t;var n=[];return i(function(i,r){-1===t.indexOf(r)&&n.push(r)}),n}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/subtiddlerfields.js":{"text":"!function(){'use strict';exports.subtiddlerfields=function(i,e,n){var u=[];return i(function(i,t){t=n.wiki.getSubTiddler(e.operand,t);if(t)for(var r in t.fields)$tw.utils.pushTop(u,r)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/suffix.js":{"text":"!function(){'use strict';exports.suffix=function(n,t,r){var u=[];return'!'===t.prefix?n(function(n,r){r.substr(-t.operand.length)!==t.operand&&u.push(r)}):n(function(n,r){r.substr(-t.operand.length)===t.operand&&u.push(r)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/tag.js":{"text":"!function(){'use strict';exports.tag=function(i,e,t){var n,r,s=[];if('strict'!==(e.suffix||'').toLowerCase()||e.operand)if('!'===e.prefix)r=t.wiki.getTiddlersWithTag(e.operand),i(function(i,e){-1===r.indexOf(e)&&s.push(e)});else if(i.byTag){if(n=i.byTag(e.operand))return n}else r=t.wiki.getTiddlersWithTag(e.operand),i(function(i,e){-1!==r.indexOf(e)&&s.push(e)}),s=t.wiki.sortByList(s,e.operand);else i(function(i,e){s.push(e)});return s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/tagging.js":{"text":"!function(){'use strict';exports.tagging=function(t,i,n){var u=[];return t(function(t,i){$tw.utils.pushTop(u,n.wiki.getTiddlersWithTag(i))}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/tags.js":{"text":"!function(){'use strict';exports.tags=function(t,s,e){var i={};return t(function(t,s){var e,f;if(t&&t.fields.tags)for(e=0,f=t.fields.tags.length;e<f;e++)i[t.fields.tags[e]]=!0}),Object.keys(i)}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/then.js":{"text":"!function(){'use strict';exports.then=function(n,r,t){var u=[];return n(function(n,t){u.push(r.operand)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/title.js":{"text":"!function(){'use strict';exports.title=function(t,n,e){var i=[];return'!'===n.prefix?t(function(t,e){t&&t.fields.title!==n.operand&&i.push(e)}):i.push(n.operand),i}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/untagged.js":{"text":"!function(){'use strict';exports.untagged=function(t,s,i){var u=[];return'!'===s.prefix?t(function(t,s){t&&$tw.utils.isArray(t.fields.tags)&&0<t.fields.tags.length&&$tw.utils.pushTop(u,s)}):t(function(t,s){t&&t.hasField('tags')&&(!$tw.utils.isArray(t.fields.tags)||0!==t.fields.tags.length)||$tw.utils.pushTop(u,s)}),u}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/variables.js":{"text":"!function(){'use strict';exports.variables=function(r,t,i){var s,e=[];for(s in i.widget.variables)e.push(s);return e.sort()}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/wikiparserrules.js":{"text":"!function(){'use strict';exports.wikiparserrules=function(t,e,r){var s=[],u=e.operand;return $tw.utils.each($tw.modules.types.wikirule,function(t){t=t.exports;u&&!t.types[u]||s.push(t.name)}),s.sort(),s}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters/x-listops.js":{"text":"!function(){'use strict';function o(e){var n=[];return e(function(e,t){n.push(t)}),n}function r(e,t,n){for(var r,n=n||1,i=0,s=t.length;i<s&&-1===(r=e.indexOf(t[i]));i++);return-1!==r?(n=(i+=n)<s?i:i-s,1<t.length?e.splice(r,1,t[n]):e.splice(r,1)):e.push(t[0]),e}exports.putbefore=function(e,t){var n=o(e),e=n.indexOf(t.operand),t=$tw.utils.getInt(t.suffix,1);return-1===e?n.slice(0,-1):n.slice(0,e).concat(n.slice(-t)).concat(n.slice(e,-t))},exports.putafter=function(e,t){var n=o(e),e=n.indexOf(t.operand),t=$tw.utils.getInt(t.suffix,1);return-1===e?n.slice(0,-1):n.slice(0,e+1).concat(n.slice(-t)).concat(n.slice(e+1,-t))},exports.replace=function(e,t){var n=o(e),e=n.indexOf(t.operand),t=$tw.utils.getInt(t.suffix,1);return-1===e?n.slice(0,-t):n.slice(0,e).concat(n.slice(-t)).concat(n.slice(e+1,-t))},exports.putfirst=function(e,t){e=o(e),t=$tw.utils.getInt(t.suffix,1);return e.slice(-t).concat(e.slice(0,-t))},exports.putlast=function(e,t){e=o(e),t=$tw.utils.getInt(t.suffix,1);return e.slice(t).concat(e.slice(0,t))},exports.move=function(e,t){var n=o(e),r=n.indexOf(t.operand),e=$tw.utils.getInt(t.suffix,1),t=n.splice(r,1),e=0<r+e?r+e:0;return n.slice(0,e).concat(t).concat(n.slice(e))},exports.allafter=function(e,t){var n=o(e),e=n.indexOf(t.operand);return-1===e?[]:t.suffix?n.slice(e):n.slice(e+1)},exports.allbefore=function(e,t){var n=o(e),e=n.indexOf(t.operand);return-1===e?[]:t.suffix?n.slice(0,e+1):n.slice(0,e)},exports.append=function(e,t){var n=$tw.utils.parseStringArray(t.operand,'true'),r=o(e),e=parseInt(t.suffix)||n.length;return 0===n.length?r:t.prefix?r.concat(n.slice(-e)):r.concat(n.slice(0,e))},exports.prepend=function(e,t){var n=$tw.utils.parseStringArray(t.operand,'true'),r=o(e),e=$tw.utils.getInt(t.suffix,n.length);return 0===n.length?r:(t.prefix?n.slice(-e):n.slice(0,e)).concat(r)},exports.remove=function(e,t){for(var n,r=$tw.utils.parseStringArray(t.operand,'true'),i=o(e),s=parseInt(t.suffix)||r.length,c=r.length-1,u=0;u<s;++u)-1!==(n=t.prefix?i.indexOf(r[c-u]):i.indexOf(r[u]))&&i.splice(n,1);return i},exports.sortby=function(e,t){e=o(e);if(!e||e.length<2)return e;var n=$tw.utils.parseStringArray(t.operand,'true');return e.sort(function(e,t){return n.indexOf(e)-n.indexOf(t)}),e},exports.unique=function(e,t){return o(e).reduce(function(e,t){return e.indexOf(t)<0&&e.push(t),e},[])},exports.toggle=function(e,t){return r(o(e),t.operands)},exports.cycle=function(e,t){var n=o(e),e=t.operand.length?$tw.utils.parseStringArray(t.operand,'true'):[''],t=$tw.utils.getInt(t.operands[1]||'',1);return t<0&&(e.reverse(),t=Math.abs(t)),r(n,e,t)}}();","type":"application/javascript","module-type":"filteroperator"},"$:/core/modules/filters.js":{"text":"!function(){'use strict';exports.parseFilter=function(e){e=e||'';for(var r,t=[],i=0,s=/(\\s+)/gm,n=/((?:\\+|\\-|~|=|\\:(\\w+))?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/gm;i<e.length;)if(s.lastIndex=i,(r=s.exec(e))&&r.index===i&&(i+=r[0].length),i<e.length){if(n.lastIndex=i,!(r=n.exec(e))||r.index!==i)throw $tw.language.getString('Error/FilterSyntax');var a={prefix:'',operators:[]};r[1]&&(a.prefix=r[1],i+=a.prefix.length,r[2]&&(a.namedPrefix=r[2])),i=r[3]?function(e,s,n){var a,o;if('['!==s.charAt(n++))throw'Missing [ in filter expression';do{if(o={},'!'===s.charAt(n)&&(o.prefix=s.charAt(n++)),-1===(a=s.substring(n).search(/[\\[\\{<\\/]/)))throw'Missing [ in filter expression';a+=n;var r=s.charAt(a);o.operator=s.substring(n,a);var t=o.operator.indexOf(':');function i(e){var r={};switch(e){case'{':r.indirect=!0,a=s.indexOf('}',n);break;case'[':a=s.indexOf(']',n);break;case'<':r.variable=!0,a=s.indexOf('>',n);break;case'/':var t=/^((?:[^\\\\\\/]|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,i=t.exec(s.substring(n));if(!i)throw'Unterminated regular expression in filter expression';o.regexp=new RegExp(i[1],i[2]),console.log('WARNING: Filter',o.operator,'has a deprecated regexp operand',o.regexp),a=n+t.lastIndex-1}if(-1===a)throw'Missing closing bracket in filter expression';o.regexp||(r.text=s.substring(n,a),o.operands.push(r)),n=a+1}for(-1<t?(o.suffix=o.operator.substring(t+1),o.operator=o.operator.substring(0,t)||'field',o.suffixes=[],$tw.utils.each(o.suffix.split(':'),function(e){o.suffixes.push([]),$tw.utils.each(e.split(','),function(e){(e=$tw.utils.trim(e))&&o.suffixes[o.suffixes.length-1].push(e)})})):''===o.operator&&(o.operator='title'),o.operands=[],n=a+1,i(r);','===s.charAt(n);){if(n++,!/^[\\[\\{<\\/]/.test(s.substring(n)))throw'Missing [ in filter expression';a=n,n++,i(s.charAt(a))}}while(e.push(o),']'!==s.charAt(n));if(']'!==s.charAt(n++))throw'Missing ] in filter expression';return n}(a.operators,e,i):r.index+r[0].length,(r[4]||r[5]||r[6])&&a.operators.push({operator:'title',operands:[{text:r[4]||r[5]||r[6]}]}),t.push(a)}return t},exports.getFilterOperators=function(){return this.filterOperators||($tw.Wiki.prototype.filterOperators={},$tw.modules.applyMethods('filteroperator',this.filterOperators)),this.filterOperators},exports.getFilterRunPrefixes=function(){return this.filterRunPrefixes||($tw.Wiki.prototype.filterRunPrefixes={},$tw.modules.applyMethods('filterrunprefix',this.filterRunPrefixes)),this.filterRunPrefixes},exports.filterTiddlers=function(e,r,t){return this.compileFilter(e).call(this,t,r)},exports.compileFilter=function(e){var r;try{r=this.parseFilter(e)}catch(t){return function(e,r){return[$tw.language.getString('Error/Filter')+': '+t]}}var o=this.getFilterOperators(),s=[],f=this;return $tw.utils.each(r,function(r){function t(e,i){var s=e,n=[],a=i&&i.getVariable('currentTiddler');if($tw.utils.each(r.operators,function(e){var r=[],t=e.operator?o[e.operator]||o.field:o.title;$tw.utils.each(e.operands,function(e){e.indirect?e.value=f.getTextReference(e.text,'',a):e.variable?e.value=i.getVariable(e.text,{defaultValue:''}):e.value=e.text,r.push(e.value)}),n=t(s,{operator:e.operator,operand:0<r.length?r[0]:void 0,operands:r,prefix:e.prefix,suffix:e.suffix,suffixes:e.suffixes,regexp:e.regexp},{wiki:f,widget:i}),s=$tw.utils.isArray(n)?f.makeTiddlerIterator(n):n}),$tw.utils.isArray(n))return n;var t=[];return n(function(e,r){t.push(r)}),t}var i=f.getFilterRunPrefixes();s.push(function(){var e={wiki:f};switch(r.prefix||''){case'':return i.or(t,e);case'=':return i.all(t,e);case'-':return i.except(t,e);case'+':return i.and(t,e);case'~':return i.else(t,e);default:return r.namedPrefix&&i[r.namedPrefix]?i[r.namedPrefix](t,e):function(e,r,t){e.clear(),e.push($tw.language.getString('Error/FilterRunPrefix'))}}}())}),$tw.perf.measure('filter: '+e,function(r,t){r?'object'==typeof r&&(r=f.makeTiddlerIterator(r)):r=f.each;var i=new $tw.utils.LinkedList;return $tw.utils.each(s,function(e){e(i,r,t)}),i.toArray()})}}();","type":"application/javascript","module-type":"wikimethod"},"$:/core/modules/indexers/backlinks-indexer.js":{"text":"!function(){'use strict';function t(t){this.wiki=t}t.prototype.init=function(){this.index=null},t.prototype.rebuild=function(){this.index=null},t.prototype._getLinks=function(t){t=this.wiki.parseText(t.fields.type,t.fields.text,{});return t?this.wiki.extractLinks(t.tree):[]},t.prototype.update=function(i){var t,e,n;this.index&&(t=[],e=[],n=this,i.old.exists&&(e=this._getLinks(i.old.tiddler)),i.new.exists&&(t=this._getLinks(i.new.tiddler)),$tw.utils.each(e,function(t){n.index[t]&&delete n.index[t][i.old.tiddler.fields.title]}),$tw.utils.each(t,function(t){n.index[t]||(n.index[t]=Object.create(null)),n.index[t][i.new.tiddler.fields.title]=!0}))},t.prototype.lookup=function(t){var e;return this.index||(this.index=Object.create(null),(e=this).wiki.forEachTiddler(function(i,t){t=e._getLinks(t);$tw.utils.each(t,function(t){e.index[t]||(e.index[t]=Object.create(null)),e.index[t][i]=!0})})),this.index[t]?Object.keys(this.index[t]):[]},exports.BacklinksIndexer=t}();","type":"application/javascript","module-type":"indexer"},"$:/core/modules/indexers/field-indexer.js":{"text":"!function(){'use strict';function i(i){this.wiki=i}i.prototype.init=function(){this.index=null,this.maxIndexedValueLength=128,this.addIndexMethods()},i.prototype.setMaxIndexedValueLength=function(i){this.index=null,this.maxIndexedValueLength=i},i.prototype.addIndexMethods=function(){var n=this;this.wiki.each.byField=function(i,e){var t=n.wiki.allTitles(),e=n.lookup(i,e);return e&&e.filter(function(i){return-1!==t.indexOf(i)})},this.wiki.eachShadow.byField=function(i,e){var t=n.wiki.allShadowTitles(),e=n.lookup(i,e);return e&&e.filter(function(i){return-1!==t.indexOf(i)})},this.wiki.eachTiddlerPlusShadows.byField=function(i,e){e=n.lookup(i,e);return e?e.slice(0):null},this.wiki.eachShadowPlusTiddlers.byField=function(i,e){e=n.lookup(i,e);return e?e.slice(0):null}},i.prototype.rebuild=function(){this.index=null},i.prototype.buildIndexForField=function(t){var n=this;this.index=this.index||Object.create(null),this.index[t]=Object.create(null);var d=this.index[t];this.wiki.eachTiddlerPlusShadows(function(i,e){t in i.fields&&((i=i.getFieldString(t)).length<n.maxIndexedValueLength&&(d[i]=d[i]||[],d[i].push(e)))})},i.prototype.update=function(t){var n=this;null!==this.index&&(t.old.tiddler&&$tw.utils.each(this.index,function(i,e){e in t.old.tiddler.fields&&(!(i=i[t.old.tiddler.getFieldString(e)])||-1!==(e=i.indexOf(t.old.tiddler.fields.title))&&i.splice(e,1))}),t.new.tiddler&&$tw.utils.each(this.index,function(i,e){e in t.new.tiddler.fields&&((e=t.new.tiddler.getFieldString(e)).length<n.maxIndexedValueLength&&(i[e]=i[e]||[],i[e].push(t.new.tiddler.fields.title)))}))},i.prototype.lookup=function(i,e){return e.length>=this.maxIndexedValueLength?null:(null!==this.index&&this.index[i]||this.buildIndexForField(i),this.index[i][e]||[])},exports.FieldIndexer=i}();","type":"application/javascript","module-type":"indexer"},"$:/core/modules/indexers/tag-indexer.js":{"text":"!function(){'use strict';function t(t){this.wiki=t}function i(t,i){this.indexer=t,this.iteratorMethod=i,this.index=null}t.prototype.init=function(){this.subIndexers=[new i(this,'each'),new i(this,'eachShadow'),new i(this,'eachTiddlerPlusShadows'),new i(this,'eachShadowPlusTiddlers')],$tw.utils.each(this.subIndexers,function(t){t.addIndexMethod()})},t.prototype.rebuild=function(){$tw.utils.each(this.subIndexers,function(t){t.rebuild()})},t.prototype.update=function(i){$tw.utils.each(this.subIndexers,function(t){t.update(i)})},i.prototype.addIndexMethod=function(){var i=this;this.indexer.wiki[this.iteratorMethod].byTag=function(t){return i.lookup(t).slice(0)}},i.prototype.rebuild=function(){var e=this;this.index=Object.create(null),this.indexer.wiki[this.iteratorMethod](function(t,i){$tw.utils.each(t.fields.tags,function(t){e.index[t]?e.index[t].titles.push(i):e.index[t]={isSorted:!1,titles:[i]}})})},i.prototype.update=function(t){this.index=null},i.prototype.lookup=function(t){null===this.index&&this.rebuild();var i=this.index[t];return i?(i.isSorted||(this.indexer.wiki.sortByList&&(i.titles=this.indexer.wiki.sortByList(i.titles,t)),i.isSorted=!0),i.titles):[]},exports.TagIndexer=t}();","type":"application/javascript","module-type":"indexer"},"$:/core/modules/info/platform.js":{"text":"!function(){'use strict';exports.getInfoTiddlerFields=function(e){var t,o,n,i=function(t){return t?'yes':'no'},r=[];return r.push({title:'$:/info/browser',text:i(!!$tw.browser)}),r.push({title:'$:/info/node',text:i(!!$tw.node)}),r.push({title:'$:/info/startup-timestamp',text:$tw.utils.stringifyDate(new Date)}),$tw.browser&&((t=function(t,e){r.push({title:'$:/info/url/'+t,text:e})})('full',(i=document.location).toString().split('#')[0]),t('host',i.host),t('hostname',i.hostname),t('protocol',i.protocol),t('port',i.port),t('pathname',i.pathname),t('search',i.search),t('origin',i.origin),r.push({title:'$:/info/browser/screen/width',text:window.screen.width.toString()}),r.push({title:'$:/info/browser/screen/height',text:window.screen.height.toString()}),o=window.matchMedia('(prefers-color-scheme: dark)'),n=function(){return{title:'$:/info/darkmode',text:o.matches?'yes':'no'}},r.push(n()),o.addListener(function(t){e([n()])}),r.push({title:'$:/info/browser/language',text:navigator.language||''})),r}}();","type":"application/javascript","module-type":"info"},"$:/core/modules/keyboard.js":{"text":"!function(){'use strict';var e={cancel:3,help:6,backspace:8,tab:9,clear:12,return:13,enter:13,pause:19,escape:27,space:32,page_up:33,page_down:34,end:35,home:36,left:37,up:38,right:39,down:40,printscreen:44,insert:45,delete:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,firefoxsemicolon:59,firefoxequals:61,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,numpad0:96,numpad1:97,numpad2:98,numpad3:99,numpad4:100,numpad5:101,numpad6:102,numpad7:103,numpad8:104,numpad9:105,multiply:106,add:107,separator:108,subtract:109,decimal:110,divide:111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,f13:124,f14:125,f15:126,f16:127,f17:128,f18:129,f19:130,f20:131,f21:132,f22:133,f23:134,f24:135,firefoxminus:173,semicolon:186,equals:187,comma:188,dash:189,period:190,slash:191,backquote:192,openbracket:219,backslash:220,closebracket:221,quote:222};function t(t){var s=this;this.namedKeys=e,this.keyNames=[],$tw.utils.each(e,function(t,e){s.keyNames[t]=e.substr(0,1).toUpperCase()+e.substr(1)}),this.metaKeyName=$tw.platform.isMac?'cmd-':'win-',this.shortcutKeysList=[],this.shortcutActionList=[],this.shortcutParsedList=[],this.lookupNames=['shortcuts'],this.lookupNames.push($tw.platform.isMac?'shortcuts-mac':'shortcuts-not-mac'),this.lookupNames.push($tw.platform.isWindows?'shortcuts-windows':'shortcuts-not-windows'),this.lookupNames.push($tw.platform.isLinux?'shortcuts-linux':'shortcuts-not-linux'),this.updateShortcutLists(this.getShortcutTiddlerList()),$tw.wiki.addEventListener('change',function(t){s.handleShortcutChanges(t)})}t.prototype.getModifierKeys=function(){return[16,17,18,20,91,93,224]},t.prototype.parseKeyDescriptor=function(t){for(var e=t.split(/\\+|\\-/),s={keyCode:0,shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1},r=0;r<e.length;r++){var i=e[r].toLowerCase();i.charCodeAt(0);'ctrl'===i?s.ctrlKey=!0:'shift'===i?s.shiftKey=!0:'alt'===i?s.altKey=!0:'meta'!==i&&'cmd'!==i&&'win'!==i||(s.metaKey=!0),this.namedKeys[i]&&(s.keyCode=this.namedKeys[i])}return s.keyCode?s:null},t.prototype.parseKeyDescriptors=function(t,s){var r=this;(s=s||{}).stack=s.stack||[];var i=s.wiki||$tw.wiki;if('string'==typeof t&&''===t)return[];$tw.utils.isArray(t)||(t=t.split(' '));var o=[];return $tw.utils.each(t,function(t){var e;'(('===t.substr(0,2)&&'))'===t.substr(-2,2)?-1===s.stack.indexOf(t)&&(s.stack.push(t),e=t.substring(2,t.length-2),$tw.utils.each(r.lookupNames,function(t){t=t,(t=i.getTiddlerText('$:/config/'+t+'/'+e))&&o.push.apply(o,r.parseKeyDescriptors(t,s))})):o.push(r.parseKeyDescriptor(t))}),o},t.prototype.getPrintableShortcuts=function(t){var e=this,s=[];return $tw.utils.each(t,function(t){t&&s.push((t.ctrlKey?'ctrl-':'')+(t.shiftKey?'shift-':'')+(t.altKey?'alt-':'')+(t.metaKey?e.metaKeyName:'')+e.keyNames[t.keyCode])}),s},t.prototype.checkKeyDescriptor=function(t,e){return e&&t.keyCode===e.keyCode&&t.shiftKey===e.shiftKey&&t.altKey===e.altKey&&t.ctrlKey===e.ctrlKey&&t.metaKey===e.metaKey},t.prototype.checkKeyDescriptors=function(t,e){for(var s=0;s<e.length;s++)if(this.checkKeyDescriptor(t,e[s]))return!0;return!1},t.prototype.getEventModifierKeyDescriptor=function(t){return!t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?!t.shiftKey||t.ctrlKey||t.altKey||t.metaKey?t.ctrlKey&&t.shiftKey&&!t.altKey&&!t.metaKey?'ctrl-shift':!t.altKey||t.shiftKey||t.ctrlKey||t.metaKey?t.altKey&&t.shiftKey&&!t.ctrlKey&&!t.metaKey?'alt-shift':t.altKey&&t.ctrlKey&&!t.shiftKey&&!t.metaKey?'ctrl-alt':t.altKey&&t.shiftKey&&t.ctrlKey&&!t.metaKey?'ctrl-alt-shift':!t.metaKey||t.ctrlKey||t.shiftKey||t.altKey?t.metaKey&&t.ctrlKey&&!t.shiftKey&&!t.altKey?'meta-ctrl':t.metaKey&&t.ctrlKey&&t.shiftKey&&!t.altKey?'meta-ctrl-shift':t.metaKey&&t.ctrlKey&t.shiftKey&&t.altKey?'meta-ctrl-alt-shift':'normal':'meta':'alt':'shift':'ctrl'},t.prototype.getShortcutTiddlerList=function(){return $tw.wiki.getTiddlersWithTag('$:/tags/KeyboardShortcut')},t.prototype.updateShortcutLists=function(t){this.shortcutTiddlers=t;for(var e=0;e<t.length;e++){var s=t[e],s=$tw.wiki.getTiddler(s).fields;this.shortcutKeysList[e]=void 0!==s.key?s.key:void 0,this.shortcutActionList[e]=s.text,this.shortcutParsedList[e]=void 0!==this.shortcutKeysList[e]?this.parseKeyDescriptors(this.shortcutKeysList[e]):void 0}},t.prototype.handleKeydownEvent=function(t){for(var e,s,r=0;r<this.shortcutTiddlers.length;r++)void 0!==this.shortcutParsedList[r]&&this.checkKeyDescriptors(t,this.shortcutParsedList[r])&&(e=this.shortcutParsedList[r],s=this.shortcutActionList[r]);return void 0!==e&&(t.preventDefault(),t.stopPropagation(),$tw.rootWidget.invokeActionString(s,$tw.rootWidget),!0)},t.prototype.detectNewShortcuts=function(s){var r=[],i=!1;return $tw.utils.each(this.lookupNames,function(t){var e='$:/config/'+t+'/';Object.keys(s).forEach(function(t){t.substr(0,t.lastIndexOf('/')+1)===e&&(r.push(t),i=!0)})}),!!i&&$tw.utils.hopArray(s,r)},t.prototype.handleShortcutChanges=function(t){var e=this.getShortcutTiddlerList();!$tw.utils.hopArray(t,this.shortcutTiddlers)&&(!$tw.utils.hopArray(t,e)&&!this.detectNewShortcuts(t))||this.updateShortcutLists(e)},exports.KeyboardManager=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/language.js":{"text":"!function(){'use strict';function i(i){i=i||'',this.wiki=i.wiki||$tw.wiki}i.prototype.getString=function(i,t){return t=t||{},i='$:/language/'+i,this.wiki.renderTiddler('text/plain',i,{variables:t.variables})},i.prototype.getRawString=function(i){return i='$:/language/'+i,this.wiki.getTiddlerText(i)},exports.Language=i}();","type":"application/javascript","module-type":"global"},"$:/core/modules/macros/changecount.js":{"text":"!function(){'use strict';exports.name='changecount',exports.params=[],exports.run=function(){return this.wiki.getChangeCount(this.getVariable('currentTiddler'))+''}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/contrastcolour.js":{"text":"!function(){'use strict';exports.name='contrastcolour',exports.params=[{name:'target'},{name:'fallbackTarget'},{name:'colourA'},{name:'colourB'}],exports.run=function(r,t,a,e){var o=$tw.utils.parseCSSColor(r)||$tw.utils.parseCSSColor(t);if(!o)return a;r=$tw.utils.parseCSSColor(a),t=$tw.utils.parseCSSColor(e);if(r&&!t)return r;if(t&&!r)return t;if(!r&&!t)return[255-o[0],255-o[1],255-o[2],o[3]];o=.299*o[0]+.587*o[1]+.114*o[2],r=.299*r[0]+.587*r[1]+.114*r[2],t=.299*t[0]+.587*t[1]+.114*t[2];return Math.abs(o-r)>Math.abs(o-t)?a:e}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/csvtiddlers.js":{"text":"!function(){'use strict';function a(e){return'\"'+e.replace(/\"/gm,'\"\"')+'\"'}exports.name='csvtiddlers',exports.params=[{name:'filter'},{name:'format'}],exports.run=function(e,i){var r,t,n=this.wiki.filterTiddlers(e),s=[];for(d=0;d<n.length;d++)for(t in(r=this.wiki.getTiddler(n[d])).fields)-1===s.indexOf(t)&&s.push(t);s.sort(),'title text modified modifier created creator'.split(' ').reverse().forEach(function(e,i){var r=s.indexOf(e);-1!==r&&(s.splice(r,1),s.unshift(e))});var o=[],f=[];s.forEach(function(e){f.push(a(e))}),o.push(f.join(','));for(var d=0;d<n.length;d++){for(f=[],r=this.wiki.getTiddler(n[d]),t=0;t<s.length;t++)f.push(a(r&&r.getFieldString(s[t])||''));o.push(f.join(','))}return o.join('\\n')}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/displayshortcuts.js":{"text":"!function(){'use strict';exports.name='displayshortcuts',exports.params=[{name:'shortcuts'},{name:'prefix'},{name:'separator'},{name:'suffix'}],exports.run=function(e,r,t,a){e=$tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(e,{wiki:this.wiki}));return 0<e.length?(e.sort(function(e,r){return e.toLowerCase().localeCompare(r.toLowerCase())}),r+e.join(t)+a):''}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/jsontiddler.js":{"text":"!function(){'use strict';exports.name='jsontiddler',exports.params=[{name:'title'}],exports.run=function(e){var r=!!(e=e||this.getVariable('currentTiddler'))&&this.wiki.getTiddler(e),t=new Object;if(r)for(var i in r.fields)t[i]=r.getFieldString(i);return JSON.stringify(t,null,$tw.config.preferences.jsonSpaces)}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/jsontiddlers.js":{"text":"!function(){'use strict';exports.name='jsontiddlers',exports.params=[{name:'filter'},{name:'spaces'}],exports.run=function(s,t){return this.wiki.getTiddlersAsJson(s,$tw.utils.parseInt(t))}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/makedatauri.js":{"text":"!function(){'use strict';exports.name='makedatauri',exports.params=[{name:'text'},{name:'type'},{name:'_canonical_uri'}],exports.run=function(t,a,e){return $tw.utils.makeDataUri(t,a,e)}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/now.js":{"text":"!function(){'use strict';exports.name='now',exports.params=[{name:'format'}],exports.run=function(t){return $tw.utils.formatDateString(new Date,t||'0hh:0mm, DDth MMM YYYY')}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/qualify.js":{"text":"!function(){'use strict';exports.name='qualify',exports.params=[{name:'title'}],exports.run=function(t){return t+'-'+this.getStateQualifier()}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/resolvepath.js":{"text":"!function(){'use strict';exports.name='resolvepath',exports.params=[{name:'source'},{name:'root'}],exports.run=function(e,t){return $tw.utils.resolvePath(e,t)}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/unusedtitle.js":{"text":"!function(){'use strict';exports.name='unusedtitle',exports.params=[{name:'baseName'},{name:'options'}],exports.run=function(e,t){return e=e||$tw.language.getString('DefaultNewTiddlerTitle'),this.wiki.generateNewTitle(e,t)}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/macros/version.js":{"text":"!function(){'use strict';exports.name='version',exports.params=[],exports.run=function(){return $tw.version}}();","type":"application/javascript","module-type":"macro"},"$:/core/modules/parsers/audioparser.js":{"text":"!function(){'use strict';function t(t,e,i){var a={type:'element',tag:'audio',attributes:{controls:{type:'string',value:'controls'},style:{type:'string',value:'width: 100%; object-fit: contain'}}};i._canonical_uri?a.attributes.src={type:'string',value:i._canonical_uri}:e&&(a.attributes.src={type:'string',value:'data:'+t+';base64,'+e}),this.tree=[a]}exports['audio/ogg']=t,exports['audio/mpeg']=t,exports['audio/mp3']=t,exports['audio/mp4']=t}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/binaryparser.js":{"text":"!function(){'use strict';exports['application/octet-stream']=function(t,e,i){var r={type:'element',tag:'p',children:[{type:'transclude',attributes:{tiddler:{type:'string',value:'$:/core/ui/BinaryWarning'}}}]},a={type:'element',tag:'a',attributes:{title:{type:'indirect',textReference:'!!title'},download:{type:'indirect',textReference:'!!title'}},children:[{type:'transclude',attributes:{tiddler:{type:'string',value:'$:/core/images/export-button'}}}]};i._canonical_uri?a.attributes.href={type:'string',value:i._canonical_uri}:e&&(a.attributes.href={type:'string',value:'data:'+t+';base64,'+e});a={type:'element',tag:'div',attributes:{class:{type:'string',value:'tc-binary-warning'}},children:[r,a]};this.tree=[a]}}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/csvparser.js":{"text":"!function(){'use strict';exports['text/csv']=function(t,e,l){this.tree=[{type:'scrollable',children:[{type:'element',tag:'table',children:[{type:'element',tag:'tbody',children:[]}],attributes:{class:{type:'string',value:'tc-csv-table'}}}]}];for(var r=e.split(/\\r?\\n/gm),n='th',i=0;i<r.length;i++){var c=r[i];if(c){for(var h={type:'element',tag:'tr',children:[]},s=c.split(','),a=0;a<s.length;a++)h.children.push({type:'element',tag:n,children:[{type:'text',text:s[a]}]});n='td',this.tree[0].children[0].children[0].children.push(h)}}}}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/htmlparser.js":{"text":"!function(){'use strict';exports['text/html']=function(t,e,n){var a;n._canonical_uri?a=n._canonical_uri:e&&(a='data:text/html;charset=utf-8,'+encodeURIComponent(e)),this.tree=[{type:'element',tag:'iframe',attributes:{src:{type:'string',value:a},sandbox:{type:'string',value:''}}}]}}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/imageparser.js":{"text":"!function(){'use strict';function e(e,t,i){var a={type:'element',tag:'img',attributes:{}};i._canonical_uri?a.attributes.src={type:'string',value:i._canonical_uri}:t&&(a.attributes.src='image/svg+xml'===e||'.svg'===e?{type:'string',value:'data:image/svg+xml,'+encodeURIComponent(t)}:{type:'string',value:'data:'+e+';base64,'+t}),this.tree=[a]}exports['image/svg+xml']=e,exports['image/jpg']=e,exports['image/jpeg']=e,exports['image/png']=e,exports['image/gif']=e,exports['image/webp']=e,exports['image/heic']=e,exports['image/heif']=e,exports['image/x-icon']=e,exports['image/vnd.microsoft.icon']=e}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/utils/parseutils.js":{"text":"!function(){'use strict';exports.parseWhiteSpace=function(t,e){for(var r,a=e;' '===(r=t.charAt(a))||'\\f'===r||'\\n'===r||'\\r'===r||'\\t'===r||'\\v'===r||' '===r;)a++;return a===e?null:{type:'whitespace',start:e,end:a}},exports.skipWhiteSpace=function(t,e){for(var r;;){if(' '!==(r=t.charAt(e))&&'\\f'!==r&&'\\n'!==r&&'\\r'!==r&&'\\t'!==r&&'\\v'!==r&&' '!==r)return e;e++}},exports.parseTokenString=function(t,e,r){return t.indexOf(r,e)===e?{type:'token',value:r,start:e,end:e+r.length}:null},exports.parseTokenRegExp=function(t,e,r){var a={type:'regexp',start:e};return r.lastIndex=e,a.match=r.exec(t),a.match&&a.match.index===e?(a.end=e+a.match[0].length,a):null},exports.parseStringLiteral=function(t,e){var r={type:'string',start:e},a=/(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;a.lastIndex=e;t=a.exec(t);return t&&t.index===e?(r.value=void 0!==t[1]?t[1]:void 0!==t[2]?t[2]:t[3],r.end=e+t[0].length,r):null},exports.parseMacroParameter=function(t,e){var r={type:'macro-parameter',start:e};e=$tw.utils.skipWhiteSpace(t,e);t=$tw.utils.parseTokenRegExp(t,e,/(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|((?:(?:>(?!>))|[^\\s>\"'])+)))/g);return t?(e=t.end,r.value=void 0!==t.match[2]?t.match[2]:void 0!==t.match[3]?t.match[3]:void 0!==t.match[4]?t.match[4]:void 0!==t.match[5]?t.match[5]:void 0!==t.match[6]?t.match[6]:'',t.match[1]&&(r.name=t.match[1]),r.end=e,r):null},exports.parseMacroInvocation=function(t,e){var r={type:'macrocall',start:e,params:[]};e=$tw.utils.skipWhiteSpace(t,e);var a=$tw.utils.parseTokenString(t,e,'<<');if(!a)return null;e=a.end;var n=$tw.utils.parseTokenRegExp(t,e,/([^\\s>\"'=]+)/g);if(!n)return null;r.name=n.match[1],e=n.end;for(var s=$tw.utils.parseMacroParameter(t,e);s;)r.params.push(s),e=s.end,s=$tw.utils.parseMacroParameter(t,e);return e=$tw.utils.skipWhiteSpace(t,e),(a=$tw.utils.parseTokenString(t,e,'>>'))?(e=a.end,r.end=e,r):null},exports.parseAttribute=function(t,e){var r={start:e};e=$tw.utils.skipWhiteSpace(t,e);var a=$tw.utils.parseTokenRegExp(t,e,/([^\\/\\s>\"'=]+)/g);if(!a)return null;r.name=a.match[1],e=a.end,e=$tw.utils.skipWhiteSpace(t,e);a=$tw.utils.parseTokenString(t,e,'=');return a?(e=a.end,e=$tw.utils.skipWhiteSpace(t,e),(a=$tw.utils.parseStringLiteral(t,e))?(e=a.end,r.type='string',r.value=a.value):(a=$tw.utils.parseTokenRegExp(t,e,/\\{\\{\\{(.+?)\\}\\}\\}/g))?(e=a.end,r.type='filtered',r.filter=a.match[1]):(a=$tw.utils.parseTokenRegExp(t,e,/\\{\\{([^\\}]+)\\}\\}/g))?(e=a.end,r.type='indirect',r.textReference=a.match[1]):(a=$tw.utils.parseTokenRegExp(t,e,/([^\\/\\s<>\"'=]+)/g))?(e=a.end,r.type='string',r.value=a.match[1]):(t=$tw.utils.parseMacroInvocation(t,e))?(e=t.end,r.type='macro',r.value=t):(r.type='string',r.value='true')):(r.type='string',r.value='true'),r.end=e,r}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/parsers/pdfparser.js":{"text":"!function(){'use strict';exports['application/pdf']=function(t,a,e){var i={type:'element',tag:'embed',attributes:{}};e._canonical_uri?i.attributes.src={type:'string',value:e._canonical_uri}:a&&(i.attributes.src={type:'string',value:'data:application/pdf;base64,'+a}),this.tree=[i]}}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/textparser.js":{"text":"!function(){'use strict';function t(t,e,i){this.tree=[{type:'codeblock',attributes:{code:{type:'string',value:e},language:{type:'string',value:t}}}]}exports['text/plain']=t,exports['text/x-tiddlywiki']=t,exports['application/javascript']=t,exports['application/json']=t,exports['text/css']=t,exports['application/x-tiddler-dictionary']=t}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/videoparser.js":{"text":"!function(){'use strict';function t(t,e,i){var o={type:'element',tag:'video',attributes:{controls:{type:'string',value:'controls'},style:{type:'string',value:'width: 100%; object-fit: contain'}}};i._canonical_uri?o.attributes.src={type:'string',value:i._canonical_uri}:e&&(o.attributes.src={type:'string',value:'data:'+t+';base64,'+e}),this.tree=[o]}exports['video/ogg']=t,exports['video/webm']=t,exports['video/mp4']=t,exports['video/quicktime']=t}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/wikiparser/rules/codeblock.js":{"text":"!function(){'use strict';exports.name='codeblock',exports.types={block:!0},exports.init=function(s){this.parser=s,this.matchRegExp=/```([\\w-]*)\\r?\\n/gm},exports.parse=function(){var s=/(\\r?\\n```$)/gm;this.parser.pos=this.matchRegExp.lastIndex,s.lastIndex=this.parser.pos;var e,s=s.exec(this.parser.source);return s?(e=this.parser.source.substring(this.parser.pos,s.index),this.parser.pos=s.index+s[0].length):(e=this.parser.source.substr(this.parser.pos),this.parser.pos=this.parser.sourceLength),[{type:'codeblock',attributes:{code:{type:'string',value:e},language:{type:'string',value:this.match[1]}}}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/codeinline.js":{"text":"!function(){'use strict';exports.name='codeinline',exports.types={inline:!0},exports.init=function(s){this.parser=s,this.matchRegExp=/(``?)/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var s=new RegExp(this.match[1],'mg');s.lastIndex=this.parser.pos;var e,s=s.exec(this.parser.source);return s?(e=this.parser.source.substring(this.parser.pos,s.index),this.parser.pos=s.index+s[0].length):(e=this.parser.source.substr(this.parser.pos),this.parser.pos=this.parser.sourceLength),[{type:'element',tag:'code',children:[{type:'text',text:e}]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/commentblock.js":{"text":"!function(){'use strict';exports.name='commentblock',exports.types={block:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/<!--/gm,this.endMatchRegExp=/-->/gm},exports.findNextMatch=function(t){if(this.matchRegExp.lastIndex=t,this.match=this.matchRegExp.exec(this.parser.source),this.match&&(this.endMatchRegExp.lastIndex=this.match.index+this.match[0].length,this.endMatch=this.endMatchRegExp.exec(this.parser.source),this.endMatch))return this.match.index},exports.parse=function(){return this.parser.pos=this.endMatchRegExp.lastIndex,[]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/commentinline.js":{"text":"!function(){'use strict';exports.name='commentinline',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/<!--/gm,this.endMatchRegExp=/-->/gm},exports.findNextMatch=function(t){if(this.matchRegExp.lastIndex=t,this.match=this.matchRegExp.exec(this.parser.source),this.match&&(this.endMatchRegExp.lastIndex=this.match.index+this.match[0].length,this.endMatch=this.endMatchRegExp.exec(this.parser.source),this.endMatch))return this.match.index},exports.parse=function(){return this.parser.pos=this.endMatchRegExp.lastIndex,[]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/dash.js":{"text":"!function(){'use strict';exports.name='dash',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/-{2,3}(?!-)/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'entity',entity:2===this.match[0].length?'–':'—'}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js":{"text":"!function(){'use strict';exports.name='bold',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/''/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'strong',children:this.parser.parseInlineRun(/''/gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js":{"text":"!function(){'use strict';exports.name='italic',exports.types={inline:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/\\/\\//gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'em',children:this.parser.parseInlineRun(/\\/\\//gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js":{"text":"!function(){'use strict';exports.name='strikethrough',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/~~/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'strike',children:this.parser.parseInlineRun(/~~/gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js":{"text":"!function(){'use strict';exports.name='subscript',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/,,/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'sub',children:this.parser.parseInlineRun(/,,/gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js":{"text":"!function(){'use strict';exports.name='superscript',exports.types={inline:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/\\^\\^/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'sup',children:this.parser.parseInlineRun(/\\^\\^/gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js":{"text":"!function(){'use strict';exports.name='underscore',exports.types={inline:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/__/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'u',children:this.parser.parseInlineRun(/__/gm,{eatTerminator:!0})}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/entity.js":{"text":"!function(){'use strict';exports.name='entity',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/(&#?[a-zA-Z0-9]{2,8};)/gm},exports.parse=function(){this.match[1];return this.parser.pos=this.matchRegExp.lastIndex,[{type:'entity',entity:this.match[0]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/extlink.js":{"text":"!function(){'use strict';exports.name='extlink',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,'~'===this.match[0].substr(0,1)?[{type:'text',text:this.match[0].substr(1)}]:[{type:'element',tag:'a',attributes:{href:{type:'string',value:this.match[0]},class:{type:'string',value:'tc-tiddlylink-external'},target:{type:'string',value:'_blank'},rel:{type:'string',value:'noopener noreferrer'}},children:[{type:'text',text:this.match[0]}]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js":{"text":"!function(){'use strict';exports.name='filteredtranscludeblock',exports.types={block:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t=this.match[1],s=this.match[2],e=$tw.utils.trim(this.match[3]),i=this.match[4],r=this.match[5],t={type:'list',attributes:{filter:{type:'string',value:t}},isBlock:!0};return s&&(t.attributes.tooltip={type:'string',value:s}),e&&(t.attributes.template={type:'string',value:e}),i&&(t.attributes.style={type:'string',value:i}),r&&(t.attributes.itemClass={type:'string',value:r.split('.').join(' ')}),[t]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js":{"text":"!function(){'use strict';exports.name='filteredtranscludeinline',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t=this.match[1],e=this.match[2],i=$tw.utils.trim(this.match[3]),s=this.match[4],r=this.match[5],t={type:'list',attributes:{filter:{type:'string',value:t}}};return e&&(t.attributes.tooltip={type:'string',value:e}),i&&(t.attributes.template={type:'string',value:i}),s&&(t.attributes.style={type:'string',value:s}),r&&(t.attributes.itemClass={type:'string',value:r.split('.').join(' ')}),[t]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js":{"text":"!function(){'use strict';exports.name='hardlinebreaks',exports.types={inline:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/\"\"\"(?:\\r?\\n)?/gm},exports.parse=function(){var e,s=/(\"\"\")|(\\r?\\n)/gm,r=[];for(this.parser.pos=this.matchRegExp.lastIndex;r.push.apply(r,this.parser.parseInlineRun(s,{eatTerminator:!1})),s.lastIndex=this.parser.pos,(e=s.exec(this.parser.source))&&(this.parser.pos=s.lastIndex,e[2]&&r.push({type:'element',tag:'br'})),e&&!e[1];);return r}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/heading.js":{"text":"!function(){'use strict';exports.name='heading',exports.types={block:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/(!{1,6})/gm},exports.parse=function(){var e=this.match[1].length;this.parser.pos=this.matchRegExp.lastIndex;var s=this.parser.parseClasses();this.parser.skipWhitespace({treatNewlinesAsNonWhitespace:!0});var t=this.parser.parseInlineRun(/(\\r?\\n)/gm);return[{type:'element',tag:'h'+e,attributes:{class:{type:'string',value:s.join(' ')}},children:t}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/horizrule.js":{"text":"!function(){'use strict';exports.name='horizrule',exports.types={block:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/-{3,}\\r?(?:\\n|$)/gm},exports.parse=function(){return this.parser.pos=this.matchRegExp.lastIndex,[{type:'element',tag:'hr'}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/html.js":{"text":"!function(){'use strict';exports.name='html',exports.types={inline:!0,block:!0},exports.init=function(t){this.parser=t},exports.findNextMatch=function(t){return this.nextTag=this.findNextTag(this.parser.source,t,{requireLineBreak:this.is.block}),this.nextTag?this.nextTag.start:void 0},exports.parse=function(){var t=this.nextTag;this.nextTag=null,this.parser.pos=t.end;var e,r=!t.isSelfClosing&&!!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);return t.isBlock=this.is.block||r,t.isSelfClosing||-1!==$tw.config.htmlVoidElements.indexOf(t.tag)||(e='</'+$tw.utils.escapeRegExp(t.tag)+'>',r?t.children=this.parser.parseBlocks(e):(e=new RegExp('('+e+')','mg'),t.children=this.parser.parseInlineRun(e,{eatTerminator:!0}))),[t]},exports.parseTag=function(t,e,r){r=r||{};var n,s={type:'element',start:e,attributes:{}};if(e=$tw.utils.skipWhiteSpace(t,e),!(n=$tw.utils.parseTokenString(t,e,'<')))return null;if(e=n.end,!(n=$tw.utils.parseTokenRegExp(t,e,/([a-zA-Z0-9\\-\\$]+)/g)))return null;if(s.tag=n.match[1],-1!==s.tag.slice(1).indexOf('$'))return null;if('$'===s.tag.charAt(0)&&(s.type=s.tag.substr(1)),e=n.end,!$tw.utils.parseWhiteSpace(t,e)&&'/'!==t.charAt(e)&&'>'!==t.charAt(e))return null;for(var i=$tw.utils.parseAttribute(t,e);i;)e=(s.attributes[i.name]=i).end,i=$tw.utils.parseAttribute(t,e);return e=$tw.utils.skipWhiteSpace(t,e),(n=$tw.utils.parseTokenString(t,e,'/'))&&(e=n.end,s.isSelfClosing=!0),(n=$tw.utils.parseTokenString(t,e,'>'))?(e=n.end,r.requireLineBreak&&!(n=$tw.utils.parseTokenRegExp(t,e,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g))?null:(s.end=e,s)):null},exports.findNextTag=function(t,e,r){var n=/<([a-zA-Z\\-\\$]+)/g;n.lastIndex=e;for(var s=n.exec(t);s;){var i=this.parseTag(t,s.index,r);if(i&&this.isLegalTag(i))return i;n.lastIndex=s.index+1,s=n.exec(t)}return null},exports.isLegalTag=function(t){return'element'!==t.type||'-'!==t.tag.charAt(0)}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/image.js":{"text":"!function(){'use strict';exports.name='image',exports.types={inline:!0},exports.init=function(t){this.parser=t},exports.findNextMatch=function(t){return this.nextImage=this.findNextImage(this.parser.source,t),this.nextImage?this.nextImage.start:void 0},exports.parse=function(){return this.parser.pos=this.nextImage.end,[{type:'image',attributes:this.nextImage.attributes}]},exports.findNextImage=function(t,e){var i=/(\\[img)/g;i.lastIndex=e;for(var r=i.exec(t);r;){var s=this.parseImage(t,r.index);if(s)return s;i.lastIndex=r.index+1,r=i.exec(t)}return null},exports.parseImage=function(t,e){var i,r={type:'image',start:e,attributes:{}};if(e=$tw.utils.skipWhiteSpace(t,e),!(i=$tw.utils.parseTokenString(t,e,'[img')))return null;if(e=i.end,e=$tw.utils.skipWhiteSpace(t,e),'['!==t.charAt(e))for(var s=$tw.utils.parseAttribute(t,e);s;)e=(r.attributes[s.name]=s).end,e=$tw.utils.skipWhiteSpace(t,e),s='['!==t.charAt(e)?$tw.utils.parseAttribute(t,e):null;return e=$tw.utils.skipWhiteSpace(t,e),(i=$tw.utils.parseTokenString(t,e,'['))?(e=i.end,e=$tw.utils.skipWhiteSpace(t,e),(i=$tw.utils.parseTokenRegExp(t,e,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g))?(e=i.end,i.match[1]&&(r.attributes.tooltip={type:'string',value:i.match[1].trim()}),r.attributes.source={type:'string',value:(i.match[2]||'').trim()},r.end=e,r):null):null}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/import.js":{"text":"!function(){'use strict';exports.name='import',exports.types={pragma:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/^\\\\import[^\\S\\n]/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t=/(.*)(\\r?\\n)|$/gm;t.lastIndex=this.parser.pos;var r=t.exec(this.parser.source);return this.parser.pos=t.lastIndex,[{type:'importvariables',attributes:{filter:{type:'string',value:r[1]}},children:[]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/list.js":{"text":"!function(){'use strict';exports.name='list',exports.types={block:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/([\\*#;:>]+)/gm};var h={'*':{listTag:'ul',itemTag:'li'},'#':{listTag:'ol',itemTag:'li'},';':{listTag:'dl',itemTag:'dt'},':':{listTag:'dl',itemTag:'dd'},'>':{listTag:'blockquote',itemTag:'div'}};exports.parse=function(){for(var e=[];;){var t=/([\\*#;:>]+)/gm;t.lastIndex=this.parser.pos;var s=t.exec(this.parser.source);if(!s||s.index!==this.parser.pos)break;var i=h[s[0].charAt(0)];if(0<e.length&&e[0].tag!==i.listTag)break;this.parser.pos=s.index+s[0].length;for(var r=0;r<s[0].length;r++){var a,i=h[s[0].charAt(r)];e.length>r&&e[r].tag!==i.listTag&&e.splice(r,e.length-r),e.length<=r?(a={type:'element',tag:i.listTag,children:[{type:'element',tag:i.itemTag,children:[]}]},r&&e[r-1].children[e[r-1].children.length-1].children.push(a),e[r]=a):r===s[0].length-1&&e[r].children.push({type:'element',tag:i.itemTag,children:[]})}e.length>s[0].length&&e.splice(s[0].length,e.length-s[0].length);var l=e[e.length-1].children,n=l[l.length-1],t=this.parser.parseClasses();this.parser.skipWhitespace({treatNewlinesAsNonWhitespace:!0});l=this.parser.parseInlineRun(/(\\r?\\n)/gm);n.children.push.apply(n.children,l),0<t.length&&$tw.utils.addClassToParseTreeNode(n,t.join(' ')),this.parser.skipWhitespace()}return[e[0]]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js":{"text":"!function(){'use strict';exports.name='macrocallblock',exports.types={block:!0},exports.init=function(r){this.parser=r},exports.findNextMatch=function(r){for(var t=r;0<=(t=this.parser.source.indexOf('<<',t));){var s=$tw.utils.parseMacroInvocation(this.parser.source,t);if(s){var e=this.parser.source.charAt(s.end);if(''===e||'\\n'===e||'\\r'===e&&'\\n'===this.parser.source.charAt(s.end+1))return this.nextCall=s,t}t+=2}},exports.parse=function(){var r=this.nextCall;return r.isBlock=!0,this.nextCall=null,this.parser.pos=r.end,[r]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js":{"text":"!function(){'use strict';exports.name='macrocallinline',exports.types={inline:!0},exports.init=function(t){this.parser=t},exports.findNextMatch=function(t){for(var e=t;0<=(e=this.parser.source.indexOf('<<',e));){if(this.nextCall=$tw.utils.parseMacroInvocation(this.parser.source,e),this.nextCall)return e;e+=2}},exports.parse=function(){var t=this.nextCall;return this.nextCall=null,this.parser.pos=t.end,[t]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/macrodef.js":{"text":"!function(){'use strict';exports.name='macrodef',exports.types={pragma:!0},exports.init=function(s){this.parser=s,this.matchRegExp=/^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var s=this.match[2],e=[];if(''!==s)for(var r=/\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/gm,t=r.exec(s);t;){var a={name:t[1]},i=t[2]||t[3]||t[4]||t[5]||t[6];i&&(a.default=i),e.push(a),t=r.exec(s)}this.match[3]?n=/(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/gm:(n=/($|\\r?\\n)/gm,this.parser.pos=$tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos)),n.lastIndex=this.parser.pos;var p,n=n.exec(this.parser.source);return n?(p=this.parser.source.substring(this.parser.pos,n.index),this.parser.pos=n.index+n[0].length):p='',[{type:'set',attributes:{name:{type:'string',value:this.match[1]},value:{type:'string',value:p}},children:[],params:e,isMacroDefinition:!0}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js":{"text":"!function(){'use strict';exports.name='prettyextlink',exports.types={inline:!0},exports.init=function(t){this.parser=t},exports.findNextMatch=function(t){return this.nextLink=this.findNextLink(this.parser.source,t),this.nextLink?this.nextLink.start:void 0},exports.parse=function(){return this.parser.pos=this.nextLink.end,[this.nextLink]},exports.findNextLink=function(t,e){var n=/(\\[ext\\[)/g;n.lastIndex=e;for(var r=n.exec(t);r;){var i=this.parseLink(t,r.index);if(i)return i;n.lastIndex=r.index+1,r=n.exec(t)}return null},exports.parseLink=function(t,e){var n={type:'text'},r={type:'element',tag:'a',start:e,attributes:{class:{type:'string',value:'tc-tiddlylink-external'}},children:[n]};if(e=$tw.utils.skipWhiteSpace(t,e),!(a=$tw.utils.parseTokenString(t,e,'[ext[')))return null;e=a.end;var i=t.indexOf(']]',e);if(-1===i)return null;var s,a=t.indexOf('|',e);return(-1===a||i<a)&&(a=null),a?(s=t.substring(a+1,i).trim(),n.text=t.substring(e,a).trim()):(s=t.substring(e,i).trim(),n.text=s),r.attributes.href={type:'string',value:s},r.attributes.target={type:'string',value:'_blank'},r.attributes.rel={type:'string',value:'noopener noreferrer'},r.end=i+2,r}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/prettylink.js":{"text":"!function(){'use strict';exports.name='prettylink',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t=this.match[1],e=this.match[2]||t;return $tw.utils.isLinkExternal(e)?[{type:'element',tag:'a',attributes:{href:{type:'string',value:e},class:{type:'string',value:'tc-tiddlylink-external'},target:{type:'string',value:'_blank'},rel:{type:'string',value:'noopener noreferrer'}},children:[{type:'text',text:t}]}]:[{type:'link',attributes:{to:{type:'string',value:e}},children:[{type:'text',text:t}]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/quoteblock.js":{"text":"!function(){'use strict';exports.name='quoteblock',exports.types={block:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/(<<<+)/gm},exports.parse=function(){var e=['tc-quote'],t='^'+this.match[1]+'(?!<)';this.parser.pos=this.matchRegExp.lastIndex,e.push.apply(e,this.parser.parseClasses()),this.parser.skipWhitespace({treatNewlinesAsNonWhitespace:!0});var s=this.parser.parseInlineRun(/(\\r?\\n)/gm),t=this.parser.parseBlocks(t);return 0<s.length&&t.unshift({type:'element',tag:'cite',children:s}),this.parser.skipWhitespace({treatNewlinesAsNonWhitespace:!0}),0<(s=this.parser.parseInlineRun(/(\\r?\\n)/gm)).length&&t.push({type:'element',tag:'cite',children:s}),[{type:'element',tag:'blockquote',attributes:{class:{type:'string',value:e.join(' ')}},children:t}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/rules.js":{"text":"!function(){'use strict';exports.name='rules',exports.types={pragma:!0},exports.init=function(s){this.parser=s,this.matchRegExp=/^\\\\rules[^\\S\\n]/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var s=/[^\\S\\n]*(\\S+)|(\\r?\\n)/gm,e=[];s.lastIndex=this.parser.pos;for(var r=s.exec(this.parser.source);r&&r.index===this.parser.pos&&(this.parser.pos=s.lastIndex,!r[2]);)r[1]&&e.push(r[1]),r=s.exec(this.parser.source);return 0<e.length&&this.parser.amendRules(e[0],e.slice(1)),[]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/styleblock.js":{"text":"!function(){'use strict';exports.name='styleblock',exports.types={block:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/gm},exports.parse=function(){for(var t=[],s=[];this.match[1]&&s.push(this.match[1]),this.match[2]&&t.push(this.match[2].split('.').join(' ')),this.parser.pos=this.matchRegExp.lastIndex,this.match=this.matchRegExp.exec(this.parser.source),this.match&&this.match.index===this.parser.pos;);for(var e=this.parser.parseBlocks('^@@(?:\\\\r?\\\\n)?'),r=0;r<e.length;r++)0<t.length&&$tw.utils.addClassToParseTreeNode(e[r],t.join(' ')),0<s.length&&$tw.utils.addAttributeToParseTreeNode(e[r],'style',s.join(''));return e}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/styleinline.js":{"text":"!function(){'use strict';exports.name='styleinline',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/gm},exports.parse=function(){var t=this.match[1],e=this.match[2]?this.match[2].split('.').join(' '):void 0;this.parser.pos=this.matchRegExp.lastIndex;var s={type:'element',tag:'span',attributes:{class:{type:'string',value:'tc-inline-style'}},children:this.parser.parseInlineRun(/@@/g,{eatTerminator:!0})};return e&&$tw.utils.addClassToParseTreeNode(s,e),t&&$tw.utils.addAttributeToParseTreeNode(s,'style',t),[s]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/syslink.js":{"text":"!function(){'use strict';exports.name='syslink',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=new RegExp('~?\\\\$:\\\\/['+$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length-2)+'/._-]+','mg')},exports.parse=function(){var t=this.match[0];return this.parser.pos=this.matchRegExp.lastIndex,'~'===t.substr(0,1)?[{type:'text',text:t.substr(1)}]:[{type:'link',attributes:{to:{type:'string',value:t}},children:[{type:'text',text:t}]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/table.js":{"text":"!function(){'use strict';function h(e){var t,r=/(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/gm,s=/((?:\\x20*)\\|)/gm,a=[],i=0,o=1;r.lastIndex=this.parser.pos;for(var p=r.exec(this.parser.source);p&&p.index===this.parser.pos;){if('~'===p[1]){var n=e[i];n&&(n.rowSpanCount++,$tw.utils.addAttributeToParseTreeNode(n.element,'rowspan',n.rowSpanCount),h=$tw.utils.getAttributeValueFromParseTreeNode(n.element,'valign','center'),$tw.utils.addAttributeToParseTreeNode(n.element,'valign',h),1<o&&($tw.utils.addAttributeToParseTreeNode(n.element,'colspan',o),o=1)),this.parser.pos=r.lastIndex-1}else if('>'===p[1])o++,this.parser.pos=r.lastIndex-1;else if('<'===p[1]&&t)o=1+$tw.utils.getAttributeValueFromParseTreeNode(t,'colspan',1),$tw.utils.addAttributeToParseTreeNode(t,'colspan',o),o=1,this.parser.pos=r.lastIndex-1;else{if(p[2]){t&&1<o&&(t.attributes&&t.attributes&&t.attributes.colspan?o+=t.attributes.colspan.value:--o,$tw.utils.addAttributeToParseTreeNode(t,'colspan',o)),this.parser.pos=r.lastIndex-1;break}this.parser.pos++;var l=!1,h=null;0===this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/)?h='top':0===this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/)&&(h='bottom'),h&&this.parser.pos++;for(var d=this.parser.source.substr(this.parser.pos,1);' '===d;)l=!0,this.parser.pos++,d=this.parser.source.substr(this.parser.pos,1);n='!'===d?(this.parser.pos++,{type:'element',tag:'th',children:[]}):{type:'element',tag:'td',children:[]},a.push(n),t=n,e[i]={rowSpanCount:1,element:n},1<o&&($tw.utils.addAttributeToParseTreeNode(n,'colspan',o),o=1),n.children=this.parser.parseInlineRun(s,{eatTerminator:!0}),h&&$tw.utils.addAttributeToParseTreeNode(n,'valign',h),' '===this.parser.source.substr(this.parser.pos-2,1)?$tw.utils.addAttributeToParseTreeNode(n,'align',l?'center':'left'):l&&$tw.utils.addAttributeToParseTreeNode(n,'align','right'),this.parser.pos--}i++,r.lastIndex=this.parser.pos,p=r.exec(this.parser.source)}return a}exports.name='table',exports.types={block:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/gm},exports.parse=function(){var e,t,r={c:'caption',h:'thead','':'tbody',f:'tfoot'},s={type:'element',tag:'table',children:[]},a=/^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/gm,i=/(\\|(?:[fhck]?)\\r?(?:\\n|$))/gm,o=[],p=0;a.lastIndex=this.parser.pos;for(var n=a.exec(this.parser.source);n&&n.index===this.parser.pos;){var l=n[2];'k'===l?($tw.utils.addClassToParseTreeNode(s,n[1]),this.parser.pos=n.index+n[0].length):(l!==e&&(t={type:'element',tag:r[l],children:[]},s.children.push(t),e=l),'c'===e?(this.parser.pos++,1!==s.children.length&&(s.children.pop(),s.children.splice(0,0,t)),t.children=this.parser.parseInlineRun(i,{eatTerminator:!0})):(l={type:'element',tag:'tr',children:[]},$tw.utils.addClassToParseTreeNode(l,p%2?'oddRow':'evenRow'),t.children.push(l),l.children=h.call(this,o),this.parser.pos=n.index+n[0].length,p++)),n=a.exec(this.parser.source)}return[s]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js":{"text":"!function(){'use strict';exports.name='transcludeblock',exports.types={block:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t,e,i,s,r=$tw.utils.trim(this.match[2]),a=$tw.utils.trim(this.match[1]),l={type:'transclude',attributes:{},isBlock:!0};return a&&(t=(s=$tw.utils.parseTextReference(a)).title,e=s.field,i=s.index,s={type:'tiddler',attributes:{tiddler:{type:'string',value:t}},isBlock:!0,children:[l]}),r?(l.attributes.tiddler={type:'string',value:r},a?[s]:[l]):a?(l.attributes.tiddler={type:'string',value:t},e&&(l.attributes.field={type:'string',value:e}),i&&(l.attributes.index={type:'string',value:i}),[s]):[l]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js":{"text":"!function(){'use strict';exports.name='transcludeinline',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=/\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/gm},exports.parse=function(){this.parser.pos=this.matchRegExp.lastIndex;var t,e,i,r,s=$tw.utils.trim(this.match[2]),n=$tw.utils.trim(this.match[1]),a={type:'transclude',attributes:{}};return n&&(t=(r=$tw.utils.parseTextReference(n)).title,e=r.field,i=r.index,r={type:'tiddler',attributes:{tiddler:{type:'string',value:t}},children:[a]}),s?(a.attributes.tiddler={type:'string',value:s},n?[r]:[a]):n?(a.attributes.tiddler={type:'string',value:t},e&&(a.attributes.field={type:'string',value:e}),i&&(a.attributes.index={type:'string',value:i}),[r]):[a]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/typedblock.js":{"text":"!function(){'use strict';require('$:/core/modules/widgets/widget.js'),exports.name='typedblock',exports.types={block:!0},exports.init=function(e){this.parser=e,this.matchRegExp=/\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/gm},exports.parse=function(){var e=/\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/gm,t=this.match[1],r=this.match[2];this.parser.pos=this.matchRegExp.lastIndex,e.lastIndex=this.parser.pos;var s,i=e.exec(this.parser.source);i?(s=this.parser.source.substring(this.parser.pos,i.index),this.parser.pos=i.index+i[0].length):(s=this.parser.source.substr(this.parser.pos),this.parser.pos=this.parser.sourceLength);e=this.parser.wiki.parseText(t,s,{defaultType:'text/plain'});if(r){i=this.parser.wiki.makeWidget(e),t=$tw.fakeDocument.createElement('div');return i.render(t,null),[{type:'element',tag:'pre',children:[{type:'text',text:s='text/html'===r?t.innerHTML:t.textContent}]}]}return e.tree}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/whitespace.js":{"text":"!function(){'use strict';exports.name='whitespace',exports.types={pragma:!0},exports.init=function(s){this.parser=s,this.matchRegExp=/^\\\\whitespace[^\\S\\n]/gm},exports.parse=function(){var e=this;this.parser.pos=this.matchRegExp.lastIndex;var s=/[^\\S\\n]*(\\S+)|(\\r?\\n)/gm,r=[];s.lastIndex=this.parser.pos;for(var t=s.exec(this.parser.source);t&&t.index===this.parser.pos&&(this.parser.pos=s.lastIndex,!t[2]);)t[1]&&r.push(t[1]),t=s.exec(this.parser.source);return $tw.utils.each(r,function(s){switch(s){case'trim':e.parser.configTrimWhiteSpace=!0;break;case'notrim':e.parser.configTrimWhiteSpace=!1}}),[]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/rules/wikilink.js":{"text":"!function(){'use strict';exports.name='wikilink',exports.types={inline:!0},exports.init=function(t){this.parser=t,this.matchRegExp=new RegExp($tw.config.textPrimitives.unWikiLink+'?'+$tw.config.textPrimitives.wikiLink,'mg')},exports.parse=function(){var t=this.match[0];if(this.parser.pos=this.matchRegExp.lastIndex,t.substr(0,1)===$tw.config.textPrimitives.unWikiLink)return[{type:'text',text:t.substr(1)}];if(0<this.match.index){var i=new RegExp($tw.config.textPrimitives.blockPrefixLetters,'mg');i.lastIndex=this.match.index-1;i=i.exec(this.parser.source);if(i&&i.index===this.match.index-1)return[{type:'text',text:t}]}return[{type:'link',attributes:{to:{type:'string',value:t}},children:[{type:'text',text:t}]}]}}();","type":"application/javascript","module-type":"wikirule"},"$:/core/modules/parsers/wikiparser/wikiparser.js":{"text":"!function(){'use strict';var r=function(s,e,t){this.wiki=t.wiki;var i,n;$tw.browser&&''===(e||'')&&t._canonical_uri&&(this.loadRemoteTiddler(t._canonical_uri),e=$tw.language.getRawString('LazyLoadingWarning')),this.type=s||'text/vnd.tiddlywiki',this.source=e||'',this.sourceLength=this.source.length,this.configTrimWhiteSpace=!1,this.pos=0,this.tree=[],e=t.rules?(i=t.rules.pragma,n=t.rules.block,t.rules.inline):(this.pragmaRuleClasses||(r.prototype.pragmaRuleClasses=$tw.modules.createClassesFromModules('wikirule','pragma',$tw.WikiRuleBase),this.setupRules(r.prototype.pragmaRuleClasses,'$:/config/WikiParserRules/Pragmas/')),i=this.pragmaRuleClasses,this.blockRuleClasses||(r.prototype.blockRuleClasses=$tw.modules.createClassesFromModules('wikirule','block',$tw.WikiRuleBase),this.setupRules(r.prototype.blockRuleClasses,'$:/config/WikiParserRules/Block/')),n=this.blockRuleClasses,this.inlineRuleClasses||(r.prototype.inlineRuleClasses=$tw.modules.createClassesFromModules('wikirule','inline',$tw.WikiRuleBase),this.setupRules(r.prototype.inlineRuleClasses,'$:/config/WikiParserRules/Inline/')),this.inlineRuleClasses),this.pragmaRules=this.instantiateRules(i,'pragma',0),this.blockRules=this.instantiateRules(n,'block',0),this.inlineRules=this.instantiateRules(e,'inline',0);e=this.parsePragmas();t.parseAsInline?e.push.apply(e,this.parseInlineRun()):e.push.apply(e,this.parseBlocks())};r.prototype.loadRemoteTiddler=function(t){var i=this;$tw.utils.httpRequest({url:t,type:'GET',callback:function(s,e){s||(e=i.wiki.deserializeTiddlers('.tid',e,i.wiki.getCreationFields()),$tw.utils.each(e,function(s){s._canonical_uri=t}),e&&i.wiki.addTiddlers(e))}})},r.prototype.setupRules=function(t,i){var n=this;$tw.safemode||$tw.utils.each(t,function(s,e){'enable'!==n.wiki.getTiddlerText(i+e,'enable')&&delete t[e]})},r.prototype.instantiateRules=function(s,t,i){var n=[],r=this;return $tw.utils.each(s,function(s){var e=new s(r);e.is={},e.is[t]=!0,e.init(r);s=e.findNextMatch(i);void 0!==s&&n.push({rule:e,matchIndex:s})}),n},r.prototype.skipWhitespace=function(s){var e=(s=s||{}).treatNewlinesAsNonWhitespace?/([^\\S\\n]+)/gm:/(\\s+)/gm;e.lastIndex=this.pos;s=e.exec(this.source);s&&s.index===this.pos&&(this.pos=e.lastIndex)},r.prototype.findNextMatch=function(s,e){for(var t,i=this.sourceLength,n=0;n<s.length;n++){var r=s[n];void 0!==r.matchIndex&&r.matchIndex<e&&(r.matchIndex=r.rule.findNextMatch(e)),void 0!==r.matchIndex&&r.matchIndex<=i&&(i=(t=r).matchIndex)}return t},r.prototype.parsePragmas=function(){for(var s=this.tree;this.skipWhitespace(),!(this.pos>=this.sourceLength);){var e=this.findNextMatch(this.pragmaRules,this.pos);if(!e||e.matchIndex!==this.pos)break;e=e.rule.parse();0<e.length&&(s.push.apply(s,e),e[0].children=[],s=e[0].children)}return s},r.prototype.parseBlock=function(s){var e=s?new RegExp('('+s+'|\\\\r?\\\\n\\\\r?\\\\n)','mg'):/(\\r?\\n\\r?\\n)/gm;if(this.skipWhitespace(),this.pos>=this.sourceLength)return[];s=this.findNextMatch(this.blockRules,this.pos);return s&&s.matchIndex===this.pos?s.rule.parse():[{type:'element',tag:'p',children:this.parseInlineRun(e)}]},r.prototype.parseBlocks=function(s){return s?this.parseBlocksTerminated(s):this.parseBlocksUnterminated()},r.prototype.parseBlocksUnterminated=function(){for(var s=[];this.pos<this.sourceLength;)s.push.apply(s,this.parseBlock());return s},r.prototype.parseBlocksTerminated=function(s){var e=new RegExp('('+s+')','mg'),t=[];this.skipWhitespace(),e.lastIndex=this.pos;for(var i=e.exec(this.source);this.pos<this.sourceLength&&(!i||i.index!==this.pos);){var n=this.parseBlock(s);t.push.apply(t,n),this.skipWhitespace(),e.lastIndex=this.pos,i=e.exec(this.source)}return i&&i.index===this.pos&&(this.pos=i.index+i[0].length),t},r.prototype.parseInlineRun=function(s,e){return s?this.parseInlineRunTerminated(s,e):this.parseInlineRunUnterminated(e)},r.prototype.parseInlineRunUnterminated=function(s){for(var e=[],t=this.findNextMatch(this.inlineRules,this.pos);this.pos<this.sourceLength&&t;)t.matchIndex>this.pos&&(this.pushTextWidget(e,this.source.substring(this.pos,t.matchIndex)),this.pos=t.matchIndex),e.push.apply(e,t.rule.parse()),t=this.findNextMatch(this.inlineRules,this.pos);return this.pos<this.sourceLength&&this.pushTextWidget(e,this.source.substr(this.pos)),this.pos=this.sourceLength,e},r.prototype.parseInlineRunTerminated=function(s,e){e=e||{};var t=[];s.lastIndex=this.pos;for(var i=s.exec(this.source),n=this.findNextMatch(this.inlineRules,this.pos);this.pos<this.sourceLength&&(i||n);){if(i&&(!n||n.matchIndex>=i.index))return i.index>this.pos&&this.pushTextWidget(t,this.source.substring(this.pos,i.index)),this.pos=i.index,e.eatTerminator&&(this.pos+=i[0].length),t;n&&(n.matchIndex>this.pos&&(this.pushTextWidget(t,this.source.substring(this.pos,n.matchIndex)),this.pos=n.matchIndex),t.push.apply(t,n.rule.parse()),n=this.findNextMatch(this.inlineRules,this.pos),s.lastIndex=this.pos,i=s.exec(this.source))}return this.pos<this.sourceLength&&this.pushTextWidget(t,this.source.substr(this.pos)),this.pos=this.sourceLength,t},r.prototype.pushTextWidget=function(s,e){this.configTrimWhiteSpace&&(e=$tw.utils.trim(e)),e&&s.push({type:'text',text:e})},r.prototype.parseClasses=function(){var s=/\\.([^\\s\\.]+)/gm,e=[];s.lastIndex=this.pos;for(var t=s.exec(this.source);t&&t.index===this.pos;)this.pos=t.index+t[0].length,e.push(t[1]),t=s.exec(this.source);return e},r.prototype.amendRules=function(s,t){var i;if(t=t||[],'only'===s)i=!0;else{if('except'!==s)return;i=!1}s=function(s){for(var e=s.length-1;0<=e;e--)-1===t.indexOf(s[e].rule.name)===i&&s.splice(e,1)};s(this.pragmaRules),s(this.blockRules),s(this.inlineRules)},exports['text/vnd.tiddlywiki']=r}();","type":"application/javascript","module-type":"parser"},"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js":{"text":"!function(){'use strict';function t(){}t.prototype.init=function(t){this.parser=t},t.prototype.findNextMatch=function(t){return this.matchRegExp.lastIndex=t,this.match=this.matchRegExp.exec(this.parser.source),this.match?this.match.index:void 0},exports.WikiRuleBase=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/pluginswitcher.js":{"text":"!function(){'use strict';function i(i){this.wiki=i.wiki,this.pluginType=i.pluginType,this.controllerTitle=i.controllerTitle,this.defaultPlugins=i.defaultPlugins||[],this.onSwitch=i.onSwitch,this.switchPlugins();var t=this;this.wiki.addEventListener('change',function(i){$tw.utils.hop(i,t.controllerTitle)&&t.switchPlugins()})}i.prototype.switchPlugins=function(){for(var i=this.wiki.getTiddlerText(this.controllerTitle),t=0;!this.wiki.getTiddler(i)&&t<this.defaultPlugins.length;)i=this.defaultPlugins[t++];var e=[],n=this,s=function(i){var t=n.wiki.getTiddler(i);t&&t.isPlugin()&&-1===e.indexOf(i)&&(e.push(i),JSON.parse(n.wiki.getTiddlerText(i)),t=$tw.utils.parseStringArray(t.fields.dependents||''),$tw.utils.each(t,function(i){s(i)}))};s(i);$tw.wiki.readPluginInfo(e),$tw.wiki.unregisterPluginTiddlers(this.pluginType),$tw.wiki.registerPluginTiddlers(this.pluginType,e);$tw.wiki.unpackPluginTiddlers(),this.onSwitch&&this.onSwitch(e)},exports.PluginSwitcher=i}();","type":"application/javascript","module-type":"global"},"$:/core/modules/saver-handler.js":{"text":"!function(){'use strict';function t(t){var n=this;this.wiki=t.wiki,this.dirtyTracking=t.dirtyTracking,this.preloadDirty=t.preloadDirty||[],this.pendingAutoSave=!1,this.logger=new $tw.utils.Logger('saver-handler'),$tw.browser&&this.initSavers(),$tw.browser&&this.dirtyTracking&&(this.filterFn=this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)),t=n.filterFn.call(n.wiki,function(e){$tw.utils.each(n.preloadDirty,function(t){var i=n.wiki.getTiddler(t);e(i,t)})}),this.numChanges=t.length,this.wiki.addEventListener('change',function(t){var i=n.filterFn.call(n.wiki,function(a){$tw.utils.each(t,function(t,i){var e=n.wiki.getTiddler(i);a(e,i)})});n.numChanges+=i.length,n.updateDirtyStatus(),n.pendingAutoSave&&0===n.wiki.getSizeOfTiddlerEventQueue()&&(0<n.numChanges&&n.saveWiki({method:'autosave',downloadType:'text/plain'}),n.pendingAutoSave=!1)}),$tw.rootWidget.addEventListener('tm-auto-save-wiki',function(t){0===n.wiki.getSizeOfTiddlerEventQueue()?0<n.numChanges&&n.saveWiki({method:'autosave',downloadType:'text/plain'}):n.pendingAutoSave=!0}),$tw.addUnloadTask(function(t){var i;return n.isDirty()&&(i=$tw.language.getString('UnsavedChangesWarning'),t.returnValue=i),i})),$tw.browser&&($tw.rootWidget.addEventListener('tm-save-wiki',function(t){n.saveWiki({template:t.param,downloadType:'text/plain',variables:t.paramObject})}),$tw.rootWidget.addEventListener('tm-download-file',function(t){n.saveWiki({method:'download',template:t.param,downloadType:'text/plain',variables:t.paramObject})}))}t.prototype.titleSyncFilter='$:/config/SaverFilter',t.prototype.titleAutoSave='$:/config/AutoSave',t.prototype.titleSavedNotification='$:/language/Notifications/Save/Done',t.prototype.initSavers=function(t){t=t||'saver',this.savers=[];var e=this;$tw.modules.forEachModuleOfType(t,function(t,i){i.canSave(e)&&e.savers.push(i.create(e.wiki))}),this.savers.sort(function(t,i){return t.info.priority<i.info.priority?-1:t.info.priority>i.info.priority?1:0})},t.prototype.saveWiki=function(i){var e=this,a=(i=i||{}).method||'save';if('autosave'===a&&($tw.config.disableAutoSave||'yes'!==this.wiki.getTiddlerText(this.titleAutoSave,'yes')))return!1;for(var t=i.variables||{},n=i.template||'$:/core/save/all',r=i.downloadType||'text/plain',o=this.wiki.renderTiddler(r,n,i),s=function(t){t?alert($tw.language.getString('Error/WhileSaving')+':\\n\\n'+t):('download'!==a&&(e.numChanges=0,e.updateDirtyStatus()),$tw.notifier.display(e.titleSavedNotification),i.callback&&i.callback())},l=this.savers.length-1;0<=l;l--){var d=this.savers[l];if(-1!==d.info.capabilities.indexOf(a)&&d.save(o,a,s,{variables:{filename:t.filename}}))return this.logger.log('Saving wiki with method',a,'through saver',d.info.name),!0}return!1},t.prototype.isDirty=function(){return 0<this.numChanges},t.prototype.updateDirtyStatus=function(){var i=this;$tw.browser&&($tw.utils.toggleClass(document.body,'tc-dirty',this.isDirty()),$tw.utils.each($tw.windows,function(t){$tw.utils.toggleClass(t.document.body,'tc-dirty',i.isDirty())}))},exports.SaverHandler=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/savers/andtidwiki.js":{"text":"!function(){'use strict';function t(e){}t.prototype.save=function(t,e,i,n){var o=n&&n.variables?n.variables.filename:null;if('download'===e)if(window.twi.saveDownload)try{window.twi.saveDownload(t,o)}catch(e){'Method not found'===e.message&&window.twi.saveDownload(t)}else{var a=document.createElement('a');a.setAttribute('href','data:text/plain,'+encodeURIComponent(t)),o&&a.setAttribute('download',o),document.body.appendChild(a),a.click(),document.body.removeChild(a)}else window.twi.saveWiki?window.twi.saveWiki(t):(0===(e=decodeURIComponent(document.location.toString().split('#')[0])).indexOf('file://')&&(e=e.substr(7)),-1!==(a=e.indexOf('?'))&&(e=e.substr(0,a)),-1!==(a=e.indexOf('#'))&&(e=e.substr(0,a)),window.twi.saveFile(e,t));return i(null),!0},t.prototype.info={name:'andtidwiki',priority:1600,capabilities:['save','autosave','download']},exports.canSave=function(e){return!!window.twi&&!!window.twi.saveFile},exports.create=function(e){return new t}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/beaker.js":{"text":"!function(){'use strict';function e(t){this.wiki=t}e.prototype.save=function(e,t,n){var i=new DatArchive(''+window.location),o=(''+window.location.pathname).split('#')[0];return i.stat(o).then(function(t){t.isDirectory()&&(o+='/index.html'),i.writeFile(o,e,'utf8').then(function(t){n(null)},function(t){n('Beaker Saver Write Error: '+t)})},function(t){n('Beaker Saver Stat Error: '+t)}),!0},e.prototype.info={name:'beaker',priority:3e3,capabilities:['save','autosave']},exports.canSave=function(t){return!!window.DatArchive&&'dat:'===location.protocol},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/custom.js":{"text":"!function(){'use strict';function t(t){try{return t&&t.$tw&&t.$tw.customSaver}catch(t){return console.log({msg:'custom saver is disabled',reason:t}),null}}function e(t){}var r=t(window)||t(window.parent)||{};e.prototype.save=function(t,e,n){return r.save(t,e,n)},e.prototype.info={name:'custom',priority:r.priority||4e3,capabilities:['save','autosave']},exports.canSave=function(t){return!!r.save},exports.create=function(t){return new e}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/download.js":{"text":"!function(){'use strict';function t(e){}t.prototype.save=function(e,t,o,n){var a=(n=n||{}).variables.filename;a||-1!==(r=document.location.pathname.lastIndexOf('/'))&&(a=decodeURIComponent(document.location.pathname.substr(r+1))),a=a||'tiddlywiki.html';var r,n=document.createElement('a');return void 0!==Blob?(r=new Blob([e],{type:'text/html'}),n.setAttribute('href',URL.createObjectURL(r))):n.setAttribute('href','data:text/html,'+encodeURIComponent(e)),n.setAttribute('download',a),document.body.appendChild(n),n.click(),document.body.removeChild(n),o(null),!0},t.prototype.info={name:'download',priority:100},Object.defineProperty(t.prototype.info,'capabilities',{get:function(){var e=['save','download'];return'yes'===($tw.wiki.getTextReference('$:/config/DownloadSaver/AutoSave')||'').toLowerCase()&&e.push('autosave'),e}}),exports.canSave=function(e){return void 0!==document.createElement('a').download},exports.create=function(e){return new t}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/fsosaver.js":{"text":"!function(){'use strict';function e(t){}e.prototype.save=function(t,e,n){var i=unescape(document.location.pathname);if(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(i))i=i.substr(1);else{if(''===document.location.hostname||!/^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(i))return!1;i=i.substr(1),i='\\\\\\\\'+document.location.hostname+i}i=new ActiveXObject('Scripting.FileSystemObject').OpenTextFile(i,2,-1,-1);return i.Write(t),i.Close(),n(null),!0},e.prototype.info={name:'FSOSaver',priority:120,capabilities:['save','autosave']},exports.canSave=function(t){try{return'file:'===window.location.protocol&&!!new ActiveXObject('Scripting.FileSystemObject')}catch(t){return!1}},exports.create=function(t){return new e}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/gitea.js":{"text":"!function(){'use strict';function e(t){this.wiki=t}e.prototype.save=function(r,t,o){var u=this,e=this.wiki.getTiddlerText('$:/Gitea/Username'),i=$tw.utils.getPassword('Gitea'),c=this.wiki.getTiddlerText('$:/Gitea/Repo'),a=this.wiki.getTiddlerText('$:/Gitea/Path',''),l=this.wiki.getTiddlerText('$:/Gitea/Filename'),p=this.wiki.getTiddlerText('$:/Gitea/Branch')||'master',h=this.wiki.getTiddlerText('$:/Gitea/ServerURL')||'https://gitea',d={Accept:'application/json','Content-Type':'application/json;charset=UTF-8',Authorization:'token '+i};if(!(e&&i&&c&&l))return!1;'/'!==a.substring(0,1)&&(a='/'+a),'/'!==a.substring(a.length-1)&&(a+='/');var g=h+'/repos/'+c+'/contents'+a;return $tw.utils.httpRequest({url:g,type:'GET',headers:d,data:{ref:p},callback:function(t,e,i){var a='';if(t&&404!==i.status)return o(t);var s=!0;404!==i.status&&(e=JSON.parse(e),$tw.utils.each(e,function(t){t.name===l&&(a=t.sha)}),''===a&&(s=!1));var n={message:$tw.language.getRawString('ControlPanel/Saving/GitService/CommitMessage'),content:$tw.utils.base64Encode(r),sha:a};$tw.utils.httpRequest({url:h+'/repos/'+c+'/branches/'+p,type:'GET',headers:d,callback:function(t,e,i){404===i.status?o('Please ensure the branch in the Gitea repo exists'):(n.branch=p,u.upload(g+l,s?'PUT':'POST',d,n,o))}})}}),!0},e.prototype.upload=function(t,e,i,a,s){$tw.utils.httpRequest({url:t,type:e,headers:i,data:JSON.stringify(a),callback:function(t,e,i){if(t)return s(t);JSON.parse(e);s(null)}})},e.prototype.info={name:'Gitea',priority:2e3,capabilities:['save','autosave']},exports.canSave=function(t){return!0},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/github.js":{"text":"!function(){'use strict';function e(t){this.wiki=t}e.prototype.save=function(r,t,s){var e=this.wiki.getTiddlerText('$:/GitHub/Username'),i=$tw.utils.getPassword('github'),a=this.wiki.getTiddlerText('$:/GitHub/Repo'),n=this.wiki.getTiddlerText('$:/GitHub/Path',''),u=this.wiki.getTiddlerText('$:/GitHub/Filename'),o=this.wiki.getTiddlerText('$:/GitHub/Branch')||'main',c=this.wiki.getTiddlerText('$:/GitHub/ServerURL')||'https://api.github.com',l={Accept:'application/vnd.github.v3+json','Content-Type':'application/json;charset=UTF-8',Authorization:'Basic '+window.btoa(e+':'+i),'If-None-Match':''};if(!(e&&i&&a&&u))return!1;'/'!==n.substring(0,1)&&(n='/'+n),'/'!==n.substring(n.length-1)&&(n+='/');var h=c+'/repos/'+a+'/contents'+n;return $tw.utils.httpRequest({url:h,type:'GET',headers:l,data:{ref:o},callback:function(t,e,i){var a='';if(t&&404!==i.status)return s(t);404!==i.status&&(n=JSON.parse(e),$tw.utils.each(n,function(t){t.name===u&&(a=t.sha)}));var n={message:$tw.language.getRawString('ControlPanel/Saving/GitService/CommitMessage'),content:$tw.utils.base64Encode(r),branch:o,sha:a};$tw.utils.httpRequest({url:h+u,type:'PUT',headers:l,data:JSON.stringify(n),callback:function(t,e,i){if(t)return s(t);JSON.parse(e);s(null)}})}}),!0},e.prototype.info={name:'github',priority:2e3,capabilities:['save','autosave']},exports.canSave=function(t){return!0},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/gitlab.js":{"text":"!function(){'use strict';function e(t){this.wiki=t}e.prototype.save=function(s,t,o){var e=this.wiki.getTiddlerText('$:/GitLab/Username'),i=$tw.utils.getPassword('gitlab'),a=this.wiki.getTiddlerText('$:/GitLab/Repo'),c=this.wiki.getTiddlerText('$:/GitLab/Path',''),l=this.wiki.getTiddlerText('$:/GitLab/Filename'),p=this.wiki.getTiddlerText('$:/GitLab/Branch')||'master',n=this.wiki.getTiddlerText('$:/GitLab/ServerURL')||'https://gitlab.com/api/v4',u={'Content-Type':'application/json;charset=UTF-8','Private-Token':i};if(!(e&&i&&a&&l))return!1;'/'!==c.substring(0,1)&&(c='/'+c),'/'!==c.substring(c.length-1)&&(c+='/');var g=n+'/projects/'+encodeURIComponent(a)+'/repository/';return $tw.utils.httpRequest({url:g+'tree/?path='+encodeURIComponent(c.replace(/^\\/+|\\/$/g,''))+'&branch='+encodeURIComponent(p.replace(/^\\/+|\\/$/g,'')),type:'GET',headers:u,callback:function(t,e,i){var a='';if(t&&404!==i.status)return o(t);var n='POST';404!==i.status&&(r=JSON.parse(e),$tw.utils.each(r,function(t){t.name===l&&(n='PUT',a=t.sha)}));var r={commit_message:$tw.language.getRawString('ControlPanel/Saving/GitService/CommitMessage'),content:s,branch:p,sha:a};$tw.utils.httpRequest({url:g+'files/'+encodeURIComponent(c.replace(/^\\/+/,'')+l),type:n,headers:u,data:JSON.stringify(r),callback:function(t,e,i){if(t)return o(t);JSON.parse(e);o(null)}})}}),!0},e.prototype.info={name:'gitlab',priority:2e3,capabilities:['save','autosave']},exports.canSave=function(t){return!0},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/hyperdrive.js":{"text":"!function(){'use strict';function r(e){this.wiki=e}r.prototype.save=function(r,e,t){var i=beaker.hyperdrive.drive(''+window.location),n=(''+window.location.pathname).split('#')[0];return i.stat(n).then(function(e){e.isDirectory()&&(n+='/index.html'),i.writeFile(n,r,'utf8').then(function(e){t(null)},function(e){t('Hyperdrive Saver Write Error: '+e)})},function(e){t('Hyperdrive Saver Stat Error: '+e)}),!0},r.prototype.info={name:'beaker-1.x',priority:3e3,capabilities:['save','autosave']},exports.canSave=function(e){return!!window.beaker&&!!beaker.hyperdrive&&'hyper:'===location.protocol},exports.create=function(e){return new r(e)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/manualdownload.js":{"text":"!function(){'use strict';function o(n){}o.prototype.save=function(n,o,t){return $tw.modal.display('$:/language/Modals/Download',{downloadLink:'data:text/html,'+encodeURIComponent(n)}),t(null),!0},o.prototype.info={name:'manualdownload',priority:0,capabilities:['save','download']},exports.canSave=function(n){return!0},exports.create=function(n){return new o}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/msdownload.js":{"text":"!function(){'use strict';function n(t){}n.prototype.save=function(t,n,o){var e='tiddlywiki.html',a=document.location.pathname.lastIndexOf('/');-1!==a&&(e=document.location.pathname.substr(a+1));t=new Blob([t],{type:'text/html'});return window.navigator.msSaveBlob(t,e),o(null),!0},n.prototype.info={name:'msdownload',priority:110,capabilities:['save','download']},exports.canSave=function(t){return!!window.navigator.msSaveBlob},exports.create=function(t){return new n}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/put.js":{"text":"!function(){'use strict';function a(n){$tw.utils.httpRequest({url:n.uri(),type:'HEAD',headers:{Accept:'*/*;charset=UTF-8'},callback:function(t,e,r){t||(r=r.getResponseHeader('ETag'))&&(n.etag=r.replace(/^W\\//,''))}})}function e(t){this.wiki=t;var n=this,t=this.uri();$tw.utils.httpRequest({url:t,type:'OPTIONS',callback:function(t,e,r){t||(n.serverAcceptsPuts=200===r.status&&!!r.getResponseHeader('dav'))}}),a(this)}e.prototype.uri=function(){return document.location.toString().split('#')[0]},e.prototype.save=function(t,e,s){if(!this.serverAcceptsPuts)return!1;var i=this,r={'Content-Type':'text/html;charset=UTF-8'};return this.etag&&(r['If-Match']=this.etag),$tw.utils.httpRequest({url:this.uri(),type:'PUT',headers:r,data:t,callback:function(t,e,r){var n;t?412===Number(t.substring(t.indexOf(':')+2,t.length))?(n=$tw.language.getString('Error/EditConflict'),s(n)):s(t):(i.etag=r.getResponseHeader('ETag'),null==i.etag&&a(i),s(null))}}),!0},e.prototype.info={name:'put',priority:2e3,capabilities:['save','autosave']},exports.canSave=function(t){return/^https?:/.test(location.protocol)},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/tiddlyfox.js":{"text":"!function(){'use strict';function t(e){}t.prototype.save=function(e,t,n){var i=document.getElementById('tiddlyfox-message-box');if(i){var a=document.location.toString().split('#')[0];0===a.indexOf('file://localhost/')&&(a='file://'+a.substr(16)),a=/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(a)?a.substr(8).replace(/\\//g,'\\\\'):0===a.indexOf('file://///')?'\\\\\\\\'+unescape(a.substr(10)).replace(/\\//g,'\\\\'):0===a.indexOf('file:///')?unescape(a.substr(7)):0===a.indexOf('file:/')?unescape(a.substr(5)):'\\\\\\\\'+unescape(a.substr(7)).replace(new RegExp('/','g'),'\\\\');var s=document.createElement('div');s.setAttribute('data-tiddlyfox-path',decodeURIComponent(a)),s.setAttribute('data-tiddlyfox-content',e),i.appendChild(s),s.addEventListener('tiddlyfox-have-saved-file',function(e){n(null)},!1);i=document.createEvent('Events');return i.initEvent('tiddlyfox-save-file',!0,!1),s.dispatchEvent(i),!0}return!1},t.prototype.info={name:'tiddlyfox',priority:1500,capabilities:['save','autosave']},exports.canSave=function(e){return!0},exports.create=function(e){return new t}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/tiddlyie.js":{"text":"!function(){'use strict';function t(e){}t.prototype.save=function(e,t,n){if(void 0===window.TiddlyIE)return!1;var o=unescape(document.location.pathname);if(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(o))o=(o=o.substr(1)).replace(/\\//g,'\\\\');else{if(''===document.hostname||!/^\\/[^\\/]+\\/[^\\/]+/i.test(o))return!1;o=o.replace(/\\//g,'\\\\'),o='\\\\\\\\'+document.location.hostname+o}return window.TiddlyIE.save(o,e),n(null),!0},t.prototype.info={name:'tiddlyiesaver',priority:1500,capabilities:['save']},exports.canSave=function(e){return'file:'===window.location.protocol},exports.create=function(e){return new t}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/twedit.js":{"text":"!function(){'use strict';function e(t){}e.prototype.save=function(e,t,n){if('object'!=typeof DeviceInfo)return!1;var o=decodeURIComponent(document.location.pathname),i=o.indexOf('?');-1!==i&&(o=o.substr(0,i)),-1!==(i=o.indexOf('#'))&&(o=o.substr(0,i));i='/Documents';0===o.indexOf(i)&&(o=o.substr(i.length));function r(t){n($tw.language.getString('Error/SavingToTWEdit')+': '+t.target.error.code)}return window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(t){t.root.getFile(o,{create:!0},function(t){t.createWriter(function(t){t.onerror=r,t.onwrite=function(){n(null)},t.position=0,t.write(e)},r)},r)},r),!0},e.prototype.info={name:'twedit',priority:1600,capabilities:['save','autosave']},exports.canSave=function(t){return!0},exports.create=function(t){return new e},$tw.browser&&(window.version={title:'TiddlyWiki'})}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/savers/upload.js":{"text":"!function(){'use strict';function e(t){this.wiki=t}e.prototype.save=function(t,e,n){var i=this.wiki.getTextReference('$:/UploadBackupDir')||'.',r=this.wiki.getTextReference('$:/UploadName'),a=$tw.utils.getPassword('upload'),o=this.wiki.getTextReference('$:/UploadDir')||'.',s=this.wiki.getTextReference('$:/UploadFilename')||'index.html',p=this.wiki.getTextReference('$:/UploadWithUrlOnly')||'no',u=this.wiki.getTextReference('$:/UploadURL');if('yes'===p){if(!u||''===u.toString().trim())return!1}else if(!r||''===r.toString().trim()||!a||''===a.toString().trim())return!1;u=u||'http://'+r+'.tiddlyspot.com/store.cgi';var l='---------------------------AaB03x',p=[];p.push('--'+l+'\\r\\nContent-disposition: form-data; name=\"UploadPlugin\"\\r\\n'),p.push('backupDir='+i+';user='+r+';password='+a+';uploaddir='+o+';;'),p.push('\\r\\n--'+l),p.push('Content-disposition: form-data; name=\"userfile\"; filename=\"'+s+'\"'),p.push('Content-Type: text/html;charset=UTF-8'),p.push('Content-Length: '+t.length+'\\r\\n'),p.push('');var d=p.join('\\r\\n')+t+'\\r\\n-----------------------------AaB03x--\\r\\n',c=new XMLHttpRequest;c.open('POST',u,!0,r,a),c.setRequestHeader('Content-Type','multipart/form-data; charset=UTF-8; boundary='+l),c.onreadystatechange=function(){4==c.readyState&&200==c.status&&('0 - '===c.responseText.substr(0,4)?n(null):n(c.responseText))};try{c.send(d)}catch(t){return n($tw.language.getString('Error/Caption')+':'+t)}return $tw.notifier.display('$:/language/Notifications/Save/Starting'),!0},e.prototype.info={name:'upload',priority:2e3,capabilities:['save','autosave']},exports.canSave=function(t){return!0},exports.create=function(t){return new e(t)}}();","type":"application/javascript","module-type":"saver"},"$:/core/modules/server/authenticators/basic.js":{"text":"!function(){'use strict';var r,s;function e(e){this.server=e,this.credentialsData=[]}$tw.node&&(require('util'),r=require('fs'),require('url'),s=require('path')),e.prototype.init=function(){if(this.credentialsFilepath=this.server.get('credentials'),this.credentialsFilepath){var e=s.resolve(this.server.boot.wikiPath,this.credentialsFilepath);if(!r.existsSync(e)||r.statSync(e).isDirectory())return'Error: Unable to load user credentials from \\''+e+'\\'';var t=r.readFileSync(e,'utf8'),t=$tw.utils.parseCsvStringWithHeader(t);if('string'==typeof t)return'Error: '+t+' reading credentials from \\''+e+'\\'';this.credentialsData=t}return this.server.get('username')&&this.server.get('password')&&(this.credentialsData=this.credentialsData||[],this.credentialsData.push({username:this.server.get('username'),password:this.server.get('password')})),0<this.credentialsData.length},e.prototype.authenticateRequest=function(e,t,r){e=e.headers.authorization||'';if(!e&&r.allowAnon)return!0;var e=e.split(/\\s+/).pop()||'',e=$tw.utils.base64Decode(e).split(/:/),s=e[0],i=e[1];return this.credentialsData.find(function(e){return e.username===s&&e.password===i})?(r.authenticatedUsername=s,!0):(t.writeHead(401,'Authentication required',{'WWW-Authenticate':'Basic realm=\"Please provide your username and password to login to '+r.server.servername+'\"'}),t.end(),!1)},exports.AuthenticatorClass=e}();","type":"application/javascript","module-type":"authenticator"},"$:/core/modules/server/authenticators/header.js":{"text":"!function(){'use strict';function e(e){this.server=e,this.header=e.get('authenticated-user-header')?e.get('authenticated-user-header').toLowerCase():void 0}e.prototype.init=function(){return!!this.header},e.prototype.authenticateRequest=function(e,t,r){e=e.headers[this.header];return e||r.allowAnon?(r.authenticatedUsername=e,!0):(t.writeHead(401,'Authorization header required to login to \\''+r.server.servername+'\\''),t.end(),!1)},exports.AuthenticatorClass=e}();","type":"application/javascript","module-type":"authenticator"},"$:/core/modules/server/routes/delete-tiddler.js":{"text":"!function(){'use strict';exports.method='DELETE',exports.path=/^\\/bags\\/default\\/tiddlers\\/(.+)$/,exports.handler=function(e,t,d){var n=decodeURIComponent(d.params[0]);d.wiki.deleteTiddler(n),t.writeHead(204,'OK',{'Content-Type':'text/plain'}),t.end()}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-favicon.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/favicon.ico$/,exports.handler=function(e,t,i){t.writeHead(200,{'Content-Type':'image/x-icon'});i=i.wiki.getTiddlerText('$:/favicon.ico','');t.end(i,'base64')}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-file.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/files\\/(.+)$/,exports.handler=function(e,i,t){var o=require('path'),n=require('fs'),r=(require('util'),decodeURIComponent(t.params[0])),a=o.resolve(t.boot.wikiPath,'files',r),s=o.extname(a);n.readFile(a,function(e,t){var o,n='text/plain';e?(console.log('Error accessing file '+a+': '+e.toString()),o=404,t='File \\''+r+'\\' not found'):(o=200,n=$tw.config.fileExtensionInfo[s]?$tw.config.fileExtensionInfo[s].type:'application/octet-stream'),i.writeHead(o,{'Content-Type':n}),i.end(t)})}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-index.js":{"text":"!function(){'use strict';var d=require('zlib');exports.method='GET',exports.path=/^\\/$/,exports.handler=function(e,t,r){var n=(n=e.headers['accept-encoding'])||'',o=r.wiki.renderTiddler(r.server.get('root-render-type'),r.server.get('root-tiddler')),e={'Content-Type':r.server.get('root-serve-type')};r.server.enableGzip&&(/\\bdeflate\\b/.test(n)?(e['Content-Encoding']='deflate',o=d.deflateSync(o)):/\\bgzip\\b/.test(n)&&(e['Content-Encoding']='gzip',o=d.gzipSync(o))),t.writeHead(200,e),t.end(o)}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-login-basic.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/login-basic$/,exports.handler=function(e,t,a){a.authenticatedUsername?t.writeHead(302,{Location:'/'}):t.writeHead(401,{'WWW-Authenticate':'Basic realm=\"Please provide your username and password to login to '+a.server.servername+'\"'}),t.end()}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-status.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/status$/,exports.handler=function(e,t,n){t.writeHead(200,{'Content-Type':'application/json'});n=JSON.stringify({username:n.authenticatedUsername||n.server.get('anon-username')||'',anonymous:!n.authenticatedUsername,read_only:!n.server.isAuthorized('writers',n.authenticatedUsername),sse_enabled:'yes'===n.server.get('sse-enabled'),space:{recipe:'default'},tiddlywiki_version:$tw.version});t.end(n,'utf8')}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-tiddler-html.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/([^\\/]+)$/,exports.handler=function(e,r,t){var d,i=decodeURIComponent(t.params[0]),n=t.wiki.getTiddler(i);n?(d=n.getFieldString('_render_type'),n=n.getFieldString('_render_template'),n=t.wiki.isSystemTiddler(i)?(d=d||t.server.get('system-tiddler-render-type'),n||t.server.get('system-tiddler-render-template')):(d=d||t.server.get('tiddler-render-type'),n||t.server.get('tiddler-render-template')),i=t.wiki.renderTiddler(d,n,{parseAsInline:!0,variables:{currentTiddler:i}}),r.writeHead(200),r.end(i,'utf8')):(r.writeHead(404),r.end())}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-tiddler.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/recipes\\/default\\/tiddlers\\/(.+)$/,exports.handler=function(e,i,t){var d=decodeURIComponent(t.params[0]),n=t.wiki.getTiddler(d),r={},s=['bag','created','creator','modified','modifier','permissions','recipe','revision','tags','text','title','type','uri'];n?($tw.utils.each(n.fields,function(e,i){var t=n.getFieldString(i);-1!==s.indexOf(i)?r[i]=t:(r.fields=r.fields||{},r.fields[i]=t)}),r.revision=t.wiki.getChangeCount(d),r.bag='default',r.type=r.type||'text/vnd.tiddlywiki',i.writeHead(200,{'Content-Type':'application/json'}),i.end(JSON.stringify(r),'utf8')):(i.writeHead(404),i.end())}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/get-tiddlers-json.js":{"text":"!function(){'use strict';exports.method='GET',exports.path=/^\\/recipes\\/default\\/tiddlers.json$/,exports.handler=function(e,t,i){var r=i.queryParameters.filter||'[all[tiddlers]!is[system]sort[title]]';if('yes'!==i.wiki.getTiddlerText('$:/config/Server/AllowAllExternalFilters')&&'yes'!==i.wiki.getTiddlerText('$:/config/Server/ExternalFilters/'+r))return console.log('Blocked attempt to GET /recipes/default/tiddlers.json with filter: '+r),t.writeHead(403),void t.end();'no'===i.wiki.getTiddlerText('$:/config/SyncSystemTiddlersFromServer')&&(r+='+[!is[system]]');var l=(i.queryParameters.exclude||'text').split(','),r=i.wiki.filterTiddlers(r);t.writeHead(200,{'Content-Type':'application/json'});var s=[];$tw.utils.each(r,function(e){var t=i.wiki.getTiddler(e);t&&((t=t.getFieldStrings({exclude:l})).revision=i.wiki.getChangeCount(e),t.type=t.type||'text/vnd.tiddlywiki',s.push(t))});r=JSON.stringify(s);t.end(r,'utf8')}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/routes/put-tiddler.js":{"text":"!function(){'use strict';exports.method='PUT',exports.path=/^\\/recipes\\/default\\/tiddlers\\/(.+)$/,exports.handler=function(e,t,i){var d=decodeURIComponent(i.params[0]),n=JSON.parse(i.data);n.fields&&($tw.utils.each(n.fields,function(e,t){n[t]=e}),delete n.fields),n.revision&&delete n.revision,i.wiki.addTiddler(new $tw.Tiddler(i.wiki.getCreationFields(),n,{title:d},i.wiki.getModificationFields()));i=i.wiki.getChangeCount(d).toString();t.writeHead(204,'OK',{Etag:'\"default/'+encodeURIComponent(d)+'/'+i+':\"','Content-Type':'text/plain'}),t.end()}}();","type":"application/javascript","module-type":"route"},"$:/core/modules/server/server-sent-events.js":{"text":"!function(){'use strict';function i(e,t){this.handler=t,this.prefix=e}i.prototype.getExports=function(){return{bodyFormat:'stream',method:'GET',path:new RegExp('^/events/'+this.prefix+'$'),handler:this.handleEventRequest.bind(this)}},i.prototype.handleEventRequest=function(e,t,n){i.prototype.isEventStreamRequest(e)?(t.writeHead(200,{'Content-Type':'text/event-stream','Cache-Control':'no-cache',Connection:'keep-alive'}),this.handler(e,n,this.emit.bind(this,t),this.end.bind(this,t))):(t.writeHead(406,'Not Acceptable',{}),t.end())},i.prototype.isEventStreamRequest=function(e){return e.headers.accept&&e.headers.accept.match(/^text\\/event-stream/)},i.prototype.emit=function(e,t,n){if('string'!=typeof t||-1!==t.indexOf('\\n'))throw new Error('Type must be a single-line string');if('string'!=typeof n||-1!==n.indexOf('\\n'))throw new Error('Data must be a single-line string');e.write('event: '+t+'\\ndata: '+n+'\\n\\n','utf8')},i.prototype.end=function(e){e.end()},exports.ServerSentEvents=i}();","type":"application/javascript","module-type":"library"},"$:/core/modules/server/server.js":{"text":"!function(){'use strict';var o,n,a,d;function t(t){var i=this;if(this.routes=t.routes||[],this.authenticators=t.authenticators||[],this.wiki=t.wiki,this.boot=t.boot||$tw.boot,this.servername=$tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText('$:/SiteTitle')||'TiddlyWiki5'),this.variables=$tw.utils.extend({},this.defaultVariables),t.variables)for(var e in t.variables)t.variables[e]&&(this.variables[e]=t.variables[e]);$tw.utils.extend({},this.defaultVariables,t.variables),this.csrfDisable='yes'===this.get('csrf-disable'),this.enableGzip='yes'===this.get('gzip');var r=this.get('username')&&this.get('password')?this.get('username'):'(anon)';this.authorizationPrincipals={readers:(this.get('readers')||r).split(',').map($tw.utils.trim),writers:(this.get('writers')||r).split(',').map($tw.utils.trim)},$tw.modules.forEachModuleOfType('authenticator',function(t,e){i.addAuthenticator(e.AuthenticatorClass)}),$tw.modules.forEachModuleOfType('route',function(t,e){i.addRoute(e)}),this.listenOptions=null,this.protocol='http';var s=this.get('tls-key'),r=this.get('tls-cert');r&&s&&(this.listenOptions={key:o.readFileSync(a.resolve(this.boot.wikiPath,s),'utf8'),cert:o.readFileSync(a.resolve(this.boot.wikiPath,r),'utf8')},this.protocol='https'),this.transport=require(this.protocol)}$tw.node&&(require('util'),o=require('fs'),n=require('url'),a=require('path'),d=require('querystring')),t.prototype.defaultVariables={port:'8080',host:'127.0.0.1','root-tiddler':'$:/core/save/all','root-render-type':'text/plain','root-serve-type':'text/html','tiddler-render-type':'text/html','tiddler-render-template':'$:/core/templates/server/static.tiddler.html','system-tiddler-render-type':'text/plain','system-tiddler-render-template':'$:/core/templates/wikified-tiddler','debug-level':'none',gzip:'no'},t.prototype.get=function(t){return this.variables[t]},t.prototype.addRoute=function(t){this.routes.push(t)},t.prototype.addAuthenticator=function(t){var e=new t(this),t=e.init();'string'==typeof t?$tw.utils.error('Error: '+t):t&&this.authenticators.push(e)},t.prototype.findMatchingRoute=function(t,e){for(var i=0;i<this.routes.length;i++){var r=this.routes[i],s=(r.path,e.urlInfo.pathname),o=e.pathPrefix?s.substr(0,e.pathPrefix.length)===e.pathPrefix&&(s=s.substr(e.pathPrefix.length)||'/',r.path.exec(s)):r.path.exec(s);if(o&&t.method===r.method){e.params=[];for(var a=1;a<o.length;a++)e.params.push(o[a]);return r}}return null},t.prototype.methodMappings={GET:'readers',OPTIONS:'readers',HEAD:'readers',PUT:'writers',POST:'writers',DELETE:'writers'},t.prototype.isAuthorized=function(t,e){t=this.authorizationPrincipals[t]||[];return-1!==t.indexOf('(anon)')||e&&(-1!==t.indexOf('(authenticated)')||-1!==t.indexOf(e))},t.prototype.requestHandler=function(t,e,i){i=i||{};var r=this,s={};s.wiki=i.wiki||r.wiki,s.boot=i.boot||r.boot,s.server=r,s.urlInfo=n.parse(t.url),s.queryParameters=d.parse(s.urlInfo.query),s.pathPrefix=i.pathPrefix||this.get('path-prefix')||'';i=this.methodMappings[t.method]||'readers';if(!this.csrfDisable&&'writers'===i&&'TiddlyWiki'!==t.headers['x-requested-with'])return e.writeHead(403,'\\'X-Requested-With\\' header required to login to \\''+this.servername+'\\''),void e.end();if(s.allowAnon=this.isAuthorized(i,null),!(0<this.authenticators.length)||this.authenticators[0].authenticateRequest(t,e,s)){if(!this.isAuthorized(i,s.authenticatedUsername))return e.writeHead(401,'\\''+s.authenticatedUsername+'\\' is not authorized to access \\''+this.servername+'\\''),void e.end();var o,a=r.findMatchingRoute(t,s);if('none'!==r.get('debug-level')&&(console.log('Request path:',JSON.stringify(s.urlInfo)),console.log('Request headers:',JSON.stringify(t.headers)),console.log('authenticatedUsername:',s.authenticatedUsername)),!a)return e.writeHead(404),void e.end();'stream'===a.bodyFormat||'GET'===t.method||'HEAD'===t.method?a.handler(t,e,s):'string'!==a.bodyFormat&&a.bodyFormat?'buffer'===a.bodyFormat?(o=[],t.on('data',function(t){o.push(t)}),t.on('end',function(){s.data=Buffer.concat(o),a.handler(t,e,s)})):(e.writeHead(400,'Invalid bodyFormat '+a.bodyFormat+' in route '+a.method+' '+a.path.source),e.end()):(t.setEncoding('utf8'),o='',t.on('data',function(t){o+=t.toString()}),t.on('end',function(){s.data=o,a.handler(t,e,s)}))}},t.prototype.listen=function(t,e,i){var r,s=this;return t=t||this.get('port'),e=e||this.get('host'),i=i||this.get('path-prefix')||'',parseInt(t,10).toString()!==t&&(t=process.env[t]||8080),this.wiki.getTiddler('$:/plugins/tiddlywiki/tiddlyweb')&&this.wiki.getTiddler('$:/plugins/tiddlywiki/filesystem')||$tw.utils.warning('Warning: Plugins required for client-server operation (\"tiddlywiki/filesystem\" and \"tiddlywiki/tiddlyweb\") are missing from tiddlywiki.info file'),(r=this.listenOptions?this.transport.createServer(this.listenOptions,this.requestHandler.bind(this)):this.transport.createServer(this.requestHandler.bind(this))).on('listening',function(){var t=r.address();$tw.utils.log('Serving on '+s.protocol+'://'+t.address+':'+t.port+i,'brown/orange'),$tw.utils.log('(press ctrl-C to exit)','red')}),r.listen(t,e)},exports.Server=t}();","type":"application/javascript","module-type":"library"},"$:/core/modules/browser-messaging.js":{"text":"!function(){'use strict';function e(t,e){if(r=$tw.browserMessaging.iframeInfoMap[t])e(null,r);else{var i=document.createElement('iframe'),r={url:t,status:'loading',domNode:i};o($tw.browserMessaging.iframeInfoMap[t]=r),i.style.display='none',i.setAttribute('library','true'),document.body.appendChild(i),i.onload=function(){r.status='loaded',o(r),e(null,r)},i.onerror=function(){e('Cannot load iframe')};try{i.src=t}catch(t){e(t)}}}function o(t){$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{title:'$:/temp/ServerConnection/'+t.url,text:t.status,tags:['$:/tags/ServerConnection'],url:t.url},$tw.wiki.getModificationFields()))}exports.name='browser-messaging',exports.platforms=['browser'],exports.after=['startup'],exports.synchronous=!0,exports.startup=function(){$tw.browserMessaging={iframeInfoMap:{}},$tw.rootWidget.addEventListener('tm-load-plugin-library',function(t){var i=t.paramObject||{},r=i.url;r&&e(r,function(t,e){t?alert($tw.language.getString('Error/LoadingPluginLibrary')+': '+r):e.domNode.contentWindow.postMessage({verb:'GET',url:'recipes/library/tiddlers.json',cookies:{type:'save-info',infoTitlePrefix:i.infoTitlePrefix||'$:/temp/RemoteAssetInfo/',url:r}},'*')})}),$tw.rootWidget.addEventListener('tm-unload-plugin-library',function(t){var e,t=(t.paramObject||{}).url;$tw.browserMessaging.iframeInfoMap[t]=void 0,t&&(e=t,$tw.utils.each(document.getElementsByTagName('iframe'),function(t){'true'===t.getAttribute('library')&&t.getAttribute('src')===e&&t.parentNode.removeChild(t)}),$tw.utils.each($tw.wiki.filterTiddlers('[[$:/temp/ServerConnection/'+t+']] [prefix[$:/temp/RemoteAssetInfo/'+t+'/]]'),function(t){$tw.wiki.deleteTiddler(t)}))}),$tw.rootWidget.addEventListener('tm-load-plugin-from-library',function(t){var t=t.paramObject||{},i=t.url,r=t.title;i&&r&&e(i,function(t,e){t?alert($tw.language.getString('Error/LoadingPluginLibrary')+': '+i):e.domNode.contentWindow.postMessage({verb:'GET',url:'recipes/library/tiddlers/'+encodeURIComponent(r)+'.json',cookies:{type:'save-tiddler',url:i}},'*')})}),window.addEventListener('message',function(e){var t;'GET-RESPONSE'===e.data.verb&&'2'===e.data.status.charAt(0)&&e.data.cookies&&('save-info'===e.data.cookies.type?(t=JSON.parse(e.data.body),$tw.utils.each(t,function(t){$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),t,{title:e.data.cookies.infoTitlePrefix+e.data.cookies.url+'/'+t.title,'original-title':t.title,text:'',type:'text/vnd.tiddlywiki','original-type':t.type,'plugin-type':void 0,'original-plugin-type':t['plugin-type'],'module-type':void 0,'original-module-type':t['module-type'],tags:['$:/tags/RemoteAssetInfo'],'original-tags':$tw.utils.stringifyList(t.tags||[]),'server-url':e.data.cookies.url},$tw.wiki.getModificationFields()))})):'save-tiddler'===e.data.cookies.type&&(t=JSON.parse(e.data.body),$tw.wiki.addTiddler(new $tw.Tiddler(t))))},!1)}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/commands.js":{"text":"!function(){'use strict';exports.name='commands',exports.platforms=['node'],exports.after=['story'],exports.synchronous=!1,exports.startup=function(t){new $tw.Commander($tw.boot.argv,function(r){if(r)return $tw.utils.error('Error: '+r);t()},$tw.wiki,{output:process.stdout,error:process.stderr}).execute()}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/CSSescape.js":{"text":"!function(r){'use strict';exports.name='css-escape',exports.platforms=['browser'],exports.after=['startup'],exports.synchronous=!0,exports.startup=function(r){if(r.CSS&&r.CSS.escape)return;var e=function(r){if(arguments.length==0)throw new TypeError('`CSS.escape` requires an argument.');var e=String(r);var t=e.length;var n=-1;var a;var o='';var i=e.charCodeAt(0);while(++n<t){a=e.charCodeAt(n);if(a==0){o+='�';continue}if(a>=1&&a<=31||a==127||n==0&&a>=48&&a<=57||n==1&&a>=48&&a<=57&&i==45){o+='\\\\'+a.toString(16)+' ';continue}if(n==0&&t==1&&a==45){o+='\\\\'+e.charAt(n);continue}if(a>=128||a==45||a==95||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122){o+=e.charAt(n);continue}o+='\\\\'+e.charAt(n)}return o};if(!r.CSS)r.CSS={};r.CSS.escape=e}(r)}('undefined'!=typeof global?global:this);","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/favicon.js":{"text":"!function(){'use strict';exports.name='favicon',exports.platforms=['browser'],exports.after=['startup'],exports.synchronous=!0;var e='$:/favicon.ico';function i(){var t=$tw.wiki.getTiddler(e);t&&document.getElementById('faviconLink').setAttribute('href',$tw.utils.makeDataUri(t.fields.text,t.fields.type,t.fields._canonical_uri))}exports.startup=function(){i(),$tw.wiki.addEventListener('change',function(t){$tw.utils.hop(t,e)&&i()})}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/info.js":{"text":"!function(){'use strict';exports.name='info',exports.before=['startup'],exports.after=['load-modules'],exports.synchronous=!0;var r='$:/temp/info-plugin';exports.startup=function(){function e(t){var i=$tw.wiki.getTiddlerData(r,{tiddlers:{}});$tw.utils.each(t,function(t){t&&t.title&&(i.tiddlers[t.title]=t)}),t={title:r,type:'application/json','plugin-type':'info',text:JSON.stringify(i,null,$tw.config.preferences.jsonSpaces)},$tw.wiki.addTiddler(new $tw.Tiddler(t))}var n=[];$tw.modules.forEachModuleOfType('info',function(t,i){i&&i.getInfoTiddlerFields&&Array.prototype.push.apply(n,i.getInfoTiddlerFields(e))}),e(n);$tw.wiki.readPluginInfo([r]);$tw.wiki.registerPluginTiddlers('info',[r]),$tw.wiki.unpackPluginTiddlers()}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/load-modules.js":{"text":"!function(){'use strict';exports.name='load-modules',exports.synchronous=!0,exports.startup=function(){$tw.modules.applyMethods('utils',$tw.utils),$tw.node&&$tw.modules.applyMethods('utils-node',$tw.utils),$tw.browser&&$tw.modules.applyMethods('utils-browser',$tw.utils),$tw.modules.applyMethods('global',$tw),$tw.modules.applyMethods('config',$tw.config),$tw.Tiddler.fieldModules=$tw.modules.getModulesByTypeAsHashmap('tiddlerfield'),$tw.modules.applyMethods('tiddlermethod',$tw.Tiddler.prototype),$tw.modules.applyMethods('wikimethod',$tw.Wiki.prototype),$tw.wiki.addIndexersToWiki(),$tw.modules.applyMethods('tiddlerdeserializer',$tw.Wiki.tiddlerDeserializerModules),$tw.macros=$tw.modules.getModulesByTypeAsHashmap('macro'),$tw.wiki.initParsers(),$tw.Commander.initCommands()}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/password.js":{"text":"!function(){'use strict';exports.name='password',exports.platforms=['browser'],exports.after=['startup'],exports.synchronous=!0,exports.startup=function(){$tw.rootWidget.addEventListener('tm-set-password',function(t){$tw.passwordPrompt.createPrompt({serviceName:$tw.language.getString('Encryption/PromptSetPassword'),noUserName:!0,submitText:$tw.language.getString('Encryption/SetPassword'),canCancel:!0,repeatPassword:!0,callback:function(t){return t&&$tw.crypto.setPassword(t.password),!0}})}),$tw.rootWidget.addEventListener('tm-clear-password',function(t){$tw.browser&&!confirm($tw.language.getString('Encryption/ConfirmClearPassword'))||$tw.crypto.setPassword(null)}),$tw.wiki.addEventListener('change',function(t){$tw.utils.hop(t,'$:/isEncrypted')&&$tw.crypto.updateCryptoStateTiddler()})}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/plugins.js":{"text":"!function(){'use strict';exports.name='plugins',exports.after=['load-modules'],exports.synchronous=!0;var l='$:/status/RequireReloadDueToPluginChange';exports.startup=function(){$tw.wiki.addTiddler({title:l,text:'no'}),$tw.wiki.addEventListener('change',function(e){var i,t=[],n=!1;$tw.utils.each(Object.keys(e),function(e){var i=$tw.wiki.getTiddler(e);$tw.wiki.doesPluginRequireReload(e)?n=!0:i&&(i.fields['plugin-type'],'yes'===$tw.wiki.getTiddlerText('$:/config/RegisterPluginType/'+(i.fields['plugin-type']||''),'no')&&t.push(e))}),n&&$tw.wiki.addTiddler({title:l,text:'yes'}),0<t.length&&(0<(e=$tw.wiki.readPluginInfo(t)).modifiedPlugins.length||0<e.deletedPlugins.length)&&(i={},$tw.utils.each(e.deletedPlugins,function(e){e=$tw.wiki.getPluginInfo(e);e&&$tw.utils.each(Object.keys(e.tiddlers),function(e){i[e]=!0})}),$tw.utils.each(e.modifiedPlugins,function(e){e=$tw.wiki.getPluginInfo(e);e&&$tw.utils.each(Object.keys(e.tiddlers),function(e){i[e]=!1})}),$tw.wiki.registerPluginTiddlers(null,e.modifiedPlugins),$tw.wiki.unregisterPluginTiddlers(null,e.deletedPlugins),$tw.wiki.unpackPluginTiddlers(),$tw.utils.each(Object.keys(i),function(e){$tw.wiki.enqueueTiddlerEvent(e,i[e])}))})}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/render.js":{"text":"!function(){'use strict';exports.name='render',exports.platforms=['browser'],exports.after=['story'],exports.synchronous=!0,exports.startup=function(){$tw.titleWidgetNode=$tw.wiki.makeTranscludeWidget('$:/core/wiki/title',{document:$tw.fakeDocument,parseAsInline:!0}),$tw.titleContainer=$tw.fakeDocument.createElement('div'),$tw.titleWidgetNode.render($tw.titleContainer,null),document.title=$tw.titleContainer.textContent,$tw.wiki.addEventListener('change',function(e){$tw.titleWidgetNode.refresh(e,$tw.titleContainer,null)&&(document.title=$tw.titleContainer.textContent)}),$tw.styleWidgetNode=$tw.wiki.makeTranscludeWidget('$:/core/ui/PageStylesheet',{document:$tw.fakeDocument}),$tw.styleContainer=$tw.fakeDocument.createElement('style'),$tw.styleWidgetNode.render($tw.styleContainer,null),$tw.styleElement=document.createElement('style'),$tw.styleElement.innerHTML=$tw.styleContainer.textContent,document.head.insertBefore($tw.styleElement,document.head.firstChild),$tw.wiki.addEventListener('change',$tw.perf.report('styleRefresh',function(e){$tw.styleWidgetNode.refresh(e,$tw.styleContainer,null)&&($tw.styleElement.innerHTML=$tw.styleContainer.textContent)})),$tw.perf.report('mainRender',function(){$tw.pageWidgetNode=$tw.wiki.makeTranscludeWidget('$:/core/ui/RootTemplate',{document:document,parentWidget:$tw.rootWidget,recursionMarker:'no'}),$tw.pageContainer=document.createElement('div'),$tw.utils.addClass($tw.pageContainer,'tc-page-container-wrapper'),document.body.insertBefore($tw.pageContainer,document.body.firstChild),$tw.pageWidgetNode.render($tw.pageContainer,null),$tw.hooks.invokeHook('th-page-refreshed')})();var e=document.querySelectorAll('.tc-remove-when-wiki-loaded');$tw.utils.each(e,function(e){e.parentNode&&e.parentNode.removeChild(e)});var i,a=Object.create(null);function d(){$tw.hooks.invokeHook('th-page-refreshing'),$tw.pageWidgetNode.refresh(a),a=Object.create(null),$tw.hooks.invokeHook('th-page-refreshed')}$tw.wiki.addEventListener('change',$tw.perf.report('mainRefresh',function(e){var t,n,o=!0;for(t in e){var r=$tw.wiki.getTiddler(t);r&&(r.hasField('draft.of')||r.hasField('throttle.refresh'))||(o=!1)}i&&clearTimeout(i),i=null,o?(n=parseInt($tw.wiki.getTiddlerText('$:/config/Drafts/TypingTimeout',''),10),isNaN(n)&&(n=400),i=setTimeout(d,n),$tw.utils.extend(a,e)):($tw.utils.extend(a,e),d())})),$tw.rootWidget.domNodes=[$tw.pageContainer],$tw.rootWidget.children=[$tw.pageWidgetNode],$tw.rootWidget.invokeActionsByTag('$:/tags/StartupAction/PostRender')}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/rootwidget.js":{"text":"!function(){'use strict';exports.name='rootwidget',exports.platforms=['browser'],exports.after=['startup'],exports.before=['story'],exports.synchronous=!0,exports.startup=function(){$tw.modal=new $tw.utils.Modal($tw.wiki),$tw.rootWidget.addEventListener('tm-modal',function(t){$tw.modal.display(t.param,{variables:t.paramObject,event:t})}),$tw.rootWidget.addEventListener('tm-show-switcher',function(t){$tw.modal.display('$:/core/ui/SwitcherModal',{variables:t.paramObject,event:t})}),$tw.notifier=new $tw.utils.Notifier($tw.wiki),$tw.rootWidget.addEventListener('tm-notify',function(t){$tw.notifier.display(t.param,{variables:t.paramObject})}),$tw.rootWidget.addEventListener('tm-copy-to-clipboard',function(t){$tw.utils.copyToClipboard(t.param)}),$tw.rootWidget.addEventListener('tm-focus-selector',function(t){var e,o=t.param||'';try{e=document.querySelector(o)}catch(t){console.log('Error in selector: ',o)}e&&e.focus&&e.focus(t.paramObject)}),$tw.pageScroller=new $tw.utils.PageScroller,$tw.rootWidget.addEventListener('tm-scroll',function(t){$tw.pageScroller.handleEvent(t)});var o=$tw.utils.getFullScreenApis();o&&$tw.rootWidget.addEventListener('tm-full-screen',function(t){var e=t.event?t.event.target.ownerDocument:document;'enter'!==t.param&&('exit'===t.param||e[o._fullscreenElement])?e[o._exitFullscreen]():e.documentElement[o._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT)}),'data:'===document.location.protocol&&$tw.rootWidget.dispatchEvent({type:'tm-modal',param:'$:/language/Modals/SaveInstructions'})}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup.js":{"text":"!function(){'use strict';exports.name='startup',exports.after=['load-modules'],exports.synchronous=!0;var t=require('$:/core/modules/widgets/widget.js');exports.startup=function(){if($tw.browser&&($tw.browser.isIE=/msie|trident/i.test(navigator.userAgent),$tw.browser.isFirefox=!!document.mozFullScreenEnabled),$tw.platform={},$tw.browser)$tw.platform.isMac=/Mac/.test(navigator.platform),$tw.platform.isWindows=/win/i.test(navigator.platform),$tw.platform.isLinux=/Linux/i.test(navigator.platform);else switch(require('os').platform()){case'darwin':$tw.platform.isMac=!0;break;case'win32':$tw.platform.isWindows=!0;break;case'freebsd':case'linux':$tw.platform.isLinux=!0}$tw.version=$tw.utils.extractVersionInfo(),$tw.perf=new $tw.Performance('yes'===$tw.wiki.getTiddlerText('$:/config/Performance/Instrumentation','no')),$tw.rootWidget=new t.widget({type:'widget',children:[]},{wiki:$tw.wiki,document:$tw.browser?document:$tw.fakeDocument}),$tw.rootWidget.invokeActionsByTag('$:/tags/StartupAction'),$tw.browser&&$tw.rootWidget.invokeActionsByTag('$:/tags/StartupAction/Browser'),$tw.node&&$tw.rootWidget.invokeActionsByTag('$:/tags/StartupAction/Node'),$tw.language=new $tw.Language,$tw.languageSwitcher=new $tw.PluginSwitcher({wiki:$tw.wiki,pluginType:'language',controllerTitle:'$:/language',defaultPlugins:['$:/languages/en-GB'],onSwitch:function(t){$tw.browser&&((t=$tw.wiki.getTiddler(t[0]))?document.documentElement.setAttribute('dir',t.getFieldString('text-direction')||'auto'):document.documentElement.removeAttribute('dir'))}}),$tw.themeManager=new $tw.PluginSwitcher({wiki:$tw.wiki,pluginType:'theme',controllerTitle:'$:/theme',defaultPlugins:['$:/themes/tiddlywiki/snowwhite','$:/themes/tiddlywiki/vanilla']}),$tw.keyboardManager=new $tw.KeyboardManager,$tw.browser&&$tw.utils.addEventListeners(document,[{name:'keydown',handlerObject:$tw.keyboardManager,handlerMethod:'handleKeydownEvent'}]),$tw.wiki.clearTiddlerEventQueue(),$tw.syncadaptor=void 0,$tw.modules.forEachModuleOfType('syncadaptor',function(t,e){!$tw.syncadaptor&&e.adaptorClass&&($tw.syncadaptor=new e.adaptorClass({wiki:$tw.wiki}))}),$tw.syncadaptor&&($tw.syncer=new $tw.Syncer({wiki:$tw.wiki,syncadaptor:$tw.syncadaptor})),$tw.saverHandler=new $tw.SaverHandler({wiki:$tw.wiki,dirtyTracking:!$tw.syncadaptor,preloadDirty:$tw.boot.preloadDirty||[]}),$tw.browser&&($tw.popup=new $tw.utils.Popup,$tw.anim=new $tw.utils.Animator)}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/story.js":{"text":"!function(){'use strict';exports.name='story',exports.after=['startup'],exports.synchronous=!0;var r='$:/StoryList',a='$:/HistoryList',s='$:/DefaultTiddlers',i='$:/config/Navigation/UpdateHistory',e='$:/config/Navigation/Permalinkview/CopyToClipboard',o='$:/config/Navigation/Permalinkview/UpdateAddressBar';function n(t){t=t||{};var i,e,o=null,n=null;1<$tw.locationHash.length&&(-1===(e=(i=$tw.locationHash.substr(1)).indexOf(':'))?o=decodeURIComponent(i.trim()):(o=decodeURIComponent(i.substr(0,e).trim()),n=decodeURIComponent(i.substr(e+1).trim()))),null===n&&(n=t.defaultToCurrentStory?(d=$tw.wiki.getTiddlerList(r),$tw.utils.stringifyList(d)):o&&''!==o?'':$tw.wiki.getTiddlerText(s));var d=$tw.wiki.filterTiddlers(n),d=$tw.hooks.invokeHook('th-opening-default-tiddlers-list',d);o&&-1===d.indexOf(o)&&d.unshift(o),$tw.wiki.addTiddler({title:r,text:'',list:d},$tw.wiki.getModificationFields());n=new $tw.Story({wiki:$tw.wiki,storyTitle:r,historyTitle:a});t.disableHistory||(o&&''!==o?(0===o.indexOf('[[')&&']]'===o.substr(-2)&&(o=o.substr(2,o.length-4)),n.addToHistory(o)):0<d.length&&n.addToHistory(d[0]))}function d(t){var i=$tw.wiki.getTiddlerList(r),e=$tw.wiki.getTiddlerData(a,[]),o='';switch(t.targetTiddler?o=t.targetTiddler:(0<e.length&&(o=e[e.length-1].title),-1===i.indexOf(o)&&(o='')),t.updateAddressBar){case'permalink':$tw.locationHash='#'+encodeURIComponent(o);break;case'permaview':$tw.locationHash='#'+encodeURIComponent(o)+':'+encodeURIComponent($tw.utils.stringifyList(i))}switch(t.copyToClipboard){case'permalink':$tw.utils.copyToClipboard($tw.utils.getLocationPath()+'#'+encodeURIComponent(o));break;case'permaview':$tw.utils.copyToClipboard($tw.utils.getLocationPath()+'#'+encodeURIComponent(o)+':'+encodeURIComponent($tw.utils.stringifyList(i)))}$tw.utils.getLocationHash()!==$tw.locationHash&&('yes'===t.updateHistory?window.location.hash=$tw.locationHash:window.location.replace(window.location.toString().split('#')[0]+$tw.locationHash))}exports.startup=function(){n({disableHistory:$tw.boot.disableStartupNavigation}),$tw.browser&&($tw.wiki.addEventListener('change',function(t){($tw.utils.hop(t,r)||$tw.utils.hop(t,a))&&d({updateAddressBar:$tw.wiki.getTiddlerText('$:/config/Navigation/UpdateAddressBar','permaview').trim(),updateHistory:$tw.wiki.getTiddlerText(i,'no').trim()})}),window.addEventListener('hashchange',function(){var t=$tw.utils.getLocationHash();t!==$tw.locationHash&&($tw.locationHash=t,n({defaultToCurrentStory:!0}))},!1),$tw.rootWidget.addEventListener('tm-browser-refresh',function(t){window.location.reload(!0)}),$tw.rootWidget.addEventListener('tm-open-external-window',function(t){var i=t.paramObject||{},e=t.param||'http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window',t=i.windowName,i=i.windowFeatures;window.open(e,t,i)}),$tw.rootWidget.addEventListener('tm-print',function(t){(t.event.view||window).print()}),$tw.rootWidget.addEventListener('tm-home',function(t){window.location.hash='';var i=$tw.wiki.getTiddlerText(s),i=$tw.wiki.filterTiddlers(i),i=$tw.hooks.invokeHook('th-opening-default-tiddlers-list',i);$tw.wiki.addTiddler({title:r,text:'',list:i},$tw.wiki.getModificationFields()),i[0]&&$tw.wiki.addToHistory(i[0])}),$tw.rootWidget.addEventListener('tm-permalink',function(t){d({updateAddressBar:'yes'===$tw.wiki.getTiddlerText(o,'yes').trim()?'permalink':'none',updateHistory:$tw.wiki.getTiddlerText(i,'no').trim(),targetTiddler:t.param||t.tiddlerTitle,copyToClipboard:'yes'===$tw.wiki.getTiddlerText(e,'yes').trim()?'permalink':'none'})}),$tw.rootWidget.addEventListener('tm-permaview',function(t){d({updateAddressBar:'yes'===$tw.wiki.getTiddlerText(o,'yes').trim()?'permaview':'none',updateHistory:$tw.wiki.getTiddlerText(i,'no').trim(),targetTiddler:t.param||t.tiddlerTitle,copyToClipboard:'yes'===$tw.wiki.getTiddlerText(e,'yes').trim()?'permaview':'none'})}))}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/startup/windows.js":{"text":"!function(){'use strict';exports.name='windows',exports.platforms=['browser'],exports.after=['startup'],exports.synchronous=!0,$tw.windows={},exports.startup=function(){$tw.rootWidget.addEventListener('tm-open-window',function(e){var t,n,i,d,r,o,a,s=e.param||e.tiddlerTitle,w=e.paramObject||{},l=w.windowTitle||s,e=w.template||'$:/core/templates/single.tiddler.window',c=w.width||'700',u=w.height||'600',w=$tw.utils.extend({},w,{currentTiddler:s});try{i=(n=window.open('','external-'+s,'scrollbars,width='+c+',height='+u)).document}catch(e){return}($tw.windows[s]=n).haveInitialisedWindow||(i.write('<html><head></head><body class=\\'tc-body tc-single-tiddler-window\\'></body></html>'),i.close(),i.title=l,n.addEventListener('beforeunload',function(e){delete $tw.windows[s],$tw.wiki.removeEventListener('change',t)},!1),d=$tw.wiki.makeTranscludeWidget('$:/core/ui/PageStylesheet',{document:$tw.fakeDocument,variables:w,importPageMacros:!0}),r=$tw.fakeDocument.createElement('style'),d.render(r,null),(o=i.createElement('style')).innerHTML=r.textContent,i.head.insertBefore(o,i.head.firstChild),e=$tw.wiki.parseTiddler(e),(a=$tw.wiki.makeWidget(e,{document:i,parentWidget:$tw.rootWidget,variables:w})).render(i.body,i.body.firstChild),t=function(e){d.refresh(e,r,null)&&(o.innerHTML=r.textContent),a.refresh(e)},$tw.wiki.addEventListener('change',t),$tw.utils.addEventListeners(i,[{name:'keydown',handlerObject:$tw.keyboardManager,handlerMethod:'handleKeydownEvent'}]),n.document.documentElement.addEventListener('click',$tw.popup,!0),n.haveInitialisedWindow=!0)}),$tw.addUnloadTask(function(){$tw.utils.each($tw.windows,function(e){e.close()})})}}();","type":"application/javascript","module-type":"startup"},"$:/core/modules/story.js":{"text":"!function(){'use strict';function t(t){t=t||{},this.wiki=t.wiki||$tw.wiki,this.storyTitle=t.storyTitle||'$:/StoryList',this.historyTitle=t.historyTitle||'$:/HistoryList'}t.prototype.navigateTiddler=function(t,i,e){this.addToStory(t,i),this.addToHistory(t,e)},t.prototype.getStoryList=function(){return this.wiki.getTiddlerList(this.storyTitle)||[]},t.prototype.addToStory=function(t,i,e){e=e||{};var o=this.getStoryList(),r=o.indexOf(t);if(!(0<=r)){var s=o.indexOf(i);if(0<=s)switch(e.openLinkFromInsideRiver){case'top':r=0;break;case'bottom':r=o.length;break;case'above':r=s;break;case'below':default:r=s+1}else r='bottom'===e.openLinkFromOutsideRiver?o.length:0;o.splice(r,0,t),this.saveStoryList(o)}},t.prototype.saveStoryList=function(t){var i=this.wiki.getTiddler(this.storyTitle);this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title:this.storyTitle},i,{list:t},this.wiki.getModificationFields()))},t.prototype.addToHistory=function(t,i){var t=$tw.utils.isArray(t)?t:[t],e=this.wiki.getTiddlerData(this.historyTitle,[]);$tw.utils.each(t,function(t){e.push({title:t,fromPageRect:i})}),this.wiki.setTiddlerData(this.historyTitle,e,{'current-tiddler':t[t.length-1]})},t.prototype.storyCloseTiddler=function(t){},t.prototype.storyCloseAllTiddlers=function(){},t.prototype.storyCloseOtherTiddlers=function(t){},t.prototype.storyEditTiddler=function(t){},t.prototype.storyDeleteTiddler=function(t){},t.prototype.storySaveTiddler=function(t){},t.prototype.storyCancelTiddler=function(t){},t.prototype.storyNewTiddler=function(t){},exports.Story=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/storyviews/classic.js":{"text":"!function(){'use strict';function t(t){this.listWidget=t}var a='cubic-bezier(0.645, 0.045, 0.355, 1)';t.prototype.navigateTo=function(t){var i=$tw.utils.getAnimationDuration(),t=this.listWidget.findListItem(0,t.title);void 0===t||(t=this.listWidget.children[t].findFirstDomNode())instanceof Element&&(i?this.listWidget.dispatchEvent({type:'tm-scroll',target:t}):t.scrollIntoView())},t.prototype.insert=function(t){var i,o,e=$tw.utils.getAnimationDuration();!e||(i=t.findFirstDomNode())instanceof Element&&(o=window.getComputedStyle(i),t=parseInt(o.marginBottom,10),o=parseInt(o.marginTop,10),o=i.offsetHeight+o,setTimeout(function(){$tw.utils.setStyle(i,[{transition:'none'},{marginBottom:''}])},e),$tw.utils.setStyle(i,[{transition:'none'},{marginBottom:-o+'px'},{opacity:'0.0'}]),$tw.utils.forceLayout(i),$tw.utils.setStyle(i,[{transition:'opacity '+e+'ms '+a+', margin-bottom '+e+'ms '+a},{marginBottom:t+'px'},{opacity:'1.0'}]))},t.prototype.remove=function(t){var i,o,e,n,s,r=$tw.utils.getAnimationDuration();r?(o=function(){t.removeChildDomNodes()},(i=t.findFirstDomNode())instanceof Element?(e=i.offsetWidth,s=window.getComputedStyle(i),n=parseInt(s.marginBottom,10),s=parseInt(s.marginTop,10),s=i.offsetHeight+s,setTimeout(o,r),$tw.utils.setStyle(i,[{transition:'none'},{transform:'translateX(0px)'},{marginBottom:n+'px'},{opacity:'1.0'}]),$tw.utils.forceLayout(i),$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+r+'ms '+a+', opacity '+r+'ms '+a+', margin-bottom '+r+'ms '+a},{transform:'translateX(-'+e+'px)'},{marginBottom:-s+'px'},{opacity:'0.0'}])):o()):t.removeChildDomNodes()},exports.classic=t}();","type":"application/javascript","module-type":"storyview"},"$:/core/modules/storyviews/pop.js":{"text":"!function(){'use strict';function t(t){this.listWidget=t}t.prototype.navigateTo=function(t){t=this.listWidget.findListItem(0,t.title);void 0===t||(t=this.listWidget.children[t].findFirstDomNode())instanceof Element&&this.listWidget.dispatchEvent({type:'tm-scroll',target:t})},t.prototype.insert=function(t){var e=t.findFirstDomNode(),i=$tw.utils.getAnimationDuration();e instanceof Element&&(setTimeout(function(){$tw.utils.setStyle(e,[{transition:'none'},{transform:'none'}]),$tw.utils.setStyle(t.document.body,[{'overflow-x':''}])},i),$tw.utils.setStyle(t.document.body,[{'overflow-x':'hidden'}]),$tw.utils.setStyle(e,[{transition:'none'},{transform:'scale(2)'},{opacity:'0.0'}]),$tw.utils.forceLayout(e),$tw.utils.setStyle(e,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+i+'ms ease-in-out, opacity '+i+'ms ease-in-out'},{transform:'scale(1)'},{opacity:'1.0'}]))},t.prototype.remove=function(t){function e(){i&&i.parentNode&&t.removeChildDomNodes()}var i=t.findFirstDomNode(),o=$tw.utils.getAnimationDuration();i instanceof Element?(setTimeout(e,o),$tw.utils.setStyle(i,[{transition:'none'},{transform:'scale(1)'},{opacity:'1.0'}]),$tw.utils.forceLayout(i),$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+o+'ms ease-in-out, opacity '+o+'ms ease-in-out'},{transform:'scale(0.1)'},{opacity:'0.0'}])):e()},exports.pop=t}();","type":"application/javascript","module-type":"storyview"},"$:/core/modules/storyviews/zoomin.js":{"text":"!function(){'use strict';function t(t){var n,s=this;this.listWidget=t,0<(t=this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[])).length&&(n=t[t.length-1].title),$tw.utils.each(this.listWidget.children,function(t,i){var e=t.findFirstDomNode();e instanceof Element&&(n&&n!==t.parseTreeNode.itemTitle||!n&&i?e.style.display='none':s.currentTiddlerDomNode=e,$tw.utils.addClass(e,'tc-storyview-zoomin-tiddler'))})}var m='cubic-bezier(0.645, 0.045, 0.355, 1)';t.prototype.navigateTo=function(t){var i,e,n,s,r,o,l,a=$tw.utils.getAnimationDuration(),d=this.listWidget.findListItem(0,t.title);void 0===d||(i=(r=this.listWidget.children[d]).findFirstDomNode())instanceof Element&&($tw.utils.addClass(i,'tc-storyview-zoomin-tiddler'),$tw.utils.setStyle(i,[{display:'block'},{transformOrigin:'0 0'},{transform:'translateX(0px) translateY(0px) scale(1)'},{transition:'none'},{opacity:'0.0'}]),e=t.fromPageRect||{left:window.innerWidth/2-2,top:window.innerHeight/2-2,width:window.innerWidth/8,height:window.innerHeight/8},n=(function(t,i){i=i||'tc-title';t=t.findFirstDomNode();if(t&&t.querySelector)return t.querySelector('.'+i);return null}(r)||r.findFirstDomNode()).getBoundingClientRect(),s=i.getBoundingClientRect(),d=e.width/n.width,t=e.left-s.left-(n.left-s.left)*d,r=e.top-s.top-(n.top-s.top)*d,$tw.utils.setStyle(i,[{transform:'translateX('+t+'px) translateY('+r+'px) scale('+d+')'}]),$tw.utils.forceLayout(i),l=(o=this).currentTiddlerDomNode,this.currentTiddlerDomNode=i,$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+a+'ms '+m+', opacity '+a+'ms '+m},{opacity:'1.0'},{transform:'translateX(0px) translateY(0px) scale(1)'},{zIndex:'500'}]),l&&l!==i&&(d=n.width/e.width,t=n.left-s.left-(e.left-s.left)*d,r=n.top-s.top-(e.top-s.top)*d,$tw.utils.setStyle(l,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+a+'ms '+m+', opacity '+a+'ms '+m},{opacity:'0.0'},{transformOrigin:'0 0'},{transform:'translateX('+t+'px) translateY('+r+'px) scale('+d+')'},{zIndex:'0'}]),setTimeout(function(){o.currentTiddlerDomNode!==l&&(l.style.display='none')},a)))},t.prototype.insert=function(t){t=t.findFirstDomNode();t instanceof Element&&($tw.utils.addClass(t,'tc-storyview-zoomin-tiddler'),$tw.utils.setStyle(t,[{display:'none'}]))},t.prototype.remove=function(t){function i(){t.removeChildDomNodes()}var e=t.findFirstDomNode(),n=$tw.utils.getAnimationDuration();if(e instanceof Element){if('block'==e.style.display){$tw.utils.addClass(e,'tc-storyview-zoomin-tiddler'),$tw.utils.setStyle(e,[{display:'block'},{transformOrigin:'50% 50%'},{transform:'translateX(0px) translateY(0px) scale(1)'},{transition:'none'},{zIndex:'0'}]);var s=t.previousSibling(),s=(s=s||t.nextSibling())&&s.findFirstDomNode();return s&&($tw.utils.addClass(s,'tc-storyview-zoomin-tiddler'),$tw.utils.setStyle(s,[{display:'block'},{transformOrigin:'50% 50%'},{transform:'translateX(0px) translateY(0px) scale(10)'},{transition:$tw.utils.roundTripPropertyName('transform')+' '+n+'ms '+m+', opacity '+n+'ms '+m},{opacity:'0'},{zIndex:'500'}]),this.currentTiddlerDomNode=s),$tw.utils.forceLayout(this.listWidget.parentDomNode),$tw.utils.setStyle(e,[{transformOrigin:'50% 50%'},{transform:'translateX(0px) translateY(0px) scale(0.1)'},{transition:$tw.utils.roundTripPropertyName('transform')+' '+n+'ms '+m+', opacity '+n+'ms '+m},{opacity:'0'},{zIndex:'0'}]),setTimeout(i,n),s&&$tw.utils.setStyle(s,[{transform:'translateX(0px) translateY(0px) scale(1)'},{opacity:'1'}]),!0}i()}else i()},exports.zoomin=t}();","type":"application/javascript","module-type":"storyview"},"$:/core/modules/syncer.js":{"text":"!function(){'use strict';function t(t){var n=this;this.wiki=t.wiki,this.syncadaptor=t.syncadaptor,this.disableUI=!!t.disableUI,this.titleIsLoggedIn=t.titleIsLoggedIn||this.titleIsLoggedIn,this.titleUserName=t.titleUserName||this.titleUserName,this.titleSyncFilter=t.titleSyncFilter||this.titleSyncFilter,this.titleSavedNotification=t.titleSavedNotification||this.titleSavedNotification,this.taskTimerInterval=t.taskTimerInterval||this.taskTimerInterval,this.throttleInterval=t.throttleInterval||parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,''),10)||this.throttleInterval,this.errorRetryInterval=t.errorRetryInterval||this.errorRetryInterval,this.fallbackInterval=t.fallbackInterval||this.fallbackInterval,this.pollTimerInterval=t.pollTimerInterval||parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,''),10)||this.pollTimerInterval,this.logging=!('logging'in t)||t.logging,this.logger=new $tw.utils.Logger('syncer'+($tw.browser?'-browser':'')+($tw.node?'-server':'')+(this.syncadaptor.name?'-'+this.syncadaptor.name:''),{colour:'cyan',enable:this.logging,saveHistory:!0}),this.loggerConnection=new $tw.utils.Logger('syncer'+($tw.browser?'-browser':'')+($tw.node?'-server':'')+(this.syncadaptor.name?'-'+this.syncadaptor.name:'')+'-connection',{colour:'cyan',enable:this.logging}),this.syncadaptor.setLoggerSaveBuffer&&this.syncadaptor.setLoggerSaveBuffer(this.logger),this.filterFn=this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter)),this.readTiddlerInfo(),this.titlesToBeLoaded={},this.titlesHaveBeenLazyLoaded={},this.taskTimerId=null,this.pollTimerId=null,this.numTasksInProgress=0,this.wiki.addEventListener('change',function(t){var r;0<n.getSyncedTiddlers(function(r){$tw.utils.each(t,function(t,e){var i=n.wiki.tiddlerExists(e)&&n.wiki.getTiddler(e);r(i,e)})}).length?n.processTaskQueue():(r=!1,$tw.utils.each(t,function(t,e,i){t.deleted&&$tw.utils.hop(n.tiddlerInfo,e)&&(r=!0)}),r&&n.processTaskQueue())}),$tw.browser&&!this.disableUI&&($tw.addUnloadTask(function(t){var e;return n.isDirty()&&(e=$tw.language.getString('UnsavedChangesWarning'),t.returnValue=e),e}),$tw.rootWidget.addEventListener('tm-login',function(t){var e=t&&t.paramObject&&t.paramObject.username,t=t&&t.paramObject&&t.paramObject.password;e&&t?n.login(e,t,function(){}):n.handleLoginEvent()}),$tw.rootWidget.addEventListener('tm-logout',function(){n.handleLogoutEvent()}),$tw.rootWidget.addEventListener('tm-server-refresh',function(){n.handleRefreshEvent()}),$tw.rootWidget.addEventListener('tm-copy-syncer-logs-to-clipboard',function(){$tw.utils.copyToClipboard($tw.utils.getSystemInfo()+'\\n\\nLog:\\n'+n.logger.getBuffer())})),this.disableUI||'yes'===this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading)||this.wiki.addEventListener('lazyLoad',function(t){n.handleLazyLoadEvent(t)}),this.getStatus(function(t,e){n.syncFromServer()})}function d(t,e){this.syncer=t,this.title=e,this.type='save'}function g(t,e){this.syncer=t,this.title=e,this.type='delete'}function c(t,e){this.syncer=t,this.title=e,this.type='load'}t.prototype.titleIsLoggedIn='$:/status/IsLoggedIn',t.prototype.titleIsAnonymous='$:/status/IsAnonymous',t.prototype.titleIsReadOnly='$:/status/IsReadOnly',t.prototype.titleUserName='$:/status/UserName',t.prototype.titleSyncFilter='$:/config/SyncFilter',t.prototype.titleSyncDisablePolling='$:/config/SyncDisablePolling',t.prototype.titleSyncPollingInterval='$:/config/SyncPollingInterval',t.prototype.titleSyncDisableLazyLoading='$:/config/SyncDisableLazyLoading',t.prototype.titleSavedNotification='$:/language/Notifications/Save/Done',t.prototype.titleSyncThrottleInterval='$:/config/SyncThrottleInterval',t.prototype.taskTimerInterval=1e3,t.prototype.throttleInterval=1e3,t.prototype.errorRetryInterval=5e3,t.prototype.fallbackInterval=1e4,t.prototype.pollTimerInterval=6e4,t.prototype.displayError=function(t,e){e===$tw.language.getString('Error/XMLHttpRequest')+': 0'?(this.loggerConnection.alert($tw.language.getString('Error/NetworkErrorAlert')),this.logger.log(t+':',e)):this.logger.alert(t+':',e)},t.prototype.getSyncedTiddlers=function(t){return this.filterFn.call(this.wiki,t)},t.prototype.getTiddlerRevision=function(t){return this.syncadaptor&&this.syncadaptor.getTiddlerRevision?this.syncadaptor.getTiddlerRevision(t):this.wiki.getTiddler(t).fields.revision},t.prototype.readTiddlerInfo=function(){this.tiddlerInfo={};var i=this,t=this.getSyncedTiddlers();$tw.utils.each(t,function(t){var e=i.wiki.getTiddler(t);e&&(i.tiddlerInfo[t]={revision:i.getTiddlerRevision(t),adaptorInfo:i.syncadaptor&&i.syncadaptor.getTiddlerInfo(e),changeCount:i.wiki.getChangeCount(t)})})},t.prototype.isDirty=function(){this.logger.log('Checking dirty status');for(var t=this.getSyncedTiddlers(),e=0;e<t.length;e++){var i=t[e],r=this.tiddlerInfo[i];if(this.wiki.tiddlerExists(i)){if(!r)return!0;if(this.wiki.getChangeCount(i)>r.changeCount)return!0}}for(t=Object.keys(this.tiddlerInfo),e=0;e<t.length;e++)if(!this.wiki.tiddlerExists(t[e]))return!0;return!1},t.prototype.updateDirtyStatus=function(){var t;$tw.browser&&!this.disableUI&&(t=this.isDirty(),$tw.utils.toggleClass(document.body,'tc-dirty',t),t||this.loggerConnection.clearAlerts())},t.prototype.storeTiddler=function(t){var e=new $tw.Tiddler(t);this.wiki.addTiddler(e),this.tiddlerInfo[t.title]={revision:this.getTiddlerRevision(t.title),adaptorInfo:this.syncadaptor.getTiddlerInfo(e),changeCount:this.wiki.getChangeCount(t.title)}},t.prototype.getStatus=function(o){var l=this;this.syncadaptor&&this.syncadaptor.getStatus?(this.wiki.addTiddler({title:this.titleIsLoggedIn,text:'no'}),this.syncadaptor.getStatus(function(t,e,i,r,n,s){t?l.logger.alert(t):(l.wiki.addTiddler({title:l.titleIsReadOnly,text:r?'yes':'no'}),l.wiki.addTiddler({title:l.titleIsAnonymous,text:n?'yes':'no'}),l.wiki.addTiddler({title:l.titleIsLoggedIn,text:e?'yes':'no'}),e&&l.wiki.addTiddler({title:l.titleUserName,text:i||''}),s&&l.wiki.addTiddler({title:l.titleSyncDisablePolling,text:'yes'})),o&&o(t,e,i)})):o(null,!0,'UNAUTHENTICATED')},t.prototype.syncFromServer=function(){function t(){g.pollTimerId&&(clearTimeout(g.pollTimerId),g.pollTimerId=null)}function d(){e&&(g.pollTimerId=setTimeout(function(){g.pollTimerId=null,g.syncFromServer.call(g)},g.pollTimerInterval))}var g=this,c='yes'===g.wiki.getTiddlerText('$:/config/SyncSystemTiddlersFromServer'),e='yes'!==g.wiki.getTiddlerText(g.titleSyncDisablePolling);this.syncadaptor&&this.syncadaptor.getUpdatedTiddlers?(this.logger.log('Retrieving updated tiddler list'),t(),this.syncadaptor.getUpdatedTiddlers(g,function(t,e){d(),t?g.displayError($tw.language.getString('Error/RetrievingSkinny'),t):e&&($tw.utils.each(e.modifications,function(t){g.titlesToBeLoaded[t]=!0}),$tw.utils.each(e.deletions,function(t){!c&&g.wiki.isSystemTiddler(t)||(delete g.tiddlerInfo[t],g.logger.log('Deleting tiddler missing from server:',t),g.wiki.deleteTiddler(t))}),(0<e.modifications.length||0<e.deletions.length)&&g.processTaskQueue())})):this.syncadaptor&&this.syncadaptor.getSkinnyTiddlers&&(this.logger.log('Retrieving skinny tiddler list'),t(),this.syncadaptor.getSkinnyTiddlers(function(t,e){if(d(),t)g.displayError($tw.language.getString('Error/RetrievingSkinny'),t);else{for(var i=Object.keys(g.tiddlerInfo),r=0;r<e.length;r++){var n=e[r],s=n.revision+'',o=g.wiki.tiddlerExists(n.title)&&g.wiki.getTiddler(n.title),l=g.tiddlerInfo[n.title],a=l?l.revision:null,l=i.indexOf(n.title);-1!==l&&i.splice(l,1),a!==s&&(o&&void 0!==o.fields.text||g.storeTiddler(n),g.titlesToBeLoaded[n.title]=!0)}$tw.utils.each(i,function(t){!c&&g.wiki.isSystemTiddler(t)||(delete g.tiddlerInfo[t],g.logger.log('Deleting tiddler missing from server:',t),g.wiki.deleteTiddler(t))}),g.processTaskQueue()}}))},t.prototype.enqueueLoadTiddler=function(t){this.titlesToBeLoaded[t]=!0,this.processTaskQueue()},t.prototype.handleLazyLoadEvent=function(t){this.syncadaptor.supportsLazyLoading&&(this.titlesHaveBeenLazyLoaded[t]||-1!==this.getSyncedTiddlers().indexOf(t)&&(this.titlesToBeLoaded[t]=!0,this.titlesHaveBeenLazyLoaded[t]=!0))},t.prototype.handleLoginEvent=function(){var r=this;this.getStatus(function(t,e,i){t||e||(r.syncadaptor&&r.syncadaptor.displayLoginPrompt?r.syncadaptor.displayLoginPrompt(r):r.displayLoginPrompt())})},t.prototype.displayLoginPrompt=function(){var i=this;$tw.passwordPrompt.createPrompt({serviceName:$tw.language.getString('LoginToTiddlySpace'),callback:function(t){return i.login(t.username,t.password,function(t,e){i.syncFromServer()}),!0}})},t.prototype.login=function(t,e,r){this.logger.log('Attempting to login as',t);var i=this;this.syncadaptor.login?this.syncadaptor.login(t,e,function(t){return t?r(t):void i.getStatus(function(t,e,i){r&&r(t,e)})}):r(null,!0)},t.prototype.handleLogoutEvent=function(){this.logger.log('Attempting to logout');var e=this;this.syncadaptor.logout&&this.syncadaptor.logout(function(t){t?e.logger.alert(t):e.getStatus()})},t.prototype.handleRefreshEvent=function(){this.syncFromServer()},t.prototype.processTaskQueue=function(){var e,i=this;this.syncadaptor.isReady&&!this.syncadaptor.isReady()||0!==this.numTasksInProgress?this.updateDirtyStatus():'object'==typeof(e=this.chooseNextTask())&&null!==e?(this.numTasksInProgress+=1,e.run(function(t){--i.numTasksInProgress,t?(i.displayError('Sync error while processing '+e.type+' of \\''+e.title+'\\'',t),i.updateDirtyStatus(),i.triggerTimeout(i.errorRetryInterval)):(i.updateDirtyStatus(),i.processTaskQueue.call(i))})):(this.updateDirtyStatus(),!0===e&&this.triggerTimeout())},t.prototype.triggerTimeout=function(t){var e=this;this.taskTimerId||(this.taskTimerId=setTimeout(function(){e.taskTimerId=null,e.processTaskQueue.call(e)},t||e.taskTimerInterval))},t.prototype.chooseNextTask=function(){for(var t=new Date-this.throttleInterval,e=null,i=this.getSyncedTiddlers(),r=0;r<i.length;r++){var n=i[r],s=this.wiki.tiddlerExists(n)&&this.wiki.getTiddler(n),o=this.tiddlerInfo[n];if(s){var l=!o||this.wiki.getChangeCount(n)>o.changeCount,a=!o||!o.timestampLastSaved||o.timestampLastSaved<t;if(l){if(a)return new d(this,n);e=!0}}}for(i=Object.keys(this.tiddlerInfo),r=0;r<i.length;r++)if(n=i[r],o=this.tiddlerInfo[n],!(s=this.wiki.tiddlerExists(n)&&this.wiki.getTiddler(n)))return new g(this,n);return(n=Object.keys(this.titlesToBeLoaded)[0])?(delete this.titlesToBeLoaded[n],new c(this,n)):e},d.prototype.run=function(r){var n=this,s=this.syncer.wiki.getChangeCount(this.title),t=this.syncer.wiki.tiddlerExists(this.title)&&this.syncer.wiki.getTiddler(this.title);this.syncer.logger.log('Dispatching \\'save\\' task:',this.title),t?this.syncer.syncadaptor.saveTiddler(t,function(t,e,i){return t?r(t):(n.syncer.tiddlerInfo[n.title]={changeCount:s,adaptorInfo:e,revision:i,timestampLastSaved:new Date},void r(null))},{tiddlerInfo:n.syncer.tiddlerInfo[n.title]}):(this.syncer.logger.log(' Not Dispatching \\'save\\' task:',this.title,'tiddler does not exist'),$tw.utils.nextTick(r(null)))},g.prototype.run=function(e){var i=this;this.syncer.logger.log('Dispatching \\'delete\\' task:',this.title),this.syncer.syncadaptor.deleteTiddler(this.title,function(t){return t?e(t):(delete i.syncer.tiddlerInfo[i.title],void e(null))},{tiddlerInfo:i.syncer.tiddlerInfo[this.title]})},c.prototype.run=function(i){var r=this;this.syncer.logger.log('Dispatching \\'load\\' task:',this.title),this.syncer.syncadaptor.loadTiddler(this.title,function(t,e){return t?i(t):(e&&r.syncer.storeTiddler(e),void i(null))})},exports.Syncer=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/tiddler.js":{"text":"!function(){'use strict';exports.hasTag=function(t){return this.fields.tags&&-1!==this.fields.tags.indexOf(t)},exports.isPlugin=function(){return'application/json'===this.fields.type&&this.hasField('plugin-type')},exports.isDraft=function(){return this.hasField('draft.of')},exports.getFieldString=function(t){var i=this.fields[t];if(null==i)return'';t=$tw.Tiddler.fieldModules[t];return t&&t.stringify?t.stringify.call(this,i):i.toString()},exports.getFieldList=function(t){t=this.fields[t];return null==t?[]:$tw.utils.parseStringArray(t)},exports.getFieldStrings=function(t){var i,e=(t=t||{}).exclude||[],s={};for(i in this.fields)$tw.utils.hop(this.fields,i)&&-1===e.indexOf(i)&&(s[i]=this.getFieldString(i));return s},exports.getFieldStringBlock=function(t){for(var i=(t=t||{}).exclude||[],e=Object.keys(this.fields).sort(),s=[],r=0;r<e.length;r++){var n=e[r];-1===i.indexOf(n)&&s.push(n+': '+this.getFieldString(n))}return s.join('\\n')},exports.getFieldDay=function(t){if(this.cache&&this.cache.day&&$tw.utils.hop(this.cache.day,t))return this.cache.day[t];var i='';return this.fields[t]&&(i=new Date($tw.utils.parseDate(this.fields[t])).setHours(0,0,0,0)),this.cache.day=this.cache.day||{},this.cache.day[t]=i}}();","type":"application/javascript","module-type":"tiddlermethod"},"$:/core/modules/upgraders/plugins.js":{"text":"!function(){'use strict';var a={'$:/themes/tiddlywiki/stickytitles':{versions:['*']},'$:/plugins/tiddlywiki/fullscreen':{versions:['*']}};exports.upgrade=function(s,e,t){var l,d={};return $tw.utils.each(e,function(e){var i=t[e];if(i&&i['plugin-type']){var r=s.doesPluginInfoRequireReload(JSON.parse(i.text))?s.getTiddlerText('$:/language/ControlPanel/Plugins/PluginWillRequireReload')+' ':'';if(d[e]=r,i.version){var n=(n=e,l||((l=s.getTiddlerData('$:/UpgradeLibrary',{})).tiddlers=l.tiddlers||{}),l.tiddlers[n]);if(n&&n['plugin-type']&&n.version)return t[e]=n,void(d[e]=r+$tw.language.getString('Import/Upgrader/Plugins/Upgraded',{variables:{incoming:i.version,upgraded:n.version}}));n=s.getTiddler(e);if(n&&n.hasField('plugin-type')&&n.hasField('version')&&$tw.utils.checkVersions(n.fields.version,i.version))return t[e]=Object.create(null),void(d[e]=$tw.language.getString('Import/Upgrader/Plugins/Suppressed/Version',{variables:{incoming:i.version,existing:n.fields.version}}))}n=a[e];n&&(-1!==n.versions.indexOf('*')||i.version&&-1!==n.versions.indexOf(i.version))&&(t[e]=Object.create(null),d[e]=$tw.language.getString('Import/Upgrader/Plugins/Suppressed/Incompatible'))}}),d}}();","type":"application/javascript","module-type":"upgrader"},"$:/core/modules/upgraders/system.js":{"text":"!function(){'use strict';var i=['$:/StoryList','$:/HistoryList'],l=['$:/temp/','$:/state/','$:/Import'],u=['$:/core/modules/'];exports.upgrade=function(g,t,a){var n={},s=!1;return $tw.utils.each(t,function(t){if(-1!==i.indexOf(t))a[t]=Object.create(null),n[t]=$tw.language.getString('Import/Upgrader/System/Suppressed');else{for(var e=0;e<l.length;e++){var r=l[e];t.substr(0,r.length)===r&&(a[t]=Object.create(null),n[t]=$tw.language.getString('Import/Upgrader/State/Suppressed'))}for(e=0;e<u.length;e++){r=u[e];t.substr(0,r.length)===r&&g.isShadowTiddler(t)&&(s=!0,n[t]=$tw.language.getString('Import/Upgrader/System/Warning'))}}}),s&&new $tw.utils.Logger('import').alert($tw.language.getString('Import/Upgrader/System/Alert')),n}}();","type":"application/javascript","module-type":"upgrader"},"$:/core/modules/upgraders/themetweaks.js":{"text":"!function(){'use strict';var h={'$:/themes/tiddlywiki/vanilla/metrics':{fontsize:'$:/themes/tiddlywiki/vanilla/metrics/fontsize',lineheight:'$:/themes/tiddlywiki/vanilla/metrics/lineheight',storyleft:'$:/themes/tiddlywiki/vanilla/metrics/storyleft',storytop:'$:/themes/tiddlywiki/vanilla/metrics/storytop',storyright:'$:/themes/tiddlywiki/vanilla/metrics/storyright',storywidth:'$:/themes/tiddlywiki/vanilla/metrics/storywidth',tiddlerwidth:'$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth'},'$:/themes/tiddlywiki/vanilla/settings':{fontfamily:'$:/themes/tiddlywiki/vanilla/settings/fontfamily'}};exports.upgrade=function(s,t,d){var n={};return $tw.utils.each(t,function(t){var i=h[t];if(i){var e,l=new $tw.Tiddler(d[t]),r=s.getTiddlerDataCached(l,{});for(e in i){var a=i[e];d[a]&&d[a].title===a||(d[a]={title:a,text:r[e]},n[a]=$tw.language.getString('Import/Upgrader/ThemeTweaks/Created',{variables:{from:t+'##'+e}}))}}}),n}}();","type":"application/javascript","module-type":"upgrader"},"$:/core/modules/utils/base64-utf8/base64-utf8.module.js":{"text":"(function(){var r,e;r=function(){return{encode:function(r){if('string'!=typeof r)return r;r=r.replace(/\\r\\n/g,'\\n');for(var e,o,t,n='',i=0;i<r.length;i++)(e=r.charCodeAt(i))<128?n+=String.fromCharCode(e):127<e&&e<2048?(n+=String.fromCharCode(e>>6|192),n+=String.fromCharCode(63&e|128)):55295<e&&e<57344&&r.length>i+1?(o=e,t=r.charCodeAt(i+1),i++,t=65536+(o-55296<<10|t-56320),n+=String.fromCharCode(t>>18|240),n+=String.fromCharCode(t>>12&63|128),n+=String.fromCharCode(t>>6&63|128),n+=String.fromCharCode(63&t|128)):(n+=String.fromCharCode(e>>12|224),n+=String.fromCharCode(e>>6&63|128),n+=String.fromCharCode(63&e|128));return n},decode:function(r){if('string'!=typeof r)return r;for(var e,o,t='',n=0;n<r.length;)(e=r.charCodeAt(n))<128?(t+=String.fromCharCode(e),n++):191<e&&e<224?(t+=String.fromCharCode((31&e)<<6|63&r.charCodeAt(n+1)),n+=2):223<e&&e<240?(t+=String.fromCharCode((15&e)<<12|(63&r.charCodeAt(n+1))<<6|63&r.charCodeAt(n+2)),n+=3):(o=(7&e)<<18|(63&r.charCodeAt(n+1))<<12|(63&r.charCodeAt(n+2))<<6|63&r.charCodeAt(n+3),t+=String.fromCharCode(55296+(o-65536>>10))+String.fromCharCode(56320+(o-65536&1023)),n+=4);return t}}},void 0!==(e=this).module&&e.module.exports?e.module.exports=r.apply(e):void 0!==e.define&&'function'===e.define&&e.define.amd?define('utf8',[],r):e.utf8=r.apply(e),function(r,e,o){if(void 0!==e.module&&e.module.exports){if(e.require)for(var t=0;t<o.length;t++)e[o[t]]=e.require(o[t]);e.module.exports=r.apply(e)}else void 0!==e.define&&'function'===e.define&&e.define.amd?define('base64',o,r):e.base64=r.apply(e)}(function(r){var h=r||this.utf8,C='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';return{encode:function(r){if(void 0===h)throw{error:'MissingMethod',message:'UTF8 Module is missing.'};if('string'!=typeof r)return r;r=h.encode(r);for(var e,o,t,n,i,d,a='',f=0;f<r.length;)t=(d=r.charCodeAt(f++))>>2,n=(3&d)<<4|(e=r.charCodeAt(f++))>>4,i=(15&e)<<2|(o=r.charCodeAt(f++))>>6,d=63&o,isNaN(e)?i=d=64:isNaN(o)&&(d=64),a+=C.charAt(t)+C.charAt(n)+C.charAt(i)+C.charAt(d);return a},decode:function(r){if(void 0===h)throw{error:'MissingMethod',message:'UTF8 Module is missing.'};if('string'!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,'');for(var e,o,t,n,i,d='',a=0;a<r.length;)e=C.indexOf(r.charAt(a++))<<2|(t=C.indexOf(r.charAt(a++)))>>4,o=(15&t)<<4|(n=C.indexOf(r.charAt(a++)))>>2,t=(3&n)<<6|(i=C.indexOf(r.charAt(a++))),d+=String.fromCharCode(e),64!=n&&(d+=String.fromCharCode(o)),64!=i&&(d+=String.fromCharCode(t));return h.decode(d)}}},this,['utf8'])}).call(exports);","type":"application/javascript","module-type":"library"},"$:/core/modules/utils/crypto.js":{"text":"!function(){'use strict';exports.extractEncryptedStoreArea=function(t){var r='<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">',e=t.indexOf(r);if(-1!==e){var n=t.indexOf('</pre>',e);if(-1!==n)return $tw.utils.htmlDecode(t.substring(e+r.length,n-1))}return null},exports.decryptStoreArea=function(t,r){r=$tw.crypto.decrypt(t,r);if(r){var e,n=JSON.parse(r),s=[];for(e in n)'$:/isEncrypted'!==e&&s.push(n[e]);return s}return null},exports.decryptStoreAreaInteractive=function(e,n,t){var r=$tw.utils.decryptStoreArea(e);r?n(r):$tw.passwordPrompt.createPrompt({serviceName:'Enter a password to decrypt the imported TiddlyWiki',noUserName:!0,canCancel:!0,submitText:'Decrypt',callback:function(t){if(!t)return!1;var r=$tw.utils.decryptStoreArea(e,t.password);return!!r&&($tw.config.usePasswordVault&&$tw.crypto.setPassword(t.password),n(r),!0)}})}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/csv.js":{"text":"!function(){'use strict';exports.parseCsvStringWithHeader=function(r,t){var e=(t=t||{}).separator||',',n=r.split(/\\r?\\n/gm).map(function(r){return $tw.utils.trim(r)}).filter(function(r){return''!==r});if(n.length<1)return'Missing header row';for(var i=n[0].split(e),l=[],s=1;s<n.length;s++){var u=n[s].split(e),a=Object.create(null);if(u.length!==i.length)return'Malformed CSV row \\''+n[s]+'\\'';for(var o=0;o<u.length;o++)a[i[o]]=$tw.utils.trim(u[o]||'');l.push(a)}return l}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/diff-match-patch/diff_match_patch.js":{"text":"(function(){function o(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32}var x=-1;o.prototype.diff_main=function(t,e,n,i){if(void 0===i&&(i=this.Diff_Timeout<=0?Number.MAX_VALUE:(new Date).getTime()+1e3*this.Diff_Timeout),null==t||null==e)throw Error('Null input. (diff_main)');if(t==e)return t?[[0,t]]:[];void 0===n&&(n=!0);var r=n,h=this.diff_commonPrefix(t,e);n=t.substring(0,h),t=t.substring(h),e=e.substring(h),h=this.diff_commonSuffix(t,e);var s=t.substring(t.length-h);return t=t.substring(0,t.length-h),e=e.substring(0,e.length-h),t=this.diff_compute_(t,e,r,i),n&&t.unshift([0,n]),s&&t.push([0,s]),this.diff_cleanupMerge(t),t},o.prototype.diff_compute_=function(t,e,n,i){if(!t)return[[1,e]];if(!e)return[[x,t]];var r=t.length>e.length?t:e,h=t.length>e.length?e:t,s=r.indexOf(h);return-1!=s?(n=[[1,r.substring(0,s)],[0,h],[1,r.substring(s+h.length)]],t.length>e.length&&(n[0][0]=n[2][0]=x),n):1==h.length?[[x,t],[1,e]]:(r=this.diff_halfMatch_(t,e))?(e=r[1],h=r[3],t=r[4],r=this.diff_main(r[0],r[2],n,i),n=this.diff_main(e,h,n,i),r.concat([[0,t]],n)):n&&100<t.length&&100<e.length?this.diff_lineMode_(t,e,i):this.diff_bisect_(t,e,i)},o.prototype.diff_lineMode_=function(t,e,n){var i=this.diff_linesToChars_(t,e);t=i.chars1,e=i.chars2,i=i.lineArray,t=this.diff_main(t,e,!1,n),this.diff_charsToLines_(t,i),this.diff_cleanupSemantic(t),t.push([0,'']);for(var r=i=e=0,h='',s='';e<t.length;){switch(t[e][0]){case 1:r++,s+=t[e][1];break;case x:i++,h+=t[e][1];break;case 0:if(1<=i&&1<=r){for(t.splice(e-i-r,i+r),e=e-i-r,r=(i=this.diff_main(h,s,!1,n)).length-1;0<=r;r--)t.splice(e,0,i[r]);e+=i.length}i=r=0,s=h=''}e++}return t.pop(),t},o.prototype.diff_bisect_=function(t,e,n){for(var i=t.length,r=e.length,h=Math.ceil((i+r)/2),s=2*h,a=Array(s),f=Array(s),l=0;l<s;l++)a[l]=-1,f[l]=-1;a[h+1]=0;for(var g=(f[h+1]=0)!=(l=i-r)%2,o=0,c=0,u=0,p=0,d=0;d<h&&!((new Date).getTime()>n);d++){for(var _=-d+o;_<=d-c;_+=2){for(var b=h+_,m=_==-d||_!=d&&a[b-1]<a[b+1]?a[b+1]:a[b-1]+1,v=m-_;m<i&&v<r&&t.charAt(m)==e.charAt(v);)m++,v++;if(i<(a[b]=m))c+=2;else if(r<v)o+=2;else if(g&&(0<=(b=h+l-_)&&b<s&&-1!=f[b])){var M=i-f[b];if(M<=m)return this.diff_bisectSplit_(t,e,m,v,n)}}for(_=-d+u;_<=d-p;_+=2){for(b=h+_,m=(M=_==-d||_!=d&&f[b-1]<f[b+1]?f[b+1]:f[b-1]+1)-_;M<i&&m<r&&t.charAt(i-M-1)==e.charAt(r-m-1);)M++,m++;if(i<(f[b]=M))p+=2;else if(r<m)u+=2;else if(!g&&(0<=(b=h+l-_)&&b<s&&-1!=a[b]&&(v=h+(m=a[b])-b,(M=i-M)<=m)))return this.diff_bisectSplit_(t,e,m,v,n)}}return[[x,t],[1,e]]},o.prototype.diff_bisectSplit_=function(t,e,n,i,r){var h=t.substring(0,n),s=e.substring(0,i);return t=t.substring(n),e=e.substring(i),h=this.diff_main(h,s,!1,r),r=this.diff_main(t,e,!1,r),h.concat(r)},o.prototype.diff_linesToChars_=function(t,e){function n(t){for(var e='',n=0,i=-1,r=s.length;i<t.length-1;){-1==(i=t.indexOf('\\n',n))&&(i=t.length-1);var h=t.substring(n,i+1),n=i+1;(a.hasOwnProperty?a.hasOwnProperty(h):void 0!==a[h])?e+=String.fromCharCode(a[h]):(e+=String.fromCharCode(r),a[h]=r,s[r++]=h)}return e}var s=[],a={};return s[0]='',{chars1:n(t),chars2:n(e),lineArray:s}},o.prototype.diff_charsToLines_=function(t,e){for(var n=0;n<t.length;n++){for(var i=t[n][1],r=[],h=0;h<i.length;h++)r[h]=e[i.charCodeAt(h)];t[n][1]=r.join('')}},o.prototype.diff_commonPrefix=function(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;for(var n=0,i=Math.min(t.length,e.length),r=i,h=0;n<r;)t.substring(h,r)==e.substring(h,r)?h=n=r:i=r,r=Math.floor((i-n)/2+n);return r},o.prototype.diff_commonSuffix=function(t,e){if(!t||!e||t.charAt(t.length-1)!=e.charAt(e.length-1))return 0;for(var n=0,i=Math.min(t.length,e.length),r=i,h=0;n<r;)t.substring(t.length-r,t.length-h)==e.substring(e.length-r,e.length-h)?h=n=r:i=r,r=Math.floor((i-n)/2+n);return r},o.prototype.diff_commonOverlap_=function(t,e){var n=t.length,i=e.length;if(0==n||0==i)return 0;if(i<n?t=t.substring(n-i):n<i&&(e=e.substring(0,n)),n=Math.min(n,i),t==e)return n;i=0;for(var r=1;;){var h=t.substring(n-r);if(-1==(h=e.indexOf(h)))return i;r+=h,0!=h&&t.substring(n-r)!=e.substring(0,r)||(i=r,r++)}},o.prototype.diff_halfMatch_=function(t,e){function n(t,e,n){for(var i,r,h,s,a=t.substring(n,n+Math.floor(t.length/4)),f=-1,l='';-1!=(f=e.indexOf(a,f+1));){var g=c.diff_commonPrefix(t.substring(n),e.substring(f)),o=c.diff_commonSuffix(t.substring(0,n),e.substring(0,f));l.length<o+g&&(l=e.substring(f-o,f)+e.substring(f,f+g),i=t.substring(0,n-o),r=t.substring(n+g),h=e.substring(0,f-o),s=e.substring(f+g))}return 2*l.length>=t.length?[i,r,h,s,l]:null}if(this.Diff_Timeout<=0)return null;var i=t.length>e.length?t:e,r=t.length>e.length?e:t;if(i.length<4||2*r.length<i.length)return null;var h,s,c=this,a=n(i,r,Math.ceil(i.length/4)),i=n(i,r,Math.ceil(i.length/2));return a||i?(a=!i||a&&a[4].length>i[4].length?a:i,t.length>e.length?(i=a[0],r=a[1],h=a[2],s=a[3]):(h=a[0],s=a[1],i=a[2],r=a[3]),[i,r,h,s,a[4]]):null},o.prototype.diff_cleanupSemantic=function(t){for(var e=!1,n=[],i=0,r=null,h=0,s=0,a=0,f=0,l=0;h<t.length;)0==t[h][0]?(s=f,a=l,l=f=0,r=t[n[i++]=h][1]):(1==t[h][0]?f+=t[h][1].length:l+=t[h][1].length,r&&r.length<=Math.max(s,a)&&r.length<=Math.max(f,l)&&(t.splice(n[i-1],0,[x,r]),t[n[i-1]+1][0]=1,i--,h=0<--i?n[i-1]:-1,l=f=a=s=0,e=!(r=null))),h++;for(e&&this.diff_cleanupMerge(t),this.diff_cleanupSemanticLossless(t),h=1;h<t.length;)t[h-1][0]==x&&1==t[h][0]&&(e=t[h-1][1],n=t[h][1],i=this.diff_commonOverlap_(e,n),(r=this.diff_commonOverlap_(n,e))<=i?(i>=e.length/2||i>=n.length/2)&&(t.splice(h,0,[0,n.substring(0,i)]),t[h-1][1]=e.substring(0,e.length-i),t[h+1][1]=n.substring(i),h++):(r>=e.length/2||r>=n.length/2)&&(t.splice(h,0,[0,e.substring(0,r)]),t[h-1][0]=1,t[h-1][1]=n.substring(0,n.length-r),t[h+1][0]=x,t[h+1][1]=e.substring(r),h++),h++),h++},o.prototype.diff_cleanupSemanticLossless=function(t){function e(t,e){if(!t||!e)return 6;var n=t.charAt(t.length-1),i=e.charAt(0),r=n.match(o.nonAlphaNumericRegex_),h=i.match(o.nonAlphaNumericRegex_),s=r&&n.match(o.whitespaceRegex_),a=h&&i.match(o.whitespaceRegex_),n=s&&n.match(o.linebreakRegex_),i=a&&i.match(o.linebreakRegex_),t=n&&t.match(o.blanklineEndRegex_),e=i&&e.match(o.blanklineStartRegex_);return t||e?5:n||i?4:r&&!s&&a?3:s||a?2:r||h?1:0}for(var n=1;n<t.length-1;){if(0==t[n-1][0]&&0==t[n+1][0]){var i,r=t[n-1][1],h=t[n][1],s=t[n+1][1],a=this.diff_commonSuffix(r,h);a&&(i=h.substring(h.length-a),r=r.substring(0,r.length-a),h=i+h.substring(0,h.length-a),s=i+s);for(var f=s,l=e(a=r,i=h)+e(h,s);h.charAt(0)===s.charAt(0);){r+=h.charAt(0),h=h.substring(1)+s.charAt(0),s=s.substring(1);var g=e(r,h)+e(h,s);l<=g&&(l=g,a=r,i=h,f=s)}t[n-1][1]!=a&&(a?t[n-1][1]=a:(t.splice(n-1,1),n--),t[n][1]=i,f?t[n+1][1]=f:(t.splice(n+1,1),n--))}n++}},o.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,o.whitespaceRegex_=/\\s/,o.linebreakRegex_=/[\\r\\n]/,o.blanklineEndRegex_=/\\n\\r?\\n$/,o.blanklineStartRegex_=/^\\r?\\n\\r?\\n/,o.prototype.diff_cleanupEfficiency=function(t){for(var e=!1,n=[],i=0,r=null,h=0,s=!1,a=!1,f=!1,l=!1;h<t.length;)0==t[h][0]?(r=t[h][1].length<this.Diff_EditCost&&(f||l)?(s=f,a=l,t[n[i++]=h][1]):(i=0,null),f=l=!1):(t[h][0]==x?l=!0:f=!0,r&&(s&&a&&f&&l||r.length<this.Diff_EditCost/2&&3==s+a+f+l)&&(t.splice(n[i-1],0,[x,r]),t[n[i-1]+1][0]=1,i--,r=null,s&&a?(f=l=!0,i=0):(h=0<--i?n[i-1]:-1,f=l=!1),e=!0)),h++;e&&this.diff_cleanupMerge(t)},o.prototype.diff_cleanupMerge=function(t){t.push([0,'']);for(var e,n=0,i=0,r=0,h='',s='';n<t.length;)switch(t[n][0]){case 1:r++,s+=t[n][1],n++;break;case x:i++,h+=t[n][1],n++;break;case 0:1<i+r?(0!==i&&0!==r&&(0!==(e=this.diff_commonPrefix(s,h))&&(0<n-i-r&&0==t[n-i-r-1][0]?t[n-i-r-1][1]+=s.substring(0,e):(t.splice(0,0,[0,s.substring(0,e)]),n++),s=s.substring(e),h=h.substring(e)),0!==(e=this.diff_commonSuffix(s,h))&&(t[n][1]=s.substring(s.length-e)+t[n][1],s=s.substring(0,s.length-e),h=h.substring(0,h.length-e))),0===i?t.splice(n-r,i+r,[1,s]):0===r?t.splice(n-i,i+r,[x,h]):t.splice(n-i-r,i+r,[x,h],[1,s]),n=n-i-r+(i?1:0)+(r?1:0)+1):0!==n&&0==t[n-1][0]?(t[n-1][1]+=t[n][1],t.splice(n,1)):n++,i=r=0,s=h=''}for(''===t[t.length-1][1]&&t.pop(),i=!1,n=1;n<t.length-1;)0==t[n-1][0]&&0==t[n+1][0]&&(t[n][1].substring(t[n][1].length-t[n-1][1].length)==t[n-1][1]?(t[n][1]=t[n-1][1]+t[n][1].substring(0,t[n][1].length-t[n-1][1].length),t[n+1][1]=t[n-1][1]+t[n+1][1],t.splice(n-1,1),i=!0):t[n][1].substring(0,t[n+1][1].length)==t[n+1][1]&&(t[n-1][1]+=t[n+1][1],t[n][1]=t[n][1].substring(t[n+1][1].length)+t[n+1][1],t.splice(n+1,1),i=!0)),n++;i&&this.diff_cleanupMerge(t)},o.prototype.diff_xIndex=function(t,e){for(var n=0,i=0,r=0,h=0,s=0;s<t.length&&(1!==t[s][0]&&(n+=t[s][1].length),t[s][0]!==x&&(i+=t[s][1].length),!(e<n));s++)r=n,h=i;return t.length!=s&&t[s][0]===x?h:h+(e-r)},o.prototype.diff_prettyHtml=function(t){for(var e=[],n=/&/g,i=/</g,r=/>/g,h=/\\n/g,s=0;s<t.length;s++){var a=t[s][0],f=t[s][1].replace(n,'&').replace(i,'<').replace(r,'>').replace(h,'¶<br>');switch(a){case 1:e[s]='<ins style=\"background:#e6ffe6;\">'+f+'</ins>';break;case x:e[s]='<del style=\"background:#ffe6e6;\">'+f+'</del>';break;case 0:e[s]='<span>'+f+'</span>'}}return e.join('')},o.prototype.diff_text1=function(t){for(var e=[],n=0;n<t.length;n++)1!==t[n][0]&&(e[n]=t[n][1]);return e.join('')},o.prototype.diff_text2=function(t){for(var e=[],n=0;n<t.length;n++)t[n][0]!==x&&(e[n]=t[n][1]);return e.join('')},o.prototype.diff_levenshtein=function(t){for(var e=0,n=0,i=0,r=0;r<t.length;r++){var h=t[r][1];switch(t[r][0]){case 1:n+=h.length;break;case x:i+=h.length;break;case 0:e+=Math.max(n,i),i=n=0}}return e+Math.max(n,i)},o.prototype.diff_toDelta=function(t){for(var e=[],n=0;n<t.length;n++)switch(t[n][0]){case 1:e[n]='+'+encodeURI(t[n][1]);break;case x:e[n]='-'+t[n][1].length;break;case 0:e[n]='='+t[n][1].length}return e.join('\\t').replace(/%20/g,' ')},o.prototype.diff_fromDelta=function(t,e){for(var n=[],i=0,r=0,h=e.split(/\\t/g),s=0;s<h.length;s++){var a=h[s].substring(1);switch(h[s].charAt(0)){case'+':try{n[i++]=[1,decodeURI(a)]}catch(t){throw Error('Illegal escape in diff_fromDelta: '+a)}break;case'-':case'=':var f=parseInt(a,10);if(isNaN(f)||f<0)throw Error('Invalid number in diff_fromDelta: '+a);a=t.substring(r,r+=f),'='==h[s].charAt(0)?n[i++]=[0,a]:n[i++]=[x,a];break;default:if(h[s])throw Error('Invalid diff operation in diff_fromDelta: '+h[s])}}if(r!=t.length)throw Error('Delta length ('+r+') does not equal source text length ('+t.length+').');return n},o.prototype.match_main=function(t,e,n){if(null==t||null==e||null==n)throw Error('Null input. (match_main)');return n=Math.max(0,Math.min(n,t.length)),t==e?0:t.length?t.substring(n,n+e.length)==e?n:this.match_bitap_(t,e,n):-1},o.prototype.match_bitap_=function(t,n,i){function e(t,e){t/=n.length,e=Math.abs(i-e);return h.Match_Distance?t+e/h.Match_Distance:e?1:t}if(n.length>this.Match_MaxBits)throw Error('Pattern too long for this browser.');var r=this.match_alphabet_(n),h=this,s=this.Match_Threshold;-1!=(g=t.indexOf(n,i))&&(s=Math.min(e(0,g),s),-1!=(g=t.lastIndexOf(n,i+n.length))&&(s=Math.min(e(0,g),s)));for(var a,f,l=1<<n.length-1,g=-1,o=n.length+t.length,c=0;c<n.length;c++){for(a=0,u=o;a<u;)e(c,i+u)<=s?a=u:o=u,u=Math.floor((o-a)/2+a);o=u,a=Math.max(1,i-u+1);var u,p=Math.min(i+u,t.length)+n.length;for((u=Array(p+2))[p+1]=(1<<c)-1;a<=p;p--){var d=r[t.charAt(p-1)];if(u[p]=0===c?(u[p+1]<<1|1)&d:(u[p+1]<<1|1)&d|(f[p+1]|f[p])<<1|1|f[p+1],u[p]&l&&(d=e(c,p-1))<=s){if(s=d,!(i<(g=p-1)))break;a=Math.max(1,2*i-g)}}if(e(c+1,i)>s)break;f=u}return g},o.prototype.match_alphabet_=function(t){for(var e={},n=0;n<t.length;n++)e[t.charAt(n)]=0;for(n=0;n<t.length;n++)e[t.charAt(n)]|=1<<t.length-n-1;return e},o.prototype.patch_addContext_=function(t,e){if(0!=e.length){for(var n=e.substring(t.start2,t.start2+t.length1),i=0;e.indexOf(n)!=e.lastIndexOf(n)&&n.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)i+=this.Patch_Margin,n=e.substring(t.start2-i,t.start2+t.length1+i);i+=this.Patch_Margin,(n=e.substring(t.start2-i,t.start2))&&t.diffs.unshift([0,n]),(i=e.substring(t.start2+t.length1,t.start2+t.length1+i))&&t.diffs.push([0,i]),t.start1-=n.length,t.start2-=n.length,t.length1+=n.length+i.length,t.length2+=n.length+i.length}},o.prototype.patch_make=function(t,e,n){if('string'==typeof t&&'string'==typeof e&&void 0===n){var i=t;2<(e=this.diff_main(i,e,!0)).length&&(this.diff_cleanupSemantic(e),this.diff_cleanupEfficiency(e))}else if(t&&'object'==typeof t&&void 0===e&&void 0===n)e=t,i=this.diff_text1(e);else if('string'==typeof t&&e&&'object'==typeof e&&void 0===n)i=t;else{if('string'!=typeof t||'string'!=typeof e||!n||'object'!=typeof n)throw Error('Unknown call format to patch_make.');i=t,e=n}if(0===e.length)return[];n=[],t=new o.patch_obj;for(var r=0,h=0,s=0,a=i,f=0;f<e.length;f++){var l=e[f][0],g=e[f][1];switch(r||0===l||(t.start1=h,t.start2=s),l){case 1:t.diffs[r++]=e[f],t.length2+=g.length,i=i.substring(0,s)+g+i.substring(s);break;case x:t.length1+=g.length,t.diffs[r++]=e[f],i=i.substring(0,s)+i.substring(s+g.length);break;case 0:g.length<=2*this.Patch_Margin&&r&&e.length!=f+1?(t.diffs[r++]=e[f],t.length1+=g.length,t.length2+=g.length):g.length>=2*this.Patch_Margin&&r&&(this.patch_addContext_(t,a),n.push(t),t=new o.patch_obj,r=0,a=i,h=s)}1!==l&&(h+=g.length),l!==x&&(s+=g.length)}return r&&(this.patch_addContext_(t,a),n.push(t)),n},o.prototype.patch_deepCopy=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n],r=new o.patch_obj;r.diffs=[];for(var h=0;h<i.diffs.length;h++)r.diffs[h]=i.diffs[h].slice();r.start1=i.start1,r.start2=i.start2,r.length1=i.length1,r.length2=i.length2,e[n]=r}return e},o.prototype.patch_apply=function(t,e){if(0==t.length)return[e,[]];t=this.patch_deepCopy(t);var n=this.patch_addPadding(t);e=n+e+n,this.patch_splitMax(t);for(var i=0,r=[],h=0;h<t.length;h++){var s,a,f=t[h].start2+i,l=this.diff_text1(t[h].diffs),g=-1;if(l.length>this.Match_MaxBits?-1!=(s=this.match_main(e,l.substring(0,this.Match_MaxBits),f))&&(-1==(g=this.match_main(e,l.substring(l.length-this.Match_MaxBits),f+l.length-this.Match_MaxBits))||g<=s)&&(s=-1):s=this.match_main(e,l,f),-1==s)r[h]=!1,i-=t[h].length2-t[h].length1;else if(r[h]=!0,i=s-f,l==(f=-1==g?e.substring(s,s+l.length):e.substring(s,g+this.Match_MaxBits)))e=e.substring(0,s)+this.diff_text2(t[h].diffs)+e.substring(s+l.length);else if(f=this.diff_main(l,f,!1),l.length>this.Match_MaxBits&&this.diff_levenshtein(f)/l.length>this.Patch_DeleteThreshold)r[h]=!1;else for(this.diff_cleanupSemanticLossless(f),g=l=0;g<t[h].diffs.length;g++){var o=t[h].diffs[g];0!==o[0]&&(a=this.diff_xIndex(f,l)),1===o[0]?e=e.substring(0,s+a)+o[1]+e.substring(s+a):o[0]===x&&(e=e.substring(0,s+a)+e.substring(s+this.diff_xIndex(f,l+o[1].length))),o[0]!==x&&(l+=o[1].length)}}return[e=e.substring(n.length,e.length-n.length),r]},o.prototype.patch_addPadding=function(t){for(var e=this.Patch_Margin,n='',i=1;i<=e;i++)n+=String.fromCharCode(i);for(i=0;i<t.length;i++)t[i].start1+=e,t[i].start2+=e;var r,h=(i=t[0]).diffs;return 0==h.length||0!=h[0][0]?(h.unshift([0,n]),i.start1-=e,i.start2-=e,i.length1+=e,i.length2+=e):e>h[0][1].length&&(r=e-h[0][1].length,h[0][1]=n.substring(h[0][1].length)+h[0][1],i.start1-=r,i.start2-=r,i.length1+=r,i.length2+=r),0==(h=(i=t[t.length-1]).diffs).length||0!=h[h.length-1][0]?(h.push([0,n]),i.length1+=e,i.length2+=e):e>h[h.length-1][1].length&&(r=e-h[h.length-1][1].length,h[h.length-1][1]+=n.substring(0,r),i.length1+=r,i.length2+=r),n},o.prototype.patch_splitMax=function(t){for(var e=this.Match_MaxBits,n=0;n<t.length;n++)if(!(t[n].length1<=e)){var i=t[n];t.splice(n--,1);for(var r=i.start1,h=i.start2,s='';0!==i.diffs.length;){var a=new o.patch_obj,f=!0;for(a.start1=r-s.length,a.start2=h-s.length,''!==s&&(a.length1=a.length2=s.length,a.diffs.push([0,s]));0!==i.diffs.length&&a.length1<e-this.Patch_Margin;){s=i.diffs[0][0];var l=i.diffs[0][1];1===s?(a.length2+=l.length,h+=l.length,a.diffs.push(i.diffs.shift()),f=!1):s===x&&1==a.diffs.length&&0==a.diffs[0][0]&&l.length>2*e?(a.length1+=l.length,r+=l.length,f=!1,a.diffs.push([s,l]),i.diffs.shift()):(l=l.substring(0,e-a.length1-this.Patch_Margin),a.length1+=l.length,r+=l.length,0===s?(a.length2+=l.length,h+=l.length):f=!1,a.diffs.push([s,l]),l==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(l.length))}s=(s=this.diff_text2(a.diffs)).substring(s.length-this.Patch_Margin),''!==(l=this.diff_text1(i.diffs).substring(0,this.Patch_Margin))&&(a.length1+=l.length,a.length2+=l.length,0!==a.diffs.length&&0===a.diffs[a.diffs.length-1][0]?a.diffs[a.diffs.length-1][1]+=l:a.diffs.push([0,l])),f||t.splice(++n,0,a)}}},o.prototype.patch_toText=function(t){for(var e=[],n=0;n<t.length;n++)e[n]=t[n];return e.join('')},o.prototype.patch_fromText=function(t){var e=[];if(!t)return e;t=t.split('\\n');for(var n=0,i=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;n<t.length;){var r=t[n].match(i);if(!r)throw Error('Invalid patch string: '+t[n]);var h=new o.patch_obj;for(e.push(h),h.start1=parseInt(r[1],10),''===r[2]?(h.start1--,h.length1=1):'0'==r[2]?h.length1=0:(h.start1--,h.length1=parseInt(r[2],10)),h.start2=parseInt(r[3],10),''===r[4]?(h.start2--,h.length2=1):'0'==r[4]?h.length2=0:(h.start2--,h.length2=parseInt(r[4],10)),n++;n<t.length;){r=t[n].charAt(0);try{var s=decodeURI(t[n].substring(1))}catch(t){throw Error('Illegal escape in patch_fromText: '+s)}if('-'==r)h.diffs.push([x,s]);else if('+'==r)h.diffs.push([1,s]);else if(' '==r)h.diffs.push([0,s]);else{if('@'==r)break;if(''!==r)throw Error('Invalid patch mode \"'+r+'\" in: '+s)}n++}}return e},(o.patch_obj=function(){this.diffs=[],this.start2=this.start1=null,this.length2=this.length1=0}).prototype.toString=function(){for(var t,e=['@@ -'+(0===this.length1?this.start1+',0':1==this.length1?this.start1+1:this.start1+1+','+this.length1)+' +'+(0===this.length2?this.start2+',0':1==this.length2?this.start2+1:this.start2+1+','+this.length2)+' @@\\n'],n=0;n<this.diffs.length;n++){switch(this.diffs[n][0]){case 1:t='+';break;case x:t='-';break;case 0:t=' '}e[n+1]=t+encodeURI(this.diffs[n][1])+'\\n'}return e.join('').replace(/%20/g,' ')},this.diff_match_patch=o,this.DIFF_DELETE=x,this.DIFF_INSERT=1,this.DIFF_EQUAL=0}).call(exports);","type":"application/javascript","module-type":"library"},"$:/core/modules/utils/dom/animations/slide.js":{"text":"!function(){'use strict';exports.slide={open:function(t,o){var i=(o=o||{}).duration||$tw.utils.getAnimationDuration(),n=window.getComputedStyle(t),a=parseInt(n.marginBottom,10),e=parseInt(n.marginTop,10),p=parseInt(n.paddingBottom,10),s=parseInt(n.paddingTop,10),n=t.offsetHeight;setTimeout(function(){$tw.utils.setStyle(t,[{transition:'none'},{marginBottom:''},{marginTop:''},{paddingBottom:''},{paddingTop:''},{height:'auto'},{opacity:''}]),o.callback&&o.callback()},i),$tw.utils.setStyle(t,[{transition:'none'},{marginTop:'0px'},{marginBottom:'0px'},{paddingTop:'0px'},{paddingBottom:'0px'},{height:'0px'},{opacity:'0'}]),$tw.utils.forceLayout(t),$tw.utils.setStyle(t,[{transition:'margin-top '+i+'ms ease-in-out, margin-bottom '+i+'ms ease-in-out, padding-top '+i+'ms ease-in-out, padding-bottom '+i+'ms ease-in-out, height '+i+'ms ease-in-out, opacity '+i+'ms ease-in-out'},{marginBottom:a+'px'},{marginTop:e+'px'},{paddingBottom:p+'px'},{paddingTop:s+'px'},{height:n+'px'},{opacity:'1'}])},close:function(t,o){var i=(o=o||{}).duration||$tw.utils.getAnimationDuration(),n=t.offsetHeight;setTimeout(function(){$tw.utils.setStyle(t,[{transition:'none'},{marginBottom:''},{marginTop:''},{paddingBottom:''},{paddingTop:''},{height:'auto'},{opacity:''}]),o.callback&&o.callback()},i),$tw.utils.setStyle(t,[{height:n+'px'},{opacity:'1'}]),$tw.utils.forceLayout(t),$tw.utils.setStyle(t,[{transition:'margin-top '+i+'ms ease-in-out, margin-bottom '+i+'ms ease-in-out, padding-top '+i+'ms ease-in-out, padding-bottom '+i+'ms ease-in-out, height '+i+'ms ease-in-out, opacity '+i+'ms ease-in-out'},{marginTop:'0px'},{marginBottom:'0px'},{paddingTop:'0px'},{paddingBottom:'0px'},{height:'0px'},{opacity:'0'}])}}}();","type":"application/javascript","module-type":"animation"},"$:/core/modules/utils/dom/animator.js":{"text":"!function(){'use strict';function t(){this.animations={},$tw.modules.applyMethods('animation',this.animations)}t.prototype.perform=function(n,t,i){var o;i=i||{},$tw.utils.each(this.animations,function(t,i){$tw.utils.hop(t,n)&&(o=t[n])}),(o=o||function(t,i){i.callback&&i.callback()})(t,i)},exports.Animator=t}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/browser.js":{"text":"!function(){'use strict';exports.setStyle=function(e,n){if(1===e.nodeType)for(var t=0;t<n.length;t++)for(var r in n[t])e.style[$tw.utils.convertStyleNameToPropertyName(r)]=n[t][r]};var l={};exports.convertStyleNameToPropertyName=function(e){if(l[e])return l[e];var n=$tw.utils.unHyphenateCss(e);if($tw.browser&&void 0===document.body.style[n])for(var t=['O','MS','Moz','webkit'],r=0;r<t.length;r++){var i=t[r]+n.substr(0,1).toUpperCase()+n.substr(1);if(void 0!==document.body.style[i]){n=i;break}}return l[e]=n},exports.convertPropertyNameToStyleName=function(e){e=$tw.utils.hyphenateCss(e);return 0===e.indexOf('webkit')?e='-'+e:0===e.indexOf('-m-s')&&(e='-ms'+e.substr(4)),e},exports.roundTripPropertyName=function(e){return $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(e))};var i={},o={transitionEnd:{correspondingCssProperty:'transition',mappings:{transition:'transitionend',OTransition:'oTransitionEnd',MSTransition:'msTransitionEnd',MozTransition:'transitionend',webkitTransition:'webkitTransitionEnd'}},animationEnd:{correspondingCssProperty:'animation',mappings:{animation:'animationend',OAnimation:'oAnimationEnd',MSAnimation:'msAnimationEnd',MozAnimation:'animationend',webkitAnimation:'webkitAnimationEnd'}}};exports.convertEventName=function(e){if(i[e])return i[e];var n,t=e,r=o[e];return r&&(n=$tw.utils.convertStyleNameToPropertyName(r.correspondingCssProperty),r.mappings[n]&&(t=r.mappings[n])),i[e]=t},exports.getFullScreenApis=function(){var e=document,n=e.body,e={_requestFullscreen:void 0!==n.webkitRequestFullscreen?'webkitRequestFullscreen':void 0!==n.mozRequestFullScreen?'mozRequestFullScreen':void 0!==n.msRequestFullscreen?'msRequestFullscreen':void 0!==n.requestFullscreen?'requestFullscreen':'',_exitFullscreen:void 0!==e.webkitExitFullscreen?'webkitExitFullscreen':void 0!==e.mozCancelFullScreen?'mozCancelFullScreen':void 0!==e.msExitFullscreen?'msExitFullscreen':void 0!==e.exitFullscreen?'exitFullscreen':'',_fullscreenElement:void 0!==e.webkitFullscreenElement?'webkitFullscreenElement':void 0!==e.mozFullScreenElement?'mozFullScreenElement':void 0!==e.msFullscreenElement?'msFullscreenElement':void 0!==e.fullscreenElement?'fullscreenElement':'',_fullscreenChange:void 0!==e.webkitFullscreenElement?'webkitfullscreenchange':void 0!==e.mozFullScreenElement?'mozfullscreenchange':void 0!==e.msFullscreenElement?'MSFullscreenChange':void 0!==e.fullscreenElement?'fullscreenchange':''};return e._requestFullscreen&&e._exitFullscreen&&e._fullscreenElement&&e._fullscreenChange?e:null}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/csscolorparser.js":{"text":"var s={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function g(e){return(e=Math.round(e))<0?0:255<e?255:e}function r(e){return e<0?0:1<e?1:e}function d(e){return'%'===e[e.length-1]?g(parseFloat(e)/100*255):g(parseInt(e))}function h(e){return'%'===e[e.length-1]?r(parseFloat(e)/100):r(parseFloat(e))}function c(e,r,l){return l<0?l+=1:1<l&&--l,6*l<1?e+(r-e)*l*6:2*l<1?r:3*l<2?e+(r-e)*(2/3-l)*6:e}try{exports.parseCSSColor=function(e){var r=e.replace(/ /g,'').toLowerCase();if(r in s)return s[r].slice();if('#'===r[0])return 4===r.length?0<=(a=parseInt(r.substr(1),16))&&a<=4095?[(3840&a)>>4|(3840&a)>>8,240&a|(240&a)>>4,15&a|(15&a)<<4,1]:null:7===r.length&&0<=(a=parseInt(r.substr(1),16))&&a<=16777215?[(16711680&a)>>16,(65280&a)>>8,255&a,1]:null;var l=r.indexOf('('),e=r.indexOf(')');if(-1!==l&&e+1===r.length){var a=r.substr(0,l),n=r.substr(l+1,e-(l+1)).split(','),t=1;switch(a){case'rgba':if(4!==n.length)return null;t=h(n.pop());case'rgb':return 3!==n.length?null:[d(n[0]),d(n[1]),d(n[2]),t];case'hsla':if(4!==n.length)return null;t=h(n.pop());case'hsl':if(3!==n.length)return null;var i=(parseFloat(n[0])%360+360)%360/360,o=h(n[1]),u=h(n[2]),o=u<=.5?u*(o+1):u+o-u*o,u=2*u-o;return[g(255*c(u,o,i+1/3)),g(255*c(u,o,i)),g(255*c(u,o,i-1/3)),t];default:return null}}return null}}catch(e){}","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom.js":{"text":"!function(){'use strict';exports.domContains=function(t,e){return t.contains?t!==e&&t.contains(e):!!(16&t.compareDocumentPosition(e))},exports.removeChildren=function(t){for(;t.hasChildNodes();)t.removeChild(t.firstChild)},exports.hasClass=function(t,e){return t&&t.hasAttribute&&t.hasAttribute('class')&&-1!==t.getAttribute('class').split(' ').indexOf(e)},exports.addClass=function(t,e){var o=(t.getAttribute('class')||'').split(' ');-1===o.indexOf(e)&&(o.push(e),t.setAttribute('class',o.join(' ')))},exports.removeClass=function(t,e){var o=(t.getAttribute('class')||'').split(' '),e=o.indexOf(e);-1!==e&&(o.splice(e,1),t.setAttribute('class',o.join(' ')))},exports.toggleClass=function(t,e,o){void 0===o&&(o=!exports.hasClass(t,e)),o?exports.addClass(t,e):exports.removeClass(t,e)},exports.getScrollContainer=function(t){for(var e=t.ownerDocument;t.parentNode;)if((t=t.parentNode).scrollTop)return t;return e.body},exports.getScrollPosition=function(t){t=t||window;return'scrollX'in t?{x:t.scrollX,y:t.scrollY}:{x:t.document.documentElement.scrollLeft,y:t.document.documentElement.scrollTop}},exports.resizeTextAreaToFit=function(t,e){var o=$tw.utils.getScrollContainer(t),s=o.scrollTop;t.style.height=e;e=t.offsetHeight||parseInt(e,10);t.style.height='auto';e=Math.max(t.scrollHeight+t.offsetHeight-t.clientHeight,e);return e!==t.offsetHeight&&(t.style.height=e+'px',$tw.utils.forceLayout(t),o.scrollTop=s),e},exports.getBoundingPageRect=function(t){var e=$tw.utils.getScrollPosition(t.ownerDocument.defaultView),t=t.getBoundingClientRect();return{left:t.left+e.x,width:t.width,right:t.right+e.x,top:t.top+e.y,height:t.height,bottom:t.bottom+e.y}},exports.savePassword=function(t,e){var o=!1;try{window.localStorage.setItem('tw5-password-'+t,e),o=!0}catch(t){}o||($tw.savedPasswords=$tw.savedPasswords||Object.create(null),$tw.savedPasswords[t]=e)},exports.getPassword=function(t){var e;try{e=window.localStorage.getItem('tw5-password-'+t)}catch(t){}return void 0!==e?e:($tw.savedPasswords||Object.create(null))[t]||''},exports.forceLayout=function(t){t.offsetWidth},exports.pulseElement=function(o){o.addEventListener($tw.browser.animationEnd,function t(e){o.removeEventListener($tw.browser.animationEnd,t,!1),$tw.utils.removeClass(o,'pulse')},!1),$tw.utils.removeClass(o,'pulse'),$tw.utils.forceLayout(o),$tw.utils.addClass(o,'pulse')},exports.addEventListeners=function(o,t){$tw.utils.each(t,function(e){var t;e.handlerFunction?t=e.handlerFunction:e.handlerObject&&(t=e.handlerMethod?function(t){e.handlerObject[e.handlerMethod].call(e.handlerObject,t)}:e.handlerObject),o.addEventListener(e.name,t,!1)})},exports.getComputedStyles=function(t){for(var e,o=window.getComputedStyle(t,null),s=[],n=0;n<o.length;n++)e=o[n],s.push(e+': '+o.getPropertyValue(e)+';');return s},exports.setStyles=function(t,e){t.style.cssText=e.join('')},exports.copyStyles=function(t,e){$tw.utils.setStyles(e,$tw.utils.getComputedStyles(t))},exports.copyToClipboard=function(t,e){e=e||{};var o=document.createElement('textarea');o.style.position='fixed',o.style.top=0,o.style.left=0,o.style.fontSize='12pt',o.style.width='2em',o.style.height='2em',o.style.padding=0,o.style.border='none',o.style.outline='none',o.style.boxShadow='none',o.style.background='transparent',o.value=t,document.body.appendChild(o),o.select(),o.setSelectionRange(0,t.length);var s=!1;try{s=document.execCommand('copy')}catch(t){}e.doNotNotify||$tw.notifier.display(s?'$:/language/Notifications/CopiedToClipboard/Succeeded':'$:/language/Notifications/CopiedToClipboard/Failed'),document.body.removeChild(o)},exports.getLocationPath=function(){return window.location.toString().split('#')[0]}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/dragndrop.js":{"text":"!function(){'use strict';exports.makeDraggable=function(n){var l,o=n.dragImageType||'dom',s=n.domNode;'a'!==(s.tagName||'').toLowerCase()&&s.setAttribute('draggable','true'),$tw.utils.addEventListeners(s,[{name:'dragstart',handlerFunction:function(t){if(void 0===t.dataTransfer)return!1;var e=n.dragTiddlerFn&&n.dragTiddlerFn(),r=n.dragFilterFn&&n.dragFilterFn(),i=e?[e]:[],d=n.startActions;r&&i.push.apply(i,n.widget.wiki.filterTiddlers(r,n.widget));var a,e=$tw.utils.stringifyList(i);return 0<i.length&&t.target===s&&($tw.dragInProgress=s,$tw.utils.addClass(t.target,'tc-dragging'),void 0!==d&&n.widget.invokeActionString(d,n.widget,t,{actionTiddler:e}),(l=n.widget.document.createElement('div')).className='tc-tiddler-dragger',(r=n.widget.document.createElement('div')).className='tc-tiddler-dragger-inner',r.appendChild(n.widget.document.createTextNode(1===i.length?i[0]:i.length+' tiddlers')),l.appendChild(r),n.widget.document.body.appendChild(l),(d=t.dataTransfer).effectAllowed='all',d.setDragImage&&('pill'===o?d.setDragImage(l.firstChild,-16,-16):(r=s.getBoundingClientRect(),d.setDragImage(s,t.clientX-r.left,t.clientY-r.top))),d.clearData&&d.clearData(),a=[],a=1<i.length?(i.forEach(function(t){a.push(n.widget.wiki.getTiddlerAsJson(t))}),'['+a.join(',')+']'):n.widget.wiki.getTiddlerAsJson(i[0]),$tw.browser.isIE||(d.setData('text/vnd.tiddler',a),d.setData('text/plain',e),d.setData('text/x-moz-url','data:text/vnd.tiddler,'+encodeURIComponent(a))),d.setData('URL','data:text/vnd.tiddler,'+encodeURIComponent(a)),d.setData('Text',e),t.stopPropagation()),!1}},{name:'dragend',handlerFunction:function(t){var e,r,i;return t.target===s&&(r=n.dragTiddlerFn&&n.dragTiddlerFn(),e=n.dragFilterFn&&n.dragFilterFn(),i=r?[r]:[],r=n.endActions,e&&i.push.apply(i,n.widget.wiki.filterTiddlers(e,n.widget)),i=$tw.utils.stringifyList(i),$tw.dragInProgress=null,void 0!==r&&n.widget.invokeActionString(r,n.widget,t,{actionTiddler:i}),$tw.utils.removeClass(t.target,'tc-dragging'),l&&(l.parentNode.removeChild(l),l=null)),!1}}])};var l=[{type:'text/vnd.tiddler',IECompatible:!(exports.importDataTransfer=function(t,e,r){if($tw.log.IMPORT){console.log('Available data types:');for(var i=0;i<t.types.length;i++)console.log('type',t.types[i],t.getData(t.types[i]))}for(var d=0;d<l.length;d++)if(!$tw.browser.isIE||l[d].IECompatible){var a=l[d],n=t.getData(a.type);if(''!==n&&null!==n)return $tw.log.IMPORT&&console.log('Importing data type \\''+a.type+'\\', data: \\''+n+'\\''),void r(a.toTiddlerFieldsArray(n,e))}}),toTiddlerFieldsArray:i},{type:'URL',IECompatible:!0,toTiddlerFieldsArray:function(t,e){var r=decodeURIComponent(t).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);return r?i(r[1],e):[{title:e,text:t}]}},{type:'text/x-moz-url',IECompatible:!1,toTiddlerFieldsArray:function(t,e){var r=decodeURIComponent(t).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);return r?i(r[1],e):[{title:e,text:t}]}},{type:'text/html',IECompatible:!1,toTiddlerFieldsArray:function(t,e){return[{title:e,text:t}]}},{type:'text/plain',IECompatible:!1,toTiddlerFieldsArray:function(t,e){return[{title:e,text:t}]}},{type:'Text',IECompatible:!0,toTiddlerFieldsArray:function(t,e){return[{title:e,text:t}]}},{type:'text/uri-list',IECompatible:!1,toTiddlerFieldsArray:function(t,e){return[{title:e,text:t}]}}];function i(t,e){t=JSON.parse(t);return $tw.utils.isArray(t)||(t=[t]),t.forEach(function(t){t.title=t.title||e}),t}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/http.js":{"text":"!function(){'use strict';exports.httpRequest=function(e){function t(a){a=a.toLowerCase();var n=!1;return $tw.utils.each(i,function(t,e,s){e.toLowerCase()===a&&(n=!0)}),n}var s,a=e.type||'GET',n=e.url,i=e.headers||{accept:'application/json'},u=e.returnProp||'responseText',o=new XMLHttpRequest,r='';e.data&&('string'==typeof e.data?r=e.data:(s=[],$tw.utils.each(e.data,function(t,e){s.push(e+'='+encodeURIComponent(t))}),'GET'===a||'HEAD'===a?n+='?'+s.join('&'):r=s.join('&'))),o.onreadystatechange=function(){4===this.readyState&&(200!==this.status&&201!==this.status&&204!==this.status?e.callback($tw.language.getString('Error/XMLHttpRequest')+': '+this.status,null,this):e.callback(null,this[u],this))},o.open(a,n,!0),i&&$tw.utils.each(i,function(t,e,s){o.setRequestHeader(e,t)}),r&&!t('Content-Type')&&o.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'),t('X-Requested-With')||o.setRequestHeader('X-Requested-With','TiddlyWiki');try{o.send(r)}catch(t){e.callback(t,null,this)}return o}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/keyboard.js":{"text":"!function(){'use strict';['parseKeyDescriptor','checkKeyDescriptor'].forEach(function(r){exports[r]=function(){return $tw.keyboardManager?$tw.keyboardManager[r].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0)):null}})}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/modal.js":{"text":"!function(){'use strict';function t(t){this.wiki=t,this.modalCount=0}require('$:/core/modules/widgets/widget.js');var C=require('$:/core/modules/widgets/navigator.js');t.prototype.display=function(t,e){e=e||{},this.srcDocument=(!e.variables||'true'!==e.variables.rootwindow&&'yes'!==e.variables.rootwindow)&&e.event&&e.event.event&&e.event.event.target?e.event.event.target.ownerDocument:document,this.srcWindow=this.srcDocument.defaultView;var i,s,r,n,a,l,o,d,c,u,m,h,p,w,g,v=this,y=$tw.utils.getAnimationDuration(),f=this.wiki.getTiddler(t);f&&(g=$tw.utils.extend({currentTiddler:t,'tv-story-list':e.event&&e.event.widget?e.event.widget.getVariable('tv-story-list'):'','tv-history-list':e.event&&e.event.widget?e.event.widget.getVariable('tv-history-list'):''},e.variables),s=this.srcDocument.createElement('div'),r=this.srcDocument.createElement('div'),n=this.srcDocument.createElement('div'),a=this.srcDocument.createElement('div'),l=this.srcDocument.createElement('h3'),o=this.srcDocument.createElement('div'),p=this.srcDocument.createElement('a'),u=this.srcDocument.createElement('div'),d=this.srcDocument.createElement('span'),c=this.srcDocument.createElement('span'),this.modalCount++,this.adjustPageClass(),$tw.utils.addClass(s,'tc-modal-wrapper'),f.fields&&f.fields.class&&$tw.utils.addClass(s,f.fields.class),$tw.utils.addClass(r,'tc-modal-backdrop'),$tw.utils.addClass(n,'tc-modal'),$tw.utils.addClass(a,'tc-modal-header'),$tw.utils.addClass(o,'tc-modal-body'),$tw.utils.addClass(u,'tc-modal-footer'),s.appendChild(r),s.appendChild(n),a.appendChild(l),n.appendChild(a),n.appendChild(o),u.appendChild(d),u.appendChild(c),n.appendChild(u),u={type:'navigator',attributes:{story:{name:'story',type:'string',value:g['tv-story-list']},history:{name:'history',type:'string',value:g['tv-history-list']}},tag:'$navigator',isBlock:!0,children:[]},(u=new C.navigator(u,{wiki:this.wiki,document:this.srcDocument,parentWidget:$tw.rootWidget})).render(o,null),(m=this.wiki.makeTranscludeWidget(t,{field:'subtitle',mode:'inline',children:[{type:'text',attributes:{text:{type:'string',value:t}}}],parentWidget:u,document:this.srcDocument,variables:g,importPageMacros:!0})).render(l,null),(h=this.wiki.makeTranscludeWidget(t,{parentWidget:u,document:this.srcDocument,variables:g,importPageMacros:!0})).render(o,null),e.downloadLink&&(p.href=e.downloadLink,p.appendChild(this.srcDocument.createTextNode('Right-click to save changes')),o.appendChild(p)),f.fields&&f.fields.help&&((p=this.srcDocument.createElement('a')).setAttribute('href',f.fields.help),p.setAttribute('target','_blank'),p.setAttribute('rel','noopener noreferrer'),p.appendChild(this.srcDocument.createTextNode('Help')),d.appendChild(p),d.style.float='left'),(w=this.wiki.makeTranscludeWidget(t,{field:'footer',mode:'inline',children:[{type:'button',attributes:{message:{type:'string',value:'tm-close-tiddler'}},children:[{type:'text',attributes:{text:{type:'string',value:$tw.language.getString('Buttons/Close/Caption')}}}]}],parentWidget:u,document:this.srcDocument,variables:g,importPageMacros:!0})).render(c,null),i=function(t){m.refresh(t,a,null),h.refresh(t,o,null),w.refresh(t,c,null)},this.wiki.addEventListener('change',i),g=function(t){return v.wiki.removeEventListener('change',i),v.modalCount--,v.adjustPageClass(),$tw.utils.forceLayout(r),$tw.utils.forceLayout(n),$tw.utils.setStyle(r,[{opacity:'0'}]),$tw.utils.setStyle(n,[{transform:'translateY('+v.srcWindow.innerHeight+'px)'}]),v.srcWindow.setTimeout(function(){s.parentNode&&v.srcDocument.body.removeChild(s)},y),!1},m.addEventListener('tm-close-tiddler',g,!1),h.addEventListener('tm-close-tiddler',g,!1),w.addEventListener('tm-close-tiddler',g,!1),$tw.utils.setStyle(r,[{opacity:'0'}]),$tw.utils.setStyle(n,[{transformOrigin:'0% 0%'},{transform:'translateY('+-this.srcWindow.innerHeight+'px)'}]),this.srcDocument.body.appendChild(s),$tw.utils.setStyle(r,[{transition:'opacity '+y+'ms ease-out'}]),$tw.utils.setStyle(n,[{transition:$tw.utils.roundTripPropertyName('transform')+' '+y+'ms ease-in-out'}]),$tw.utils.forceLayout(r),$tw.utils.forceLayout(n),$tw.utils.setStyle(r,[{opacity:'0.7'}]),$tw.utils.setStyle(n,[{transform:'translateY(0px)'}]))},t.prototype.adjustPageClass=function(){var t=$tw.pageContainer?$tw.pageContainer===this.srcDocument.body.firstChild?$tw.pageContainer:this.srcDocument.body.firstChild:null;t&&$tw.utils.toggleClass(t,'tc-modal-displayed',0<this.modalCount)},exports.Modal=t}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/notifier.js":{"text":"!function(){'use strict';function t(t){this.wiki=t}require('$:/core/modules/widgets/widget.js'),t.prototype.display=function(t,e){e=e||{};var i,n,o=this,r=document.createElement('div'),s=this.wiki.getTiddler(t),a=$tw.utils.getAnimationDuration();s&&($tw.utils.addClass(r,'tc-notification'),e=$tw.utils.extend({currentTiddler:t},e.variables),(n=this.wiki.makeTranscludeWidget(t,{parentWidget:$tw.rootWidget,document:document,variables:e,importPageMacros:!0})).render(r,null),i=function(t){n.refresh(t,r,null)},this.wiki.addEventListener('change',i),$tw.utils.setStyle(r,[{opacity:'0'},{transformOrigin:'0% 0%'},{transform:'translateY('+-window.innerHeight+'px)'},{transition:'opacity '+a+'ms ease-out, '+$tw.utils.roundTripPropertyName('transform')+' '+a+'ms ease-in-out'}]),document.body.appendChild(r),$tw.utils.forceLayout(r),$tw.utils.setStyle(r,[{opacity:'1.0'},{transform:'translateY(0px)'}]),window.setTimeout(function(){o.wiki.removeEventListener('change',i),$tw.utils.forceLayout(r),$tw.utils.setStyle(r,[{opacity:'0.0'},{transform:'translateX('+r.offsetWidth+'px)'}]),setTimeout(function(){r.parentNode&&document.body.removeChild(r)},a)},$tw.config.preferences.notificationDuration))},exports.Notifier=t}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/popup.js":{"text":"!function(){'use strict';function t(t){t=t||{},this.rootElement=t.rootElement||document.documentElement,this.popups=[]}t.prototype.triggerPopup=function(t){var e=this.findPopup(t.title),o=-1===e;void 0!==t.force&&(o=t.force),o?this.show(t):this.cancel(e)},t.prototype.findPopup=function(t){for(var e=-1,o=0;o<this.popups.length;o++)this.popups[o].title===t&&(e=o);return e},t.prototype.handleEvent=function(t){var e;'click'===t.type&&(t=(e=this.popupInfo(t.target)).popupLevel-1,e.isHandle&&t++,this.cancel(t))},t.prototype.popupInfo=function(t){for(var e=!1,o=0,p=t;p;)$tw.utils.hasClass(p,'tc-popup-handle')&&(e=!0,o++),$tw.utils.hasClass(p,'tc-popup-keep')&&(e=!0),p=p.parentNode;for(p=t;p;)$tw.utils.hasClass(p,'tc-popup')&&o++,p=p.parentNode;return{popupLevel:o,isHandle:e}},t.prototype.show=function(t){var e=this.popupInfo(t.domNode);this.cancel(e.popupLevel),t.floating||-1!==this.findPopup(t.title)||this.popups.push({title:t.title,wiki:t.wiki,domNode:t.domNode,noStateReference:t.noStateReference});e='('+(e=t.domNodeRect||{left:t.domNode.offsetLeft,top:t.domNode.offsetTop,width:t.domNode.offsetWidth,height:t.domNode.offsetHeight}).left+','+e.top+','+e.width+','+e.height+')';t.noStateReference?t.wiki.setText(t.title,'text',void 0,e):t.wiki.setTextReference(t.title,e),0<this.popups.length&&this.rootElement.addEventListener('click',this,!0)},t.prototype.cancel=function(t){for(var e=this.popups.length,o=t=Math.max(0,Math.min(t,e));o<e;o++){var p=this.popups.pop();p.title&&(p.noStateReference?p.wiki.deleteTiddler(p.title):p.wiki.deleteTiddler($tw.utils.parseTextReference(p.title).title))}0===this.popups.length&&this.rootElement.removeEventListener('click',this,!1)},t.prototype.readPopupState=function(t){return/^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/.test(t)},exports.Popup=t}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/dom/scroller.js":{"text":"!function(){'use strict';function t(){this.idRequestFrame=null,this.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},this.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelAnimationFrame||window.mozCancelRequestAnimationFrame||function(t){window.clearTimeout(t)}}t.prototype.isScrolling=function(){return null!==this.idRequestFrame},t.prototype.cancelScroll=function(t){this.idRequestFrame&&(this.cancelAnimationFrame.call(t,this.idRequestFrame),this.idRequestFrame=null)},t.prototype.handleEvent=function(t){return'tm-scroll'!==t.type||(t.paramObject&&t.paramObject.selector?this.scrollSelectorIntoView(null,t.paramObject.selector):this.scrollIntoView(t.target),!1)},t.prototype.scrollIntoView=function(r,l){var a=this,c=$tw.utils.getAnimationDuration(),s=r?r.ownerDocument.defaultView:window;this.cancelScroll(s),this.startTime=Date.now();var t=s.document.querySelector('.tc-adjust-top-of-scroll'),u=0;t&&(u=t.offsetHeight);function m(t,e,i,n){return t<50&&(t=0),t}(function t(){var e=c<=0?1:(Date.now()-a.startTime)/c;1<=e&&(a.cancelScroll(s),e=1),e=$tw.utils.slowInSlowOut(e);var i,n,o=$tw.utils.getScrollPosition(s),n=(i='function'==typeof l?l():r.getBoundingClientRect(),n=$tw.utils.getScrollPosition(s),{left:i.left+n.x,top:i.top+n.y-u,width:i.width,height:i.height}),i=m(n.left,0,o.x,s.innerWidth),n=m(n.top,0,o.y,s.innerHeight);s.scrollTo(o.x+(i-o.x)*e,o.y+(n-o.y)*e),e<1&&(a.idRequestFrame=a.requestAnimationFrame.call(s,t))})()},t.prototype.scrollSelectorIntoView=function(t,e,i){e=(t=t||document.body).querySelector(e);e&&this.scrollIntoView(e,i)},exports.PageScroller=t}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/edition-info.js":{"text":"!function(){'use strict';var f,s=require('fs'),c=require('path');exports.getEditionInfo=function(){if(!f){var r=$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);f={};for(var t=0;t<r.length;t++)for(var i=r[t],e=s.readdirSync(i),n=0;n<e.length;n++){var a,o=e[n];if(!f[o]&&$tw.utils.isDirectory(c.resolve(i,o))){try{a=JSON.parse(s.readFileSync(c.resolve(i,o,'tiddlywiki.info'),'utf8'))}catch(r){}a&&(f[o]=a)}}}return f}}();","type":"application/javascript","module-type":"utils-node"},"$:/core/modules/utils/fakedom.js":{"text":"!function(){'use strict';function n(t){null!==e&&(t.sequenceNumber=e++)}var e=null,t=function(){throw TypeError('Illegal constructor')};function i(t){n(this),this.textContent=t+''}function r(t,e){n(this),this.isTiddlyWikiFakeDom=!0,this.tag=t,this.attributes={},this.isRaw=!1,this.children=[],this._style={},this.namespaceURI=e||'http://www.w3.org/1999/xhtml'}Object.defineProperty(t.prototype,'ELEMENT_NODE',{get:function(){return 1}}),Object.defineProperty(t.prototype,'TEXT_NODE',{get:function(){return 3}}),i.prototype=Object.create(t.prototype),Object.defineProperty(i.prototype,'nodeType',{get:function(){return this.TEXT_NODE}}),Object.defineProperty(i.prototype,'formattedTextContent',{get:function(){return this.textContent.replace(/(\\r?\\n)/g,'')}}),r.prototype=Object.create(t.prototype),Object.defineProperty(r.prototype,'style',{get:function(){return this._style},set:function(t){var n=this;t=t||'',$tw.utils.each(t.split(';'),function(t){var e=t.split(':'),t=$tw.utils.trim(e[0]),e=$tw.utils.trim(e[1]);t&&e&&(n._style[$tw.utils.convertStyleNameToPropertyName(t)]=e)})}}),Object.defineProperty(r.prototype,'nodeType',{get:function(){return this.ELEMENT_NODE}}),r.prototype.getAttribute=function(t){if(this.isRaw)throw'Cannot getAttribute on a raw TW_Element';return this.attributes[t]},r.prototype.setAttribute=function(t,e){if(this.isRaw)throw'Cannot setAttribute on a raw TW_Element';this.attributes[t]=e+''},r.prototype.setAttributeNS=function(t,e,n){this.setAttribute(e,n)},r.prototype.removeAttribute=function(t){if(this.isRaw)throw'Cannot removeAttribute on a raw TW_Element';$tw.utils.hop(this.attributes,t)&&delete this.attributes[t]},r.prototype.appendChild=function(t){this.children.push(t),t.parentNode=this},r.prototype.insertBefore=function(t,e){var n;e&&-1!==(n=this.children.indexOf(e))?(this.children.splice(n,0,t),t.parentNode=this):this.appendChild(t)},r.prototype.removeChild=function(t){t=this.children.indexOf(t);-1!==t&&this.children.splice(t,1)},r.prototype.hasChildNodes=function(){return!!this.children.length},Object.defineProperty(r.prototype,'childNodes',{get:function(){return this.children}}),Object.defineProperty(r.prototype,'firstChild',{get:function(){return this.children[0]}}),r.prototype.addEventListener=function(t,e,n){},Object.defineProperty(r.prototype,'tagName',{get:function(){return this.tag||''}}),Object.defineProperty(r.prototype,'className',{get:function(){return this.attributes.class||''},set:function(t){this.attributes.class=t+''}}),Object.defineProperty(r.prototype,'value',{get:function(){return this.attributes.value||''},set:function(t){this.attributes.value=t+''}}),Object.defineProperty(r.prototype,'outerHTML',{get:function(){var t,e,n,i=[];if(i.push('<',this.tag),this.attributes){for(e in t=[],this.attributes)t.push(e);for(t.sort(),e=0;e<t.length;e++)void 0!==(n=this.attributes[t[e]])&&i.push(' ',t[e],'=\"',$tw.utils.htmlEncode(n),'\"')}if(this._style){var r,o=[];for(r in this._style)o.push($tw.utils.convertPropertyNameToStyleName(r)+':'+this._style[r]+';');0<o.length&&i.push(' style=\"',o.join(''),'\"')}return i.push('>'),-1===$tw.config.htmlVoidElements.indexOf(this.tag)&&(i.push(this.innerHTML),i.push('</',this.tag,'>')),i.join('')}}),Object.defineProperty(r.prototype,'innerHTML',{get:function(){if(this.isRaw)return this.rawHTML;var e=[];return $tw.utils.each(this.children,function(t){t instanceof r?e.push(t.outerHTML):t instanceof i&&e.push($tw.utils.htmlEncode(t.textContent))}),e.join('')},set:function(t){this.isRaw=!0,this.rawHTML=t,this.rawTextContent=null}}),Object.defineProperty(r.prototype,'textInnerHTML',{set:function(t){if(!this.isRaw)throw'Cannot set textInnerHTML of a non-raw TW_Element';this.rawTextContent=t}}),Object.defineProperty(r.prototype,'textContent',{get:function(){if(this.isRaw)return null===this.rawTextContent?'':this.rawTextContent;var e=[];return $tw.utils.each(this.children,function(t){e.push(t.textContent)}),e.join('')},set:function(t){this.children=[new i(t)]}}),Object.defineProperty(r.prototype,'formattedTextContent',{get:function(){if(this.isRaw)return'';var e=[],t=-1!==$tw.config.htmlBlockElements.indexOf(this.tag);return t&&e.push('\\n'),'li'===this.tag&&e.push('* '),$tw.utils.each(this.children,function(t){e.push(t.formattedTextContent)}),t&&e.push('\\n'),e.join('')}}),t={setSequenceNumber:function(t){e=t},createElementNS:function(t,e){return new r(e,t)},createElement:function(t){return new r(t)},createTextNode:function(t){return new i(t)},compatMode:'CSS1Compat',isTiddlyWikiFakeDom:!0},exports.fakeDocument=t}();","type":"application/javascript","module-type":"global"},"$:/core/modules/utils/filesystem.js":{"text":"!function(){'use strict';var o,u=require('fs'),d=require('path');exports.getSubdirectories=function(t){if(!$tw.utils.isDirectory(t))return null;var i=[];return $tw.utils.each(u.readdirSync(t),function(e){$tw.utils.isDirectory(d.resolve(t,e))&&i.push(e)}),i},exports.copyDirectory=function(e,t){if(e=d.resolve($tw.utils.removeTrailingSeparator(e)),t=d.resolve($tw.utils.removeTrailingSeparator(t)),e.substring(0,t.length)===t||t.substring(0,e.length)===e)return'Cannot copy nested directories';var i=$tw.utils.createDirectory(t);if(i)return i;var o=function(e,t){var i=u.lstatSync(e);u.existsSync(t);if(i.isFile())$tw.utils.copyFile(e,t);else if(i.isDirectory())for(var r=u.readdirSync(e),n=0;n<r.length;n++){var l=r[n],l=o(e+d.sep+l,t+d.sep+l);if(l)return l}};return o(e,t),null},exports.copyFile=function(e,t){o=o||Buffer.alloc(65536),$tw.utils.createDirectory(d.dirname(t));for(var i=u.openSync(e,'r'),r=u.openSync(t,'w'),n=1,l=0;0<n;)n=u.readSync(i,o,0,65536,l),u.writeSync(r,o,0,n),l+=n;return u.closeSync(i),u.closeSync(r),null},exports.removeTrailingSeparator=function(e){var t=e.length;return e.charAt(t-1)===d.sep&&(e=e.substr(0,t-1)),e},exports.createDirectory=function(e){e.substr(e.length-1,1)!==d.sep&&(e+=d.sep);for(var t=1,t=e.indexOf(d.sep,t);-1!==t;){var i=e.substr(0,t);if(!$tw.utils.isDirectory(i))try{u.mkdirSync(i)}catch(e){return'Error creating directory \\''+i+'\\''}t=e.indexOf(d.sep,t+1)}return null},exports.createFileDirectories=function(e){return $tw.utils.createDirectory(d.dirname(e))},exports.deleteDirectory=function(e){if(u.existsSync(e)){for(var t=u.readdirSync(e),i=0;i<t.length;i++){var r=e+d.sep+t[i];u.lstatSync(r).isDirectory()?$tw.utils.deleteDirectory(r):u.unlinkSync(r)}u.rmdirSync(e)}return null},exports.isDirectory=function(e){return u.existsSync(e)&&u.statSync(e).isDirectory()},exports.isDirectoryEmpty=function(e){if(!$tw.utils.isDirectory(e))return!1;var e=u.readdirSync(e),i=!0;return $tw.utils.each(e,function(e,t){'.'!==e.charAt(0)&&(i=!1)}),i},exports.deleteEmptyDirs=function(i,r){var n=this;u.readdir(i,function(e,t){return e?r(e):0<t.length?r(null):void u.rmdir(i,function(e){return e?r(e):void n.deleteEmptyDirs(d.dirname(i),r)})})},exports.generateTiddlerFileInfo=function(e,t){var i={};t.fileInfo&&(i.isEditableFile=t.fileInfo.isEditableFile||!1);var r,n,l=!1;$tw.utils.each(e.getFieldStrings(),function(e,t){'text'!==t&&(l=(l=l||/[\\x00-\\x1F]/gm.test(e))||$tw.utils.trim(e)!==e)}),l?(i.type='application/json',i.hasMetaFile=!1):('text/vnd.tiddlywiki'===(r=e.fields.type||'text/vnd.tiddlywiki')?(i.type='application/x-tiddler',i.hasMetaFile=!1):(i.type=r,i.hasMetaFile=!0),t.extFilters&&(n=$tw.utils.generateTiddlerExtension(e.fields.title,{extFilters:t.extFilters,wiki:t.wiki}))&&('.tid'===n?(i.type='application/x-tiddler',i.hasMetaFile=!1):'.json'===n?(i.type='application/json',i.hasMetaFile=!1):(o=$tw.utils.getFileExtensionInfo(n),i.type=o?o.type:null,i.encoding=$tw.utils.getTypeEncoding(n),i.hasMetaFile=!0)));var o=$tw.config.contentTypeInfo[i.type]||{extension:''};return i.filepath=$tw.utils.generateTiddlerFilepath(e.fields.title,{extension:n||o.extension,directory:t.directory,pathFilters:t.pathFilters,wiki:t.wiki,fileInfo:t.fileInfo,originalpath:t.originalpath}),i},exports.generateTiddlerExtension=function(i,r){var n;return r.extFilters&&r.wiki&&$tw.utils.each(r.extFilters,function(e){var t;n||(t=r.wiki.makeTiddlerIterator([i]),0<(t=r.wiki.filterTiddlers(e,null,t)).length&&(n=t[0]))}),n},exports.generateTiddlerFilepath=function(i,r){var n,e=r.directory||'',t=r.extension||'',l=r.originalpath||'';r.pathFilters&&r.wiki&&$tw.utils.each(r.pathFilters,function(e){var t;n||(t=r.wiki.makeTiddlerIterator([i]),0<(t=r.wiki.filterTiddlers(e,null,t)).length&&(n=t[0]))}),n=n||''===l?n||(n=i).replace(/\\/|\\\\/g,'_'):(c=d.extname(l),l.substring(0,l.length-c.length)),/^\\.{1,2}[/\\\\]/g.test(n)||(n=n.replace(/^\\.+/g,'_')),n.substring(n.length-t.length)===t&&(n=n.substring(0,n.length-t.length)),200<(n=$tw.utils.transliterate(n.replace(/<|>|~|\\:|\\\"|\\||\\?|\\*|\\^/g,'_'))).length&&(n=n.substr(0,200)),32<t.length&&(t=t.substr(0,32)),n||(n='',$tw.utils.each(i.split(''),function(e){n&&(n+='-'),n+=e.charCodeAt(0).toString()}));for(var o,s=r.fileInfo?r.fileInfo.filepath:void 0,a=0;o=d.resolve(e,n+(a?'_'+a:'')+t),(!s||s!=o)&&(a++,u.existsSync(o)););var c=$tw.hooks.invokeHook('th-make-tiddler-path',o);return(1==(r.fileInfo||{writeError:!1}).writeError||!(0==o.indexOf(d.resolve(e))||0==o.indexOf(d.resolve($tw.boot.wikiPath))||0==o.indexOf($tw.boot.wikiTiddlersPath)))&&(c=d.resolve(e,encodeURIComponent(o))),c},exports.saveTiddlerToFile=function(t,i,r){var e;$tw.utils.createDirectory(d.dirname(i.filepath)),i.hasMetaFile?(e=$tw.config.contentTypeInfo[t.fields.type||'text/plain']||{encoding:'utf8'},u.writeFile(i.filepath,t.fields.text,e.encoding,function(e){return e?r(e):void u.writeFile(i.filepath+'.meta',t.getFieldStringBlock({exclude:['text','bag']}),'utf8',function(e){return e?r(e):r(null,i)})})):'application/x-tiddler'===i.type?u.writeFile(i.filepath,t.getFieldStringBlock({exclude:['text','bag']})+(t.fields.text?'\\n\\n'+t.fields.text:''),'utf8',function(e){return e?r(e):r(null,i)}):u.writeFile(i.filepath,JSON.stringify([t.getFieldStrings({exclude:['bag']})],null,$tw.config.preferences.jsonSpaces),'utf8',function(e){return e?r(e):r(null,i)})},exports.saveTiddlerToFileSync=function(e,t){var i;$tw.utils.createDirectory(d.dirname(t.filepath)),t.hasMetaFile?(i=$tw.config.contentTypeInfo[e.fields.type||'text/plain']||{encoding:'utf8'},u.writeFileSync(t.filepath,e.fields.text,i.encoding),u.writeFileSync(t.filepath+'.meta',e.getFieldStringBlock({exclude:['text','bag']}),'utf8')):'application/x-tiddler'===t.type?u.writeFileSync(t.filepath,e.getFieldStringBlock({exclude:['text','bag']})+(e.fields.text?'\\n\\n'+e.fields.text:''),'utf8'):u.writeFileSync(t.filepath,JSON.stringify([e.getFieldStrings({exclude:['bag']})],null,$tw.config.preferences.jsonSpaces),'utf8')},exports.deleteTiddlerFile=function(t,i){if(!t.filepath||!u.existsSync(t.filepath))return $tw.syncer.displayError('Server deleteTiddlerFile task failed for filepath: '+t.filepath),i(null,t);u.unlink(t.filepath,function(e){return e?i(e):t.hasMetaFile&&u.existsSync(t.filepath+'.meta')?void u.unlink(t.filepath+'.meta',function(e){return e?i(e):$tw.utils.deleteEmptyDirs(d.dirname(t.filepath),function(e){return e?i(e):i(null,t)})}):$tw.utils.deleteEmptyDirs(d.dirname(t.filepath),function(e){return e?i(e):i(null,t)})})},exports.cleanupTiddlerFiles=function(e,t){var i=e.adaptorInfo||{},r=e.bootInfo||{},n=e.title||'undefined';if(!i.filepath||!r.filepath||i.filepath===r.filepath)return t(null,r);$tw.utils.deleteTiddlerFile(i,function(e){return e?'EPERM'!=e.code&&'EACCES'!=e.code||'unlink'!=e.syscall?t(e):($tw.syncer.displayError('Server desynchronized. Error cleaning up previous file for tiddler: \"'+n+'\"',e),t(null,r)):t(null,r)})}}();","type":"application/javascript","module-type":"utils-node"},"$:/core/modules/utils/linkedlist.js":{"text":"function t(){this.clear()}function i(t,e){var i,r=t.prev[e],n=t.next[e],o=r,s=n;if('object'==typeof n&&(s=n[0],o=r[0]),t.first===e)t.first=s;else{if(void 0===o)return;'object'==typeof t.next[o]?void 0===s?t.next[o].pop():(i=t.next[o].indexOf(e),t.next[o][i]=s):t.next[o]=s}void 0!==s?'object'==typeof t.prev[s]?void 0===o?t.prev[s].shift():(i=t.prev[s].indexOf(e),t.prev[s][i]=o):t.prev[s]=o:t.last=o,'object'==typeof n?(n.shift(),r.shift()):(t.next[e]=void 0,t.prev[e]=void 0),--t.length}function r(t,e){void 0===t.first?t.first=e:(t.first===e||void 0!==t.prev[e]?('string'==typeof t.next[e]?(t.next[e]=[t.next[e]],t.prev[e]=[t.prev[e]]):void 0===t.next[e]&&(t.next[e]=[],t.prev[e]=[t.prev[e]]),t.prev[e].push(t.last)):t.prev[e]=t.last,'object'==typeof t.next[t.last]?t.next[t.last].push(e):t.next[t.last]=e),t.last=e,t.length+=1}function n(t){if('string'!=typeof t)throw'Linked List only accepts string values, not '+t}t.prototype.clear=function(){this.next=Object.create(null),this.prev=Object.create(null),this.first=void 0,this.last=void 0,this.length=0},t.prototype.remove=function(t){if($tw.utils.isArray(t)){for(var e=0;e<t.length;e++)n(t[e]);for(e=0;e<t.length;e++)i(this,t[e])}else n(t),i(this,t)},t.prototype.push=function(){var t=arguments;$tw.utils.isArray(t[0])&&(t=t[0]);for(var e=0;e<t.length;e++)n(t[e]);for(e=0;e<t.length;e++)r(this,t[e]);return this.length},t.prototype.pushTop=function(t){if($tw.utils.isArray(t)){for(var e=0;e<t.length;e++)n(t[e]);for(e=0;e<t.length;e++)i(this,t[e]);for(e=0;e<t.length;e++)r(this,t[e])}else n(t),i(this,t),r(this,t)},t.prototype.each=function(t){for(var e=Object.create(null),i=this.first;void 0!==i;){t(i);var r,n=this.next[i],i='object'==typeof n?(r=e[i]||0,e[i]=r+1,n[r]):n}},t.prototype.toArray=function(){var e=new Array(this.length),i=0;return this.each(function(t){e[i++]=t}),e},exports.LinkedList=t;","module-type":"utils","type":"application/javascript"},"$:/core/modules/utils/logger.js":{"text":"!function(){'use strict';var s='$:/tags/Alert';function e(e,t){t=t||{},this.componentName=e||'',this.colour=t.colour||'white',this.enable=!('enable'in t)||t.enable,this.save=!('save'in t)||t.save,this.saveLimit=t.saveLimit||102400,(this.saveBufferLogger=this).buffer='',this.alertCount=0}e.prototype.setSaveBuffer=function(e){this.saveBufferLogger=e},e.prototype.log=function(){var i=this;if(this.enable&&(this.saveBufferLogger.save&&(this.saveBufferLogger.buffer+=$tw.utils.formatDateString(new Date,'YYYY MM DD 0hh:0mm:0ss.0XXX')+':',$tw.utils.each(Array.prototype.slice.call(arguments,0),function(e,t){i.saveBufferLogger.buffer+=' '+e}),this.saveBufferLogger.buffer+='\\n',this.saveBufferLogger.buffer=this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit)),void 0!==console&&void 0!==console.log))return Function.apply.call(console.log,console,[$tw.utils.terminalColour(this.colour),this.componentName+':'].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()))},e.prototype.getBuffer=function(){return this.saveBufferLogger.buffer},e.prototype.table=function(e){(console.table||console.log)(e)},e.prototype.alert=function(){var t,e,i,o,r;this.enable&&(t=Array.prototype.join.call(arguments,' '),$tw.browser?(e=$tw.wiki.getTiddlersWithTag(s),r=this,$tw.utils.each(e,function(e){e=$tw.wiki.getTiddler(e);e.fields.text===t&&e.fields.component===r.componentName&&e.fields.modified&&(!i||e.fields.modified<i.modified)&&(i=$tw.utils.extend({},e.fields))}),i?o=i.count||1:(i={title:$tw.wiki.generateNewTitle('$:/temp/alerts/alert',{prefix:''}),text:t,tags:[s],component:this.componentName},o=0,this.alertCount+=1),i.modified=new Date,1<++o?i.count=o:i.count=void 0,$tw.wiki.addTiddler(new $tw.Tiddler(i)),this.log.apply(this,Array.prototype.slice.call(arguments,0))):console.error('\u001b[1;33m'+t+'\u001b[0m'))},e.prototype.clearAlerts=function(){var t=this;$tw.browser&&0<this.alertCount&&($tw.utils.each($tw.wiki.getTiddlersWithTag(s),function(e){$tw.wiki.getTiddler(e).fields.component===t.componentName&&$tw.wiki.deleteTiddler(e)}),this.alertCount=0)},exports.Logger=e}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/parsetree.js":{"text":"!function(){'use strict';exports.addAttributeToParseTreeNode=function(t,e,s){t.attributes=t.attributes||{},t.attributes[e]={type:'string',value:s}},exports.getAttributeValueFromParseTreeNode=function(t,e,s){return t.attributes&&t.attributes[e]&&void 0!==t.attributes[e].value?t.attributes[e].value:s},exports.addClassToParseTreeNode=function(t,e){var s=[];t.attributes=t.attributes||{},t.attributes.class=t.attributes.class||{type:'string',value:''},'string'===t.attributes.class.type&&(''!==t.attributes.class.value&&(s=t.attributes.class.value.split(' ')),''!==e&&$tw.utils.pushTop(s,e.split(' ')),t.attributes.class.value=s.join(' '))},exports.addStyleToParseTreeNode=function(t,e,s){t.attributes=t.attributes||{},t.attributes.style=t.attributes.style||{type:'string',value:''},'string'===t.attributes.style.type&&(t.attributes.style.value+=e+':'+s+';')},exports.findParseTreeNode=function(t,e){for(var s=0;s<t.length;s++)if(t[s].type===e.type&&t[s].tag===e.tag)return t[s]},exports.getParseTreeText=function e(t){var s=[];if($tw.utils.isArray(t))$tw.utils.each(t,function(t){s.push(e(t))});else if('text'===t.type&&s.push(t.text),t.children)return e(t.children);return s.join('')}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/performance.js":{"text":"!function(){'use strict';function e(e){this.enabled=!!e,this.measures={},this.logger=new $tw.utils.Logger('performance'),this.showGreeting()}e.prototype.showGreeting=function(){$tw.browser&&this.logger.log('Execute $tw.perf.log(); to see filter execution timings')},e.prototype.report=function(i,s){var r=this;return this.enabled?function(){var e=$tw.utils.timer(),t=s.apply(this,arguments);return r.logger.log(i+': '+$tw.utils.timer(e).toFixed(2)+'ms'),t}:s},e.prototype.log=function(){var i=this,s=0,e=Object.keys(this.measures).sort(function(e,t){return i.measures[e].time>i.measures[t].time?-1:i.measures[e].time<i.measures[t].time?1:0});$tw.utils.each(e,function(e){s+=i.measures[e].time});var r=[];$tw.utils.each(e,function(e){var t=i.measures[e];r.push({name:e,invocations:t.invocations,avgTime:t.time/t.invocations,totalTime:t.time,percentTime:t.time/s*100})}),i.logger.table(r)},e.prototype.measure=function(i,s){var r=this;return this.enabled?function(){var e=$tw.utils.timer(),t=s.apply(this,arguments);return i in r.measures||(r.measures[i]={time:0,invocations:0}),r.measures[i].time+=$tw.utils.timer(e),r.measures[i].invocations++,t}:s},exports.Performance=e}();","type":"application/javascript","module-type":"global"},"$:/core/modules/utils/pluginmaker.js":{"text":"!function(){'use strict';exports.repackPlugin=function(i,t,e){t=t||[],e=e||[];var r,l=$tw.wiki.getTiddler(i);if(!l)throw'No such tiddler as '+i;try{r=JSON.parse(l.fields.text)}catch(t){throw'Cannot parse plugin tiddler '+i+'\\n'+$tw.language.getString('Error/Caption')+': '+t}var s=Object.keys(r.tiddlers);$tw.utils.pushTop(s,t);for(var d=s.length-1;0<=d;d--)-1!==e.indexOf(s[d])&&s.splice(d,1);var n={};$tw.utils.each(s,function(t){var e=$tw.wiki.getTiddler(t),r={};$tw.utils.each(e.fields,function(t,i){r[i]=e.getFieldString(i)}),n[t]=r});var a=$tw.utils.parseVersion(l.getFieldString('version')||'0.0.0')||{major:'0',minor:'0',patch:'0'};a.patch++;t=a.major+'.'+a.minor+'.'+a.patch;return a.prerelease&&(t+='-'+a.prerelease),a.build&&(t+='+'+a.build),$tw.wiki.addTiddler(new $tw.Tiddler(l,{text:JSON.stringify({tiddlers:n},null,4),version:t})),$tw.utils.each(s,function(t){$tw.wiki.tiddlerExists(t)&&$tw.wiki.deleteTiddler(t)}),$tw.rootWidget.dispatchEvent({type:'tm-auto-save-wiki'}),'Plugin '+i+' successfully saved'}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/transliterate.js":{"text":"!function(){'use strict';exports.transliterationPairs={'Á':'A','Ă':'A','Ắ':'A','Ặ':'A','Ằ':'A','Ẳ':'A','Ẵ':'A','Ǎ':'A','Â':'A','Ấ':'A','Ậ':'A','Ầ':'A','Ẩ':'A','Ẫ':'A','Ä':'A','Ǟ':'A','Ȧ':'A','Ǡ':'A','Ạ':'A','Ȁ':'A','À':'A','Ả':'A','Ȃ':'A','Ā':'A','Ą':'A','Å':'A','Ǻ':'A','Ḁ':'A','Ⱥ':'A','Ã':'A','Ꜳ':'AA','Æ':'AE','Ǽ':'AE','Ǣ':'AE','Ꜵ':'AO','Ꜷ':'AU','Ꜹ':'AV','Ꜻ':'AV','Ꜽ':'AY','Ḃ':'B','Ḅ':'B','Ɓ':'B','Ḇ':'B','Ƀ':'B','Ƃ':'B','Ć':'C','Č':'C','Ç':'C','Ḉ':'C','Ĉ':'C','Ċ':'C','Ƈ':'C','Ȼ':'C','Ď':'D','Ḑ':'D','Ḓ':'D','Ḋ':'D','Ḍ':'D','Ɗ':'D','Ḏ':'D','Dz':'D','Dž':'D','Đ':'D','Ƌ':'D','DZ':'DZ','DŽ':'DZ','É':'E','Ĕ':'E','Ě':'E','Ȩ':'E','Ḝ':'E','Ê':'E','Ế':'E','Ệ':'E','Ề':'E','Ể':'E','Ễ':'E','Ḙ':'E','Ë':'E','Ė':'E','Ẹ':'E','Ȅ':'E','È':'E','Ẻ':'E','Ȇ':'E','Ē':'E','Ḗ':'E','Ḕ':'E','Ę':'E','Ɇ':'E','Ẽ':'E','Ḛ':'E','Ꝫ':'ET','Ḟ':'F','Ƒ':'F','Ǵ':'G','Ğ':'G','Ǧ':'G','Ģ':'G','Ĝ':'G','Ġ':'G','Ɠ':'G','Ḡ':'G','Ǥ':'G','Ḫ':'H','Ȟ':'H','Ḩ':'H','Ĥ':'H','Ⱨ':'H','Ḧ':'H','Ḣ':'H','Ḥ':'H','Ħ':'H','Í':'I','Ĭ':'I','Ǐ':'I','Î':'I','Ï':'I','Ḯ':'I','İ':'I','Ị':'I','Ȉ':'I','Ì':'I','Ỉ':'I','Ȋ':'I','Ī':'I','Į':'I','Ɨ':'I','Ĩ':'I','Ḭ':'I','Ꝺ':'D','Ꝼ':'F','Ᵹ':'G','Ꞃ':'R','Ꞅ':'S','Ꞇ':'T','Ꝭ':'IS','Ĵ':'J','Ɉ':'J','Ḱ':'K','Ǩ':'K','Ķ':'K','Ⱪ':'K','Ꝃ':'K','Ḳ':'K','Ƙ':'K','Ḵ':'K','Ꝁ':'K','Ꝅ':'K','Ĺ':'L','Ƚ':'L','Ľ':'L','Ļ':'L','Ḽ':'L','Ḷ':'L','Ḹ':'L','Ⱡ':'L','Ꝉ':'L','Ḻ':'L','Ŀ':'L','Ɫ':'L','Lj':'L','Ł':'L','LJ':'LJ','Ḿ':'M','Ṁ':'M','Ṃ':'M','Ɱ':'M','Ń':'N','Ň':'N','Ņ':'N','Ṋ':'N','Ṅ':'N','Ṇ':'N','Ǹ':'N','Ɲ':'N','Ṉ':'N','Ƞ':'N','Nj':'N','Ñ':'N','NJ':'NJ','Ó':'O','Ŏ':'O','Ǒ':'O','Ô':'O','Ố':'O','Ộ':'O','Ồ':'O','Ổ':'O','Ỗ':'O','Ö':'O','Ȫ':'O','Ȯ':'O','Ȱ':'O','Ọ':'O','Ő':'O','Ȍ':'O','Ò':'O','Ỏ':'O','Ơ':'O','Ớ':'O','Ợ':'O','Ờ':'O','Ở':'O','Ỡ':'O','Ȏ':'O','Ꝋ':'O','Ꝍ':'O','Ō':'O','Ṓ':'O','Ṑ':'O','Ɵ':'O','Ǫ':'O','Ǭ':'O','Ø':'O','Ǿ':'O','Õ':'O','Ṍ':'O','Ṏ':'O','Ȭ':'O','Ƣ':'OI','Ꝏ':'OO','Ɛ':'E','Ɔ':'O','Ȣ':'OU','Ṕ':'P','Ṗ':'P','Ꝓ':'P','Ƥ':'P','Ꝕ':'P','Ᵽ':'P','Ꝑ':'P','Ꝙ':'Q','Ꝗ':'Q','Ŕ':'R','Ř':'R','Ŗ':'R','Ṙ':'R','Ṛ':'R','Ṝ':'R','Ȑ':'R','Ȓ':'R','Ṟ':'R','Ɍ':'R','Ɽ':'R','Ꜿ':'C','Ǝ':'E','Ś':'S','Ṥ':'S','Š':'S','Ṧ':'S','Ş':'S','Ŝ':'S','Ș':'S','Ṡ':'S','Ṣ':'S','Ṩ':'S','Ť':'T','Ţ':'T','Ṱ':'T','Ț':'T','Ⱦ':'T','Ṫ':'T','Ṭ':'T','Ƭ':'T','Ṯ':'T','Ʈ':'T','Ŧ':'T','Ɐ':'A','Ꞁ':'L','Ɯ':'M','Ʌ':'V','Ꜩ':'TZ','Ú':'U','Ŭ':'U','Ǔ':'U','Û':'U','Ṷ':'U','Ü':'U','Ǘ':'U','Ǚ':'U','Ǜ':'U','Ǖ':'U','Ṳ':'U','Ụ':'U','Ű':'U','Ȕ':'U','Ù':'U','Ủ':'U','Ư':'U','Ứ':'U','Ự':'U','Ừ':'U','Ử':'U','Ữ':'U','Ȗ':'U','Ū':'U','Ṻ':'U','Ų':'U','Ů':'U','Ũ':'U','Ṹ':'U','Ṵ':'U','Ꝟ':'V','Ṿ':'V','Ʋ':'V','Ṽ':'V','Ꝡ':'VY','Ẃ':'W','Ŵ':'W','Ẅ':'W','Ẇ':'W','Ẉ':'W','Ẁ':'W','Ⱳ':'W','Ẍ':'X','Ẋ':'X','Ý':'Y','Ŷ':'Y','Ÿ':'Y','Ẏ':'Y','Ỵ':'Y','Ỳ':'Y','Ƴ':'Y','Ỷ':'Y','Ỿ':'Y','Ȳ':'Y','Ɏ':'Y','Ỹ':'Y','Ź':'Z','Ž':'Z','Ẑ':'Z','Ⱬ':'Z','Ż':'Z','Ẓ':'Z','Ȥ':'Z','Ẕ':'Z','Ƶ':'Z','IJ':'IJ','Œ':'OE','ᴀ':'A','ᴁ':'AE','ʙ':'B','ᴃ':'B','ᴄ':'C','ᴅ':'D','ᴇ':'E','ꜰ':'F','ɢ':'G','ʛ':'G','ʜ':'H','ɪ':'I','ʁ':'R','ᴊ':'J','ᴋ':'K','ʟ':'L','ᴌ':'L','ᴍ':'M','ɴ':'N','ᴏ':'O','ɶ':'OE','ᴐ':'O','ᴕ':'OU','ᴘ':'P','ʀ':'R','ᴎ':'N','ᴙ':'R','ꜱ':'S','ᴛ':'T','ⱻ':'E','ᴚ':'R','ᴜ':'U','ᴠ':'V','ᴡ':'W','ʏ':'Y','ᴢ':'Z','á':'a','ă':'a','ắ':'a','ặ':'a','ằ':'a','ẳ':'a','ẵ':'a','ǎ':'a','â':'a','ấ':'a','ậ':'a','ầ':'a','ẩ':'a','ẫ':'a','ä':'a','ǟ':'a','ȧ':'a','ǡ':'a','ạ':'a','ȁ':'a','à':'a','ả':'a','ȃ':'a','ā':'a','ą':'a','ᶏ':'a','ẚ':'a','å':'a','ǻ':'a','ḁ':'a','ⱥ':'a','ã':'a','ꜳ':'aa','æ':'ae','ǽ':'ae','ǣ':'ae','ꜵ':'ao','ꜷ':'au','ꜹ':'av','ꜻ':'av','ꜽ':'ay','ḃ':'b','ḅ':'b','ɓ':'b','ḇ':'b','ᵬ':'b','ᶀ':'b','ƀ':'b','ƃ':'b','ɵ':'o','ć':'c','č':'c','ç':'c','ḉ':'c','ĉ':'c','ɕ':'c','ċ':'c','ƈ':'c','ȼ':'c','ď':'d','ḑ':'d','ḓ':'d','ȡ':'d','ḋ':'d','ḍ':'d','ɗ':'d','ᶑ':'d','ḏ':'d','ᵭ':'d','ᶁ':'d','đ':'d','ɖ':'d','ƌ':'d','ı':'i','ȷ':'j','ɟ':'j','ʄ':'j','dz':'dz','dž':'dz','é':'e','ĕ':'e','ě':'e','ȩ':'e','ḝ':'e','ê':'e','ế':'e','ệ':'e','ề':'e','ể':'e','ễ':'e','ḙ':'e','ë':'e','ė':'e','ẹ':'e','ȅ':'e','è':'e','ẻ':'e','ȇ':'e','ē':'e','ḗ':'e','ḕ':'e','ⱸ':'e','ę':'e','ᶒ':'e','ɇ':'e','ẽ':'e','ḛ':'e','ꝫ':'et','ḟ':'f','ƒ':'f','ᵮ':'f','ᶂ':'f','ǵ':'g','ğ':'g','ǧ':'g','ģ':'g','ĝ':'g','ġ':'g','ɠ':'g','ḡ':'g','ᶃ':'g','ǥ':'g','ḫ':'h','ȟ':'h','ḩ':'h','ĥ':'h','ⱨ':'h','ḧ':'h','ḣ':'h','ḥ':'h','ɦ':'h','ẖ':'h','ħ':'h','ƕ':'hv','í':'i','ĭ':'i','ǐ':'i','î':'i','ï':'i','ḯ':'i','ị':'i','ȉ':'i','ì':'i','ỉ':'i','ȋ':'i','ī':'i','į':'i','ᶖ':'i','ɨ':'i','ĩ':'i','ḭ':'i','ꝺ':'d','ꝼ':'f','ᵹ':'g','ꞃ':'r','ꞅ':'s','ꞇ':'t','ꝭ':'is','ǰ':'j','ĵ':'j','ʝ':'j','ɉ':'j','ḱ':'k','ǩ':'k','ķ':'k','ⱪ':'k','ꝃ':'k','ḳ':'k','ƙ':'k','ḵ':'k','ᶄ':'k','ꝁ':'k','ꝅ':'k','ĺ':'l','ƚ':'l','ɬ':'l','ľ':'l','ļ':'l','ḽ':'l','ȴ':'l','ḷ':'l','ḹ':'l','ⱡ':'l','ꝉ':'l','ḻ':'l','ŀ':'l','ɫ':'l','ᶅ':'l','ɭ':'l','ł':'l','lj':'lj','ſ':'s','ẜ':'s','ẛ':'s','ẝ':'s','ḿ':'m','ṁ':'m','ṃ':'m','ɱ':'m','ᵯ':'m','ᶆ':'m','ń':'n','ň':'n','ņ':'n','ṋ':'n','ȵ':'n','ṅ':'n','ṇ':'n','ǹ':'n','ɲ':'n','ṉ':'n','ƞ':'n','ᵰ':'n','ᶇ':'n','ɳ':'n','ñ':'n','nj':'nj','ó':'o','ŏ':'o','ǒ':'o','ô':'o','ố':'o','ộ':'o','ồ':'o','ổ':'o','ỗ':'o','ö':'o','ȫ':'o','ȯ':'o','ȱ':'o','ọ':'o','ő':'o','ȍ':'o','ò':'o','ỏ':'o','ơ':'o','ớ':'o','ợ':'o','ờ':'o','ở':'o','ỡ':'o','ȏ':'o','ꝋ':'o','ꝍ':'o','ⱺ':'o','ō':'o','ṓ':'o','ṑ':'o','ǫ':'o','ǭ':'o','ø':'o','ǿ':'o','õ':'o','ṍ':'o','ṏ':'o','ȭ':'o','ƣ':'oi','ꝏ':'oo','ɛ':'e','ᶓ':'e','ɔ':'o','ᶗ':'o','ȣ':'ou','ṕ':'p','ṗ':'p','ꝓ':'p','ƥ':'p','ᵱ':'p','ᶈ':'p','ꝕ':'p','ᵽ':'p','ꝑ':'p','ꝙ':'q','ʠ':'q','ɋ':'q','ꝗ':'q','ŕ':'r','ř':'r','ŗ':'r','ṙ':'r','ṛ':'r','ṝ':'r','ȑ':'r','ɾ':'r','ᵳ':'r','ȓ':'r','ṟ':'r','ɼ':'r','ᵲ':'r','ᶉ':'r','ɍ':'r','ɽ':'r','ↄ':'c','ꜿ':'c','ɘ':'e','ɿ':'r','ś':'s','ṥ':'s','š':'s','ṧ':'s','ş':'s','ŝ':'s','ș':'s','ṡ':'s','ṣ':'s','ṩ':'s','ʂ':'s','ᵴ':'s','ᶊ':'s','ȿ':'s','ɡ':'g','ᴑ':'o','ᴓ':'o','ᴝ':'u','ť':'t','ţ':'t','ṱ':'t','ț':'t','ȶ':'t','ẗ':'t','ⱦ':'t','ṫ':'t','ṭ':'t','ƭ':'t','ṯ':'t','ᵵ':'t','ƫ':'t','ʈ':'t','ŧ':'t','ᵺ':'th','ɐ':'a','ᴂ':'ae','ǝ':'e','ᵷ':'g','ɥ':'h','ʮ':'h','ʯ':'h','ᴉ':'i','ʞ':'k','ꞁ':'l','ɯ':'m','ɰ':'m','ᴔ':'oe','ɹ':'r','ɻ':'r','ɺ':'r','ⱹ':'r','ʇ':'t','ʌ':'v','ʍ':'w','ʎ':'y','ꜩ':'tz','ú':'u','ŭ':'u','ǔ':'u','û':'u','ṷ':'u','ü':'u','ǘ':'u','ǚ':'u','ǜ':'u','ǖ':'u','ṳ':'u','ụ':'u','ű':'u','ȕ':'u','ù':'u','ủ':'u','ư':'u','ứ':'u','ự':'u','ừ':'u','ử':'u','ữ':'u','ȗ':'u','ū':'u','ṻ':'u','ų':'u','ᶙ':'u','ů':'u','ũ':'u','ṹ':'u','ṵ':'u','ᵫ':'ue','ꝸ':'um','ⱴ':'v','ꝟ':'v','ṿ':'v','ʋ':'v','ᶌ':'v','ⱱ':'v','ṽ':'v','ꝡ':'vy','ẃ':'w','ŵ':'w','ẅ':'w','ẇ':'w','ẉ':'w','ẁ':'w','ⱳ':'w','ẘ':'w','ẍ':'x','ẋ':'x','ᶍ':'x','ý':'y','ŷ':'y','ÿ':'y','ẏ':'y','ỵ':'y','ỳ':'y','ƴ':'y','ỷ':'y','ỿ':'y','ȳ':'y','ẙ':'y','ɏ':'y','ỹ':'y','ź':'z','ž':'z','ẑ':'z','ʑ':'z','ⱬ':'z','ż':'z','ẓ':'z','ȥ':'z','ẕ':'z','ᵶ':'z','ᶎ':'z','ʐ':'z','ƶ':'z','ɀ':'z','ff':'ff','ffi':'ffi','ffl':'ffl','fi':'fi','fl':'fl','ij':'ij','œ':'oe','st':'st','ₐ':'a','ₑ':'e','ᵢ':'i','ⱼ':'j','ₒ':'o','ᵣ':'r','ᵤ':'u','ᵥ':'v','ₓ':'x','Ё':'YO','Й':'I','Ц':'TS','У':'U','К':'K','Е':'E','Н':'N','Г':'G','Ш':'SH','Щ':'SCH','З':'Z','Х':'H','Ъ':'\\'','ё':'yo','й':'i','ц':'ts','у':'u','к':'k','е':'e','н':'n','г':'g','ш':'sh','щ':'sch','з':'z','х':'h','ъ':'\\'','Ф':'F','Ы':'I','В':'V','А':'a','П':'P','Р':'R','О':'O','Л':'L','Д':'D','Ж':'ZH','Э':'E','ф':'f','ы':'i','в':'v','а':'a','п':'p','р':'r','о':'o','л':'l','д':'d','ж':'zh','э':'e','Я':'Ya','Ч':'CH','С':'S','М':'M','И':'I','Т':'T','Ь':'\\'','Б':'B','Ю':'YU','я':'ya','ч':'ch','с':'s','м':'m','и':'i','т':'t','ь':'\\'','б':'b','ю':'yu'},exports.transliterate=function(o){return o.replace(/[^A-Za-z0-9\\[\\] ]/g,function(o){return exports.transliterationPairs[o]||o})},exports.transliterateToSafeASCII=function(o){return o.replace(/[^\\x00-\\x7F]/g,function(o){return exports.transliterationPairs[o]||''})}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/utils/utils.js":{"text":"!function(){'use strict';var t=require('$:/core/modules/utils/base64-utf8/base64-utf8.module.js');exports.log=function(e,t){console.log($tw.node?exports.terminalColour(t)+e+exports.terminalColour():e)},exports.terminalColour=function(e){if(!$tw.browser&&$tw.node&&process.stdout.isTTY){if(!e)return'\u001b[0m';e=exports.terminalColourLookup[e];if(e)return'\u001b['+e+'m'}return''},exports.terminalColourLookup={black:'0;30',red:'0;31',green:'0;32','brown/orange':'0;33',blue:'0;34',purple:'0;35',cyan:'0;36','light gray':'0;37'},exports.warning=function(e){exports.log(e,'brown/orange')},exports.logTable=function(e){console.table?console.table(e):$tw.utils.each(e,function(e,t){console.log(t+': '+e)})},exports.getInt=function(e,t){e=parseInt(e,10);return isNaN(e)?t:e},exports.replaceString=function(e,t,r){return e.replace(t,function(){return r})},exports.repeat=function(e,t){for(var r='',n=0;n<t;n++)r+=e;return r},exports.trim=function(e){return'string'==typeof e?e.replace(/^\\s\\s*/,'').replace(/\\s\\s*$/,''):e},exports.trimPrefix=function(e,t){if('string'!=typeof e||'string'!=typeof t)return e;if(''===t)return e.replace(/^\\s\\s*/,'');t=t.replace(/[\\\\^$*+?.()|[\\]{}]/g,'\\\\$&');t=new RegExp('^('+t+')+');return e.replace(t,'')},exports.trimSuffix=function(e,t){if('string'!=typeof e||'string'!=typeof t)return e;if(''===t)return e.replace(/\\s\\s*$/,'');t=t.replace(/[\\\\^$*+?.()|[\\]{}]/g,'\\\\$&');t=new RegExp('('+t+')+$');return e.replace(t,'')},exports.toSentenceCase=function(e){return(e||'').replace(/^\\S/,function(e){return e.toUpperCase()})},exports.toTitleCase=function(e){return(e||'').replace(/(^|\\s)\\S/g,function(e){return e.toUpperCase()})},exports.findPrecedingLineBreak=function(e,t){t=e.lastIndexOf('\\n',t-1);return-1===t?t=0:(t++,'\\r'===e.charAt(t)&&t++),t},exports.findFollowingLineBreak=function(e,t){t=e.indexOf('\\n',t);return-1===t?t=e.length:'\\r'===e.charAt(t)&&t++,t},exports.count=function(e){return Object.keys(e||{}).length},exports.hopArray=function(e,t){for(var r=0;r<t.length;r++)if($tw.utils.hop(e,t[r]))return!0;return!1},exports.removeArrayEntries=function(e,t){var r,n;if($tw.utils.isArray(t))for(r=0;r<t.length;r++)-1!==(n=e.indexOf(t[r]))&&e.splice(n,1);else-1!==(n=e.indexOf(t))&&e.splice(n,1)},exports.checkDependencies=function(r,e){var n=!1;return $tw.utils.each(e,function(e,t){$tw.utils.hop(r,t)&&(n=!0)}),n},exports.extend=function(r){return $tw.utils.each(Array.prototype.slice.call(arguments,1),function(e){if(e)for(var t in e)r[t]=e[t]}),r},exports.deepCopy=function(e){var t,r;if($tw.utils.isArray(e))t=e.slice(0);else if('object'==typeof e)for(r in t={},e)void 0!==e[r]&&(t[r]=$tw.utils.deepCopy(e[r]));else t=e;return t},exports.extendDeepCopy=function(e,t){var r,n=$tw.utils.deepCopy(e);for(r in t)void 0!==t[r]&&(n[r]=$tw.utils.deepCopy(t[r]));return n},exports.deepFreeze=function e(t){var r,n;if(t)for(n in Object.freeze(t),t)r=t[n],$tw.utils.hop(t,n)&&'object'==typeof r&&!Object.isFrozen(r)&&e(r)},exports.slowInSlowOut=function(e){return 1-(Math.cos(e*Math.PI)+1)/2},exports.formatDateString=function(r,e){var t='',n=e,o=[[/^0hh12/,function(){return $tw.utils.pad($tw.utils.getHours12(r))}],[/^wYYYY/,function(){return $tw.utils.pad($tw.utils.getYearForWeekNo(r),4)}],[/^hh12/,function(){return $tw.utils.getHours12(r)}],[/^DDth/,function(){return r.getDate()+$tw.utils.getDaySuffix(r)}],[/^YYYY/,function(){return $tw.utils.pad(r.getFullYear(),4)}],[/^aYYYY/,function(){return $tw.utils.pad(Math.abs(r.getFullYear()),4)}],[/^\\{era:([^,\\|}]*)\\|([^}\\|]*)\\|([^}]*)\\}/,function(e){var t=r.getFullYear();return 0===t?e[2]:t<0?e[1]:e[3]}],[/^0hh/,function(){return $tw.utils.pad(r.getHours())}],[/^0mm/,function(){return $tw.utils.pad(r.getMinutes())}],[/^0ss/,function(){return $tw.utils.pad(r.getSeconds())}],[/^0XXX/,function(){return $tw.utils.pad(r.getMilliseconds(),3)}],[/^0DD/,function(){return $tw.utils.pad(r.getDate())}],[/^0MM/,function(){return $tw.utils.pad(r.getMonth()+1)}],[/^0WW/,function(){return $tw.utils.pad($tw.utils.getWeek(r))}],[/^ddd/,function(){return $tw.language.getString('Date/Short/Day/'+r.getDay())}],[/^mmm/,function(){return $tw.language.getString('Date/Short/Month/'+(r.getMonth()+1))}],[/^DDD/,function(){return $tw.language.getString('Date/Long/Day/'+r.getDay())}],[/^MMM/,function(){return $tw.language.getString('Date/Long/Month/'+(r.getMonth()+1))}],[/^TZD/,function(){var e=r.getTimezoneOffset(),t=Math.abs(e);return(e<0?'+':'-')+$tw.utils.pad(Math.floor(t/60))+':'+$tw.utils.pad(t%60)}],[/^wYY/,function(){return $tw.utils.pad($tw.utils.getYearForWeekNo(r)-2e3)}],[/^[ap]m/,function(){return $tw.utils.getAmPm(r).toLowerCase()}],[/^hh/,function(){return r.getHours()}],[/^mm/,function(){return r.getMinutes()}],[/^ss/,function(){return r.getSeconds()}],[/^XXX/,function(){return r.getMilliseconds()}],[/^[AP]M/,function(){return $tw.utils.getAmPm(r).toUpperCase()}],[/^DD/,function(){return r.getDate()}],[/^MM/,function(){return r.getMonth()+1}],[/^WW/,function(){return $tw.utils.getWeek(r)}],[/^YY/,function(){return $tw.utils.pad(r.getFullYear()-2e3)}]];if(0==n.indexOf('[UTC]')){if('[UTC]YYYY0MM0DD0hh0mm0ssXXX'==n)return $tw.utils.stringifyDate(new Date);e=r.getTimezoneOffset();r=new Date(r.getTime()+60*e*1e3),n=n.substr(5)}for(;n.length;){var i='';$tw.utils.each(o,function(e){var t=e[0].exec(n);if(t)return i=e[1].call(null,t),n=n.substr(t[0].length),!1}),i?t+=i:(t+=n.charAt(0),n=n.substr(1))}return t=t.replace(/\\\\(.)/g,'$1')},exports.getAmPm=function(e){return $tw.language.getString('Date/Period/'+(12<=e.getHours()?'pm':'am'))},exports.getDaySuffix=function(e){return $tw.language.getString('Date/DaySuffix/'+e.getDate())},exports.getWeek=function(e){var t=new Date(e.getTime()),e=t.getDay();0===e&&(e=7),t.setTime(t.getTime()+864e5*(4-e));e=new Date(t.getFullYear(),0,1),e=Math.floor((t.getTime()-e.getTime())/864e5);return Math.floor(e/7)+1},exports.getYearForWeekNo=function(e){var t=new Date(e.getTime()),e=t.getDay();return 0===e&&(e=7),t.setTime(t.getTime()+864e5*(4-e)),t.getFullYear()},exports.getHours12=function(e){e=e.getHours();return 12<e?e-12:0<e?e:12},exports.getRelativeDate=function(e){var t=!1;e<0&&(e*=-1,t=!0);for(var r=[{name:'Years',duration:31536e6},{name:'Months',duration:2628e6},{name:'Days',duration:864e5},{name:'Hours',duration:36e5},{name:'Minutes',duration:6e4},{name:'Seconds',duration:1e3}],n=0;n<r.length;n++){var o=Math.floor(e/r[n].duration);if(2<=o)return{delta:e,description:$tw.language.getString('RelativeDate/'+(t?'Future':'Past')+'/'+r[n].name,{variables:{period:o.toString()}}),updatePeriod:r[n].duration}}return{delta:e,description:$tw.language.getString('RelativeDate/'+(t?'Future':'Past')+'/Second',{variables:{period:'1'}}),updatePeriod:1e3}},exports.htmlEncode=function(e){return e?e.toString().replace(/&/gm,'&').replace(/</gm,'<').replace(/>/gm,'>').replace(/\\\"/gm,'"'):''},exports.entityDecode=function(e){var t,r=String.fromCodePoint||String.fromCharCode,n=e.substr(1,e.length-2);return'#'===n.charAt(0)?(t='x'===n.charAt(1)||'X'===n.charAt(1)?parseInt(n.substr(2),16):parseInt(n.substr(1),10),isNaN(t)?e:r(t)):(t=$tw.config.htmlEntities[n])?r(t):e},exports.unescapeLineBreaks=function(e){return e.replace(/\\\\n/gm,'\\n').replace(/\\\\b/gm,' ').replace(/\\\\s/gm,'\\\\').replace(/\\r/gm,'')},exports.escape=function(e){e=e.charCodeAt(0);return e<=255?'\\\\x'+$tw.utils.pad(e.toString(16).toUpperCase()):'\\\\u'+$tw.utils.pad(e.toString(16).toUpperCase(),4)},exports.stringify=function(e,t){t=t?/[\\x00-\\x1f]/g:/[\\x00-\\x1f\\x80-\\uFFFF]/g;return(e||'').replace(/\\\\/g,'\\\\\\\\').replace(/\"/g,'\\\\\"').replace(/'/g,'\\\\\\'').replace(/\\r/g,'\\\\r').replace(/\\n/g,'\\\\n').replace(t,exports.escape)},exports.jsonStringify=function(e,t){t=t?/[\\x00-\\x1f]/g:/[\\x00-\\x1f\\x80-\\uFFFF]/g;return(e||'').replace(/\\\\/g,'\\\\\\\\').replace(/\"/g,'\\\\\"').replace(/\\r/g,'\\\\r').replace(/\\n/g,'\\\\n').replace(/\\x08/g,'\\\\b').replace(/\\x0c/g,'\\\\f').replace(/\\t/g,'\\\\t').replace(t,function(e){return'\\\\u'+$tw.utils.pad(e.charCodeAt(0).toString(16).toUpperCase(),4)})},exports.escapeRegExp=function(e){return e.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g,'\\\\$&')},exports.isLinkExternal=function(e){return/^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i.test(e)},exports.nextTick=function(e){'undefined'==typeof process?window.setTimeout(e,4):process.nextTick(e)},exports.unHyphenateCss=function(e){return e.replace(/-([a-z])/gi,function(e,t){return t.toUpperCase()})},exports.hyphenateCss=function(e){return e.replace(/([A-Z])/g,function(e,t){return'-'+t.toLowerCase()})},exports.parseTextReference=function(e){var t=/(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/gm,r=t.exec(e),n={};return r&&t.lastIndex===e.length?(r[1]&&(n.title=r[1]),r[2]&&(n.field=r[2]),r[3]&&(n.title=r[3]),r[4]&&(n.index=r[4]),r[5]&&(n.title=r[5])):n.title=e,n},exports.isValidFieldName=function(e){if(!e||'string'!=typeof e)return!1;e=e.toLowerCase().trim();return/^[a-z0-9\\-\\._]+$/gm.test(e)},exports.extractVersionInfo=function(){if($tw.packageInfo)return $tw.packageInfo.version;for(var e=document.getElementsByTagName('meta'),t=0;t<e.length;t++){var r=e[t];if('tiddlywiki-version'===r.name)return r.content}return null},exports.getAnimationDuration=function(){return parseInt($tw.wiki.getTiddlerText('$:/config/AnimationDuration','400'),10)||0},exports.hashString=function(e){return e.split('').reduce(function(e,t){return(e=(e<<5)-e+t.charCodeAt(0))&e},0)},exports.base64Decode=function(e){return t.base64.decode.call(t,e)},exports.base64Encode=function(e){return t.base64.encode.call(t,e)},exports.makeTiddlerDictionary=function(e){var t,r=[];for(t in e)r.push(t+': '+e[t]);return r.join('\\n')},exports.timer=function(e){var t;return t=$tw.node?1e3*(t=process.hrtime())[0]+t[1]/1e6:(window.performance?performance:Date).now(),void 0!==e&&(t-=e),t},exports.makeDataUri=function(e,t,r){t=t||'text/vnd.tiddlywiki';var n='base64'===($tw.config.contentTypeInfo[t]||$tw.config.contentTypeInfo['text/plain']).encoding,o=[];return r?o.push(r):(o.push('data:'),o.push(t),o.push(n?';base64':''),o.push(','),o.push(n?e:encodeURIComponent(e))),o.join('')},exports.tagToCssSelector=function(e){return'tc-tagged-'+encodeURIComponent(e).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/gm,function(e){return'\\\\'+e})},exports.sign=Math.sign||function(e){return 0===(e=+e)||isNaN(e)?e:0<e?1:-1},exports.strEndsWith=function(e,t,r){if(e.endsWith)return e.endsWith(t,r);('number'!=typeof r||!isFinite(r)||Math.floor(r)!==r||r>e.length)&&(r=e.length),r-=t.length;t=e.indexOf(t,r);return-1!==t&&t===r},exports.getSystemInfo=function(e,t,r){function n(e,t){o.push(e+': '+t)}var o=[];return $tw.browser&&(n('User Agent',navigator.userAgent),n('Online Status',window.navigator.onLine)),$tw.node&&n('Node Version',process.version),o.join('\\n')},exports.parseNumber=function(e){return parseFloat(e)||0},exports.parseInt=function(e){return parseInt(e,10)||0},exports.stringifyNumber=function(e){return e+''},exports.makeCompareFunction=function(e,t){function r(e,t){return t<e?n:e<t?o:0}var n=(t=t||{}).invert?-1:1,o=t.invert?1:-1,i={number:function(e,t){return r($tw.utils.parseNumber(e),$tw.utils.parseNumber(t))},integer:function(e,t){return r($tw.utils.parseInt(e),$tw.utils.parseInt(t))},string:function(e,t){return r(''+e,''+t)},date:function(e,t){e=$tw.utils.parseDate(e),t=$tw.utils.parseDate(t);return isFinite(e)||(e=new Date(0)),isFinite(t)||(t=new Date(0)),r(e,t)},version:function(e,t){return $tw.utils.compareVersions(e,t)}};return i[e]||i[t.defaultType]||i.number}}();","type":"application/javascript","module-type":"utils"},"$:/core/modules/widgets/action-confirm.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute(),this.parentDomNode=t,this.renderChildren(t,e)},t.prototype.execute=function(){this.message=this.getAttribute('$message',$tw.language.getString('ConfirmAction')),this.prompt='no'!=this.getAttribute('$prompt','yes'),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.$message||e.$prompt?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,e){var i=!0,r=!0;return this.prompt&&(i=confirm(this.message)),i&&(r=this.invokeActions(t,e)),r},t.prototype.allowActionPropagation=function(){return!1},exports['action-confirm']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-createtiddler.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionBaseTitle=this.getAttribute('$basetitle'),this.hasBase=!!this.actionBaseTitle,this.actionSaveTitle=this.getAttribute('$savetitle'),this.actionSaveDraftTitle=this.getAttribute('$savedrafttitle'),this.actionTimestamp='yes'===this.getAttribute('$timestamp','yes'),this.actionTemplate=this.getAttribute('$template'),this.useTemplate=!!this.actionTemplate,this.actionOverwrite=this.getAttribute('$overwrite','no')},t.prototype.refresh=function(t){var e=this.computeAttributes();return 0<$tw.utils.count(e)?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,e){var i,s,a=this.wiki.getTiddlerText('$:/language/DefaultNewTiddlerTitle'),r={};$tw.utils.each(this.attributes,function(t,e){'$'!==e.charAt(0)&&(r[e]=t)}),this.actionTimestamp&&(i=this.wiki.getCreationFields(),s=this.wiki.getModificationFields()),this.hasBase&&'no'===this.actionOverwrite?a=this.wiki.generateNewTitle(this.actionBaseTitle):this.hasBase&&'yes'===this.actionOverwrite&&(a=this.actionBaseTitle),!this.hasBase&&this.useTemplate?a=this.wiki.generateNewTitle(this.actionTemplate):this.hasBase||this.useTemplate||(a=this.wiki.generateNewTitle(a));var h=this.wiki.getTiddler(this.actionTemplate)||{};this.wiki.addTiddler(new $tw.Tiddler(h.fields,i,r,s,{title:a}));return this.actionSaveTitle&&this.wiki.setTextReference(this.actionSaveTitle,a,this.getVariable('currentTiddler')),this.actionSaveDraftTitle&&this.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(a),this.getVariable('currentTiddler')),!0},exports['action-createtiddler']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-deletefield.js":{"text":"!function(){'use strict';function t(t,i){this.initialise(t,i)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new i).render=function(t,i){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionTiddler=this.getAttribute('$tiddler',this.getVariable('currentTiddler')),this.actionField=this.getAttribute('$field')},t.prototype.refresh=function(t){return this.computeAttributes().$tiddler?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,i){var e=this.wiki.getTiddler(this.actionTiddler),r={},d=!1;return this.actionField&&e&&(r[this.actionField]=void 0,this.actionField in e.fields&&(d=!0)),e&&($tw.utils.each(this.attributes,function(t,i){'$'!==i.charAt(0)&&'title'!==i&&(r[i]=void 0,d=!0)}),d&&this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),e,r,this.wiki.getModificationFields()))),!0},exports['action-deletefield']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-deletetiddler.js":{"text":"!function(){'use strict';function t(t,i){this.initialise(t,i)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new i).render=function(t,i){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionFilter=this.getAttribute('$filter'),this.actionTiddler=this.getAttribute('$tiddler')},t.prototype.refresh=function(t){var i=this.computeAttributes();return i.$filter||i.$tiddler?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,i){var e=[];this.actionFilter&&(e=this.wiki.filterTiddlers(this.actionFilter,this)),this.actionTiddler&&e.push(this.actionTiddler);for(var r=0;r<e.length;r++)this.wiki.deleteTiddler(e[r]);return!0},exports['action-deletetiddler']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-listops.js":{"text":"!function(){'use strict';function t(t,i){this.initialise(t,i)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new i).render=function(t,i){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.target=this.getAttribute('$tiddler',this.getVariable('currentTiddler')),this.filter=this.getAttribute('$filter'),this.subfilter=this.getAttribute('$subfilter'),this.listField=this.getAttribute('$field','list'),this.listIndex=this.getAttribute('$index'),this.filtertags=this.getAttribute('$tags')},t.prototype.refresh=function(t){var i=this.computeAttributes();return i.$tiddler||i.$filter||i.$subfilter||i.$field||i.$index||i.$tags?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,i){var s,e,r=this.listField,l='!!',h=this.listField;return this.listIndex&&(r=void 0,e=this.listIndex,l='##',h=this.listIndex),this.filter&&this.wiki.setText(this.target,r,e,$tw.utils.stringifyList(this.wiki.filterTiddlers(this.filter,this))),this.subfilter&&(s='[list['+this.target+l+h+']] '+this.subfilter,this.wiki.setText(this.target,r,e,$tw.utils.stringifyList(this.wiki.filterTiddlers(s,this)))),this.filtertags&&(s=(e=this.wiki.getTiddler(this.target))?(e.fields.tags||[]).slice(0):[],e='[list['+this.target+'!!tags]] '+this.filtertags,e=this.wiki.filterTiddlers(e,this),$tw.utils.stringifyList(s.sort())!==$tw.utils.stringifyList(e.sort())&&this.wiki.setText(this.target,'tags',void 0,$tw.utils.stringifyList(e))),!0},exports['action-listops']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-log.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.message=this.getAttribute('$$message','debug'),this.logAll='yes'===this.getAttribute('$$all','no'),this.filter=this.getAttribute('$$filter')},t.prototype.refresh=function(t){return this.refreshSelf(),!0},t.prototype.invokeAction=function(t,e){return this.log(),!0},t.prototype.log=function(){var t,e,i={},s={};for(e in $tw.utils.each(this.attributes,function(t,e){'$$'!==e.substring(0,2)&&(i[e]=t)}),this.variables)s[e]=this.getVariable(e,{defaultValue:''});this.filter&&(t=this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(s)),$tw.utils.each(t,function(t){i[t]=s[t]})),t=$tw.utils.count(i),console.group(this.message),0<t&&$tw.utils.logTable(i),!this.logAll&&t||(console.groupCollapsed('All variables'),$tw.utils.logTable(s),console.groupEnd()),console.groupEnd()},exports['action-log']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-navigate.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionTo=this.getAttribute('$to'),this.actionScroll=this.getAttribute('$scroll')},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.$to||e.$scroll?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,e){e=e||{};var i=t&&t.getBoundingClientRect&&t.getBoundingClientRect(),e=e.metaKey||e.ctrlKey||1===e.button;return'yes'===this.actionScroll?e=!1:'no'===this.actionScroll&&(e=!0),this.dispatchEvent({type:'tm-navigate',navigateTo:void 0===this.actionTo?this.getVariable('currentTiddler'):this.actionTo,navigateFromTitle:this.getVariable('storyTiddler'),navigateFromNode:t,navigateFromClientRect:i&&{top:i.top,left:i.left,width:i.width,right:i.right,bottom:i.bottom,height:i.height},navigateSuppressNavigation:e}),!0},exports['action-navigate']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-popup.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionState=this.getAttribute('$state'),this.actionCoords=this.getAttribute('$coords')},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.$state||e.$coords?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,e){var i=/^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/.exec(this.actionCoords||'');return i?$tw.popup.triggerPopup({domNode:null,domNodeRect:{left:parseFloat(i[1]),top:parseFloat(i[2]),width:parseFloat(i[3]),height:parseFloat(i[4])},title:this.actionState,wiki:this.wiki}):$tw.popup.cancel(0),!0},exports['action-popup']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-sendmessage.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionMessage=this.getAttribute('$message'),this.actionParam=this.getAttribute('$param'),this.actionName=this.getAttribute('$name'),this.actionValue=this.getAttribute('$value','')},t.prototype.refresh=function(t){var e=this.computeAttributes();return Object.keys(e).length?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,e){var i=this.actionParam,s=Object.create(null);return $tw.utils.each(this.attributes,function(t,e){'$'!==e.charAt(0)&&(s[e]=t,0)}),this.actionName&&(s[this.actionName]=this.actionValue),this.dispatchEvent({type:this.actionMessage,param:i,paramObject:s,tiddlerTitle:this.getVariable('currentTiddler'),navigateFromTitle:this.getVariable('storyTiddler'),event:e}),!0},exports['action-sendmessage']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/action-setfield.js":{"text":"!function(){'use strict';function t(t,i){this.initialise(t,i)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new i).render=function(t,i){this.computeAttributes(),this.execute()},t.prototype.execute=function(){this.actionTiddler=this.getAttribute('$tiddler',this.getVariable('currentTiddler')),this.actionField=this.getAttribute('$field'),this.actionIndex=this.getAttribute('$index'),this.actionValue=this.getAttribute('$value'),this.actionTimestamp='yes'===this.getAttribute('$timestamp','yes')},t.prototype.refresh=function(t){var i=this.computeAttributes();return i.$tiddler||i.$field||i.$index||i.$value?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.invokeAction=function(t,i){var e=this,s={};return s.suppressTimestamp=!this.actionTimestamp,'string'!=typeof this.actionField&&'string'!=typeof this.actionIndex&&'string'!=typeof this.actionValue||this.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,s),$tw.utils.each(this.attributes,function(t,i){'$'!==i.charAt(0)&&e.wiki.setText(e.actionTiddler,i,void 0,t,s)}),!0},exports['action-setfield']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/browse.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var i=this;this.parentDomNode=t,this.computeAttributes(),this.execute();var s=this.document.createElement('input');s.setAttribute('type','file'),this.browseMultiple&&s.setAttribute('multiple','multiple'),this.tooltip&&s.setAttribute('title',this.tooltip),this.nwsaveas&&s.setAttribute('nwsaveas',this.nwsaveas),this.accept&&s.setAttribute('accept',this.accept),this.webkitdirectory&&s.setAttribute('webkitdirectory',this.webkitdirectory),this.nwdirectory&&s.setAttribute('nwdirectory',this.nwdirectory),s.addEventListener('change',function(t){return i.message?i.dispatchEvent({type:i.message,param:i.param,files:t.target.files}):i.wiki.readFiles(t.target.files,{callback:function(t){i.dispatchEvent({type:'tm-import-tiddlers',param:JSON.stringify(t)})},deserializer:i.deserializer}),!1},!1),t.insertBefore(s,e),this.renderChildren(s,null),this.domNodes.push(s)},t.prototype.execute=function(){this.browseMultiple=this.getAttribute('multiple'),this.deserializer=this.getAttribute('deserializer'),this.message=this.getAttribute('message'),this.param=this.getAttribute('param'),this.tooltip=this.getAttribute('tooltip'),this.nwsaveas=this.getAttribute('nwsaveas'),this.accept=this.getAttribute('accept'),this.webkitdirectory=this.getAttribute('webkitdirectory'),this.nwdirectory=this.getAttribute('nwdirectory')},t.prototype.refresh=function(t){return!1},exports.browse=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/button.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var i,s=this,o='button';this.parentDomNode=t,this.computeAttributes(),this.execute(),this.buttonTag&&-1===$tw.config.htmlUnsafeElements.indexOf(this.buttonTag)&&(o=this.buttonTag),i=this.document.createElement(o),this.domNode=i;var h=this.class.split(' ')||[],o=(this.popup||this.popupTitle)&&this.isPoppedUp();this.selectedClass&&((this.set||this.setTitle)&&this.setTo&&this.isSelected()&&$tw.utils.pushTop(h,this.selectedClass.split(' ')),o&&$tw.utils.pushTop(h,this.selectedClass.split(' '))),o&&$tw.utils.pushTop(h,'tc-popup-handle'),i.className=h.join(' '),this.style&&i.setAttribute('style',this.style),this.tooltip&&i.setAttribute('title',this.tooltip),this['aria-label']&&i.setAttribute('aria-label',this['aria-label']),this.tabIndex&&i.setAttribute('tabindex',this.tabIndex),'yes'===this.isDisabled&&i.setAttribute('disabled',!0),i.addEventListener('click',function(t){var e,i=!1;return s.invokeActions(s,t)&&(i=!0),s.to&&(s.navigateTo(t),i=!0),s.message&&(s.dispatchMessage(t),i=!0),(s.popup||s.popupTitle)&&(s.triggerPopup(t),i=!0),(s.set||s.setTitle)&&(s.setTiddler(),i=!0),s.actions&&(e=$tw.keyboardManager.getEventModifierKeyDescriptor(t),s.invokeActionString(s.actions,s,t,{modifier:e})),i&&(t.preventDefault(),t.stopPropagation()),i},!1),(this.dragTiddler||this.dragFilter)&&$tw.utils.makeDraggable({domNode:i,dragTiddlerFn:function(){return s.dragTiddler},dragFilterFn:function(){return s.dragFilter},widget:this}),t.insertBefore(i,e),this.renderChildren(i,null),this.domNodes.push(i)},t.prototype.allowActionPropagation=function(){return!1},t.prototype.getBoundingClientRect=function(){return this.domNodes[0].getBoundingClientRect()},t.prototype.isSelected=function(){return this.setTitle?(this.setField?this.wiki.getTiddler(this.setTitle).getFieldString(this.setField)===this.setTo:this.setIndex?this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex)===this.setTo:this.wiki.getTiddlerText(this.setTitle))||this.defaultSetValue||this.getVariable('currentTiddler'):this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable('currentTiddler'))===this.setTo},t.prototype.isPoppedUp=function(){var t=this.popupTitle?this.wiki.getTiddler(this.popupTitle):this.wiki.getTiddler(this.popup);return!(!t||!t.fields.text)&&$tw.popup.readPopupState(t.fields.text)},t.prototype.navigateTo=function(t){var e=this.getBoundingClientRect();this.dispatchEvent({type:'tm-navigate',navigateTo:this.to,navigateFromTitle:this.getVariable('storyTiddler'),navigateFromNode:this,navigateFromClientRect:{top:e.top,left:e.left,width:e.width,right:e.right,bottom:e.bottom,height:e.height},navigateSuppressNavigation:t.metaKey||t.ctrlKey||1===t.button,event:t})},t.prototype.dispatchMessage=function(t){this.dispatchEvent({type:this.message,param:this.param,tiddlerTitle:this.getVariable('currentTiddler'),event:t})},t.prototype.triggerPopup=function(t){this.popupTitle?$tw.popup.triggerPopup({domNode:this.domNodes[0],title:this.popupTitle,wiki:this.wiki,noStateReference:!0}):$tw.popup.triggerPopup({domNode:this.domNodes[0],title:this.popup,wiki:this.wiki})},t.prototype.setTiddler=function(){this.setTitle?this.setField?this.wiki.setText(this.setTitle,this.setField,void 0,this.setTo):this.setIndex?this.wiki.setText(this.setTitle,void 0,this.setIndex,this.setTo):this.wiki.setText(this.setTitle,'text',void 0,this.setTo):this.wiki.setTextReference(this.set,this.setTo,this.getVariable('currentTiddler'))},t.prototype.execute=function(){this.actions=this.getAttribute('actions'),this.to=this.getAttribute('to'),this.message=this.getAttribute('message'),this.param=this.getAttribute('param'),this.set=this.getAttribute('set'),this.setTo=this.getAttribute('setTo'),this.popup=this.getAttribute('popup'),this.hover=this.getAttribute('hover'),this['aria-label']=this.getAttribute('aria-label'),this.tooltip=this.getAttribute('tooltip'),this.style=this.getAttribute('style'),this.class=this.getAttribute('class',''),this.selectedClass=this.getAttribute('selectedClass'),this.defaultSetValue=this.getAttribute('default',''),this.buttonTag=this.getAttribute('tag'),this.dragTiddler=this.getAttribute('dragTiddler'),this.dragFilter=this.getAttribute('dragFilter'),this.setTitle=this.getAttribute('setTitle'),this.setField=this.getAttribute('setField'),this.setIndex=this.getAttribute('setIndex'),this.popupTitle=this.getAttribute('popupTitle'),this.tabIndex=this.getAttribute('tabindex'),this.isDisabled=this.getAttribute('disabled','no'),this.makeChildWidgets()},t.prototype.updateDomNodeClasses=function(){var t,e=this.domNode.className.split(' '),i=this.class.split(' ');this.class=this.getAttribute('class',''),t=this.class.split(' '),$tw.utils.each(i,function(t){t=e.indexOf(t);-1!==t&&e.splice(t,1)}),$tw.utils.pushTop(e,t),this.domNode.className=e.join(' ')},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.actions||e.to||e.message||e.param||e.set||e.setTo||e.popup||e.hover||e.selectedClass||e.style||e.dragFilter||e.dragTiddler||this.set&&t[this.set]||this.popup&&t[this.popup]||this.popupTitle&&t[this.popupTitle]||e.setTitle||e.setField||e.setIndex||e.popupTitle||e.disabled?(this.refreshSelf(),!0):(e.class&&this.updateDomNodeClasses(),this.refreshChildren(t))},exports.button=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/checkbox.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute(),this.labelDomNode=this.document.createElement('label'),this.labelDomNode.setAttribute('class',this.checkboxClass),this.inputDomNode=this.document.createElement('input'),this.inputDomNode.setAttribute('type','checkbox'),this.getValue()&&this.inputDomNode.setAttribute('checked','true'),'yes'===this.isDisabled&&this.inputDomNode.setAttribute('disabled',!0),this.labelDomNode.appendChild(this.inputDomNode),this.spanDomNode=this.document.createElement('span'),this.labelDomNode.appendChild(this.spanDomNode),$tw.utils.addEventListeners(this.inputDomNode,[{name:'change',handlerObject:this,handlerMethod:'handleChangeEvent'}]),e.insertBefore(this.labelDomNode,t),this.renderChildren(this.spanDomNode,null),this.domNodes.push(this.labelDomNode)},e.prototype.getValue=function(){var e,t=this.wiki.getTiddler(this.checkboxTitle);if(t){if(this.checkboxTag)return this.checkboxInvertTag?!t.hasTag(this.checkboxTag):t.hasTag(this.checkboxTag);if(this.checkboxField){if((e=$tw.utils.hop(t.fields,this.checkboxField)?t.fields[this.checkboxField]||'':this.checkboxDefault||'')===this.checkboxChecked)return!0;if(e===this.checkboxUnchecked)return!1}if(this.checkboxIndex){if((e=this.wiki.extractTiddlerDataItem(t,this.checkboxIndex,this.checkboxDefault||''))===this.checkboxChecked)return!0;if(e===this.checkboxUnchecked)return!1}}else{if(this.checkboxTag)return!1;if(this.checkboxField){if(this.checkboxDefault===this.checkboxChecked)return!0;if(this.checkboxDefault===this.checkboxUnchecked)return!1}}return!1},e.prototype.handleChangeEvent=function(e){var t,i=this.inputDomNode.checked,h=this.wiki.getTiddler(this.checkboxTitle),c={title:this.checkboxTitle},s=!1,o=!1,n=h&&h.hasTag(this.checkboxTag),d=i?this.checkboxChecked:this.checkboxUnchecked,o=this.checkboxTag&&'yes'===this.checkboxInvertTag?n===i:n!==i;!this.checkboxTag||h&&!o||(c.tags=h?(h.fields.tags||[]).slice(0):[],-1!==(t=c.tags.indexOf(this.checkboxTag))&&c.tags.splice(t,1),('yes'===this.checkboxInvertTag&&!i||'yes'!==this.checkboxInvertTag&&i)&&c.tags.push(this.checkboxTag),s=!0),this.checkboxField&&(h&&h.fields[this.checkboxField]===d||(c[this.checkboxField]=d,s=!0)),this.checkboxIndex&&(t=this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex),h&&t===d||(s=!0)),s&&(this.checkboxIndex?this.wiki.setText(this.checkboxTitle,'',this.checkboxIndex,d):this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{text:''},h,c,this.wiki.getModificationFields()))),this.checkboxActions&&this.invokeActionString(this.checkboxActions,this,e),this.checkboxCheckActions&&i&&this.invokeActionString(this.checkboxCheckActions,this,e),this.checkboxUncheckActions&&!i&&this.invokeActionString(this.checkboxUncheckActions,this,e)},e.prototype.execute=function(){this.checkboxActions=this.getAttribute('actions'),this.checkboxCheckActions=this.getAttribute('checkactions'),this.checkboxUncheckActions=this.getAttribute('uncheckactions'),this.checkboxTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.checkboxTag=this.getAttribute('tag'),this.checkboxField=this.getAttribute('field'),this.checkboxIndex=this.getAttribute('index'),this.checkboxChecked=this.getAttribute('checked'),this.checkboxUnchecked=this.getAttribute('unchecked'),this.checkboxDefault=this.getAttribute('default'),this.checkboxClass=this.getAttribute('class',''),this.checkboxInvertTag=this.getAttribute('invertTag',''),this.isDisabled=this.getAttribute('disabled','no'),this.makeChildWidgets()},e.prototype.refresh=function(e){var t=this.computeAttributes();if(t.tiddler||t.tag||t.invertTag||t.field||t.index||t.checked||t.unchecked||t.default||t.class||t.disabled)return this.refreshSelf(),!0;t=!1;return e[this.checkboxTitle]&&(this.inputDomNode.checked=this.getValue(),t=!0),this.refreshChildren(e)||t},exports.checkbox=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/codeblock.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute();var i=this.document.createElement('code'),o=this.document.createElement('pre');i.appendChild(this.document.createTextNode(this.getAttribute('code'))),o.appendChild(i),e.insertBefore(o,t),this.domNodes.push(o),this.postRender&&this.postRender()},e.prototype.execute=function(){this.language=this.getAttribute('language')},e.prototype.refresh=function(e){return!1},exports.codeblock=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/count.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.document.createTextNode(this.currentCount);t.insertBefore(i,e),this.domNodes.push(i)},t.prototype.execute=function(){this.filter=this.getAttribute('filter'),this.filter?this.currentCount=this.wiki.filterTiddlers(this.filter,this).length:this.currentCount='0'},t.prototype.refresh=function(t){this.computeAttributes();var e=this.currentCount;return this.execute(),this.currentCount!==e&&(this.refreshSelf(),!0)},exports.count=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/diff-text.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget,f=require('$:/core/modules/utils/diff-match-patch/diff_match_patch.js');(e.prototype=new t).invisibleCharacters={'\\n':'↩︎\\n','\\r':'⇠','\\t':'⇥\\t'},e.prototype.render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute();var i=new f.diff_match_patch,r=i.diff_main(this.getAttribute('source'),this.getAttribute('dest'));switch(this.getAttribute('cleanup','semantic')){case'none':break;case'efficiency':i.diff_cleanupEfficiency(r);break;default:i.diff_cleanupSemantic(r)}var n=this.document.createElement('div'),s=this.createDiffDom(r);e.insertBefore(n,t),this.setVariable('diff-count',r.reduce(function(e,t){return t[0]!==f.DIFF_EQUAL&&e++,e},0).toString()),this.renderChildren(n,null),n.appendChild(s),this.domNodes.push(n)},e.prototype.createDiffDom=function(e){var h=this,t=this.document.createElement('pre'),u=this.document.createElement('code');return $tw.utils.each(e,function(e){var t,i,r=e[0]===f.DIFF_INSERT?'ins':e[0]===f.DIFF_DELETE?'del':'span',n=e[0]===f.DIFF_INSERT?'tc-diff-insert':e[0]===f.DIFF_DELETE?'tc-diff-delete':'tc-diff-equal',s=h.document.createElement(r),c=e[1],d=0,a=/([\\x00-\\x1F])/gm,o=a.exec(c);for(s.className=n;o;)d<o.index&&s.appendChild(h.document.createTextNode(c.slice(d,o.index))),(t=h.document.createElement('span')).className='tc-diff-invisible',i=h.invisibleCharacters[o[0]]||'[0x'+o[0].charCodeAt(0).toString(16)+']',t.appendChild(h.document.createTextNode(i)),s.appendChild(t),d=o.index+o[0].length,o=a.exec(c);d<c.length&&s.appendChild(h.document.createTextNode(c.slice(d))),u.appendChild(s)}),t.appendChild(u),t},e.prototype.execute=function(){var e=this.parseTreeNode&&this.parseTreeNode.children&&0<this.parseTreeNode.children.length?this.parseTreeNode.children:[{type:'transclude',attributes:{tiddler:{type:'string',value:'$:/language/Diffs/CountMessage'}}}];this.makeChildWidgets(e)},e.prototype.refresh=function(e){var t=this.computeAttributes();return t.source||t.dest||t.cleanup?(this.refreshSelf(),!0):this.refreshChildren(e)},exports['diff-text']=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/draggable.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var i=this;this.parentDomNode=t,this.computeAttributes(),this.execute();var s=this.draggableTag;-1!==$tw.config.htmlUnsafeElements.indexOf(s)&&(s='div');var r=this.document.createElement(s),s=['tc-draggable'];this.draggableClasses&&s.push(this.draggableClasses),r.setAttribute('class',s.join(' ')),$tw.utils.makeDraggable({domNode:r,dragTiddlerFn:function(){return i.getAttribute('tiddler')},dragFilterFn:function(){return i.getAttribute('filter')},startActions:i.startActions,endActions:i.endActions,widget:this}),t.insertBefore(r,e),this.renderChildren(r,null),this.domNodes.push(r)},t.prototype.execute=function(){this.draggableTag=this.getAttribute('tag','div'),this.draggableClasses=this.getAttribute('class'),this.startActions=this.getAttribute('startactions'),this.endActions=this.getAttribute('endactions'),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.tag||e.class?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.draggable=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/droppable.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){var r=this.parseTreeNode.isBlock?'div':'span';this.parentDomNode=e,this.computeAttributes(),this.execute(),this.droppableTag&&-1===$tw.config.htmlUnsafeElements.indexOf(this.droppableTag)&&(r=this.droppableTag),r=this.document.createElement(r),this.domNode=r,this.assignDomNodeClasses(),this.droppableEnable?$tw.utils.addEventListeners(r,[{name:'dragenter',handlerObject:this,handlerMethod:'handleDragEnterEvent'},{name:'dragover',handlerObject:this,handlerMethod:'handleDragOverEvent'},{name:'dragleave',handlerObject:this,handlerMethod:'handleDragLeaveEvent'},{name:'drop',handlerObject:this,handlerMethod:'handleDropEvent'}]):$tw.utils.addClass(this.domNode,this.disabledClass),e.insertBefore(r,t),this.renderChildren(r,null),this.domNodes.push(r),this.currentlyEntered=[]},e.prototype.enterDrag=function(e){-1===this.currentlyEntered.indexOf(e.target)&&this.currentlyEntered.push(e.target),$tw.utils.addClass(this.domNodes[0],'tc-dragover')},e.prototype.leaveDrag=function(e){e=this.currentlyEntered.indexOf(e.target);-1!==e&&this.currentlyEntered.splice(e,1),(0===this.currentlyEntered.length||1===this.currentlyEntered.length&&this.currentlyEntered[0]===$tw.dragInProgress)&&(this.currentlyEntered=[],this.domNodes[0]&&$tw.utils.removeClass(this.domNodes[0],'tc-dragover'))},e.prototype.handleDragEnterEvent=function(e){return this.enterDrag(e),e.preventDefault(),e.stopPropagation(),!1},e.prototype.handleDragOverEvent=function(e){return-1!==['TEXTAREA','INPUT'].indexOf(e.target.tagName)||(e.preventDefault(),e.dataTransfer.dropEffect=this.droppableEffect),!1},e.prototype.handleDragLeaveEvent=function(e){return this.leaveDrag(e),!1},e.prototype.handleDropEvent=function(t){var r=this;if(this.leaveDrag(t),-1!==['TEXTAREA','INPUT'].indexOf(t.target.tagName))return!1;var e=t.dataTransfer;return $tw.utils.removeClass(this.domNodes[0],'tc-dragover'),$tw.utils.importDataTransfer(e,null,function(e){e.forEach(function(e){r.performActions(e.title||e.text,t)})}),t.preventDefault(),t.stopPropagation(),!1},e.prototype.performActions=function(e,t){var r;this.droppableActions&&(r=$tw.keyboardManager.getEventModifierKeyDescriptor(t),this.invokeActionString(this.droppableActions,this,t,{actionTiddler:e,modifier:r}))},e.prototype.execute=function(){this.droppableActions=this.getAttribute('actions'),this.droppableEffect=this.getAttribute('effect','copy'),this.droppableTag=this.getAttribute('tag'),this.droppableEnable='yes'===(this.getAttribute('enable')||'yes'),this.disabledClass=this.getAttribute('disabledClass',''),this.makeChildWidgets()},e.prototype.assignDomNodeClasses=function(){var e=this.getAttribute('class','').split(' ');e.push('tc-droppable'),this.domNode.className=e.join(' ')},e.prototype.refresh=function(e){var t=this.computeAttributes();return t.tag||t.enable||t.disabledClass||t.actions||t.effect?(this.refreshSelf(),!0):(t.class&&this.assignDomNodeClasses(),this.refreshChildren(e))},exports.droppable=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/dropzone.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var r=this.document.createElement('div');r.className=this.dropzoneClass||'tc-dropzone',this.dropzoneEnable&&$tw.utils.addEventListeners(r,[{name:'dragenter',handlerObject:this,handlerMethod:'handleDragEnterEvent'},{name:'dragover',handlerObject:this,handlerMethod:'handleDragOverEvent'},{name:'dragleave',handlerObject:this,handlerMethod:'handleDragLeaveEvent'},{name:'drop',handlerObject:this,handlerMethod:'handleDropEvent'},{name:'paste',handlerObject:this,handlerMethod:'handlePasteEvent'},{name:'dragend',handlerObject:this,handlerMethod:'handleDragEndEvent'}]),r.addEventListener('click',function(t){},!1),t.insertBefore(r,e),this.renderChildren(r,null),this.domNodes.push(r),this.currentlyEntered=[]},t.prototype.enterDrag=function(t){-1===this.currentlyEntered.indexOf(t.target)&&this.currentlyEntered.push(t.target),$tw.utils.addClass(this.domNodes[0],'tc-dragover')},t.prototype.leaveDrag=function(t){t=this.currentlyEntered.indexOf(t.target);-1!==t&&this.currentlyEntered.splice(t,1),0===this.currentlyEntered.length&&$tw.utils.removeClass(this.domNodes[0],'tc-dragover')},t.prototype.handleDragEnterEvent=function(t){if($tw.dragInProgress)return!1;this.enterDrag(t),t.preventDefault(),t.stopPropagation()},t.prototype.handleDragOverEvent=function(t){return-1===['TEXTAREA','INPUT'].indexOf(t.target.tagName)&&(!$tw.dragInProgress&&(t.preventDefault(),void(t.dataTransfer.dropEffect='copy')))},t.prototype.handleDragLeaveEvent=function(t){this.leaveDrag(t)},t.prototype.handleDragEndEvent=function(t){$tw.utils.removeClass(this.domNodes[0],'tc-dragover')},t.prototype.handleDropEvent=function(t){function e(t){r.dispatchEvent({type:'tm-import-tiddlers',param:JSON.stringify(t),autoOpenOnImport:r.autoOpenOnImport,importTitle:r.importTitle})}var r=this;if(this.leaveDrag(t),-1!==['TEXTAREA','INPUT'].indexOf(t.target.tagName))return!1;if($tw.dragInProgress)return!1;var r=this,i=t.dataTransfer;$tw.utils.removeClass(this.domNodes[0],'tc-dragover');var n=0;i.files&&(n=this.wiki.readFiles(i.files,{callback:e,deserializer:this.dropzoneDeserializer})),0===n&&$tw.utils.importDataTransfer(i,this.wiki.generateNewTitle('Untitled'),e),t.preventDefault(),t.stopPropagation()},t.prototype.handlePasteEvent=function(t){function e(t){r.dispatchEvent({type:'tm-import-tiddlers',param:JSON.stringify(t),autoOpenOnImport:r.autoOpenOnImport,importTitle:r.importTitle})}var r=this;if(-1==['TEXTAREA','INPUT'].indexOf(t.target.tagName)&&!t.target.isContentEditable){for(var r=this,i=t.clipboardData.items,n=0;n<i.length;n++){var a,o=i[n];'file'===o.kind?this.wiki.readFile(o.getAsFile(),{callback:e,deserializer:this.dropzoneDeserializer}):'string'===o.kind&&(a=o.type,o.getAsString(function(t){var e={title:r.wiki.generateNewTitle('Untitled'),text:t,type:a};$tw.log.IMPORT&&console.log('Importing string \\''+t+'\\', type: \\''+a+'\\''),r.dispatchEvent({type:'tm-import-tiddlers',param:JSON.stringify([e]),autoOpenOnImport:r.autoOpenOnImport,importTitle:r.importTitle})}))}t.stopPropagation(),t.preventDefault()}},t.prototype.execute=function(){this.dropzoneClass=this.getAttribute('class'),this.dropzoneDeserializer=this.getAttribute('deserializer'),this.dropzoneEnable='yes'===(this.getAttribute('enable')||'yes'),this.autoOpenOnImport=this.getAttribute('autoOpenOnImport'),this.importTitle=this.getAttribute('importTitle'),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.enable||e.autoOpenOnImport||e.importTitle||e.deserializer||e.class?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.dropzone=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/edit-binary.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute(),this.renderChildren(e,t)},e.prototype.execute=function(){var e=this.getAttribute('tiddler',this.getVariable('currentTiddler')),t=this.wiki.getTiddler(e),i=t.fields.type,r=t.fields.text,e={type:'element',tag:'p',children:[{type:'transclude',attributes:{tiddler:{type:'string',value:'$:/core/ui/BinaryWarning'}}}]},t={type:'element',tag:'a',attributes:{title:{type:'indirect',textReference:'!!draft.title'},download:{type:'indirect',textReference:'!!draft.title'}},children:[{type:'transclude',attributes:{tiddler:{type:'string',value:'$:/core/images/export-button'}}}]};r&&(t.attributes.href={type:'string',value:'data:'+i+';base64,'+r});t={type:'element',tag:'div',attributes:{class:{type:'string',value:'tc-binary-warning'}},children:[e,t]};this.makeChildWidgets([t])},e.prototype.refresh=function(e){return this.refreshChildren(e)},exports['edit-binary']=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/edit-bitmap.js":{"text":"!function(){'use strict';function i(t,e){this.initialise(t,e)}var t=require('$:/core/modules/widgets/widget.js').widget;(i.prototype=new t).render=function(t,e){this.editorOperations||(i.prototype.editorOperations={},$tw.modules.applyMethods('bitmapeditoroperation',this.editorOperations)),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.toolbarNode=this.document.createElement('div'),this.toolbarNode.className='tc-editor-toolbar',t.insertBefore(this.toolbarNode,e),this.domNodes.push(this.toolbarNode),this.canvasDomNode=$tw.utils.domMaker('canvas',{document:this.document,class:'tc-edit-bitmapeditor',eventListeners:[{name:'touchstart',handlerObject:this,handlerMethod:'handleTouchStartEvent'},{name:'touchmove',handlerObject:this,handlerMethod:'handleTouchMoveEvent'},{name:'touchend',handlerObject:this,handlerMethod:'handleTouchEndEvent'},{name:'mousedown',handlerObject:this,handlerMethod:'handleMouseDownEvent'},{name:'mousemove',handlerObject:this,handlerMethod:'handleMouseMoveEvent'},{name:'mouseup',handlerObject:this,handlerMethod:'handleMouseUpEvent'}]}),this.setVariable('tv-bitmap-editor-width',this.canvasDomNode.width+'px'),this.setVariable('tv-bitmap-editor-height',this.canvasDomNode.height+'px'),this.renderChildren(this.toolbarNode,null),t.insertBefore(this.canvasDomNode,e),this.domNodes.push(this.canvasDomNode),$tw.browser&&this.loadCanvas(),this.addEventListeners([{type:'tm-edit-bitmap-operation',handler:'handleEditBitmapOperationMessage'}])},i.prototype.handleEditBitmapOperationMessage=function(t){var e=this.editorOperations[t.param];e&&e.call(this,t)},i.prototype.execute=function(){this.editTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.makeChildWidgets()},i.prototype.refresh=function(t){return this.refreshChildren(t)},i.prototype.refreshToolbar=function(){this.setVariable('tv-bitmap-editor-width',this.canvasDomNode.width+'px'),this.setVariable('tv-bitmap-editor-height',this.canvasDomNode.height+'px'),$tw.utils.each(this.children,function(t){t.refreshSelf()})},i.prototype.loadCanvas=function(){var t=this.wiki.getTiddler(this.editTitle),e=new Image,i=this;e.onload=function(){i.initCanvas(i.canvasDomNode,e.width,e.height,e),i.currCanvas=i.document.createElement('canvas'),i.initCanvas(i.currCanvas,e.width,e.height,e),i.refreshToolbar()},e.onerror=function(){i.initCanvas(i.canvasDomNode,600,370),i.currCanvas=i.document.createElement('canvas'),i.initCanvas(i.currCanvas,600,370),i.refreshToolbar()},t&&t.fields.type&&t.fields.text?e.src='data:'+t.fields.type+';base64,'+t.fields.text:(e.width=600,e.height=370,e.onerror())},i.prototype.initCanvas=function(t,e,i,o){t.width=e,t.height=i;i=t.getContext('2d');o?i.drawImage(o,0,0):(i.fillStyle='#fff',i.fillRect(0,0,t.width,t.height))},i.prototype.changeCanvasSize=function(t,e){var i=this.document.createElement('canvas');this.initCanvas(i,t,e);var o=i.getContext('2d');o.drawImage(this.currCanvas,0,0),this.currCanvas=i,this.canvasDomNode.width=t,this.canvasDomNode.height=e,(o=this.canvasDomNode.getContext('2d')).drawImage(this.currCanvas,0,0)},i.prototype.rotateCanvasLeft=function(){var t=this.currCanvas.width,e=this.currCanvas.height,i=this.document.createElement('canvas'),o=e,a=t;this.initCanvas(i,o,a);var n=i.getContext('2d');n.save(),n.translate(o/2,a/2),n.rotate(-Math.PI/2),n.drawImage(this.currCanvas,-t/2,-e/2),n.restore(),this.currCanvas=i,this.canvasDomNode.width=o,this.canvasDomNode.height=a,(n=this.canvasDomNode.getContext('2d')).drawImage(this.currCanvas,0,0)},i.prototype.handleTouchStartEvent=function(t){return this.brushDown=!0,this.strokeStart(t.touches[0].clientX,t.touches[0].clientY),t.preventDefault(),t.stopPropagation(),!1},i.prototype.handleTouchMoveEvent=function(t){return this.brushDown&&this.strokeMove(t.touches[0].clientX,t.touches[0].clientY),t.preventDefault(),t.stopPropagation(),!1},i.prototype.handleTouchEndEvent=function(t){return this.brushDown&&(this.brushDown=!1,this.strokeEnd()),t.preventDefault(),t.stopPropagation(),!1},i.prototype.handleMouseDownEvent=function(t){return this.strokeStart(t.clientX,t.clientY),this.brushDown=!0,t.preventDefault(),t.stopPropagation(),!1},i.prototype.handleMouseMoveEvent=function(t){return!this.brushDown||(this.strokeMove(t.clientX,t.clientY),t.preventDefault(),t.stopPropagation(),!1)},i.prototype.handleMouseUpEvent=function(t){return!this.brushDown||(this.brushDown=!1,this.strokeEnd(),t.preventDefault(),t.stopPropagation(),!1)},i.prototype.adjustCoordinates=function(t,e){var i=this.canvasDomNode.getBoundingClientRect(),o=this.canvasDomNode.width/i.width;return{x:(t-i.left)*o,y:(e-i.top)*o}},i.prototype.strokeStart=function(t,e){this.stroke=[this.adjustCoordinates(t,e)]},i.prototype.strokeMove=function(t,e){var i,o=this.canvasDomNode.getContext('2d');for(this.stroke.push(this.adjustCoordinates(t,e)),o.drawImage(this.currCanvas,0,0),o.globalAlpha=parseFloat(this.wiki.getTiddlerText('$:/config/BitmapEditor/Opacity','1.0')),o.strokeStyle=this.wiki.getTiddlerText('$:/config/BitmapEditor/Colour','#ff0'),o.lineWidth=parseFloat(this.wiki.getTiddlerText('$:/config/BitmapEditor/LineWidth','3')),o.lineCap='round',o.lineJoin='round',o.beginPath(),o.moveTo(this.stroke[0].x,this.stroke[0].y),i=1;i<this.stroke.length-1;i++){var a=this.stroke[i],n=this.stroke[i-1],s=(a.x+n.x)/2,a=(a.y+n.y)/2;o.quadraticCurveTo(n.x,n.y,s,a)}o.stroke()},i.prototype.strokeEnd=function(){this.currCanvas.getContext('2d').drawImage(this.canvasDomNode,0,0),this.saveChanges()},i.prototype.saveChanges=function(){var t=this.wiki.getTiddler(this.editTitle)||new $tw.Tiddler({title:this.editTitle,type:'image/png'}),e=this.canvasDomNode.toDataURL(t.fields.type),i=e.indexOf(':'),o=e.indexOf(';'),a=e.indexOf(','),a={type:e.substring(i+1,o),text:e.substring(a+1)};this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),t,a,this.wiki.getCreationFields()))},exports['edit-bitmap']=i}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/edit-shortcut.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.inputNode=this.document.createElement('input'),this.shortcutClass&&(this.inputNode.className=this.shortcutClass),this.shortcutStyle&&this.inputNode.setAttribute('style',this.shortcutStyle),this.shortcutTooltip&&this.inputNode.setAttribute('title',this.shortcutTooltip),this.shortcutPlaceholder&&this.inputNode.setAttribute('placeholder',this.shortcutPlaceholder),this.shortcutAriaLabel&&this.inputNode.setAttribute('aria-label',this.shortcutAriaLabel),this.updateInputNode(),$tw.utils.addEventListeners(this.inputNode,[{name:'keydown',handlerObject:this,handlerMethod:'handleKeydownEvent'}]),t.insertBefore(this.inputNode,e),this.domNodes.push(this.inputNode),'yes'!==this.shortcutFocus&&'true'!==this.shortcutFocus||this.focus()},t.prototype.execute=function(){this.shortcutTiddler=this.getAttribute('tiddler'),this.shortcutField=this.getAttribute('field'),this.shortcutIndex=this.getAttribute('index'),this.shortcutPlaceholder=this.getAttribute('placeholder'),this.shortcutDefault=this.getAttribute('default',''),this.shortcutClass=this.getAttribute('class'),this.shortcutStyle=this.getAttribute('style'),this.shortcutTooltip=this.getAttribute('tooltip'),this.shortcutAriaLabel=this.getAttribute('aria-label'),this.shortcutFocus=this.getAttribute('focus')},t.prototype.updateInputNode=function(){var t;this.shortcutField?(t=this.wiki.getTiddler(this.shortcutTiddler))&&$tw.utils.hop(t.fields,this.shortcutField)?this.inputNode.value=t.getFieldString(this.shortcutField):this.inputNode.value=this.shortcutDefault:this.shortcutIndex?this.inputNode.value=this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault):this.inputNode.value=this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault)},t.prototype.handleKeydownEvent=function(t){if(t.keyCode&&-1===$tw.keyboardManager.getModifierKeys().indexOf(t.keyCode)){var e=$tw.keyboardManager.getPrintableShortcuts([{ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,altKey:t.altKey,metaKey:t.metaKey,keyCode:t.keyCode}]);return 0<e.length&&this.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,e[0]),t.preventDefault(),t.stopPropagation(),!0}return!1},t.prototype.focus=function(){this.inputNode.focus&&this.inputNode.select&&(this.inputNode.focus(),this.inputNode.select())},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.tiddler||e.field||e.index||e.placeholder||e.default||e.class||e.style||e.tooltip||e['aria-label']||e.focus?(this.refreshSelf(),!0):!!t[this.shortcutTiddler]&&(this.updateInputNode(),!0)},exports['edit-shortcut']=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/edit-text.js":{"text":"!function(){'use strict';var e=require('$:/core/modules/editor/factory.js').editTextWidgetFactory,r=require('$:/core/modules/editor/engines/framed.js').FramedEngine,i=require('$:/core/modules/editor/engines/simple.js').SimpleEngine;exports['edit-text']=e(r,i)}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/edit.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.editTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.editField=this.getAttribute('field','text'),this.editIndex=this.getAttribute('index'),this.editClass=this.getAttribute('class'),this.editPlaceholder=this.getAttribute('placeholder'),this.editTabIndex=this.getAttribute('tabindex'),this.editFocus=this.getAttribute('focus',''),this.editCancelPopups=this.getAttribute('cancelPopups',''),this.editInputActions=this.getAttribute('inputActions'),this.editRefreshTitle=this.getAttribute('refreshTitle'),this.editAutoComplete=this.getAttribute('autocomplete'),this.editorType=this.getEditorType(),this.makeChildWidgets([{type:'edit-'+this.editorType,attributes:this.parseTreeNode.attributes,children:this.parseTreeNode.children}])},t.prototype.getEditorType=function(){'text'!==this.editField||(e=this.wiki.getTiddler(this.editTitle))&&(t=e.fields.type),t=t||'text/vnd.tiddlywiki';var t,e=this.wiki.getTiddlerText('$:/config/EditorTypeMappings/'+t);return e||(e=(t=$tw.config.contentTypeInfo[t])&&'base64'===t.encoding?'binary':'text'),e},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.tiddler||e.field||e.index||e.tabindex||e.cancelPopups||e.inputActions||e.refreshTitle||e.autocomplete||t[this.editTitle]&&this.getEditorType()!==this.editorType?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.edit=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/element.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.tag=this.parseTreeNode.tag,-1!==$tw.config.htmlUnsafeElements.indexOf(this.tag)&&(this.tag='safe-'+this.tag);var i,s=['h1','h2','h3','h4','h5','h6'].indexOf(this.tag);-1!==s&&(i=parseInt(this.getVariable('tv-adjust-heading-level','0'),10)||0,s=Math.min(Math.max(s+1+i,1),6),this.tag='h'+s);this.namespace={svg:'http://www.w3.org/2000/svg',math:'http://www.w3.org/1998/Math/MathML',body:'http://www.w3.org/1999/xhtml'}[this.tag],this.namespace?this.setVariable('namespace',this.namespace):this.namespace=this.getVariable('namespace',{defaultValue:'http://www.w3.org/1999/xhtml'});s=$tw.hooks.invokeHook('th-rendering-element',null,this);if(this.isReplaced=!!s,s)return this.makeChildWidgets(s),void this.renderChildren(this.parentDomNode,null);this.makeChildWidgets();s=this.document.createElementNS(this.namespace,this.tag);this.assignAttributes(s,{excludeEventAttributes:!0}),t.insertBefore(s,e),this.renderChildren(s,null),this.domNodes.push(s)},t.prototype.refresh=function(t){var e=this.computeAttributes(),e=0<$tw.utils.count(e);if(e){if(this.isReplaced)return this.refreshSelf();this.assignAttributes(this.domNodes[0],{excludeEventAttributes:!0})}return this.refreshChildren(t)||e},exports.element=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/encrypt.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.document.createTextNode(this.encryptedText);t.insertBefore(i,e),this.domNodes.push(i)},t.prototype.execute=function(){this.filter=this.getAttribute('filter','[!is[system]]');var t=this.wiki.filterTiddlers(this.filter),s={},n=this;$tw.utils.each(t,function(t){var e,i=n.wiki.getTiddler(t),r={};for(e in i.fields)r[e]=i.getFieldString(e);s[t]=r}),this.encryptedText=$tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(s)))},t.prototype.refresh=function(t){return!1},exports.encrypt=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/entity.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.getAttribute('entity',this.parseTreeNode.entity||''),i=this.document.createTextNode($tw.utils.entityDecode(i));t.insertBefore(i,e),this.domNodes.push(i)},t.prototype.execute=function(){},t.prototype.refresh=function(t){return!!this.computeAttributes().entity&&(this.refreshSelf(),!0)},exports.entity=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/eventcatcher.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var a=this;this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.parseTreeNode.isBlock?'div':'span';this.elementTag&&-1===$tw.config.htmlUnsafeElements.indexOf(this.elementTag)&&(i=this.elementTag);var d=this.document.createElement(i);this.domNode=d,this.assignDomNodeClasses(),$tw.utils.each(this.types,function(r){d.addEventListener(r,function(t){var e,i=a.getAttribute('selector'),o=a.getAttribute('actions-'+r),s=t.target,n={};if(i){for(;!s.matches(i)&&s!==d;)s=s.parentNode;if(!s.matches(i))return!1;$tw.utils.each(s.attributes,function(t){n['dom-'+t.name]=t.value.toString()}),n['tv-popup-coords']='('+s.offsetLeft+','+s.offsetTop+','+s.offsetWidth+','+s.offsetHeight+')',n['tv-selectednode-posx']=s.offsetLeft.toString(),n['tv-selectednode-posy']=s.offsetTop.toString(),n['tv-selectednode-width']=s.offsetWidth.toString(),n['tv-selectednode-height']=s.offsetHeight.toString(),e=s.getBoundingClientRect(),n['event-fromselected-posx']=(t.clientX-e.left).toString(),n['event-fromselected-posy']=(t.clientY-e.top).toString(),e=a.domNode.getBoundingClientRect(),n['event-fromcatcher-posx']=(t.clientX-e.left).toString(),n['event-fromcatcher-posy']=(t.clientY-e.top).toString()}return!!o&&(n.modifier=$tw.keyboardManager.getEventModifierKeyDescriptor(t),'button'in t&&(0===t.button?n['event-mousebutton']='left':1===t.button?n['event-mousebutton']='middle':2===t.button&&(n['event-mousebutton']='right')),n['event-type']=t.type.toString(),'object'==typeof t.detail&&t.detail?$tw.utils.each(t.detail,function(t,e){n['event-detail-'+e]=t.toString()}):t.detail&&(n['event-detail']=t.detail.toString()),a.invokeActionString(o,a,t,n),t.preventDefault(),t.stopPropagation(),!0)},!1)}),t.insertBefore(d,e),this.renderChildren(d,null),this.domNodes.push(d)},t.prototype.execute=function(){this.types=this.getAttribute('events','').split(' '),this.elementTag=this.getAttribute('tag'),this.makeChildWidgets()},t.prototype.assignDomNodeClasses=function(){var t=this.getAttribute('class','').split(' ');t.push('tc-eventcatcher'),this.domNode.className=t.join(' ')},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.events||e.tag?(this.refreshSelf(),!0):(e.class&&this.assignDomNodeClasses(),this.refreshChildren(t))},exports.eventcatcher=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/fieldmangler.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.addEventListeners([{type:'tm-remove-field',handler:'handleRemoveFieldEvent'},{type:'tm-add-field',handler:'handleAddFieldEvent'},{type:'tm-remove-tag',handler:'handleRemoveTagEvent'},{type:'tm-add-tag',handler:'handleAddTagEvent'}]),this.parentDomNode=e,this.computeAttributes(),this.execute(),this.renderChildren(e,t)},e.prototype.execute=function(){this.mangleTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.makeChildWidgets()},e.prototype.refresh=function(e){return this.computeAttributes().tiddler?(this.refreshSelf(),!0):this.refreshChildren(e)},e.prototype.handleRemoveFieldEvent=function(e){var t=this.wiki.getTiddler(this.mangleTitle),i={};return i[e.param]=void 0,this.wiki.addTiddler(new $tw.Tiddler(t,i)),!0},e.prototype.handleAddFieldEvent=function(e){function t(e,t){if(e=e.toLowerCase().trim(),$tw.utils.isValidFieldName(e))!t&&i&&(t=i.fields[e]),d[e]=t||'';else if(!r)return alert($tw.language.getString('InvalidFieldName',{variables:{fieldName:e}})),r=!0,0}var i=this.wiki.getTiddler(this.mangleTitle),d=this.wiki.getModificationFields(),r=!1;if(d.title=this.mangleTitle,'string'==typeof e.param&&t(e.param,''),'object'==typeof e.paramObject)for(var a in e.paramObject)t(a,e.paramObject[a]);return this.wiki.addTiddler(new $tw.Tiddler(i,d)),!0},e.prototype.handleRemoveTagEvent=function(e){var t=this.wiki.getTiddler(this.mangleTitle),i=this.wiki.getModificationFields();return t&&t.fields.tags&&(-1!==(e=t.fields.tags.indexOf(e.param))&&(i.tags=(t.fields.tags||[]).slice(0),i.tags.splice(e,1),0===i.tags.length&&(i.tags=void 0),this.wiki.addTiddler(new $tw.Tiddler(t,i)))),!0},e.prototype.handleAddTagEvent=function(e){var t,i=this.wiki.getTiddler(this.mangleTitle),d=this.wiki.getModificationFields();return i&&'string'==typeof e.param?''!==(t=e.param.trim())&&(d.tags=(i.fields.tags||[]).slice(0),$tw.utils.pushTop(d.tags,t),this.wiki.addTiddler(new $tw.Tiddler(i,d))):'string'==typeof e.param&&''!==e.param.trim()&&''!==this.mangleTitle.trim()&&((t=[]).push(e.param.trim()),this.wiki.addTiddler(new $tw.Tiddler({title:this.mangleTitle,tags:t},d))),!0},exports.fieldmangler=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/fields.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.document.createTextNode(this.text);t.insertBefore(i,e),this.domNodes.push(i)},t.prototype.execute=function(){this.tiddlerTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.template=this.getAttribute('template'),this.sort='yes'===this.getAttribute('sort','yes'),this.sortReverse='yes'===this.getAttribute('sortReverse','no'),this.exclude=this.getAttribute('exclude'),this.include=this.getAttribute('include',null),this.stripTitlePrefix='yes'===this.getAttribute('stripTitlePrefix','no');var t=this.wiki.getTiddler(this.tiddlerTitle),e=this.exclude?this.exclude.split(' '):['text'],i=this.include?this.include.split(' '):null,s=[];if(this.template&&t){var r=[];if(i)for(var l=0;l<i.length;l++)t.fields[i[l]]&&r.push(i[l]);else for(var h in t.fields)-1===e.indexOf(h)&&r.push(h);this.sort&&r.sort(),this.sortReverse&&r.reverse();for(var u=0,d=r.length;u<d;u++){h=r[u];var o,n=this.template,c=t.getFieldString(h);this.stripTitlePrefix&&'title'===h&&((o=/^\\{[^\\}]+\\}(.+)/gm.exec(c))&&(c=o[1])),n=$tw.utils.replaceString(n,'$name$',h),n=$tw.utils.replaceString(n,'$value$',c),n=$tw.utils.replaceString(n,'$encoded_value$',$tw.utils.htmlEncode(c)),s.push(n)}}this.text=s.join('')},t.prototype.refresh=function(t){var e=this.computeAttributes();return!!(e.tiddler||e.template||e.exclude||e.include||e.sort||e.sortReverse||t[this.tiddlerTitle]||e.stripTitlePrefix)&&(this.refreshSelf(),!0)},exports.fields=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/image.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i='img',s='',a=this.wiki.getTiddler(this.imageSource);if(a){if(this.wiki.isImageTiddler(this.imageSource)){var h=a.fields.type,r=a.fields.text,g=a.fields._canonical_uri;if(r)switch(h){case'application/pdf':i='embed',s='data:application/pdf;base64,'+r;break;case'image/svg+xml':s='data:image/svg+xml,'+encodeURIComponent(r);break;default:s='data:'+h+';base64,'+r}else if(g)switch(h){case'application/pdf':i='embed',s=g;break;case'image/svg+xml':default:s=g}else this.wiki.getTiddlerText(this.imageSource)}}else s=this.getVariable('tv-get-export-image-link',{params:[{name:'src',value:this.imageSource}],defaultValue:this.imageSource});a=this.document.createElement(i);a.setAttribute('src',s),this.imageClass&&a.setAttribute('class',this.imageClass),this.imageWidth&&a.setAttribute('width',this.imageWidth),this.imageHeight&&a.setAttribute('height',this.imageHeight),this.imageTooltip&&a.setAttribute('title',this.imageTooltip),this.imageAlt&&a.setAttribute('alt',this.imageAlt),t.insertBefore(a,e),this.domNodes.push(a)},t.prototype.execute=function(){this.imageSource=this.getAttribute('source'),this.imageWidth=this.getAttribute('width'),this.imageHeight=this.getAttribute('height'),this.imageClass=this.getAttribute('class'),this.imageTooltip=this.getAttribute('tooltip'),this.imageAlt=this.getAttribute('alt')},t.prototype.refresh=function(t){var e=this.computeAttributes();return!!(e.source||e.width||e.height||e.class||e.tooltip||t[this.imageSource])&&(this.refreshSelf(),!0)},exports.image=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/importvariables.js":{"text":"!function(){'use strict';function i(i,t){this.initialise(i,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(i.prototype=new t).render=function(i,t){this.parentDomNode=i,this.computeAttributes(),this.execute(),this.renderChildren(i,t)},i.prototype.execute=function(i){var s=this;this.variables=new this.variablesConstructor,this.filter=this.getAttribute('filter'),this.tiddlerList=i||this.wiki.filterTiddlers(this.filter,this),$tw.utils.each(this.tiddlerList,function(i){i=s.wiki.parseTiddler(i);if(i)for(var t=i.tree[0];t&&'set'===t.type;){var e,r={type:'set',attributes:t.attributes,params:t.params,isMacroDefinition:t.isMacroDefinition};t.isMacroDefinition?((e=s.makeChildWidget(r)).computeAttributes(),e.execute(),$tw.utils.each(Object.keys(e.variables),function(i){s.variables[i]=e.variables[i]})):(s.children=[s.makeChildWidget(r)],s!=this&&(s.makeChildWidgets=function(){}),s=s.children[0]),t=t.children&&t.children[0]}}),s!=this?s.parseTreeNode.children=this.parseTreeNode.children:s.makeChildWidgets()},i.prototype.refresh=function(t){var e,i=this.computeAttributes(),r=this.wiki.filterTiddlers(this.getAttribute('filter'),this);return i.filter||!$tw.utils.isArrayEqual(this.tiddlerList,r)||(e=!1,r.forEach(function(i){t[i]&&(e=!0)}),e)?(this.removeChildDomNodes(),this.execute(r),this.renderChildren(this.parentDomNode,this.findNextSiblingDomNode()),!0):this.refreshChildren(t)},exports.importvariables=i}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/keyboard.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var s=this;this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.parseTreeNode.isBlock?'div':'span';this.tag&&-1===$tw.config.htmlUnsafeElements.indexOf(this.tag)&&(i=this.tag);var r=this.document.createElement(i),i=(this.class||'').split(' ');i.push('tc-keyboard'),r.className=i.join(' '),r.addEventListener('keydown',function(t){if($tw.keyboardManager.checkKeyDescriptors(t,s.keyInfoArray)){var e=s.invokeActions(s,t);return s.actions&&s.invokeActionString(s.actions,s,t),s.dispatchMessage(t),(e||s.actions||s.message)&&(t.preventDefault(),t.stopPropagation()),!0}return!1},!1),t.insertBefore(r,e),this.renderChildren(r,null),this.domNodes.push(r)},t.prototype.dispatchMessage=function(t){this.dispatchEvent({type:this.message,param:this.param,tiddlerTitle:this.getVariable('currentTiddler')})},t.prototype.execute=function(){var e,s=this;this.actions=this.getAttribute('actions',''),this.message=this.getAttribute('message',''),this.param=this.getAttribute('param',''),this.key=this.getAttribute('key',''),this.tag=this.getAttribute('tag',''),this.keyInfoArray=$tw.keyboardManager.parseKeyDescriptors(this.key),this.class=this.getAttribute('class',''),'(('===this.key.substr(0,2)&&'))'===this.key.substr(-2,2)&&(this.shortcutTiddlers=[],e=this.key.substring(2,this.key.length-2),$tw.utils.each($tw.keyboardManager.lookupNames,function(t){s.shortcutTiddlers.push('$:/config/'+t+'/'+e)})),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.message||e.param||e.key||e.class||e.tag?(this.refreshSelf(),!0):(this.shortcutTiddlers&&$tw.utils.hopArray(t,this.shortcutTiddlers)&&(this.keyInfoArray=$tw.keyboardManager.parseKeyDescriptors(this.key)),this.refreshChildren(t))},exports.keyboard=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/link.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.getVariable('tv-wikilinks'),s=!i||'no'!==i.trim(),i=!(this.hideMissingLinks&&this.isMissing&&!this.isShadow);s&&i?this.renderLink(t,e):(i=this.document.createElement('span'),t.insertBefore(i,e),this.renderChildren(i,null),this.domNodes.push(i))},t.prototype.renderLink=function(t,e){var i=this,s=this.linkTag;-1!==$tw.config.htmlUnsafeElements.indexOf(s)&&(s='a');var r=this.getVariable('namespace',{defaultValue:'http://www.w3.org/1999/xhtml'}),h=this.document.createElementNS(r,s),a=[];void 0===this.overrideClasses?(a.push('tc-tiddlylink'),this.isShadow&&a.push('tc-tiddlylink-shadow'),this.isMissing&&!this.isShadow?a.push('tc-tiddlylink-missing'):this.isMissing||a.push('tc-tiddlylink-resolves'),this.linkClasses&&a.push(this.linkClasses)):''!==this.overrideClasses&&a.push(this.overrideClasses),0<a.length&&h.setAttribute('class',a.join(' '));a=this.getVariable('tv-filter-export-link');n=a?this.wiki.filterTiddlers(a,this,function(t){t(i.wiki.getTiddler(i.to),i.to)})[0]:(n=(n=this.getVariable('tv-wikilink-template'))?n.trim():'#$uri_encoded$',n=$tw.utils.replaceString(n,'$uri_encoded$',encodeURIComponent(this.to)),$tw.utils.replaceString(n,'$uri_doubleencoded$',encodeURIComponent(encodeURIComponent(this.to)))),n=this.getVariable('tv-get-export-link',{params:[{name:'to',value:this.to}],defaultValue:n}),'a'===s&&(r='http://www.w3.org/2000/svg'===r?'http://www.w3.org/1999/xlink':void 0,h.setAttributeNS(r,'href',n)),this.tabIndex&&h.setAttribute('tabindex',this.tabIndex);var n=this.tooltip||this.getVariable('tv-wikilink-tooltip');n&&(n=this.wiki.renderText('text/plain','text/vnd.tiddlywiki',n,{parseAsInline:!0,variables:{currentTiddler:this.to},parentWidget:this}),h.setAttribute('title',n)),this['aria-label']&&h.setAttribute('aria-label',this['aria-label']),$tw.utils.addEventListeners(h,[{name:'click',handlerObject:this,handlerMethod:'handleClickEvent'}]),'yes'===this.draggable&&$tw.utils.makeDraggable({domNode:h,dragTiddlerFn:function(){return i.to},widget:this}),t.insertBefore(h,e),this.renderChildren(h,null),this.domNodes.push(h)},t.prototype.handleClickEvent=function(t){var e=this.domNodes[0].getBoundingClientRect();return this.dispatchEvent({type:'tm-navigate',navigateTo:this.to,navigateFromTitle:this.getVariable('storyTiddler'),navigateFromNode:this,navigateFromClientRect:{top:e.top,left:e.left,width:e.width,right:e.right,bottom:e.bottom,height:e.height},navigateSuppressNavigation:t.metaKey||t.ctrlKey||1===t.button,metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,event:t}),this.domNodes[0].hasAttribute('href')&&t.preventDefault(),t.stopPropagation(),!1},t.prototype.execute=function(){var t;this.to=this.getAttribute('to',this.getVariable('currentTiddler')),this.tooltip=this.getAttribute('tooltip'),this['aria-label']=this.getAttribute('aria-label'),this.linkClasses=this.getAttribute('class'),this.overrideClasses=this.getAttribute('overrideClass'),this.tabIndex=this.getAttribute('tabindex'),this.draggable=this.getAttribute('draggable','yes'),this.linkTag=this.getAttribute('tag','a'),this.isMissing=!this.wiki.tiddlerExists(this.to),this.isShadow=this.wiki.isShadowTiddler(this.to),this.hideMissingLinks='no'===(this.getVariable('tv-show-missing-links')||'yes'),t=this.parseTreeNode.children&&0<this.parseTreeNode.children.length?this.parseTreeNode.children:[{type:'text',text:this.to}],this.makeChildWidgets(t)},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.to||t[this.to]||e['aria-label']||e.tooltip?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.link=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/linkcatcher.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.addEventListeners([{type:'tm-navigate',handler:'handleNavigateEvent'}]),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.catchTo=this.getAttribute('to'),this.catchMessage=this.getAttribute('message'),this.catchSet=this.getAttribute('set'),this.catchSetTo=this.getAttribute('setTo'),this.catchActions=this.getAttribute('actions'),this.makeChildWidgets(),this.executingActions=!1},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.to||e.message||e.set||e.setTo?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.handleNavigateEvent=function(t){var e;return this.executingActions?this.parentWidget.dispatchEvent({type:'tm-navigate',param:t.navigateTo,navigateTo:t.navigateTo}):(this.catchTo&&this.wiki.setTextReference(this.catchTo,t.navigateTo,this.getVariable('currentTiddler')),this.catchMessage&&this.parentWidget&&this.parentWidget.dispatchEvent({type:this.catchMessage,param:t.navigateTo,navigateTo:t.navigateTo}),this.catchSet&&(e=this.wiki.getTiddler(this.catchSet),this.wiki.addTiddler(new $tw.Tiddler(e,{title:this.catchSet,text:this.catchSetTo}))),this.catchActions&&(this.executingActions=!0,e=$tw.keyboardManager.getEventModifierKeyDescriptor(t),this.invokeActionString(this.catchActions,this,t,{navigateTo:t.navigateTo,modifier:e}),this.executingActions=!1)),!1},exports.linkcatcher=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/list.js":{"text":"!function(){'use strict';function i(t,e){this.initialise(t,e)}var t=require('$:/core/modules/widgets/widget.js').widget;function e(t,e){this.initialise(t,e)}(i.prototype=new t).render=function(t,e){this.storyViews||(i.prototype.storyViews={},$tw.modules.applyMethods('storyview',this.storyViews)),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e);e=this.storyViews[this.storyViewName];this.storyViewName&&!e&&(e=this.storyViews.classic),e&&!this.document.isTiddlyWikiFakeDom?this.storyview=new e(this):this.storyview=null},i.prototype.execute=function(){this.template=this.getAttribute('template'),this.editTemplate=this.getAttribute('editTemplate'),this.variableName=this.getAttribute('variable','currentTiddler'),this.storyViewName=this.getAttribute('storyview'),this.historyTitle=this.getAttribute('history'),this.list=this.getTiddlerList();var i=[],s=this;0===this.list.length?i=this.getEmptyMessage():$tw.utils.each(this.list,function(t,e){i.push(s.makeItemTemplate(t))}),this.makeChildWidgets(i),this.history=[]},i.prototype.getTiddlerList=function(){return this.wiki.filterTiddlers(this.getAttribute('filter','[!is[system]sort[title]]'),this)},i.prototype.getEmptyMessage=function(){var t=this.getAttribute('emptyMessage','');return''!==t&&(t=this.wiki.parseText('text/vnd.tiddlywiki',t,{parseAsInline:!0}))?t.tree:[]},i.prototype.makeItemTemplate=function(t){var e=this.wiki.getTiddler(t),i=e&&e.hasField('draft.of'),e=this.template;return i&&this.editTemplate&&(e=this.editTemplate),e=e?[{type:'transclude',attributes:{tiddler:{type:'string',value:e}}}]:this.parseTreeNode.children&&0<this.parseTreeNode.children.length?this.parseTreeNode.children:[{type:'element',tag:this.parseTreeNode.isBlock?'div':'span',children:[{type:'link',attributes:{to:{type:'string',value:t}},children:[{type:'text',text:t}]}]}],{type:'listitem',itemTitle:t,variableName:this.variableName,children:e}},i.prototype.refresh=function(t){var e,i=this.computeAttributes();return this.storyview&&this.storyview.refreshStart&&this.storyview.refreshStart(t,i),i.filter||i.template||i.editTemplate||i.emptyMessage||i.storyview||i.history?(this.refreshSelf(),e=!0):(e=this.handleListChanges(t),this.historyTitle&&t[this.historyTitle]&&this.handleHistoryChanges()),this.storyview&&this.storyview.refreshEnd&&this.storyview.refreshEnd(t,i),e},i.prototype.handleHistoryChanges=function(){for(var t=this.wiki.getTiddlerDataCached(this.historyTitle,[]),e=0;e<t.length&&e<this.history.length&&t[e].title===this.history[e].title;)e++;for(;e<t.length;)this.storyview&&this.storyview.navigateTo&&this.storyview.navigateTo(t[e]),e++;this.history=t},i.prototype.handleListChanges=function(t){var e=this.list;if(this.list=this.getTiddlerList(),0===this.list.length){if(0===e.length)return this.refreshChildren(t);for(r=this.children.length-1;0<=r;r--)this.removeListItem(r);var i=this.findNextSiblingDomNode();return this.makeChildWidgets(this.getEmptyMessage()),this.renderChildren(this.parentDomNode,i),!0}0===e.length&&(this.removeChildDomNodes(),this.children=[]);for(var s=!1,r=0;r<this.list.length;r++){var h=this.findListItem(r,this.list[r]);if(void 0===h)this.insertListItem(r,this.list[r]),s=!0;else{for(var o=h-1;r<=o;o--)this.removeListItem(o),s=!0;h=this.children[r].refresh(t),s=s||h}}for(r=this.children.length-1;r>=this.list.length;r--)this.removeListItem(r),s=!0;return s},i.prototype.findListItem=function(t,e){for(;t<this.children.length;){if(this.children[t].parseTreeNode.itemTitle===e)return t;t++}},i.prototype.insertListItem=function(t,e){e=this.makeChildWidget(this.makeItemTemplate(e));e.parentDomNode=this.parentDomNode,this.children.splice(t,0,e);t=e.findNextSiblingDomNode();return e.render(this.parentDomNode,t),this.storyview&&this.storyview.insert&&this.storyview.insert(e),!0},i.prototype.removeListItem=function(t){var e=this.children[t];this.storyview&&this.storyview.remove?this.storyview.remove(e):e.removeChildDomNodes(),this.children.splice(t,1)},exports.list=i,(e.prototype=new t).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},e.prototype.execute=function(){this.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle),this.makeChildWidgets()},e.prototype.refresh=function(t){return this.refreshChildren(t)},exports.listitem=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/log.js":{"text":"!function(){'use strict';exports.baseClass='action-log',exports.name='log',exports.constructor=function(t,e){this.initialise(t,e)},exports.prototype={},exports.prototype.render=function(t){Object.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,t),Object.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this)}}();","type":"application/javascript","module-type":"widget-subclass"},"$:/core/modules/widgets/macrocall.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute(),this.renderChildren(e,t)},e.prototype.execute=function(){this.parseType=this.getAttribute('$type','text/vnd.tiddlywiki'),this.renderOutput=this.getAttribute('$output','text/html');var r=this.parseTreeNode.params?this.parseTreeNode.params.slice(0):[];$tw.utils.each(this.attributes,function(e,t){'$'!==t.charAt(0)&&r.push({name:t,value:e})});var e,i,t=this.parseTreeNode.name||this.getAttribute('$name'),s=this.getVariableInfo(t,{params:r}),a=s.text;e='text/html'===this.renderOutput?(t=this.parseTreeNode.isBlock?'blockParser':'inlineParser',s.srcVariable&&s.srcVariable[t]?e=s.srcVariable[t]:(e=this.wiki.parseText(this.parseType,a,{parseAsInline:!this.parseTreeNode.isBlock}),s.isCacheable&&s.srcVariable&&(s.srcVariable[t]=e)),e=e?e.tree:[],i={},$tw.utils.each(s.params,function(e){var t='__'+e.name+'__';i[t]={name:t,type:'string',value:e.value}}),[{type:'vars',attributes:i,children:e}]):'text/raw'===this.renderOutput?[{type:'text',text:a}]:[{type:'text',text:this.wiki.renderText('text/plain',this.parseType,a,{parentWidget:this})}],this.makeChildWidgets(e)},e.prototype.refresh=function(e){var t=this.computeAttributes();return 0<$tw.utils.count(t)?(this.refreshSelf(),!0):this.refreshChildren(e)},exports.macrocall=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/navigator.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.addEventListeners([{type:'tm-navigate',handler:'handleNavigateEvent'},{type:'tm-edit-tiddler',handler:'handleEditTiddlerEvent'},{type:'tm-delete-tiddler',handler:'handleDeleteTiddlerEvent'},{type:'tm-save-tiddler',handler:'handleSaveTiddlerEvent'},{type:'tm-cancel-tiddler',handler:'handleCancelTiddlerEvent'},{type:'tm-close-tiddler',handler:'handleCloseTiddlerEvent'},{type:'tm-close-all-tiddlers',handler:'handleCloseAllTiddlersEvent'},{type:'tm-close-other-tiddlers',handler:'handleCloseOtherTiddlersEvent'},{type:'tm-new-tiddler',handler:'handleNewTiddlerEvent'},{type:'tm-import-tiddlers',handler:'handleImportTiddlersEvent'},{type:'tm-perform-import',handler:'handlePerformImportEvent'},{type:'tm-fold-tiddler',handler:'handleFoldTiddlerEvent'},{type:'tm-fold-other-tiddlers',handler:'handleFoldOtherTiddlersEvent'},{type:'tm-fold-all-tiddlers',handler:'handleFoldAllTiddlersEvent'},{type:'tm-unfold-all-tiddlers',handler:'handleUnfoldAllTiddlersEvent'},{type:'tm-rename-tiddler',handler:'handleRenameTiddlerEvent'}]),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.storyTitle=this.getAttribute('story'),this.historyTitle=this.getAttribute('history'),this.setVariable('tv-story-list',this.storyTitle),this.setVariable('tv-history-list',this.historyTitle),this.story=new $tw.Story({wiki:this.wiki,storyTitle:this.storyTitle,historyTitle:this.historyTitle}),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.story||e.history?(this.refreshSelf(),!0):this.refreshChildren(t)},t.prototype.getStoryList=function(){return this.storyTitle?this.wiki.getTiddlerList(this.storyTitle):null},t.prototype.saveStoryList=function(t){var e;this.storyTitle&&(e=this.wiki.getTiddler(this.storyTitle),this.wiki.addTiddler(new $tw.Tiddler({title:this.storyTitle},e,{list:t})))},t.prototype.removeTitleFromStory=function(t,e){if(t)for(var i=t.indexOf(e);-1!==i;)t.splice(i,1),i=t.indexOf(e)},t.prototype.replaceFirstTitleInStory=function(t,e,i){if(t){var r=t.indexOf(e);if(-1!==r)for(t[r]=i;-1!==(r=t.indexOf(e,r+1))&&t.splice(r,1),-1!==r;);else t.splice(0,0,i)}},t.prototype.addToStory=function(t,e){this.storyTitle&&this.story.addToStory(t,e,{openLinkFromInsideRiver:this.getAttribute('openLinkFromInsideRiver','top'),openLinkFromOutsideRiver:this.getAttribute('openLinkFromOutsideRiver','top')})},t.prototype.addToHistory=function(t,e){this.story.addToHistory(t,e,this.historyTitle)},t.prototype.handleNavigateEvent=function(t){return(t=$tw.hooks.invokeHook('th-navigating',t)).navigateTo&&(this.addToStory(t.navigateTo,t.navigateFromTitle),t.navigateSuppressNavigation||this.addToHistory(t.navigateTo,t.navigateFromClientRect)),!1},t.prototype.handleCloseTiddlerEvent=function(t){var e=t.param||t.tiddlerTitle,t=this.getStoryList();return this.removeTitleFromStory(t,e),this.saveStoryList(t),!1},t.prototype.handleCloseAllTiddlersEvent=function(t){return this.saveStoryList([]),!1},t.prototype.handleCloseOtherTiddlersEvent=function(t){t=t.param||t.tiddlerTitle;return this.saveStoryList([t]),!1},t.prototype.handleEditTiddlerEvent=function(t){if(!$tw.hooks.invokeHook('th-editing-tiddler',t))return!1;var e=this;var i,r,d=t.param||t.tiddlerTitle;if(r=d,e.wiki.isShadowTiddler(r)&&!e.wiki.tiddlerExists(r)&&(i=d,!confirm($tw.language.getString('ConfirmEditShadowTiddler',{variables:{title:i}}))))return!1;var s=this.makeDraftTiddler(d);if(!t.paramObject||'yes'!==t.paramObject.suppressNavigation){var l=s.fields.title,s=this.getStoryList();return this.removeTitleFromStory(s,l),this.replaceFirstTitleInStory(s,d,l),this.addToHistory(l,t.navigateFromClientRect),this.saveStoryList(s),!1}},t.prototype.handleDeleteTiddlerEvent=function(t){var e=t.param||t.tiddlerTitle,i=this.wiki.getTiddler(e),r=this.getStoryList(),d=i?i.fields['draft.of']:'',s=d?this.wiki.getTiddler(d):void 0;return!!i&&(t=d||e,(!this.wiki.getTiddler(d)&&''===(i.fields.text||'')||confirm($tw.language.getString('ConfirmDeleteTiddler',{variables:{title:t}})))&&(d&&(s&&$tw.hooks.invokeHook('th-deleting-tiddler',s),this.wiki.deleteTiddler(d),this.removeTitleFromStory(r,d)),$tw.hooks.invokeHook('th-deleting-tiddler',i),this.wiki.deleteTiddler(e),this.removeTitleFromStory(r,e),this.saveStoryList(r),$tw.rootWidget.dispatchEvent({type:'tm-auto-save-wiki'})),!1)},t.prototype.makeDraftTiddler=function(t){if(i=this.wiki.findDraft(t))return this.wiki.getTiddler(i);var e=this.wiki.getTiddler(t),i=this.generateDraftTitle(t),t=new $tw.Tiddler({text:''},e,{title:i,'draft.title':t,'draft.of':t},this.wiki.getModificationFields());return this.wiki.addTiddler(t),t},t.prototype.generateDraftTitle=function(t){return this.wiki.generateDraftTitle(t)},t.prototype.handleSaveTiddlerEvent=function(t){var e,i,r,d,s=t.param||t.tiddlerTitle,l=this.wiki.getTiddler(s),o=this.getStoryList();return l&&(e=(l.fields['draft.title']||'').trim(),i=(l.fields['draft.of']||'').trim(),e&&(d=!0,(r=i!==e)&&this.wiki.tiddlerExists(e)&&(d=confirm($tw.language.getString('ConfirmOverwriteTiddler',{variables:{title:e}}))),d&&(d=new $tw.Tiddler(this.wiki.getCreationFields(),l,{title:e,'draft.title':void 0,'draft.of':void 0},this.wiki.getModificationFields()),d=$tw.hooks.invokeHook('th-saving-tiddler',d,l),this.wiki.addTiddler(d),d='yes'===this.getAttribute('relinkOnRename','no').toLowerCase().trim(),r&&d&&this.wiki.tiddlerExists(i)&&this.wiki.relinkTiddler(i,e),this.wiki.deleteTiddler(s),r&&this.wiki.deleteTiddler(i),this.removeTitleFromStory(o,e),this.removeTitleFromStory(o,i),t.paramObject&&'yes'===t.paramObject.suppressNavigation||(this.replaceFirstTitleInStory(o,s,e),this.addToHistory(e,t.navigateFromClientRect),e!==this.storyTitle&&this.saveStoryList(o)),$tw.rootWidget.dispatchEvent({type:'tm-auto-save-wiki'})))),!1},t.prototype.handleCancelTiddlerEvent=function(t){var e,i,r=(t=$tw.hooks.invokeHook('th-cancelling-tiddler',t)).param||t.tiddlerTitle,d=this.wiki.getTiddler(r),s=d&&d.fields['draft.of'];return d&&s&&(e=!0,i=this.wiki.getTiddler(s),d=this.getStoryList(),this.wiki.isDraftModified(r)&&(e=confirm($tw.language.getString('ConfirmCancelTiddler',{variables:{title:r}}))),e&&(this.wiki.deleteTiddler(r),t.paramObject&&'yes'===t.paramObject.suppressNavigation||(i?(this.replaceFirstTitleInStory(d,r,s),this.addToHistory(s,t.navigateFromClientRect)):this.removeTitleFromStory(d,r),this.saveStoryList(d)))),!1},t.prototype.handleNewTiddlerEvent=function(t){t=$tw.hooks.invokeHook('th-new-tiddler',t);var e,i,r,d,s,l=this.getStoryList();'string'==typeof t.param&&(e=this.wiki.getTiddler(t.param),r=this.wiki.generateNewTitle(t.param||$tw.language.getString('DefaultNewTiddlerTitle'))),'object'==typeof t.paramObject&&(i=t.paramObject),'object'==typeof t.param&&(i=t.param),i&&i.title&&(r=i.title);var o=$tw.utils.extend({},i);Object.keys(o).forEach(function(t){''===o[t]&&delete o[t]}),r=r||this.wiki.generateNewTitle($tw.language.getString('DefaultNewTiddlerTitle'));var n=[];(s=(d=this.wiki.findDraft(r))?this.wiki.getTiddler(d):(d=this.generateDraftTitle(r),this.wiki.getTiddler(r)))&&s.fields.tags&&$tw.utils.pushTop(n,s.fields.tags),i&&i.tags&&(n=$tw.utils.pushTop(n,$tw.utils.parseStringArray(i.tags))),e&&e.fields.tags&&(n=$tw.utils.pushTop(n,e.fields.tags));n=new $tw.Tiddler({text:'','draft.title':r},e,i,this.wiki.getCreationFields(),s,o,{title:d,'draft.of':r,tags:n},this.wiki.getModificationFields());return this.wiki.addTiddler(n),l&&-1===l.indexOf(d)&&(-1===(t=l.indexOf(t.navigateFromTitle))&&(t='bottom'===this.getAttribute('openLinkFromOutsideRiver','top')?l.length-1:t),l.splice(t+1,0,d)),l&&-1!==l.indexOf(r)&&l.splice(l.indexOf(r),1),this.saveStoryList(l),this.addToHistory(d),!1},t.prototype.handleImportTiddlersEvent=function(t){var e=[];try{e=JSON.parse(t.param)}catch(t){}var i=t.importTitle||'$:/Import',r=this.wiki.getTiddler(i),d=this.wiki.getTiddlerData(i,{}),s=new Object({title:i,type:'application/json','plugin-type':'import',status:'pending'}),l=[];d.tiddlers=d.tiddlers||{},$tw.utils.each(e,function(t){t.title=$tw.utils.trim(t.title);var e=t.title;e&&(l.push(e),d.tiddlers[e]=t)});var o=this.wiki.invokeUpgraders(l,d.tiddlers);return $tw.utils.each(o,function(t,e){s['message-'+e]=t}),$tw.utils.each(d.tiddlers,function(t,e){0===$tw.utils.count(t)&&(s['selection-'+e]='unchecked',s['suppressed-'+e]='yes')}),s.text=JSON.stringify(d,null,$tw.config.preferences.jsonSpaces),this.wiki.addTiddler(new $tw.Tiddler(r,s)),'no'!==(t.autoOpenOnImport||this.getVariable('tv-auto-open-on-import'))&&(o=[],(r=this.getStoryList())&&-1===r.indexOf(i)&&r.unshift(i),o.push(i),this.saveStoryList(r),this.addToHistory(o)),!1},t.prototype.handlePerformImportEvent=function(t){var i=this,r=this.wiki.getTiddler(t.param),e=this.wiki.getTiddlerDataCached(t.param,{tiddlers:{}}),d=[];d.push($tw.language.getString('Import/Imported/Hint')+'\\n'),$tw.utils.each(e.tiddlers,function(t){var e=t.title;e&&r&&'unchecked'!==r.fields['selection-'+e]&&(t=$tw.utils.hop(r.fields,['rename-'+e])?new $tw.Tiddler(t,{title:r.fields['rename-'+e]}):new $tw.Tiddler(t),t=$tw.hooks.invokeHook('th-importing-tiddler',t),i.wiki.addTiddler(t),d.push('# [['+t.fields.title+']]'))}),this.wiki.addTiddler(new $tw.Tiddler({title:t.param,text:d.join('\\n'),status:'complete'})),this.addToHistory([t.param]),$tw.rootWidget.dispatchEvent({type:'tm-auto-save-wiki'})},t.prototype.handleFoldTiddlerEvent=function(t){var e=t.paramObject||{};e.foldedState&&(t='show'===this.wiki.getTiddlerText(e.foldedState,'show')?'hide':'show',this.wiki.setText(e.foldedState,'text',null,t))},t.prototype.handleFoldOtherTiddlersEvent=function(e){var i=this,r=(e.paramObject||{}).foldedStatePrefix;$tw.utils.each(this.getStoryList(),function(t){i.wiki.setText(r+t,'text',null,e.param===t?'show':'hide')})},t.prototype.handleFoldAllTiddlersEvent=function(t){var e=this,i=(t.paramObject||{}).foldedStatePrefix||'$:/state/folded/';$tw.utils.each(this.getStoryList(),function(t){e.wiki.setText(i+t,'text',null,'hide')})},t.prototype.handleUnfoldAllTiddlersEvent=function(t){var e=this,i=(t.paramObject||{}).foldedStatePrefix;$tw.utils.each(this.getStoryList(),function(t){e.wiki.setText(i+t,'text',null,'show')})},t.prototype.handleRenameTiddlerEvent=function(t){var e={},i=t.paramObject||{},r=i.from||t.tiddlerTitle,t=i.to;e.dontRenameInTags='false'===i.renameInTags||'no'===i.renameInTags,e.dontRenameInLists='false'===i.renameInLists||'no'===i.renameInLists,this.wiki.renameTiddler(r,t,e)},exports.navigator=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/password.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute();var s=$tw.browser&&$tw.utils.getPassword(this.passwordName)||'',r=this.document.createElement('input');r.setAttribute('type','password'),r.setAttribute('value',s),$tw.utils.addEventListeners(r,[{name:'change',handlerObject:this,handlerMethod:'handleChangeEvent'}]),e.insertBefore(r,t),this.renderChildren(r,null),this.domNodes.push(r)},e.prototype.handleChangeEvent=function(e){var t=this.domNodes[0].value;return $tw.utils.savePassword(this.passwordName,t)},e.prototype.execute=function(){this.passwordName=this.getAttribute('name',''),this.makeChildWidgets()},e.prototype.refresh=function(e){return this.computeAttributes().name?(this.refreshSelf(),!0):this.refreshChildren(e)},exports.password=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/qualify.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.qualifyName=this.getAttribute('name'),this.qualifyTitle=this.getAttribute('title'),this.qualifyName&&this.setVariable(this.qualifyName,this.qualifyTitle+'-'+this.getStateQualifier()),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.name||e.title?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.qualify=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/radio.js":{"text":"!function(){'use strict';function t(t,i){this.initialise(t,i)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new i).render=function(t,i){this.parentDomNode=t,this.computeAttributes(),this.execute();var e=this.getValue()===this.radioValue;this.labelDomNode=this.document.createElement('label'),this.labelDomNode.setAttribute('class','tc-radio '+this.radioClass+(e?' tc-radio-selected':'')),this.inputDomNode=this.document.createElement('input'),this.inputDomNode.setAttribute('type','radio'),e&&this.inputDomNode.setAttribute('checked','true'),'yes'===this.isDisabled&&this.inputDomNode.setAttribute('disabled',!0),this.labelDomNode.appendChild(this.inputDomNode),this.spanDomNode=this.document.createElement('span'),this.labelDomNode.appendChild(this.spanDomNode),$tw.utils.addEventListeners(this.inputDomNode,[{name:'change',handlerObject:this,handlerMethod:'handleChangeEvent'}]),t.insertBefore(this.labelDomNode,i),this.renderChildren(this.spanDomNode,null),this.domNodes.push(this.labelDomNode)},t.prototype.getValue=function(){var t=this.wiki.getTiddler(this.radioTitle),t=this.radioIndex?this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex):t&&t.getFieldString(this.radioField);return t},t.prototype.setValue=function(){var t,i;this.radioIndex?this.wiki.setText(this.radioTitle,'',this.radioIndex,this.radioValue):(t=this.wiki.getTiddler(this.radioTitle),(i={})[this.radioField]=this.radioValue,this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title:this.radioTitle},t,i,this.wiki.getModificationFields())))},t.prototype.handleChangeEvent=function(t){this.inputDomNode.checked&&this.setValue(),this.radioActions&&this.invokeActionString(this.radioActions,this,t,{actionValue:this.radioValue})},t.prototype.execute=function(){this.radioTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.radioField=this.getAttribute('field','text'),this.radioIndex=this.getAttribute('index'),this.radioValue=this.getAttribute('value'),this.radioClass=this.getAttribute('class',''),this.isDisabled=this.getAttribute('disabled','no'),this.radioActions=this.getAttribute('actions',''),this.makeChildWidgets()},t.prototype.refresh=function(t){var i=this.computeAttributes();return 0<$tw.utils.count(i)||t[this.radioTitle]?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.radio=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/range.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.inputDomNode=this.document.createElement('input'),this.inputDomNode.setAttribute('type','range'),this.inputDomNode.setAttribute('class',this.elementClass),this.minValue&&this.inputDomNode.setAttribute('min',this.minValue),this.maxValue&&this.inputDomNode.setAttribute('max',this.maxValue),this.increment&&this.inputDomNode.setAttribute('step',this.increment),'yes'===this.isDisabled&&this.inputDomNode.setAttribute('disabled',!0),this.inputDomNode.value=this.getValue(),$tw.utils.addEventListeners(this.inputDomNode,[{name:'mousedown',handlerObject:this,handlerMethod:'handleMouseDownEvent'},{name:'mouseup',handlerObject:this,handlerMethod:'handleMouseUpEvent'},{name:'change',handlerObject:this,handlerMethod:'handleChangeEvent'},{name:'input',handlerObject:this,handlerMethod:'handleInputEvent'}]),t.insertBefore(this.inputDomNode,e),this.domNodes.push(this.inputDomNode)},t.prototype.getValue=function(){var t=this.wiki.getTiddler(this.tiddlerTitle),e=this.tiddlerField,i=this.defaultValue;return t&&(i=this.tiddlerIndex?this.wiki.extractTiddlerDataItem(t,this.tiddlerIndex,this.defaultValue):$tw.utils.hop(t.fields,e)?t.fields[e]||'':this.defaultValue),i},t.prototype.getActionVariables=function(t){t=t||{};var e=this.startValue!==this.inputDomNode.value?'yes':'no';return $tw.utils.extend({actionValue:this.inputDomNode.value,actionValueHasChanged:e},t)},t.prototype.handleMouseDownEvent=function(t){var e;this.mouseDown=!0,this.startValue=this.inputDomNode.value,this.handleEvent(t),this.actionsMouseDown&&(e=this.getActionVariables(),this.invokeActionString(this.actionsMouseDown,this,t,e))},t.prototype.handleMouseUpEvent=function(t){var e;this.mouseDown=!1,this.handleEvent(t),this.actionsMouseUp&&(e=this.getActionVariables(),this.invokeActionString(this.actionsMouseUp,this,t,e)),$tw.browser.isIE&&this.startValue!==this.inputDomNode.value&&(this.handleChangeEvent(t),this.startValue=this.inputDomNode.value)},t.prototype.handleChangeEvent=function(t){this.mouseDown&&this.handleInputEvent(t)},t.prototype.handleInputEvent=function(t){var e;this.handleEvent(t),this.actionsInput&&(e=this.getActionVariables({actionValueHasChanged:'yes'}),this.invokeActionString(this.actionsInput,this,t,e))},t.prototype.handleEvent=function(t){this.getValue()!==this.inputDomNode.value&&(this.tiddlerIndex?this.wiki.setText(this.tiddlerTitle,'',this.tiddlerIndex,this.inputDomNode.value):this.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value))},t.prototype.execute=function(){this.mouseUp=!0,this.tiddlerTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.tiddlerField=this.getAttribute('field','text'),this.tiddlerIndex=this.getAttribute('index'),this.minValue=this.getAttribute('min'),this.maxValue=this.getAttribute('max'),this.increment=this.getAttribute('increment'),this.defaultValue=this.getAttribute('default',''),this.elementClass=this.getAttribute('class',''),this.isDisabled=this.getAttribute('disabled','no'),this.actionsMouseDown=this.getAttribute('actionsStart',''),this.actionsMouseUp=this.getAttribute('actionsStop',''),this.actionsInput=this.getAttribute('actions',''),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();if(0<$tw.utils.count(e))return this.refreshSelf(),!0;var i=!1;return t[this.tiddlerTitle]&&(e=this.getValue(),this.inputDomNode.value!==e&&(this.inputDomNode.value=e),i=!0),this.refreshChildren(t)||i},exports.range=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/raw.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.execute();var r=this.document.createElement('div');r.innerHTML=this.parseTreeNode.html,e.insertBefore(r,t),this.domNodes.push(r)},e.prototype.execute=function(){},e.prototype.refresh=function(e){return!1},exports.raw=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/reveal.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var i=this.parseTreeNode.isBlock?'div':'span';this.revealTag&&-1===$tw.config.htmlUnsafeElements.indexOf(this.revealTag)&&(i=this.revealTag);i=this.document.createElement(i);this.domNode=i,this.assignDomNodeClasses(),this.style&&i.setAttribute('style',this.style),t.insertBefore(i,e),this.renderChildren(i,null),!i.isTiddlyWikiFakeDom&&'popup'===this.type&&this.isOpen&&(this.positionPopup(i),$tw.utils.addClass(i,'tc-popup')),this.isOpen||i.setAttribute('hidden','true'),this.domNodes.push(i)},t.prototype.positionPopup=function(t){var e,i;switch(t.style.position='absolute',t.style.zIndex='1000',this.position){case'left':e=this.popup.left-t.offsetWidth,i=this.popup.top;break;case'above':e=this.popup.left,i=this.popup.top-t.offsetHeight;break;case'aboveright':e=this.popup.left+this.popup.width,i=this.popup.top+this.popup.height-t.offsetHeight;break;case'belowright':e=this.popup.left+this.popup.width,i=this.popup.top+this.popup.height;break;case'right':e=this.popup.left+this.popup.width,i=this.popup.top;break;case'belowleft':e=this.popup.left+this.popup.width-t.offsetWidth,i=this.popup.top+this.popup.height;break;case'aboveleft':e=this.popup.left-t.offsetWidth,i=this.popup.top-t.offsetHeight;break;default:e=this.popup.left,i=this.popup.top+this.popup.height}this.positionAllowNegative||(e=Math.max(0,e),i=Math.max(0,i)),t.style.left=e+'px',t.style.top=i+'px'},t.prototype.execute=function(){this.state=this.getAttribute('state'),this.revealTag=this.getAttribute('tag'),this.type=this.getAttribute('type'),this.text=this.getAttribute('text'),this.position=this.getAttribute('position'),this.positionAllowNegative='yes'===this.getAttribute('positionAllowNegative'),this.style=this.getAttribute('style',''),this.default=this.getAttribute('default',''),this.animate=this.getAttribute('animate','no'),this.retain=this.getAttribute('retain','no'),this.openAnimation='no'===this.animate?void 0:'open',this.closeAnimation='no'===this.animate?void 0:'close',this.updatePopupPosition='yes'===this.getAttribute('updatePopupPosition','no'),this.stateTiddlerTitle=this.state,this.stateTitle=this.getAttribute('stateTitle'),this.stateField=this.getAttribute('stateField'),this.stateIndex=this.getAttribute('stateIndex'),this.readState();var t=this.isOpen?this.parseTreeNode.children:[];this.hasChildNodes=this.isOpen,this.makeChildWidgets(t)},t.prototype.readState=function(){var t,e,i=this.default;switch(null===(e=this.stateTitle?(t=this.wiki.getTiddler(this.stateTitle),this.stateField?t&&t.getFieldString(this.stateField)||i:this.stateIndex?t&&this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex)||i:t&&this.wiki.getTiddlerText(this.stateTitle)||i):this.stateTiddlerTitle?this.wiki.getTextReference(this.state,this.default,this.getVariable('currentTiddler')):this.default)&&(e=this.default),this.type){case'popup':this.readPopupState(e);break;case'match':this.isOpen=this.text===e;break;case'nomatch':this.isOpen=this.text!==e;break;case'lt':this.isOpen=!!(this.compareStateText(e)<0);break;case'gt':this.isOpen=!!(0<this.compareStateText(e));break;case'lteq':this.isOpen=!(0<this.compareStateText(e));break;case'gteq':this.isOpen=!(this.compareStateText(e)<0)}},t.prototype.compareStateText=function(t){return t.localeCompare(this.text,void 0,{numeric:!0,sensitivity:'case'})},t.prototype.readPopupState=function(t){t=/^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/.exec(t);t?(this.isOpen=!0,this.popup={left:parseFloat(t[1]),top:parseFloat(t[2]),width:parseFloat(t[3]),height:parseFloat(t[4])}):this.isOpen=!1},t.prototype.assignDomNodeClasses=function(){var t=this.getAttribute('class','').split(' ');t.push('tc-reveal'),this.domNode.className=t.join(' ')},t.prototype.refresh=function(t){var e=this.computeAttributes();if(e.state||e.type||e.text||e.position||e.positionAllowNegative||e.default||e.animate||e.stateTitle||e.stateField||e.stateIndex)return this.refreshSelf(),!0;var i=this.isOpen;if(this.readState(),this.isOpen!==i){if('yes'!==this.retain)return this.refreshSelf(),!0;this.updateState()}else'popup'===this.type&&this.updatePopupPosition&&(t[this.state]||t[this.stateTitle])&&this.positionPopup(this.domNode);return e.style&&(this.domNode.style=this.getAttribute('style','')),e.class&&this.assignDomNodeClasses(),this.refreshChildren(t)},t.prototype.updateState=function(){var t=this;this.readState();var e=this.domNodes[0];this.isOpen&&!this.hasChildNodes&&(this.hasChildNodes=!0,this.makeChildWidgets(this.parseTreeNode.children),this.renderChildren(e,null)),!e.isTiddlyWikiFakeDom&&'popup'===this.type&&this.isOpen&&(this.positionPopup(e),$tw.utils.addClass(e,'tc-popup')),this.isOpen?(e.removeAttribute('hidden'),$tw.anim.perform(this.openAnimation,e)):$tw.anim.perform(this.closeAnimation,e,{callback:function(){t.readState(),t.isOpen||e.setAttribute('hidden','true')}})},exports.reveal=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/scrollable.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).cancelScroll=function(){this.idRequestFrame&&(this.cancelAnimationFrame.call(window,this.idRequestFrame),this.idRequestFrame=null)},t.prototype.handleScrollEvent=function(t){return this.outerDomNode.scrollWidth<=this.outerDomNode.offsetWidth&&this.outerDomNode.scrollHeight<=this.outerDomNode.offsetHeight&&'yes'===this.fallthrough||(t.paramObject&&t.paramObject.selector?this.scrollSelectorIntoView(null,t.paramObject.selector):this.scrollIntoView(t.target),!1)},t.prototype.scrollIntoView=function(t){var e=$tw.utils.getAnimationDuration(),o=t?t.ownerDocument.defaultView:window;this.cancelScroll(),this.startTime=Date.now();var i,r,n={x:this.outerDomNode.scrollLeft,y:this.outerDomNode.scrollTop},s=this.outerDomNode.getBoundingClientRect(),t=t.getBoundingClientRect(),s={left:t.left+n.x-s.left,top:t.top+n.y-s.top,width:t.width,height:t.height},t=function(t,e,o,i){return o<=t&&t+e<=o+i?o:t<=o?t:e<i&&o<t+e-i?t+e-i:o<t?t:o},l=t(s.left,s.width,n.x,this.outerDomNode.offsetWidth),a=t(s.top,s.height,n.y,this.outerDomNode.offsetHeight);l===n.x&&a===n.y||(i=this,(r=function(){var t=e<=0?1:(Date.now()-i.startTime)/e;1<=t&&(i.cancelScroll(),t=1),t=$tw.utils.slowInSlowOut(t),i.outerDomNode.scrollLeft=n.x+(l-n.x)*t,i.outerDomNode.scrollTop=n.y+(a-n.y)*t,t<1&&(i.idRequestFrame=i.requestAnimationFrame.call(o,r))})())},t.prototype.scrollSelectorIntoView=function(t,e,o){e=(t=t||document.body).querySelector(e);e&&this.scrollIntoView(e,o)},t.prototype.render=function(t,e){this.scaleFactor=1,this.addEventListeners([{type:'tm-scroll',handler:'handleScrollEvent'}]),$tw.browser&&(this.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},this.cancelAnimationFrame=window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelAnimationFrame||window.mozCancelRequestAnimationFrame||function(t){window.clearTimeout(t)}),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.outerDomNode=this.document.createElement('div'),$tw.utils.setStyle(this.outerDomNode,[{overflowY:'auto'},{overflowX:'auto'},{webkitOverflowScrolling:'touch'}]),this.innerDomNode=this.document.createElement('div'),this.outerDomNode.appendChild(this.innerDomNode),this.outerDomNode.className=this.class||'',t.insertBefore(this.outerDomNode,e),this.renderChildren(this.innerDomNode,null),this.domNodes.push(this.outerDomNode)},t.prototype.execute=function(){this.fallthrough=this.getAttribute('fallthrough','yes'),this.class=this.getAttribute('class'),this.makeChildWidgets()},t.prototype.refresh=function(t){return this.computeAttributes().class?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.scrollable=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/select.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute(),this.renderChildren(e,t),this.setSelectValue(),$tw.utils.addEventListeners(this.getSelectDomNode(),[{name:'change',handlerObject:this,handlerMethod:'handleChangeEvent'}])},e.prototype.handleChangeEvent=function(e){var t;t=0==this.selectMultiple?this.getSelectDomNode().value:(t=this.getSelectValues(),$tw.utils.stringifyList(t)),this.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,t),this.selectActions&&this.invokeActionString(this.selectActions,this,e)},e.prototype.setSelectValue=function(){var e=this.selectDefault;if(this.selectIndex?e=this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,e):(l=this.wiki.getTiddler(this.selectTitle))?'text'===this.selectField?e=this.wiki.getTiddlerText(this.selectTitle):$tw.utils.hop(l.fields,this.selectField)&&(e=l.getFieldString(this.selectField)):'title'===this.selectField&&(e=this.selectTitle),this.selectMultiple){e=void 0===e?'':e;for(var t=this.getSelectDomNode(),i=Array.isArray(e)?e:$tw.utils.parseStringArray(e),s=0;s<t.children.length;s++)t.children[s].selected=-1!==i.indexOf(t.children[s].value)}else{var l=this.getSelectDomNode();l.value!==e&&(l.value=e)}},e.prototype.getSelectDomNode=function(){return this.children[0].domNodes[0]},e.prototype.getSelectValues=function(){for(var e,t=this.getSelectDomNode(),i=[],s=t&&t.options,l=0;l<s.length;l++)(e=s[l]).selected&&i.push(e.value||e.text);return i},e.prototype.execute=function(){this.selectActions=this.getAttribute('actions'),this.selectTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.selectField=this.getAttribute('field','text'),this.selectIndex=this.getAttribute('index'),this.selectClass=this.getAttribute('class'),this.selectDefault=this.getAttribute('default'),this.selectMultiple=this.getAttribute('multiple',!1),this.selectSize=this.getAttribute('size'),this.selectTooltip=this.getAttribute('tooltip');var e={type:'element',tag:'select',children:this.parseTreeNode.children};this.selectClass&&$tw.utils.addAttributeToParseTreeNode(e,'class',this.selectClass),this.selectMultiple&&$tw.utils.addAttributeToParseTreeNode(e,'multiple','multiple'),this.selectSize&&$tw.utils.addAttributeToParseTreeNode(e,'size',this.selectSize),this.selectTooltip&&$tw.utils.addAttributeToParseTreeNode(e,'title',this.selectTooltip),this.makeChildWidgets([e])},e.prototype.refresh=function(e){var t=this.computeAttributes();if(t.selectTitle||t.selectField||t.selectIndex||t.selectTooltip)return this.refreshSelf(),!0;t=this.refreshChildren(e);return(e[this.selectTitle]||t)&&this.setSelectValue(),t},exports.select=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/set.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.setName=this.getAttribute('name','currentTiddler'),this.setFilter=this.getAttribute('filter'),this.setSelect=this.getAttribute('select'),this.setTiddler=this.getAttribute('tiddler'),this.setSubTiddler=this.getAttribute('subtiddler'),this.setField=this.getAttribute('field'),this.setIndex=this.getAttribute('index'),this.setValue=this.getAttribute('value'),this.setEmptyValue=this.getAttribute('emptyValue'),this.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition),this.makeChildWidgets()},t.prototype.getValue=function(){var t,e,i=this.setValue;return this.setTiddler?i=(t=this.setSubTiddler?this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler):this.wiki.getTiddler(this.setTiddler))?this.setField?t.getFieldString(this.setField)||this.setEmptyValue:this.setIndex?this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue):t.fields.text||this.setEmptyValue:this.setEmptyValue:this.setFilter?(t=this.wiki.filterTiddlers(this.setFilter,this),null==this.setValue&&(this.setSelect&&(e=parseInt(this.setSelect,10)),i=void 0!==e?t[e]||'':$tw.utils.stringifyList(t)),0===t.length&&void 0!==this.setEmptyValue&&(i=this.setEmptyValue)):!i&&this.setEmptyValue&&(i=this.setEmptyValue),i||''},t.prototype.refresh=function(t){var e=this.computeAttributes();return e.name||e.filter||e.select||e.tiddler||this.setTiddler&&t[this.setTiddler]||e.field||e.index||e.value||e.emptyValue||this.setFilter&&this.getValue()!=this.variables[this.setName].value?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.setvariable=t,exports.set=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/text.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute();var r=(r=this.getAttribute('text',this.parseTreeNode.text||'')).replace(/\\r/gm,''),r=this.document.createTextNode(r);t.insertBefore(r,e),this.domNodes.push(r)},t.prototype.execute=function(){},t.prototype.refresh=function(t){return!!this.computeAttributes().text&&(this.refreshSelf(),!0)},exports.text=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/tiddler.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.tiddlerState=this.computeTiddlerState(),this.setVariable('currentTiddler',this.tiddlerState.currentTiddler),this.setVariable('missingTiddlerClass',this.tiddlerState.missingTiddlerClass),this.setVariable('shadowTiddlerClass',this.tiddlerState.shadowTiddlerClass),this.setVariable('systemTiddlerClass',this.tiddlerState.systemTiddlerClass),this.setVariable('tiddlerTagClasses',this.tiddlerState.tiddlerTagClasses),this.makeChildWidgets()},t.prototype.computeTiddlerState=function(){this.tiddlerTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler'));var t={currentTiddler:this.tiddlerTitle||'',missingTiddlerClass:this.wiki.tiddlerExists(this.tiddlerTitle)||this.wiki.isShadowTiddler(this.tiddlerTitle)?'tc-tiddler-exists':'tc-tiddler-missing',shadowTiddlerClass:this.wiki.isShadowTiddler(this.tiddlerTitle)?'tc-tiddler-shadow':'',systemTiddlerClass:this.wiki.isSystemTiddler(this.tiddlerTitle)?'tc-tiddler-system':'',tiddlerTagClasses:this.getTagClasses()};return t.hash=t.currentTiddler+t.missingTiddlerClass+t.shadowTiddlerClass+t.systemTiddlerClass+t.tiddlerTagClasses,t},t.prototype.getTagClasses=function(){var t=this.wiki.getTiddler(this.tiddlerTitle);if(t){var e=[];return $tw.utils.each(t.fields.tags,function(t){e.push('tc-tagged-'+encodeURIComponent(t))}),e.join(' ')}return''},t.prototype.refresh=function(t){var e=this.computeAttributes(),i=this.computeTiddlerState();return e.tiddler||i.hash!==this.tiddlerState.hash?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.tiddler=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/transclude.js":{"text":"!function(){'use strict';function e(e,t){this.initialise(e,t)}var t=require('$:/core/modules/widgets/widget.js').widget;(e.prototype=new t).render=function(e,t){this.parentDomNode=e,this.computeAttributes(),this.execute(),this.renderChildren(e,t)},e.prototype.execute=function(){this.transcludeTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.transcludeSubTiddler=this.getAttribute('subtiddler'),this.transcludeField=this.getAttribute('field'),this.transcludeIndex=this.getAttribute('index'),this.transcludeMode=this.getAttribute('mode'),this.recursionMarker=this.getAttribute('recursionMarker','yes');var e=!this.parseTreeNode.isBlock;'inline'===this.transcludeMode?e=!0:'block'===this.transcludeMode&&(e=!1);var t=this.wiki.parseTextReference(this.transcludeTitle,this.transcludeField,this.transcludeIndex,{parseAsInline:e,subTiddler:this.transcludeSubTiddler}),i=t?t.tree:this.parseTreeNode.children,e=this.makeRecursionMarker();'yes'===this.recursionMarker&&this.setVariable('transclusion',e),t&&this.parentWidget&&this.parentWidget.hasVariable('transclusion',e)&&(i=[{type:'element',tag:'span',attributes:{class:{type:'string',value:'tc-error'}},children:[{type:'text',text:$tw.language.getString('Error/RecursiveTransclusion')}]}]),this.makeChildWidgets(i)},e.prototype.makeRecursionMarker=function(){var e=[];return e.push('{'),e.push(this.getVariable('currentTiddler',{defaultValue:''})),e.push('|'),e.push(this.transcludeTitle||''),e.push('|'),e.push(this.transcludeField||''),e.push('|'),e.push(this.transcludeIndex||''),e.push('|'),e.push(this.transcludeSubTiddler||''),e.push('}'),e.join('')},e.prototype.refresh=function(e){var t=this.computeAttributes();return t.tiddler||t.field||t.index||e[this.transcludeTitle]?(this.refreshSelf(),!0):this.refreshChildren(e)},exports.transclude=e}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/vars.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var i=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=Object.create(i.prototype)).render=function(t,e){i.call(this),this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){var i=this;$tw.utils.each(this.attributes,function(t,e){'$'!==e.charAt(0)&&i.setVariable(e,t)}),this.makeChildWidgets()},t.prototype.refresh=function(t){var e=this.computeAttributes();return Object.keys(e).length?(this.refreshSelf(),!0):this.refreshChildren(t)},exports.vars=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/view.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){var i;this.parentDomNode=t,this.computeAttributes(),this.execute(),this.text?(i=this.document.createTextNode(this.text),t.insertBefore(i,e),this.domNodes.push(i)):(this.makeChildWidgets(),this.renderChildren(t,e))},t.prototype.execute=function(){switch(this.viewTitle=this.getAttribute('tiddler',this.getVariable('currentTiddler')),this.viewSubtiddler=this.getAttribute('subtiddler'),this.viewField=this.getAttribute('field','text'),this.viewIndex=this.getAttribute('index'),this.viewFormat=this.getAttribute('format','text'),this.viewTemplate=this.getAttribute('template',''),this.viewMode=this.getAttribute('mode','block'),this.viewFormat){case'htmlwikified':this.text=this.getValueAsHtmlWikified(this.viewMode);break;case'plainwikified':this.text=this.getValueAsPlainWikified(this.viewMode);break;case'htmlencodedplainwikified':this.text=this.getValueAsHtmlEncodedPlainWikified(this.viewMode);break;case'htmlencoded':this.text=this.getValueAsHtmlEncoded();break;case'urlencoded':this.text=this.getValueAsUrlEncoded();break;case'doubleurlencoded':this.text=this.getValueAsDoubleUrlEncoded();break;case'date':this.text=this.getValueAsDate(this.viewTemplate);break;case'relativedate':this.text=this.getValueAsRelativeDate();break;case'stripcomments':this.text=this.getValueAsStrippedComments();break;case'jsencoded':this.text=this.getValueAsJsEncoded();break;default:this.text=this.getValueAsText()}},t.prototype.getValue=function(t){var e,i=(t=t||{}).asString?'':void 0;return this.viewIndex?i=this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex):(e=this.viewSubtiddler?this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler):this.wiki.getTiddler(this.viewTitle))?'text'!==this.viewField||this.viewSubtiddler?$tw.utils.hop(e.fields,this.viewField)&&(i=t.asString?e.getFieldString(this.viewField):e.fields[this.viewField]):i=this.wiki.getTiddlerText(this.viewTitle):'title'===this.viewField&&(i=this.viewTitle),i},t.prototype.getValueAsText=function(){return this.getValue({asString:!0})},t.prototype.getValueAsHtmlWikified=function(t){return this.wiki.renderText('text/html','text/vnd.tiddlywiki',this.getValueAsText(),{parseAsInline:'block'!==t,parentWidget:this})},t.prototype.getValueAsPlainWikified=function(t){return this.wiki.renderText('text/plain','text/vnd.tiddlywiki',this.getValueAsText(),{parseAsInline:'block'!==t,parentWidget:this})},t.prototype.getValueAsHtmlEncodedPlainWikified=function(t){return $tw.utils.htmlEncode(this.wiki.renderText('text/plain','text/vnd.tiddlywiki',this.getValueAsText(),{parseAsInline:'block'!==t,parentWidget:this}))},t.prototype.getValueAsHtmlEncoded=function(){return $tw.utils.htmlEncode(this.getValueAsText())},t.prototype.getValueAsUrlEncoded=function(){return encodeURIComponent(this.getValueAsText())},t.prototype.getValueAsDoubleUrlEncoded=function(){return encodeURIComponent(encodeURIComponent(this.getValueAsText()))},t.prototype.getValueAsDate=function(t){t=t||'YYYY MM DD 0hh:0mm';var e=$tw.utils.parseDate(this.getValue());return e&&$tw.utils.isDate(e)&&'Invalid Date'!==e.toString()?$tw.utils.formatDateString(e,t):''},t.prototype.getValueAsRelativeDate=function(t){var e=$tw.utils.parseDate(this.getValue());return e&&$tw.utils.isDate(e)&&'Invalid Date'!==e.toString()?$tw.utils.getRelativeDate(new Date-new Date(e)).description:''},t.prototype.getValueAsStrippedComments=function(){for(var t=this.getValueAsText().split('\\n'),e=[],i=0;i<t.length;i++){var s=t[i];/^\\s*\\/\\/#/.test(s)||e.push(s)}return e.join('\\n')},t.prototype.getValueAsJsEncoded=function(){return $tw.utils.stringify(this.getValueAsText())},t.prototype.refresh=function(t){var e=this.computeAttributes();return!!(e.tiddler||e.field||e.index||e.template||e.format||t[this.viewTitle])&&(this.refreshSelf(),!0)},exports.view=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/widget.js":{"text":"!function(){'use strict';function r(t,e){this.initialise(t,e)}r.prototype.initialise=function(t,e){void 0!==t&&(e=e||{},this.parseTreeNode=t,this.wiki=e.wiki,this.parentWidget=e.parentWidget,this.variablesConstructor=function(){},this.variablesConstructor.prototype=this.parentWidget?this.parentWidget.variables:{},this.variables=new this.variablesConstructor,this.document=e.document,this.attributes={},this.children=[],this.domNodes=[],this.eventListeners={},this.widgetClasses||(r.prototype.widgetClasses=$tw.modules.applyMethods('widget'),$tw.modules.forEachModuleOfType('widget-subclass',function(t,e){if(e.baseClass){var i=r.prototype.widgetClasses[e.baseClass];if(!i)throw'Module \\''+t+'\\' is attemping to extend a non-existent base class \\''+e.baseClass+'\\'';t=e.constructor;t.prototype=new i,$tw.utils.extend(t.prototype,e.prototype),r.prototype.widgetClasses[e.name||e.baseClass]=t}})))},r.prototype.render=function(t,e){this.parentDomNode=t,this.execute(),this.renderChildren(t,e)},r.prototype.execute=function(){this.makeChildWidgets()},r.prototype.setVariable=function(t,e,i,r){this.variables[t]={value:e,params:i,isMacroDefinition:!!r}},r.prototype.getVariableInfo=function(t,e){var i=(e=e||{}).params||[],r=this.parentWidget;if(r&&t in r.variables){var n=r.variables[t],s=n.value,o=s,r=this.resolveVariableParameters(n.params,i);return $tw.utils.each(r,function(t){o=$tw.utils.replaceString(o,new RegExp('\\\\$'+$tw.utils.escapeRegExp(t.name)+'\\\\$','mg'),t.value)}),n.isMacroDefinition&&(o=this.substituteVariableReferences(o)),{text:o,params:r,srcVariable:n,isCacheable:s===o}}return{text:this.evaluateMacroModule(t,i,e.defaultValue)}},r.prototype.getVariable=function(t,e){return this.getVariableInfo(t,e).text},r.prototype.resolveVariableParameters=function(t,e){t=t||[],e=e||[];for(var i,r,n=0,s=[],o=0;o<t.length;o++){i=t[o],r=void 0;for(var a=0;a<e.length;a++)e[a].name===i.name&&(r=e[a].value);for(;n<e.length&&e[n].name;)n++;void 0===r&&n<e.length&&(r=e[n++].value),r=r||i.default||'',s.push({name:i.name,value:r})}return s},r.prototype.substituteVariableReferences=function(t){var n=this;return(t||'').replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(t,e,i,r){return n.getVariable(e,{defaultValue:''})})},r.prototype.evaluateMacroModule=function(t,e,i){if($tw.utils.hop($tw.macros,t)){var r=$tw.macros[t],n=[];if(0<r.params.length)for(var s,o,a=0,l=0;l<r.params.length;l++){s=r.params[l],o=void 0;for(var h=0;h<e.length;h++)e[h].name===s.name&&(o=e[h].value);for(;a<e.length&&e[a].name;)a++;void 0===o&&a<e.length&&(o=e[a++].value),o=o||s.default||'',n.push(o)}else for(var u=0;u<e.length;++u)n.push(e[u].value);return(r.run.apply(this,n)||'').toString()}return i},r.prototype.hasVariable=function(t,e){for(var i=this;i;){if($tw.utils.hop(i.variables,t)&&i.variables[t].value===e)return!0;i=i.parentWidget}return!1},r.prototype.getStateQualifier=function(t){if(this.qualifiers=this.qualifiers||Object.create(null),t=t||'transclusion',this.qualifiers[t])return this.qualifiers[t];for(var e=[],i=this;i&&i.parentWidget;)$tw.utils.hop(i.parentWidget.variables,t)&&e.push(i.getVariable(t)),i=i.parentWidget;var r=$tw.utils.hashString(e.join(''));return this.qualifiers[t]=r},r.prototype.computeAttributes=function(){var i,r={},n=this;return $tw.utils.each(this.parseTreeNode.attributes,function(t,e){i='filtered'===t.type?n.wiki.filterTiddlers(t.filter,n)[0]||'':'indirect'===t.type?n.wiki.getTextReference(t.textReference,'',n.getVariable('currentTiddler')):'macro'===t.type?n.getVariable(t.value.name,{params:t.value.params}):t.value,n.attributes[e]!==i&&(n.attributes[e]=i,r[e]=!0)}),r},r.prototype.hasAttribute=function(t){return $tw.utils.hop(this.attributes,t)},r.prototype.getAttribute=function(t,e){return $tw.utils.hop(this.attributes,t)?this.attributes[t]:e},r.prototype.assignAttributes=function(r,n){n=n||{};$tw.utils.each(this.attributes,function(t,e){if(n.excludeEventAttributes&&'on'===e.substr(0,2)&&(t=void 0),void 0!==t){var i=e.split(':');try{2==i.length&&'xlink'==i[0]?r.setAttributeNS('http://www.w3.org/1999/xlink',i[1],t):r.setAttributeNS(null,e,t)}catch(t){}}})},r.prototype.makeChildWidgets=function(t){this.children=[];var e=this;$tw.utils.each(t||this.parseTreeNode&&this.parseTreeNode.children,function(t){e.children.push(e.makeChildWidget(t))})},r.prototype.makeChildWidget=function(t){var e=this.widgetClasses[t.type];return e||(e=this.widgetClasses.text,t={type:'text',text:'Undefined widget \\''+t.type+'\\''}),new e(t,{wiki:this.wiki,variables:{},parentWidget:this,document:this.document})},r.prototype.nextSibling=function(){if(this.parentWidget){var t=this.parentWidget.children.indexOf(this);if(-1!==t&&t<this.parentWidget.children.length-1)return this.parentWidget.children[t+1]}return null},r.prototype.previousSibling=function(){if(this.parentWidget){var t=this.parentWidget.children.indexOf(this);if(-1!==t&&0<t)return this.parentWidget.children[t-1]}return null},r.prototype.renderChildren=function(t,e){for(var i=this.children,r=0;r<i.length;r++)i[r].render(t,e)},r.prototype.addEventListeners=function(t){var e=this;$tw.utils.each(t,function(t){e.addEventListener(t.type,t.handler)})},r.prototype.addEventListener=function(t,e){var i=this;this.eventListeners[t]='string'==typeof e?function(t){return i[e].call(i,t)}:function(t){return e.call(i,t)}},r.prototype.dispatchEvent=function(t){t.widget=t.widget||this;var e=this.eventListeners[t.type];return!(e&&!e(t))&&(!this.parentWidget||this.parentWidget.dispatchEvent(t))},r.prototype.refresh=function(t){return this.refreshChildren(t)},r.prototype.refreshSelf=function(){var t=this.findNextSiblingDomNode();this.removeChildDomNodes(),this.render(this.parentDomNode,t)},r.prototype.refreshChildren=function(t){for(var e=this.children,i=!1,r=0;r<e.length;r++)i=e[r].refresh(t)||i;return i},r.prototype.findNextSiblingDomNode=function(t){var e=this.parentWidget,i=void 0!==t?t:e.children.indexOf(this);if(-1===i)throw'node not found in parents children';for(;++i<e.children.length;){var r=e.children[i].findFirstDomNode();if(r)return r}t=e.parentWidget;return t&&e.parentDomNode===this.parentDomNode&&-1!==(i=t.children.indexOf(e))?e.findNextSiblingDomNode(i):null},r.prototype.findFirstDomNode=function(){if(0<this.domNodes.length)return this.domNodes[0];for(var t=0;t<this.children.length;t++){var e=this.children[t].findFirstDomNode();if(e)return e}return null},r.prototype.removeChildDomNodes=function(){0<this.domNodes.length?($tw.utils.each(this.domNodes,function(t){t.parentNode.removeChild(t)}),this.domNodes=[]):$tw.utils.each(this.children,function(t){t.removeChildDomNodes()})},r.prototype.invokeActions=function(t,e){for(var i=!1,r=0;r<this.children.length;r++){var n=this.children[r];n.invokeAction&&(n.refreshSelf(),n.invokeAction(t,e)&&(i=!0)),n.allowActionPropagation()&&n.invokeActions(t,e)&&(i=!0)}return i},r.prototype.invokeActionString=function(t,e,i,r){t=t||'';t=this.wiki.parseText('text/vnd.tiddlywiki',t,{parentWidget:this,document:this.document}),t=this.wiki.makeWidget(t,{parentWidget:this,document:this.document,variables:r}),r=this.document.createElement('div');return t.render(r,null),t.invokeActions(this,i)},r.prototype.invokeActionsByTag=function(t,e,i){var r=this;$tw.utils.each(r.wiki.filterTiddlers('[all[shadows+tiddlers]tag['+t+']!has[draft.of]]'),function(t){r.invokeActionString(r.wiki.getTiddlerText(t),r,e,i)})},r.prototype.allowActionPropagation=function(){return!0},exports.widget=r}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/widgets/wikify.js":{"text":"!function(){'use strict';function t(t,e){this.initialise(t,e)}var e=require('$:/core/modules/widgets/widget.js').widget;(t.prototype=new e).render=function(t,e){this.parentDomNode=t,this.computeAttributes(),this.execute(),this.renderChildren(t,e)},t.prototype.execute=function(){this.wikifyName=this.getAttribute('name'),this.wikifyText=this.getAttribute('text'),this.wikifyType=this.getAttribute('type'),this.wikifyMode=this.getAttribute('mode','block'),this.wikifyOutput=this.getAttribute('output','text'),this.wikifyParser=this.wiki.parseText(this.wikifyType,this.wikifyText,{parseAsInline:'inline'===this.wikifyMode}),this.wikifyWidgetNode=this.wiki.makeWidget(this.wikifyParser,{document:$tw.fakeDocument,parentWidget:this}),this.wikifyContainer=$tw.fakeDocument.createElement('div'),this.wikifyWidgetNode.render(this.wikifyContainer,null),this.wikifyResult=this.getResult(),this.setVariable(this.wikifyName,this.wikifyResult),this.makeChildWidgets()},t.prototype.getResult=function(){var t;switch(this.wikifyOutput){case'text':t=this.wikifyContainer.textContent;break;case'formattedtext':t=this.wikifyContainer.formattedTextContent;break;case'html':t=this.wikifyContainer.innerHTML;break;case'parsetree':t=JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);break;case'widgettree':t=JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces)}return t},t.prototype.getWidgetTree=function(){var r=function(i,s){var t=i.parseTreeNode.type;switch(s.type=t){case'element':s.tag=i.parseTreeNode.tag;break;case'text':s.text=i.parseTreeNode.text}0<Object.keys(i.attributes||{}).length&&(s.attributes={},$tw.utils.each(i.attributes,function(t,e){s.attributes[e]=i.getAttribute(e)})),0<Object.keys(i.children||{}).length&&(s.children=[],$tw.utils.each(i.children,function(t){var e={};s.children.push(e),r(t,e)}))},t={};return r(this.wikifyWidgetNode,t),t},t.prototype.refresh=function(t){var e=this.computeAttributes();if(e.name||e.text||e.type||e.mode||e.output)return this.refreshSelf(),!0;if(this.wikifyWidgetNode.refresh(t)){e=this.getResult();if(e!==this.wikifyResult)return this.wikifyResult=e,this.setVariable(this.wikifyName,this.wikifyResult),$tw.utils.each(this.children,function(t){t.refreshSelf()}),!0}return this.refreshChildren(t)},exports.wikify=t}();","type":"application/javascript","module-type":"widget"},"$:/core/modules/wiki-bulkops.js":{"text":"!function(){'use strict';exports.renameTiddler=function(i,t,e){var d,l;i=(i||'').trim(),t=(t||'').trim(),e=e||{},i&&t&&i!==t&&(d=this.getTiddler(i),l=new $tw.Tiddler(d,{title:t},this.getModificationFields()),l=$tw.hooks.invokeHook('th-renaming-tiddler',l,d),this.addTiddler(l),this.deleteTiddler(i),this.relinkTiddler(i,t,e))},exports.relinkTiddler=function(n,o,r){var a=this;n=(n||'').trim(),o=(o||'').trim(),r=r||{},n&&o&&n!==o&&this.each(function(e,i){var d,l,s,t=e.fields.type||'';e.fields['plugin-type']||'application/javascript'===t||(d=e.fields.tags?e.fields.tags.slice(0):void 0,l=e.fields.list?e.fields.list.slice(0):void 0,s=!1,r.dontRenameInTags||$tw.utils.each(d,function(i,t){i===n&&(console.log('Renaming tag \\''+d[t]+'\\' to \\''+o+'\\' of tiddler \\''+e.fields.title+'\\''),d[t]=o,s=!0)}),r.dontRenameInLists||$tw.utils.each(l,function(i,t){i===n&&(console.log('Renaming list item \\''+l[t]+'\\' to \\''+o+'\\' of tiddler \\''+e.fields.title+'\\''),l[t]=o,s=!0)}),s&&(t=new $tw.Tiddler(e,{tags:d,list:l},a.getModificationFields()),t=$tw.hooks.invokeHook('th-relinking-tiddler',t,e),a.addTiddler(t)))})}}();","type":"application/javascript","module-type":"wikimethod"},"$:/core/modules/wiki.js":{"text":"!function(){'use strict';var s=require('$:/core/modules/widgets/widget.js'),i='$:/status/UserName',r='$:/config/TimestampDisable';exports.addIndexersToWiki=function(){var i=this;$tw.utils.each($tw.modules.applyMethods('indexer'),function(e,t){i.addIndexer(new e(i),t)})},exports.getTextReference=function(e,t,i){var r=$tw.utils.parseTextReference(e),e=r.title||i;if(r.field){i=this.getTiddler(e);return'title'===r.field?e:i&&$tw.utils.hop(i.fields,r.field)?i.getFieldString(r.field):t}return r.index?this.extractTiddlerDataItem(e,r.index,t):this.getTiddlerText(e,t)},exports.setTextReference=function(e,t,i){e=$tw.utils.parseTextReference(e),i=e.title||i;this.setText(i,e.field,e.index,t)},exports.setText=function(e,t,i,r,s){var n,l=(s=s||{}).suppressTimestamp?{}:this.getCreationFields(),s=s.suppressTimestamp?{}:this.getModificationFields();i?(n=this.getTiddlerData(e,Object.create(null)),void 0!==r?n[i]=r:delete n[i],this.setTiddlerData(e,n,s)):(n=this.getTiddler(e),(e={title:e})[t||'text']=r,this.addTiddler(new $tw.Tiddler(l,n,e,s)))},exports.deleteTextReference=function(e,t){var i=$tw.utils.parseTextReference(e);i.title&&!i.field?this.deleteTiddler(i.title):i.field&&(e=i.title||t,(t=this.getTiddler(e))&&$tw.utils.hop(t.fields,i.field)&&((e=Object.create(null))[i.field]=void 0,this.addTiddler(new $tw.Tiddler(t,e,this.getModificationFields()))))},exports.addEventListener=function(e,t){this.eventListeners=this.eventListeners||{},this.eventListeners[e]=this.eventListeners[e]||[],this.eventListeners[e].push(t)},exports.removeEventListener=function(e,t){e=this.eventListeners[e];!e||-1!==(t=e.indexOf(t))&&e.splice(t,1)},exports.dispatchEvent=function(e){var t=Array.prototype.slice.call(arguments,1),i=this.eventListeners[e];if(i)for(var r=0;r<i.length;r++){var s=i[r];s.apply(s,t)}},exports.enqueueTiddlerEvent=function(e,t){var i;this.changedTiddlers=this.changedTiddlers||Object.create(null),this.changedTiddlers[e]=this.changedTiddlers[e]||Object.create(null),this.changedTiddlers[e][t?'deleted':'modified']=!0,this.changeCount=this.changeCount||Object.create(null),$tw.utils.hop(this.changeCount,e)?this.changeCount[e]++:this.changeCount[e]=1,this.eventListeners=this.eventListeners||{},this.eventsTriggered||(i=this,$tw.utils.nextTick(function(){var e=i.changedTiddlers;i.changedTiddlers=Object.create(null),i.eventsTriggered=!1,0<$tw.utils.count(e)&&i.dispatchEvent('change',e)}),this.eventsTriggered=!0)},exports.getSizeOfTiddlerEventQueue=function(){return $tw.utils.count(this.changedTiddlers)},exports.clearTiddlerEventQueue=function(){this.changedTiddlers=Object.create(null),this.changeCount=Object.create(null)},exports.getChangeCount=function(e){return this.changeCount=this.changeCount||Object.create(null),$tw.utils.hop(this.changeCount,e)?this.changeCount[e]:0},exports.generateNewTitle=function(e,t){t=t||{};for(var i=0,r=e;this.tiddlerExists(r)||this.isShadowTiddler(r)||this.findDraft(r);)r=e+(t.prefix||' ')+ ++i;return r},exports.isSystemTiddler=function(e){return e&&0===e.indexOf('$:/')},exports.isTemporaryTiddler=function(e){return e&&0===e.indexOf('$:/temp/')},exports.isImageTiddler=function(e){e=this.getTiddler(e);if(e){e=$tw.config.contentTypeInfo[e.fields.type||'text/vnd.tiddlywiki'];return!!e&&-1!==e.flags.indexOf('image')}return null},exports.isBinaryTiddler=function(e){e=this.getTiddler(e);if(e){e=$tw.config.contentTypeInfo[e.fields.type||'text/vnd.tiddlywiki'];return!!e&&'base64'===e.encoding}return null},exports.importTiddler=function(e){var t=this.getTiddler(e.fields.title);return!(e&&e.hasField('plugin-type')&&e.hasField('version')&&t&&t.hasField('plugin-type')&&t.hasField('version')&&!$tw.utils.checkVersions(e.fields.version,t.fields.version))&&(this.addTiddler(e),!0)},exports.getCreationFields=function(){if('yes'===this.getTiddlerText(r,'').toLowerCase())return{};var e={created:new Date},t=this.getTiddlerText(i);return t&&(e.creator=t),e},exports.getModificationFields=function(){if('yes'===this.getTiddlerText(r,'').toLowerCase())return{};var e=Object.create(null),t=this.getTiddlerText(i);return e.modified=new Date,t&&(e.modifier=t),e},exports.getTiddlers=function(i){i=i||Object.create(null);var e,r=this,s=i.sortField||'title',n=[],t=[];for(this.each(function(e,t){!i.includeSystem&&r.isSystemTiddler(t)||i.excludeTag&&e.hasTag(i.excludeTag)||n.push(e)}),n.sort(function(e,t){e=e.fields[s].toLowerCase()||'',t=t.fields[s].toLowerCase()||'';return e<t?-1:t<e?1:0}),e=0;e<n.length;e++)t.push(n[e].fields.title);return t},exports.countTiddlers=function(e){e=this.getTiddlers({excludeTag:e});return $tw.utils.count(e)},exports.makeTiddlerIterator=function(e){var i=this;return e=$tw.utils.isArray(e)?e.slice(0):Object.keys(e),function(t){e.forEach(function(e){t(i.getTiddler(e),e)})}},exports.sortTiddlers=function(e,l,d,a,o,c){var u=this;e.sort(function(e,t){var i,r,s,n;return'title'!==l&&(i=u.getTiddler(e),r=u.getTiddler(t),e=i&&i.fields[l]||'',t=r&&r.fields[l]||''),i=Number(e),r=Number(t),!o||isNaN(i)&&isNaN(r)?$tw.utils.isDate(e)&&$tw.utils.isDate(t)?d?t-e:e-t:c?d?t.localeCompare(e,void 0,{numeric:!0,sensitivity:'base'}):e.localeCompare(t,void 0,{numeric:!0,sensitivity:'base'}):(e=String(e),t=String(t),a||(e=e.toLowerCase(),t=t.toLowerCase()),d?t.localeCompare(e):e.localeCompare(t)):(s=i,n=r,isNaN(s)&&!isNaN(n)?d?-1:1:!isNaN(s)&&isNaN(n)?d?1:-1:d?n-s:s-n)})},exports.forEachTiddler=function(){for(var e,t=0,i=2<=arguments.length?arguments[t++]:{},r=arguments[t++],s=this.getTiddlers(i),n=0;n<s.length;n++)(e=this.getTiddler(s[n]))&&r.call(this,e.fields.title,e)},exports.extractLinks=function(e){var s=[],n=function(e){for(var t=0;t<e.length;t++){var i,r=e[t];'link'===r.type&&r.attributes.to&&'string'===r.attributes.to.type&&(i=r.attributes.to.value,-1===s.indexOf(i)&&s.push(i)),r.children&&n(r.children)}};return n(e),s},exports.getTiddlerLinks=function(t){var i=this;return this.getCacheForTiddler(t,'links',function(){var e=i.parseTiddler(t);return e?i.extractLinks(e.tree):[]})},exports.getTiddlerBacklinks=function(i){var r=this,e=this.getIndexer('BacklinksIndexer'),s=e&&e.lookup(i);return s||(s=[],this.forEachTiddler(function(e,t){-1!==r.getTiddlerLinks(e).indexOf(i)&&s.push(e)})),s},exports.getMissingTitles=function(){var i=this,r=[];return this.forEachTiddler(function(e,t){e=i.getTiddlerLinks(e);$tw.utils.each(e,function(e){i.tiddlerExists(e)||i.isShadowTiddler(e)||-1!==r.indexOf(e)||r.push(e)})}),r},exports.getOrphanTitles=function(){var i=this,r=this.getTiddlers();return this.forEachTiddler(function(e,t){e=i.getTiddlerLinks(e);$tw.utils.each(e,function(e){e=r.indexOf(e);-1!==e&&r.splice(e,1)})}),r},exports.getTiddlersWithTag=function(t){var i=this,e=this.getIndexer('TagIndexer');return e&&e.subIndexers[3].lookup(t)||this.getGlobalCache('taglist-'+t,function(){var e=i.getTagMap();return i.sortByList(e[t],t)})},exports.getTagMap=function(){var r=this;return this.getGlobalCache('tagmap',function(){function i(e,t){if(e)for(var i=0;i<e.length;i++){var r=e[i];$tw.utils.hop(s,r)?s[r].push(t):s[r]=[t]}}var s=Object.create(null);return r.eachShadow(function(e,t){r.tiddlerExists(t)||(e=r.getTiddler(t),i(e.fields.tags,t))}),r.each(function(e,t){i(e.fields.tags,t)}),s})},exports.findListingsOfTiddler=function(i,r){r=r||'list';var s=[];return this.each(function(e,t){e=$tw.utils.parseStringArray(e.fields[r]);e&&-1!==e.indexOf(i)&&s.push(t)}),s},exports.sortByList=function(e,t){var n=this,l=Object.create(null);var i=this.getTiddlerList(t);if(e&&0!==e.length){for(var r,d=[],s=0;s<i.length;s++)r=i[s],-1!==e.indexOf(r)&&d.push(r);for(s=0;s<e.length;s++)r=e[s],-1===i.indexOf(r)&&d.push(r);var a=d.slice(0);for(s=0;s<a.length;s++)(function e(t){var i,r,s;$tw.utils.hop(l,t)||(l[t]=!0,i=-1,(s=n.getTiddler(t))&&(r=s.fields['list-before'],s=s.fields['list-after'],''===r?i=0:''===s?i=d.length:r?(e(r),i=d.indexOf(r)):s&&(e(s),0<=(i=d.indexOf(s))&&++i),-1===i||0<=(s=d.indexOf(t))&&i!==s&&(d.splice(s,1),s<=i&&i--,d.splice(i,0,t))))})(r=a[s]);return d}return[]},exports.getSubTiddler=function(e,t){e=this.getPluginInfo(e)||this.getTiddlerDataCached(e);if(e&&e.tiddlers){t=e.tiddlers[t];if(t)return new $tw.Tiddler(t)}return null},exports.getTiddlerAsJson=function(e){var i=this.getTiddler(e);if(i){var r=Object.create(null);return $tw.utils.each(i.fields,function(e,t){r[t]=i.getFieldString(t)}),JSON.stringify(r)}return JSON.stringify({title:e})},exports.getTiddlersAsJson=function(e,t){for(var i=this.filterTiddlers(e),t=void 0===t?$tw.config.preferences.jsonSpaces:t,r=[],s=0;s<i.length;s++){var n=this.getTiddler(i[s]);if(n){var l,d=new Object;for(l in n.fields)d[l]=n.getFieldString(l);r.push(d)}}return JSON.stringify(r,null,t)},exports.getTiddlerDataCached=function(e,t){var i=this,r=e;return r instanceof $tw.Tiddler||(r=this.getTiddler(r)),r&&this.getCacheForTiddler(r.fields.title,'data',function(){var e=i.getTiddlerData(r.fields.title,void 0);return $tw.utils.deepFreeze(e),e})||t},exports.getTiddlerData=function(e,t){var i,r=e;if(r instanceof $tw.Tiddler||(r=this.getTiddler(r)),r&&r.fields.text)switch(r.fields.type){case'application/json':try{i=JSON.parse(r.fields.text)}catch(e){return t}return i;case'application/x-tiddler-dictionary':return $tw.utils.parseFields(r.fields.text)}return t},exports.extractTiddlerDataItem=function(e,t,i){var r,e=this.getTiddlerDataCached(e,Object.create(null));return e&&$tw.utils.hop(e,t)&&(r=e[t]),'string'==typeof r||'number'==typeof r?r.toString():i},exports.setTiddlerData=function(e,t,i){var r=this.getTiddler(e),e={title:e};r&&'application/x-tiddler-dictionary'===r.fields.type?e.text=$tw.utils.makeTiddlerDictionary(t):(e.type='application/json',e.text=JSON.stringify(t,null,$tw.config.preferences.jsonSpaces)),this.addTiddler(new $tw.Tiddler(this.getCreationFields(),r,i,e,this.getModificationFields()))},exports.getTiddlerList=function(e,t,i){if(i)return $tw.utils.parseStringArray(this.extractTiddlerDataItem(e,i,''));t=t||'list';e=this.getTiddler(e);return e?($tw.utils.parseStringArray(e.fields[t])||[]).slice(0):[]},exports.getGlobalCache=function(e,t){return this.globalCache=this.globalCache||Object.create(null),$tw.utils.hop(this.globalCache,e)||(this.globalCache[e]=t()),this.globalCache[e]},exports.clearGlobalCache=function(){this.globalCache=Object.create(null)},exports.getCacheForTiddler=function(e,t,i){this.caches=this.caches||Object.create(null);var r=this.caches[e];return r&&r[t]||(r||(r=Object.create(null),this.caches[e]=r),r[t]=i()),r[t]},exports.clearCache=function(e){e?(this.caches=this.caches||Object.create(null),$tw.utils.hop(this.caches,e)&&delete this.caches[e]):this.caches=Object.create(null)},exports.initParsers=function(e){$tw.Wiki.parsers={};$tw.modules.forEachModuleOfType('parser',function(e,t){for(var i in t)$tw.utils.hop(t,i)&&($tw.Wiki.parsers[i]=t[i])}),$tw.Wiki.parsers['application/octet-stream']&&Object.keys($tw.config.contentTypeInfo).forEach(function(e){$tw.utils.hop($tw.Wiki.parsers,e)||'base64'!==$tw.config.contentTypeInfo[e].encoding||($tw.Wiki.parsers[e]=$tw.Wiki.parsers['application/octet-stream'])})},exports.parseText=function(e,t,i){t=t||'',i=i||{};var r=$tw.Wiki.parsers[e];return!r&&$tw.utils.getFileExtensionInfo(e)&&(r=$tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(e).type]),(r=r||$tw.Wiki.parsers[i.defaultType||'text/vnd.tiddlywiki'])?new r(e,t,{parseAsInline:i.parseAsInline,wiki:this,_canonical_uri:i._canonical_uri}):null},exports.parseTiddler=function(e,t){var i=(t=$tw.utils.extend({},t)).parseAsInline?'inlineParseTree':'blockParseTree',r=this.getTiddler(e),s=this;return r?this.getCacheForTiddler(e,i,function(){return r.hasField('_canonical_uri')&&(t._canonical_uri=r.fields._canonical_uri),s.parseText(r.fields.type,r.fields.text,t)}):null},exports.parseTextReference=function(e,t,i,r){var s,n;if(r.subTiddler)s=this.getSubTiddler(e,r.subTiddler);else if(s=this.getTiddler(e),'text'===t||!t&&!i)return this.getTiddlerText(e),this.parseTiddler(e,r);if('text'===t||!t&&!i)return s&&s.fields?this.parseText(s.fields.type,s.fields.text,r):null;if(t){if('title'===t)n=e;else{if(!s||!s.hasField(t))return null;n=s.fields[t]}return this.parseText('text/vnd.tiddlywiki',n.toString(),r)}return i?(this.getTiddlerText(e),void 0===(n=this.extractTiddlerDataItem(s,i,void 0))?null:this.parseText('text/vnd.tiddlywiki',n,r)):void 0},exports.makeWidget=function(e,t){t=t||{};var i={type:'widget',children:[]},r=i;return $tw.utils.each(t.variables,function(e,t){e={type:'set',attributes:{name:{type:'string',value:t},value:{type:'string',value:e}},children:[]};r.children=[e],r=e}),r.children=e?e.tree:[],new s.widget(i,{wiki:this,document:t.document||$tw.fakeDocument,parentWidget:t.parentWidget})},exports.makeTranscludeWidget=function(e,t){var i={tree:[{type:'element',tag:'div',children:[]}]},r={type:'importvariables',attributes:{filter:{name:'filter',type:'string'}},isBlock:!1,children:[]},e={type:'transclude',attributes:{recursionMarker:{name:'recursionMarker',type:'string',value:(t=t||{}).recursionMarker||'yes'},tiddler:{name:'tiddler',type:'string',value:e}},isBlock:!t.parseAsInline};return t.importVariables||t.importPageMacros?(t.importVariables?r.attributes.filter.value=t.importVariables:t.importPageMacros&&(r.attributes.filter.value='[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]'),i.tree[0].children.push(r),r.children.push(e)):i.tree[0].children.push(e),t.field&&(e.attributes.field={type:'string',value:t.field}),t.mode&&(e.attributes.mode={type:'string',value:t.mode}),t.children&&(e.children=t.children),this.makeWidget(i,t)},exports.renderText=function(e,t,i,r){r=r||{};i=this.parseText(t,i,r),i=this.makeWidget(i,r),r=$tw.fakeDocument.createElement('div');return i.render(r,null),'text/html'===e?r.innerHTML:r.textContent},exports.renderTiddler=function(e,t,i){i=i||{};t=this.parseTiddler(t,i),t=this.makeWidget(t,i),i=$tw.fakeDocument.createElement('div');return t.render(i,null),'text/html'===e?i.innerHTML:'text/plain-formatted'===e?i.formattedTextContent:i.textContent},exports.search=function(t,c){var e,i,u,f=this,r=(c=c||{},c.caseSensitive?'':'i'),s=c.anchored?'^':'';if(c.literal)u=0===t.length?null:[new RegExp('('+s+$tw.utils.escapeRegExp(t)+')',r)];else if(c.whitespace)i=[],$tw.utils.each(t.split(/\\s+/g),function(e){e&&i.push($tw.utils.escapeRegExp(e))}),u=[new RegExp('('+s+i.join('\\\\s+')+')',r)];else if(c.regexp)try{u=[new RegExp('('+t+')',r)]}catch(e){u=null,console.log('Regexp error parsing /('+t+')/'+r+': ',e)}else if(1===(i=t.split(/ +/)).length&&''===i[0])u=null;else for(u=[],e=0;e<i.length;e++)u.push(new RegExp('('+s+$tw.utils.escapeRegExp(i[e])+')',r));var h=[];c.field&&($tw.utils.isArray(c.field)?$tw.utils.each(c.field,function(e){e&&h.push(e)}):h.push(c.field)),0!==h.length||c.excludeField||(h.push('title'),h.push('tags'),h.push('text'));var n=[];if((c.source||this.each)(function(e,t){(function(e){if(!u)return!0;var t,i=u.slice(),r=(r=f.getTiddler(e))||new $tw.Tiddler({title:e,text:'',type:'text/vnd.tiddlywiki'}),s=$tw.config.contentTypeInfo[r.fields.type]||$tw.config.contentTypeInfo['text/vnd.tiddlywiki'];c.excludeField?(t=Object.keys(r.fields),$tw.utils.each(h,function(e){e=t.indexOf(e);-1!==e&&t.splice(e,1)})):t=h;for(var n=0;0<i.length&&n<t.length;n++){var l=t[n];if('text'===l&&'utf8'!==s.encoding)break;var d,a=r.fields[l];if(a)if($tw.utils.isArray(a))for(var o=0;o<a.length;o++)for(d=0;d<i.length;)i[d].test(a[o])?i.splice(d,1):d++;else for(a=r.getFieldString(l),d=0;d<i.length;)i[d].test(a)?i.splice(d,1):d++}return 0==i.length})(t)!==c.invert&&n.push(t)}),c.exclude)for(e=0;e<c.exclude.length;e++){var l=n.indexOf(c.exclude[e]);-1!==l&&n.splice(l,1)}return n},exports.getTiddlerText=function(e,t){var i=this.getTiddler(e);return i?i.hasField('_is_skinny')?(this.dispatchEvent('lazyLoad',e),null):i.fields.text||'':t},exports.checkTiddlerText=function(e,t,i){i=i||{};e=this.getTiddlerText(e,'');return i.noTrim||(e=e.trim()),i.caseSensitive||(e=e.toLowerCase(),t=t.toLowerCase()),e===t},exports.readFiles=function(e,t){var i;'function'==typeof t?(i=t,t={}):i=t.callback;for(var r=[],s=e.length,n=function(e){r.push.apply(r,e),0==--s&&i(r)},l=0;l<e.length;l++)this.readFile(e[l],$tw.utils.extend({},t,{callback:n}));return e.length},exports.readFile=function(e,t){var i;'function'==typeof t?(i=t,t={}):i=t.callback;var r,s=e.type;''!==s&&s||(-1===(r=e.name.lastIndexOf('.'))||(n=$tw.utils.getFileExtensionInfo(e.name.substr(r)))&&(s=n.type));var n=$tw.config.contentTypeInfo[s],n=!!n&&'base64'===n.encoding;$tw.log.IMPORT&&console.log('Importing file \\''+e.name+'\\', type: \\''+s+'\\', isBinary: '+n),!0!==$tw.hooks.invokeHook('th-importing-file',{file:e,type:s,isBinary:n,callback:i})&&this.readFileContent(e,s,n,t.deserializer,i)},exports.readFileContent=function(r,s,n,l,d){var a=this,e=new FileReader;e.onload=function(e){var t=e.target.result,e={title:r.name||'Untitled'};!n||-1!==(i=t.indexOf(','))&&(t=t.substr(i+1));var i=$tw.utils.extractEncryptedStoreArea(t);i?$tw.utils.decryptStoreAreaInteractive(i,function(e){d(e)}):d(a.deserializeTiddlers(s,t,e,{deserializer:l}))},n?e.readAsDataURL(r):e.readAsText(r)},exports.findDraft=function(i){var r=void 0;return this.forEachTiddler({includeSystem:!0},function(e,t){t.fields['draft.title']&&t.fields['draft.of']===i&&(r=e)}),r},exports.isDraftModified=function(e){var t=this.getTiddler(e);if(!t.isDraft())return!1;e=this.getTiddler(t.fields['draft.of'])||new $tw.Tiddler({text:'',tags:[]});return t.fields['draft.title']!==t.fields['draft.of']||!t.isEqual(e,['created','modified','title','draft.title','draft.of'])},exports.addToHistory=function(e,t,i){new $tw.Story({wiki:this,historyTitle:i}).addToHistory(e,t),console.log('$tw.wiki.addToHistory() is deprecated since V5.1.23! Use the this.story.addToHistory() from the story-object!')},exports.addToStory=function(e,t,i,r){new $tw.Story({wiki:this,storyTitle:i}).addToStory(e,t,r),console.log('$tw.wiki.addToStory() is deprecated since V5.1.23! Use the this.story.addToStory() from the story-object!')},exports.generateDraftTitle=function(e){for(var t,i=0,r=this.getTiddlerText('$:/status/UserName'),s=r?' by '+r:'';t='Draft '+(i?i+1+' ':'')+'of \\''+e+'\\''+s,i++,this.tiddlerExists(t););return t},exports.invokeUpgraders=function(e,t){var i=this;this.upgraderModules||(this.upgraderModules=[],$tw.modules.forEachModuleOfType('upgrader',function(e,t){t.upgrade&&i.upgraderModules.push(t)}));for(var r={},s=0;s<this.upgraderModules.length;s++){var n=this.upgraderModules[s].upgrade(this,e,t);$tw.utils.extend(r,n)}return r},exports.doesPluginRequireReload=function(e){return this.doesPluginInfoRequireReload(this.getPluginInfo(e)||this.getTiddlerDataCached(e))},exports.doesPluginInfoRequireReload=function(e){if(e){var t=!1;return $tw.utils.each(e.tiddlers,function(e){'application/javascript'===e.type&&$tw.utils.hop(e,'module-type')&&(t=!0)}),t}return null},exports.slugify=function(e,t){var i,r=this.getTiddler(e),r=r&&r.fields.slug?r.fields.slug:$tw.utils.transliterate(e.toString().toLowerCase()).replace(/\\s+/g,'-').replace(/[^\\w\\-\\.]+/g,'').replace(/\\-\\-+/g,'-').replace(/^-+/,'').replace(/-+$/,'');return r||(i=[],$tw.utils.each(e.split(''),function(e){i.push(e.charCodeAt(0).toString())}),r=i.join('-')),r}}();","type":"application/javascript","module-type":"wikimethod"},"$:/palettes/Blanca":{"name":"Blanca","description":"A clean white palette to let you focus","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/Blue":{"name":"Blue","description":"A blue theme","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/Muted":{"name":"Muted","description":"Bright tiddlers on a muted background","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/ContrastLight":{"name":"Contrast (Light)","description":"High contrast and unambiguous (light version)","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"},"$:/palettes/ContrastDark":{"name":"Contrast (Dark)","description":"High contrast and unambiguous (dark version)","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"},"$:/palettes/CupertinoDark":{"tags":"$:/tags/Palette","name":"Cupertino Dark","description":"A macOS inspired dark palette","type":"application/x-tiddler-dictionary","text":"alert-background: #FF453A\nalert-border: #FF453A\nalert-highlight: #FFD60A\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #282828\nblockquote-bar: <<colour page-background>>\nbutton-foreground: <<colour background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #FF453A\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour tiddler-info-background>>\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: #3F638B\ndropdown-tab-background: #323232\ndropzone-background: #30D158\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #BF5AF2\nexternal-link-foreground: #32D74B\nforeground: #FFFFFF\nmenubar-background: #464646\nmenubar-foreground: #ffffff\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: #98989D\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #323232\npre-background: #464646\npre-border: transparent\nprimary: #0A84FF\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour background>>\nsidebar-controls-foreground-hover: #FF9F0A\nsidebar-controls-foreground: #8E8E93\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: #3F638B\nsidebar-tab-background: <<colour background>>\nsidebar-tab-border-selected: <<colour background>>\nsidebar-tab-border: <<colour background>>\nsidebar-tab-divider: <<colour background>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: #ffffff\nstatic-alert-foreground: #B4B4B4\ntab-background-selected: #3F638B\ntab-background: <<colour page-background>>\ntab-border-selected: <<colour page-background>>\ntab-border: <<colour page-background>>\ntab-divider: <<colour page-background>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #464646\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #48484A\ntag-foreground: #323232\ntiddler-background: <<colour background>>\ntiddler-border: transparent\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: #48484A\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #1E1E1E\ntiddler-info-border: #1E1E1E\ntiddler-info-tab-background: #3F638B\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: #464646\nselection-background: #3F638B\nselection-foreground: #ffffff\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #3F638B\nwikilist-button-foreground: <<colour foreground>>\nwikilist-button-open: #32D74B\nwikilist-button-open-hover: #32D74B\nwikilist-button-reveal: #0A84FF\nwikilist-button-reveal-hover: #0A84FF\nwikilist-button-remove: #FF453A\nwikilist-button-remove-hover: #FF453A\nwikilist-droplink-dragover: #32D74B\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour foreground>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-url: <<colour muted-foreground>>\n"},"$:/palettes/DarkPhotos":{"created":"20150402111612188","description":"Good with dark photo backgrounds","modified":"20150402112344080","name":"DarkPhotos","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/DesertSand":{"tags":"$:/tags/Palette","name":"Desert Sand","description":"A desert sand palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #E9E0C7\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour foreground>>\ncode-background: #F3EDDF\ncode-border: #C3BAA1\ncode-foreground: #ab3250\ndiff-delete-background: #bd8b8b\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #91c093\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ad3434\ndownload-background: #6ca16c\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #E9E0C7\ndropdown-tab-background: #BAB29C\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #313163\nexternal-link-foreground: #555592\nforeground: #2D2A23\nmenubar-background: #CDC2A6\nmenubar-foreground: #5A5446\nmessage-background: #ECE5CF\nmessage-border: #D6CBAA\nmessage-foreground: #5f6e7d\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #8A8885\nmodal-footer-background: #CDC2A6\nmodal-footer-border: #9D998E\nmodal-header-border: #9D998E\nmuted-foreground: #9D998E\nnotification-background: #F0E9D7\nnotification-border: #939189\npage-background: #e0d3af\npre-background: #D6CBAA\npre-border: #CDC2A6\nprimary: #5B6F55\nselection-background: #9D947B\nselection-foreground: <<colour foreground>>\nselect-tag-background: #F0E9D7\nselect-tag-foreground: #2D2A23\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #2D2A23\nsidebar-controls-foreground: #867F69\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #867F69\nsidebar-muted-foreground-hover: #706A58\nsidebar-muted-foreground: #B3A98C\nsidebar-tab-background-selected: #e0d3af\nsidebar-tab-background: #A6A193\nsidebar-tab-border-selected: #C3BAA1\nsidebar-tab-border: #C3BAA1\nsidebar-tab-divider: #CDC2A6\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #2D2A23\nsidebar-tiddler-link-foreground-hover: #433F35\nsidebar-tiddler-link-foreground: #706A58\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #A6A193\ntab-background-selected: #E9E0C7\ntab-background: #A6A193\ntab-border-selected: #C3BAA1\ntab-border: #C3BAA1\ntab-divider: #CDC2A6\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #2D2A23\ntable-border: #9D998E\ntable-footer-background: #8A8885\ntable-header-background: #B0AA98\ntag-background: #706A58\ntag-foreground: #E3D7B7\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #9D947B\ntiddler-controls-foreground-selected: #706A58\ntiddler-controls-foreground: #C3BAA1\ntiddler-editor-background: #E9E0C7\ntiddler-editor-border-image: #A6A193\ntiddler-editor-border: #A6A193\ntiddler-editor-fields-even: #D6CBAA\ntiddler-editor-fields-odd: #C3BAA1\ntiddler-info-background: #E3D7B7\ntiddler-info-border: #BAB29C\ntiddler-info-tab-background: #E9E0C7\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #867F69\ntiddler-title-foreground: #374464\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #8A8885\nvery-muted-foreground: #CDC2A6\nwikilist-background: <<colour page-background>>\nwikilist-item: #CDC2A6\nwikilist-info: #161512\nwikilist-title: #433F35\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #706A58\nwikilist-button-open: #7db66a\nwikilist-button-open-hover: #56a556\nwikilist-button-reveal: #5a6c9e\nwikilist-button-reveal-hover: #454591\nwikilist-button-remove: #bc5972\nwikilist-button-remove-hover: #814040\nwikilist-toolbar-background: #CDC2A6\nwikilist-toolbar-foreground: #2D2A23\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #A6A193\nwikilist-button-foreground: #161512\n"},"$:/palettes/GruvboxDark":{"name":"Gruvbox Dark","description":"Retro groove color scheme","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","license":"https://github.com/morhetz/gruvbox","text":"alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nselection-background: #458588\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: <<colour primary>>\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #32302f\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: #acacac\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>\n"},"$:/palettes/Nord":{"name":"Nord","description":"An arctic, north-bluish color palette.","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","license":"MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md","text":"alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-foreground: <<colour page-background>>\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nselection-background: #5E81AC\nselection-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour page-background>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #3b4252\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\nwikilist-background: <<colour page-background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-item: <<colour background>>\nwikilist-title: <<colour foreground>>\nwikilist-info: <<colour muted-foreground>>\nwikilist-button-open: #A3BE8C\nwikilist-button-open-hover: #A3BE8C\nwikilist-button-reveal: #81A1C1\nwikilist-button-reveal-hover: #81A1C1\nwikilist-button-remove: #B48EAD\nwikilist-button-remove-hover: #B48EAD\n"},"$:/palettes/Rocker":{"name":"Rocker","description":"A dark theme","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/SolarFlare":{"name":"Solar Flare","description":"Warm, relaxing earth colours","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"},"$:/palettes/SolarizedDark":{"tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","description":"Precision dark colors for machines and people","license":"MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE","name":"SolarizedDark","text":"alert-background: #073642\nalert-border: #93a1a1\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #073642\nblockquote-bar: #d33682\nbutton-background: #073642\nbutton-border: #586e75\nbutton-foreground: #93a1a1\ncode-background: #073642\ncode-border: #586e75\ncode-foreground: #93a1a1\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #073642\ndragger-background: #073642\ndragger-foreground: #839496\ndropdown-background: #073642\ndropdown-border: #93a1a1\ndropdown-tab-background: #002b36\ndropdown-tab-background-selected: #073642\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover:\nexternal-link-foreground-visited: #268bd2\nforeground: #839496\nmessage-background: #002b36\nmessage-border: #586e75\nmessage-foreground: #839496\nmodal-backdrop: #657b83\nmodal-background: #002b36\nmodal-border: #586e75\nmodal-footer-background: #073642\nmodal-footer-border: #586e75\nmodal-header-border: #586e75\nmuted-foreground: #93a1a1\nnotification-background: #002b36\nnotification-border: #586e75\npage-background: #073642\npre-background: inherit\npre-border: #657b83\nprimary: #859900\nselect-tag-background: #002b36\nselect-tag-foreground: #839496\nsidebar-button-foreground: #93a1a1\nsidebar-controls-foreground: #93a1a1\nsidebar-controls-foreground-hover: #eee8d5\nsidebar-foreground: #93a1a1\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #839496\nsidebar-muted-foreground-hover: #93a1a1\nsidebar-tab-background: #002b36\nsidebar-tab-background-selected: #073642\nsidebar-tab-border: #073642\nsidebar-tab-border-selected: #839496\nsidebar-tab-divider: #002b36\nsidebar-tab-foreground: #657b83\nsidebar-tab-foreground-selected: #93a1a1\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #eee8d5\nsite-title-foreground: #d33682\nstatic-alert-foreground: #93a1a1\ntab-background: #073642\ntab-background-selected: #002b36\ntab-border: #586e75\ntab-border-selected: #93a1a1\ntab-divider: #93a1a1\ntab-foreground: #839496\ntab-foreground-selected: #93a1a1\ntable-border: #586e75\ntable-footer-background: #073642\ntable-header-background: #073642\ntag-background: #b58900\ntag-foreground: #002b36\ntiddler-background: #002b36\ntiddler-border: #586e75\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #002b36\ntiddler-editor-border: #073642\ntiddler-editor-border-image: #002b36\ntiddler-editor-fields-even: #002b36\ntiddler-editor-fields-odd: #073642\ntiddler-info-background: #073642\ntiddler-info-border: #657b83\ntiddler-info-tab-background: #002b36\ntiddler-link-background: #002b36\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #839496\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #839496\ntoolbar-close-button: #839496\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #839496\ntoolbar-edit-button: #839496\ntoolbar-info-button: #839496\ntoolbar-new-button: #839496\ntoolbar-options-button: #839496\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #586e75\n"},"$:/palettes/SolarizedLight":{"tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","description":"Precision colors for machines and people","license":"MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE","name":"SolarizedLight","text":"alert-background: #eee8d5\nalert-border: #586e75\nalert-highlight: #d33682\nalert-muted-foreground: #d33682\nbackground: #eee8d5\nblockquote-bar: #d33682\nbutton-background: #eee8d5\nbutton-border: #93a1a1\nbutton-foreground: #586e75\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #586e75\ndirty-indicator: inherit\ndownload-background: #859900\ndownload-foreground: #eee8d5\ndragger-background: #eee8d5\ndragger-foreground: #657b83\ndropdown-background: #eee8d5\ndropdown-border: #586e75\ndropdown-tab-background: #fdf6e3\ndropdown-tab-background-selected: #eee8d5\ndropzone-background: #859900\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: #268bd2\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #268bd2\nforeground: #657b83\nmessage-background: #fdf6e3\nmessage-border: #93a1a1\nmessage-foreground: #657b83\nmodal-backdrop: #839496\nmodal-background: #fdf6e3\nmodal-border: #93a1a1\nmodal-footer-background: #eee8d5\nmodal-footer-border: #93a1a1\nmodal-header-border: #93a1a1\nmuted-foreground: #586e75\nnotification-background: #fdf6e3\nnotification-border: #93a1a1\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #839496\nprimary: #859900\nselect-tag-background: #fdf6e3\nselect-tag-foreground: #657b83\nsidebar-button-foreground: #586e75\nsidebar-controls-foreground: #586e75\nsidebar-controls-foreground-hover: #d33682\nsidebar-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: #657b83\nsidebar-muted-foreground-hover: #586e75\nsidebar-tab-background: #fdf6e3\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-border: #eee8d5\nsidebar-tab-border-selected: #657b83\nsidebar-tab-divider: #fdf6e3\nsidebar-tab-foreground: #839496\nsidebar-tab-foreground-selected: #586e75\nsidebar-tiddler-link-foreground: #2aa198\nsidebar-tiddler-link-foreground-hover: #002b36\nsite-title-foreground: #d33682\nstatic-alert-foreground: #586e75\ntab-background: #eee8d5\ntab-background-selected: #fdf6e3\ntab-border: #93a1a1\ntab-border-selected: #586e75\ntab-divider: #586e75\ntab-foreground: #657b83\ntab-foreground-selected: #586e75\ntable-border: #93a1a1\ntable-footer-background: #eee8d5\ntable-header-background: #eee8d5\ntag-background: #b58900\ntag-foreground: #fdf6e3\ntiddler-background: #fdf6e3\ntiddler-border: #93a1a1\ntiddler-controls-foreground: inherit\ntiddler-controls-foreground-hover: #d33682\ntiddler-controls-foreground-selected: #2aa198\ntiddler-editor-background: #fdf6e3\ntiddler-editor-border: #eee8d5\ntiddler-editor-border-image: #fdf6e3\ntiddler-editor-fields-even: #fdf6e3\ntiddler-editor-fields-odd: #eee8d5\ntiddler-info-background: #eee8d5\ntiddler-info-border: #839496\ntiddler-info-tab-background: #fdf6e3\ntiddler-link-background: #fdf6e3\ntiddler-link-foreground: #2aa198\ntiddler-subtitle-foreground: #657b83\ntiddler-title-foreground: #d33682\ntoolbar-cancel-button: #657b83\ntoolbar-close-button: #657b83\ntoolbar-delete-button: #dc322f\ntoolbar-done-button: #657b83\ntoolbar-edit-button: #657b83\ntoolbar-info-button: #657b83\ntoolbar-new-button: #657b83\ntoolbar-options-button: #657b83\ntoolbar-save-button: inherit\nuntagged-background: #586e75\nvery-muted-foreground: #93a1a1\n"},"$:/palettes/SpartanDay":{"tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","description":"Cold, spartan day colors","name":"Spartan Day","text":"alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"},"$:/palettes/SpartanNight":{"tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","description":"Dark spartan colors","name":"Spartan Night","text":"alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"},"$:/palettes/Twilight":{"tags":"$:/tags/Palette","author":"Thomas Elmiger","type":"application/x-tiddler-dictionary","name":"Twilight","description":"Delightful, soft darkness.","text":"alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"},"$:/palettes/Vanilla":{"name":"Vanilla","description":"Pale and unobtrusive","tags":"$:/tags/Palette","type":"application/x-tiddler-dictionary","text":"alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselection-background:\nselection-foreground:\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"},"$:/core/readme":{"text":"This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"},"$:/library/sjcl.js/license":{"type":"text/plain","text":"SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"},"$:/core/templates/MOTW.html":{"text":"\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "},"$:/core/templates/alltiddlers.template.html":{"type":"text/vnd.tiddlywiki-html","text":"<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"},"$:/core/templates/canonical-uri-external-image":{"text":"<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"},"$:/core/templates/canonical-uri-external-raw":{"text":"<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"},"$:/core/templates/canonical-uri-external-text":{"text":"<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"},"$:/core/templates/css-tiddler":{"text":"<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"},"$:/core/templates/exporters/CsvFile":{"tags":"$:/tags/Exporter","description":"{{$:/language/Exporters/CsvFile}}","extension":".csv","text":"<$macrocall $name=\"csvtiddlers\" filter=<<exportFilter>> format=\"quoted-comma-sep\" $output=\"text/raw\"/>\n"},"$:/core/templates/exporters/JsonFile":{"tags":"$:/tags/Exporter","description":"{{$:/language/Exporters/JsonFile}}","extension":".json","text":"<$macrocall $name=\"jsontiddlers\" filter=<<exportFilter>> $output=\"text/raw\"/>\n"},"$:/core/templates/exporters/StaticRiver":{"tags":"$:/tags/Exporter","description":"{{$:/language/Exporters/StaticRiver}}","extension":".html","text":"\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river tc-static-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"},"$:/core/templates/exporters/StaticRiver/Content":{"text":"\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"},"$:/core/templates/exporters/TidFile":{"tags":"$:/tags/Exporter","description":"{{$:/language/Exporters/TidFile}}","extension":".tid","condition":"[<count>compare:lte[1]]","text":"\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"},"$:/core/save/all-external-js":{"text":"\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"},"$:/core/templates/tiddlywiki5.js":{"text":"\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"},"$:/core/templates/tiddlywiki5.js/tiddlers":{"text":"`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n`\n"},"$:/core/templates/tiddlywiki5-external-js.html":{"text":"\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"},"$:/core/templates/html-div-skinny-tiddler":{"text":"<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"},"$:/core/templates/html-div-tiddler":{"text":"<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"},"$:/core/templates/html-tiddler":{"text":"<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"},"$:/core/templates/javascript-tiddler":{"text":"<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"},"$:/core/templates/json-tiddler":{"text":"<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"},"$:/core/templates/module-tiddler":{"text":"<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"},"$:/core/templates/plain-text-tiddler":{"text":"<$view field=\"text\" format=\"text\" />"},"$:/core/templates/raw-static-tiddler":{"text":"<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"},"$:/core/save/all":{"text":"\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[prefix[$:/temp/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"},"$:/core/save/empty":{"text":"\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"},"$:/core/save/lazy-all":{"text":"\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"},"$:/core/save/lazy-images":{"text":"\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"},"$:/core/templates/server/static.sidebar.wikitext":{"text":"\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"},"$:/core/templates/server/static.tiddler.html":{"text":"\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"},"$:/core/templates/server/static.tiddler.wikitext":{"text":"\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"},"$:/core/templates/single.tiddler.window":{"text":"\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"},"$:/core/templates/split-recipe":{"text":"<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"},"$:/core/templates/static-tiddler":{"text":"<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"},"$:/core/templates/static.area":{"text":"<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"},"$:/core/templates/static.content":{"text":"<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"},"$:/core/templates/static.template.css":{"text":"{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"},"$:/core/templates/static.template.html":{"type":"text/vnd.tiddlywiki-html","text":"\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"},"$:/core/templates/static.tiddler.html":{"text":"\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river tc-static-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`\n"},"$:/core/templates/store.area.template.html":{"text":"<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"},"$:/core/templates/tid-tiddler":{"text":"<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"},"$:/core/templates/tiddler-metadata":{"text":"<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"},"$:/core/templates/tiddlywiki5.html":{"text":"<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"},"$:/core/templates/version":{"text":"<<version>>"},"$:/core/templates/wikified-tiddler":{"text":"<$transclude />"},"$:/core/ui/AboveStory/tw2-plugin-check":{"tags":"$:/tags/AboveStory","text":"\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"},"$:/core/ui/Actions/new-image":{"tags":"$:/tags/Actions","description":"create a new image tiddler","text":"\\define get-type()\nimage/$(imageType)$\n\\end\n\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars imageType={{$:/config/NewImageType}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags=<<get-tags>>/>\n</$vars>\n"},"$:/core/ui/Actions/new-journal":{"tags":"$:/tags/Actions","description":"create a new journal tiddler","text":"\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} textFieldTags={{$:/config/NewJournal/Tags}} tagsFieldTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<get-tags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"},"$:/core/ui/Actions/new-tiddler":{"tags":"$:/tags/Actions","description":"create a new empty tiddler","text":"\\define get-tags() $(textFieldTags)$ $(tagsFieldTags)$\n<$vars textFieldTags={{$:/config/NewTiddler/Tags}} tagsFieldTags={{$:/config/NewTiddler/Tags!!tags}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<get-tags>>/>\n</$vars>\n"},"$:/core/ui/AdvancedSearch/Filter":{"tags":"$:/tags/AdvancedSearch","caption":"{{$:/language/Search/Filter/Caption}}","text":"\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch/input}!match{$:/temp/advancedsearch}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\" \n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/temp/advancedsearch]]\" firstSearchFilterField=\"text\" \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tinputCancelActions=<<cancel-search-actions>>/>\n</$keyboard>\n</$keyboard>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</div>\n</$set>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear":{"tags":"$:/tags/AdvancedSearch/FilterButton","text":"<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete":{"tags":"$:/tags/AdvancedSearch/FilterButton","text":"<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown":{"tags":"$:/tags/AdvancedSearch/FilterButton","text":"<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text=<<navigateTo>>/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param='.tc-advanced-search input' />\"\"\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export":{"tags":"$:/tags/AdvancedSearch/FilterButton","text":"<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Shadows":{"tags":"$:/tags/AdvancedSearch","caption":"{{$:/language/Search/Shadows/Caption}}","first-search-filter":"[all[shadows]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]","text":"\\define lingo-base() $:/language/Search/\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/Shadows]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/Standard":{"tags":"$:/tags/AdvancedSearch","caption":"{{$:/language/Search/Standard/Caption}}","text":"\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define next-search-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/advancedsearch\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"shift-alt-Right\" actions=<<next-search-tab>>>\n<$keyboard key=\"shift-alt-Left\" actions=<<next-search-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\" type=\"search\"\n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"\n\t\tfilterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$vars userInput={{{ [[$:/temp/advancedsearch]get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} searchListState=\"$:/temp/advancedsearch/selected-item\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/standard/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/advancedsearch\" />\n</$list>\n</$vars>\n</$list>\n</$reveal>\n"},"$:/core/ui/AdvancedSearch/System":{"tags":"$:/tags/AdvancedSearch","caption":"{{$:/language/Search/System/Caption}}","first-search-filter":"[is[system]search<userInput>sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]","text":"\\define lingo-base() $:/language/Search/\n\\define set-next-input-tab(beforeafter:\"after\",stateTitle,tag,defaultState,currentTabTiddler) <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab--1498284803\" tag=\"$:/tags/AdvancedSearch\" beforeafter=\"$beforeafter$\" defaultState=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define cancel-search-actions() <$list filter=\"[{$:/temp/advancedsearch}!match{$:/temp/advancedsearch/input}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/advancedsearch]] [[$:/temp/advancedsearch/input]] [[$:/temp/advancedsearch/selected-item]]\" />\"\"\"><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/advancedsearch}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/></$list><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\".tc-advanced-search input\"\"\"/>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=\"$:/temp/advancedsearch/input\" storeTitle=\"$:/temp/advancedsearch\"\n\t\trefreshTitle=\"$:/temp/advancedsearch/refresh\" selectionStateTitle=\"$:/temp/advancedsearch/selected-item\"\n\t\ttype=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} configTiddlerFilter=\"[[$:/core/ui/AdvancedSearch/System]]\"\n\t\tinputCancelActions=<<cancel-search-actions>> inputAcceptActions=<<input-accept-actions>> \n\t\tinputAcceptVariantActions=<<input-accept-variant-actions>> filterMinLength={{$:/config/Search/MinLength}}/>\n</$keyboard>\n</$keyboard>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]] -[[$:/temp/advancedsearch/input]] -[[$:/temp/advancedsearch/selected-item]]\">\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[[$:/temp/advancedsearch/selected-item]get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"},"$:/AdvancedSearch":{"icon":"$:/core/images/advanced-search-button","color":"#bbb","text":"<div class=\"tc-advanced-search\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" default=\"$:/core/ui/AdvancedSearch/System\" actions=\"\"\"<$action-setfield $tiddler=\"$:/state/advancedsearch/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab--1498284803\"/>\n</div>\n"},"$:/core/ui/AlertTemplate":{"text":"<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"},"$:/core/ui/BinaryWarning":{"text":"\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"},"$:/core/ui/Components/plugin-info":{"text":"\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"},"$:/core/ui/Components/tag-link":{"text":"<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"},"$:/core/ui/ControlPanel/Advanced":{"tags":"$:/tags/ControlPanel/Info","caption":"{{$:/language/ControlPanel/Advanced/Caption}}","text":"{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/TiddlerFields\" explicitState=\"$:/state/tab--959111941\"/>\n</div>\n"},"$:/core/ui/ControlPanel/Appearance":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Appearance/Caption}}","text":"{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Theme\" explicitState=\"$:/state/tab--1963855381\"/>\n</div>\n"},"$:/core/ui/ControlPanel/Basics":{"tags":"$:/tags/ControlPanel/Info","caption":"{{$:/language/ControlPanel/Basics/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-advanced-search input\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewTiddler/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$vars currentTiddler=\"$:/config/NewJournal/Tags\" tagField=\"text\">{{||$:/core/ui/EditTemplate/tags}}<$list filter=\"[<currentTiddler>tags[]] +[limit[1]]\" variable=\"ignore\"><$button tooltip={{$:/language/ControlPanel/Basics/RemoveTags/Hint}}><<lingo RemoveTags>><$action-listops $tiddler=<<currentTiddler>> $field=\"text\" $subfilter={{{ [<currentTiddler>get[tags]] }}}/><$action-setfield $tiddler=<<currentTiddler>> tags=\"\"/></$button></$list></$vars> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"},"$:/core/ui/ControlPanel/EditorTypes":{"tags":"$:/tags/ControlPanel/Advanced","caption":"{{$:/language/ControlPanel/EditorTypes/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"},"$:/core/ui/ControlPanel/Info":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Info/Caption}}","text":"{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Basics\" explicitState=\"$:/state/tab--2112689675\"/>\n</div>\n"},"$:/core/ui/ControlPanel/KeyboardShortcuts":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"},"$:/core/ui/ControlPanel/LoadedModules":{"tags":"$:/tags/ControlPanel/Advanced","caption":"{{$:/language/ControlPanel/LoadedModules/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"},"$:/core/ui/ControlPanel/Modals/AddPlugins":{"subtitle":"{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}","text":"\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[name]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[name]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$list filter=\"[<currentTiddler>get[enabled]else[yes]match[yes]]\" variable=\"ignore\">\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n</$list>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[name]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"},"$:/core/ui/ControlPanel/Palette":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ControlPanel/Palette/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"},"$:/core/ui/ControlPanel/Parsing":{"tags":"$:/tags/ControlPanel/Advanced","caption":"{{$:/language/ControlPanel/Parsing/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"},"$:/core/ui/ControlPanel/Plugins/Add/Languages":{"caption":"{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)","text":"<<display-server-assets language>>\n"},"$:/core/ui/ControlPanel/Plugins/Add/Plugins":{"caption":"{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)","text":"<<display-server-assets plugin>>\n"},"$:/core/ui/ControlPanel/Plugins/Add/Themes":{"caption":"{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)","text":"<<display-server-assets theme>>\n"},"$:/core/ui/ControlPanel/Plugins/Add/Updates":{"caption":"<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>","text":"\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"},"$:/core/ui/ControlPanel/Plugins/AddPlugins":{"text":"\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"},"$:/core/ui/ControlPanel/Plugins/Installed/Languages":{"caption":"{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)","text":"<<plugin-table language>>\n"},"$:/core/ui/ControlPanel/Plugins/Installed/Plugins":{"caption":"{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)","text":"<<plugin-table plugin>>\n"},"$:/core/ui/ControlPanel/Plugins/Installed/Themes":{"caption":"{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)","text":"<<plugin-table theme>>\n"},"$:/core/ui/ControlPanel/Plugins":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Plugins/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[name]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<$macrocall $name=\"tabs\" tabsList=\"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" default=\"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\" explicitState=\"$:/state/tab--86143343\"/>\n"},"$:/core/ui/ControlPanel/Saving/DownloadSaver":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"},"$:/core/ui/ControlPanel/Saving/General":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/General/Caption}}","list-before":"","text":"\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"},"$:/core/ui/ControlPanel/Saving/GitHub":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"main\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"},"$:/core/ui/ControlPanel/Saving/GitLab":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"},"$:/core/ui/ControlPanel/Saving/TiddlySpot":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define siteURL(path)\nhttp://$(userName)$.tiddlyspot.com/$path$/\n\\end\n\\define siteLink(path)\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<siteURL $path$>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<div class=\"tc-message-box\">\n\n<<lingo ReadOnly>>\n\n</div>\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<siteLink backup>> |\n|<<lingo ControlPanel>> |<<siteLink controlpanel>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>\n"},"$:/core/ui/ControlPanel/Saving/Gitea":{"tags":"$:/tags/ControlPanel/Saving","caption":"{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"},"$:/core/ui/ControlPanel/Saving":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Saving/Caption}}","text":"{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Saving/General\" explicitState=\"$:/state/tab-2065006209\"/>\n</div>\n"},"$:/core/buttonstyles/Borderless":{"tags":"$:/tags/ToolbarButtonStyle","caption":"{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}","text":"tc-btn-invisible"},"$:/core/buttonstyles/Boxed":{"tags":"$:/tags/ToolbarButtonStyle","caption":"{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}","text":"tc-btn-boxed"},"$:/core/buttonstyles/Rounded":{"tags":"$:/tags/ToolbarButtonStyle","caption":"{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}","text":"tc-btn-rounded"},"$:/core/ui/ControlPanel/Settings/CamelCase":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/CamelCase/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"},"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab":{"caption":"{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}","tags":"$:/tags/ControlPanel/Settings","text":"\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"},"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab":{"caption":"{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}","tags":"$:/tags/ControlPanel/Settings","text":"\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"},"$:/core/ui/ControlPanel/Settings/EditorToolbar":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/InfoPanelMode":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"},"$:/core/ui/ControlPanel/Settings/LinkToBehaviour":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"},"$:/core/ui/ControlPanel/Settings/MissingLinks":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/NavigationAddressBar":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"},"$:/core/ui/ControlPanel/Settings/NavigationHistory":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"},"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"},"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"},"$:/core/ui/ControlPanel/Settings/TitleLinks":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"},"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"},"$:/core/ui/ControlPanel/Settings/ToolbarButtons":{"tags":"$:/tags/ControlPanel/Settings","caption":"{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"},"$:/core/ui/ControlPanel/Settings":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Settings/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"},"$:/core/ui/ControlPanel/StoryView":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ControlPanel/StoryView/Caption}}","text":"{{$:/snippets/viewswitcher}}\n"},"$:/core/ui/ControlPanel/Stylesheets":{"tags":"$:/tags/ControlPanel/Advanced","caption":"{{$:/language/ControlPanel/Stylesheets/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"},"$:/core/ui/ControlPanel/Theme":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ControlPanel/Theme/Caption}}","text":"{{$:/snippets/themeswitcher}}\n"},"$:/core/ui/ControlPanel/TiddlerFields":{"tags":"$:/tags/ControlPanel/Advanced","caption":"{{$:/language/ControlPanel/TiddlerFields/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"},"$:/core/ui/ControlPanel/Toolbars/EditToolbar":{"tags":"$:/tags/ControlPanel/Toolbars","caption":"{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"},"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate":{"text":"\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"},"$:/core/ui/ControlPanel/Toolbars/EditorToolbar":{"tags":"$:/tags/ControlPanel/Toolbars","caption":"{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"},"$:/core/ui/ControlPanel/Toolbars/ItemTemplate":{"text":"\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"},"$:/core/ui/ControlPanel/Toolbars/PageControls":{"tags":"$:/tags/ControlPanel/Toolbars","caption":"{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/ControlPanel/Toolbars/ViewToolbar":{"tags":"$:/tags/ControlPanel/Toolbars","caption":"{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/ControlPanel/Toolbars":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ControlPanel/Toolbars/Caption}}","text":"{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" class=\"tc-vertical\" explicitState=\"$:/state/tabs/controlpanel/toolbars-1345989671\"/>\n</div>\n"},"$:/ControlPanel":{"icon":"$:/core/images/options-button","color":"#bbb","text":"<div class=\"tc-control-panel\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" default=\"$:/core/ui/ControlPanel/Info\" explicitState=\"$:/state/tab-1749438307\"/>\n</div>\n"},"$:/core/ui/DefaultSearchResultList":{"tags":"$:/tags/SearchResults","caption":"{{$:/language/Search/DefaultResults/Caption}}","first-search-filter":"[!is[system]search:title<userInput>sort[title]limit[250]]","second-search-filter":"[!is[system]search<userInput>sort[title]limit[250]]","text":"\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n\n\\end\n<<searchResultList>>\n"},"$:/core/ui/EditTemplate/body/preview/diffs-current":{"tags":"$:/tags/EditPreview","caption":"differences from current","list-after":"$:/core/ui/EditTemplate/body/preview/output","text":"<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"},"$:/core/ui/EditTemplate/body/preview/diffs-shadow":{"tags":"$:/tags/EditPreview","caption":"differences from shadow (if any)","list-after":"$:/core/ui/EditTemplate/body/preview/output","text":"<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"},"$:/core/ui/EditTemplate/body/preview/output":{"tags":"$:/tags/EditPreview","caption":"{{$:/language/EditTemplate/Body/Preview/Type/Output}}","text":"\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"},"$:/state/showeditpreview":{"text":"no"},"$:/core/ui/EditTemplate/body/editor":{"text":"<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n cancelPopups=\"yes\"\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"},"$:/core/ui/EditTemplate/body/toolbar/button":{"text":"\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"},"$:/core/ui/EditTemplate/body":{"tags":"$:/tags/EditTemplate","text":"\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"},"$:/core/ui/EditTemplate/controls":{"tags":"$:/tags/EditTemplate","text":"\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"},"$:/core/ui/EditTemplate/fields":{"tags":"$:/tags/EditTemplate","text":"\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name-wrapper input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define delete-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\n\\define cancel-search-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newFieldNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-state-tiddlers>>\n</$list>\n\\end\n\n\\define cancel-search-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newFieldNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newFieldNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<storeTitle>] [<searchListState>]\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class={{{ [all[current]fields[]] :filter[lookup[$:/config/EditTemplateFields/Visibility/]!match[hide]] +[count[]!match[0]] +[then[tc-edit-fields]] ~[[tc-edit-fields tc-edit-fields-small]] }}}>\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$keyboard key=\"((delete-field))\" actions=\"\"\"<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\"\"\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/><$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/></$set>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit tc-big-gap-right\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<$vars refreshTitle=<<qualify \"$:/temp/fieldname/refresh\">> storeTitle=<<newFieldNameInputTiddler>> searchListState=<<newFieldNameSelectionTiddler>>>\n<div class=\"tc-edit-field-add-name-wrapper\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newFieldNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<searchListState>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}}\n\t\tfocus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}} cancelPopups=\"yes\"\n\t\tconfigTiddlerFilter=\"[[$:/config/EditMode/fieldname-filter]]\" inputCancelActions=<<cancel-search-actions>> />\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-primaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$list filter=\"[<currentField>addsuffix[-secondaryList]] -[<searchListState>get[text]]\" emptyMessage=\"\"\"<$link to=<<currentField>> class=\"tc-list-item-selected\"><$text text=<<currentField>>/></$link>\"\"\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n</div>\n<span class=\"tc-edit-field-add-value tc-small-gap-right\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n</$keyboard>\n</$set>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</$vars>\n</div>\n</$fieldmangler>\n"},"$:/core/ui/EditTemplate/shadow":{"tags":"$:/tags/EditTemplate","text":"\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"},"$:/core/ui/EditTemplate/tags":{"tags":"$:/tags/EditTemplate","text":"\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon,tagField:\"tags\")\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button class=\"tc-btn-invisible tc-remove-tag-button\" style=<<tag-styles>>><$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[{!!title}]\"/>{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon,tagField:\"tags\")\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\" tagField=<<__tagField__>>/>\n\\end\n\n\\define edit-tags-template(tagField:\"tags\")\n\\whitespace trim\n<div class=\"tc-edit-tags\">\n<$list filter=\"[list[!!$tagField$]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}} tagField=<<__tagField__>>/>\n</$list>\n<$vars tabIndex={{$:/config/EditTabIndex}} cancelPopups=\"yes\">\n<$macrocall $name=\"tag-picker\" tagField=<<__tagField__>>/>\n</$vars>\n</div>\n\\end\n<$set name=\"saveTiddler\" value=<<currentTiddler>>>\n<$macrocall $name=\"edit-tags-template\" tagField=<<tagField>>/>\n</$set>\n"},"$:/core/ui/EditTemplate/title":{"tags":"$:/tags/EditTemplate","text":"<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}} cancelPopups=\"yes\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"},"$:/core/ui/EditTemplate/type":{"tags":"$:/tags/EditTemplate","first-search-filter":"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]sort[description]sort[group-sort]removeprefix[$:/language/Docs/Types/]search<userInput>]","text":"\\define lingo-base() $:/language/EditTemplate/\n\\define input-cancel-actions() <$list filter=\"[<storeTitle>get[text]] [<currentTiddler>get[type]] +[limit[1]]\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\"><$action-sendmessage $message=\"tm-remove-field\" $param=\"type\"/><$action-deletetiddler $filter=\"[<typeInputTiddler>] [<refreshTitle>] [<typeSelectionTiddler>]\"/></$list>\n\\whitespace trim\n<$set name=\"refreshTitle\" value=<<qualify \"$:/temp/type-search/refresh\">>>\n<div class=\"tc-edit-type-selector-wrapper\">\n<em class=\"tc-edit tc-big-gap-right\"><<lingo Type/Prompt>></em>\n<div class=\"tc-type-selector-dropdown-wrapper\">\n<div class=\"tc-type-selector\"><$fieldmangler>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<currentTiddler>> storeTitle=<<typeInputTiddler>> refreshTitle=<<refreshTitle>> selectionStateTitle=<<typeSelectionTiddler>> field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}} cancelPopups=\"yes\" configTiddlerFilter=\"[[$:/core/ui/EditTemplate/type]]\" inputCancelActions=<<input-cancel-actions>>/><$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown tc-small-gap\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}<$action-deletetiddler $filter=\"[<storeTitle>] [<refreshTitle>] [<selectionStateTitle>]\"/></$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$set name=\"userInput\" value={{{ [<typeInputTiddler>get[text]] }}}>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]] +[removeprefix[$:/language/Docs/Types/]] +[search<userInput>]\"><span class={{{ [<currentTiddler>addsuffix[-primaryList]] -[<typeSelectionTiddler>get[text]] +[then[]else[tc-list-item-selected]] }}}><$link to={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]get[name]] }}}><$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"description\"/> (<$view tiddler={{{ [<currentTiddler>addprefix[$:/language/Docs/Types/]] }}} field=\"name\"/>)</$link></span>\n</$list>\n</$set>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n</div>\n</div>\n</$set>\n"},"$:/core/ui/EditTemplate":{"text":"\\define delete-edittemplate-state-tiddlers() <$action-deletetiddler $filter=\"[<newFieldNameTiddler>] [<newFieldValueTiddler>] [<newFieldNameInputTiddler>] [<newFieldNameSelectionTiddler>] [<newTagNameTiddler>] [<newTagNameInputTiddler>] [<newTagNameSelectionTiddler>] [<typeInputTiddler>] [<typeSelectionTiddler>]\"/>\n\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define cancel-delete-tiddler-actions(message)\n<<delete-edittemplate-state-tiddlers>>\n<$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">> newFieldNameInputTiddler=<<qualify \"$:/temp/NewFieldName/input\">> newFieldNameSelectionTiddler=<<qualify \"$:/temp/NewFieldName/selected-item\">> newTagNameInputTiddler=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddler=<<qualify \"$:/temp/NewTagName/selected-item\">> typeInputTiddler=<<qualify \"$:/temp/Type/input\">> typeSelectionTiddler=<<qualify \"$:/temp/Type/selected-item\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" actions=<<cancel-delete-tiddler-actions \"cancel\">>>\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"},"$:/core/ui/Buttons/cancel":{"tags":"$:/tags/EditToolbar","caption":"{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}","description":"{{$:/language/Buttons/Cancel/Hint}}","text":"\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"cancel\">> tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>\n"},"$:/core/ui/Buttons/delete":{"tags":"$:/tags/EditToolbar $:/tags/ViewToolbar","caption":"{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}","description":"{{$:/language/Buttons/Delete/Hint}}","text":"\\whitespace trim\n<$button actions=<<cancel-delete-tiddler-actions \"delete\">> tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>\n"},"$:/core/ui/Buttons/save":{"tags":"$:/tags/EditToolbar","caption":"{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}","description":"{{$:/language/Buttons/Save/Hint}}","text":"\\define save-tiddler-button()\n\\whitespace trim\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"},"$:/core/ui/EditorToolbar/bold":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/bold","caption":"{{$:/language/Buttons/Bold/Caption}}","description":"{{$:/language/Buttons/Bold/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((bold))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"},"$:/core/ui/EditorToolbar/clear-dropdown":{"text":"''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"},"$:/core/ui/EditorToolbar/clear":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/erase","caption":"{{$:/language/Buttons/Clear/Caption}}","description":"{{$:/language/Buttons/Clear/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","dropdown":"$:/core/ui/EditorToolbar/clear-dropdown","text":""},"$:/core/ui/EditorToolbar/editor-height-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"},"$:/core/ui/EditorToolbar/editor-height":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/fixed-height","custom-icon":"yes","caption":"{{$:/language/Buttons/EditorHeight/Caption}}","description":"{{$:/language/Buttons/EditorHeight/Hint}}","condition":"[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]","dropdown":"$:/core/ui/EditorToolbar/editor-height-dropdown","text":"<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"},"$:/core/ui/EditorToolbar/excise-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"},"$:/core/ui/EditorToolbar/excise":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/excise","caption":"{{$:/language/Buttons/Excise/Caption}}","description":"{{$:/language/Buttons/Excise/Hint}}","condition":"[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]","shortcuts":"((excise))","dropdown":"$:/core/ui/EditorToolbar/excise-dropdown","text":""},"$:/core/ui/EditorToolbar/heading-1":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-1","caption":"{{$:/language/Buttons/Heading1/Caption}}","description":"{{$:/language/Buttons/Heading1/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((heading-1))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"},"$:/core/ui/EditorToolbar/heading-2":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-2","caption":"{{$:/language/Buttons/Heading2/Caption}}","description":"{{$:/language/Buttons/Heading2/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((heading-2))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"},"$:/core/ui/EditorToolbar/heading-3":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-3","caption":"{{$:/language/Buttons/Heading3/Caption}}","description":"{{$:/language/Buttons/Heading3/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((heading-3))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"},"$:/core/ui/EditorToolbar/heading-4":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-4","caption":"{{$:/language/Buttons/Heading4/Caption}}","description":"{{$:/language/Buttons/Heading4/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((heading-4))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"},"$:/core/ui/EditorToolbar/heading-5":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-5","caption":"{{$:/language/Buttons/Heading5/Caption}}","description":"{{$:/language/Buttons/Heading5/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((heading-5))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"},"$:/core/ui/EditorToolbar/heading-6":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/heading-6","caption":"{{$:/language/Buttons/Heading6/Caption}}","description":"{{$:/language/Buttons/Heading6/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((heading-6))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"},"$:/core/ui/EditorToolbar/italic":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/italic","caption":"{{$:/language/Buttons/Italic/Caption}}","description":"{{$:/language/Buttons/Italic/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((italic))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"},"$:/core/ui/EditorToolbar/line-width-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"},"$:/core/ui/EditorToolbar/line-width":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/line-width","caption":"{{$:/language/Buttons/LineWidth/Caption}}","description":"{{$:/language/Buttons/LineWidth/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","dropdown":"$:/core/ui/EditorToolbar/line-width-dropdown","text":"<$text text={{$:/config/BitmapEditor/LineWidth}}/>\n"},"$:/core/ui/EditorToolbar/link-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $filter=\"[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\n\\end\n\n\\define get-focus-selector() [data-tiddler-title=\"$(cssEscapedTitle)$\"] .tc-create-wikitext-link input\n\n\\define cancel-search-actions-inner()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}><$list filter=\"[<searchTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/></$list></$set>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<storeTitle>!has[text]] +[<searchTiddler>!has[text]]\" emptyMessage=\"\"\"<<cancel-search-actions-inner>>\"\"\"><$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"wrap-selection\" prefix=\"\" suffix=\"\"/></$list>\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" searchListState=<<qualify \"$:/temp/link-search/selected-item\">> refreshTitle=<<qualify \"$:/temp/link-search/refresh\">> storeTitle=<<qualify \"$:/temp/link-search/input\">>>\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">> class=\"tc-create-wikitext-link\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>\n\t\tselectionStateTitle=<<searchListState>> refreshTitle=<<refreshTitle>> type=\"search\" filterMinLength=\"1\"\n\t\ttag=\"input\" focus=\"true\" class=\"tc-popup-handle\" inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<add-link-actions>> placeholder={{$:/language/Search/Search}} default=\"\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\" />\n</$keyboard>\n</$keyboard>\n<$reveal tag=\"span\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<<cancel-search-actions>><$set name=\"cssEscapedTitle\" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-focus-selector>>/></$set>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$vars>\n\n<$reveal tag=\"div\" state=<<storeTitle>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n\n{{$:/core/ui/SearchResults}}\n\n</$vars>\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n"},"$:/core/ui/EditorToolbar/link":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/link","caption":"{{$:/language/Buttons/Link/Caption}}","description":"{{$:/language/Buttons/Link/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((link))","dropdown":"$:/core/ui/EditorToolbar/link-dropdown","text":""},"$:/core/ui/EditorToolbar/linkify":{"caption":"{{$:/language/Buttons/Linkify/Caption}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","description":"{{$:/language/Buttons/Linkify/Hint}}","icon":"$:/core/images/linkify","list-before":"$:/core/ui/EditorToolbar/mono-block","shortcuts":"((linkify))","tags":"$:/tags/EditorToolbar","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"},"$:/core/ui/EditorToolbar/list-bullet":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/list-bullet","caption":"{{$:/language/Buttons/ListBullet/Caption}}","description":"{{$:/language/Buttons/ListBullet/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((list-bullet))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"},"$:/core/ui/EditorToolbar/list-number":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/list-number","caption":"{{$:/language/Buttons/ListNumber/Caption}}","description":"{{$:/language/Buttons/ListNumber/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((list-number))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"},"$:/core/ui/EditorToolbar/mono-block":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/mono-block","caption":"{{$:/language/Buttons/MonoBlock/Caption}}","description":"{{$:/language/Buttons/MonoBlock/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((mono-block))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"},"$:/core/ui/EditorToolbar/mono-line":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/mono-line","caption":"{{$:/language/Buttons/MonoLine/Caption}}","description":"{{$:/language/Buttons/MonoLine/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((mono-line))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"},"$:/core/ui/EditorToolbar/more-dropdown":{"text":"\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"},"$:/core/ui/EditorToolbar/more":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/down-arrow","caption":"{{$:/language/Buttons/More/Caption}}","description":"{{$:/language/Buttons/More/Hint}}","condition":"[<targetTiddler>]","dropdown":"$:/core/ui/EditorToolbar/more-dropdown","text":""},"$:/core/ui/EditorToolbar/opacity-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/EditorToolbar/opacity":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/opacity","caption":"{{$:/language/Buttons/Opacity/Caption}}","description":"{{$:/language/Buttons/Opacity/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","dropdown":"$:/core/ui/EditorToolbar/opacity-dropdown","text":"<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"},"$:/core/ui/EditorToolbar/paint-dropdown":{"text":"''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"},"$:/core/ui/EditorToolbar/paint":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/paint","caption":"{{$:/language/Buttons/Paint/Caption}}","description":"{{$:/language/Buttons/Paint/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","dropdown":"$:/core/ui/EditorToolbar/paint-dropdown","text":"\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"},"$:/core/ui/EditorToolbar/picture-dropdown":{"text":"\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"},"$:/core/ui/EditorToolbar/picture":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/picture","caption":"{{$:/language/Buttons/Picture/Caption}}","description":"{{$:/language/Buttons/Picture/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((picture))","dropdown":"$:/core/ui/EditorToolbar/picture-dropdown","text":""},"$:/core/ui/EditorToolbar/preview-type-dropdown":{"text":"\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"},"$:/core/ui/EditorToolbar/preview-type":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/chevron-down","caption":"{{$:/language/Buttons/PreviewType/Caption}}","description":"{{$:/language/Buttons/PreviewType/Hint}}","condition":"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]","button-classes":"tc-text-editor-toolbar-item-adjunct","dropdown":"$:/core/ui/EditorToolbar/preview-type-dropdown"},"$:/core/ui/EditorToolbar/preview":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/preview-open","custom-icon":"yes","caption":"{{$:/language/Buttons/Preview/Caption}}","description":"{{$:/language/Buttons/Preview/Hint}}","condition":"[<targetTiddler>]","button-classes":"tc-text-editor-toolbar-item-start-group","shortcuts":"((preview))","text":"<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"},"$:/core/ui/EditorToolbar/quote":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/quote","caption":"{{$:/language/Buttons/Quote/Caption}}","description":"{{$:/language/Buttons/Quote/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((quote))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"},"$:/core/ui/EditorToolbar/rotate-left":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/rotate-left","caption":"{{$:/language/Buttons/RotateLeft/Caption}}","description":"{{$:/language/Buttons/RotateLeft/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","text":"<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"},"$:/core/ui/EditorToolbar/size-dropdown":{"text":"\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"},"$:/core/ui/EditorToolbar/size":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/size","caption":"{{$:/language/Buttons/Size/Caption}}","description":"{{$:/language/Buttons/Size/Hint}}","condition":"[<targetTiddler>is[image]] -[<targetTiddler>type[image/svg+xml]]","dropdown":"$:/core/ui/EditorToolbar/size-dropdown","text":""},"$:/core/ui/EditorToolbar/stamp-dropdown":{"text":"\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"},"$:/core/ui/EditorToolbar/stamp":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/stamp","caption":"{{$:/language/Buttons/Stamp/Caption}}","description":"{{$:/language/Buttons/Stamp/Hint}}","condition":"[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] [<targetTiddler>get[type]match[application/javascript]] [<targetTiddler>get[type]match[application/json]] [<targetTiddler>get[type]match[application/x-tiddler-dictionary]] [<targetTiddler>get[type]match[image/svg+xml]] +[first[]]","shortcuts":"((stamp))","dropdown":"$:/core/ui/EditorToolbar/stamp-dropdown","text":""},"$:/core/ui/EditorToolbar/strikethrough":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/strikethrough","caption":"{{$:/language/Buttons/Strikethrough/Caption}}","description":"{{$:/language/Buttons/Strikethrough/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((strikethrough))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"},"$:/core/ui/EditorToolbar/subscript":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/subscript","caption":"{{$:/language/Buttons/Subscript/Caption}}","description":"{{$:/language/Buttons/Subscript/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((subscript))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"},"$:/core/ui/EditorToolbar/superscript":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/superscript","caption":"{{$:/language/Buttons/Superscript/Caption}}","description":"{{$:/language/Buttons/Superscript/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((superscript))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"},"$:/core/ui/EditorToolbar/transcludify":{"caption":"{{$:/language/Buttons/Transcludify/Caption}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","description":"{{$:/language/Buttons/Transcludify/Hint}}","icon":"$:/core/images/transcludify","list-before":"$:/core/ui/EditorToolbar/mono-block","shortcuts":"((transcludify))","tags":"$:/tags/EditorToolbar","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"},"$:/core/ui/EditorToolbar/underline":{"tags":"$:/tags/EditorToolbar","icon":"$:/core/images/underline","caption":"{{$:/language/Buttons/Underline/Caption}}","description":"{{$:/language/Buttons/Underline/Hint}}","condition":"[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]","shortcuts":"((underline))","text":"<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"},"$:/core/Filters/AllTags":{"tags":"$:/tags/Filter","filter":"[tags[]!is[system]sort[title]]","description":"{{$:/language/Filters/AllTags}}","text":""},"$:/core/Filters/AllTiddlers":{"tags":"$:/tags/Filter","filter":"[!is[system]sort[title]]","description":"{{$:/language/Filters/AllTiddlers}}","text":""},"$:/core/Filters/Drafts":{"tags":"$:/tags/Filter","filter":"[has[draft.of]sort[title]]","description":"{{$:/language/Filters/Drafts}}","text":""},"$:/core/Filters/Missing":{"tags":"$:/tags/Filter","filter":"[all[missing]sort[title]]","description":"{{$:/language/Filters/Missing}}","text":""},"$:/core/Filters/Orphans":{"tags":"$:/tags/Filter","filter":"[all[orphans]sort[title]]","description":"{{$:/language/Filters/Orphans}}","text":""},"$:/core/Filters/OverriddenShadowTiddlers":{"tags":"$:/tags/Filter","filter":"[is[shadow]]","description":"{{$:/language/Filters/OverriddenShadowTiddlers}}","text":""},"$:/core/Filters/RecentSystemTiddlers":{"tags":"$:/tags/Filter","filter":"[has[modified]!sort[modified]limit[50]]","description":"{{$:/language/Filters/RecentSystemTiddlers}}","text":""},"$:/core/Filters/RecentTiddlers":{"tags":"$:/tags/Filter","filter":"[!is[system]has[modified]!sort[modified]limit[50]]","description":"{{$:/language/Filters/RecentTiddlers}}","text":""},"$:/core/Filters/SessionTiddlers":{"tags":"$:/tags/Filter","filter":"[haschanged[]]","description":"{{$:/language/Filters/SessionTiddlers}}","text":""},"$:/core/Filters/ShadowTiddlers":{"tags":"$:/tags/Filter","filter":"[all[shadows]sort[title]]","description":"{{$:/language/Filters/ShadowTiddlers}}","text":""},"$:/core/Filters/StoryList":{"tags":"$:/tags/Filter","filter":"[list[$:/StoryList]] -$:/AdvancedSearch","description":"{{$:/language/Filters/StoryList}}","text":""},"$:/core/Filters/SystemTags":{"tags":"$:/tags/Filter","filter":"[all[shadows+tiddlers]tags[]is[system]sort[title]]","description":"{{$:/language/Filters/SystemTags}}","text":""},"$:/core/Filters/SystemTiddlers":{"tags":"$:/tags/Filter","filter":"[is[system]sort[title]]","description":"{{$:/language/Filters/SystemTiddlers}}","text":""},"$:/core/Filters/TypedTiddlers":{"tags":"$:/tags/Filter","filter":"[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]","description":"{{$:/language/Filters/TypedTiddlers}}","text":""},"$:/core/ui/ImportListing":{"text":"\\define lingo-base() $:/language/Import/\n\n\\define messageField() message-$(payloadTiddler)$\n\n\\define payloadTitleFilter() [<currentTiddler>get<renameField>minlength[1]else<payloadTiddler>]\n\n\\define overWriteWarning()\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\">\n<$text text={{{[subfilter<payloadTitleFilter>!is[tiddler]then[]] ~[<lingo-base>addsuffix[Listing/Rename/OverwriteWarning]get[text]]}}}/>\n</$list>\n\\end\n\n\\define selectionField() selection-$(payloadTiddler)$\n\n\\define renameField() rename-$(payloadTiddler)$\n\n\\define suppressedField() suppressed-$(payloadTiddler)$\n\n\\define newImportTitleTiddler() $:/temp/NewImportTitle-$(payloadTiddler)$\n\n\\define previewPopupState() $(currentTiddler)$!!popup-$(payloadTiddler)$\n\n\\define renameFieldState() $(currentTiddler)$!!state-rename-$(payloadTiddler)$\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table class=\"tc-import-table\">\n<tbody>\n<tr>\n<th align=\"left\">\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr class={{{[<currentTiddler>has<suppressedField>then[tc-row-disabled]] ~[subfilter<payloadTitleFilter>is[tiddler]then[tc-row-warning]] }}}>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\" tag=\"div\" class=\"tc-flex\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown tc-flex-grow-1 tc-word-break\" set=<<previewPopupState>> setTo=\"yes\" disabled={{{[<currentTiddler>has<suppressedField>then[yes]else[no]]}}}>\n<span class=\"tc-small-gap-right\">{{$:/core/images/right-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n<$list filter=\"[<currentTiddler>!has<suppressedField>]\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"yes\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/Tooltip]get[text]]}}}>{{$:/core/images/edit-button}}</$button></$list>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n<span class=\"tc-small-gap-right\">{{$:/core/images/down-arrow}}</span><$text text={{{[subfilter<payloadTitleFilter>]}}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"div\">\n<$text text={{{[<lingo-base>addsuffix[Listing/Rename/Prompt]get[text]]}}}/>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n<<overWriteWarning>>\n</td>\n</tr>\n<$reveal type=\"match\" state=<<renameFieldState>> text=\"yes\" tag=\"tr\">\n<td colspan=\"3\">\n<div class=\"tc-flex\">\n<$edit-text tiddler=<<newImportTitleTiddler>> default={{{[subfilter<payloadTitleFilter>]}}} tag=\"input\" class=\"tc-import-rename tc-flex-grow-1\"/><span class=\"tc-small-gap-left\"><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/CancelRename]get[text]]}}}>{{$:/core/images/close-button}}<$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button><span class=\"tc-small-gap-right\"/></span><$button class=\"tc-btn-invisible\" set=<<renameFieldState>> setTo=\"no\" tooltip={{{[<lingo-base>addsuffix[Listing/Rename/ConfirmRename]get[text]]}}}>{{$:/core/images/done-button}}<$action-setfield $field=<<renameField>> $value={{{[<newImportTitleTiddler>get[text]minlength[1]else<payloadTiddler>]}}} /><$action-deletetiddler $tiddler=<<newImportTitleTiddler>>/></$button>\n</div>\n</td>\n</$reveal>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"},"$:/core/ui/ImportPreviews/Diff":{"tags":"$:/tags/ImportPreview","caption":"{{$:/language/Import/Listing/Preview/Diff}}","text":"<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"},"$:/core/ui/ImportPreviews/DiffFields":{"tags":"$:/tags/ImportPreview","caption":"{{$:/language/Import/Listing/Preview/DiffFields}}","text":"<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"},"$:/core/ui/ImportPreviews/Fields":{"tags":"$:/tags/ImportPreview","caption":"{{$:/language/Import/Listing/Preview/Fields}}","text":"<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"},"$:/core/ui/ImportPreviews/Text":{"tags":"$:/tags/ImportPreview","caption":"{{$:/language/Import/Listing/Preview/Text}}","text":"<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"},"$:/core/ui/ImportPreviews/TextRaw":{"tags":"$:/tags/ImportPreview","caption":"{{$:/language/Import/Listing/Preview/TextRaw}}","text":"<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"},"$:/core/ui/KeyboardShortcuts/advanced-search":{"tags":"$:/tags/KeyboardShortcut","key":"((advanced-search))","text":"<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/>\n</$navigator>\n"},"$:/core/ui/KeyboardShortcuts/change-sidebar-layout":{"tags":"$:/tags/KeyboardShortcut","key":"((change-sidebar-layout))","text":"<$list filter=\"[{$:/themes/tiddlywiki/vanilla/options/sidebarlayout}match[fixed-fluid]]\" \nemptyMessage=\"\"\"<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fixed-fluid\"/>\"\"\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" text=\"fluid-fixed\"/>\n</$list>\n"},"$:/core/ui/KeyboardShortcuts/new-image":{"tags":"$:/tags/KeyboardShortcut","key":"((new-image))","text":"<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"},"$:/core/ui/KeyboardShortcuts/new-journal":{"tags":"$:/tags/KeyboardShortcut","key":"((new-journal))","text":"<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"},"$:/core/ui/KeyboardShortcuts/new-tiddler":{"tags":"$:/tags/KeyboardShortcut","key":"((new-tiddler))","text":"<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"},"$:/core/ui/KeyboardShortcuts/save-wiki":{"tags":"$:/tags/KeyboardShortcut","key":"((save-wiki))","text":"<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n"},"$:/core/ui/KeyboardShortcuts/sidebar-search":{"tags":"$:/tags/KeyboardShortcut","key":"((sidebar-search))","text":"<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"},"$:/core/ui/KeyboardShortcuts/switcher":{"tags":"$:/tags/KeyboardShortcut","key":"((layout-switcher))","text":"<$action-sendmessage $message=\"tm-show-switcher\" switch=\"layout\"/>"},"$:/core/ui/KeyboardShortcuts/toggle-sidebar":{"tags":"$:/tags/KeyboardShortcut","key":"((toggle-sidebar))","text":"<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"},"$:/snippets/LayoutSwitcher":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ControlPanel/LayoutSwitcher/Caption}}","text":"<$linkcatcher to=\"$:/layout\">\n<div class=\"tc-chooser\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Layout]] [[$:/core/ui/PageTemplate]] +[!is[draft]sort[name]]\">\n<$list filter=\"[{$:/layout}!has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/layout}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n\"\"\">\n<$set name=\"cls\" filter=\"[all[current]field:title[$:/core/ui/PageTemplate]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$transclude field=\"name\"/>'' - <$transclude field=\"description\"/></$link></div>\n</$set>\n</$list>\n</$list>\n</div>\n</$linkcatcher>\n"},"$:/core/ui/ListItemTemplate":{"text":"<div class=\"tc-menu-list-item\">\n<$link />\n</div>"},"$:/Manager/ItemMain/Fields":{"tags":"$:/tags/Manager/ItemMain","caption":"{{$:/language/Manager/Item/Fields}}","text":"<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"},"$:/Manager/ItemMain/RawText":{"tags":"$:/tags/Manager/ItemMain","caption":"{{$:/language/Manager/Item/RawText}}","text":"<pre><code><$view/></code></pre>\n"},"$:/Manager/ItemMain/WikifiedText":{"tags":"$:/tags/Manager/ItemMain","caption":"{{$:/language/Manager/Item/WikifiedText}}","text":"<$transclude mode=\"block\"/>\n"},"$:/Manager/ItemSidebar/Colour":{"tags":"$:/tags/Manager/ItemSidebar","caption":"{{$:/language/Manager/Item/Colour}}","text":"\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"},"$:/Manager/ItemSidebar/Icon":{"tags":"$:/tags/Manager/ItemSidebar","caption":"{{$:/language/Manager/Item/Icon}}","text":"<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"},"$:/Manager/ItemSidebar/Tags":{"tags":"$:/tags/Manager/ItemSidebar","caption":"{{$:/language/Manager/Item/Tags}}","text":"\\whitespace trim\n\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\" storyview=\"pop\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</$fieldmangler>\n</p>\n"},"$:/Manager/ItemSidebar/Tools":{"tags":"$:/tags/Manager/ItemSidebar","caption":"{{$:/language/Manager/Item/Tools}}","text":"<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"},"$:/Manager":{"icon":"$:/core/images/list","color":"#bbb","text":"\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"},"$:/core/ui/MissingTemplate":{"text":"<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"},"$:/core/ui/MoreSideBar/All":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/All/Caption}}","text":"<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/MoreSideBar/Drafts":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Drafts/Caption}}","text":"<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/MoreSideBar/Explorer":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Explorer/Caption}}","text":"<<tree \"$:/\">>\n"},"$:/core/ui/MoreSideBar/Missing":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Missing/Caption}}","text":"<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"},"$:/core/ui/MoreSideBar/Orphans":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Orphans/Caption}}","text":"<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/MoreSideBar/Plugins":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/ControlPanel/Plugins/Caption}}","text":"\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" default=\"$:/core/ui/MoreSideBar/Plugins/Plugins\" explicitState=\"$:/state/tab-1163638994\"/>\n"},"$:/core/ui/MoreSideBar/Recent":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Recent/Caption}}","text":"<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"},"$:/core/ui/MoreSideBar/Shadows":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Shadows/Caption}}","text":"<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/MoreSideBar/System":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/System/Caption}}","text":"<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/MoreSideBar/Tags":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Tags/Caption}}","text":"<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"},"$:/core/ui/MoreSideBar/Types":{"tags":"$:/tags/MoreSideBar","caption":"{{$:/language/SideBar/Types/Caption}}","text":"<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"},"$:/core/ui/MoreSideBar/Plugins/Languages":{"tags":"$:/tags/MoreSideBar/Plugins","caption":"{{$:/language/ControlPanel/Plugins/Languages/Caption}}","text":"<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"},"$:/core/ui/MoreSideBar/Plugins/Plugins":{"tags":"$:/tags/MoreSideBar/Plugins","caption":"{{$:/language/ControlPanel/Plugins/Plugins/Caption}}","text":"<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"},"$:/core/ui/MoreSideBar/Plugins/Theme":{"tags":"$:/tags/MoreSideBar/Plugins","caption":"{{$:/language/ControlPanel/Plugins/Themes/Caption}}","text":"<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"},"$:/core/ui/Buttons/advanced-search":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}","description":"{{$:/language/Buttons/AdvancedSearch/Hint}}","text":"\\whitespace trim\n\\define advanced-search-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<advanced-search-button>>>\n<<advanced-search-button \"tc-selected\">>\n</$list>\n"},"$:/core/ui/Buttons/close-all":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}","description":"{{$:/language/Buttons/CloseAll/Hint}}","text":"<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/control-panel":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}","description":"{{$:/language/Buttons/ControlPanel/Hint}}","text":"\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"},"$:/core/ui/Buttons/encryption":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}","description":"{{$:/language/Buttons/Encryption/Hint}}","text":"\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"},"$:/core/ui/Buttons/export-page":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}","description":"{{$:/language/Buttons/ExportPage/Hint}}","text":"<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"},"$:/core/ui/Buttons/fold-all":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}","description":"{{$:/language/Buttons/FoldAll/Hint}}","text":"<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/full-screen":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}","description":"{{$:/language/Buttons/FullScreen/Hint}}","text":"<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/home":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}","description":"{{$:/language/Buttons/Home/Hint}}","text":"<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/import":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}","description":"{{$:/language/Buttons/Import/Hint}}","text":"<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"},"$:/core/ui/Buttons/language":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}","description":"{{$:/language/Buttons/Language/Hint}}","text":"\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"},"$:/core/ui/Buttons/manager":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}","description":"{{$:/language/Buttons/Manager/Hint}}","text":"\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"},"$:/core/ui/Buttons/more-page-actions":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}","description":"{{$:/language/Buttons/More/Hint}}","text":"\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"},"$:/core/ui/Buttons/new-image":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}","description":"{{$:/language/Buttons/NewImage/Hint}}","text":"\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"},"$:/core/ui/Buttons/new-journal":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}","description":"{{$:/language/Buttons/NewJournal/Hint}}","text":"\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"},"$:/core/ui/Buttons/new-tiddler":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}","description":"{{$:/language/Buttons/NewTiddler/Hint}}","text":"\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"},"$:/core/ui/Buttons/palette":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}","description":"{{$:/language/Buttons/Palette/Hint}}","text":"\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"},"$:/core/ui/Buttons/print":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}","description":"{{$:/language/Buttons/Print/Hint}}","text":"<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/refresh":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}","description":"{{$:/language/Buttons/Refresh/Hint}}","text":"<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/save-wiki":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}","description":"{{$:/language/Buttons/SaveWiki/Hint}}","text":"<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"},"$:/core/ui/Buttons/storyview":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}","description":"{{$:/language/Buttons/StoryView/Hint}}","text":"\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"},"$:/core/ui/Buttons/tag-manager":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}","description":"{{$:/language/Buttons/TagManager/Hint}}","text":"\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"},"$:/core/ui/Buttons/theme":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}","description":"{{$:/language/Buttons/Theme/Hint}}","text":"\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"},"$:/core/ui/Buttons/timestamp":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}","description":"{{$:/language/Buttons/Timestamp/Hint}}","text":"\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"},"$:/core/ui/Buttons/unfold-all":{"tags":"$:/tags/PageControls","caption":"{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}","description":"{{$:/language/Buttons/UnfoldAll/Hint}}","text":"<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"},"$:/core/ui/PageTemplate/pagecontrols":{"text":"\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"},"$:/core/ui/PageStylesheet":{"text":"\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/PageTemplate/alerts":{"tags":"$:/tags/PageTemplate","text":"<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"},"$:/core/ui/PageTemplate/drafts":{"tags":"$:/tags/PageTemplate","text":"\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"},"$:/core/ui/PageTemplate/pluginreloadwarning":{"tags":"$:/tags/PageTemplate","text":"\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"},"$:/core/ui/PageTemplate/sidebar":{"tags":"$:/tags/PageTemplate","text":"\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"},"$:/core/ui/PageTemplate/story":{"tags":"$:/tags/PageTemplate","text":"\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"},"$:/core/ui/PageTemplate/topleftbar":{"tags":"$:/tags/PageTemplate","text":"<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"},"$:/core/ui/PageTemplate/toprightbar":{"tags":"$:/tags/PageTemplate","text":"<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"},"$:/core/ui/PageTemplate":{"name":"{{$:/language/PageTemplate/Name}}","description":"{{$:/language/PageTemplate/Description}}","text":"\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$vars\n\ttv-config-toolbar-icons={{$:/config/Toolbar/Icons}}\n\ttv-config-toolbar-text={{$:/config/Toolbar/Text}}\n\ttv-config-toolbar-class={{$:/config/Toolbar/ButtonClass}}\n\ttv-enable-drag-and-drop={{$:/config/DragAndDrop/Enable}}\n\ttv-show-missing-links={{$:/config/MissingLinks}}\n\tstoryviewTitle={{$:/view}}\n\tlanguageTitle={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$vars>\n"},"$:/PaletteManager":{"text":"\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}}<$text text=<<newColourName>> class=\"tc-small-gap-left\"/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} aria-label={{$:/language/ControlPanel/Palette/Editor/Delete/Hint}} class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"><span class=\"tc-small-gap-left\"><<lingo Names/External/Show>></span></$checkbox>\n\n<<palette-manager-table>>\n"},"$:/core/ui/PluginInfo":{"text":"\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"},"$:/core/ui/PluginInfo/Default/contents":{"text":"\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"},"$:/core/ui/PluginListItemTemplate":{"text":"<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"},"$:/core/ui/RootTemplate":{"text":"<$transclude tiddler={{{ [{$:/layout}has[text]] ~[[$:/core/ui/PageTemplate]] }}} mode=\"inline\"/>\n\n"},"$:/core/ui/SearchResults":{"text":"<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<currentTab>>/>\"\"\" explicitState=\"$:/state/tab/search-results/sidebar\"/>\n\n</$list>\n\n</div>\n"},"$:/core/ui/SideBar/More":{"tags":"$:/tags/SideBar","caption":"{{$:/language/SideBar/More/Caption}}","text":"<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" explicitState=\"$:/state/tab/moresidebar-1850697562\"/>\n</div>\n"},"$:/core/ui/SideBar/Open":{"tags":"$:/tags/SideBar","caption":"{{$:/language/SideBar/Open/Caption}}","text":"\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini tc-small-gap-right\">{{$:/core/images/close-button}}</$button><$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"},"$:/core/ui/SideBar/Recent":{"tags":"$:/tags/SideBar","caption":"{{$:/language/SideBar/Recent/Caption}}","text":"<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"},"$:/core/ui/SideBar/Tools":{"tags":"$:/tags/SideBar","caption":"{{$:/language/SideBar/Tools/Caption}}","text":"\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/SideBarLists":{"text":"<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"},"$:/core/ui/SideBarSegments/page-controls":{"tags":"$:/tags/SideBarSegment","text":"{{||$:/core/ui/PageTemplate/pagecontrols}}\n"},"$:/core/ui/SideBarSegments/search":{"tags":"$:/tags/SideBarSegment","text":"\\whitespace trim\n\n\\define count-popup-button()\n\\whitespace trim\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$(searchTiddler)$}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$vars userInput={{{ [<searchTiddler>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}} replaceRegexp=\"limit\\[\\d+\\]\">\n<$vars primaryListFilter={{{ [<configTiddler>get[first-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}} secondaryListFilter={{{ [<configTiddler>get[second-search-filter]search-replace:g:regexp<replaceRegexp>,[]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[subfilter<primaryListFilter>] [subfilter<secondaryListFilter>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$vars>\n</$vars>\n</$list>\n</$button>\n\\end\n\n\\define search-results-list()\n\\whitespace trim\n<$vars userInput={{$(searchTiddler)$}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$tiddler tiddler=<<configTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$tiddler>\n\n</$list>\n</$vars>\n\\end\n\n\\define cancel-search-actions() <$list filter=\"[<searchTiddler>get[text]!match{$:/temp/search}]\" emptyMessage=\"\"\"<$action-deletetiddler $filter=\"[[$:/temp/search]] [<searchTiddler>] [<searchListState>]\"/>\"\"\"><$action-setfield $tiddler=\"$:/temp/search\" text={{{ [<searchTiddler>get[text]] }}}/><$action-setfield $tiddler=\"$:/temp/search/refresh\" text=\"yes\"/></$list>\n\n\\define input-accept-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\"\"\"><$action-navigate $to={{{ [<__tiddler__>get[text]] }}}/></$list>\n\n\\define input-accept-variant-actions() <$list filter=\"[{$:/config/Search/NavigateOnEnter/enable}match[yes]]\" emptyMessage=\"\"\"<$list filter=\"[<__tiddler__>get[text]!is[missing]] ~[<__tiddler__>get[text]is[shadow]]\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\"\"\"><$list filter=\"[<__tiddler__>get[text]minlength[1]]\"><$action-sendmessage $message=\"tm-edit-tiddler\" $param={{{ [<__tiddler__>get[text]] }}}/></$list></$list>\n\n\\define set-next-input-tab(beforeafter:\"after\") <$macrocall $name=\"change-input-tab\" stateTitle=\"$:/state/tab/search-results/sidebar\" tag=\"$:/tags/SearchResults\" beforeafter=\"$beforeafter$\" defaultState={{$:/config/SearchResults/Default}} actions=\"\"\"<$action-setfield $tiddler=\"$:/state/search/currentTab\" text=<<nextTab>>/>\"\"\"/>\n\n\\define advanced-search-actions() <$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search/input}}/><$action-setfield $tiddler=\"$:/temp/advancedsearch/input\" text={{$:/temp/search/input}}/><<delete-state-tiddlers>><$action-navigate $to=\"$:/AdvancedSearch\"/><$action-setfield $tiddler=\"$:/temp/advancedsearch/refresh\" text=\"yes\"/><$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\" preventScroll=\"true\"/><$action-deletetiddler $filter=\"$:/temp/search $:/temp/search/input $:/temp/search/refresh [<searchListState>]\"/>\n\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$vars editTiddler=\"$:/temp/search\" searchTiddler=\"$:/temp/search/input\" searchListState=<<qualify \"$:/state/search-list/selected-item\">>>\n<div class=\"tc-search\">\n<$keyboard key=\"((input-tab-right))\" actions=<<set-next-input-tab>>>\n<$keyboard key=\"((input-tab-left))\" actions=<<set-next-input-tab \"before\">>>\n<$keyboard key=\"((advanced-search-sidebar))\" actions=<<advanced-search-actions>>>\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<editTiddler>> storeTitle=<<searchTiddler>> \n\t\tselectionStateTitle=<<searchListState>> refreshTitle=\"$:/temp/search/refresh\" type=\"search\" \n\t\ttag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> \n\t\tclass=\"tc-popup-handle\" filterMinLength={{$:/config/Search/MinLength}} inputCancelActions=<<cancel-search-actions>> \n\t\tinputAcceptActions=<<input-accept-actions>> inputAcceptVariantActions=<<input-accept-variant-actions>> cancelPopups=\"yes\" \n\t\tconfigTiddlerFilter=\"[[$:/state/search/currentTab]!is[missing]get[text]] ~[{$:/config/SearchResults/Default}]\"/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n<$reveal state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<<advanced-search-actions>>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<<cancel-search-actions>><$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n{{$:/core/images/close-button}}\n</$button>\n<<count-popup-button>>\n</$reveal>\n<$reveal state=<<searchTiddler>> type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<<search-results-list>>\n\n</$reveal>\n\n</$reveal>\n\n</$vars>\n\n</div>\n"},"$:/core/ui/SideBarSegments/site-subtitle":{"tags":"$:/tags/SideBarSegment","text":"<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"},"$:/core/ui/SideBarSegments/site-title":{"tags":"$:/tags/SideBarSegment","text":"<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"},"$:/core/ui/SideBarSegments/tabs":{"tags":"$:/tags/SideBarSegment","text":"<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\" explicitState=\"$:/state/tab/sidebar--595412856\"/>\n\n</div>\n"},"$:/core/ui/SwitcherModal":{"subtitle":"<$text text={{{[<switch>lookup[$:/language/Switcher/Subtitle/]]}}}/>","class":"tc-modal-centered","text":"<$tiddler tiddler={{{[<switch>lookup[$:/config/SwitcherTargets/]]}}}>\n\n\n<$transclude/>\n\n\n</$tiddler>"},"$:/TagManager":{"icon":"$:/core/images/tag-button","color":"#bbb","text":"\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"},"$:/core/ui/TagPickerTagTemplate":{"text":"\\whitespace trim\n<$button class=<<button-classes>> tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$list filter=\"[<saveTiddler>minlength[1]]\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<tagField>> $subfilter=\"[<tag>]\"/>\n</$list>\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>> preventScroll=\"true\"/>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$list filter=\"[<refreshTitle>minlength[1]]\">\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n<<actions>>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<$wikify name=\"foregroundColor\" text=\"\"\"<$macrocall $name=\"contrastcolour\" target={{!!color}} fallbackTarget=<<fallbackTarget>> colourA=<<colourA>> colourB=<<colourB>>/>\"\"\">\n<span class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n<$transclude tiddler={{!!icon}}/><$view field=\"title\" format=\"text\"/>\n</span>\n</$wikify>\n</$set>\n</$button>\n"},"$:/core/ui/TagTemplate":{"text":"\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"},"$:/core/ui/TiddlerFieldTemplate":{"text":"<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"},"$:/core/ui/TiddlerFields":{"text":"<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"},"$:/core/ui/TiddlerInfo/Advanced/PluginInfo":{"tags":"$:/tags/TiddlerInfo/Advanced","text":"\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"},"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo":{"tags":"$:/tags/TiddlerInfo/Advanced","text":"\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"},"$:/core/ui/TiddlerInfo/Advanced":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/Advanced/Caption}}","text":"<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n</$list>\n"},"$:/core/ui/TiddlerInfo/Fields":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/Fields/Caption}}","text":"<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"},"$:/core/ui/TiddlerInfo/List":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/List/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/TiddlerInfo/Listed":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/Listed/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/TiddlerInfo/References":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/References/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"},"$:/core/ui/TiddlerInfo/Tagging":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/Tagging/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"},"$:/core/ui/TiddlerInfo/Tools":{"tags":"$:/tags/TiddlerInfo","caption":"{{$:/language/TiddlerInfo/Tools/Caption}}","text":"\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"},"$:/core/ui/TiddlerInfo":{"text":"<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>\n"},"$:/core/ui/TopBar/menu":{"tags":"$:/tags/TopRightBar","text":"<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible tc-hide-sidebar-btn\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible tc-show-sidebar-btn\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"},"$:/core/ui/UntaggedTemplate":{"text":"\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"},"$:/core/ui/ViewTemplate/body":{"tags":"$:/tags/ViewTemplate","text":"<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"},"$:/core/ui/ViewTemplate/classic":{"tags":"$:/tags/ViewTemplate $:/tags/EditTemplate","text":"\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"},"$:/core/ui/ViewTemplate/import":{"tags":"$:/tags/ViewTemplate","text":"\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"},"$:/core/ui/ViewTemplate/plugin":{"tags":"$:/tags/ViewTemplate","text":"<$reveal tag=\"div\" class=\"tc-tiddler-plugin-info\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n</$reveal>"},"$:/core/ui/ViewTemplate/subtitle":{"tags":"$:/tags/ViewTemplate","text":"\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"},"$:/core/ui/ViewTemplate/tags":{"tags":"$:/tags/ViewTemplate","text":"<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"},"$:/core/ui/ViewTemplate/title":{"tags":"$:/tags/ViewTemplate","text":"\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<$list filter=\"[all[current]has[icon]]~[[$:/config/DefaultTiddlerIcon]has[text]]\">\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$list>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"},"$:/core/ui/ViewTemplate/unfold":{"tags":"$:/tags/ViewTemplate","text":"<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"},"$:/core/ui/ViewTemplate":{"text":"\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\define cancel-delete-tiddler-actions(message) <$action-sendmessage $message=\"tm-$message$-tiddler\"/>\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"},"$:/core/ui/Buttons/clone":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}","description":"{{$:/language/Buttons/Clone/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/close-others":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}","description":"{{$:/language/Buttons/CloseOthers/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/close":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}","description":"{{$:/language/Buttons/Close/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/edit":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}","description":"{{$:/language/Buttons/Edit/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/export-tiddler":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}","description":"{{$:/language/Buttons/ExportTiddler/Hint}}","text":"\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"},"$:/core/ui/Buttons/fold-bar":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}","description":"{{$:/language/Buttons/Fold/FoldBar/Hint}}","text":"<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"},"$:/core/ui/Buttons/fold-others":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}","description":"{{$:/language/Buttons/FoldOthers/Hint}}","text":"\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/fold":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}","description":"{{$:/language/Buttons/Fold/Hint}}","text":"\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"},"$:/core/ui/Buttons/info":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}","description":"{{$:/language/Buttons/Info/Hint}}","text":"\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"},"$:/core/ui/Buttons/more-tiddler-actions":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}","description":"{{$:/language/Buttons/More/Hint}}","text":"\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"},"$:/core/ui/Buttons/new-here":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}","description":"{{$:/language/Buttons/NewHere/Hint}}","text":"\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"},"$:/core/ui/Buttons/new-journal-here":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}","description":"{{$:/language/Buttons/NewJournalHere/Hint}}","text":"\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"},"$:/core/ui/Buttons/open-window":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}","description":"{{$:/language/Buttons/OpenWindow/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/permalink":{"tags":"$:/tags/ViewToolbar","caption":"{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}","description":"{{$:/language/Buttons/Permalink/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/core/ui/Buttons/permaview":{"tags":"$:/tags/ViewToolbar $:/tags/PageControls","caption":"{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}","description":"{{$:/language/Buttons/Permaview/Hint}}","text":"\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"},"$:/DefaultTiddlers":{"text":"GettingStarted\n"},"$:/temp/advancedsearch":{"text":""},"$:/snippets/allfields":{"text":"\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"},"$:/config/AnimationDuration":{"text":"400"},"$:/config/AutoFocus":{"text":"title"},"$:/config/AutoSave":{"text":"yes"},"$:/config/BitmapEditor/Colour":{"text":"#444"},"$:/config/BitmapEditor/ImageSizes":{"text":"[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"},"$:/config/BitmapEditor/LineWidth":{"text":"3px"},"$:/config/BitmapEditor/LineWidths":{"text":"0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"},"$:/config/BitmapEditor/Opacities":{"text":"0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"},"$:/config/BitmapEditor/Opacity":{"text":"1.0"},"$:/config/DefaultMoreSidebarTab":{"text":"$:/core/ui/MoreSideBar/Tags"},"$:/config/DefaultSidebarTab":{"text":"$:/core/ui/SideBar/Open"},"$:/config/DownloadSaver/AutoSave":{"text":"no"},"$:/config/Drafts/TypingTimeout":{"text":"400"},"$:/config/EditMode/fieldname-filter":{"first-search-filter":"[!is[shadow]!is[system]fields[]search:title<userInput>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type","second-search-filter":"[fields[]search:title<userInput>sort[]] -[!is[shadow]!is[system]fields[]]"},"$:/config/EditTabIndex":{"text":"1\n"},"$:/config/EditTemplateFields/Visibility/title":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/tags":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/text":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/creator":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/created":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/modified":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/modifier":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/type":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/draft.title":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/draft.of":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/revision":{"text":"hide"},"$:/config/EditTemplateFields/Visibility/bag":{"text":"hide"},"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4":{"text":"hide"},"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5":{"text":"hide"},"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6":{"text":"hide"},"$:/config/EditorTypeMappings/image/gif":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/webp":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/heic":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/heif":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/jpeg":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/jpg":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/png":{"text":"bitmap"},"$:/config/EditorTypeMappings/image/x-icon":{"text":"bitmap"},"$:/config/EditorTypeMappings/text/vnd.tiddlywiki":{"text":"text"},"$:/config/Manager/Show":{"text":"tiddlers"},"$:/config/Manager/Filter":{"text":""},"$:/config/Manager/Order":{"text":"forward"},"$:/config/Manager/Sort":{"text":"title"},"$:/config/Manager/System":{"text":"system"},"$:/config/Manager/Tag":{"text":""},"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText":{"text":"hide"},"$:/config/MissingLinks":{"text":"yes"},"$:/config/Navigation/UpdateAddressBar":{"text":"no"},"$:/config/Navigation/UpdateHistory":{"text":"no"},"$:/config/NewImageType":{"text":"jpeg"},"$:/config/OfficialPluginLibrary":{"tags":"$:/tags/PluginLibrary","url":"https://tiddlywiki.com/library/v5.1.24/index.html","caption":"{{$:/language/OfficialPluginLibrary}}","text":"{{$:/language/OfficialPluginLibrary/Hint}}\n"},"$:/config/Navigation/openLinkFromInsideRiver":{"text":"below"},"$:/config/Navigation/openLinkFromOutsideRiver":{"text":"top"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme":{"text":"hide"},"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all":{"text":"hide"},"$:/config/Performance/Instrumentation":{"text":"no"},"$:/config/RegisterPluginType/plugin":{"text":"yes"},"$:/config/RegisterPluginType/theme":{"text":"no"},"$:/config/RegisterPluginType/language":{"text":"no"},"$:/config/RegisterPluginType/info":{"text":"yes"},"$:/config/RegisterPluginType/import":{"text":"no"},"$:/config/SaveWikiButton/Template":{"text":"$:/core/save/all"},"$:/config/SaverFilter":{"text":"[all[]] -[prefix[$:/HistoryList]] -[prefix[$:/StoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"},"$:/config/Search/AutoFocus":{"text":"true"},"$:/config/Search/MinLength":{"text":"3"},"$:/config/SearchResults/Default":{"text":"$:/core/ui/DefaultSearchResultList"},"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]":{"text":"yes"},"$:/config/ShortcutInfo/add-field":{"text":"{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"},"$:/config/ShortcutInfo/advanced-search":{"text":"{{$:/language/Buttons/AdvancedSearch/Hint}}"},"$:/config/ShortcutInfo/advanced-search-sidebar":{"text":"{{$:/language/Shortcuts/Input/AdvancedSearch/Hint}}"},"$:/config/ShortcutInfo/bold":{"text":"{{$:/language/Buttons/Bold/Hint}}"},"$:/config/ShortcutInfo/cancel-edit-tiddler":{"text":"{{$:/language/Buttons/Cancel/Hint}}"},"$:/config/ShortcutInfo/change-sidebar-layout":{"text":"{{$:/language/Shortcuts/SidebarLayout/Hint}}"},"$:/config/ShortcutInfo/delete-field":{"text":"{{$:/language/EditTemplate/Field/Remove/Hint}}"},"$:/config/ShortcutInfo/excise":{"text":"{{$:/language/Buttons/Excise/Hint}}"},"$:/config/ShortcutInfo/heading-1":{"text":"{{$:/language/Buttons/Heading1/Hint}}"},"$:/config/ShortcutInfo/heading-2":{"text":"{{$:/language/Buttons/Heading2/Hint}}"},"$:/config/ShortcutInfo/heading-3":{"text":"{{$:/language/Buttons/Heading3/Hint}}"},"$:/config/ShortcutInfo/heading-4":{"text":"{{$:/language/Buttons/Heading4/Hint}}"},"$:/config/ShortcutInfo/heading-5":{"text":"{{$:/language/Buttons/Heading5/Hint}}"},"$:/config/ShortcutInfo/heading-6":{"text":"{{$:/language/Buttons/Heading6/Hint}}"},"$:/config/ShortcutInfo/input-accept":{"text":"{{$:/language/Shortcuts/Input/Accept/Hint}}"},"$:/config/ShortcutInfo/input-accept-variant":{"text":"{{$:/language/Shortcuts/Input/AcceptVariant/Hint}}"},"$:/config/ShortcutInfo/input-cancel":{"text":"{{$:/language/Shortcuts/Input/Cancel/Hint}}"},"$:/config/ShortcutInfo/input-down":{"text":"{{$:/language/Shortcuts/Input/Down/Hint}}"},"$:/config/ShortcutInfo/input-tab-left":{"text":"{{$:/language/Shortcuts/Input/Tab-Left/Hint}}"},"$:/config/ShortcutInfo/input-tab-right":{"text":"{{$:/language/Shortcuts/Input/Tab-Right/Hint}}"},"$:/config/ShortcutInfo/input-up":{"text":"{{$:/language/Shortcuts/Input/Up/Hint}}"},"$:/config/ShortcutInfo/italic":{"text":"{{$:/language/Buttons/Italic/Hint}}"},"$:/config/ShortcutInfo/layout-switcher":{"text":"{{$:/language/LayoutSwitcher/Description}}"},"$:/config/ShortcutInfo/link":{"text":"{{$:/language/Buttons/Link/Hint}}"},"$:/config/ShortcutInfo/linkify":{"text":"{{$:/language/Buttons/Linkify/Hint}}"},"$:/config/ShortcutInfo/list-bullet":{"text":"{{$:/language/Buttons/ListBullet/Hint}}"},"$:/config/ShortcutInfo/list-number":{"text":"{{$:/language/Buttons/ListNumber/Hint}}"},"$:/config/ShortcutInfo/mono-block":{"text":"{{$:/language/Buttons/MonoBlock/Hint}}"},"$:/config/ShortcutInfo/mono-line":{"text":"{{$:/language/Buttons/MonoLine/Hint}}"},"$:/config/ShortcutInfo/new-image":{"text":"{{$:/language/Buttons/NewImage/Hint}}"},"$:/config/ShortcutInfo/new-journal":{"text":"{{$:/language/Buttons/NewJournal/Hint}}"},"$:/config/ShortcutInfo/new-tiddler":{"text":"{{$:/language/Buttons/NewTiddler/Hint}}"},"$:/config/ShortcutInfo/picture":{"text":"{{$:/language/Buttons/Picture/Hint}}"},"$:/config/ShortcutInfo/preview":{"text":"{{$:/language/Buttons/Preview/Hint}}"},"$:/config/ShortcutInfo/quote":{"text":"{{$:/language/Buttons/Quote/Hint}}"},"$:/config/ShortcutInfo/save-tiddler":{"text":"{{$:/language/Buttons/Save/Hint}}"},"$:/config/ShortcutInfo/save-wiki":{"text":"{{$:/language/Buttons/SaveWiki/Hint}}"},"$:/config/ShortcutInfo/sidebar-search":{"text":"{{$:/language/Buttons/SidebarSearch/Hint}}"},"$:/config/ShortcutInfo/stamp":{"text":"{{$:/language/Buttons/Stamp/Hint}}"},"$:/config/ShortcutInfo/strikethrough":{"text":"{{$:/language/Buttons/Strikethrough/Hint}}"},"$:/config/ShortcutInfo/subscript":{"text":"{{$:/language/Buttons/Subscript/Hint}}"},"$:/config/ShortcutInfo/superscript":{"text":"{{$:/language/Buttons/Superscript/Hint}}"},"$:/config/ShortcutInfo/toggle-sidebar":{"text":"{{$:/language/Buttons/ToggleSidebar/Hint}}"},"$:/config/ShortcutInfo/transcludify":{"text":"{{$:/language/Buttons/Transcludify/Hint}}"},"$:/config/ShortcutInfo/underline":{"text":"{{$:/language/Buttons/Underline/Hint}}"},"$:/config/SwitcherTargets/layout":{"text":"$:/snippets/LayoutSwitcher"},"$:/config/SwitcherTargets/language":{"text":"$:/snippets/languageswitcher"},"$:/config/SwitcherTargets/palette":{"text":"$:/core/ui/ControlPanel/Palette"},"$:/config/SwitcherTargets/theme":{"text":"$:/core/ui/ControlPanel/Theme"},"$:/config/SyncFilter":{"text":"[is[tiddler]] -[[$:/core]] -[[$:/library/sjcl.js]] -[prefix[$:/boot/]] -[prefix[$:/HistoryList]] -[status[pending]plugin-type[import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]\n"},"$:/config/SyncSystemTiddlersFromServer":{"text":"no"},"$:/config/Tags/MinLength":{"text":"0"},"$:/config/TextEditor/EditorHeight/Height":{"text":"400px"},"$:/config/TextEditor/EditorHeight/Mode":{"text":"auto"},"$:/config/TiddlerInfo/Default":{"text":"$:/core/ui/TiddlerInfo/Fields"},"$:/config/TiddlerInfo/Mode":{"text":"popup"},"$:/config/Tiddlers/TitleLinks":{"text":"no"},"$:/config/Toolbar/ButtonClass":{"text":"tc-btn-invisible"},"$:/config/Toolbar/Icons":{"text":"yes"},"$:/config/Toolbar/Text":{"text":"no"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions":{"text":"show"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar":{"text":"hide"},"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others":{"text":"hide"},"$:/config/shortcuts-mac/bold":{"text":"meta-B"},"$:/config/shortcuts-mac/input-tab-left":{"text":"ctrl-Left"},"$:/config/shortcuts-mac/input-tab-right":{"text":"ctrl-Right"},"$:/config/shortcuts-mac/italic":{"text":"meta-I"},"$:/config/shortcuts-mac/underline":{"text":"meta-U"},"$:/config/shortcuts-mac/new-image":{"text":"ctrl-I"},"$:/config/shortcuts-mac/new-journal":{"text":"ctrl-J"},"$:/config/shortcuts-mac/new-tiddler":{"text":"ctrl-N"},"$:/config/shortcuts-mac/save-wiki":{"text":"meta-S"},"$:/config/shortcuts-not-mac/bold":{"text":"ctrl-B"},"$:/config/shortcuts-not-mac/italic":{"text":"ctrl-I"},"$:/config/shortcuts-not-mac/underline":{"text":"ctrl-U"},"$:/config/shortcuts-not-mac/new-image":{"text":"alt-I"},"$:/config/shortcuts-not-mac/new-journal":{"text":"alt-J"},"$:/config/shortcuts-not-mac/new-tiddler":{"text":"alt-N"},"$:/config/shortcuts/add-field":{"text":"enter"},"$:/config/shortcuts/advanced-search":{"text":"ctrl-shift-A"},"$:/config/shortcuts/advanced-search-sidebar":{"text":"alt-Enter"},"$:/config/shortcuts/cancel-edit-tiddler":{"text":"escape"},"$:/config/shortcuts/change-sidebar-layout":{"text":"shift-alt-Down"},"$:/config/shortcuts/delete-field":{"text":"shift-alt-D"},"$:/config/shortcuts/excise":{"text":"ctrl-E"},"$:/config/shortcuts/sidebar-search":{"text":"ctrl-shift-F"},"$:/config/shortcuts/heading-1":{"text":"ctrl-1"},"$:/config/shortcuts/heading-2":{"text":"ctrl-2"},"$:/config/shortcuts/heading-3":{"text":"ctrl-3"},"$:/config/shortcuts/heading-4":{"text":"ctrl-4"},"$:/config/shortcuts/heading-5":{"text":"ctrl-5"},"$:/config/shortcuts/heading-6":{"text":"ctrl-6"},"$:/config/shortcuts/input-accept":{"text":"Enter"},"$:/config/shortcuts/input-accept-variant":{"text":"ctrl-Enter"},"$:/config/shortcuts/input-cancel":{"text":"Escape"},"$:/config/shortcuts/input-down":{"text":"Down"},"$:/config/shortcuts/input-tab-left":{"text":"alt-Left"},"$:/config/shortcuts/input-tab-right":{"text":"alt-Right"},"$:/config/shortcuts/input-up":{"text":"Up"},"$:/config/shortcuts/layout-switcher":{"text":"ctrl-shift-L"},"$:/config/shortcuts/link":{"text":"ctrl-L"},"$:/config/shortcuts/linkify":{"text":"alt-shift-L"},"$:/config/shortcuts/list-bullet":{"text":"ctrl-shift-L"},"$:/config/shortcuts/list-number":{"text":"ctrl-shift-N"},"$:/config/shortcuts/mono-block":{"text":"ctrl-shift-M"},"$:/config/shortcuts/mono-line":{"text":"ctrl-M"},"$:/config/shortcuts/picture":{"text":"ctrl-shift-I"},"$:/config/shortcuts/preview":{"text":"alt-P"},"$:/config/shortcuts/quote":{"text":"ctrl-Q"},"$:/config/shortcuts/save-tiddler":{"text":"ctrl+enter"},"$:/config/shortcuts/save-wiki":{"text":"ctrl-S"},"$:/config/shortcuts/stamp":{"text":"ctrl-S"},"$:/config/shortcuts/strikethrough":{"text":"ctrl-T"},"$:/config/shortcuts/subscript":{"text":"ctrl-shift-B"},"$:/config/shortcuts/superscript":{"text":"ctrl-shift-P"},"$:/config/shortcuts/toggle-sidebar":{"text":"alt-shift-S"},"$:/config/shortcuts/transcludify":{"text":"alt-shift-T"},"$:/config/ui/EditTemplate":{"text":"$:/core/ui/EditTemplate"},"$:/config/ui/ViewTemplate":{"text":"$:/core/ui/ViewTemplate"},"$:/config/WikiParserRules/Inline/wikilink":{"text":"enable"},"$:/snippets/currpalettepreview":{"text":"\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch-inner()\n<$set name=\"swatchColour\" value={{##$(colourResolved)$}}>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}>\n<$set name=\"swatchTitle\" value=<<colour>>>\n<$list filter=\"[<swatchColour>!prefix[<<colour ]!suffix[>>]]\" variable=\"ignore\">\n<div class=\"tc-swatch\" style=<<swatchStyle>> title=<<swatchTitle>>/>\n</$list>\n<$list filter=\"[<swatchColour>prefix[<<colour ]suffix[>>]]\" variable=\"ignore\">\n<$wikify name=\"colourResolved\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall=<<swatchColour>>/>\"\"\">\n<<swatch-inner>>\n</$wikify>\n</$list>\n</$set>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>\n"},"$:/snippets/download-wiki-button":{"text":"\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"},"$:/language":{"text":"$:/languages/en-GB"},"$:/snippets/languageswitcher":{"text":"\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"},"$:/core/macros/CSS":{"tags":"$:/tags/Macro","text":"\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"},"$:/core/macros/colour-picker":{"tags":"$:/tags/Macro","text":"\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"},"$:/core/macros/copy-to-clipboard":{"tags":"$:/tags/Macro","text":"\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"},"$:/core/macros/diff":{"tags":"$:/tags/Macro","text":"\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"},"$:/core/macros/dumpvariables":{"tags":"$:/tags/Macro","text":"\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"},"$:/core/macros/export":{"tags":"$:/tags/Macro","text":"\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$set name=\"count\" value={{{ [subfilter<__exportFilter__>count[]] }}}>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$list filter=\"[<currentTiddler>has[condition]subfilter{!!condition}limit[1]] ~[<currentTiddler>!has[condition]then[true]]\" variable=\"ignore\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=<<__exportFilter__>> filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</$list>\n</$set>\n</div>\n</$reveal>\n\\end\n"},"$:/core/macros/image-picker":{"created":"20170715180840889","modified":"20170715180914005","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"},"$:/core/macros/keyboard-driven-input":{"tags":"$:/tags/Macro","text":"\\define change-input-tab(stateTitle,tag,beforeafter,defaultState,actions)\n<$set name=\"tabsList\" filter=\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]]\">\n<$vars currentState={{{ [<__stateTitle__>!is[missing]get[text]] ~[<__defaultState__>] }}} firstTab={{{ [enlist<tabsList>nth[1]] }}} lastTab={{{ [enlist<tabsList>last[]] }}}>\n<$set name=\"nextTab\" value={{{ [all[shadows+tiddlers]tag<__tag__>!has[draft.of]$beforeafter$<currentState>] ~[[$beforeafter$]removeprefix[after]suffix[]addprefix<firstTab>] ~[[$beforeafter$]removeprefix[before]suffix[]addprefix<lastTab>] }}}>\n<$action-setfield $tiddler=<<__stateTitle__>> text=<<nextTab>>/>\n$actions$\n</$set>\n</$vars>\n</$set>\n\\end\n\n\\define keyboard-input-actions()\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>get<__field__>] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__storeTitle__>> text={{{ [<__tiddler__>getindex<__index__>] }}}/>\n</$list>\n\\end\n\n\\define input-next-actions-inner()\n<$list filter=\"[<nextItem>minlength[1]]\" variable=\"ignore\">\n<$action-setfield $tiddler=<<__selectionStateTitle__>> text=<<nextItem>>/>\n<$list filter=\"[<__index__>match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$list filter=\"[<__index__>!match[]]\">\n<$action-setfield $tiddler=<<__tiddler__>> $index=<<__index__>> $value={{{ [<nextItem>] +[splitregexp[(?:.(?!-))+$]] }}}/>\n</$list>\n<$action-setfield $tiddler=<<__refreshTitle__>> text=\"yes\"/>\n</$list>\n\\end\n\n\\define input-next-actions(afterOrBefore:\"after\",reverse:\"\")\n<$list filter=\"[<__storeTitle__>get[text]minlength<__filterMinLength__>] [<__filterMinLength__>match[0]] +[limit[1]]\" variable=\"ignore\">\n<$vars userInput={{{ [<__storeTitle__>get[text]] }}} selectedItem={{{ [<__selectionStateTitle__>get[text]] }}}>\n<$set name=\"configTiddler\" value={{{ [subfilter<__configTiddlerFilter__>] }}}>\n<$vars primaryListFilter={{{ [<configTiddler>get<__firstSearchFilterField__>] }}} secondaryListFilter={{{ [<configTiddler>get<__secondSearchFilterField__>] }}}>\n<$set name=\"filteredList\" filter=\"[subfilter<primaryListFilter>addsuffix[-primaryList]] =[subfilter<secondaryListFilter>addsuffix[-secondaryList]]\">\n<$vars nextItem={{{ [enlist<filteredList>$afterOrBefore$<selectedItem>] ~[enlist<filteredList>$reverse$nth[1]] }}} firstItem={{{ [enlist<filteredList>nth[1]] }}} lastItem={{{ [enlist<filteredList>last[]] }}}>\n<$list filter=\"[<selectedItem>match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[before]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<lastItem>!match<firstItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [[$afterOrBefore$]match[after]then<userInput>addsuffix[-userInput]] ~[<nextItem>] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>match<firstItem>match<lastItem>]\" variable=\"ignore\">\n<$set name=\"nextItem\" value={{{ [<userInput>addsuffix[-userInput]] }}}>\n<<input-next-actions-inner>>\n</$set>\n</$list>\n<$list filter=\"[<selectedItem>!match<firstItem>!match<lastItem>]\" variable=\"ignore\">\n<<input-next-actions-inner>>\n</$list>\n</$vars>\n</$set>\n</$vars>\n</$set>\n</$vars>\n</$list>\n\\end\n\n\\define keyboard-driven-input(tiddler,storeTitle,field:\"text\",index:\"\",tag:\"input\",type,focus:\"\",inputAcceptActions,inputAcceptVariantActions,inputCancelActions,placeholder:\"\",default:\"\",class,focusPopup,rows,minHeight,tabindex,size,autoHeight,filterMinLength:\"0\",refreshTitle,selectionStateTitle,cancelPopups:\"\",configTiddlerFilter,firstSearchFilterField:\"first-search-filter\",secondSearchFilterField:\"second-search-filter\")\n\\whitespace trim\n<$keyboard key=\"((input-accept))\" actions=<<__inputAcceptActions__>>>\n<$keyboard key=\"((input-accept-variant))\" actions=<<__inputAcceptVariantActions__>>>\n<$keyboard key=\"((input-up))\" actions=<<input-next-actions \"before\" \"reverse[]\">>>\n<$keyboard key=\"((input-down))\" actions=<<input-next-actions>>>\n<$keyboard key=\"((input-cancel))\" actions=<<__inputCancelActions__>>>\n<$edit-text tiddler=<<__tiddler__>> field=<<__field__>> index=<<__index__>> \n\t\tinputActions=<<keyboard-input-actions>> tag=<<__tag__>> class=<<__class__>> \n\t\tplaceholder=<<__placeholder__>> default=<<__default__>> focusPopup=<<__focusPopup__>> \n\t\tfocus=<<__focus__>> type=<<__type__>> rows=<<__rows__>> minHeight=<<__minHeight__>> \n\t\ttabindex=<<__tabindex__>> size=<<__size__>> autoHeight=<<__autoHeight__>> \n\t\trefreshTitle=<<__refreshTitle__>> cancelPopups=<<__cancelPopups__>>/>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n</$keyboard>\n\\end\n"},"$:/core/macros/lingo":{"tags":"$:/tags/Macro","text":"\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"},"$:/core/macros/list":{"tags":"$:/tags/Macro","text":"\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n{{$:/core/images/blank}}\n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$type$>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"},"$:/core/macros/tabs":{"tags":"$:/tags/Macro","text":"\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$vars tabsState={{{ [<__explicitState__>minlength[1]] ~[<qualifiedState>] }}}>\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$vars>\n</$set>\n\\end\n"},"$:/core/macros/tag-picker":{"tags":"$:/tags/Macro","first-search-filter":"[tags[]!is[system]search:title<userInput>sort[]]","second-search-filter":"[tags[]is[system]search:title<userInput>sort[]]","text":"\\define get-tagpicker-focus-selector() [data-tiddler-title=\"$(currentTiddlerCSSEscaped)$\"] .tc-add-tag-name input\n\n\\define delete-tag-state-tiddlers() <$action-deletetiddler $filter=\"[<newTagNameTiddler>] [<storeTitle>] [<tagSelectionState>]\"/>\n\n\\define add-tag-actions(actions,tagField:\"tags\")\n<$set name=\"tag\" value={{{ [<__tiddler__>get[text]] }}}>\n<$list filter=\"[<saveTiddler>!contains:$tagField$<tag>!match[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"-[<tag>]\"/>\n\"\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n</$list>\n</$set>\n<<delete-tag-state-tiddlers>>\n<$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n\\end\n\n\\define clear-tags-actions-inner()\n<$list filter=\"[<storeTitle>has[text]] [<newTagNameTiddler>has[text]]\" variable=\"ignore\" emptyMessage=\"\"\"<<cancel-delete-tiddler-actions \"cancel\">>\"\"\">\n<<delete-tag-state-tiddlers>>\n</$list>\n\\end\n\n\\define clear-tags-actions()\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<newTagNameTiddler>get[text]!match<userInput>]\" emptyMessage=\"\"\"<<clear-tags-actions-inner>>\"\"\">\n<$action-setfield $tiddler=<<newTagNameTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text=\"yes\"/>\n</$list>\n</$set>\n\\end\n\n\\define tag-picker-inner(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars newTagNameInputTiddlerQualified=<<qualify \"$:/temp/NewTagName/input\">> newTagNameSelectionTiddlerQualified=<<qualify \"$:/temp/NewTagName/selected-item\">> fallbackTarget={{$(palette)$##tag-background}} colourA={{$(palette)$##foreground}} colourB={{$(palette)$##background}}>\n<$vars storeTitle={{{ [<newTagNameInputTiddler>!match[]] ~[<newTagNameInputTiddlerQualified>] }}} tagSelectionState={{{ [<newTagNameSelectionTiddler>!match[]] ~[<newTagNameSelectionTiddlerQualified>] }}}>\n<$vars refreshTitle=<<qualify \"$:/temp/NewTagName/refresh\">> nonSystemTagsFilter=\"[tags[]!is[system]search:title<userInput>sort[]]\" systemTagsFilter=\"[tags[]is[system]search:title<userInput>sort[]]\">\n<div class=\"tc-edit-add-tag\">\n<div>\n<span class=\"tc-add-tag-name tc-small-gap-right\">\n<$macrocall $name=\"keyboard-driven-input\" tiddler=<<newTagNameTiddler>> storeTitle=<<storeTitle>> refreshTitle=<<refreshTitle>>\n\t\tselectionStateTitle=<<tagSelectionState>> inputAcceptActions=\"\"\"<$macrocall $name=\"add-tag-actions\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\"\n\t\tinputCancelActions=<<clear-tags-actions>> tag=\"input\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n\t\tfocusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> \n\t\tfocus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}} filterMinLength={{$:/config/Tags/MinLength}} \n\t\tcancelPopups=<<cancelPopups>> configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"/>\n</span><$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button><$reveal state=<<storeTitle>> type=\"nomatch\" text=\"\"><$button class=\"tc-btn-invisible tc-small-gap tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/ClearInput/Hint}} aria-label={{$:/language/EditTemplate/Tags/ClearInput/Caption}}>{{$:/core/images/close-button}}<<delete-tag-state-tiddlers>></$button></$reveal><span class=\"tc-add-tag-button tc-small-gap-left\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=<<newTagNameTiddler>> setTo=\"\" class=\"\">\n<$action-listops $tiddler=<<saveTiddler>> $field=<<__tagField__>> $subfilter=\"[<tag>]\"/>\n$actions$\n<$set name=\"currentTiddlerCSSEscaped\" value={{{ [<saveTiddler>escapecss[]] }}}>\n<<delete-tag-state-tiddlers>><$action-sendmessage $message=\"tm-focus-selector\" $param=<<get-tagpicker-focus-selector>>/>\n</$set>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n<$set name=\"userInput\" value={{{ [<storeTitle>get[text]] }}}>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<nonSystemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-primaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n<hr>\n<$list filter=\"[<userInput>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=<<systemTagsFilter>> variable=\"tag\">\n<$list filter=\"[<tag>addsuffix[-secondaryList]] -[<tagSelectionState>get[text]]\" emptyMessage=\"\"\"<$vars button-classes=\"tc-btn-invisible tc-tag-button-selected\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\"\"\">\n<$vars button-classes=\"tc-btn-invisible\" actions=<<__actions__>> tagField=<<__tagField__>> currentTiddler=<<tag>>>{{||$:/core/ui/TagPickerTagTemplate}}</$vars>\n</$list>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n</div>\n</$vars>\n</$vars>\n</$vars>\n\\end\n\\define tag-picker(actions,tagField:\"tags\")\n\\whitespace trim\n<$vars saveTiddler=<<currentTiddler>> palette={{$:/palette}}>\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=\"\"\"<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\"\"\">\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<$macrocall $name=\"tag-picker-inner\" actions=<<__actions__>> tagField=<<__tagField__>>/>\n</$set>\n</$list>\n</$vars>\n\\end\n"},"$:/core/macros/tag":{"tags":"$:/tags/Macro","text":"\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"},"$:/core/macros/thumbnails":{"tags":"$:/tags/Macro","text":"\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"},"$:/core/macros/timeline":{"created":"20141212105914482","modified":"20141212110330815","tags":"$:/tags/Macro","text":"\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"},"$:/core/macros/toc":{"tags":"$:/tags/Macro","text":"\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"},"$:/core/macros/translink":{"tags":"$:/tags/Macro","text":"\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"},"$:/core/macros/tree":{"tags":"$:/tags/Macro","text":"\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"},"$:/core/macros/utils":{"text":"\\define colour(colour)\n$colour$\n\\end\n"},"$:/snippets/minifocusswitcher":{"text":"<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"},"$:/snippets/minilanguageswitcher":{"text":"<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"},"$:/snippets/minithemeswitcher":{"text":"\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"},"$:/snippets/modules":{"text":"\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"},"$:/palette":{"text":"$:/palettes/Vanilla"},"$:/snippets/paletteeditor":{"text":"<$transclude tiddler=\"$:/PaletteManager\"/>\n"},"$:/snippets/palettepreview":{"text":"<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"},"$:/snippets/paletteswitcher":{"text":"<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"},"$:/snippets/peek-stylesheets":{"text":"\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"},"$:/temp/search":{"text":""},"$:/tags/AdvancedSearch":{"list":"[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"},"$:/tags/AdvancedSearch/FilterButton":{"list":"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"},"$:/tags/ControlPanel":{"list":"$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"},"$:/tags/ControlPanel/Info":{"list":"$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"},"$:/tags/ControlPanel/Plugins":{"list":"[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"},"$:/tags/EditTemplate":{"list":"[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"},"$:/tags/EditToolbar":{"list":"[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"},"$:/tags/EditorToolbar":{"list":"$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"},"$:/tags/Manager/ItemMain":{"list":"$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"},"$:/tags/Manager/ItemSidebar":{"list":"$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"},"$:/tags/MoreSideBar":{"list":"[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]","text":""},"$:/tags/PageControls":{"list":"[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"},"$:/tags/PageTemplate":{"list":"[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]","text":""},"$:/tags/PluginLibrary":{"list":"$:/config/OfficialPluginLibrary"},"$:/tags/SideBar":{"list":"[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]","text":""},"$:/tags/SideBarSegment":{"list":"[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"},"$:/tags/TiddlerInfo":{"list":"[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]","text":""},"$:/tags/TiddlerInfo/Advanced":{"list":"[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"},"$:/tags/ViewTemplate":{"list":"[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"},"$:/tags/ViewToolbar":{"list":"[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"},"$:/snippets/themeswitcher":{"text":"<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"},"$:/core/wiki/title":{"text":"{{$:/SiteTitle}}\n<$list filter=\"[{$:/SiteSubtitle}trim[]minlength[1]]\" variable=\"ignore\">\n--- {{$:/SiteSubtitle}}\n</$list>"},"$:/view":{"text":"classic"},"$:/snippets/viewswitcher":{"text":"\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"}}}
\define lingo-base() $:/language/ControlPanel/Palette/
<$reveal type="nomatch" state="$:/state/ShowPaletteEditor" text="yes">
<$button set="$:/state/ShowPaletteEditor" setTo="yes"><<lingo ShowEditor/Caption>></$button>
</$reveal>
<$reveal type="match" state="$:/state/ShowPaletteEditor" text="yes">
<$button set="$:/state/ShowPaletteEditor" setTo="no"><<lingo HideEditor/Caption>></$button>
{{$:/PaletteManager}}
</$reveal>
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
/* The customised dark style for TiddlyFor syntax highlighthing
(highlight.js style)
Apr 19, 2018
Mohammad Rahmani
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #2e2e2e;
color: #ffffff;
}
.hljs-comment,
.hljs-quote {
color: #C0DD0C;
font-style:normal;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-type,
.hljs-addition {
color: #FF8000;
font-weight:normal;
}
.hljs-selector-attr,
.hljs-selector-class,
.hljs-selector-pseudo {
color: #ffffff;
}
.hljs-number{
color: #7FB347;
}
.hljs-string,
.hljs-doctag,
.hljs-regexp {
color:#FFC600; /* #8abeb7;*/
}
.hljs-title,
.hljs-name,
.hljs-section {
color: #b5bd68;
}
.hljs-built_in {
color: #66D9EF;
font-weight:normal;
}
.hljs-variable,
.hljs-template-variable,
.hljs-selector-id,
.hljs-class .hljs-title {
color: #ffcc66;
}
.hljs-section,
.hljs-name,
.hljs-strong {
font-weight: bold;
}
.hljs-symbol,
.hljs-bullet,
.hljs-subst,
.hljs-meta,
.hljs-link {
color: #f99157;
}
.hljs-deletion {
color: #dc322f;
}
.hljs-formula {
background: #eee8d5;
}
.hljs-attr,
.hljs-attribute {
color: #81a2be;
}
.hljs-emphasis {
font-style: italic;
}
/*correctio of tex tags*/
.hljs-tag {
color: #b5bd68;
}
/*
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
based on dark.css by Ivan Sagalaev
Modified by:
Mohammad Rahmani
Apr 20, 2018
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #3f3f3f;
color: #dcdcdc;
font-size: 0.90em; /* smaller font */
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-tag {
color: #e3ceab;
font-weight: normal;
}
.hljs-template-tag {
color: #dcdcdc;
}
.hljs-number {
color: #8cd0d3;
}
.hljs-variable,
.hljs-template-variable,
.hljs-attribute {
color: #efdcbc;
}
.hljs-literal {
color: #efefaf;
}
.hljs-subst {
color: #8f8f8f;
}
.hljs-title,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-section,
.hljs-type {
color: #efef8f;
}
.hljs-symbol,
.hljs-bullet,
.hljs-link {
color: #dca3a3;
}
.hljs-deletion,
.hljs-string,
.hljs-built_in,
.hljs-builtin-name {
color: #cc9393;
}
.hljs-addition,
.hljs-comment,
.hljs-quote,
.hljs-meta {
color: #7f9f7f;
font-style:normal;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
The following tiddlers were imported:
# [[SampleWizard]]
{
"external-link-foreground": "#a1b9f9",
"foreground": "#d0dcfc",
"page-background": "#272727",
"tiddler-background": "#363636",
"sidebar-foreground-shadow": "#191919",
"table-header-background": "#808080",
"tiddler-controls-foreground": "#aaaaae",
"sidebar-tab-background": "#363638",
"sidebar-tab-foreground": "#d0dcfc",
"sidebar-button-foreground": "#080808",
"tag-background": "#79797d",
"tiddler-border": "#5a5a5a",
"tiddler-subtitle-foreground": "#d0dcfc",
"tiddler-title-foreground": "#d5d5d6",
"tiddler-link-foreground": "#8aa8f8",
"tiddler-editor-background": "#6b6b6b",
"button-background": "#cacaca",
"button-foreground": "#080808",
"tiddler-controls-foreground-selected": "#103db4",
"sidebar-controls-foreground": "#a4a4a8",
"sidebar-controls-foreground-hover": "#6b6b6f",
"notification-background": "#808080",
"tiddler-editor-border": "#808080",
"tiddler-editor-fields-even": "#4e4e4e",
"tiddler-editor-fields-odd": "#424242",
"dropdown-background": "#6b6b6b",
"alert-muted-foreground": "#262626",
"external-link-foreground-visited": "#c5d4fb",
"sidebar-tab-background-selected": "#606060",
"background": "#4e4e4e",
"code-background": "#363638",
"code-foreground": "#8aa8f8",
"code-border": "#86868b",
"blockquote-bar": "#5b85f5",
"pre-background": "#2b2b2b"
}
{
"external-link-foreground": "#a1b9f9",
"foreground": "#d0dcfc",
"page-background": "#272727",
"tiddler-background": "#505053",
"sidebar-foreground-shadow": "#191919",
"table-header-background": "#808080",
"tiddler-controls-foreground": "#aaaaae",
"sidebar-tab-background": "#363638",
"sidebar-tab-foreground": "#d0dcfc",
"sidebar-button-foreground": "#080808",
"tag-background": "#79797d",
"tiddler-border": "#5a5a5a",
"tiddler-subtitle-foreground": "#d0dcfc",
"tiddler-title-foreground": "#d5d5d6",
"tiddler-link-foreground": "#8aa8f8",
"tiddler-editor-background": "#6b6b6b",
"button-background": "#cacaca",
"button-foreground": "#080808",
"tiddler-controls-foreground-selected": "#103db4",
"sidebar-controls-foreground": "#a4a4a8",
"sidebar-controls-foreground-hover": "#6b6b6f",
"notification-background": "#808080",
"tiddler-editor-border": "#808080",
"tiddler-editor-fields-even": "#4e4e4e",
"tiddler-editor-fields-odd": "#424242",
"dropdown-background": "#272727",
"alert-muted-foreground": "#262626",
"external-link-foreground-visited": "#c5d4fb",
"sidebar-tab-background-selected": "#606060",
"code-background": "#507df4",
"code-foreground": "#8aa8f8",
"code-border": "#86868b",
"blockquote-bar": "#5b85f5",
"pre-background": "#0e0e0e",
"pre-border": "#98989c",
"background": "#0f0f0f",
"sidebar-link-foreground": "#0f39a8",
"sidebar-tiddler-link-forground": "#1141c0",
"tiddler-info-background": "#5e5e61"
}
{
"background": "#131313",
"code-background": "#1551F0",
"pre-background": "#131313",
"pre-border": "#86868B",
"dropdown-border": "#1551F0",
"tab-background": "#1551F0",
"sidebar-foreground": "#1551F0",
"sidebar-link-foreground": "#1551F0",
"sidebar-tiddler-link-forground": "#1551F0",
"tiddler-background": "#86868B",
"tiddler-info-background": "#86868B",
"dropdown-background": "#2B2B2B",
"page-background": "#2B2B2B",
"external-link-foreground": "#86868B",
"foreground": "#86868B",
"muted-foreground": "#1551F0",
"primary": "#86868B"
}
{
"external-link-foreground": "#1551F0",
"foreground": "#1551F0",
"background": "#86868B"
}
{
"sidebar-tab-background-selected": "#2B2B2B",
"background": "#131313",
"code-background": "#86868B",
"code-foreground": "#1551F0",
"code-border": "#86868B",
"blockquote-bar": "#1551F0",
"pre-background": "#131313"
}
background: #282a36
untagged-background: #6272a4
foreground: #f8f8f2
tiddler-border: #44475a
page-background: #282a36
primary: #8be9fd
tag-background: #bd93f9
muted-foreground: rgba(255,255,255,0.5)
alert-background: <<colour tag-background>>
alert-border: <<colour tag-background>>
alert-highlight: <<colour primary>>
alert-muted-foreground: <<colour muted-foreground>>
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour tag-background>>
button-foreground: <<colour foreground>>
button-border: <<colour tag-background>>
code-background: <<colour page-background>>
code-border: <<colour page-background>>
code-foreground: <<colour muted-foreground>>
dirty-indicator: <<colour primary>>
download-background: <<colour tag-background>>
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour background>>
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background: <<colour background>>
dropzone-background: <<colour primary>>
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: <<colour tag-background>>
external-link-foreground: <<color primary>>
message-background: <<colour tag-background>>
message-border: <<colour tag-background>>
message-foreground: <<colour foreground>>
modal-backdrop: <<colour page-background>>
modal-background: <<colour background>>
modal-border: <<colour background>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour background>>
modal-header-border: <<colour muted-foreground>>
notification-background: <<colour tag-background>>
notification-border: <<colour tag-background>>
pre-background: <<colour page-background>>
pre-border: <<colour page-background>>
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: <<colour primary>>
sidebar-controls-foreground: <<colour muted-foreground>>
sidebar-foreground-shadow: transparent
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: <<colour primary>>
sidebar-muted-foreground: <<colour muted-foreground>>
sidebar-tab-background-selected: <<colour page-background>>
sidebar-tab-background: transparent
sidebar-tab-border-selected: <<colour tiddler-border>>
sidebar-tab-border: <<colour tiddler-border>>
sidebar-tab-divider: <<colour tiddler-border>>
sidebar-tab-foreground-selected: <<colour primary>>
sidebar-tab-foreground: <<colour foreground>>
sidebar-tiddler-link-foreground-hover: <<colour primary>>
sidebar-tiddler-link-foreground: <<colour primary>>
site-title-foreground: <<colour foreground>>
static-alert-foreground: <<colour foreground>>
tab-background-selected: <<colour background>>
tab-background: transparent
tab-border-selected: <<colour tiddler-border>>
tab-border: <<colour tiddler-border>>
tab-divider: <<colour tiddler-border>>
tab-foreground-selected: <<colour primary>>
tab-foreground: <<colour muted-foreground>>
table-border: <<colour page-background>>
table-footer-background: rgba(0, 0, 0, 0.1)
table-header-background: rgba(0, 0, 0, 0.2)
tag-foreground: <<colour foreground>>
tiddler-background: <<colour background>>
tiddler-controls-foreground-hover: inherit
tiddler-controls-foreground-selected: <<colour foreground>>
tiddler-controls-foreground: <<colour forground>>
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour background>>
tiddler-editor-border: rgba(255,255,255,0.1)
tiddler-editor-fields-even: <<colour tiddler-border>>
tiddler-editor-fields-odd: <<colour page-background>>
tiddler-info-background: <<colour background>>
tiddler-info-border: <<colour page-background>>
tiddler-info-tab-background: <<colour background>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour muted-foreground>>
tiddler-title-foreground: <<colour primary>>
very-muted-foreground: rgba(255,255,255,0.2)
{
"background": "#d2edfd",
"foreground": "#22433c",
"page-background": "#2f5d53",
"primary": "#b3c100",
"sidebar-foreground": "#beca26",
"sidebar-foreground-shadow": "#7d8700",
"sidebar-tiddler-link-foreground": "#8f9a00",
"sidebar-tiddler-link-foreground-hover": "#b3c100",
"site-title-foreground": "#dde38c"
}
{
"background": "#4CB5F5",
"foreground": "#34675C",
"page-background": "#34675C",
"primary": "#B3C100",
"sidebar-foreground": "#B3C100",
"sidebar-foreground-shadow": "#B3C100",
"sidebar-tiddler-link-foreground": "#B3C100",
"sidebar-tiddler-link-foreground-hover": "#B3C100",
"site-title-foreground": "#B3C100",
"alert-border": "#B3C100"
}
{
"foreground": "#244840",
"primary": "#a1ae00",
"external-link-foreground": "#98a400",
"external-link-foreground-hover": "#b7c40d",
"sidebar-tiddler-link-foreground": "#c2cd33",
"sidebar-tiddler-link-foreground-hover": "#d5dd73",
"site-title-foreground": "#ced759",
"tiddler-title-foreground": "#6b7400",
"tiddler-subtitle-foreground": "#3e6f64",
"tag-background": "#bbc719",
"tag-foreground": "#2a524a",
"sidebar-foreground-shadow": "#2c584e",
"sidebar-foreground": "#bbbcba",
"sidebar-button-foreground": "#515700",
"sidebar-controls-foreground": "#b3c100",
"sidebar-controls-foreground-hover": "#cad44d",
"page-background": "#34675c"
}
{
"foreground": "#34675C",
"primary": "#B3C100",
"external-link-foreground": "#B3C100",
"external-link-foreground-hover": "#B3C100",
"sidebar-tiddler-link-foreground": "#B3C100",
"sidebar-tiddler-link-foreground-hover": "#B3C100",
"site-title-foreground": "#B3C100",
"tiddler-title-foreground": "#B3C100",
"tiddler-subtitle-foreground": "#34675C",
"select-tag-background": "#B3C100",
"tag-background": "#B3C100",
"tag-foreground": "#34675C",
"page-background": "#34675C",
"sidebar-foreground-shadow": "#34675C",
"sidebar-muted-foreground": "#B7B8B6",
"muted-foreground": "#4CB5F5",
"very-muted-foreground": "#B7B8B6",
"sidebar-controls-foreground": "#B3C100",
"sidebar-controls-foreground-hover": "#B3C100",
"external-link-background-visited": "#34675C",
"sidebar-button-foreground": "#4CB5F5",
"button-foreground": "#4CB5F5",
"toolbar-info-button": "#4CB5F5",
"wikilist-button-foreground": "#4CB5F5",
"tiddler-controls-foreground-hover": "#4CB5F5",
"tiddler-controls-foreground-selected": "#4CB5F5",
"tiddler-link-foreground": "#4CB5F5",
"sidebar-foreground": "#B7B8B6",
"sidebar-muted-foreground-hover": "#B7B8B6"
}
{
"page-background": "#5b5b5b",
"background": "#b7b7b7",
"foreground": "#016d20",
"external-link-foreground": "#01a431",
"sidebar-foreground": "#35bc64",
"sidebar-link-foreground": "#01b636",
"sidebar-tiddler-link-forground": "#1abd4a",
"primary": "#004916",
"muted-foreground": "#017f26",
"tiddler-controls-foreground-hover": "#35bc64",
"tiddler-controls-foreground-selected": "#32b25e",
"tiddler-controls-foreground": "#017623",
"sidebar-tiddler-link-foreground": "#01b636",
"sidebar-tiddler-link-foreground-hover": "#67d386",
"sidebar-controls-foreground": "#2fa759",
"sidebar-controls-foreground-hover": "#45d376",
"sidebar-tab-background": "#c1c1c1",
"sidebar-tab-background-selected": "#eaeaea",
"site-title-foreground": "#99e2af",
"tiddler-title-foreground": "#016d20",
"tiddler-subtitle-foreground": "#237d43"
}
{
"background": "#01B636",
"external-link-foreground": "#74E39A",
"foreground": "#E3E3E3",
"muted-foreground": "#E3E3E3",
"page-background": "#E3E3E3",
"primary": "#E3E3E3",
"sidebar-foreground": "#E3E3E3"
}
{
"muted-foreground": "#989898",
"page-background": "#E3E3E3",
"primary": "#E3E3E3",
"sidebar-foreground": "#74E39A"
}
{
"external-link-foreground-hover": "#1551F0",
"external-link-foreground": "#1551F0"
}
{
"page-background": "#1f4c5e",
"background": "#dfeeee",
"primary": "#a6925b",
"sidebar-link-foreground": "#998654",
"foreground": "#665a38",
"sidebar-foreground": "#ccb370",
"sidebar-foreground-shadow": "#275f76",
"sidebar-tiddler-link-forground": "#a6925b",
"site-title-foreground": "#ffe292",
"sidebar-muted-foreground": "#ffe08c",
"sidebar-muted-foreground-hover": "#ffebb4",
"sidebar-tiddler-link-foreground-hover": "#ffeec0",
"sidebar-tiddler-link-foreground": "#998654",
"tiddler-controls-foreground": "#56c0ec",
"sidebar-controls-foreground": "#41a1c8",
"sidebar-controls-foreground-hover": "#e6ca7e",
"tiddler-controls-foreground-hover": "#ccb370",
"tiddler-background": "#dfeeee",
"tag-background": "#a6925b",
"table-header-background": "#94d7f3",
"table-border": "#3a8eb0",
"tiddler-subtitle-foreground": "#998654",
"tiddler-title-foreground": "#665a38",
"tab-background": "#c9d6d6",
"tab-background-selected": "#eaf4f4",
"selection-foreground": "#ffffff",
"tiddler-controls-foreground-selected": "#82d1f1",
"tiddler-editor-background": "#ffe292"
}
{
"site-title-foreground": "#D1B280",
"tiddler-subtitle-foreground": "#594D46",
"tiddler-title-foreground": "#594D46",
"wikilist-title": "#D1B280",
"wikilist-title-svg": "#594D46",
"external-link-background": "#FFE08C",
"background": "#FFE08C",
"external-link-foreground": "#FFE08C",
"foreground": "#4DBDEB",
"muted-foreground": "#FFE08C",
"page-background": "#DFEEEE",
"primary": "#DFEEEE",
"sidebar-foreground": "#FFE08C",
"sidebar-tiddler-link-forground": "#DFEEEE",
"sidebar-link-foreground": "#FFE08C",
"tab-background": "#DFEEEE",
"tiddler-background": "#DFEEEE",
"tiddler-info-background": "#DFEEEE",
"very-muted-foreground": "#DFEEEE"
}
{
"background": "#d3e9f4",
"external-link-foreground": "#c1c8cb",
"foreground": "#000000",
"page-background": "#22463b",
"primary": "#eaebe7",
"sidebar-foreground": "#000000",
"tiddler-link-foreground": "#ddaacc",
"external-link-background": "#589a4e",
"sidebar-link-foreground": "#475258",
"sidebar-tiddler-link-forground": "#f8eef5",
"sidebar-foreground-shadow": "#165779"
}
{
"background": "#2491ca",
"external-link-foreground": "#65757d",
"foreground": "#000000",
"page-background": "#387562",
"primary": "#caccc4",
"tiddler-link-foreground": "#ddaacc",
"external-link-background": "#6ec162",
"sidebar-link-foreground": "#65757d",
"sidebar-tiddler-link-forground": "#ddaacc",
"sidebar-foreground-shadow": "#2491ca"
}
{
"background": "#635d02",
"external-link-foreground": "#423e01",
"foreground": "#f2decd",
"page-background": "#1c1500",
"muted-foreground": "#f1d599",
"primary": "#835901",
"sidebar-foreground": "#af7701"
}
{
"background": "#6E6702",
"primary": "#DB9501",
"foreground": "#C05805",
"sidebar-foreground": "#DB9501",
"page-background": "#2E2300",
"external-link-foreground": "#6E6702",
"muted-foreground": "#DB9501",
"sidebar-link-foreground": "#C05805",
"sidebar-tiddler-link-forground": "#C05805",
"tiddler-background": "#2E2300",
"very-muted-foreground": "#2E2300"
}
{
"tiddlers": {
"$:/plugins/flibbles/relink/js/bulkops.js": {
"text": "/*\\\nmodule-type: startup\n\nReplaces the relinkTiddler defined in $:/core/modules/wiki-bulkops.js\n\nThis is a startup instead of a wikimethods module-type because it's the only\nway to ensure this runs after the old relinkTiddler method is applied.\n\n\\*/\n(function(){\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\n\nexports.name = \"redefine-relinkTiddler\";\nexports.synchronous = true;\n// load-modules is when wikimethods are applied in\n// ``$:/core/modules/startup/load-modules.js``\nexports.after = ['load-modules'];\n\nexports.startup = function() {\n\t$tw.Wiki.prototype.relinkTiddler = relinkTiddler;\n};\n\n/** Walks through all relinkable tiddlers and relinks them.\n * This replaces the existing function in core Tiddlywiki.\n */\nfunction relinkTiddler(fromTitle, toTitle, options) {\n\toptions = options || {};\n\tvar failures = [];\n\tvar indexer = utils.getIndexer(this);\n\tvar records = indexer.relinkLookup(fromTitle, toTitle, options);\n\tfor (var title in records) {\n\t\tvar entries = records[title],\n\t\t\tchanges = Object.create(null),\n\t\t\tupdate = false,\n\t\t\tfails = false;\n\t\tfor (var field in entries) {\n\t\t\tvar entry = entries[field];\n\t\t\tfails = fails || entry.impossible;\n\t\t\tif (entry.output) {\n\t\t\t\tchanges[field] = entry.output;\n\t\t\t\tupdate = true;\n\t\t\t}\n\t\t}\n\t\tif (fails) {\n\t\t\tfailures.push(title);\n\t\t}\n\t\t// If any fields changed, update tiddler\n\t\tif (update) {\n\t\t\tconsole.log(\"Renaming '\"+fromTitle+\"' to '\"+toTitle+\"' in '\" + title + \"'\");\n\n\t\t\tvar tiddler = this.getTiddler(title);\n\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,changes,this.getModificationFields())\n\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\tthis.addTiddler(newTiddler);\n\t\t\t// If the title changed, we need to perform a nested rename\n\t\t\tif (newTiddler.fields.title !== title) {\n\t\t\t\tthis.deleteTiddler(title);\n\t\t\t\tthis.relinkTiddler(title, newTiddler.fields.title,options);\n\t\t\t}\n\t\t}\n\t};\n\tif (failures.length > 0) {\n\t\tvar options = $tw.utils.extend(\n\t\t\t{ variables: {to: toTitle, from: fromTitle},\n\t\t\t wiki: this},\n\t\t\toptions );\n\t\tlanguage.reportFailures(failures, options);\n\t}\n};\n\n})();\n",
"module-type": "startup",
"title": "$:/plugins/flibbles/relink/js/bulkops.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/indexer.js": {
"text": "/*\\\nmodule-type: indexer\n\nIndexes results from tiddler reference reports so we don't have to call them\nso much.\n\n\\*/\n\n\"use strict\";\n\nvar utils = require(\"./utils.js\");\nvar TiddlerContext = utils.getContext('tiddler');\n\nfunction Indexer(wiki) {\n\tthis.wiki = wiki;\n};\n\nIndexer.prototype.init = function() {\n\tthis.rebuild();\n};\n\nIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n\tthis.backIndex = null;\n\tthis.contexts = Object.create(null);\n\tthis.changedTiddlers = undefined;\n\tthis.lastRelinkFrom = undefined;\n};\n\nIndexer.prototype.update = function(updateDescriptor) {\n\tif (!this.index) {\n\t\treturn;\n\t}\n\tvar title;\n\tif (!this.changedTiddlers) {\n\t\tthis.changedTiddlers = Object.create(null);\n\t}\n\tif (updateDescriptor.old.exists) {\n\t\ttitle = updateDescriptor.old.tiddler.fields.title;\n\t\tthis.changedTiddlers[title] = {deleted: true};\n\t\tthis._purge(title);\n\t}\n\tif (updateDescriptor['new'].exists) {\n\t\t// If its the same tiddler as old, this overrides the 'deleted' entry\n\t\ttitle = updateDescriptor['new'].tiddler.fields.title;\n\t\tthis.changedTiddlers[title] = {modified: true};\n\t}\n};\n\nIndexer.prototype.lookup = function(title) {\n\tthis._upkeep();\n\treturn this.index[title];\n};\n\nIndexer.prototype.reverseLookup = function(title) {\n\tthis._upkeep();\n\treturn this.backIndex[title] || Object.create(null);\n};\n\nIndexer.prototype.relinkLookup = function(fromTitle, toTitle, options) {\n\tthis._upkeep();\n\tvar shortlist = undefined;\n\tif (this.lastRelinkFrom === fromTitle) {\n\t\tif (this.lastRelinkTo === toTitle) {\n\t\t\t// We need to reintroduce the relink cache, where temporary info\n\t\t\t// was stored.\n\t\t\toptions.cache = this.lastRelinkCache;\n\t\t\treturn this.lastRelinkResult;\n\t\t}\n\t\tshortlist = Object.keys(this.lastRelinkResult);\n\t}\n\tthis.lastRelinkResult = utils.getRelinkResults(this.wiki, fromTitle, toTitle, this.context, shortlist, options);\n\tthis.lastRelinkTo = toTitle;\n\tthis.lastRelinkFrom = fromTitle;\n\tthis.lastRelinkCache = options.cache;\n\treturn this.lastRelinkResult;\n};\n\nIndexer.prototype._upkeep = function() {\n\tvar title;\n\tif (this.changedTiddlers && (this.context.changed(this.changedTiddlers) || this.context.parent.changed(this.changedTiddlers))) {\n\t\t// If global macro context or whitelist context changed, wipe all\n\t\tthis.rebuild();\n\t}\n\tif (!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tthis.backIndex = Object.create(null);\n\t\tthis.context = utils.getWikiContext(this.wiki);\n\t\tvar titles = this.wiki.getRelinkableTitles();\n\t\tfor (var i = 0; i < titles.length; i++) {\n\t\t\tthis._populate(titles[i]);\n\t\t};\n\t} else if (this.changedTiddlers) {\n\t\t// If there are cached changes, we apply them now.\n\t\tfor (title in this.contexts) {\n\t\t\tvar tiddlerContext = this.contexts[title];\n\t\t\tif (tiddlerContext.changed(this.changedTiddlers)) {\n\t\t\t\tthis._purge(title);\n\t\t\t\tthis._populate(title);\n\t\t\t\tthis._dropResults(title);\n\t\t\t\t// Wipe this change, so we don't risk updating it twice.\n\t\t\t\tthis.changedTiddlers[title] = undefined;\n\t\t\t}\n\t\t}\n\t\tfor (title in this.changedTiddlers) {\n\t\t\tvar change = this.changedTiddlers[title];\n\t\t\tif (change && change.modified) {\n\t\t\t\tthis._purge(title);\n\t\t\t\tthis._populate(title);\n\t\t\t\tthis._dropResults(title);\n\t\t\t}\n\t\t}\n\t\tthis.changedTiddlers = undefined;\n\t}\n};\n\nIndexer.prototype._purge = function(title) {\n\tfor (var entry in this.index[title]) {\n\t\tdelete this.backIndex[entry][title];\n\t}\n\tdelete this.contexts[title];\n\tdelete this.index[title];\n};\n\n// This drops the cached relink results if unsanctioned tiddlers were changed\nIndexer.prototype._dropResults = function(title) {\n\tvar tiddler = this.wiki.getTiddler(title);\n\tif (title !== this.lastRelinkFrom\n\t&& title !== this.lastRelinkTo\n\t&& (!tiddler\n\t\t|| !$tw.utils.hop(tiddler.fields, 'draft.of') // is a draft\n\t\t|| tiddler.fields['draft.of'] !== this.lastRelinkFrom // draft of target\n\t\t|| references(this.index[title], this.lastRelinkFrom))) { // draft references target\n\t\t// This is not the draft of the last relinked title,\n\t\t// so our cached results should be wiped.\n\t\tthis.lastRelinkFrom = undefined;\n\t}\n};\n\nfunction references(list, item) {\n\treturn list !== undefined && list[item];\n};\n\nIndexer.prototype._populate = function(title) {\n\t// Fetch the report for a title, and populate the indexes with result\n\tvar tiddlerContext = new TiddlerContext(this.wiki, this.context, title);\n\tvar references = utils.getTiddlerRelinkReferences(this.wiki, title, tiddlerContext);\n\tthis.index[title] = references;\n\tif (tiddlerContext.hasImports()) {\n\t\tthis.contexts[title] = tiddlerContext;\n\t}\n\tfor (var ref in references) {\n\t\tthis.backIndex[ref] = this.backIndex[ref] || Object.create(null);\n\t\tthis.backIndex[ref][title] = references[ref];\n\t}\n};\n\nexports.RelinkIndexer = Indexer;\n",
"module-type": "indexer",
"title": "$:/plugins/flibbles/relink/js/indexer.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/language.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles all logging and alerts Relink emits.\n\n\\*/\n\nexports.getString = function(title, options) {\n\ttitle = \"$:/plugins/flibbles/relink/language/\" + title;\n\treturn options.wiki.renderTiddler(\"text/plain\", title, options);\n};\n\nvar logger;\n\nexports.reportFailures = function(failureList, options) {\n\tif (!logger) {\n\t\tlogger = new $tw.utils.Logger(\"Relinker\");\n\t}\n\tvar alertString = this.getString(\"Error/ReportFailedRelinks\", options)\n\tvar alreadyReported = Object.create(null);\n\tvar reportList = [];\n\t$tw.utils.each(failureList, function(f) {\n\t\tif (!alreadyReported[f]) {\n\t\t\tif ($tw.browser) {\n\t\t\t\t// This might not make the link if the title is complicated.\n\t\t\t\t// Whatever.\n\t\t\t\treportList.push(\"\\n* [[\" + f + \"]]\");\n\t\t\t} else {\n\t\t\t\treportList.push(\"\\n* \" + f);\n\t\t\t}\n\t\t\talreadyReported[f] = true;\n\t\t}\n\t});\n\tlogger.alert(alertString + \"\\n\" + reportList.join(\"\"));\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/language.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/mangler.js": {
"text": "/*\\\nmodule-type: widget\n\nCreates a mangler widget for field validation. This isn't meant to be used\nby the user. It's only used in Relink configuration.\n\n\\*/\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nvar RelinkManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"relink-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"relink-add-operator\", handler: \"handleAddOperatorEvent\"},\n\t\t{type: \"relink-add-parameter\", handler: \"handleAddParameterEvent\"},\n\t\t{type: \"relink-add-attribute\", handler: \"handleAddAttributeEvent\"}\n\t]);\n};\n\nexports.relinkmangler = RelinkManglerWidget;\n\nRelinkManglerWidget.prototype = new Widget();\n\n// This wraps alert so it can be monkeypatched during testing.\nRelinkManglerWidget.prototype.alert = function(message) {\n\talert(message);\n};\n\nRelinkManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (typeof param !== \"object\" || !param.field) {\n\t\t// Can't handle it.\n\t\treturn true;\n\t}\n\tvar trimmedName = param.field.toLowerCase().trim();\n\tif (!trimmedName) {\n\t\t// Still can't handle it, but don't warn.\n\t\treturn true;\n\t}\n\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\tthis.alert($tw.language.getString(\n\t\t\t\"InvalidFieldName\",\n\t\t\t{variables:\n\t\t\t\t{fieldName: trimmedName}\n\t\t\t}\n\t\t));\n\t} else {\n\t\tadd(this.wiki, \"fields\", trimmedName);\n\t}\n\treturn true;\n};\n\n/**Not much validation, even though there are definitely illegal\n * operator names. If you input on, Relink won't relink it, but it\n * won't choke on it either. Tiddlywiki will...\n */\nRelinkManglerWidget.prototype.handleAddOperatorEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param) {\n\t\tadd(this.wiki, \"operators\", param.operator);\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddParameterEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.macro && param.parameter) {\n\t\tif (/\\s/.test(param.macro.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"Error/InvalidMacroName\",\n\t\t\t\t{ variables: {macroName: param.macro},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.parameter.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"Error/InvalidParameterName\",\n\t\t\t\t{ variables: {parameterName: param.parameter},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"macros\", param.macro, param.parameter);\n\t\t}\n\t}\n\treturn true;\n};\n\nRelinkManglerWidget.prototype.handleAddAttributeEvent = function(event) {\n\tvar param = event.paramObject;\n\tif (param && param.element && param.attribute) {\n\t\tif (/[ \\/]/.test(param.element.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"Error/InvalidElementName\",\n\t\t\t\t{ variables: {elementName: param.element},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else if (/[ \\/]/.test(param.attribute.trim())) {\n\t\t\tthis.alert(language.getString(\n\t\t\t\t\"Error/InvalidAttributeName\",\n\t\t\t\t{ variables: {attributeName: param.attribute},\n\t\t\t\t wiki: this.wiki\n\t\t\t\t}\n\t\t\t));\n\t\t} else {\n\t\t\tadd(this.wiki, \"attributes\", param.element, param.attribute);\n\t\t}\n\t}\n\treturn true;\n};\n\nfunction add(wiki, category/*, path parts*/) {\n\tvar path = \"$:/config/flibbles/relink/\" + category;\n\tfor (var x = 2; x < arguments.length; x++) {\n\t\tvar part = arguments[x];\n\t\t// Abort if it's falsy, or only whitespace. Also, trim spaces\n\t\tif (!part || !(part = part.trim())) {\n\t\t\treturn;\n\t\t}\n\t\tpath = path + \"/\" + part;\n\t}\n\tvar def = utils.getDefaultType(wiki);\n\twiki.addTiddler({title: path, text: def});\n};\n",
"module-type": "widget",
"title": "$:/plugins/flibbles/relink/js/mangler.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/settings.js": {
"text": "/*\\\nmodule-type: library\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar utils = require('./utils');\n\n///// Legacy. You used to be able to access the type from utils.\nexports.getType = utils.getType;\n/////\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/settings.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils.js": {
"text": "/*\\\nmodule-type: library\n\nUtility methods for relink.\n\n\\*/\n\nvar macroFilter = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\n/**This works nearly identically to $tw.modules.getModulesByTypeAsHashmap\n * except that this also takes care of migrating V1 relink modules.\n */\nexports.getModulesByTypeAsHashmap = function(moduleType, nameField) {\n\tvar results = Object.create(null);\n\t$tw.modules.forEachModuleOfType(moduleType, function(title, module) {\n\t\tvar key = module[nameField];\n\t\tif (key !== undefined) {\n\t\t\tresults[key] = module;\n\t\t} else {\n\t\t\tfor (var entry in module) {\n\t\t\t\tresults[entry] = {\n\t\t\t\t\trelink: module[entry],\n\t\t\t\t\treport: function() {}};\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.getTiddlerRelinkReferences = function(wiki, title, context) {\n\tvar tiddler = wiki.getTiddler(title),\n\t\treferences = Object.create(null),\n\t\toptions = {settings: context, wiki: wiki};\n\tif (tiddler) {\n\t\ttry {\n\t\t\tfor (var relinker in getRelinkOperators()) {\n\t\t\t\tgetRelinkOperators()[relinker].report(tiddler, function(title, blurb) {\n\t\t\t\t\treferences[title] = references[title] || [];\n\t\t\t\t\treferences[title].push(blurb);\n\t\t\t\t}, options);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tif (e.message) {\n\t\t\t\te.message = e.message + \"\\nWhen reporting '\" + title + \"' Relink references\";\n\t\t\t}\n\t\t\tthrow e;\n\t\t}\n\t}\n\treturn references;\n};\n\n/** Returns a pair like this,\n * { title: {field: entry, ... }, ... }\n */\nexports.getRelinkResults = function(wiki, fromTitle, toTitle, context, tiddlerList, options) {\n\toptions = options || {};\n\toptions.wiki = options.wiki || wiki;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tvar changeList = Object.create(null);\n\tif(fromTitle && toTitle) {\n\t\tif (tiddlerList === undefined) {\n\t\t\ttiddlerList = wiki.getRelinkableTitles();\n\t\t}\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\tif(tiddler && !tiddler.fields[\"plugin-type\"]) {\n\t\t\t\ttry {\n\t\t\t\t\tvar entries = Object.create(null),\n\t\t\t\t\t\toperators = getRelinkOperators();\n\t\t\t\t\toptions.settings = new Contexts.tiddler(wiki, context, title);\n\t\t\t\t\tfor (var operation in operators) {\n\t\t\t\t\t\toperators[operation].relink(tiddler, fromTitle, toTitle, entries, options);\n\t\t\t\t\t}\n\t\t\t\t\tfor (var field in entries) {\n\t\t\t\t\t\t// So long as there is one key,\n\t\t\t\t\t\t// add it to the change list.\n\t\t\t\t\t\tchangeList[title] = entries;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Should we test for instanceof Error instead?: yes\n\t\t\t\t\t// Does that work in the testing environment?: no\n\t\t\t\t\tif (e.message) {\n\t\t\t\t\t\te.message = e.message + \"\\nWhen relinking '\" + title + \"'\";\n\t\t\t\t\t}\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn changeList;\n};\n\nvar Contexts = $tw.modules.applyMethods('relinkcontext');\n\nexports.getContext = function(name) {\n\treturn Contexts[name];\n};\n\nexports.getWikiContext = function(wiki) {\n\t// This gives a fresh context every time. It is up to the indexer or\n\t// the cache to preserve those contexts for as long as needed.\n\tvar whitelist = new Contexts.whitelist(wiki);\n\treturn new Contexts.import(wiki, whitelist, macroFilter);\n};\n\n/** Returns the Relink indexer, or a dummy object which pretends to be one.\n */\nexports.getIndexer = function(wiki) {\n\tif (!wiki._relink_indexer) {\n\t\twiki._relink_indexer = (wiki.getIndexer && wiki.getIndexer(\"RelinkIndexer\")) || new (require('$:/plugins/flibbles/relink/js/utils/backupIndexer.js'))(wiki);\n\t}\n\treturn wiki._relink_indexer;\n};\n\n/**Relinking supports a cache that persists throughout a whole relink op.\n * This is because the Tiddlywiki caches may get wiped multiple times\n * throughout the course of a relink.\n */\nexports.getCacheForRun = function(options, cacheName, initializer) {\n\toptions.cache = options.cache || Object.create(null);\n\tif (!$tw.utils.hop(options.cache, cacheName)) {\n\t\toptions.cache[cacheName] = initializer();\n\t}\n\treturn options.cache[cacheName];\n};\n\n/**Returns a specific relinker.\n * This is useful for wikitext rules which need to parse a filter or a list\n */\nexports.getType = function(name) {\n\tvar Handler = getFieldTypes()[name];\n\treturn Handler ? new Handler() : undefined;\n};\n\nexports.getTypes = function() {\n\t// We don't return fieldTypes, because we don't want it modified,\n\t// and we need to filter out legacy names.\n\tvar rtn = Object.create(null);\n\tfor (var type in getFieldTypes()) {\n\t\tvar typeObject = getFieldTypes()[type];\n\t\trtn[typeObject.typeName] = typeObject;\n\t}\n\treturn rtn;\n};\n\nexports.getDefaultType = function(wiki) {\n\tvar tiddler = wiki.getTiddler(\"$:/config/flibbles/relink/settings/default-type\");\n\tvar defaultType = tiddler && tiddler.fields.text;\n\t// make sure the default actually exists, otherwise default\n\treturn fieldTypes[defaultType] ? defaultType : \"title\";\n};\n\nvar fieldTypes;\n\nfunction getFieldTypes() {\n\tif (!fieldTypes) {\n\t\tfieldTypes = Object.create(null);\n\t\t$tw.modules.forEachModuleOfType(\"relinkfieldtype\", function(title, exports) {\n\t\t\tfunction NewType() {};\n\t\t\tNewType.prototype = exports;\n\t\t\tNewType.typeName = exports.name;\n\t\t\tfieldTypes[exports.name] = NewType;\n\t\t\t// For legacy, if the NewType doesn't have a report method, we add one\n\t\t\tif (!exports.report) {\n\t\t\t\texports.report = function() {};\n\t\t\t}\n\t\t\t// Also for legacy, some of the field types can go by other names\n\t\t\tif (exports.aliases) {\n\t\t\t\t$tw.utils.each(exports.aliases, function(alias) {\n\t\t\t\t\tfieldTypes[alias] = NewType;\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\treturn fieldTypes;\n}\n\nvar relinkOperators;\n\nfunction getRelinkOperators() {\n\tif (!relinkOperators) {\n\t\trelinkOperators = exports.getModulesByTypeAsHashmap('relinkoperator', 'name');\n\t}\n\treturn relinkOperators;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/wikimethods.js": {
"text": "/*\\\nmodule-type: wikimethod\n\nIntroduces some utility methods used by Relink.\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.getTiddlerRelinkReferences = function(title) {\n\treturn utils.getIndexer(this).lookup(title);\n};\n\nexports.getTiddlerRelinkBackreferences = function(title) {\n\treturn utils.getIndexer(this).reverseLookup(title);\n};\n\nexports.getRelinkableTitles = function() {\n\tvar toUpdate = \"$:/config/flibbles/relink/to-update\";\n\tvar wiki = this;\n\treturn this.getCacheForTiddler(toUpdate, \"relink-toUpdate\", function() {\n\t\tvar tiddler = wiki.getTiddler(toUpdate);\n\t\tif (tiddler) {\n\t\t\treturn wiki.compileFilter(tiddler.fields.text);\n\t\t} else {\n\t\t\treturn wiki.allTitles;\n\t\t}\n\t})();\n};\n",
"module-type": "wikimethod",
"title": "$:/plugins/flibbles/relink/js/wikimethods.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js": {
"text": "/*\\\nmodule-type: allfilteroperator\n\nFilter function for [all[relinkable]].\nReturns all tiddlers subject to relinking.\n\n\\*/\n\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.relinkable = function(source,prefix,options) {\n\treturn options.wiki.getRelinkableTitles();\n};\n\n})();\n",
"module-type": "allfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/all_relinkable.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/references.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns all non-shadow tiddlers that have any\nsort of updatable reference to it.\n\n`relink:backreferences[]]`\n`relink:references[]]`\n\nReturns all tiddlers that reference `fromTiddler` somewhere inside them.\n\nInput is ignored. Maybe it shouldn't do this.\n\\*/\n\nvar LinkedList = $tw.utils.LinkedList;\n\nif (!LinkedList) {\n\t/* If the linked list isn't available, make a quick crappy version. */\n\tLinkedList = function() {this.array=[];};\n\n\tLinkedList.prototype.pushTop = function(array) {\n\t\t$tw.utils.pushTop(this.array, array);\n\t};\n\n\tLinkedList.prototype.toArray = function() {\n\t\treturn this.array;\n\t};\n};\n\nexports.backreferences = function(source,operator,options) {\n\tvar results = new LinkedList();\n\tsource(function(tiddler,title) {\n\t\tresults.pushTop(Object.keys(options.wiki.getTiddlerRelinkBackreferences(title,options)));\n\t});\n\treturn results.toArray();\n};\n\nexports.references = function(source,operator,options) {\n\tvar results = new LinkedList();\n\tsource(function(tiddler,title) {\n\t\tvar refs = options.wiki.getTiddlerRelinkReferences(title,options);\n\t\tif (refs) {\n\t\t\tresults.pushTop(Object.keys(refs));\n\t\t}\n\t});\n\treturn results.toArray();\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/references.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/relink.js": {
"text": "/*\\\nmodule-type: filteroperator\n\nThis filter acts as a namespace for several small, simple filters, such as\n\n`[relink:impossible[]]`\n\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nvar relinkFilterOperators;\n\nfunction getRelinkFilterOperators() {\n\tif(!relinkFilterOperators) {\n\t\trelinkFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"relinkfilteroperator\",\n\t\t relinkFilterOperators);\n\t}\n\treturn relinkFilterOperators;\n}\n\nexports.relink = function(source,operator,options) {\n\tvar suffixPair = parseSuffix(operator.suffix);\n\tvar relinkFilterOperator = getRelinkFilterOperators()[suffixPair[0]];\n\tif (relinkFilterOperator) {\n\t\tvar newOperator = $tw.utils.extend({}, operator);\n\t\tnewOperator.suffix = suffixPair[1];\n\t\treturn relinkFilterOperator(source, newOperator, options);\n\t} else {\n\t\treturn [language.getString(\"Error/RelinkFilterOperator\", options)];\n\t}\n};\n\nfunction parseSuffix(suffix) {\n\tvar index = suffix? suffix.indexOf(\":\"): -1;\n\tif (index >= 0) {\n\t\treturn [suffix.substr(0, index), suffix.substr(index+1)];\n\t} else {\n\t\treturn [suffix];\n\t}\n}\n",
"module-type": "filteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/report.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nGiven a title as an operand, returns a string for each occurrence of that title\nwithin each input title.\n\n[[title]] +[relink:report[fromTiddler]]`\n\nReturns string representation of fromTiddler occurrences in title.\n\\*/\n\nexports.report = function(source,operator,options) {\n\tvar fromTitle = operator.operand,\n\t\tresults = [];\n\tif (fromTitle) {\n\t\tvar blurbs = options.wiki.getTiddlerRelinkBackreferences(fromTitle);\n\t\tsource(function(tiddler, title) {\n\t\t\tif (blurbs[title]) {\n\t\t\t\tresults = results.concat(blurbs[title]);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/report.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/signatures.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nThis filter returns all input tiddlers which are a source of\nrelink configuration.\n\n`[all[tiddlers+system]relink:source[macros]]`\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nexports.signatures = function(source,operator,options) {\n\tvar plugin = operator.operand || null;\n\tvar set = getSet(options);\n\tif (plugin === \"$:/core\") {\n\t\t// Core doesn't actually have any settings. We mean Relink\n\t\tplugin = \"$:/plugins/flibbles/relink\";\n\t}\n\tvar signatures = [];\n\tfor (var signature in set) {\n\t\tvar source = set[signature].source;\n\t\tif (options.wiki.getShadowSource(source) === plugin) {\n\t\t\tsignatures.push(signature);\n\t\t}\n\t}\n\treturn signatures;\n};\n\nexports.type = function(source,operator,options) {\n\tvar results = [];\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].name);\n\t\t}\n\t});\n\treturn results;\n};\n\nexports.types = function(source,operator,options) {\n\tvar def = utils.getDefaultType(options.wiki);\n\tvar types = Object.keys(utils.getTypes());\n\ttypes.sort();\n\t// move default to front\n\ttypes.sort(function(x,y) { return x === def ? -1 : y === def ? 1 : 0; });\n\treturn types;\n};\n\nexports.source = function(source,operator,options) {\n\tvar results = [];\n\tvar category = operator.suffix;\n\tvar set = getSet(options);\n\tsource(function(tiddler, signature) {\n\t\tif (set[signature]) {\n\t\t\tresults.push(set[signature].source);\n\t\t}\n\t});\n\treturn results;\n};\n\nfunction getSet(options) {\n\treturn options.wiki.getGlobalCache(\"relink-signatures\", function() {\n\t\tvar config = utils.getWikiContext(options.wiki);\n\t\tvar set = Object.create(null);\n\t\tvar categories = {\n\t\t\tattributes: config.getAttributes(),\n\t\t\tfields: config.getFields(),\n\t\t\tmacros: config.getMacros(),\n\t\t\toperators: config.getOperators()};\n\t\t$tw.utils.each(categories, function(list, category) {\n\t\t\t$tw.utils.each(list, function(item, key) {\n\t\t\t\tset[category + \"/\" + key] = item;\n\t\t\t});\n\t\t});\n\t\treturn set;\n\t});\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/signatures.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/filteroperators/splitafter.js": {
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: relinkfilteroperator\n\nFilter operator that splits each result on the last occurance of the specified separator and returns the last bit.\n\nWhat does this have to do with relink? Nothing. I need this so I can render\nthe configuration menu. I //could// use [splitregexp[]], but then I'd be\nlimited to Tiddlywiki v5.1.20 or later.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitafter = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar index = title.lastIndexOf(operator.operand);\n\t\tif(index < 0) {\n\t\t\t$tw.utils.pushTop(results,title);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,title.substr(index+1));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n\n",
"title": "$:/plugins/flibbles/relink/js/filteroperators/splitafter.js",
"type": "application/javascript",
"module-type": "relinkfilteroperator"
},
"$:/plugins/flibbles/relink/js/filteroperators/wouldchange.js": {
"text": "/*\\\nmodule-type: relinkfilteroperator\n\nwouldchange: Generator.\n\nGiven each input title, it returns all the tiddlers that would be changed if the currentTiddler were to be renamed to the operand.\n\nimpossible: filters all source titles for ones that encounter errors on failure.\n\nTHESE ARE INTERNAL FILTER OPERATOR AND ARE NOT INTENDED TO BE USED BY USERS.\n\n\\*/\n\nvar language = require(\"$:/plugins/flibbles/relink/js/language.js\");\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\n\nexports.wouldchange = function(source,operator,options) {\n\tvar from = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tto = operator.operand,\n\t\tindexer = utils.getIndexer(options.wiki),\n\t\trecords = indexer.relinkLookup(from, to, options);\n\treturn Object.keys(records);\n};\n\nexports.impossible = function(source,operator,options) {\n\tvar from = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tto = operator.operand,\n\t\tresults = [],\n\t\tindexer = utils.getIndexer(options.wiki),\n\t\trecords = indexer.relinkLookup(from, to, options);\n\tsource(function(tiddler, title) {\n\t\tvar fields = records[title];\n\t\tif (fields) {\n\t\t\tfor (var field in fields) {\n\t\t\t\tif (fields[field].impossible) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n",
"module-type": "relinkfilteroperator",
"title": "$:/plugins/flibbles/relink/js/filteroperators/wouldchange.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/filter.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\n\nexports.name = \"filter\";\n\nexports.report = function(filter, callback, options) {\n\t// I cheat here for now. Relink handles reporting too in cases where\n\t// fromTitle is undefined. toTitle is the callback in those cases.\n\texports.relink(filter, undefined, callback, options);\n};\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(filter, fromTitle, toTitle, options) {\n\tvar relinker = new Rebuilder(filter),\n\t\tp = 0, // Current position in the filter string\n\t\tmatch, noPrecedingWordBarrier,\n\t\twordBarrierRequired=false;\n\tvar whitespaceRegExp = /\\s+/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=|\\:\\w+)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg,\n\t\tblurbs = [];\n\twhile(p < filter.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filter);\n\t\tnoPrecedingWordBarrier = false;\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t} else if (p != 0) {\n\t\t\tif (wordBarrierRequired) {\n\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\twordBarrierRequired = false;\n\t\t\t} else {\n\t\t\t\tnoPrecedingWordBarrier = true;\n\t\t\t}\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filter.length) {\n\t\t\tvar val;\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filter);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\t// It's a bad filter\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif(match[1]) { // prefix\n\t\t\t\tp += match[1].length;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\t// We check if this is a standalone title,\n\t\t\t\t// like `[[MyTitle]]`. We treat those like\n\t\t\t\t// `\"MyTitle\"` or `MyTitle`. Not like a run.\n\t\t\t\tvar standaloneTitle = /\\[\\[([^\\]]+)\\]\\]/g;\n\t\t\t\tstandaloneTitle.lastIndex = p;\n\t\t\t\tvar alone = standaloneTitle.exec(filter);\n\t\t\t\tif (!alone || alone.index != p) {\n\t\t\t\t\tif (fromTitle === undefined) {\n\t\t\t\t\t\t// toTitle is a callback method in this case.\n\t\t\t\t\t\tp =reportFilterOperation(filter, function(title, blurb){\n\t\t\t\t\t\t\tif (match[1]) {\n\t\t\t\t\t\t\t\tblurbs.push([title, match[1] + (blurb || '')]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tblurbs.push([title, blurb]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},p,options.settings,options);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tp =relinkFilterOperation(relinker,fromTitle,toTitle,filter,p,options.settings,options);\n\t\t\t\t\t}\n\t\t\t\t\t// It's a legit run\n\t\t\t\t\tif (p === undefined) {\n\t\t\t\t\t\t// The filter is malformed\n\t\t\t\t\t\t// We do nothing.\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbracketTitle = alone[1];\n\t\t\t\toperandRegExp.lastIndex = standaloneTitle.lastIndex;\n\t\t\t\tval = alone[1];\n\t\t\t} else {\n\t\t\t\t// standalone Double quoted string, single\n\t\t\t\t// quoted string, or noquote ahead.\n\t\t\t\tval = match[3] || match[4] || match[5];\n\t\t\t}\n\t\t\t// From here on, we're dealing with a standalone title\n\t\t\t// expression. like `\"MyTitle\"` or `[[MyTitle]]`\n\t\t\t// We're much more flexible about relinking these.\n\t\t\tvar preference = undefined;\n\t\t\tif (match[3]) {\n\t\t\t\tpreference = '\"';\n\t\t\t} else if (match[4]) {\n\t\t\t\tpreference = \"'\";\n\t\t\t} else if (match[5]) {\n\t\t\t\tpreference = '';\n\t\t\t}\n\t\t\tif (fromTitle === undefined) {\n\t\t\t\t// Report it\n\t\t\t\tblurbs.push([val, match[1]]);\n\t\t\t} else if (val === fromTitle) {\n\t\t\t\t// Relink it\n\t\t\t\tvar entry = {name: \"title\"};\n\t\t\t\tvar newVal = wrapTitle(toTitle, preference);\n\t\t\t\tif (newVal === undefined || (options.inBraces && newVal.indexOf('}}}') >= 0)) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\trelinker.impossible = true;\n\t\t\t\t\t\tp = operandRegExp.lastIndex;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tnewVal = \"[<\"+options.placeholder.getPlaceholderFor(toTitle)+\">]\";\n\t\t\t\t}\n\t\t\t\tif (newVal[0] != '[') {\n\t\t\t\t\t// not bracket enclosed\n\t\t\t\t\t// this requires whitespace\n\t\t\t\t\t// arnound it\n\t\t\t\t\tif (noPrecedingWordBarrier && !match[1]) {\n\t\t\t\t\t\trelinker.add(' ', p, p);\n\t\t\t\t\t}\n\t\t\t\t\twordBarrierRequired = true;\n\t\t\t\t}\n\t\t\t\tentry.output = toTitle;\n\t\t\t\tentry.operator = {operator: \"title\"};\n\t\t\t\tentry.quotation = preference;\n\t\t\t\tif (entry.impossible) {\n\t\t\t\t\trelinker.impossible = true;\n\t\t\t\t}\n\t\t\t\trelinker.add(newVal,p,operandRegExp.lastIndex);\n\t\t\t}\n\t\t\tp = operandRegExp.lastIndex;\n\t\t}\n\t}\n\tif (fromTitle === undefined) {\n\t\t// We delay the blurb calls until now in case it's a malformed\n\t\t// filter string. We don't want to report some, only to find out\n\t\t// it's bad.\n\t\tfor (var i = 0; i < blurbs.length; i++) {\n\t\t\ttoTitle(blurbs[i][0], blurbs[i][1]);\n\t\t}\n\t}\n\tif (relinker.changed() || relinker.impossible) {\n\t\treturn {output: relinker.results(), impossible: relinker.impossible };\n\t}\n\treturn undefined;\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces. (i.e. '{{{...}}}')\n */\nexports.relinkInBraces = function(filter, fromTitle, toTitle, options) {\n\tvar braceOptions = $tw.utils.extend({inBraces: true}, options);\n\tvar entry = this.relink(filter, fromTitle, toTitle, braceOptions);\n\tif (entry && entry.output && !canBeInBraces(entry.output)) {\n\t\t// It was possible, but it won't fit in braces, so we must give up\n\t\tdelete entry.output;\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n\nfunction wrapTitle(value, preference) {\n\tvar choices = {\n\t\t\"\": function(v) {return /^[^\\s\\[\\]]*[^\\s\\[\\]\\}]$/.test(v); },\n\t\t\"[\": canBePrettyOperand,\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; }\n\t};\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"[\": function(v) {return \"[[\"+v+\"]]\"; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; }\n\t};\n\tif (choices[preference]) {\n\t\tif (choices[preference](value)) {\n\t\t\treturn wrappers[preference](value);\n\t\t}\n\t}\n\tfor (var quote in choices) {\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrappers[quote](value);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n}\n\nfunction relinkFilterOperation(relinker, fromTitle, toTitle, filterString, p, context, options) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\n\t}\n\t// Process each operator in turn\n\toperator = parseOperator(filterString, p);\n\tdo {\n\t\tvar entry = undefined, type;\n\t\tif (operator === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tp = operator.opStart;\n\t\tswitch (operator.bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\ttype = \"indirect\";\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// We've got a live reference. relink or report\n\t\t\t\tentry = refHandler.relinkInBraces(operand, fromTitle, toTitle, options);\n\t\t\t\tif (entry && entry.output) {\n\t\t\t\t\t// We don't check the context.\n\t\t\t\t\t// All indirect operands convert.\n\t\t\t\t\trelinker.add(entry.output,p,nextBracketPos);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\ttype = \"string\";\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Check if this is a relevant operator\n\t\t\t\tvar handler = fieldType(context, operator);\n\t\t\t\tif (!handler) {\n\t\t\t\t\t// This operator isn't managed. Bye.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tentry = handler.relink(operand, fromTitle, toTitle, options);\n\t\t\t\tif (!entry || !entry.output) {\n\t\t\t\t\t// The fromTitle wasn't in the operand.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar wrapped;\n\t\t\t\tif (!canBePrettyOperand(entry.output) || (options.inBraces && entry.output.indexOf('}}}') >= 0)) {\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\tdelete entry.output;\n\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tvar ph = options.placeholder.getPlaceholderFor(entry.output, handler.name);\n\t\t\t\t\twrapped = \"<\"+ph+\">\";\n\t\t\t\t} else {\n\t\t\t\t\twrapped = \"[\"+entry.output+\"]\";\n\t\t\t\t}\n\t\t\t\trelinker.add(wrapped, p-1, nextBracketPos+1);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Unterminated regular expression\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\tif (entry) {\n\t\t\tif (entry.impossible) {\n\t\t\t\trelinker.impossible = true;\n\t\t\t}\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing closing bracket in filter expression\n\t\t\treturn undefined;\n\t\t}\n\t\tp = nextBracketPos + 1;\n\t\t// Check for multiple operands\n\t\tswitch (filterString.charAt(p)) {\n\t\tcase ',':\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\toperator.bracket = filterString.charAt(p);\n\t\t\t\toperator.opStart = p + 1;\n\t\t\t\toperator.index++;\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\tdefault:\n\t\t\toperator = parseOperator(filterString, p);\n\t\t\tcontinue;\n\t\tcase ']':\n\t\t}\n\t\tbreak;\n\t} while(true);\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\t// Missing ] in filter expression\n\t\treturn undefined;\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\nfunction reportFilterOperation(filterString, callback, p, context, options) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\n\t}\n\toperator = parseOperator(filterString, p);\n\t// Process each operator in turn\n\tdo {\n\t\tif (operator === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\tp = operator.opStart;\n\t\tswitch (operator.bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Just report it\n\t\t\t\trefHandler.report(operand, function(title, blurb) {\n\t\t\t\t\tcallback(title, operatorBlurb(operator, '{' + (blurb || '') + '}'));\n\t\t\t\t}, options);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tvar operand = filterString.substring(p,nextBracketPos);\n\t\t\t\t// Check if this is a relevant operator\n\t\t\t\tvar handler = fieldType(context, operator);\n\t\t\t\tif (!handler) {\n\t\t\t\t\t// This operator isn't managed. Bye.\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t// We just have to report it. Nothing more.\n\t\t\t\thandler.report(operand, function(title, blurb) {\n\t\t\t\t\tcallback(title, operatorBlurb(operator, '[' + (blurb || '') + ']'));\n\t\t\t\t}, options);\n\t\t\t\tbreak;\n\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Unterminated regular expression\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\t// Missing closing bracket in filter expression\n\t\t\treturn undefined;\n\t\t}\n\t\tp = nextBracketPos + 1;\n\t\t// Check for multiple operands\n\t\tswitch (filterString.charAt(p)) {\n\t\tcase ',':\n\t\t\tp++;\n\t\t\tif(/^[\\[\\{<\\/]/.test(filterString.substring(p))) {\n\t\t\t\toperator.bracket = filterString.charAt(p);\n\t\t\t\toperator.opStart = p + 1;\n\t\t\t\toperator.index++;\n\t\t\t} else {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcontinue;\n\t\tdefault:\n\t\t\toperator = parseOperator(filterString, p);\n\t\t\tcontinue;\n\t\tcase ']':\n\t\t}\n\t\tbreak;\n\t} while(true);\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\t// Missing ] in filter expression\n\t\treturn undefined;\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\nfunction parseOperator(filterString, p) {\n\tvar nextBracketPos, operator = {index: 1};\n\t// Check for an operator prefix\n\tif(filterString.charAt(p) === \"!\") {\n\t\toperator.prefix = \"!\";\n\t\tp++;\n\t}\n\t// Get the operator name\n\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\tif(nextBracketPos === -1) {\n\t\t// Missing [ in filter expression\n\t\treturn undefined;\n\t}\n\tnextBracketPos += p;\n\toperator.bracket = filterString.charAt(nextBracketPos);\n\toperator.operator = filterString.substring(p,nextBracketPos);\n\n\t// Any suffix?\n\tvar colon = operator.operator.indexOf(':');\n\tif(colon > -1) {\n\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t}\n\t// Empty operator means: title\n\telse if(operator.operator === \"\") {\n\t\toperator.operator = \"title\";\n\t\toperator.default = true;\n\t}\n\toperator.opStart = nextBracketPos + 1;\n\treturn operator;\n};\n\nfunction operatorBlurb(operator, enquotedOperand) {\n\tvar suffix = operator.suffix ? (':' + operator.suffix) : '';\n\t// commas to indicate which number operand\n\tsuffix += (new Array(operator.index)).join(',');\n\tvar op = operator.default ? '' : operator.operator;\n\treturn '[' + (operator.prefix || '') + op + suffix + enquotedOperand + ']';\n};\n\n// Returns the relinker needed for a given operator, or returns undefined.\nfunction fieldType(context, operator) {\n\treturn (operator.suffix &&\n\t context.getOperator(operator.operator + ':' + operator.suffix, operator.index)) ||\n\t context.getOperator(operator.operator, operator.index);\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\nfunction canBeInBraces(value) {\n\treturn value.indexOf(\"}}}\") < 0 && value.substr(value.length-2) !== '}}';\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/filter.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/list.js": {
"text": "/*\\\nThis manages replacing titles that occur within stringLists, like,\n\nTiddlerA [[Tiddler with spaces]] [[Another Title]]\n\\*/\n\nexports.name = \"list\";\n\nexports.report = function(value, callback, options) {\n\tvar list = $tw.utils.parseStringArray(value);\n\tfor (var i = 0; i < list.length; i++) {\n\t\tcallback(list[i]);\n\t}\n};\n\n/**Returns undefined if no change was made.\n * Parameter: value can literally be a list. This can happen for builtin\n * types 'list' and 'tag'. In those cases, we also return list.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar isModified = false,\n\t\tactualList = false,\n\t\tlist;\n\tif (typeof value !== \"string\") {\n\t\t// Not a string. Must be a list.\n\t\t// clone it, since we may make changes to this possibly\n\t\t// frozen list.\n\t\tlist = (value || []).slice(0);\n\t\tactualList = true;\n\t} else {\n\t\tlist = $tw.utils.parseStringArray(value || \"\");\n\t}\n\t$tw.utils.each(list,function (title,index) {\n\t\tif(title === fromTitle) {\n\t\t\tlist[index] = toTitle;\n\t\t\tisModified = true;\n\t\t}\n\t});\n\tif (isModified) {\n\t\tvar entry = {name: \"list\"};\n\t\t// It doesn't parse correctly alone, it won't\n\t\t// parse correctly in any list.\n\t\tif (!canBeListItem(toTitle)) {\n\t\t\tentry.impossible = true;\n\t\t} else if (actualList) {\n\t\t\tentry.output = list;\n\t\t} else {\n\t\t\tentry.output = $tw.utils.stringifyList(list);\n\t\t}\n\t\treturn entry;\n\t}\n\treturn undefined;\n};\n\nfunction canBeListItem(value) {\n\tvar regexp = /\\]\\][^\\S\\xA0]/m;\n\treturn !regexp.test(value);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/list.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/reference.js": {
"text": "/*\\\nThis manages replacing titles that occur inside text references,\n\ntiddlerTitle\ntiddlerTitle!!field\n!!field\ntiddlerTitle##propertyIndex\n\\*/\n\nexports.name = \"reference\";\n\nexports.report = function(value, callback, options) {\n\tif (value) {\n\t\tvar reference = $tw.utils.parseTextReference(value),\n\t\t\ttitle = reference.title,\n\t\t\tblurb;\n\t\tif (title) {\n\t\t\tif (reference.field) {\n\t\t\t\tblurb = '!!' + reference.field;\n\t\t\t} else if (reference.index) {\n\t\t\t\tblurb = '##' + reference.index;\n\t\t\t}\n\t\t\tcallback(title, blurb);\n\t\t}\n\t}\n};\n\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tvar entry;\n\tif (value) {\n\t\tvar reference = $tw.utils.parseTextReference(value);\n\t\tif (reference.title === fromTitle) {\n\t\t\tif (!exports.canBePretty(toTitle)) {\n\t\t\t\tentry = {impossible: true};\n\t\t\t} else {\n\t\t\t\treference.title = toTitle;\n\t\t\t\tentry = {output: exports.toString(reference)};\n\t\t\t}\n\t\t}\n\t}\n\treturn entry;\n};\n\n/* Same as this.relink, except this has the added constraint that the return\n * value must be able to be wrapped in curly braces.\n */\nexports.relinkInBraces = function(value, fromTitle, toTitle, options) {\n\tvar log = this.relink(value, fromTitle, toTitle, options);\n\tif (log && log.output && toTitle.indexOf(\"}\") >= 0) {\n\t\tdelete log.output;\n\t\tlog.impossible = true;\n\t}\n\treturn log;\n};\n\nexports.toString = function(textReference) {\n\tvar title = textReference.title || '';\n\tif (textReference.field) {\n\t\treturn title + \"!!\" + textReference.field;\n\t} else if (textReference.index) {\n\t\treturn title + \"##\" + textReference.index;\n\t}\n\treturn title;\n};\n\nexports.canBePretty = function(title) {\n\treturn !title || (title.indexOf(\"!!\") < 0 && title.indexOf(\"##\") < 0);\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/reference.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/title.js": {
"text": "/*\\\nThis specifies logic for replacing a single-tiddler field. This is the\nsimplest kind of field type. One title swaps out for the other.\n\\*/\n\n// NOTE TO MODDERS: If you're making your own field types, the name must be\n// alpha characters only.\nexports.name = 'title';\n\nexports.report = function(value, callback, options) {\n\tcallback(value);\n};\n\n/**Returns undefined if no change was made.\n */\nexports.relink = function(value, fromTitle, toTitle, options) {\n\tif (value === fromTitle) {\n\t\treturn {output: toTitle};\n\t}\n\treturn undefined;\n};\n\n// This is legacy support for when 'title' was known as 'field'\nexports.aliases = ['field', 'yes'];\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/title.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js": {
"text": "/*\\\nThis specifies logic for updating filters to reflect title changes.\n\\*/\n\nexports.name = \"wikitext\";\n\nvar type = 'text/vnd.tiddlywiki';\n\nvar WikiParser = require(\"$:/core/modules/parsers/wikiparser/wikiparser.js\")[type];\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder.js\");\nvar utils = require('$:/plugins/flibbles/relink/js/utils');\nvar WikitextContext = utils.getContext('wikitext');\n\nfunction collectRules() {\n\tvar rules = Object.create(null);\n\t$tw.modules.forEachModuleOfType(\"relinkwikitextrule\", function(title, exports) {\n\t\tvar names = exports.name;\n\t\tif (typeof names === \"string\") {\n\t\t\tnames = [names];\n\t\t}\n\t\tif (names !== undefined) {\n\t\t\tfor (var i = 0; i < names.length; i++) {\n\t\t\t\trules[names[i]] = exports;\n\t\t\t}\n\t\t}\n\t});\n\treturn rules;\n}\n\nfunction WikiWalker(type, text, options) {\n\tthis.options = options;\n\tif (!this.relinkMethodsInjected) {\n\t\tvar rules = collectRules();\n\t\t$tw.utils.each([this.pragmaRuleClasses, this.blockRuleClasses, this.inlineRuleClasses], function(classList) {\n\t\t\tfor (var name in classList) {\n\t\t\t\tif (rules[name]) {\n\t\t\t\t\tdelete rules[name].name;\n\t\t\t\t\t$tw.utils.extend(classList[name].prototype, rules[name]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tWikiWalker.prototype.relinkMethodsInjected = true;\n\t}\n\tthis.context = new WikitextContext(options.settings);\n\tWikiParser.call(this, type, text, options);\n};\n\nWikiWalker.prototype = Object.create(WikiParser.prototype);\n\nWikiWalker.prototype.parsePragmas = function() {\n\tvar entries = this.tree;\n\twhile (true) {\n\t\tthis.skipWhitespace();\n\t\tif (this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules, this.pos);\n\t\tif (!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\tentries.push.apply(entries, this.handleRule(nextMatch));\n\t}\n\treturn entries;\n};\n\nWikiWalker.prototype.parseInlineRunUnterminated = function(options) {\n\tvar entries = [];\n\tvar nextMatch = this.findNextMatch(this.inlineRules, this.pos);\n\twhile (this.pos < this.sourceLength && nextMatch) {\n\t\tif (nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\tentries.push.apply(entries, this.handleRule(nextMatch));\n\t\tnextMatch = this.findNextMatch(this.inlineRules, this.pos);\n\t}\n\tthis.pos = this.sourceLength;\n\treturn entries;\n};\n\nWikiWalker.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\tvar entries = [];\n\toptions = options || {};\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\tif (terminatorMatch) {\n\t\t\tif (!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif (options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn entries;\n\t\t\t}\n\t\t}\n\t\tif (inlineRuleMatch) {\n\t\t\tif (inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\tentries.push.apply(entries, this.handleRule(inlineRuleMatch));\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules, this.pos);\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\tthis.pos = this.sourceLength;\n\treturn entries;\n\n};\n\nWikiWalker.prototype.parseBlock = function(terminatorRegExp) {\n\tvar terminatorRegExp = /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif (this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\tvar nextMatch = this.findNextMatch(this.blockRules, this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn this.handleRule(nextMatch);\n\t}\n\treturn this.parseInlineRun(terminatorRegExp);\n};\n\nWikiWalker.prototype.amendRules = function(type, names) {\n\tvar only;\n\tWikiParser.prototype.amendRules.call(this, type, names);\n\tif (type === \"only\") {\n\t\tonly = true;\n\t} else if (type === \"except\") {\n\t\tonly = false;\n\t} else {\n\t\treturn;\n\t}\n\tif (only !== (names.indexOf(\"macrodef\") >= 0) && this.options.macrodefCanBeDisabled) {\n\t\tthis.options.placeholder = undefined\n\t}\n\tif (only !== (names.indexOf(\"html\") >= 0)) {\n\t\tthis.context.allowWidgets = disabled;\n\t}\n\tif (only !== (names.indexOf(\"prettylink\") >= 0)) {\n\t\tthis.context.allowPrettylinks = disabled;\n\t}\n};\n\nfunction disabled() { return false; };\n\n/// Reporter\n\nfunction WikiReporter(type, text, callback, options) {\n\tthis.callback = callback;\n\tWikiWalker.call(this, type, text, options);\n};\n\nWikiReporter.prototype = Object.create(WikiWalker.prototype);\n\nWikiReporter.prototype.handleRule = function(ruleInfo) {\n\tif (ruleInfo.rule.report) {\n\t\truleInfo.rule.report(this.source, this.callback, this.options);\n\t} else {\n\t\tif (ruleInfo.rule.matchRegExp !== undefined) {\n\t\t\tthis.pos = ruleInfo.rule.matchRegExp.lastIndex;\n\t\t} else {\n\t\t\t// We can't easily determine the end of this\n\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t// the results.\n\t\t\truleInfo.rule.parse();\n\t\t}\n\t}\n};\n\nexports.report = function(wikitext, callback, options) {\n\t// Unfortunately it's the side-effect of creating this that reports.\n\tnew WikiReporter(options.type, wikitext, callback, options);\n};\n\n/// Relinker\n\nfunction WikiRelinker(type, text, fromTitle, toTitle, options) {\n\tthis.fromTitle = fromTitle;\n\tthis.toTitle = toTitle;\n\tthis.placeholder = options.placeholder;\n\tif (this.placeholder) {\n\t\tthis.placeholder.parser = this;\n\t}\n\tWikiWalker.call(this, type, text, options);\n};\n\nWikiRelinker.prototype = Object.create(WikiWalker.prototype);\n\nWikiRelinker.prototype.handleRule = function(ruleInfo) {\n\tif (ruleInfo.rule.relink) {\n\t\tvar start = ruleInfo.matchIndex;\n\t\tvar newEntry = ruleInfo.rule.relink(this.source, this.fromTitle, this.toTitle, this.options);\n\t\tif (newEntry !== undefined) {\n\t\t\tif (newEntry.output) {\n\t\t\t\tnewEntry.start = start;\n\t\t\t\tnewEntry.end = this.pos;\n\t\t\t}\n\t\t\treturn [newEntry];\n\t\t}\n\t} else {\n\t\tif (ruleInfo.rule.matchRegExp !== undefined) {\n\t\t\tthis.pos = ruleInfo.rule.matchRegExp.lastIndex;\n\t\t} else {\n\t\t\t// We can't easily determine the end of this\n\t\t\t// rule match. We'll \"parse\" it so that\n\t\t\t// parser.pos gets updated, but we throw away\n\t\t\t// the results.\n\t\t\truleInfo.rule.parse();\n\t\t}\n\t}\n\treturn [];\n};\n\nexports.relink = function(wikitext, fromTitle, toTitle, options) {\n\tvar parser = new WikiRelinker(options.type, wikitext, fromTitle, toTitle, options),\n\t\twikiEntry = undefined;\n\t// Now that we have an array of entries, let's produce the wikiText entry\n\t// containing them all.\n\tif (parser.tree.length > 0) {\n\t\tvar builder = new Rebuilder(wikitext);\n\t\twikiEntry = {};\n\t\tfor (var i = 0; i < parser.tree.length; i++) {\n\t\t\tvar entry = parser.tree[i];\n\t\t\tif (entry.impossible) {\n\t\t\t\twikiEntry.impossible = true;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\tbuilder.add(entry.output, entry.start, entry.end);\n\t\t\t}\n\t\t}\n\t\twikiEntry.output = builder.results();\n\t}\n\treturn wikiEntry;\n};\n",
"module-type": "relinkfieldtype",
"title": "$:/plugins/flibbles/relink/js/fieldtypes/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/fields.js": {
"text": "/*\\\n\nHandles all fields specified in the plugin configuration. Currently, this\nonly supports single-value fields.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = 'fields';\n\nexports.report = function(tiddler, callback, options) {\n\tvar fields = options.settings.getFields();\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tif (input) {\n\t\t\thandler.report(input, function(title, blurb) {\n\t\t\t\tif (blurb) {\n\t\t\t\t\tcallback(title, field + ': ' + blurb);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(title, field);\n\t\t\t\t}\n\t\t\t}, options);\n\t\t}\n\t});\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = options.settings.getFields();\n\t$tw.utils.each(fields, function(handler, field) {\n\t\tvar input = tiddler.fields[field];\n\t\tif (input) {\n\t\t\tvar entry = handler.relink(input, fromTitle, toTitle, options);\n\t\t\tif (entry !== undefined) {\n\t\t\t\tchanges[field] = entry;\n\t\t\t}\n\t\t}\n\t});\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/fields.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text.js": {
"text": "/*\\\n\nDepending on the tiddler type, this will apply textOperators which may\nrelink titles within the body.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar defaultOperator = \"text/vnd.tiddlywiki\";\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nexports.name = 'text';\n\nvar textOperators = utils.getModulesByTypeAsHashmap('relinktextoperator', 'type');\n\n// $:/DefaultTiddlers is a tiddler which has type \"text/vnd.tiddlywiki\",\n// but it lies. It doesn't contain wikitext. It contains a filter, so\n// we pretend it has a filter type.\n// If you want to be able to add more exceptions for your plugin, let me know.\nvar exceptions = {\n\t\"$:/DefaultTiddlers\": \"text/x-tiddler-filter\"\n};\n\nexports.report = function(tiddler, callback, options) {\n\tvar fields = tiddler.fields;\n\tif (fields.text) {\n\t\tvar type = exceptions[fields.title] || fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\tvar entry = textOperators[type].report(tiddler, callback, options);\n\t\t}\n\t}\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, changes, options) {\n\tvar fields = tiddler.fields;\n\tif (fields.text) {\n\t\tvar type = exceptions[fields.title] || fields.type || defaultOperator;\n\t\tif (textOperators[type]) {\n\t\t\tvar entry = textOperators[type].relink(tiddler, fromTitle, toTitle, options);\n\t\t\tif (entry) {\n\t\t\t\tchanges.text = entry;\n\t\t\t}\n\t\t}\n\t}\n};\n",
"module-type": "relinkoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js": {
"text": "/*\\\n\nThis relinks tiddlers which contain filters in their body, as oppose to\nwikitext.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\n\nexports.type = 'text/x-tiddler-filter';\n\nexports.report = function(tiddler, callback, options) {\n\treturn filterHandler.report(tiddler.fields.text, callback, options);\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, options) {\n\treturn filterHandler.relink(tiddler.fields.text, fromTitle, toTitle, options)\n};\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/filtertext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js": {
"text": "/*\\\n\nChecks for fromTitle in a tiddler's text. If found, sees if it's relevant,\nand tries to swap it out if it is.\n\n\\*/\n\n/*jslint node: false, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Placeholder = require(\"$:/plugins/flibbles/relink/js/utils/placeholder.js\");\nvar wikitextHandler = require('$:/plugins/flibbles/relink/js/utils.js').getType('wikitext');\n\nexports.type = 'text/vnd.tiddlywiki';\n\nexports.report = function(tiddler, callback, options) {\n\twikitextHandler.report(tiddler.fields.text, callback, options);\n};\n\nexports.relink = function(tiddler, fromTitle, toTitle, options) {\n\tvar placeholder = new Placeholder();\n\tvar currentOptions = Object.create(options);\n\tcurrentOptions.placeholder = placeholder;\n\tvar entry = wikitextHandler.relink(tiddler.fields.text, fromTitle, toTitle, currentOptions);\n\tif (entry && entry.output) {\n\t\t// If there's output, we've also got to prepend any macros\n\t\t// that the placeholder defined.\n\t\tvar preamble = placeholder.getPreamble();\n\t\tentry.output = preamble + entry.output;\n\t}\n\treturn entry;\n};\n",
"module-type": "relinktextoperator",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles code blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"`` [[Renamed Title]] ``\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"codeinline\", \"codeblock\"];\n\nexports.relink = function(text) {\n\tvar reEnd;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// I'm lazy. This relink method works for both codeblock and codeinline\n\tif (this.match[0].length > 2) {\n\t\t// Must be a codeblock\n\t\treEnd = /\\r?\\n```$/mg;\n\t} else {\n\t\t// Must be a codeinline\n\t\treEnd = new RegExp(this.match[1], \"mg\");\n\t}\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(text);\n\tif (match) {\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn undefined;\n};\n\n// Same thing. Just skip the pos ahead.\nexports.report = exports.relink;\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/code.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles comment blocks. Or rather //doesn't// handle them, since we should\nignore their contents.\n\n\"<!-- [[Renamed Title]] -->\" will remain unchanged.\n\n\\*/\n\nexports.name = [\"commentinline\", \"commentblock\"];\n\nexports.relink = function(text) {\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\treturn undefined;\n};\n\nexports.report = exports.relink;\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/comment.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of filtered transclusions in wiki text like,\n\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n\nThis renames both the list and the template field.\n\n\\*/\n\nexports.name = ['filteredtranscludeinline', 'filteredtranscludeblock'];\n\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\nvar utils = require(\"./utils.js\");\n\nexports.report = function(text, callback, options) {\n\tvar m = this.match,\n\t\tfilter = m[1],\n\t\ttemplate = $tw.utils.trim(m[3]),\n\t\tappend = template ? '||' + template + '}}}' : '}}}';\n\tfilterHandler.report(filter, function(title, blurb) {\n\t\tcallback(title, '{{{' + blurb + append);\n\t}, options);\n\tif (template) {\n\t\tcallback(template, '{{{' + $tw.utils.trim(filter).replace(/\\r?\\n/mg, ' ') + '||}}}');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\tfilter = m[1],\n\t\ttooltip = m[2],\n\t\ttemplate = m[3],\n\t\tstyle = m[4],\n\t\tclasses = m[5],\n\t\tparser = this.parser,\n\t\tentry = {};\n\tparser.pos = this.matchRegExp.lastIndex;\n\tvar modified = false;\n\n\tvar filterEntry = filterHandler.relink(filter, fromTitle, toTitle, options);\n\tif (filterEntry !== undefined) {\n\t\tif (filterEntry.output) {\n\t\t\tfilter = filterEntry.output;\n\t\t\tmodified = true;\n\t\t}\n\t\tif (filterEntry.impossible) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\t// preserves user-inputted whitespace\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tif (!modified) {\n\t\tif (!entry.impossible) {\n\t\t\treturn undefined;\n\t\t}\n\t} else {\n\t\tvar output = this.makeFilteredtransclude(this.parser, filter, tooltip, template, style, classes);\n\t\tif (output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t} else {\n\t\t\t// By copying over the ending newline of the original\n\t\t\t// text if present, thisrelink method thus works for\n\t\t\t// both the inline and block rule\n\t\t\tentry.output = output + utils.getEndingNewline(m[0]);\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeFilteredtransclude = function(parser, filter, tooltip, template, style, classes) {\n\tif (canBePretty(filter) && canBePrettyTemplate(template)) {\n\t\treturn prettyList(filter, tooltip, template, style, classes);\n\t}\n\tif (classes !== undefined) {\n\t\tclasses = classes.split('.').join(' ');\n\t}\n\treturn utils.makeWidget(parser, '$list', {\n\t\tfilter: filter,\n\t\ttooltip: tooltip,\n\t\ttemplate: template,\n\t\tstyle: style || undefined,\n\t\titemClass: classes});\n};\n\nfunction prettyList(filter, tooltip, template, style, classes) {\n\tif (tooltip === undefined) {\n\t\ttooltip = '';\n\t} else {\n\t\ttooltip = \"|\" + tooltip;\n\t}\n\tif (template === undefined) {\n\t\ttemplate = '';\n\t} else {\n\t\ttemplate = \"||\" + template;\n\t}\n\tif (classes === undefined) {\n\t\tclasses = '';\n\t} else {\n\t\tclasses = \".\" + classes;\n\t}\n\tstyle = style || '';\n\treturn \"{{{\"+filter+tooltip+template+\"}}\"+style+\"}\"+classes;\n};\n\nfunction canBePretty(filter) {\n\treturn filter.indexOf('|') < 0 && filter.indexOf('}}') < 0;\n};\n\nfunction canBePrettyTemplate(template) {\n\treturn !template || (\n\t\ttemplate.indexOf('|') < 0\n\t\t&& template.indexOf('{') < 0\n\t\t&& template.indexOf('}') < 0);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/filteredtransclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in attributes of widgets and html elements\nThis is configurable to select exactly which attributes of which elements\nshould be changed.\n\n<$link to=\"TiddlerTitle\" />\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar relinkUtils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar refHandler = relinkUtils.getType('reference');\nvar filterHandler = relinkUtils.getType('filter');\nvar ImportContext = relinkUtils.getContext('import');\nvar macrocall = require(\"./macrocall.js\");\n\nexports.name = \"html\";\n\nexports.report = function(text, callback, options) {\n\tvar managedElement = this.parser.context.getAttribute(this.nextTag.tag);\n\tvar importFilterAttr;\n\tvar element = this.nextTag.tag;\n\tfor (var attributeName in this.nextTag.attributes) {\n\t\tvar attr = this.nextTag.attributes[attributeName];\n\t\tvar nextEql = text.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\timportFilterAttr = attr;\n\t\t}\n\t\tvar oldLength, quotedValue = undefined, entry;\n\t\tif (attr.type === \"string\") {\n\t\t\tvar handler = getAttributeHandler(this.parser.context, this.nextTag, attributeName, options);\n\t\t\tif (!handler) {\n\t\t\t\t// We don't manage this attribute. Bye.\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\thandler.report(attr.value, function(title, blurb) {\n\t\t\t\tif (blurb) {\n\t\t\t\t\tcallback(title, '<' + element + ' ' + attributeName + '=\"' + blurb + '\" />');\n\t\t\t\t} else {\n\t\t\t\t\tcallback(title, '<' + element + ' ' + attributeName + ' />');\n\t\t\t\t}\n\t\t\t}, options);\n\t\t} else if (attr.type === \"indirect\") {\n\t\t\tentry = refHandler.report(attr.textReference, function(title, blurb) {\n\t\t\t\tcallback(title, '<' + element + ' ' + attributeName + '={{' + (blurb || '') + '}} />');\n\t\t\t}, options);\n\t\t} else if (attr.type === \"filtered\") {\n\t\t\tentry = filterHandler.report(attr.filter, function(title, blurb) {\n\t\t\t\tcallback(title, '<' + element + ' ' + attributeName + '={{{' + blurb + '}}} />');\n\t\t\t}, options);\n\t\t} else if (attr.type === \"macro\") {\n\t\t\tvar macro = attr.value;\n\t\t\tentry = macrocall.reportAttribute(this.parser, macro, function(title, blurb) {\n\t\t\t\tcallback(title, '<' + element + ' ' + attributeName + '=' + blurb + ' />');\n\t\t\t}, options);\n\t\t}\n\t\tif (quotedValue === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\t// If this is an import variable filter, we gotta\n\t\t\t// remember this new value when we import lower down.\n\t\t\timportFilterAttr = quotedValue;\n\t\t}\n\t}\n\tif (importFilterAttr) {\n\t\tprocessImportFilter(this.parser, importFilterAttr, options);\n\t}\n\tthis.parse();\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar managedElement = this.parser.context.getAttribute(this.nextTag.tag),\n\t\tbuilder = new Rebuilder(text, this.nextTag.start);\n\tvar importFilterAttr;\n\tvar widgetEntry = {};\n\twidgetEntry.attributes = Object.create(null);\n\twidgetEntry.element = this.nextTag.tag;\n\tfor (var attributeName in this.nextTag.attributes) {\n\t\tvar attr = this.nextTag.attributes[attributeName];\n\t\tvar nextEql = text.indexOf('=', attr.start);\n\t\t// This is the rare case of changing tiddler\n\t\t// \"true\" to something else when \"true\" is\n\t\t// implicit, like <$link to /> We ignore those.\n\t\tif (nextEql < 0 || nextEql > attr.end) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\timportFilterAttr = attr;\n\t\t}\n\t\tvar oldLength, quotedValue = undefined, entry;\n\t\tvar nestedOptions = Object.create(options);\n\t\tnestedOptions.settings = this.parser.context;\n\t\tswitch (attr.type) {\n\t\tcase 'string':\n\t\t\tvar handler = getAttributeHandler(this.parser.context, this.nextTag, attributeName, options);\n\t\t\tif (!handler) {\n\t\t\t\t// We don't manage this attribute. Bye.\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tentry = handler.relink(attr.value, fromTitle, toTitle, nestedOptions);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\tvar quote = utils.determineQuote(text, attr);\n\t\t\t\toldLength = attr.value.length + (quote.length * 2);\n\t\t\t\tquotedValue = utils.wrapAttributeValue(entry.output,quote);\n\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t// The value was unquotable. We need to make\n\t\t\t\t\t// a macro in order to replace it.\n\t\t\t\t\tif (!options.placeholder) {\n\t\t\t\t\t\t// but we can't...\n\t\t\t\t\t\tentry.impossible = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar value = options.placeholder.getPlaceholderFor(entry.output,handler.name)\n\t\t\t\t\t\tquotedValue = \"<<\"+value+\">>\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'indirect':\n\t\t\tentry = refHandler.relinkInBraces(attr.textReference, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\t// +4 for '{{' and '}}'\n\t\t\t\toldLength = attr.textReference.length + 4;\n\t\t\t\tquotedValue = \"{{\"+entry.output+\"}}\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'filtered':\n\t\t\tentry = filterHandler.relinkInBraces(attr.filter, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\t// +6 for '{{{' and '}}}'\n\t\t\t\toldLength = attr.filter.length + 6;\n\t\t\t\tquotedValue = \"{{{\"+ entry.output +\"}}}\";\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'macro':\n\t\t\tvar macro = attr.value;\n\t\t\tentry = macrocall.relinkAttribute(this.parser, macro, text, fromTitle, toTitle, options);\n\t\t\tif (entry === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (entry.output) {\n\t\t\t\t// already includes '<<' and '>>'\n\t\t\t\toldLength = macro.end-macro.start;\n\t\t\t\tquotedValue = entry.output;\n\t\t\t}\n\t\t}\n\t\tif (entry.impossible) {\n\t\t\twidgetEntry.impossible = true;\n\t\t}\n\t\tif (quotedValue === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (this.nextTag.tag === \"$importvariables\" && attributeName === \"filter\") {\n\t\t\t// If this is an import variable filter, we gotta\n\t\t\t// remember this new value when we import lower down.\n\t\t\timportFilterAttr = quotedValue;\n\t\t}\n\t\t// We count backwards from the end to preserve whitespace\n\t\tvar valueStart = attr.end - oldLength;\n\t\tbuilder.add(quotedValue, valueStart, attr.end);\n\t}\n\tif (importFilterAttr) {\n\t\tprocessImportFilter(this.parser, importFilterAttr, options);\n\t}\n\tvar tag = this.parse()[0];\n\tif (tag.children) {\n\t\tfor (var i = 0; i < tag.children.length; i++) {\n\t\t\tvar child = tag.children[i];\n\t\t\tif (child.output) {\n\t\t\t\tbuilder.add(child.output, child.start, child.end);\n\t\t\t}\n\t\t\tif (child.impossible) {\n\t\t\t\twidgetEntry.impossible = true;\n\t\t\t}\n\t\t}\n\t}\n\tif (builder.changed() || widgetEntry.impossible) {\n\t\twidgetEntry.output = builder.results(this.parser.pos);\n\t\treturn widgetEntry;\n\t}\n\treturn undefined;\n};\n\n/** Returns the field handler for the given attribute of the given widget.\n * If this returns undefined, it means we don't handle it. So skip.\n */\nfunction getAttributeHandler(context, widget, attributeName, options) {\n\tif (widget.tag === \"$macrocall\") {\n\t\tvar nameAttr = widget.attributes[\"$name\"];\n\t\tif (nameAttr) {\n\t\t\tvar macro = context.getMacro(nameAttr.value);\n\t\t\tif (macro) {\n\t\t\t\treturn macro[attributeName];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tvar element = context.getAttribute(widget.tag);\n\t\tif (element) {\n\t\t\treturn element[attributeName];\n\t\t}\n\t}\n\treturn undefined;\n};\n\nfunction computeAttribute(context, attribute, options) {\n\tvar value;\n\tif(attribute.type === \"filtered\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = options.wiki.filterTiddlers(attribute.filter,parentWidget)[0] || \"\";\n\t} else if(attribute.type === \"indirect\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = options.wiki.getTextReference(attribute.textReference,\"\",parentWidget.variables.currentTiddler.value);\n\t} else if(attribute.type === \"macro\") {\n\t\tvar parentWidget = context.widget;\n\t\tvalue = parentWidget.getVariable(attribute.value.name,{params: attribute.value.params});\n\t} else { // String attribute\n\t\tvalue = attribute.value;\n\t}\n\treturn value;\n};\n\n// This processes a <$importvariables> filter attribute and adds any new\n// variables to our parser.\nfunction processImportFilter(parser, importAttribute, options) {\n\tif (typeof importAttribute === \"string\") {\n\t\t// It was changed. Reparse it. It'll be a quoted\n\t\t// attribute value. Add a dummy attribute name.\n\t\timportAttribute = $tw.utils.parseAttribute(\"p=\"+importAttribute, 0)\n\t}\n\tvar context = parser.context;\n\tvar importFilter = computeAttribute(context, importAttribute, options);\n\tparser.context = new ImportContext(options.wiki, context, importFilter);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/html.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[img[tiddler.jpg]]\n\n[img width=23 height=24 [Description|tiddler.jpg]]\n\n\\*/\n\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar filterHandler = require(\"$:/plugins/flibbles/relink/js/utils\").getType('filter');\nvar macrocall = require(\"./macrocall.js\");\nvar utils = require(\"./utils.js\");\n\nexports.name = \"image\";\n\nexports.report = function(text, callback, options) {\n\tvar ptr = this.nextImage.start + 4; //[img\n\tvar inSource = false;\n\tfor (var attributeName in this.nextImage.attributes) {\n\t\tvar attr = this.nextImage.attributes[attributeName];\n\t\tif (attributeName === \"source\" || attributeName === \"tooltip\") {\n\t\t\tif (inSource) {\n\t\t\t\tptr = text.indexOf('|', ptr);\n\t\t\t} else {\n\t\t\t\tptr = text.indexOf('[', ptr);\n\t\t\t\tinSource = true;\n\t\t\t}\n\t\t\tptr += 1;\n\t\t}\n\t\tif (attributeName === \"source\") {\n\t\t\tvar tooltip = this.nextImage.attributes.tooltip;\n\t\t\tvar blurb = '[img[' + (tooltip ? tooltip.value : '') + ']]';\n\t\t\tcallback(attr.value, blurb);\n\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\tptr = text.indexOf(']]', ptr) + 2;\n\t\t} else if (attributeName !== \"tooltip\") {\n\t\t\tptr = reportAttribute(this.parser, attr, callback, options);\n\t\t}\n\t}\n\tthis.parser.pos = ptr;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar ptr = this.nextImage.start,\n\t\tbuilder = new Rebuilder(text, ptr),\n\t\tmakeWidget = false,\n\t\tskipSource = false,\n\t\timageEntry;\n\tif (this.nextImage.attributes.source.value === fromTitle && !canBePretty(toTitle, this.nextImage.attributes.tooltip)) {\n\t\tif (this.parser.context.allowWidgets() && (utils.wrapAttributeValue(toTitle) || options.placeholder)) {\n\t\t\tmakeWidget = true;\n\t\t\tbuilder.add(\"<$image\", ptr, ptr+4);\n\t\t} else {\n\t\t\t// We won't be able to make a placeholder to replace\n\t\t\t// the source attribute. We check now so we don't\n\t\t\t// prematurely convert into a widget.\n\t\t\t// Keep going in case other attributes need replacing.\n\t\t\tskipSource = true;\n\t\t}\n\t}\n\tptr += 4; //[img\n\tvar inSource = false;\n\tfor (var attributeName in this.nextImage.attributes) {\n\t\tvar attr = this.nextImage.attributes[attributeName];\n\t\tif (attributeName === \"source\" || attributeName === \"tooltip\") {\n\t\t\tif (inSource) {\n\t\t\t\tptr = text.indexOf('|', ptr);\n\t\t\t} else {\n\t\t\t\tptr = text.indexOf('[', ptr);\n\t\t\t\tinSource = true;\n\t\t\t}\n\t\t\tif (makeWidget) {\n\t\t\t\tif (\" \\t\\n\".indexOf(text[ptr-1]) >= 0) {\n\t\t\t\t\tbuilder.add('', ptr, ptr+1);\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.add(' ', ptr, ptr+1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tptr += 1;\n\t\t}\n\t\tif (attributeName === \"source\") {\n\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\tif (attr.value === fromTitle) {\n\t\t\t\tif (makeWidget) {\n\t\t\t\t\tvar quotedValue = utils.wrapAttributeValue(toTitle);\n\t\t\t\t\tif (quotedValue === undefined) {\n\t\t\t\t\t\tvar key = options.placeholder.getPlaceholderFor(toTitle);\n\t\t\t\t\t\tbuilder.add(\"source=<<\"+key+\">>\", ptr, ptr+fromTitle.length);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbuilder.add(\"source=\"+quotedValue, ptr, ptr+fromTitle.length);\n\t\t\t\t\t}\n\t\t\t\t} else if (!skipSource) {\n\t\t\t\t\tbuilder.add(toTitle, ptr, ptr+fromTitle.length);\n\t\t\t\t} else {\n\t\t\t\t\tbuilder.impossible = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tptr = text.indexOf(']]', ptr);\n\t\t\tif (makeWidget) {\n\t\t\t\tbuilder.add(\"/>\", ptr, ptr+2);\n\t\t\t}\n\t\t\tptr += 2;\n\t\t} else if (attributeName === \"tooltip\") {\n\t\t\tif (makeWidget) {\n\t\t\t\tptr = text.indexOf(attr.value, ptr);\n\t\t\t\tvar quotedValue = utils.wrapAttributeValue(attr.value);\n\t\t\t\tbuilder.add(\"tooltip=\"+quotedValue, ptr, ptr+attr.value.length);\n\t\t\t}\n\t\t} else {\n\t\t\tptr = relinkAttribute(this.parser, attr, builder, fromTitle, toTitle, options);\n\t\t}\n\t}\n\tthis.parser.pos = ptr;\n\tif (builder.changed() || builder.impossible) {\n\t\timageEntry = {\n\t\t\toutput: builder.results(ptr),\n\t\t\timpossible: builder.impossible };\n\t}\n\treturn imageEntry;\n};\n\nfunction reportAttribute(parser, attribute, callback, options) {\n\tvar text = parser.source;\n\tvar ptr = text.indexOf(attribute.name, attribute.start);\n\tvar end;\n\tptr += attribute.name.length;\n\tptr = text.indexOf('=', ptr);\n\tif (attribute.type === \"string\") {\n\t\tptr = text.indexOf(attribute.value, ptr)\n\t\tvar quote = utils.determineQuote(text, attribute);\n\t\t// ignore first quote. We already passed it\n\t\tend = ptr + quote.length + attribute.value.length;\n\t} else if (attribute.type === \"indirect\") {\n\t\tptr = text.indexOf('{{', ptr);\n\t\tvar end = ptr + attribute.textReference.length + 4;\n\t\trefHandler.report(attribute.textReference, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '={{' + (blurb || '') + '}}]');\n\t\t}, options);\n\t} else if (attribute.type === \"filtered\") {\n\t\tptr = text.indexOf('{{{', ptr);\n\t\tvar end = ptr + attribute.filter.length + 6;\n\t\tfilterHandler.report(attribute.filter, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '={{{' + blurb + '}}}]');\n\t\t}, options);\n\t} else if (attribute.type === \"macro\") {\n\t\tptr = text.indexOf(\"<<\", ptr);\n\t\tvar end = attribute.value.end;\n\t\tvar macro = attribute.value;\n\t\toldValue = attribute.value;\n\t\tmacrocall.reportAttribute(parser, macro, function(title, blurb) {\n\t\t\tcallback(title, '[img ' + attribute.name + '=' + blurb + ']');\n\t\t}, options);\n\t}\n\treturn end;\n};\n\nfunction relinkAttribute(parser, attribute, builder, fromTitle, toTitle, options) {\n\tvar text = builder.text;\n\tvar ptr = text.indexOf(attribute.name, attribute.start);\n\tvar end;\n\tptr += attribute.name.length;\n\tptr = text.indexOf('=', ptr);\n\tif (attribute.type === \"string\") {\n\t\tptr = text.indexOf(attribute.value, ptr)\n\t\tvar quote = utils.determineQuote(text, attribute);\n\t\t// ignore first quote. We already passed it\n\t\tend = ptr + quote.length + attribute.value.length;\n\t} else if (attribute.type === \"indirect\") {\n\t\tptr = text.indexOf('{{', ptr);\n\t\tvar end = ptr + attribute.textReference.length + 4;\n\t\tvar ref = refHandler.relinkInBraces(attribute.textReference, fromTitle, toTitle, options);\n\t\tif (ref) {\n\t\t\tif (ref.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (ref.output) {\n\t\t\t\tbuilder.add(\"{{\"+ref.output+\"}}\", ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"filtered\") {\n\t\tptr = text.indexOf('{{{', ptr);\n\t\tvar end = ptr + attribute.filter.length + 6;\n\t\tvar filter = filterHandler.relinkInBraces(attribute.filter, fromTitle, toTitle, options);\n\t\tif (filter !== undefined) {\n\t\t\tif (filter.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (filter.output) {\n\t\t\t\tvar quoted = \"{{{\"+filter.output+\"}}}\";\n\t\t\t\tbuilder.add(quoted, ptr, end);\n\t\t\t}\n\t\t}\n\t} else if (attribute.type === \"macro\") {\n\t\tptr = text.indexOf(\"<<\", ptr);\n\t\tvar end = attribute.value.end;\n\t\tvar macro = attribute.value;\n\t\toldValue = attribute.value;\n\t\tvar macroEntry = macrocall.relinkAttribute(parser, macro, text, fromTitle, toTitle, options);\n\t\tif (macroEntry !== undefined) {\n\t\t\tif (macroEntry.impossible) {\n\t\t\t\tbuilder.impossible = true;\n\t\t\t}\n\t\t\tif (macroEntry.output) {\n\t\t\t\tbuilder.add(macroEntry.output, ptr, end);\n\t\t\t}\n\t\t}\n\t}\n\treturn end;\n};\n\nfunction canBePretty(title, tooltip) {\n\treturn title.indexOf(']') < 0 && (tooltip || title.indexOf('|') < 0);\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/image.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles import pragmas\n\n\\import [tag[MyTiddler]]\n\\*/\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\nvar filterRelinker = utils.getType('filter');\nvar ImportContext = utils.getContext('import');\n\nexports.name = \"import\";\n\nexports.report = function(text, callback, options) {\n\t// This moves the pos for us\n\tvar parseTree = this.parse();\n\tvar filter = parseTree[0].attributes.filter.value || '';\n\tfilterRelinker.report(filter, function(title, blurb) {\n\t\tif (blurb) {\n\t\t\tblurb = '\\\\import ' + blurb;\n\t\t} else {\n\t\t\tblurb = '\\\\import';\n\t\t}\n\t\tcallback(title, blurb);\n\t}, options);\n\t// Before we go, we need to actually import the variables\n\t// it's calling for, and any /relink pragma\n\tthis.parser.context = new ImportContext(options.wiki, this.parser.context, filter);\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\t// In this one case, I'll let the parser parse out the filter and move\n\t// the ptr.\n\tvar start = this.matchRegExp.lastIndex,\n\t\tparseTree = this.parse(),\n\t\tfilter = parseTree[0].attributes.filter.value || '',\n\t\tentry = filterRelinker.relink(filter, fromTitle, toTitle, options);\n\tif (entry !== undefined && entry.output) {\n\t\tvar newline = text.substring(start+filter.length, this.parser.pos);\n\t\tfilter = entry.output;\n\t\tentry.output = \"\\\\import \" + filter + newline;\n\t}\n\n\t// Before we go, we need to actually import the variables\n\t// it's calling for, and any /relink pragma\n\tthis.parser.context = new ImportContext(options.wiki, this.parser.context, filter);\n\n\treturn entry;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/import.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles macro calls.\n\n<<myMacro '[[MyFilter]]' 'myTitle'>>\n\n\\*/\n\nvar utils = require(\"./utils.js\");\nvar Rebuilder = require(\"$:/plugins/flibbles/relink/js/utils/rebuilder\");\nvar EntryNode = require('$:/plugins/flibbles/relink/js/utils/entry');\n\nexports.name = [\"macrocallinline\", \"macrocallblock\"];\n\n// Error thrown when a macro's definition is needed, but can't be found.\nfunction CannotFindMacroDef() {};\nCannotFindMacroDef.prototype.impossible = true;\nCannotFindMacroDef.prototype.name = \"macroparam\";\n// Failed relinks due to missing definitions aren't reported for now.\n// I may want to do something special later on.\nCannotFindMacroDef.prototype.report = function() { return []; };\n\nexports.report = function(text, callback, options) {\n\tvar macroInfo = getInfoFromRule(this);\n\tthis.parser.pos = macroInfo.end;\n\tthis.reportAttribute(this.parser, macroInfo, callback, options);\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar macroInfo = getInfoFromRule(this);\n\tvar managedMacro = this.parser.context.getMacro(macroInfo.name);\n\tthis.parser.pos = macroInfo.end;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar mayBeWidget = this.parser.context.allowWidgets();\n\tvar names = getParamNames(this.parser, macroInfo.name, macroInfo.params, options);\n\tif (names === undefined) {\n\t\t// Needed the definition, and couldn't find it. So if a single\n\t\t// parameter needs to placeholder, just fail.\n\t\tmayBeWidget = false;\n\t}\n\tvar entry = relinkMacroInvocation(this.parser, macroInfo, text, fromTitle, toTitle, mayBeWidget, options);\n\tif (entry && entry.output) {\n\t\tentry.output = macroToString(entry.output, text, names, options);\n\t}\n\treturn entry;\n};\n\n/** Relinks macros that occur as attributes, like <$element attr=<<...>> />\n * Processes the same, except it can't downgrade into a widget if the title\n * is complicated.\n */\nexports.relinkAttribute = function(parser, macro, text, fromTitle, toTitle, options) {\n\tvar entry = relinkMacroInvocation(parser, macro, text, fromTitle, toTitle, false, options);\n\tif (entry && entry.output) {\n\t\tentry.output = macroToStringMacro(entry.output, text, options);\n\t}\n\treturn entry;\n};\n\n/** As in, report a macrocall invocation that is an html attribute. */\nexports.reportAttribute = function(parser, macro, callback, options) {\n\tvar managedMacro = parser.context.getMacro(macro.name);\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tfor (var managedArg in managedMacro) {\n\t\tvar index;\n\t\ttry {\n\t\t\tindex = getParamIndexWithinMacrocall(parser, macro.name, managedArg, macro.params, options);\n\t\t} catch (e) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (index < 0) {\n\t\t\t// The argument was not supplied. Move on to next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar nestedOptions = Object.create(options);\n\t\tnestedOptions.settings = parser.context;\n\t\tvar entry = handler.report(param.value, function(title, blurb) {\n\t\t\tvar rtn = managedArg;\n\t\t\tif (blurb) {\n\t\t\t\trtn += ': \"' + blurb + '\"';\n\t\t\t}\n\t\t\tcallback(title, '<<' + macro.name + ' ' + rtn + '>>');\n\t\t}, nestedOptions);\n\t}\n};\n\n/**Processes the given macro,\n * macro: {name:, params:, start:, end:}\n * each parameters: {name:, end:, value:}\n * Macro invocation returned is the same, but relinked, and may have new keys:\n * parameters: {type: macro, start:, newValue: (quoted replacement value)}\n * Output of the returned entry isn't a string, but a macro object. It needs\n * to be converted.\n */\nfunction relinkMacroInvocation(parser, macro, text, fromTitle, toTitle, mayBeWidget, options) {\n\tvar managedMacro = parser.context.getMacro(macro.name);\n\tvar modified = false;\n\tif (!managedMacro) {\n\t\t// We don't manage this macro. Bye.\n\t\treturn undefined;\n\t}\n\tvar outMacro = $tw.utils.extend({}, macro);\n\tvar macroEntry = {};\n\toutMacro.params = macro.params.slice();\n\tfor (var managedArg in managedMacro) {\n\t\tvar index;\n\t\ttry {\n\t\t\tindex = getParamIndexWithinMacrocall(parser, macro.name, managedArg, macro.params, options);\n\t\t} catch (e) {\n\t\t\tif (e instanceof CannotFindMacroDef) {\n\t\t\t\tmacroEntry.impossible = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (index < 0) {\n\t\t\t// this arg either was not supplied, or we can't find\n\t\t\t// the definition, so we can't tie it to an anonymous\n\t\t\t// argument. Either way, move on to the next.\n\t\t\tcontinue;\n\t\t}\n\t\tvar param = macro.params[index];\n\t\tvar handler = managedMacro[managedArg];\n\t\tvar nestedOptions = Object.create(options);\n\t\tnestedOptions.settings = parser.context;\n\t\tvar entry = handler.relink(param.value, fromTitle, toTitle, nestedOptions);\n\t\tif (entry === undefined) {\n\t\t\tcontinue;\n\t\t}\n\t\t// Macro parameters can only be string parameters, not\n\t\t// indirect, or macro, or filtered\n\t\tif (entry.impossible) {\n\t\t\tmacroEntry.impossible = true;\n\t\t}\n\t\tif (!entry.output) {\n\t\t\tcontinue;\n\t\t}\n\t\tvar quote = utils.determineQuote(text, param);\n\t\tvar quoted = utils.wrapParameterValue(entry.output, quote);\n\t\tvar newParam = $tw.utils.extend({}, param);\n\t\tif (quoted === undefined) {\n\t\t\tif (!mayBeWidget || !options.placeholder) {\n\t\t\t\tmacroEntry.impossible = true;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar ph = options.placeholder.getPlaceholderFor(entry.output,handler.name);\n\t\t\tnewParam.newValue = \"<<\"+ph+\">>\";\n\t\t\tnewParam.type = \"macro\";\n\t\t} else {\n\t\t\tnewParam.start = newParam.end - (newParam.value.length + (quote.length*2));\n\t\t\tnewParam.value = entry.output;\n\t\t\tnewParam.newValue = quoted;\n\t\t}\n\t\toutMacro.params[index] = newParam;\n\t\tmodified = true;\n\t}\n\tif (modified || macroEntry.impossible) {\n\t\tif (modified) {\n\t\t\tmacroEntry.output = outMacro;\n\t\t}\n\t\treturn macroEntry;\n\t}\n\treturn undefined;\n};\n\nfunction getInfoFromRule(rule) {\n\t// Get all the details of the match\n\tvar macroInfo = rule.nextCall;\n\tif (!macroInfo) {\n\t\t// rule.match is used <v5.1.24\n\t\tvar match = rule.match,\n\t\t\toffset = $tw.utils.skipWhiteSpace(match[0], match[1].length+2);\n\t\tmacroInfo = {\n\t\t\tname: match[1],\n\t\t\tstart: rule.matchRegExp.lastIndex - match[0].length,\n\t\t\tend: rule.matchRegExp.lastIndex,\n\t\t};\n\t\tmacroInfo.params = parseParams(match[2], offset+macroInfo.start);\n\t}\n\treturn macroInfo;\n};\n\nfunction mustBeAWidget(macro) {\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tif (macro.params[i].type === \"macro\") {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false\n};\n\n/**Given a macro object ({name:, params:, start: end:}), and the text where\n * it was parsed from, returns a new macro that maintains any syntactic\n * structuring.\n */\nfunction macroToString(macro, text, names, options) {\n\tif (mustBeAWidget(macro)) {\n\t\tvar attrs = [];\n\t\tfor (var i = 0; i < macro.params.length; i++) {\n\t\t\tvar p = macro.params[i];\n\t\t\tvar val;\n\t\t\tif (p.newValue) {\n\t\t\t\tval = p.newValue;\n\t\t\t} else {\n\t\t\t\tval = utils.wrapAttributeValue(p.value);\n\t\t\t}\n\t\t\tattrs.push(\" \"+names[i]+\"=\"+val);\n\t\t}\n\t\treturn \"<$macrocall $name=\"+utils.wrapAttributeValue(macro.name)+attrs.join('')+\"/>\";\n\t} else {\n\t\treturn macroToStringMacro(macro, text, options);\n\t}\n};\n\nfunction macroToStringMacro(macro, text, options) {\n\tvar builder = new Rebuilder(text, macro.start);\n\tfor (var i = 0; i < macro.params.length; i++) {\n\t\tvar param = macro.params[i];\n\t\tif (param.newValue) {\n\t\t\tbuilder.add(param.newValue, param.start, param.end);\n\t\t}\n\t}\n\treturn builder.results(macro.end);\n};\n\n/** Returns -1 if param definitely isn't in macrocall.\n */\nfunction getParamIndexWithinMacrocall(parser, macroName, param, params, options) {\n\tvar index, i, anonsExist = false;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name === param) {\n\t\t\treturn i;\n\t\t}\n\t\tif (name === undefined) {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (!anonsExist) {\n\t\t// If no anonymous parameters are present, and we didn't find\n\t\t// it among the named ones, it must not be there.\n\t\treturn -1;\n\t}\n\tvar expectedIndex = indexOfParameterDef(parser, macroName, param, options);\n\t// We've got to skip over all the named parameter instances.\n\tif (expectedIndex >= 0) {\n\t\tvar anonI = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (params[i].name === undefined) {\n\t\t\t\tif (anonI === expectedIndex) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t\tanonI++;\n\t\t\t} else {\n\t\t\t\tvar indexOfOther = indexOfParameterDef(parser, macroName, params[i].name, options);\n\t\t\t\tif (indexOfOther < expectedIndex) {\n\t\t\t\t\tanonI++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn -1;\n};\n\n// Looks up the definition of a macro, and figures out what the expected index\n// is for the given parameter.\nfunction indexOfParameterDef(parser, macroName, paramName, options) {\n\tvar def = parser.context.getMacroDefinition(macroName);\n\tif (def === undefined) {\n\t\tthrow new CannotFindMacroDef();\n\t}\n\tvar params = def.params || [];\n\tfor (var i = 0; i < params.length; i++) {\n\t\tif (params[i].name === paramName) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\nfunction getParamNames(parser, macroName, params, options) {\n\tvar used = Object.create(null);\n\tvar rtn = new Array(params.length);\n\tvar anonsExist = false;\n\tvar i;\n\tfor (i = 0; i < params.length; i++) {\n\t\tvar name = params[i].name;\n\t\tif (name) {\n\t\t\trtn[i] = name;\n\t\t\tused[name] = true;\n\t\t} else {\n\t\t\tanonsExist = true;\n\t\t}\n\t}\n\tif (anonsExist) {\n\t\tvar def = parser.context.getMacroDefinition(macroName);\n\t\tif (def === undefined) {\n\t\t\t// If there are anonymous parameters, and we can't\n\t\t\t// find the definition, then we can't hope to create\n\t\t\t// a widget.\n\t\t\treturn undefined;\n\t\t}\n\t\tvar defParams = def.params || [];\n\t\tvar defPtr = 0;\n\t\tfor (i = 0; i < params.length; i++) {\n\t\t\tif (rtn[i] === undefined) {\n\t\t\t\twhile(defPtr < defParams.length && used[defParams[defPtr].name]) {\n\t\t\t\t\tdefPtr++;\n\t\t\t\t}\n\t\t\t\tif (defPtr >= defParams.length) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\trtn[i] = defParams[defPtr].name;\n\t\t\t\tused[defParams[defPtr].name] = true;\n\t\t\t}\n\t\t}\n\t}\n\treturn rtn;\n};\n\nfunction parseParams(paramString, pos) {\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = { };\n\t\t// We need to find the group match that isn't undefined.\n\t\tfor (var i = 2; i <= 6; i++) {\n\t\t\tif (paramMatch[i] !== undefined) {\n\t\t\t\tparamInfo.value = paramMatch[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\t//paramInfo.start = pos;\n\t\tparamInfo.end = reParam.lastIndex + pos;\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn params;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrocall.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles pragma macro definitions. Except we only update placeholder macros\nthat we may have previously install.\n\n\\define relink-?() Tough title\n\n\\*/\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils\");\nvar VariableContext = utils.getContext('variable');\n\nexports.name = \"macrodef\";\n\nexports.report = function(text, callback, options) {\n\tvar setParseTreeNode = this.parse(),\n\t\tm = this.match,\n\t\tname = m[1];\n\tthis.parser.context = new VariableContext(this.parser.context, setParseTreeNode[0]);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar endMatch = getBodyMatch(text, this.parser.pos, m[3]);\n\tif (endMatch) {\n\t\tvar value = endMatch[2],\n\t\t\thandler = utils.getType(getActiveType(name, m[2]) || 'wikitext');\n\t\tif (handler) {\n\t\t\tvar entry = handler.report(value, function(title, blurb) {\n\t\t\t\tvar macroStr = '\\\\define ' + name + '()';\n\t\t\t\tif (blurb) {\n\t\t\t\t\tmacroStr += ' ' + blurb;\n\t\t\t\t}\n\t\t\t\tcallback(title, macroStr);\n\t\t\t}, options);\n\t\t}\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar setParseTreeNode = this.parse(),\n\t\tentry,\n\t\tm = this.match,\n\t\tname = m[1],\n\t\tparams = m[2],\n\t\tmultiline = m[3];\n\tthis.parser.context = new VariableContext(this.parser.context, setParseTreeNode[0]);\n\t// Parse set the pos pointer, but we don't want to skip the macro body.\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar endMatch = getBodyMatch(text, this.parser.pos, multiline);\n\tif (endMatch) {\n\t\tvar value = endMatch[2],\n\t\t\ttype = getActiveType(name, params),\n\t\t\thandler = utils.getType(type || 'wikitext');\n\t\tif (handler) {\n\t\t\t// If this is an active relink placeholder, then let's remember it\n\t\t\tif (type && options.placeholder) {\n\t\t\t\toptions.placeholder.registerExisting(name, value);\n\t\t\t}\n\t\t\t// Relink the contents\n\t\t\tentry = handler.relink(value, fromTitle, toTitle, options);\n\t\t\tif (entry && entry.output) {\n\t\t\t\tentry.output = m[0] + endMatch[1] + entry.output + endMatch[0];\n\t\t\t}\n\t\t}\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t}\n\treturn entry;\n};\n\n// Return another match for the body, but tooled uniquely\n// m[1] = whitespace before body\n// m[2] = body\n// m.index + m[0].length -> end of match\nfunction getBodyMatch(text, pos, isMultiline) {\n\tvar whitespace,\n\t\tvalueRegExp;\n\tif (isMultiline) {\n\t\tvalueRegExp = /\\r?\\n\\\\end[^\\S\\n\\r]*(?:\\r?\\n|$)/mg;\n\t\twhitespace = '';\n\t} else {\n\t\tvalueRegExp = /(?:\\r?\\n|$)/mg;\n\t\tvar newPos = $tw.utils.skipWhiteSpace(text, pos);\n\t\twhitespace = text.substring(pos, newPos);\n\t\tpos = newPos;\n\t}\n\tvalueRegExp.lastIndex = pos;\n\tvar match = valueRegExp.exec(text);\n\tif (match) {\n\t\tmatch[1] = whitespace;\n\t\tmatch[2] = text.substring(pos, match.index);\n\t}\n\treturn match;\n};\n\nfunction getActiveType(macroName, parameters) {\n\tvar placeholder = /^relink-(?:(\\w+)-)?\\d+$/.exec(macroName);\n\t// normal macro or special placeholder?\n\tif (placeholder && parameters === '') {\n\t\treturn placeholder[1] || 'title';\n\t}\n\treturn undefined;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/macrodef.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement in wiki text inline rules, like,\n\n[[Introduction]]\n\n[[link description|TiddlerTitle]]\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"prettylink\";\n\nexports.report = function(text, callback, options) {\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif (!$tw.utils.isLinkExternal(link)) {\n\t\tcallback(link, '[[' + text + ']]');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar caption, m = this.match;\n\tif (m[2] === fromTitle) {\n\t\t// format is [[caption|MyTiddler]]\n\t\tcaption = m[1];\n\t} else if (m[2] !== undefined || m[1] !== fromTitle) {\n\t\t// format is [[MyTiddler]], and it doesn't match\n\t\treturn undefined;\n\t}\n\tvar entry = { output: utils.makePrettylink(this.parser, toTitle, caption) };\n\tif (entry.output === undefined) {\n\t\tentry.impossible = true;\n\t}\n\treturn entry;\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/prettylink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js": {
"text": "/*\\\nmodule-type: wikirule\n\nThis defines the \\relink inline pragma used to locally declare\nrelink rules for macros.\n\nIt takes care of providing its own relink and report rules.\n\n\\*/\n\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\nvar language = require('$:/plugins/flibbles/relink/js/language.js');\n\nexports.name = \"relink\";\nexports.types = {pragma: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /^\\\\relink[^\\S\\n]+([^(\\s]+)([^\\r\\n]*)(\\r?\\n)?/mg;\n};\n\n/**This makes the widget that the macro library will later parse to determine\n * new macro relink state.\n *\n * It's a <$set> widget so it can appear BEFORE \\define pragma and not\n * prevent that pragma from being scooped up by importvariables.\n * (importvariables stops scooping as soon as it sees something besides $set) */\nexports.parse = function() {\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar macroName;\n\tvar macroParams = Object.create(null);\n\tvar error = undefined;\n\tvar rtn = [];\n\tvar self = this;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\tmacroName = macro;\n\t\tif (type && !utils.getType(type)) {\n\t\t\terror = language.getString(\"Error/UnrecognizedType\",\n\t\t\t\t{variables: {type: type}, wiki: self.parser.wiki});\n\t\t}\n\t\tmacroParams[parameter] = type;\n\t});\n\t// If no macroname. Return nothing, this rule will be ignored by parsers\n\tif (macroName) {\n\t\tvar relink = Object.create(null);\n\t\trelink[macroName] = macroParams;\n\t\trtn.push({\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: \"\"}\n\t\t\t},\n\t\t\tchildren: [],\n\t\t\tisMacroDefinition: true,\n\t\t\trelink: relink});\n\t}\n\tif (error) {\n\t\trtn.push({\n\t\t\ttype: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tc-error tc-relink-error\"\n\t\t\t\t}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: error}\n\t\t\t]});\n\t}\n\treturn rtn;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar parser = this.parser;\n\tvar currentTiddler = parser.context.widget.variables.currentTiddler.value;\n\tparser.pos = this.matchRegExp.lastIndex;\n\tthis.interpretSettings(function(macro, parameter, type) {\n\t\toptions.settings.addSetting(parser.wiki, macro, parameter, type, currentTiddler);\n\t});\n\t// Return nothing, because this rule is ignored by the parser\n\treturn undefined;\n};\n\nexports.interpretSettings = function(block) {\n\tvar paramString = this.match[2];\n\tif (paramString !== \"\") {\n\t\tvar macro = this.match[1];\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*([^\\s]+))?/mg;\n\t\tvar paramMatch = reParam.exec(paramString);\n\t\twhile (paramMatch) {\n\t\t\tvar parameter = paramMatch[1];\n\t\t\tvar type = paramMatch[2];\n\t\t\tblock(macro, parameter, type);\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n};\n",
"module-type": "wikirule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/relink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nParses and acknowledges any pragma rules a tiddler has.\n\n\\rules except html wikilink\n\n\\*/\n\nexports.name = \"rules\";\n\n/**This is all we have to do. The rules rule doesn't parse. It just amends\n * the rules, which is exactly what I want it to do too.\n * It also takes care of moving the pos pointer forward.\n */\nexports.relink = function() {\n\tthis.parse();\n\treturn undefined;\n};\n\n// Same deal\nexports.report = exports.relink;\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/rules.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles sys links\n\n$:/sys/link\n\nbut not:\n\n~$:/sys/link\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"syslink\";\n\nexports.report = function(text, callback, options) {\n\tvar title = this.match[0];\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title[0] !== \"~\") {\n\t\tcallback(title, '~' + title);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (this.match[0] === fromTitle && this.match[0][0] !== \"~\") {\n\t\tentry = {output: this.makeSyslink(toTitle, options)};\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeSyslink = function(title, options) {\n\tvar match = title.match(this.matchRegExp);\n\tif (match && match[0] === title && title[0] !== \"~\") {\n\t\treturn title;\n\t} else {\n\t\treturn utils.makePrettylink(this.parser, title);\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/syslink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles replacement of transclusions in wiki text like,\n\n{{RenamedTiddler}}\n{{RenamedTiddler||TemplateTitle}}\n\nThis renames both the tiddler and the template field.\n\n\\*/\n\nvar refHandler = require(\"$:/plugins/flibbles/relink/js/fieldtypes/reference\");\nvar utils = require(\"./utils.js\");\n\nexports.name = ['transcludeinline', 'transcludeblock'];\n\nexports.report = function(text, callback, options) {\n\tvar m = this.match,\n\t\trefString = $tw.utils.trim(m[1]),\n\t\tref = parseTextReference(refString);\n\t\ttemplate = $tw.utils.trim(m[2]);\n\tif (ref.title) {\n\t\tvar suffix = '';\n\t\tif (ref.index) {\n\t\t\tsuffix = '##' + ref.index;\n\t\t} else if (ref.field) {\n\t\t\tsuffix = '!!' + ref.field;\n\t\t}\n\t\tif (template) {\n\t\t\tsuffix = suffix + '||' + template;\n\t\t}\n\t\tcallback(ref.title, '{{' + suffix + '}}')\n\t}\n\tif (template) {\n\t\tcallback(template, '{{' + refString + '||}}');\n\t}\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar m = this.match,\n\t\treference = parseTextReference(m[1]),\n\t\ttemplate = m[2],\n\t\tentry = undefined,\n\t\tmodified = false;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif ($tw.utils.trim(reference.title) === fromTitle) {\n\t\t// preserve user's whitespace\n\t\treference.title = reference.title.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tif ($tw.utils.trim(template) === fromTitle) {\n\t\ttemplate = template.replace(fromTitle, toTitle);\n\t\tmodified = true;\n\t}\n\tif (modified) {\n\t\tvar output = this.makeTransclude(this.parser, reference, template);\n\t\tif (output) {\n\t\t\t// Adding any newline that might have existed is\n\t\t\t// what allows this relink method to work for both\n\t\t\t// the block and inline filter wikitext rule.\n\t\t\tentry = {output: output + utils.getEndingNewline(m[0])};\n\t\t} else {\n\t\t\tentry = {impossible: true}\n\t\t}\n\t}\n\treturn entry;\n};\n\n// I have my own because the core one is deficient for my needs.\nfunction parseTextReference(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /^([\\w\\W]*?)(?:!!(\\S[\\w\\W]*)|##(\\S[\\w\\W]*))?$/g;\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match) {\n\t\t// Return the parts\n\t\tresult.title = match[1];\n\t\tresult.field = match[2];\n\t\tresult.index = match[3];\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/** This converts a reference and a template into a string representation\n * of a transclude.\n */\nexports.makeTransclude = function(parser, reference, template) {\n\tvar rtn;\n\tif (!canBePrettyTemplate(template)) {\n\t\tvar widget = utils.makeWidget(parser, '$transclude', {\n\t\t\ttiddler: $tw.utils.trim(template),\n\t\t\tfield: reference.field,\n\t\t\tindex: reference.index});\n\t\tif (reference.title && widget !== undefined) {\n\t\t\trtn = utils.makeWidget(parser, '$tiddler', {tiddler: $tw.utils.trim(reference.title)}, widget);\n\t\t} else {\n\t\t\trtn = widget;\n\t\t}\n\t} else if (!canBePrettyTitle(reference.title)) {\n\t\t// This block and the next account for the 1%...\n\t\tvar reducedRef = {field: reference.field, index: reference.index};\n\t\trtn = utils.makeWidget(parser, '$tiddler', {tiddler: $tw.utils.trim(reference.title)}, prettyTransclude(reducedRef, template));\n\t} else {\n\t\t// This block takes care of 99% of all cases\n\t\trtn = prettyTransclude(reference, template);\n\t}\n\treturn rtn;\n};\n\nfunction canBePrettyTitle(value) {\n\treturn refHandler.canBePretty(value) && canBePrettyTemplate(value);\n};\n\nfunction canBePrettyTemplate(value) {\n\treturn !value || (value.indexOf('}') < 0 && value.indexOf('{') < 0 && value.indexOf('|') < 0);\n};\n\nfunction prettyTransclude(textReference, template) {\n\tif (typeof textReference !== \"string\") {\n\t\ttextReference = refHandler.toString(textReference);\n\t}\n\tif (!textReference) {\n\t\ttextReference = '';\n\t}\n\tif (template !== undefined) {\n\t\treturn \"{{\"+textReference+\"||\"+template+\"}}\";\n\t} else {\n\t\treturn \"{{\"+textReference+\"}}\";\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/transclude.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js": {
"text": "/*\\\nmodule-type: library\n\nUtility methods for the wikitext relink rules.\n\n\\*/\n\nexports.makeWidget = function(parser, tag, attributes, body) {\n\tif (!parser.context.allowWidgets()) {\n\t\treturn undefined;\n\t}\n\tvar string = '<' + tag;\n\tfor (var attr in attributes) {\n\t\tvar value = attributes[attr];\n\t\tif (value !== undefined) {\n\t\t\tvar quoted = exports.wrapAttributeValue(value);\n\t\t\tif (!quoted) {\n\t\t\t\tif (!parser.options.placeholder) {\n\t\t\t\t\t// It's not possible to make this widget\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tvar category = getPlaceholderCategory(parser.context, tag, attr);\n\t\t\t\tquoted = '<<' + parser.placeholder.getPlaceholderFor(value, category) + '>>';\n\t\t\t}\n\t\t\tstring += ' ' + attr + '=' + quoted;\n\t\t}\n\t}\n\tif (body !== undefined) {\n\t\tstring += '>' + body + '</' + tag + '>';\n\t} else {\n\t\tstring += '/>';\n\t}\n\treturn string;\n};\n\nfunction getPlaceholderCategory(context, tag, attribute) {\n\tvar element = context.getAttribute(tag);\n\tvar rule = element && element[attribute];\n\t// titles go to relink-\\d\n\t// plaintext goes to relink-plaintext-\\d\n\t// because titles are way more common, also legacy\n\tif (rule === undefined) {\n\t\treturn 'plaintext';\n\t} else {\n\t\trule = rule.fields.text;\n\t\tif (rule === 'title') {\n\t\t\trule = undefined;\n\t\t}\n\t\treturn rule;\n\t}\n};\n\nexports.makePrettylink = function(parser, title, caption) {\n\tvar output;\n\tif (parser.context.allowPrettylinks() && canBePrettylink(title, caption)) {\n\t\tif (caption !== undefined) {\n\t\t\toutput = \"[[\" + caption + \"|\" + title + \"]]\";\n\t\t} else {\n\t\t\toutput = \"[[\" + title + \"]]\";\n\t\t}\n\t} else if (caption !== undefined) {\n\t\tvar safeCaption = sanitizeCaption(parser, caption);\n\t\tif (safeCaption !== undefined) {\n\t\t\toutput = exports.makeWidget(parser, '$link', {to: title}, safeCaption);\n\t\t}\n\t} else if (exports.shorthandPrettylinksSupported(parser.wiki)) {\n\t\toutput = exports.makeWidget(parser, '$link', {to: title});\n\t} else if (parser.context.allowWidgets() && parser.placeholder) {\n\t\t// If we don't have a caption, we must resort to\n\t\t// placeholders anyway to prevent link/caption desync\n\t\t// from later relinks.\n\t\t// It doesn't matter whether the tiddler is quotable.\n\t\tvar ph = parser.placeholder.getPlaceholderFor(title);\n\t\toutput = \"<$link to=<<\"+ph+\">>><$text text=<<\"+ph+\">>/></$link>\";\n\t}\n\treturn output;\n};\n\n/**In version 5.1.20, Tiddlywiki made it so <$link to\"something\" /> would\n * use \"something\" as a caption. This is preferable. However, Relink works\n * going back to 5.1.14, so we need to have different handling for both\n * cases.\n */\nvar _supported;\nexports.shorthandPrettylinksSupported = function(wiki) {\n\tif (_supported === undefined) {\n\t\tvar test = wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", \"<$link to=test/>\");\n\t\t_supported = (test === \"test\");\n\t}\n\treturn _supported;\n};\n\n/**Return true if value can be used inside a prettylink.\n */\nfunction canBePrettylink(value, customCaption) {\n\treturn value.indexOf(\"]]\") < 0 && value[value.length-1] !== ']' && (customCaption !== undefined || value.indexOf('|') < 0);\n};\n\nfunction sanitizeCaption(parser, caption) {\n\tvar plaintext = parser.wiki.renderText(\"text/plain\", \"text/vnd.tiddlywiki\", caption);\n\tif (plaintext === caption && caption.indexOf(\"</$link>\") <= 0) {\n\t\treturn caption;\n\t} else {\n\t\treturn exports.makeWidget(parser, '$text', {text: caption});\n\t}\n};\n\n/**Finds an appropriate quote mark for a given value.\n *\n *Tiddlywiki doesn't have escape characters for attribute values. Instead,\n * we just have to find the type of quotes that'll work for the given title.\n * There exist titles that simply can't be quoted.\n * If it can stick with the preference, it will.\n *\n * return: Returns the wrapped value, or undefined if it's impossible to wrap\n */\nexports.wrapAttributeValue = function(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\/\\s<>\"'=])/.test(v) && v.length > 0; },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\n/**Like wrapAttribute value, except for macro parameters, not attributes.\n *\n * These are more permissive. Allows brackets,\n * and slashes and '<' in unquoted values.\n */\nexports.wrapParameterValue = function(value, preference) {\n\tvar whitelist = [\"\", \"'\", '\"', '[[', '\"\"\"'];\n\tvar choices = {\n\t\t\"\": function(v) {return !/([\\s>\"'=])/.test(v); },\n\t\t\"'\": function(v) {return v.indexOf(\"'\") < 0; },\n\t\t'\"': function(v) {return v.indexOf('\"') < 0; },\n\t\t\"[[\": canBePrettyOperand,\n\t\t'\"\"\"': function(v) {return v.indexOf('\"\"\"') < 0 && v[v.length-1] != '\"';}\n\t};\n\tif (choices[preference] && choices[preference](value)) {\n\t\treturn wrap(value, preference);\n\t}\n\tfor (var i = 0; i < whitelist.length; i++) {\n\t\tvar quote = whitelist[i];\n\t\tif (choices[quote](value)) {\n\t\t\treturn wrap(value, quote);\n\t\t}\n\t}\n\t// No quotes will work on this\n\treturn undefined;\n};\n\nfunction wrap(value, wrapper) {\n\tvar wrappers = {\n\t\t\"\": function(v) {return v; },\n\t\t\"'\": function(v) {return \"'\"+v+\"'\"; },\n\t\t'\"': function(v) {return '\"'+v+'\"'; },\n\t\t'\"\"\"': function(v) {return '\"\"\"'+v+'\"\"\"'; },\n\t\t\"[[\": function(v) {return \"[[\"+v+\"]]\"; }\n\t};\n\tvar chosen = wrappers[wrapper];\n\tif (chosen) {\n\t\treturn chosen(value);\n\t} else {\n\t\treturn undefined;\n\t}\n};\n\nfunction canBePrettyOperand(value) {\n\treturn value.indexOf(']') < 0;\n};\n\n/**Given some text, and a param or attribute within that text, this returns\n * what type of quotation that attribute is using.\n *\n * param: An object in the form {end:, ...}\n */\nexports.determineQuote = function(text, param) {\n\tvar pos = param.end-1;\n\tif (text[pos] === \"'\") {\n\t\treturn \"'\";\n\t}\n\tif (text[pos] === '\"') {\n\t\tif (text.substr(pos-2, 3) === '\"\"\"') {\n\t\t\treturn '\"\"\"';\n\t\t} else {\n\t\t\treturn '\"';\n\t\t}\n\t}\n\tif (text.substr(pos-1,2) === ']]' && text.substr((pos-param.value.length)-3, 2) === '[[') {\n\t\treturn \"[[\";\n\t}\n\treturn '';\n};\n\n// Finds the newline at the end of a string and returns it. Empty string if\n// none exists.\nexports.getEndingNewline = function(string) {\n\tvar l = string.length;\n\tif (string[l-1] === '\\n') {\n\t\treturn (string[l-2] === '\\r') ? \"\\r\\n\" : \"\\n\";\n\t}\n\treturn \"\";\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/utils.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js": {
"text": "/*\\\nmodule-type: relinkwikitextrule\n\nHandles CamelCase links\n\nWikiLink\n\nbut not:\n\n~WikiLink\n\n\\*/\n\nvar utils = require(\"./utils.js\");\n\nexports.name = \"wikilink\";\n\nexports.report = function(text, callback, options) {\n\tvar title = this.match[0],\n\t\tunlink = $tw.config.textPrimitives.unWikiLink;\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title[0] !== unlink) {\n\t\tcallback(title, unlink + title);\n\t}\n};\n\nexports.relink = function(text, fromTitle, toTitle, options) {\n\tvar entry = undefined,\n\t\ttitle = this.match[0];\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tif (title === fromTitle && title[0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\tentry = { output: this.makeWikilink(toTitle, options) };\n\t\tif (entry.output === undefined) {\n\t\t\tentry.impossible = true;\n\t\t}\n\t}\n\treturn entry;\n};\n\nexports.makeWikilink = function(title, options) {\n\tif (title.match(this.matchRegExp) && title[0] !== $tw.config.textPrimitives.unWikiLink) {\n\t\treturn title;\n\t} else {\n\t\treturn utils.makePrettylink(this.parser, title);\n\t}\n};\n",
"module-type": "relinkwikitextrule",
"title": "$:/plugins/flibbles/relink/js/relinkoperations/text/wikitext/wikilink.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/context.js": {
"text": "/*\\\n\nBase class for relink contexts.\n\n\\*/\n\nfunction Context() {\n};\n\nexports.context = Context;\n\n// This class does no special handling of fields, operators, or attributes.\n// we pass it along to the parent.\nContext.prototype.getFields = function() {\n\treturn this.parent.getFields();\n};\n\nContext.prototype.getOperator = function(name, index) {\n\treturn this.parent.getOperator(name, index);\n};\n\nContext.prototype.getOperators = function() {\n\treturn this.parent.getOperators();\n};\n\nContext.prototype.getAttribute = function(elementName) {\n\treturn this.parent.getAttribute(elementName);\n};\n\nContext.prototype.getAttributes = function() {\n\treturn this.parent.getAttributes();\n};\n\nContext.prototype.getMacro = function(macroName) {\n\treturn this.parent.getMacro(macroName);\n};\n\nContext.prototype.getMacros = function() {\n\treturn this.parent.getMacros();\n};\n\nContext.prototype.allowPrettylinks = function() {\n\treturn this.parent.allowPrettylinks();\n};\n\nContext.prototype.allowWidgets = function() {\n\treturn this.parent.allowWidgets();\n};\n\nContext.prototype.hasImports = function(value) {\n\treturn this.parent.hasImports(value);\n};\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/context.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/import.js": {
"text": "/*\\\n\nThis handles the fetching and distribution of relink settings.\n\n\\*/\n\nvar WidgetContext = require('./widget').widget;\n\nfunction ImportContext(wiki, parent, filter) {\n\tthis.parent = parent;\n\tthis.wiki = wiki;\n\tvar importWidget = createImportWidget(filter, this.wiki, this.parent.widget);\n\tthis._compileList(importWidget.tiddlerList);\n\t// This only works if only one filter is imported\n\tthis.widget = this.getBottom(importWidget);\n\t// Trickle this up, so that any containing tiddlercontext knows that this\n\t// tiddler does some importing, and must be checked regularly.\n\tparent.hasImports(true);\n};\n\nexports.import = ImportContext;\n\nImportContext.prototype = new WidgetContext();\n\nImportContext.prototype.changed = function(changes) {\n\treturn this.widget && this.widget.refresh(changes)\n};\n\nfunction createImportWidget(filter, wiki, parent) {\n\tvar widget = wiki.makeWidget( { tree: [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\t\"filter\": {\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: filter\n\t\t\t}\n\t\t}\n\t}] }, { parentWidget: parent} );\n\tif (parent) {\n\t\tparent.children.push(widget);\n\t}\n\twidget.execute();\n\twidget.renderChildren();\n\tvar importWidget = widget.children[0];\n\treturn importWidget;\n};\n\nImportContext.prototype._compileList = function(titleList) {\n\tfor (var i = 0; i < titleList.length; i++) {\n\t\tvar parser = this.wiki.parseTiddler(titleList[i]);\n\t\tif (parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile (parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tif (parseTreeNode.relink) {\n\t\t\t\t\tfor (var macroName in parseTreeNode.relink) {\n\t\t\t\t\t\tvar parameters = parseTreeNode.relink[macroName];\n\t\t\t\t\t\tfor (paramName in parameters) {\n\t\t\t\t\t\t\tthis.addSetting(this.wiki, macroName, paramName, parameters[paramName], titleList[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t}\n\t}\n};\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/import.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/tiddler.js": {
"text": "/*\\\n\nContext for a tiddler. Defines nothing but makes an entry point to test if\na tiddler must be refreshed.\n\n\\*/\n\nvar WidgetContext = require('./widget.js').widget;\n\nfunction TiddlerContext(wiki, parentContext, title) {\n\tthis.title = title;\n\tthis.parent = parentContext;\n\tvar globalWidget = parentContext && parentContext.widget;\n\tvar parentWidget = wiki.makeWidget(null, {parentWidget: globalWidget});\n\tparentWidget.setVariable('currentTiddler', title);\n\tthis.widget = wiki.makeWidget(null, {parentWidget: parentWidget});\n};\n\nexports.tiddler = TiddlerContext;\n\nTiddlerContext.prototype = new WidgetContext();\n\nTiddlerContext.prototype.changed = function(changes) {\n\treturn this.widget && this.widget.refresh(changes);\n};\n\n// By default, a tiddler context does not use imports, unless an import\n// statement is later discovered somewhere in the fields.\nTiddlerContext.prototype.hasImports = function(value) {\n\treturn this._hasImports || (this._hasImports = value);\n};\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/tiddler.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/variable.js": {
"text": "/*\\\n\nThis handles the context for variables. Either from $set, $vars, or \\define\n\n\\*/\n\nvar WidgetContext = require('./widget').widget;\n\nfunction VariableContext(parent, setParseTreeNode) {\n\tthis.parent = parent;\n\t// Now create a new widget and attach it.\n\tvar attachPoint = parent.widget;\n\tvar setWidget = attachPoint.makeChildWidget(setParseTreeNode);\n\tattachPoint.children.push(setWidget);\n\tsetWidget.computeAttributes();\n\tsetWidget.execute();\n\t// point our widget to bottom, where any other contexts would attach to\n\tthis.widget = this.getBottom(setWidget);\n};\n\nexports.variable = VariableContext;\n\nVariableContext.prototype = new WidgetContext();\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/variable.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/whitelist.js": {
"text": "/*\\\n\nThis top-level context manages settings inside the whitelist. It never has\na parent.\n\n\\*/\n\nvar utils = require('../utils');\nvar Context = require('./context').context;\n\nvar prefix = \"$:/config/flibbles/relink/\";\n\nfunction WhitelistContext(wiki) {\n\tbuild(this, wiki);\n};\n\nexports.whitelist = WhitelistContext;\n\nWhitelistContext.prototype = new Context();\n\n/**Hot directories are directories for which if anything changes inside them,\n * then Relink must completely rebuild its index.\n * By default, this includes the whitelist settings, but relink-titles also\n * includes its rules disabling directory.\n * This is the FIRST solution I came up with to this problem. If you're\n * looking at this, please make a github issue so I have a chance to understand\n * your needs. This is currently a HACK solution.\n */\nWhitelistContext.hotDirectories = [prefix];\n\nWhitelistContext.prototype.getAttribute = function(elementName) {\n\treturn this.attributes[elementName];\n};\n\nWhitelistContext.prototype.getAttributes = function() {\n\treturn flatten(this.attributes);\n};\n\nWhitelistContext.prototype.getFields = function() {\n\treturn this.fields;\n};\n\nWhitelistContext.prototype.getOperator = function(operatorName, operandIndex) {\n\tvar op = this.operators[operatorName];\n\treturn op && op[operandIndex || 1];\n};\n\nWhitelistContext.prototype.getOperators = function() {\n\tvar signatures = Object.create(null);\n\tfor (var op in this.operators) {\n\t\tvar operandSet = this.operators[op];\n\t\tfor (var index in operandSet) {\n\t\t\tvar entry = operandSet[index];\n\t\t\tsignatures[entry.key] = entry;\n\t\t}\n\t}\n\treturn signatures;\n};\n\nWhitelistContext.prototype.getMacro = function(macroName) {\n\treturn this.macros[macroName];\n};\n\nWhitelistContext.prototype.getMacros = function() {\n\treturn flatten(this.macros);\n};\n\nWhitelistContext.prototype.changed = function(changedTiddlers) {\n\tfor (var i = 0; i < WhitelistContext.hotDirectories.length; i++) {\n\t\tvar dir = WhitelistContext.hotDirectories[i];\n\t\tfor (var title in changedTiddlers) {\n\t\t\tif (title.substr(0, dir.length) === dir) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nWhitelistContext.prototype.hasImports = function(value) {\n\t// We don't care if imports are used. This is the global level.\n\treturn false;\n};\n\n/**Factories define methods that create settings given config tiddlers.\n * for factory method 'example', it will be called once for each:\n * \"$:/config/flibbles/relink/example/...\" tiddler that exists.\n * the argument \"key\" will be set to the contents of \"...\"\n *\n * The reason I build relink settings in this convoluted way is to minimize\n * the number of times tiddlywiki has to run through EVERY tiddler looking\n * for relink config tiddlers.\n *\n * Also, by exporting \"factories\", anyone who extends relink can patch in\n * their own factory methods to create settings that are generated exactly\n * once per rename.\n */\nvar factories = {\n\tattributes: function(attributes, data, key) {\n\t\tvar elem = root(key);\n\t\tvar attr = key.substr(elem.length+1);\n\t\tattributes[elem] = attributes[elem] || Object.create(null);\n\t\tattributes[elem][attr] = data;\n\t},\n\tfields: function(fields, data, name) {\n\t\tfields[name] = data;\n\t},\n\tmacros: function(macros, data, key) {\n\t\t// We take the last index, not the first, because macro\n\t\t// parameters can't have slashes, but macroNames can.\n\t\tvar name = dir(key);\n\t\tvar arg = key.substr(name.length+1);\n\t\tmacros[name] = macros[name] || Object.create(null);\n\t\tmacros[name][arg] = data;\n\t},\n\toperators: function(operators, data, key) {\n\t\t// We take the last index, not the first, because the operator\n\t\t// may have a slash to indicate parameter number\n\t\tvar pair = key.split('/');\n\t\tvar name = pair[0];\n\t\tdata.key = key;\n\t\toperators[name] = operators[name] || Object.create(null);\n\t\toperators[name][pair[1] || 1] = data;\n\t}\n};\n\nfunction build(settings, wiki) {\n\tfor (var name in factories) {\n\t\tsettings[name] = Object.create(null);\n\t}\n\twiki.eachShadowPlusTiddlers(function(tiddler, title) {\n\t\tif (title.substr(0, prefix.length) === prefix) {\n\t\t\tvar remainder = title.substr(prefix.length);\n\t\t\tvar category = root(remainder);\n\t\t\tvar factory = factories[category];\n\t\t\tif (factory) {\n\t\t\t\tvar name = remainder.substr(category.length+1);\n\t\t\t\tvar data = utils.getType(tiddler.fields.text.trim());\n\t\t\t\tif (data) {\n\t\t\t\t\tdata.source = title;\n\t\t\t\t\t// Secret feature. You can access a config tiddler's\n\t\t\t\t\t// fields from inside the fieldtype handler. Cool\n\t\t\t\t\t// tricks can be done with this.\n\t\t\t\t\tdata.fields = tiddler.fields;\n\t\t\t\t\tfactory(settings[category], data, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/* Returns first bit of a path. path/to/tiddler -> path\n */\nfunction root(string) {\n\tvar index = string.indexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n};\n\n/* Returns all but the last bit of a path. path/to/tiddler -> path/to\n */\nfunction dir(string) {\n\tvar index = string.lastIndexOf('/');\n\tif (index >= 0) {\n\t\treturn string.substr(0, index);\n\t}\n}\n\n/* Turns {dir: {file1: 'value1', file2: 'value2'}}\n * into {dir/file1: 'value1', dir/file2: 'value2'}\n */\nfunction flatten(set) {\n\tvar signatures = Object.create(null);\n\tfor (var outerName in set) {\n\t\tvar setItem = set[outerName];\n\t\tfor (var innerName in setItem) {\n\t\t\tsignatures[outerName + \"/\" + innerName] = setItem[innerName];\n\t\t}\n\t}\n\treturn signatures;\n};\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/whitelist.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/widget.js": {
"text": "/*\\\n\nThis is a virtual subclass of context for contexts that exist within widgets\nof a specific tiddler.\n\nAll widget contexts must have a widget member.\n\n\\*/\n\nvar Context = require('./context.js').context;\nvar utils = require('$:/plugins/flibbles/relink/js/utils.js');\n\nfunction WidgetContext() {};\n\nexports.widget = WidgetContext;\n\nWidgetContext.prototype = new Context();\n\nWidgetContext.prototype.getMacroDefinition = function(variableName) {\n\t// widget.variables is prototyped, so it looks up into all its parents too\n\treturn this.widget.variables[variableName] || $tw.macros[variableName];\n};\n\nWidgetContext.prototype.addSetting = function(wiki, macroName, parameter, type, sourceTitle) {\n\tthis.macros = this.macros || Object.create(null);\n\tvar macro = this.macros[macroName];\n\ttype = type || utils.getDefaultType(wiki);\n\tif (macro === undefined) {\n\t\tmacro = this.macros[macroName] = Object.create(null);\n\t}\n\tvar handler = utils.getType(type);\n\tif (handler) {\n\t\thandler.source = sourceTitle;\n\t\t// We attach the fields of the defining tiddler for the benefit\n\t\t// of any 3rd party field types that want access to them.\n\t\tvar tiddler = wiki.getTiddler(sourceTitle);\n\t\thandler.fields = tiddler.fields;\n\t\tmacro[parameter] = handler;\n\t}\n};\n\nWidgetContext.prototype.getMacros = function() {\n\tvar signatures = this.parent.getMacros();\n\tif (this.macros) {\n\t\tfor (var macroName in this.macros) {\n\t\t\tvar macro = this.macros[macroName];\n\t\t\tfor (var param in macro) {\n\t\t\t\tsignatures[macroName + \"/\" + param] = macro[param];\n\t\t\t}\n\t\t}\n\t}\n\treturn signatures;\n};\n\n/**This does strange handling because it's possible for a macro to have\n * its individual parameters whitelisted in separate places.\n * Don't know WHY someone would do this, but it can happen.\n */\nWidgetContext.prototype.getMacro = function(macroName) {\n\tvar theseSettings = this.macros && this.macros[macroName];\n\tvar parentSettings;\n\tif (this.parent) {\n\t\tparentSettings = this.parent.getMacro(macroName);\n\t}\n\tif (theseSettings && parentSettings) {\n\t\t// gotta merge them without changing either. This is expensive,\n\t\t// but it'll happen rarely.\n\t\tvar rtnSettings = $tw.utils.extend(Object.create(null), theseSettings, parentSettings);\n\t\treturn rtnSettings;\n\t}\n\treturn theseSettings || parentSettings;\n};\n\n/**Returns the deepest descendant of the given widget.\n */\nWidgetContext.prototype.getBottom = function(widget) {\n\twhile (widget.children.length > 0) {\n\t\twidget = widget.children[0];\n\t}\n\treturn widget;\n};\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/widget.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/contexts/wikitext.js": {
"text": "/*\\\n\nContext for wikitext. It can contain rules about what's allowed in this\ncurrent layer of wikitext.\n\n\\*/\n\nvar WidgetContext = require('./widget.js').widget;\n\nfunction WikitextContext(parentContext) {\n\tthis.parent = parentContext;\n\tthis.widget = parentContext.widget;\n};\n\nexports.wikitext = WikitextContext;\n\nWikitextContext.prototype = new WidgetContext();\n\n// Unless this specific context has rules about it, widgets and prettyLInks are allowed.\nWikitextContext.prototype.allowWidgets = enabled;\nWikitextContext.prototype.allowPrettylinks = enabled;\n\nfunction enabled() { return true; };\n",
"module-type": "relinkcontext",
"title": "$:/plugins/flibbles/relink/js/contexts/wikitext.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/backupIndexer.js": {
"text": "/*\\\nmodule-type: library\n\nThis is a backup indexer Relink uses if the real one is disabled, or we're\n<V5.1.23. It's not nearly as good, but it caches some.\n\n\\*/\n\n\"use strict\";\n\nvar utils = require(\"$:/plugins/flibbles/relink/js/utils.js\");\nvar TiddlerContext = utils.getContext('tiddler');\n\n// This is the indexer we use if the current wiki doesn't support indexers.\nfunction BackupIndexer(wiki) {\n\tthis.wiki = wiki;\n};\n\nmodule.exports = BackupIndexer;\n\nBackupIndexer.prototype.lookup = function(title) {\n\treturn getCache(this.wiki).lookup[title];\n};\n\nBackupIndexer.prototype.reverseLookup = function(title) {\n\tvar index = getCache(this.wiki);\n\tif (!index.reverse[title]) {\n\t\tvar record = Object.create(null);\n\t\tfor (var other in index.lookup) {\n\t\t\tif (index.lookup[other][title]) {\n\t\t\t\trecord[other] = index.lookup[other][title];\n\t\t\t}\n\t\t}\n\t\tindex.reverse[title] = record;\n\t}\n\treturn index.reverse[title];\n};\n\n/* The backup indexer doesn't bother caching relink reports. It would always\n * be called after a draft tiddler had changed, which would defeat the point.\n */\nBackupIndexer.prototype.relinkLookup = function(fromTitle, toTitle, options) {\n\tvar cache = getCache(this.wiki);\n\tif (cache.lastRelinkFrom === fromTitle && cache.lastRelinkTo === toTitle) {\n\t\toptions.cache = cache.lastRelinkCache;\n\t\treturn cache.lastRelink;\n\t}\n\tcache.lastRelink = utils.getRelinkResults(this.wiki, fromTitle, toTitle, cache.context, undefined, options);\n\tcache.lastRelinkFrom = fromTitle;\n\tcache.lastRelinkTo = toTitle;\n\tcache.lastRelinkCache = options.cache;\n\treturn cache.lastRelink;\n};\n\nfunction getCache(wiki) {\n\treturn wiki.getGlobalCache('relink', function() {\n\t\tvar tiddlerList = wiki.getRelinkableTitles();\n\t\tvar index = Object.create(null);\n\t\tvar wikiContext = utils.getWikiContext(wiki);\n\t\tfor (var i = 0; i < tiddlerList.length; i++) {\n\t\t\tvar title = tiddlerList[i];\n\t\t\tvar tiddler = wiki.getTiddler(title);\n\t\t\tif (tiddler && !tiddler.fields[\"plugin-type\"]) {\n\t\t\t\tvar context = new TiddlerContext(wiki, wikiContext, title);\n\t\t\t\tindex[title] = utils.getTiddlerRelinkReferences(wiki, title, context);\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tlookup: index,\n\t\t\treverse: Object.create(null),\n\t\t\tcontext: wikiContext};\n\t});\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/backupIndexer.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/entry.js": {
"text": "/*\\\n\nEntries are deprecated. Don't use them. These classes are here just so that\nany 3rd party modules built for Relink V1 don't break.\n\nJust return an object like, {output: \"string\", impossible: true|undefined}\n\n\\*/\n\nfunction EntryNode() {\n\tthis.children = [];\n};\n\nmodule.exports = EntryNode;\n\n/** PURE VIRTUAL\n * EntryNode.prototype.report = function() -> [\"string\", ...]\n */\n\nEntryNode.newType = function() {\n\treturn EntryNode;\n};\n\nEntryNode.prototype.add = function(entry) {\n\tthis.children.push(entry);\n};\n\nfunction EntryCollection() {\n\tthis.children = Object.create(null);\n\tthis.types = Object.create(null);\n};\n\nEntryNode.newCollection = function(name) {\n\treturn EntryCollection;\n};\n\n// Again. I reiterate. Don't use this. All this is just legacy support.\nObject.defineProperty(EntryCollection, 'impossible', {\n\tget: function() {\n\t\tvar imp = this._impossible;\n\t\tthis.eachChild(function(child) { imp = imp || child.impossible; });\n\t\treturn imp;\n\t},\n\tset: function(impossible) {\n\t\tthis._impossible = true;\n\t}\n});\n\nEntryCollection.prototype.eachChild = function(method) {\n\tfor (var child in this.children) {\n\t\tmethod(this.children[child]);\n\t}\n};\n\nEntryCollection.prototype.addChild = function(child, name, type) {\n\tthis.children[name] = child;\n\tthis.types[name] = type;\n};\n\nEntryCollection.prototype.hasChildren = function() {\n\treturn Object.keys(this.children).length > 0;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/entry.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/placeholder.js": {
"text": "/*\\\n\nA method which doles out placeholders when requested, and constructs\nthe necessary supporting pragma when requested.\n\n\\*/\n\nvar utils = require('../utils');\n\nfunction Placeholder() {\n\tthis.placeholders = Object.create(null);\n\tthis.reverseMap = {};\n\tthis.used = Object.create(null);\n};\n\nmodule.exports = Placeholder;\n\nPlaceholder.prototype.getPlaceholderFor = function(value, category) {\n\tthis.reverseMap[category] = this.reverseMap[category] || Object.create(null);\n\tvar placeholder = this.reverseMap[category][value];\n\tif (placeholder) {\n\t\treturn placeholder;\n\t}\n\tvar config = (this.parser && this.parser.context) || utils.getWikiContext(this.parser.wiki);\n\tvar number = 0;\n\tvar prefix = \"relink-\"\n\tif (category && category !== \"title\") {\n\t\t// I don't like \"relink-title-1\". \"relink-1\" should be for\n\t\t// titles. lists, and filters can have descriptors though.\n\t\tprefix += category + \"-\";\n\t}\n\tdo {\n\t\tnumber += 1;\n\t\tplaceholder = prefix + number;\n\t} while (config.getMacroDefinition(placeholder) || this.used[placeholder]);\n\tthis.placeholders[placeholder] = value;\n\tthis.reverseMap[category][value] = placeholder;\n\tthis.used[placeholder] = true;\n\treturn placeholder;\n};\n\n// For registering placeholders that already existed\nPlaceholder.prototype.registerExisting = function(key, value) {\n\tthis.reverseMap[value] = key;\n\tthis.used[key] = true;\n};\n\nPlaceholder.prototype.getPreamble = function() {\n\tvar results = [];\n\tvar keys = Object.keys(this.placeholders);\n\tif (keys.length > 0) {\n\t\tkeys.sort();\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tvar name = keys[i];\n\t\t\tvar val = this.placeholders[name];\n\t\t\tresults.push(\"\\\\define \"+name+\"() \"+val+\"\\n\");\n\t\t}\n\t}\n\treturn results.join('');\n};\n\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/placeholder.js",
"type": "application/javascript"
},
"$:/plugins/flibbles/relink/js/utils/rebuilder.js": {
"text": "/*\\\n\nThis helper class aids in reconstructing an existing string with new parts.\n\n\\*/\n\nfunction Rebuilder(text, start) {\n\tthis.text = text;\n\tthis.index = start || 0;\n\tthis.pieces = [];\n};\n\nmodule.exports = Rebuilder;\n\n/**Pieces must be added consecutively.\n * Start and end are the indices in the old string specifying where to graft\n * in the new piece.\n */\nRebuilder.prototype.add = function(value, start, end) {\n\tthis.pieces.push(this.text.substring(this.index, start), value);\n\tthis.index = end;\n};\n\nRebuilder.prototype.changed = function() {\n\treturn this.pieces.length > 0;\n};\n\nRebuilder.prototype.results = function(end) {\n\tif (this.changed()) {\n\t\tthis.pieces.push(this.text.substring(this.index, end));\n\t\treturn this.pieces.join('');\n\t}\n\treturn undefined;\n};\n",
"module-type": "library",
"title": "$:/plugins/flibbles/relink/js/utils/rebuilder.js",
"type": "application/javascript"
},
"$:/config/flibbles/relink/attributes/$button/set": {
"title": "$:/config/flibbles/relink/attributes/$button/set",
"text": "reference"
},
"$:/config/flibbles/relink/attributes/$button/setTo": {
"title": "$:/config/flibbles/relink/attributes/$button/setTo",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$button/to": {
"title": "$:/config/flibbles/relink/attributes/$button/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$checkbox/tag": {
"title": "$:/config/flibbles/relink/attributes/$checkbox/tag",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$count/filter": {
"title": "$:/config/flibbles/relink/attributes/$count/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$draggable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$draggable/filter": {
"title": "$:/config/flibbles/relink/attributes/$draggable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-bitmap/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit-text/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit-text/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$edit/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$edit/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$encrypt/filter": {
"title": "$:/config/flibbles/relink/attributes/$encrypt/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$fieldmangler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fieldmangler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$fields/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$fields/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$image/source": {
"title": "$:/config/flibbles/relink/attributes/$image/source",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$importvariables/filter": {
"title": "$:/config/flibbles/relink/attributes/$importvariables/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/to": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$linkcatcher/set": {
"title": "$:/config/flibbles/relink/attributes/$linkcatcher/set",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$link/to": {
"title": "$:/config/flibbles/relink/attributes/$link/to",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/filter": {
"title": "$:/config/flibbles/relink/attributes/$list/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$list/template": {
"title": "$:/config/flibbles/relink/attributes/$list/template",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/editTemplate": {
"title": "$:/config/flibbles/relink/attributes/$list/editTemplate",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$list/emptyMessage": {
"title": "$:/config/flibbles/relink/attributes/$list/emptyMessage",
"text": "wikitext"
},
"$:/config/flibbles/relink/attributes/$list/history": {
"title": "$:/config/flibbles/relink/attributes/$list/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/story": {
"title": "$:/config/flibbles/relink/attributes/$navigator/story",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$navigator/history": {
"title": "$:/config/flibbles/relink/attributes/$navigator/history",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$radio/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$radio/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$range/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$range/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$reveal/stateTitle": {
"title": "$:/config/flibbles/relink/attributes/$reveal/stateTitle",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$select/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$select/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$setvariable/filter": {
"title": "$:/config/flibbles/relink/attributes/$setvariable/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$set/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$set/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$set/filter": {
"title": "$:/config/flibbles/relink/attributes/$set/filter",
"text": "filter"
},
"$:/config/flibbles/relink/attributes/$tiddler/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$tiddler/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$transclude/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$transclude/subtiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/tiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/attributes/$view/subtiddler": {
"title": "$:/config/flibbles/relink/attributes/$view/subtiddler",
"text": "title"
},
"$:/plugins/flibbles/relink/configuration": {
"title": "$:/plugins/flibbles/relink/configuration",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/flibbles/relink/Configuration]!has[draft.of]]\" \"$:/plugins/flibbles/relink/ui/configuration/Fields\">>\n</div>\n"
},
"$:/config/flibbles/relink/fields/caption": {
"title": "$:/config/flibbles/relink/fields/caption",
"text": "wikitext"
},
"$:/config/flibbles/relink/fields/filter": {
"title": "$:/config/flibbles/relink/fields/filter",
"text": "filter"
},
"$:/config/flibbles/relink/fields/list": {
"title": "$:/config/flibbles/relink/fields/list",
"text": "list"
},
"$:/config/flibbles/relink/fields/list-after": {
"title": "$:/config/flibbles/relink/fields/list-after",
"text": "title"
},
"$:/config/flibbles/relink/fields/list-before": {
"title": "$:/config/flibbles/relink/fields/list-before",
"text": "title"
},
"$:/config/flibbles/relink/fields/tags": {
"title": "$:/config/flibbles/relink/fields/tags",
"text": "list"
},
"$:/plugins/flibbles/relink/language/Buttons/Delete/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/Delete/Hint",
"text": "delete"
},
"$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint",
"text": "go to defining tiddler"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Hint",
"text": "Specify a new widget/element attribute to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewAttribute/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Hint",
"text": "Specify a new field to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewField/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewField/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Hint",
"text": "Specify a new filter operator to be considered whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewOperator/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Hint",
"text": "Specify a new macro parameter to be updated whenever a tiddler is renamed"
},
"$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption": {
"title": "$:/plugins/flibbles/relink/language/Buttons/NewParameter/Caption",
"text": "add"
},
"$:/plugins/flibbles/relink/language/Error/InvalidAttributeName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidAttributeName",
"text": "Illegal characters in attribute name \"<$text text=<<attributeName>>/>\". Attributes cannot contain slashes ('/'), closing angle or square brackets ('>' or ']'), quotes or apostrophes ('\"' or \"'\"), equals ('='), or whitespace"
},
"$:/plugins/flibbles/relink/language/Error/InvalidElementName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidElementName",
"text": "Illegal characters in element/widget name \"<$text text=<<elementName>>/>\". Element tags can only contain letters and the characters hyphen (`-`) and dollar sign (`$`)"
},
"$:/plugins/flibbles/relink/language/Error/InvalidMacroName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidMacroName",
"text": "Illegal characters in macro name \"<$text text=<<macroName>>/>\". Macros cannot contain whitespace"
},
"$:/plugins/flibbles/relink/language/Error/InvalidParameterName": {
"title": "$:/plugins/flibbles/relink/language/Error/InvalidParameterName",
"text": "Illegal characters in parameter name \"<$text text=<<parameterName>>/>\". Parameters can only contain letters, digits, and the characters underscore (`_`) and hyphen (`-`)"
},
"$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator": {
"title": "$:/plugins/flibbles/relink/language/Error/RelinkFilterOperator",
"text": "Filter Error: Unknown suffix for the 'relink' filter operator"
},
"$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks": {
"title": "$:/plugins/flibbles/relink/language/Error/ReportFailedRelinks",
"text": "Relink could not update '<<from>>' to '<<to>>' inside the following tiddlers:"
},
"$:/plugins/flibbles/relink/language/Error/UnrecognizedType": {
"title": "$:/plugins/flibbles/relink/language/Error/UnrecognizedType",
"text": "Relink parse error: Unrecognized field type '<<type>>'"
},
"$:/plugins/flibbles/relink/language/Help/Attributes": {
"title": "$:/plugins/flibbles/relink/language/Help/Attributes",
"text": "See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Attributes]]}}}>Attributes documentation page</a> for details."
},
"$:/plugins/flibbles/relink/language/Help/Fields": {
"title": "$:/plugins/flibbles/relink/language/Help/Fields",
"text": "See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Fields]]}}}>Fields documentation page</a> for details."
},
"$:/plugins/flibbles/relink/language/Help/Macros": {
"title": "$:/plugins/flibbles/relink/language/Help/Macros",
"text": "See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Macros]]}}}>Macros documentation page</a> for details."
},
"$:/plugins/flibbles/relink/language/Help/Operators": {
"title": "$:/plugins/flibbles/relink/language/Help/Operators",
"text": "See the <a href={{{[{$:/plugins/flibbles/relink!!demo}addsuffix[#Operators]]}}}>Operators documentation page</a> for details."
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Empty",
"text": "No tiddlers contain any fields, links, macros, transclusions, or widgets referencing this one"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Description",
"text": "The following tiddlers contain fields, links, macros, transclusions, or widgets referencing this one:"
},
"$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption": {
"title": "$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption",
"text": "//Relink// References"
},
"$:/plugins/flibbles/relink/language/ui/Attributes/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Attributes/Caption",
"text": "Attributes"
},
"$:/plugins/flibbles/relink/language/ui/Fields/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Fields/Caption",
"text": "Fields"
},
"$:/plugins/flibbles/relink/language/ui/Macros/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Macros/Caption",
"text": "Macros"
},
"$:/plugins/flibbles/relink/language/ui/Operators/Caption": {
"title": "$:/plugins/flibbles/relink/language/ui/Operators/Caption",
"text": "Operators"
},
"$:/plugins/flibbles/relink/license": {
"title": "$:/plugins/flibbles/relink/license",
"type": "text/vnd.tiddlywiki",
"text": "<a href={{$:/plugins/flibbles/relink!!demo}}>Relink Plugin</a> Copyright (c) 2019-<<now YYYY>> Cameron Fischer\n\n[[BSD 3-Clause License|https://raw.githubusercontent.com/flibbles/tw5-relink/master/LICENSE]]\n"
},
"$:/config/flibbles/relink/macros/csvtiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/csvtiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/datauri/title": {
"title": "$:/config/flibbles/relink/macros/datauri/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddler/title": {
"title": "$:/config/flibbles/relink/macros/jsontiddler/title",
"text": "title"
},
"$:/config/flibbles/relink/macros/jsontiddlers/filter": {
"title": "$:/config/flibbles/relink/macros/jsontiddlers/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links/filter": {
"title": "$:/config/flibbles/relink/macros/list-links/filter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/list-links-draggable/tiddler": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/tiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-links-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/tag": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate": {
"title": "$:/config/flibbles/relink/macros/list-tagged-draggable/itemTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/buttonTemplate": {
"title": "$:/config/flibbles/relink/macros/tabs/buttonTemplate",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/default": {
"title": "$:/config/flibbles/relink/macros/tabs/default",
"text": "title"
},
"$:/config/flibbles/relink/macros/tabs/tabsList": {
"title": "$:/config/flibbles/relink/macros/tabs/tabsList",
"text": "filter"
},
"$:/config/flibbles/relink/macros/tabs/template": {
"title": "$:/config/flibbles/relink/macros/tabs/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag/tag": {
"title": "$:/config/flibbles/relink/macros/tag/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/tag-pill/tag": {
"title": "$:/config/flibbles/relink/macros/tag-pill/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/timeline/subfilter": {
"title": "$:/config/flibbles/relink/macros/timeline/subfilter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/toc/tag": {
"title": "$:/config/flibbles/relink/macros/toc/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc/itemClassFilter": {
"title": "$:/config/flibbles/relink/macros/toc/itemClassFilter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/toc-expandable/tag": {
"title": "$:/config/flibbles/relink/macros/toc-expandable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-expandable/itemClassFilter": {
"title": "$:/config/flibbles/relink/macros/toc-expandable/itemClassFilter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/toc-expandable/exclude": {
"title": "$:/config/flibbles/relink/macros/toc-expandable/exclude",
"text": "list"
},
"$:/config/flibbles/relink/macros/toc-selective-expandable/tag": {
"title": "$:/config/flibbles/relink/macros/toc-selective-expandable/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-selective-expandable/itemClassFilter": {
"title": "$:/config/flibbles/relink/macros/toc-selective-expandable/itemClassFilter",
"text": "filter"
},
"$:/config/flibbles/relink/macros/toc-selective-expandable/exclude": {
"title": "$:/config/flibbles/relink/macros/toc-selective-expandable/exclude",
"text": "list"
},
"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/tag": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-external-nav/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/selectedTiddler": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-external-nav/selectedTiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/unselectedText": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-external-nav/unselectedText",
"text": "wikitext"
},
"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/missingText": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-external-nav/missingText",
"text": "wikitext"
},
"$:/config/flibbles/relink/macros/toc-tabbed-external-nav/template": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-external-nav/template",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/tag": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/tag",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/selectedTiddler": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/selectedTiddler",
"text": "title"
},
"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/unselectedText": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/unselectedText",
"text": "wikitext"
},
"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/missingText": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/missingText",
"text": "wikitext"
},
"$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/template": {
"title": "$:/config/flibbles/relink/macros/toc-tabbed-internal-nav/template",
"text": "title"
},
"$:/config/flibbles/relink/operators/list": {
"title": "$:/config/flibbles/relink/operators/list",
"text": "reference"
},
"$:/config/flibbles/relink/operators/tag": {
"title": "$:/config/flibbles/relink/operators/tag",
"text": "title"
},
"$:/config/flibbles/relink/operators/title": {
"title": "$:/config/flibbles/relink/operators/title",
"text": "title"
},
"$:/config/flibbles/relink/operators/field:title": {
"title": "$:/config/flibbles/relink/operators/field:title",
"text": "title"
},
"$:/language/EditTemplate/Title/Impossibles/Prompt": {
"title": "$:/language/EditTemplate/Title/Impossibles/Prompt",
"text": "''Warning:'' Not all references in the following tiddlers can be updated by //Relink// due to the complexity of the new title:"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following tiddlers will be updated if relinking:"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Use //Relink// to update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' across all other tiddlers"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\" tabindex={{$:/config/EditTabIndex}}/>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$tiddler tiddler=<<fromTitle>> >\n\n<$list filter=\"[relink:wouldchange<toTitle>limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$set\n\tname=\"prompt\"\n\tfilter=\"[relink:wouldchange<toTitle>relink:impossible<toTitle>]\"\n\tvalue=\"EditTemplate/Title/Impossibles/Prompt\"\n\temptyValue=\"EditTemplate/Title/References/Prompt\" >\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}}\n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}}\n<$macrocall $name=lingo title=<<prompt>> />\n</$button>\n</$reveal>\n</$set>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$list variable=\"listItem\" filter=\"[relink:wouldchange<toTitle>!title[$:/StoryList]sort[title]]\" template=\"$:/plugins/flibbles/relink/ui/ListItemTemplate\">\n</$list>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$tiddler>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/config/flibbles/relink/PluginLibrary": {
"title": "$:/config/flibbles/relink/PluginLibrary",
"caption": "//Relink// Library",
"url": "https://flibbles.github.io/tw5-relink/library/index.html",
"tags": "$:/tags/PluginLibrary",
"text": "The //Relink// library contains //Relink// as well as its supplemental plugins. It is maintained by Flibbles. See the [[github page|https://github.com/flibbles/tw5-relink]] for more information.\n"
},
"$:/plugins/flibbles/relink/readme": {
"title": "$:/plugins/flibbles/relink/readme",
"type": "text/vnd.tiddlywiki",
"text": "When renaming a tiddler, Relink can update the fields, filters, and widgets\nof all other tiddlers. However, it works through whitelisting.\n\nIt's already configured to update tiddler titles for all core widgets, filters,\nand fields, but the whitelists can be customized for each of this in the\nconfiguration panel.\n\nSee <a href={{$:/plugins/flibbles/relink!!source}}>the tw5-relink website</a> for more details and examples.\n"
},
"$:/config/flibbles/relink/settings/default-type": {
"title": "$:/config/flibbles/relink/settings/default-type",
"text": "title"
},
"$:/plugins/flibbles/relink/ui/ListItemTemplate": {
"title": "$:/plugins/flibbles/relink/ui/ListItemTemplate",
"text": "<$set\n\tname=\"classes\"\n\tfilter=\"[<listItem>relink:impossible<toTitle>]\"\n\tvalue=\"tc-menu-list-item tc-relink-impossible\"\n\temptyValue=\"tc-menu-list-item\">\n<div class=<<classes>>>\n<$link to=<<listItem>>><$text text=<<listItem>> /></$link>\n</div>\n</$set>\n"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/References": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/References",
"caption": "{{$:/plugins/flibbles/relink/language/TiddlerInfo/References/Caption}}",
"tags": "$:/tags/TiddlerInfo",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/TiddlerInfo/\n\\define filter() [all[current]relink:backreferences[]!title[$:/StoryList]!prefix[$:/temp/]sort[title]]\n<$list filter=\"[subfilter<filter>first[]]\">\n\n<<lingo References/Description>>\n</$list>\n\n<table class=\"tc-relink-references-table\">\n<tbody>\n<$list filter=<<filter>> emptyMessage=<<lingo References/Empty>> variable=\"listItem\" template=\"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate\" />\n</tbody>\n</table>\n"
},
"$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate": {
"title": "$:/plugins/flibbles/relink/ui/TiddlerInfo/ReferencesTemplate",
"text": "<tr class=\"tc-relink-references\">\n<td class=\"tc-relink-references-title\">\n<$link to=<<listItem>>/>\n</td>\n<td class=\"tc-relink-references-report\">\n<$list filter=\"[<listItem>relink:report<currentTiddler>]\">\n\n<$text text=<<currentTiddler>> />\n</$list>\n\n</td>\n</tr>\n"
},
"$:/plugins/flibbles/relink/ui/components/button-delete": {
"title": "$:/plugins/flibbles/relink/ui/components/button-delete",
"text": "\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define prefix() $:/config/flibbles/relink/\n\n<$list filter=\"[all[current]prefix<prefix>]\" >\n<$button class=\"tc-btn-invisible\" tooltip={{$:/plugins/flibbles/relink/language/Buttons/Delete/Hint}}><$list filter=\"[all[current]is[tiddler]]\">\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$list><$list filter=\"[all[current]is[shadow]]\">\n<$action-setfield $tiddler=<<tiddlerName>> text=\"\" />\n</$list>\n{{$:/core/images/delete-button}}\n</$button>\n</$list><$list filter=\"[all[current]!prefix<prefix>]\">\n<$link><$button class=\"tc-btn-invisible\" tooltip={{$:/plugins/flibbles/relink/language/Buttons/LinkToInline/Hint}}>{{$:/core/images/link}}</$button></$link>\n</$list>\n"
},
"$:/plugins/flibbles/relink/ui/components/select-fieldtype": {
"title": "$:/plugins/flibbles/relink/ui/components/select-fieldtype",
"text": "\\define prefix() $:/config/flibbles/relink/\n\n<$vars type={{{ [<signature>relink:type[]] }}} >\n<$list filter=\"[all[current]prefix<prefix>]\" >\n<$select tiddler=<<currentTiddler>> >\n<$list variable=\"option\" filter=\"[relink:types[]]\">\n<option><$text text=<<option>> /></option>\n</$list>\n</$select>\n</$list><$list filter=\"[all[current]!prefix<prefix>]\">\n<$text text=<<type>> />\n</$list>\n</$vars>\n"
},
"$:/plugins/flibbles/relink/ui/components/tables": {
"title": "$:/plugins/flibbles/relink/ui/components/tables",
"text": "\\define .make-table(title, plugin, default-table-state:yes)\n\n<$list variable=\"render\" filter=\"[relink:signatures<__plugin__>prefix<__category__>first[]]\">\n<$set name=\"table-state\" value=<<qualify \"\"\"$:/state/flibbles/relink/tables/$title$\"\"\">>>\n<tr><th class=\"tc-relink-header-plugin\" colspan=<<column-count>> >\n<$reveal type=\"nomatch\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} ''$title$''\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<table-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}} ''$title$''\n</$button>\n</$reveal>\n</th></tr>\n<$list\n\tvariable=\"signature\"\n\tfilter=\"[relink:signatures<__plugin__>prefix<__category__>sort[]]\">\n<$vars key={{{ [<signature>removeprefix<__category__>removeprefix[/]] }}} >\n<$tiddler tiddler={{{[<signature>relink:source[]]}}} >\n<$reveal tag=\"tr\" type=\"match\" state=<<table-state>> text=\"yes\" default=\"\"\"$default-table-state$\"\"\">\n<$macrocall $name=<<__list-row-macro__>> signature=<<signature>> />\n<td class=\"tc-relink-column-type\">{{||$:/plugins/flibbles/relink/ui/components/select-fieldtype}}</td>\n<td class=\"tc-relink-column-delete\">{{||$:/plugins/flibbles/relink/ui/components/button-delete}}</td>\n</$reveal>\n</$tiddler>\n</$vars>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define tables(category, list-row-macro, header-list)\n<$vars\n\tcolumn-count={{{[enlist<__header-list__>] [[DeleteColumn]] +[count[]]}}}>\n\n<table class=\"tc-relink-whitelist\"><tbody>\n<tr>\n<$list variable=\"header\" filter=\"[enlist<__header-list__>butlast[]]\"><th><<header>></th></$list>\n<!-- We have the last column extend into the delete/link column, which is unlabeled. -->\n<th colspan=2><$text text={{{ [enlist<__header-list__>last[]] }}} /></th>\n</tr>\n\n<<.make-table Custom \"\" yes>>\n\n<$list\n\tfilter=\"[plugin-type[plugin]![$:/core]![$:/plugins/flibbles/relink]]\">\n<$set name=\"subtitle\" value={{!!description}} emptyValue={{!!title}} >\n<$macrocall $name=\".make-table\" title=<<subtitle>> plugin=<<currentTiddler>> />\n</$set>\n</$list>\n\n<<.make-table Core \"$:/plugins/flibbles/relink\">>\n\n</tbody></table>\n</$vars>\n\\end\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Attributes": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Attributes",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Attributes/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-attr() $:/config/flibbles/relink/attributes/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define element-name-tiddler() $:/state/flibbles/relink/element-name\n\\define attribute-name-tiddler() $:/state/flibbles/relink/attribute-name\n\n\\define row()\n<$set name=\"element\"\n filter=\"[<key>splitbefore[/]removesuffix[/]]\">\n<$set name=\"attribute\"\n filter=\"[<key>removeprefix<element>removeprefix[/]]\">\n<td><$text text=<<element>> /></td>\n<td><$text text=<<attribute>> /></td>\n</$set></$set>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Attributes}}\n\n<em class=\"tc-edit\">Add a new attribute:</em>\n<$edit-text\n\ttiddler=<<element-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"widget/element\" />\n<$edit-text\n\ttiddler=<<attribute-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"attribute\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<element-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<attribute-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewAttribute/Hint}}\n\taria-label={{$(lingo-base)$NewAttribute/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-attribute\"\n\telement={{$(element-name-tiddler)$}}\n\tattribute={{$(attribute-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<attribute-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<element-name-tiddler>> />\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<attribute-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<element-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewAttribute/Caption}}/>\n</$button>\n</$reveal>\n\n<$macrocall\n\t$name=tables\n\tcategory=\"attributes\"\n\theader-list=\"[[Widget/HTML Element]] Attribute Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Fields": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Fields",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Fields/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define field-name-tiddler() $:/state/flibbles/relink/field-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Fields}}\n\n<em class=\"tc-edit\">Add a new field:</em>\n<$edit-text\n\ttiddler=<<field-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"field name\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<field-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewField/Hint}}\n\taria-label={{$(lingo-base)$NewField/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-field\"\n\tfield={{$(field-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<field-name-tiddler>> />\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<field-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewField/Caption}}/>\n</$button>\n</$reveal>\n\n\n<$macrocall\n\t$name=tables\n\tcategory=\"fields\"\n\theader-list=\"[[Field Name]] [[Field Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Macros": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Macros",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Macros/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define prefix-macro() $:/config/flibbles/relink/macros/\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define macro-name-tiddler() $:/state/flibbles/relink/macro-name\n\\define parameter-name-tiddler() $:/state/flibbles/relink/parameter-name\n\n\\define row()\n<$set name=\"parameter\"\n filter=\"[<key>relink:splitafter[/]]\">\n<$set name=\"macro\"\n filter=\"[<key>removesuffix<parameter>removesuffix[/]]\">\n<td><$text text=<<macro>> /></td>\n<td><$text text=<<parameter>> /></td>\n</$set></$set>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Macros}}\n\n<em class=\"tc-edit\">Add a new macro parameter:</em>\n<$edit-text\n\ttiddler=<<macro-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"macro\" />\n<$edit-text\n\ttiddler=<<parameter-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"parameter\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<macro-name-tiddler>> >\n<$reveal type=\"nomatch\" text=\"\" state=<<parameter-name-tiddler>> >\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewParameter/Hint}}\n\taria-label={{$(lingo-base)$NewParameter/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-parameter\"\n\tmacro={{$(macro-name-tiddler)$}}\n\tparameter={{$(parameter-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<parameter-name-tiddler>> />\n<$action-deletetiddler $tiddler=<<macro-name-tiddler>> />\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<parameter-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<macro-name-tiddler>> >\n<$button>\n<$text text={{$(lingo-base)$NewParameter/Caption}}/>\n</$button>\n</$reveal>\n\n\n<$macrocall\n\t$name=tables\n\tcategory=\"macros\"\n\theader-list=\"Macro Parameter Type\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/configuration/Operators": {
"title": "$:/plugins/flibbles/relink/ui/configuration/Operators",
"caption": "{{$:/plugins/flibbles/relink/language/ui/Operators/Caption}}",
"tags": "$:/tags/flibbles/relink/Configuration",
"text": "\\import $:/plugins/flibbles/relink/ui/components/tables\n\\define lingo-base() $:/plugins/flibbles/relink/language/Buttons/\n\\define operator-name-tiddler() $:/state/flibbles/relink/operator-name\n\n\\define row()\n<td><$text text=<<key>> /></td>\n\\end\n\\define body()\n\n{{$:/plugins/flibbles/relink/language/Help/Operators}}\n\n<em class=\"tc-edit\">Add a new filter operator:</em>\n<$edit-text\n\ttiddler=<<operator-name-tiddler>>\n\ttag=\"input\"\n\tdefault=\"\"\n\tplaceholder=\"operator name\" />\n<$reveal type=\"nomatch\" text=\"\" state=<<operator-name-tiddler>>>\n<$relinkmangler>\n<$button\n\ttooltip={{$(lingo-base)$NewOperator/Hint}}\n\taria-label={{$(lingo-base)$NewOperator/Caption}}>\n<$action-sendmessage\n\t$message=\"relink-add-operator\"\n\toperator={{$(operator-name-tiddler)$}} />\n<$action-deletetiddler $tiddler=<<operator-name-tiddler>> />\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$relinkmangler>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=<<operator-name-tiddler>>>\n<$button>\n<$text text={{$(lingo-base)$NewOperator/Caption}}/>\n</$button>\n</$reveal>\n\n<$macrocall\n\t$name=tables\n\tcategory=\"operators\"\n\theader-list=\"[[Filter Operator]] [[Operand Type]]\"\n\tlist-row-macro=\"row\" />\n\\end\n\n<<body>>\n"
},
"$:/plugins/flibbles/relink/ui/stylesheet.css": {
"title": "$:/plugins/flibbles/relink/ui/stylesheet.css",
"text": ".tc-relink-references {\n}\n\n.tc-relink-references-table {\n\twidth: 100%;\n\tborder: none;\n}\n\n.tc-relink-references-table td {\n\tborder-left: none;\n}\n\n.tc-relink-references-table tr:first-child td {\n\tborder-top: none;\n}\n\n.tc-relink-references-title {\n\ttext-align: left;\n\tvertical-align: top;\n}\n\n.tc-relink-references-occurrence {\n\tfont-style: italic;\n\ttext-align: left;\n\tfont-weight: 200;\n\tpadding-left: 25px;\n\tvertical-align: top;\n}\n\n.tc-relink-header-plugin {\n\ttext-align: left;\n}\n\n.tc-relink-header-plugin button {\n\twidth: 100%\n}\n\n.tc-relink-column-type {\n\twidth: 8em;\n}\n\n.tc-relink-column-type select {\n\twidth: 100%;\n}\n\n.tc-relink-column-delete {\n\tborder-left: none;\n\ttext-align: left;\n}\n\n.tc-relink-column-delete button {\n\tpadding-left: 1em;\n}\n\n.tc-relink-impossible a.tc-tiddlylink {\n\tcolor: red;\n}\n",
"tags": "$:/tags/Stylesheet",
"type": "text/css"
}
}
}
aliceblue: #F0F8FF
antiquewhite: #FAEBD7
aqua: #00FFFF
aquamarine: #7FFFD4
azure: #F0FFFF
beige: #F5F5DC
bisque: #FFE4C4
black: #000000
blanchedalmond: #FFEBCD
blue: #0000FF
blueviolet: #8A2BE2
brown: #A52A2A
burlywood: #DEB887
cadetblue: #5F9EA0
chartreuse: #7FFF00
chocolate: #D2691E
coral: #FF7F50
cornflowerblue: #6495ED
cornsilk: #FFF8DC
crimson: #DC143C
cyan: #00FFFF
darkblue: #00008B
darkcyan: #008B8B
darkgoldenrod: #B8860B
darkgray: #A9A9A9
darkgreen: #006400
darkgrey: #A9A9A9
darkkhaki: #BDB76B
darkmagenta: #8B008B
darkolivegreen: #556B2F
darkorange: #FF8C00
darkorchid: #9932CC
darkred: #8B0000
darksalmon: #E9967A
darkseagreen: #8FBC8F
darkslateblue: #483D8B
darkslategray: #2F4F4F
darkslategrey: #2F4F4F
darkturquoise: #00CED1
darkviolet: #9400D3
deeppink: #FF1493
deepskyblue: #00BFFF
dimgray: #696969
dimgrey: #696969
dodgerblue: #1E90FF
firebrick: #B22222
floralwhite: #FFFAF0
forestgreen: #228B22
fuchsia: #FF00FF
gainsboro: #DCDCDC
ghostwhite: #F8F8FF
gold: #FFD700
goldenrod: #DAA520
gray: #808080
green: #008000
greenyellow: #ADFF2F
grey: #808080
honeydew: #F0FFF0
hotpink: #FF69B4
indianred: #CD5C5C
indigo: #4B0082
ivory: #FFFFF0
khaki: #F0E68C
lavender: #E6E6FA
lavenderblush: #FFF0F5
lawngreen: #7CFC00
lemonchiffon: #FFFACD
lightblue: #ADD8E6
lightcoral: #F08080
lightcyan: #E0FFFF
lightgoldenrodyellow: #FAFAD2
lightgray: #D3D3D3
lightgreen: #90EE90
lightgrey: #D3D3D3
lightpink: #FFB6C1
lightsalmon: #FFA07A
lightseagreen: #20B2AA
lightskyblue: #87CEFA
lightslategray: #778899
lightslategrey: #778899
lightsteelblue: #B0C4DE
lightyellow: #FFFFE0
lime: #00FF00
limegreen: #32CD32
linen: #FAF0E6
magenta: #FF00FF
maroon: #800000
mediumaquamarine: #66CDAA
mediumblue: #0000CD
mediumorchid: #BA55D3
mediumpurple: #9370DB
mediumseagreen: #3CB371
mediumslateblue: #7B68EE
mediumspringgreen: #00FA9A
mediumturquoise: #48D1CC
mediumvioletred: #C71585
midnightblue: #191970
mintcream: #F5FFFA
mistyrose: #FFE4E1
moccasin: #FFE4B5
navajowhite: #FFDEAD
navy: #000080
oldlace: #FDF5E6
olive: #808000
olivedrab: #6B8E23
orange: #FFA500
orangered: #FF4500
orchid: #DA70D6
palegoldenrod: #EEE8AA
palegreen: #98FD98
paleturquoise: #AFEEEE
palevioletred: #DB7093
papayawhip: #FFEFD5
peachpuff: #FFDAB9
peru: #CD853F
pink: #FFC0CD
plum: #DDA0DD
powderblue: #B0E0E6
purple: #800080
red: #FF0000
rosybrown: #BC8F8F
royalblue: #4169E1
saddlebrown: #8B4513
salmon: #FA8072
sandybrown: #F4A460
seagreen: #2E8B57
seashell: #FFF5EE
sienna: #A0522D
silver: #C0C0C0
skyblue: #87CEEB
slateblue: #6A5ACD
slategray: #708090
slategrey: #708090
snow: #FFFAFA
springgreen: #00FF7F
steelblue: #4682B4
tan: #D2B48C
teal: #008080
thistle: #D8BFD8
tomato: #FF6347
turquoise: #40E0D0
saddlebrown: #8B4513
violet: #EE82EE
wheat: #F5DEB3
white: #FFFFFF
whitesmoke: #F5F5F5
yellow: #FFFF00
yellowgreen: #9ACD32
iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAADp0lEQVR4Ae3aQWpbWxQFUc1/aCZTEg5GLCiEuB2p8RC7EapC+QW+9LetE3L7+fn3+/zrfr//Pv96/pq/3z9/zd/v93XvvS63vYDvvYCffv32hlxs6XtD9oY8fj59eurf8ufd9oP5Wh9E9oZc7JPh3pC9IY+7Z98qX3+r3EKutpBv+XTyLf8du0N2h+wOseZXP0e3kC1kCzku5NVsPFDu615/TP3067KPvVf72Pvpd3h/3ntL2kK2kP3Vie8i/RnN97F3H3v3sdcaLKXcQraQLWQLyb8z82KU/ZbB27lWamU7b+dauY+9+9i7j70WYSnlFrKFbCFbSP5BuRej7LcM3s61UivbeTvXyt0hu0N2h1iEpZRbyBayhWwhu9QfK/C90f8RpVa283aulVrZztu5VmplO2/nWqmV7XyH4Q7DHYZWYhXlFrKFbCHHhXQu3AOlVrbzdq6VWtnO27lWamU7b+daqZXtvJ1rpVa28x2GOwx3GFqJVZRbyBayhRwX0rlwD5Ra2c7buVZqZTtv51qple28nWulVrbzdq6VWtnOd4fsDtkdYiVWUW4hW8gWclxI58I9UGplO2/nWqmV7byda6VWtvN2rpVa2c7buVZqZTvfHbI7ZHeIlVhFuYVsIVvIcSGdC/dAqZXtvJ1rpVa283aulVrZztu5VmplO2/nWqmV7Xx3yO6Q3SFWYhXlFrKFbCHHhXQu3AOlVrbzdq6VWtnO27lWamU7b+daqZXtvJ1rpVa2890hu0N2h1iJVZRbyBayhRwX0rlwD5Ra2c7buVZqZTtv51qple28nWulVrbzdq6VWtnOd4fsDtkdYiVWUW4hW8gWclxI58I9UGplO2/nWqmV7byda6VWtvN2rpVa2c7buVZqZTvfHbI7ZHeIlVhFuYVsIVvIcSGdC/dAqZXtvJ1rpVa283aulVrZztu5VmplO2/nWqmV7Xx3yO6Q3SFWYhXlFrKFbCHHhXQu3AOlVrbzdq6VWtnO27lWamU7b+daqZXtvJ1rpVa2890hu0N2h1iJVZRbyBayhRwX0rlwD5Ra2c7buVZqZTtv51qple28nWulVrbzdq6VWtnOd4fsDtkdYiVWUW4hW8gWclxI58I9UGplO2/nWqmV7byda6VWtvN2rpVa2c7buVZqZTvfHbI7ZHeIlVhFuYVsIVvIcSGdC/dAqZXtvJ1rpVa283aulVrZztu5VmplO2/nWqmV7Xx3yO6Q3SFWYhXlFrKFbCGnhfwHdSo8ipNSsUQAAAAASUVORK5CYII=
\define btn-background()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
\end
\define btn-stripe(color1:#000, color2:#fff, pct:0.5, tidName, indexName)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=btn-style text=<<btn-background>> >
<$button class="tc-btn-invisible colorplay-stripbtn" style=<<btn-style>> tooltip=<<color>> >
<$action-setfield $tiddler=<<__tidName__>> $index=<<__indexName__>> $value=<<color>> />
<$list filter="[<__tidName__>getindex<__indexName__>match<color>]" variable=null>
×
</$list>
</$button>
</$wikify>
</$vars>
\end
\define blend-colors-stripe(color, low:"20", high:"40", tidName, indexName)
<div style="display:flex">
<$list filter="[range[$low$,60,10]]" variable=pct>
<$macrocall $name=btn-stripe color1=#FFF color2=<<__color__>> pct=<<pct>> tidName=<<__tidName__>> indexName=<<__indexName__>>/>
</$list>
<$list filter="[range[0,$high$,10]]" variable=pct>
<$macrocall $name=btn-stripe color1=<<__color__>> color2=#000 pct=<<pct>> tidName=<<__tidName__>> indexName=<<__indexName__>>/></$list>
</div>
\end
\define btn-background() background-color:$(color)$;
\define btn-stripe(color1:#000, color2:#fff, pct:0.5, tidName, indexName)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=btn-style text=<<btn-background>> >
<$button class="tc-btn-invisible colorplay-stripbtn" style=<<btn-style>> tooltip=<<color>> >
<$action-setfield $tiddler=<<__tidName__>> $index=<<__indexName__>> $value=<<color>> />
</$button>
</$wikify>
</$vars>
\end
\define blend-colors-stripe(color, low:"20", high:"40", tidName, indexName)
<div style="display:flex">
<$list filter="[range[$low$,60,10]]" variable=pct>
<$macrocall $name=btn-stripe color1=#FFF color2=<<__color__>> pct=<<pct>> tidName=<<__tidName__>> indexName=<<__indexName__>>/>
</$list>
<$list filter="[range[0,$high$,10]]" variable=pct>
<$macrocall $name=btn-stripe color1=<<__color__>> color2=#000 pct=<<pct>> tidName=<<__tidName__>> indexName=<<__indexName__>>/></$list>
</div>
\end
/*\
title: macros/blend.js
type: application/javascript
module-type: macro
Generate a blend of two hex colors.
@color1: the main color
@color2: the second color which is blend with the first
@percentage: the percentage of second color
url: https://coderwall.com/p/z8uxzw/javascript-color-blender
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "blend";
exports.params = [
{name: "colo1"},
{name: "color2"},
{name: "percentage"}
];
/*
Run the macro
*/
exports.run = function(color1, color2, percentage) {
// check input
color1 = color1 || '#000000';
color2 = color2 || '#ffffff';
percentage = percentage || 50;
percentage = percentage / 100; /*convert to fraction*/
// 1: validate input, make sure we have provided a valid hex
if (color1.length != 4 && color1.length != 7)
return 'colors must be provided as hexes';
if (color2.length != 4 && color2.length != 7)
return 'colors must be provided as hexes';
if (percentage > 1 || percentage < 0)
return 'percentage must be between 0 and 1';
// 2: check to see if we need to convert 3 char hex to 6 char hex, else slice off hash
// the three character hex is just a representation of the 6 hex where each character is repeated
// ie: #060 => #006600 (green)
if (color1.length == 4)
color1 = color1[1] + color1[1] + color1[2] + color1[2] + color1[3] + color1[3];
else
color1 = color1.substring(1);
if (color2.length == 4)
color2 = color2[1] + color2[1] + color2[2] + color2[2] + color2[3] + color2[3];
else
color2 = color2.substring(1);
//console.log('valid: c1 => ' + color1 + ', c2 => ' + color2);//
// 3: we have valid input, convert colors to rgb
color1 = [parseInt(color1[0] + color1[1], 16), parseInt(color1[2] + color1[3], 16), parseInt(color1[4] + color1[5], 16)];
color2 = [parseInt(color2[0] + color2[1], 16), parseInt(color2[2] + color2[3], 16), parseInt(color2[4] + color2[5], 16)];
//console.log('hex -> rgba: c1 => [' + color1.join(', ') + '], c2 => [' + color2.join(', ') + ']');//
// 4: blend
var color3 = [
(1 - percentage) * color1[0] + percentage * color2[0],
(1 - percentage) * color1[1] + percentage * color2[1],
(1 - percentage) * color1[2] + percentage * color2[2]
];
// console.log('c3 => [' + color3.join(', ') + ']');//
// 5: convert to hex
color3 = '#' + int_to_hex(color3[0]) + int_to_hex(color3[1]) + int_to_hex(color3[2]);
// console.log(color3);//
// return hex
return color3;
};
/*
convert a Number to a two character hex string
must round, or we will end up with more digits than expected (2)
note: can also result in single digit, which will need to be padded with a 0 to the left
@param: num => the number to conver to hex
@returns: string => the hex representation of the provided number
*/
function int_to_hex(num)
{
var hex = Math.round(num).toString(16);
if (hex.length == 1)
hex = '0' + hex;
return hex;
}
})();
\define color-chooser-stripe(paletteTid, colorScheme)
Search in selectors <$edit-text tiddler=<<tmpSearchTid>> tag=input default=""/>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[enlist<mainSelectors>sort[title]]" > main selectors</$radio>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[[$:/palettes/Vanilla]indexes[]sort[title]]"> all selectors <small>takes time, be patient</small></$radio>
<$vars searchTerm={{{[<tmpSearchTid>get[text]]}}}
Selectors={{{[<tmpRadioSelector>get[text]]}}}
paletteTempTid={{{[<__paletteTid__>addsuffix[/temp]]}}}
>
<table style="width:100%;table-layout: fixed;">
<tr>
<th style="min-width:220px;">Selector</th>
<th style="width:110px;">Moods</th>
<th>Shades and Tints</th>
<th style="width:80px;">Selected</th>
<th style="width:40px;">Del</th>
</tr>
<$list filter="[subfilter<Selectors>] +[search<searchTerm>]" variable=curIndex>
<tr>
<td><$text text=<<curIndex>> /></td> <td><$macrocall $name=setColor tidName=<<__paletteTid__>> indexName=<<curIndex>> /></td>
<td><$macrocall $name=blend-colors-stripe color={{{ [<paletteTempTid>getindex<curIndex>] ~[[#000]]}}} tidName=<<__paletteTid__>> indexName=<<curIndex>> /></td>
<$wikify name=tdStyle text=<<td-selected-style>> >
<td style=<<tdStyle>> ><$text text={{{ [<__paletteTid__>getindex<curIndex>] }}} /></td>
</$wikify>
<td style="text-align:center;"><$button class="tc-btn-invisible colorplay-btn" actions="""<$action-setfield $tiddler=<<__paletteTid__>> $index=<<curIndex>> />""">{{$:/core/images/close-button}}</$button></td>
</tr>
</$list>
</table>
</$vars>
\end
\define td-selected-style()
<$vars slColor={{{ [<__paletteTid__>getindex<curIndex>] }}} >
background-color:<<slColor>>;
color: <$macrocall $name=contrastcolour target=<<slColor>> colourA=black colourB=white/>;
</$vars>
\end
\define setColor(tidName, indexName)
<$list filter="[<__colorScheme__>indexes[]]" variable=mood>
<$vars moodcolor = {{{[<__colorScheme__>getindex<mood>]}}} >
<$button class="tc-btn-invisible" setTitle=<<paletteTempTid>> setIndex=<<__indexName__>> setTo=<<moodcolor>> >
<$macrocall $name="circle"
color={{{[<__colorScheme__>getindex<mood>]}}}
selected={{{ [<paletteTempTid>getindex<__indexName__>match<moodcolor>then[yes]else[no]] }}} />
</$button>
</$vars>
</$list>
\end
\define color-chooser-stripe(paletteTid, colorScheme)
Search in selectors <$edit-text tiddler=<<tmpSearchTid>> tag=input default=""/>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[enlist<mainSelectors>sort[title]]" > main selectors</$radio>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[[$:/palettes/Vanilla]indexes[]sort[title]]"> all selectors <small>takes time, be patient</small></$radio>
<$vars searchTerm={{{[<tmpSearchTid>get[text]]}}}
Selectors={{{[<tmpRadioSelector>get[text]]}}}
paeletteTempTid={{{[<__paletteTid__>addsuffix[/temp]]}}}
>
<table style="width:100%;table-layout: fixed;">
<tr>
<th style="min-width:220px;">Selector</th>
<th style="width:110px;">Moods</th>
<th>Shades and Tints</th>
<th style="width:80px;">Selected</th>
<th style="width:40px;">Del</th>
</tr>
<$list filter="[subfilter<Selectors>] +[search<searchTerm>]" variable=curIndex>
<tr>
<td><$text text=<<curIndex>> /></td> <td><$macrocall $name=setColor tidName=<<__paletteTid__>> indexName=<<curIndex>> /></td>
<td><$macrocall $name=blend-colors-stripe color={{{ [<paeletteTempTid>getindex<curIndex>] ~[[#000]]}}} tidName=<<__paletteTid__>> indexName=<<curIndex>> /></td>
<$wikify name=tdStyle text=<<td-selected-style>> >
<td style=<<tdStyle>> ><$text text={{{ [<__paletteTid__>getindex<curIndex>] }}} /></td>
</$wikify>
<td style="text-align:center;"><$button class="tc-btn-invisible colorplay-btn" actions="""<$action-setfield $tiddler=<<__paletteTid__>> $index=<<curIndex>> />""">{{$:/core/images/close-button}}</$button></td>
</tr>
</$list>
</table>
</$vars>
\end
\define td-selected-style()
<$vars slColor={{{ [<__paletteTid__>getindex<curIndex>] }}} >
background-color:<<slColor>>;
color: <$macrocall $name=contrastcolour target=<<slColor>> colourA=black colourB=white/>;
</$vars>
\end
\define setColor(tidName, indexName)
<$list filter="[<__colorScheme__>indexes[]]" variable=mood>
<$button class="tc-btn-invisible" setTitle=<<paeletteTempTid>> setIndex=<<__indexName__>> setTo= {{{ [<__colorScheme__>getindex<mood>]}}} >
<$macrocall $name="circle" color={{{ [<__colorScheme__>getindex<mood>]}}} />
</$button>
</$list>
\end
/*\
title: macros/contrast.js
type: application/javascript
module-type: macro
url: https://dev.to/alvaromontoro/building-your-own-color-contrast-checker-4j7o
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "contrast";
exports.params = [
{name: "hex1"},
{name: "hex2"}
];
/*
Run the macro
*/
exports.run = function(hex1, hex2) {
const rgb1 = hexToRgb(hex1);
const rgb2 = hexToRgb(hex2);
if(!rgb1 || !rgb2){
return null;
}
const luminanceFront = luminanace(rgb1.r, rgb1.g, rgb1.b);
const luminanceBack = luminanace(rgb2.r, rgb2.g, rgb2.b);
return luminanceBack > luminanceFront
? ((luminanceFront + 0.05) / (luminanceBack + 0.05))
: ((luminanceBack + 0.05) / (luminanceFront + 0.05));
}
/* the following functions are adapted from https://stackoverflow.com/a/9733420/3695983 */
function luminanace(r, g, b) {
var a = [r, g, b].map(function (v) {
v /= 255;
return v <= 0.03928
? v / 12.92
: Math.pow( (v + 0.055) / 1.055, 2.4 );
});
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
}
// function from https://stackoverflow.com/a/5624139/3695983
function hexToRgb(hex) {
let r = 0, g = 0, b = 0;
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
hex = hex.replace(shorthandRegex, function(m, r, g, b) {
return r + r + g + g + b + b;
});
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
})();
\define circle-old(color)
<svg width="20" height="20" style="vertical-align: middle;">
<circle cx="10" cy="10" r="9" stroke="grey" fill=<<__color__>>/>
</svg>
\end
\define circle(color, selected:"no")
<svg width="20" height="20" style="vertical-align: middle;">
<circle cx="10" cy="10" r="9" stroke="grey" fill=<<__color__>>/>
<$list filter="[<__selected__>match[yes]]" variable=null>
<circle cx=10 cy=10 r=6 stroke="white" stroke-width=1.5 fill=none/>
</$list>
</svg>
\end
/*\
title: macros/hex2hsl
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hex2hsl";
exports.params = [
{name: "H"}
];
/*
Run the macro
*/
exports.run = function(H) {
// Convert hex to RGB first
let r = 0, g = 0, b = 0;
if (H.length == 4) {
r = "0x" + H[1] + H[1];
g = "0x" + H[2] + H[2];
b = "0x" + H[3] + H[3];
} else if (H.length == 7) {
r = "0x" + H[1] + H[2];
g = "0x" + H[3] + H[4];
b = "0x" + H[5] + H[6];
}
// Then to HSL
r /= 255;
g /= 255;
b /= 255;
let cmin = Math.min(r,g,b),
cmax = Math.max(r,g,b),
delta = cmax - cmin,
h = 0,
s = 0,
l = 0;
if (delta == 0)
h = 0;
else if (cmax == r)
h = ((g - b) / delta) % 6;
else if (cmax == g)
h = (b - r) / delta + 2;
else
h = (r - g) / delta + 4;
h = Math.round(h * 60);
if (h < 0)
h += 360;
l = (cmax + cmin) / 2;
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
s = +(s * 100).toFixed(1);
l = +(l * 100).toFixed(1);
return "hsl(" + h + "," + s + "%," + l + "%)";
}
})();
/*\
title: macros/hex2rgb
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hex2rgb";
exports.params = [
{name: "H"}
];
/*
Run the macro
*/
exports.run = function(H) {
let r = 0, g = 0, b = 0;
// 3 digits
if (H.length == 4) {
r = "0x" + H[1] + H[1];
g = "0x" + H[2] + H[2];
b = "0x" + H[3] + H[3];
// 6 digits
} else if (H.length == 7) {
r = "0x" + H[1] + H[2];
g = "0x" + H[3] + H[4];
b = "0x" + H[5] + H[6];
}
return "rgb("+ +r + "," + +g + "," + +b + ")";
}
})();
/*\
title: macros/hexa2hsla
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hexa2hsla";
exports.params = [
{name: "H"}
];
/*
Run the macro
*/
exports.run = function(H) {
// Convert hexa to RGBA first
let r = 0, g = 0, b = 0, a = 1;
if (H.length == 5) {
r = "0x" + H[1] + H[1];
g = "0x" + H[2] + H[2];
b = "0x" + H[3] + H[3];
a = "0x" + H[4] + H[4];
} else if (H.length == 9) {
r = "0x" + H[1] + H[2];
g = "0x" + H[3] + H[4];
b = "0x" + H[5] + H[6];
a = "0x" + H[7] + H[8];
}
// Then to HSL
r /= 255;
g /= 255;
b /= 255;
let cmin = Math.min(r,g,b),
cmax = Math.max(r,g,b),
delta = cmax - cmin,
h = 0,
s = 0,
l = 0;
if (delta == 0)
h = 0;
else if (cmax == r)
h = ((g - b) / delta) % 6;
else if (cmax == g)
h = (b - r) / delta + 2;
else
h = (r - g) / delta + 4;
h = Math.round(h * 60);
if (h < 0)
h += 360;
l = (cmax + cmin) / 2;
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
s = +(s * 100).toFixed(1);
l = +(l * 100).toFixed(1);
a = (a / 255).toFixed(3);
return "hsla("+ h + "," + s + "%," + l + "%," + a + ")";
}
})();
/*\
title: macros/hexa2rgba
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hexa2rgba";
exports.params = [
{name: "h"}
];
/*
Run the macro
*/
exports.run = function(h) {
let r = 0, g = 0, b = 0, a = 1;
if (h.length == 5) {
r = "0x" + h[1] + h[1];
g = "0x" + h[2] + h[2];
b = "0x" + h[3] + h[3];
a = "0x" + h[4] + h[4];
} else if (h.length == 9) {
r = "0x" + h[1] + h[2];
g = "0x" + h[3] + h[4];
b = "0x" + h[5] + h[6];
a = "0x" + h[7] + h[8];
}
a = +(a / 255).toFixed(3);
return "rgba(" + +r + "," + +g + "," + +b + "," + a + ")";
}
})();
/*\
title: macros/hsl2hex
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hsl2hex";
exports.params = [
{name: "h"},
{name: "s"},
{name: "l"}
];
/*
Run the macro
*/
exports.run = function(h,s,l) {
s /= 100;
l /= 100;
let c = (1 - Math.abs(2 * l - 1)) * s,
x = c * (1 - Math.abs((h / 60) % 2 - 1)),
m = l - c/2,
r = 0,
g = 0,
b = 0;
if (0 <= h && h < 60) {
r = c; g = x; b = 0;
} else if (60 <= h && h < 120) {
r = x; g = c; b = 0;
} else if (120 <= h && h < 180) {
r = 0; g = c; b = x;
} else if (180 <= h && h < 240) {
r = 0; g = x; b = c;
} else if (240 <= h && h < 300) {
r = x; g = 0; b = c;
} else if (300 <= h && h < 360) {
r = c; g = 0; b = x;
}
// Having obtained RGB, convert channels to hex
r = Math.round((r + m) * 255).toString(16);
g = Math.round((g + m) * 255).toString(16);
b = Math.round((b + m) * 255).toString(16);
// Prepend 0s, if necessary
if (r.length == 1){
r = "0" + r;
}if (g.length == 1){
g = "0" + g;
}if (b.length == 1){
b = "0" + b;}
return "#" + r + g + b;
}
})();
/*\
title: macros/hsl2rgb
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hsl2rgb";
exports.params = [
{name: "h"},
{name: "s"},
{name: "l"}
];
/*
Run the macro
*/
exports.run = function(h,s,l) {
// Must be fractions of 1
s /= 100;
l /= 100;
let c = (1 - Math.abs(2 * l - 1)) * s,
x = c * (1 - Math.abs((h / 60) % 2 - 1)),
m = l - c/2,
r = 0,
g = 0,
b = 0;
if (0 <= h && h < 60) {
r = c; g = x; b = 0;
} else if (60 <= h && h < 120) {
r = x; g = c; b = 0;
} else if (120 <= h && h < 180) {
r = 0; g = c; b = x;
} else if (180 <= h && h < 240) {
r = 0; g = x; b = c;
} else if (240 <= h && h < 300) {
r = x; g = 0; b = c;
} else if (300 <= h && h < 360) {
r = c; g = 0; b = x;
}
r = Math.round((r + m) * 255);
g = Math.round((g + m) * 255);
b = Math.round((b + m) * 255);
return "rgb(" + r + "," + g + "," + b + ")";
}
})();
/*\
title: macros/hsla2hexa
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hsla2hexa";
exports.params = [
{name: "h"},
{name: "s"},
{name: "l"},
{name: "a"}
];
/*
Run the macro
*/
exports.run = function(h, s, l, a) {
s /= 100;
l /= 100;
let c = (1 - Math.abs(2 * l - 1)) * s,
x = c * (1 - Math.abs((h / 60) % 2 - 1)),
m = l - c/2,
r = 0,
g = 0,
b = 0;
if (0 <= h && h < 60) {
r = c; g = x; b = 0;
} else if (60 <= h && h < 120) {
r = x; g = c; b = 0;
} else if (120 <= h && h < 180) {
r = 0; g = c; b = x;
} else if (180 <= h && h < 240) {
r = 0; g = x; b = c;
} else if (240 <= h && h < 300) {
r = x; g = 0; b = c;
} else if (300 <= h && h < 360) {
r = c; g = 0; b = x;
}
// Having obtained RGB, convert channels to hex
r = Math.round((r + m) * 255).toString(16);
g = Math.round((g + m) * 255).toString(16);
b = Math.round((b + m) * 255).toString(16);
a = Math.round(a * 255).toString(16);
if (r.length == 1)
r = "0" + r;
if (g.length == 1)
g = "0" + g;
if (b.length == 1)
b = "0" + b;
if (a.length == 1)
a = "0" + a;
return "#" + r + g + b + a;
}
})();
/*\
title: macros/hsla2rgba
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "hsla2rgba";
exports.params = [
{name: "h"},
{name: "s"},
{name: "l"},
{name: "a"}
];
/*
Run the macro
*/
exports.run = function(h, s, l, a) {
// Must be fractions of 1
s /= 100;
l /= 100;
let c = (1 - Math.abs(2 * l - 1)) * s,
x = c * (1 - Math.abs((h / 60) % 2 - 1)),
m = l - c/2,
r = 0,
g = 0,
b = 0;
if (0 <= h && h < 60) {
r = c; g = x; b = 0;
} else if (60 <= h && h < 120) {
r = x; g = c; b = 0;
} else if (120 <= h && h < 180) {
r = 0; g = c; b = x;
} else if (180 <= h && h < 240) {
r = 0; g = x; b = c;
} else if (240 <= h && h < 300) {
r = x; g = 0; b = c;
} else if (300 <= h && h < 360) {
r = c; g = 0; b = x;
}
r = Math.round((r + m) * 255);
g = Math.round((g + m) * 255);
b = Math.round((b + m) * 255);
return "rgba(" + r + "," + g + "," + b + "," + a + ")";
}
})();
\define name2hex(color)
<$vars color={{{[<__color__>lowercase[]]}}}><$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]getindex<color>]" emptyMessage="color is not found"><$text text=<<currentTiddler>> /></$list></$vars>
\end
\define name2hsl(color)
<$vars color={{{[<__color__>lowercase[]]}}}>
<$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]getindex<color>]" emptyMessage="color is not found">
<$macrocall $name=hex2hsl H=<<currentTiddler>> />
</$list>
</$vars>
\end
\define rectangle(color)
<svg width="2em" height="2em" style="vertical-align: middle;">
<rect width="2em" height="2em" stroke="grey" fill=<<__color__>>/>
</svg>
\end
/*\
title: macros/rgb2hex
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "rgb2hex";
exports.params = [
{name: "r"},
{name: "g"},
{name: "b"}
];
/*
Run the macro
*/
exports.run = function(r, g, b) {
try {
var rHex = parseInt(r).toString(16).padStart(2, '0');
var gHex = parseInt(g).toString(16).padStart(2, '0');
var bHex = parseInt(b).toString(16).padStart(2, '0');
} catch (e) {
return false;
}
if (rHex.length > 2 || gHex.length > 2 || bHex.length > 2) return false;
return '#' + rHex + gHex + bHex;
}
})();
/*\
title: macros/rgb2hsl
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "rgb2hsl";
exports.params = [
{name: "r"},
{name: "g"},
{name: "b"}
];
/*
Run the macro
*/
exports.run = function(r, g, b) {
// Make r, g, and b fractions of 1
r /= 255;
g /= 255;
b /= 255;
// Find greatest and smallest channel values
let cmin = Math.min(r,g,b),
cmax = Math.max(r,g,b),
delta = cmax - cmin,
h = 0,
s = 0,
l = 0;
// Calculate hue
// No difference
if (delta == 0)
h = 0;
// Red is max
else if (cmax == r)
h = ((g - b) / delta) % 6;
// Green is max
else if (cmax == g)
h = (b - r) / delta + 2;
// Blue is max
else
h = (r - g) / delta + 4;
h = Math.round(h * 60);
// Make negative hues positive behind 360°
if (h < 0)
h += 360;
// Calculate lightness
l = (cmax + cmin) / 2;
// Calculate saturation
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
// Multiply l and s by 100
s = +(s * 100).toFixed(1);
l = +(l * 100).toFixed(1);
return "hsl(" + h + "," + s + "%," + l + "%)";
}
})();
/*\
title: macros/rgba2hexa
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "rgba2hexa";
exports.params = [
{name: "r"},
{name: "g"},
{name: "b"},
{name: "a"},
];
/*
Run the macro
*/
exports.run = function(r, g, b, a) {
try {
var rHex = parseInt(r).toString(16).padStart(2, '0');
var gHex = parseInt(g).toString(16).padStart(2, '0');
var bHex = parseInt(b).toString(16).padStart(2, '0');
var aHex = Math.round(Number(a) * 255).toString(16).padStart(2, '0');
} catch (e) {
return false;
}
if (rHex.length > 2 || gHex.length > 2 || bHex.length > 2 || aHex.length > 2) return false;
return '#' + rHex + gHex + bHex + aHex;
}
})();
/*\
title: macros/rgba2hsla
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "rgba2hsla";
exports.params = [
{name: "r"},
{name: "g"},
{name: "b"},
{name: "a"}
];
/*
Run the macro
*/
exports.run = function(r, g, b, a) {
// Make r, g, and b fractions of 1
r /= 255;
g /= 255;
b /= 255;
// Find greatest and smallest channel values
let cmin = Math.min(r,g,b),
cmax = Math.max(r,g,b),
delta = cmax - cmin,
h = 0,
s = 0,
l = 0;
// Calculate hue
// No difference
if (delta == 0)
h = 0;
// Red is max
else if (cmax == r)
h = ((g - b) / delta) % 6;
// Green is max
else if (cmax == g)
h = (b - r) / delta + 2;
// Blue is max
else
h = (r - g) / delta + 4;
h = Math.round(h * 60);
// Make negative hues positive behind 360°
if (h < 0)
h += 360;
// Calculate lightness
l = (cmax + cmin) / 2;
// Calculate saturation
s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
// Multiply l and s by 100
s = +(s * 100).toFixed(1);
l = +(l * 100).toFixed(1);
return "hsla(" + h + "," + s + "%," +l + "%," + a + ")";
}
})();
\define colordataTid() xx$:/state/color-moods-data
\define tmpSearchTid() xx$:/state/search-tiddler
\define tmpSelectScheme() xx$:/state/color-scheme
\define tmpPaletteName() xx$:/state/new-palette-name
\define stateTidDefaultPalette() xx$:/keepstate/colorplay/current-palette
\define tmpHslaTid() xx$:/temp/hsla
\define saveTid() xx$:/temp/hsla/save-title
\define tmpRgbaTid() xx$:/temp/rgba
\define tmpRadioSelector() xx$:/state/css-selectors
\define mainSelectors() primary foreground muted-foreground very-muted-foreground background page-background tiddler-background external-link-foreground sidebar-link-foreground sidebar-tiddler-link-forground sidebar-foreground tab-background tiddler-info-background
.colorbox-container {
height:80px; /* set line-height equal to this in .colorplay-colorbox */
width:360px;
max-width:100%;
}
.colorplay-colorbox{
font-weight:500;
height:100%;
line-height:80px; /* to center text vertically = container height */
text-align:center;
}
/* --- */
.scls{
display:inline-block;
width:5em;
text-align:left;
}
.rangecls{
vertical-align: middle;
width:200px;
}
.labelcls{
width:80px;
display:inline-block;
text-align:right;
}
.colorplay-slider{
margin-bottom:5px;
font-weight:500;
}
.colorplay-stripbtn{
width:20px;
height:20px;
border-radius:0;
line-height:2px;
}
button.colorplay-btn svg{
font-size:0.7em;
}
table.colorplay {
border: none;
}
table.colorplay td,
table.colorplay th {
border: none;
padding: 5px;
text-align: left;
}
.colorplay-mood-background{
display:inline-block;
padding:5px;
margin:2px;
font-size:0.8em;
font-weight:700;
}
.colorbox-container{
background-image: url(<<datauri "$:/plugins/kookma/colorplay/images/checkerboard.png">>);
}
div.colorplay-palette-list{
display: table-row;
}
div.colorplay-palette-list span{
display: table-cell;
padding:0px 5px;
}
/* input form */
form.colorplay {
display: table;
}
div.colorplay {
display: table-row;
}
div.colorplay label,
div.colorplay input,
div.colorplay button,
div.colorplay select
{
display: table-cell;
margin-bottom: 10px;
}
div.colorplay label {
padding-right: 10px;
}
\define tmpTid() xx$:/temp/colorplay/get-palette-name
\define newPalette()
<$action-createtiddler $basetitle=<<plTitle>> tags="$:/tags/Palette colorplay"
name=<<plName>> description=<<plDescription>> colorscheme=<<plColorScheme>>/>
<$action-deletetiddler $tiddler=<<tmpTid>> />
\end
\define resetPalette()
<$action-setfield $tiddler="$:/palette" text={{{[<stateTidDefaultPalette>get[text]]}}} />
<$action-setfield $tiddler=<<tmpSelectScheme>> text={{{[<currentTiddler>get[colorscheme]]}}} />
\end
\define divBackground() background-color:$(color)$
\define spanBackground() color: <<contrastcolour target:$(color)$ colourA:black colourB:white>>;
<!-- create new palette--------------------------------------->
''Create user palette''
<table class=colorplay>
<tr>
<td>Name</td>
<td><$edit-text tiddler=<<tmpTid>> field=name tag=input default=""/></td>
</tr>
<tr>
<td>Description</td>
<td><$edit-text tiddler=<<tmpTid>> field=description tag=input default=""/></td>
</tr>
<tr>
<td>Color scheme</td>
<td>
<$select tiddler=<<tmpTid>> field=colorscheme default='Airy Boldness'>
<$list filter='[tag[scheme]sort[title]]'>
<option><$view field='title'/></option>
</$list>
</$select>
</td>
</tr>
<tr>
<td>Color values</td>
<td>
<$list filter="[<tmpTid>get[colorscheme]indexes[]]" variable=mood>
<$vars color={{{[<tmpTid>get[colorscheme]getindex<mood>]}}} >
<div class="colorplay-mood-background" style=<<divBackground>> >
<$wikify name=xx text=<<spanBackground>> >
<span style=<<xx>> >
<$text text={{{ [<tmpTid>get[colorscheme]getindex<mood>] }}}/>
</span>
</$wikify>
</div>
</$vars>
</$list>
</td>
</tr>
<$vars plTitle={{{ [<tmpTid>get[name]addprefix[$:/palettes/]] ~[[$:/palletes]]}}}
plName={{{ [<tmpTid>get[name]] }}}
plDescription={{{[<tmpTid>get[description]]}}}
plColorScheme={{{[<tmpTid>get[colorscheme]]}}}
disabled={{{ [<tmpTid>has[name]has[colorscheme]then[no]else[yes]] }}}>
<tr>
<td> <$button actions=<<newPalette>> disabled=<<disabled>>>Create</$button> </td>
<td><code><$text text=<<plTitle>>/></code></td>
</tr>
</$vars>
</table>
<!-- select for edit--------------------------------------->
''Select a palette to edit''
Search in palettes <$edit-text tiddler="xx$:/temp/searchTid" tag="input" default=""/>
<$list filter="[tag[colorplay]!sort[created]search:title,description:casesensitive{xx$:/temp/searchTid}]" >
<div class="colorplay-palette-list">
<span><$radio tiddler=<<tmpPaletteName>> field="text" value=<<currentTiddler>> actions=<<resetPalette>> > <$link/></$radio></span>
<span><$text text={{{[<currentTiddler>get[description]]}}}/></span>
</div>
</$list>
\define toText(fld) <span class=scls>{{$(tmpTid)$!!$fld$}}</span>
<div class=colorplay-slider>
<label class=labelcls>Hue</label>
<$range tiddler=<<tmpTid>> field=hue min="0" max="360" default="1" increment="1" class="rangecls"/> <<toText hue>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Saturation</label>
<$range tiddler=<<tmpTid>> field=saturation min="0" max="100" default="1" increment="1" class="rangecls"/> <<toText saturation>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Lightness</label>
<$range tiddler=<<tmpTid>> field=lightness min="0" max="100" default="1" increment="1" class="rangecls"/> <<toText lightness>>
</div>
\define toText(fld, unit) <span class=scls>{{$(tmpHslaTid)$!!$fld$}}$unit$</span>
<div class=colorplay-slider>
<label class=labelcls>Hue</label>
<$range tiddler=<<tmpHslaTid>> field=hue min="0" max="360" default="1" increment="1" class="rangecls"/> <<toText hue °>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Saturation</label>
<$range tiddler=<<tmpHslaTid>> field=saturation min="0" max="100" default="1" increment="1" class="rangecls"/> <<toText saturation %>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Lightness</label>
<$range tiddler=<<tmpHslaTid>> field=lightness min="0" max="100" default="1" increment="1" class="rangecls"/> <<toText lightness %>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Alpha</label>
<$range tiddler=<<tmpHslaTid>> field=alpha min="0.0" max="1.0" default="0.0" increment="0.1" class="rangecls"/> <<toText alpha>>
</div>
\define toText(fld) <span class=scls>{{$(tmpTid)$!!$fld$}}</span>
<div class=colorplay-slider>
<label class=labelcls>Red</label>
<$range tiddler=<<tmpTid>> field=red min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText red>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Green</label>
<$range tiddler=<<tmpTid>> field=green min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText green>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Blue</label>
<$range tiddler=<<tmpTid>> field=blue min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText blue>>
</div>
\define toText(fld) <span class=scls>{{$(tmpRgbaTid)$!!$fld$}}</span>
<div class=colorplay-slider>
<label class=labelcls>Red</label>
<$range tiddler=<<tmpRgbaTid>> field=red min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText red>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Green</label>
<$range tiddler=<<tmpRgbaTid>> field=green min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText green>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Blue</label>
<$range tiddler=<<tmpRgbaTid>> field=blue min=0 max=255 default="1" increment="1" class="rangecls"/> <<toText blue>>
</div>
<div class=colorplay-slider>
<label class=labelcls>Alpha</label>
<$range tiddler=<<tmpRgbaTid>> field=alpha min=0 max=1 default=0 increment=0.1 class="rangecls"/> <<toText alpha>>
</div>
\define divBackground() background-color:$(color)$
\define spanBackground() color: <<contrastcolour target:$(color)$ colourA:black colourB:white>>;
Color scheme <$select tiddler=<<tmpSelectScheme>> default='Airy Boldness'>
<$list filter='[tag[scheme]sort[title]]'>
<option><$view field='title'/></option>
</$list>
</$select>
<$list filter="[<tmpSelectScheme>get[text]indexes[]]" variable=color-mood>
<$vars color={{{ [<tmpSelectScheme>get[text]getindex<color-mood>] }}} >
<div class="colorplay-mood-background" style=<<divBackground>> >
<$wikify name=xx text=<<spanBackground>> >
<span style=<<xx>> >
<$text text={{{ [<tmpSelectScheme>get[text]getindex<color-mood>] }}}/>
</span>
</$wikify>
</div>
</$vars>
</$list>
\define saveCurrentPalette() <$action-setfield $tiddler=<<stateTidDefaultPalette>> text=<<current-palette-in-use>> />
<$vars current-palette-in-use={{$:/palette}} newPalette={{{[<tmpPaletteName>get[text]]}}}>
<div class="colorplay-palette-list">
<span>Set as active palette</span>
<span>
<$checkbox tiddler="$:/palette" field=text
checked=<<newPalette>>
unchecked= {{{[<stateTidDefaultPalette>get[text]]}}}
checkactions=<<saveCurrentPalette>> >
<$link to=<<newPalette>> />
</$checkbox>
</span>
</div>
<div class="colorplay-palette-list">
<span>Color scheme in use</span>
<span style="padding-left:25px"><$link to={{{[<newPalette>get[colorscheme]]}}}/></span>
</div>
\define divstyle()
background-color:$(hslacolor)$;
color:<<contrastcolour target:"$(hslacolor)$" colourA:black colourB:white>>;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
<$list filter="[all[current]tag[color]]">
<$vars hslacolor={{!!hslacolor}}>
<div class=colorbox-container>
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>>>
<<hslacolor>>
</div>
</$wikify>
</div>
<br>
<!-- buttons to copy the color -->
<small>Click to copy to clipboard</small>
<$macrocall $name=copy-color-to-clipboard color=<<hslacolor>> />
<$wikify name=HexColor text=<<hexcolor>> >
<$macrocall $name=copy-color-to-clipboard color={{{[{!!hexcolor}addprefix[#]]}}} />
</$wikify>
<$wikify name=RgbaColor text=<<rgbacolor>> >
<$macrocall $name=copy-color-to-clipboard color={{!!rgbacolor}} />
</$wikify>
</$vars>
</$list>
\define divBackground() background-color:$(color)$;
\define spanBackground() color: <<contrastcolour target:$(color)$ colourA:black colourB:white>>;
<$list filter="[all[current]tag[scheme]indexes[]]" variable=color-mood>
<$vars color={{{ [<currentTiddler>getindex<color-mood>] }}} >
<div class="colorplay-mood-background" style=<<divBackground>> >
<$wikify name=spanStyle text=<<spanBackground>> >
<span style=<<spanStyle>> >
<$text text={{{ [<currentTiddler>getindex<color-mood>] }}}/>
</span>
</$wikify>
</div>
</$vars>
</$list>
{"tiddlers":{"$:/plugins/kookma/commander/buttons/pagecontrol":{"caption":"{{$:/plugins/kookma/commander/images/file-alt}} {{$:/language/Buttons/Commander/Caption}}","created":"20190724145015836","description":"Open tiddler commander","list-after":"$:/core/ui/Buttons/advanced-search","modified":"20210102140141074","tags":"$:/tags/PageControls","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\define commander-button(class)\n<$button to=\"$:/Commander\" tooltip={{$:/language/Buttons/Commander/Hint}} aria-label={{$:/language/Buttons/Commander/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/kookma/commander/images/commander.svg}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Commander/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Commander]]\" emptyMessage=<<commander-button>>>\n<<commander-button \"tc-selected\">>\n</$list>\n"},"$:/plugins/kookma/commander/config/AutoFocus":{"created":"20190212055413944","modified":"20200324070652337","tags":"","type":"text/vnd.tiddlywiki","text":"yes"},"$:/plugins/kookma/commander/config/commonfields":{"created":"20200114192650891","modified":"20200324070652345","tags":"","type":"text/vnd.tiddlywiki","text":"created creator modified modifier revision bag"},"$:/plugins/kookma/commander/config/minlength":{"created":"20200110122842113","modified":"20200324070652355","tags":"","type":"text/vnd.tiddlywiki","text":"3"},"$:/plugins/kookma/commander/config/relink":{"created":"20190911153159143","modified":"20200324070652362","tags":"","type":"text/vnd.tiddlywiki","text":"\\define relink-plugin-notExisted() Update title in //tags// and //list// fields of other tiddlers\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\">\n<$list filter=\"[[$:/plugins/flibbles/relink]] +[has[title]]\" emptyMessage=<<relink-plugin-notExisted>> >\nUse //Relink// to update title across all other tiddlers\n</$list>\n</$checkbox>"},"$:/plugins/kookma/commander/config/systemfields":{"created":"20200106164439016","modified":"20200324070652372","tags":"","type":"text/vnd.tiddlywiki","text":"title text tags \ncreated modified craetor modifier \ntype bag revision\nlist caption"},"$:/plugins/kookma/commander/field/macros/add":{"created":"20200112073000701","modified":"20200325055206697","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-new-field-bulk(datafieldsTid:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"add-new-field-bulk\">>\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"newTitle\">\n<<add-bulk-fields>>\n<$wikify name=newFields text=<<getFieldsname>> >\n<$macrocall $name=\"log-add-single-operation\" msg={{{[<newFields>addprefix[new fields:]addsuffix[added]]}}} tidItem=<<newTitle>> />\n</$wikify>\n</$list>\n</$vars>\n</$list>\n\\end\n\n\\define getFieldsname()\n<$list filter=\"[<__datafieldsTid__>indexes[]prefix[fldn]]\" variable=item>\n{{{ [<__datafieldsTid__>getindex<item>trim[]lowercase[]split[ ]join[_]] }}} \n</$list>\n\\end"},"$:/plugins/kookma/commander/field/macros/bulkfields":{"created":"20200109104450902","modified":"20200913180532516","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define numfilter() [range[1,$(flt)$]]\n\\define id_fldName() fldn$(cnt)$\n\\define id_fldValue() fldv$(cnt)$\n\n\\define add-bulk-fields()\n<$set name=\"flt\" tiddler=<<datafieldsTid>> field=\"counter\" emptyValue=\"1\"><!-- when the datafieldsTid is not exist, there is at least one field row -->\n<$list filter=<<numfilter>> variable=\"cnt\">\n<$list filter=\"[<datafieldsTid>getindex<id_fldName>]\" variable=\"newField\">\n<$action-setfield $tiddler=<<newTitle>> \n $field={{{ [<newField>trim[]lowercase[]split[ ]join[_]] }}}\n $value={{{ [<datafieldsTid>getindex<id_fldValue>] }}} />\n</$list>\n</$list>\n</$set>\n\\end\n\n\\define getInputs()\n<$edit-text tiddler=<<datafieldsTid>> index=<<id_fldName>> tag=input default=\"\" placeholder=\"field name\" />\n<$edit-text tiddler=<<datafieldsTid>> index=<<id_fldValue>> tag=input default=\"\" placeholder=\"field value\"/>\n\\end\n\n\\define add-reset()\n<$button>insert\n<$action-setfield $tiddler=<<datafieldsTid>> counter={{{[<datafieldsTid>get[counter]add[1]]~[[2]]}}}/>\n</$button>\n<$button>reset\n<$action-setfield $tiddler=<<datafieldsTid>> counter=\"1\"/>\n<$action-setfield $tiddler=<<datafieldsTid>> text=\"\"/>\n</$button>\n\\end\n\n\\define create-field-inputbox()\n<$wikify name=flt text={{{ [<datafieldsTid>get[counter]]~[[1]] }}} >\n<$list filter=<<numfilter>> variable=cnt>\n\n<<getInputs>>\n</$list>\n</$wikify>\n\\end\n\n\\define add-more-fields-ui(datafieldsTid:\"\")\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-reset>>\n<<create-field-inputbox>>\n</$vars>\n\\end\n\n\\define add-more-fields-selective-ui(datafieldsTid:\"\", stateTiddler:\"$:/state/commander/tiddler-addfields-status\")\n<$checkbox \n tiddler=<<__stateTiddler__>>\n field=\"text\" \n checked=\"addfields\" unchecked=\"nofields\"\n default=\"nofields\" > \n Add fields\n</$checkbox>\n<$reveal type=\"match\" state=<<__stateTiddler__>> text=\"addfields\" default=\"nofields\" >\n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-reset>>\n<div style=\"padding-left:88px;\">\n<<create-field-inputbox>>\n</div>\n</$vars>\n</$reveal>\n\\end"},"$:/plugins/kookma/commander/field/macros/remove":{"created":"20200109083928203","modified":"20200325055328423","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define xx-add-new-field-bulk(newField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__newField__>!is[blank]]\">\n<<create-log-tiddler \"add-new-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]+[!is[missing]]-[has:field[$newField$]]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-field\" $param=<<__newField__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"new field `$newField$` added\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\n\\define remove-old-field-bulk(oldField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__oldField__>!is[blank]]\">\n<<create-log-tiddler \"remove-old-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]+[!is[missing]]+[has:field[$oldField$]]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-field\" $param=<<__oldField__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"old field `$oldField$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define set-field-value-bulk(fieldName:\"Empty\", fieldValue:\"Empty\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__fieldName__>!is[blank]]\" variable=null>\n<$list filter=\"[<__fieldValue__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"set-field-value-create-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]-[$fieldName$[$fieldValue$]]\">\n<$list filter=\"[<currentTiddler>has:field[$fieldName$]]\" variable=ignore \nemptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not `$fieldName$` field. Operation ignored//\" tidItem=<<currentTiddler>> />\"\"\" >\n<$action-setfield $field=<<__fieldName__>> $value=<<__fieldValue__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"field `$fieldName$` got a value\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/field/macros/rename":{"created":"20200107051937869","modified":"20200325055328448","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define rename-field-bulk(oldField:\"\", newField:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldField__>!is[blank]]\" variable=null>\n<$list filter=\"[<__newField__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"rename-field-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"[<currentTiddler>has:field[$oldField$]]\" variable=ignore\n emptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not field `$oldField$`. Operation ignored.//\" tidItem=<<currentTiddler>> /> \"\"\">\n<$set name=oldValue tiddler=<<currentTiddler>> field=<<__oldField__>> >\t\n<$action-setfield $tiddler=<<currentTiddler>> $field=<<__newField__>> $value=<<oldValue>>/>\n</$set>\n<$action-deletefield $tiddler=<<currentTiddler>> $field=<<__oldField__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"fied `$oldField$` renamed to `$newField$`\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/field/macros/set":{"created":"20190212101155537","modified":"20200325055328470","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define set-field-value-bulk(fieldName:\"\", fieldValue:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__fieldName__>!is[blank]]\" variable=null>\n<$list filter=\"[<__fieldValue__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"set-field-value-create-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]-[$fieldName$[$fieldValue$]]\">\n<$list filter=\"[<currentTiddler>has:field[$fieldName$]]\" variable=ignore \nemptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not `$fieldName$` field. Operation ignored//\" tidItem=<<currentTiddler>> />\"\"\" >\n<$action-setfield $field=<<__fieldName__>> $value=<<__fieldValue__>> />\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"field `$fieldName$` got a value\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/field/ui":{"caption":"Field","created":"20190212061551615","list-after":"$:/plugins/kookma/commander/tag/ui","modified":"20200324070652439","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/FieldOps]!has[draft.of]]\"\ndefault:\"$:/plugins/kookma/commander/field/uicomp/add-fields\" \nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\"\n>>\n\n"},"$:/plugins/kookma/commander/field/uicomp/add-fields":{"caption":"Add fields","created":"20200109083519146","modified":"20200325055328482","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<!-- create the interface-->\n<$macrocall $name=\"add-more-fields-ui\" datafieldsTid=\"$:/temp/commander/tiddler/datafields/addfield\" />\n\n\n<!-- call action macro -->\n<$button class=\"cmd-btn cmd-btn-wd\"> Add new fields\n<$macrocall $name=\"add-new-field-bulk\" \n datafieldsTid=\"$:/temp/commander/tiddler/datafields/addfield\" />\n</$button><br>\n,,Note: This will overwrite the existing fileds!,,"},"$:/plugins/kookma/commander/field/uicomp/remove-fields":{"caption":"Remove fields","created":"20190314051054548","list-after":"$:/plugins/kookma/commander/field/uicomp/add-fields","modified":"20200325055328489","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old field</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/field-remove\" default=\"\">\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -title -tags\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove old field\n<$macrocall $name=\"remove-old-field-bulk\" oldField={{$:/temp/commander/field-remove}} />\n</$button>"},"$:/plugins/kookma/commander/field/uicomp/rename-fields":{"caption":"Rename fields","created":"20200107052908832","list-after":"$:/plugins/kookma/commander/field/uicomp/remove-fields","modified":"20200325055328499","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old field</label><$select class=\"cmd-select-wd\" \n tiddler=\"$:/temp/commander/rename-field/old\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -[<systemFieldsTid>get[text]split[ ]]\" > \n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">New field</label><$edit-text\ntiddler=\"$:/temp/commander/rename-field/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new field name\"\n/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Rename field\n<$macrocall $name=\"rename-field-bulk\" \noldField={{$:/temp/commander/rename-field/old}} \nnewField={{{ [[$:/temp/commander/rename-field/new]get[text]lowercase[]trim[]split[ ]join[_]] }}} />\n</$button>\n\n<!-- new field name is checked to be lowecase and leading and trailing spaces are removed and space between words replaced by underscore (_).\n-->"},"$:/plugins/kookma/commander/field/uicomp/set-field-value":{"caption":"Set field value","created":"20190212120609737","list-after":"$:/plugins/kookma/commander/field/uicomp/rename-fields","modified":"20200325055328506","tags":"$:/tags/Commander/FieldOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Field name</label><$select class=\"cmd-select-wd\" \n tiddler=\"$:/temp/commander/field-name\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>fields[]sort[]] -[<systemFieldsTid>get[text]split[ ]]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">Field value</label><$edit-text\ntiddler=\"$:/temp/commander/field-value\"\ntag=\"input\" default=\"\"\nclass=\"cmd-txt-area\" placeholder=\" field value\"/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Set field value\n<$macrocall \n $name=\"set-field-value-bulk\" \n fieldName={{$:/temp/commander/field-name}} \n fieldValue={{$:/temp/commander/field-value}} \n/>\n</$button>"},"$:/plugins/kookma/commander/filters/Drafts":{"created":"20190214135512125","description":"{{$:/language/Filters/Drafts}}","filter":"[has[draft.of]sort[title]]","modified":"20200324070652476","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/geneal":{"created":"20190725091830350","description":"General filter","filter":"[all[shadows+tiddlers]search[your keywrods]]","modified":"20200324070652484","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/Missing":{"created":"20190214140029091","description":"{{$:/language/Filters/Missing}}","filter":"[all[missing]sort[title]]","modified":"20200324070652492","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/Orphans":{"created":"20190214135426497","description":"{{$:/language/Filters/Orphans}}","filter":"[all[orphans]sort[title]]","modified":"20200324070652498","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/RecentSystemTiddlers":{"created":"20190214135950458","description":"{{$:/language/Filters/RecentSystemTiddlers}}","filter":"[has[modified]!sort[modified]limit[50]]","modified":"20200324070652508","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/RecentTiddlers":{"created":"20190214135912493","description":"{{$:/language/Filters/RecentTiddlers}}","filter":"[!is[system]has[modified]!sort[modified]limit[50]]","modified":"20200324070652513","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/SessionTiddlers":{"created":"20190214135831279","description":"Tiddlers modified since the wiki was loaded","filter":"[haschanged[]]","modified":"20200324070652525","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/StoryList":{"created":"20190214135246552","description":"{{$:/language/Filters/StoryList}}","filter":"[list[$:/StoryList]] -$:/AdvancedSearch","modified":"20200324070652532","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/filters/temp-and-state":{"created":"20190214141452091","description":"Temporary and state tiddlers","filter":"[prefix[$:/temp]] [prefix[$:/state]]","modified":"20200324070652542","tags":"$:/tags/Commander/Filter","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/commander/help/ui":{"caption":"Help","created":"20190314050052494","icon":"$:/core/images/help","list-after":"$:/plugins/kookma/commander/setting/ui","modified":"20200324070652550","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/Help]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/help/uicomp/quick-tutorial\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n\n"},"$:/plugins/kookma/commander/help/uicomp/quick-tutorial":{"caption":"Quick tutorial","created":"20190314050138754","modified":"20200325092740142","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"# Use ''Combo search'' to list possible tiddlers\n#* example: `concept` performs a standard search and find all matches in title, text, and tags\n#* example: `[tag[xx]]` finds all tiddlers tagged with //xx//\n#* example: `[prefix[tt]` finds all tiddlers have title started with //tt//\n#* example: `[has[draft.of]sort[title]]` finds all draft tiddlers\n\n# Use ''Select tiddlers'' for the resulting list to identify which specific tiddlers to do a batch operation on\n#* this step lets you to do a batch operation on selected tiddlers NOT all items by ''Combo search''!\n#* it is possible to select/deselect all tiddlers from ''Combo search'' result at once! Note that, by default all tiddlers are considered for bulk operation until selective operation is activated!\n# From ''Batch operations tabs'' select the batch operation you wish to perform on selected tiddlers\n#* example: title, tag, and field operations\n#* example: Snr operation\n#* Inspect tab can be used to inspect tiddlers before or after performing operations\n\n* Notes:\n** Multiple batch operations can be done on the same set (unless you change something in the search criteria)\n** Sometimes it is useful to use an intermediate batch to help, like tag tiddlers with a \"working\" tag, using multiple searches, then then use the \"working\" tag to apply a batch operation to\n\n<div class=\"commander-alert\">''Note'': For good operation a tiddler width of 800px is recommended. You can also use //Sidebar layout// as `Fluid story`.</div>\n\n\nFor detailed docummention go to [[Demo page|https://kookma.github.io/TW-Commander/]]\n\n!!! Footenote\n# [[Use filter expression|https://tiddlywiki.com/prerelease/#Filters:Filters%20%5B%5BFilter%20Expression%5D%5D%20%5B%5BFilter%20Syntax%5D%5D%20%5B%5BFilter%20Operators%5D%5D%20%5B%5BFilter%20Parameter%5D%5D%20%5B%5BFilter%20Run%5D%5D%20%5B%5BFilter%20Step%5D%5D%20%5B%5BFilter%20Whitespace%5D%5D]]"},"$:/plugins/kookma/commander/help/uicomp/regular-expression":{"caption":"Regular expressions","created":"20190314084511720","list-after":"$:/plugins/kookma/commander/help/uicomp/snr","modified":"20200325093450357","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Regular Expressions Quick Reference\n\n|''FLAGS'' |<|<|h\n| i |ignore case|case insensitive matching|\n| |whole words|match strings of a-z, 0-9 and _|\n| g |global|field start=^, field end=$, all matches|\n| m |multi-line|line start=^, line end=$, first match|\n| |first match|field start=^, field end=$, first match|\n|''MATCH'' |<|<|h\n|''Anchors''|<|<|\n| ^ |start of scope|see Flags, match is zero length|\n| $ |end of scope|see Flags, match is zero length|\n| \\b |word boundary|anchor to edge of word, zero length|\n| \\B |not word boundary|anchor inside word, zero length|\n|''Character Classes''|<|<|\n| [c] |class of characters|any one matches, e.g. [abc123]|\n| [^c] |negated class of characters|any one doesn't match, e.g. [^abc123]|\n|''Shorthand Character Classes''|<|<|\n| . |any character except newline|same as [^\\n]|\n| \\d |decimal|same as [0-9]|\n| \\D |not decimal|same as [^0-9]|\n| \\s |white-space|same as [\\ \\t\\n]|\n| \\S |not white-space|same as [^\\ \\t\\n]|\n| \\t |tab|same as [\\t]|\n| \\n |newline|same as [\\n]|\n| \\w |word character|same as [a-zA-Z0-9_]|\n| \\W |not word character|same as [^a-zA-Z0-9_]|\n|''Capturing Groups''|<|<|\n| (match) |match placed in variable $x|can be used in Replace|\n| (\\x) |repeats match pattern of $x|can be used in Replace|\n|''Quantifiers''|<|<|\n| ? |single match|match 0 or 1 time|\n| * |greedy match 0+|match 0 or as many times as possible|\n| *? |lazy match 0+|match 0 or as few times as possible|\n| + |greedy match 1+|match 1 or as many times as possible|\n| +? |lazy match 1+|match 1 or as few times as possible|\n| {x} |match x times|match x times|\n| {x,y} |match x to y times|match x times to exactly y times|\n| {x,} |match x or more times|match x times or as many as possible|\n|''Escapes''|<|<|\n| \\ |escape special characters|add to \\ [ ] ( ) { } ^ $ . ? * + for literals|\n|''REPLACE'' |<|<|h\n| $& |return the full match|<|\n| $x |return $x where x is the numeric index of a Capturing Group|<|\n|''NOTE'' |<|<|h\n|This Reference supports most ordinary uses of regular expressions.<br> For advanced options: [[MDN Reference|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Using_simple_patterns]]; examples: [[regular-expressions.info|https://www.regular-expressions.info/tutorial.html]].|<|<|\n\n"},"$:/plugins/kookma/commander/help/uicomp/relink":{"caption":"Relink on rename","created":"20190912052826269","list-after":"$:/plugins/kookma/commander/help/uicomp/regular-expression","modified":"20200325093202388","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Relink on rename\nWhen Tiddler Commander is used to rename bulk tiddlers in operation like\n\n* Title operation\n** add/remove prefix\n** add/remove suffix\n** remove chars from the begining or end of title\n* ~SnR\n** Search and replace in tiddlers title\n\nIt is possible to update all links to title. This includes //tags// and //list//. If [[Relink|https://flibbles.github.io/tw5-relink/]] plugin is installed, then not only title will be updated in //tags// and //list// field, but also in all filters, transclusions, text field and evrywhere.\n\n<div class=\"commander-alert\"> ''Note'': Relink does not update all forms of title e.g those created from different segments, but it will update any occurances</div>\n\n\n!! How to integrate with ''Relink''?\n\nSimply install the [[Relink|https://flibbles.github.io/tw5-relink/]] plugin and it will be appeared as an option when Tiddler Commander title operations including ~SnR are performed!\n"},"$:/plugins/kookma/commander/help/uicomp/snr":{"caption":"Search-n-Replace","created":"20190307104654008","list-after":"$:/plugins/kookma/commander/help/uicomp/quick-tutorial","modified":"20200925143424505","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":"!! Search and replace using Snr\nSnr stands for search and replace, is a powerful tool uses regular expression for searching all fields and lets replace chars, words, phrases with new values.\n\n!! How to use\n* Enter a search filter or keywords in ''Combo search'' box like `[tag[myTag]]` or `concept`\n* Use ''Select tiddlers'' for the resulting list to identify which specific tiddlers to do a Snr operation on\n** If selective operation is unchecked, all tiddlers from step one will be included in Snr operation.\n* From ''Tiddler title'' drop down menu select a tiddler\n* From ''Field name'' drop down menu select a tiddler field like `text`\n** all fileds even `title` can be selected\n* In the ''Search text'' type the search term for example `this`\n* In the ''Replace with'' type the term you want to replace with like `that`\n* Check the ''Differences'' and if you are satisfied with the result, press the `Replace?` button\n* You can press `Replace all?` if you want to search and replace in all selected tiddlers\n\n;Remarks\n: The `Replace all?` lets you to search and replace in all selected tiddlers at once! It is possible to search and replace even in `title` field!\n\n<$list filter=\"[[snr.png]is[tiddler]]\"><<image-pretty img:\"snr.png\" width:\"60%\" align:\"center\" caption:\"Fig 1. Search and replace using regular expression\">></$list>\n\n!! Special characters\n<<<\nAs `SNR` uses ''regexp'' pattern to make search and replace, when special characters are used in the ''Search text'' box, they shall be escaped among them are `*`, `+`, `[]`, `?` ...\nTo use these characters do like below\n\n```\n\\[ \\] \\( \\) \\{ \\} \\. \\* \\+ \\? \\^ \\$ \\\\ \\|\n```\n<<<\n\n!! Warning\n<<<\n* SNR replace the contents of tiddlers.<br> ''//The action can not be undone//''. So always make a backup before performing any replace action\n<<<"},"$:/plugins/kookma/commander/help/uicomp/warning":{"caption":"Warning","created":"20200325092841002","list-after":"$:/plugins/kookma/commander/help/uicomp/relink","modified":"20200325093538187","tags":"$:/tags/Commander/Help","type":"text/vnd.tiddlywiki","text":";Note i\n:Tiddler Commander is a very powerful tool, it can change any field in any tiddler.// Make sure what you are doing//!\n\n;Note ii\n:Tiddler Commander uses two steps tiddler selection. It uses a combo search box to screen (using standard or filter search) possible tiddlers and then uses a selective list of tiddlers from first step for batch operation!\n:# If selective operation is unchecked, then all tiddlers from step one are used for batch operation\n:# If selective operation is checked, then user has to manually select among tiddlers, and the selected ones are used for batch operation \n\n;Note iii\n://Commander do not perform operation on shadow tiddlers//, unless they are overriden. Because shadow tiddlers aren’t stored as ''real'' tiddlers. They are intentionally excluded from most operations by default so that they don’t clutter filters made by users unless explicitly required. \n\n<div class=\"commander-alert\">''Warning''\nBefore using Tiddler commander for bulk operation on your own valuable, irreplaceable data, ''backup them''.\n</div>"},"$:/plugins/kookma/commander/history":{"created":"20200324061906253","modified":"20210102152245874","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Commander/#ChangeLog\n\n* ''2.1.2'' -- 2021.01.02 -- Saq Imtiaz release\n* ''2.1.0'' -- 2020.03.25 -- stable release\n* ''0.1.0'' -- 2019.02.12 -- mature public release\n"},"$:/plugins/kookma/commander/images/commander.svg":{"caption":"file-alt (Regular)","created":"20190724144859943","modified":"20210102140141641","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-file-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 384 512\"><path d=\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"/></svg>"},"$:/plugins/kookma/commander/inspect/comp/edit-fileds":{"created":"20190313061511585","modified":"20200325055328517","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}] \n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button class=\"cmd-btn\">\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button class=\"cmd-btn\">\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n\\define compInspect-edit-fileds(commonFields:\"\")\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n\n\n<$list filter=\"created creator modified modifier -[enlist<__commonFields__>]\" variable=\"currentField\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n\n\n\n\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/edit-preview":{"created":"20200115050859257","modified":"20200325055328524","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect-edit-preview(tiddler, commonFields:\"\")\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">title:</td>\n<td class=\"tc-edit-field-value\"><$link to=<<__tiddler__>> ><$text text=<<__tiddler__>> /></$link></td>\n</tr>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">tags:</td>\n<td class=\"tc-edit-field-value\">{{$tiddler$||$:/core/ui/EditTemplate/tags}}</td>\n</tr>\n<tr class=\"tc-edit-field\"><td class=\"tc-edit-field-name\">text:</td>\n<td class=\"tc-edit-field-value\"><$macrocall $name=compInspect-get-field tiddler=<<__tiddler__>> field=\"text\" tag=\"textarea\" /></td>\n</tr>\n</tbody>\n</table>\n</div>\n\n<$tiddler tiddler=<<__tiddler__>> >\n<$macrocall $name=\"compInspect-edit-fileds\" commonFields=<<__commonFields__>> />\n</$tiddler>\n\\end\n\n\\define compInspect-get-field(tiddler, field, tag:\"input\") \n<$edit-text class=\"tc-edit-texteditor\" tiddler=<<__tiddler__>> field=<<__field__>> tag=<<__tag__>> default=\"\" placeholder={{$:/language/EditTemplate/Body/Placeholder}}/>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/main":{"created":"20190308151331101","modified":"20200325055328536","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect(filter, stateTiddler:\"thisTiddler\")\n<$set name=\"state\" \n value={{{ [[$:/state/compInspect/]addsuffix<__stateTiddler__>] }}} >\n<$vars\n slStateTid={{{ [<state>addsuffix[/]addsuffix[selectState-tiddler]] }}}\n rvStateTid={{{ [<state>addsuffix[/]addsuffix[revealState-tiddler]] }}}\n chStateTid={{{ [<state>addsuffix[/]addsuffix[checkboxState-tiddler]] }}} >\n\nSelect tiddler <$macrocall $name=compSelect filter=<<__filter__>> stateTiddler=<<slStateTid>> />\n \n<$macrocall $name=\"check-common-fields\" stateTiddler=<<chStateTid>> />\n \n<$reveal stateTitle=<<rvStateTid>> type=\"nomatch\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<rvStateTid>> setTo=\"edit\" tooltip=\"edit tiddler\">{{$:/core/images/edit-button}}</$button>\n<$macrocall $name=compInspect-show-preview tiddler={{{ [<slStateTid>get[text]]+[subfilter<__filter__>] }}} commonFields={{{ [<chStateTid>get[text]] }}}/>\n</$reveal>\n<$reveal stateTitle=<<rvStateTid>> type=\"match\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<rvStateTid>> setTo=\"\" tooltip=\"confirm changes\">{{$:/core/images/done-button}}</$button>\n<$macrocall $name=compInspect-edit-preview tiddler={{{ [<slStateTid>get[text]]+[subfilter<__filter__>] }}} commonFields={{{ [<chStateTid>get[text]] }}}/>\n</$reveal>\n\n</$vars>\n</$set>\n\\end\n\n\\define check-common-fields(stateTiddler)\n<$vars commonFields={{{[<commonFieldsTid>get[text]]}}}>\n<$checkbox \n tiddler=<<__stateTiddler__>>\n field=\"text\" \n checked=<<commonFields>>\n unchecked=\"\"\n default=\"\"\n> Exclude common fields?</$checkbox>\n</$vars>\n\\end"},"$:/plugins/kookma/commander/inspect/comp/select":{"created":"20190308070713468","modified":"20200325055328546","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compSelect(filter:\"\", stateTiddler:\"\", default:\"\", class:\"\", showButtons:\"show\")\n<$select tiddler=<<__stateTiddler__>> default=<<__default__>> class=<<__class__>> >\n<option value=\"\">None</option>\n<$list filter=<<__filter__>> variable=item>\n<option value=<<item>>><$text text=<<item>> /></option>\n</$list>\n</$select>\n<$reveal type=\"match\" text=\"show\" default=<<__showButtons__>> >\n<$vars myfilter=<<__filter__>> mystateTiddler=<<__stateTiddler__>> myitem={{{ [<__stateTiddler__>get[text]] }}} >\n<$button actions=<<cs-prev-item>> class=\"cmd-btn\"> prev </$button>\n<$button actions=<<cs-next-item>> class=\"cmd-btn\"> next </$button>\n</$vars>\n</$reveal>\n\\end\n\n\\define cs-prev-item()\n<$list filter=\"[subfilter<myfilter>] +[before<myitem>]\" variable=\"prev-item\" >\n<$action-setfield $tiddler=<<mystateTiddler>> text=<<prev-item>> />\n</$list>\n\\end\n\n\\define cs-next-item()\n<$list filter=\"[subfilter<myfilter>] +[after<myitem>]\" variable=\"next-item\" >\n<$action-setfield $tiddler=<<mystateTiddler>> text=<<next-item>> />\n</$list>\n\\end\n\n<!-- used by\n - $:/plugins/kookma/commander/compInspect/main\n-->"},"$:/plugins/kookma/commander/inspect/comp/show-preview":{"created":"20190308070953891","modified":"20200325055328553","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compInspect-show-preview(tiddler, commonFields:\"\")\n<$vars mainFields=\"title tags text\">\n<table class=\"cmd-ci-table\">\n<tr><td class=\"leftcol\">title</td>\n<td class=\"rightcol\"><$link to=<<__tiddler__>> ><$text text=<<__tiddler__>> /></$link></td>\n</tr>\n\n<tr><td class=\"leftcol\">tags</td>\n<td style=\"padding:3px;\"><$macrocall $name=showTags tiddler=<<__tiddler__>> /></td>\n</tr>\n<tr><td class=\"leftcol\">text</td>\n<td><$transclude tiddler=<<__tiddler__>> field=\"text\" mode=\"block\"/></td>\n</tr>\n<$list filter=\"[<__tiddler__>fields[]] -[enlist<mainFields>] -[enlist<__commonFields__>]\" variable=\"otherFld\">\n<tr><td class=\"leftcol\"><<otherFld>></td>\n<td class=\"rightcol\"><$transclude tiddler=<<__tiddler__>> field=<<otherFld>> mode=\"inline\"/></td>\n</tr>\n</$list>\n</table>\n</$vars>\n\\end\n\n\\define showTags(tiddler)\n<$list filter=\"[<__tiddler__>tags[]]\" variable=tagItem >\n<$macrocall $name=tag tag=<<tagItem>> />\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/inspect/ui":{"caption":"Inspect","created":"20190313075823496","list-after":"$:/plugins/kookma/commander/field/ui","modified":"20200325055328564","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/InspectOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/inspect/uicomp/Inspection\"\nclass:\"tc-vertical cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/inspect/uicomp/Inspection":{"caption":"Inspect","created":"20190313080119081","modified":"20200325055328571","tags":"$:/tags/Commander/InspectOps","type":"text/vnd.tiddlywiki","text":"<$macrocall \n $name=compInspect\n filter=<<searchfilter>>\n stateTiddler=\"commander\"\n/>"},"$:/plugins/kookma/commander/license":{"created":"20200324061906254","modified":"20200324061959559","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2018-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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<<<"},"$:/plugins/kookma/commander/log/ui":{"caption":"Log status","created":"20190221152805807","modified":"20200324070652656","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"commander-alert\" style=\"padding:5px;font-size:0.90em;\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" actions=<<delete-all-log-tiddlers>>>Clear log</$button>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[tag[$:/tags/Commander/LogOps]]\" />\"\"\">\n<div class=\"tc-search-results\">\n<span class=\"kk-commander-log-note\">Recent number of operations: <<resultCount>></span><br>\n<$list filter=\"[tag[$:/tags/Commander/LogOps]] +[!sort[created]]\" variable=\"logTid\">\n<b><$view tiddler=<<logTid>> field=\"created\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\"/> \n<$view tiddler=<<logTid>> field=\"caption\">\n <$view tiddler=<<logTid>> field=\"title\"></$view>\n</$view>\n</b>\n<ol><$list filter=\"[<logTid>indexes[]]\" variable=\"item\">\n<li><$link to=<<item>>><<item>></$link>\n<$set name=\"myItem\" tiddler=<<logTid>> index=<<item>> >\n<$list filter=\"[<myItem>!search[existed]]\" variable=\"ignore\" \n emptyMessage=\"\"\"<span style=\"color:red;\"><<myItem>></span>\"\"\" >\n<span class=\"kk-commander-log-item\"><<myItem>></span>\n</$list>\n</$set>\n</li>\n</$list></ol>\n</$list>\n</div>\n</$set>\n</div>"},"$:/plugins/kookma/commander/macros/compConfirmAction":{"created":"20190301145916990","modified":"20200324070652662","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define compConfirmAction(\nbtnLabel:\"Delete these tiddlers\", \nconfirmMessage:\"Are you sure you wish to delete\", \nstateTiddler:\"\"\ncountFilter:\"\", \nactionMacro:\"\")\n<$set name=resultCount value={{{ [subfilter<__countFilter__>count[]] }}} >\n<$reveal type=\"gt\" text=\"0\" default=<<resultCount>> >\n<$button popup=<<qualify \"\"\"$stateTiddler$\"\"\">> class=\"cmd-btn\">$btnLabel$</$button>\n</$reveal>\n<$reveal state=<<qualify \"\"\"$stateTiddler$\"\"\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n$confirmMessage$ <<resultCount>> tiddler(s)?\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"cmd-btn\"> $btnLabel$\n<$macrocall $name=<<__actionMacro__>> />\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/commander/macros/definition":{"created":"20200102195320611","description":"some macro are not used REMOVE THEM","modified":"20200325055328579","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define tempPath() $:/temp/commander\n\n\\define searchboxTid() $(tempPath)$/search-box\n\\define selectiveOpsTid() $(tempPath)$/selective-operation\n\n\n\\define workingTag() $:/tags/Commander/Working\n\\define exportTagTid() $:/temp/commander/exportTag\n\\define systemFieldsTid() $:/plugins/kookma/commander/config/systemfields\n\\define commonFieldsTid() $:/plugins/kookma/commander/config/commonfields"},"$:/plugins/kookma/commander/macros/logging":{"created":"20190221163406469","modified":"20200325055356563","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define set-title() $:/temp/commander/logs/tid-{{{[tag[$:/tags/Commander/LogOps]count[]add[1]]}}}\n\n\\define create-log-tiddler(msg)\n<$wikify name=\"myTitle\" text=\"\"\"<<set-title>>\"\"\">\n<$wikify name=\"myCaption\" text=\"\"\"<$macrocall $name=\"set-caption\" msg=<<__msg__>> />\"\"\">\n<$action-createtiddler $basetitle=<<myTitle>>\n$savetitle=\"$:/state/commander/log-tiddler\"\ntags=\"$:/tags/Commander/LogOps\"\ntype=\"application/json\"\ncaption=<<__msg__>>\n/>\n</$wikify>\n</$wikify>\n\\end\n\n\\define log-add-single-operation(msg:\"commander operation\", tidItem:\"no item\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<__tidItem__>> $value=<<__msg__>> />\n\\end\n\n\n\\define delete-all-log-tiddlers()\n<$action-deletetiddler $filter=\"[tag[$:/tags/Commander/LogOps]]\" />\n\\end"},"$:/plugins/kookma/commander/macros/remove-workingtag":{"created":"20200103172259595","modified":"20200325055328597","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define remove-working-tag(oldTag)\n<$list filter=\"[all[shadows+tiddlers]tag<workingTag>limit[1]]\" variable=ignore>\n<<create-log-tiddler \"remove-workingTag\">>\n<$list filter=\"[all[shadows+tiddlers]tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"working tag `$oldTag$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n\\end\n\n\n"},"$:/plugins/kookma/commander/macros/slider":{"created":"20200105085554618","modified":"20200325065829776","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define commander-slider(title, default:\"closed\")\n<$set name=\"revealState\" value=<<qualify \"$:/state/commander/reveal/$title$\">>>\n<h2>\n <$reveal type=\"nomatch\" state=<<revealState>> text=\"open\" default=\"$default$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"open\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$default$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"closed\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <$view tiddler=\"$title$\" field=\"caption\">\n <$view tiddler=\"$title$\" field=\"title\"></$view>\n </$view>\n \n</h2>\n\n<$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$default$\">\n<$transclude tiddler=\"$title$\" mode=\"block\" />\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/commander/macros/utility":{"created":"20190315092752816","modified":"20200325055356631","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define display(label,text)\n<$set name=\"stateTid\" value=\"$:/temp/commander/display/popup/$label$\" >\n<$button popup=<<stateTid>> class=\"tc-btn-invisible\"><span style=\"text-decoration: underline\">$label$</span></$button>\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<stateTid>> animate=\"yes\">\n<span style=\"color:blue;\"><$text text=<<__text__>> /></span></$reveal>\n</$set>\n\\end\n\n\\define is-filterSeearch-newer-than-selectedTitles(TidA, TidB)\n<$set name=\"tidAMod\" value={{{ [[$TidA$]get[modified]] }}}>\n<$set name=\"tidBMod\" value={{{ [[$TidB$]get[modified]] }}}>\n<$set name=\"tidAText\" value={{{ [[$TidA$]get[text]] }}}>\n<$set name=\"tidBText\" value={{{ [[$TidB$]get[text]] }}}>\n<$list filter=\"[<__TidB__>get[text]minlength[1]]\" variable=ignore>\n<$reveal type=\"nomatch\" default=<<tidAText>> text=<<tidBText>>>\n<$list filter=\"[<tidAMod>] [<tidBMod>] +[nsort[]last[1]removesuffix<tidBMod>]\">\nA new filter search has been detected, click on the search button to apply it.\n</$list>\n</$reveal>\n</$list>\n</$set>\n</$set>\n</$set>\n</$set>\n\\end\n\n!!Remarks\n;is-filterSeearch-newer-than-selectedTitles\n* Checks `TidA` and `TidB` for modified date and text\n* If They are not empty, then\n** checks if the text of two are equal, if not\n** checks to see if `TidB` is newer or not\n** if newer shows a message, to apply the new search filter\n* Note\n** `TidA=\"$:/temp/commander\"`\n** `TidB=\"$:/temp/commander/search-box\"`\n* is-filterSeearch-newer-than-selectedTitles is called from $:/plugins/kookma/commander/search/ui\n\n;display\n* gets a label and a text\n* create an inline label\n* on click label, the text is displayed as temporary popup\n* losing focus, the text goes hidden\n* this macro is used in customized compSelective to show the active filter"},"$:/plugins/kookma/commander/readme":{"created":"20200324061906254","modified":"20210102142228008","tags":"","type":"text/vnd.tiddlywiki","text":"; Tiddler Commander\nTiddler Commander, in short ''Commander'' is a unique tool for batch operations on tiddlers. Commander has the below features\n\n* Bulk tiddler creation/deletion\n* Combo search to filter and select tiddlers\n* Title operation: add, remove prefixes and suffixes, also remove cahras form begining and end of title (on renaming tiddlers, [[relink|$:/plugins/kookma/commander/help/uicomp/relink]] can be used to update title in other tiddlers)\n* Tag operation: add, remove, replace\n* Field operation: add, remove, rename, and set field value\n* SNR, search and replace in all fields including text, tags, //title//, and common fields\n* Inspect, to review and inspect tiddlers in one place, scroll among them and edit all fields (including common fields), tags, text (title is an exception!)\n* Log, create logs of all operations\n* Search, //save and load// any combination of filter search\n\n; Start Commander\n* Normally Commander adds its icon: <span class=\"cmd-doc\">{{$:/plugins/kookma/commander/images/commander.svg}}</span> to page controls.\n* Open the right sidebar and click on the <span class=\"cmd-doc\">{{$:/plugins/kookma/commander/images/commander.svg}}</span> Commander is started\n* In standard Tiddlywiki, control buttons are shown on the right sidebar under site title.\n\n; Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Commander/\n* Code: https://github.com/kookma/TW-Commander\n\n<style>\n.cmd-doc svg{\nwidth: 1.2em;\nheight: 1.2em;\nvertical-align: middle;}\n</style>"},"$:/plugins/kookma/commander/search/filter-button/clear":{"created":"20190214132946159","list-after":"$:/plugins/kookma/commander/search/filter-button/search","modified":"20200325055356645","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<$reveal type=\"nomatch\" stateTitle=<<searchboxTid>> stateField=\"text\" text=\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"clear search box and selected tiddlers\">\n<$action-setfield $tiddler=<<searchboxTid>> $field=\"text\" $value=\"\"/>\n<$action-setfield $tiddler=\"$:/temp/commander\" $field=\"text\" $value=\"\"/>\n<$action-setfield $tiddler=\"$:/state/commander/snr/select-tiddler\" $field=\"text\" $value=\"\"/><!-- SNR selection -->\n<$action-setfield $tiddler=\"$:/state/compInspect/temp/commander/selectState-tiddler\" $field=\"text\" $value=\"\"/> <!-- Inspect selection -->\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<!--\nthere is extra action should be removed\n-->"},"$:/plugins/kookma/commander/search/filter-button/dropdown":{"created":"20190214133424013","modified":"20200325055328632","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/commander/filterDropdown\">> class=\"tc-btn-invisible\" tooltip=\"select a search filter\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/commander/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<searchboxTid>> >\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Commander/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>"},"$:/plugins/kookma/commander/search/filter-button/save":{"created":"20190214141644228","list-after":"$:/plugins/kookma/commander/search/filter-button/clear","modified":"20200325055356657","tags":"$:/tags/Commander/Search/FilterButton","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n\n<$reveal type=\"nomatch\" stateTitle=<<searchboxTid>> stateField=\"text\" text=\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"save current search\" popup=<<qualify \"$:/state/commander/SaveDropdown\">> >\n{{$:/core/images/file}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/commander/SaveDropdown\">> type=\"popup\" class=\"tc-popup-keep\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\nSave new search filter<br><br>\n<$edit-text\ntiddler=\"$:/temp/commander/save-new-filter\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\"description for new filter\"\n/> <br><br>\n\n<$button class=\"tc-btn\"> Save new filter\n<$macrocall $name=\"create-new-filter\" \n description={{$:/temp/commander/save-new-filter}} \n\tbasetitle=\"$:/plugins/kookma/commander/filters/yourFilter\" \n\tfilter={{{[<searchboxTid>get[text]]}}} \t/>\n<$action-deletetiddler $tiddler=\"$:/temp/commander/save-new-filter\"/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/commander/SaveDropdown\">> />\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\n<!-- ToDO\ncorrect classes for textbox\n-->"},"$:/plugins/kookma/commander/search/macros/create-new-filter":{"created":"20190214142032323","modified":"20200325055356665","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define create-new-filter(description:\"\", basetitle:\"\", filter:\"\")\n<$list filter=\"[<__description__>!is[blank]]\" variable=\"ignore\">\n<$action-createtiddler \n $basetitle=\"\"\"$basetitle$\"\"\"\n tags=\"$:/tags/Commander/Filter\"\n description=<<__description__>>\n filter=\"\"\"$filter$\"\"\"\n /> \n</$list>\n\\end\n"},"$:/plugins/kookma/commander/search/macros/select-deselect":{"created":"20200106121946448","modified":"20200325055328657","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define select-all()\n<$list filter=\"[subfilter<filtertext>!is[missing]!tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n\\end\n\n\\define deselect-all()\n<$list filter=\"[tag<workingTag>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n\\end"},"$:/plugins/kookma/commander/search/macros/warning":{"created":"20200106143244633","modified":"20200325055328672","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define warn-for-selectedTids-from-previous-operation()\n<$list filter=\"[tag<workingTag>]-[subfilter<filtertext>]+[count[]!match[0]] \">\n<span style=\"color:red;font-size:0.85em\">There are remained selected tiddlers from previous search! Remove them by pressing ''deselect all''!</span>\n</$list>\n\\end"},"$:/plugins/kookma/commander/search/selection":{"caption":"Select tiddlers","created":"20190725144912018","modified":"20200325055328684","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n<$checkbox tiddler=<<selectiveOpsTid>> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\" uncheckactions=<<deselect-all>> > Selective operation?</$checkbox>\n\n<$reveal type=\"nomatch\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\" class=\"kk-commander-tiddler-list kk-commander-columns3\">\n<$list filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\"><$link/><br></$list>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\">\n<$button actions=<<select-all>> > Select all</$button> <$button actions=<<deselect-all>> > Deselect all</$button>\n<small style=\"margin-left:10px;\">Number of tiddlers selected: <$count filter=\"[tag<workingTag>]\" /></small><br>\n<<warn-for-selectedTids-from-previous-operation>>\n</$reveal>\n\n\n<$reveal type=\"match\" stateTitle=<<selectiveOpsTid>> stateField=\"text\" text=\"yes\" tag=\"div\" class=\"kk-commander-tiddler-list kk-commander-columns3\">\n<$list filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\">\n<$checkbox tag=<<workingTag>>> <$link/></$checkbox><br>\n</$list>\n</$reveal>\n\n<!-- Description\nThis tiddler implement interface to selectivly add tiddlers for commander operations.\nEach selected tiddler gets a working tag\n-->"},"$:/plugins/kookma/commander/search/ui":{"caption":"Commander filter search","created":"20190212055219117","modified":"20200325055356672","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/commander/macros/definition\n<!-- above statement is not required and only prevent this tiddler overwritten when this is opened by its own -->\n<div class=\"tc-search tc-advanced-search\" style=\"margin-bottom:-12px;\"><!-- negative margin for displaying matches -->\nCombo search <$edit-text tiddler=<<searchboxTid>> type=\"search\" tag=\"input\" default=\"\" placeholder=\"enter keywords or make a filter search e.g. [tag[myTag]]\" focus={{$:/plugins/kookma/commander/config/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Commander/Search/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>"},"$:/plugins/kookma/commander/setting/ui":{"caption":"Setting","created":"20190214140835173","icon":"$:/core/images/options-button","list-after":"$:/plugins/kookma/commander/inspect/ui","modified":"20200324070652760","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/Setting]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/setting/uicomp/snr\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/setting/uicomp/delete-all-temp-tiddlers":{"caption":"Temporary tiddlers","created":"20190301184304348","list-after":"$:/plugins/kookma/commander/setting/uicomp/relink","modified":"20200325055328690","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"\\define delete-all-temps()\n<$action-deletetiddler $filter=\"[search:title[$:/temp/commander/]]\" />\n\\end\n\n<$set name=numTids value={{{ [search:title[$:/temp/commander/]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo temporary tiddlers is existed to delete!\n</$reveal>\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\nNumber of temporary tiddlers (including log tiddlers): <<numTids>><br>\n</$reveal>\n</$set>\n\n<$macrocall $name=\"compConfirmAction\"\nbtnLabel=\"Delete temp tiddlers\" \nconfirmMessage=\"Are you sure you wish to delete\"\nstateTiddler=\"$:/state/commander/setting/delete-temps\"\ncountFilter=\"[search:title[$:/temp/commander/]]\"\nactionMacro=\"delete-all-temps\"/>"},"$:/plugins/kookma/commander/setting/uicomp/minlength":{"caption":"Search minimum length","created":"20200110132540295","modified":"20200324070652774","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"Controls the minimum length of a search string before results are displayed.\n\n<label class=\"kk-cmd-label\">Minlength</label><$edit-text tiddler=\"$:/plugins/kookma/commander/config/minlength\" field=text default=3 placeholder=\"enter a number\" tag=input/>"},"$:/plugins/kookma/commander/setting/uicomp/search-filters":{"caption":"Search filter","created":"20200116114041370","modified":"20200325055328703","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"The below list shows the Commander search filter. To edit click on the link and edit tiddler for filter syntax or description\n\n<details>\n<summary>Commander saved filter search</summary>\n<dl>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Commander/Filter]]\" >\n<dt><$link/></dt>\n<dd><span style=\"display:inline-block;font-weight:700;width:100px\">Description:</span><$view field=\"description\"/></dd>\n<dd><span style=\"display:inline-block;font-weight:700;width:100px\">Filter:</span><$view field=\"filter\"/></dd>\n</$list>\n</dl>\n</details>"},"$:/plugins/kookma/commander/setting/uicomp/snr":{"caption":"Snr setting","created":"20190324051157188","modified":"20200324070652789","tags":"$:/tags/Commander/Setting","type":"text/vnd.tiddlywiki","text":"<<snr-difftext-cleanup>>\n<div style=\"padding-left:25px;font-size:0.9em\">\n\nThe cleanup attribute determines which optional post-processing should be applied to the diffs:\n\n* none: no cleanup is performed\n* semantic (default): rewrites the diffs for human readability\n* efficient: rewrites the diffs to minimise the number of operations for subsequent processing\n</div>"},"$:/plugins/kookma/commander/snr/macros/actions":{"created":"20190307164924193","modified":"20200325055328711","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define regexp-flags()\n{{$:/state/commander/snr/gm}}{{$:/state/commander/snr/case-sensitive}}{{$:/state/commander/snr/unicode}}\n\\end\n\n\\define snr-ui-show-diffs()\n<form class=\"cmd-snr-form\" style=\"width:100%;\">\n <fieldset>\n <legend style=\"color:#FF0000;\">Differences</legend>\nTiddler: <$link to={{$:/state/commander/snr/select-tiddler}}><$text text={{$:/state/commander/snr/select-tiddler}}/></$link>\n\n<$wikify name=flags text=<<regexp-flags>> >\n\n<$macrocall $name=\"replace-text-diff\" \n tiddler={{$:/state/commander/snr/select-tiddler}} \n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\n\n</$wikify>\n</fieldset>\n</form>\n\\end\n\n\\define snr-check-diffs(tiddler:\"\", field:\"\")\n\\whitespace trim\n<$wikify name=flags text=<<regexp-flags>> >\n<$wikify name=\"result\" text=\"\"\"\n<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>>\n field=<<__field__>>\n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\"\"\">\n<$reveal type=\"match\" text={{{ [<__tiddler__>get<__field__>] }}} default=<<result>> >\nsame\n</$reveal>\n<$reveal type=\"nomatch\" text={{{ [<__tiddler__>get<__field__>] }}} default=<<result>> >\ndifferent\n</$reveal>\n</$wikify>\n</$wikify>\n\\end\n\n\\define search-replace-in-tiddler-field(tiddler:\"\",field:\"\",replace:\"\",replaceWith:\"\")\n<$wikify name=ss text=<<snr-check-diffs \"\"\"$tiddler$\"\"\" \"\"\"$field$\"\"\">> >\n<$list filter=\"[<ss>] -same\" variable=ignore>\n<$list filter=\"[<__tiddler__>has[title]]\" variable=\"ignore\">\n<$wikify name=flags text=<<regexp-flags>> >\n<$macrocall $name=\"replace-text-button\" \n tiddler=<<__tiddler__>> \n field=<<__field__>>\n replace=<<__replace__>>\n replaceWith=<<__replaceWith__>> \n flags=<<flags>> \n wholeWords={{$:/state/commander/snr/whole-words}}\n/>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"`$field$` field has been changed\"\"\" tidItem=<<__tiddler__>> />\n<$macrocall $name=\"clear-select-tiddler-if-field-is-title\" tiddler=<<__tiddler__>> field=<<__field__>> />\n</$wikify>\n</$list>\n</$list>\n</$wikify>\n\\end\n\n\\define clear-select-tiddler-if-field-is-title(tiddler, field)\n<$list filter=\"[<__field__>] +[search[title]]\" variable=\"ignore\">\n<$action-setfield $tiddler=\"$:/state/commander/snr/select-tiddler\" text=\"\"/>\n<$action-setfield $tiddler=\"$:/temp/commander/selected-titles\" $index=<<__tiddler__>> />\n</$list>\n\\end\n\n\\define search-replace-in-field-bulk()\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"SNR operation\">>\n<$list filter=\"[subfilter<searchfilter>!is[missing]]\" >\n <$macrocall \n $name=\"search-replace-in-tiddler-field\"\n tiddler=<<currentTiddler>> \n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n />\n</$list>\n</$list>\n\\end\n\n\\define search-replace-in-field-single-tiddler()\n<<create-log-tiddler \"SNR operation\">>\n <$macrocall \n $name=\"search-replace-in-tiddler-field\"\n tiddler={{$:/state/commander/snr/select-tiddler}}\n field={{$:/state/commander/snr/select-tiddler/field}} \n replace={{$:/state/commander/snr/replace-text}} \n replaceWith={{$:/state/commander/snr/replace-text-with}} \n />\n\\end\n\n\\define snr-actions()\n<$button actions=<<search-replace-in-field-single-tiddler>> tooltip=\"search and replace in a single tiddler\" class=\"cmd-btn\">\nReplace?\n</$button> \n<!-- replace in bulk tiddler with confirmation -->\n<$macrocall $name=\"compConfirmAction\"\ncountFilter=<<searchfilter>>\nactionMacro=\"search-replace-in-field-bulk\"\nstateTiddler=\"$:/state/commander/SelectiveReplaceAllDropdown\"\nconfirmMessage=\"Are you sure you wish to replace text in\" \nbtnLabel=\"Replace all?\"/>\n\\end"},"$:/plugins/kookma/commander/snr/macros/inputs":{"created":"20190306203626597","modified":"20200325055328720","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define snr-ui-inputs()\n<form class=\"cmd-snr-form\">\n <fieldset>\n <legend>Search and Replace</legend>\n\n<div class=\"item\">\n<label>Tiddler title</label>\n<$select tiddler=\"$:/state/commander/snr/select-tiddler\" default=\"\" class=\"cmd-snr-textbox\">\n<option value=\"\">None</option>\n<$list filter=\"[subfilter<searchfilter>]\" >\n<option value=<<currentTiddler>>><$text text=<<currentTiddler>>/></option>\n</$list>\n</$select>\n</div>\n\n<div class=\"item\">\n<label>Field name</label>\n<$select tiddler=\"$:/state/commander/snr/select-tiddler/field\" default=\"text\">\n<$list filter=\"[subfilter<searchfilter>fields[]]\">\n<option value=<<currentTiddler>>><$text text=<<currentTiddler>>/></option>\n</$list>\n</$select>\n</div>\n\n<div class=\"item\">\n<label>Search text</label>\n<$edit-text \n tiddler=\"$:/state/commander/snr/replace-text\" \n tag=\"input\" \n default=\"\" \n placeholder=\" text to replace\"\n class=\"cmd-snr-textbox\"/>\n</div>\n\n<div class=\"item\">\n<label>Replace with </label>\n<$edit-text \n tiddler=\"$:/state/commander/snr/replace-text-with\" \n tag=\"input\" \n default=\"\" \n placeholder=\" new text\"\n class=\"cmd-snr-textbox\"/>\n</div>\n<!-- Use relink to update titles -->\n<$list filter=\"[[$:/state/commander/snr/select-tiddler/field]get[text]match[title]]\" variable=ignore>\n<div class=\"item-relink\">{{$:/plugins/kookma/commander/config/relink}}</div>\n</$list>\n</fieldset>\n</form>\n\n\n\\end"},"$:/plugins/kookma/commander/snr/macros/regexp-flags":{"created":"20190306182052441","modified":"20200325055328730","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define snr-regexp-flags()\n\n<form class=\"cmd-snr-form\">\n<fieldset>\n<legend>Search flags</legend>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/case-sensitive\" \n field=\"text\" \n checked=\"i\" \n unchecked=\"\"\n/> ignore case<br>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/whole-words\" \n field=\"text\" \n checked=\"words\" \n unchecked=\"characters\"\n/> whole words<br>\n\n<$checkbox \n tiddler=\"$:/state/commander/snr/unicode\" \n field=\"text\" \n checked=\"u\" \n unchecked=\"\"\n/> unicode<br>\n\n<br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"\"> first match \n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"g\"> global match\n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"m\"> multiline mode\n</$radio><br>\n\n<$radio\n tiddler=\"$:/state/commander/snr/gm\" \n field=\"text\" \n value=\"mg\"> global multiline mode\n</$radio>\n\n</fieldset>\n</form>\n\\end"},"$:/plugins/kookma/commander/snr/macros/regexpsub.js":{"text":"!function(){'use strict';exports.name='regexpsub',exports.params=[{name:'searchValue'},{name:'replaceValue'},{name:'sourceText'},{name:'flags'},{name:'wholeWords'}],exports.run=function(e,r,a,n='gi',s='characters'){try{var t='words'===s.toLowerCase()?'\\\\b'+e+'\\\\b':e;return t=new RegExp(t,n),a.replace(t,r)}catch(e){return'ERROR IN REG EXPRESSION. YOU MAY NEED TO ESCAPE VALUES'}}}();","created":"20190214160253135","type":"application/javascript","modified":"20200324070652819","module-type":"macro"},"$:/plugins/kookma/commander/snr/macros/replace-text":{"created":"20190227134610136","modified":"20200325055328737","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define nothing-to-replace(tiddler, field:\"text\") \n<$diff-text source={{{ [<__tiddler__>get<__field__>] }}} dest={{{ [<__tiddler__>get<__field__>] }}} />\n\\end\n\n\\define replace-text(tiddler:\"\",field:\"text\",replace:\"\",replaceWith:\"\",flags:\"\", wholeWords:\"\")\n\\whitespace trim\n<$wikify name=\"source\" text=\"\"\"<$view tiddler=<<__tiddler__>> field=<<__field__>> mode=\"block\" format=\"text\"/>\"\"\">\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"regexpsub\" $type=\"text/plain\" \n sourceText=<<source>> \n searchValue=<<__replace__>> \n replaceValue=<<__replaceWith__>> \n flags=<<__flags__>> \n wholeWords=<<__wholeWords__>> />\"\"\" \n >\n<$text text=<<result>>/>\n</$wikify>\n</$wikify>\n\\end\n\n\\define replace-text-diff(tiddler:\"\", field:\"text\", replace, replaceWith, flags:\"\", wholeWords:\"\")\n<$list filter=\"[<__tiddler__>get<__field__>minlength[1]]\" variable=null emptyMessage=\"No tiddler is selected, or tiddler is empty.\">\n<$list filter=\"[<__replace__>minlength[1]]\" variable=null emptyMessage=<<nothing-to-replace \"\"\"$tiddler$\"\"\" \"\"\"$field$\"\"\">> >\n\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>> field=<<__field__>> \n replace=<<__replace__>> \n replaceWith=<<__replaceWith__>> \n flags=<<__flags__>>\n wholeWords=<<__wholeWords__>> />\"\"\"\n >\n<$diff-text source={{{ [<__tiddler__>get<__field__>] }}} dest=<<result>> cleanup={{$:/state/commander/snr/setting/cleanup}}/>\n</$wikify>\n\n</$list>\n</$list>\n\\end\n\n\\define replace-text-button(tiddler:\"\", field:\"text\", replace:\"\", replaceWith:\"\", flags:\"\", wholeWords:\"\")\n\\whitespace trim\n<$list filter=\"[<__tiddler__>get<__field__>minlength[1]]\" variable=null>\n<$list filter=\"[<__replace__>minlength[1]]\" variable=null>\n<$wikify name=\"result\" \n text=\"\"\"<$macrocall $name=\"replace-text\" \n tiddler=<<__tiddler__>> \n field=<<__field__>> \n replace=<<__replace__>> \n replaceWith=<<__replaceWith__>> \n flags=<<__flags__>>\n wholeWords=<<__wholeWords__>> />\"\"\"\n >\n<$reveal type=\"nomatch\" default=\"title\" text=<<__field__>> >\n <$action-setfield $tiddler=<<__tiddler__>> $field=<<__field__>> $value=<<result>>/>\n</$reveal>\n<$reveal type=\"match\" default=\"title\" text=<<__field__>> >\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<__tiddler__>> to=<<result>> />\n</$reveal>\n</$wikify>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/snr/ui":{"caption":"Snr","created":"20190220210055713","icon":"$:/core/images/gitter","list-after":"$:/plugins/kookma/commander/inspect/ui","modified":"20200324070652833","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"Search and replcae in tiddler fields!\n\n<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/SnrOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/snr/uicomp/replace-text\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n"},"$:/plugins/kookma/commander/snr/uicomp/replace-text":{"caption":"Search and replace","created":"20190220211138573","icon":"$:/core/images/gitter","modified":"20200325055328748","tags":"$:/tags/Commander/SnrOps","type":"text/vnd.tiddlywiki","text":"<div class=\"cmd-snr-row\">\n<div class=\"cmd-snr-double-column\">\n<<snr-ui-inputs>>\n</div>\n<div class=\"cmd-snr-column\">\n<<snr-regexp-flags>> \n</div>\n</div>\n<<snr-ui-show-diffs>>\n<<snr-actions>>"},"$:/plugins/kookma/commander/stylesheet/alert":{"text":".commander-alert {\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px dotted gray;\n border-radius: 0.25rem;\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n\t\n}","created":"20190725161822490","modified":"20200325092557277","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/buttons":{"text":"/**\n.cmd-btn{\n font-size:0.85em;\n font-size:300;\n color: #666666;\n background-color: #d8d8d8;\n padding: 3px 8px 3px 8px;\n border: 1px solid #a1a1a1;\n}\n**/\n\n.cmd-btn-wd{\n\twidth:20ch;\n}","created":"20190317080436103","modified":"20200324070652859","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/compInspect/table":{"text":"/*compInspect table*/\n.cmd-ci-table\n{border-collapse: collapse;}\n\n.cmd-ci-table .leftcol{\nwidth:20%;\nvertical-align: top;\ntext-align: right;\nbackground-color:#f0f0f0;\n}\n.cmd-ci-table .rightcol{\nwidth:650px;\n}\n","created":"20190308134702363","modified":"20200324070652871","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/new":{"text":".kk-commander-log-note{\n\tfont-style:italic; font-size:small;\n}\n.kk-commander-log-item {\n\tcolor:green;\n}\n\n/* This is missing and I added it */\n.cmd-txt-area{\n\tmin-width:25ch;\n}\n\n.cmd-txt-area2{\n\tmin-width:50ch;\n}\n\n/* Correct this later*/\n.kk-cmd-label{\n\tdisplay:inline-block;\n\twidth:85px;\n}\n\n.kk-cmd-label2{\n\tdisplay:inline-block;\n\twidth:120px;\n}","created":"20200105140038538","modified":"20200324070652878","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/select-width":{"text":".cmd-sl{\n width:8ch;\n}\n\n.cmd-select-wd{\n min-width:25ch;\n}\n","created":"20190218214027079","modified":"20200324070652887","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/snr/flexbox":{"text":".cmd-snr-row {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n}\n.cmd-snr-column {\n display: flex;\n flex-direction: column;\n flex-basis: 100%;\n flex: 1\n}\n\n.cmd-snr-double-column {\n display: flex;\n flex-direction: column;\n flex-basis: 100%;\n flex: 2\n}\n\n@media screen and (min-width: 800px) {\n .cmd-snr-column {\n flex: 1\n }\n\n .cmd-snr-double-column {\n flex: 2\n }\n}","created":"20190306203517655","modified":"20200324070652893","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/snr/form":{"text":".cmd-snr-form{\n width:100%;\n}\n\n.cmd-snr-textbox {\n width:100%;\n box-sizing: border-box;\n max-width:40ch;\n }\n\n.cmd-snr-form select, .cmd-snr-form input{\n margin: 0.2rem;\n}\n.cmd-snr-form legend{\n background: #f5f5f5;\n padding: 3px 6px;\n}\n\n.cmd-snr-form { padding:20px; }\n.cmd-snr-form .item { padding: 2px; margin:2px; }\n.cmd-snr-form .item label { display:inline-block; width:100px; margin-left:5px; }\n.cmd-snr-form .item input { display:inline-block; }\n.cmd-snr-form .item select { display:inline-block; }\n\n/* only for relink checkbox on renaming tiddler */\n.cmd-snr-form .item-relink { padding: 2px; margin:2px; }\n\n ","created":"20190306191714819","modified":"20200324070652907","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/stylesheet/tiddler-list":{"text":".kk-commander-tiddler-list {\n font-size:small; \n\tborder-left:0.5px \n\tdotted grey;\n\tpadding-left:10px;\n\toverflow-y:auto;\n\tmax-width:100%;\n\tmax-height:$(height)$;\n}\n\n.kk-commander-columns1 { display:block; column-count:1; column-gap:1em; }\n.kk-commander-columns2 { display:block; column-count:2; column-gap:1em; }\n.kk-commander-columns3 { display:block; column-count:3; column-gap:1em; }\n.kk-commander-columns4 { display:block; column-count:4; column-gap:1em; }\n.kk-commander-columns5 { display:block; column-count:5; column-gap:1em; }","created":"20200103165931672","modified":"20200324070652922","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/commander/tag/macros/add-remove-replace":{"created":"20190212063435548","modified":"20200325055328754","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-new-tag-bulk(newTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__newTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"add-new-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>!tag<__newTag__>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__newTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"new tag `$newTag$` added\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-old-tag-bulk(oldTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"remove-old-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>tag<__oldTag__>]\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"old tag `$oldTag$` removed\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n\\end\n\n\n\\define replace-tag-bulk(oldTag:\"\", newTag:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore>\n<$list filter=\"[<__oldTag__>!is[blank]]\" variable=null>\n<$list filter=\"[<__newTag__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"replace-tag-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"[<currentTiddler>tag<__oldTag__>]\" variable=ignore\n emptyMessage=\"\"\"<$macrocall $name=\"log-add-single-operation\" msg=\"//has not tag `$oldTag$`. Operation ignored.//\" tidItem=<<currentTiddler>> /> \"\"\">\n<$fieldmangler>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__newTag__>> />\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<__oldTag__>> />\n</$fieldmangler>\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"tag `$oldTag$` replaced with `$newTag$`\"\"\" tidItem=<<currentTiddler>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/tag/ui":{"caption":"Tag","created":"20190212051852003","list-after":"$:/plugins/kookma/commander/title/ui","modified":"20200325055328765","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TagOps]!has[draft.of]]\" default:\"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags\" \nclass:\"tc-vertical cmd-tab-wd\">>\n\n"},"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags":{"caption":"Add remove tags","created":"20190212063924640","modified":"20200325055328771","tags":"$:/tags/Commander/TagOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">New tag</label><$edit-text\ntiddler=\"$:/temp/commander/tag-add-remove/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new tag\"/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Add new tag\n<$macrocall $name=\"add-new-tag-bulk\" newTag={{$:/temp/commander/tag-add-remove/new}} />\n</$button>\n\n<label class=\"kk-cmd-label\">Old tag</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/tag-add-remove/old\" default=\"\" >\n<$list filter=\"[subfilter<searchfilter>!is[missing]tags[]sort[]]-[<workingTag>]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove old tag\n<$macrocall $name=\"remove-old-tag-bulk\" oldTag={{$:/temp/commander/tag-add-remove/old}} />\n</$button>\n\n"},"$:/plugins/kookma/commander/tag/uicomp/replace-tags":{"caption":"Replace tags","created":"20190212080523588","list-after":"$:/plugins/kookma/commander/tag/uicomp/add-remove-tags","modified":"20200325055328782","tags":"$:/tags/Commander/TagOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Old tag</label><$select class=\"cmd-select-wd\" tiddler=\"$:/temp/commander/replace-tags/old\" default=\"\">\n<$list filter=\"[subfilter<searchfilter>!is[missing]tags[]sort[]]-[<workingTag>]\" >\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<label class=\"kk-cmd-label\">New tag</label><$edit-text\ntiddler=\"$:/temp/commander/replace-tags/new\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" new tag\"\n/>\n<$button class=\"cmd-btn cmd-btn-wd\"> Replace tag\n<$macrocall $name=\"replace-tag-bulk\" \noldTag={{$:/temp/commander/replace-tags/old}} \nnewTag={{$:/temp/commander/replace-tags/new}} />\n</$button>\n\n"},"$:/plugins/kookma/commander/template/base":{"caption":"base","created":"20190213200622605","modified":"20200324070652960","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","text":"This is a simple one!"},"$:/plugins/kookma/commander/template/doc":{"caption":"documentation","created":"20190213200338381","modified":"20200324070652969","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","version":"beta","text":"!! Introduction\n<<<\nshort introduction\n<<<\n\n!! Content and parameters\n<<<\nThe content, attributes and parameters\n\n|!Parameter |!Description |\n|par1 |description |\n|par2 |description |\n<<<\n\n!! Example i\n<<<\nexample here\n<<<\n\n!! Example ii\n<<<\nanother example here\n<<<\n\n!! References\n<<<\n# one\n# Two\n<<<"},"$:/plugins/kookma/commander/template/simple":{"caption":"simple","created":"20190213200258460","modified":"20200324070652975","tags":"$:/tags/Commander/Template","type":"text/vnd.tiddlywiki","version":"beta","text":"! Heading one\nThis is sunsection i\n\n!! Heading two\nThis is subsection ii.\n\n* one\n* two\n* three\n\n!!! Heading three\nThis is subsction iii\n\n```\nA sample code\n```\n\n!! Sample table\n|Table 1. This is caption|c\n|Heading one|Heading Two|Heading Three|h\n|r1|100|200|\n|r2|02|03|\n|r3|-1|-2|\n"},"$:/plugins/kookma/commander/tiddler/macros/create":{"created":"20190212125920722","modified":"20200325055328790","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-create(msg:\"Tiddler existed, operation ignored\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=\"$(newTitle)$\" $value=\"$msg$\" />\n\\end\n\n\\define bulk-tiddler-creator(baseTitle, baseTags, datafieldsTid, numberTiddler:\"1\")\n<$list filter=\"[<__baseTitle__>!is[blank]]\" variable=ignore>\n<<create-log-tiddler \"bulk-tiddler-creator\">>\n<$list filter=\"[range[9]addprefix[00]] [range[10,99]addprefix[0]] [range[100,500]] +[limit<__numberTiddler__>]\" variable=\"L1\">\n<$list filter=\"[<__baseTitle__>addsuffix<L1>]\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\" emptyMessage=<<log-create>> >\n<$action-createtiddler $basetitle=<<newTitle>> tags=<<__baseTags__>> /> \n<$vars datafieldsTid=<<__datafieldsTid__>> >\n<<add-bulk-fields>>\n</$vars>\n<<log-create \"Tiddler created\">>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define oneTid-with-template()\n<$tiddler tiddler=<<newTitle>> >\n <$action-setfield $tiddler=<<myTemplate>> title=<<currentTiddler>> /> \n <$fieldmangler>\n <$list filter=\"[enlist<myTags>]\" variable=newTag>\n <$action-sendmessage $message=\"tm-add-tag\" $param=<<newTag>> />\n </$list><!--next remove extra tag used by template from new created tiddler-->\n <$action-sendmessage $message=\"tm-remove-tag\" $param=\"$:/tags/Commander/Template\" />\n</$fieldmangler>\n</$tiddler>\n\\end\n\n\n\\define bulk-tiddler-with-template-creator(baseTitle, baseTags, datafieldsTid, numberTiddler:\"1\", template:\"\")\n<$list filter=\"[<__baseTitle__>!is[blank]]\" variable=ignore>\n<<create-log-tiddler \"bulk-tiddler-creator with template\">>\n<$vars datafieldsTid=<<__datafieldsTid__>>\n myTags=<<__baseTags__>> \n myTemplate=<<__template__>> >\n<$list filter=\"[range[9]addprefix[00]] [range[10,99]addprefix[0]] [range[100,500]] +[limit<__numberTiddler__>]\" variable=\"L1\">\n<$list filter=\"[<__baseTitle__>addsuffix<L1>]\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>!has[title]]\" variable=\"ignore\" emptyMessage=<<log-create>> >\n <<oneTid-with-template>>\n <<add-bulk-fields>>\n <<log-create \"Tiddler created\">>\n</$list>\n</$list>\n</$list>\n</$vars>\n</$list>\n\\end\n\n"},"$:/plugins/kookma/commander/tiddler/macros/delete":{"created":"20190215195221625","modified":"20200325055328801","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-delete-selectively(item, msg:\"Tiddler deleted\")\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<__item__>> $value=\"$msg$\" />\n\\end\n\n\\define delete-tiddlers-selective-bulk()\n<$list filter=\"[subfilter<searchfilter>limit[1]]\" variable=\"ignore\"><!-- at least searchfilter shall return one tiddler-->\n<<create-log-tiddler \"delete-tiddler-selectively\">>\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"Item\">\n<$action-deletetiddler $tiddler=<<Item>> />\n<$macrocall $name=\"log-delete-selectively\" item=<<Item>> />\n</$list>\n</$list>\n\\end"},"$:/plugins/kookma/commander/tiddler/macros/export":{"created":"20200113101003510","modified":"20200325055328808","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define add-export-tag()\n<$list filter=<<searchfilter>> >\n<$fieldmangler>\n<$list filter=\"[enlist{$(exportTagTid)$}]~[[exported]]\" variable=\"exportTag\" ><!-- add all export tags-->\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<exportTag>> />\n</$list>\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<workingTag>> />\n</$fieldmangler>\n</$list>\n\\end\n\n\\define remove-export-tag()\n<$list filter=<<searchfilter>> >\n<$fieldmangler>\n<$list filter=\"[<selectiveOpsTid>get[text]match[yes]]\" variable=ignore>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<workingTag>> />\n</$list>\n<$list filter=\"[enlist{$(exportTagTid)$}]~[[exported]]\" variable=\"exportTag\" ><!-- remove all export tags-->\n<$action-sendmessage $message=\"tm-remove-tag\" $param=<<exportTag>> />\n</$list>\n</$fieldmangler>\n</$list>\n\\end\n\n\\define log-export-selectively(msg:\"Tiddler exported\")\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"item\">\n<$action-setfield $tiddler={{$:/state/commander/log-tiddler}} $index=<<item>> $value=\"$msg$\" />\n</$list>\n\\end\n\n\n\\define commander-exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<<create-log-tiddler \"exportButton: bulk tiddlers exported\">>\n<$macrocall $name=\"log-export-selectively\"/><!--log any tiddler exported-->\n<<add-export-tag>><!-- by Mohammad-->\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n<<remove-export-tag>><!-- by Mohammad-->\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end"},"$:/plugins/kookma/commander/tiddler/ui":{"caption":"Tiddler","created":"20190212125319261","list-before":"$:/plugins/kookma/commander/title/ui","modified":"20200325055328821","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TiddlerOps]!has[draft.of]]\"\ndefault:\"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n"},"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers":{"caption":"Create tiddlers","created":"20190213193004029","modified":"20200325055328832","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"<label class=\"kk-cmd-label\">Base title</label>\n<$edit-text \n tiddler=\"$:/temp/commander/tiddler-base-title\" \n tag=\"input\" default=\"\"\n placeholder=\" base title\" \n class=\"cmd-txt-area\"/><br>\n\n<label class=\"kk-cmd-label\">Tags</label>\n<$edit-text \n tiddler=\"$:/temp/commander/tiddler-base-tags\" \n tag=\"input\" default=\"\"\n placeholder=\" tags\" \n class=\"cmd-txt-area\"\n/> \n\n<!-- add interface for adding fields -->\n<$macrocall $name=\"add-more-fields-selective-ui\"\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n stateTiddler=\"$:/state/commander/tiddler-addfields-status\" />\n\n\n<$checkbox \n tiddler=\"$:/state/commander/tiddler-template-status\" \n field=\"text\" \n checked=\"use-template\" unchecked=\"no-template\"\n default=\"no-template\"> \n Use template?\n</$checkbox>\n\n<$reveal type=\"match\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\" >\nTemplate\n<$select tiddler=\"$:/temp/commander/template-newtiddler\" \n default=\"$:/plugins/kookma/commander/template/base\">\n<$list filter='[all[shadows+tiddlers]tag[$:/tags/Commander/Template]]'>\n<option value=<<currentTiddler>> >\n<$view field=\"caption\"><$view field=\"title\"/></$view>\n</option>\n</$list>\n</$select>\n<$button class=\"tc-btn-invisible\"> {{$:/core/images/edit-button}}\n <$action-sendmessage $message=\"tm-edit-tiddler\" \n $param={{{ [[$:/temp/commander/template-newtiddler]get[text]]~[[$:/plugins/kookma/commander/template/base]] }}} />\n</$button>\n\n</$reveal>\n\nNumber of tiddlers \n<$select tiddler=\"$:/temp/commander/tiddler-base-number\" default='1'>\n<$list filter='[range[1,19, 1]] [range[20,50, 5]] [range[60,100,10]] [range[200,500,100]]'>\n<option value=<<currentTiddler>>><$view field='title'/></option>\n</$list>\n</$select>\n\n<!-- call macros for create tiddlers -->\n<$reveal type=\"nomatch\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\">\n <$button class=\"cmd-btn cmd-btn-wd\"> Create tiddlers\n <$macrocall $name=\"bulk-tiddler-creator\"\n baseTitle={{$:/temp/commander/tiddler-base-title}}\n baseTags={{$:/temp/commander/tiddler-base-tags}}\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n numberTiddler={{$:/temp/commander/tiddler-base-number}} />\n </$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/state/commander/tiddler-template-status\" text=\"use-template\" default=\"no-template\">\n <$button class=\"cmd-btn cmd-btn-wd\"> Create tiddlers\n <$macrocall $name=\"bulk-tiddler-with-template-creator\"\n baseTitle={{$:/temp/commander/tiddler-base-title}}\n baseTags={{$:/temp/commander/tiddler-base-tags}}\n datafieldsTid=\"$:/temp/commander/tiddler/datafields/createTiddler\"\n numberTiddler={{$:/temp/commander/tiddler-base-number}}\n template={{$:/temp/commander/template-newtiddler}}/>\n </$button>\n</$reveal>\n"},"$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers":{"caption":"Delete tiddlers","created":"20190301144408502","list-after":"$:/plugins/kookma/commander/tiddler/uicomp/create-tiddlers","modified":"20200325055328839","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"<$set name=numTids value={{{[subfilter<searchfilter>!is[missing]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo tiddlers is selected for deleteion!\n</$reveal>\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\n\nNumber of tiddlers selected for deletion: <<numTids>><br>\nNote that, the delete operation cannot be undone!!\n<br>\n\n<$macrocall $name=\"compConfirmAction\"\ncountFilter=\"[subfilter<searchfilter>]\"\nactionMacro=\"delete-tiddlers-selective-bulk\"\nstateTiddler=\"$:/state/commander/SelectiveDeleteDropdown\"\n/>\n\n</$reveal>\n</$set>\n\n\n"},"$:/plugins/kookma/commander/tiddler/uicomp/export-tiddlers":{"caption":"Export tiddlers","created":"20200112093148417","list-after":"$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers","modified":"20200325055328851","tags":"$:/tags/Commander/TiddlerOps","type":"text/vnd.tiddlywiki","text":"\\define export-tiddler-ui(baseFilename)\n<$set name=\"exportList\" filter=<<searchfilter>> ><!-- without this $SetWidget the exportButton does not work -->\n<$vars tv-config-toolbar-text=\"yes\" tv-config-toolbar-class=\"tc-button tt-button\">\n<$macrocall $name=\"commander-exportButton\" exportFilter=<<exportList>> lingoBase=\"$:/language/Buttons/ExportTiddlers/\" baseFilename=\"\"\"$baseFilename$\"\"\"/>\n</$vars>\n</$set>\n\\end\n\n\\define exportFileName-and-Tags-ui() \n<label class=\"kk-cmd-label2\">Export filename</label><$edit-text tiddler=\"$:/temp/commander/exportFilename\" tag=input default=\"tiddlers\" placeholder=\"tiddlers\" class=\"cmd-txt-area\"/>\n<br>\n\n<label class=\"kk-cmd-label2\">Export tags</label><$edit-text tiddler=\"$:/temp/commander/exportTag\" tag=input default=\"exported\" placeholder=\"exported\" class=\"cmd-txt-area\"/><br>\n\\end\n\n<$set name=numTids value={{{[subfilter<searchfilter>!is[missing]count[]] }}}>\n<$reveal type=\"match\" text=\"0\" default=<<numTids>> >\nNo tiddlers is selected for export!\n</$reveal>\n\n<$reveal type=\"gt\" text=\"0\" default=<<numTids>> >\n\nNumber of tiddlers selected for export: <<numTids>><br>\n\n<<exportFileName-and-Tags-ui>>\n<$macrocall $name=\"export-tiddler-ui\" baseFilename={{{[[$:/temp/commander/exportFilename]get[text]]~[[tiddlers]]}}} />\n</$reveal>\n</$set>\n\n"},"$:/plugins/kookma/commander/title/macros/prefix":{"created":"20190212122742891","modified":"20200325055328857","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-changePrefix(message, oldTitle, newTitle)\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"$message$. New title [[$newTitle$]]\"\"\" tidItem=<<__oldTitle__>> />\n\\end\n\n\\define addPrefix-to-tiltle-bulk(prefix:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__prefix__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"addPrefix-to-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>addprefix[$prefix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changePrefix message=\"title prefix: `$prefix$` added\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define removePrefix-from-tiltle-bulk(prefix:\"\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__prefix__>!is[blank]]\" variable=null>\n<<create-log-tiddler \"removePrefix-from-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>removeprefix[$prefix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changePrefix message=\"title prefix: `$prefix$` removed\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list> \n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/remove-cahrs-end":{"created":"20190218190318901","modified":"20200325055328869","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define suffix-actions2()\n<$list filter=\"[subfilter<searchfilter>]+[prefix<sfx>]\" variable=\"item\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<item>> to=<<sfx>> />\n <$macrocall $name=\"log-add-single-operation\" msg=\"\"\"characters removed from end. New title [[$(sfx)$]]\"\"\" tidItem=<<item>> />\n</$list>\n\\end\n\n\n\\define makelink2() [[$(newTitle)$]]\n\n\\define generate-suffixes2(n:\"0\")\n<$list filter=\"[<__n__>] -0\" variable=null>\n<$list filter=\"[subfilter<searchfilter>]\" variable=\"item\">\n<$list filter=\"\"\"[<item>split[]butlast[$n$]join[]trim[]]\"\"\" variable=\"newTitle\">\n<$text text=<<makelink2>>/>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-chars-from-end-tiltle-bulk(num:\"0\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__num__>] -0\" variable=null>\n<<create-log-tiddler \"remove-chars-from-end-tiltle-bulk\">>\n<$vars n=<<__num__>> >\n<$wikify text=\"\"\"<<generate-suffixes2 n:\"$num$\">>\"\"\" name=\"outputs\">\n <$list filter=\"[subfilter<outputs>]\" variable=\"sfx\">\n<$list filter=\"[subfilter<searchfilter>]+[prefix<sfx>limit[2]count[]regexp[2]]\" emptyMessage=<<suffix-actions2>> variable=\"cnt\">\n</$list>\n</$list>\n</$wikify>\n</$vars>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/remove-cahrs-start":{"created":"20190218214608685","modified":"20200325055328877","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define suffix-actions()\n<$list filter=\"[subfilter<searchfilter>]+[suffix<sfx>]\" variable=\"item\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<item>> to=<<sfx>> />\n <$macrocall $name=\"log-add-single-operation\" msg=\"\"\"characters removed from start. New title [[$(sfx)$]]\"\"\" tidItem=<<item>> />\n</$list>\n\\end\n\n\n\\define makelink() [[$(newTitle)$]]\n\n\\define generate-suffixes(n:\"0\")\n<$list filter=\"[<__n__>] -0\" variable=null>\n<$list filter=\"[subfilter<searchfilter>has[title]]\" variable=\"item\">\n<$list filter=\"\"\"[<item>split[]rest[$n$]join[]trim[]]\"\"\" variable=\"newTitle\">\n<$text text=<<makelink>>/>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define remove-chars-from-begining-tiltle-bulk(num:\"0\")\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<$list filter=\"[<__num__>] -0\" variable=null>\n<<create-log-tiddler \"remove-chars-from-begining-tiltle-bulk\">>\n<$vars n=<<__num__>> >\n<$wikify text=\"\"\"<<generate-suffixes n:\"$num$\">>\"\"\" name=\"outputs\">\n <$list filter=\"[subfilter<outputs>]\" variable=\"sfx\">\n <$list filter=\"[subfilter<searchfilter>]+[suffix<sfx>limit[2]count[]regexp[2]]\" \n emptyMessage=<<suffix-actions>> variable=\"cnt\">\n </$list>\n </$list>\n</$wikify>\n</$vars>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/macros/suffix":{"created":"20190212143639636","modified":"20200325055328886","tags":"$:/tags/Commander/Macro","type":"text/vnd.tiddlywiki","text":"\\define log-changeSuffix(message, oldTitle, newTitle)\n<$macrocall $name=\"log-add-single-operation\" msg=\"\"\"$message$. New title [[$newTitle$]]\"\"\" tidItem=<<__oldTitle__>> />\n\\end\n\n\\define addSuffix-to-tiltle-bulk(suffix:\"\")\n<$list filter=\"[<__suffix__>!is[blank]]\" variable=null>\n<$list filter=\"[subfilter<searchfilter>limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"addSufffix-to-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>addsuffix[$suffix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changeSuffix message=\"title suffix: `$suffix$` added\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n\n\\define removeSuffix-from-tiltle-bulk(suffix:\"\")\n<$list filter=\"[<__suffix__>!is[blank]]\" variable=null>\n<$list filter=\"[subfilter<searchfilter>!is[missing]limit[1]]\" variable=ignore><!--check if filter is empty -->\n<<create-log-tiddler \"removeSuffix-from-tiltle-bulk\">>\n<$list filter=\"[subfilter<searchfilter>]\">\n<$list filter=\"\"\"[<currentTiddler>removesuffix[$suffix$]] -[<currentTiddler>]\"\"\" variable=\"newTitle\">\n<$list filter=\"[<newTitle>] -[has[title]]\" variable=\"ignore\">\n <$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to=<<newTitle>> />\n <$macrocall $name=log-changeSuffix message=\"title suffix: `$suffix$` removed\" oldTitle=<<currentTiddler>> newTitle=<<newTitle>> />\n</$list>\n</$list>\n</$list>\n</$list>\n</$list>\n\\end\n"},"$:/plugins/kookma/commander/title/ui":{"caption":"Title","created":"20190212051704536","list-after":"$:/plugins/kookma/commander/tiddler/ui","modified":"20200324070653068","tags":"$:/tags/Commander","type":"text/vnd.tiddlywiki","text":"<<tabs \ntabsList:\"[all[shadows+tiddlers]tag[$:/tags/Commander/TitleOps]!has[draft.of]]\" \ndefault:\"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix\"\nclass:\"tc-vertical cmd-tab-colorful cmd-tab-wd\">>\n\n<!-- relink checkbox for renaming title -->\n{{$:/plugins/kookma/commander/config/relink}}"},"$:/plugins/kookma/commander/title/uicomp/add-remove-chars":{"caption":"Remove chars","created":"20190217092719245","list-after":"$:/plugins/kookma/commander/title/uicomp/add-remove-suffix","modified":"20200325055328894","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"\\define rngcat() [range[0,$(minchars)$]] -0 \n\n<label style=\"width:30ch;\">Number of chars</label>\n<$select tiddler=\"$:/temp/commander/title-remove-chars\" default=\"0\" class=\"cmd-sl\">\n<$list filter=\"[subfilter<searchfilter>length[]minall[]subtract[1]] -Infinity\" variable=\"minchars\">\n<$list filter=<<rngcat>> >\n<option value=<<currentTiddler>>><$view field='title'/></option>\n</$list>\n</$list>\n</$select><br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> First n characters\n<$macrocall \n $name=\"remove-chars-from-begining-tiltle-bulk\" \n num={{$:/temp/commander/title-remove-chars}} />\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Last n characters\n<$macrocall \n $name=\"remove-chars-from-end-tiltle-bulk\" \n num={{$:/temp/commander/title-remove-chars}} />\n</$button>\n\n\n"},"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix":{"caption":"Add remove prefix","created":"20190212141758567","modified":"20200325055328903","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"<$edit-text\ntiddler=\"$:/temp/commander/title-prefix\"\ntag=\"input\"\ndefault=\"\"\nclass=\"cmd-txt-area\"\nplaceholder=\" prefix\"\n/> <br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Add prefix\n<$macrocall \n $name=\"addPrefix-to-tiltle-bulk\" \n prefix={{$:/temp/commander/title-prefix}} \n/>\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove prefix\n<$macrocall \n $name=\"removePrefix-from-tiltle-bulk\" \n prefix={{$:/temp/commander/title-prefix}} \n/>\n</$button>\n\n"},"$:/plugins/kookma/commander/title/uicomp/add-remove-suffix":{"caption":"Add remove suffix","created":"20190212143434676","list-after":"$:/plugins/kookma/commander/title/uicomp/add-remove-prefix","modified":"20200325055328912","tags":"$:/tags/Commander/TitleOps","type":"text/vnd.tiddlywiki","text":"<$edit-text\ntiddler=\"$:/temp/commander/title-suffix\"\ntag=\"input\" default=\"\"\nclass=\"cmd-txt-area\" placeholder=\" suffix\" /><br>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Add suffix\n<$macrocall \n $name=\"addSuffix-to-tiltle-bulk\" \n suffix={{$:/temp/commander/title-suffix}} />\n</$button>\n\n<$button class=\"cmd-btn cmd-btn-wd\"> Remove suffix\n<$macrocall \n $name=\"removeSuffix-from-tiltle-bulk\" \n suffix={{$:/temp/commander/title-suffix}} \n/>\n</$button>\n\n"},"$:/plugins/kookma/commander/viewtemplate/import":{"created":"20210102093753666","modified":"20210102140349092","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]match[$:/Import]status[complete]]\" variable=\"null\">\n<$button actions=\"\"\"<$action-setfield $tiddler=\"$:/temp/commander/search-box\" text=\"[[$:/Import]links[]]\"/><$action-navigate $to=\"$:/Commander\"/>\"\"\">\n{{$:/plugins/kookma/commander/images/commander.svg}} Batch edit\n</$button>\n</$list>"},"$:/Commander":{"created":"20190212051316149","icon":"$:/plugins/kookma/commander/images/file-alt","modified":"20200324074719052","type":"text/vnd.tiddlywiki","text":"\\import [all[shadows+tiddlers]tag[$:/tags/Commander/Macro]]\n{{$:/plugins/kookma/commander/search/ui}}\n<!-- Create the search filter based on searchbox and selective operation (if active) -->\n<$vars searchTerms={{{ [<searchboxTid>get[text]minlength{$:/plugins/kookma/commander/config/minlength}]~[[$:/errorCode:-23500]] }}} pattern=\"^\\[\"><!-- this part checks the combo search and selective ops-->\n<$set name=\"filtertext\" filter=\"[<searchTerms>regexp<pattern>]\" value=\"[subfilter<searchTerms>]\" emptyValue=\"[!is[system]search<searchTerms>]\">\n<$set name=\"searchfilter\" filter=\"[<selectiveOpsTid>get[text]match[yes]]\" \n\tvalue=\"[subfilter<filtertext>!prefix[$:/temp/commander]]+[tag<workingTag>]\" emptyValue=\"[subfilter<filtertext>!prefix[$:/temp/commander]]\" >\n<small style=\"margin-left:17ch;\"><i><$count filter=\"[subfilter<filtertext>!prefix[$:/temp/commander]!is[missing]]\" /> matches </i></small>\n\n<!-- Display search results and let selective operation -->\n<<commander-slider title:\"$:/plugins/kookma/commander/search/selection\" default:\"open\">>\n\n<!-- Display operation UIs-->\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/Commander]!has[draft.of]]\" default:\"$:/plugins/kookma/commander/tiddler/ui\">>\n\n</$set>\n</$set>\n<$vars>\n\n---\n\n<<commander-slider title:\"$:/plugins/kookma/commander/log/ui\">>\n"},"$:/language/Buttons/Commander/Hint":{"created":"20190725032106026","modified":"20200324080437905","tags":"","type":"text/vnd.tiddlywiki","text":"Tiddler Commander"},"$:/language/Buttons/Commander/Caption":{"created":"20190725032131129","modified":"20200324080437929","tags":"","type":"text/vnd.tiddlywiki","text":"commander"}}}
{"tiddlers":{"$:/plugins/kookma/favorites/frozen-list":{"caption":"Favorites","created":"20191228192318272","list-after":"$:/core/ui/SideBar/Open","modified":"20200326083226904","tags":"","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/favorites/macros/definition\n\\import $:/plugins/kookma/favorites/macros/slider\n\n\\define contents()\n<div style=\"padding-left:20px;\">\n<$list filter=\"[list<currentTiddler>]\">\n<$transclude tiddler=\"$:/plugins/kookma/favorites/templates/show-link\" field=text/>\n</$list>\n</div>\n\\end\n\n\n<$list filter=<<recentlyAdded>> >\n<div><<contents>>\n</div>\n</$list>\n\n\n<$list filter=\"[subfilter<folders>]-[<recentlyAdded>]\" >\n<div>\n<$macrocall $name=favslider\ntitle=<<currentTiddler>>\ncontent=<<contents>>\n/></div>\n</$list>"},"$:/plugins/kookma/favorites/history":{"created":"20200326073607951","modified":"20200326080816159","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Favorites/#ChangeLog\n\n* ''4.4.0 '' -- 2020.03.26 -- moved to new Thirdflow development platform \n* ''4.3.0 '' -- 2019.11.19 -- correct caption when caption filed has wikitext\n* ''4.0.0 '' -- 2019.12.17 -- a rewrite of old favorite plugin\n* ''3.0.12'' -- 2018.11.01 -- released by Mohammad Rahmani\n* ''3.0.5 '' -- 2017.08.03 -- released by Andrew Harrison"},"$:/plugins/kookma/favorites/image":{"created":"20181010141333403","modified":"20200326185558195","path":"c-3.3-16.6-15.1-27.3-30.3-27.3-8.5,0-17.7,3.5-26.7,10.1-9.1-6.8-18.3-10.3-26.9-10.3-15.2,0-27.1,10.8-30.3,27.6-4.8,24.9 10.6,58 55.7,76 0.5,0.2 1,0.3 1.5,0.3 0.5,0 1-0.1 1.5-0.3 45-18.4 60.3-51.4 55.5-76.1zm-57,67.9c-39.6-16.4-53.3-45-49.2-66.3 2.4-12.7 11.2-21 22.3-21 7.5,0 15.9,3.6 24.3,10.5 1.5,1.2 3.6,1.2 5.1,0 8.4-6.7 16.7-10.2 24.2-10.2 11.1,0 19.8,8.1 22.3,20.7 4.1,21.1-9.5,49.6-49,66.3z","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"\\define favorites-svg()\n<svg class='tc-image-favorites-button tc-image-button' width='22pt' height='22pt' viewBox=\"0 0 129 129\"><g><path stroke-width=\"6px\" d='m$(m)$$(path)$'/></g></svg>\n\\end\n\n<$vars m='121.6,40.1' path={{!!path}}>\n<<favorites-svg>>\n</$vars>"},"$:/plugins/kookma/favorites/license":{"created":"20200326073607952","modified":"20200326080900832","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2018-2020 [[Mohammad Rahmani|https://github.com/kookma]]<br>\nCopyright (c) 2017-2018 [[Andrew Harrison|http://favorites.tiddlyspot.com/]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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"},"$:/plugins/kookma/favorites/macros/combo-search":{"created":"20191219070911471","description":"do not delete, part of example 103","modified":"20200326190600963","type":"text/vnd.tiddlywiki","text":"\\define standardSearch() [list<favlistTid>search<searchTerms>]\n\\define filterSearch() [list<favlistTid>]+[subfilter<searchTerms>]\n\n\\define displayResult(filter)\n<!-- other folders -->\n<$list filter=\"[<recentlyAdded>]\" variable=folder>\n<b><$view tiddler=<<folder>> field=caption/></b><br>\n<$list filter=<<__filter__>> variable=item >\n<$list filter=\"[<folder>search:list<item>]\">\n<span style=\"margin-left:8px;\"><$link to=<<item>>/></span><br>\n</$list>\n</$list>\n</$list>\n\n<!-- other folders -->\n<$list filter=\"[subfilter<folders>]-[<recentlyAdded>]\" variable=folder>\n<b><$view tiddler=<<folder>> field=caption/></b><br>\n<$list filter=<<__filter__>> variable=item >\n<$list filter=\"[<folder>search:list<item>]\">\n<span style=\"margin-left:8px;\"><$link to=<<item>>/></span><br>\n</$list>\n</$list>\n</$list>\n\\end\n\n\n\\define combo-search(stateTiddler:\"\")\n<$vars pattern=\"^\\[\"\n stateTid={{{ [[$:/temp/combosearch/]addsuffix[$stateTiddler$]addsuffix<qualify>] }}}>\t \n<!--UI -->\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=<<stateTid>> tag=input default=\"\" placeholder=\"search by keyword or filter\" class=\"sltext\"/>\t\t\t\n\n<!-- show results if any-->\n<$reveal state=<<stateTid>> type=\"nomatch\" text=\"\"><!--do not display when searchbox is empty-->\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=<<stateTid>> $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n\n<$set name=searchTerms tiddler=<<stateTid>> field=text>\n\n<$list filter=\"[<searchTerms>trim[]minlength[3]limit[1]]\" emptyMessage=\"Search text too short\" variable=ignore>\n\n<!-- Check input search term -->\n<div class=\"tc-search-results\">\n<$list filter=\"[<searchTerms>regexp<pattern>then[filterSearch]else[standardSearch]]\" variable=searchMethod >\n<$reveal type=nomatch default=\"filterSearch\" text=<<searchMethod>> >\n<$macrocall $name=displayResult filter=<<standardSearch>> />\n</$reveal>\n<$reveal type=match default=\"filterSearch\" text=<<searchMethod>> >\n<$macrocall $name=displayResult filter=<<filterSearch>> />\n</$reveal>\n\n</$list>\n</div>\n</$list>\n</$set>\n</$reveal>\n</div>\n</$vars>\n\\end"},"$:/plugins/kookma/favorites/macros/definition":{"created":"20191223204533023","modified":"20200326190417057","type":"text/vnd.tiddlywiki","text":"\\define folderpath() $:/favorites/folder\n\\define favlistTid() $:/favorites/favlist\n\\define foldertagTid() $:/tags/Favorites/Folder\n\\define folders() [tag[$(foldertagTid)$]]\n\\define recentlyAdded() $:/plugins/kookma/favorites/recent\n\n\\define temppath() $:/temp/favorites\n\n\\define selectionTid() $(temppath)$/selection\n\\define tempNewTid() $(temppath)$/new-folder\n\\define temppopupTid() $(temppath)$/delete-confirm\n\\define tempreorderTid() $(temppath)$/reorder\n\\define saveTid() $(temppath)$/savetitle"},"$:/plugins/kookma/favorites/macros/folding-editor":{"created":"20191222134036727","modified":"20200326083226990","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define fv-folding-editor(tiddler)\n<$set name=\"state\" value={{{ [[$:/temp/folding-editor/]addsuffix<currentTiddler>addsuffix<__tiddler__>] }}}>\n<$reveal stateTitle=<<state>> type=\"nomatch\" text=\"edit\">\n<span style=\"display:inline-block;min-width:320px;font-weight:700\">\n<$transclude tiddler=<<__tiddler__>> field=\"caption\"/>\n</span>\n<$button class=\"tc-btn-invisible\" setTitle=<<state>> setTo=\"edit\">{{$:/core/images/edit-button}}</$button>\n</$reveal>\n<$reveal stateTitle=<<state>> type=\"match\" text=\"edit\">\n<$edit-text class=\"\" tiddler=<<__tiddler__>> field=\"caption\" tag=\"input\" default=\"\" placeholder=\"enter a folder title\"/>\n<$button class=\"tc-btn-invisible\" setTitle=<<state>> setTo=\"\">{{$:/core/images/done-button}}</$button>\n</$reveal>\n</$set><span class=\"fv-folding-button\">\n<$button class=\"tc-btn-invisible\"> {{$:/core/images/delete-button}}\n<$action-listops $tiddler=<<favlistTid>> $field=\"list\" $subfilter=\"-[list<__tiddler__>]\" />\n<$action-listops $tiddler=<<foldertagTid>> $field=\"list\" $subfilter=\"-[[$tiddler$]]\" />\n<$action-deletetiddler $tiddler=<<__tiddler__>>/>\n</$button>\n<$radio tiddler=<<tempreorderTid>> field=text value=<<__tiddler__>>/>\n</span>\n\\end\n"},"$:/plugins/kookma/favorites/macros/sidebar":{"caption":"Favorites","created":"20191226064633412","list-before":"$:/core/ui/SideBar/Recent","modified":"20200326190524020","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\import $:/plugins/kookma/favorites/macros/slider\n\\import $:/plugins/kookma/favorites/macros/definition\n\n\\define drop-actions()\n<!-- case 1: tiddler is already in favlist and moved between folders by drag and drop -->\n<$reveal type=match default=<<favlistTid>> text={{{[<actionTiddler>listed[]match<favlistTid>]}}} >\n<$vars oldFolder={{{ [<actionTiddler>listed[]]+[subfilter<folders>]-[<folder>]+[limit[1]] }}}>\n<$action-listops $tiddler=<<oldFolder>> $field=\"list\" $subfilter=\"-[<actionTiddler>]\" />\n</$vars>\n</$reveal>\n<!-- case 2: tiddler is NOT already in favlist and dropped from outside favorites -->\n<$reveal type=nomatch default=<<favlistTid>> text={{{[<actionTiddler>listed[]match<favlistTid>]}}} >\n<$action-listops $tiddler=<<favlistTid>> $field='list' $subfilter=\"[<actionTiddler>]\"/>\n</$reveal>\n<!-- move it to the target folder -->\n<$action-listops $tiddler=<<folder>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"> </div>\n\\end\n\n\\define droppable-item()\n\\whitespace trim\n<$droppable actions=<<drop-actions>>>\n<<placeholder>>\n<div>\n<$transclude tiddler=\"$:/plugins/kookma/favorites/templates/delete-item\" field=text/> \n<$transclude tiddler=\"$:/plugins/kookma/favorites/templates/show-link\" field=text/>\n</div>\n</$droppable>\n\\end\n\n\\define droppable-item-after-last-item()\n\\whitespace trim\n<!--add extra space for drag and drop after last item-->\n<$droppable actions=<<drop-actions>>>\n<<placeholder>><div style=\"margin-top:-6px;margin-bottom:-6px;\"> </div>\n</$droppable>\n\\end\n\n\n\\define display-folder-is-empty()\n<div style=\"padding-left:20px;\">\n<$droppable actions=<<drop-actions>>>\n<<placeholder>>\n//Folder is empty//\n</$droppable>\n</div>\n\\end\n\n\\define display-fav-folder(folder)\n<$vars folder=<<__folder__>> >\n<!--check if folder is empty-->\n<$list filter=\"[list<folder>limit[1]]\" emptyMessage=<<display-folder-is-empty>> variable=ignore>\n<div style=\"padding-left:20px;\">\n<$list filter=\"[list<folder>]\"><!--display all tiddlers in folder list field one by one -->\n<$list filter=\"[<favlistTid>contains<currentTiddler>]\" variable=ignore><!--check if the tiddler is a favorite list-->\n<$macrocall $name=droppable-item />\n</$list>\n</$list>\n<<droppable-item-after-last-item>>\n</div>\n</$list>\n</$vars>\n\\end\n\n\\define display-fav-recentlyAdded()\n<$vars folder=<<recentlyAdded>> >\n<b><$transclude tiddler=<<folder>> field=\"caption\" /></b>\n<!--check if favlistTid is empty -->\n<$list filter=\"[list<folder>limit[1]]\" emptyMessage=<<display-folder-is-empty>> variable=ignore>\n<div style=\"padding-left:20px;\">\n<$list filter=\"[list<folder>]\"><!--get all items in favlistTid-->\n<$list filter=\"[<favlistTid>contains<currentTiddler>]\" variable=ignore><!--check if the tiddler is a favorite list-->\n<$macrocall $name=droppable-item />\n</$list>\n</$list>\n<<droppable-item-after-last-item>>\n</div>\n</$list>\n</$vars>\n\\end\n\n\n\\define favorites-tree()\n<!--show recently added favorites -->\n<<display-fav-recentlyAdded>>\n\n<!-- show all favorite folders -->\n<$list filter=\"[subfilter<folders>]-[<recentlyAdded>]\" variable=favfolder >\n<div><!--create a div for each folder-->\n<$macrocall $name=favslider\n title=<<favfolder>> \n content=\"\"\"<$macrocall $name=\"display-fav-folder\" folder=<<favfolder>> />\"\"\" />\n</div>\n</$list>\n\\end\n<!-- create the favorite tree -->\n<<favorites-tree>>"},"$:/plugins/kookma/favorites/macros/slider":{"created":"20191220123602267","modified":"20200326190213819","type":"text/vnd.tiddlywiki","text":"\\define favslider(title, content)\n<$set name=\"revealState\" filter={{{ [[$:/temp/favorits/]addsuffix<__title__>addsuffix<qualify>] }}}>\n<$reveal type=\"nomatch\" state=<<revealState>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"yes\" >\n {{$:/core/images/right-arrow}}\n </$button>\n</$reveal>\n<$reveal type=\"match\" state=<<revealState>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"no\" >\n {{$:/core/images/down-arrow}}\n </$button>\n</$reveal>\n<$list filter=\"[<fv-config-buttons>match[yes]]\" \n emptyMessage=\"\"\"<b><$transclude tiddler=<<__title__>> field=\"caption\"/></b>\"\"\"\n\tvariable=ignore>\n <$macrocall $name=\"fv-folding-editor\" tiddler=<<__title__>> />\n</$list>\n<$reveal type=\"match\" state=<<revealState>> text=\"yes\">\n$content$\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/favorites/manager/export":{"caption":"Export","created":"20191226173845382","modified":"20200326083227031","tags":"$:/favorites/Manager","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/favorites/macros/definition\n\\define lingo-base() $:/language/Search/\n\nExport and delete favorites\n\n<$vars selection={{{ [<selectionTid>get[text]] }}} >\n\n<div class=\"tc-search tc-advanced-search fv-form\">\n<$select tiddler=<<selectionTid>> class=\"sltext\" field=\"text\" default=\"message\">\n<option value=\"message\" disabled selected>Select a folder</option>\n<$list filter=<<folders>> >\n<option value=<<currentTiddler>>><$transclude field=caption/></option>\n</$list>\n<$list filter=\"[subfilter<folders>count[]!match[0]]\">\n<option disabled>─────</option>\n<option value=\"$:/favorites/favlist\" style=\"font-weight:500;\">all favorites</option>\n</$list>\n</$select>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/plugins/kookma/favorites/manager/exptab]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[list<selection>]\"/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter=\"[list<selection>]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n\n</$vars>"},"$:/plugins/kookma/favorites/manager/exptab-delete":{"created":"20191226172205238","modified":"20200326190524040","type":"text/vnd.tiddlywiki","text":"<$reveal type=nomatch default=\"0\" text={{{[list<selection>count[]]}}} ><!--display button if there is a result-->\n<$button popup=<<qualify $(temppopupTid)$>> class=\"tc-btn-invisible\" tooltip=\"delete tiddlers\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify $(temppopupTid)$>> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[list<selection>]\"/>\"\"\">\nAre you sure you wish to delete permanently <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-button tt-button\"> delete\n <$action-deletetiddler $filter=\"[list<selection>]\" />\n\t <$action-listops $tiddler=<<favlistTid>> $field='list' $subfilter=\"-[list<selection>]\"/>\n\t <$action-listops $tiddler=<<selection>> $field='list' $subfilter=\"-[list<selection>]\"/>\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"},"$:/plugins/kookma/favorites/manager/exptab-export":{"created":"20191226172145394","modified":"20200326190524050","type":"text/vnd.tiddlywiki","text":"\\define export-favorites()\n<$reveal type=nomatch default=\"0\" text={{{[list<selection>count[]]}}} ><!--display button if there is a result-->\n<$macrocall $name=\"exportButton\" exportFilter=\"[list[$(selection)$]]\" lingoBase=\"$:/language/Buttons/ExportTiddlers/\" baseFilename=\"favorites\"/>\n</$reveal>\n\\end\n<<export-favorites>>"},"$:/plugins/kookma/favorites/manager/folders":{"caption":"Folders","created":"20191226064442751","modified":"20200326083227048","tags":"$:/favorites/Manager","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/favorites/macros/definition\n\\define add() [[$(saveTitle)$]]\n\\define newtitle() $(folderpath)$-{{{[tag<foldertagTid>count[]add[1]addprefix[0000]split[]last[3]join[]]}}}\n\n\n\\define new-fav-folder()\n<$edit-text tag=input tiddler=<<tempNewTid>> default=\"\" placeholder=\"enter a folder name\"/>\n<$list filter=\"[<tempNewTid>get[text]!is[blank]]\">\n<$vars \n folderName ={{{ [<tempNewTid>get[text]] }}} \n\tsaveTitle={{{[<saveTid>get[text]]}}} >\n<$wikify name=xtitle text=<<newtitle>> >\t\n<$button tooltip=\"create new folder\" class=\"tc-btn-invisible\">{{$:/core/images/new-button}}\n<$action-createtiddler \n $basetitle=<<xtitle>>\n\t$savetitle=<<saveTid>>\n\tcaption=<<folderName>>\n\ttags=<<foldertagTid>> />\n<$action-listops $tiddler=<<foldertagTid>> $field=\"list\" $subfilter=\"[<saveTid>get[text]]\" />\n<!-- clear edit-text temp tiddler-->\n<$action-setfield $tiddler=<<tempNewTid>> text=\"\"/>\n</$button>\n</$wikify>\n</$vars>\n</$list>\n\\end\n\n\\define folder-reorder(listTid)\n<$tiddler tiddler={{{ [<tempreorderTid>get[text]] }}} >\n<span style=\"display:inline-block;min-width:120px;font-weight:700;\"><$view field=caption/></span>\n\n<$button class=\"tc-btn-invisible\">down\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"+[move<currentTiddler>]\"/>\n</$button>\n \n<$button class=\"tc-btn-invisible\">up\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"+[move:-1<currentTiddler>]\"/>\n</$button>\n \n<$button class=\"tc-btn-invisible\">putfirst\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"[<currentTiddler>]+[putfirst[]]\"/>\n</$button>\n \n<$button class=\"tc-btn-invisible\">putlast\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"+[putlast[]]\"/>\n</$button>\n \n<$button class=\"tc-btn-invisible\">sort downwards\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"+[sort[caption]]\"/>\n</$button>\n \n<$button class=\"tc-btn-invisible\">sort upwards\n<$action-listops $tiddler=\"$listTid$\" $field=\"list\" $subfilter=\"+[!sort[caption]]\"/>\n</$button>\n</$tiddler>\n\\end\n\n\n\n\\define remove-all-favs()\n<$button class=\"tc-btn-invisible tc-btn-mini\" popup=<<qualify $(temppopupTid)$>> >\nRemove all favorite items\n</$button>\n<$reveal state=<<qualify $(temppopupTid)$>> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[list<favlistTid>]\"/>\"\"\">\nRemove all <<resultCount>> favorite item(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-button tt-button\"> delete\n<$list filter=\"[<favlistTid>] [subfilter<folders>]\">\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"list\" $value=\"\"/>\n</$list> \n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\\end\n\n\n<!-- Create the UI --->\n\nCreate, rename, rearrange and delete folders\n\n!! Rearrange\n<<<\nRearrange folder: <$macrocall $name=\"folder-reorder\" listTid=\"$(foldertagTid)$\" />\n<<<\n\n!! Create\n<<<\n<div class=\"fv-form\">\n<label>Add new folder:</label><<new-fav-folder>>\n</div>\n<<<\n\n!! Structure\n<<<\n<$vars fv-config-buttons=yes>\n<$transclude tiddler=\"$:/plugins/kookma/favorites/macros/sidebar\" field=text/>\n</$vars>\n<<remove-all-favs>>\n<<<"},"$:/plugins/kookma/favorites/manager/search":{"caption":"Search","created":"20191226092612349","modified":"20200326083227054","tags":"$:/favorites/Manager","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/favorites/macros/definition\n\\import $:/plugins/kookma/favorites/macros/combo-search\n\nSearch in favorites list (use filter or standard search)\n\n<<combo-search favorites>>"},"$:/plugins/kookma/favorites/manager":{"created":"20191224190957179","modified":"20200326083227025","tags":"","type":"text/vnd.tiddlywiki","text":"<<tabs tabsList:\"[all[tiddlers+shadows]tag[$:/favorites/Manager]!has[draft.of]!sort[caption]]\" default:\"$:/plugins/kookma/favorites/manager/search\">>"},"$:/plugins/kookma/favorites/readme":{"created":"20200326073607952","modified":"20200326082214810","tags":"","type":"text/vnd.tiddlywiki","text":"; Favorites\nA favorite item also called a bookmark is a shortcut, you are creating for quick access to it. You can access that bookmark at any time and view that as many times as you want without having to search and find it again.\n\n''Favorites plugin'' is a set of tool for creating favorites (bookmarks) in Tiddlywiki. Each favorite item is a shortcut to a tiddler.\n\nThe Favorites plugin contains three modes\n\n* ''flat mode'': one favorite list, no folder\n* ''structured mode'': use folder, search tool, export and delete tool\n* ''frozen list'': read only, simple table of content style\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Favorites/\n* Code: https://github.com/kookma/TW-Favorites\n"},"$:/plugins/kookma/favorites/recent":{"caption":"Recently added","created":"20200103090757281","creator":"a revised version of Andrew Harrison favorite plugin","list":"$:/plugins/kookma/favorites/styles/image.css","modified":"20200326195945747","modifier":"a revised version of Andrew Harrison favorite plugin","tags":"$:/tags/Favorites/Folder","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/favorites/sidebar-tab":{"caption":"Favorites","created":"20191226064836102","list-after":"$:/core/ui/SideBar/Open","modified":"20200326083227061","tags":"$:/tags/SideBar","type":"text/vnd.tiddlywiki","text":"\\define show-options()\n<$button class=\"tc-btn-invisible\" to=\"$:/plugins/kookma/favorites/manager\">\n{{$:/core/images/options-button}} Manager\n</$button>\n\\end\n\n<!-- create the sidebar tab -->\n<div class=\"kk-favorites\">\n --- <<show-options>> <br>\n<$transclude tiddler=\"$:/plugins/kookma/favorites/macros/sidebar\" field=text/>\n</div>"},"$:/plugins/kookma/favorites/styles/image.css":{"button-color":"#ff0000","created":"20200326140130064","creator":"a revised version of Andrew Harrison favorite plugin","modified":"20200326195938233","modifier":"a revised version of Andrew Harrison favorite plugin","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".tc-tiddler-controls .notselected .tc-image-favorites-button {\n stroke: #ccc;\n fill: #ccc;\n}\n\n.tc-tiddler-controls .selected .tc-image-favorites-button {\n stroke: {{!!button-color}};\n fill: {{!!button-color}};\n}\n\n"},"$:/plugins/kookma/favorites/styles/style.css":{"text":".sd-input textarea:focus, .sd-input input:focus { outline: none;}\n.sd-input textarea, .sd-input input { border:none; border-bottom: 1px dotted gray; margin-left:0px; width:75%;}\n\n.kk-custom-drop-down .tc-drop-down{min-width:60px;}\n\n.kk-favorites svg{\n fill:#aaaaaa;\n}\n.kk-favorites button:hover svg {\n fill: #000000; \n}\n\n.kk-btn-mini svg { font-size: 0.7em; fill: #bbb; }\n\n/* in folding-editor*/\n.fv-folding-button button svg{\n\t font-size:0.8em;\n\t vertical-align: middle;\n}\n\n.fv-folding-button input[type=\"radio\"] {\n width: 0.8em; !important;\n height: 0.8em; !important;\n vertical-align: middle !important;\n}\n\n/* form elements */\n.fv-form label { display:inline-block; width:130px; margin-left:5px; }\n.fv-form input, .fv-form select { display:inline-block; width:320px;}\n","created":"20191219075310949","modified":"20200326185700659","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/favorites/templates/delete-item":{"created":"20191220075034126","modified":"20200326190524058","type":"text/vnd.tiddlywiki","text":"<$button class=\"tc-btn-invisible kk-btn-mini\" tooltip=\"remove item from favorites\">\n{{$:/core/images/close-button}}\n<$action-listops $tiddler=<<favlistTid>> $field=\"list\" $subfilter=\"-[<currentTiddler>]\"/>\n<$action-listops $tiddler=<<folder>> $field=\"list\" $subfilter=\"-[<currentTiddler>]\"/>\n</$button> "},"$:/plugins/kookma/favorites/templates/item":{"created":"20191226214526038","modified":"20200326190524068","type":"text/vnd.tiddlywiki","text":"\\define tooltip() contains $(cnt)$ items\n<$vars cnt={{{[list<currentTiddler>count[]]}}}>\n<$link to=\"rr\" tooltip=<<cnt>> >\n<$view field=caption/>\n</$link>\n</$vars>"},"$:/plugins/kookma/favorites/templates/show-link":{"created":"20191220074823880","modified":"20200326190524073","type":"text/vnd.tiddlywiki","text":"<$link to={{!!title}} tooltip=<<currentTiddler>> >\n<$transclude field=\"caption\">\n<$view field=\"title\" />\n</$transclude>\n</$link><br>"},"$:/plugins/kookma/favorites/ui/buttons/add-remove":{"caption":"{{$:/plugins/kookma/favorites/image}}{{$:/language/Buttons/Favorites/Caption/Add}}","created":"20181010141620348","description":"{{$:/language/Buttons/Favorites/Hint/Add}}","list-after":"$:/core/ui/Buttons/info","modified":"20200326193035070","tags":"$:/tags/ViewToolbar","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\import $:/plugins/kookma/favorites/macros/definition\n\n\\define add-this-tiddler() [[$(currentTiddler)$]]+[putfirst[]]\n\\define remove-this-tiddler() -[[$(currentTiddler)$]]\n\n\\define show-favorites-button(class)\n<$list filter='[<tv-config-toolbar-icons>match[yes]]'>\n<span class=\"$class$\">{{$:/plugins/kookma/favorites/image}}</span>\n</$list>\n<$list filter='[<tv-config-toolbar-text>match[yes]]'>\n<span class='tc-btn-text'><$text text={{$:/language/Buttons/Favorites/Caption/Add}}/></span>\n</$list>\n\\end\n\n\n\\define add-to-favorites-button()\n <$button \n tooltip={{$:/language/Buttons/Favorites/Hint/Add}} aria-label={{$:/language/Buttons/Favorites/Caption/Add}} \n class=<<tv-config-toolbar-class>>>\n <$action-listops $tiddler=<<favlistTid>> $field='list' $subfilter=<<add-this-tiddler>>/>\n <$action-listops $tiddler=<<recentlyAdded>> $field='list' $subfilter=<<add-this-tiddler>>/>\n\t\t <$macrocall $name=\"show-favorites-button\" class=\"notselected\"/>\n </$button>\n\\end \n\n\\define remove-from-favorites-button()\n <$button \n tooltip={{$:/language/Buttons/Favorites/Hint/Remove}} aria-label={{$:/language/Buttons/Favorites/Caption/Remove}} \n class=<<tv-config-toolbar-class>> >\n <$action-listops $tiddler=<<favlistTid>> $field='list' $subfilter=<<remove-this-tiddler>>/>\n <$action-listops $tiddler={{{[subfilter<folders>contains<currentTiddler>limit[1]]}}} $field='list' $subfilter=<<remove-this-tiddler>>/>\n\t\t <$macrocall $name=\"show-favorites-button\" class=\"selected\"/>\n </$button>\n\\end \n\n<$list filter=\"[list<favlistTid>is[current]]\"><!-- tiddler is in favorites list, remove it -->\n<<remove-from-favorites-button>>\n</$list>\n<$list filter=\"[all[current]!list<favlistTid>]\"><!-- tiddler is not in favorites list, add it -->\n<<add-to-favorites-button>>\n</$list>"},"$:/plugins/kookma/favorites/ui/ControlPanel/Settings":{"caption":"Favorites","created":"20191229193717073","list-after":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20200326191059735","tags":"$:/tags/ControlPanel/SettingsTab $:/tags/MoreSideBar","type":"text/vnd.tiddlywiki","text":"\\define checked-frozen()\n<$action-setfield $tiddler=\"$:/plugins/kookma/favorites/sidebar-tab\" tags=\"\"/>\n<$action-setfield $tiddler=\"$:/plugins/kookma/favorites/viewtoolbar\" tags=\"\"/> \n\\end\n\\define unchecked-frozen()\n<$action-setfield $tiddler=\"$:/plugins/kookma/favorites/sidebar-tab\" tags=\"$:/tags/SideBar\"/>\n<$action-setfield $tiddler=\"$:/plugins/kookma/favorites/viewtoolbar\" tags=\"$:/tags/ViewToolbar\"/> \n\\end\n\nThese settings let you customise the behaviour of Utility plugin.\n\n---\n\n;Show Utility setting in more sidebar\n:<$checkbox tiddler=\"$:/plugins/kookma/favorites/ui/ControlPanel/Settings\" tag=\"$:/tags/MoreSideBar\"> Show setting in more sidebar</$checkbox>\n\n;Options\n:<$checkbox checkactions=<<checked-frozen>> \n tiddler=\"$:/plugins/kookma/favorites/frozen-list\" tag=\"$:/tags/SideBar\"\n\t checkactions=<<checked-frozen>>\n\t uncheckactions=<<unchecked-frozen>> > Enable frozen tab</$checkbox>\n:<input type=\"checkbox\" disabled> Viewtoolbar icon color <$edit-text tiddler=\"$:/plugins/kookma/favorites/styles/image.css\" \n\tfield=\"button-color\" tag=\"input\" type=\"color\"/>\n:<$checkbox tiddler=\"$:/plugins/kookma/favorites/styles/image.css\" \n\t field=\"button-color\" checked=\"#ff0000\" unchecked=\"#bbb\"> Reset viewtoolbar icon color</$checkbox>"},"$:/language/Buttons/Favorites/Caption/Add":{"created":"20191216200037937","modified":"20200326193233403","type":"text/vnd.tiddlywiki","text":"favorites"},"$:/language/Buttons/Favorites/Caption/Remove":{"created":"20191216200037793","modified":"20200326193156596","type":"text/vnd.tiddlywiki","text":"Caption/Remove"},"$:/language/Buttons/Favorites/Hint/Remove":{"created":"20200326193045794","modified":"20200326193104571","tags":"","type":"text/vnd.tiddlywiki","text":"Remove from favorites"},"$:/language/Buttons/Favorites/Hint/Add":{"created":"20191216200037919","modified":"20200326193116928","type":"text/vnd.tiddlywiki","text":"Add to favorites"}}}
\define show-options()
<$button class="tc-btn-invisible" to="$:/plugins/kookma/favorites/manager">
{{$:/core/images/options-button}} Manager
</$button>
\end
<!-- create the sidebar tab -->
<div class="kk-favorites">
--- <<show-options>> <br>
<$transclude tiddler="$:/plugins/kookma/favorites/macros/sidebar" field=text/>
</div>
{"tiddlers":{"$:/plugins/kookma/shiraz/history":{"created":"20200323092614036","modified":"20200325085725882","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log: [[https://kookma.github.io/TW-Shiraz/#ChangeLog]]\n\n* ''2.1.1'' -- 2020.03.25 -- slider macro with initial status\n* ''2.1.0'' -- 2020.03.23 -- stable release on TW-5.1.22pre\n* ''1.0.0'' -- 2018.10.05 -- first public release\n"},"$:/plugins/kookma/shiraz/license":{"created":"20200323092614037","modified":"20200323092631048","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2018-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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<<<"},"$:/plugins/kookma/shiraz/macros/alerts":{"created":"20180821095049685","modified":"20200323093719256","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define alert(type:\"primary\" src:\"\", width:\"100%\", class:\"\")\n<div class=\"alert alert-$type$ $class$\" style=\"width:$width$;\">\n$src$\n</div>\n\\end\n\n\\define alert-leftbar(type:\"primary\" src:\"\", width:\"100%\", class:\"\")\n<div class=\"alert alert-$type$ bg-transparent leftbar border-$type$ $class$\" style=\"width:$width$;\">\n$src$\n</div>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/badge":{"created":"20181124042103310","modified":"20200323093719649","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define badge(type:\"primary\" src:\"\")\n<span class=\"badge badge-$type$\">$src$</span>\n\\end\n\n\\define badge-pill(type:\"primary\" src:\"\")\n<span class=\"badge badge-pill badge-$type$\">$src$</span>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/card":{"created":"20181124111624466","modified":"20200323093719684","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define card(header:\"Empty\", title:\"Empty\" subtitle:\"Empty\" text:\"Empty\",footer:\"Empty\", width:\"100%\" class:\"\")\n<div class=\"card mb-3 $class$\" style=\"width:$width$;\">\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__header__>> >\n <div class=\"card-header\">$header$</div>\n</$reveal>\n<div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal>\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__subtitle__>> >\n <div class=\"h6 card-subtitle mb-2 text-muted\">$subtitle$</div>\n </$reveal>\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\"><<__text__>></div>\n </$reveal>\n</div>\n<$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <div class=\"card-footer text-muted\">$footer$</div>\n</$reveal>\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/dbadge":{"created":"20181203212737578","modified":"20200323093719698","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define dbadge(subject,status, type:\"primary\")\n<div class=\"dbadge\"><span class=\"dbadge-subject\">$subject$</span><span class=\"dbadge-status dbadge-$type$ \">$status$</span></div>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/details":{"created":"20181101185833098","modified":"20200323093719704","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define details(sum:\"summary\", src:\"source\", status:\"\", class:\"\", style:\"\")\n<details $status$>\n <summary style=\"$style$\">$sum$</summary>\n <div class=\"$class$\">\n\t\n $src$\n </div>\n</details>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/confirm-delete":{"created":"20191129201531051","modified":"20200323093719713","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define confirm-delete()\n<!-- reveals deletion confirmation -->\n<$list filter=\"[subfilter<inputFilter>limit[1]]\" variable=ignore>\n<$reveal class=\"tbl-delete-confirm\" type=\"match\" state=\"$:/temp/tables/delete-all!!text\" text=<<currentTable>> tag=\"tr\">\n<th colspan=<<ncols>> >\n<$list filter=\"[[$:/temp/tables/delete-all]get[confirm]match[yes]]\" \n variable=ignore emptyMessage=<<ask-for-delete>> >\n <<perform-delete>>\n</$list>\n</th>\n</$reveal>\n</$list>\n\\end\n\n\\define ask-for-delete()\n<$set name=ntids filter=\"[subfilter<inputFilter>count[]]\">\n Delete all <<ntids>> records?\n\t<$button class=\"tc-btn-invisible\">\n <$action-setfield $tiddler=\"$:/temp/tables/delete-all\" $field=\"confirm\" $value=\"yes\"/>\n {{$:/core/images/delete-button}} yes\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n {{$:/core/images/close-button}} no\n </$button>\n</$set>\t\t\t\t\n\\end\n\n\\define perform-delete()\n Warning! this action cannot be undone!\n\t<$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n <$list filter=<<inputFilter>> variable=\"currentRecord\">\n <$action-deletetiddler $tiddler=<<currentRecord>>/>\n </$list>\n\t\t {{$:/core/images/delete-button}} delete\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=\"$:/temp/tables/delete-all\"/>\n\t\t\t{{$:/core/images/close-button}} cancel \n </$button>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/display-extrecord":{"created":"20191203155802107","modified":"20200323093719719","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define display-extended-record()\n<td colspan=<<ncols>> >\n<$tiddler tiddler=<<currentRecord>> >\n<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore\n emptyMessage=\"\"\"<$transclude tiddler=<<currentRecord>> field=text mode=block/>\"\"\" >\n <$edit-text class=\"tbl-inpt-edit\" tiddler=<<currentRecord>> field=\"text\" tag=textarea/>\n</$list>\n</$tiddler>\n</td>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/helper":{"created":"20191203102929722","modified":"20200323093719728","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define columnFilter() $(columns)$ tbl-delete\n\n\\define tempTable() $:/state/dynamictables/$(currentTable)$\n\n\\define tempTableSort() $(tempTable)$/sortby\n\\define tempTagPopup() $(tempTable)$/$(currentRecord)$/$(currentTiddler)$\n\\define tempTableExpand() $(tempTable)$/expand\n\\define tempPathExpand() $(tempTableExpand)$##$(currentRecord)$\n\\define tempTableEdit() $(tempTable)$/edit-view-status\n\n\\define keepstate() $:/keepstate/dynamictables/$(currentTable)$\n\n\\define tempTableFooter() $(keepstate)$/footer\n\\define tempTableStyle() $(keepstate)$/style\n\\define tempWarningMsg() $(keepstate)$/warning\n\n<!-- \n Those tiddlers based on keepstate are permanent.\n These are tiddlers hold the data and setting for footer, styles and warning (needs to be hold).\n These state and temporary tiddlers are independent of currentTiddler (host tiddler) and on changing\n the title of host tiddler will not disconnected to table\n-->"},"$:/plugins/kookma/shiraz/macros/dtables/maths":{"created":"20200209153246553","modified":"20200323093719735","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define minall() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>minall[]] }}}/>\n\\define maxall() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>maxall[]] }}}/>\n\\define count() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>count[]] }}}/>\n\\define sum() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sum[]] }}}/>\n\\define product() <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>product[]] }}}/>\n\\define average(pn:0)\n<$vars\n xcount ={{{[subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>count[]]}}}\n\txsum ={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sum[]] }}} >\n <$text text={{{ [<xsum>divide<xcount>fixed[$pn$]] }}}/>\n</$vars>\n\\end\n\n\\define median(pn:0)\n<$vars xcount ={{{[subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>count[]]}}} >\n\t<$list filter=\"[<xcount>remainder[2]match[0]]\" variable=ignore>\n\t<!-- even number --> \n\t<$vars mid0={{{ [<xcount>divide[2]] }}} \n mid1={{{ [<xcount>divide[2]add[1]] }}} >\t\t \n <$text text={{{[subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sort[]first<mid0>last[]][subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sort[]first<mid1>last[]]+[sum[]divide[2]fixed[$pn$]]}}} />\n </$vars>\n </$list>\n <$list filter=\"[<xcount>remainder[2]!match[0]]\" variable=ignore>\n\t<!-- odd number --> \n\t<$vars mid={{{ [<xcount>divide[2]ceil[]] }}} >\n <$text text={{{ [subfilter<inputFilter>$(getFieldOrIndex)$<currentColumn>sort[]first<mid>last[]]}}} />\n\t</$vars>\n </$list>\n</$vars>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/dtables/show-edit-cell":{"created":"20200209135600453","modified":"20200323093719743","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define showCell()\n <$list filter=\"[<fieldOrIndex>]-index\">\n <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n </$list>\n <$list filter=\"[<fieldOrIndex>]-field\">\n <$transclude tiddler=<<currentRecord>> index=<<currentColumn>> mode=\"inline\" />\n </$list>\n\\end\t\n\\define editCell()\n <$list filter=\"[<fieldOrIndex>]-index\">\n <$edit-text tiddler=<<currentRecord>> field=<<currentColumn>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n </$list>\n <$list filter=\"[<fieldOrIndex>]-field\">\n <$edit-text tiddler=<<currentRecord>> index=<<currentColumn>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n </$list>\n\\end\n\n\\define showCell_Locked()\n <span style=\"font-style:oblique;\"><<showCell>></span>\n\\end "},"$:/plugins/kookma/shiraz/macros/dtables/table-dynamic":{"created":"20200209100939116","modified":"20200323093719750","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define table-dynamic(filter, fields:\"\", indexes:\"\", sortOp:\"sort\", caption:\"\", class:\"\", footerRows:\"0\", stateTiddler:\"\", editButton:\"yes\")\n\\import [all[shadows+tiddlers]tag[$:/tags/Table/Macro]]\n\n<!--above commands import utility macros-->\n<$vars \n inputFilter=\"[subfilter<__filter__>!has[draft.of]]\"\n sortType=<<__sortOp__>>\n> \n<$set name=currentTable value=<<__stateTiddler__>> emptyValue=<<currentTiddler>> >\n<!-- check what type of columns are sent, fileds or indexes (data tiddlers as records) -->\n<$set name=fieldOrIndex filter=\"[<__fields__>!is[blank]]\" value=\"field\" emptyValue=\"index\">\n<<check_tiddlers_type_for_table_from_indexes isEditable:\"$editButton$\">>\n<$set name=columns filter=\"[<fieldOrIndex>]-index\" value=<<__fields__>> emptyValue=<<__indexes__>> >\n<!--check input filter parameter-->\n<$list filter=\"[subfilter<inputFilter>limit[1]]\" emptyMessage=\"filter input is empty\" variable=ignore>\n<$set name=sortneg tiddler=<<tempTableSort>> index=\"negate\">\n<!--calculate the number of columns in edit and view mode -->\n<$set name=ncols filter=\"[subfilter<columnFilter>] -[[tbl-delete]] [<tempTableEdit>getindex[mode]match[edit]] +[count[]]\" >\n<div class=\"tbl-container\" style=\"max-width:100%;\">\n<table class=<<__class__>> style=\"caption-side:top\">\n<!-- reveal caption and edit button -------------------->\n<caption style=\"text-align:left;\">\n<$list filter=\"[<__editButton__>match[yes]]\" variavle=ignore>\n<span style=\"padding-right:5px;padding-left:3px;\"><<toggle-edit-view>></span></$list>\n$caption$</caption>\n\n<!-- create header -------------------->\n<thead>\n<<confirm-delete>>\n<tr>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"headerLookup\" filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/HeaderTemplate]contains:tbl-column-list<currentColumn>limit[1]get[title]]\" value=<<headerLookup>> emptyValue=\"$:/plugins/kookma/shiraz/templates/header/default\">\n <$transclude tiddler=<<headerLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n</thead>\n\n<!-- create footer -------------------->\n<$reveal type=\"gt\" default=<<__footerRows__>> text=\"0\" tag=\"tfoot\" class=\"shiraz-dtable-footer\">\n<$list filter=\"[range[1,$footerRows$]addprefix[footer-]]\" variable=footerRow>\n<tr>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"footerLookup\" filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/FooterTemplate]contains:tbl-column-list<currentColumn>limit[1]get[title]]\" value=<<footerLookup>> emptyValue=\"$:/plugins/kookma/shiraz/templates/footer/default\">\n<$transclude tiddler=<<footerLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n</$list>\n</$reveal>\n\n<!-- reveal main body of table (generate records) -------------------->\n<tbody>\n<$set name=tableBody filter=\"[<fieldOrIndex>]-index\" value=\"display_body_fields\" emptyValue=\"display_body_indexes\" >\n<$macrocall $name=<<tableBody>> />\n</$set>\n</tbody>\n</table>\n</div><!-- container-->\n</$set>\n</$set>\n</$list><!--check input filter parameter-->\n</$set>\n</$set>\n</$set>\n</$vars>\n\\end\n\n"},"$:/plugins/kookma/shiraz/macros/dtables/table-utility":{"created":"20200209195541061","modified":"20200323093719755","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define tableFilter_fields() $(inputFilter)$+[$(sortneg)$$(sortType)${$(tempTableSort)$##sortIndex}]\n\\define tableFilter_indexes() [enlist<items>]+[$(sortneg)$$(sortType)$[]]\n\n\\define getitems()\n<$set name=Index tiddler=<<tempTableSort>> index=\"sortIndex\">\n<$list filter=\"[subfilter<inputFilter>!has[draft.of]]\" >\n<$text text=\"[[\"/>{{{ [<currentTiddler>getindex<Index>addsuffix[°≡°]] }}}<<currentTiddler>><$text text=\"]]\"/>\n</$list>\n</$set>\n\\end\n\n\\define display_one_record()\n<$wikify name=\"rowStyle\" text=\"\"\"<$transclude tiddler=<<tempTableStyle>> index=<<currentRecord>> />\"\"\" mode=\"inline\">\n<tr style=<<rowStyle>>>\n<$list filter=<<columnFilter>> variable=currentColumn>\n<$set name=\"bodyLookup\" \n filter=\"[all[tiddlers+shadows]tag[$:/tags/Table/BodyTemplate]contains:tbl-column-list<currentColumn>]\n +[limit[1]get[title]]\"\n value=<<bodyLookup>> \n emptyValue=\"$:/plugins/kookma/shiraz/templates/body/default\">\n<$transclude tiddler=<<bodyLookup>> field=\"text\" mode=\"inline\"/>\n</$set>\n</$list>\n</tr>\n<!-- reveal expanded record-->\n<$reveal type=\"match\" state=<<tempPathExpand>> text=\"show\" tag=\"tr\">\n<<display-extended-record>>\n</$reveal>\n</$wikify>\n\\end\n\n\\define display_body_fields()\n<$list filter=<<tableFilter_fields>> variable=\"currentRecord\">\n<<display_one_record>>\n</$list>\n\\end\n\n\\define display_body_indexes()\n<$wikify name=\"items\" text=<<getitems>> > \n<$list filter=<<tableFilter_indexes>> variable=\"currentItem\" >\n<$list filter=\"[<currentItem>split[°≡°]last[]]\" variable=\"currentRecord\">\n <<display_one_record>>\n</$list>\n</$list>\n</$wikify>\n\\end\n\n"},"$:/plugins/kookma/shiraz/macros/dtables/toggle-edit-view":{"created":"20191128215812372","modified":"20200323093719762","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define toggle-edit-view()\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" setTitle=<<tempTableEdit>> setIndex=\"mode\" setTo=\"edit\">{{$:/core/images/edit-button}}</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" setTitle=<<tempTableEdit>> setIndex=\"mode\" setTo=\"view\">{{$:/core/images/done-button}}</$button>\n</$reveal>\n\\end"},"$:/plugins/kookma/shiraz/macros/dtables/warning_message":{"created":"20200210083402839","modified":"20200323093719767","tags":"$:/tags/Table/Macro","type":"text/vnd.tiddlywiki","text":"\\define show_tiddler_types()\n<details>\n <summary>List tiddlers with wrong type</summary>\n\t<dl>\n <$list filter=\"[subfilter<inputFilter>]\">\n\t<$list filter=\"[<currentTiddler>get[type]match[application/x-tiddler-dictionary]][<currentTiddler>get[type]match[application/json]]\" variable=ignore\n\temptyMessage=\"\"\"<dt><$link/></dt><dd><$view field=type/></dd>\"\"\">\n\t</$list>\n\t</$list>\n\t</dl>\n</details>\n\\end\n\n\n\\define show_warning_message()\nDynamic editable table from ''indexes'' expects all input tiddlers are of dataTiddler (json or dictionary) types. Using tiddlers of non //json// or //x-tiddler-dictionary// types as input can unintentionally overwrite the data in the text field of those tiddlers.<br>\n<br>\nCheck the tiddler types to find which tiddlers are not of dataTiddler types!<br>\n<<show_tiddler_types>>\n\\end\n\n\n\\define check_tiddlers_type_for_table_from_indexes(isEditable)\n <$list filter=\"[<fieldOrIndex>]-field\" variable=ignore><!-- only dataTiddler -->\n\t<$list filter=\"[<__isEditable__>match[yes]]\" variable=ignore> <!-- only editable table -->\n\t<$list filter=\"[<tempWarningMsg>is[missing]]\" variable=ignore><!-- dismiss if tempWarningMsg is set -->\n\t<$list filter=\"[subfilter<inputFilter>each[type]get[type]]-[[application/x-tiddler-dictionary]]-[[application/json]]\" variable=ignore>\n\t <div style=\"color: white;background-color:#ff0033;padding:8px;text-align:center;width:100%;\">\n\t Danger: Editable dynamic table from idexes with mixed types of tiddlers! \n\t <$button class=\"tc-btn-invisible tc-tiddlylink\" style=\"fill:white;\" tooltip=\"Dismiss alert and continue with the current selection!\">{{$:/core/images/close-button}}\n <$action-setfield $tiddler=<<tempWarningMsg>> text=\"dissmiss\"/>\n </$button>\n\t </div>\n\t <div style=\"border:1px solid #ff0033;padding:8px;\">\n\t <<show_warning_message>>\n\t </div>\n </$list>\n\t</$list>\n\t</$list>\n\t</$list>\n\\end\t\n"},"$:/plugins/kookma/shiraz/macros/image-basic":{"created":"20181119183704246","modified":"20200323093719776","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-basic(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-simple image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>> /> \n <figcaption>$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-card-utility":{"created":"20191209113750505","modified":"20200323093719788","type":"text/vnd.tiddlywiki","text":"\\define image-card-top(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <$image class=\"card-img-top\" source=<<__img__>> alt=<<__alt__>> />\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n</div>\n\\end\n\n\\define image-card-bottom(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n <$image class=\"card-img-bottom\" source=<<__img__>> alt=<<__alt__>> />\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-card":{"created":"20190913094619863","modified":"20200323093719782","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-card(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", pos:\"top\", alt:\"\")\n\\import $:/plugins/kookma/shiraz/macros/image-card-utility\n<$reveal tag=\"div\" type=\"match\" default=\"top\" text=<<__pos__>> >\n<$macrocall $name=image-card-top img=<<__img__>> title=<<__title__>> text=<<__text__>>\n footer=<<__footer__>> width=<<__width__>> align=<<__align__>> alt=<<__alt__>> />\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" default=\"top\" text=<<__pos__>> >\n<$macrocall $name=image-card-bottom img=<<__img__>> title=<<__title__>> text=<<__text__>>\n footer=<<__footer__>> width=<<__width__>> align=<<__align__>> alt=<<__alt__>> />\n</$reveal>\n\\end\n\n\\define image-card-top(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <$image class=\"card-img-top\" source=<<__img__>> alt=<<__alt__>> />\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n</div>\n\\end\n\n\\define image-card-bottom(img, width:\"30%\", align:\"none\", title:\"Empty\", text:\"Empty\", footer:\"Empty\", alt:\"\")\n<div class=\"card image-align-$align$\" style=\"width:$width$;\">\n <div class=\"card-body\">\n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__title__>> >\n <div class=\"h5 card-title\">$title$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__text__>> >\n <div class=\"card-text\">$text$</div>\n </$reveal> \n <$reveal tag=\"div\" type=\"nomatch\" default=\"Empty\" text=<<__footer__>> >\n <p class=\"card-text\"><small class=\"text-muted\">$footer$</small></p>\n </$reveal>\n </div> \n <$image class=\"card-img-bottom\" source=<<__img__>> alt=<<__alt__>> />\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-overlay-utility":{"created":"20191209114338849","modified":"20200323093719804","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define _cls-content-details() image-overlay-content-details $(fdcls)$"},"$:/plugins/kookma/shiraz/macros/image-overlay":{"created":"20181117203737197","modified":"20200323093719798","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-overlay(img, width:\"30%\", align:\"none\", caption:\"\", title:\"\", text:\"\", fadein:\"left\", alt:\"\")\n\\import $:/plugins/kookma/shiraz/macros/image-overlay-utility\n<div class=\"image-overlay-container image-align-$align$\" style=\"width:$width$;\">\n <h3 class=\"image-overlay-title\">$caption$</h3>\n <div class=\"image-overlay-content\">\n <div class=\"image-overlay-content-overlay\"></div>\n <$image class=\"image-overlay-content-image\" source=<<__img__>> alt=<<__alt__>>/>\n <$set name=\"fdcls\" filter=\"$fadein$ +[splitbefore[ ]] +[addprefix[image-overlay-fadeIn-]]\">\n <div class=<<_cls-content-details>> >\n <h3 class=\"image-overlay-content-title\">$title$</h3>\n <p class=\"image-overlay-content-text\">$text$</p>\n </div>\n </$set>\n </div>\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/image-polaroid":{"created":"20181117203654803","modified":"20200323093719811","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-polaroid(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-polaroid image-align-$align$\" style=\"width:$width$;\">\n <$image source=\"\"\"$img$\"\"\" tooltip=\"\"\"$tooltip$\"\"\"/>\n <figcaption class=\"image-polaroid-caption\">$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-pretty":{"created":"20181117203541398","modified":"20200323093719817","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-pretty(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", alt:\"\")\n<figure class=\"image-pretty image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>> /> \n <figcaption class=\"image-pretty-caption\">$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/image-slidein":{"created":"20181117040544570","modified":"20200323093719824","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define image-slidein(img, width:\"30%\", align:\"none\", caption:\"\", tooltip:\"\", slidein:\"left\", alt:\"\")\n<figure class=\"image-slidein mr-cap-$slidein$ image-align-$align$\" style=\"width:$width$;\">\n <$image source=<<__img__>> tooltip=<<__tooltip__>> alt=<<__alt__>>/>\n <figcaption>$caption$</figcaption>\n</figure> \n\\end"},"$:/plugins/kookma/shiraz/macros/list-search":{"author":"Jeremy Ruston","created":"20191209101857832","creator":"Mohammad","description":"creates few paragraphs of dumy text","modified":"20200323093719831","modifier":"Mohammad","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define list-search( filter:\"[!is[system]]\", search:\"search:title\", template:\"$:/core/ui/ListItemTemplate\",\n class:\"\", stateTiddler:\"\", placeholder:\"keywords\")\n<$set name=\"state\" filter=\"[[$:/temp/list-search]addsuffix[/$stateTiddler$]addsuffix<qualify>]\">\n<div class=<<__class__>> >\n<$edit-text tiddler=<<state>> type=\"search\" tag=\"input\" default=\"\" placeholder=\"$placeholder$\"/>\n</div>\n<$reveal state=<<state>> type=\"match\" text=\"\" class=<<__class__>> tag=div>\n<$list filter=\"$filter$\" template=<<__template__>>/>\n</$reveal>\n<$reveal state=<<state>> type=\"nomatch\" text=\"\" class=<<__class__>> tag=div>\n<$set name=term tiddler=<<state>> field=\"text\">\n<$list filter=\"$filter$+[$search$<term>]\" template=<<__template__>>/>\n</$set>\n</$reveal>\n</$set>\n\\end\n<!-- from Tobias Beer list-search with modification-->"},"$:/plugins/kookma/shiraz/macros/multicol":{"created":"20191018063242993","modified":"20200323093719835","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define multicol(src, ncol:\"\", class:\"\")\n<div class=\"sh-multicol$ncol$ $class$\">\n\n$src$\n</div>\n\\end"},"$:/plugins/kookma/shiraz/macros/slider":{"created":"20190322161929431","description":"Slider macro shows (hides) its content.","modified":"20201113161937207","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define slider(label, src, labelClass, srcClass, status:\"closed\")\n<$set name=\"revealState\" value=\"\"\"$:/state/shiraz/slider-macro/$(currentTiddler)$/$label$\"\"\">\n\n<h2 class=\"$labelClass$\">\n <$reveal type=\"nomatch\" state=<<revealState>> text=\"open\" default=\"$status$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"open\">\n <span class=\"kk-sh-slider\"><$transclude tiddler=\"$:/core/images/right-arrow\" /></span>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$status$\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" set=<<revealState>> setTo=\"closed\">\n <span class=\"kk-sh-slider\"><$transclude tiddler=\"$:/core/images/down-arrow\" /></span>\n </$button>\n </$reveal>\n $label$\n</h2>\n\n<$reveal type=\"match\" state=<<revealState>> text=\"open\" default=\"$status$\" class=\"$srcClass$\">\n\n$src$\n</$reveal>\n</$set>\n\\end"},"$:/plugins/kookma/shiraz/macros/space":{"created":"20170629183034888","modified":"20200323093719849","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define vspace(height:\"25px\")\n<p style=\"margin-bottom: $height$;\"></p>\n\\end\n\n\\define hspace(width:\"25px\")\n<span style=\"margin-left: $width$;\"></span>\n\\end\n"},"$:/plugins/kookma/shiraz/macros/text-utility":{"created":"20181101154956345","modified":"20200323093719853","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define tc(src:\"\", color:\"red\") <span style=\"color:$color$;\">$src$</span>\n\\define bc(src:\"\", color:\"yellow\") <span style=\"background-color:$color$;\">$src$</span>\n\\define mono(src:\"\", class:\"\") <code class=\"mono $class$\">$src$</code>\n\\define transform(case:\"\", src:\"\", class:\"\") <span class=\"text-$case$ $class$\">$src$</span>"},"$:/plugins/kookma/shiraz/readme":{"created":"20200323092614037","modified":"20200323134846163","tags":"","type":"text/vnd.tiddlywiki","text":"; Shiraz\nShiraz is a small framework including stylesheets, templates and macros to create stylish contents in Tiddlywiki. It uses modified CSS classes from [[Bootstrap|https://getbootstrap.com/]] 4.3.1. Shiraz has customized elements like alerts, cards, panels, images, static tables, dynamic tables, badges, texts, ...\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Shiraz/\n* Code: https://github.com/kookma/TW-Shiraz\n"},"$:/plugins/kookma/shiraz/styles/alerts-leftbar":{"text":".leftbar{\n border-width:0px !important;\n border-radius:0px !important;\n border-left-width: 5px !important;\n}","created":"20181208184228896","modified":"20200323093719861","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/alerts":{"text":"/*Was taken from bootstrap 4.1.3*/\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n","created":"20180820171551129","modified":"20200323093719869","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/background-colors":{"text":".bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}","created":"20180820170518161","modified":"20200323093719877","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/badge":{"text":"/* Extracted from bootstrap 4.1.3 */\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n","created":"20181122140031075","modified":"20200323093719884","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/borders":{"text":".border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","created":"20180820174710383","modified":"20200323093719893","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/btn":{"text":"/* Button and btn classes Mohammad*/\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n/* button size */\n\n.btn-lg{\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm{\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}","created":"20180822044340070","modified":"20200323093719900","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-column":{"text":"/* Extracted from bootstrap 4.3.1 */\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}","created":"20181122175345419","modified":"20200323093719915","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-deck":{"text":"/* Extracted from bootstrap 4.1.3 */\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}","created":"20180822174847352","modified":"20200323093719923","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card-group":{"text":"/* Extracted from bootstrap 4.1.3 */\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n","created":"20181122175111676","modified":"20200323093719932","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/card":{"text":"/* Extracted from bootstrap 4.1.3 */\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n","created":"20180822174608965","modified":"20200323093719907","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/clearfix":{"text":".clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}","created":"20190919042042391","modified":"20200323093719936","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/float":{"text":".float-left {\n float: left;\n}\n\n.float-right {\n float: right;\n}\n\n.float-none {\n float: none;\n}\n","created":"20180823142040855","modified":"20200323093719944","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/my-adjustment":{"text":"/* My adjustments to bootstrap 4.1.3 css classes */\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n/* Link is hacked to be compatible with bootstrap \nclasses remove it if the TW core objects break\n*/\n\n","created":"20180822044831813","modified":"20200323093719950","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/shadow":{"text":".shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}","created":"20180823114259911","modified":"20200323093719957","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/sizing-spacing":{"text":"/* Extracted from bootstrap 4.3.1 */\n/*Defines margins, paddings, width and height*/\n.w-25 {\n width: 25% !important;\n}\n.w-50 {\n width: 50% !important;\n}\n.w-75 {\n width: 75% !important;\n}\n.w-100 {\n width: 100% !important;\n}\n.w-auto {\n width: auto !important;\n}\n.h-25 {\n height: 25% !important;\n}\n.h-50 {\n height: 50% !important;\n}\n.h-75 {\n height: 75% !important;\n}\n.h-100 {\n height: 100% !important;\n}\n.h-auto {\n height: auto !important;\n}\n.mw-100 {\n max-width: 100% !important;\n}\n.mh-100 {\n max-height: 100% !important;\n}\n.m-0 {\n margin: 0 !important;\n}\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n.m-1 {\n margin: 0.25rem !important;\n}\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n.m-2 {\n margin: 0.5rem !important;\n}\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n","created":"20180822191952379","modified":"20200323093719964","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-alignment":{"text":".text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}","created":"20180822051223866","modified":"20200323093719971","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-colors":{"text":"/* from bootstrap 4.1.3 */\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n","created":"20180820173351023","modified":"20200323093719978","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/bs/text-utility":{"text":"/* Can be removed latter. This is used for illustration of bootstrap cards */\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\n.h1 {\n font-size: 2.5rem;\n}\n\n.h2 {\n font-size: 2rem;\n}\n\n.h3 {\n font-size: 1.75rem;\n}\n\n.h4 {\n font-size: 1.5rem;\n}\n\n.h5 {\n font-size: 1.25rem;\n}\n\n.h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.hr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n","created":"20180822130528002","modified":"20200323093719985","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/clear-float":{"text":"/* Resolve issue for floating objects which cross the tiddler frame!\nThe below code should force the tiddler to always wrap around floating elements, so that they are always inside\nRef: https://groups.google.com/d/msg/tiddlywiki/5bZwwj6cyac/2LzFeA7AAwAJ\n*/\n\n.tc-tiddler-body:before, .tc-tiddler-body:after {\n content: \"\";\n display: table;\n}\n.tc-tiddler-body:after {\n clear: both;\n}\n.tc-tiddler-body {\n zoom: 1;\n}","created":"20190902043605186","modified":"20200323093719992","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab":{"text":".tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n background: none;\n border: none;\n border-bottom: solid 1px #737373 !important;\n font-weight: bold;\n color: #DB4C3F !important;\n}","created":"20191209105546612","modified":"20200323093719997","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/dbadge":{"text":"/*Credits: \nNishant Srivastava https://codepen.io/nisrulz/pen/bpQWLW\nMohammad Rahmani: https://github.com/kookma\n*/\n.dbadge {\n display: inline-block;\n margin: 0.0em;\n}\n.dbadge > span {\n color: #ffffff;\n font-size: 0.8em;\n font-weight: 400;\n line-height: 1;\n padding: .2em .6em;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;}\n\n.dbadge-subject{\n background-color: #656565;\n border-bottom-left-radius: 0.25em;\n border-top-left-radius: 0.25em;}\n.dbadge-status {\n border-bottom-right-radius: 0.25em;\n border-top-right-radius: 0.25em;}\n\n.dbadge-primary {\n background-color: #337ab7;}\n.dbadge-success {\n background-color: #5cb85c;}\n.dbadge-info {\n background-color: #5bc0de;}\n.dbadge-warning {\n background-color: #f0ad4e;}\n.dbadge-danger {\n background-color: #d9534f;}","created":"20181204192835967","modified":"20200323093720003","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/details-slider":{"text":"/*details html5 macro*/\ndetails > summary {\n padding: 2px 6px;\n font-weight:500;\n outline:none;\n}\ndetails > div {\n padding: 2px 6px;\n margin: 0;\n}\n\nbutton .kk-sh-slider svg{\nwidth: 0.8em;\nheight: 0.8em;\nvertical-align: middle;}","created":"20181101185908941","modified":"20200325083406128","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/dynamic-tables":{"text":"/* edit-text box for dynamic table */\n.shiraz-dtable-textbox {\n width:100%;\n padding-left: 5px;\n border: none;\n}\n\n.shiraz-dtable-textbox:focus {\n outline: none;\n border: 1px solid #5778d8;\n background: transparent;\n}\n\n.tbl-inpt-edit { width: 100%; background-color: transparent; border: none; color: #000000;}\n\nbutton.tbl-sort-svg > svg { text-shadow: none; fill:#000000; height:10px; padding:0 0 2px 0; }\n\nth .tc-tiddlylink, th a { text-shadow: none; margin: 0 0 0 0; padding: 0 0 0 0; color:#000000; font-weight: bold; }\n\n\n/* DELETE CONFIRMATION */\ntable thead .tbl-delete-confirm > th {\n color: white;\n background-color:#ff0033;\n padding: 8px;\n margin: 0px;\n text-align:center;\n\tfont-weight:normal;\n}\n\ntable thead .tbl-delete-confirm > th > button {\n color: white;\n fill: white;\n}\n\n/* customize the table footer used for numerical summary*/\n.shiraz-dtable-footer tr td{\n\tbackground:#f0f0f0; \n\tborder:none;\n}","created":"20191128184537594","modified":"20200323093720018","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-alignment":{"text":"/*Image aligning classes*/\n.image-align-right{\n float:right;\n margin:0.5em 0 1.3em 1.4em;\n}\n.image-align-left{\n float:left;\n margin: 0.5em 1.4em 1.3em 0;\n}\n.image-align-center{\n display:block;\n margin: 0.5em auto 1.3em; \n}\n\n.image-float-none {\n float: none !important;\n}","created":"20190918193736314","modified":"20200323093720025","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-basic":{"text":".image-simple {\n text-align: center;\n font-style: italic;\n font-size: smaller;\n text-indent: 0;\n padding: 0.5em;\n}","created":"20181119182848505","modified":"20200323093720030","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-overlay":{"text":".image-overlay-container{\n width: 50%; \n box-sizing: border-box;\n}\n\n@media screen and (max-width: 640px){\n .image-overlay-container{\n display: block;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 900px){\n .image-overlay-container{\n width: 33.33%;\n }\n}\n\n.image-overlay-container .image-overlay-title{\n color: #1a1a1a;\n text-align: center;\n margin-bottom:10px;\n}\n\n.image-overlay-content {\n position: relative;\n width: 90%;\n max-width: 400px;\n margin: auto;\n overflow: hidden;\n}\n\n.image-overlay-content .image-overlay-content-overlay {\n background: rgba(0,0,0,0.7);\n position: absolute;\n height: 99%;\n width: 100%;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n -webkit-transition: all 0.4s ease-in-out 0s;\n -moz-transition: all 0.4s ease-in-out 0s;\n transition: all 0.4s ease-in-out 0s;\n}\n\n.image-overlay-content:hover .image-overlay-content-overlay{\n opacity: 1;\n}\n\n.image-overlay-content-image{\n width: 100%;\n}\n\n.image-overlay-content-details {\n position: absolute;\n text-align: center;\n padding-left: 1em;\n padding-right: 1em;\n width: 100%;\n top: 50%;\n left: 50%;\n opacity: 0;\n -webkit-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transition: all 0.3s ease-in-out 0s;\n -moz-transition: all 0.3s ease-in-out 0s;\n transition: all 0.3s ease-in-out 0s;\n}\n\n.image-overlay-content:hover .image-overlay-content-details{\n top: 50%;\n left: 50%;\n opacity: 1;\n}\n\n.image-overlay-content-details h3{\n color: #fff;\n font-weight: 500;\n letter-spacing: 0.15em;\n margin-bottom: 0.5em;\n text-transform: uppercase;\n}\n\n.image-overlay-content-details p{\n color: #fff;\n font-size: 0.8em;\n}\n\n.image-overlay-fadeIn-bottom{\n top: 80%;\n}\n\n.image-overlay-fadeIn-top{\n top: 20%;\n}\n\n.image-overlay-fadeIn-left{\n left: 20%;\n}\n\n.image-overlay-fadeIn-right{\n left: 80%;\n}","created":"20181116173704182","modified":"20200323093720035","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-polaroid":{"text":".image-polaroid {\n min-width:64px;\n background-color: #f8f9fa;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n}\n.image-polaroid img {\n width: 100%;\n padding:10px;\n height: auto;\n}\n.image-polaroid .image-polaroid-caption {\n padding:10px 15px 10px;\n text-align: center; \n line-height: 1.4em;\n font-weight:300;\n font-size: 0.9em; \n}","created":"20181116094450565","modified":"20200323093720041","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-pretty":{"text":".image-pretty {\n min-width:64px;\n border: 1px solid #c8ccd1;\n background-color:#f8f9fa;\n}\n.image-pretty:hover {\n border: 1px solid #777;\n}\n.image-pretty img {\n padding:2px;\n width: 100%;\n height: auto;\n}\n.image-pretty .image-pretty-caption {\n padding:10px 15px 10px;\n text-align: center; \n line-height: 1.4em;\n font-weight:300;\n font-size: 0.9em; \n}\n\n","created":"20181115182806512","modified":"20200323093720047","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/image-slidein":{"text":".image-slidein { \n display: block; \n position: relative; \n /*float: left;*/\n overflow: hidden; \n /* margin: 0 20px 20px 0;*/\n}\n\n.image-slidein img {\n width: 100%;\n height: auto;\n}\n\n.image-slidein figcaption { \n position: absolute; \n background: rgba(0,0,0,0.75); \n color: white; \n padding: 10px 20px; \n opacity: 0;\n -webkit-transition: all 0.6s ease;\n -moz-transition: all 0.6s ease;\n -o-transition: all 0.6s ease;\n}\n.image-slidein:hover figcaption {\n opacity: 1;\n}\n.image-slidein:before { \n content: \"?\"; \n position: absolute; \n font-weight: 800; \n background: rgba(255,255,255,0.75); \n text-shadow: 0 0 5px white;\n color: black;\n width: 24px;\n height: 24px;\n -webkit-border-radius: 12px;\n -moz-border-radius: 12px;\n border-radius: 12px;\n text-align: center;\n font-size: 14px;\n line-height: 24px;\n -moz-transition: all 0.6s ease;\n opacity: 0.75;\t\n}\n.image-slidein:hover:before {\n opacity: 0;\n}\n\n.mr-cap-left:before { bottom: 10px; left: 10px; }\n.mr-cap-left figcaption { bottom: 0; left: -30%; }\n.mr-cap-left:hover figcaption { left: 0; }\n\n.mr-cap-right:before { bottom: 10px; right: 10px; }\n.mr-cap-right figcaption { bottom: 0; right: -30%; }\n.mr-cap-right:hover figcaption { right: 0; }\n\n.mr-cap-top:before { top: 10px; left: 10px; }\n.mr-cap-top figcaption { left: 0; top: -30%; }\n.mr-cap-top:hover figcaption { top: 0; }\n\n.mr-cap-bottom:before { bottom: 10px; left: 10px; }\n.mr-cap-bottom figcaption { left: 0; bottom: -30%;}\n.mr-cap-bottom:hover figcaption { bottom: 0; }\n","created":"20181117040213926","modified":"20200323093720054","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/misc/edit-buttons":{"text":"/*Edit buttons as traffic lights*/\n.tc-tiddler-controls .tc-image-delete-button {fill:#ebb;}\n.tc-tiddler-controls .tc-image-cancel-button {fill:#ed9;}\n.tc-tiddler-controls .tc-image-done-button {fill:#beb;}","created":"20191029091851469","modified":"20200323093720062","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/styles/misc/tiddler-button-visibility":{"text":"/* Mouseover toolbar visibility: courtesy from Tobias Beer*/\n.tc-tiddler-frame .tc-titlebar button {\n opacity: 0;\n transition: opacity .5s ease-in-out;\n}\n.tc-tiddler-frame:hover .tc-titlebar button {\n zoom: 1;\n filter: alpha(opacity=100);\n opacity: 1;\n}\n","created":"20191029094209435","modified":"20200323093720069","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/styles/misc/ui-buttons":{"created":"20191029092047069","modified":"20200323093720078","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* These css rules makes TW UI buttons in beatiful color */\n\n/*page control buttons*/\n.tc-page-controls .tc-image-new-button { fill: #5EB95E; } /*New tiddler button*/\n.tc-page-controls .tc-image-options-button { fill:#8058A5; } /*Open control pannel*/\n\n/*tiddler buttons in beautiful color*/\n.tc-tiddler-controls .tc-image-edit-button { fill:#F37B1D; }/*edit tiddler*/\n.tc-tiddler-controls .tc-image-info-button { fill: #0e90d2; } /*Info button*/\n"},"$:/plugins/kookma/shiraz/styles/mono":{"text":".mono {\n\tcolor:unset;\n\tbackground-color: #f7f7f9;\n\tborder: 1px solid #e1e1e8;\n\twhite-space: pre-wrap;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: \"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace;\n}","created":"20181010192406005","modified":"20200323093720084","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/column":{"text":"/* multicolumn layouts with fixed column number works on the whole tiddler */\n.multicol .tc-tiddler-body {\n column-width: 14em;\n column-rule: 1px solid #ccc;\n}\n/* two columns responsive*/\n.multicol2 .tc-tiddler-body {\n\tcolumn-count:2; \n\tcolumn-width:15em;\n}\n/* three columns responsive*/\n.multicol3 .tc-tiddler-body {\n\tcolumn-count:3; \n\tcolumn-width:10em;\n}\n\n\n/* remove the extra space from first paragraph */\n.multicol .tc-tiddler-body > :first-child, \n.multicol2 .tc-tiddler-body > :first-child, \n.multicol3 .tc-tiddler-body > :first-child { margin-top: 0;}\n\n/*-------------------------------------------------------------------------------*/\n/* Classes for using with macro and div elements */\n.sh-multicol {\n column-width: 14em;\n column-rule: 1px solid #ccc;\n}\n/* two columns responsive*/\n.sh-multicol2 {\n\tcolumn-count:2; \n\tcolumn-width:15em;\n}\n/* three columns responsive*/\n.sh-multicol3 {\n\tcolumn-count:3; \n\tcolumn-width:10em;\n}\n\n/* remove the extra space from first paragraph */\n.sh-multicol > :first-child,\n.sh-multicol2 > :first-child,\n.sh-multicol3 > :first-child { margin-top: 0;}","created":"20190627204703061","modified":"20200323093720089","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/flex backup":{"text":"/* multicolumn layout using flexbox courtesy from Bootstrap 4.3.1*/\n.flex-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n.flex-col-1, \n.flex-col-2, \n.flex-col-3 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.flex-col-1{flex: 1 1 0;}\n.flex-col-2{flex: 2 1 0;}\n.flex-col-3{flex: 3 1 0;}\n\n.flex-col-1 > :first-child,\n.flex-col-2 > :first-child,\n.flex-col-3 > :first-child {\n\tmargin-top: 0;}","created":"20191030140900552","modified":"20200323093720101","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/flex":{"text":"/* multicolumn layout using flexbox courtesy from Bootstrap 4.3.1*/\n.flex-row {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n/* margin-right: -15px;\n margin-left: -15px;*/\n}\n\n.flex-col,\n.flex-col-1, \n.flex-col-2, \n.flex-col-3,\n.flex-col-4 {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n/* for small screen width>=576px\nhttps://getbootstrap.com/docs/4.3/layout/grid/\n*/\n@media (min-width: 576px) {\n.flex-col {flex: 1 1 0; max-width: 100%;}\n.flex-col-1 {flex: 0 0 25%; max-width:25%}\n.flex-col-2 {flex: 0 0 50%; max-width:50%}\n.flex-col-3 {flex: 0 0 75%; max-width:75%}\n.flex-col-4 {flex: 0 0 100%; max-width:100%}\n}\n\n.flex-col > :first-child,\n.flex-col-1 > :first-child,\n.flex-col-2 > :first-child,\n.flex-col-3 > :first-child,\n.flex-col-4 > :first-child {\n margin-top: 0;}\n\n\n/* Alignment */\n.flex-align-items-center {\n align-items: center !important;\n}\n.flex-justify-content-center {\n justify-content: center !important;\n}\n\n.flex-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}","created":"20191014193910006","modified":"20200323093720097","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/multicols/storyriver":{"text":"/* create story river in two column layout */\n.tc-story-river {\n display: flex;\n flex-wrap: wrap;\n}\n\n.tc-tiddler-frame\n{\n max-width: 49%; margin-right: 1%;\n /*max-width: 32%; margin-right: 1%; */\n}\n","created":"20140523214749659","modified":"20200323093720108","tags":"","type":"text/css"},"$:/plugins/kookma/shiraz/styles/notebook":{"text":"@media print{\n .notebook .tc-tiddler-body {\n padding-left:60px;\n margin-top:25px;\n }\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n\t.notebook .tc-tags-wrapper {\n padding-left:60px;\n }\n}\n\n@media screen{\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n\t.notebook .tc-tags-wrapper,\n\t.notebook .tc-tiddler-body {\n padding-left:30px;\n }\n\n}\t\n\n@media screen and (max-width:960px) {\n .notebook .tc-tiddler-title,\n .notebook .tc-subtitle,\n .notebook .tc-tags-wrapper,\n .notebook .tc-tiddler-body {\n padding-left:60px;\n }\n\n}\n\n.notebook:before {\n content: '';\n position: absolute;\n top: 0; bottom: 0; left: 0;\n width: 50px;\n background: radial-gradient(#575450 6px, transparent 7px) repeat-y;\n background-size: 30px 30px;\n border-right: 3px solid #D44147;\n\t z-index:1;\n}\n\n.notebook .tc-tiddler-body {\n\t position: relative;\n background: linear-gradient(transparent, transparent 1.95em, #91D1D3 1.95em);\n background-size: 2em 2em;\n\t min-height:90px; \n}\n\n.notebook .tc-tiddler-body{\n\t padding-top:20px;\n font-family: \"Handlee\", cursive;\n font-weight:300;\n line-height:2em;\n color:#696969;\n}\n\n/* Setting font for other elements */\n.notebook .tc-tiddler-body pre,\n.notebook .tc-tiddler-body code,\n.notebook .tc-tiddler-body pre code\n{\n font-family: \"Handlee\", cursive;\n font-weight:300;\n}","created":"20180412105446259","modified":"20200323093720115","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/semantic/bglowtone-colors":{"text":"/* Colors taked from [1] https://www.bg-w3schools.bg-com/colors/colors_names.bg-asp \n[2] http://www.bg-workwithcolor.bg-com/color-chart-full-01.bg-htm*/\n/*Low tone background colors*/\n.bg-mistyrose{background-color:#ffe4e1;}\n.bg-lemonchiffon{background-color:#fffacd;}\n.bg-lavenderblush{background-color:#fff0f5;}\n.bg-lavender{background-color:#e6e6fa;}\n.bg-honeydew{background-color:#f0fff0;}\n.bg-lightcyan{background-color:#e0ffff;}\n.bg-aliceblue{background-color:#f0f8ff;}\n.bg-cornsilk{background-color:#fff8dc;}\n.bg-gainsboro{background-color:#dcdcdc;}\n.bg-bisque{background-color:#ffe4c4;}\n.bg-snow{background-color:#fffafa;}","created":"20181029071532524","list":"mistyrose lemonchiffon lavenderblush lavender honeydew lightcyan aliceblue cornsilk gainsboro bisque snow","modified":"20200323093720119","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/sticky-footer":{"text":".sticky-footer {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 0.5rem;\n background-color: #efefef;\n text-align: center;\n margin-top: 5px;\n box-sizing: border-box;\n width: 100%;\n}\n","created":"20180907070611557","modified":"20200323093720126","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/tables":{"text":".table-tight{\n\tfont-size:0.8em;\n}\n\n\n/*\nThis tiddler defines the custom stylesheet for tables \nApril 13, 2018\n*/\n\n/*center aligned table*/\n.table-center {\n margin:0 auto;\n}\n\n/* Table caption at top */\n.table-caption-top caption {\n caption-side:top;\n margin-bottom:0.2rem;\n}\n\n/* Striped row table */\n.table-striped-row tr:nth-child(even) td{\n background-color:#F3F6F6; \n}\n\n/* Striped column table */\n.table-striped-col tbody tr td:nth-child(odd) {\n\tbackground-color: #F3F6F6;\n}\n\n/*Borderless table*/\n.table-borderless, \n.table-borderless thead td, \n.table-borderless th, \n.table-borderless tr, \n.table-borderless td{\n border:0;\n}\n\n/* Table lines should be used with table-borderless for abbreviations and two column layout */\n\n.table-lines thead td, .table-lines th{\n border-bottom: 2px solid #dddddd;\n\t background-color:unset;\n }\n.table-lines td{\n border-bottom: 1px solid #dddddd;\n background-color:unset;\n }\n\n/* Table hover (yellow background on mouse over) */\n.table-hover tbody tr:hover{\n color: #212529;\n background-color: #e6e6e6;\n}\n.table-hover-yellow tbody tr:hover{background-color: #ffffcc;}\n.table-hover-cyan tbody tr:hover{background-color: #e6ffff;}\n\n/* Table with colored header */\n.thead-primary thead td, .thead-primary th{background-color: #007bff; color: #fff;}\n.thead-secondary thead td, .thead-secondary th{background-color: #6c757d; color: #fff;}\n.thead-success thead td, .thead-success th{background-color: #28a745; color: #fff;}\n.thead-warning thead td, .thead-warning th{background-color: #ffc107; color: #fff;}\n.thead-danger thead td, .thead-danger th{background-color: #dc3545; color: #fff;}\n.thead-info thead td, .thead-info th{background-color: #17a2b8; color: #fff;}\n.thead-dark thead td, .thead-dark th{background-color: #343a40; color: #fff;}\n.thead-light thead td, .thead-light th{background-color: #f8f9fa; color: #212529;}\n\n/* Table with colored header correct to fill svgs with white color */\n.thead-primary > thead> tr > td svg, .thead-primary > thead> tr > th svg,\n.thead-secondary > thead> tr > td svg, .thead-secondary > thead> tr > th svg,\n.thead-success > thead> tr > td svg, .thead-success > thead> tr > th svg,\n.thead-warning > thead> tr > td svg, .thead-warning > thead> tr > th svg,\n.thead-danger > thead> tr > td svg, .thead-danger > thead> tr > th svg,\n.thead-info > thead> tr > td svg, .thead-info > thead> tr > th svg,\n.thead-dark > thead> tr > td svg, .thead-dark > thead> tr > th svg\n {fill:#ffffff; padding:0 0 3px 0; }\n\n\n.thead-primary th .tc-tiddlylink, .thead-primary th a,\n.thead-secondary th .tc-tiddlylink, .thead-primary th a,\n.thead-success th .tc-tiddlylink, .thead-primary th a,\n.thead-warning th .tc-tiddlylink, .thead-primary th a,\n.thead-danger th .tc-tiddlylink, .thead-primary th a,\n.thead-info th .tc-tiddlylink, .thead-primary th a,\n.thead-dark th .tc-tiddlylink, .thead-primary th a{color:#ffffff}\n","created":"20180413092232257","modified":"20200323093720133","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/styles/tiddler-title-class":{"text":".title-primary .tc-title {\n color: #007bff;\n}\n.title-secondary .tc-title {\n color: #6c757d;\n}\n.title-success .tc-title {\n color: #28a745;\n}\n.title-info .tc-title {\n color: #17a2b8;\n}\n.title-warning .tc-title {\n color: #ffc107;\n}\n.title-danger .tc-title {\n color: #dc3545;\n}\n.title-light .tc-title {\n color: #f8f9fa;\n}\n.title-dark .tc-title {\n color: #343a40;\n}\n.title-white .tc-title {\n color: #fff;\n}","created":"20191101112257846","modified":"20210212153844298","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/shiraz/templates/body/color":{"created":"20200210160016959","modified":"20200323093720147","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"color","type":"text/vnd.tiddlywiki","text":"\\define showCell()\n<style>\n.dt:not(:disabled):dt(.disabled) {cursor: pointer;}\na.dt.disabled,fieldset:disabled a.dt {pointer-events: none;}\n</style>\n<$link overrideClass=\"dt disabled\" to=\"\">\n<$edit-text tag=input type=color tiddler=<<currentRecord>> field=color/>\n</$link>\n\\end\n\n\\define edit_color() <$edit-text tag=input type=color tiddler=<<currentRecord>> field=<<currentColumn>>/>\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<edit_color>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/date":{"created":"20170128100657312","modified":"20200323093720153","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"created modified","type":"text/vnd.tiddlywiki","text":"<td>\n<$view tiddler=<<currentRecord>> field=<<currentColumn>> format=\"date\" template=\"YYYY.0MM.0DD\"/>\n</td>"},"$:/plugins/kookma/shiraz/templates/body/default":{"created":"20191125202328213","modified":"20200323093720160","tags":"$:/tags/Table/BodyTemplate","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/due-date":{"created":"20200206191120454","modified":"20200323093720165","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"due-date","type":"text/vnd.tiddlywiki","text":"\\define showCell() <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\\define edit_date() <$edit-text tag=input type=date tiddler=<<currentRecord>> field=<<currentColumn>>/>\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<edit_date>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields -->"},"$:/plugins/kookma/shiraz/templates/body/email":{"created":"20191202210913762","modified":"20200323093720171","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"email","type":"text/vnd.tiddlywiki","text":"\\define display-email-address()\n<a class=\"tc-tiddlylink-external\" href=\"mailto:$(currentRecord)$!!$(currentColumn)$\" rel=\"noopener noreferrer\" target=\"_blank\">\n<<showCell>>\n</a>\n\\end\n\\define display-email-address_Locked()\n<a class=\"tc-tiddlylink-external\" href=\"mailto:$(currentRecord)$!!$(currentColumn)$\" rel=\"noopener noreferrer\" target=\"_blank\">\n<<showCell_Locked>>\n</a>\n\\end\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<display-email-address>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n<<display-email-address_Locked>>\n</$list>\n</$reveal>\n\n"},"$:/plugins/kookma/shiraz/templates/body/priority":{"created":"20200424102701026","modified":"20200424151646289","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"priority","type":"text/vnd.tiddlywiki","text":"\\define circle(color, fill)\n<svg width=\"12\" height=\"12\" >\n<circle cx=\"6\" cy=\"6\" r=\"5\" stroke=<<__color__>> fill=<<__fill__>> stroke-width=\"1\"/>\n</svg>\n\\end\n\n\\define showCell()\n<$list filter=\"[<currentRecord>get<currentColumn>match[very high]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#dc3545\" fill=\"#f8d7da\"/>\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[high]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#ff8c00\" fill=\"#fff3cd\"/>\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[normal]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#17a2b8\" fill=\"#d1ecf1\"/>\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[low]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#007bff\" fill=\"#cce5ff\"/>\n</$list>\n<$list filter=\"[<currentRecord>get<currentColumn>match[very low]]\" variable=ignore>\n<$macrocall $name=\"circle\" color=\"#6c757d\" fill=\"#e2e3e5\"/>\n</$list>\n <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> />\n\\end\n\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\n\\define select_priority()\n<$select tiddler=<<currentRecord>> field=<<currentColumn>> default=\"\"><option value=''>Select...</option><option value='very high'>very high</option><option value='high'>high</option><option value='normal'>normal</option><option value='low'>low</option><option value='very low'>very low</option><option value=''>no priority</option></$select>\n\\end\n\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<select_priority>> >\n <<showCell_Locked>>\n</$list>\n<$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields\n -->"},"$:/plugins/kookma/shiraz/templates/body/status":{"created":"20200424100127763","modified":"20200424153213801","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"status","type":"text/vnd.tiddlywiki","text":"\\define showCell() <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n\\define showCell_Locked() <span style=\"font-style:oblique;\"><<showCell>></span>\n\\define select_status()\n<$select tiddler=<<currentRecord>> field=<<currentColumn>> default=\"\"><option value=''>Select...</option><option value='open'>open</option><option value='not started'>not started</option><option value='in-work'>in-work</option><option value='on-hold'>on-hold</option><option value='complete'>complete</option><option value='rework'>rework</option><option value='closed'>closed</option></$select>\n\\end\n\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<<showCell>>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<select_status>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>\n\n<!-- Part of Task Manager\n this template ALWAYS works on fields -->"},"$:/plugins/kookma/shiraz/templates/body/tags":{"created":"20191125193831767","modified":"20200323093720193","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tags","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$list filter=\"[title<currentRecord>tags[]]\">\n<span class=\"tc-tag-list-item\" >\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<tempTagPopup>> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<tempTagPopup>> style=\"position:absolute; z-index:9999;\" type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n</$list>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<!--check if the current column is not selected for sorting-->\n<$list filter=\"[<tempTableSort>getindex[sortIndex]match<currentColumn>]\" variable=ignore\nemptyMessage=<<editCell>> >\n <<showCell_Locked>>\n</$list>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/tbl-checkbox":{"created":"20200206150644636","modified":"20200323093720199","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-checkbox","type":"text/vnd.tiddlywiki","text":"<td style=\"width:28px;text-align:center;\">\n<$checkbox tiddler=<<currentRecord>> tag=\"done\"\ncheckactions=\"\"\"<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> $value=\"color:#155724;background-color:#d4edda;\" /><$action-setfield $tiddler=<<currentRecord>> status=\"complete\"/>\"\"\"\nuncheckactions=\"\"\"<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> /><$action-setfield $tiddler=<<currentRecord>> status=\"rework\"/>\"\"\" />\n</td>"},"$:/plugins/kookma/shiraz/templates/body/tbl-clone":{"created":"20201203153613838","modified":"20201203160230143","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"\\define cloneTiddler() <$action-createtiddler $basetitle=<<currentRecord>> $template=<<currentRecord>> />\n\n<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td style=\"width:28px;text-align:center;\">\n <$button actions=<<cloneTiddler>> class=\"tc-btn-invisible\">\n\t {{$:/core/images/clone-button}}\n\t</$button>\n</td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/body/tbl-delete":{"created":"20170212101814663","modified":"20200323093720205","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td style=\"width:28px;text-align:center;\">\n <$button class=\"tc-btn-invisible\">\n <$action-sendmessage $message=\"tm-delete-tiddler\" $param=<<currentRecord>>/>\n {{$:/core/images/delete-button}}\n </$button>\n</td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/body/tbl-expand":{"created":"20200209072642825","modified":"20200323093720213","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" state=<<tempPathExpand>> text=\"show\" tag=\"td\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\">\n <$action-setfield $tiddler=<<tempTableExpand>> $index=<<currentRecord>> $value=\"show\" />\n {{$:/core/images/right-arrow}}\n </$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tempPathExpand>> text=\"show\" tag=\"td\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\">\n <$action-setfield $tiddler=<<tempTableExpand>> $index=<<currentRecord>>/>\n {{$:/core/images/down-arrow}}\n </$button>\n</$reveal>"},"$:/plugins/kookma/shiraz/templates/body/title":{"created":"20170128100357203","modified":"20200323093720218","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"title","type":"text/vnd.tiddlywiki","text":"<td>\n<$link to=<<currentRecord>>><$text text=<<currentRecord>> /></$link>\n</td>"},"$:/plugins/kookma/shiraz/templates/body/type":{"created":"20200210063953546","modified":"20200323093720227","tags":"$:/tags/Table/BodyTemplate","tbl-column-list":"type","type":"text/vnd.tiddlywiki","text":"\\define showCell() <$transclude tiddler=<<currentRecord>> field=<<currentColumn>> mode=\"inline\" />\n<td>\n<<showCell>>\n</td>\n<!-- Note that the showCell here overrides the global showCell from table-dynamic macro -->"},"$:/plugins/kookma/shiraz/templates/footer/default":{"created":"20200130171717175","modified":"20200323093720234","tags":"$:/tags/Table/FooterTemplate","type":"text/vnd.tiddlywiki","text":"<$vars idx={{{ [<currentColumn>addsuffix[/]addsuffix<footerRow>] }}}>\n<$set name=getFieldOrIndex filter=\"[<fieldOrIndex>]-index\" value=\"get\" emptyValue=\"getindex\">\n<$reveal type=\"nomatch\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$transclude tiddler=<<tempTableFooter>> index=<<idx>> mode=\"inline\" />\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableEdit>> stateIndex=\"mode\" text=\"edit\" tag=\"td\">\n<$edit-text tiddler=<<tempTableFooter>> index=<<idx>> tag=\"input\" class=\"shiraz-dtable-textbox\"/>\n</$reveal>\n</$set>\n</$vars>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-clone":{"created":"20201203155343568","modified":"20201203160215983","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td></td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-delete":{"created":"20200130174835714","modified":"20200323093720243","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<td></td>\n</$list>"},"$:/plugins/kookma/shiraz/templates/footer/tbl-expand":{"created":"20200130173518861","modified":"20200323093720250","tags":"$:/tags/Table/FooterTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<td style=\"width:28px;\"></td>"},"$:/plugins/kookma/shiraz/templates/header/default":{"created":"20170205223914688","modified":"20200323093720254","tags":"$:/tags/Table/HeaderTemplate","type":"text/vnd.tiddlywiki","text":"<$reveal type=\"nomatch\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$button setTitle=<<tempTableSort>> setIndex=\"sortIndex\" setTo=<<currentColumn>> class=\"tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"hasnegate\" $value=\"false\"/>\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><<currentColumn>></span>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tempTableSort>> stateIndex=\"sortIndex\" text=<<currentColumn>> tag=\"th\">\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[false]]\" variable=ignore><!--set negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"true\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"!\"/>\n<span style=\"text-transform: capitalize;\"><<currentColumn>></span> {{$:/core/images/down-arrow}}\n</$button>\n</$list>\n<$list filter=\"[<tempTableSort>getindex[hasnegate]match[true]]\" variable=ignore><!--remove negate for sort-->\n<$button setTitle=<<tempTableSort>> setIndex=\"hasnegate\" setTo=\"false\" class=\"tbl-sort-svg tc-btn-invisible tc-tiddlylink\" >\n<$action-setfield $tiddler=<<tempTableSort>> $index=\"negate\" $value=\"\"/>\n<span style=\"text-transform: capitalize;\"><<currentColumn>></span> {{$:/core/images/up-arrow}}\n</$button>\n</$list>\n</$reveal>\n"},"$:/plugins/kookma/shiraz/templates/header/tbl-checkbox":{"created":"20200206151157578","modified":"20200424160122428","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-checkbox","type":"text/vnd.tiddlywiki","text":"\\define chk-checkactions()\n<$list filter=\"[subfilter<inputFilter>]\" variable=\"currentRecord\">\n<$action-listops $tiddler=<<currentRecord>> $tags=\"+[append[done]]\" />\n<$action-setfield $tiddler=<<currentRecord>> status=\"complete\"/>\n<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> $value=\"color:#155724;background-color:#d4edda;\" />\n</$list>\n\\end\n\\define chk-uncheckactions()\n<$list filter=\"[subfilter<inputFilter>]\" variable=\"currentRecord\">\n<$action-listops $tiddler=<<currentRecord>> $tags=\"+[remove[done]]\" />\n<$action-setfield $tiddler=<<currentRecord>> status=\"rework\"/>\n<$action-setfield $tiddler=<<tempTableStyle>> $index=<<currentRecord>> />\n</$list>\n\\end\n\n<th style=\"width:28px;\">\n<$checkbox checkactions=<<chk-checkactions>> uncheckactions=<<chk-uncheckactions>> />\n</th>"},"$:/plugins/kookma/shiraz/templates/header/tbl-clone":{"created":"20201203155440168","modified":"20201203160241400","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-clone","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<th style=\"width:28px;text-align:center;\">\n <span>\n <$button class=\"tc-btn-invisible\" disabled=yes>\n {{$:/core/images/clone-button}}\n </$button>\n </span>\n</th>\n</$list>"},"$:/plugins/kookma/shiraz/templates/header/tbl-delete":{"created":"20170212102107998","modified":"20200323093720268","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-delete","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[<tempTableEdit>getindex[mode]match[edit]]\" variable=ignore>\n<th style=\"width:28px;text-align:center;\">\n <span>\n <$button class=\"tc-btn-invisible\">\n <$action-setfield $tiddler=\"$:/temp/tables/delete-all\" text=<<currentTable>>/>\n {{$:/core/images/delete-button}}\n </$button>\n </span>\n</th>\n</$list>"},"$:/plugins/kookma/shiraz/templates/header/tbl-expand":{"created":"20200209072944418","modified":"20200323093720276","tags":"$:/tags/Table/HeaderTemplate","tbl-column-list":"tbl-expand","type":"text/vnd.tiddlywiki","text":"<th style=\"width:28px;\">\n <$list filter=\"[<tempTableExpand>indexes[]limit[1]]\">\n <$button class=\"tc-btn-invisible\">{{$:/core/images/fold-button}}\n <$action-setfield $tiddler=<<tempTableExpand>> text=\"\"/>\n </$button>\n </$list>\n</th>"},"$:/plugins/kookma/shiraz/ui/ControlPanel/Settings":{"caption":"Shiraz","created":"20191018054657077","list-after":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20200323093720283","tags":"$:/tags/ControlPanel/SettingsTab $:/tags/MoreSideBar","type":"text/vnd.tiddlywiki","text":"These settings let you customise the behaviour of Shiraz plugin.\n\n---\n\n;Show Shiraz setting in more sidebar\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/ui/ControlPanel/Settings\" tag=\"$:/tags/MoreSideBar\"> Show setting in more sidebar</$checkbox>\n\n;Options\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/multicols/storyriver\" tag=\"$:/tags/Stylesheet\"> Multicolumn story river</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/misc/ui-buttons\" tag=\"$:/tags/Stylesheet\"> Colorful UI buttons</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/misc/tiddler-button-visibility\" tag=\"$:/tags/Stylesheet\"> Tiddler visibility on mouse hover</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/misc/edit-buttons\" tag=\"$:/tags/Stylesheet\"> Traffic lights for edit toolbar buttons</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/shiraz/styles/colorful-sidebar-tab\" tag=\"$:/tags/Stylesheet\"> Colorify sidebar tabs</$checkbox>\n\n\n\n\n"},"$:/plugins/kookma/shiraz/viewtemplates/sticky-footer":{"created":"20180907071314793","modified":"20200323125207226","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]has[sticky-footer]]\">\n<div class=\"sticky-footer\">\n{{!!sticky-footer}}\n</div>\n</$list>\n"}}}
.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
background: none;
border: none;
border-bottom: solid 1px #737373 !important;
font-weight: bold;
color: #DB4C3F !important;
}
/*Image aligning classes*/
.image-align-right{
float:right;
margin:0.5em 0 1.3em 1.4em;
max-width:100%;
}
.image-align-left{
float:left;
margin: 0.5em 1.4em 1.3em 0;
}
.image-align-center{
display:block;
margin: 0.5em auto 1.3em;
}
.image-float-none {
float: none !important;
}
{"tiddlers":{"$:/plugins/kookma/toc/history":{"title":"$:/plugins/kookma/toc/history","created":"20200220093235978","modified":"20200313203750327","tags":"","type":"text/vnd.tiddlywiki","text":"!! Revision 1.3.0\n* date:[13th Mar 2020]\n* [NEW] global variable `adminTid` is added to allow adminstration rules. If set to `reader` will hide the `switch to author mode` \n\n!! Revision 1.2.0\n* date:[11th Mar 2020]\n* [FIXED] issue in font weight of opened-item\n* [FIXED] color of navigation button removed\n* [NEW] opened entry has a left solid bar\n\n!! Revision 1.1.0\n* date:[28th Feb 2020]\n* [NEW] `toc-ui` macro\n* [NEW] outliner (drag and drop to re arrange entries)\n* [NEW] bookmarks\n* [NEW] improved documentation\n\n!! Revision 1.0.0\n* Date: [21st Feb 2020]\n* [NEW] documentation improved\n* [NEW] code polished\n* [NEW] common macros and styles mereged\n\n!! Revision 0.5.0\n* Date: [14 Feb 2020]\n* [NEW] documentation improved\n* [NEW] examples added\n* [NEW] outline numbered class is added\n\n!! Revision 0.1.0\n* Date: [23rd Jan 2020]\n* first release"},"$:/plugins/kookma/toc/license":{"title":"$:/plugins/kookma/toc/license","created":"20200220093235979","modified":"20200227232831721","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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"},"$:/plugins/kookma/toc/macros/helper":{"title":"$:/plugins/kookma/toc/macros/helper","created":"20200220082105852","modified":"20200227232831717","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define tidSelectedItem() $:/temp/toc/selected-item/$(stateTiddler)$\n\\define tidToggleState() $:/temp/toc/toggle/$(stateTiddler)$\n\n\\define tidShowMode() $:/temp/toc/show-mode/$(stateTiddler)$\n\\define tidExpandAll() $:/temp/toc/expand-all//$(stateTiddler)$\n\\define tidShowTools() $:/temp/toc/show-tools/$(stateTiddler)$\n\n\\define tidTocTemplate() $:/plugins/kookma/toc/templates/show-single-item\n\\define tidBookmarkConfig() $:/config/toc/bookmarks/$(stateTiddler)$"},"$:/plugins/kookma/toc/macros/multilevel-draggable":{"title":"$:/plugins/kookma/toc/macros/multilevel-draggable","created":"20200225205504695","modified":"20200227232831713","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define toc-item-dragdata() $:/temp/toc/dragdata\n\\define toc-item-dragdata-path() $:/temp/toc/dragdata/path\n\\define toc-item-dragstart() \n<$action-setfield $tiddler=<<toc-item-dragdata>> text=<<actionTiddler>> />\n<$action-setfield $tiddler=<<toc-item-dragdata-path>> text=<<path>> />\n\\end\n\\define toc-item-dragend() \n<$action-deletetiddler $tiddler=<<toc-item-dragdata>> />\n<$action-deletetiddler $tiddler=<<toc-item-dragdata-path>> />\n\\end\n\n\\define toc_caption()\n<$transclude field=\"caption\">\n <$view field=\"title\"/>\n</$transclude>\n\\end\n\n\\define toc-item-dragtip()\n<$wikify name=actionTiddler text={{{ [<toc-item-dragdata>get[text]] }}}><!--handles title with space in title-->\n<$vars actionTiddlerx={{{ [<toc-item-dragdata>get[text]] }}}>\n<$list filter=\"[<actionTiddler>!match<item>]\"> <!-- DON'T SHOW TIP ON SELF -->\n <div class=\"kk-toc-dragtip\">\n <nobr>drop <$tiddler tiddler=<<actionTiddler>>>''<<toc_caption>>''</$tiddler></nobr><br>\n <nobr>onto <$tiddler tiddler=<<item>> >''<<toc_caption>>''</$tiddler></nobr><br>\n <div style=\"font-size:80%; border-top:1px solid; margin-top:0.2em;\">\n NO KEY=insert before, SHIFT=insert after, CTRL=drop into\n </div>\n </div>\n</$list>\n</$vars>\n</$wikify>\n\\end\n\n\n\\define toc-item-drop()\n<$reveal default=<<actionTiddler>> type=\"nomatch\" text=<<item>>> <!-- DON'T DROP ON SELF -->\n <!-- get OLDTAG and NEWTAG, exclude special TiddlyBook tags -->\n <$vars sourcepath={{{ [<toc-item-dragdata-path>get[text]] }}}\n targetpath=<<path>> >\n <$vars oldtag= {{{ [<sourcepath>split[/]]-[<actionTiddler>]+[last[]] }}}\n newtag={{{ [<targetpath>split[/]]-[<item>]+[last[]] }}}>\n <$reveal default=<<modifier>> type=\"match\" text=\"normal\"> <!-- DROP BEFORE SIBLING -->\n <$set name=\"order\" filter=\"[<newtag>tagging[]]\">\n <$list filter=<<order>>> <$action-deletefield $field=\"list-before\"/> <$action-deletefield $field=\"list-after\"/> </$list>\n <$action-listops $tiddler=<<actionTiddler>> $field=\"tags\" $subfilter=\"-[<oldtag>] [<newtag>]\" />\n <$action-listops $tiddler=<<oldtag>> $field=\"list\" $subfilter=\"-[<actionTiddler>]\" />\n <$action-listops $tiddler=<<newtag>> $field=\"list\" $subfilter=\"[enlist<order>] -[<actionTiddler>] [<actionTiddler>] +[putbefore<item>]\" />\n </$set>\n </$reveal>\n <$reveal default=<<modifier>> type=\"match\" text=\"shift\"> <!-- DROP AFTER SIBLING -->\n <$set name=\"order\" filter=\"[<newtag>tagging[]]\">\n <$list filter=<<order>>> <$action-deletefield $field=\"list-before\"/> <$action-deletefield $field=\"list-after\"/> </$list>\n <$action-listops $tiddler=<<actionTiddler>> $field=\"tags\" $subfilter=\"-[<oldtag>] [<newtag>]\" />\n <$action-listops $tiddler=<<oldtag>> $field=\"list\" $subfilter=\"-[<actionTiddler>]\" />\n <$action-listops $tiddler=<<newtag>> $field=\"list\" $subfilter=\"[enlist<order>] -[<actionTiddler>] [<actionTiddler>] +[putafter<item>]\" />\n </$set>\n </$reveal>\n <$reveal default=<<modifier>> type=\"match\" text=\"ctrl\"> <!-- DROP AS CHILD -->\n <$set name=\"order\" filter=\"[<item>tagging[]]\">\n <$list filter=<<order>>> <$action-deletefield $field=\"list-before\"/> <$action-deletefield $field=\"list-after\"/> </$list>\n <$action-listops $tiddler=<<actionTiddler>> $field=\"tags\" $subfilter=\"-[<oldtag>] [<item>]\" />\n <$action-listops $tiddler=<<oldtag>> $field=\"list\" $subfilter=\"-[<actionTiddler>]\" />\n <$action-listops $tiddler=<<item>> $field=\"list\" $subfilter=\"[enlist<order>] -[<actionTiddler>] [<actionTiddler>]\" />\n </$set>\n </$reveal>\n </$vars>\n </$vars>\n</$reveal>\n\\end"},"$:/plugins/kookma/toc/macros/multilevel-exapndable":{"title":"$:/plugins/kookma/toc/macros/multilevel-exapndable","created":"20200129100032272","modified":"20200227232831709","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define toc-show-item-authormode(item, is-branch:no)\n<$vars item=<<__item__>> is-branch=<<__is-branch__>> >\n<$droppable actions=<<toc-item-drop>>>\n\t<div class=\"tc-droppable-placeholder kk-toc-placeholder\"></div> \n\t<$draggable tiddler=<<item>> startactions=<<toc-item-dragstart>> endactions=<<toc-item-dragend>> dragimagetype=\"blank\">\n\t{{$item$||$(tidTocTemplate)$}}\n\t</$draggable>\n\t<div class=\"tc-droppable-placeholder kk-toc-placeholder\"><<toc-item-dragtip>></div> \n</$droppable>\n</$vars>\n\\end\n\n\\define toc-show-item-readermode(item, is-branch:no)\n<$vars item=<<__item__>> is-branch=<<__is-branch__>> >\n {{$item$||$(tidTocTemplate)$}}\n</$vars>\n\\end\n\n\n\\define toggle-branch()\n<$reveal type=\"nomatch\" stateTitle=<<tidToggleState>> stateIndex=<<path>> text=\"yes\">\n <$button class=\"tc-btn-invisible\" setTitle=<<tidToggleState>> setIndex=<<path>> setTo=\"yes\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<tidToggleState>> stateIndex=<<path>> text=\"yes\">\n <$button class=\"tc-btn-invisible\" setTitle=<<tidToggleState>> setIndex=<<path>> >\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n\\end \n\n\n\\define _toc-tree-body(here, exclude, path)\n<$vars path=\"\"\"$path$/$here$\"\"\">\n<$list filter=\"\"\"[tag[$here$]] $exclude$ +[limit[1]]\"\"\" emptyMessage=\"\"\"<li style=\"padding-left:1.2em\"><$macrocall $name=<<toc-show-mode>> item=<<__here__>> /></li>\"\"\" variable=ignore>\n <li><$macrocall $name=<<toc-show-mode>> item=<<__here__>> is-branch=\"yes\"/></li>\n <$reveal type=\"match\" stateTitle=<<tidToggleState>> stateIndex=<<path>> text=\"yes\">\n <ol>\n <$list filter=\"\"\"[tag[$here$]] $exclude$\"\"\">\n <$macrocall $name=\"_toc-tree-body\" here=<<currentTiddler>> exclude=\"\"\"$exclude$ -[[$here$]]\"\"\" path=<<path>>/>\n </$list>\n </ol>\n </$reveal>\n</$list> \n</$vars>\n\\end\n\n\n\\define toc-tree(here, exclude, mode)\n<$set name=toc-show-mode value=<<__mode__>> emptyValue=\"toc-show-item-readermode\">\n<div class=\"kk-toc\" style=\"margin-top:-10px;\">\n<ol>\n<$list filter=\"\"\"[tag[$here$]] $exclude$ -[[$here$]]\"\"\">\n<$macrocall $name=\"_toc-tree-body\" here=<<currentTiddler>> exclude=\"\"\"$exclude$ -[[$here$]]\"\"\" path=\"\"\"$here$\"\"\" />\n</$list>\n</ol>\n</div>\n</$set>\n\\end\n\n\\define item-path() $(path)$/$(item)$\n\n\\define _toc-expand(here, exclude, path)\n<$list filter=\"\"\"[tag[$here$]] $exclude$ -[[$here$]]\"\"\">\n<$vars item=<<currentTiddler>> path=\"\"\"$path$\"\"\" >\n <$action-setfield $tiddler=<<tidToggleState>> $index=\"\"\"$path$\"\"\" $value=\"yes\"/>\n <$macrocall $name=\"_toc-expand\" here=<<item>> exclude=\"\"\"$exclude$ -[[$here$]]\"\"\" path=<<item-path>>/>\n</$vars>\t \n</$list>\n\\end\n\n\n\\define collapse-expand-all(here, exclude)\n<$reveal type=\"match\" stateTitle=<<tidExpandAll>> stateField=\"text\" text=\"expand-all\">\n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"collapse all\">{{$:/core/images/fold-button}}\n<$action-deletetiddler $tiddler=<<tidToggleState>> />\n<$action-setfield $tiddler=<<tidExpandAll>> text=\"collapse-all\"/>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" stateTitle=<<tidExpandAll>> stateField=\"text\" text=\"expand-all\">\n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"expand all\">{{$:/core/images/unfold-button}}\n<$macrocall $name=\"_toc-expand\" here=<<__here__>> exclude=<<__exclude__>> path=<<__here__>> />\n<$action-setfield $tiddler=<<tidExpandAll>> text=\"expand-all\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define multilevel-toc-expandable(tag:\"TableOfContents\", exclude:\"\", stateTiddler:\"multilevelState\")\n<$set name=stateTiddler value=<<__stateTiddler__>> >\n<$macrocall $name=collapse-expand-all here=<<__tag__>> exclude=<<__exclude__>> />\n<$macrocall $name=toc-tree here=<<__tag__>> exclude=<<__exclude__>> mode=\"toc-show-item-readermode\" />\n</$set>\n\\end"},"$:/plugins/kookma/toc/macros/multilevel-navigation":{"title":"$:/plugins/kookma/toc/macros/multilevel-navigation","created":"20200126065458722","modified":"20200227232831705","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define toc-list(here,exclude)\n<$list filter=\"\"\"[tag[$here$]] $exclude$ -[[$here$]]\"\"\">\n <$text text=\"[[\"/><<currentTiddler>><$text text=\"]]\"/>\n <$macrocall $name=\"toc-list\" here=<<currentTiddler>> exclude=\"\"\"$exclude$ -[[$here$]]\"\"\"/>\n</$list>\n\\end\n\n\\define toc-hierarchical-navigation(tag:\"\", class, close:\"no\")\n<$wikify name=\"all\" text=\"\"\"<$macrocall $name=\"toc-list\" here=<<__tag__>> />\"\"\">\n<$vars prev={{{ [enlist<all>before<currentTiddler>] }}} >\n<$vars next={{{ [enlist<all>after<currentTiddler>] }}} >\n<div class=\"$class$\">\n<$list filter=\"[<prev>!is[missing]]\" variable=\"prevTiddler\">\n<$button to=<<prevTiddler>> tooltip=<<prevTiddler>> class=\"tc-btn-invisible $class$\">previous\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<prevTiddler>> /> \n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n<$list filter=\"[<next>!is[missing]] [<prev>!is[missing]] +[count[]] -1 -0\" variable=ignore>|</$list>\n<$list filter=\"[<next>!is[missing]]\" variable=\"nextTiddler\">\n<$button to=<<nextTiddler>> tooltip=<<nextTiddler>> class=\"tc-btn-invisible $class$\">next\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<nextTiddler>> /> \n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n</div>\n</$vars>\n</$vars>\n</$wikify>\n\\end\n\n\n\\define multilevel-toc-navigation(tag:\"TableOfContents\", close:\"no\", class:\"\", stateTiddler:\"multilevelState\")\n<$set name=stateTiddler value=<<__stateTiddler__>> >\n<$list filter=\"[<currentTiddler>!is[system]]\">\n <div class=\"kk-toc-hideForPrint\">\n <$macrocall $name=\"toc-hierarchical-navigation\"\n tag=\"\"\"$tag$\"\"\" close=<<__close__>> class=<<__class__>> />\n </div>\n</$list>\n</$set>\n\\end"},"$:/plugins/kookma/toc/macros/multilevel-toc-all":{"title":"$:/plugins/kookma/toc/macros/multilevel-toc-all","created":"20200227180558214","modified":"20200313201450721","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define toc-all-body(here,exclude)\n<$list filter=\"\"\"[tag[$here$]] $exclude$ -[[$here$]]\"\"\">\n <li><$link/></li>\n <$list filter=\"[tag<currentTiddler>]+[limit[1]]\" variable=ignore>\n <ol style=\"padding-left:1.5em\">\n <$macrocall $name=\"toc-all-body\" here=<<currentTiddler>> exclude=\"\"\"$exclude$ -[[$here$]]\"\"\"/>\n </ol>\n</$list>\n</$list>\n\\end\n\n\\define toc-all(tag, exclude)\n<div class=\"kk-toc\">\n <ol>\n <$macrocall $name=\"toc-all-body\" here=<<__tag__>> exclude=<<__exclude__>> />\n </ol>\n</div>\n\\end"},"$:/plugins/kookma/toc/macros/multilevel-ui":{"title":"$:/plugins/kookma/toc/macros/multilevel-ui","created":"20200226221456462","modified":"20200313200405874","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define show-mode()\n<$reveal type=\"nomatch\" stateTitle=<<tidShowMode>> stateField=\"text\" text=\"toc-show-item-authormode\">\n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"switch to author mode\">{{$:/core/images/edit-button}}\n<$action-setfield $tiddler=<<tidShowMode>> text=\"toc-show-item-authormode\"/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<tidShowMode>> stateField=\"text\" text=\"toc-show-item-authormode\">\n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"switch to reader mode\">{{$:/core/images/done-button}}\n<$action-setfield $tiddler=<<tidShowMode>> text=\"toc-show-item-readermode\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define remove-all-bookmarks()\n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"remove all bookmarks\">☆\n<$list filter=\"[<tidBookmarkConfig>!is[missing]]\" variable=ignore>\n<$action-deletetiddler $tiddler=<<tidBookmarkConfig>> />\n</$list>\n</$button>\n\\end\n\n\\define toggle-display-btnTools()\n<$list filter=\"[<tidShowTools>get[text]match[show]]\"\n emptyMessage=\"\"\"<$action-setfield $tiddler=<<tidShowTools>> text=\"show\"/>\"\"\">\n<$action-setfield $tiddler=<<tidShowTools>> text=\"hide\"/>\n</$list>\n\\end\n\n\\define toc-manager-ui()\n<span class=\"kk-toc-tools-manager\"> --- \n<$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=\"toggle tools buttons\" actions=<<toggle-display-btnTools>>>\n{{$:/core/images/options-button}}\n</$button>\n<$reveal stateTitle=<<tidShowTools>> stateField=text text=\"show\" type=\"match\">\n<$macrocall $name=\"collapse-expand-all\" here=<<__tag__>> exclude=<<__exclude__>> />\n<$reveal type=nomatch stateTitle=<<adminTid>> stateField=\"text\" text=\"reader\" default=\"author\">\n<<show-mode>><!--only hide edit tools if adminTid tiddler text is reader-->\n</$reveal>\n<<remove-all-bookmarks>>\n</$reveal>\n</span>\n\\end\n\n\\define toc-ui(tag:\"TableOfContents\", exclude:\"\", stateTiddler:\"multilevelState\")\n<$set name=stateTiddler value=<<__stateTiddler__>> >\n<<toc-manager-ui>>\n<$macrocall $name=toc-tree here=<<__tag__>> exclude=<<__exclude__>> mode={{{[<tidShowMode>get[text]]}}} />\n</$set>\n\\end\n\n"},"$:/plugins/kookma/toc/macros/twolevel-expandable":{"title":"$:/plugins/kookma/toc/macros/twolevel-expandable","created":"20200129073852901","modified":"20200227232831693","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define twolevel-toc-show-single-item(item)\n<$set name=\"openItemClass\" filter=\"[<tidSelectedItem>get[text]match<__item__>]\" value=\"tc-btn-invisible kk-toc-opened-item\" emptyValue=\"tc-btn-invisible tc-tiddlylink\">\n<$button class=<<openItemClass>> style=\"outline:none;\" to=<<__item__>> dragTiddler=<<__item__>>>\n <$view tiddler=<<__item__>> field=\"caption\">\n <$view tiddler=<<__item__>> field=\"title\"></$view>\n </$view>\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<__item__>> /> \n</$button>\n</$set>\n\\end \n\n\n\\define twolevel-toc-body(here, exclude)\n<$list filter=\"\"\"[tag[$here$]] $exclude$ +[limit[1]]\"\"\" emptyMessage=\"\"\"<li class=\"kk-toc-item\" style=\"padding-left:1.2em\"><$macrocall $name=twolevel-toc-show-single-item item=<<__here__>> /></li>\"\"\" variable=ignore>\n<li class=\"kk-toc-item\">\n<$reveal type=\"nomatch\" stateTitle=<<tidToggleState>> stateIndex=<<__here__>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" style=\"outline:none;\" setTitle=<<tidToggleState>> setIndex=<<__here__>> setTo=\"yes\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<tidToggleState>> stateIndex=<<__here__>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-tiddlylink\" style=\"outline:none;\" setTitle=<<tidToggleState>> setIndex=<<__here__>> setTo=\"no\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n<$macrocall $name=twolevel-toc-show-single-item item=<<__here__>> />\n</li>\n<$reveal type=\"match\" stateTitle=<<tidToggleState>> stateIndex=<<__here__>> text=\"yes\">\n<ol>\n<$list filter=\"\"\"[tag[$here$]] $exclude$\"\"\">\n<li class=\"kk-toc-item\"><$macrocall $name=twolevel-toc-show-single-item item=<<currentTiddler>> /></li>\n</$list>\n</ol>\n</$reveal>\n\\end\n\n\n\\define twolevel-toc-tree(here, exclude)\n<div class=\"kk-toc\" style=\"margin-top:-10px\">\n<ol>\n<$list filter=\"\"\"[tag[$here$]] $exclude$\"\"\"> \n<$macrocall $name=twolevel-toc-body here=<<currentTiddler>> exclude=<<__exclude__>> />\n</$list>\n</ol>\n</div>\n\\end\n\n\n\\define twolevel-toc-expand-all(here, exclude)\n<$list filter=\"\"\"[tag[$here$]] $exclude$\"\"\"> \n<$list filter=\"[tag<currentTiddler>count[]!match[0]]\" variable=ignore>\n<$action-setfield $tiddler=<<tidToggleState>> $index=<<currentTiddler>> $value=\"yes\"/>\n</$list>\n</$list>\n\\end\n\n\n\\define twolevel-collapse-expand-all(here, exclude)\n<$reveal type=\"match\" stateTitle=<<tidExpandAll>> stateField=\"text\" text=\"expand-all\">\n<$button tooltip=\"collapse all\" class=\"tc-btn-invisible kk-toc-btn\" style=\"outline:none;\" tooltip=\"collapse all\">{{$:/core/images/fold-button}}\n<$action-deletetiddler $tiddler=<<tidToggleState>> />\n<$action-setfield $tiddler=<<tidExpandAll>> text=\"collapse-all\"/>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" stateTitle=<<tidExpandAll>> stateField=\"text\" text=\"expand-all\">\n<$button tooltip=\"expand all\" class=\"tc-btn-invisible kk-toc-btn\" style=\"outline:none;\">{{$:/core/images/unfold-button}}\n<$macrocall $name=\"twolevel-toc-expand-all\" here=<<__here__>> exclude=<<__exclude__>> />\n<$action-setfield $tiddler=<<tidExpandAll>> text=\"expand-all\"/>\n</$button>\n</$reveal>\n\\end\n\n\n\\define twolevel-toc-expandable(tag:\"Contents\", exclude:\"\", stateTiddler:\"twolevelState\")\n<$set name=stateTiddler value=<<__stateTiddler__>> >\n<$macrocall $name=twolevel-collapse-expand-all here=<<__tag__>> exclude=<<__exclude__>> />\n<$macrocall $name=twolevel-toc-tree here=<<__tag__>> exclude=<<__exclude__>> />\n</$set>\n\\end"},"$:/plugins/kookma/toc/macros/twolevel-navigation":{"title":"$:/plugins/kookma/toc/macros/twolevel-navigation","created":"20200220082243485","modified":"20200227232831689","tags":"$:/tags/Macro/Toc","type":"text/vnd.tiddlywiki","text":"\\define twolevel-toc-list(here, exclude)\n<$list filter=\"\"\"[tag[$here$]] $exclude$\"\"\"> \n<$text text=\"[[\"/><<currentTiddler>><$text text=\"]]\"/>\n <$list filter=\"\"\"[tag<currentTiddler>] $exclude$\"\"\">\n <$text text=\"[[\"/><<currentTiddler>><$text text=\"]]\"/>\n </$list>\n</$list>\n\\end\n\n\\define twolevel-toc-hierarchical-navigation(tag:\"\", class, close:\"no\")\n<$wikify name=\"all\" text=\"\"\"<$macrocall $name=\"twolevel-toc-list\" here=<<__tag__>> />\"\"\">\n<$vars prev={{{ [enlist<all>before<currentTiddler>] }}} >\n<$vars next={{{ [enlist<all>after<currentTiddler>] }}} >\n<div class=\"$class$\">\n<$list filter=\"[<prev>!is[missing]]\" variable=\"prevTiddler\">\n<$button to=<<prevTiddler>> tooltip=<<prevTiddler>> class=\"tc-btn-invisible $class$\">previous\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<prevTiddler>> /> \n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n<$list filter=\"[<next>!is[missing]] [<prev>!is[missing]] +[count[]] -1 -0\" variable=ignore>|</$list>\n<$list filter=\"[<next>!is[missing]]\" variable=\"nextTiddler\">\n<$button to=<<nextTiddler>> tooltip=<<nextTiddler>> class=\"tc-btn-invisible $class$\">next\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<nextTiddler>> /> \n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n</div>\n</$vars>\n</$vars>\n</$wikify>\n\\end\n\n\\define twolevel-toc-navigation(tag:\"Contents\", close:\"no\", class:\"\", stateTiddler:\"twolevelState\")\n<$set name=stateTiddler value=<<__stateTiddler__>> >\n<$list filter=\"[<currentTiddler>!is[system]]\">\n <div class=\"kk-twolevel-toc-hideForPrint\">\n <$macrocall $name=twolevel-toc-hierarchical-navigation \n tag=\"\"\"$tag$\"\"\" close=<<__close__>> class=<<__class__>> />\n </div>\n</$list>\n</$set>\n\\end"},"$:/plugins/kookma/toc/readme":{"title":"$:/plugins/kookma/toc/readme","created":"20200220093235979","modified":"20200227232831684","tags":"","type":"text/vnd.tiddlywiki","text":"TOC plugin contains several macros, stylesheets and templates to create table of contents and navigator buttons. In contrast to Tiddlywiki core macros, the TOC plugin has many extra features including\n\n* non recursive two level toc\n* hierarchical navigation\n* exclude feature to exclude a branch or specific entries\n* track and highlight the TOC entry opened from table of contents or by navigation buttons\n\nLike core toc macro, TOC plugin supports also the recursive multi level table of contents, but here, it also support hierarchical navigation."},"$:/plugins/kookma/toc/styles/hierarchical-navigation":{"title":"$:/plugins/kookma/toc/styles/hierarchical-navigation","created":"20200214171655760","modified":"20200311070950926","tags":"$:/tags/Stylesheet","type":"text/css","text":".kk-toc-navigation{\n font-weight: 600;\n}\n\n@media print {\n .kk-toc-hideForPrint{display:none;}\n}\n "},"$:/plugins/kookma/toc/styles/main":{"title":"$:/plugins/kookma/toc/styles/main","created":"20200129072515692","modified":"20200311072141280","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* these styles are used to customize the TOC tree and ui */\n/* toc tree lists */\n.kk-toc ol {\n list-style-type: none;\n padding-left:0;\n}\n.kk-toc ol ol{\n list-style-type: none;\n padding-left:2em;\n}\n\n/* bold first level entry and normal weight for other levels */\n.kk-toc li .tc-tiddlylink{font-weight: bold;}\n.kk-toc ol ol .tc-tiddlylink{font-weight:normal;}\n\n\n.kk-toc-item { text-align:left; white-space:nowrap; } /* prevent wrapping long entries*/\n.kk-toc-item img { height:1em; width:1em; }\n.kk-toc-item svg { height:1em; width:1em;}\n\n/* More tools button fade-in */\n.kk-toc-item .kk-toc-tools { opacity:0.0; }\n.kk-toc-item:hover .kk-toc-tools { opacity:0.5; }\n.kk-toc-item:hover .kk-toc-tools:hover { opacity:1.0; }\n\n/* bookmark button fade-in*/\n.kk-toc-item .kk-bookmark { opacity:0.0; }\n.kk-toc-item:hover .kk-bookmark { opacity:0.5; }\n.kk-toc-item:hover .kk-bookmark:hover { opacity:1.0; }\n.kk-toc-item .kk-bookmark.show { opacity:1.0 !important; }\n\n/* drag and drop elements */\n.kk-toc-placeholder{ position:relative; border:0 !important; border-bottom:1px dotted blue !important; }\n.kk-toc-dragtip {\n position:absolute; z-index:1; right:0.5em; top:0.5em; padding:0.25em 0.5em;\n border:1px solid lightgray; box-shadow: 0.3em 0.3em 0.5em rgba(0,0,0,0.3);\n background:white; text-align:center; font-size:80%; line-height:100%;\n}\n\n\n/* set color of links when toc is used in a sidebar tab*/\n.tc-sidebar-lists .kk-toc-item .tc-tiddlylink{color:#999999}\n.tc-sidebar-lists .kk-toc-item svg { height:1em; width:1em; fill: #acacac;}\n\n/* item when are visited NOT in sidebar*/\n/*.kk-toc li .tc-tiddlylink{color:black;} selected or clicked item */\n.kk-toc-opened-item{ \n\tpadding:0;\n\tpadding-left:5px; \n\tborder-radius: unset;\n\tborder-left-width:2px; \n\tborder-left-style:solid;}\n\n/* ui buttons on sidebar */\n.kk-toc button {outline:none;}\n.kk-toc-btn {outline:none;}\n.tc-sidebar-lists .kk-toc-btn svg { fill: #acacac;}\n.tc-sidebar-lists .kk-toc-btn { color: #acacac;}\n\n\n\n\n/* manager buttons */\n.kk-toc-tools-manager { opacity:0.5; }\n.kk-toc-tools-manager:hover { opacity:1.0; }"},"$:/plugins/kookma/toc/templates/bookmark":{"title":"$:/plugins/kookma/toc/templates/bookmark","created":"20191202151012761","creator":"EricShulman","modified":"20200227232832187","modifier":"EricShulman","type":"text/vnd.tiddlywiki","text":"\\define bkm-is-bookmark() $(tidBookmarkConfig)$##$(currentTiddler)$\n\\define bkm-emptystar() ☆\n\\define bkm-filledstar() ★\n\\define bkm-tip-addbkm() add '$(tiptext)$' to Bookmarks\n\\define bkm-tip-rembkm() remove '$(tiptext)$' from Bookmarks\n\n<!-- ADD/REMOVE ITEM FROM BOOKMARKS -->\n<$set name=\"tiptext\" filter=\"[<currentTiddler>has[caption]]\" value={{!!caption}} emptyValue={{!!title}}>\n<$reveal state=<<bkm-is-bookmark>> type=\"match\" text=\"\">\n <$button class=\"tc-btn-invisible\" tooltip=<<bkm-tip-addbkm>>>\n <$action-setfield $tiddler=<<tidBookmarkConfig>> $index=<<currentTiddler>> $value=<<now>>/>\n <span class=\"kk-bookmark\"><<bkm-emptystar>></span>\n </$button>\n</$reveal>\n<$reveal state=<<bkm-is-bookmark>> type=\"nomatch\" text=\"\">\n <$button class=\"tc-btn-invisible kk-toc-btn\" tooltip=<<bkm-tip-rembkm>>>\n <$action-setfield $tiddler=<<tidBookmarkConfig>> $index=<<currentTiddler>>/> <!-- DELETEINDEX -->\n <span class=\"kk-bookmark.show\"><<bkm-filledstar>></span>\n </$button></$reveal>\n</$set>"},"$:/plugins/kookma/toc/templates/more-actions":{"title":"$:/plugins/kookma/toc/templates/more-actions","created":"20200221121537095","modified":"20200227232832183","type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"$:/core/ui/Buttons/new-here $:/core/ui/Buttons/new-journal-here $:/core/ui/Buttons/clone $:/core/ui/Buttons/open-window\" variable=\"listItem\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"},"$:/plugins/kookma/toc/templates/show-single-item":{"title":"$:/plugins/kookma/toc/templates/show-single-item","created":"20200225213226563","modified":"20200313200933258","type":"text/vnd.tiddlywiki","text":"\\define toc-show-menu()\n<!-- SHOW AUTHOR TOOLS AND BOOKMARK STAR -->\n<span class=\"kk-toc-tools\"> {{||$:/plugins/kookma/toc/templates/more-actions}} </span>\n{{||$:/plugins/kookma/toc/templates/bookmark}}\n\\end\n\n\\define show-single-item()\n<$set name=\"openItemClass\" filter=\"[<tidSelectedItem>get[text]match<item>]\" value=\"tc-btn-invisible tc-tiddlylink kk-toc-opened-item\" emptyValue=\"tc-btn-invisible tc-tiddlylink\">\n<!--show the toggle branch button if the item is a branch -->\n<$list filter=\"[<is-branch>match[yes]]\" variable=ignore><<toggle-branch>></$list>\n<$button class=<<openItemClass>> style=\"outline:none;\" to=<<item>> dragTiddler=<<item>>>\n <$tiddler tiddler=<<item>>><<toc_caption>></$tiddler>\n<$action-setfield $tiddler=<<tidSelectedItem>> text=<<item>> /> \n</$button>\n</$set>\n\\end \n\n<$reveal default=<<toc-show-mode>> type=\"match\" text=\"toc-show-item-authormode\" >\n<div class=\"kk-toc-item\" title=\"drag to rearrange items\">\n <<show-single-item>>\n <span style=\"float:right;margin-left:0.5em;\"> <<toc-show-menu>> </span>\n <div style=\"clear:both;\"></div>\n</div>\n</$reveal>\n<$reveal default=<<toc-show-mode>> type=\"nomatch\" text=\"toc-show-item-authormode\" >\n<div class=\"kk-toc-item\" title={{!!title}}>\n <<show-single-item>>\n<!--1. comment to deactivate bookmarks in reader mode-->\n <span style=\"float:right;margin-left:0.5em;\">\n {{||$:/plugins/kookma/toc/templates/bookmark}}\n </span>\n <div style=\"clear:both;\"></div>\n<!--1. end -->\n</div>\n</$reveal>\n\n"}}}
{"tiddlers":{"$:/plugins/kookma/todolist/history":{"created":"20200331053532911","modified":"20200405054217219","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-???/#ChangeLog\n\n* ''1.2.1'' -- 2020.04.05 -- minor issue in drag and drop fixed\n* ''1.2.0'' -- 2020.04.03 -- new features, item reording using drag and drop\n* ''1.1.0'' -- 2020.03.31 -- bugs fixed, moved to new Thirdflow development platform\n* ''1.0.0'' -- 2019.07.22 -- first stable release\n"},"$:/plugins/kookma/todolist/images/archive.svg":{"created":"20190716095419117","modified":"20200331065952093","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-file-archive tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 384 512\"><path d=\"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"/></svg>"},"$:/plugins/kookma/todolist/images/bug.svg":{"created":"20190714051837328","modified":"20200331065952099","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-bug tc-image-button\" width=\"1em\" height=\"1em\" viewBox=\"0 0 512 512\"><path d=\"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"/></svg>"},"$:/plugins/kookma/todolist/images/bullhorn":{"caption":"bullhorn (Solid)","created":"20190721150354198","modified":"20200331065952107","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-bullhorn tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 576 512\"><path d=\"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"/></svg>"},"$:/plugins/kookma/todolist/images/lightbulb":{"caption":"lightbulb (Regular)","created":"20190721150413950","modified":"20200331065952116","tags":"$:/tags/Image [[Font Awesome 5]] Regular","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-lightbulb tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 352 512\"><path d=\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"/></svg>"},"$:/plugins/kookma/todolist/images/list-alt.svg":{"created":"20190716095433587","modified":"20200331065952123","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-list-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 512 512\"><path d=\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"/></svg>"},"$:/plugins/kookma/todolist/images/share-alt":{"caption":"share-alt (Solid)","created":"20190721150321438","modified":"20200331065952131","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-share-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"/></svg>"},"$:/plugins/kookma/todolist/images/times.svg":{"created":"20190716033811299","modified":"20200331065952137","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-times tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 352 512\"><path d=\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"/></svg>"},"$:/plugins/kookma/todolist/images/wrench.svg":{"created":"20190714052925874","modified":"20200331065952142","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-wrench tc-image-button\" width=\"1em\" height=\"1em\" viewBox=\"0 0 512 512\"><path d=\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"/></svg>"},"$:/plugins/kookma/todolist/license":{"created":"20200331053532912","modified":"20200331055909558","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2019-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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<<<"},"$:/plugins/kookma/todolist/macros/add-remove-list-item":{"created":"20190718081952856","modified":"20200402154453857","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-remove-item-from-list(targetTiddler, item)\n<$action-listops $tiddler=<<__targetTiddler__>> $field=\"list\" $subfilter=\"+[remove[$item$]]\"/>\n\\end\n\n\\define todolist-add-item-to-list(targetTiddler, item)\n<$action-listops $tiddler=<<__targetTiddler__>> $field=\"list\" $subfilter=\"[[$item$]]+[putfirst[]]\"/>\n\\end\n"},"$:/plugins/kookma/todolist/macros/add-task":{"created":"20190715170540482","modified":"20200402122702989","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-input-task()\n<$keyboard key=\"escape\" actions=<<todolist-cancel-action>> >\n<$keyboard key=\"enter\" actions=<<todolist-add-task-action>> >\n<$edit-text \n tiddler=<<stateTiddler>> \n index=\"itemtext\" \n tag=\"input\"\n class=\"kk-todolist-input-textbox\"\n placeholder=\"add new item\"\n default=\"\" minHeight=\"1em\" focus=\"yes\"\n />\n</$keyboard> \n</$keyboard> \n\\end\n \n\\define todolist-add-task()\n<$button class=\"tc-btn-invisible\" tooltip=\"Add new item\">\n\t{{$:/core/images/new-button}}\n\t<<todolist-add-task-action>>\n</$button>\n\\end\n\n\\define todolist-add-task-action()\n <$list filter=\"[<stateTiddler>getindex[itemtext]!is[blank]]\" variable=ignor>\n\t<$set name=item value=<<now \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\">> >\n\t<$action-setfield \n\t $tiddler=<<taskTiddler>>\n\t $index=<<item>>\n\t $value={{{ [<stateTiddler>getindex[itemtext]] }}}\n\t/>\n\t<$action-setfield $tiddler=<<statusTiddler>> $index=<<item>> $value=\"undone\"\t/>\n\t<$action-setfield $tiddler=<<priorityTiddler>> $index=<<item>> $value=\"none\"\t/>\n <$macrocall $name=\"todolist-add-item-to-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n\t</$set>\n\t<$action-setfield $tiddler=<<stateTiddler>> $index=\"itemtext\" $value=\"\"/>\n\t</$list>\n\\end\n\n\\define todolist-cancel-action()\n <$action-setfield $tiddler=<<stateTiddler>> $index=\"itemtext\" $value=\"\"/>\n\\end"},"$:/plugins/kookma/todolist/macros/archive-operations":{"created":"20190719141644069","modified":"20200402120458856","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-list-archived-items(nameSpace:\"\")\n<$vars\n archiveTiddler=\"\"\"$nameSpace$/archive\"\"\"\n priorityTiddler=\"\"\"$nameSpace$/priority\"\"\"\n>\n<$list filter=\"[<archiveTiddler>indexes[]!sort[]]\" variable=\"item\">\n<div class=\"kk-todolist-row\">\n <div class=\"kk-todolist-delete\"><<todolist-delete-item>></div>\n\t<div class=\"kk-todolist-priority\"><<todolist-show-priority-level>></div>\n <div class=\"kk-todolist-desc\">\n\t<span class=\"kk-todolist-date\">\n\t<$view tiddler=<<item>> field=\"title\" format=\"date\" template=\"mmm 0DD, YYYY 0hh:0mm\"/></span>\n\t<$transclude tiddler=<<archiveTiddler>> index=<<item>>/>\n\t</div>\n</div>\n</$list>\n</$vars>\n\\end\n\n\\define todolist-show-priority-level()\n<$button class=\"tc-btn-invisible\" tooltip=\"Prority of archived items cannot be changed\">\n<$macrocall $name=\"disp-priority-badge\" color={{{[<priorityTiddler>getindex<item>]}}} />\n</$button>\n\\end\n\n\\define todolist-delete-item()\n<$button class=\"tc-btn-invisible\">\n{{$:/plugins/kookma/todolist/images/times.svg}}\n<$action-setfield $tiddler=<<archiveTiddler>> $index=<<item>> />\n<$action-setfield $tiddler=<<priorityTiddler>> $index=<<item>> />\n</$button>\n\\end\n\n\\define todolist-empty-archived-tiddler(nameSpace)\n<$vars\n archiveTiddler=\"\"\"$nameSpace$/archive\"\"\"\n priorityTiddler=\"\"\"$nameSpace$/priority\"\"\"\n>\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Empty archive\"> {{$:/core/images/delete-button}} Delete archive\n<$list filter=\"[<archiveTiddler>indexes[]!sort[]]\" variable=\"item\">\n <$action-setfield $tiddler=<<archiveTiddler>> $index=<<item>> />\n <$action-setfield $tiddler=<<priorityTiddler>> $index=<<item>> />\n</$list>\n</$button>\n</$vars>\n\\end\t "},"$:/plugins/kookma/todolist/macros/bulk-operation":{"created":"20190716083959795","modified":"20200403122124607","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-all-tasks-unfinished()\n<span style=\"font-size:smaller\">\n<$list filter=\"[<taskTiddler>indexes[]limit[1]]\" emptyMessage=\"You're all done\" variable=ignore>\n<$count filter=\"[<taskTiddler>indexes[]]\"/> ITEMS\n</$list>\n</span>\n\\end\n\n\\define todolist-mark-all-button()\n<$reveal type=\"nomatch\" stateTitle=<<stateTiddler>> stateIndex=\"markall\" text=\"yes\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Mark all items as done\" setTitle=<<stateTiddler>> setIndex=\"markall\" setTo=\"yes\">\n{{$:/core/images/save-button}}\n<<tdl-done-all>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"markall\" text=\"yes\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Mark all items as undone\" setTitle=<<stateTiddler>> setIndex=\"markall\" setTo=\"no\">\n{{$:/core/images/refresh-button}}\n<<tdl-undone-all>>\n</$button>\n</$reveal>\n\\end\n\n\\define tdl-done-all()\n<$list filter=\"[<taskTiddler>indexes[]]\" variable=\"item\">\n<$action-setfield \n$tiddler=<<doneTiddler>>\n$index=<<item>>\n$value={{{ [<taskTiddler>getindex<item>] }}}\n/>\n<$action-setfield \n$tiddler=<<statusTiddler>>\n$index=<<item>>\n$value=\"done\"\n/>\n<$macrocall $name=\"todolist-remove-item-from-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n<$action-setfield $tiddler=<<taskTiddler>> $index=<<item>> />\n</$list>\n\\end\n\n\\define tdl-undone-all()\n<$list filter=\"[<doneTiddler>indexes[]]\" variable=\"item\">\n<$action-setfield \n$tiddler=<<taskTiddler>>\n$index=<<item>>\n$value={{{ [<doneTiddler>getindex<item>] }}}\n/>\n<$action-setfield \n$tiddler=<<statusTiddler>>\n$index=<<item>>\n$value=\"undone\"\n/>\n<$macrocall $name=\"todolist-add-item-to-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n<$action-setfield $tiddler=<<doneTiddler>> $index=<<item>> />\n</$list>\n\\end\n\n\n\\define todolist-archive-completed-items()\n<$button class=\"tc-btn-invisible\" tooltip=\"Archive done items\">\n{{$:/plugins/kookma/todolist/images/archive.svg}}\n<$list filter=\"[<doneTiddler>indexes[]]\" variable=\"item\">\n<$action-setfield \n$tiddler=<<archiveTiddler>>\n$index=<<item>>\n$value={{{ [<doneTiddler>getindex<item>] }}}\n/>\n<$action-setfield $tiddler=<<statusTiddler>> $index=<<item>> />\n<$action-setfield $tiddler=<<doneTiddler>> $index=<<item>> />\n<$action-setfield $tiddler=<<stateTiddler>> $index=\"markall\" $value=\"no\"/>\n</$list>\n</$button>\n\\end\n\n\\define todolist-display-archived-items()\n<$button class=\"tc-btn-invisible\" tooltip=\"Display archived items\"> {{$:/plugins/kookma/todolist/images/list-alt.svg}}\n\n<$action-setfield \n$tiddler=\"$:/plugins/kookma/todolist/template/archive-list\"\ntitle=<<displayArchivedTiddler>> /> \n<$action-setfield $tiddler=<<displayArchivedTiddler>>\n$field=\"td-namespace\" $value=<<nameSpace>> />\n\n<$action-navigate $to=<<displayArchivedTiddler>> $scroll=\"yes\"/>\n</$button>\n\\end\t"},"$:/plugins/kookma/todolist/macros/category":{"created":"20190714040123984","modified":"20200331184650454","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define high(text) \n<span style=\"padding-left:3px;color:#cd5360;\">$text$</span>\n\\end\n\n\\define normal(text) \n<span style=\"color:#286da8;\">$text$</span>\n\\end\n\n\\define low(text) \n<span style=\"color:#b37d4e;\">$text$</span>\n\\end\n\n\\define fixme(text)\n<span class=\"kk-todolist-category-c1\">{{$:/plugins/kookma/todolist/images/wrench.svg}} $text$</span>\n\\end\n\n\\define bug(text)\n<span class=\"kk-todolist-category-c1\">{{$:/plugins/kookma/todolist/images/bug.svg}} $text$</span>\n\\end\n\n\\define horn(text)\n<span class=\"kk-todolist-category-c2\">{{$:/plugins/kookma/todolist/images/bullhorn}} $text$</span>\n\\end\n\n\\define tip(text)\n<span class=\"kk-todolist-category-c2\">{{$:/plugins/kookma/todolist/images/lightbulb}} $text$</span>\n\\end\n\n\\define share(text)\n<span class=\"kk-todolist-category-c2\">{{$:/plugins/kookma/todolist/images/share-alt}} $text$</span>\n\\end"},"$:/plugins/kookma/todolist/macros/confirm-delete":{"created":"20190721041511697","modified":"20200331172725431","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-confirm-delete(\nbtnLabel:\"Delete these tiddlers\", \nconfirmMessage:\"Are you sure you wish to delete\", \nstateTiddler:\"\", \ncountFilter:\"\", \nactionMacro:\"\")\n\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Empty archive\" popup=<<qualify \"\"\"$stateTiddler$\"\"\">> > {{$:/core/images/delete-button}} $btnLabel$\n</$button>\n\n<$reveal state=<<qualify \"\"\"$stateTiddler$\"\"\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=<<__countFilter__>> />\"\"\">\n$confirmMessage$ <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Empty archive\"\nactions=<<__actionMacro__>> > \n{{$:/core/images/delete-button}} Delete all?\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\\end"},"$:/plugins/kookma/todolist/macros/delete-task":{"created":"20190715170610146","modified":"20200402124703285","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-delete-task(dataTiddler)\n<$button class=\"tc-btn-invisible\">\n{{$:/plugins/kookma/todolist/images/times.svg}}\n<$action-setfield $tiddler=<<__dataTiddler__>> $index=<<item>> />\n<$action-setfield $tiddler=<<statusTiddler>> $index=<<item>> />\n<$action-setfield $tiddler=<<priorityTiddler>> $index=<<item>> />\n<!-- delete item from list field of task tiddler if it is an undone task! -->\n<$reveal type=\"match\" text=<<__dataTiddler__>> default=<<taskTiddler>> >\n<$macrocall $name=\"todolist-remove-item-from-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n</$reveal>\n</$button>\n\\end\n"},"$:/plugins/kookma/todolist/macros/done-task":{"created":"20190715170633034","modified":"20200403094412340","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-done-task()\n<$checkbox \n tiddler=<<statusTiddler>> \n index=<<item>> \n checked=\"done\" \n unchecked=\"undone\" \n default=\"undone\"\n actions=<<tdl-done-actions>>\n>\n</$checkbox>\n\\end\n\n\\define tdl-done-actions()\n <$action-setfield \n $tiddler=<<doneTiddler>>\n $index=<<item>>\n $value={{{ [<taskTiddler>getindex<item>] }}}\n />\n<$macrocall $name=\"todolist-remove-item-from-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n<$action-setfield $tiddler=<<taskTiddler>> $index=<<item>> />\n\\end"},"$:/plugins/kookma/todolist/macros/draggable-list":{"created":"20190718070116654","modified":"20200405054450296","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define draggable-list(targetTiddler)\n\\whitespace trim\n<$vars targetTiddler=<<__targetTiddler__>> >\n<span class=\"kk-todolist-draggable-list\">\n<$list filter=\"[list<targetTiddler>]\" variable=\"item\">\n<$droppable actions=<<droppable-actions>>>\n <div class=\"tc-droppable-placeholder kk-todolist-placeholder\"></div> \n <$draggable tiddler=<<item>> >\n <$transclude tiddler=\"$:/plugins/kookma/todolist/template/undone-task\" field=\"text\"/>\n </$draggable>\n</$droppable>\n</$list>\n<<disp-empty-placeholder>>\n</span>\n</$vars>\n\\end\n\n\\define droppable-actions()\n<!-- the $list checks to prvents drag items not listed in this Todolist -->\n<$list filter=\"[<targetTiddler>contains<actionTiddler>]\" variable=ignore>\n<$action-listops $tiddler=<<targetTiddler>> $field=\"list\" $subfilter=\"+[insertbefore:item<actionTiddler>]\"/>\n</$list>\n\\end\n\n\\define xxdisp-empty-placeholder()\n<$tiddler tiddler=\"\"><!-- an empty place holder-->\n<$droppable actions=<<droppable-actions>> tag=\"div\">\n<div style=\"height:0.5em;\"/>\n<div class=\"tc-droppable-placeholder kk-todolist-placeholder\"> </div>\n</$droppable>\n</$tiddler>\n\\end\n\n\n\\define disp-empty-placeholder()\n<$tiddler tiddler=\"\">\n<$droppable actions=<<droppable-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder kk-todolist-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n\\end"},"$:/plugins/kookma/todolist/macros/explore-internalTids":{"created":"20190719143452217","modified":"20200401214333824","type":"text/vnd.tiddlywiki","text":"\\define todolist-fullbaseName() $(td-basePath)$$(baseName)$\n\n\\define todolist-explore-data-tiddlers()\n\n><b>Number of internal tiddlers found: <$count filter=\"[all[tiddlers+shadows]prefix<td-basePath>]\" /></b><br>\n><$macrocall $name=\"todolist-delete-all-tids\" filter=<<dataTids>> />\n\n<h2> Todo lists</h2>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<td-basePath>splitbefore[/]removesuffix[/]sort[]]\" variable=\"baseName\">\n\n<$set name=bsFilter value=\"[prefix<todolist-fullbaseName>sort[]]\">\n<h3><<todolist-delete-all-tids-baseName>> <<baseName>></h3>\n<blockquote>\n<$list filter=<<bsFilter>> variable=\"internalTid\" emptyMessage=\"//No internal data tiddlers is found!//\">\n<div class=\"kk-todolist-row\">\n<div class=\"kk-todolist-delete\"><$macrocall $name=\"todolist-delete-single-iternalTid\" /></div>\n<div class=\"kk-todolist-desc\"><$link to=<<internalTid>>><$view tiddler=<<internalTid>> field=\"title\"/></$link></div>\n</div>\n</$list>\n</blockquote>\n</$set>\n\n</$list>\n\n\\end\n\n\n\\define todolist-delete-single-iternalTid()\n<$button class=\"tc-btn-invisible tc-tiddlylink\">\n\t{{$:/plugins/kookma/todolist/images/times.svg}}\n\t<$action-deletetiddler $tiddler=<<internalTid>> />\n</$button>\n\\end\n\n\\define todolist-delete-all-tids-baseName()\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Delete all data tiddlers in this Todo list?\"> {{$:/core/images/delete-button}}\n <$action-deletetiddler $filter=<<bsFilter>> />\n</$button>\n\\end\n\n\\define todolist-delete-all-tids()\n<!-- uses confirm delete macro to notify user when delete all internal tiddlers -->\n<$macrocall $name=\"todolist-confirm-delete\" \nbtnLabel=\"Delete all interal tiddlers?\"\nstateTiddler=\"temp\"\ncountFilter=\"[all[tiddlers+shadows]prefix<td-basePath>]\"\nactionMacro=<<action-empty-archive>>\n/>\n\\end\n\\define action-empty-archive()\n<$action-deletetiddler $filter=\"[all[tiddlers+shadows]prefix<td-basePath>]\" />\n\\end\t \n"},"$:/plugins/kookma/todolist/macros/nondraggable-list":{"created":"20200403105715811","modified":"20200403105734826","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define disp-list-in-edit-mode()\n<$list filter=\"[list<taskTiddler>]\" variable=\"item\">\n <$transclude tiddler=\"$:/plugins/kookma/todolist/template/undone-task\" field=\"text\"/>\n</$list>\n\\end"},"$:/plugins/kookma/todolist/macros/options":{"created":"20190716075847899","modified":"20200403120956166","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-options-button()\n<$reveal type=\"nomatch\" stateTitle=<<stateTiddler>> stateIndex=\"option\" text=\"yes\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Show options\" setTitle=<<stateTiddler>> setIndex=\"option\" setTo=\"yes\">\n{{$:/core/images/options-button}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"option\" text=\"yes\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Hide options\" setTitle=<<stateTiddler>> setIndex=\"option\" setTo=\"no\">\n{{$:/core/images/options-button}}\n</$button>\n</$reveal>\n\\end\n\n\\define todolist-options-content()\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"option\" text=\"yes\">\n<<todolist-mark-all-button>> <<todolist-archive-completed-items>> <<todolist-display-archived-items>> <<todolist-toggle-timestamp>> <<todolist-all-tasks-unfinished>>\n</$reveal>\n\\end\n\n"},"$:/plugins/kookma/todolist/macros/priority":{"created":"20190718170817837","modified":"20200402105643019","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define categoryColors()\n<$list filter=\"[[$:/plugins/kookma/todolist/settings/colors]indexes[]sortby{$:/plugins/kookma/todolist/settings/colors!!list}]\" variable=color>\n<<color>>\n</$list>\n\\end\n\n\\define todolist-set-priority()\n<$wikify name=colors text=<<categoryColors>> >\n<$macrocall $name=\"todolist-cycle-color\" arraySet=<<colors>> stateTiddler=<<priorityTiddler>> stateIndex=<<item>> />\n</$wikify>\n\\end\n\n\\define disp-priority-badge(color)\n<svg width=\"12\" height=\"12\" >\n<circle cx=\"6\" cy=\"6\" r=\"5\" stroke=\"grey\" fill=\"$color$\" />\n</svg>\n\\end\n\n\n\\define todolist-cycle-color(arraySet:\"\", stateTiddler:\"\", stateIndex:\"txt\")\n<$vars array=<<__arraySet__>> currentColor={{{[<__stateTiddler__>getindex<__stateIndex__>]}}} >\n<$button class=\"tc-btn-invisible\" tooltip=\"Set priority level\">\n <$macrocall $name=\"disp-priority-badge\" color=<<currentColor>> />\n <$set\n filter='[enlist<array>after<currentColor>]'\n name=NextItem\n emptyValue={{{[enlist<array>first[]]}}}\n >\n <$action-setfield\n $tiddler=<<__stateTiddler__>>\n $index=<<__stateIndex__>>\n $value=<<NextItem>> />\n </$set>\n </$button>\n</$vars>\t\n\\end"},"$:/plugins/kookma/todolist/macros/show-task":{"created":"20190715170652239","modified":"20200403054629783","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-show-task()\n<$keyboard key=\"enter\" actions=<<tdl-kbd-action>> >\n<$list filter=\"[<stateTiddler>getindex[editview]match[edit]]\" \n emptyMessage=\"\"\"<$macrocall $name=\"view-task\" dataTiddler=<<taskTiddler>> />\"\"\" >\n<$edit-text \n tiddler=<<taskTiddler>>\n index=<<item>>\n tag=input\n class=\"kk-todolist-input-textbox\"\n />\n</$list>\n</$keyboard>\n\\end\n\n\\define tdl-kbd-action()\n<$action-setfield $tiddler=<<stateTiddler>> $index=\"editview\" $value=\"view\" />\n\\end\n\n\\define view-task(dataTiddler)\n<$transclude tiddler=<<__dataTiddler__>> index=<<item>>/>\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"timestamp\" text=\"show\">\n<span class=\"kk-todolist-date\"> <$view tiddler=<<item>> field=\"title\" format=\"date\" template=\"mmm 0DD, YYYY 0hh:0mm\"/></span>\n</$reveal>\n\\end"},"$:/plugins/kookma/todolist/macros/toggle-edit-button":{"created":"20190715171733677","modified":"20200331172725488","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-toggle-edit-button()\n<$reveal type=\"nomatch\" stateTitle=<<stateTiddler>> stateIndex=\"editview\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<stateTiddler>> setIndex=\"editview\" setTo=\"edit\" tooltip=\"Edit items\">\n{{$:/core/images/edit-button}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"editview\" text=\"edit\">\n<$button class=\"tc-btn-invisible\" setTitle=<<stateTiddler>> setIndex=\"editview\" setTo=\"view\" tooltip=\"Save items\">\n{{$:/core/images/done-button}}\n</$button>\n</$reveal>\n\\end"},"$:/plugins/kookma/todolist/macros/toggle-timestamp":{"created":"20190722034557852","modified":"20200331172725496","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-toggle-timestamp()\n<$reveal type=\"nomatch\" stateTitle=<<stateTiddler>> stateIndex=\"timestamp\" text=\"show\">\n<$button class=\"tc-btn-invisible\" setTitle=<<stateTiddler>> setIndex=\"timestamp\" setTo=\"show\" tooltip=\"Show timestamp\">\n{{$:/core/images/timestamp-on}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<stateTiddler>> stateIndex=\"timestamp\" text=\"show\">\n<$button class=\"tc-btn-invisible\" setTitle=<<stateTiddler>> setIndex=\"timestamp\" setTo=\"hide\" tooltip=\"Hide timestamp\">\n{{$:/core/images/timestamp-off}}\n</$button>\n</$reveal>\n\\end"},"$:/plugins/kookma/todolist/macros/ui":{"created":"20190715170739310","modified":"20200405061046677","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define td-basePath() $:/todolist/data/\n\n\\define todolist-ui(caption:\"A plain todolist\", width:\"100%\" base:\"base\")\n\\import [all[tiddlers+shadows]tag[$:/tags/Todolist/Macro]!has[draft.of]]\n\\whitespace trim\n\n<$vars \n nameSpace= \"$(td-basePath)$$base$\"\n stateTiddler= \"$(td-basePath)$$base$/state\"\n taskTiddler= \"$(td-basePath)$$base$/tasks\"\n doneTiddler= \"$(td-basePath)$$base$/done\"\n statusTiddler= \"$(td-basePath)$$base$/status\"\n priorityTiddler=\"$(td-basePath)$$base$/priority\"\n archiveTiddler= \"$(td-basePath)$$base$/archive\"\t\n displayArchivedTiddler=\"Todolist - Archived Items - $base$\"\n>\t\n<div class=\"kk-todolist-ui\" style=\"max-width:$width$;\">\n\n$caption$\n\n<div class=\"kk-todolist-header-ui\">\n<div class=\"kk-todolist-header-textbox\"><<todolist-input-task>></div>\n<div><<todolist-add-task>></div>\n<div><<todolist-toggle-edit-button>></div>\n<div><<todolist-options-button>></div>\n</div>\n<<todolist-options-content>>\n<!--\n<$list filter=\"[<taskTiddler>indexes[]!sort[]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/kookma/todolist/template/undone-task\" field=\"text\" />\n</$list>\n-->\n\n<!-- display undone items -->\n<$list filter=\"[<stateTiddler>getindex[editview]match[edit]]\" variable=ignore \n emptyMessage=\"\"\"<$macrocall $name=\"draggable-list\" targetTiddler=<<taskTiddler>> />\"\"\">\n\t <<disp-list-in-edit-mode>>\n</$list>\n\n<div style=\"height:0.2em\"/>\n\n<!-- display done items -->\n<$list filter=\"[<doneTiddler>indexes[]!nsort[]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/kookma/todolist/template/done-task\" field=\"text\" />\n</$list>\n</div>\n</$vars>\n\\end\n"},"$:/plugins/kookma/todolist/macros/undone-task":{"created":"20190715190405259","modified":"20200403094425309","tags":"$:/tags/Todolist/Macro","type":"text/vnd.tiddlywiki","text":"\\define todolist-undone-task()\n<$checkbox \ntiddler=<<statusTiddler>> \nindex=<<item>> \nchecked=\"done\" \nunchecked=\"undone\" \ndefault=\"undone\"\nuncheckactions=<<tdl-undone-actions>>\n>\n</$checkbox>\n\\end\n\n\\define tdl-undone-actions()\n<$action-setfield \n$tiddler=<<taskTiddler>>\n$index=<<item>>\n$value={{{ [<doneTiddler>getindex<item>] }}}\n/><\n<$macrocall $name=\"todolist-add-item-to-list\" targetTiddler=<<taskTiddler>> item=<<item>> />\n<$action-setfield $tiddler=<<doneTiddler>> $index=<<item>> />\n\\end\n"},"$:/plugins/kookma/todolist/readme":{"created":"20200331053532913","modified":"20200403133906816","tags":"","type":"text/vnd.tiddlywiki","text":"; Todolist\nTodolist is a small pure wikitext plugin, contain all of the tasks that you need to complete on a given day. Todolist gives you the confidence that everything’s organized and accounted for, so you can make progress on the things that are important to you.\n\nYou can also make to-dos for major tasks like a project, a work assignment or an overall goal. Therefore, the overall purpose of creating a to-do is to remember tasks and prioritize them.\n\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Todolist/\n* Code: https://github.com/kookma/TW-Todolist\n"},"$:/plugins/kookma/todolist/settings/colors":{"text":"limegreen:50\nyellow: 70\norange: 80\nred: 100\npink: 90\nturquoise:40\ndodgerblue:30\nnone:10","type":"application/x-tiddler-dictionary","created":"20200402092725933","list":"limegreen yellow orange red pink turquoise dodgerblue none","modified":"20200403064915453","tags":""},"$:/plugins/kookma/todolist/settings/internals":{"caption":"Todolist","created":"20190716171918410","modified":"20200401221146952","tags":"$:/tags/ControlPanel/SettingsTab","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/todolist/macros/explore-internalTids\n\n!! Explore Todolist internal tiddlers\n<<<\nTodolist plugin uses some internal data tiddlers to create and manage todo list. Each todolist uses several data tiddlers. It is recommended after deleting a todolist, delete all data tiddlers which are not in use.\n<<<\n\n<<todolist-explore-data-tiddlers>>\n\n\n"},"$:/plugins/kookma/todolist/styles/drag-drop":{"text":"/* drag and drop elements */\n.kk-todolist-placeholder { \n\tposition:relative; \n\theight:0; \t\n\tborder:0 !important; \n\tborder-bottom:1px dotted grey !important; \n}\n\n.kk-todolist-draggable-list .tc-draggable { cursor: default !important; }\n","created":"20200402192425421","modified":"20200403112252654","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/todolist/styles/main.css":{"text":"/* Todolist main ui */\n.kk-todolist-ui{\n\tmin-width:320px; /* controls the minimum width of whole ui */\n}\n\n.kk-todolist-ui svg{\n\tfill:#aaaaaa;\n}\n\n\n.kk-todolist-ui button:hover svg {\n\tfill: #888888; \n}\n\n\n/* Todolist header ui */\n\n.kk-todolist-header-ui{\n\tdisplay: flex;\n\twidth: 100%;\n}\n.kk-todolist-header-ui > div{\n\tmargin: 2px;\n\tflex-grow:0;\t\n}\n.kk-todolist-header-ui .kk-todolist-header-textbox{\n\tflex-grow:1;\t\n}\n\n/* Todolist items ui */\n.kk-todolist-row{\n\tdisplay: flex;\t\n\twidth: 100%; /* for larg screen width> 960px*/\n\tflex-wrap: wrap;\n}\n\n.kk-todolist-row .kk-todolist-done,\n.kk-todolist-row .kk-todolist-priority,\n.kk-todolist-row .kk-todolist-delete {\n\tflex-grow:0; width:15px;\n}\n\n.kk-todolist-row .kk-todolist-desc{\n\tflex-grow:1; \n\twidth: calc(100% - 50px); \n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n.kk-todolist-row .kk-todolist-delete {\n\topacity: 0.3;\n}\n\n.kk-todolist-row .kk-todolist-priority{\n\tmargin-right:5px;\n}\n.kk-todolist-row:hover {\n\tbackground-color: #f6f6f6;\n}\n.kk-todolist-row:hover .kk-todolist-delete {\n\topacity: 1;\n}","created":"20190716040116074","modified":"20200401084920801","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/todolist/styles/other.css":{"text":"/* completed item */\n\n.kk-todolist-item-done {\n\ttext-decoration: red line-through;\n\tfont-style: italic;\n}\n\n/* inputbox for add-task */\n.kk-todolist-input-textbox {\n\twidth:100%;\n\tpadding-left: 5px;\n\tborder: none;\n\tborder-bottom: 1px dotted grey;\n}\n\n.kk-todolist-input-textbox:focus {\n\toutline: none;\n\tborder-bottom: 1px solid #5778d8;\n\tbackground: transparent;\n}\n\n/* item timestamp */\n.kk-todolist-date {\n\tfont-size:0.8em;\n\tcolor:#c0c0c0;\n}\n\n/* Item categories */\n.kk-todolist-category-c1,\n.kk-todolist-category-c2 {\n\tpadding-right:3px;\n}\n\n.kk-todolist-category-c1 svg, \n.kk-todolist-category-c2 svg {\n\topacity:0.70;\n\tvertical-align: middle;\n\twidth: 1em;\n\theight: 1em;\n}\n\n.kk-todolist-category-c1 svg{\n\tfill:#8B0000;\n}\n\n.kk-todolist-category-c2 svg{\n\tfill:#006400;\n}","created":"20190715171940902","modified":"20200401084923039","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/todolist/template/archive-list":{"created":"20190716084402662","modified":"20200401214548455","tags":"","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/todolist/macros/archive-operations\n\\import $:/plugins/kookma/todolist/macros/priority\n\n!! Archive of completed (done) items\n\n<$macrocall $name=\"todolist-empty-archived-tiddler\" nameSpace={{!!td-namespace}} />\n\n> <$macrocall $name=\"todolist-list-archived-items\" nameSpace={{!!td-namespace}} />\n\n"},"$:/plugins/kookma/todolist/template/done-task":{"created":"20200402102928801","modified":"20200402103156109","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"kk-todolist-row\">\n <div class=\"kk-todolist-done\"><<todolist-undone-task>></div>\n <div class=\"kk-todolist-desc\"><span class=\"kk-todolist-item-done\">\n\t<$macrocall $name=\"view-task\" dataTiddler=<<doneTiddler>> /></span></div>\n\t<div class=\"kk-todolist-priority\"><<todolist-set-priority>></div>\n <div class=\"kk-todolist-delete\"><$macrocall $name=\"todolist-delete-task\" dataTiddler=<<doneTiddler>>/></div>\n</div>\n"},"$:/plugins/kookma/todolist/template/undone-task":{"created":"20200402103007259","modified":"20200402103542808","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"kk-todolist-row\">\n\t<div class=\"kk-todolist-done\"><<todolist-done-task>></div>\n\t<div class=\"kk-todolist-desc\"><<todolist-show-task>></div>\n\t<div class=\"kk-todolist-priority\"><<todolist-set-priority>></div>\n\t<div class=\"kk-todolist-delete\"><$macrocall $name=\"todolist-delete-task\" dataTiddler=<<taskTiddler>>/></div>\n</div>"}}}
{"tiddlers":{"$:/plugins/kookma/trashbin/history":{"created":"20200325121105806","modified":"20200410061128665","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Trashbin/#ChangeLog\n\n* ''1.2.2'' -- 2020.04.10 -- bug fix in remove draft tiddlers to trashbin\n* ''1.2.1'' -- 2020.03.30 -- bug fix and doc improvement and UI fade correction\n* ''1.1.2'' -- 2020.03.28 -- stable release with new features and bug fixes\n* ''0.1.0'' -- 2019.02.12 -- mature public release\n"},"$:/plugins/kookma/trashbin/images/recycle":{"created":"20190723043410550","modified":"20200325115955820","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-recycle tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 512 512\"><path d=\"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"/></svg>"},"$:/plugins/kookma/trashbin/images/sort-alpha-down":{"caption":"sort-alpha-down","created":"20200327153959154","modified":"20200327185043770","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-sort-alpha-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"/></svg>"},"$:/plugins/kookma/trashbin/images/sort-alpha-up":{"caption":"sort-alpha-up (Solid)","created":"20200327155639132","modified":"20200327162316327","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-sort-alpha-up-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"/></svg>"},"$:/plugins/kookma/trashbin/images/sort-numeric-down":{"caption":"sort-numeric-down","created":"20200327153929866","modified":"20200327185052283","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-sort-numeric-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"/></svg>"},"$:/plugins/kookma/trashbin/images/sort-numeric-up":{"caption":"sort-numeric-up (Solid)","created":"20200327155701392","modified":"20200327162214617","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-sort-numeric-up-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"/></svg>"},"$:/plugins/kookma/trashbin/images/times.svg":{"created":"20190716033811299","modified":"20200325115955828","tags":"","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-times tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 352 512\"><path d=\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"/></svg>"},"$:/plugins/kookma/trashbin/images/trash-alt":{"caption":"trash-alt","created":"20190710102513532","modified":"20200327173632794","type":"text/vnd.tiddlywiki","text":"<svg class=\"tc-image-trash-alt tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 448 512\"><path d=\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"/></svg>"},"$:/plugins/kookma/trashbin/license":{"created":"20200325121133911","modified":"20200325121209299","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2019-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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<<<"},"$:/plugins/kookma/trashbin/macros/bulk-operation":{"created":"20190723115934925","modified":"20200327170128541","type":"text/vnd.tiddlywiki","text":"\\define delete-trashed-tiddlers()\n<$list filter=\"[tag[$:/tags/trashbin]search:title[$:/trashbin/]]\" variable=\"Item\">\n<$action-deletetiddler $tiddler=<<Item>> />\n</$list>\n\\end\n\n\\define trashbin-empty-bin()\n<$macrocall $name=\"trashbin-confirm-delete\"\nbtnLabel=\"Empty Trashbin\"\ncountFilter=\"[tag[$:/tags/trashbin]search:title[$:/trashbin/]]\"\nactionMacro=<<delete-trashed-tiddlers>>\nstateTiddler=\"$:/state/trashbin/emptyTrashBin\"\n/>\n\\end\n\n\\define restore-all()\n<$button tooltip=\"Restore all\" class=\"tc-btn-invisible tc-tiddlylink\"> {{$:/plugins/kookma/trashbin/images/recycle}}\n<$list filter=\"[tag[$:/tags/trashbin]search:title[$:/trashbin/]sort[]]\" variable=\"Item\">\n<$macrocall $name=\"restore\" tiddler=<<Item>> />\n</$list>\n</$button>\n\\end"},"$:/plugins/kookma/trashbin/macros/confirm-empty":{"created":"20190723114948285","modified":"20200327170306636","type":"text/vnd.tiddlywiki","text":"\\define trashbin-confirm-delete(\nbtnLabel:\"Delete these tiddlers\", \nconfirmMessage:\"Are you sure you wish to delete\", \nstateTiddler:\"\", \ncountFilter:\"\", \nactionMacro:\"\")\n\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Empty Trashbin\" popup=<<qualify \"\"\"$stateTiddler$\"\"\">> > {{$:/core/images/delete-button}}\n</$button>\n\n<$reveal state=<<qualify \"\"\"$stateTiddler$\"\"\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=<<__countFilter__>> />\"\"\">\n$confirmMessage$ <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible tc-tiddlylink\" tooltip=\"Empty archive\"\nactions=<<__actionMacro__>> > \n{{$:/core/images/delete-button}} Delete all?\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\\end"},"$:/plugins/kookma/trashbin/macros/move-to-trashbin":{"created":"20190710071039480","modified":"20200410061108463","type":"text/vnd.tiddlywiki","text":"\\define trashTidName() <<unusedtitle baseName:\"$(trashTiddler)$\">>\n\n\\define move-to-trashbin(tiddler)\n<$list filter=\"[<__tiddler__>has[title]]\" variable=ignore> <!-- ignore missing tiddlers -->\n<$vars trashTiddler={{{ [<__tiddler__>addprefix[$:/trashbin/]] }}}>\n<$wikify name=\"trashTid\" text=<<trashTidName>> >\n<$list filter=\"[<__tiddler__>fields[]]\" variable=\"fieldName\">\n<$action-setfield \n $tiddler=<<trashTid>>\n $index=<<fieldName>>\n $value={{{[<__tiddler__>get<fieldName>] }}}\n/>\n</$list>\n<$action-setfield $tiddler=<<trashTid>> tags=\"$:/tags/trashbin\"/>\n</$wikify>\n<$action-sendmessage $message=\"tm-close-tiddler\" $param=<<__tiddler__>> />\n<$list filter=\"[<__tiddler__>has[draft.of]]\" variable=ignore emptyMessage=\"\"\"<$action-deletetiddler $tiddler=<<__tiddler__>> />\"\"\">\n<$action-deletetiddler $tiddler={{{[<__tiddler__>get[draft.of]]}}} /><!--delete main tiddler-->\n<$action-deletetiddler $tiddler=<<__tiddler__>> /> <!--delete draft tiddler-->\n</$list>\n</$vars>\n</$list>\n\\end\n"},"$:/plugins/kookma/trashbin/macros/preview-option":{"created":"20200327203154169","modified":"20200327205705076","tags":"","type":"text/vnd.tiddlywiki","text":"\\define viewTemplateTid() $:/plugins/kookma/trashbin/viewtemplate/trash-item\n\\define styleTid() $:/plugins/kookma/trashbin/styles/show-trashed\n\n\\define preview-option()\n<$reveal type=\"nomatch\" stateTitle=<<viewTemplateTid>> stateField=\"tags\" text=\"$:/tags/ViewTemplate\" default=\"\">\n<$button setTitle=<<viewTemplateTid>> setField=\"tags\" setTo=\"$:/tags/ViewTemplate\" class=\"tc-btn-invisible\" tooltip=\"Show trash item preview\"> \n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=<<styleTid>> tags=\"$:/tags/Stylesheet\"/> \n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<viewTemplateTid>> stateField=\"tags\" text=\"$:/tags/ViewTemplate\" default=\"\">\n<$button setTitle=<<viewTemplateTid>> setField=\"tags\" setTo=\"\" class=\"tc-btn-invisible\" tooltip=\"Hide trash item preview\"> \n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=<<styleTid>> tags=\"\"/> \n</$button>\n</$reveal>\n\\end\n\n<<preview-option>>"},"$:/plugins/kookma/trashbin/macros/restore":{"created":"20190710105439064","modified":"20200327170445307","type":"text/vnd.tiddlywiki","text":"\\define open-restoredTid-in-story-river()\n<$action-listops $tiddler=\"$:/StoryList\" $field='list' $subfilter=\"\"\"[[$(restoredTid)$]]+[putfirst[]]\"\"\"/>\n\\end\n\n\\define restoreTid(tiddler)\n<$list filter=\"[<__tiddler__>indexes[]] -title\" variable=\"fieldName\">\n <$action-setfield \n $tiddler=<<restoredTid>> \n\t $field=<<fieldName>> \n\t $value={{{ [<__tiddler__>getindex<fieldName>] }}} \n />\n</$list>\n<$action-sendmessage $message=\"tm-close-tiddler\" $param=<<__tiddler__>> />\n<$action-deletetiddler $tiddler=<<__tiddler__>> />\n<$macrocall $name=\"open-restoredTid-in-story-river\" />\n\\end\n\n\n\\define restore(tiddler)\n<$vars \n restoredTid={{{ [<__tiddler__>getindex[title]] }}} \n isExisted= {{{ [<__tiddler__>getindex[title]has[title]] }}} \n >\n<$reveal type=\"nomatch\" text=<<isExisted>> default=<<restoredTid>> >\n<$macrocall $name=\"restoreTid\" tiddler=<<__tiddler__>> />\n</$reveal>\n\n<$reveal type=\"match\" text=<<isExisted>> default=<<restoredTid>> >\n <$action-sendmessage $message=\"tm-notify\" \n $param=\"$:/plugins/kookma/trashbin/restore-notification\" \n\t restoredTiddler=<<restoredTid>>\n\t/>\n</$reveal>\n\n</$vars>\n\\end"},"$:/plugins/kookma/trashbin/macros/sort":{"created":"20200327141043944","modified":"20200327201042137","type":"text/vnd.tiddlywiki","text":"\\define tempSortTid() $:/keepstate/trashbin/sort\n\n\\define show-icons()\n<$vars state-alpha-down=\"sortan[title]\" state-alpha-up=\"!sortan[title]\"\n state-numeric-down=\"sort[modified]\" state-numeric-up=\"!sort[modified]\" >\n<$list filter=\"[<tempSortTid>get[text]match<state-alpha-down>]\">\n{{$:/plugins/kookma/trashbin/images/sort-alpha-down}}\n</$list>\n<$list filter=\"[<tempSortTid>get[text]match<state-alpha-up>]\">\n{{$:/plugins/kookma/trashbin/images/sort-alpha-up}}\n</$list>\n<$list filter=\"[<tempSortTid>get[text]match<state-numeric-down>]\">\n{{$:/plugins/kookma/trashbin/images/sort-numeric-down}}\n</$list>\n<$list filter=\"[<tempSortTid>get[text]match<state-numeric-up>]\">\n{{$:/plugins/kookma/trashbin/images/sort-numeric-up}}\n</$list>\n<$list filter=\"[<tempSortTid>!has[title]]\">\nClick to sort\n</$list>\n</$vars>\n\\end\n\n\n\\define trashbin-cycle(arraySet:\"\", stateTiddler:\"\", stateField:\"text\")\n<$vars array=<<__arraySet__>> currentItem={{{[<__stateTiddler__>get<__stateField__>]}}} \n tooltip={{{[<tempSortTid>get[text]]}}} >\n <$button tooltip=<<tooltip>> class=\"tc-btn-invisible\"> <<show-icons>>\n <$set\n filter='[enlist<array>after<currentItem>]'\n name=NextItem\n emptyValue={{{[enlist<array>first[]]}}}\n >\n <$action-setfield\n $tiddler=<<__stateTiddler__>>\n $field=<<__stateField__>>\n $value=<<NextItem>> />\n </$set>\n </$button>\n</$vars>\t\n\\end\n\n\\define sort-by()\n<$macrocall $name=\"trashbin-cycle\" \n arraySet=\"sortan[title] !sortan[title] sort[modified] !sort[modified]\" \n stateTiddler=<<tempSortTid>> />\n\\end"},"$:/plugins/kookma/trashbin/readme":{"created":"20200325121220142","modified":"20200325171839260","tags":"","type":"text/vnd.tiddlywiki","text":"; Trashbin\nThe concept behind Trashbin plugin is to have a simple mechanism to move deleted tiddlers to Trashbin and be able to restore them later if required.\n\n; Code and demo\nFor learning plugin features, mechanism, terminology, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Trashbin/\n* Code: https://github.com/kookma/TW-Trashbin\n"},"$:/plugins/kookma/trashbin/restore-notification":{"created":"20190711130503628","modified":"20200325115955867","tags":"","type":"text/vnd.tiddlywiki","text":"{{$:/plugins/kookma/trashbin/images/recycle}} \n\n''Warning''<br>\nThe target tiddler <b><$text text=<<restoredTiddler>>/></b> already exists.<br>\nIt cannot be overwritten!"},"$:/plugins/kookma/trashbin/sidebar-tab":{"caption":"Trashbin","created":"20190613131234955","modified":"20200330082257793","tags":"$:/tags/SideBar","type":"text/vnd.tiddlywiki","text":"{{$:/plugins/kookma/trashbin/ui/sidebar}}"},"$:/plugins/kookma/trashbin/styles/main.css":{"text":"/* trashbin main ui */\n.kk-trashbin-ui{\n\tmin-width:320px; /* controls the minimum width of whole ui */\n}\n\n.kk-trahbin-ui svg{\n fill:#aaaaaa;\n}\n\n.kk-trahbin-ui .kk-trahbin-ui-controls svg{\n width:1.2em;\n height:1.2em;\t\n}\n\n\n/* trashbin items list ui */\n.kk-trashbin-row{\n\tdisplay: flex;\t\n\twidth: 95%;\n\tflex-wrap: wrap;\n}\n\n\n.kk-trashbin-row .kk-trashbin-delete,\n.kk-trashbin-row .kk-trashbin-restore {\n\tflex-grow:0; width:20px;\n\tmargin-left:5px;\n}\n\n.kk-trashbin-row .kk-trashbin-link{\n\tflex-grow:1; \n\twidth: calc(100% - 50px); \n\tpadding-right: 10px;\n}\n\n.kk-trashbin-row:hover { background-color: #f6f6f6; }\n\n/* UI button fade-in*/\n.kk-trahbin-ui button:hover svg { fill: #000000; }\n.kk-trahbin-ui .kk-trashbin-ui-btn { opacity:0.5; }\n.kk-trahbin-ui .kk-trashbin-ui-btn:hover { opacity:1.0; }","created":"20190716040116074","modified":"20200330103433380","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/trashbin/styles/show-trashed":{"created":"20200327100826751","modified":"20200330123344137","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"[data-tags~=\"$:/tags/trashbin\"] .tc-tiddler-body,\n[data-tags~=\"$:/tags/trashbin\"] .tc-tags-wrapper\n{\n display:none;\n}\n"},"$:/plugins/kookma/trashbin/styles/toolbar-buttons":{"text":"html body.tc-body .tc-tiddler-controls .tc-image-trash-alt {stroke: white;fill:#660000;}\nhtml body.tc-body .tc-tiddler-controls .tc-image-recycle {stroke: white;fill:#138808;}","created":"20200329162056060","modified":"20200406191049638","type":"text/css"},"$:/plugins/kookma/trashbin/styles/trashed-item":{"text":"/* set style for trashed tiddlers */\n[data-tags ~=\"$:/tags/trashbin\"] { border: 1px solid crimson; }","created":"20200329161931981","modified":"20200329162224824","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/trashbin/templates/body":{"created":"20200329133632160","modified":"20200329155701084","tags":"","type":"text/vnd.tiddlywiki","text":"\\define show-plain() \n<div class=\"tc-tiddler-body\">\n<pre><$transclude index=\"text\" mode=\"block\"/></pre>\n</div>\n\\end\n\n\\define show() \n<div class=\"tc-tiddler-body\">\n<$transclude index=\"text\" mode=\"block\"/>\n</div>\n\\end\n\n\n<!-- json tiddlers including plugins -->\n<$list filter=\"[<currentTiddler>getindex[type]match[application/json]]\" variable=ignore>\n<$list filter=\"[<currentTiddler>getindex[plugin-type]]\" variable=ignore emptyMessage=<<show-plain>> >\n<div class=\"tc-binary-warning\">\nThis tiddler contains plugin!\n</div>\n</$list>\n</$list>\n<!-- text tiddlers including: css, plain, dictionary -->\n<$list filter=\"[<currentTiddler>getindex[type]match[application/x-tiddler-dictionary]]\n[<currentTiddler>getindex[type]match[text/plain]]\n[<currentTiddler>getindex[type]match[text/css]]\" variable=ignore>\n<<show-plain>>\n</$list>\n\n\n<!-- other tiddlers like image, vnd.tiddlywiki -->\n<$list filter=\"[<currentTiddler>getindex[type]]\" variable=type emptyMessage=<<show>> >\n<$list filter=\"[<type>match[text/vnd.tiddlywiki]]\" variable=ignore>\n<$transclude index=\"text\" mode=\"block\"/>\n</$list>\n<$list filter=\"[<type>search:title[image]]\" variable=ignore>\n<div class=\"tc-binary-warning\">\nThis tiddler contains image data!\n</div>\n</$list>\n</$list>"},"$:/plugins/kookma/trashbin/templates/subtitle":{"text":"<div class=\"tc-subtitle\">\n<$link to={{##modifier}}>\n<$view index=\"modifier\"/>\n</$link> <$view index=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>","created":"20200327082525694","modified":"20200327083014840","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/trashbin/templates/tags":{"created":"20200327084049139","modified":"20200327120921036","tags":"","type":"text/vnd.tiddlywiki","text":"<div class=\"tc-tags-wrapper\">\n<$vars tagsIndex={{{[<currentTiddler>getindex[tags]]}}}>\n<$list filter=\"[enlist<tagsIndex>]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/>\n</$vars>\n</div>"},"$:/plugins/kookma/trashbin/templates/title":{"created":"20200327085342927","modified":"20200327195225059","tags":"","type":"text/vnd.tiddlywiki","text":"\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{##color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{##icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$set>\n<$list filter=\"[{##title}removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[{##title}!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div></div>"},"$:/plugins/kookma/trashbin/ui/sidebar":{"caption":"Trashbin","created":"20200330082034854","modified":"20200330123325985","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/trashbin/macros/sort\n\\import $:/plugins/kookma/trashbin/macros/restore\n\\import $:/plugins/kookma/trashbin/macros/confirm-empty\n\\import $:/plugins/kookma/trashbin/macros/bulk-operation\n\\import $:/plugins/kookma/trashbin/macros/preview-option\n\n\\define show-link()\n<$link to=<<currentTiddler>> ><$text text={{{ [<currentTiddler>removeprefix[$:/trashbin/]] }}} /> </$link> <span style=\"float:right;padding-right:10px;font-size:smaller;\" title=\"Date Deleted\"><$view field=\"modified\" format=\"date\" template=\"0MM/0DD/YYYY 0hh:0mm AM\"/></span>\n\\end\n\n\\define recycle-button()\n{{||$:/plugins/kookma/trashbin/ui/toolbar-button}}\n\\end\n\n\\define delete-button()\n<$button class=\"tc-btn-invisible\" tooltip=\"Delete permanently\">\n{{$:/plugins/kookma/trashbin/images/times.svg}}\n<$list filter=\"[list[$:/StoryList]] +[field:title<currentTiddler>>]\" variable=ignore>\n<$action-sendmessage $message=\"tm-close-tiddler\" $param=<<<currentTiddler>> />\n</$list>\n<$action-deletetiddler $tiddler=<<currentTiddler>> />\n</$button>\n\\end\n\n\\define trashbin-siderbar-ui()\n<div class=\"kk-trahbin-ui\">\n\n<span class=\"kk-trahbin-ui-controls kk-trashbin-ui-btn\">\n<<trashbin-empty-bin>> <<restore-all>> <<sort-by>> <<preview-option>>\n\n</span> \n<span style=\"font-size:smaller\">\n<$list filter='[tag[$:/tags/trashbin]prefix[$:/trashbin/]limit[1]]' variable=null emptyMessage=\"Trash bin is empty\">\n<$count filter='[tag[$:/tags/trashbin]]'/> items in Trashbin\n</$list>\n</span>\n\n<!-- create the trash items list -->\n<$list filter=\"[tag[$:/tags/trashbin]prefix[$:/trashbin/]$(sortType)$]\">\n<div class=\"kk-trashbin-row\">\n\t<div class=\"kk-trashbin-link\"><<show-link>></div>\n\t<div class=\"kk-trashbin-recycle kk-trashbin-ui-btn\"><<recycle-button>></div>\n\t<div class=\"kk-trashbin-delete kk-trashbin-ui-btn\"><<delete-button>></div>\n</div>\n</$list>\n\n</div>\n\\end\n\n<$vars sortType={{{[<tempSortTid>get[text]] ~[[]] }}}>\n<<trashbin-siderbar-ui>>\n</$vars>"},"$:/plugins/kookma/trashbin/ui/toolbar-button":{"caption":"{{$:/plugins/kookma/trashbin/images/trash-alt}} {{$:/language/Buttons/Trashbin/Caption/Move}}","created":"20190623140751496","creator":"Mohammad","description":"<$list filter=\"[all[current]tag[$:/tags/trashbin]prefix[$:/trashbin/]]\" emptyMessage={{$:/language/Buttons/Trashbin/Hint/Move}}>{{$:/language/Buttons/Trashbin/Hint/Recycle}}</$list>","list-after":"$:/core/ui/Buttons/delete","modified":"20200328140420576","modifier":"Mohammad","tags":"$:/tags/ViewToolbar $:/tags/EditToolbar","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/trashbin/macros/move-to-trashbin\n\\import $:/plugins/kookma/trashbin/macros/restore\n\\whitespace trim\n\n<!-- move to trashbin -->\n<$list filter=\"[all[current]!tag[$:/tags/trashbin]!prefix[$:/trashbin/]]\">\n<$button \n aria-label={{$:/language/Buttons/Trashbin/Caption/Move}}\n tooltip={{$:/language/Buttons/Trashbin/Hint/Move}} class=<<tv-config-toolbar-class>> >\n <$macrocall $name=\"move-to-trashbin\" tiddler=<<currentTiddler>> />\t\n <$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n {{$:/plugins/kookma/trashbin/images/trash-alt}}\n </$list>\n <$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n <span class=\"tc-btn-text\">\n\t\t <$text text={{$:/language/Buttons/Trashbin/Caption/Move}}/>\n </span>\n </$list>\n</$button>\n</$list>\n\n<!-- recycle from trashbin -->\n<$list filter=\"[all[current]tag[$:/tags/trashbin]prefix[$:/trashbin/]]\">\n<$button\n aria-label={{$:/language/Buttons/Trashbin/Caption/Recycle}}\n tooltip={{$:/language/Buttons/Trashbin/Hint/Recycle}} class=<<tv-config-toolbar-class>> >\n <$macrocall $name=\"restore\" tiddler=<<currentTiddler>> />\n <$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n {{$:/plugins/kookma/trashbin/images/recycle}}\n </$list>\n <$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n <span class=\"tc-btn-text\"> \n <$text text={{$:/language/Buttons/Trashbin/Caption/Recycle}}/>\n </span>\n </$list>\n</$button>\n</$list>"},"$:/plugins/kookma/trashbin/viewtemplate/trash-item":{"created":"20200327081227209","modified":"20200330123344172","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[all[current]tag[$:/tags/trashbin]prefix[$:/trashbin/]]\">\n<div class=\"tc-tiddler-frame kk-trashbin-viewtrashitem\">\n{{||$:/plugins/kookma/trashbin/templates/title}}\n{{||$:/plugins/kookma/trashbin/templates/subtitle}}\n{{||$:/plugins/kookma/trashbin/templates/tags}}\n{{||$:/plugins/kookma/trashbin/templates/body}}\n</div>\n<div class=\"kk-trashbin-viewtrashitem\" style=\"margin-left:40px;\">\n<h2>Tiddler fields</h2>\n<$list filter=\"[<currentTiddler>indexes[]] -title -tags -text -created -modified\" variable=idx>\n<label style=\"display:inline-block;width:15ch;font-weight:bold;\"><<idx>>:</label> <$transclude index=<<idx>>/><br/>\n</$list>\n</div>\n\n<style>\n.kk-trashbin-viewtrashitem {\n margin-top:15px;\n }\n.kk-trashbin-viewtrashitem .tc-tags-wrapper {\n display:inline;\n}\n.kk-trashbin-viewtrashitem .tc-tiddler-body{\n display:block;\n}\n</style>"},"$:/language/Buttons/Trashbin/Caption/Move":{"created":"20200325181608623","modified":"20200327192039481","tags":"","type":"text/vnd.tiddlywiki","text":"trashbin"},"$:/language/Buttons/Trashbin/Caption/Recycle":{"created":"20200327192303891","modified":"20200327192322259","tags":"","type":"text/vnd.tiddlywiki","text":"recycle"},"$:/language/Buttons/Trashbin/Hint/Move":{"created":"20200325181718189","modified":"20200327192226676","tags":"","type":"text/vnd.tiddlywiki","text":"Move this tiddler to Trashbin"},"$:/language/Buttons/Trashbin/Hint/Recycle":{"created":"20200327192150450","modified":"20200327194553902","tags":"","type":"text/vnd.tiddlywiki","text":"Recycle this tiddler from Trashbin"}}}
{"tiddlers":{"$:/plugins/kookma/utility/author/author-tools":{"created":"20190912082519234","key":"((author-tools))","modified":"20200316130508400","tags":"$:/tags/KeyboardShortcut","type":"text/vnd.tiddlywiki","text":"<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/kookma/utility/author/modal\" />"},"$:/plugins/kookma/utility/author/exclude-items":{"caption":"Exclude items","created":"20200313124437263","modified":"20200322115519909","tags":"","type":"text/vnd.tiddlywiki","text":"\\define showItems(label, filter)\n<h2>$label$</h2>\n<$list filter=<<__filter__>> >\n<$checkbox tiddler=<<currentTiddler>> tag=\"excluded\"/> <$link to=<<currentTiddler>>><$text text=<<currentTiddler>>/></$link><br>\n</$list>\n\\end\n<!-- drag and drop -->\n<<showItems label:\"Disable drag and drop\" filter:\"[title[$:/config/DragAndDrop/Enable]]\">>\n<!-- side bar items -->\n<<showItems label:\"Sidebar tabs\" filter:\"[all[shadows+tiddlers]]+[tag[$:/tags/SideBar]]\">>\n<!-- viewtoolbar items -->\n<<showItems label:\"View toolbars\" filter:\"[all[shadows+tiddlers]prefix[$:/config/ViewToolbarButtons/Visibility]]\">>\n<!-- Page controls -->\n<<showItems label:\"Page controls\" filter:\"[all[shadows+tiddlers]prefix[$:/config/PageControlButtons/Visibility]]\">>\n<$list filter=\"\">"},"$:/plugins/kookma/utility/author/individual-items":{"caption":"Hide individual UI element","created":"20200313141533701","modified":"20200322130601872","tags":"","type":"text/vnd.tiddlywiki","text":"Select individual items to hide in reader mode.\n\n! Site options\n<$checkbox tiddler=\"$:/core/ui/SideBarSegments/site-title\" tag=\"$:/tags/SideBarSegment\"/> Show site title<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBarSegments/site-subtitle\" tag=\"$:/tags/SideBarSegment\"/> Show site subtitle<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBarSegments/page-controls\" tag=\"$:/tags/SideBarSegment\"/> Show page controls<br/>\n\n! Right sidebar elements\n<$checkbox tiddler=\"$:/core/ui/TopBar/menu\" tag=\"$:/tags/TopRightBar\"/> Show right sidebar toggle button<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBarSegments/search\" tag=\"$:/tags/SideBarSegment\"/> Show search bar<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBarSegments/tabs\" tag=\"$:/tags/SideBarSegment\"/> Show sidebar tabs<br/>\n<!-- reserved\n<$checkbox tiddler=\"$:/config/custom-segment\" tag=\"$:/tags/SideBarSegment\"/> Show custom menu -->\n\n! Sidebar tabs\n<$checkbox tiddler=\"$:/core/ui/SideBar/Open\" tag=\"$:/tags/SideBar\"/> Show Open tab<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBar/Recent\" tag=\"$:/tags/SideBar\"/> Show Recent tab<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBar/Tools\" tag=\"$:/tags/SideBar\"/> Show Tools tab<br/>\n<$checkbox tiddler=\"$:/core/ui/SideBar/More\" tag=\"$:/tags/SideBar\"/> Show More tab<br/>\n\n! Tiddler options\n<$checkbox tiddler=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit\" field=text checked=show unchecked=hide default=show /> Show edit button in the tiddler toolbar<br/>\n<$checkbox tiddler=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close\" field=text checked=show unchecked=hide default=show /> Show close button in the tiddler toolbar<br/>\n<$checkbox tiddler=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions\" field=text checked=show unchecked=hide default=show /> Show more actions button in the tiddler toolbar\n\n! Other items\n<$checkbox tiddler=\"$:/config/DragAndDrop/Enable\" field=text checked=no unchecked=yes default=yes /> Disable page dropzone\n"},"$:/plugins/kookma/utility/author/modal":{"created":"20190912073245120","modified":"20200316124818329","tags":"","type":"text/vnd.tiddlywiki","text":"<<tabs tabsList:\"$:/plugins/kookma/utility/author/tools $:/plugins/kookma/utility/author/individual-items\" default:\"$:/plugins/kookma/utility/author/tools\">>"},"$:/plugins/kookma/utility/author/switch-author":{"created":"20200315203327216","key":"((switch-author))","modified":"20200316130423198","tags":"$:/tags/KeyboardShortcut","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/utility/author/tools\n\n<$reveal type=nomatch state=<<configTid>> text=\"\">\n<<unhide-elements>>\n</$reveal>\n<$reveal type=match state=<<configTid>> text=\"\" default=\"\">\n<<hide-elements>>\n</$reveal>"},"$:/plugins/kookma/utility/author/tools":{"caption":"Hide bulk of UI elements","created":"20200313111922410","modified":"20200322160845236","type":"text/vnd.tiddlywiki","text":"\\define configTid() $:/config/utility/author\n\\define add-remove-tag(msg:\"\", tag:\"\")\n<$fieldmangler><!--msg: tm-add-tag tm-remove-tag-->\n<$action-sendmessage $message=\"$msg$\" $param=\"$tag$\"/>\n</$fieldmangler>\n\\end\n\n\\define hide-elements()\n<!-- hide side bar items -->\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!tag[excluded]]\">\n<$action-setfield $tiddler=<<configTid>> $index=<<currentTiddler>> $value=\"$:/tags/SideBar\"/>\n<$macrocall $name=\"add-remove-tag\" msg=\"tm-remove-tag\" tag=\"$:/tags/SideBar\"/>\n</$list>\n<!-- hide view toolbars -->\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/ViewToolbarButtons/Visibility]!tag[excluded]]\">\n<$reveal type=match stateTitle=<<currentTiddler>> stateField=\"text\" text=\"show\">\n<$action-setfield $tiddler=<<configTid>> $index=<<currentTiddler>> $value=\"show\"/>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"text\" $value=\"hide\"/>\n</$reveal>\n</$list>\n<!-- hide page controls -->\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/PageControlButtons/Visibility]!tag[excluded]]\">\n<$reveal type=match stateTitle=<<currentTiddler>> stateField=\"text\" text=\"show\">\n<$action-setfield $tiddler=<<configTid>> $index=<<currentTiddler>> $value=\"show\"/>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"text\" $value=\"hide\"/>\n</$reveal>\n</$list>\n<!-- disable dropzone -->\n<$list filter=\"[[$:/config/DragAndDrop/Enable]!tag[excluded]]\" variable=ignore>\n<$action-setfield $tiddler=\"$:/config/DragAndDrop/Enable\" $field=\"text\" $value=\"no\"/>\n</$list>\n\\end\n\n\\define unhide-elements()\n<!-- Revert view toolbar and page controls -->\n<$list filter=\"[<configTid>indexes[]]\">\n<$reveal type=match stateTitle=<<configTid>> stateIndex=<<currentTiddler>> text=\"show\">\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"text\" $value=\"show\"/>\n</$reveal>\n</$list>\n<!-- Revert sidebar tabs -->\n<$list filter=\"[<configTid>indexes[]]\">\n<$reveal type=match stateTitle=<<configTid>> stateIndex=<<currentTiddler>> text=\"$:/tags/SideBar\">\n<$macrocall $name=\"add-remove-tag\" msg=\"tm-add-tag\" tag=\"$:/tags/SideBar\"/>\n</$reveal>\n</$list>\n<!-- delete the configTid -->\n<$action-deletetiddler $tiddler=<<configTid>>/>\n<!-- enable dropzone -->\n<$list filter=\"[[$:/config/DragAndDrop/Enable]!tag[excluded]]\" variable=ignore>\n<$action-deletetiddler $tiddler=\"$:/config/DragAndDrop/Enable\"/>\n</$list>\n\\end\n\n<$reveal type=nomatch state=<<configTid>> text=\"\">\n<$button actions=<<unhide-elements>> tooltip=\"Unhide UI elements\">Author mode</$button>\n</$reveal>\n<$reveal type=match state=<<configTid>> text=\"\" default=\"\">\n<$button actions=<<hide-elements>> tooltip=\"Hide UI elements\">Reader mode</$button>\n</$reveal>\n<small><ul>\n<li>Author mode: all UI elements are visible</li>\n<li>Redaer mode: all UI elements are hidden except those excluded</li>\n</ul></small>\n<$reveal type=match state=<<configTid>> text=\"\" default=\"\">\n<details>\n<summary>Select items to be excluded</summary>\n<div style=\"padding-left:30px\">{{$:/plugins/kookma/utility/author/exclude-items}}\n</div>\n</details>\n</$reveal>"},"$:/plugins/kookma/utility/config/reveal-tags":{"created":"20200123085623608","modified":"20200123200112351","tags":"","type":"text/vnd.tiddlywiki","text":""},"$:/plugins/kookma/utility/history":{"created":"20190930044127683","modified":"20200403062039433","tags":"","type":"text/vnd.tiddlywiki","text":"* ''2.1.2'' -- 2020.04.03 -- page control button issue fixed\n* ''2.1.1'' -- 2020.03.25 -- page control button improved and minor issues in css fixed\n* ''2.1.0'' -- 2020.03.23 -- new transclusion output for fields macro and disable drag and drop globally\n* ''2.0.0'' -- 2020.03.16 -- new author-reader mode switch\n* ''1.8.0'' -- 2020.03.13 -- admin panel added\n* ''1.7.0'' -- 2020.02.23 -- show tiddler raw content including the macros on demand\n* ''1.0.0'' -- 2019.10.13 -- stable release\n* ''0.5.0'' -- 2019.10.10 -- first beta release"},"$:/plugins/kookma/utility/images/view-fields.svg":{"created":"20181010193706723","modified":"20200123200937680","tags":"","type":"text/vnd.tiddlywiki","text":"<svg xmlns=\"http://www.w3.org/2000/svg\" class=\"tc-image-button tc-image-view-fields\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z\"/></svg>"},"$:/plugins/kookma/utility/license":{"created":"20190930044127683","modified":"20200325141629992","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2019-2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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"},"$:/plugins/kookma/utility/macro/doc-svg":{"created":"20190722141637145","modified":"20200123200937669","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define doc-svg(tiddler:\"\", color:\"\")\n<span class=\"kk-doc\" style=\"fill:$color$;\"><$transclude tiddler=<<__tiddler__>> /></span>\n\\end"},"$:/plugins/kookma/utility/macro/find":{"created":"20181213121411187","modified":"20200325124037811","tags":"$:/tags/Macro","type":"application/x-tiddler","text":"\\define find(text, begin, end, output:\"simple\", mode:\"all\")\n<$vars \n fulltext=<<__text__>>\n start=<<__begin__>>\n stop=<<__end__>>\n output-macro=<<__output__>>\n>\n<$list variable=\"p1\" filter=\"[<fulltext>splitbefore<start>]\">\n<$list variable=\"p2\" filter=\"[<fulltext>removeprefix<p1>]\">\n<$list variable=\"p3\" filter=\"[<p2>splitbefore<stop>removesuffix<stop>]\">\n<$macrocall $name=<<output-macro>> p=<<p3>> />\n<$reveal type=\"match\" text=\"all\" default=<<__mode__>> >\n<$macrocall $name=\"find\"\n text={{{[<p2>removeprefix<p3>removeprefix<stop>]}}}\n begin=<<start>>\n end=<<stop>>\n output=<<output-macro>>\n/>\n</$reveal>\n</$list>\n</$list>\n</$list>\n</$vars>\n\\end\n\n\\define simple(p)\n<$text text=<<__p__>> />\n\\end\n\n\\define simple-list(p)\n<li><$text text=<<__p__>>/></li>\n\\end\n\n\n!! Summary\n* `find` is a macro to search a text and find all snippets delimited between values of `begin` and `end` delimiters\n* `simple` is a macro used by `find` to show the output in a simple format\n* `simple-list` is a macro used by `find` to show the output in a simple list format. The ordered and unordered list\ncan be used if the call to `find` macro wrapped in a `div` with suitable type e.g `ol` or `ul`."},"$:/plugins/kookma/utility/macro/lorem":{"author":"Jeremy Ruston","created":"20190316214433792","description":"creates few paragraphs of dumy text","modified":"20200123200937645","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define .lorem(np:1)\n<$list filter=\"[range[1,$np$]]\" variable=null>\nLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n<$list filter=\"[<__np__>!match[1]]\"><p/></$list>\n</$list>\n\\end"},"$:/plugins/kookma/utility/macro/show-macro":{"created":"20190317174614898","modified":"20201130152604002","tags":"$:/tags/Macro","type":"application/x-tiddler","text":"\\define disp-macro-contents(p)\n<pre>\\define<$text text=<<__p__>> />\\end</pre>\n\\end\n\n\\define show-macro(tiddler)\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<$macrocall $name='find'\n text={{{[<selected-tiddler>get[text]]}}}\n begin=\"\\define\"\n end=\"\\end\"\n output=\"disp-macro-contents\"/>\n</$set>\n\\end"},"$:/plugins/kookma/utility/macro/simple-navigation":{"created":"20190823062102008","description":"create a new tiddler tagged with $:/tags/Viewtemplate and call simple-navigation with desired tag","modified":"20200126151115600","tags":"$:/tags/Macro","type":"application/x-tiddler","text":"\\define simple-navigation(tag:\"demo\", class, close:\"no\")\n<$list filter=\"[all[current]tag[$tag$]]\">\n<div class=\"$class$\">\n<$list filter=\"[tag[$tag$]before<currentTiddler>]\" variable=\"prevTiddler\">\n<$button to=<<prevTiddler>> tooltip=<<prevTiddler>> class=\"tc-btn-invisible $class$\">previous\n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n<$list filter=\"[tag[$tag$]after<currentTiddler>] [tag[$tag$]before<currentTiddler>] +[count[]] -1\" variable=ignore>|</$list>\n<$list filter=\"[tag[$tag$]after<currentTiddler>]\" variable=\"nextTiddler\">\n<$button to=<<nextTiddler>> tooltip=<<nextTiddler>> class=\"tc-btn-invisible $class$\">next\n<$list filter=\"[<__close__>match[yes]]\" variable=ignore><$action-sendmessage $message=\"tm-close-tiddler\" $param=<<currentTiddler>>/></$list>\n</$button>\n</$list>\n</div>\n</$list>\n\\end"},"$:/plugins/kookma/utility/macro/transclusion":{"created":"20190930050545887","modified":"20200324201449425","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define code(tiddler)\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<$codeblock language={{{[<selected-tiddler>get[type]]}}} code={{{[<selected-tiddler>get[text]]}}}/>\n</$set>\n\\end\n\n\\define code-link(tiddler)\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<$link to=<<selected-tiddler>>/>\n<$codeblock language={{{[<selected-tiddler>get[type]]}}} code={{{[<selected-tiddler>get[text]]}}}/>\n</$set>\n\\end\n\n\\define content(tiddler)\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<$link to=<<selected-tiddler>>/>\n<$transclude tiddler=<<selected-tiddler>> mode=\"block\"/>\n</$set>\n\\end\n\n\\define fields(tiddler)\n<style>\n/*Borderless table*/\n.kk-utility-tbl-borderless, \n.kk-utility-tbl-borderless tr,\n.kk-utility-tbl-borderless td{border:0;}\n</style>\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<$link to=<<selected-tiddler>>/>\n<$list filter='[<selected-tiddler>fields[]] -[enlist[text title created modified tags creator modifier]] +[limit[1]]' variable=\"ignore\"><!--check if there is any user field -->\n<table class=\"kk-utility-tbl-borderless\">\n<$list filter='[<selected-tiddler>fields[]] -[enlist[text title created modified tags creator modifier]]' variable=\"fld\">\n<tr><td style=\"text-align:right\"><<fld>>:</td><td><$text text={{{[<selected-tiddler>get<fld>]}}}/></td></tr>\n</$list>\n</table>\n</$list>\n</$set>\n\\end\n\n\\define description(tiddler)\n<$set name=selected-tiddler value=\"$tiddler$\" emptyValue=<<currentTiddler>> >\n<dl><dt><$link to=<<selected-tiddler>>/></dt><dd><$transclude tiddler=<<selected-tiddler>> field=\"description\"/></dd></dl>\n</$set>\n\\end"},"$:/plugins/kookma/utility/macro/unique-id":{"author":"Jeremy Ruston","created":"20200210134515855","description":"creates a unique id for permanent state tiddler","modified":"20200210134635362","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define create_id_from_timedata(prefix) $prefix$-<<now [UTC]YYYY0MM0DD0hh0mm0ssXXX>>\n\n\\define unique-id(prefix:id)\n<$wikify name=id text=<<create_id_from_timedata \"\"\"$prefix$\"\"\">> >\n<$button tooltip=\"create unique id\" class=\"tc-btn-invisible\" message=\"tm-copy-to-clipboard\" param=<<id>> >{{$:/core/images/copy-clipboard}} \n</$button> <$text text=<<id>>/>\n</$wikify>\n\\end\n"},"$:/plugins/kookma/utility/macro/wikitext-macros":{"created":"20150117184156000","modified":"20200123200937571","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define wikitext-example(src)\n<div class=\"doc-example\">\n\n<$macrocall $name=\"copy-to-clipboard-above-right\" src=<<__src__>>/>\n\n```\n$src$\n```\n\nThat renders as:\n\n$src$\n\n... and the underlying HTML is:\n\n$$$text/vnd.tiddlywiki>text/html\n$src$\n$$$\n</div>\n\\end\n\n\\define wikitext-example-without-html(src)\n<div class=\"doc-example\">\n\n<$macrocall $name=\"copy-to-clipboard-above-right\" src=<<__src__>>/>\n\n```\n$src$\n```\n\nThat renders as:\n\n$src$\n</div>\n\\end\n<!--\n; Credit\n:Jeremy Ruston TW 5.1.18\n\nThe wiki-text macros are set of macro for documenting TW codes.\n-->"},"$:/plugins/kookma/utility/pagecontrol/view-fields-button":{"caption":"{{$:/plugins/kookma/utility/images/view-fields.svg}} {{$:/language/Buttons/Utility/Caption}}","created":"20181010190533135","description":"Show a toggle button for view fields","modified":"20200403115112475","tags":"$:/tags/PageControls","type":"text/vnd.tiddlywiki","text":"\\define viewtemplateTid() $:/plugins/kookma/utility/viewtemplate/view-fields\n\\define fldshowstateTid() $:/keepstate/utility/toggle-view-fields\n\n\\define show-fields-button()\n\\whitespace trim\n\n<$reveal type=\"nomatch\" state=<<fldshowstateTid>> text=\"show\">\n <$button set=<<fldshowstateTid>> setTo=\"show\" \n\t tooltip={{$:/language/Buttons/Utility/Hint}} \n\t\t\t\t\t aria-label={{$:/language/Buttons/Utility/Caption}} \n\t\t\t\t\t class=<<tv-config-toolbar-class>> >\n <<disp-on-pagecontrols>>\n <$action-setfield $tiddler=<<viewtemplateTid>> tags=\"$:/tags/ViewTemplate\"/>\n </$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<fldshowstateTid>> text=\"show\">\n <$button set=<<fldshowstateTid>> setTo=\"hide\" \n tooltip={{$:/language/Buttons/Utility/Hint}} \n\t\t\t\t aria-label={{$:/language/Buttons/Utility/Caption}} \n\t\t\t\t class=\"\"\"$(tv-config-toolbar-class)$ tc-selected\"\"\">\n <<disp-on-pagecontrols>>\n <$action-setfield $tiddler=<<viewtemplateTid>> tags=\"\"/>\n </$button>\n</$reveal>\n\\end\n\n\\define disp-on-pagecontrols() \n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/plugins/kookma/utility/images/view-fields.svg}} \n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Utility/Caption}}/></span>\n</$list>\n\\end\n\n\n<<show-fields-button>>"},"$:/plugins/kookma/utility/readme":{"created":"20190930044127683","modified":"20200322194049962","tags":"","type":"text/vnd.tiddlywiki","text":"; Utility plugin\nThe utility plugin objective is to provide set of tools for developers and authors. These tools includes simple transclusions, show raw contents of tiddlers, author tools, wikitext macros, show fields in view mode, ...\n\n; Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Utility/\n* Code: https://github.com/kookma/TW-Utility\n"},"$:/plugins/kookma/utility/snippet/macrocall-wikitext-example":{"caption":"Wikitext-example macrocall","created":"20181023161605661","modified":"20200123200937811","tags":"$:/tags/TextEditor/Snippet","type":"text/vnd.tiddlywiki","text":"<$macrocall $name=\"wikitext-example-without-html\" \nsrc=\"\"\"\n\"\"\"/>"},"$:/plugins/kookma/utility/snippet/wikitext-macro":{"caption":"Wikitext-example","created":"20181007154126921","modified":"20200123200937797","tags":"$:/tags/TextEditor/Snippet","type":"text/vnd.tiddlywiki","text":"<<wikitext-example-without-html \nsrc:\"\"\"\n\"\"\">>"},"$:/plugins/kookma/utility/styles/doc-svg":{"text":".kk-doc svg{\nwidth: 1.2em;\nheight: 1.2em;\nvertical-align: middle;}\n\n.kk-ut-txt{\nmin-width:50%}","created":"20190722142023425","modified":"20200322091202744","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/utility/styles/tw-version":{"text":"<pre>/* TW-version added to site title */\n.tc-site-title:before {\n content:\"TW <<version>>\";\n position:absolute;\n margin-top:-1.9em;\n color:silver;\n font-size:13px;\n}\n</pre>","created":"20180906042308596","modified":"20200325164200123","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/utility/styles/wikitext-macro":{"text":".doc-example { margin: 1em 0; padding: 0.8em 0; } .doc-example:hover { background-color: #f7f7f9; } .doc-example ul { margin-bottom: 0; padding-bottom: 0; margin-top: 0.2em; } .doc-example pre:first-child { margin-top: 0; } .doc-example-result { border-left: 5px solid #bbb; border-right: 5px solid #bbb; margin-left: 0; margin-right: 0; padding: 0 10px; } .doc-example-result ul { margin-left: 0; padding-left: 10px; } .doc-example-result ol { margin-left: 0; padding-left: 20px; }","created":"20180909042646908","modified":"20200325141241379","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/utility/ui/ControlPanel/Settings":{"caption":"Utility","created":"20190930212747824","list-after":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","modified":"20200322091210028","tags":"$:/tags/ControlPanel/SettingsTab $:/tags/MoreSideBar","type":"text/vnd.tiddlywiki","text":"These settings let you customise the behaviour of Utility plugin.\n\n---\n\n;Show Utility setting in more sidebar\n:<$checkbox tiddler=\"$:/plugins/kookma/utility/ui/ControlPanel/Settings\" tag=\"$:/tags/MoreSideBar\"> Show setting in more sidebar</$checkbox>\n\n;Options\n:<$checkbox tiddler=\"$:/plugins/kookma/utility/pagecontrol/view-fields-button\" tag=\"$:/tags/PageControls\"> Enable show fields</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/utility/styles/tw-version\" tag=\"$:/tags/Stylesheet\"> Show the Tiddlywiki version badge</$checkbox>\n:<$checkbox tiddler=\"$:/plugins/kookma/utility/viewtemplate/display-tiddler-raw-content\" tag=\"$:/tags/ViewTemplate\"> Display the tiddler raw content</$checkbox><div style=\"padding-left:18px;\">\n<$list filter=\"[[$:/plugins/kookma/utility/viewtemplate/display-tiddler-raw-content]tags[]search[$:/tags/ViewTemplate]]\" variable=ignore>\nFilters to reveal tiddlers content <$edit-text tiddler=\"$:/plugins/kookma/utility/config/reveal-tags\" field=\"text\" tag=input defualt=\"\" placeholder=\"enter a filter e.g. [tag[myTag]] \" class=\"kk-ut-txt\"/>\n</$list></div>\n\n"},"$:/plugins/kookma/utility/viewtemplate/display-tiddler-raw-content":{"created":"20181212041419278","description":"this view template displays the content of global macro tiddlers","modified":"20200126142626441","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"<$set name=\"revealFilters\" tiddler=\"$:/plugins/kookma/utility/config/reveal-tags\" field=text>\n<$list filter=\"[all[current]tag[show-content]]\n [all[current]tag[$:/tags/EditTemplate]]\n [all[current]tag[$:/tags/ViewTemplate]] \n [all[current]tag[$:/tags/Macro]]\n [all[current]subfilter<revealFilters>] +[limit[1]]\">\n<$codeblock code={{!!text}} language=\"xml\" />\n</$list>\n</$set>\n\n"},"$:/plugins/kookma/utility/viewtemplate/view-fields":{"created":"20181010162537613","description":"Toggle field handling in view mode","list-after":"$:/core/ui/ViewTemplate/tags","modified":"20200403082439483","tags":"","type":"text/vnd.tiddlywiki","text":"\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"},"$:/language/Buttons/Utility/Hint":{"created":"20190930171301401","modified":"20191111154125882","tags":"","type":"text/vnd.tiddlywiki","text":"Show fields"},"$:/language/Buttons/Utility/Caption":{"created":"20190930171340202","modified":"20191111154125886","tags":"","type":"text/vnd.tiddlywiki","text":"show fields"},"$:/config/ShortcutInfo/author-tools":{"created":"20190912083358612","modified":"20200316123519558","tags":"","type":"text/vnd.tiddlywiki","text":"Show Author tools dialog"},"$:/config/shortcuts/author-tools":{"created":"20191121050813703","modified":"20200316123531677","type":"text/vnd.tiddlywiki","text":"ctrl-alt-A"},"$:/config/ShortcutInfo/switch-author":{"created":"20200315203528401","modified":"20200316123455880","type":"text/vnd.tiddlywiki","text":"Toggle the author-reader mode"},"$:/config/shortcuts/switch-author":{"created":"20200315203409995","modified":"20200316123545221","type":"text/vnd.tiddlywiki","text":"ctrl+alt+L"}}}
\define lingo-base() $:/language/EditTemplate/
\define config-title()
$:/config/EditTemplateFields/Visibility/$(currentField)$
\end
\define config-filter()
[[hide]] -[title{$(config-title)$}]
\end
\define new-field()
<$vars name={{$:/temp/newfieldname}}>
<$reveal type="nomatch" text="" default=<<name>>>
<$button>
<$action-sendmessage $message="tm-add-field"
$name=<<name>>
$value={{$:/temp/newfieldvalue}}/>
<$action-deletetiddler $tiddler="$:/temp/newfieldname"/>
<$action-deletetiddler $tiddler="$:/temp/newfieldvalue"/>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
<$reveal type="match" text="" default=<<name>>>
<$button>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
</$vars>
\end
<div class="tc-edit-fields">
<table class="tc-edit-fields">
<tbody>
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField">
<$list filter=<<config-filter>> variable="temp">
<tr class="tc-edit-field">
<td class="tc-edit-field-name">
<$text text=<<currentField>>/>:</td>
<td class="tc-edit-field-value">
<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>
</td>
<td class="tc-edit-field-remove">
<$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>
<$action-deletefield $field=<<currentField>>/>
{{$:/core/images/delete-button}}
</$button>
</td>
</tr>
</$list>
</$list>
</tbody>
</table>
</div>
<$fieldmangler>
<div class="tc-edit-field-add">
<em class="tc-edit">
<<lingo Fields/Add/Prompt>>
</em>
<span class="tc-edit-field-add-name">
<$edit-text tiddler="$:/temp/newfieldname" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle"/>
</span>
<$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>
<$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default="">
<div class="tc-block-dropdown tc-edit-type-dropdown">
<$linkcatcher to="$:/temp/newfieldname">
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/User>>
</div>
<$list filter="[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type" variable="currentField">
<$link to=<<currentField>>>
<<currentField>>
</$link>
</$list>
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/System>>
</div>
<$list filter="[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]" variable="currentField">
<$link to=<<currentField>>>
<<currentField>>
</$link>
</$list>
</$linkcatcher>
</div>
</$reveal>
<span class="tc-edit-field-add-value">
<$edit-text tiddler="$:/temp/newfieldvalue" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor"/>
</span>
<span class="tc-edit-field-add-button">
<$macrocall $name="new-field"/>
</span>
</div>
</$fieldmangler>
{"tiddlers":{"$:/plugins/kookma/vote/config/display-filter":{"created":"20210224051207259","modified":"20210224075320900","type":"text/vnd.tiddlywiki"},"$:/plugins/kookma/vote/history":{"created":"20210215150432240","modified":"20210225112615089","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-Vote/#ChangeLog\n\n* ''1.0.0'' -- 2021.02.25 -- first stable release\n* ''0.5.0'' -- 2021.02.16 -- performance improvement\n* ''0.1.0'' -- 2021.02.15 -- initial release\n"},"$:/plugins/kookma/vote/images/svg-downvote":{"created":"20210215041358884","modified":"20210218034901100","tags":"","type":"text/vnd.tiddlywiki","text":"<svg height=\"16\" class=\"octicon octicon-arrow-down width-full discussion-downvote-icon\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M13.03 8.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.47 9.28a.75.75 0 011.06-1.06l2.97 2.97V3.75a.75.75 0 011.5 0v7.44l2.97-2.97a.75.75 0 011.06 0z\"></path></svg>"},"$:/plugins/kookma/vote/images/svg-upvote":{"created":"20210215041421497","modified":"20210218034907934","tags":"","type":"text/vnd.tiddlywiki","text":"<svg height=\"16\" class=\"octicon octicon-arrow-up width-full discussion-upvote-icon\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M3.47 7.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L9 4.81v7.44a.75.75 0 01-1.5 0V4.81L4.53 7.78a.75.75 0 01-1.06 0z\"></path></svg>"},"$:/plugins/kookma/vote/license":{"created":"20210215150432241","modified":"20210215150545382","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2021 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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<<<"},"$:/plugins/kookma/vote/macros/configs":{"created":"20210218071829609","modified":"20210225101412165","tags":"$:/tags/Macro/Vote","type":"text/vnd.tiddlywiki","text":"\\define votingsTiddler() $:/vote/dataTiddler/votings\n\\define sortStateTiddler() $:/state/vote/sort\n\\define entryStateTiddler() $:/state/vote/entry-per-page\n\\define pageStateTiddler() $:/state/vote/page-number\n\\define deleteTempTiddler() $:/temp/vote/delete-votes\n\\define voteFilterTiddler() $:/plugins/kookma/vote/config/display-filter\n\\define voteEditSummaryTable() $:/state/vote/edit-summary-table\n\n\\define myfilter() [<votingsTiddler>indexes[]]"},"$:/plugins/kookma/vote/macros/delete-votings":{"created":"20210225091253613","modified":"20210225113855670","tags":"$:/tags/Macro/Vote","type":"text/vnd.tiddlywiki","text":"\\define confirm-delete()\n<!-- reveals deletion confirmation -->\n<$list filter=\"[subfilter<myfilter>limit[1]]\" variable=ignore>\n<$reveal class=\"tbl-delete-confirm\" type=\"match\" stateTitle=<<deleteTempTiddler>> stateField=text text=\"yes\" tag=\"tr\">\n<th colspan=3 >\n<$list filter=\"[<deleteTempTiddler>get[confirm]match[yes]]\" \n variable=ignore emptyMessage=<<ask-for-delete>> >\n <<perform-delete>>\n</$list>\n</th>\n</$reveal>\n</$list>\n\\end\n\n\\define ask-for-delete()\n<$set name=ntids filter=\"[subfilter<myfilter>count[]]\">\n Delete all <<ntids>> records?\n <$button class=\"tc-btn-invisible\">\n <$action-setfield $tiddler=<<deleteTempTiddler>> $field=\"confirm\" $value=\"yes\"/>\n {{$:/core/images/delete-button}} yes\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=<<deleteTempTiddler>>/>\n {{$:/core/images/close-button}} no\n </$button>\n</$set>\t\t\t\t\n\\end\n\n\\define perform-delete()\n Warning! this action cannot be undone!\n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=<<deleteTempTiddler>> />\n <$action-deletetiddler $tiddler=<<votingsTiddler>> />\n {{$:/core/images/delete-button}} delete\n </$button> or \n <$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=<<deleteTempTiddler>> />\n {{$:/core/images/close-button}} cancel \n </$button>\n\\end"},"$:/plugins/kookma/vote/macros/keyvals.js":{"text":"/*\\\nkeyvals.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the key_°_values of a data tiddler\nNote the _°_ is a separator used here for sorting purpose\n\n\\*/\n(function(){\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.keyvals = function(source,operator,options) {\n\tvar results = [];\n\tvar sep=\"_°_\";\n\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\tfor (var [key, value] of Object.entries(data)) {\n\t\t\t\tresults.push(key+sep+value);\n\t\t\t}\n\t\t}\n\n\t});\n\n\treturn results;\n};\n\n})();\n","type":"application/javascript","module-type":"filteroperator","created":"20210221170519326","modified":"20210221182924712","tags":""},"$:/plugins/kookma/vote/macros/pagination":{"created":"20210224180410216","modified":"20210225081828998","tags":"$:/tags/Macro/Vote","type":"text/vnd.tiddlywiki","text":"\\define prev-button()\n<!-- create previous page button --->\n<$list filter=\"[<page-number>compare:number:lt[2]then[yes]else[no]]\" variable=state>\n<$button disabled=<<state>> class=\"vote-tbl-page-prev tc-btn-invisible\">\n{{$:/core/images/chevron-left}} <strong>Prev</strong>\n<$action-listops $tiddler=<<pageStateTiddler>> $field=text $subfilter=\"+[subtract[1]] ~[[1]]\"/>\n</$button>\n</$list>\n\\end\n\n\\define next-button()\n<!-- create next page button --->\n<$list filter=\"[<high>compare:number:gteq<total-entries>then[yes]else[no]]\" variable=state> \n<$button disabled=<<state>> class=\"vote-tbl-page-next tc-btn-invisible\">\n<strong>Next</strong> {{$:/core/images/chevron-right}} \n<$action-listops $tiddler=<<pageStateTiddler>> $field=text $subfilter=\"+[add[1]] ~[[2]]\"/>\n</$button>\n</$list>\n\\end\n\n\\define limit-entries()\n<!-- set number of entries per page -->\n<$select tiddler=<<entryStateTiddler>> default=25 actions=\"\"\"<$action-setfield $tiddler=<<pageStateTiddler>> text=1/>\"\"\">\n<$list filter='5 10 15 20 25 30 40 50' variable=num>\n<option value=<<num>>>Limit <$text text=<<num>>/></option>\n</$list>\n<option value=<<total-entries>> >Show all</option>\n</$select>\n\\end"},"$:/plugins/kookma/vote/macros/remove-missing-tiddlers":{"created":"20210218034153267","modified":"20210225084303393","tags":"$:/tags/Macro/Vote","type":"text/vnd.tiddlywiki","text":"\\define clean-votings-dataTiddler()\n<$list filter=\"[subfilter<myfilter>is[missing]count[]compare:integer:gt[0]]\" variable=ignore emptyMessage=\"There is no vote for missing tiddlers\">\n<$button class=\"tc-btn-invisible\">{{$:/core/images/delete-button}} Remove votes for <$count filter=\"[subfilter<myfilter>is[missing]]\"/> missing tiddler\n<$list filter=\"[[$:/vote/dataTiddler/votings]indexes[]]\">\n<$list filter=\"[<currentTiddler>is[missing]]\" variable=idx>\n<$action-setfield $tiddler=\"$:/vote/dataTiddler/votings\" $index=<<idx>> />\n</$list>\n</$list>\n</$button>\n\\end\n<$vars num={{{[subfilter<myfilter>] +[is[missing]] +[count[]] }}}>"},"$:/plugins/kookma/vote/macros/summary":{"created":"20210219073827766","modified":"20210225110540825","tags":"$:/tags/Macro/Vote","type":"text/vnd.tiddlywiki","text":"\\define btnLable(label)\n''$label$''\n<$list filter=\"[<sortBy>match[$label$]]\" variable=null>\n<$list filter=\"[<sortNeg>match[!]]\" variable=null emptyMessage=\"{{$:/core/images/down-arrow}}\">\n{{$:/core/images/up-arrow}}\n</$list></$list>\n\\end\n\n\\define remove(idx)\n<$button class=\"tc-btn-invisible vote-delete-svg\"> {{$:/core/images/close-button}}\n<$action-setfield $tiddler=<<votingsTiddler>> $index=<<__idx__>>/>\n</$button>\n\\end\n\n\\define show-records-by-vote()\n<$vars sortby=\"[split[_°_]nth[2]]\">\n<$vars tfilter=\"[<votingsTiddler>keyvals[]] +[$(sortNeg)$sortsub:number<sortby>]\">\n<$list filter=\"[subfilter<tfilter>first<high>] -[subfilter<tfilter>first<low>]\" variable=item>\n<tr>\n<td><$link to={{{ [<item>split[_°_]nth[1]] }}}/></td>\n<td><$text text={{{ [<item>split[_°_]nth[2]] }}}/></td>\n<$list filter=\"[<voteEditSummaryTable>get[text]match[yes]]\" variable=ignore>\n<td><$macrocall $name=\"remove\" idx={{{ [<item>split[_°_]nth[1]] }}} /></td>\n</$list>\n</tr>\n</$list>\n</$vars>\n</$vars>\n\\end\n\n\n\\define show-records-by-title()\n<$vars tfilter=\"[subfilter<myfilter>] +[$(sortNeg)$sort[]]\">\n<$list filter=\"[subfilter<tfilter>first<high>] -[subfilter<tfilter>first<low>]\">\n<tr>\n<td><$link/></td>\n<td><$text text={{{[<votingsTiddler>getindex<currentTiddler>]}}}/></td>\n<$list filter=\"[<voteEditSummaryTable>get[text]match[yes]]\" variable=ignore>\n<td><$macrocall $name=\"remove\" idx=<<currentTiddler>> /></td>\n</$list>\n</tr>\n</$list>\n</$vars>\n\\end\n\n\\define sort-by-title()\n<$button class=\"tc-btn-invisible vote-sort-svg\"><<btnLable Title>>\n<$action-setfield $tiddler=<<sortStateTiddler>> text=\"Title\"/>\n<$action-listops $tiddler=<<sortStateTiddler>> $field=sort-neg $subfilter=\"+[toggle[!]]\"/>\n</$button>\n\\end\n\n\\define sort-by-vote()\n<$button class=\"tc-btn-invisible vote-sort-svg\"><<btnLable Vote>>\n<$action-setfield $tiddler=<<sortStateTiddler>> text=\"Vote\"/>\n<$action-listops $tiddler=<<sortStateTiddler>> $field=sort-neg $subfilter=\"+[toggle[!]]\"/>\n</$button>\n\\end\n\n\\define edit-button()\n<$button class=\"tc-btn-invisible\">{{$:/core/images/edit-button}}\n<$action-listops $tiddler=<<voteEditSummaryTable>> $field=\"text\" $subfilter=\"+[toggle[yes]]\" />\n<$action-listops $tiddler=<<voteEditSummaryTable>> $field=\"ncols\" $subfilter=\"+[toggle[3],[2]]\" />\n</$button>\n\\end\n"},"$:/plugins/kookma/vote/readme":{"created":"20210215150432241","modified":"20210215170949045","tags":"","type":"text/vnd.tiddlywiki","text":"; Vote\nThe vote plugin lets you to rate tiddlers. Both voting and ranking of tiddlers can be done.\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Vote/\n* Code: https://github.com/kookma/TW-Vote\n"},"$:/plugins/kookma/vote/styles/dynamic":{"created":"20210224171009495","modified":"20210225112102972","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":".vote-tbl-page-footer select{\n background-color: <<colour table-header-background>>;\n color:<<colour foreground>>;\n}\n\ntable.vote-summary-table tfoot .vote-tbl-page-footer > td{\nbackground-color: <<colour table-header-background>>;\n}\n"},"$:/plugins/kookma/vote/styles/summary-table":{"text":"/* Summary Table */\n.vote-summary-table{\n\t width:100%;\n}\n/* Table caption at top */\n.vote-summary-table caption {\n caption-side:top;\n margin-bottom:0.2rem;\n text-align:left;\t\n}\n\n.vote-tbl-page-footer td{\n\tmargin: 0 0 0 0;\n\tpadding: 4px 7px 4px 7px;\n}\n\n.vote-tbl-page-footer select{\n\tpadding:0;\n\tmargin:0;\n\tborder:none;\t\n}\n\n.vote-tbl-page-footer {\n\ttext-align:center;\n}\n\n.vote-tbl-page-prev{\n\tfloat:left;\n}\n\n.vote-tbl-page-next{\n\tfloat:right;\n}\n\n.vote-tbl-page-footer button svg {height:0.7em;}\n.vote-tbl-page-footer button {outline: none;}\n.vote-tbl-page-footer button:disabled {display:none;}\n\n\n/*button and svg */\nbutton.vote-sort-svg,\nbutton.vote-delete-svg {\n\toutline: none;}\n\nbutton.vote-sort-svg > svg,\nbutton.vote-delete-svg >svg {\n\ttext-shadow: none;\n\theight:10px;\n\tpadding:0 0 2px 0;\n}\n\n\n/* DELETE CONFIRMATION */\ntable.vote-summary-table thead .tbl-delete-confirm > th {\n color: white;\n background-color:#ff0033;\n padding: 8px;\n margin: 0px;\n text-align:center;\n font-weight:normal;\n}\n\ntable.vote-summary-table thead .tbl-delete-confirm > th > button {\n color: white;\n fill: white;\n}\n\n\n\n","created":"20210219205554747","modified":"20210225103105201","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/vote/styles/vote-pill":{"text":".vote-container{\n\tdisplay:inline-block;\n\tfloat:left;\n\tmargin-right:10px;\n}\n\n.vote-flex {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.vote-counter{\n\tdisplay:inline-block;\n\tbox-sizing: content-box; \n\twidth: 1.5em;\n\theight: 1.5em;\n\tline-height: 1.5em;\n\ttext-align: center;\n\tborder-radius: 2em;\n\tpadding:0 6px;\n}\n","created":"20210215041752859","modified":"20210225062114585","tags":"$:/tags/Stylesheet","type":"text/css"},"$:/plugins/kookma/vote/ui/ControlPanel/Settings":{"caption":"Vote","created":"20210215163644178","modified":"20210225063636230","tags":"$:/tags/ControlPanel/SettingsTab $:/tags/MoreSideBar","type":"text/vnd.tiddlywiki","text":"\\import [all[tiddlers+shadows]tag[$:/tags/Macro/Vote]]\nThese settings let you customise the behaviour of Vote plugin.\n\n---\n\n;Show Vote setting in more sidebar\n:<$checkbox tiddler=\"$:/plugins/kookma/vote/ui/ControlPanel/Settings\" tag=\"$:/tags/MoreSideBar\"> Show setting in more sidebar</$checkbox>\n\n;General display option\n:<$checkbox tiddler=\"$:/plugins/kookma/vote/viewtemplate/voting\" tag=\"$:/tags/ViewTemplate\"> Show the vote pill on all non system tiddlers</$checkbox>\n\n\n;Selection filter\n: Filters to show vote pill only on selected tiddlers <$edit-text tiddler=<<voteFilterTiddler>> field=\"text\" tag=input defualt=\"[all[current]]\" placeholder=\"enter a filter e.g. [tag[myTag]] \" class=\"kk-ut-txt\"/>\n\n;Clean\n:<<clean-votings-dataTiddler>>\n\n;Summary table\n:<$button to=\"$:/plugins/kookma/vote/ui/summary\" class=\"tc-btn-invisible\"> {{$:/core/images/right-arrow}} Open votings summary table</$button>"},"$:/plugins/kookma/vote/ui/summary":{"created":"20210219210131049","modified":"20210225112106193","tags":"","type":"text/vnd.tiddlywiki","text":"\\import [all[tiddlers+shadows]tag[$:/tags/Macro/Vote]]\n\n\\define delete-votes()\n<$button class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n<$action-setfield $tiddler=<<deleteTempTiddler>> text=yes />\n</$button>\n\\end\n\n<$list filter=\"[subfilter<myfilter>limit[1]]\" variable=ignore emptyMessage=\"Summary table is empty. There is no votes!\">\n<table class=\"vote-summary-table\">\n<caption><<edit-button>> Voting summary</caption>\n<$vars sortBy={{{ [<sortStateTiddler>get[text]] }}} \n sortNeg={{{ [<sortStateTiddler>get[sort-neg]] }}} >\n<$vars total-entries={{{[subfilter<myfilter>count[]] }}}\n\t\t\t page-number={{{[<pageStateTiddler>get[text]] ~[[1]]}}} \n\t\t\t entries-per-page={{{ [<entryStateTiddler>get[text]] ~[[25]] }}} >\n<$vars low={{{ [<page-number>subtract[1]multiply<entries-per-page>] }}} \n high={{{[<page-number>multiply<entries-per-page>] }}} \n\t\t\t ncols={{{[<voteEditSummaryTable>get[ncols]] ~[[2]]}}}>\n<thead>\t\t\n<<confirm-delete>>\n<tr><!-- create the header row -->\n<th style=\"text-align:left\"><<sort-by-title>></th>\n<th style=\"width:8ch;text-align:left\"><<sort-by-vote>></th>\n<$list filter=\"[<voteEditSummaryTable>get[text]match[yes]]\" variable=ignore>\n<th style=\"width:6ch;text-align:left;\"><b><<delete-votes>></b></th>\n</$list>\n</tr>\n</thead>\n<tbody>\n<$list filter=\"[<sortBy>!match[Vote]]\" variable=\"sort_by_title\">\n<<show-records-by-title>>\n</$list>\n<$list filter=\"[<sortBy>match[Vote]]\" variable=\"sort_by_vote\">\n<<show-records-by-vote>>\n</$list>\n</tbody>\n<tfoot>\n<tr class=\"vote-tbl-page-footer\">\n<td colspan=<<ncols>> >\n<<prev-button>>\nDisplaying <$text text={{{[<low>add[1]]}}}/> through <<high>> of <<total-entries>> Results | <<limit-entries>>\n<<next-button>>\n</td>\n</tr>\n</tfoot>\n</$vars></$vars></$vars>\n</table>\n<$list filter=\"[<voteEditSummaryTable>get[text]match[yes]]\" variable=ignore>\n<<clean-votings-dataTiddler>>\n</$list>\n</$list>"},"$:/plugins/kookma/vote/viewtemplate/voting":{"created":"20210214160252823","list-before":"$:/core/ui/ViewTemplate/title","modified":"20210225062408550","tags":"$:/tags/ViewTemplate","type":"text/vnd.tiddlywiki","text":"\\import [[$:/plugins/kookma/vote/macros/configs]]\n\n\\define upvote() <$action-setfield $tiddler=<<votingsTiddler>> $index=<<currentTiddler>> $value={{{ [<votingsTiddler>getindex<currentTiddler>else[0]add[1]] }}}/>\n\n\\define downvote() <$action-setfield $tiddler=<<votingsTiddler>> $index=<<currentTiddler>> $value={{{[<votingsTiddler>getindex<currentTiddler>else[0]subtract[1]]}}}/>\n\n<$set name=\"revealFilters\" tiddler=<<voteFilterTiddler>> field=text emptyValue=\"[!is[system]]\">\n<$list filter=\"[all[current]subfilter<revealFilters>match<currentTiddler>]\">\n<div class=\"vote-container\">\n<div class=\"vote-flex\">\n<$button class=\"tc-btn-invisible\" actions=<<upvote>> >\n{{$:/plugins/kookma/vote/images/svg-upvote}}\n</$button>\n<div>\n<$vars vote={{{ [<votingsTiddler>getindex<currentTiddler>else[0]] }}}>\n<$list filter=\"[<vote>compare:number:lt[0]then[#fffbdd]] [<vote>compare:number:lteq[-5]then[#ffebda]] [<vote>compare:number:gt[0]then[#dbedff]] [<vote>compare:number:gteq[5]then[#dcffe4]] +[last[]] ~[[#ececec]]\" variable=bgcolor>\n<span class=\"vote-counter\" style={{{ [<bgcolor>addprefix[background-color:]] }}} >\n<$text text=<<vote>> />\n</span>\n</$list>\n</$vars>\n</div>\n<$button class=\"tc-btn-invisible\" actions=<<downvote>> >\n{{$:/plugins/kookma/vote/images/svg-downvote}}\n</$button>\n</div>\n</div>\n</$list>\n</$set>"}}}
\import [[$:/plugins/kookma/vote/macros/configs]]
\define upvote() <$action-setfield $tiddler=<<votingsTiddler>> $index=<<currentTiddler>> $value={{{ [<votingsTiddler>getindex<currentTiddler>else[0]add[1]] }}}/>
\define downvote() <$action-setfield $tiddler=<<votingsTiddler>> $index=<<currentTiddler>> $value={{{[<votingsTiddler>getindex<currentTiddler>else[0]subtract[1]]}}}/>
<$set name="revealFilters" tiddler=<<voteFilterTiddler>> field=text emptyValue="[!is[system]]">
<$list filter="[all[current]subfilter<revealFilters>match<currentTiddler>]">
<div class="vote-container">
<div class="vote-flex">
<$button class="tc-btn-invisible" actions=<<upvote>> >
{{$:/plugins/kookma/vote/images/svg-upvote}}
</$button>
<div>
<$vars vote={{{ [<votingsTiddler>getindex<currentTiddler>else[0]] }}}>
<$list filter="[<vote>compare:number:lt[0]then[#fffbdd]] [<vote>compare:number:lteq[-5]then[#ffebda]] [<vote>compare:number:gt[0]then[#dbedff]] [<vote>compare:number:gteq[5]then[#dcffe4]] +[last[]] ~[[#ececec]]" variable=bgcolor>
<span class="vote-counter" style={{{ [<bgcolor>addprefix[background-color:]] }}} >
<$text text=<<vote>> />
</span>
</$list>
</$vars>
</div>
<$button class="tc-btn-invisible" actions=<<downvote>> >
{{$:/plugins/kookma/vote/images/svg-downvote}}
</$button>
</div>
</div>
</$list>
</$set>
{
"tiddlers": {
"$:/plugins/telmiger/ColorAction/coloraction.js": {
"text": "/*\\\ntitle: $:/plugins/telmiger/ColorAction/coloraction.js\ntype: application/javascript\nmodule-type: macro\n\nBased on TinyColor by Brian Grinstead: $:/plugins/telmiger/ColorAction/tinycolor.js\nExtended, adapted and documented for TiddlyWiki 5 by Thomas Elmiger\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"coloraction\";\n\nexports.params = [\n {name: \"color\", default: \"#000\"},\n {name: \"mod\", default: false},\n {name: \"value\", default: false},\n {name: \"alpha\", default: false},\n {name: \"action\", default: \"toRgbString\"}\n];\n\nif (typeof window !== 'undefined') {\n var tinycolor = require(\"$:/plugins/telmiger/ColorAction/tinycolor.js\");\n}\n\n/*\nWikify\n*/\nfunction wikifyText(t) {\n\tvar Parser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\",t,{\n\t\t\tparseAsInline: true\n\t\t});\n\tvar WidgetNode = $tw.wiki.makeWidget(Parser,{\n\t\t\tdocument: $tw.fakeDocument\n\t\t});\n\tvar Container = $tw.fakeDocument.createElement(\"div\");\n\tWidgetNode.render(Container,null);\n\treturn Container.textContent;\n}\n\n/*\nPrecision for decimals\n*/\nfunction addPrecisionDecimals(value,decimals) { \n const beforecomma = value.toString().split('.')[0].length;\n const precision = beforecomma + parseInt(decimals);\n return (precision > 0 && precision < 101) ? value.toPrecision(precision) : \"invalid decimals\";\n}\n\n/* \nalphaBlend – idea adapted from https://github.com/bgrins/TinyColor/issues/157\n*/\nfunction alphaBlend(color1,color2) {\n const basecolor = tinycolor(color1);\n const blendcolor = tinycolor(color2);\n const base = [basecolor._r, basecolor._g, basecolor._b, basecolor._a];\n const add = [blendcolor._r, blendcolor._g, blendcolor._b, blendcolor._a];\n let mix = [];\n mix[3] = 1 - (1 - add[3]) * (1 - base[3]); // alpha\n mix[0] = Math.round((add[0] * add[3] / mix[3]) + (base[0] * base[3] * (1 - add[3]) / mix[3])); // red\n mix[1] = Math.round((add[1] * add[3] / mix[3]) + (base[1] * base[3] * (1 - add[3]) / mix[3])); // green\n mix[2] = Math.round((add[2] * add[3] / mix[3]) + (base[2] * base[3] * (1 - add[3]) / mix[3])); // blue\n const finalcolor = tinycolor.fromRatio({r: mix[0], g: mix[1], b: mix[2], a: mix[3]});\n return finalcolor.toRgbString(); \n}\n\n/* \nalphaContrast – calculate alpha against a background first\n*/\nfunction alphaContrast(background,foreground) {\n // maybe calculate a ± margin like Lea Verou does on https://leaverou.github.io/contrast-ratio/ ?\n // color.overlayOn(Color.BLACK).luminance + ' - ' + color.overlayOn(Color.WHITE).luminance;\n let color1 = background;\n const alpha1 = tinycolor(background).getAlpha();\n if(alpha1 < 1) {\n if(tinycolor(foreground).isLight() && tinycolor(background).isDark()) {\n color1 = alphaBlend(\"#000\", background);\n }\n else {\n color1 = alphaBlend(\"#fff\", background);\n }\n }\n // if foreground has transparency do an alphaBlend on background\n const alpha2 = tinycolor(foreground).getAlpha();\n const color2 = alpha2 < 1 ? alphaBlend(color1, foreground) : foreground;\n return tinycolor.readability(color1, color2);\n}\n\n/* \nprecisionContrast – indicate precision for alphaContrast\n*/\nfunction precisionContrast(background,foreground,decimals,indicator) {\n const contrast = alphaContrast(background, foreground);\n const result = addPrecisionDecimals(contrast, decimals);\n const alpha = tinycolor(background).getAlpha();\n return alpha < 1 && indicator ? indicator + result : result;\n}\n\n/* \ninvert – convert to negative\n*/\nfunction invert(color) {\n const basecolor = tinycolor(color);\n const base = [basecolor._r, basecolor._g, basecolor._b, basecolor._a];\n let inverted = [];\n inverted[0] = Math.round(255 - base[0]); // red\n inverted[1] = Math.round(255 - base[1]); // green\n inverted[2] = Math.round(255 - base[2]); // blue\n const finalcolor = tinycolor.fromRatio({r: inverted[0], g: inverted[1], b: inverted[2], a: base[3]});\n return finalcolor.toRgbString(); \n}\n\n/* \ninvertBrightness\n*/\nfunction invertBrightness(color) {\n const basecolor = tinycolor(color);\n const brightness = basecolor.getBrightness(); // 0–255\n const shift = Math.round((255 - (brightness * 2)) / 2.55);\n let inverted = shift >= 0 ? basecolor.brighten(shift) : basecolor.darken(shift * -1);\n return inverted.toRgb(); \n}\n\n/*\nRun the macro\n*/\nexports.run = function(color,mod,value,alpha,action) {\n var result = \"\";\n var color1 = wikifyText(color);\n var mycolor = color1 !== \"random\" ? tinycolor(color1) : tinycolor.random();\n if(value === false) {\n // set default\n value = mod === \"mix\" ? 50 : 10;\n }\n // apply modification\n if(mod) {\n if(mod === \"lighten\" || mod === \"brighten\" || mod === \"darken\"\n || mod === \"desaturate\" || mod === \"saturate\" || mod === \"spin\") {\n mycolor[mod](parseInt(value, 10));\n }\n else if(mod === \"greyscale\") {\n mycolor[mod]();\n }\n else if(mod === \"complement\") {\n mycolor.spin(180);\n }\n else if(mod === \"invert\") {\n mycolor = tinycolor(invert(color1));\n }\n else if(mod === \"invertBrightness\") {\n mycolor = tinycolor(invertBrightness(color1));\n }\n else if(action === \"getContrast\" || action === \"getReadability\" \n || action === \"mix\" || action === \"alphablend\" || action === \"compare\" || action === \"equals\") {\n // set mod as color2, don’t use alpha param\n let secondcolor = wikifyText(mod);\n var color2 = tinycolor(secondcolor).toRgbString();\n alpha = false;\n }\n }\n // set alpha\n if(alpha) {\n mycolor.setAlpha(alpha);\n }\n // execute action\n if(action !== \"toRgbString\") {\n if(action === \"getBrightness\" || action === \"getFormat\" || action === \"getLuminance\"\n || action === \"getAlpha\" || action === \"isLight\" || action === \"isDark\"|| action === \"isValid\"\n || action === \"toHexString\" || action === \"toHsvString\" || action === \"toHslString\"\n || action === \"toHex\"|| action === \"toName\" || action === \"toFilter\") {\n result = mycolor[action]();\n }\n else if(action === \"toHsl\" || action === \"toHsv\") {\n let objResult = mycolor[action]();\n result = JSON.stringify(objResult);\n }\n else if(action === \"getContrast\") {\n result= precisionContrast(color1, color2, 1, \"~\");\n }\n else if(action === \"getReadability\") {\n let contrastratio = precisionContrast(color1, color2, 1);\n result = contrastratio >= 3 ? \"AA large\" : \"fail\";\n result = contrastratio >= 4.5 ? \"AAA large/AA small\" : result;\n result = contrastratio >= 7 ? \"AAA small\" : result;\n }\n else if(action === \"mix\") {\n result = tinycolor.mix(color1, color2, value);\n }\n else if(action === \"alphablend\") {\n result = alphaBlend(color1, color2);\n }\n else if(action === \"equals\") {\n result = tinycolor.equals(color1, color2);\n }\n else if(action === \"getOriginalInput\") {\n result = mycolor.getOriginalInput();\n }\n }\n else {\n result = mycolor.toRgbString(); \n }\n result = result === 0 ? \"0\" : result;\n result = result === false ? \"false\" : result;\n return result;\n};\n\n})();\n",
"type": "application/javascript",
"title": "$:/plugins/telmiger/ColorAction/coloraction.js",
"tags": "StylesheetManager",
"module-type": "macro",
"modifier": "Thomas Elmiger",
"modified": "20180128092244840",
"creator": "Thomas Elmiger",
"created": "20170626211546891"
},
"$:/plugins/telmiger/ColorAction/colors": {
"created": "20180104210557083",
"creator": "Thomas Elmiger",
"text": "!!! Named Colors\n\n[[TinyColor|https://github.com/bgrins/TinyColor]] supports named colors according to ''W3C Extended color keywords'' supported by popular browsers. The list is the same as the SVG 1.0 color keyword names.\n\nSee https://www.w3.org/TR/css-color-3/#svg-color\n\n\n!!! Note for developers\nThe list of colours might be the same as in $:/core/modules/utils/dom/csscolorparser.js (var kCSSColorTable). Maybe we can import it from there in the future?",
"title": "$:/plugins/telmiger/ColorAction/colors",
"tags": "",
"modifier": "Thomas Elmiger",
"modified": "20180106170406842"
},
"$:/plugins/telmiger/ColorAction/licence": {
"text": "`TinyColor and ColorAction are both published under the MIT Licence.`\n\n!!! TinyColor\nThe library in $:/plugins/telmiger/ColorAction/tinycolor.js is<br>\nCopyright (c), Brian Grinstead, https://briangrinstead.com\n\n!!! ColorAction\nThe macro in $:/plugins/telmiger/ColorAction/coloraction.js is<br>\nCopyright (c), Thomas Elmiger, https://thomas-elmiger.ch\n\n!!! MIT Licence\n\nPermission 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\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.",
"title": "$:/plugins/telmiger/ColorAction/licence",
"tags": "",
"modifier": "Thomas Elmiger",
"modified": "20180104064048013",
"creator": "Thomas Elmiger",
"created": "20180104062422859"
},
"$:/plugins/telmiger/ColorAction/readme": {
"created": "20180102220706333",
"creator": "Thomas Elmiger",
"text": "{{$:/plugins/telmiger/ColorAction/about}}\n\nThe macro handles most methods from https://github.com/bgrins/TinyColor#methods plus some additional ones: //invert//, //invertBrightness// and //alphablend//.\n\n!!! Syntax and attributes\n\nNote: if the color input is not valid then the macro will act like it was //black// when being used with other actions than //isValid//.\n\n`<<coloraction #000 lighten 95 .5 toHex>>`\n<br>Result: <<coloraction #000 lighten 95 .5 toHex>>\n\n```\n<$macrocall $name=\"coloraction\" color=\"#000\" mod=\"lighten\" value=\"95\" alpha=\".5\" action=\"toHex\"/>\n```\nResult: <$macrocall $name=\"coloraction\" color=\"#000\" mod=\"lighten\" value=\"95\" alpha=\".5\" action=\"toHex\"/>\n\n!!!! Default attribute values\n* color: #000\n* mod: false\n* value: 10 / 50 for action \"mix\"\n* alpha: false\n* action: toRgbString\n\n!!!! Modifications (mod)\n* lighten\n* brighten\n* darken\n* desaturate\n* saturate\n* greyscale\n\n''Modification utilities''\n\n* //spin// gets you another color from the color wheel which is tuned //value// degrees\n* //complement// (implemented with a spin-workaround)\n* //invert// \n* //invertBrightness//\n* Get a random color: Use //random// instead of a color value.\n\n!!!! Alpha\n* setAlpha is implemented as a separate parameter //alpha.//\n\n!!!! Actions\n\n* getFormat\n* getBrightness\n* isValid\n* isLight\n* isDark\n* getAlpha\n* getLuminance\n* getOriginalInput\n* toHex\n* toHsl – returns a JSON-string\n* toHsv – returns a JSON-string\n* toHexString\n* toHslString\n* toHsvString\n* toName\n* toFilter\n\n---\n\n!!! Two color actions\nThe second attribute //mod// is used as second color.\n\n* color: background\n* color2: foreground\n\n!!!! Readability and contrast\nImplementations differ from https://github.com/bgrins/TinyColor#readability\n\n//NB:// If the first/background color has an alpha < 1 we assume a white or black background behind it. If the foreground is light and the background is dark, then black is used, else white. The lack of precision is indicated using a tilde ~ in front of the resulting value. \n\n```\n<$macrocall $name=\"coloraction\" color=\"#000\" mod=\"#f59\" action=\"getReadability\"/>\n```\n\nResult: <$macrocall $name=\"coloraction\" color=\"#000\" mod=\"#f59\" action=\"getReadability\"/>\n\n* getContrast\n** Returns the contrast ratio between two colors.\n* getReadability\n** Returns the best grade of the following:\n**# AAA small (>= 7:1)\n**# AAA large/AA small (>= 4.5:1)\n**# AA large (>= 3:1)\n**# fail (< 3:1)\n\n!!!! Mix \n* //value// defines the percentage of color2 (defaults to 50)\n* alpha value is mixed separately\n\n```\n<<coloraction \"rgb(100,0,0)\" \"rgba(0,0,100,.5)\" \"75\" action:\"mix\">>\n```\nResult: <$macrocall $name=\"coloraction\" color=\"rgb(100,0,0)\" mod=\"rgba(0,0,100,.5)\" value=\"75\" action=\"mix\"/>\n\n!!!! Alphablend\nThis uses color1 as background and color2/mod as a foreground overlay. \n\n* For optimal results color2 should have an alpha value < 1 so some of the background is blended in. \n* Any //value// attribute is ignored.\n\n```\n<<coloraction \"rgb(100,0,0)\" \"rgba(0,0,100,.5)\" action:\"alphablend\">>\n```\nResult: <<coloraction \"rgb(100,0,0)\" \"rgba(0,0,100,.5)\" action:\"alphablend\">>\n\n!!!! Equals – is it the same?\n\n```\n<<coloraction \"rgba(0,0,255,1)\" #00f action:\"equals\">>\n```\nResult: <<coloraction \"rgba(0,0,255,1)\" #00f action:\"equals\">>\n\n---\n\n!!! Not implemented\n* isReadable – we have getReadability instead\n* mostReadable – TW has $:/core/modules/macros/contrastcolour.js for this (?)\n* Color Combinations other than //complement//\n** analogous\n** monochromatic\n** splitcomplement\n** triad\n** tetrad\n* clone\n* maybe I overlooked something …",
"title": "$:/plugins/telmiger/ColorAction/readme",
"tags": "",
"modifier": "Thomas Elmiger",
"modified": "20200607201419634"
},
"$:/plugins/telmiger/ColorAction/tinycolor.js": {
"text": "// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n// the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n// the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n// tinycolor.isReadable(\"#000\", \"#111\") => false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\n\nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // <http://www.w3.org/TR/css3-values/#integers>\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // <http://www.w3.org/TR/css3-values/#number-value>\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n",
"type": "application/javascript",
"title": "$:/plugins/telmiger/ColorAction/tinycolor.js",
"module-type": "library",
"modifier": "Thomas Elmiger",
"modified": "20180104210121385",
"creator": "Thomas Elmiger",
"created": "20180102215141661"
},
"$:/plugins/telmiger/ColorAction/usage": {
"created": "20180104211952441",
"creator": "Thomas Elmiger",
"text": "Documentation is not as extensive as one could wish at the moment. You can open [[this tiddler|$:/plugins/telmiger/ColorAction/usage]] in edit mode and activate the preview to compare macros and results.\n\n!!! Usage and Examples\n\n!!!! Actions\n\n* No parameters: <<coloraction>>\n* Color only (red): <<coloraction red>>\n* getFormat: <<coloraction #fff action:getFormat>>\n* Brightness of red: <<coloraction red action:getBrightness>>\n* Luminance of black: <<coloraction black action:getLuminance>>\n* Check input: <$macrocall $name=\"coloraction\" color=<<--white>> alpha=\".5\" action=\"getOriginalInput\"/>\n** Input core colour macro: <$macrocall $name=\"coloraction\" color=<<colour primary>> action=\"getOriginalInput\"/> \n* Named colours: #f00 is ''<<coloraction #f00 action:toName>>''\n* Filter: <<coloraction #f00 action:toFilter>>\n\n---\n\n!!! Modifications\n\n* darken f00: <<coloraction #f00 darken>>\n* lighten the result: <<coloraction \"rgb(204, 0, 0)\" lighten>>\n* lighten black, apply alpha: <<coloraction #000 lighten 95 .5>>\n* brighten red: <<coloraction #f00 brighten 50>>\n* convert to greyscale: <<coloraction \"rgb(204, 102, 102)\" greyscale>>\n* desaturate to grey:<<coloraction \"rgb(204, 102, 102)\" desaturate 100>>\n* saturate 30/255: <<coloraction \"rgb(204, 102, 102)\" saturate 30>>\n* saturate 100: <<coloraction \"rgb(99, 100, 100)\" saturate 100>>\n\n!!!! Saturate gray color? It turns redish.\n`<<coloraction \"rgb(20, 20, 20)\" saturate 100>>`\n\nResult: <<coloraction \"rgb(20, 20, 20)\" saturate 100>>\n\n\n!!!! Complement\n* Page background, complement of <$macrocall $name=coloraction color=<<colour page-background>> action=getOriginalInput/> is this: <$macrocall $name=coloraction color=<<colour page-background>> mod=complement/>\n* complement for #f00: <<coloraction #f00 complement action:toHex>>\n** backwards from #00ffff: <<coloraction #00ffff complement action:toHex>>\n* complement with alpha 0.3: <<coloraction \"rgba(200, 20, 20, .3)\" complement>>\n\nThe //complement// modification is implemented as a spin with a value of 180 (the result is the same). \n\n!!!! Invert\nOther than complement, this inverts the brightness of a colour too: \n\n* invert #f00: <<coloraction #f00 invert action:toHex>>\n* invert #333: <<coloraction #333 invert action:toHex>>\n* invert with alpha 0.3: <<coloraction \"rgba(200, 20, 20, .3)\" invert>>\n\n\n!!!! Spinning\n* spin 360 returns input, e.g. for #f00: <<coloraction #f00 spin 360 1 toHexString>>\n* spin 90: <<coloraction #f00 spin 90>>\n* spin 180: <<coloraction #f00 spin 180>>\n* Spin the variable for page-background: <$macrocall $name=coloraction color=<<colour page-background>> mod=\"spin\" value=\"180\"/>\n* negative spin works too: <<coloraction #f00 spin -180>>\n\n---\n\n!!!! Mix and Alphablend\n\nmix: <<coloraction \"rgb(100,0,0)\" \"rgba(0,0,100,.5)\" \"75\" action:\"mix\">>\n\nmix default (50): <<coloraction \"rgb(100,0,0)\" \"rgb(0,0,100)\" action:\"mix\">>\n\nalphablend: <<coloraction \"rgba(0, 0, 0, .5)\" \"rgba(0, 10, 100, .5)\" .5 action:\"alphablend\">>\n\nalphablend2 – <<coloraction \"rgb(200, 100, 50)\" \"rgba(250,200,100, .5)\" .5 action:\"alphablend\">>\n\n---\n\n!!!! Random colors\n<<coloraction random>><br>\n<<coloraction random>>\n",
"title": "$:/plugins/telmiger/ColorAction/usage",
"tags": "",
"modifier": "Thomas Elmiger",
"modified": "20180128100812041"
},
"$:/plugins/telmiger/ColorAction/icon": {
"text": "<svg class=\"tc-image-button telmiger-icon\" viewBox=\"0 0 128 128\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" aria-labelledby=\"title\">\n <path class=\"circle\" d=\"M64 2a62 62 0 100 124A62 62 0 0064 2z\" fill=\"#e2001a\"/>\n <path class=\"t\" d=\"M100.4 63.3a26 26 0 01-14 2.8h-8c-4.2 0-7.3.9-9.2 2.6-2 1.7-3.5 5-4.6 10.2 0 0-.2 1.4-.5 1.4s-.4-.8-.5-1.5a37.9 37.9 0 00-.7-2.8c-.7-2.1-1.3-3.7-2-4.8a10 10 0 00-2.8-3.3 8.3 8.3 0 00-4-1.5L52 66H41.7c-6.1 0-10.7-1-13.7-2.8-5-3.2-7.6-9.2-8-18l.1-2.1h.6c.4 4 3.7 7 6.1 9.2 2.4 2.2 6.3 3.2 11.6 3.2h9.3c5.4 0 9.3 1.3 11.7 3.7a18 18 0 014.4 10.4c.1.5 0 .8.2.8s.1-.3.2-.8c.7-6.1 3-10.2 7.1-12.3 2.5-1.3 6.4-2 11.9-1.9l6.3.1c4.3.1 8-.7 11-2.5 2.9-1.8 6.4-5 6.8-10h.5c.2.6.2 1.6.2 2.4-.4 8.8-3 14.7-7.6 17.8z\" fill=\"#fff\"/>\n</svg>",
"title": "$:/plugins/telmiger/ColorAction/icon",
"tags": "",
"modified": "20200604221719750",
"created": "20200604221532918"
},
"$:/plugins/telmiger/ColorAction/support": {
"created": "20200607195734703",
"text": "{{$:/plugins/telmiger/support}}",
"title": "$:/plugins/telmiger/ColorAction/support",
"tags": "",
"modified": "20200607195849209"
},
"$:/plugins/telmiger/support": {
"created": "20200607195635635",
"text": "!! Support the Author\n\n''Hi!'' I’m Thomas, the author of [[tid.li/tw5/plugins.html|https://tid.li/tw5/plugins.html]]. Feedback is always welcome, as well as funding for maintenance, support and new projects :)\n\n---\n\n!!! One Time Support\n\nIf using my plugins just makes you happy, consider a one time payment via ~PayPal to reward the effort:\n\nhttps://www.paypal.me/telmiger\n\n---\n\n!!! Permanent Support\n\nIf my tools make you more productive or save you time in your job or your everyday life, you can support me as a Patron: \n\nhttps://www.patreon.com/telmiger\n\n---\n\n!!! Thank You\n\nSubstantial parts of my availabe time go to the deveopment of useful plugins for [[TiddlyWiki|https://tiddlywiki.com/]]. – Many others do the same and I would like to thank them all, especially [[Jeremy Ruston|https://tiddlywiki.com/#JeremyRuston]] and all the active members of the community!\n\n//Hereby I promise to share future revenues (if any) with other developers who’s works I use or who inspired me.//\n\nIf you like my work, I would be very happy to hear from you.\n\n''Thank you very much for your support!''<br>\n//Thomas//\n\nhttps://thomas-elmiger.ch",
"title": "$:/plugins/telmiger/support",
"tags": "",
"modifier": "Thomas Elmiger",
"modified": "20200607195645379",
"creator": "Thomas Elmiger"
},
"$:/plugins/telmiger/ColorAction/about": {
"created": "20200607201415444",
"modified": "20200607201415445",
"title": "$:/plugins/telmiger/ColorAction/about",
"text": "Use one or two colors and one or two of these features:\n\n* ''actions'' get information about a color\n* ''modifications'' calculate a new color\n** optionally set an ''alpha'' value for the result\n* ''utilities'' create a random color or spin the color wheel\n* ''two color actions'' compare or combine colors",
"tags": ""
}
}
}
{"tiddlers":{"$:/config/EditorTypeMappings/application/javascript":{"text":"codemirror"},"$:/config/EditorTypeMappings/application/json":{"text":"codemirror"},"$:/config/EditorTypeMappings/application/x-tiddler-dictionary":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/css":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/html":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/plain":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/vnd.tiddlywiki":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/x-markdown":{"text":"codemirror"},"$:/config/EditorTypeMappings/text/x-tiddlywiki":{"text":"codemirror"},"$:/config/codemirror/cursorBlinkRate":{"type":"string","text":"530\n"},"$:/config/codemirror/extraKeysTW":{"extend":"extraKeys","type":"json","text":"{\n\t\"Ctrl-Esc\": \"singleSelection\",\n\t\"Esc\": \"\",\n\t\"Ctrl-S\": \"\",\n\t\"Ctrl-U\": \"\",\n\t\"Ctrl-T\": \"\",\n\t\"Alt-T\": \"transposeChars\",\n\t\"Alt-U\": \"undoSelection\",\n\t\"Shift-Alt-U\": \"redoSelection\",\n\t\"Cmd-U\": \"\"\n}\n"},"$:/config/codemirror/indentUnit":{"text":"2\n"},"$:/config/codemirror/inputStyle":{"type":"string","text":"textarea\n"},"$:/config/codemirror/keyMap":{"type":"string","text":"default\n"},"$:/config/codemirror/lineNumbers":{"type":"bool","text":"false\n"},"$:/config/codemirror/lineWrapping":{"type":"bool","text":"true"},"$:/config/codemirror/showCursorWhenSelecting":{"type":"bool","text":"true\n"},"$:/config/codemirror/styleActiveLine":{"type":"bool","text":"false\n"},"$:/config/codemirror/tabSize":{"text":"4\n"},"$:/config/codemirror/theme":{"type":"string","text":"default\n"},"$:/language/codemirror/homeUrl":{"text":"http://codemirror.net"},"$:/language/codemirror/addOnUrl":{"text":"http://codemirror.net/doc/manual.html#addons"},"$:/language/codemirror/configUrl":{"text":"http://codemirror.net/doc/manual.html#config"},"$:/language/codemirror/controlPanel/hint":{"text":"These settings let you customise the behaviour of [[CodeMirror|$:/plugins/tiddlywiki/codemirror]]."},"$:/language/codemirror/controlPanel/usage":{"text":"Usage information"},"$:/language/codemirror/editorFont/hint":{"text":"Editor font family"},"$:/language/codemirror/editorFont/info":{"text":"Set the font family for the ~CodeMirror text-editor"},"$:/language/codemirror/controlPanel/keyboard":{"text":"Keyboard shortcuts"},"$:/language/codemirror/keyMap/hint":{"text":"~CodeMirror keymap"},"$:/language/codemirror/keyMap/info":{"text":"~The Keyboard KeyMap used within the ~CodeMirror text-editor"},"$:/language/codemirror/lineNumbers/hint":{"text":"Enable line numbers"},"$:/language/codemirror/lineNumbers/info":{"text":"Whether to show line numbers to the left of the editor."},"$:/language/codemirror/lineWrapping/hint":{"text":"Enable line wrapping"},"$:/language/codemirror/lineWrapping/info":{"text":"Whether CodeMirror should scroll or wrap for long lines. Defaults to `false` (scroll)."},"$:/language/codemirror/showCursorWhenSelecting/hint":{"text":"Show cursor, when selecting"},"$:/language/codemirror/showCursorWhenSelecting/info":{"text":"Whether the cursor should be drawn when a selection is active."},"$:/language/codemirror/styleActiveLine/hint":{"text":"Highlight active line"},"$:/language/codemirror/styleActiveLine/info":{"text":"Whether or not to highlight the active text-editor line"},"$:/language/codemirror/theme/hint":{"text":"Select a theme"},"$:/language/codemirror/theme/info":{"text":"Choose between ~CodeMirror themes"},"$:/plugins/tiddlywiki/codemirror/edit-codemirror.js":{"text":"!function(){'use strict';var r=require('$:/core/modules/editor/factory.js').editTextWidgetFactory,e=require('$:/plugins/tiddlywiki/codemirror/engine.js').CodeMirrorEngine;exports['edit-codemirror']=r(e,e)}();","type":"application/javascript","module-type":"widget"},"$:/plugins/tiddlywiki/codemirror/engine.js":{"text":"!function(){'use strict';var d='[all[shadows+tiddlers]prefix[$:/config/codemirror/]]';if($tw.browser&&!window.CodeMirror){var t=$tw.modules.types.codemirror,e=Object.getOwnPropertyNames(t);if(window.CodeMirror=require('$:/plugins/tiddlywiki/codemirror/lib/codemirror.js'),e)if($tw.utils.isArray(e))for(var i=0;i<e.length;i++)require(e[i]);else require(e)}function r(t){var i=this;t=t||{},this.widget=t.widget,this.value=t.value,this.parentNode=t.parentNode,this.nextSibling=t.nextSibling,this.domNode=this.widget.document.createElement('div'),this.widget.editClass&&(this.domNode.className=this.widget.editClass),this.domNode.style.display='inline-block',this.parentNode.insertBefore(this.domNode,this.nextSibling),this.widget.domNodes.push(this.domNode);var e=function(){var t,e,i,r,s={},o=$tw.wiki.filterTiddlers(d);if($tw.utils.isArray(o))for(var n=0;n<o.length;n++)if(r=$tw.wiki.getTiddler(o[n]))switch(e=o[n].replace(/\\$:\\/config\\/codemirror\\//gi,''),r.fields.type?r.fields.type.trim().toLocaleLowerCase():'string'){case'bool':t='true'===r.fields.text.trim().toLowerCase(),s[e]=t;break;case'string':t=r.fields.text.trim(),s[e]=t;break;case'integer':t=parseInt(r.fields.text.trim(),10),s[e]=t;break;case'json':t=JSON.parse(r.fields.text.trim()),s[i=r.fields.extend||e]?$tw.utils.extend(s[i],t):s[i]=t}return s}();e.mode=t.type,e.value=t.value,this.cm=window.CodeMirror(function(t){i.domNode.appendChild(t)},e),this.cm.on('change',function(){i.widget.saveChanges(i.getText())}),this.cm.on('drop',function(t,e){return e.stopPropagation(),!1}),this.cm.on('keydown',function(t,e){return i.widget.handleKeydownEvent.call(i.widget,e)})}r.prototype.setText=function(t,e){this.cm.setOption('mode',e),this.cm.hasFocus()||this.cm.setValue(t)},r.prototype.getText=function(){return this.cm.getValue()},r.prototype.fixHeight=function(){var t;this.widget.editAutoHeight?this.cm.setSize(null,null):(t=parseInt(this.widget.wiki.getTiddlerText('$:/config/TextEditor/EditorHeight/Height','400px'),10),t=Math.max(t,20),this.cm.setSize(null,t))},r.prototype.focus=function(){this.cm.focus()},r.prototype.createTextOperation=function(){var t,e=this.cm.listSelections();0<e.length&&(t=this.cm.indexFromPos(e[0].anchor),i=this.cm.indexFromPos(e[0].head));var i={text:this.cm.getValue(),selStart:Math.min(t,i),selEnd:Math.max(t,i),cutStart:null,cutEnd:null,replacement:null,newSelStart:null,newSelEnd:null};return i.selection=i.text.substring(i.selStart,i.selEnd),i},r.prototype.executeTextOperation=function(t){var e=t.text;return null!==t.replacement&&(this.cm.replaceRange(t.replacement,this.cm.posFromIndex(t.cutStart),this.cm.posFromIndex(t.cutEnd)),this.cm.setSelection(this.cm.posFromIndex(t.newSelStart),this.cm.posFromIndex(t.newSelEnd)),e=t.text.substring(0,t.cutStart)+t.replacement+t.text.substring(t.cutEnd)),this.cm.focus(),e},exports.CodeMirrorEngine=r}();","type":"application/javascript","module-type":"library"},"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js":{"text":"var e,t;e=this,t=function(){'use strict';var e=navigator.userAgent,t=navigator.platform,d=/gecko\\/\\d/i.test(e),n=/MSIE \\d/.test(e),r=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),i=/Edge\\/(\\d+)/.exec(e),b=n||r||i,w=b&&(n?document.documentMode||6:+(i||r)[1]),x=!i&&/WebKit\\//.test(e),r=x&&/Qt\\/\\d+\\.\\d+/.test(e),o=!i&&/Chrome\\//.test(e),f=/Opera\\//.test(e),a=/Apple Computer/.test(navigator.vendor),l=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),m=/PhantomJS/.test(e),s=!i&&/AppleWebKit/.test(e)&&/Mobile\\/\\w+/.test(e),u=/Android/.test(e),c=s||u||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),C=s||/Mac/.test(t),S=/\\bCrOS\\b/.test(e),t=/win/i.test(t),e=f&&e.match(/Version\\/(\\d*\\.\\d*)/);(e=e&&Number(e[1]))&&15<=e&&(x=!(f=!1));var h=C&&(r||f&&(null==e||e<12.11)),p=d||b&&9<=w;function g(e){return new RegExp('(^|\\\\s)'+e+'(?:$|\\\\s)\\\\s*')}var y,v=function(e,t){var n=e.className,r=g(t).exec(n);r&&(t=n.slice(r.index+r[0].length),e.className=n.slice(0,r.index)+(t?r[1]+t:''))};function L(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.firstChild);return e}function k(e,t){return L(e).appendChild(t)}function M(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),'string'==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function T(e,t,n,r){r=M(e,t,n,r);return r.setAttribute('role','presentation'),r}function N(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function O(){var t;try{t=document.activeElement}catch(e){t=document.body||null}for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function A(e,t){var n=e.className;g(t).test(n)||(e.className+=(n?' ':'')+t)}function D(e,t){for(var n=e.split(' '),r=0;r<n.length;r++)n[r]&&!g(n[r]).test(t)&&(t+=' '+n[r]);return t}y=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd('character',n),r.moveStart('character',t),r};var W=function(e){e.select()};function H(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function F(e,t,n){for(var r in t=t||{},e)!e.hasOwnProperty(r)||!1===n&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function P(e,t,n,r,i){null==t&&-1==(t=e.search(/[^\\s\\u00a0]/))&&(t=e.length);for(var o=r||0,l=i||0;;){var s=e.indexOf('\\t',o);if(s<0||t<=s)return l+(t-o);l+=s-o,l+=n-l%n,o=s+1}}s?W=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:b&&(W=function(e){try{e.select()}catch(e){}});var E=function(){this.id=null};function z(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}E.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var I=30,R={toString:function(){return'CodeMirror.Pass'}},B={scroll:!1},G={origin:'*mouse'},U={origin:'+move'};function V(e,t,n){for(var r=0,i=0;;){var o=e.indexOf('\\t',r);-1==o&&(o=e.length);var l=o-r;if(o==e.length||t<=i+l)return r+Math.min(l,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var K=[''];function j(e){for(;K.length<=e;)K.push(X(K)+' ');return K[e]}function X(e){return e[e.length-1]}function Y(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function _(){}function q(e,t){e=Object.create?Object.create(e):(_.prototype=e,new _);return t&&F(t,e),e}var $=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;function Z(e){return/\\w/.test(e)||''<e&&(e.toUpperCase()!=e.toLowerCase()||$.test(e))}function Q(e,t){return t?!!(-1<t.source.indexOf('\\\\w')&&Z(e))||t.test(e):Z(e)}function J(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return;return 1}var ee=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function te(e){return 768<=e.charCodeAt(0)&&ee.test(e)}function ne(e,t,n){for(;(n<0?0<t:t<e.length)&&te(e.charAt(t));)t+=n;return t}function re(e,t,n){for(var r=n<t?-1:1;;){if(t==n)return t;var i=(t+n)/2,i=r<0?Math.ceil(i):Math.floor(i);if(i==t)return e(i)?t:n;e(i)?n=i:t=i+r}}function ie(e,t){if((t-=e.first)<0||t>=e.size)throw new Error('There is no line '+(t+e.first)+' in the document.');for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function oe(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){e=e.text;i==n.line&&(e=e.slice(0,n.ch)),i==t.line&&(e=e.slice(t.ch)),r.push(e),++i}),r}function le(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function se(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function ae(e){if(null==e.parent)return null;for(var t=e.parent,n=z(t.lines,e),r=t.parent;r;r=(t=r).parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function ue(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var l=0;l<e.lines.length;++l){var s=e.lines[l].height;if(t<s)break;t-=s}return n+l}function ce(e,t){return t>=e.first&&t<e.first+e.size}function he(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function de(e,t,n){if(void 0===n&&(n=null),!(this instanceof de))return new de(e,t,n);this.line=e,this.ch=t,this.sticky=n}function fe(e,t){return e.line-t.line||e.ch-t.ch}function pe(e,t){return e.sticky==t.sticky&&0==fe(e,t)}function ge(e){return de(e.line,e.ch)}function me(e,t){return fe(e,t)<0?t:e}function ve(e,t){return fe(e,t)<0?e:t}function ye(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function be(e,t){if(t.line<e.first)return de(e.first,0);var n=e.first+e.size-1;return t.line>n?de(n,ie(e,n).text.length):(e=ie(e,(n=t).line).text.length,null==(t=n.ch)||e<t?de(n.line,e):t<0?de(n.line,0):n)}function we(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=be(e,t[r]);return n}var xe=!1,Ce=!1;function Se(e,t,n){this.marker=e,this.from=t,this.to=n}function Le(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function ke(e,t){if(t.full)return null;var n=ce(e,t.from.line)&&ie(e,t.from.line).markedSpans,r=ce(e,t.to.line)&&ie(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,e=0==fe(t.from,t.to),l=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o,l=e[i],s=l.marker;null!=l.from&&!(s.inclusiveLeft?l.from<=t:l.from<t)&&(l.from!=t||'bookmark'!=s.type||n&&l.marker.insertLeft)||(o=null==l.to||(s.inclusiveRight?l.to>=t:l.to>t),(r=r||[]).push(new Se(s,l.from,o?null:l.to)))}return r}(n,i,e),s=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o,l=e[i],s=l.marker;null!=l.to&&!(s.inclusiveRight?l.to>=t:l.to>t)&&(l.from!=t||'bookmark'!=s.type||n&&!l.marker.insertLeft)||(o=null==l.from||(s.inclusiveLeft?l.from<=t:l.from<t),(r=r||[]).push(new Se(s,o?null:l.from-t,null==l.to?null:l.to-t)))}return r}(r,o,e),a=1==t.text.length,u=X(t.text).length+(a?i:0);if(l)for(var c=0;c<l.length;++c){var h,d=l[c];null==d.to&&((h=Le(s,d.marker))?a&&(d.to=null==h.to?null:h.to+u):d.to=i)}if(s)for(var f=0;f<s.length;++f){var p=s[f];null!=p.to&&(p.to+=u),null==p.from?Le(l,p.marker)||(p.from=u,a&&(l=l||[]).push(p)):(p.from+=u,a&&(l=l||[]).push(p))}l=l&&Te(l),s&&s!=l&&(s=Te(s));var g=[l];if(!a){var m,v=t.text.length-2;if(0<v&&l)for(var y=0;y<l.length;++y)null==l[y].to&&(m=m||[]).push(new Se(l[y].marker,null,null));for(var b=0;b<v;++b)g.push(m);g.push(s)}return g}function Te(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&!1!==n.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function Me(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function Ne(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function Oe(e){return e.inclusiveLeft?-1:0}function Ae(e){return e.inclusiveRight?1:0}function De(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),n=fe(r.from,i.from)||Oe(e)-Oe(t);return n?-n:fe(r.to,i.to)||Ae(e)-Ae(t)||t.id-e.id}function We(e,t){var n,r=Ce&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)(i=r[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!n||De(n,i.marker)<0)&&(n=i.marker);return n}function He(e){return We(e,!0)}function Fe(e){return We(e,!1)}function Pe(e,t,n,r,i){var t=ie(e,t),o=Ce&&t.markedSpans;if(o)for(var l=0;l<o.length;++l){var s=o[l];if(s.marker.collapsed){var a=s.marker.find(0),u=fe(a.from,n)||Oe(s.marker)-Oe(i),c=fe(a.to,r)||Ae(s.marker)-Ae(i);if(!(0<=u&&c<=0||u<=0&&0<=c)&&(u<=0&&(s.marker.inclusiveRight&&i.inclusiveLeft?0<=fe(a.to,n):0<fe(a.to,n))||0<=u&&(s.marker.inclusiveRight&&i.inclusiveLeft?fe(a.from,r)<=0:fe(a.from,r)<0)))return 1}}}function Ee(e){for(var t;t=He(e);)e=t.find(-1,!0).line;return e}function ze(e,t){var n=ie(e,t),e=Ee(n);return n==e?t:ae(e)}function Ie(e,t){if(t>e.lastLine())return t;var n,r=ie(e,t);if(!Re(e,r))return t;for(;n=Fe(r);)r=n.find(1,!0).line;return ae(r)+1}function Re(e,t){var n=Ce&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if((r=n[i]).marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&function e(t,n,r){if(null==r.to){var i=r.marker.find(1,!0);return e(t,i.line,Le(i.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==n.text.length)return!0;for(var o=void 0,l=0;l<n.markedSpans.length;++l)if((o=n.markedSpans[l]).marker.collapsed&&!o.marker.widgetNode&&o.from==r.to&&(null==o.to||o.to!=r.from)&&(o.marker.inclusiveLeft||r.marker.inclusiveRight)&&e(t,n,o))return!0}(e,t,r))return!0}}function Be(e){for(var t=0,n=(e=Ee(e)).parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;o=(n=o).parent)for(var l=0;l<o.children.length;++l){var s=o.children[l];if(s==n)break;t+=s.height}return t}function Ge(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=He(r);){var i=t.find(0,!0),r=i.from.line;n+=i.from.ch-i.to.ch}for(r=e;t=Fe(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,n+=(r=o.to.line).text.length-o.to.ch}return n}function Ue(e){var n=e.display,e=e.doc;n.maxLine=ie(e,e.first),n.maxLineLength=Ge(n.maxLine),n.maxLineChanged=!0,e.iter(function(e){var t=Ge(e);t>n.maxLineLength&&(n.maxLineLength=t,n.maxLine=e)})}var Ve=null;function Ke(e,t,n){var r;Ve=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&'before'==n?r=i:Ve=i),o.from==t&&(o.from!=o.to&&'before'!=n?r=i:Ve=i)}return null!=r?r:Ve}var je,Xe,Ye,_e,qe,$e=(je=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,Xe=/[stwN]/,Ye=/[LRr]/,_e=/[Lb1n]/,qe=/[1n]/,function(e,t){var n='ltr'==t?'L':'R';if(0==e.length||'ltr'==t&&!je.test(e))return!1;for(var r,i=e.length,o=[],l=0;l<i;++l)o.push((r=e.charCodeAt(l))<=247?'bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN'.charAt(r):1424<=r&&r<=1524?'R':1536<=r&&r<=1785?'nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111'.charAt(r-1536):1774<=r&&r<=2220?'r':8192<=r&&r<=8203?'w':8204==r?'b':'L');for(var s=0,a=n;s<i;++s){var u=o[s];'m'==u?o[s]=a:a=u}for(var c=0,h=n;c<i;++c){var d=o[c];'1'==d&&'r'==h?o[c]='n':Ye.test(d)&&('r'==(h=d)&&(o[c]='R'))}for(var f=1,p=o[0];f<i-1;++f){var g=o[f];'+'==g&&'1'==p&&'1'==o[f+1]?o[f]='1':','!=g||p!=o[f+1]||'1'!=p&&'n'!=p||(o[f]=p),p=g}for(var m=0;m<i;++m){var v=o[m];if(','==v)o[m]='N';else if('%'==v){for(var y=void 0,y=m+1;y<i&&'%'==o[y];++y);for(var b=m&&'!'==o[m-1]||y<i&&'1'==o[y]?'1':'N',w=m;w<y;++w)o[w]=b;m=y-1}}for(var x=0,C=n;x<i;++x){var S=o[x];'L'==C&&'1'==S?o[x]='L':Ye.test(S)&&(C=S)}for(var L=0;L<i;++L)if(Xe.test(o[L])){for(var k=void 0,k=L+1;k<i&&Xe.test(o[k]);++k);for(var T='L'==(L?o[L-1]:n),M=T==('L'==(k<i?o[k]:n))?T?'L':'R':n,N=L;N<k;++N)o[N]=M;L=k-1}for(var O,A=[],D=0;D<i;)if(_e.test(o[D])){var W=D;for(++D;D<i&&_e.test(o[D]);++D);A.push(new Ze(0,W,D))}else{var H=D,F=A.length;for(++D;D<i&&'L'!=o[D];++D);for(var P=H;P<D;)if(qe.test(o[P])){H<P&&A.splice(F,0,new Ze(1,H,P));var E=P;for(++P;P<D&&qe.test(o[P]);++P);A.splice(F,0,new Ze(2,E,P)),H=P}else++P;H<D&&A.splice(F,0,new Ze(1,H,D))}return'ltr'==t&&(1==A[0].level&&(O=e.match(/^\\s+/))&&(A[0].from=O[0].length,A.unshift(new Ze(0,0,O[0].length))),1==X(A).level&&(O=e.match(/\\s+$/))&&(X(A).to-=O[0].length,A.push(new Ze(0,i-O[0].length,i)))),'rtl'==t?A.reverse():A});function Ze(e,t,n){this.level=e,this.from=t,this.to=n}function Qe(e,t){var n=e.order;return null==n&&(n=e.order=$e(e.text,t)),n}var Je=[],et=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent('on'+t,n):(e=e._handlers||(e._handlers={}))[t]=(e[t]||Je).concat(n)};function tt(e,t){return e._handlers&&e._handlers[t]||Je}function nt(e,t,n){var r;e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent('on'+t,n):!(e=(r=e._handlers)&&r[t])||-1<(n=z(e,n))&&(r[t]=e.slice(0,n).concat(e.slice(n+1)))}function rt(e,t){var n=tt(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function it(e,t,n){return'string'==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),rt(e,n||t.type,e,t),ct(t)||t.codemirrorIgnore}function ot(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==z(n,t[r])&&n.push(t[r])}function lt(e,t){return 0<tt(e,t).length}function st(e){e.prototype.on=function(e,t){et(this,e,t)},e.prototype.off=function(e,t){nt(this,e,t)}}function at(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function ut(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ct(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ht(e){at(e),ut(e)}function dt(e){return e.target||e.srcElement}function ft(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),C&&e.ctrlKey&&1==t&&(t=3),t}var pt,gt,mt=function(){if(b&&w<9)return!1;var e=M('div');return'draggable'in e||'dragDrop'in e}();var vt=3!='\\n\\nb'.split(/\\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf('\\n',t);-1==i&&(i=e.length);var o=e.slice(t,'\\r'==e.charAt(i-1)?i-1:i),l=o.indexOf('\\r');-1!=l?(n.push(o.slice(0,l)),t+=l+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\\r\\n?|\\n/)},yt=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints('StartToEnd',t)},bt='oncopy'in(r=M('div'))||(r.setAttribute('oncopy','return;'),'function'==typeof r.oncopy),wt=null,xt={},Ct={};function St(e){if('string'==typeof e&&Ct.hasOwnProperty(e))e=Ct[e];else if(e&&'string'==typeof e.name&&Ct.hasOwnProperty(e.name)){var t=Ct[e.name];'string'==typeof t&&(t={name:t}),(e=q(t,e)).name=t.name}else{if('string'==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return St('application/xml');if('string'==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return St('application/json')}return'string'==typeof e?{name:e}:e||{name:'null'}}function Lt(e,t){t=St(t);var n=xt[t.name];if(!n)return Lt(e,'text/plain');var r=n(e,t);if(kt.hasOwnProperty(t.name)){var i,o=kt[t.name];for(i in o)o.hasOwnProperty(i)&&(r.hasOwnProperty(i)&&(r['_'+i]=r[i]),r[i]=o[i])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)r[l]=t.modeProps[l];return r}var kt={};function Tt(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n,r={};for(n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Mt(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Nt(e,t,n){return!e.startState||e.startState(t,n)}var Ot=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};Ot.prototype.eol=function(){return this.pos>=this.string.length},Ot.prototype.sol=function(){return this.pos==this.lineStart},Ot.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ot.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Ot.prototype.eat=function(e){var t=this.string.charAt(this.pos);if('string'==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Ot.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Ot.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Ot.prototype.skipToEnd=function(){this.pos=this.string.length},Ot.prototype.skipTo=function(e){e=this.string.indexOf(e,this.pos);if(-1<e)return this.pos=e,!0},Ot.prototype.backUp=function(e){this.pos-=e},Ot.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=P(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?P(this.string,this.lineStart,this.tabSize):0)},Ot.prototype.indentation=function(){return P(this.string,null,this.tabSize)-(this.lineStart?P(this.string,this.lineStart,this.tabSize):0)},Ot.prototype.match=function(e,t,n){if('string'!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&0<r.index?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}r=function(e){return n?e.toLowerCase():e};if(r(this.string.substr(this.pos,e.length))==r(e))return!1!==t&&(this.pos+=e.length),!0},Ot.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ot.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Ot.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Ot.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var At=function(e,t){this.state=e,this.lookAhead=t},Dt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function Wt(t,n,r,e){var a=[t.state.modeGen],i={};Gt(t,n.text,t.doc.mode,r,function(e,t){return a.push(e,t)},i,e);for(var u=r.state,o=0;o<t.state.overlays.length;++o)!function(e){r.baseTokens=a;var o=t.state.overlays[e],l=1,s=0;r.state=!0,Gt(t,n.text,o.mode,r,function(e,t){for(var n=l;s<e;){var r=a[l];e<r&&a.splice(l,1,e,a[l+1],r),l+=2,s=Math.min(e,r)}if(t)if(o.opaque)a.splice(n,l-n,e,'overlay '+t),l=n+2;else for(;n<l;n+=2){var i=a[n+1];a[n+1]=(i?i+' ':'')+'overlay '+t}},i),r.state=u,r.baseTokens=null,r.baseTokenPos=1}(o);return{styles:a,classes:i.bgClass||i.textClass?i:null}}function Ht(e,t,n){var r,i,o;return t.styles&&t.styles[0]==e.state.modeGen||(r=Ft(e,ae(t)),i=t.text.length>e.options.maxHighlightLength&&Tt(e.doc.mode,r.state),o=Wt(e,t,r),i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))),t.styles}function Ft(n,u,e){var t=n.doc,r=n.display;if(!t.mode.startState)return new Dt(t,!0,u);var i=function(e,t){for(var n,r,i=e.doc,o=t?-1:u-(e.doc.mode.innerMode?1e3:100),l=u;o<l;--l){if(l<=i.first)return i.first;var s=ie(i,l-1),a=s.stateAfter;if(a&&(!t||l+(a instanceof At?a.lookAhead:0)<=i.modeFrontier))return l;s=P(s.text,null,e.options.tabSize);(null==r||s<n)&&(r=l-1,n=s)}return r}(n,e),o=i>t.first&&ie(t,i-1).stateAfter,l=o?Dt.fromSaved(t,o,i):new Dt(t,Nt(t.mode),i);return t.iter(i,u,function(e){Pt(n,e.text,l);var t=l.line;e.stateAfter=t==u-1||t%5==0||t>=r.viewFrom&&t<r.viewTo?l.save():null,l.nextLine()}),e&&(t.modeFrontier=l.line),l}function Pt(e,t,n,r){var i=e.doc.mode,o=new Ot(t,e.options.tabSize,n);for(o.start=o.pos=r||0,''==t&&Et(i,n.state);!o.eol();)zt(i,o,n.state),o.start=o.pos}function Et(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){t=Mt(e,t);return t.mode.blankLine?t.mode.blankLine(t.state):void 0}}function zt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Mt(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error('Mode '+e.name+' failed to advance stream.')}Dt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Dt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,''),size:this.baseTokens[this.baseTokenPos]-e}},Dt.prototype.nextLine=function(){this.line++,0<this.maxLookAhead&&this.maxLookAhead--},Dt.fromSaved=function(e,t,n){return t instanceof At?new Dt(e,Tt(e.mode,t.state),n,t.lookAhead):new Dt(e,Tt(e.mode,t),n)},Dt.prototype.save=function(e){e=!1!==e?Tt(this.doc.mode,this.state):this.state;return 0<this.maxLookAhead?new At(e,this.maxLookAhead):e};function It(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n}function Rt(e,t,n,r){var i,o,l=e.doc,s=l.mode,a=ie(l,(t=be(l,t)).line),u=Ft(e,t.line,n),c=new Ot(a.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=zt(s,c,u.state),r&&o.push(new It(c,i,Tt(l.mode,u.state)));return r?o:new It(c,i,u.state)}function Bt(e,t){if(e)for(;;){var n=e.match(/(?:^|\\s+)line-(background-)?(\\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?'bgClass':'textClass';null==t[r]?t[r]=n[2]:new RegExp('(?:^|s)'+n[2]+'(?:$|s)').test(t[r])||(t[r]+=' '+n[2])}return e}function Gt(e,t,n,r,i,o,l){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var a=0,u=null,c=new Ot(t,e.options.tabSize,r),h=e.options.addModeClass&&[null];for(''==t&&Bt(Et(n,r.state),o);!c.eol();){var d,f=c.pos>e.options.maxHighlightLength?(s=!1,l&&Pt(e,t,r,c.pos),c.pos=t.length,null):Bt(zt(n,c,r.state,h),o);if(h&&(d=h[0].name)&&(f='m-'+(f?d+' '+f:d)),!s||u!=f){for(;a<c.start;)i(a=Math.min(c.start,a+5e3),u);u=f}c.start=c.pos}for(;a<c.pos;){var p=Math.min(c.pos,a+5e3);i(p,u),a=p}}var Ut=function(e,t,n){this.text=e,Ne(this,t),this.height=n?n(this):1};Ut.prototype.lineNo=function(){return ae(this)},st(Ut);var Vt={},Kt={};function jt(e,t){if(!e||/^\\s*$/.test(e))return null;t=t.addModeClass?Kt:Vt;return t[e]||(t[e]=e.replace(/\\S+/g,'cm-$&'))}function Xt(e,t){var n=T('span',null,null,x?'padding-right: .1px':null),r={pre:T('pre',[n],'CodeMirror-line'),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(b||x)&&e.getOption('lineWrapping')};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;r.pos=0,r.addToken=_t,function(e){if(null!=gt)return gt;var t=k(e,document.createTextNode('AخA')),n=y(t,0,1).getBoundingClientRect(),t=y(t,1,2).getBoundingClientRect();return L(e),n&&n.left!=n.right&&(gt=t.right-n.right<3)}(e.display.measure)&&(l=Qe(o,e.doc.direction))&&(r.addToken=function(h,d){return function(e,t,n,r,i,o,l){n=n?n+' cm-force-border':'cm-force-border';for(var s=e.pos,a=s+t.length;;){for(var u=void 0,c=0;c<d.length&&!((u=d[c]).to>s&&u.from<=s);c++);if(u.to>=a)return h(e,t,n,r,i,o,l);h(e,t.slice(0,u.to-s),n,r,null,o,l),r=null,t=t.slice(u.to-s),s=u.to}}}(r.addToken,l)),r.map=[],function(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var l,s,a,u,c,h,d,f=i.length,p=0,g=1,m='',v=0;;){if(v==p){a=u=c=h=s='',d=null,v=1/0;for(var y=[],b=void 0,w=0;w<r.length;++w){var x=r[w],C=x.marker;'bookmark'==C.type&&x.from==p&&C.widgetNode?y.push(C):x.from<=p&&(null==x.to||x.to>p||C.collapsed&&x.to==p&&x.from==p)?(null!=x.to&&x.to!=p&&v>x.to&&(v=x.to,u=''),C.className&&(a+=' '+C.className),C.css&&(s=(s?s+';':'')+C.css),C.startStyle&&x.from==p&&(c+=' '+C.startStyle),C.endStyle&&x.to==v&&(b=b||[]).push(C.endStyle,x.to),C.title&&!h&&(h=C.title),C.collapsed&&(!d||De(d.marker,C)<0)&&(d=x)):x.from>p&&v>x.from&&(v=x.from)}if(b)for(var S=0;S<b.length;S+=2)b[S+1]==v&&(u+=' '+b[S]);if(!d||d.from==p)for(var L=0;L<y.length;++L)qt(t,0,y[L]);if(d&&(d.from||0)==p){if(qt(t,(null==d.to?f+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(f<=p)break;for(var k=Math.min(f,v);;){if(m){var T,M=p+m.length;if(d||(T=k<M?m.slice(0,k-p):m,t.addToken(t,T,l?l+a:a,c,p+T.length==v?u:'',h,s)),k<=M){m=m.slice(k-p),p=k;break}p=M,c=''}m=i.slice(o,o=n[g++]),l=jt(n[g++],t.cm.options)}}else for(var N=1;N<n.length;N+=2)t.addToken(t,i.slice(o,o=n[N]),jt(n[N+1],t.cm.options))}(o,r,Ht(e,o,t!=e.display.externalMeasured&&ae(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=D(o.styleClasses.bgClass,r.bgClass||'')),o.styleClasses.textClass&&(r.textClass=D(o.styleClasses.textClass,r.textClass||''))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(function(e){null==pt&&(t=M('span',''),k(e,M('span',[t,document.createTextNode('x')])),0!=e.firstChild.offsetHeight&&(pt=t.offsetWidth<=1&&2<t.offsetHeight&&!(b&&w<8)));var t=pt?M('span',''):M('span',' ',null,'display: inline-block; width: 1px; margin-right: -1px');return t.setAttribute('cm-text',''),t}(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}return x&&(n=r.content.lastChild,(/\\bcm-tab\\b/.test(n.className)||n.querySelector&&n.querySelector('.cm-tab'))&&(r.content.className='cm-tab-wrap-hack')),rt(e,'renderLine',e,t.line,r.pre),r.pre.className&&(r.textClass=D(r.pre.className,r.textClass||'')),r}function Yt(e){var t=M('span','•','cm-invalidchar');return t.title='\\\\u'+e.charCodeAt(0).toString(16),t.setAttribute('aria-label',t.title),t}function _t(e,t,n,r,i,o,l){if(t){var s,a=e.splitSpaces?function(e,t){if(1<e.length&&!/ /.test(e))return e;for(var n=t,r='',i=0;i<e.length;i++){var o=e.charAt(i);' '!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=' '),r+=o,n=' '==o}return r}(t,e.trailingSpace):t,u=e.cm.state.specialChars,c=!1;if(u.test(t)){s=document.createDocumentFragment();for(var h=0;;){u.lastIndex=h;var d=u.exec(t),f=d?d.index-h:t.length-h;if(f&&(p=document.createTextNode(a.slice(h,h+f)),b&&w<9?s.appendChild(M('span',[p])):s.appendChild(p),e.map.push(e.pos,e.pos+f,p),e.col+=f,e.pos+=f),!d)break;h+=1+f;var p=void 0;'\\t'==d[0]?(f=(f=e.cm.options.tabSize)-e.col%f,(p=s.appendChild(M('span',j(f),'cm-tab'))).setAttribute('role','presentation'),p.setAttribute('cm-text','\\t'),e.col+=f):('\\r'==d[0]||'\\n'==d[0]?(p=s.appendChild(M('span','\\r'==d[0]?'␍':'','cm-invalidchar'))).setAttribute('cm-text',d[0]):((p=e.cm.options.specialCharPlaceholder(d[0])).setAttribute('cm-text',d[0]),b&&w<9?s.appendChild(M('span',[p])):s.appendChild(p)),e.col+=1),e.map.push(e.pos,e.pos+1,p),e.pos++}}else e.col+=t.length,s=document.createTextNode(a),e.map.push(e.pos,e.pos+t.length,s),b&&w<9&&(c=!0),e.pos+=t.length;if(e.trailingSpace=32==a.charCodeAt(t.length-1),n||r||i||c||l){n=n||'';r&&(n+=r),i&&(n+=i);l=M('span',[s],n,l);return o&&(l.title=o),e.content.appendChild(l)}e.content.appendChild(s)}}function qt(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i=i||e.content.appendChild(document.createElement('span'))).setAttribute('cm-marker',n.id),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function $t(e,t,n){this.line=t,this.rest=function(e){for(var t,n;t=Fe(e);)e=t.find(1,!0).line,(n=n||[]).push(e);return n}(t),this.size=this.rest?ae(X(this.rest))-n+1:1,this.node=this.text=null,this.hidden=Re(e,t)}function Zt(e,t,n){for(var r=[],i=t;i<n;i=l){var o=new $t(e.doc,ie(e.doc,i),i),l=i+o.size;r.push(o)}return r}var Qt=null,Jt=null;function en(e,t){var n=tt(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);Qt?r=Qt.delayedCallbacks:Jt?r=Jt:(r=Jt=[],setTimeout(tn,0));for(var o=0;o<n.length;++o)!function(e){r.push(function(){return n[e].apply(null,i)})}(o)}}function tn(){var e=Jt;Jt=null;for(var t=0;t<e.length;++t)e[t]()}function nn(e,t,n,r){for(var i,o,l,s,a=0;a<t.changes.length;a++){var u=t.changes[a];'text'==u?(i=e,s=l=void 0,l=(o=t).text.className,s=on(i,o),o.text==o.node&&(o.node=s.pre),o.text.parentNode.replaceChild(s.pre,o.text),o.text=s.pre,s.bgClass!=o.bgClass||s.textClass!=o.textClass?(o.bgClass=s.bgClass,o.textClass=s.textClass,ln(i,o)):l&&(o.text.className=l)):'gutter'==u?sn(e,t,n,r):'class'==u?ln(e,t):'widget'==u&&function(e,t,n){t.alignable&&(t.alignable=null);for(var r=t.node.firstChild,i=void 0;r;r=i)i=r.nextSibling,'CodeMirror-linewidget'==r.className&&t.node.removeChild(r);an(e,t,n)}(e,t,r)}t.changes=null}function rn(e){return e.node==e.text&&(e.node=M('div',null,null,'position: relative'),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),b&&w<8&&(e.node.style.zIndex=2)),e.node}function on(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):Xt(e,t)}function ln(e,t){var n,r;n=e,(r=(i=t).bgClass?i.bgClass+' '+(i.line.bgClass||''):i.line.bgClass)&&(r+=' CodeMirror-linebackground'),i.background?r?i.background.className=r:(i.background.parentNode.removeChild(i.background),i.background=null):r&&(e=rn(i),i.background=e.insertBefore(M('div',null,r),e.firstChild),n.display.input.setUneditable(i.background)),t.line.wrapClass?rn(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className='');var i=t.textClass?t.textClass+' '+(t.line.textClass||''):t.line.textClass;t.text.className=i||''}function sn(e,t,n,r){t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass&&(o=rn(t),t.gutterBackground=M('div',null,'CodeMirror-gutter-background '+t.line.gutterClass,'left: '+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+'px; width: '+r.gutterTotalWidth+'px'),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text));var i=t.line.gutterMarkers;if(e.options.lineNumbers||i){var o=rn(t),l=t.gutter=M('div',null,'CodeMirror-gutter-wrapper','left: '+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+'px');if(e.display.input.setUneditable(l),o.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=' '+t.line.gutterClass),!e.options.lineNumbers||i&&i['CodeMirror-linenumbers']||(t.lineNumber=l.appendChild(M('div',he(e.options,n),'CodeMirror-linenumber CodeMirror-gutter-elt','left: '+r.gutterLeft['CodeMirror-linenumbers']+'px; width: '+e.display.lineNumInnerWidth+'px'))),i)for(var s=0;s<e.options.gutters.length;++s){var a=e.options.gutters[s],u=i.hasOwnProperty(a)&&i[a];u&&l.appendChild(M('div',[u],'CodeMirror-gutter-elt','left: '+r.gutterLeft[a]+'px; width: '+r.gutterWidth[a]+'px'))}}}function an(e,t,n){if(un(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)un(e,t.rest[r],t,n,!1)}function un(e,t,n,r,i){if(t.widgets)for(var o=rn(n),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=M('div',[a.node],'CodeMirror-linewidget');a.handleMouseEvents||u.setAttribute('cm-ignore-events','true'),h=u,d=n,f=r,(c=a).noHScroll&&((d.alignable||(d.alignable=[])).push(h),d=f.wrapperWidth,h.style.left=f.fixedPos+'px',c.coverGutter||(d-=f.gutterTotalWidth,h.style.paddingLeft=f.gutterTotalWidth+'px'),h.style.width=d+'px'),c.coverGutter&&(h.style.zIndex=5,h.style.position='relative',c.noHScroll||(h.style.marginLeft=-f.gutterTotalWidth+'px')),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,n.gutter||n.text):o.appendChild(u),en(a,'redraw')}var c,h,d,f}function cn(e){if(null!=e.height)return e.height;var t,n=e.doc.cm;return n?(N(document.body,e.node)||(t='position: relative;',e.coverGutter&&(t+='margin-left: -'+n.display.gutters.offsetWidth+'px;'),e.noHScroll&&(t+='width: '+n.display.wrapper.clientWidth+'px;'),k(n.display.measure,M('div',[e.node],null,t))),e.height=e.node.parentNode.offsetHeight):0}function hn(e,t){for(var n=dt(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&'true'==n.getAttribute('cm-ignore-events')||n.parentNode==e.sizer&&n!=e.mover)return 1}function dn(e){return e.lineSpace.offsetTop}function fn(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function pn(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=k(e.measure,M('pre','x')),t=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,t={left:parseInt(t.paddingLeft),right:parseInt(t.paddingRight)};return isNaN(t.left)||isNaN(t.right)||(e.cachedPaddingH=t),t}function gn(e){return I-e.display.nativeBarWidth}function mn(e){return e.display.scroller.clientWidth-gn(e)-e.display.barWidth}function vn(e){return e.display.scroller.clientHeight-gn(e)-e.display.barHeight}function yn(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(ae(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function bn(e,t,n,r){return Cn(e,xn(e,t),n,r)}function wn(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[qn(e,t)];e=e.display.externalMeasured;return e&&t>=e.lineN&&t<e.lineN+e.size?e:void 0}function xn(e,t){var n=ae(t),r=wn(e,n);r&&!r.text?r=null:r&&r.changes&&(nn(e,r,n,Kn(e)),e.curOp.forceUpdate=!0);n=yn(r=r||function(e,t){var n=ae(t=Ee(t)),t=e.display.externalMeasured=new $t(e.doc,t,n);t.lineN=n;n=t.built=Xt(e,t);return t.text=n.pre,k(e.display.lineMeasure,n.pre),t}(e,t),t,n);return{line:t,view:r,rect:null,map:n.map,cache:n.cache,before:n.before,hasHeights:!1}}function Cn(u,e,v,t,n){e.before&&(v=-1);var r,i=v+(t||'');return e.cache.hasOwnProperty(i)?r=e.cache[i]:(e.rect||(e.rect=e.view.text.getBoundingClientRect()),e.hasHeights||(function(e,t){var n=u.options.lineWrapping,r=n&&mn(u);if(!e.measure.heights||n&&e.measure.width!=r){var i=e.measure.heights=[];if(n){e.measure.width=r;for(var o=e.text.firstChild.getClientRects(),l=0;l<o.length-1;l++){var s=o[l],a=o[l+1];2<Math.abs(s.bottom-a.bottom)&&i.push((s.bottom+a.top)/2-t.top)}}i.push(t.bottom-t.top)}}(e.view,e.rect),e.hasHeights=!0),(r=function(e,t,n){var r,i=kn(t.map,v,n),o=i.node,l=i.start,s=i.end,a=i.collapse;if(3==o.nodeType){for(var u=0;u<4;u++){for(;l&&te(t.line.text.charAt(i.coverStart+l));)--l;for(;i.coverStart+s<i.coverEnd&&te(t.line.text.charAt(i.coverStart+s));)++s;if((r=b&&w<9&&0==l&&s==i.coverEnd-i.coverStart?o.parentNode.getBoundingClientRect():function(e,t){var n=Ln;if('left'==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;0<=i&&(n=e[i]).left==n.right;i--);return n}(y(o,l,s).getClientRects(),n)).left||r.right||0==l)break;s=l,--l,a='right'}b&&w<11&&(r=function(n,e){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(){if(null!=wt)return wt;var e=k(n,M('span','x')),t=e.getBoundingClientRect(),e=y(e,0,1).getBoundingClientRect();return wt=1<Math.abs(t.left-e.left)}())return e;var t=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:e.left*t,right:e.right*t,top:e.top*r,bottom:e.bottom*r}}(e.display.measure,r))}else 0<l&&(a=n='right'),r=e.options.lineWrapping&&1<(g=o.getClientRects()).length?g['right'==n?g.length-1:0]:o.getBoundingClientRect();!(b&&w<9)||l||r&&(r.left||r.right)||(r=(m=o.parentNode.getClientRects()[0])?{left:m.left,right:m.left+Vn(e.display),top:m.top,bottom:m.bottom}:Ln);for(var c=r.top-t.rect.top,h=r.bottom-t.rect.top,d=(c+h)/2,f=t.view.measure.heights,p=0;p<f.length-1&&!(d<f[p]);p++);var g=p?f[p-1]:0,m=f[p],m={left:('right'==a?r.right:r.left)-t.rect.left,right:('left'==a?r.left:r.right)-t.rect.left,top:g,bottom:m};return r.left||r.right||(m.bogus=!0),e.options.singleCursorHeightPerLine||(m.rtop=c,m.rbottom=h),m}(u,e,t)).bogus||(e.cache[i]=r)),{left:r.left,right:r.right,top:n?r.rtop:r.top,bottom:n?r.rbottom:r.bottom}}var Sn,Ln={left:0,right:0,top:0,bottom:0};function kn(e,t,n){for(var r,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e[u+1],t<s?(i=0,o=1,l='left'):t<a?o=1+(i=t-s):(u==e.length-3||t==a&&e[u+3]>t)&&(i=(o=a-s)-1,a<=t&&(l='right')),null!=i){if(r=e[u+2],s==a&&n==(r.insertLeft?'left':'right')&&(l=n),'left'==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],l='left';if('right'==n&&i==a-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)r=e[(u+=3)+2],l='right';break}return{node:r,start:i,end:o,collapse:l,coverStart:s,coverEnd:a}}function Tn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Mn(e){e.display.externalMeasure=null,L(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Tn(e.display.view[t])}function Nn(e){Mn(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function On(){return o&&u?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function An(){return o&&u?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Dn(e){var t=0;if(e.widgets)for(var n=0;n<e.widgets.length;++n)e.widgets[n].above&&(t+=cn(e.widgets[n]));return t}function Wn(e,t,n,r,i){if(i||(i=Dn(t),n.top+=i,n.bottom+=i),'line'==r)return n;r=r||'local';t=Be(t);return'local'==r?t+=dn(e.display):t-=e.display.viewOffset,'page'!=r&&'window'!=r||(t+=(e=e.display.lineSpace.getBoundingClientRect()).top+('window'==r?0:An()),r=e.left+('window'==r?0:On()),n.left+=r,n.right+=r),n.top+=t,n.bottom+=t,n}function Hn(e,t,n){if('div'==n)return t;var r=t.left,t=t.top;'page'==n?(r-=On(),t-=An()):'local'!=n&&n||(r+=(n=e.display.sizer.getBoundingClientRect()).left,t+=n.top);e=e.display.lineSpace.getBoundingClientRect();return{left:r-e.left,top:t-e.top}}function Fn(e,t,n,r,i){return Wn(e,r=r||ie(e.doc,t.line),bn(e,r,t.ch,i),n)}function Pn(n,e,r,i,o,l){function s(e,t){e=Cn(n,o,e,t?'right':'left',l);return t?e.left=e.right:e.right=e.left,Wn(n,i,e,r)}i=i||ie(n.doc,e.line),o=o||xn(n,i);var a=Qe(i,n.doc.direction),t=e.ch,u=e.sticky;if(t>=i.text.length?(t=i.text.length,u='before'):t<=0&&(t=0,u='after'),!a)return s('before'==u?t-1:t,'before'==u);function c(e,t,n){return s(n?e-1:e,1==a[t].level!=n)}var h=Ke(a,t,u),e=Ve,h=c(t,h,'before'==u);return null!=e&&(h.other=c(t,e,'before'!=u)),h}function En(e,t){var n=0;t=be(e.doc,t),e.options.lineWrapping||(n=Vn(e.display)*t.ch);t=ie(e.doc,t.line),e=Be(t)+dn(e.display);return{left:n,right:n,top:e,bottom:e+t.height}}function zn(e,t,n,r,i){n=de(e,t,n);return n.xRel=i,r&&(n.outside=!0),n}function In(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return zn(r.first,0,null,!0,-1);var i=ue(r,n),o=r.first+r.size-1;if(o<i)return zn(r.first+r.size-1,ie(r,o).text.length,null,!0,1);t<0&&(t=0);for(var l=ie(r,i);;){var s=function(n,e,t,r,i){i-=Be(e);var o=xn(n,e),l=Dn(e),s=0,a=e.text.length,u=!0,c=Qe(e,n.doc.direction);c&&(f=(n.options.lineWrapping?function(e,t,n,r,i,o,l){var l=Rn(e,t,r,l),s=l.begin,a=l.end;/\\s/.test(t.text.charAt(a-1))&&a--;for(var u=null,c=null,h=0;h<i.length;h++){var d,f=i[h];f.from>=a||f.to<=s||(d=(d=Cn(e,r,1!=f.level?Math.min(a,f.to)-1:Math.max(s,f.from)).right)<o?o-d+1e9:d-o,(!u||d<c)&&(u=f,c=d))}return(u=u||i[i.length-1]).from<s&&(u={from:s,to:u.to,level:u.level}),u.to>a&&(u={from:u.from,to:a,level:u.level}),u}:function(n,r,i,o,l,s,a){var e,t=re(function(e){var t=l[e],e=1!=t.level;return Gn(Pn(n,de(i,e?t.to:t.from,e?'before':'after'),'line',r,o),s,a,!0)},0,l.length-1),u=l[t];return 0<t&&(e=1!=u.level,Gn(e=Pn(n,de(i,e?u.from:u.to,e?'after':'before'),'line',r,o),s,a,!0)&&e.top>a&&(u=l[t-1])),u})(n,e,t,o,c,r,i),s=(u=1!=f.level)?f.from:f.to-1,a=u?f.to:f.from-1);var h=null,d=null,c=re(function(e){var t=Cn(n,o,e);return t.top+=l,t.bottom+=l,Gn(t,r,i,!1)&&(t.top<=i&&t.left<=r&&(h=e,d=t),1)},s,a),f=!1;{var p,g;d?(p=r-d.left<d.right-r,c=h+((g=p==u)?0:1),g=g?'after':'before',p=p?d.left:d.right):(u||c!=a&&c!=s||c++,g=0==c||c!=e.text.length&&Cn(n,o,c-(u?1:0)).bottom+l<=i==u?'after':'before',u=Pn(n,de(t,c,g),'line',e,o),p=u.left,f=i<u.top||i>=u.bottom)}return zn(t,c=ne(e.text,c,1),g,f,r-p)}(e,l,i,t,n),a=Fe(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&0<s.xRel))return s;i=ae(l=u.to.line)}}function Rn(t,e,n,r){r-=Dn(e);var i=e.text.length,e=re(function(e){return Cn(t,n,e-1).bottom<=r},i,0);return{begin:e,end:re(function(e){return Cn(t,n,e).top>r},e,i)}}function Bn(e,t,n,r){return Rn(e,t,n=n||xn(e,t),Wn(e,t,Cn(e,n,r),'line').top)}function Gn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Un(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Sn){Sn=M('pre');for(var t=0;t<49;++t)Sn.appendChild(document.createTextNode('x')),Sn.appendChild(M('br'));Sn.appendChild(document.createTextNode('x'))}k(e.measure,Sn);var n=Sn.offsetHeight/50;return 3<n&&(e.cachedTextHeight=n),L(e.measure),n||1}function Vn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=M('span','xxxxxxxxxx'),n=M('pre',[t]);k(e.measure,n);t=t.getBoundingClientRect(),t=(t.right-t.left)/10;return 2<t&&(e.cachedCharWidth=t),t||10}function Kn(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)n[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[l]]=o.clientWidth;return{fixedPos:jn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function jn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Xn(r){var i=Un(r.display),o=r.options.lineWrapping,l=o&&Math.max(5,r.display.scroller.clientWidth/Vn(r.display)-3);return function(e){if(Re(r.doc,e))return 0;var t=0;if(e.widgets)for(var n=0;n<e.widgets.length;n++)e.widgets[n].height&&(t+=e.widgets[n].height);return o?t+(Math.ceil(e.text.length/l)||1)*i:t+i}}function Yn(e){var t=e.doc,n=Xn(e);t.iter(function(e){var t=n(e);t!=e.height&&se(e,t)})}function _n(e,t,n,r){var i=e.display;if(!n&&'true'==dt(t).getAttribute('cm-not-content'))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,i=In(e,o,l);return r&&1==i.xRel&&(a=ie(e.doc,i.line).text).length==i.ch&&(a=P(a,a.length,e.options.tabSize)-a.length,i=de(i.line,Math.max(0,Math.round((o-pn(e.display).left)/Vn(e.display))-a))),i}function qn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function $n(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Zn(e,t){void 0===t&&(t=!0);for(var n,r,i=e.doc,o={},l=o.cursors=document.createDocumentFragment(),s=o.selection=document.createDocumentFragment(),a=0;a<i.sel.ranges.length;a++)!t&&a==i.sel.primIndex||(n=i.sel.ranges[a]).from().line>=e.display.viewTo||n.to().line<e.display.viewFrom||(((r=n.empty())||e.options.showCursorWhenSelecting)&&Qn(e,n.head,l),r||function(i,e,t){var n=i.display,o=i.doc,l=document.createDocumentFragment(),r=pn(i.display),S=r.left,L=Math.max(n.sizerWidth,mn(i)-n.sizer.offsetLeft)-r.right,k='ltr'==o.direction;function T(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),l.appendChild(M('div',null,'CodeMirror-selected','position: absolute; left: '+e+'px;\\n top: '+t+'px; width: '+(null==n?L-e:n)+'px;\\n height: '+(r-t)+'px'))}function s(n,g,m){var v,y,r=ie(o,n),b=r.text.length;function w(e,t){return Fn(i,de(n,e),'div',r,t)}function x(e,t,n){e=Bn(i,r,null,e),t='ltr'==t==('after'==n)?'left':'right';return w('after'==n?e.begin:e.end-(/\\s/.test(r.text.charAt(e.end-1))?2:1),t)[t]}var C=Qe(r,o.direction);return function(e,t,n,r){if(!e)return r(t,n,'ltr',0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<n&&l.to>t||t==n&&l.to==t)&&(r(Math.max(l.from,t),Math.min(l.to,n),1==l.level?'rtl':'ltr',o),i=!0)}i||r(t,n,'ltr')}(C,g||0,null==m?b:m,function(e,t,n,r){var i,o,l,s,a='ltr'==n,u=w(e,a?'left':'right'),c=w(t-1,a?'right':'left'),h=null==g&&0==e,d=null==m&&t==b,f=0==r,p=!C||r==C.length-1;c.top-u.top<=3?(i=(k?d:h)&&p,r=(k?h:d)&&f?S:(a?u:c).left,i=i?L:(a?c:u).right,T(r,u.top,i-r,u.bottom)):(n=a?(o=k&&h&&f?S:u.left,l=k?L:x(e,n,'before'),s=k?S:x(t,n,'after'),k&&d&&p?L:c.right):(o=k?x(e,n,'before'):S,l=!k&&h&&f?L:u.right,s=!k&&d&&p?S:c.left,k?x(t,n,'after'):L),T(o,u.top,l-o,u.bottom),u.bottom<c.top&&T(S,u.bottom,null,c.top),T(s,c.top,n-s,c.bottom)),(!v||Jn(u,v)<0)&&(v=u),Jn(c,v)<0&&(v=c),(!y||Jn(u,y)<0)&&(y=u),Jn(c,y)<0&&(y=c)}),{start:v,end:y}}var a=e.from(),n=e.to();a.line==n.line?s(a.line,a.ch,n.ch):(r=ie(o,a.line),e=ie(o,n.line),e=Ee(r)==Ee(e),r=s(a.line,a.ch,e?r.text.length+1:null).end,n=s(n.line,e?0:null,n.ch).start,e&&(r.top<n.top-2?(T(r.right,r.top,null,r.bottom),T(S,n.top,n.left,n.bottom)):T(r.right,r.top,n.left-r.right,r.bottom)),r.bottom<n.top&&T(S,r.bottom,null,n.top)),t.appendChild(l)}(e,n,s));return o}function Qn(e,t,n){var r=Pn(e,t,'div',null,null,!e.options.singleCursorHeightPerLine),t=n.appendChild(M('div',' ','CodeMirror-cursor'));t.style.left=r.left+'px',t.style.top=r.top+'px',t.style.height=Math.max(0,r.bottom-r.top)*e.options.cursorHeight+'px',r.other&&((n=n.appendChild(M('div',' ','CodeMirror-cursor CodeMirror-secondarycursor'))).style.display='',n.style.left=r.other.left+'px',n.style.top=r.other.top+'px',n.style.height=.85*(r.other.bottom-r.other.top)+'px')}function Jn(e,t){return e.top-t.top||e.left-t.left}function er(e){var t,n;e.state.focused&&(t=e.display,clearInterval(t.blinker),n=!0,t.cursorDiv.style.visibility='',0<e.options.cursorBlinkRate?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?'':'hidden'},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility='hidden'))}function tr(e){e.state.focused||(e.display.input.focus(),rr(e))}function nr(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,ir(e))},100)}function rr(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),'nocursor'!=e.options.readOnly&&(e.state.focused||(rt(e,'focus',e,t),e.state.focused=!0,A(e.display.wrapper,'CodeMirror-focused'),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),x&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),er(e))}function ir(e,t){e.state.delayingBlurEvent||(e.state.focused&&(rt(e,'blur',e,t),e.state.focused=!1,v(e.display.wrapper,'CodeMirror-focused')),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function or(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i,o=t.view[r],l=void 0;if(!o.hidden){b&&w<8?(l=(i=o.node.offsetTop+o.node.offsetHeight)-n,n=i):l=(s=o.node.getBoundingClientRect()).bottom-s.top;var s=o.line.height-l;if(l<2&&(l=Un(t)),(.005<s||s<-.005)&&(se(o.line,l),lr(o.line),o.rest))for(var a=0;a<o.rest.length;a++)lr(o.rest[a])}}}function lr(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var n=e.widgets[t],r=n.node.parentNode;r&&(n.height=r.offsetHeight)}}function sr(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop,r=Math.floor(r-dn(e)),i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=ue(t,r),r=ue(t,i);return n&&n.ensure&&(i=n.ensure.from.line,n=n.ensure.to.line,i<o?r=ue(t,Be(ie(t,o=i))+e.wrapper.clientHeight):Math.min(n,t.lastLine())>=r&&(o=ue(t,Be(ie(t,n))-e.wrapper.clientHeight),r=n)),{from:o,to:Math.max(r,o+1)}}function ar(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=jn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+'px',l=0;l<n.length;l++)if(!n[l].hidden){e.options.fixedGutter&&(n[l].gutter&&(n[l].gutter.style.left=o),n[l].gutterBackground&&(n[l].gutterBackground.style.left=o));var s=n[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+'px')}}function ur(e){if(e.options.lineNumbers){var t=e.doc,n=he(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(M('div',[M('div',n)],'CodeMirror-linenumber CodeMirror-gutter-elt')),t=i.firstChild.offsetWidth,i=i.offsetWidth-t;return r.lineGutter.style.width='',r.lineNumInnerWidth=Math.max(t,r.lineGutter.offsetWidth-i)+1,r.lineNumWidth=r.lineNumInnerWidth+i,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+'px',Ur(e),1}}}function cr(e,t){var n=e.display,r=Un(e.display);t.top<0&&(t.top=0);var i=(e.curOp&&null!=e.curOp.scrollTop?e.curOp:n.scroller).scrollTop,o=vn(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+fn(n),a=t.top<r,r=t.bottom>s-r;t.top<i?l.scrollTop=a?0:t.top:t.bottom>i+o&&((u=Math.min(t.top,(r?s:t.bottom)-o))!=i&&(l.scrollTop=u));var u=(e.curOp&&null!=e.curOp.scrollLeft?e.curOp:n.scroller).scrollLeft,e=mn(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),n=t.right-t.left>e;return n&&(t.right=t.left+e),t.left<10?l.scrollLeft=0:t.left<u?l.scrollLeft=Math.max(0,t.left-(n?0:10)):t.right>e+u-3&&(l.scrollLeft=t.right+(n?0:10)-e),l}function hr(e,t){null!=t&&(pr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc:e.curOp).scrollTop+t)}function dr(e){pr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function fr(e,t,n){null==t&&null==n||pr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function pr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,gr(e,En(e,t.from),En(e,t.to),t.margin))}function gr(e,t,n,r){r=cr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});fr(e,r.scrollLeft,r.scrollTop)}function mr(e,t){Math.abs(e.doc.scrollTop-t)<2||(d||Gr(e,{top:t}),vr(e,t,!0),d&&Gr(e),Er(e,100))}function vr(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),e.display.scroller.scrollTop==t&&!n||(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function yr(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,ar(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function br(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+fn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+gn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}e=function(e,t,n){this.cm=n;var r=this.vert=M('div',[M('div',null,null,'min-width: 1px')],'CodeMirror-vscrollbar'),i=this.horiz=M('div',[M('div',null,null,'height: 100%; min-height: 1px')],'CodeMirror-hscrollbar');e(r),e(i),et(r,'scroll',function(){r.clientHeight&&t(r.scrollTop,'vertical')}),et(i,'scroll',function(){i.clientWidth&&t(i.scrollLeft,'horizontal')}),this.checkedZeroWidth=!1,b&&w<8&&(this.horiz.style.minHeight=this.vert.style.minWidth='18px')};e.prototype.update=function(e){var t,n=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,i=e.nativeBarWidth;return r?(this.vert.style.display='block',this.vert.style.bottom=n?i+'px':'0',t=e.viewHeight-(n?i:0),this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+t)+'px'):(this.vert.style.display='',this.vert.firstChild.style.height='0'),n?(this.horiz.style.display='block',this.horiz.style.right=r?i+'px':'0',this.horiz.style.left=e.barLeft+'px',t=e.viewWidth-e.barLeft-(r?i:0),this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+t)+'px'):(this.horiz.style.display='',this.horiz.firstChild.style.width='0'),!this.checkedZeroWidth&&0<e.clientHeight&&(0==i&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?i:0,bottom:n?i:0}},e.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,'horiz')},e.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,'vert')},e.prototype.zeroWidthHack=function(){var e=C&&!l?'12px':'18px';this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents='none',this.disableHoriz=new E,this.disableVert=new E},e.prototype.enableZeroWidthBar=function(n,r,i){n.style.pointerEvents='auto',r.set(1e3,function e(){var t=n.getBoundingClientRect();('vert'==i?document.elementFromPoint(t.right-1,(t.top+t.bottom)/2):document.elementFromPoint((t.right+t.left)/2,t.bottom-1))!=n?n.style.pointerEvents='none':r.set(1e3,e)})},e.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};r=function(){};function wr(e,t){t=t||br(e);var n=e.display.barWidth,r=e.display.barHeight;xr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&or(e),xr(e,br(e)),n=e.display.barWidth,r=e.display.barHeight}function xr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+'px',n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+'px',n.heightForcer.style.borderBottom=r.bottom+'px solid transparent',r.right&&r.bottom?(n.scrollbarFiller.style.display='block',n.scrollbarFiller.style.height=r.bottom+'px',n.scrollbarFiller.style.width=r.right+'px'):n.scrollbarFiller.style.display='',r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display='block',n.gutterFiller.style.height=r.bottom+'px',n.gutterFiller.style.width=t.gutterWidth+'px'):n.gutterFiller.style.display=''}r.prototype.update=function(){return{bottom:0,right:0}},r.prototype.setScrollLeft=function(){},r.prototype.setScrollTop=function(){},r.prototype.clear=function(){};var Cr={native:e,null:r};function Sr(n){n.display.scrollbars&&(n.display.scrollbars.clear(),n.display.scrollbars.addClass&&v(n.display.wrapper,n.display.scrollbars.addClass)),n.display.scrollbars=new Cr[n.options.scrollbarStyle](function(e){n.display.wrapper.insertBefore(e,n.display.scrollbarFiller),et(e,'mousedown',function(){n.state.focused&&setTimeout(function(){return n.display.input.focus()},0)}),e.setAttribute('cm-not-content','true')},function(e,t){('horizontal'==t?yr:mr)(n,e)},n),n.display.scrollbars.addClass&&A(n.display.wrapper,n.display.scrollbars.addClass)}var Lr=0;function kr(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Lr},e=e.curOp,Qt?Qt.ops.push(e):e.ownsGroup=Qt={ops:[e],delayedCallbacks:[]}}function Tr(t){!function(){var e=t.curOp.ownsGroup;if(e)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}(e)}finally{Qt=null,function(g){for(var e=0;e<g.ops.length;e++)g.ops[e].cm.curOp=null;!function(){for(var e,t,n,r,i,o=g.ops,l=0;l<o.length;l++)e=o[l],i=r=n=t=void 0,r=e.cm,i=r.display,!(n=(t=r).display).scrollbarsClipped&&n.scroller.offsetWidth&&(n.nativeBarWidth=n.scroller.offsetWidth-n.scroller.clientWidth,n.heightForcer.style.height=gn(t)+'px',n.sizer.style.marginBottom=-n.nativeBarWidth+'px',n.sizer.style.borderRightWidth=gn(t)+'px',n.scrollbarsClipped=!0),e.updateMaxLine&&Ue(r),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&r.options.lineWrapping,e.update=e.mustUpdate&&new Ir(r,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate);for(var s,a=0;a<o.length;a++)(s=o[a]).updatedDisplay=s.mustUpdate&&Rr(s.cm,s.update);for(var u,c,h,d=0;d<o.length;d++)u=o[d],h=c=void 0,c=u.cm,h=c.display,u.updatedDisplay&&or(c),u.barMeasure=br(c),h.maxLineChanged&&!c.options.lineWrapping&&(u.adjustWidthTo=bn(c,h.maxLine,h.maxLine.text.length).left+3,c.display.sizerWidth=u.adjustWidthTo,u.barMeasure.scrollWidth=Math.max(h.scroller.clientWidth,h.sizer.offsetLeft+u.adjustWidthTo+gn(c)+c.display.barWidth),u.maxScrollLeft=Math.max(0,h.sizer.offsetLeft+u.adjustWidthTo-mn(c))),(u.updatedDisplay||u.selectionChanged)&&(u.preparedSelection=h.input.prepareSelection());for(var f=0;f<o.length;f++)!function(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+'px',e.maxScrollLeft<t.doc.scrollLeft&&yr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==O();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),!e.updatedDisplay&&e.startHeight==t.doc.height||wr(t,e.barMeasure),e.updatedDisplay&&Vr(t,e.barMeasure),e.selectionChanged&&er(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&tr(e.cm)}(o[f]);for(var p=0;p<o.length;p++)!function(e){var t=e.cm,n=t.display,r=t.doc;e.updatedDisplay&&Br(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&vr(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&yr(t,e.scrollLeft,!0,!0),e.scrollToPos&&function(e,t){var n,r,i;it(e,'scrollCursorIntoView')||(r=(n=e.display).sizer.getBoundingClientRect(),i=null,t.top+r.top<0?i=!0:t.bottom+r.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null==i||m||(t=M('div','',null,'position: absolute;\\n top: '+(t.top-n.viewOffset-dn(e.display))+'px;\\n height: '+(t.bottom-t.top+gn(e)+n.barHeight)+'px;\\n left: '+t.left+'px; width: '+Math.max(2,t.right-t.left)+'px;'),e.display.lineSpace.appendChild(t),t.scrollIntoView(i),e.display.lineSpace.removeChild(t)))}(t,function(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n='before'==(t=t.ch?de(t.line,'before'==t.sticky?t.ch-1:t.ch,'after'):t).sticky?de(t.line,t.ch+1,'before'):t);for(var o=0;o<5;o++){var l=!1,s=Pn(e,t),a=n&&n!=t?Pn(e,n):s,u=cr(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-r,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+r}),s=e.doc.scrollTop,a=e.doc.scrollLeft;if(null!=u.scrollTop&&(mr(e,u.scrollTop),1<Math.abs(e.doc.scrollTop-s)&&(l=!0)),null!=u.scrollLeft&&(yr(e,u.scrollLeft),1<Math.abs(e.doc.scrollLeft-a)&&(l=!0)),!l)break}return i}(t,be(r,e.scrollToPos.from),be(r,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l<i.length;++l)i[l].lines.length||rt(i[l],'hide');if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&rt(o[s],'unhide');n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&rt(t,'changes',t,e.changeObjs),e.update&&e.update.finish()}(o[p])}()}(e)}}()}function Mr(e,t){if(e.curOp)return t();kr(e);try{return t()}finally{Tr(e)}}function Nr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);kr(e);try{return t.apply(e,arguments)}finally{Tr(e)}}}function Or(e){return function(){if(this.curOp)return e.apply(this,arguments);kr(this);try{return e.apply(this,arguments)}finally{Tr(this)}}}function Ar(t){return function(){var e=this.cm;if(!e||e.curOp)return t.apply(this,arguments);kr(e);try{return t.apply(this,arguments)}finally{Tr(e)}}}function Dr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r=r||0;var i,o,l=e.display;r&&n<l.viewTo&&(null==l.updateLineNumbers||l.updateLineNumbers>t)&&(l.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=l.viewTo?Ce&&ze(e.doc,t)<l.viewTo&&Hr(e):n<=l.viewFrom?Ce&&Ie(e.doc,n+r)>l.viewFrom?Hr(e):(l.viewFrom+=r,l.viewTo+=r):t<=l.viewFrom&&n>=l.viewTo?Hr(e):t<=l.viewFrom?(i=Fr(e,n,n+r,1))?(l.view=l.view.slice(i.index),l.viewFrom=i.lineN,l.viewTo+=r):Hr(e):n>=l.viewTo?(o=Fr(e,t,t,-1))?(l.view=l.view.slice(0,o.index),l.viewTo=o.lineN):Hr(e):(i=Fr(e,t,t,-1),o=Fr(e,n,n+r,1),i&&o?(l.view=l.view.slice(0,i.index).concat(Zt(e,i.lineN,o.lineN)).concat(l.view.slice(o.index)),l.viewTo+=r):Hr(e));e=l.externalMeasured;e&&(n<e.lineN?e.lineN+=r:t<e.lineN+e.size&&(l.externalMeasured=null))}function Wr(e,t,n){e.curOp.viewChanged=!0;var r,i=e.display,o=e.display.externalMeasured;o&&t>=o.lineN&&t<o.lineN+o.size&&(i.externalMeasured=null),t<i.viewFrom||t>=i.viewTo||null==(r=i.view[qn(e,t)]).node||-1==z(r=r.changes||(r.changes=[]),n)&&r.push(n)}function Hr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Fr(e,t,n,r){var i,o=qn(e,t),l=e.display.view;if(!Ce||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,a=0;a<o;a++)s+=l[a].size;if(s!=t){if(0<r){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;ze(e.doc,n)!=n;){if(o==(r<0?0:l.length-1))return null;n+=r*l[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function Pr(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function Er(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,H(zr,e))}function zr(l){var s,a,u,c=l.doc;c.highlightFrontier>=l.display.viewTo||(s=+new Date+l.options.workTime,a=Ft(l,c.highlightFrontier),u=[],c.iter(a.line,Math.min(c.first+c.size,l.display.viewTo+500),function(e){if(a.line>=l.display.viewFrom){var t=e.styles,n=e.text.length>l.options.maxHighlightLength?Tt(c.mode,a.state):null,r=Wt(l,e,a,!0);n&&(a.state=n),e.styles=r.styles;n=e.styleClasses,r=r.classes;r?e.styleClasses=r:n&&(e.styleClasses=null);for(var i=!t||t.length!=e.styles.length||n!=r&&(!n||!r||n.bgClass!=r.bgClass||n.textClass!=r.textClass),o=0;!i&&o<t.length;++o)i=t[o]!=e.styles[o];i&&u.push(a.line),e.stateAfter=a.save(),a.nextLine()}else e.text.length<=l.options.maxHighlightLength&&Pt(l,e.text,a),e.stateAfter=a.line%5==0?a.save():null,a.nextLine();if(+new Date>s)return Er(l,l.options.workDelay),!0}),c.highlightFrontier=a.line,c.modeFrontier=Math.max(c.modeFrontier,a.line),u.length&&Mr(l,function(){for(var e=0;e<u.length;e++)Wr(l,u[e],'text')}))}var Ir=function(e,t,n){var r=e.display;this.viewport=t,this.visible=sr(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=mn(e),this.force=n,this.dims=Kn(e),this.events=[]};function Rr(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return Hr(e),!1;if(!t.force&&t.visible.from>=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==Pr(e))return!1;ur(e)&&(Hr(e),t.dims=Kn(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFrom<o&&o-n.viewFrom<20&&(o=Math.max(r.first,n.viewFrom)),n.viewTo>l&&n.viewTo-l<20&&(l=Math.min(i,n.viewTo)),Ce&&(o=ze(e.doc,o),l=Ie(e.doc,l));var s=o!=n.viewFrom||l!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth,r=o,i=l;0==(l=(o=e).display).view.length||r>=l.viewTo||i<=l.viewFrom?(l.view=Zt(o,r,i),l.viewFrom=r):(l.viewFrom>r?l.view=Zt(o,r,l.viewFrom).concat(l.view):l.viewFrom<r&&(l.view=l.view.slice(qn(o,r))),l.viewFrom=r,l.viewTo<i?l.view=l.view.concat(Zt(o,l.viewTo,i)):l.viewTo>i&&(l.view=l.view.slice(0,qn(o,i)))),l.viewTo=i,n.viewOffset=Be(ie(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+'px';o=Pr(e);if(!s&&0==o&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;l=function(e){if(e.hasFocus())return null;var t=O();if(!t||!N(e.display.lineDiv,t))return null;var n={activeElt:t};return!window.getSelection||(t=window.getSelection()).anchorNode&&t.extend&&N(e.display.lineDiv,t.anchorNode)&&(n.anchorNode=t.anchorNode,n.anchorOffset=t.anchorOffset,n.focusNode=t.focusNode,n.focusOffset=t.focusOffset),n}(e);return 4<o&&(n.lineDiv.style.display='none'),function(n,e,t){var r=n.display,i=n.options.lineNumbers,o=r.lineDiv,l=o.firstChild;function s(e){var t=e.nextSibling;return x&&C&&n.display.currentWheelTarget==e?e.style.display='none':e.parentNode.removeChild(e),t}for(var a,u,c,h=r.view,d=r.viewFrom,f=0;f<h.length;f++){var p=h[f];if(!p.hidden)if(p.node&&p.node.parentNode==o){for(;l!=p.node;)l=s(l);var g=i&&null!=e&&e<=d&&p.lineNumber;p.changes&&(-1<z(p.changes,'gutter')&&(g=!1),nn(n,p,d,t)),g&&(L(p.lineNumber),p.lineNumber.appendChild(document.createTextNode(he(n.options,d)))),l=p.node.nextSibling}else{var m=(u=d,c=t,g=on(a=n,m=p),m.text=m.node=g.pre,g.bgClass&&(m.bgClass=g.bgClass),g.textClass&&(m.textClass=g.textClass),ln(a,m),sn(a,m,u,c),an(a,m,c),m.node);o.insertBefore(m,l)}d+=p.size}for(;l;)l=s(l)}(e,n.updateLineNumbers,t.dims),4<o&&(n.lineDiv.style.display=''),n.renderedView=n.view,(i=l)&&i.activeElt&&i.activeElt!=O()&&(i.activeElt.focus(),i.anchorNode&&N(document.body,i.anchorNode)&&N(document.body,i.focusNode))&&(o=window.getSelection(),(l=document.createRange()).setEnd(i.anchorNode,i.anchorOffset),l.collapse(!1),o.removeAllRanges(),o.addRange(l),o.extend(i.focusNode,i.focusOffset)),L(n.cursorDiv),L(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,Er(e,400)),!(n.updateLineNumbers=null)}function Br(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=mn(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+fn(e.display)-vn(e),n.top)}),t.visible=sr(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Rr(e,t);r=!1){or(e);var i=br(e);$n(e),wr(e,i),Vr(e,i),t.force=!1}t.signal(e,'update',e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,'viewportChange',e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Gr(e,t){var n=new Ir(e,t);Rr(e,n)&&(or(e),Br(e,n),t=br(e),$n(e),wr(e,t),Vr(e,t),n.finish())}function Ur(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+'px'}function Vr(e,t){e.display.sizer.style.minHeight=t.docHeight+'px',e.display.heightForcer.style.top=t.docHeight+'px',e.display.gutters.style.height=t.docHeight+e.display.barHeight+gn(e)+'px'}function Kr(e){var t=e.display.gutters,n=e.options.gutters;L(t);for(var r=0;r<n.length;++r){var i=n[r],o=t.appendChild(M('div',null,'CodeMirror-gutter '+i));'CodeMirror-linenumbers'==i&&((e.display.lineGutter=o).style.width=(e.display.lineNumWidth||1)+'px')}t.style.display=r?'':'none',Ur(e)}function jr(e){var t=z(e.gutters,'CodeMirror-linenumbers');-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(['CodeMirror-linenumbers']):-1<t&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}Ir.prototype.signal=function(e,t){lt(e,t)&&this.events.push(arguments)},Ir.prototype.finish=function(){for(var e=0;e<this.events.length;e++)rt.apply(null,this.events[e])};var Xr=0,Yr=null;function _r(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function qr(e,t){var n=_r(t),r=n.x,i=n.y,o=e.display,l=o.scroller,s=l.scrollWidth>l.clientWidth,a=l.scrollHeight>l.clientHeight;if(r&&s||i&&a){if(i&&C&&x)e:for(var u=t.target,c=o.view;u!=l;u=u.parentNode)for(var h=0;h<c.length;h++)if(c[h].node==u){e.display.currentWheelTarget=u;break e}if(r&&!d&&!f&&null!=Yr)return i&&a&&mr(e,Math.max(0,l.scrollTop+i*Yr)),yr(e,Math.max(0,l.scrollLeft+r*Yr)),(!i||i&&a)&&at(t),void(o.wheelStartX=null);i&&null!=Yr&&(n=i*Yr,a=(s=e.doc.scrollTop)+o.wrapper.clientHeight,n<0?s=Math.max(0,s+n-50):a=Math.min(e.doc.height,a+n+50),Gr(e,{top:s,bottom:a})),Xr<20&&(null==o.wheelStartX?(o.wheelStartX=l.scrollLeft,o.wheelStartY=l.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){var e,t;null!=o.wheelStartX&&(t=l.scrollLeft-o.wheelStartX,t=(e=l.scrollTop-o.wheelStartY)&&o.wheelDY&&e/o.wheelDY||t&&o.wheelDX&&t/o.wheelDX,o.wheelStartX=o.wheelStartY=null,t&&(Yr=(Yr*Xr+t)/(Xr+1),++Xr))},200)):(o.wheelDX+=r,o.wheelDY+=i))}}b?Yr=-.53:d?Yr=15:o?Yr=-.7:a&&(Yr=-1/3);var $r=function(e,t){this.ranges=e,this.primIndex=t};$r.prototype.primary=function(){return this.ranges[this.primIndex]},$r.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(!pe(n.anchor,r.anchor)||!pe(n.head,r.head))return!1}return!0},$r.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new Zr(ge(this.ranges[t].anchor),ge(this.ranges[t].head));return new $r(e,this.primIndex)},$r.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},$r.prototype.contains=function(e,t){t=t||e;for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(0<=fe(t,r.from())&&fe(e,r.to())<=0)return n}return-1};var Zr=function(e,t){this.anchor=e,this.head=t};function Qr(e,t){var n=e[t];e.sort(function(e,t){return fe(e.from(),t.from())}),t=z(e,n);for(var r=1;r<e.length;r++){var i,o,l=e[r],s=e[r-1];0<=fe(s.to(),l.from())&&(i=ve(s.from(),l.from()),o=me(s.to(),l.to()),s=s.empty()?l.from()==l.head:s.from()==s.head,r<=t&&--t,e.splice(--r,2,new Zr(s?o:i,s?i:o)))}return new $r(e,t)}function Jr(e,t){return new $r([new Zr(e,t||e)],0)}function ei(e){return e.text?de(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function ti(e,t){if(fe(e,t.from)<0)return e;if(fe(e,t.to)<=0)return ei(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=ei(t).ch-t.to.ch),de(n,r)}function ni(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new Zr(ti(i.anchor,t),ti(i.head,t)))}return Qr(n,e.sel.primIndex)}function ri(e,t,n){return e.line==t.line?de(n.line,e.ch-t.ch+n.ch):de(n.line+(e.line-t.line),e.ch)}function ii(e){e.doc.mode=Lt(e.options,e.doc.modeOption),oi(e)}function oi(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Er(e,100),e.state.modeGen++,e.curOp&&Dr(e)}function li(e,t){return 0==t.from.ch&&0==t.to.ch&&''==X(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function si(e,o,t,l){function i(e){return t?t[e]:null}function n(e,t,n){var r,i;r=n,i=l,(n=e).text=t,n.stateAfter&&(n.stateAfter=null),n.styles&&(n.styles=null),null!=n.order&&(n.order=null),Me(n),Ne(n,r),(i=i?i(n):1)!=n.height&&se(n,i),en(e,'change',e,o)}function r(e,t){for(var n=[],r=e;r<t;++r)n.push(new Ut(c[r],i(r),l));return n}var s,a=o.from,u=o.to,c=o.text,h=ie(e,a.line),d=ie(e,u.line),f=X(c),p=i(c.length-1),g=u.line-a.line;o.full?(e.insert(0,r(0,c.length)),e.remove(c.length,e.size-c.length)):li(e,o)?(s=r(0,c.length-1),n(d,d.text,p),g&&e.remove(a.line,g),s.length&&e.insert(a.line,s)):h==d?1==c.length?n(h,h.text.slice(0,a.ch)+f+h.text.slice(u.ch),p):((s=r(1,c.length-1)).push(new Ut(f+h.text.slice(u.ch),p,l)),n(h,h.text.slice(0,a.ch)+c[0],i(0)),e.insert(a.line+1,s)):1==c.length?(n(h,h.text.slice(0,a.ch)+c[0]+d.text.slice(u.ch),i(0)),e.remove(a.line+1,g)):(n(h,h.text.slice(0,a.ch)+c[0],i(0)),n(d,f+d.text.slice(u.ch),p),p=r(1,c.length-1),1<g&&e.remove(a.line+1,g-1),e.insert(a.line+1,p)),en(e,'change',e,o)}function ai(e,s,a){!function e(t,n,r){if(t.linked)for(var i=0;i<t.linked.length;++i){var o,l=t.linked[i];l.doc!=n&&(o=r&&l.sharedHist,a&&!o||(s(l.doc,o),e(l.doc,t,o)))}}(e,null,!0)}function ui(e,t){if(t.cm)throw new Error('This document is already in use.');Yn((e.doc=t).cm=e),ii(e),ci(e),e.options.lineWrapping||Ue(e),e.options.mode=t.modeOption,Dr(e)}function ci(e){('rtl'==e.doc.direction?A:v)(e.display.lineDiv,'CodeMirror-rtl')}function hi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function di(e,t){var n={from:ge(t.from),to:ei(t),text:oe(e,t.from,t.to)};return mi(e,n,t.from.line,t.to.line+1),ai(e,function(e){return mi(e,n,t.from.line,t.to.line+1),0},!0),n}function fi(e){for(;e.length&&X(e).ranges;)e.pop()}function pi(e,t,n,r){var i=e.history;i.undone.length=0;var o,l,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&('+'==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||'*'==t.origin.charAt(0)))&&(o=(a=i).lastOp==r?(fi(a.done),X(a.done)):a.done.length&&!X(a.done).ranges?X(a.done):1<a.done.length&&!a.done[a.done.length-2].ranges?(a.done.pop(),X(a.done)):void 0))l=X(o.changes),0==fe(t.from,t.to)&&0==fe(t.from,l.to)?l.to=ei(t):o.changes.push(di(e,t));else{var a=X(i.done);for(a&&a.ranges||gi(e.sel,i.done),o={changes:[di(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,l||rt(e,'historyAdded')}function gi(e,t){var n=X(t);n&&n.ranges&&n.equals(e)||t.push(e)}function mi(t,n,e,r){var i=n['spans_'+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,r),function(e){e.markedSpans&&((i=i||(n['spans_'+t.id]={}))[o]=e.markedSpans),++o})}function vi(i,e){var t=function(e){var t=e['spans_'+i.id];if(!t)return null;for(var n=[],r=0;r<e.text.length;++r)n.push(function(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t=t||e.slice(0,n):t&&t.push(e[n]);return t?t.length?t:null:e}(t[r]));return n}(e),n=ke(i,e);if(!t)return n;if(!n)return t;for(var r=0;r<t.length;++r){var o=t[r],l=n[r];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(t[r]=l)}return t}function yi(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?$r.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];r.push({changes:s});for(var a=0;a<l.length;++a){var u,c=l[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var h in c)(u=h.match(/^spans_(\\d+)$/))&&-1<z(t,Number(u[1]))&&(X(s)[h]=c[h],delete c[h])}}}return r}function bi(e,t,n,r){if(r){r=e.anchor;return n&&((e=fe(t,r)<0)!=fe(n,r)<0?(r=t,t=n):e!=fe(t,n)<0&&(t=n)),new Zr(r,t)}return new Zr(n||t,t)}function wi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),ki(e,new $r([bi(e.sel.primary(),t,n,i)],0),r)}function xi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=bi(e.sel.ranges[o],t[o],null,i);ki(e,Qr(r,e.sel.primIndex),n)}function Ci(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,ki(e,Qr(i,e.sel.primIndex),r)}function Si(e,t,n,r){ki(e,Jr(t,n),r)}function Li(e,t,n){var r=e.history.done,i=X(r);i&&i.ranges?Ti(e,r[r.length-1]=t,n):ki(e,t,n)}function ki(e,t,n){var r,i,o,l,s,a;Ti(e,t,n),i=(r=e).sel,o=e.cm?e.cm.curOp.id:NaN,l=n,s=r.history,a=l&&l.origin,o==s.lastSelOp||a&&s.lastSelOrigin==a&&(s.lastModTime==s.lastSelTime&&s.lastOrigin==a||(t=r,e=X(s.done),n=i,'*'==(r=a.charAt(0))||'+'==r&&e.ranges.length==n.ranges.length&&e.somethingSelected()==n.somethingSelected()&&new Date-t.history.lastSelTime<=(t.cm?t.cm.options.historyEventDelay:500)))?s.done[s.done.length-1]=i:gi(i,s.done),s.lastSelTime=+new Date,s.lastSelOrigin=a,s.lastSelOp=o,l&&!1!==l.clearRedo&&fi(s.undone)}function Ti(e,t,n){var r,i,o;(lt(e,'beforeSelectionChange')||e.cm&<(e.cm,'beforeSelectionChange'))&&(r=e,o={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new Zr(be(r,e[t].anchor),be(r,e[t].head))},origin:n&&n.origin},rt(r,'beforeSelectionChange',r,o),r.cm&&rt(r.cm,'beforeSelectionChange',r.cm,o),t=o.ranges!=i.ranges?Qr(o.ranges,o.ranges.length-1):i),Mi(e,Oi(e,t,n&&n.bias||(fe(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),n&&!1===n.scroll||!e.cm||dr(e.cm)}function Mi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,ot(e.cm)),en(e,'cursorActivity',e))}function Ni(e){Mi(e,Oi(e,e.sel,null,!1))}function Oi(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Di(e,l.anchor,s&&s.anchor,n,r),s=Di(e,l.head,s&&s.head,n,r);!i&&a==l.anchor&&s==l.head||((i=i||t.ranges.slice(0,o))[o]=new Zr(a,s))}return i?Qr(i,t.primIndex):t}function Ai(e,t,n,r,i){var o=ie(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker;if((null==s.from||(a.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(a.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(rt(a,'beforeCursorEnter'),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(a.atomic){if(n){var u=a.find(r<0?1:-1),s=void 0;if((r<0?a.inclusiveRight:a.inclusiveLeft)&&(u=Wi(e,u,-r,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(s=fe(u,n))&&(r<0?s<0:0<s))return Ai(e,u,t,r,i)}u=a.find(r<0?-1:1);return(r<0?a.inclusiveLeft:a.inclusiveRight)&&(u=Wi(e,u,r,u.line==t.line?o:null)),u?Ai(e,u,t,r,i):null}}}return t}function Di(e,t,n,r,i){r=r||1;return Ai(e,t,n,r,i)||!i&&Ai(e,t,n,r,!0)||Ai(e,t,n,-r,i)||!i&&Ai(e,t,n,-r,!0)||(e.cantEdit=!0,de(e.first,0))}function Wi(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?be(e,de(t.line-1)):null:0<n&&t.ch==(r||ie(e,t.line)).text.length?t.line<e.first+e.size-1?de(t.line+1,0):null:new de(t.line,t.ch+n)}function Hi(e){e.setSelection(de(e.firstLine(),0),de(e.lastLine()),B)}function Fi(i,e,t){var o={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){return o.canceled=!0}};return t&&(o.update=function(e,t,n,r){e&&(o.from=be(i,e)),t&&(o.to=be(i,t)),n&&(o.text=n),void 0!==r&&(o.origin=r)}),rt(i,'beforeChange',i,o),i.cm&&rt(i.cm,'beforeChange',i.cm,o),o.canceled?null:{from:o.from,to:o.to,text:o.text,origin:o.origin}}function Pi(d,e,t){if(d.cm){if(!d.cm.curOp)return Nr(d.cm,Pi)(d,e,t);if(d.cm.state.suppressEdits)return}if(!(lt(d,'beforeChange')||d.cm&<(d.cm,'beforeChange'))||(e=Fi(d,e,!0))){var n=xe&&!t&&function(e,t){var r=null;if(d.iter(e.line,t.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=z(r,n)||(r=r||[]).push(n)}}),!r)return null;for(var n=[{from:e,to:t}],i=0;i<r.length;++i)for(var o=r[i],l=o.find(0),s=0;s<n.length;++s){var a,u,c,h=n[s];fe(h.to,l.from)<0||0<fe(h.from,l.to)||(a=[s,1],u=fe(h.from,l.from),c=fe(h.to,l.to),(u<0||!o.inclusiveLeft&&!u)&&a.push({from:h.from,to:l.from}),(0<c||!o.inclusiveRight&&!c)&&a.push({from:l.to,to:h.to}),n.splice.apply(n,a),s+=a.length-3)}return n}(e.from,e.to);if(n)for(var r=n.length-1;0<=r;--r)Ei(d,{from:n[r].from,to:n[r].to,text:r?['']:e.text,origin:e.origin});else Ei(d,e)}}function Ei(e,n){var t,r;1==n.text.length&&''==n.text[0]&&0==fe(n.from,n.to)||(t=ni(e,n),pi(e,n,t,e.cm?e.cm.curOp.id:NaN),Ri(e,n,t,ke(e,n)),r=[],ai(e,function(e,t){t||-1!=z(r,e.history)||(Vi(e.history,n),r.push(e.history)),Ri(e,n,null,ke(e,n))}))}function zi(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(!t||e){for(var l,n=i.history,r=i.sel,s='undo'==o?n.done:n.undone,a='undo'==o?n.undone:n.done,u=0;u<s.length&&(l=s[u],e?!l.ranges||l.equals(i.sel):l.ranges);u++);if(u!=s.length){for(n.lastOrigin=n.lastSelOrigin=null;;){if(!(l=s.pop()).ranges){if(t)return s.push(l),0;break}if(gi(l,a),e&&!l.equals(i.sel))return ki(i,l,{clearRedo:!1}),0;r=l}var c=[];gi(r,a),a.push({changes:c,generation:n.generation}),n.generation=l.generation||++n.maxGeneration;for(var h=lt(i,'beforeChange')||i.cm&<(i.cm,'beforeChange'),d=l.changes.length-1;0<=d;--d){var f=function(e){var n=l.changes[e];if(n.origin=o,h&&!Fi(i,n,!1))return s.length=0,{};c.push(di(i,n));var t=e?ni(i,n):X(s);Ri(i,n,t,vi(i,n)),!e&&i.cm&&i.cm.scrollIntoView({from:n.from,to:ei(n)});var r=[];ai(i,function(e,t){t||-1!=z(r,e.history)||(Vi(e.history,n),r.push(e.history)),Ri(e,n,null,vi(e,n))})}(d);if(f)return f.v}}}}function Ii(e,t){if(0!=t&&(e.first+=t,e.sel=new $r(Y(e.sel.ranges,function(e){return new Zr(de(e.anchor.line+t,e.anchor.ch),de(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Dr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)Wr(e.cm,r,'gutter')}}function Ri(e,t,n,r){if(e.cm&&!e.cm.curOp)return Nr(e.cm,Ri)(e,t,n,r);var i,o,l,s,a,u,c,h,d;t.to.line<e.first?Ii(e,t.text.length-1-(t.to.line-t.from.line)):t.from.line>e.lastLine()||(t.from.line<e.first&&(Ii(e,c=t.text.length-1-(e.first-t.from.line)),t={from:de(e.first,0),to:de(t.to.line+c,t.to.ch),text:[X(t.text)],origin:t.origin}),d=e.lastLine(),t.to.line>d&&(t={from:t.from,to:de(d,ie(e,d).text.length),text:[t.text[0]],origin:t.origin}),t.removed=oe(e,t.from,t.to),n=n||ni(e,t),e.cm?(i=e.cm,o=t,l=r,s=i.doc,a=i.display,u=o.from,c=o.to,h=!1,d=u.line,i.options.lineWrapping||(d=ae(Ee(ie(s,u.line))),s.iter(d,c.line+1,function(e){if(e==a.maxLine)return h=!0})),-1<s.sel.contains(o.from,o.to)&&ot(i),si(s,o,l,Xn(i)),i.options.lineWrapping||(s.iter(d,u.line+o.text.length,function(e){var t=Ge(e);t>a.maxLineLength&&(a.maxLine=e,a.maxLineLength=t,a.maxLineChanged=!0,h=!1)}),h&&(i.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;n<r;r--){var i=ie(e,r).stateAfter;if(i&&(!(i instanceof At)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}(s,u.line),Er(i,400),d=o.text.length-(c.line-u.line)-1,o.full?Dr(i):u.line!=c.line||1!=o.text.length||li(i.doc,o)?Dr(i,u.line,c.line+1,d):Wr(i,u.line,'text'),s=lt(i,'changes'),((d=lt(i,'change'))||s)&&(o={from:u,to:c,text:o.text,removed:o.removed,origin:o.origin},d&&en(i,'change',i,o),s&&(i.curOp.changeObjs||(i.curOp.changeObjs=[])).push(o)),i.display.selForContextMenu=null):si(e,t,r),Ti(e,n,B))}function Bi(e,t,n,r,i){var o;fe(r=r||n,n)<0&&(n=(o=[r,n])[0],r=o[1]),'string'==typeof t&&(t=e.splitLines(t)),Pi(e,{from:n,to:r,text:t,origin:i})}function Gi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function Ui(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)Gi(o.ranges[s].anchor,t,n,r),Gi(o.ranges[s].head,t,n,r)}else{for(var a=0;a<o.changes.length;++a){var u=o.changes[a];if(n<u.from.line)u.from=de(u.from.line+r,u.from.ch),u.to=de(u.to.line+r,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function Vi(e,t){var n=t.from.line,r=t.to.line,t=t.text.length-(r-n)-1;Ui(e.done,n,r,t),Ui(e.undone,n,r,t)}function Ki(e,t,n,r){var i=t,o=t;return'number'==typeof t?o=ie(e,ye(e,t)):i=ae(t),null==i?null:(r(o,i)&&e.cm&&Wr(e.cm,i,n),o)}function ji(e){this.lines=e,this.parent=null;for(var t=0,n=0;n<e.length;++n)e[n].parent=this,t+=e[n].height;this.height=t}function Xi(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}Zr.prototype.from=function(){return ve(this.anchor,this.head)},Zr.prototype.to=function(){return me(this.anchor,this.head)},Zr.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},ji.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;n<r;++n){var i=this.lines[n];this.height-=i.height,i.parent=null,Me(i),en(i,'delete')}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;e<r;++e)if(n(this.lines[e]))return!0}},Xi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n,r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e),s=i.height;if(i.removeInner(e,l),this.height-=s-i.height,o==l&&(this.children.splice(r--,1),i.parent=null),0==(t-=l))break;e=0}else e-=o}this.size-t<25&&(1<this.children.length||!(this.children[0]instanceof ji))&&(n=[],this.collapse(n),this.children=[new ji(n)],this.children[0].parent=this)},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,n),i.lines&&50<i.lines.length){for(var l=i.lines.length%25+25,s=l;s<i.lines.length;){var a=new ji(i.lines.slice(s,s+=25));i.height-=a.height,this.children.splice(++r,0,a),a.parent=this}i.lines=i.lines.slice(0,l),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t,n=new Xi(e.children.splice(e.children.length-5,5))}while(e.parent?(e.size-=n.size,e.height-=n.height,t=z(e.parent.children,e),e.parent.children.splice(t+1,0,n)):(((t=new Xi(e.children)).parent=e).children=[t,n],e=t),n.parent=e.parent,10<e.children.length);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,n))return!0;if(0==(t-=l))break;e=0}else e-=o}}};function Yi(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t}function _i(e,t,n){Be(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&hr(e,n)}Yi.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=ae(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=cn(this);se(n,Math.max(0,n.height-o)),e&&(Mr(e,function(){_i(e,n,-o),Wr(e,r,'widget')}),en(e,'lineWidgetCleared',e,this,r))}},Yi.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=cn(this)-t;i&&(se(r,r.height+i),n&&Mr(n,function(){n.curOp.forceUpdate=!0,_i(n,r,i),en(n,'lineWidgetChanged',n,e,ae(r))}))},st(Yi);var qi=0,$i=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++qi};function Zi(t,n,r,e,i){if(e&&e.shared)return function(e,n,r,i,o){(i=F(i)).shared=!1;var l=[Zi(e,n,r,i,o)],s=l[0],a=i.widgetNode;return ai(e,function(e){a&&(i.widgetNode=a.cloneNode(!0)),l.push(Zi(e,be(e,n),be(e,r),i,o));for(var t=0;t<e.linked.length;++t)if(e.linked[t].isParent)return;s=X(l)}),new Qi(l,s)}(t,n,r,e,i);if(t.cm&&!t.cm.curOp)return Nr(t.cm,Zi)(t,n,r,e,i);var o=new $i(t,i),i=fe(n,r);if(e&&F(e,o,!1),0<i||0==i&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=T('span',[o.replacedWith],'CodeMirror-widget'),e.handleMouseEvents||o.widgetNode.setAttribute('cm-ignore-events','true'),e.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Pe(t,n.line,n,r,o)||n.line!=r.line&&Pe(t,r.line,n,r,o))throw new Error('Inserting collapsed marker partially overlapping an existing one');Ce=!0}o.addToHistory&&pi(t,{from:n,to:r,origin:'markText'},t.sel,NaN);var l,s=n.line,a=t.cm;if(t.iter(s,r.line+1,function(e){var t;a&&o.collapsed&&!a.options.lineWrapping&&Ee(e)==a.display.maxLine&&(l=!0),o.collapsed&&s!=n.line&&se(e,0),t=e,e=new Se(o,s==n.line?n.ch:null,s==r.line?r.ch:null),t.markedSpans=t.markedSpans?t.markedSpans.concat([e]):[e],e.marker.attachLine(t),++s}),o.collapsed&&t.iter(n.line,r.line+1,function(e){Re(t,e)&&se(e,0)}),o.clearOnEnter&&et(o,'beforeCursorEnter',function(){return o.clear()}),o.readOnly&&(xe=!0,(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++qi,o.atomic=!0),a){if(l&&(a.curOp.updateMaxLine=!0),o.collapsed)Dr(a,n.line,r.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var u=n.line;u<=r.line;u++)Wr(a,u,'text');o.atomic&&Ni(a.doc),en(a,'markerAdded',a,o)}return o}$i.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t,n=this.doc.cm,r=n&&!n.curOp;r&&kr(n),lt(this,'clear')&&(t=this.find())&&en(this,'clear',t.from,t.to);for(var i=null,o=null,l=0;l<this.lines.length;++l){var s=e.lines[l],a=Le(s.markedSpans,e);n&&!e.collapsed?Wr(n,ae(s),'text'):n&&(null!=a.to&&(o=ae(s)),null!=a.from&&(i=ae(s))),s.markedSpans=function(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n=n||[]).push(e[r]);return n}(s.markedSpans,a),null==a.from&&e.collapsed&&!Re(e.doc,s)&&n&&se(s,Un(n.display))}if(n&&this.collapsed&&!n.options.lineWrapping)for(var u=0;u<this.lines.length;++u){var c=Ee(e.lines[u]),h=Ge(c);h>n.display.maxLineLength&&(n.display.maxLine=c,n.display.maxLineLength=h,n.display.maxLineChanged=!0)}null!=i&&n&&this.collapsed&&Dr(n,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,n&&Ni(n.doc)),n&&en(n,'markerCleared',n,this,i,o),r&&Tr(n),this.parent&&this.parent.clear()}},$i.prototype.find=function(e,t){var n,r;null==e&&'bookmark'==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],l=Le(o.markedSpans,this);if(null!=l.from&&(n=de(t?o:ae(o),l.from),-1==e))return n;if(null!=l.to&&(r=de(t?o:ae(o),l.to),1==e))return r}return n&&{from:n,to:r}},$i.prototype.changed=function(){var n=this,r=this.find(-1,!0),i=this,o=this.doc.cm;r&&o&&Mr(o,function(){var e=r.line,t=ae(r.line),t=wn(o,t);t&&(Tn(t),o.curOp.selectionChanged=o.curOp.forceUpdate=!0),o.curOp.updateMaxLine=!0,Re(i.doc,e)||null==i.height||(t=i.height,i.height=null,(t=cn(i)-t)&&se(e,e.height+t)),en(o,'markerChanged',o,n)})},$i.prototype.attachLine=function(e){var t;!this.lines.length&&this.doc.cm&&((t=this.doc.cm.curOp).maybeHiddenMarkers&&-1!=z(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)),this.lines.push(e)},$i.prototype.detachLine=function(e){this.lines.splice(z(this.lines,e),1),!this.lines.length&&this.doc.cm&&((e=this.doc.cm.curOp).maybeHiddenMarkers||(e.maybeHiddenMarkers=[])).push(this)},st($i);var Qi=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};function Ji(e){return e.findMarks(de(e.first,0),e.clipPos(de(e.lastLine())),function(e){return e.parent})}function eo(i){for(var o=0;o<i.length;o++)!function(){var e=i[o],t=[e.primary.doc];ai(e.primary.doc,function(e){return t.push(e)});for(var n=0;n<e.markers.length;n++){var r=e.markers[n];-1==z(t,r.doc)&&(r.parent=null,e.markers.splice(n--,1))}}()}Qi.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();en(this,'clear')}},Qi.prototype.find=function(e,t){return this.primary.find(e,t)},st(Qi);var to=0,no=function(e,t,n,r,i){if(!(this instanceof no))return new no(e,t,n,r,i);null==n&&(n=0),Xi.call(this,[new ji([new Ut('',null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1;n=de(this.modeFrontier=this.highlightFrontier=n,0);this.sel=Jr(n),this.history=new hi(null),this.id=++to,this.modeOption=t,this.lineSep=r,this.direction='rtl'==i?'rtl':'ltr',this.extend=!1,'string'==typeof e&&(e=this.splitLines(e)),si(this,{from:n,to:n,text:e}),ki(this,Jr(n),B)};no.prototype=q(Xi.prototype,{constructor:no,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=le(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Ar(function(e){var t=de(this.first,0),n=this.first+this.size-1;Pi(this,{from:t,to:de(n,ie(this,n).text.length),text:this.splitLines(e),origin:'setValue',full:!0},!0),this.cm&&fr(this.cm,0,0),ki(this,Jr(t),B)}),replaceRange:function(e,t,n,r){Bi(this,e,t=be(this,t),n=n?be(this,n):t,r)},getRange:function(e,t,n){t=oe(this,be(this,e),be(this,t));return!1===n?t:t.join(n||this.lineSeparator())},getLine:function(e){e=this.getLineHandle(e);return e&&e.text},getLineHandle:function(e){if(ce(this,e))return ie(this,e)},getLineNumber:ae,getLineHandleVisualStart:function(e){return'number'==typeof e&&(e=ie(this,e)),Ee(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return be(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||'head'==e?t.head:'anchor'==e?t.anchor:'end'==e||'to'==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Ar(function(e,t,n){Si(this,be(this,'number'==typeof e?de(e,t||0):e),null,n)}),setSelection:Ar(function(e,t,n){Si(this,be(this,e),be(this,t||e),n)}),extendSelection:Ar(function(e,t,n){wi(this,be(this,e),t&&be(this,t),n)}),extendSelections:Ar(function(e,t){xi(this,we(this,e),t)}),extendSelectionsBy:Ar(function(e,t){xi(this,we(this,Y(this.sel.ranges,e)),t)}),setSelections:Ar(function(e,t,n){if(e.length){for(var r=[],i=0;i<e.length;i++)r[i]=new Zr(be(this,e[i].anchor),be(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),ki(this,Qr(r,t),n)}}),addSelection:Ar(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new Zr(be(this,e),be(this,t||e))),ki(this,Qr(r,r.length-1),n)}),getSelection:function(e){for(var t=this.sel.ranges,n=0;n<t.length;n++)var r=oe(this,t[n].from(),t[n].to()),i=i?i.concat(r):r;return!1===e?i:i.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=oe(this,n[r].from(),n[r].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||'+input')},replaceSelections:Ar(function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];r[o]={from:l.from(),to:l.to(),text:this.splitLines(e[o]),origin:n}}for(var t=t&&'end'!=t&&function(e,t,n){for(var r=[],i=u=de(e.first,0),o=0;o<t.length;o++){var l=t[o],s=ri(l.from,u,i),a=ri(ei(l),u,i),u=l.to,i=a;'around'==n?(l=fe((l=e.sel.ranges[o]).head,l.anchor)<0,r[o]=new Zr(l?a:s,l?s:a)):r[o]=new Zr(s,s)}return new $r(r,e.sel.primIndex)}(this,r,t),s=r.length-1;0<=s;s--)Pi(this,r[s]);t?Li(this,t):this.cm&&dr(this.cm)}),undo:Ar(function(){zi(this,'undo')}),redo:Ar(function(){zi(this,'redo')}),undoSelection:Ar(function(){zi(this,'undo',!0)}),redoSelection:Ar(function(){zi(this,'redo',!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new hi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:yi(this.history.done),undone:yi(this.history.undone)}},setHistory:function(e){var t=this.history=new hi(this.history.maxGeneration);t.done=yi(e.done.slice(0),null,!0),t.undone=yi(e.undone.slice(0),null,!0)},setGutterMarker:Ar(function(e,n,r){return Ki(this,e,'gutter',function(e){var t=e.gutterMarkers||(e.gutterMarkers={});return!(t[n]=r)&&J(t)&&(e.gutterMarkers=null),1})}),clearGutter:Ar(function(t){var n=this;this.iter(function(e){e.gutterMarkers&&e.gutterMarkers[t]&&Ki(n,e,'gutter',function(){return e.gutterMarkers[t]=null,J(e.gutterMarkers)&&(e.gutterMarkers=null),1})})}),lineInfo:function(e){var t;if('number'==typeof e){if(!ce(this,e))return null;if(!(e=ie(this,t=e)))return null}else if(null==(t=ae(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Ar(function(e,n,r){return Ki(this,e,'gutter'==n?'gutter':'class',function(e){var t='text'==n?'textClass':'background'==n?'bgClass':'gutter'==n?'gutterClass':'wrapClass';if(e[t]){if(g(r).test(e[t]))return;e[t]+=' '+r}else e[t]=r;return 1})}),removeLineClass:Ar(function(e,o,l){return Ki(this,e,'gutter'==o?'gutter':'class',function(e){var t='text'==o?'textClass':'background'==o?'bgClass':'gutter'==o?'gutterClass':'wrapClass',n=e[t];if(n){if(null==l)e[t]=null;else{var r=n.match(g(l));if(!r)return;var i=r.index+r[0].length;e[t]=n.slice(0,r.index)+(r.index&&i!=n.length?' ':'')+n.slice(i)||null}return 1}})}),addLineWidget:Ar(function(e,t,n){return e=e,i=new Yi(r=this,t,n),(o=r.cm)&&i.noHScroll&&(o.display.alignWidgets=!0),Ki(r,e,'widget',function(e){var t=e.widgets||(e.widgets=[]);return null==i.insertAt?t.push(i):t.splice(Math.min(t.length-1,Math.max(0,i.insertAt)),0,i),i.line=e,o&&!Re(r,e)&&(t=Be(e)<r.scrollTop,se(e,e.height+cn(i)),t&&hr(o,i.height),o.curOp.forceUpdate=!0),1}),o&&en(o,'lineWidgetAdded',o,i,'number'==typeof e?e:ae(e)),i;var r,i,o}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Zi(this,be(this,e),be(this,t),n,n&&n.type||'range')},setBookmark:function(e,t){t={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return Zi(this,e=be(this,e),e,t,'bookmark')},findMarksAt:function(e){var t=[],n=ie(this,(e=be(this,e)).line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(i,o,l){i=be(this,i),o=be(this,o);var s=[],a=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var n=0;n<t.length;n++){var r=t[n];null!=r.to&&a==i.line&&i.ch>=r.to||null==r.from&&a!=i.line||null!=r.from&&a==o.line&&r.from>=o.ch||l&&!l(r.marker)||s.push(r.marker.parent||r.marker)}++a}),s},getAllMarks:function(){var r=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var n=0;n<t.length;++n)null!=t[n].from&&r.push(t[n].marker)}),r},posFromIndex:function(t){var n,r=this.first,i=this.lineSeparator().length;return this.iter(function(e){e=e.text.length+i;if(t<e)return n=t,!0;t-=e,++r}),be(this,de(r,n))},indexFromPos:function(e){var t=(e=be(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new no(le(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e=e||{};var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);t=new no(le(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(t.history=this.history),(this.linked||(this.linked=[])).push({doc:t,sharedHist:e.sharedHist}),t.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),i=e.clipPos(i.to);fe(o,i)&&(i=Zi(e,o,i,r.primary,r.primary.type),r.markers.push(i),i.parent=r)}}(t,Ji(this)),t},unlinkDoc:function(e){if(e instanceof Qo&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t)if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),eo(Ji(this));break}var n;e.history==this.history&&(n=[e.id],ai(e,function(e){return n.push(e.id)},!0),e.history=new hi(null),e.history.done=yi(this.history.done,n),e.history.undone=yi(this.history.undone,n))},iterLinkedDocs:function(e){ai(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):vt(e)},lineSeparator:function(){return this.lineSep||'\\n'},setDirection:Ar(function(e){var t;'rtl'!=e&&(e='ltr'),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Mr(t=this.cm,function(){ci(t),Dr(t)}))})}),no.prototype.eachLine=no.prototype.iter;var ro=0;function io(e){var r=this;if(oo(r),!it(r,e)&&!hn(r.display,e)){at(e),b&&(ro=+new Date);var i=_n(r,e,!0),t=e.dataTransfer.files;if(i&&!r.isReadOnly())if(t&&t.length&&window.FileReader&&window.File)for(var o=t.length,l=Array(o),s=0,n=0;n<o;++n)!function(e,t){var n;r.options.allowDropFileTypes&&-1==z(r.options.allowDropFileTypes,e.type)||((n=new FileReader).onload=Nr(r,function(){var e=n.result;/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(e)&&(e=''),l[t]=e,++s==o&&(e={from:i=be(r.doc,i),to:i,text:r.doc.splitLines(l.join(r.doc.lineSeparator())),origin:'paste'},Pi(r.doc,e),Li(r.doc,Jr(i,ei(e))))}),n.readAsText(e))}(t[n],n);else{if(r.state.draggingText&&-1<r.doc.sel.contains(i))return r.state.draggingText(e),void setTimeout(function(){return r.display.input.focus()},20);try{var a,u=e.dataTransfer.getData('Text');if(u){if(r.state.draggingText&&!r.state.draggingText.copy&&(a=r.listSelections()),Ti(r.doc,Jr(i,i)),a)for(var c=0;c<a.length;++c)Bi(r.doc,'',a[c].anchor,a[c].head,'drag');r.replaceSelection(u,'around','paste'),r.display.input.focus()}}catch(e){}}}}function oo(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function lo(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName('CodeMirror'),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}var so=!1;function ao(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}for(var uo={3:'Pause',8:'Backspace',9:'Tab',13:'Enter',16:'Shift',17:'Ctrl',18:'Alt',19:'Pause',20:'CapsLock',27:'Esc',32:'Space',33:'PageUp',34:'PageDown',35:'End',36:'Home',37:'Left',38:'Up',39:'Right',40:'Down',44:'PrintScrn',45:'Insert',46:'Delete',59:';',61:'=',91:'Mod',92:'Mod',93:'Mod',106:'*',107:'=',109:'-',110:'.',111:'/',127:'Delete',145:'ScrollLock',173:'-',186:';',187:'=',188:',',189:'-',190:'.',191:'/',192:'`',219:'[',220:'\\\\',221:']',222:'\\'',63232:'Up',63233:'Down',63234:'Left',63235:'Right',63272:'Delete',63273:'Home',63275:'End',63276:'PageUp',63277:'PageDown',63302:'Insert'},co=0;co<10;co++)uo[co+48]=uo[co+96]=String(co);for(var ho=65;ho<=90;ho++)uo[ho]=String.fromCharCode(ho);for(var fo=1;fo<=12;fo++)uo[fo+111]=uo[fo+63235]='F'+fo;var po={};function go(e){var t,n,r,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var l=0;l<o.length-1;l++){var s=o[l];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))n=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error('Unrecognized modifier name: '+s);r=!0}}return t&&(e='Alt-'+e),n&&(e='Ctrl-'+e),i&&(e='Cmd-'+e),r&&(e='Shift-'+e),e}function mo(e,t,n,r){var i=(t=wo(t)).call?t.call(e,r):t[e];if(!1===i)return'nothing';if('...'===i)return'multi';if(null!=i&&n(i))return'handled';if(t.fallthrough){if('[object Array]'!=Object.prototype.toString.call(t.fallthrough))return mo(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var l=mo(e,t.fallthrough[o],n,r);if(l)return l}}}function vo(e){e='string'==typeof e?e:uo[e.keyCode];return'Ctrl'==e||'Alt'==e||'Shift'==e||'Mod'==e}function yo(e,t,n){var r=e;return t.altKey&&'Alt'!=r&&(e='Alt-'+e),(h?t.metaKey:t.ctrlKey)&&'Ctrl'!=r&&(e='Ctrl-'+e),(h?t.ctrlKey:t.metaKey)&&'Cmd'!=r&&(e='Cmd-'+e),!n&&t.shiftKey&&'Shift'!=r&&(e='Shift-'+e),e}function bo(e,t){if(f&&34==e.keyCode&&e.char)return!1;var n=uo[e.keyCode];return null!=n&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(n=e.code),yo(n,e,t))}function wo(e){return'string'==typeof e?po[e]:e}function xo(t,e){for(var n=t.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=e(n[i]);r.length&&fe(o.from,X(r).to)<=0;){var l=r.pop();if(fe(l.from,o.from)<0){o.from=l.from;break}}r.push(o)}Mr(t,function(){for(var e=r.length-1;0<=e;e--)Bi(t.doc,'',r[e].from,r[e].to,'+delete');dr(t)})}function Co(e,t,n){n=ne(e.text,t+n,n);return n<0||n>e.text.length?null:n}function So(e,t,n){e=Co(e,t.ch,n);return null==e?null:new de(t.line,e,n<0?'after':'before')}function Lo(e,t,n,r,i){if(e){var o=Qe(n,t.doc.direction);if(o){var l,s,a,e=i<0?X(o):o[0],o=i<0==(1==e.level)?'after':'before';return 0<e.level||'rtl'==t.doc.direction?(l=xn(t,n),s=i<0?n.text.length-1:0,a=Cn(t,l,s).top,s=re(function(e){return Cn(t,l,e).top==a},i<0==(1==e.level)?e.from:e.to-1,s),'before'==o&&(s=Co(n,s,1))):s=i<0?e.to:e.from,new de(r,s,o)}}return new de(r,i<0?n.text.length:0,i<0?'before':'after')}po.basic={Left:'goCharLeft',Right:'goCharRight',Up:'goLineUp',Down:'goLineDown',End:'goLineEnd',Home:'goLineStartSmart',PageUp:'goPageUp',PageDown:'goPageDown',Delete:'delCharAfter',Backspace:'delCharBefore','Shift-Backspace':'delCharBefore',Tab:'defaultTab','Shift-Tab':'indentAuto',Enter:'newlineAndIndent',Insert:'toggleOverwrite',Esc:'singleSelection'},po.pcDefault={'Ctrl-A':'selectAll','Ctrl-D':'deleteLine','Ctrl-Z':'undo','Shift-Ctrl-Z':'redo','Ctrl-Y':'redo','Ctrl-Home':'goDocStart','Ctrl-End':'goDocEnd','Ctrl-Up':'goLineUp','Ctrl-Down':'goLineDown','Ctrl-Left':'goGroupLeft','Ctrl-Right':'goGroupRight','Alt-Left':'goLineStart','Alt-Right':'goLineEnd','Ctrl-Backspace':'delGroupBefore','Ctrl-Delete':'delGroupAfter','Ctrl-S':'save','Ctrl-F':'find','Ctrl-G':'findNext','Shift-Ctrl-G':'findPrev','Shift-Ctrl-F':'replace','Shift-Ctrl-R':'replaceAll','Ctrl-[':'indentLess','Ctrl-]':'indentMore','Ctrl-U':'undoSelection','Shift-Ctrl-U':'redoSelection','Alt-U':'redoSelection',fallthrough:'basic'},po.emacsy={'Ctrl-F':'goCharRight','Ctrl-B':'goCharLeft','Ctrl-P':'goLineUp','Ctrl-N':'goLineDown','Alt-F':'goWordRight','Alt-B':'goWordLeft','Ctrl-A':'goLineStart','Ctrl-E':'goLineEnd','Ctrl-V':'goPageDown','Shift-Ctrl-V':'goPageUp','Ctrl-D':'delCharAfter','Ctrl-H':'delCharBefore','Alt-D':'delWordAfter','Alt-Backspace':'delWordBefore','Ctrl-K':'killLine','Ctrl-T':'transposeChars','Ctrl-O':'openLine'},po.macDefault={'Cmd-A':'selectAll','Cmd-D':'deleteLine','Cmd-Z':'undo','Shift-Cmd-Z':'redo','Cmd-Y':'redo','Cmd-Home':'goDocStart','Cmd-Up':'goDocStart','Cmd-End':'goDocEnd','Cmd-Down':'goDocEnd','Alt-Left':'goGroupLeft','Alt-Right':'goGroupRight','Cmd-Left':'goLineLeft','Cmd-Right':'goLineRight','Alt-Backspace':'delGroupBefore','Ctrl-Alt-Backspace':'delGroupAfter','Alt-Delete':'delGroupAfter','Cmd-S':'save','Cmd-F':'find','Cmd-G':'findNext','Shift-Cmd-G':'findPrev','Cmd-Alt-F':'replace','Shift-Cmd-Alt-F':'replaceAll','Cmd-[':'indentLess','Cmd-]':'indentMore','Cmd-Backspace':'delWrappedLineLeft','Cmd-Delete':'delWrappedLineRight','Cmd-U':'undoSelection','Shift-Cmd-U':'redoSelection','Ctrl-Up':'goDocStart','Ctrl-Down':'goDocEnd',fallthrough:['basic','emacsy']},po.default=C?po.macDefault:po.pcDefault;var ko={selectAll:Hi,singleSelection:function(e){return e.setSelection(e.getCursor('anchor'),e.getCursor('head'),B)},killLine:function(n){return xo(n,function(e){if(e.empty()){var t=ie(n.doc,e.head.line).text.length;return e.head.ch==t&&e.head.line<n.lastLine()?{from:e.head,to:de(e.head.line+1,0)}:{from:e.head,to:de(e.head.line,t)}}return{from:e.from(),to:e.to()}})},deleteLine:function(t){return xo(t,function(e){return{from:de(e.from().line,0),to:be(t.doc,de(e.to().line+1,0))}})},delLineLeft:function(e){return xo(e,function(e){return{from:de(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(n){return xo(n,function(e){var t=n.charCoords(e.head,'div').top+5;return{from:n.coordsChar({left:0,top:t},'div'),to:e.from()}})},delWrappedLineRight:function(n){return xo(n,function(e){var t=n.charCoords(e.head,'div').top+5,t=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:t},'div');return{from:e.from(),to:t}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(de(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(de(e.lastLine()))},goLineStart:function(t){return t.extendSelectionsBy(function(e){return To(t,e.head.line)},{origin:'+move',bias:1})},goLineStartSmart:function(t){return t.extendSelectionsBy(function(e){return Mo(t,e.head)},{origin:'+move',bias:1})},goLineEnd:function(i){return i.extendSelectionsBy(function(e){return t=i,n=e.head.line,r=ie(t.doc,n),(e=function(e){for(var t;t=Fe(e);)e=t.find(1,!0).line;return e}(r))!=r&&(n=ae(e)),Lo(!0,t,r,n,-1);var t,n,r},{origin:'+move',bias:-1})},goLineRight:function(t){return t.extendSelectionsBy(function(e){e=t.cursorCoords(e.head,'div').top+5;return t.coordsChar({left:t.display.lineDiv.offsetWidth+100,top:e},'div')},U)},goLineLeft:function(t){return t.extendSelectionsBy(function(e){e=t.cursorCoords(e.head,'div').top+5;return t.coordsChar({left:0,top:e},'div')},U)},goLineLeftSmart:function(n){return n.extendSelectionsBy(function(e){var t=n.cursorCoords(e.head,'div').top+5,t=n.coordsChar({left:0,top:t},'div');return t.ch<n.getLine(t.line).search(/\\S/)?Mo(n,e.head):t},U)},goLineUp:function(e){return e.moveV(-1,'line')},goLineDown:function(e){return e.moveV(1,'line')},goPageUp:function(e){return e.moveV(-1,'page')},goPageDown:function(e){return e.moveV(1,'page')},goCharLeft:function(e){return e.moveH(-1,'char')},goCharRight:function(e){return e.moveH(1,'char')},goColumnLeft:function(e){return e.moveH(-1,'column')},goColumnRight:function(e){return e.moveH(1,'column')},goWordLeft:function(e){return e.moveH(-1,'word')},goGroupRight:function(e){return e.moveH(1,'group')},goGroupLeft:function(e){return e.moveH(-1,'group')},goWordRight:function(e){return e.moveH(1,'word')},delCharBefore:function(e){return e.deleteH(-1,'char')},delCharAfter:function(e){return e.deleteH(1,'char')},delWordBefore:function(e){return e.deleteH(-1,'word')},delWordAfter:function(e){return e.deleteH(1,'word')},delGroupBefore:function(e){return e.deleteH(-1,'group')},delGroupAfter:function(e){return e.deleteH(1,'group')},indentAuto:function(e){return e.indentSelection('smart')},indentMore:function(e){return e.indentSelection('add')},indentLess:function(e){return e.indentSelection('subtract')},insertTab:function(e){return e.replaceSelection('\\t')},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),o=P(e.getLine(o.line),o.ch,r);t.push(j(r-o%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection('add'):e.execCommand('insertTab')},transposeChars:function(l){return Mr(l,function(){for(var e,t,n,r=l.listSelections(),i=[],o=0;o<r.length;o++)r[o].empty()&&(e=r[o].head,(t=ie(l.doc,e.line).text)&&(e.ch==t.length&&(e=new de(e.line,e.ch-1)),0<e.ch?(e=new de(e.line,e.ch+1),l.replaceRange(t.charAt(e.ch-1)+t.charAt(e.ch-2),de(e.line,e.ch-2),e,'+transpose')):e.line>l.doc.first&&((n=ie(l.doc,e.line-1).text)&&(e=new de(e.line,1),l.replaceRange(t.charAt(0)+l.doc.lineSeparator()+n.charAt(n.length-1),de(e.line-1,n.length-1),e,'+transpose')))),i.push(new Zr(e,e)));l.setSelections(i)})},newlineAndIndent:function(r){return Mr(r,function(){for(var e=r.listSelections(),t=e.length-1;0<=t;t--)r.replaceRange(r.doc.lineSeparator(),e[t].anchor,e[t].head,'+input');e=r.listSelections();for(var n=0;n<e.length;n++)r.indentLine(e[n].from().line,null,!0);dr(r)})},openLine:function(e){return e.replaceSelection('\\n','start')},toggleOverwrite:function(e){return e.toggleOverwrite()}};function To(e,t){var n=ie(e.doc,t),r=Ee(n);return r!=n&&(t=ae(r)),Lo(!0,e,r,t,1)}function Mo(e,t){var n=To(e,t.line),r=ie(e.doc,n.line),e=Qe(r,e.doc.direction);if(e&&0!=e[0].level)return n;r=Math.max(0,r.text.search(/\\S/)),t=t.line==n.line&&t.ch<=r&&t.ch;return de(n.line,t?0:r,n.sticky)}function No(e,t,n){if('string'==typeof t&&!(t=ko[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=R}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}var Oo=new E;function Ao(e,t,n,r){var i=e.state.keySeq;if(i){if(vo(t))return'handled';if(/\\'$/.test(t)?e.state.keySeq=null:Oo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),Do(e,i+' '+t,n,r))return!0}return Do(e,t,n,r)}function Do(e,t,n,r){r=function(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=mo(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&mo(t,e.options.extraKeys,n,e)||mo(t,e.options.keyMap,n,e)}(e,t,r);return'multi'==r&&(e.state.keySeq=t),'handled'==r&&en(e,'keyHandled',e,t,n),'handled'!=r&&'multi'!=r||(at(n),er(e)),!!r}function Wo(t,e){var n=bo(e,!0);return!!n&&(e.shiftKey&&!t.state.keySeq?Ao(t,'Shift-'+n,e,function(e){return No(t,e,!0)})||Ao(t,n,e,function(e){if('string'==typeof e?/^go[A-Z]/.test(e):e.motion)return No(t,e)}):Ao(t,n,e,function(e){return No(t,e)}))}var Ho=null;function Fo(e){var t,n,r,i=this;function o(e){18!=e.keyCode&&e.altKey||(v(r,'CodeMirror-crosshair'),nt(document,'keyup',o),nt(document,'mouseover',o))}i.curOp.focus=O(),it(i,e)||(b&&w<11&&27==e.keyCode&&(e.returnValue=!1),t=e.keyCode,i.display.shift=16==t||e.shiftKey,n=Wo(i,e),f&&(Ho=n?t:null,!n&&88==t&&!bt&&(C?e.metaKey:e.ctrlKey)&&i.replaceSelection('',null,'cut')),18!=t||/\\bCodeMirror-crosshair\\b/.test(i.display.lineDiv.className)||(A(r=i.display.lineDiv,'CodeMirror-crosshair'),et(document,'keyup',o),et(document,'mouseover',o)))}function Po(e){16==e.keyCode&&(this.doc.sel.shift=!1),it(this,e)}function Eo(e){var t=this;if(!(hn(t.display,e)||it(t,e)||e.ctrlKey&&!e.altKey||C&&e.metaKey)){var n,r=e.keyCode,i=e.charCode;if(f&&r==Ho)return Ho=null,void at(e);f&&(!e.which||e.which<10)&&Wo(t,e)||'\\b'!=(i=String.fromCharCode(null==i?r:i))&&(Ao(n=t,'\\''+i+'\\'',e,function(e){return No(n,e,!0)})||t.display.input.onKeyPress(e))}}var zo,Io,Ro=function(e,t,n){this.time=e,this.pos=t,this.button=n};function Bo(e){var t,n,r,i,o,l,s,a=this,u=a.display;it(a,e)||u.activeTouch&&u.input.supportsTouch()||(u.input.ensurePolled(),u.shift=e.shiftKey,hn(u,e)?x||(u.scroller.draggable=!1,setTimeout(function(){return u.scroller.draggable=!0},100)):Vo(a,e)||(n=_n(a,e),r=ft(e),i=n?(i=n,s=r,t=+new Date,Io&&Io.compare(t,i,s)?(zo=Io=null,'triple'):zo&&zo.compare(t,i,s)?(Io=new Ro(t,i,s),zo=null,'double'):(zo=new Ro(t,i,s),Io=null,'single')):'single',window.focus(),1==r&&a.state.selectingText&&a.state.selectingText(e),n&&(l=n,s='Click','double'==i?s='Double'+s:'triple'==i&&(s='Triple'+s),Ao(o=a,yo(s=(1==r?'Left':2==r?'Middle':'Right')+s,e),e,function(e){if('string'==typeof e&&(e=ko[e]),!e)return!1;var t=!1;try{o.isReadOnly()&&(o.state.suppressEdits=!0),t=e(o,l)!=R}finally{o.state.suppressEdits=!1}return t}))||(1==r?n?function(e,t,n,r){b?setTimeout(H(tr,e),0):e.curOp.focus=O();var i,o,l,s,a,u,c,h,d,f,p,g,m,v=(l=n,v=r,s=(o=e).getOption('configureMouse'),null==(y=s?s(o,l,v):{}).unit&&(s=S?v.shiftKey&&v.metaKey:v.altKey,y.unit=s?'rectangle':'single'==l?'char':'double'==l?'word':'line'),null!=y.extend&&!o.doc.extend||(y.extend=o.doc.extend||v.shiftKey),null==y.addNew&&(y.addNew=C?v.metaKey:v.ctrlKey),null==y.moveOnDrag&&(y.moveOnDrag=!(C?v.altKey:v.ctrlKey)),y),y=e.doc.sel;e.options.dragDrop&&mt&&!e.isReadOnly()&&'single'==n&&-1<(i=y.contains(t))&&(fe((i=y.ranges[i]).from(),t)<0||0<t.xRel)&&(0<fe(i.to(),t)||t.xRel<0)?(u=r,c=t,h=v,d=(a=e).display,f=!1,p=Nr(a,function(e){x&&(d.scroller.draggable=!1),a.state.draggingText=!1,nt(d.wrapper.ownerDocument,'mouseup',p),nt(d.wrapper.ownerDocument,'mousemove',g),nt(d.scroller,'dragstart',m),nt(d.scroller,'drop',p),f||(at(e),h.addNew||wi(a.doc,c,null,null,h.extend),x||b&&9==w?setTimeout(function(){d.wrapper.ownerDocument.body.focus(),d.input.focus()},20):d.input.focus())}),g=function(e){f=f||10<=Math.abs(u.clientX-e.clientX)+Math.abs(u.clientY-e.clientY)},m=function(){return f=!0},x&&(d.scroller.draggable=!0),(a.state.draggingText=p).copy=!h.moveOnDrag,d.scroller.dragDrop&&d.scroller.dragDrop(),et(d.wrapper.ownerDocument,'mouseup',p),et(d.wrapper.ownerDocument,'mousemove',g),et(d.scroller,'dragstart',m),et(d.scroller,'drop',p),nr(a),setTimeout(function(){return d.input.focus()},20)):function(d,e,f,p){var l=d.display,g=d.doc;at(e);var m,v,y=g.sel,t=y.ranges;p.addNew&&!p.extend?(m=g.sel.contains(f),v=-1<m?t[m]:new Zr(f,f)):(v=g.sel.primary(),m=g.sel.primIndex),'rectangle'==p.unit?(p.addNew||(v=new Zr(f,f)),f=_n(d,e,!0,!0),m=-1):(e=Go(d,f,p.unit),v=p.extend?bi(v,e.anchor,e.head,p.extend):e),p.addNew?-1==m?(m=t.length,ki(g,Qr(t.concat([v]),m),{scroll:!1,origin:'*mouse'})):1<t.length&&t[m].empty()&&'char'==p.unit&&!p.extend?(ki(g,Qr(t.slice(0,m).concat(t.slice(m+1)),0),{scroll:!1,origin:'*mouse'}),y=g.sel):Ci(g,m,v,G):(ki(g,new $r([v],m=0),G),y=g.sel);var b=f,s=l.wrapper.getBoundingClientRect(),a=0;function n(e){d.state.selectingText=!1,a=1/0,at(e),l.input.focus(),nt(l.wrapper.ownerDocument,'mousemove',r),nt(l.wrapper.ownerDocument,'mouseup',i),g.history.lastSelOrigin=null}var r=Nr(d,function(e){(ft(e)?function e(t){var n,r,i=++a,o=_n(d,t,!0,'rectangle'==p.unit);o&&(0!=fe(o,b)?(d.curOp.focus=O(),function(e){if(0!=fe(b,e))if(b=e,'rectangle'==p.unit){for(var t=[],n=d.options.tabSize,r=P(ie(g,f.line).text,f.ch,n),i=P(ie(g,e.line).text,e.ch,n),o=Math.min(r,i),l=Math.max(r,i),s=Math.min(f.line,e.line),a=Math.min(d.lastLine(),Math.max(f.line,e.line));s<=a;s++){var u=ie(g,s).text,c=V(u,o,n);o==l?t.push(new Zr(de(s,c),de(s,c))):u.length>c&&t.push(new Zr(de(s,c),de(s,V(u,l,n))))}t.length||t.push(new Zr(f,f)),ki(g,Qr(y.ranges.slice(0,m).concat(t),m),{origin:'*mouse',scroll:!1}),d.scrollIntoView(e)}else{var h,r=v,i=Go(d,e,p.unit),e=r.anchor,e=0<fe(i.anchor,e)?(h=i.head,ve(r.from(),i.anchor)):(h=i.anchor,me(r.to(),i.head)),i=y.ranges.slice(0);i[m]=function(e,t){var n=t.anchor,r=t.head,i=ie(e.doc,n.line);if(0==fe(n,r)&&n.sticky==r.sticky)return t;var o=Qe(i);if(!o)return t;var l=Ke(o,n.ch,n.sticky),s=o[l];if(s.from!=n.ch&&s.to!=n.ch)return t;var i=l+(s.from==n.ch==(1!=s.level)?0:1);if(0==i||i==o.length)return t;var a=o[i+((i=r.line!=n.line?0<(r.line-n.line)*('ltr'==e.doc.direction?1:-1):(a=(o=Ke(o,r.ch,r.sticky))-l||(r.ch-n.ch)*(1==s.level?-1:1),o==i-1||o==i?a<0:0<a))?-1:0)],i=i==(1==a.level),a=i?a.from:a.to,i=i?'after':'before';return n.ch==a&&n.sticky==i?t:new Zr(new de(n.line,a,i),r)}(d,new Zr(be(g,e),h)),ki(g,Qr(i,m),G)}}(o),n=sr(l,g),(o.line>=n.to||o.line<n.from)&&setTimeout(Nr(d,function(){a==i&&e(t)}),150)):(r=t.clientY<s.top?-20:t.clientY>s.bottom?20:0)&&setTimeout(Nr(d,function(){a==i&&(l.scroller.scrollTop+=r,e(t))}),50))}:n)(e)}),i=Nr(d,n);d.state.selectingText=i,et(l.wrapper.ownerDocument,'mousemove',r),et(l.wrapper.ownerDocument,'mouseup',i)}(e,r,t,v)}(a,n,i,e):dt(e)==u.scroller&&at(e):2==r?(n&&wi(a.doc,n),setTimeout(function(){return u.input.focus()},20)):3==r&&(p?Ko(a,e):nr(a)))))}function Go(e,t,n){if('char'==n)return new Zr(t,t);if('word'==n)return e.findWordAt(t);if('line'==n)return new Zr(de(t.line,0),be(e.doc,de(t.line+1,0)));t=n(e,t);return new Zr(t.from,t.to)}function Uo(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&at(t);var l=e.display,r=l.lineDiv.getBoundingClientRect();if(o>r.bottom||!lt(e,n))return ct(t);o-=r.top-l.viewOffset;for(var s=0;s<e.options.gutters.length;++s){var a=l.gutters.childNodes[s];if(a&&a.getBoundingClientRect().right>=i)return rt(e,n,e,ue(e.doc,o),e.options.gutters[s],t),ct(t)}}function Vo(e,t){return Uo(e,t,'gutterClick',!0)}function Ko(e,t){hn(e.display,t)||lt(e,'gutterContextMenu')&&Uo(e,t,'gutterContextMenu',!1)||it(e,t,'contextmenu')||e.display.input.onContextMenu(t)}function jo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,'')+e.options.theme.replace(/(^|\\s)\\s*/g,' cm-s-'),Nn(e)}Ro.prototype.compare=function(e,t,n){return this.time+400>e&&0==fe(t,this.pos)&&n==this.button};var Xo={toString:function(){return'CodeMirror.Init'}},Yo={},_o={};function qo(e){Kr(e),Dr(e),ar(e)}function $o(e,t,n){!t!=!(n&&n!=Xo)&&(n=e.display.dragFunctions,(t=t?et:nt)(e.display.scroller,'dragstart',n.start),t(e.display.scroller,'dragenter',n.enter),t(e.display.scroller,'dragover',n.over),t(e.display.scroller,'dragleave',n.leave),t(e.display.scroller,'drop',n.drop))}function Zo(e){e.options.lineWrapping?(A(e.display.wrapper,'CodeMirror-wrap'),e.display.sizer.style.minWidth='',e.display.sizerWidth=null):(v(e.display.wrapper,'CodeMirror-wrap'),Ue(e)),Yn(e),Dr(e),Nn(e),setTimeout(function(){return wr(e)},100)}function Qo(e,t){var n=this;if(!(this instanceof Qo))return new Qo(e,t);this.options=t=t?F(t):{},F(Yo,t,!1),jr(t);var r=t.value;'string'==typeof r&&(r=new no(r,t.mode,null,t.lineSeparator,t.direction)),this.doc=r;var i,o,l=new Qo.inputStyles[t.inputStyle](this),l=this.display=new function(e,t,n){var r=this;this.input=n,r.scrollbarFiller=M('div',null,'CodeMirror-scrollbar-filler'),r.scrollbarFiller.setAttribute('cm-not-content','true'),r.gutterFiller=M('div',null,'CodeMirror-gutter-filler'),r.gutterFiller.setAttribute('cm-not-content','true'),r.lineDiv=T('div',null,'CodeMirror-code'),r.selectionDiv=M('div',null,null,'position: relative; z-index: 1'),r.cursorDiv=M('div',null,'CodeMirror-cursors'),r.measure=M('div',null,'CodeMirror-measure'),r.lineMeasure=M('div',null,'CodeMirror-measure'),r.lineSpace=T('div',[r.measure,r.lineMeasure,r.selectionDiv,r.cursorDiv,r.lineDiv],null,'position: relative; outline: none');var i=T('div',[r.lineSpace],'CodeMirror-lines');r.mover=M('div',[i],null,'position: relative'),r.sizer=M('div',[r.mover],'CodeMirror-sizer'),r.sizerWidth=null,r.heightForcer=M('div',null,null,'position: absolute; height: '+I+'px; width: 1px;'),r.gutters=M('div',null,'CodeMirror-gutters'),r.lineGutter=null,r.scroller=M('div',[r.sizer,r.heightForcer,r.gutters],'CodeMirror-scroll'),r.scroller.setAttribute('tabIndex','-1'),r.wrapper=M('div',[r.scrollbarFiller,r.gutterFiller,r.scroller],'CodeMirror'),b&&w<8&&(r.gutters.style.zIndex=-1,r.scroller.style.paddingRight=0),x||d&&c||(r.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(r.wrapper):e(r.wrapper)),r.viewFrom=r.viewTo=t.first,r.reportedViewFrom=r.reportedViewTo=t.first,r.view=[],r.renderedView=null,r.externalMeasured=null,r.viewOffset=0,r.lastWrapHeight=r.lastWrapWidth=0,r.updateLineNumbers=null,r.nativeBarWidth=r.barHeight=r.barWidth=0,r.scrollbarsClipped=!1,r.lineNumWidth=r.lineNumInnerWidth=r.lineNumChars=null,r.alignWidgets=!1,r.cachedCharWidth=r.cachedTextHeight=r.cachedPaddingH=null,r.maxLine=null,r.maxLineLength=0,r.maxLineChanged=!1,r.wheelDX=r.wheelDY=r.wheelStartX=r.wheelStartY=null,r.shift=!1,r.selForContextMenu=null,r.activeTouch=null,n.init(r)}(e,r,l);for(i in Kr(l.wrapper.CodeMirror=this),jo(this),t.lineWrapping&&(this.display.wrapper.className+=' CodeMirror-wrap'),Sr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new E,keySeq:null,specialChars:null},t.autofocus&&!c&&l.input.focus(),b&&w<11&&setTimeout(function(){return n.display.input.reset(!0)},20),function(r){var i=r.display;et(i.scroller,'mousedown',Nr(r,Bo)),et(i.scroller,'dblclick',b&&w<11?Nr(r,function(e){var t;it(r,e)||(!(t=_n(r,e))||Vo(r,e)||hn(r.display,e)||(at(e),t=r.findWordAt(t),wi(r.doc,t.anchor,t.head)))}):function(e){return it(r,e)||at(e)}),p||et(i.scroller,'contextmenu',function(e){return Ko(r,e)});var n,o={end:0};function l(){i.activeTouch&&(n=setTimeout(function(){return i.activeTouch=null},1e3),(o=i.activeTouch).end=+new Date)}function s(e,t){if(null==t.left)return 1;var n=t.left-e.left,e=t.top-e.top;return 400<n*n+e*e}et(i.scroller,'touchstart',function(e){var t;it(r,e)||function(e){if(1==e.touches.length){e=e.touches[0];return e.radiusX<=1&&e.radiusY<=1}}(e)||Vo(r,e)||(i.input.ensurePolled(),clearTimeout(n),t=+new Date,i.activeTouch={start:t,moved:!1,prev:t-o.end<=300?o:null},1==e.touches.length&&(i.activeTouch.left=e.touches[0].pageX,i.activeTouch.top=e.touches[0].pageY))}),et(i.scroller,'touchmove',function(){i.activeTouch&&(i.activeTouch.moved=!0)}),et(i.scroller,'touchend',function(e){var t,n=i.activeTouch;n&&!hn(i,e)&&null!=n.left&&!n.moved&&new Date-n.start<300&&(t=r.coordsChar(i.activeTouch,'page'),t=!n.prev||s(n,n.prev)?new Zr(t,t):!n.prev.prev||s(n,n.prev.prev)?r.findWordAt(t):new Zr(de(t.line,0),be(r.doc,de(t.line+1,0))),r.setSelection(t.anchor,t.head),r.focus(),at(e)),l()}),et(i.scroller,'touchcancel',l),et(i.scroller,'scroll',function(){i.scroller.clientHeight&&(mr(r,i.scroller.scrollTop),yr(r,i.scroller.scrollLeft,!0),rt(r,'scroll',r))}),et(i.scroller,'mousewheel',function(e){return qr(r,e)}),et(i.scroller,'DOMMouseScroll',function(e){return qr(r,e)}),et(i.wrapper,'scroll',function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(e){it(r,e)||ht(e)},over:function(e){var t,n;it(r,e)||((n=_n(t=r,e))&&(Qn(t,n,n=document.createDocumentFragment()),t.display.dragCursor||(t.display.dragCursor=M('div',null,'CodeMirror-cursors CodeMirror-dragcursors'),t.display.lineSpace.insertBefore(t.display.dragCursor,t.display.cursorDiv)),k(t.display.dragCursor,n)),ht(e))},start:function(e){return t=r,(n=e).preventDefault&&n.preventDefault(),void(b&&(!t.state.draggingText||+new Date-ro<100)?ht(n):it(t,n)||hn(t.display,n)||(n.dataTransfer.setData('Text',t.getSelection()),n.dataTransfer.effectAllowed='copyMove',!n.dataTransfer.setDragImage||a)||((e=M('img',null,null,'position: fixed; left: 0; top: 0;')).src='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==',f&&(e.width=e.height=1,t.display.wrapper.appendChild(e),e._top=e.offsetTop),n.dataTransfer.setDragImage(e,0,0),f&&e.parentNode.removeChild(e)));var t,n},drop:Nr(r,io),leave:function(e){it(r,e)||oo(r)}};var e=i.input.getField();et(e,'keyup',function(e){return Po.call(r,e)}),et(e,'keydown',Nr(r,Fo)),et(e,'keypress',Nr(r,Eo)),et(e,'focus',function(e){return rr(r,e)}),et(e,'blur',function(e){return ir(r,e)})}(this),so||(et(window,'resize',function(){null==o&&(o=setTimeout(function(){o=null,lo(ao)},100))}),et(window,'blur',function(){return lo(ir)}),so=!0),kr(this),this.curOp.forceUpdate=!0,ui(this,r),t.autofocus&&!c||this.hasFocus()?setTimeout(H(rr,this),20):ir(this),_o)_o.hasOwnProperty(i)&&_o[i](n,t[i],Xo);ur(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Jo.length;++s)Jo[s](n);Tr(this),x&&t.lineWrapping&&'optimizelegibility'==getComputedStyle(l.lineDiv).textRendering&&(l.lineDiv.style.textRendering='auto')}Qo.defaults=Yo,Qo.optionHandlers=_o;var Jo=[];function el(e,t,n,r){var i,o=e.doc;null==n&&(n='add'),'smart'==n&&(o.mode.indent?i=Ft(e,t).state:n='prev');var l=e.options.tabSize,s=ie(o,t),a=P(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\\s*/)[0];if(r||/\\S/.test(s.text)){if('smart'==n&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==R||150<u)){if(!r)return;n='prev'}}else u=0,n='not';'prev'==n?u=t>o.first?P(ie(o,t-1).text,null,l):0:'add'==n?u=a+e.options.indentUnit:'subtract'==n?u=a-e.options.indentUnit:'number'==typeof n&&(u=a+n),u=Math.max(0,u);var h='',d=0;if(e.options.indentWithTabs)for(var f=Math.floor(u/l);f;--f)d+=l,h+='\\t';if(d<u&&(h+=j(u-d)),h!=c)return Bi(o,h,de(t,0),de(t,c.length),'+input'),!(s.stateAfter=null);for(var p=0;p<o.sel.ranges.length;p++){var g=o.sel.ranges[p];if(g.head.line==t&&g.head.ch<c.length){g=de(t,c.length);Ci(o,p,new Zr(g,g));break}}}Qo.defineInitHook=function(e){return Jo.push(e)};var tl=null;function nl(e){tl=e}function rl(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r=r||o.sel;var l,s=e.state.pasteIncoming||'paste'==i,a=vt(t),u=null;if(s&&1<r.ranges.length)if(tl&&tl.text.join('\\n')==t){if(r.ranges.length%tl.text.length==0){u=[];for(var c=0;c<tl.text.length;c++)u.push(o.splitLines(tl.text[c]))}}else a.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(u=Y(a,function(e){return[e]}));for(var h=r.ranges.length-1;0<=h;h--){var d=r.ranges[h],f=d.from(),p=d.to();d.empty()&&(n&&0<n?f=de(f.line,f.ch-n):e.state.overwrite&&!s?p=de(p.line,Math.min(ie(o,p.line).text.length,p.ch+X(a).length)):tl&&tl.lineWise&&tl.text.join('\\n')==t&&(f=p=de(f.line,0))),l=e.curOp.updateInput;p={from:f,to:p,text:u?u[h%u.length]:a,origin:i||(s?'paste':e.state.cutIncoming?'cut':'+input')};Pi(e.doc,p),en(e,'inputRead',e,p)}t&&!s&&ol(e,t),dr(e),e.curOp.updateInput=l,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function il(e,t){var n=e.clipboardData&&e.clipboardData.getData('Text');return n&&(e.preventDefault(),t.isReadOnly()||t.options.disableInput||Mr(t,function(){return rl(t,n,0,null,'paste')}),1)}function ol(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;0<=r;r--){var i=n.ranges[r];if(!(100<i.head.ch||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(-1<t.indexOf(o.electricChars.charAt(s))){l=el(e,i.head.line,'smart');break}}else o.electricInput&&o.electricInput.test(ie(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=el(e,i.head.line,'smart'));l&&en(e,'electricInput',e,i.head.line)}}}function ll(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,i={anchor:de(i,0),head:de(i+1,0)};n.push(i),t.push(e.getRange(i.anchor,i.head))}return{text:t,ranges:n}}function sl(e,t){e.setAttribute('autocorrect','off'),e.setAttribute('autocapitalize','off'),e.setAttribute('spellcheck',!!t)}function al(){var e=M('textarea',null,null,'position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none'),t=M('div',[e],null,'overflow: hidden; position: relative; width: 3px; height: 0px;');return x?e.style.width='1000px':e.setAttribute('wrap','off'),s&&(e.style.border='1px solid black'),sl(e),t}function ul(r,i,o,e,l){var t=i,n=o,s=ie(r,i.line);function a(e){var t,n;if(null==(t=l?function(t,n,s,e){var a=Qe(n,t.doc.direction);if(!a)return So(n,s,e);s.ch>=n.text.length?(s.ch=n.text.length,s.sticky='before'):s.ch<=0&&(s.ch=0,s.sticky='after');var r=Ke(a,s.ch,s.sticky),i=a[r];if('ltr'==t.doc.direction&&i.level%2==0&&(0<e?i.to>s.ch:i.from<s.ch))return So(n,s,e);function u(e,t){return Co(n,e instanceof de?e.ch:e,t)}function o(e){return t.options.lineWrapping?(l=l||xn(t,n),Bn(t,n,l,e)):{begin:0,end:n.text.length}}var l,c=o('before'==s.sticky?u(s,-1):s.ch);if('rtl'==t.doc.direction||1==i.level){var h=1==i.level==e<0,d=u(s,h?1:-1);if(null!=d&&(h?d<=i.to&&d<=c.end:d>=i.from&&d>=c.begin)){var f=h?'before':'after';return new de(s.line,d,f)}}f=function(e,t,n){for(var r=function(e,t){return t?new de(s.line,u(e,1),'before'):new de(s.line,e,'after')};0<=e&&e<a.length;e+=t){var i=a[e],o=0<t==(1!=i.level),l=o?n.begin:u(n.end,-1);if(i.from<=l&&l<i.to)return r(l,o);if(l=o?i.from:u(i.to,-1),n.begin<=l&&l<n.end)return r(l,o)}},r=f(r+e,e,c);if(r)return r;c=0<e?c.end:u(c.begin,-1);return null==c||0<e&&c==n.text.length||!(r=f(0<e?0:a.length-1,e,o(c)))?null:r}(r.cm,s,i,o):So(s,i,o))){if(e||(n=i.line+o)<r.first||n>=r.first+r.size||(i=new de(n,i.ch,i.sticky),!(s=ie(r,n))))return;i=Lo(l,r.cm,s,i.line,o)}else i=t;return 1}if('char'==e)a();else if('column'==e)a(!0);else if('word'==e||'group'==e)for(var u=null,c='group'==e,h=r.cm&&r.cm.getHelper(i,'wordChars'),d=!0;!(o<0)||a(!d);d=!1){var f=s.text.charAt(i.ch)||'\\n',f=Q(f,h)?'w':c&&'\\n'==f?'n':!c||/\\s/.test(f)?null:'p';if(!c||d||f||(f='s'),u&&u!=f){o<0&&(o=1,a(),i.sticky='after');break}if(f&&(u=f),0<o&&!a(!d))break}n=Di(r,i,t,n,!0);return pe(t,n)&&(n.hitSide=!0),n}function cl(e,t,n,r){var i,o,l,s=e.doc,a=t.left;for('page'==r?(o=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),o=Math.max(o-.5*Un(e.display),3),l=(0<n?t.bottom:t.top)+n*o):'line'==r&&(l=0<n?t.bottom+3:t.top-3);(i=In(e,a,l)).outside;){if(n<0?l<=0:l>=s.height){i.hitSide=!0;break}l+=5*n}return i}e=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new E,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function hl(e,t){var n=wn(e,t.line);if(!n||n.hidden)return null;var r=ie(e.doc,t.line),n=yn(n,r,t.line),r=Qe(r,e.doc.direction),e='left';r&&(e=Ke(r,t.ch)%2?'right':'left');e=kn(n.map,t.ch,e);return e.offset='right'==e.collapse?e.end:e.start,e}function dl(e,t){return t&&(e.bad=!0),e}function fl(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return dl(e.clipPos(de(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return function(u,e,t){var n=u.text.firstChild,r=!1;if(!e||!N(n,e))return dl(de(ae(u.line),0),!0);if(e==n&&(r=!0,e=n.childNodes[t],t=0,!e)){var i=u.rest?X(u.rest):u.line;return dl(de(ae(i),i.text.length),r)}var i=3==e.nodeType?e:null,o=e;for(i||1!=e.childNodes.length||3!=e.firstChild.nodeType||(i=e.firstChild,t=t&&i.nodeValue.length);o.parentNode!=n;)o=o.parentNode;var c=u.measure,h=c.maps;function l(e,t,n){for(var r=-1;r<(h?h.length:0);r++)for(var i=r<0?c.map:h[r],o=0;o<i.length;o+=3){var l=i[o+2];if(l==e||l==t){var s=ae(r<0?u.line:u.rest[r]),a=i[o]+n;return(n<0||l!=e)&&(a=i[o+(n?1:0)]),de(s,a)}}}var s=l(i,o,t);if(s)return dl(s,r);for(var a=o.nextSibling,d=i?i.nodeValue.length-t:0;a;a=a.nextSibling){if(s=l(a,a.firstChild,0))return dl(de(s.line,s.ch-d),r);d+=a.textContent.length}for(var f=o.previousSibling,p=t;f;f=f.previousSibling){if(s=l(f,f.firstChild,-1))return dl(de(s.line,s.ch+p),r);p+=f.textContent.length}}(o,t,n)}}e.prototype.init=function(e){var t=this,o=this,l=o.cm,s=o.div=e.lineDiv;function n(e){if(!it(l,e)){if(l.somethingSelected())nl({lineWise:!1,text:l.getSelections()}),'cut'==e.type&&l.replaceSelection('',null,'cut');else{if(!l.options.lineWiseCopyCut)return;var t=ll(l);nl({lineWise:!0,text:t.text}),'cut'==e.type&&l.operation(function(){l.setSelections(t.ranges,0,B),l.replaceSelection('',null,'cut')})}if(e.clipboardData){e.clipboardData.clearData();var n=tl.text.join('\\n');if(e.clipboardData.setData('Text',n),e.clipboardData.getData('Text')==n)return void e.preventDefault()}var r=al(),e=r.firstChild;l.display.lineSpace.insertBefore(r,l.display.lineSpace.firstChild),e.value=tl.text.join('\\n');var i=document.activeElement;W(e),setTimeout(function(){l.display.lineSpace.removeChild(r),i.focus(),i==s&&o.showPrimarySelection()},50)}}sl(s,l.options.spellcheck),et(s,'paste',function(e){it(l,e)||il(e,l)||w<=11&&setTimeout(Nr(l,function(){return t.updateFromDOM()}),20)}),et(s,'compositionstart',function(e){t.composing={data:e.data,done:!1}}),et(s,'compositionupdate',function(e){t.composing||(t.composing={data:e.data,done:!1})}),et(s,'compositionend',function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),et(s,'touchstart',function(){return o.forceCompositionEnd()}),et(s,'input',function(){t.composing||t.readFromDOMSoon()}),et(s,'copy',n),et(s,'cut',n)},e.prototype.prepareSelection=function(){var e=Zn(this.cm,!1);return e.focus=this.cm.state.focused,e},e.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},e.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=fl(t,e.anchorNode,e.anchorOffset),n=fl(t,e.focusNode,e.focusOffset);if(!o||o.bad||!n||n.bad||0!=fe(ve(o,n),r)||0!=fe(me(o,n),i)){var n=t.display.view,l=r.line>=t.display.viewFrom&&hl(t,r)||{node:n[0].measure.map[2],offset:0},s=i.line<t.display.viewTo&&hl(t,i);if(s||(s={node:(u=(u=n[n.length-1].measure).maps?u.maps[u.maps.length-1]:u.map)[u.length-1],offset:u[u.length-2]-u[u.length-3]}),l&&s){var a,u=e.rangeCount&&e.getRangeAt(0);try{a=y(l.node,l.offset,s.offset,s.node)}catch(e){}a&&(!d&&t.state.focused?(e.collapse(l.node,l.offset),a.collapsed||(e.removeAllRanges(),e.addRange(a))):(e.removeAllRanges(),e.addRange(a)),u&&null==e.anchorNode?e.addRange(u):d&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},e.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},e.prototype.showMultipleSelections=function(e){k(this.cm.display.cursorDiv,e.cursors),k(this.cm.display.selectionDiv,e.selection)},e.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},e.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;e=e.getRangeAt(0).commonAncestorContainer;return N(this.div,e)},e.prototype.focus=function(){'nocursor'!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},e.prototype.blur=function(){this.div.blur()},e.prototype.getField=function(){return this.div},e.prototype.supportsTouch=function(){return!0},e.prototype.receivedFocus=function(){var t=this;this.selectionInEditor()?this.pollSelection():Mr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))})},e.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},e.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e,t,n=window.getSelection(),r=this.cm;if(u&&o&&this.cm.options.gutters.length&&function(){for(var e=n.anchorNode;e;e=e.parentNode)if(/CodeMirror-gutter-wrapper/.test(e.className))return 1}())return this.cm.triggerOnKeyDown({type:'keydown',keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();this.composing||(this.rememberSelection(),e=fl(r,n.anchorNode,n.anchorOffset),t=fl(r,n.focusNode,n.focusOffset),e&&t&&Mr(r,function(){ki(r.doc,Jr(e,t),B),(e.bad||t.bad)&&(r.curOp.selectionChanged=!0)}))}},e.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t=this.cm,n=t.display,r=t.doc.sel.primary(),i=r.from(),r=r.to();if(0==i.ch&&i.line>t.firstLine()&&(i=de(i.line-1,ie(t.doc,i.line-1).length)),r.ch==ie(t.doc,r.line).text.length&&r.line<t.lastLine()&&(r=de(r.line+1,0)),i.line<n.viewFrom||r.line>n.viewTo-1)return!1;m=i.line==n.viewFrom||0==(m=qn(t,i.line))?(e=ae(n.view[0].line),n.view[0].node):(e=ae(n.view[m].line),n.view[m-1].node.nextSibling);var o,r=qn(t,r.line),r=r==n.view.length-1?(o=n.viewTo-1,n.lineDiv.lastChild):(o=ae(n.view[r+1].line)-1,n.view[r+1].node.previousSibling);if(!m)return!1;for(var l=t.doc.splitLines(function(l,e,t,s,a){var n='',u=!1,c=l.doc.lineSeparator();function h(){u&&(n+=c,u=!1)}function d(e){e&&(h(),n+=e)}for(;function e(t){if(1==t.nodeType){var n=t.getAttribute('cm-text');if(null!=n)return d(n||t.textContent.replace(/\\u200b/g,'')),0;if(n=t.getAttribute('cm-marker'))return(n=l.findMarks(de(s,0),de(a+1,0),(o=+n,function(e){return e.id==o}))).length&&(r=n[0].find(0))&&d(oe(l.doc,r.from,r.to).join(c)),0;if('false'!=t.getAttribute('contenteditable')){var r=/^(pre|div|p)$/i.test(t.nodeName);r&&h();for(var i=0;i<t.childNodes.length;i++)e(t.childNodes[i]);r&&(u=!0)}}else 3==t.nodeType&&d(t.nodeValue);var o}(e),e!=t;)e=e.nextSibling;return n}(t,m,r,e,o)),s=oe(t.doc,de(e,0),de(o,ie(t.doc,o).text.length));1<l.length&&1<s.length;)if(X(l)==X(s))l.pop(),s.pop(),o--;else{if(l[0]!=s[0])break;l.shift(),s.shift(),e++}for(var a=0,u=0,c=l[0],h=s[0],d=Math.min(c.length,h.length);a<d&&c.charCodeAt(a)==h.charCodeAt(a);)++a;for(var f=X(l),p=X(s),g=Math.min(f.length-(1==l.length?a:0),p.length-(1==s.length?a:0));u<g&&f.charCodeAt(f.length-u-1)==p.charCodeAt(p.length-u-1);)++u;if(1==l.length&&1==s.length&&e==i.line)for(;a&&a>i.ch&&f.charCodeAt(f.length-u-1)==p.charCodeAt(p.length-u-1);)a--,u++;l[l.length-1]=f.slice(0,f.length-u).replace(/^\\u200b+/,''),l[0]=l[0].slice(a).replace(/\\u200b+$/,'');var m=de(e,a),r=de(o,s.length?X(s).length-u:0);return 1<l.length||l[0]||fe(m,r)?(Bi(t.doc,l,m,r,'+input'),!0):void 0},e.prototype.ensurePolled=function(){this.forceCompositionEnd()},e.prototype.reset=function(){this.forceCompositionEnd()},e.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},e.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},e.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Mr(this.cm,function(){return Dr(e.cm)})},e.prototype.setUneditable=function(e){e.contentEditable='false'},e.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Nr(this.cm,rl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},e.prototype.readOnlyChanged=function(e){this.div.contentEditable=String('nocursor'!=e)},e.prototype.onContextMenu=function(){},e.prototype.resetPosition=function(){},e.prototype.needsContentAttribute=!0;var pl,gl,ml,vl,yl,r=function(e){this.cm=e,this.prevInput='',this.pollingFast=!1,this.polling=new E,this.hasSelection=!1,this.composing=null};function bl(e,t,r,n){vl.defaults[e]=t,r&&(yl[e]=n?function(e,t,n){n!=Xo&&r(e,t,n)}:r)}r.prototype.init=function(t){var e=this,n=this,r=this.cm;this.createField(t);var i=this.textarea;function o(e){if(!it(r,e)){if(r.somethingSelected())nl({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=ll(r);nl({lineWise:!0,text:t.text}),'cut'==e.type?r.setSelections(t.ranges,null,B):(n.prevInput='',i.value=t.text.join('\\n'),W(i))}'cut'==e.type&&(r.state.cutIncoming=!0)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),s&&(i.style.width='0px'),et(i,'input',function(){b&&9<=w&&e.hasSelection&&(e.hasSelection=null),n.poll()}),et(i,'paste',function(e){it(r,e)||il(e,r)||(r.state.pasteIncoming=!0,n.fastPoll())}),et(i,'cut',o),et(i,'copy',o),et(t.scroller,'paste',function(e){hn(t,e)||it(r,e)||(r.state.pasteIncoming=!0,n.focus())}),et(t.lineSpace,'selectstart',function(e){hn(t,e)||at(e)}),et(i,'compositionstart',function(){var e=r.getCursor('from');n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor('to'),{className:'CodeMirror-composing'})}}),et(i,'compositionend',function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},r.prototype.createField=function(e){this.wrapper=al(),this.textarea=this.wrapper.firstChild},r.prototype.prepareSelection=function(){var e,t=this.cm,n=t.display,r=t.doc,i=Zn(t);return t.options.moveInputWithCursor&&(e=Pn(t,r.sel.primary().head,'div'),t=n.wrapper.getBoundingClientRect(),r=n.lineDiv.getBoundingClientRect(),i.teTop=Math.max(0,Math.min(n.wrapper.clientHeight-10,e.top+r.top-t.top)),i.teLeft=Math.max(0,Math.min(n.wrapper.clientWidth-10,e.left+r.left-t.left))),i},r.prototype.showSelection=function(e){var t=this.cm.display;k(t.cursorDiv,e.cursors),k(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+'px',this.wrapper.style.left=e.teLeft+'px')},r.prototype.reset=function(e){var t,n;this.contextMenuPending||this.composing||((t=this.cm).somethingSelected()?(this.prevInput='',n=t.getSelection(),this.textarea.value=n,t.state.focused&&W(this.textarea),b&&9<=w&&(this.hasSelection=n)):e||(this.prevInput=this.textarea.value='',b&&9<=w&&(this.hasSelection=null)))},r.prototype.getField=function(){return this.textarea},r.prototype.supportsTouch=function(){return!1},r.prototype.focus=function(){if('nocursor'!=this.cm.options.readOnly&&(!c||O()!=this.textarea))try{this.textarea.focus()}catch(e){}},r.prototype.blur=function(){this.textarea.blur()},r.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},r.prototype.receivedFocus=function(){this.slowPoll()},r.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},r.prototype.fastPoll=function(){var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))})},r.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||yt(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(b&&9<=w&&this.hasSelection===i||C&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=''),8666==o)return this.reset(),this.cm.execCommand('undo')}for(var l=0,s=Math.min(r.length,i.length);l<s&&r.charCodeAt(l)==i.charCodeAt(l);)++l;return Mr(t,function(){rl(t,i.slice(l),r.length-l,null,e.composing?'*compose':null),1e3<i.length||-1<i.indexOf('\\n')?n.value=e.prevInput='':e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor('to'),{className:'CodeMirror-composing'}))}),!0},r.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},r.prototype.onKeyPress=function(){b&&9<=w&&(this.hasSelection=null),this.fastPoll()},r.prototype.onContextMenu=function(e){var n,r,t,i,o=this,l=o.cm,s=l.display,a=o.textarea,u=_n(l,e),c=s.scroller.scrollTop;function h(){var e,t;null!=a.selectionStart&&(t=''+((e=l.somethingSelected())?a.value:''),a.value='⇚',a.value=t,o.prevInput=e?'':'',a.selectionStart=1,a.selectionEnd=t.length,s.selForContextMenu=l.doc.sel)}function d(){var e,t;o.contextMenuPending=!1,o.wrapper.style.cssText=r,a.style.cssText=n,b&&w<9&&s.scrollbars.setScrollTop(s.scroller.scrollTop=c),null!=a.selectionStart&&((!b||b&&w<9)&&h(),e=0,t=function(){s.selForContextMenu==l.doc.sel&&0==a.selectionStart&&0<a.selectionEnd&&''==o.prevInput?Nr(l,Hi)(l):e++<10?s.detectingSelectAll=setTimeout(t,500):(s.selForContextMenu=null,s.input.reset())},s.detectingSelectAll=setTimeout(t,200))}u&&!f&&(l.options.resetSelectionOnContextMenu&&-1==l.doc.sel.contains(u)&&Nr(l,ki)(l.doc,Jr(u),B),n=a.style.cssText,r=o.wrapper.style.cssText,o.wrapper.style.cssText='position: absolute',u=o.wrapper.getBoundingClientRect(),a.style.cssText='position: absolute; width: 30px; height: 30px;\\n top: '+(e.clientY-u.top-5)+'px; left: '+(e.clientX-u.left-5)+'px;\\n z-index: 1000; background: '+(b?'rgba(255, 255, 255, .05)':'transparent')+';\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);',x&&(t=window.scrollY),s.input.focus(),x&&window.scrollTo(null,t),s.input.reset(),l.somethingSelected()||(a.value=o.prevInput=' '),o.contextMenuPending=!0,s.selForContextMenu=l.doc.sel,clearTimeout(s.detectingSelectAll),b&&9<=w&&h(),p?(ht(e),i=function(){nt(window,'mouseup',i),setTimeout(d,20)},et(window,'mouseup',i)):setTimeout(d,50))},r.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled='nocursor'==e},r.prototype.setUneditable=function(){},r.prototype.needsContentAttribute=!1,yl=(vl=Qo).optionHandlers,vl.defineOption=bl,vl.Init=Xo,bl('value','',function(e,t){return e.setValue(t)},!0),bl('mode',null,function(e,t){e.doc.modeOption=t,ii(e)},!0),bl('indentUnit',2,ii,!0),bl('indentWithTabs',!1),bl('smartIndent',!0),bl('tabSize',4,function(e){oi(e),Nn(e),Dr(e)},!0),bl('lineSeparator',null,function(e,r){if(e.doc.lineSep=r){var i=[],o=e.doc.first;e.doc.iter(function(e){for(var t=0;;){var n=e.text.indexOf(r,t);if(-1==n)break;t=n+r.length,i.push(de(o,n))}o++});for(var t=i.length-1;0<=t;t--)Bi(e.doc,r,i[t],de(i[t].line,i[t].ch+r.length))}}),bl('specialChars',/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test('\\t')?'':'|\\t'),'g'),n!=Xo&&e.refresh()}),bl('specialCharPlaceholder',Yt,function(e){return e.refresh()},!0),bl('electricChars',!0),bl('inputStyle',c?'contenteditable':'textarea',function(){throw new Error('inputStyle can not (yet) be changed in a running editor')},!0),bl('spellcheck',!1,function(e,t){return e.getInputField().spellcheck=t},!0),bl('rtlMoveVisually',!t),bl('wholeLineUpdateBefore',!0),bl('theme','default',function(e){jo(e),qo(e)},!0),bl('keyMap','default',function(e,t,n){t=wo(t),n=n!=Xo&&wo(n);n&&n.detach&&n.detach(e,t),t.attach&&t.attach(e,n||null)}),bl('extraKeys',null),bl('configureMouse',null),bl('lineWrapping',!1,Zo,!0),bl('gutters',[],function(e){jr(e.options),qo(e)},!0),bl('fixedGutter',!0,function(e,t){e.display.gutters.style.left=t?jn(e.display)+'px':'0',e.refresh()},!0),bl('coverGutterNextToScrollbar',!1,function(e){return wr(e)},!0),bl('scrollbarStyle','native',function(e){Sr(e),wr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),bl('lineNumbers',!1,function(e){jr(e.options),qo(e)},!0),bl('firstLineNumber',1,qo,!0),bl('lineNumberFormatter',function(e){return e},qo,!0),bl('showCursorWhenSelecting',!1,$n,!0),bl('resetSelectionOnContextMenu',!0),bl('lineWiseCopyCut',!0),bl('pasteLinesPerSelection',!0),bl('readOnly',!1,function(e,t){'nocursor'==t&&(ir(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),bl('disableInput',!1,function(e,t){t||e.display.input.reset()},!0),bl('dragDrop',!0,$o),bl('allowDropFileTypes',null),bl('cursorBlinkRate',530),bl('cursorScrollMargin',0),bl('cursorHeight',1,$n,!0),bl('singleCursorHeightPerLine',!0,$n,!0),bl('workTime',100),bl('workDelay',100),bl('flattenSpans',!0,oi,!0),bl('addModeClass',!1,oi,!0),bl('pollInterval',100),bl('undoDepth',200,function(e,t){return e.doc.history.undoDepth=t}),bl('historyEventDelay',1250),bl('viewportMargin',10,function(e){return e.refresh()},!0),bl('maxHighlightLength',1e4,oi,!0),bl('moveInputWithCursor',!0,function(e,t){t||e.display.input.resetPosition()}),bl('tabindex',null,function(e,t){return e.display.input.getField().tabIndex=t||''}),bl('autofocus',null),bl('direction','ltr',function(e,t){return e.doc.setDirection(t)},!0),gl=(pl=Qo).optionHandlers,ml=pl.helpers={},pl.prototype={constructor:pl,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var n=this.options,r=n[e];n[e]==t&&'mode'!=e||(n[e]=t,gl.hasOwnProperty(e)&&Nr(this,gl[e])(this,t,r),rt(this,'optionChange',this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?'push':'unshift'](wo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:Or(function(e,t){var n=e.token?e:pl.getMode(this.options,e);if(n.startState)throw new Error('Overlays may not be stateful.');!function(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}(this.state.overlays,{mode:n,modeSpec:e,opaque:t&&t.opaque,priority:t&&t.priority||0},function(e){return e.priority}),this.state.modeGen++,Dr(this)}),removeOverlay:Or(function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||'string'==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void Dr(this)}}),indentLine:Or(function(e,t,n){'string'!=typeof t&&'number'!=typeof t&&(t=null==t?this.options.smartIndent?'smart':'prev':t?'add':'subtract'),ce(this.doc,e)&&el(this,e,t,n)}),indentSelection:Or(function(e){for(var t=this,n=this.doc.sel.ranges,r=-1,i=0;i<n.length;i++){var o=n[i];if(o.empty())o.head.line>r&&(el(t,o.head.line,e,!0),r=o.head.line,i==t.doc.sel.primIndex&&dr(t));else{for(var l=o.from(),s=o.to(),o=Math.max(r,l.line),r=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1,a=o;a<r;++a)el(t,a,e);o=t.doc.sel.ranges;0==l.ch&&n.length==o.length&&0<o[i].from().ch&&Ci(t.doc,i,new Zr(l,o[i].to()),B)}}}),getTokenAt:function(e,t){return Rt(this,e,t)},getLineTokens:function(e,t){return Rt(this,de(e),t,!0)},getTokenTypeAt:function(e){e=be(this.doc,e);var t,n=Ht(this,ie(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var l=r+i>>1;if((l?n[2*l-1]:0)>=o)i=l;else{if(!(n[2*l+1]<o)){t=n[2*l+2];break}r=1+l}}e=t?t.indexOf('overlay '):-1;return e<0?t:0==e?null:t.slice(0,e-1)},getModeAt:function(e){var t=this.doc.mode;return t.innerMode?pl.innerMode(t,this.getTokenAt(e).state).mode:t},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var n=[];if(!ml.hasOwnProperty(t))return n;var r=ml[t],i=this.getModeAt(e);if('string'==typeof i[t])r[i[t]]&&n.push(r[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var l=r[i[t][o]];l&&n.push(l)}else i.helperType&&r[i.helperType]?n.push(r[i.helperType]):r[i.name]&&n.push(r[i.name]);for(var s=0;s<r._global.length;s++){var a=r._global[s];a.pred(i,this)&&-1==z(n,a.val)&&n.push(a.val)}return n},getStateAfter:function(e,t){var n=this.doc;return Ft(this,(e=ye(n,null==e?n.first+n.size-1:e))+1,t).state},cursorCoords:function(e,t){var n=this.doc.sel.primary();return Pn(this,null==e?n.head:'object'==typeof e?be(this.doc,e):e?n.from():n.to(),t||'page')},charCoords:function(e,t){return Fn(this,be(this.doc,e),t||'page')},coordsChar:function(e,t){return In(this,(e=Hn(this,e,t||'page')).left,e.top)},lineAtHeight:function(e,t){return e=Hn(this,{top:e,left:0},t||'page').top,ue(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1,e='number'==typeof e?(r=this.doc.first+this.doc.size-1,e<this.doc.first?e=this.doc.first:r<e&&(e=r,i=!0),ie(this.doc,e)):e;return Wn(this,e,{top:0,left:0},t||'page',n||i).top+(i?this.doc.height-Be(e):0)},defaultTextHeight:function(){return Un(this.display)},defaultCharWidth:function(){return Vn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,l,s=this.display,a=(e=Pn(this,be(this.doc,e))).bottom,u=e.left;t.style.position='absolute',t.setAttribute('cm-ignore-events','true'),this.display.input.setUneditable(t),s.sizer.appendChild(t),'over'==r?a=e.top:'above'!=r&&'near'!=r||(o=Math.max(s.wrapper.clientHeight,this.doc.height),l=Math.max(s.sizer.clientWidth,s.lineSpace.clientWidth),('above'==r||e.bottom+t.offsetHeight>o)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=o&&(a=e.bottom),u+t.offsetWidth>l&&(u=l-t.offsetWidth)),t.style.top=a+'px',t.style.left=t.style.right='','right'==i?(u=s.sizer.clientWidth-t.offsetWidth,t.style.right='0px'):('left'==i?u=0:'middle'==i&&(u=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=u+'px'),n&&(null!=(t=cr(this,{left:u,top:a,right:u+t.offsetWidth,bottom:a+t.offsetHeight})).scrollTop&&mr(this,t.scrollTop),null!=t.scrollLeft&&yr(this,t.scrollLeft))},triggerOnKeyDown:Or(Fo),triggerOnKeyPress:Or(Eo),triggerOnKeyUp:Po,triggerOnMouseDown:Or(Bo),execCommand:function(e){if(ko.hasOwnProperty(e))return ko[e].call(null,this)},triggerElectric:Or(function(e){ol(this,e)}),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=be(this.doc,e),l=0;l<t&&!(o=ul(this.doc,o,i,n,r)).hitSide;++l);return o},moveH:Or(function(t,n){var r=this;this.extendSelectionsBy(function(e){return r.display.shift||r.doc.extend||e.empty()?ul(r.doc,e.head,t,n,r.options.rtlMoveVisually):t<0?e.from():e.to()},U)}),deleteH:Or(function(n,r){var e=this.doc.sel,i=this.doc;e.somethingSelected()?i.replaceSelection('',null,'+delete'):xo(this,function(e){var t=ul(i,e.head,n,r,!1);return n<0?{from:t,to:e.head}:{from:e.head,to:t}})}),findPosV:function(e,t,n,r){var i=1,o=r;t<0&&(i=-1,t=-t);for(var l=be(this.doc,e),s=0;s<t;++s){var a=Pn(this,l,'div');if(null==o?o=a.left:a.left=o,(l=cl(this,a,i,n)).hitSide)break}return l},moveV:Or(function(r,i){var o=this,l=this.doc,s=[],a=!this.display.shift&&!l.extend&&l.sel.somethingSelected();if(l.extendSelectionsBy(function(e){if(a)return r<0?e.from():e.to();var t=Pn(o,e.head,'div');null!=e.goalColumn&&(t.left=e.goalColumn),s.push(t.left);var n=cl(o,t,r,i);return'page'==i&&e==l.sel.primary()&&hr(o,Fn(o,n,'div').top-t.top),n},U),s.length)for(var e=0;e<l.sel.ranges.length;e++)l.sel.ranges[e].goalColumn=s[e]}),findWordAt:function(e){var t=ie(this.doc,e.line).text,n=e.ch,r=e.ch;if(t){var i=this.getHelper(e,'wordChars');'before'!=e.sticky&&r!=t.length||!n?++r:--n;for(var o=t.charAt(n),l=Q(o,i)?function(e){return Q(e,i)}:/\\s/.test(o)?function(e){return/\\s/.test(e)}:function(e){return!/\\s/.test(e)&&!Q(e)};0<n&&l(t.charAt(n-1));)--n;for(;r<t.length&&l(t.charAt(r));)++r}return new Zr(de(e.line,n),de(e.line,r))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||(((this.state.overwrite=!this.state.overwrite)?A:v)(this.display.cursorDiv,'CodeMirror-overwrite'),rt(this,'overwriteToggle',this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==O()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Or(function(e,t){fr(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-gn(this)-this.display.barHeight,width:e.scrollWidth-gn(this)-this.display.barWidth,clientHeight:vn(this),clientWidth:mn(this)}},scrollIntoView:Or(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):'number'==typeof e?e={from:de(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?(t=e,pr(this),this.curOp.scrollToPos=t):gr(this,e.from,e.to,e.margin)}),setSize:Or(function(e,t){function n(e){return'number'==typeof e||/^\\d+$/.test(String(e))?e+'px':e}var r=this;null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&Mn(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){Wr(r,i,'widget');break}++i}),this.curOp.forceUpdate=!0,rt(this,'refresh',this)}),operation:function(e){return Mr(this,e)},startOperation:function(){return kr(this)},endOperation:function(){return Tr(this)},refresh:Or(function(){var e=this.display.cachedTextHeight;Dr(this),this.curOp.forceUpdate=!0,Nn(this),fr(this,this.doc.scrollLeft,this.doc.scrollTop),Ur(this),(null==e||.5<Math.abs(e-Un(this.display)))&&Yn(this),rt(this,'refresh',this)}),swapDoc:Or(function(e){var t=this.doc;return t.cm=null,ui(this,e),Nn(this),this.display.input.reset(),fr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,en(this,'swapDoc',this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},st(pl),pl.registerHelper=function(e,t,n){ml.hasOwnProperty(e)||(ml[e]=pl[e]={_global:[]}),ml[e][t]=n},pl.registerGlobalHelper=function(e,t,n,r){pl.registerHelper(e,t,r),ml[e]._global.push({pred:n,val:r})};var wl,xl='iter insert remove copy getEditor constructor'.split(' ');for(wl in no.prototype)no.prototype.hasOwnProperty(wl)&&z(xl,wl)<0&&(Qo.prototype[wl]=function(e){return function(){return e.apply(this.doc,arguments)}}(no.prototype[wl]));return st(no),Qo.inputStyles={textarea:r,contenteditable:e},Qo.defineMode=function(e){Qo.defaults.mode||'null'==e||(Qo.defaults.mode=e),function(e,t){2<arguments.length&&(t.dependencies=Array.prototype.slice.call(arguments,2)),xt[e]=t}.apply(this,arguments)},Qo.defineMIME=function(e,t){Ct[e]=t},Qo.defineMode('null',function(){return{token:function(e){return e.skipToEnd()}}}),Qo.defineMIME('text/plain','null'),Qo.defineExtension=function(e,t){Qo.prototype[e]=t},Qo.defineDocExtension=function(e,t){no.prototype[e]=t},Qo.fromTextArea=function(t,e){var n;function r(){t.value=s.getValue()}if((e=e?F(e):{}).value=t.value,!e.tabindex&&t.tabIndex&&(e.tabindex=t.tabIndex),!e.placeholder&&t.placeholder&&(e.placeholder=t.placeholder),null==e.autofocus&&(n=O(),e.autofocus=n==t||null!=t.getAttribute('autofocus')&&n==document.body),t.form&&(et(t.form,'submit',r),!e.leaveSubmitMethodAlone)){var i=t.form,o=i.submit;try{var l=i.submit=function(){r(),i.submit=o,i.submit(),i.submit=l}}catch(t){}}e.finishInit=function(e){e.save=r,e.getTextArea=function(){return t},e.toTextArea=function(){e.toTextArea=isNaN,r(),t.parentNode.removeChild(e.getWrapperElement()),t.style.display='',t.form&&(nt(t.form,'submit',r),'function'==typeof t.form.submit&&(t.form.submit=o))}},t.style.display='none';var s=Qo(function(e){return t.parentNode.insertBefore(e,t.nextSibling)},e);return s},(e=Qo).off=nt,e.on=et,e.wheelEventPixels=function(e){return(e=_r(e)).x*=Yr,e.y*=Yr,e},e.Doc=no,e.splitLines=vt,e.countColumn=P,e.findColumn=V,e.isWordChar=Z,e.Pass=R,e.signal=rt,e.Line=Ut,e.changeEnd=ei,e.scrollbarModel=Cr,e.Pos=de,e.cmpPos=fe,e.modes=xt,e.mimeModes=Ct,e.resolveMode=St,e.getMode=Lt,e.modeExtensions=kt,e.extendMode=function(e,t){F(t,kt.hasOwnProperty(e)?kt[e]:kt[e]={})},e.copyState=Tt,e.startState=Nt,e.innerMode=Mt,e.commands=ko,e.keyMap=po,e.keyName=bo,e.isModifierKey=vo,e.lookupKey=mo,e.normalizeKeyMap=function(e){var t,n,r={};for(t in e)if(e.hasOwnProperty(t)){var i=e[t];if(/^(name|fallthrough|(de|at)tach)$/.test(t))continue;if('...'==i){delete e[t];continue}for(var o=Y(t.split(' '),go),l=0;l<o.length;l++){var s=void 0,a=void 0,s=l==o.length-1?(a=o.join(' '),i):(a=o.slice(0,l+1).join(' '),'...'),u=r[a];if(u){if(u!=s)throw new Error('Inconsistent bindings for '+a)}else r[a]=s}delete e[t]}for(n in r)e[n]=r[n];return e},e.StringStream=Ot,e.SharedTextMarker=Qi,e.TextMarker=$i,e.LineWidget=Yi,e.e_preventDefault=at,e.e_stopPropagation=ut,e.e_stop=ht,e.addClass=A,e.contains=N,e.rmClass=v,e.keyNames=uo,Qo.version='5.37.1',Qo},'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.CodeMirror=t();","type":"application/javascript","module-type":"library"},"$:/plugins/tiddlywiki/codemirror/lib/codemirror.css":{"text":".CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.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-color:#7e7}@-moz-keyframes blink{0%{}50%{background-color:transparent}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}}@keyframes blink{0%{}50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}\n","type":"text/vnd.tiddlywiki","tags":"[[$:/tags/Stylesheet]]"},"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css":{"text":".CodeMirror-dialog {\n position: absolute;\n left: 0; right: 0;\n background: inherit;\n z-index: 15;\n padding: .1em .8em;\n overflow: hidden;\n color: inherit;\n}\n\n.CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n}\n\n.CodeMirror-dialog input {\n border: none;\n outline: none;\n background: transparent;\n width: 20em;\n color: inherit;\n font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n font-size: 70%;\n}\n","type":"text/css","tags":"[[$:/tags/Stylesheet]]"},"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js":{"text":"var e;e=function(s){function d(e,o,n){return(e=e.getWrapperElement().appendChild(document.createElement('div'))).className=n?'CodeMirror-dialog CodeMirror-dialog-bottom':'CodeMirror-dialog CodeMirror-dialog-top','string'==typeof o?e.innerHTML=o:e.appendChild(o),e}function p(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}s.defineExtension('openDialog',function(e,o,n){n=n||{},p(this,null);var t=d(this,e,n.bottom),i=!1,r=this;function u(e){'string'==typeof e?l.value=e:i||(i=!0,t.parentNode.removeChild(t),r.focus(),n.onClose&&n.onClose(t))}var l=t.getElementsByTagName('input')[0];return l?(l.focus(),n.value&&(l.value=n.value,!1!==n.selectValueOnOpen&&l.select()),n.onInput&&s.on(l,'input',function(e){n.onInput(e,l.value,u)}),n.onKeyUp&&s.on(l,'keyup',function(e){n.onKeyUp(e,l.value,u)}),s.on(l,'keydown',function(e){n&&n.onKeyDown&&n.onKeyDown(e,l.value,u)||((27==e.keyCode||!1!==n.closeOnEnter&&13==e.keyCode)&&(l.blur(),s.e_stop(e),u()),13==e.keyCode&&o(l.value,e))}),!1!==n.closeOnBlur&&s.on(l,'blur',u)):(e=t.getElementsByTagName('button')[0])&&(s.on(e,'click',function(){u(),r.focus()}),!1!==n.closeOnBlur&&s.on(e,'blur',u),e.focus()),u}),s.defineExtension('openConfirm',function(e,o,n){p(this,null);var t=d(this,e,n&&n.bottom),i=t.getElementsByTagName('button'),r=!1,u=this,l=1;function c(){r||(r=!0,t.parentNode.removeChild(t),u.focus())}i[0].focus();for(var a=0;a<i.length;++a){var f=i[a];!function(o){s.on(f,'click',function(e){s.e_preventDefault(e),c(),o&&o(u)})}(o[a]),s.on(f,'blur',function(){--l,setTimeout(function(){l<=0&&c()},200)}),s.on(f,'focus',function(){++l})}}),s.defineExtension('openNotification',function(e,o){p(this,r);var n,t=d(this,e,o&&o.bottom),i=!1,o=o&&void 0!==o.duration?o.duration:5e3;function r(){i||(i=!0,clearTimeout(n),t.parentNode.removeChild(t))}return s.on(t,'click',function(e){s.e_preventDefault(e),r()}),o&&(n=setTimeout(r,o)),r})},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js":{"text":"var e;e=function(i){'use strict';var a='CodeMirror-activeline',s='CodeMirror-activeline-background',c='CodeMirror-activeline-gutter';function l(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],'wrap',a),e.removeLineClass(e.state.activeLines[t],'background',s),e.removeLineClass(e.state.activeLines[t],'gutter',c)}function r(t,e){for(var n=[],i=0;i<e.length;i++){var r=e[i],o=t.getOption('styleActiveLine');('object'==typeof o&&o.nonEmpty?r.anchor.line==r.head.line:r.empty())&&(r=t.getLineHandleVisualStart(r.head.line),n[n.length-1]!=r&&n.push(r))}!function(e,t){if(e.length==t.length){for(var n=0;n<e.length;n++)if(e[n]!=t[n])return;return 1}}(t.state.activeLines,n)&&t.operation(function(){l(t);for(var e=0;e<n.length;e++)t.addLineClass(n[e],'wrap',a),t.addLineClass(n[e],'background',s),t.addLineClass(n[e],'gutter',c);t.state.activeLines=n})}function o(e,t){r(e,t.ranges)}i.defineOption('styleActiveLine',!1,function(e,t,n){n=n!=i.Init&&n;t!=n&&(n&&(e.off('beforeSelectionChange',o),l(e),delete e.state.activeLines),t&&(e.state.activeLines=[],r(e,e.listSelections()),e.on('beforeSelectionChange',o)))})},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js":{"text":"var e;e=function(a){'use strict';a.modeInfo=[{name:'CMake',mime:'text/x-cmake',mode:'cmake',ext:['cmake','cmake.in'],file:/^CMakeLists.txt$/},{name:'Cython',mime:'text/x-cython',mode:'python',ext:['pyx','pxd','pxi']},{name:'CSS',mime:'text/css',mode:'css',ext:['css']},{name:'diff',mime:'text/x-diff',mode:'diff',ext:['diff','patch']},{name:'Embedded Javascript',mime:'application/x-ejs',mode:'htmlembedded',ext:['ejs']},{name:'Embedded Ruby',mime:'application/x-erb',mode:'htmlembedded',ext:['erb']},{name:'Erlang',mime:'text/x-erlang',mode:'erlang',ext:['erl']},{name:'GitHub Flavored Markdown',mime:'text/x-gfm',mode:'gfm',file:/^(readme|contributing|history).md$/i},{name:'Go',mime:'text/x-go',mode:'go',ext:['go']},{name:'ASP.NET',mime:'application/x-aspx',mode:'htmlembedded',ext:['aspx'],alias:['asp','aspx']},{name:'HTML',mime:'text/html',mode:'htmlmixed',ext:['html','htm','handlebars','hbs'],alias:['xhtml']},{name:'HTTP',mime:'message/http',mode:'http'},{name:'JavaScript',mimes:['text/javascript','text/ecmascript','application/javascript','application/x-javascript','application/ecmascript'],mode:'javascript',ext:['js'],alias:['ecmascript','js','node']},{name:'JSON',mimes:['application/json','application/x-json'],mode:'javascript',ext:['json','map'],alias:['json5']},{name:'JSON-LD',mime:'application/ld+json',mode:'javascript',ext:['jsonld'],alias:['jsonld']},{name:'Lua',mime:'text/x-lua',mode:'lua',ext:['lua']},{name:'Markdown',mime:'text/x-markdown',mode:'markdown',ext:['markdown','md','mkd']},{name:'MySQL',mime:'text/x-mysql',mode:'sql'},{name:'Plain Text',mime:'text/plain',mode:'null',ext:['txt','text','conf','def','list','log']},{name:'Python',mime:'text/x-python',mode:'python',ext:['BUILD','bzl','py','pyw'],file:/^(BUCK|BUILD)$/},{name:'SCSS',mime:'text/x-scss',mode:'css',ext:['scss']},{name:'LaTeX',mime:'text/x-latex',mode:'stex',ext:['text','ltx','tex'],alias:['tex']},{name:'TiddlyWiki ',mime:'text/x-tiddlywiki',mode:'tiddlywiki'}];for(var e=0;e<a.modeInfo.length;e++){var t=a.modeInfo[e];t.mimes&&(t.mime=t.mimes[0])}a.findModeByMIME=function(e){e=e.toLowerCase();for(var t=0;t<a.modeInfo.length;t++){var m=a.modeInfo[t];if(m.mime==e)return m;if(m.mimes)for(var i=0;i<m.mimes.length;i++)if(m.mimes[i]==e)return m}return/\\+xml$/.test(e)?a.findModeByMIME('application/xml'):/\\+json$/.test(e)?a.findModeByMIME('application/json'):void 0},a.findModeByExtension=function(e){for(var t=0;t<a.modeInfo.length;t++){var m=a.modeInfo[t];if(m.ext)for(var i=0;i<m.ext.length;i++)if(m.ext[i]==e)return m}},a.findModeByFileName=function(e){for(var t=0;t<a.modeInfo.length;t++){var m=a.modeInfo[t];if(m.file&&m.file.test(e))return m}var i=e.lastIndexOf('.'),i=-1<i&&e.substring(i+1,e.length);if(i)return a.findModeByExtension(i)},a.findModeByName=function(e){e=e.toLowerCase();for(var t=0;t<a.modeInfo.length;t++){var m=a.modeInfo[t];if(m.name.toLowerCase()==e)return m;if(m.alias)for(var i=0;i<m.alias.length;i++)if(m.alias[i].toLowerCase()==e)return m}}},'object'==typeof exports&&'object'==typeof module?e(require('../lib/codemirror')):'function'==typeof define&&define.amd?define(['../lib/codemirror'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/keyboard":{"text":"\n!!Default keyboard shortcuts\n\n!!!Basic shortcuts\n\n|Shortcut |Function |h\n|Left |goCharLeft |\n|Right |goCharRight |\n|Up |goLineUp |\n|Down |goLineDown |\n|End |goLineEnd |\n|Home |goLineStartSmart |\n|~PageUp |goPageUp |\n|~PageDown |goPageDown |\n|Delete |delCharAfter |\n|Backspace |delCharBefore |\n|Shift-Backspace |delCharBefore |\n|Tab |defaultTab |\n|Shift-Tab |indentAuto |\n|Enter |newlineAndIndent |\n|Insert |toggleOverwrite |\n|Ctrl-Esc |singleSelection |\n\n\n!!!Shortcuts on Windows and Linux\n\n|Shortcut |Function |h\n|Ctrl-A |selectAll |\n|Ctrl-D |deleteLine |\n|Ctrl-Z |undo |\n|Shift-Ctrl-Z |redo |\n|Ctrl-Y |redo |\n|Ctrl-Home |goDocStart |\n|Ctrl-End |goDocEnd |\n|Ctrl-Up |goLineUp |\n|Ctrl-Down |goLineDown |\n|Ctrl-Left |goGroupLeft |\n|Ctrl-Right |goGroupRight |\n|Alt-Left |goLineStart |\n|Alt-Right |goLineEnd |\n|Ctrl-Backspace |delGroupBefore |\n|Ctrl-Delete |delGroupAfter |\n|Ctrl-F |find |\n|Ctrl-G |findNext |\n|Shift-Ctrl-G |findPrev |\n|Shift-Ctrl-F |replace |\n|Shift-Ctrl-R |replaceAll |\n|Ctrl-[ |indentLess |\n|Ctrl-] |indentMore |\n|Alt-U |undoSelection |\n|Shift-Ctrl-U |redoSelection |\n|Shift-Alt-U |redoSelection |\n\n\n!!!Shortcuts on ~MacOs\n\n|Shortcut |Function |h\n|Cmd-A |selectAll |\n|Cmd-D |deleteLine |\n|Cmd-Z |undo |\n|Shift-Cmd-Z |redo |\n|Cmd-Y |redo |\n|Cmd-Home |goDocStart |\n|Cmd-Up |goDocStart |\n|Cmd-End |goDocEnd |\n|Cmd-Down |goDocEnd |\n|Alt-Left |goGroupLeft |\n|Alt-Right |goGroupRight |\n|Cmd-Left |goLineLeft |\n|Cmd-Right |goLineRight |\n|Alt-Backspace |delGroupBefore |\n|Ctrl-Alt-Backspace |delGroupAfter |\n|Alt-Delete |delGroupAfter |\n|Cmd-F |find |\n|Cmd-G |findNext |\n|Shift-Cmd-G |findPrev |\n|Cmd-Alt-F |replace |\n|Shift-Cmd-Alt-F |replaceAll |\n|Cmd-[ |indentLess |\n|Cmd-] |indentMore |\n|Cmd-Backspace |delWrappedLineLeft |\n|Cmd-Delete |delWrappedLineRight |\n|Alt-U |undoSelection |\n|Shift-Alt-U |redoSelection |\n|Ctrl-Up |goDocStart |\n|Ctrl-Down |goDocEnd |\n|Ctrl-F |goCharRight |\n|Ctrl-B |goCharLeft |\n|Ctrl-P |goLineUp |\n|Ctrl-N |goLineDown |\n|Alt-F |goWordRight |\n|Alt-B |goWordLeft |\n|Ctrl-A |goLineStart |\n|Ctrl-E |goLineEnd |\n|Ctrl-V |goPageDown |\n|Shift-Ctrl-V |goPageUp |\n|Ctrl-D |delCharAfter |\n|Ctrl-H |delCharBefore |\n|Alt-D |delWordAfter |\n|Alt-Backspace |delWordBefore |\n|Ctrl-K |killLine |\n|Alt-T |transposeChars |\n|Ctrl-O |openLine |\n\n\n"},"$:/plugins/tiddlywiki/codemirror/license":{"text":"\"\"\"\n~CodeMirror, copyright (c) by Marijn Haverbeke and others\nDistributed under an MIT license: http://codemirror.net/LICENSE\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nDistributed under an BSD license: https://tiddlywiki.com/#License\n\"\"\"\n"},"$:/plugins/tiddlywiki/codemirror/readme":{"text":"This plugin provides an enhanced text editor component based on [[CodeMirror|http://codemirror.net]].\nThe basic configuration is designed to be as lightweight as possible and is just around 235kb of size.\nAdditional features can be installed with ~CodeMirror ~AddOns from the plugin library:\n\n* Code colouring for many languages (see [[the official documentation here|http://codemirror.net/mode/index.html]])\n* Auto closing brackets and tags\n* Folding brackets, comments, and tags\n* Auto-completion\n* Search and Replace\n* Fullscreen Editing\n* Optional Emacs, Sublime Text or Vim Keymaps\n\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/codemirror]]\n\nBased on ~CodeMirror version 5.37.0\n"},"$:/core/ui/ControlPanel/Settings/codemirror/editorFont":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/editorFont/hint}}","text":"\\define lingo-base() $:/language/ThemeTweaks/\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n"},"$:/core/ui/ControlPanel/Settings/codemirror/keyMap":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/keyMap/hint}}","text":"\\define lingo-base() $:/language/codemirror/keyMap\n\n<$link to=\"$:/config/codemirror/keyMap\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/keyMap\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]module-type[codemirror-keymap]!has[draft.of]get[text]]\">\n<option value=<<currentTiddler>>><$transclude><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n"},"$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/lineNumbers/hint}}","text":"\\define lingo-base() $:/language/codemirror/lineNumbers/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineNumbers\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/lineNumbers\"><<lingo info>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/lineWrapping/hint}}","text":"\\define lingo-base() $:/language/codemirror/lineWrapping/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineWrapping\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/lineWrapping\"><<lingo info>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/showCursorWhenSelecting/hint}}","text":"\\define lingo-base() $:/language/codemirror/showCursorWhenSelecting/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/showCursorWhenSelecting\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/showCursorWhenSelecting\"><<lingo info>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/styleActiveLine/hint}}","text":"\\define lingo-base() $:/language/codemirror/styleActiveLine/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/styleActiveLine\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/styleActiveLine\"><<lingo info>></$link> </$checkbox>\n\n"},"$:/core/ui/ControlPanel/Settings/codemirror/theme":{"tags":"$:/tags/ControlPanel/Settings/CodeMirror","caption":"{{$:/language/codemirror/theme/hint}}","text":"\\define lingo-base() $:/language/codemirror/\n\n<$link to=\"$:/config/codemirror/theme\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/theme\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]module-type[codemirror-theme]!has[draft.of]get[name]]\">\n<option value=<<currentTiddler>>><$transclude field=\"name\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n//see the [[CodeMirror Usage|$:/plugins/tiddlywiki/codemirror/usage]] how to add themes//\n"},"$:/plugins/tiddlywiki/codemirror/styles":{"tags":"[[$:/tags/Stylesheet]]","text":"/* Make the editor resize to fit its content */\n\n.CodeMirror {\n\theight: auto;\n\tborder: 1px solid #ddd;\n\tline-height: 1.5;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n}\n\n.CodeMirror-scroll {\n\toverflow-x: auto;\n\toverflow-y: hidden;\t\n}\n"},"$:/core/ui/ControlPanel/Settings/CodeMirror":{"tags":"$:/tags/ControlPanel/SettingsTab","caption":"CodeMirror","list-after":"$:/core/ui/ControlPanel/Settings/TiddlyWiki","text":"\\define lingo-base() $:/language/codemirror/controlPanel/\n\n<<lingo hint>>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/usage\"><<lingo usage>></$link>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/keyboard\"><<lingo keyboard>></$link>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings/CodeMirror]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"},"$:/core/ui/ControlPanel/Settings":{"tags":"$:/tags/ControlPanel","caption":"{{$:/language/ControlPanel/Settings/Caption}}","text":"<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/SettingsTab]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Settings/TiddlyWiki\">>\n</div>\n"},"$:/core/ui/ControlPanel/Settings/TiddlyWiki":{"tags":"$:/tags/ControlPanel/SettingsTab","caption":"TiddlyWiki","text":"\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"},"$:/plugins/tiddlywiki/codemirror/usage":{"text":"! Configuration\n\nConfiguration for the ~CodeMirror text-editor can be done from within the CodeMirror Settings Tab in the [[ControlPanel|$:/ControlPanel]] (Settings - ~CodeMirror)\n\n\n!!Setting a different Theme\n\n~CodeMirror themes are available in the [ext[official GitHub repository|https://github.com/codemirror/CodeMirror/tree/master/theme]]\n\nMore themes can be found at https://github.com/FarhadG/code-mirror-themes/tree/master/themes and previewed [ext[here|http://farhadg.github.io/code-mirror-themes/]]\n\n\nTo add a theme to your wiki, follow these four steps:\n\n* choose one of the CSS files and copy its content to a new tiddler\n* remove all comments from the top and tag the tiddler with <<tag-pill \"$:/tags/Stylesheet\">>\n* add a field \"module-type\" with the value \"codemirror-theme\". add a field \"name\" with the exact ''name'' of the theme as value\n* save the tiddler and go to the Settings tab in $:/ControlPanel - look for the \"theme\" dropdown to select your newly added theme\n\n\n!!Line Numbers\n\nTo show or hide the Line Numbers at the left, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Numbers\" checkbox\n\n\n!!Line Wrapping\n\nControls if long lines get visually wrapped to a new line if they're too long to fit the editor width or if the editor should scroll horizontally\n\nTo change the line-wrapping behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Wrapping\" checkbox\n\n\n!!Show Cursor when selecting\n\nDefines whether the Mouse cursor should be visually shown or hidden when making a text-selection\n\nTo change the show-cursor-when-selecting behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Show cursor when selecting\" checkbox\n\n\n!!~CodeMirror Font Family\n\nThe Font-Family used within the ~CodeMirror text-editor defaults to \"monospace\" which will choose your configured monospace system-font\n\nThat setting can be overridden entering one or more Font-Families in the \"Font Family\" input field at ~ControlPanel - Settings - ~CodeMirror\n\n* The entries must be separated by semicolons ','\n* Font-Family Names that contain spaces must be quoted like \"My Font\"\n* If a list of Font-Families is specified, the last Font-Family found on the user-system gets used, non-existing fonts get ignored\n* If none of the specified Font-Families is available, ~CodeMirror uses the default \"monospace\"\n\n\n!!\"Hidden\" Settings:\n\n!!!Cursor Blink Rate\n\nThe cursor blink-rate defines how fast (in milliseconds) the cursor blinks inside the textarea\n\nYou can change it by editing $:/config/codemirror/cursorBlinkRate\n\"0\" disables blinking\n\n!!!Tabsize\n\nThe Tabsize defines the width of a tab character. Default is 4.\n\nYou can change it by editing $:/config/codemirror/tabSize\n\n!!!Indent Unit\n\nNot enabled for vnd.tiddlywiki and x-tiddlywiki\n\nDefines how many spaces a text-block should be indented. Defaults to 2.\n\nYou can change it by editing $:/config/codemirror/indentUnit\n\n"}}}
{"tiddlers":{"$:/config/codemirror/autoCloseBrackets":{"type":"bool","text":"true"},"$:/config/codemirror/matchBrackets":{"type":"bool","text":"true\n"},"$:/plugins/tiddlywiki/codemirror/addon/edit/closebrackets.js":{"text":"var e;e=function(C){var n={pairs:'()[]{}\\'\\'\"\"',triples:'',explode:'[]{}'},x=C.Pos;function P(e,t){return'pairs'==t&&'string'==typeof e?e:('object'==typeof e&&null!=e[t]?e:n)[t]}C.defineOption('autoCloseBrackets',!1,function(e,t,n){n&&n!=C.Init&&(e.removeKeyMap(i),e.state.closeBrackets=null),t&&(r(P(t,'pairs')),e.state.closeBrackets=t,e.addKeyMap(i))});var i={Backspace:function(e){var t=k(e);if(!t||e.getOption('disableInput'))return C.Pass;for(var n=P(t,'pairs'),r=e.listSelections(),i=0;i<r.length;i++){if(!r[i].empty())return C.Pass;var a=s(e,r[i].head);if(!a||n.indexOf(a)%2!=0)return C.Pass}for(i=r.length-1;0<=i;i--){var o=r[i].head;e.replaceRange('',x(o.line,o.ch-1),x(o.line,o.ch+1),'+delete')}},Enter:function(r){var e=k(r),t=e&&P(e,'explode');if(!t||r.getOption('disableInput'))return C.Pass;for(var i=r.listSelections(),n=0;n<i.length;n++){if(!i[n].empty())return C.Pass;var a=s(r,i[n].head);if(!a||t.indexOf(a)%2!=0)return C.Pass}r.operation(function(){var e=r.lineSeparator()||'\\n';r.replaceSelection(e+e,null),r.execCommand('goCharLeft'),i=r.listSelections();for(var t=0;t<i.length;t++){var n=i[t].head.line;r.indentLine(n,null,!0),r.indentLine(n+1,null,!0)}})}};function r(e){for(var t=0;t<e.length;t++){var n=e.charAt(t),r='\\''+n+'\\'';i[r]||(i[r]=function(t){return function(e){return function(i,e){var t=k(i);if(!t||i.getOption('disableInput'))return C.Pass;var n=P(t,'pairs'),r=n.indexOf(e);if(-1==r)return C.Pass;for(var a,o,s=P(t,'triples'),l=n.charAt(r+1)==e,c=i.listSelections(),f=r%2==0,h=0;h<c.length;h++){var u,d=c[h],g=d.head,p=i.getRange(g,x(g.line,g.ch+1));if(f&&!d.empty())u='surround';else if(!l&&f||p!=e)if(l&&1<g.ch&&0<=s.indexOf(e)&&i.getRange(x(g.line,g.ch-2),g)==e+e){if(2<g.ch&&/\\bstring/.test(i.getTokenTypeAt(x(g.line,g.ch-2))))return C.Pass;u='addFour'}else if(l){var v=0==g.ch?' ':i.getRange(x(g.line,g.ch-1),g);if(C.isWordChar(p)||v==e||C.isWordChar(v))return C.Pass;u='both'}else{if(!f||!(i.getLine(g.line).length==g.ch||-1<(o=n.lastIndexOf(p))&&o%2==1||/\\s/.test(p)))return C.Pass;u='both'}else u=!l||(v=g,p=(o=i).getTokenAt(x(v.line,v.ch+1)),!/\\bstring/.test(p.type)||p.start!=v.ch||0!=v.ch&&/\\bstring/.test(o.getTokenTypeAt(v)))?0<=s.indexOf(e)&&i.getRange(g,x(g.line,g.ch+3))==e+e+e?'skipThree':'skip':'both';if(a){if(a!=u)return C.Pass}else a=u}var m=r%2?n.charAt(r-1):e,b=r%2?e:n.charAt(r+1);i.operation(function(){if('skip'==a)i.execCommand('goCharRight');else if('skipThree'==a)for(var e=0;e<3;e++)i.execCommand('goCharRight');else if('surround'==a){for(var t=i.getSelections(),e=0;e<t.length;e++)t[e]=m+t[e]+b;i.replaceSelections(t,'around'),t=i.listSelections().slice();for(e=0;e<t.length;e++)t[e]=(n=t[e],r=0<C.cmpPos(n.anchor,n.head),{anchor:new x(n.anchor.line,n.anchor.ch+(r?-1:1)),head:new x(n.head.line,n.head.ch+(r?1:-1))});i.setSelections(t)}else'both'==a?(i.replaceSelection(m+b,null),i.triggerElectric(m+b),i.execCommand('goCharLeft')):'addFour'==a&&(i.replaceSelection(m+m+m+m,'before'),i.execCommand('goCharRight'));var n,r})}(e,t)}}(n))}}function k(e){var t=e.state.closeBrackets;return t&&!t.override&&e.getModeAt(e.getCursor()).closeBrackets||t}function s(e,t){t=e.getRange(x(t.line,t.ch-1),x(t.line,t.ch+1));return 2==t.length?t:null}r(n.pairs+'`')},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/addon/edit/matchbrackets.js":{"text":"var t;t=function(r){var s=/MSIE \\d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),d=r.Pos,k={'(':')>',')':'(<','[':']>',']':'[<','{':'}>','}':'{<'};function u(t,e,n){var r=t.getLineHandle(e.line),i=e.ch-1,a=n&&n.afterCursor;null==a&&(a=/(^| )cm-fat-cursor($| )/.test(t.getWrapperElement().className));var c=!a&&0<=i&&k[r.text.charAt(i)]||k[r.text.charAt(++i)];if(!c)return null;a='>'==c.charAt(1)?1:-1;if(n&&n.strict&&0<a!=(i==e.ch))return null;r=t.getTokenTypeAt(d(e.line,i+1)),n=o(t,d(e.line,i+(0<a?1:0)),a,r||null,n);return null==n?null:{from:d(e.line,i),to:n&&n.pos,match:n&&n.ch==c.charAt(0),forward:0<a}}function o(t,e,n,r,i){for(var a=i&&i.maxScanLineLength||1e4,c=i&&i.maxScanLines||1e3,o=[],l=i&&i.bracketRegex?i.bracketRegex:/[(){}[\\]]/,h=0<n?Math.min(e.line+c,t.lastLine()+1):Math.max(t.firstLine()-1,e.line-c),s=e.line;s!=h;s+=n){var u=t.getLine(s);if(u){var f=0<n?0:u.length-1,m=0<n?u.length:-1;if(!(u.length>a))for(s==e.line&&(f=e.ch-(n<0?1:0));f!=m;f+=n){var g=u.charAt(f);if(l.test(g)&&(void 0===r||t.getTokenTypeAt(d(s,f+1))==r))if('>'==k[g].charAt(1)==0<n)o.push(g);else{if(!o.length)return{pos:d(s,f),ch:g};o.pop()}}}}return s-n!=(0<n?t.lastLine():t.firstLine())&&null}function e(t,e,n){for(var r=t.state.matchBrackets.maxHighlightLineLength||1e3,i=[],a=t.listSelections(),c=0;c<a.length;c++){var o,l=a[c].empty()&&u(t,a[c].head,n);l&&t.getLine(l.from.line).length<=r&&(o=l.match?'CodeMirror-matchingbracket':'CodeMirror-nonmatchingbracket',i.push(t.markText(l.from,d(l.from.line,l.from.ch+1),{className:o})),l.to&&t.getLine(l.to.line).length<=r&&i.push(t.markText(l.to,d(l.to.line,l.to.ch+1),{className:o})))}if(i.length){s&&t.state.focused&&t.focus();function h(){t.operation(function(){for(var t=0;t<i.length;t++)i[t].clear()})}if(!e)return h;setTimeout(h,800)}}function i(t){t.operation(function(){t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null),t.state.matchBrackets.currentlyHighlighted=e(t,!1,t.state.matchBrackets)})}r.defineOption('matchBrackets',!1,function(t,e,n){n&&n!=r.Init&&(t.off('cursorActivity',i),t.state.matchBrackets&&t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null)),e&&(t.state.matchBrackets='object'==typeof e?e:{},t.on('cursorActivity',i))}),r.defineExtension('matchBrackets',function(){e(this,!0)}),r.defineExtension('findMatchingBracket',function(t,e,n){return!n&&'boolean'!=typeof e||(e=n?(n.strict=e,n):e?{strict:!0}:null),u(this,t,e)}),r.defineExtension('scanForBracket',function(t,e,n,r){return o(this,t,e,n,r)})},'object'==typeof exports&&'object'==typeof module?t(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],t):t(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror-closebrackets/readme":{"text":"This plugin adds the ability to automatically insert the closing brackets when you type an opening bracket.\nAlso enables highlighting of matching brackets.\n\nIt needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"}}}
{"tiddlers":{"$:/plugins/tiddlywiki/codemirror/mode/css/css.js":{"text":"var e;e=function(B){'use strict';function e(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}B.defineMode('css',function(e,t){var r=t.inline;t.propertyKeywords||(t=B.resolveMode('text/css'));var i,o,a=e.indentUnit,n=t.tokenHooks,l=t.documentTypes||{},s=t.mediaTypes||{},c=t.mediaFeatures||{},d=t.mediaValueKeywords||{},p=t.propertyKeywords||{},u=t.nonStandardPropertyKeywords||{},m=t.fontProperties||{},h=t.counterDescriptors||{},g=t.colorKeywords||{},b=t.valueKeywords||{},f=t.allowNested,e=t.lineComment,y=!0===t.supportsAtComponent;function w(e,t){return i=t,e}function k(a){return function(e,t){for(var r,o=!1;null!=(r=e.next());){if(r==a&&!o){')'==a&&e.backUp(1);break}o=!o&&'\\\\'==r}return r!=a&&(o||')'==a)||(t.tokenize=null),i='string'}}function v(e,t){return e.next(),e.match(/\\s*[\\\"\\')]/,!1)?t.tokenize=null:t.tokenize=k(')'),i='(',null}function x(e,t,r){this.type=e,this.indent=t,this.prev=r}function z(e,t,r,o){return e.context=new x(r,t.indentation()+(!1===o?0:a),e.context),r}function j(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function P(e,t,r){return C[r.context.type](e,t,r)}function q(e,t,r,o){for(var a=o||1;0<a;a--)r.context=r.context.prev;return P(e,t,r)}function K(e){e=e.current().toLowerCase();o=b.hasOwnProperty(e)?'atom':g.hasOwnProperty(e)?'keyword':'variable'}var C={top:function(e,t,r){if('{'==e)return z(r,t,'block');if('}'==e&&r.context.prev)return j(r);if(y&&/@component/i.test(e))return z(r,t,'atComponentBlock');if(/^@(-moz-)?document$/i.test(e))return z(r,t,'documentTypes');if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return z(r,t,'atBlock');if(/^@(font-face|counter-style)/i.test(e))return r.stateArg=e,'restricted_atBlock_before';if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return'keyframes';if(e&&'@'==e.charAt(0))return z(r,t,'at');if('hash'==e)o='builtin';else if('word'==e)o='tag';else{if('variable-definition'==e)return'maybeprop';if('interpolation'==e)return z(r,t,'interpolation');if(':'==e)return'pseudo';if(f&&'('==e)return z(r,t,'parens')}return r.context.type},block:function(e,t,r){if('word'!=e)return'meta'==e?'block':f||'hash'!=e&&'qualifier'!=e?C.top(e,t,r):(o='error','block');r=t.current().toLowerCase();return p.hasOwnProperty(r)?(o='property','maybeprop'):u.hasOwnProperty(r)?(o='string-2','maybeprop'):f?(o=t.match(/^\\s*:(?:\\s|$)/,!1)?'property':'tag','block'):(o+=' error','maybeprop')},maybeprop:function(e,t,r){return':'==e?z(r,t,'prop'):P(e,t,r)},prop:function(e,t,r){if(';'==e)return j(r);if('{'==e&&f)return z(r,t,'propBlock');if('}'==e||'{'==e)return q(e,t,r);if('('==e)return z(r,t,'parens');if('hash'!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if('word'==e)K(t);else if('interpolation'==e)return z(r,t,'interpolation')}else o+=' error';return'prop'},propBlock:function(e,t,r){return'}'==e?j(r):'word'==e?(o='property','maybeprop'):r.context.type},parens:function(e,t,r){return'{'==e||'}'==e?q(e,t,r):')'==e?j(r):'('==e?z(r,t,'parens'):'interpolation'==e?z(r,t,'interpolation'):('word'==e&&K(t),'parens')},pseudo:function(e,t,r){return'meta'==e?'pseudo':'word'==e?(o='variable-3',r.context.type):P(e,t,r)},documentTypes:function(e,t,r){return'word'==e&&l.hasOwnProperty(t.current())?(o='tag',r.context.type):C.atBlock(e,t,r)},atBlock:function(e,t,r){return'('==e?z(r,t,'atBlock_parens'):'}'==e||';'==e?q(e,t,r):'{'==e?j(r)&&z(r,t,f?'block':'top'):'interpolation'==e?z(r,t,'interpolation'):('word'==e&&(t=t.current().toLowerCase(),o='only'==t||'not'==t||'and'==t||'or'==t?'keyword':s.hasOwnProperty(t)?'attribute':c.hasOwnProperty(t)?'property':d.hasOwnProperty(t)?'keyword':p.hasOwnProperty(t)?'property':u.hasOwnProperty(t)?'string-2':b.hasOwnProperty(t)?'atom':g.hasOwnProperty(t)?'keyword':'error'),r.context.type)},atComponentBlock:function(e,t,r){return'}'==e?q(e,t,r):'{'==e?j(r)&&z(r,t,f?'block':'top',!1):('word'==e&&(o='error'),r.context.type)},atBlock_parens:function(e,t,r){return')'==e?j(r):'{'==e||'}'==e?q(e,t,r,2):C.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,r){return'{'==e?z(r,t,'restricted_atBlock'):'word'==e&&'@counter-style'==r.stateArg?(o='variable','restricted_atBlock_before'):P(e,t,r)},restricted_atBlock:function(e,t,r){return'}'==e?(r.stateArg=null,j(r)):'word'==e?(o='@font-face'==r.stateArg&&!m.hasOwnProperty(t.current().toLowerCase())||'@counter-style'==r.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())?'error':'property','maybeprop'):'restricted_atBlock'},keyframes:function(e,t,r){return'word'==e?(o='variable','keyframes'):'{'==e?z(r,t,'top'):P(e,t,r)},at:function(e,t,r){return';'==e?j(r):'{'==e||'}'==e?q(e,t,r):('word'==e?o='tag':'hash'==e&&(o='builtin'),'at')},interpolation:function(e,t,r){return'}'==e?j(r):'{'==e||';'==e?q(e,t,r):('word'==e?o='variable':'variable'!=e&&'('!=e&&')'!=e&&(o='error'),'interpolation')}};return{startState:function(e){return{tokenize:null,state:r?'block':'top',stateArg:null,context:new x(r?'block':'top',e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(n[r]){var o=n[r](e,t);if(!1!==o)return o}return'@'==r?(e.eatWhile(/[\\w\\\\\\-]/),w('def',e.current())):'='==r||('~'==r||'|'==r)&&e.eat('=')?(i='compare',null):'\"'==r||'\\''==r?(t.tokenize=k(r),t.tokenize(e,t)):'#'==r?(e.eatWhile(/[\\w\\\\\\-]/),i='hash','atom'):'!'==r?(e.match(/^\\s*\\w*/),i='important','keyword'):/\\d/.test(r)||'.'==r&&e.eat(/\\d/)?(e.eatWhile(/[\\w.%]/),i='unit','number'):'-'!==r?/[,+>*\\/]/.test(r)?(i='select-op',null):'.'==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?i='qualifier':/[:;{}\\[\\]\\(\\)]/.test(r)?w(null,r):('u'==r||'U'==r)&&e.match(/rl(-prefix)?\\(/i)||('d'==r||'D'==r)&&e.match('omain(',!0,!0)||('r'==r||'R'==r)&&e.match('egexp(',!0,!0)?(e.backUp(1),t.tokenize=v,i='word','property'):/[\\w\\\\\\-]/.test(r)?(e.eatWhile(/[\\w\\\\\\-]/),i='word','property'):i=null:/[\\d.]/.test(e.peek())?(e.eatWhile(/[\\w.%]/),i='unit','number'):e.match(/^-[\\w\\\\\\-]+/)?(e.eatWhile(/[\\w\\\\\\-]/),i=e.match(/^\\s*:/,!1)?'variable-definition':'variable','variable-2'):e.match(/^\\w+-/)?i='meta':void 0})(e,t);return r&&'object'==typeof r&&(i=r[1],r=r[0]),o=r,'comment'!=i&&(t.state=C[t.state](i,e,t)),o},indent:function(e,t){var r=e.context,e=t&&t.charAt(0),t=r.indent;return'prop'!=r.type||'}'!=e&&')'!=e||(r=r.prev),r.prev&&('}'!=e||'block'!=r.type&&'top'!=r.type&&'interpolation'!=r.type&&'restricted_atBlock'!=r.type?(')'!=e||'parens'!=r.type&&'atBlock_parens'!=r.type)&&('{'!=e||'at'!=r.type&&'atBlock'!=r.type)||(t=Math.max(0,r.indent-a)):t=(r=r.prev).indent),t},electricChars:'}',blockCommentStart:'/*',blockCommentEnd:'*/',blockCommentContinue:' * ',lineComment:e,fold:'brace'}});var t=['domain','regexp','url','url-prefix'],r=e(t),o=['all','aural','braille','handheld','print','projection','screen','tty','tv','embossed'],a=e(o),i=['width','min-width','max-width','height','min-height','max-height','device-width','min-device-width','max-device-width','device-height','min-device-height','max-device-height','aspect-ratio','min-aspect-ratio','max-aspect-ratio','device-aspect-ratio','min-device-aspect-ratio','max-device-aspect-ratio','color','min-color','max-color','color-index','min-color-index','max-color-index','monochrome','min-monochrome','max-monochrome','resolution','min-resolution','max-resolution','scan','grid','orientation','device-pixel-ratio','min-device-pixel-ratio','max-device-pixel-ratio','pointer','any-pointer','hover','any-hover'],n=e(i),l=['landscape','portrait','none','coarse','fine','on-demand','hover','interlace','progressive'],s=e(l),c=['align-content','align-items','align-self','alignment-adjust','alignment-baseline','anchor-point','animation','animation-delay','animation-direction','animation-duration','animation-fill-mode','animation-iteration-count','animation-name','animation-play-state','animation-timing-function','appearance','azimuth','backface-visibility','background','background-attachment','background-blend-mode','background-clip','background-color','background-image','background-origin','background-position','background-repeat','background-size','baseline-shift','binding','bleed','bookmark-label','bookmark-level','bookmark-state','bookmark-target','border','border-bottom','border-bottom-color','border-bottom-left-radius','border-bottom-right-radius','border-bottom-style','border-bottom-width','border-collapse','border-color','border-image','border-image-outset','border-image-repeat','border-image-slice','border-image-source','border-image-width','border-left','border-left-color','border-left-style','border-left-width','border-radius','border-right','border-right-color','border-right-style','border-right-width','border-spacing','border-style','border-top','border-top-color','border-top-left-radius','border-top-right-radius','border-top-style','border-top-width','border-width','bottom','box-decoration-break','box-shadow','box-sizing','break-after','break-before','break-inside','caption-side','caret-color','clear','clip','color','color-profile','column-count','column-fill','column-gap','column-rule','column-rule-color','column-rule-style','column-rule-width','column-span','column-width','columns','content','counter-increment','counter-reset','crop','cue','cue-after','cue-before','cursor','direction','display','dominant-baseline','drop-initial-after-adjust','drop-initial-after-align','drop-initial-before-adjust','drop-initial-before-align','drop-initial-size','drop-initial-value','elevation','empty-cells','fit','fit-position','flex','flex-basis','flex-direction','flex-flow','flex-grow','flex-shrink','flex-wrap','float','float-offset','flow-from','flow-into','font','font-feature-settings','font-family','font-kerning','font-language-override','font-size','font-size-adjust','font-stretch','font-style','font-synthesis','font-variant','font-variant-alternates','font-variant-caps','font-variant-east-asian','font-variant-ligatures','font-variant-numeric','font-variant-position','font-weight','grid','grid-area','grid-auto-columns','grid-auto-flow','grid-auto-rows','grid-column','grid-column-end','grid-column-gap','grid-column-start','grid-gap','grid-row','grid-row-end','grid-row-gap','grid-row-start','grid-template','grid-template-areas','grid-template-columns','grid-template-rows','hanging-punctuation','height','hyphens','icon','image-orientation','image-rendering','image-resolution','inline-box-align','justify-content','justify-items','justify-self','left','letter-spacing','line-break','line-height','line-stacking','line-stacking-ruby','line-stacking-shift','line-stacking-strategy','list-style','list-style-image','list-style-position','list-style-type','margin','margin-bottom','margin-left','margin-right','margin-top','marks','marquee-direction','marquee-loop','marquee-play-count','marquee-speed','marquee-style','max-height','max-width','min-height','min-width','move-to','nav-down','nav-index','nav-left','nav-right','nav-up','object-fit','object-position','opacity','order','orphans','outline','outline-color','outline-offset','outline-style','outline-width','overflow','overflow-style','overflow-wrap','overflow-x','overflow-y','padding','padding-bottom','padding-left','padding-right','padding-top','page','page-break-after','page-break-before','page-break-inside','page-policy','pause','pause-after','pause-before','perspective','perspective-origin','pitch','pitch-range','place-content','place-items','place-self','play-during','position','presentation-level','punctuation-trim','quotes','region-break-after','region-break-before','region-break-inside','region-fragment','rendering-intent','resize','rest','rest-after','rest-before','richness','right','rotation','rotation-point','ruby-align','ruby-overhang','ruby-position','ruby-span','shape-image-threshold','shape-inside','shape-margin','shape-outside','size','speak','speak-as','speak-header','speak-numeral','speak-punctuation','speech-rate','stress','string-set','tab-size','table-layout','target','target-name','target-new','target-position','text-align','text-align-last','text-decoration','text-decoration-color','text-decoration-line','text-decoration-skip','text-decoration-style','text-emphasis','text-emphasis-color','text-emphasis-position','text-emphasis-style','text-height','text-indent','text-justify','text-outline','text-overflow','text-shadow','text-size-adjust','text-space-collapse','text-transform','text-underline-position','text-wrap','top','transform','transform-origin','transform-style','transition','transition-delay','transition-duration','transition-property','transition-timing-function','unicode-bidi','user-select','vertical-align','visibility','voice-balance','voice-duration','voice-family','voice-pitch','voice-range','voice-rate','voice-stress','voice-volume','volume','white-space','widows','width','will-change','word-break','word-spacing','word-wrap','z-index','clip-path','clip-rule','mask','enable-background','filter','flood-color','flood-opacity','lighting-color','stop-color','stop-opacity','pointer-events','color-interpolation','color-interpolation-filters','color-rendering','fill','fill-opacity','fill-rule','image-rendering','marker','marker-end','marker-mid','marker-start','shape-rendering','stroke','stroke-dasharray','stroke-dashoffset','stroke-linecap','stroke-linejoin','stroke-miterlimit','stroke-opacity','stroke-width','text-rendering','baseline-shift','dominant-baseline','glyph-orientation-horizontal','glyph-orientation-vertical','text-anchor','writing-mode'],d=e(c),p=['scrollbar-arrow-color','scrollbar-base-color','scrollbar-dark-shadow-color','scrollbar-face-color','scrollbar-highlight-color','scrollbar-shadow-color','scrollbar-3d-light-color','scrollbar-track-color','shape-inside','searchfield-cancel-button','searchfield-decoration','searchfield-results-button','searchfield-results-decoration','zoom'],u=e(p),m=e(['font-family','src','unicode-range','font-variant','font-feature-settings','font-stretch','font-weight','font-style']),h=e(['additive-symbols','fallback','negative','pad','prefix','range','speak-as','suffix','symbols','system']),g=['aliceblue','antiquewhite','aqua','aquamarine','azure','beige','bisque','black','blanchedalmond','blue','blueviolet','brown','burlywood','cadetblue','chartreuse','chocolate','coral','cornflowerblue','cornsilk','crimson','cyan','darkblue','darkcyan','darkgoldenrod','darkgray','darkgreen','darkkhaki','darkmagenta','darkolivegreen','darkorange','darkorchid','darkred','darksalmon','darkseagreen','darkslateblue','darkslategray','darkturquoise','darkviolet','deeppink','deepskyblue','dimgray','dodgerblue','firebrick','floralwhite','forestgreen','fuchsia','gainsboro','ghostwhite','gold','goldenrod','gray','grey','green','greenyellow','honeydew','hotpink','indianred','indigo','ivory','khaki','lavender','lavenderblush','lawngreen','lemonchiffon','lightblue','lightcoral','lightcyan','lightgoldenrodyellow','lightgray','lightgreen','lightpink','lightsalmon','lightseagreen','lightskyblue','lightslategray','lightsteelblue','lightyellow','lime','limegreen','linen','magenta','maroon','mediumaquamarine','mediumblue','mediumorchid','mediumpurple','mediumseagreen','mediumslateblue','mediumspringgreen','mediumturquoise','mediumvioletred','midnightblue','mintcream','mistyrose','moccasin','navajowhite','navy','oldlace','olive','olivedrab','orange','orangered','orchid','palegoldenrod','palegreen','paleturquoise','palevioletred','papayawhip','peachpuff','peru','pink','plum','powderblue','purple','rebeccapurple','red','rosybrown','royalblue','saddlebrown','salmon','sandybrown','seagreen','seashell','sienna','silver','skyblue','slateblue','slategray','snow','springgreen','steelblue','tan','teal','thistle','tomato','turquoise','violet','wheat','white','whitesmoke','yellow','yellowgreen'],b=e(g),f=['above','absolute','activeborder','additive','activecaption','afar','after-white-space','ahead','alias','all','all-scroll','alphabetic','alternate','always','amharic','amharic-abegede','antialiased','appworkspace','arabic-indic','armenian','asterisks','attr','auto','auto-flow','avoid','avoid-column','avoid-page','avoid-region','background','backwards','baseline','below','bidi-override','binary','bengali','blink','block','block-axis','bold','bolder','border','border-box','both','bottom','break','break-all','break-word','bullets','button','button-bevel','buttonface','buttonhighlight','buttonshadow','buttontext','calc','cambodian','capitalize','caps-lock-indicator','caption','captiontext','caret','cell','center','checkbox','circle','cjk-decimal','cjk-earthly-branch','cjk-heavenly-stem','cjk-ideographic','clear','clip','close-quote','col-resize','collapse','color','color-burn','color-dodge','column','column-reverse','compact','condensed','contain','content','contents','content-box','context-menu','continuous','copy','counter','counters','cover','crop','cross','crosshair','currentcolor','cursive','cyclic','darken','dashed','decimal','decimal-leading-zero','default','default-button','dense','destination-atop','destination-in','destination-out','destination-over','devanagari','difference','disc','discard','disclosure-closed','disclosure-open','document','dot-dash','dot-dot-dash','dotted','double','down','e-resize','ease','ease-in','ease-in-out','ease-out','element','ellipse','ellipsis','embed','end','ethiopic','ethiopic-abegede','ethiopic-abegede-am-et','ethiopic-abegede-gez','ethiopic-abegede-ti-er','ethiopic-abegede-ti-et','ethiopic-halehame-aa-er','ethiopic-halehame-aa-et','ethiopic-halehame-am-et','ethiopic-halehame-gez','ethiopic-halehame-om-et','ethiopic-halehame-sid-et','ethiopic-halehame-so-et','ethiopic-halehame-ti-er','ethiopic-halehame-ti-et','ethiopic-halehame-tig','ethiopic-numeric','ew-resize','exclusion','expanded','extends','extra-condensed','extra-expanded','fantasy','fast','fill','fixed','flat','flex','flex-end','flex-start','footnotes','forwards','from','geometricPrecision','georgian','graytext','grid','groove','gujarati','gurmukhi','hand','hangul','hangul-consonant','hard-light','hebrew','help','hidden','hide','higher','highlight','highlighttext','hiragana','hiragana-iroha','horizontal','hsl','hsla','hue','icon','ignore','inactiveborder','inactivecaption','inactivecaptiontext','infinite','infobackground','infotext','inherit','initial','inline','inline-axis','inline-block','inline-flex','inline-grid','inline-table','inset','inside','intrinsic','invert','italic','japanese-formal','japanese-informal','justify','kannada','katakana','katakana-iroha','keep-all','khmer','korean-hangul-formal','korean-hanja-formal','korean-hanja-informal','landscape','lao','large','larger','left','level','lighter','lighten','line-through','linear','linear-gradient','lines','list-item','listbox','listitem','local','logical','loud','lower','lower-alpha','lower-armenian','lower-greek','lower-hexadecimal','lower-latin','lower-norwegian','lower-roman','lowercase','ltr','luminosity','malayalam','match','matrix','matrix3d','media-controls-background','media-current-time-display','media-fullscreen-button','media-mute-button','media-play-button','media-return-to-realtime-button','media-rewind-button','media-seek-back-button','media-seek-forward-button','media-slider','media-sliderthumb','media-time-remaining-display','media-volume-slider','media-volume-slider-container','media-volume-sliderthumb','medium','menu','menulist','menulist-button','menulist-text','menulist-textfield','menutext','message-box','middle','min-intrinsic','mix','mongolian','monospace','move','multiple','multiply','myanmar','n-resize','narrower','ne-resize','nesw-resize','no-close-quote','no-drop','no-open-quote','no-repeat','none','normal','not-allowed','nowrap','ns-resize','numbers','numeric','nw-resize','nwse-resize','oblique','octal','opacity','open-quote','optimizeLegibility','optimizeSpeed','oriya','oromo','outset','outside','outside-shape','overlay','overline','padding','padding-box','painted','page','paused','persian','perspective','plus-darker','plus-lighter','pointer','polygon','portrait','pre','pre-line','pre-wrap','preserve-3d','progress','push-button','radial-gradient','radio','read-only','read-write','read-write-plaintext-only','rectangle','region','relative','repeat','repeating-linear-gradient','repeating-radial-gradient','repeat-x','repeat-y','reset','reverse','rgb','rgba','ridge','right','rotate','rotate3d','rotateX','rotateY','rotateZ','round','row','row-resize','row-reverse','rtl','run-in','running','s-resize','sans-serif','saturation','scale','scale3d','scaleX','scaleY','scaleZ','screen','scroll','scrollbar','scroll-position','se-resize','searchfield','searchfield-cancel-button','searchfield-decoration','searchfield-results-button','searchfield-results-decoration','self-start','self-end','semi-condensed','semi-expanded','separate','serif','show','sidama','simp-chinese-formal','simp-chinese-informal','single','skew','skewX','skewY','skip-white-space','slide','slider-horizontal','slider-vertical','sliderthumb-horizontal','sliderthumb-vertical','slow','small','small-caps','small-caption','smaller','soft-light','solid','somali','source-atop','source-in','source-out','source-over','space','space-around','space-between','space-evenly','spell-out','square','square-button','start','static','status-bar','stretch','stroke','sub','subpixel-antialiased','super','sw-resize','symbolic','symbols','system-ui','table','table-caption','table-cell','table-column','table-column-group','table-footer-group','table-header-group','table-row','table-row-group','tamil','telugu','text','text-bottom','text-top','textarea','textfield','thai','thick','thin','threeddarkshadow','threedface','threedhighlight','threedlightshadow','threedshadow','tibetan','tigre','tigrinya-er','tigrinya-er-abegede','tigrinya-et','tigrinya-et-abegede','to','top','trad-chinese-formal','trad-chinese-informal','transform','translate','translate3d','translateX','translateY','translateZ','transparent','ultra-condensed','ultra-expanded','underline','unset','up','upper-alpha','upper-armenian','upper-greek','upper-hexadecimal','upper-latin','upper-norwegian','upper-roman','uppercase','urdu','url','var','vertical','vertical-text','visible','visibleFill','visiblePainted','visibleStroke','visual','w-resize','wait','wave','wider','window','windowframe','windowtext','words','wrap','wrap-reverse','x-large','x-small','xor','xx-large','xx-small'],y=e(f),f=t.concat(o).concat(i).concat(l).concat(c).concat(p).concat(g).concat(f);function w(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&'/'==r){t.tokenize=null;break}o='*'==r}return['comment','comment']}B.registerHelper('hintWords','css',f),B.defineMIME('text/css',{documentTypes:r,mediaTypes:a,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:d,nonStandardPropertyKeywords:u,fontProperties:m,counterDescriptors:h,colorKeywords:b,valueKeywords:y,tokenHooks:{'/':function(e,t){return!!e.eat('*')&&(t.tokenize=w)(e,t)}},name:'css'}),B.defineMIME('text/x-scss',{mediaTypes:a,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:d,nonStandardPropertyKeywords:u,colorKeywords:b,valueKeywords:y,fontProperties:m,allowNested:!0,lineComment:'//',tokenHooks:{'/':function(e,t){return e.eat('/')?(e.skipToEnd(),['comment','comment']):e.eat('*')?(t.tokenize=w)(e,t):['operator','operator']},':':function(e){return!!e.match(/\\s*\\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\\w-]+/),e.match(/^\\s*:/,!1)?['variable-2','variable-definition']:['variable-2','variable']},'#':function(e){return!!e.eat('{')&&[null,'interpolation']}},name:'css',helperType:'scss'}),B.defineMIME('text/x-less',{mediaTypes:a,mediaFeatures:n,mediaValueKeywords:s,propertyKeywords:d,nonStandardPropertyKeywords:u,colorKeywords:b,valueKeywords:y,fontProperties:m,allowNested:!0,lineComment:'//',tokenHooks:{'/':function(e,t){return e.eat('/')?(e.skipToEnd(),['comment','comment']):e.eat('*')?(t.tokenize=w)(e,t):['operator','operator']},'@':function(e){return e.eat('{')?[null,'interpolation']:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i,!1)&&(e.eatWhile(/[\\w\\\\\\-]/),e.match(/^\\s*:/,!1)?['variable-2','variable-definition']:['variable-2','variable'])},'&':function(){return['atom','atom']}},name:'css',helperType:'less'}),B.defineMIME('text/x-gss',{documentTypes:r,mediaTypes:a,mediaFeatures:n,propertyKeywords:d,nonStandardPropertyKeywords:u,fontProperties:m,counterDescriptors:h,colorKeywords:b,valueKeywords:y,supportsAtComponent:!0,tokenHooks:{'/':function(e,t){return!!e.eat('*')&&(t.tokenize=w)(e,t)}},name:'css',helperType:'gss'})},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror-mode-css/readme":{"text":"This plugin adds Syntax Highlighting for CSS tiddlers (text/css) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n\n"}}}
{"tiddlers":{"$:/plugins/tiddlywiki/codemirror/addon/search/search.js":{"text":"var e;e=function(l){'use strict';function u(e){return e.state.search||(e.state.search=new function(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null})}function t(e){return'string'==typeof e&&e==e.toLowerCase()}function c(e,o,r){return e.getSearchCursor(o,r,{caseFold:t(o),multiline:!0})}function f(e,o,r,n,t){e.openDialog?e.openDialog(o,t,{value:n,selectValueOnOpen:!0}):t(prompt(r,n))}function p(e){return e.replace(/\\\\(.)/g,function(e,o){return'n'==o?'\\n':'r'==o?'\\r':o})}function a(e){var o=e.match(/^\\/(.*)\\/([a-z]*)$/);if(o)try{e=new RegExp(o[1],-1==o[2].indexOf('i')?'':'i')}catch(e){}else e=p(e);return('string'==typeof e?''==e:e.test(''))&&(e=/x^/),e}var d='<span class=\"CodeMirror-search-label\">Search:</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';function y(e,o,r){var n;o.queryText=r,o.query=a(r),e.removeOverlay(o.overlay,t(o.query)),o.overlay=(n=o.query,r=t(o.query),'string'==typeof n?n=new RegExp(n.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,'\\\\$&'),r?'gi':'g'):n.global||(n=new RegExp(n.source,n.ignoreCase?'gi':'g')),{token:function(e){n.lastIndex=e.pos;var o=n.exec(e.string);if(o&&o.index==e.pos)return e.pos+=o[0].length||1,'searching';o?e.pos=o.index:e.skipToEnd()}}),e.addOverlay(o.overlay),e.showMatchesOnScrollbar&&(o.annotate&&(o.annotate.clear(),o.annotate=null),o.annotate=e.showMatchesOnScrollbar(o.query,t(o.query)))}function o(t,o,e,r){var n=u(t);if(n.query)return m(t,o);var a,s,i,c=t.getSelection()||n.lastQuery;c instanceof RegExp&&'x^'==c.source&&(c=null),e&&t.openDialog?(s=null,i=function(e,o){l.e_stop(o),e&&(e!=n.queryText&&(y(t,n,e),n.posFrom=n.posTo=t.getCursor()),s&&(s.style.opacity=1),m(t,o.shiftKey,function(e,o){var r;o.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector('.CodeMirror-dialog'))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(o,'window').top&&((s=r).style.opacity=.4)}))},e=function(e,o){var r=l.keyName(e),n=t.getOption('extraKeys'),r=n&&n[r]||l.keyMap[t.getOption('keyMap')][r];'findNext'==r||'findPrev'==r||'findPersistentNext'==r||'findPersistentPrev'==r?(l.e_stop(e),y(t,u(t),o),t.execCommand(r)):'find'!=r&&'findPersistent'!=r||(l.e_stop(e),i(o,e))},(a=t).openDialog('<span class=\"CodeMirror-search-label\">Search:</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>',i,{value:c,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){h(a)},onKeyDown:e}),r&&c&&(y(t,n,c),m(t,o))):f(t,d,'Search for:',c,function(e){e&&!n.query&&t.operation(function(){y(t,n,e),n.posFrom=n.posTo=t.getCursor(),m(t,o)})})}function m(r,n,t){r.operation(function(){var e=u(r),o=c(r,e.query,n?e.posFrom:e.posTo);(o.find(n)||(o=c(r,e.query,n?l.Pos(r.lastLine()):l.Pos(r.firstLine(),0))).find(n))&&(r.setSelection(o.from(),o.to()),r.scrollIntoView({from:o.from(),to:o.to()},20),e.posFrom=o.from(),e.posTo=o.to(),t&&t(o.from(),o.to()))})}function h(o){o.operation(function(){var e=u(o);e.lastQuery=e.query,e.query&&(e.query=e.queryText=null,o.removeOverlay(e.overlay),e.annotate&&(e.annotate.clear(),e.annotate=null))})}function g(o,n,t){o.operation(function(){for(var r,e=c(o,n);e.findNext();)'string'!=typeof n?(r=o.getRange(e.from(),e.to()).match(n),e.replace(t.replace(/\\$(\\d)/g,function(e,o){return r[o]}))):e.replace(t)})}function r(i,e){var o,r;i.getOption('readOnly')||(o=i.getSelection()||u(i).lastQuery,f(i,(r='<span class=\"CodeMirror-search-label\">'+(e?'Replace all:':'Replace:')+'</span>')+' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>',r,o,function(s){s&&(s=a(s),f(i,'<span class=\"CodeMirror-search-label\">With:</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>','Replace with:','',function(n){var t,a,r;n=p(n),e?g(i,s,n):(h(i),t=c(i,s,i.getCursor('from')),a=function(){var e,o=t.from();!(e=t.findNext())&&(t=c(i,s),!(e=t.findNext())||o&&t.from().line==o.line&&t.from().ch==o.ch)||(i.setSelection(t.from(),t.to()),i.scrollIntoView({from:t.from(),to:t.to()}),o=[function(){r(e)},a,function(){g(i,s,n)}],i.openConfirm?i.openConfirm('<span class=\"CodeMirror-search-label\">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>',o):confirm('Replace?')&&o[0]())},r=function(r){t.replace('string'==typeof s?n:n.replace(/\\$(\\d)/g,function(e,o){return r[o]})),a()},a())}))}))}l.commands.find=function(e){h(e),o(e)},l.commands.findPersistent=function(e){h(e),o(e,!1,!0)},l.commands.findPersistentNext=function(e){o(e,!1,!0,!0)},l.commands.findPersistentPrev=function(e){o(e,!0,!0,!0)},l.commands.findNext=o,l.commands.findPrev=function(e){o(e,!0)},l.commands.clearSearch=h,l.commands.replace=r,l.commands.replaceAll=function(e){r(e,!0)}},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),require('./searchcursor'),require('../dialog/dialog')):'function'==typeof define&&define.amd?define(['../../lib/codemirror','./searchcursor','../dialog/dialog'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/addon/search/jump-to-line.js":{"text":"var e;e=function(e){'use strict';function s(e,o){var r=Number(o);return/^[-+]/.test(o)?e.getCursor().line+r:r-1}e.commands.jumpToLine=function(t){var i=t.getCursor(),e=i.line+1+':'+i.ch,o=function(e){var o,r;e&&((o=/^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(e))?t.setCursor(s(t,o[1]),Number(o[2])):(o=/^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(e))?(r=Math.round(t.lineCount()*Number(o[1])/100),/^[-+]/.test(o[1])&&(r=i.line+r+1),t.setCursor(r-1,i.ch)):(o=/^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(e))&&t.setCursor(s(t,o[1]),i.ch))};t.openDialog?t.openDialog('Jump to line: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use line:column or scroll% syntax)</span>',o,{value:e,selectValueOnOpen:!0}):o(prompt('Jump to line:',e))},e.keyMap.default['Alt-G']='jumpToLine'},'object'==typeof exports&&'object'==typeof module?e(require('../../lib/codemirror'),require('../dialog/dialog')):'function'==typeof define&&define.amd?define(['../../lib/codemirror','../dialog/dialog'],e):e(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror/addon/search/searchcursor.js":{"text":"var t;t=function(i){'use strict';var v,p,x=i.Pos;function g(t,e){for(var n=null!=(n=t.flags)?n:(t.ignoreCase?'i':'')+(t.global?'g':'')+(t.multiline?'m':''),r=n,i=0;i<e.length;i++)-1==r.indexOf(e.charAt(i))&&(r+=e.charAt(i));return n==r?t:new RegExp(t.source,r)}function m(t,e,n){e=g(e,'g');for(var r=n.line,i=n.ch,o=t.lastLine();r<=o;r++,i=0){e.lastIndex=i;var l=t.getLine(r),l=e.exec(l);if(l)return{from:x(r,l.index),to:x(r,l.index+l[0].length),match:l}}}function d(t,e){for(var n,r=0;;){e.lastIndex=r;var i=e.exec(t);if(!i)return n;if((r=(n=i).index+(n[0].length||1))==t.length)return n}}function L(t,e,n,r){if(t.length==e.length)return n;for(var i=0,o=n+Math.max(0,t.length-e.length);;){if(i==o)return i;var l=i+o>>1,h=r(t.slice(0,l)).length;if(h==n)return l;n<h?o=l:i=1+l}}function r(n,r,t,e){var i;this.atOccurrence=!1,this.doc=n,t=t?n.clipPos(t):x(0,0),this.pos={from:t,to:t},'object'==typeof e?i=e.caseFold:(i=e,e=null),'string'==typeof r?(null==i&&(i=!1),this.matches=function(t,e){return(t?function(t,e,n,r){if(!e.length)return null;var i=r?v:p,o=i(e).split(/\\r|\\n\\r?/);t:for(var l=n.line,h=n.ch,s=t.firstLine()-1+o.length;s<=l;l--,h=-1){var c=t.getLine(l);-1<h&&(c=c.slice(0,h));var f=i(c);if(1==o.length){var u=f.lastIndexOf(o[0]);if(-1==u)continue t;return{from:x(l,L(c,f,u,i)),to:x(l,L(c,f,u+o[0].length,i))}}var a=o[o.length-1];if(f.slice(0,a.length)==a){var g=1;for(n=l-o.length+1;g<o.length-1;g++)if(i(t.getLine(n+g))!=o[g])continue t;var m=t.getLine(l+1-o.length),u=i(m);if(u.slice(u.length-o[0].length)==o[0])return{from:x(l+1-o.length,L(m,u,m.length-o[0].length,i)),to:x(l,L(c,f,a.length,i))}}}}:function(t,e,n,r){if(!e.length)return null;var i=r?v:p,o=i(e).split(/\\r|\\n\\r?/);t:for(var l=n.line,h=n.ch,s=t.lastLine()+1-o.length;l<=s;l++,h=0){var c=t.getLine(l).slice(h),f=i(c);if(1==o.length){var u=f.indexOf(o[0]);if(-1==u)continue t;return n=L(c,f,u,i)+h,{from:x(l,L(c,f,u,i)+h),to:x(l,L(c,f,u+o[0].length,i)+h)}}var a=f.length-o[0].length;if(f.slice(a)==o[0]){for(var g=1;g<o.length-1;g++)if(i(t.getLine(l+g))!=o[g])continue t;var m=t.getLine(l+o.length-1),d=i(m),u=o[o.length-1];if(d.slice(0,u.length)==u)return{from:x(l,L(c,f,a,i)+h),to:x(l+o.length-1,L(m,d,u.length,i))}}}})(n,r,e,i)}):(r=g(r,'gm'),e&&!1===e.multiline?this.matches=function(t,e){return(t?function(t,e,n){e=g(e,'g');for(var r=n.line,i=n.ch,o=t.firstLine();o<=r;r--,i=-1){var l=t.getLine(r);-1<i&&(l=l.slice(0,i));l=d(l,e);if(l)return{from:x(r,l.index),to:x(r,l.index+l[0].length),match:l}}}:m)(n,r,e)}:this.matches=function(t,e){return(t?function(t,e,n){e=g(e,'gm');for(var r=1,i=n.line,o=t.firstLine();o<=i;){for(var l=0;l<r;l++)var h=t.getLine(i--),s=null==s?h.slice(0,n.ch):h+'\\n'+s;r*=2;var c=d(s,e);if(c){var f=s.slice(0,c.index).split('\\n'),u=c[0].split('\\n'),a=i+f.length,f=f[f.length-1].length;return{from:x(a,f),to:x(a+u.length-1,1==u.length?f+u[0].length:u[u.length-1].length),match:c}}}}:function(t,e,n){if(!/\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(e.source))return m(t,e,n);e=g(e,'gm');for(var r=1,i=n.line,o=t.lastLine();i<=o;){for(var l=0;l<r&&!(o<i);l++)var h=t.getLine(i++),s=null==s?h:s+'\\n'+h;r*=2,e.lastIndex=n.ch;var c=e.exec(s);if(c){var f=s.slice(0,c.index).split('\\n'),u=c[0].split('\\n'),a=n.line+f.length-1,f=f[f.length-1].length;return{from:x(a,f),to:x(a+u.length-1,1==u.length?f+u[0].length:u[u.length-1].length),match:c}}}})(n,r,e)})}p=String.prototype.normalize?(v=function(t){return t.normalize('NFD').toLowerCase()},function(t){return t.normalize('NFD')}):(v=function(t){return t.toLowerCase()},function(t){return t}),r.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){for(var e=this.matches(t,this.doc.clipPos(t?this.pos.from:this.pos.to));e&&0==i.cmpPos(e.from,e.to);)t?e.from.ch?e.from=x(e.from.line,e.from.ch-1):e=e.from.line==this.doc.firstLine()?null:this.matches(t,this.doc.clipPos(x(e.from.line-1))):e.to.ch<this.doc.getLine(e.to.line).length?e.to=x(e.to.line,e.to.ch+1):e=e.to.line==this.doc.lastLine()?null:this.matches(t,x(e.to.line+1,0));if(e)return this.pos=e,this.atOccurrence=!0,this.pos.match||!0;var n=x(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:n,to:n},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,e){this.atOccurrence&&(t=i.splitLines(t),this.doc.replaceRange(t,this.pos.from,this.pos.to,e),this.pos.to=x(this.pos.from.line+t.length-1,t[t.length-1].length+(1==t.length?this.pos.from.ch:0)))}},i.defineExtension('getSearchCursor',function(t,e,n){return new r(this.doc,t,e,n)}),i.defineDocExtension('getSearchCursor',function(t,e,n){return new r(this,t,e,n)}),i.defineExtension('selectMatches',function(t,e){for(var n=[],r=this.getSearchCursor(t,this.getCursor('from'),e);r.findNext()&&!(0<i.cmpPos(r.to(),this.getCursor('to')));)n.push({anchor:r.from(),head:r.to()});n.length&&this.setSelections(n,0)})},'object'==typeof exports&&'object'==typeof module?t(require('../../lib/codemirror')):'function'==typeof define&&define.amd?define(['../../lib/codemirror'],t):t(CodeMirror);","type":"application/javascript","module-type":"codemirror"},"$:/plugins/tiddlywiki/codemirror-search-replace/readme":{"text":"This plugin enhances the [[CodeMirror|http://codemirror.net]] text editor with Search and Replace functionality. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nIt adds these Keyboard Shortcuts to ~CodeMirror:\n\n|Shortcut |Function |h\n|Ctrl-F / Cmd-F |Start searching |\n|Ctrl-G / Cmd-G / Shift-F3 |Find next |\n|Shift-Ctrl-G / Shift-Cmd-G / F3 |Find previous |\n|Shift-Ctrl-F / Cmd-Option-F |Replace |\n|Shift-Ctrl-R / Shift-Cmd-Option-F |Replace all |\n|Alt-F |Persistent search (dialog doesn't autoclose, enter to find next, Shift-Enter to find previous) |\n|Alt-G |Jump to line |\n\n"}}}
{"tiddlers":{"$:/plugins/tiddlywiki/highlight/highlight.js":{"text":"var e,t,r=require('$:/plugins/tiddlywiki/highlight/highlight.js');e=function(o){var d=[],s=Object.keys,R={},n={},t=/^(no-?highlight|plain|text)$/i,c=/\\blang(?:uage)?-([\\w-]+)\\b/i,r=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,i={case_insensitive:'cI',lexemes:'l',contains:'c',keywords:'k',subLanguage:'sL',className:'cN',begin:'b',beginKeywords:'bK',end:'e',endsWithParent:'eW',illegal:'i',excludeBegin:'eB',excludeEnd:'eE',returnBegin:'rB',returnEnd:'rE',relevance:'r',variants:'v',IDENT_RE:'IR',UNDERSCORE_IDENT_RE:'UIR',NUMBER_RE:'NR',C_NUMBER_RE:'CNR',BINARY_NUMBER_RE:'BNR',RE_STARTERS_RE:'RSR',BACKSLASH_ESCAPE:'BE',APOS_STRING_MODE:'ASM',QUOTE_STRING_MODE:'QSM',PHRASAL_WORDS_MODE:'PWM',C_LINE_COMMENT_MODE:'CLCM',C_BLOCK_COMMENT_MODE:'CBCM',HASH_COMMENT_MODE:'HCM',NUMBER_MODE:'NM',C_NUMBER_MODE:'CNM',BINARY_NUMBER_MODE:'BNM',CSS_NUMBER_MODE:'CSSNM',REGEXP_MODE:'RM',TITLE_MODE:'TM',UNDERSCORE_TITLE_MODE:'UTM',COMMENT:'C',beginRe:'bR',endRe:'eR',illegalRe:'iR',lexemesRe:'lR',terminators:'t',terminator_end:'tE'},f='</span>',v={classPrefix:'hljs-',tabReplace:null,useBR:!1,languages:void 0};function C(e){return e.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')}function p(e){return e.nodeName.toLowerCase()}function E(e,t){t=e&&e.exec(t);return t&&0===t.index}function l(e){return t.test(e)}function u(e){var t,r={},o=Array.prototype.slice.call(arguments,1);for(t in e)r[t]=e[t];return o.forEach(function(e){for(t in e)r[t]=e[t]}),r}function m(e){var i=[];return function e(t,r){for(var o=t.firstChild;o;o=o.nextSibling)3===o.nodeType?r+=o.nodeValue.length:1===o.nodeType&&(i.push({event:'start',offset:r,node:o}),r=e(o,r),p(o).match(/br|hr|img|input/)||i.push({event:'stop',offset:r,node:o}));return r}(e,0),i}function a(e){if(i&&!e.langApiRestored){for(var t in e.langApiRestored=!0,i)e[t]&&(e[i[t]]=e[t]);(e.c||[]).concat(e.v||[]).forEach(a)}}function I(a){function c(e){return e&&e.source||e}function n(e,t){return new RegExp(c(e),'m'+(a.cI?'i':'')+(t?'g':''))}!function t(r,e){function o(t,e){a.cI&&(e=e.toLowerCase()),e.split(' ').forEach(function(e){e=e.split('|');i[e[0]]=[t,e[1]?Number(e[1]):1]})}var i;r.compiled||(r.compiled=!0,r.k=r.k||r.bK,r.k&&(i={},'string'==typeof r.k?o('keyword',r.k):s(r.k).forEach(function(e){o(e,r.k[e])}),r.k=i),r.lR=n(r.l||/\\w+/,!0),e&&(r.bK&&(r.b='\\\\b('+r.bK.split(' ').join('|')+')\\\\b'),r.b||(r.b=/\\B|\\b/),r.bR=n(r.b),r.endSameAsBegin&&(r.e=r.b),r.e||r.eW||(r.e=/\\B|\\b/),r.e&&(r.eR=n(r.e)),r.tE=c(r.e)||'',r.eW&&e.tE&&(r.tE+=(r.e?'|':'')+e.tE)),r.i&&(r.iR=n(r.i)),null==r.r&&(r.r=1),r.c||(r.c=[]),r.c=Array.prototype.concat.apply([],r.c.map(function(e){return(t='self'===e?r:e).v&&!t.cached_variants&&(t.cached_variants=t.v.map(function(e){return u(t,{v:null},e)})),t.cached_variants||t.eW&&[u(t)]||[t];var t})),r.c.forEach(function(e){t(e,r)}),r.starts&&t(r.starts,e),e=r.c.map(function(e){return e.bK?'\\\\.?(?:'+e.b+')\\\\.?':e.b}).concat([r.tE,r.i]).map(c).filter(Boolean),r.t=e.length?n(function(e){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,o='',i=0;i<e.length;i++){var a=r,n=c(e[i]);for(0<i&&(o+='|');0<n.length;){var s=t.exec(n);if(null==s){o+=n;break}o+=n.substring(0,s.index),n=n.substring(s.index+s[0].length),'\\\\'==s[0][0]&&s[1]?o+='\\\\'+String(Number(s[1])+a):(o+=s[0],'('==s[0]&&r++)}}return o}(e),!0):{exec:function(){return null}})}(a)}function M(e,t,o,r){function a(e,t,r,o){o='<span class=\"'+(o?'':v.classPrefix);return e?(o+=e+'\">')+t+(r?'':f):t}function i(){d+=(null!=l.sL?function(){var e='string'==typeof l.sL;if(e&&!R[l.sL])return C(m);var t=e?M(l.sL,m,!0,u[l.sL]):A(m,l.sL.length?l.sL:void 0);return 0<l.r&&(N+=t.r),e&&(u[l.sL]=t.top),a(t.language,t.value,!1,!0)}:function(){var e,t,r,o,i;if(!l.k)return C(m);for(r='',e=0,l.lR.lastIndex=0,t=l.lR.exec(m);t;)r+=C(m.substring(e,t.index)),o=l,i=t,i=c.cI?i[0].toLowerCase():i[0],(i=o.k.hasOwnProperty(i)&&o.k[i])?(N+=i[1],r+=a(i[0],C(t[0]))):r+=C(t[0]),e=l.lR.lastIndex,t=l.lR.exec(m);return r+C(m.substr(e))})(),m=''}function n(e){d+=e.cN?a(e.cN,'',!0):'',l=Object.create(e,{parent:{value:l}})}function s(e,t){if(m+=e,null==t)return i(),0;e=function(e,t){for(var r,o=0,i=t.c.length;o<i;o++)if(E(t.c[o].bR,e))return t.c[o].endSameAsBegin&&(t.c[o].eR=(r=t.c[o].bR.exec(e)[0],new RegExp(r.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,'\\\\$&'),'m'))),t.c[o]}(t,l);if(e)return e.skip?m+=t:(e.eB&&(m+=t),i(),e.rB||e.eB||(m=t)),n(e),e.rB?0:t.length;var r=function e(t,r){if(E(t.eR,r)){for(;t.endsParent&&t.parent;)t=t.parent;return t}if(t.eW)return e(t.parent,r)}(l,t);if(r){e=l;for(e.skip?m+=t:(e.rE||e.eE||(m+=t),i(),e.eE&&(m=t));l.cN&&(d+=f),l.skip||l.sL||(N+=l.r),(l=l.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),n(r.starts)),e.rE?0:t.length}if(!o&&E(l.iR,t))throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(l.cN||'<unnamed>')+'\"');return m+=t,t.length||1}var c=_(e);if(!c)throw new Error('Unknown language: \"'+e+'\"');I(c);for(var l=r||c,u={},d='',p=l;p!==c;p=p.parent)p.cN&&(d=a(p.cN,'',!0)+d);var m='',N=0;try{for(var b,S,g=0;l.t.lastIndex=g,b=l.t.exec(t);)S=s(t.substring(g,b.index),b[0]),g=b.index+S;for(s(t.substr(g)),p=l;p.parent;p=p.parent)p.cN&&(d+=f);return{r:N,value:d,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf('Illegal'))return{r:0,value:C(t)};throw e}}function A(r,e){e=e||v.languages||s(R);var o={r:0,value:C(r)},i=o;return e.filter(_).filter(g).forEach(function(e){var t=M(e,r,!1);t.language=e,t.r>i.r&&(i=t),t.r>o.r&&(i=o,o=t)}),i.language&&(o.second_best=i),o}function N(e){return v.tabReplace||v.useBR?e.replace(r,function(e,t){return v.useBR&&'\\n'===e?'<br>':v.tabReplace?t.replace(/\\t/g,v.tabReplace):''}):e}function b(a){var e,t,r,o,i=function(){var e,t,r,o,i=a.className+' ';if(i+=a.parentNode?a.parentNode.className:'',t=c.exec(i))return _(t[1])?t[1]:'no-highlight';for(e=0,r=(i=i.split(/\\s+/)).length;e<r;e++)if(l(o=i[e])||_(o))return o}();l(i)||(v.useBR?(e=document.createElementNS('http://www.w3.org/1999/xhtml','div')).innerHTML=a.innerHTML.replace(/\\n/g,'').replace(/<br[ \\/]*>/g,'\\n'):e=a,o=e.textContent,t=i?M(i,o,!0):A(o),(e=m(e)).length&&((r=document.createElementNS('http://www.w3.org/1999/xhtml','div')).innerHTML=t.value,t.value=function(e,t,r){var o=0,i='',a=[];function n(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:'start'===t[0].event?e:t:e.length?e:t}function s(e){i+='<'+p(e)+d.map.call(e.attributes,function(e){return' '+e.nodeName+'=\"'+C(e.value).replace('\"','"')+'\"'}).join('')+'>'}function c(e){i+='</'+p(e)+'>'}function l(e){('start'===e.event?s:c)(e.node)}for(;e.length||t.length;){var u=n();if(i+=C(r.substring(o,u[0].offset)),o=u[0].offset,u===e){for(a.reverse().forEach(c);l(u.splice(0,1)[0]),(u=n())===e&&u.length&&u[0].offset===o;);a.reverse().forEach(s)}else'start'===u[0].event?a.push(u[0].node):a.pop(),l(u.splice(0,1)[0])}return i+C(r.substr(o))}(e,m(r),o)),t.value=N(t.value),a.innerHTML=t.value,a.className=(r=a.className,o=t.language,i=i?n[i]:o,o=[r.trim()],r.match(/\\bhljs\\b/)||o.push('hljs'),-1===r.indexOf(i)&&o.push(i),o.join(' ').trim()),a.result={language:t.language,re:t.r},t.second_best&&(a.second_best={language:t.second_best.language,re:t.second_best.r}))}function S(){var e;S.called||(S.called=!0,e=document.querySelectorAll('pre code'),d.forEach.call(e,b))}function _(e){return e=(e||'').toLowerCase(),R[e]||R[n[e]]}function g(e){e=_(e);return e&&!e.disableAutodetect}return o.highlight=M,o.highlightAuto=A,o.fixMarkup=N,o.highlightBlock=b,o.configure=function(e){v=u(v,e)},o.initHighlighting=S,o.initHighlightingOnLoad=function(){addEventListener('DOMContentLoaded',S,!1),addEventListener('load',S,!1)},o.registerLanguage=function(t,e){e=R[t]=e(o);a(e),e.aliases&&e.aliases.forEach(function(e){n[e]=t})},o.listLanguages=function(){return s(R)},o.getLanguage=_,o.autoDetection=g,o.inherit=u,o.IR=o.IDENT_RE='[a-zA-Z]\\\\w*',o.UIR=o.UNDERSCORE_IDENT_RE='[a-zA-Z_]\\\\w*',o.NR=o.NUMBER_RE='\\\\b\\\\d+(\\\\.\\\\d+)?',o.CNR=o.C_NUMBER_RE='(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)',o.BNR=o.BINARY_NUMBER_RE='\\\\b(0b[01]+)',o.RSR=o.RE_STARTERS_RE='!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~',o.BE=o.BACKSLASH_ESCAPE={b:'\\\\\\\\[\\\\s\\\\S]',r:0},o.ASM=o.APOS_STRING_MODE={cN:'string',b:'\\'',e:'\\'',i:'\\\\n',c:[o.BE]},o.QSM=o.QUOTE_STRING_MODE={cN:'string',b:'\"',e:'\"',i:'\\\\n',c:[o.BE]},o.PWM=o.PHRASAL_WORDS_MODE={b:/\\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/},o.C=o.COMMENT=function(e,t,r){r=o.inherit({cN:'comment',b:e,e:t,c:[]},r||{});return r.c.push(o.PWM),r.c.push({cN:'doctag',b:'(?:TODO|FIXME|NOTE|BUG|XXX):',r:0}),r},o.CLCM=o.C_LINE_COMMENT_MODE=o.C('//','$'),o.CBCM=o.C_BLOCK_COMMENT_MODE=o.C('/\\\\*','\\\\*/'),o.HCM=o.HASH_COMMENT_MODE=o.C('#','$'),o.NM=o.NUMBER_MODE={cN:'number',b:o.NR,r:0},o.CNM=o.C_NUMBER_MODE={cN:'number',b:o.CNR,r:0},o.BNM=o.BINARY_NUMBER_MODE={cN:'number',b:o.BNR,r:0},o.CSSNM=o.CSS_NUMBER_MODE={cN:'number',b:o.NR+'(%|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)?',r:0},o.RM=o.REGEXP_MODE={cN:'regexp',b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[o.BE,{b:/\\[/,e:/\\]/,r:0,c:[o.BE]}]},o.TM=o.TITLE_MODE={cN:'title',b:o.IR,r:0},o.UTM=o.UNDERSCORE_TITLE_MODE={cN:'title',b:o.UIR,r:0},o.METHOD_GUARD={b:'\\\\.\\\\s*'+o.UIR,r:0},o},t='object'==typeof window&&window||'object'==typeof self&&self,'undefined'!=typeof exports?e(exports):t&&(t.hljs=e({}),'function'==typeof define&&define.amd&&define([],function(){return t.hljs})),r.registerLanguage('php',function(e){var t={b:'\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*'},r={cN:'meta',b:/<\\?(php)?|\\?>/},o={cN:'string',c:[e.BE,r],v:[{b:'b\"',e:'\"'},{b:'b\\'',e:'\\''},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},i={v:[e.BNM,e.CNM]};return{aliases:['php','php3','php4','php5','php6','php7'],cI:!0,k:'and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally',c:[e.HCM,e.C('//','$',{c:[r]}),e.C('/\\\\*','\\\\*/',{c:[{cN:'doctag',b:'@[A-Za-z]+'}]}),e.C('__halt_compiler.+?;',!1,{eW:!0,k:'__halt_compiler',l:e.UIR}),{cN:'string',b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:'subst',v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},r,{cN:'keyword',b:/\\$this\\b/},t,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:'function',bK:'function',e:/[;{]/,eE:!0,i:'\\\\$|\\\\[|%',c:[e.UTM,{cN:'params',b:'\\\\(',e:'\\\\)',c:['self',t,e.CBCM,o,i]}]},{cN:'class',bK:'class interface',e:'{',eE:!0,i:/[:\\(\\$\"]/,c:[{bK:'extends implements'},e.UTM]},{bK:'namespace',e:';',i:/[\\.']/,c:[e.UTM]},{bK:'use',e:';',c:[e.UTM]},{b:'=>'},o,i]}}),r.registerLanguage('css',function(e){var t={b:/[A-Z\\_\\.\\-]+\\s*:/,rB:!0,e:';',eW:!0,c:[{cN:'attribute',b:/\\S/,e:':',eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:'built_in',b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:'number',b:'#[0-9A-Fa-f]+'},{cN:'meta',b:'!important'}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:'selector-id',b:/#[A-Za-z0-9_-]+/},{cN:'selector-class',b:/\\.[A-Za-z0-9_-]+/},{cN:'selector-attr',b:/\\[/,e:/\\]/,i:'$'},{cN:'selector-pseudo',b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:'@(font-face|page)',l:'[a-z-]+',k:'font-face page'},{b:'@',e:'[{;]',i:/:/,c:[{cN:'keyword',b:/\\w+/},{b:/\\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:'selector-tag',b:'[a-zA-Z-][a-zA-Z0-9_-]*',r:0},{b:'{',e:'}',i:/\\S/,c:[e.CBCM,t]}]}}),r.registerLanguage('bash',function(e){var t={cN:'variable',v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},r={cN:'string',b:/\"/,e:/\"/,c:[e.BE,t,{cN:'variable',b:/\\$\\(/,e:/\\)/,c:[e.BE]}]};return{aliases:['sh','zsh'],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:'if then else elif fi for while in do done case esac function',literal:'true false',built_in:'break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp',_:'-ne -eq -lt -gt -f -d -e -s -l -a'},c:[{cN:'meta',b:/^#![^\\n]+sh\\s*$/,r:10},{cN:'function',b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],r:0},e.HCM,r,{cN:'string',b:/'/,e:/'/},t]}}),r.registerLanguage('properties',function(e){var t='[ \\\\t\\\\f]*',r='('+t+'[:=]'+t+'|[ \\\\t\\\\f]+)',o='([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+',i='([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+',a={e:r,r:0,starts:{cN:'string',e:/$/,r:0,c:[{b:'\\\\\\\\\\\\n'}]}};return{cI:!0,i:/\\S/,c:[e.C('^\\\\s*[!#]','$'),{b:o+r,rB:!0,c:[{cN:'attr',b:o,endsParent:!0,r:0}],starts:a},{b:i+r,rB:!0,r:0,c:[{cN:'meta',b:i,endsParent:!0,r:0}],starts:a},{cN:'attr',r:0,b:i+t+'$'}]}}),r.registerLanguage('objectivec',function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,r='@interface @class @protocol @implementation';return{aliases:['mm','objc','obj-c'],k:{keyword:'int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar 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:'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'},l:t,i:'</',c:[{cN:'built_in',b:'\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+'},e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:'string',v:[{b:'@\"',e:'\"',i:'\\\\n',c:[e.BE]},{b:'\\'',e:'[^\\\\\\\\]\\'',i:'[^\\\\\\\\][^\\']'}]},{cN:'meta',b:'#',e:'$',c:[{cN:'meta-string',v:[{b:'\"',e:'\"'},{b:'<',e:'>'}]}]},{cN:'class',b:'('+r.split(' ').join('|')+')\\\\b',e:'({|$)',eE:!0,k:r,l:t,c:[e.UTM]},{b:'\\\\.'+e.UIR,r:0}]}}),r.registerLanguage('python',function(e){var t={keyword:'and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10',built_in:'Ellipsis NotImplemented',literal:'False None True'},r={cN:'meta',b:/^(>>>|\\.\\.\\.) /},o={cN:'subst',b:/\\{/,e:/\\}/,k:t,i:/#/},i={cN:'string',c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,r],r:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[e.BE,r],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,r,o]},{b:/(fr|rf|f)\"\"\"/,e:/\"\"\"/,c:[e.BE,r,o]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)\"/,e:/\"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,o]},{b:/(fr|rf|f)\"/,e:/\"/,c:[e.BE,o]},e.ASM,e.QSM]},a={cN:'number',r:0,v:[{b:e.BNR+'[lLjJ]?'},{b:'\\\\b(0o[0-7]+)[lLjJ]?'},{b:e.CNR+'[lLjJ]?'}]},n={cN:'params',b:/\\(/,e:/\\)/,c:['self',r,a,i]};return o.c=[i,a,r],{aliases:['py','gyp','ipython'],k:t,i:/(<\\/|->|\\?)|=>/,c:[r,a,i,e.HCM,{v:[{cN:'function',bK:'def'},{cN:'class',bK:'class'}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,n,{b:/->/,eW:!0,k:'None'}]},{cN:'meta',b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}}),r.registerLanguage('vbscript',function(e){return{aliases:['vbs'],cI:!0,k:{keyword:'call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto',built_in:'lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err',literal:'true false null nothing empty'},i:'//',c:[e.inherit(e.QSM,{c:[{b:'\"\"'}]}),e.C(/'/,/$/,{r:0}),e.CNM]}}),r.registerLanguage('json',function(e){var t={literal:'true false null'},r=[e.QSM,e.CNM],o={e:',',eW:!0,eE:!0,c:r,k:t},i={b:'{',e:'}',c:[{cN:'attr',b:/\"/,e:/\"/,c:[e.BE],i:'\\\\n'},e.inherit(o,{b:/:/})],i:'\\\\S'},o={b:'\\\\[',e:'\\\\]',c:[e.inherit(o)],i:'\\\\S'};return r.splice(r.length,0,i,o),{c:r,k:t,i:'\\\\S'}}),r.registerLanguage('ruby',function(e){var t='[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?',r={keyword:'and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor',literal:'true false nil'},o={cN:'doctag',b:'@[A-Za-z]+'},i={b:'#<',e:'>'},a=[e.C('#','$',{c:[o]}),e.C('^\\\\=begin','^\\\\=end',{c:[o],r:10}),e.C('^__END__','\\\\n$')],n={cN:'subst',b:'#\\\\{',e:'}',k:r},s={cN:'string',c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:'%[qQwWx]?\\\\(',e:'\\\\)'},{b:'%[qQwWx]?\\\\[',e:'\\\\]'},{b:'%[qQwWx]?{',e:'}'},{b:'%[qQwWx]?<',e:'>'},{b:'%[qQwWx]?/',e:'/'},{b:'%[qQwWx]?%',e:'%'},{b:'%[qQwWx]?-',e:'-'},{b:'%[qQwWx]?\\\\|',e:'\\\\|'},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<(-?)\\w+$/,e:/^\\s*\\w+$/}]},o={cN:'params',b:'\\\\(',e:'\\\\)',endsParent:!0,k:r},e=[s,i,{cN:'class',bK:'class module',e:'$|;',i:/=/,c:[e.inherit(e.TM,{b:'[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?'}),{b:'<\\\\s*',c:[{b:'('+e.IR+'::)?'+e.IR}]}].concat(a)},{cN:'function',bK:'def',e:'$|;',c:[e.inherit(e.TM,{b:t}),o].concat(a)},{b:e.IR+'::'},{cN:'symbol',b:e.UIR+'(\\\\!|\\\\?)?:',r:0},{cN:'symbol',b:':(?!\\\\s)',c:[s,{b:t}],r:0},{cN:'number',b:'(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',r:0},{b:'(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))'},{cN:'params',b:/\\|/,e:/\\|/,k:r},{b:'('+e.RSR+'|unless)\\\\s*',k:'unless',c:[i,{cN:'regexp',c:[e.BE,n],i:/\\n/,v:[{b:'/',e:'/[a-z]*'},{b:'%r{',e:'}[a-z]*'},{b:'%r\\\\(',e:'\\\\)[a-z]*'},{b:'%r!',e:'![a-z]*'},{b:'%r\\\\[',e:'\\\\][a-z]*'}]}].concat(a),r:0}].concat(a);n.c=e;o=[{b:/^\\s*=>/,starts:{e:'$',c:o.c=e}},{cN:'meta',b:'^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)',starts:{e:'$',c:e}}];return{aliases:['rb','gemspec','podspec','thor','irb'],k:r,i:/\\/\\*/,c:a.concat(o).concat(e)}}),r.registerLanguage('yaml',function(e){var t='true false yes no null',r='^[ \\\\-]*',o='[a-zA-Z_][\\\\w\\\\-]*',r={cN:'attr',v:[{b:r+o+':'},{b:r+'\"'+o+'\":'},{b:r+'\\''+o+'\\':'}]},o={cN:'string',r:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,{cN:'template-variable',v:[{b:'{{',e:'}}'},{b:'%{',e:'}'}]}]};return{cI:!0,aliases:['yml','YAML','yaml'],c:[r,{cN:'meta',b:'^---s*$',r:10},{cN:'string',b:'[\\\\|>] *$',rE:!0,c:o.c,e:r.v[0].b},{b:'<%[%=-]?',e:'[%-]?%>',sL:'ruby',eB:!0,eE:!0,r:0},{cN:'type',b:'!'+e.UIR},{cN:'type',b:'!!'+e.UIR},{cN:'meta',b:'&'+e.UIR+'$'},{cN:'meta',b:'\\\\*'+e.UIR+'$'},{cN:'bullet',b:'^ *-',r:0},e.HCM,{bK:t,k:{literal:t}},e.CNM,o]}}),r.registerLanguage('matlab',function(e){var t='(\\'|\\\\.\\')+',r={r:0,c:[{b:t}]};return{k:{keyword:'break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while',built_in:'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell '},i:'(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',c:[{cN:'function',bK:'function',e:'$',c:[e.UTM,{cN:'params',v:[{b:'\\\\(',e:'\\\\)'},{b:'\\\\[',e:'\\\\]'}]}]},{cN:'built_in',b:/true|false/,r:0,starts:r},{b:'[a-zA-Z][a-zA-Z_0-9]*'+t,r:0},{cN:'number',b:e.CNR,r:0,starts:r},{cN:'string',b:'\\'',e:'\\'',c:[e.BE,{b:'\\'\\''}]},{b:/\\]|}|\\)/,r:0,starts:r},{cN:'string',b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}],starts:r},e.C('^\\\\s*\\\\%\\\\{\\\\s*$','^\\\\s*\\\\%\\\\}\\\\s*$'),e.C('\\\\%','$')]}}),r.registerLanguage('java',function(e){var t='false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do';return{aliases:['jsp'],k:t,i:/<\\/|#/,c:[e.C('/\\\\*\\\\*','\\\\*/',{r:0,c:[{b:/\\w+@/,r:0},{cN:'doctag',b:'@[A-Za-z]+'}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:'class',bK:'class interface',e:/[{;=]/,eE:!0,k:'class interface',i:/[:\"\\[\\]]/,c:[{bK:'extends implements'},e.UTM]},{bK:'new throw return else',r:0},{cN:'function',b:'([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+'+e.UIR+'\\\\s*\\\\(',rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+'\\\\s*\\\\(',rB:!0,r:0,c:[e.UTM]},{cN:'params',b:/\\(/,e:/\\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},{cN:'number',b:'\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?',r:0},{cN:'meta',b:'@[A-Za-z]+'}]}}),r.registerLanguage('julia',function(e){var t={keyword:'in isa where baremodule begin break catch ccall const continue do else elseif end export false finally for function global if import importall let local macro module quote return true try using while type immutable abstract bitstype typealias ',literal:'true false ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im nothing pi γ π φ ',built_in:'ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool '},r='[A-Za-z_\\\\u00A1-\\\\uFFFF][A-Za-z_0-9\\\\u00A1-\\\\uFFFF]*',o={l:r,k:t,i:/<\\//},i={cN:'subst',b:/\\$\\(/,e:/\\)/,k:t},a={cN:'variable',b:'\\\\$'+r},t={cN:'string',c:[e.BE,i,a],v:[{b:/\\w*\"\"\"/,e:/\"\"\"\\w*/,r:10},{b:/\\w*\"/,e:/\"\\w*/}]},a={cN:'string',c:[e.BE,i,a],b:'`',e:'`'},r={cN:'meta',b:'@'+r};return o.c=[{cN:'number',b:/(\\b0x[\\d_]*(\\.[\\d_]*)?|0x\\.\\d[\\d_]*)p[-+]?\\d+|\\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\\b\\d[\\d_]*(\\.[\\d_]*)?|\\.\\d[\\d_]*)([eEfF][-+]?\\d+)?/,r:0},{cN:'string',b:/'(.|\\\\[xXuU][a-zA-Z0-9]+)'/},t,a,r,{cN:'comment',v:[{b:'#=',e:'=#',r:10},{b:'#',e:'$'}]},e.HCM,{cN:'keyword',b:'\\\\b(((abstract|primitive)\\\\s+)type|(mutable\\\\s+)?struct)\\\\b'},{b:/<:/}],i.c=o.c,o}),r.registerLanguage('julia-repl',function(e){return{c:[{cN:'meta',b:/^julia>/,r:10,starts:{e:/^(?![ ]{6})/,sL:'julia'},aliases:['jldoctest']}]}}),r.registerLanguage('r',function(e){var t='([a-zA-Z]|\\\\.[a-zA-Z.])[a-zA-Z0-9._]*';return{c:[e.HCM,{b:t,l:t,k:{keyword:'function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...',literal:'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10'},r:0},{cN:'number',b:'0[xX][0-9a-fA-F]+[Li]?\\\\b',r:0},{cN:'number',b:'\\\\d+(?:[eE][+\\\\-]?\\\\d*)?L\\\\b',r:0},{cN:'number',b:'\\\\d+\\\\.(?!\\\\d)(?:i\\\\b)?',r:0},{cN:'number',b:'\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b',r:0},{cN:'number',b:'\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b',r:0},{b:'`',e:'`',r:0},{cN:'string',c:[e.BE],v:[{b:'\"',e:'\"'},{b:'\\'',e:'\\''}]}]}}),r.registerLanguage('tex',function(e){var t={cN:'tag',b:/\\\\/,r:0,c:[{cN:'name',v:[{b:/[a-zA-Z\\u0430-\\u044f\\u0410-\\u042f]+[*]?/},{b:/[^a-zA-Z\\u0430-\\u044f\\u0410-\\u042f0-9]/}],starts:{eW:!0,r:0,c:[{cN:'string',v:[{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/}]},{b:/\\s*=\\s*/,eW:!0,r:0,c:[{cN:'number',b:/-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/}]}]}}]};return{c:[t,{cN:'formula',c:[t],r:0,v:[{b:/\\$\\$/,e:/\\$\\$/},{b:/\\$/,e:/\\$/}]},e.C('%','$',{r:0})]}}),r.registerLanguage('cpp',function(e){var t={cN:'keyword',b:'\\\\b[a-z\\\\d_]*_t\\\\b'},r={cN:'string',v:[{b:'(u8?|U|L)?\"',e:'\"',i:'\\\\n',c:[e.BE]},{b:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\((?:.|\\n)*?\\)\\1\"/},{b:'\\'\\\\\\\\?.',e:'\\'',i:'.'}]},o={cN:'number',v:[{b:'\\\\b(0b[01\\']+)'},{b:'(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)'},{b:'(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'}],r:0},i={cN:'meta',b:/#\\s*[a-z]+\\b/,e:/$/,k:{'meta-keyword':'if else elif endif define undef warning error line pragma ifdef ifndef include'},c:[{b:/\\\\\\n/,r:0},e.inherit(r,{cN:'meta-string'}),{cN:'meta-string',b:/<[^\\n>]*>/,e:/$/,i:'\\\\n'},e.CLCM,e.CBCM]},a=e.IR+'\\\\s*\\\\(',n={keyword:'int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not',built_in:'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf 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',literal:'true false nullptr NULL'},s=[t,e.CLCM,e.CBCM,o,r];return{aliases:['c','cc','h','c++','h++','hpp','hh','hxx','cxx'],k:n,i:'</',c:s.concat([i,{b:'\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<',e:'>',k:n,c:['self',t]},{b:e.IR+'::',k:n},{v:[{b:/=/,e:/;/},{b:/\\(/,e:/\\)/},{bK:'new throw return else',e:/;/}],k:n,c:s.concat([{b:/\\(/,e:/\\)/,k:n,c:s.concat(['self']),r:0}]),r:0},{cN:'function',b:'('+e.IR+'[\\\\*&\\\\s]+)+'+a,rB:!0,e:/[{;=]/,eE:!0,k:n,i:/[^\\w\\s\\*&]/,c:[{b:a,rB:!0,c:[e.TM],r:0},{cN:'params',b:/\\(/,e:/\\)/,k:n,r:0,c:[e.CLCM,e.CBCM,r,o,t,{b:/\\(/,e:/\\)/,k:n,r:0,c:['self',e.CLCM,e.CBCM,r,o,t]}]},e.CLCM,e.CBCM,i]},{cN:'class',bK:'class struct',e:/[{;:]/,c:[{b:/</,e:/>/,c:['self']},e.TM]}]),exports:{preprocessor:i,strings:r,k:n}}}),r.registerLanguage('awk',function(e){return{k:{keyword:'BEGIN END if else while do for in break continue delete next nextfile function func exit|10'},c:[{cN:'variable',v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},{cN:'string',c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,r:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)\"/,e:/\"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}}),r.registerLanguage('excel',function(e){return{aliases:['xlsx','xls'],cI:!0,l:/[a-zA-Z][\\w\\.]*/,k:{built_in:'ABS ACCRINT ACCRINTM ACOS ACOSH ACOT ACOTH AGGREGATE ADDRESS AMORDEGRC AMORLINC AND ARABIC AREAS ASC ASIN ASINH ATAN ATAN2 ATANH AVEDEV AVERAGE AVERAGEA AVERAGEIF AVERAGEIFS BAHTTEXT BASE BESSELI BESSELJ BESSELK BESSELY BETADIST BETA.DIST BETAINV BETA.INV BIN2DEC BIN2HEX BIN2OCT BINOMDIST BINOM.DIST BINOM.DIST.RANGE BINOM.INV BITAND BITLSHIFT BITOR BITRSHIFT BITXOR CALL CEILING CEILING.MATH CEILING.PRECISE CELL CHAR CHIDIST CHIINV CHITEST CHISQ.DIST CHISQ.DIST.RT CHISQ.INV CHISQ.INV.RT CHISQ.TEST CHOOSE CLEAN CODE COLUMN COLUMNS COMBIN COMBINA COMPLEX CONCAT CONCATENATE CONFIDENCE CONFIDENCE.NORM CONFIDENCE.T CONVERT CORREL COS COSH COT COTH COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS COUPDAYBS COUPDAYS COUPDAYSNC COUPNCD COUPNUM COUPPCD COVAR COVARIANCE.P COVARIANCE.S CRITBINOM CSC CSCH CUBEKPIMEMBER CUBEMEMBER CUBEMEMBERPROPERTY CUBERANKEDMEMBER CUBESET CUBESETCOUNT CUBEVALUE CUMIPMT CUMPRINC DATE DATEDIF DATEVALUE DAVERAGE DAY DAYS DAYS360 DB DBCS DCOUNT DCOUNTA DDB DEC2BIN DEC2HEX DEC2OCT DECIMAL DEGREES DELTA DEVSQ DGET DISC DMAX DMIN DOLLAR DOLLARDE DOLLARFR DPRODUCT DSTDEV DSTDEVP DSUM DURATION DVAR DVARP EDATE EFFECT ENCODEURL EOMONTH ERF ERF.PRECISE ERFC ERFC.PRECISE ERROR.TYPE EUROCONVERT EVEN EXACT EXP EXPON.DIST EXPONDIST FACT FACTDOUBLE FALSE|0 F.DIST FDIST F.DIST.RT FILTERXML FIND FINDB F.INV F.INV.RT FINV FISHER FISHERINV FIXED FLOOR FLOOR.MATH FLOOR.PRECISE FORECAST FORECAST.ETS FORECAST.ETS.CONFINT FORECAST.ETS.SEASONALITY FORECAST.ETS.STAT FORECAST.LINEAR FORMULATEXT FREQUENCY F.TEST FTEST FV FVSCHEDULE GAMMA GAMMA.DIST GAMMADIST GAMMA.INV GAMMAINV GAMMALN GAMMALN.PRECISE GAUSS GCD GEOMEAN GESTEP GETPIVOTDATA GROWTH HARMEAN HEX2BIN HEX2DEC HEX2OCT HLOOKUP HOUR HYPERLINK HYPGEOM.DIST HYPGEOMDIST IF|0 IFERROR IFNA IFS IMABS IMAGINARY IMARGUMENT IMCONJUGATE IMCOS IMCOSH IMCOT IMCSC IMCSCH IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSEC IMSECH IMSIN IMSINH IMSQRT IMSUB IMSUM IMTAN INDEX INDIRECT INFO INT INTERCEPT INTRATE IPMT IRR ISBLANK ISERR ISERROR ISEVEN ISFORMULA ISLOGICAL ISNA ISNONTEXT ISNUMBER ISODD ISREF ISTEXT ISO.CEILING ISOWEEKNUM ISPMT JIS KURT LARGE LCM LEFT LEFTB LEN LENB LINEST LN LOG LOG10 LOGEST LOGINV LOGNORM.DIST LOGNORMDIST LOGNORM.INV LOOKUP LOWER MATCH MAX MAXA MAXIFS MDETERM MDURATION MEDIAN MID MIDBs MIN MINIFS MINA MINUTE MINVERSE MIRR MMULT MOD MODE MODE.MULT MODE.SNGL MONTH MROUND MULTINOMIAL MUNIT N NA NEGBINOM.DIST NEGBINOMDIST NETWORKDAYS NETWORKDAYS.INTL NOMINAL NORM.DIST NORMDIST NORMINV NORM.INV NORM.S.DIST NORMSDIST NORM.S.INV NORMSINV NOT NOW NPER NPV NUMBERVALUE OCT2BIN OCT2DEC OCT2HEX ODD ODDFPRICE ODDFYIELD ODDLPRICE ODDLYIELD OFFSET OR PDURATION PEARSON PERCENTILE.EXC PERCENTILE.INC PERCENTILE PERCENTRANK.EXC PERCENTRANK.INC PERCENTRANK PERMUT PERMUTATIONA PHI PHONETIC PI PMT POISSON.DIST POISSON POWER PPMT PRICE PRICEDISC PRICEMAT PROB PRODUCT PROPER PV QUARTILE QUARTILE.EXC QUARTILE.INC QUOTIENT RADIANS RAND RANDBETWEEN RANK.AVG RANK.EQ RANK RATE RECEIVED REGISTER.ID REPLACE REPLACEB REPT RIGHT RIGHTB ROMAN ROUND ROUNDDOWN ROUNDUP ROW ROWS RRI RSQ RTD SEARCH SEARCHB SEC SECH SECOND SERIESSUM SHEET SHEETS SIGN SIN SINH SKEW SKEW.P SLN SLOPE SMALL SQL.REQUEST SQRT SQRTPI STANDARDIZE STDEV STDEV.P STDEV.S STDEVA STDEVP STDEVPA STEYX SUBSTITUTE SUBTOTAL SUM SUMIF SUMIFS SUMPRODUCT SUMSQ SUMX2MY2 SUMX2PY2 SUMXMY2 SWITCH SYD T TAN TANH TBILLEQ TBILLPRICE TBILLYIELD T.DIST T.DIST.2T T.DIST.RT TDIST TEXT TEXTJOIN TIME TIMEVALUE T.INV T.INV.2T TINV TODAY TRANSPOSE TREND TRIM TRIMMEAN TRUE|0 TRUNC T.TEST TTEST TYPE UNICHAR UNICODE UPPER VALUE VAR VAR.P VAR.S VARA VARP VARPA VDB VLOOKUP WEBSERVICE WEEKDAY WEEKNUM WEIBULL WEIBULL.DIST WORKDAY WORKDAY.INTL XIRR XNPV XOR YEAR YEARFRAC YIELD YIELDDISC YIELDMAT Z.TEST ZTEST'},c:[{b:/^=/,e:/[^=]/,rE:!0,i:/=/,r:10},{cN:'symbol',b:/\\b[A-Z]{1,2}\\d+\\b/,e:/[^\\d]/,eE:!0,r:0},{cN:'symbol',b:/[A-Z]{0,2}\\d*:[A-Z]{0,2}\\d*/,r:0},e.BE,e.QSM,{cN:'number',b:e.NR+'(%)?',r:0},e.C(/\\bN\\(/,/\\)/,{eB:!0,eE:!0,i:/\\n/})]}}),r.registerLanguage('perl',function(e){var t='getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when',r={cN:'subst',b:'[$@]\\\\{',e:'\\\\}',k:t},o={b:'->{',e:'}'},i={v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,r:0}]},a=[e.BE,r,i],e=[i,e.HCM,e.C('^\\\\=\\\\w','\\\\=cut',{eW:!0}),o,{cN:'string',c:a,v:[{b:'q[qwxr]?\\\\s*\\\\(',e:'\\\\)',r:5},{b:'q[qwxr]?\\\\s*\\\\[',e:'\\\\]',r:5},{b:'q[qwxr]?\\\\s*\\\\{',e:'\\\\}',r:5},{b:'q[qwxr]?\\\\s*\\\\|',e:'\\\\|',r:5},{b:'q[qwxr]?\\\\s*\\\\<',e:'\\\\>',r:5},{b:'qw\\\\s+q',e:'q',r:5},{b:'\\'',e:'\\'',c:[e.BE]},{b:'\"',e:'\"'},{b:'`',e:'`',c:[e.BE]},{b:'{\\\\w+}',c:[],r:0},{b:'-?\\\\w+\\\\s*\\\\=\\\\>',c:[],r:0}]},{cN:'number',b:'(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b',r:0},{b:'(\\\\/\\\\/|'+e.RSR+'|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*',k:'split return print reverse grep',r:0,c:[e.HCM,{cN:'regexp',b:'(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*',r:10},{cN:'regexp',b:'(m|qr)?/',e:'/[a-z]*',c:[e.BE],r:0}]},{cN:'function',bK:'sub',e:'(\\\\s*\\\\(.*?\\\\))?[;{]',eE:!0,r:5,c:[e.TM]},{b:'-\\\\w\\\\b',r:0},{b:'^__DATA__$',e:'^__END__$',sL:'mojolicious',c:[{b:'^@@.*',e:'$',cN:'comment'}]}];return r.c=e,{aliases:['pl','pm'],l:/[\\w\\.]+/,k:t,c:o.c=e}}),r.registerLanguage('xml',function(e){var t={eW:!0,i:/</,r:0,c:[{cN:'attr',b:'[A-Za-z0-9\\\\._:-]+',r:0},{b:/=\\s*/,r:0,c:[{cN:'string',endsParent:!0,v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:['html','xhtml','rss','atom','xjb','xsd','xsl','plist'],cI:!0,c:[{cN:'meta',b:'<!DOCTYPE',e:'>',r:10,c:[{b:'\\\\[',e:'\\\\]'}]},e.C('\\x3c!--','--\\x3e',{r:10}),{b:'<\\\\!\\\\[CDATA\\\\[',e:'\\\\]\\\\]>',r:10},{cN:'meta',b:/<\\?xml/,e:/\\?>/,r:10},{b:/<\\?(php)?/,e:/\\?>/,sL:'php',c:[{b:'/\\\\*',e:'\\\\*/',skip:!0},{b:'b\"',e:'\"',skip:!0},{b:'b\\'',e:'\\'',skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:'tag',b:'<style(?=\\\\s|>|$)',e:'>',k:{name:'style'},c:[t],starts:{e:'</style>',rE:!0,sL:['css','xml']}},{cN:'tag',b:'<script(?=\\\\s|>|$)',e:'>',k:{name:'script'},c:[t],starts:{e:'<\\/script>',rE:!0,sL:['actionscript','javascript','handlebars','xml']}},{cN:'tag',b:'</?',e:'/?>',c:[{cN:'name',b:/[^\\/><\\s]+/,r:0},t]}]}}),r.registerLanguage('ini',function(e){var t={cN:'string',c:[e.BE],v:[{b:'\\'\\'\\'',e:'\\'\\'\\'',r:10},{b:'\"\"\"',e:'\"\"\"',r:10},{b:'\"',e:'\"'},{b:'\\'',e:'\\''}]};return{aliases:['toml'],cI:!0,i:/\\S/,c:[e.C(';','$'),e.HCM,{cN:'section',b:/^\\s*\\[+/,e:/\\]+/},{b:/^[a-z0-9\\[\\]_\\.-]+\\s*=\\s*/,e:'$',rB:!0,c:[{cN:'attr',b:/[a-z0-9\\[\\]_\\.-]+/},{b:/=/,eW:!0,r:0,c:[e.C(';','$'),e.HCM,{cN:'literal',b:/\\bon|off|true|false|yes|no\\b/},{cN:'variable',v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},t,{cN:'number',b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},e.NM]}]}]}}),r.registerLanguage('profile',function(e){return{c:[e.CNM,{b:'[a-zA-Z_][\\\\da-zA-Z_]+\\\\.[\\\\da-zA-Z_]{1,3}',e:':',eE:!0},{b:'(ncalls|tottime|cumtime)',e:'$',k:'ncalls tottime|10 cumtime|10 filename',r:10},{b:'function calls',e:'$',c:[e.CNM],r:10},e.ASM,e.QSM,{cN:'string',b:'\\\\(',e:'\\\\)$',eB:!0,eE:!0,r:0}]}}),r.registerLanguage('shell',function(e){return{aliases:['console'],c:[{cN:'meta',b:'^\\\\s{0,3}[\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]',starts:{e:'$',sL:'bash'}}]}}),r.registerLanguage('dos',function(e){var t=e.C(/^\\s*@?rem\\b/,/$/,{r:10});return{aliases:['bat','cmd'],cI:!0,i:/\\/\\*/,k:{keyword:'if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq',built_in:'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux shift cd dir echo setlocal endlocal set pause copy append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del'},c:[{cN:'variable',b:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{cN:'function',b:'^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)',e:'goto:eof',c:[e.inherit(e.TM,{b:'([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*'}),t]},{cN:'number',b:'\\\\b\\\\d+',r:0},t]}}),r.registerLanguage('javascript',function(e){var t='[A-Za-z$_][0-9A-Za-z$_]*',r={keyword:'in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as',literal:'true false null undefined NaN Infinity',built_in:'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise'},o={cN:'number',v:[{b:'\\\\b(0[bB][01]+)'},{b:'\\\\b(0[oO][0-7]+)'},{b:e.CNR}],r:0},i={cN:'subst',b:'\\\\$\\\\{',e:'\\\\}',k:r,c:[]},a={cN:'string',b:'`',e:'`',c:[e.BE,i]};i.c=[e.ASM,e.QSM,a,o,e.RM];i=i.c.concat([e.CBCM,e.CLCM]);return{aliases:['js','jsx'],k:r,c:[{cN:'meta',r:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:'meta',b:/^#!/,e:/$/},e.ASM,e.QSM,a,e.CLCM,e.CBCM,o,{b:/[{,]\\s*/,r:0,c:[{b:t+'\\\\s*:',rB:!0,r:0,c:[{cN:'attr',b:t,r:0}]}]},{b:'('+e.RSR+'|\\\\b(case|return|throw)\\\\b)\\\\s*',k:'return throw case',c:[e.CLCM,e.CBCM,e.RM,{cN:'function',b:'(\\\\(.*?\\\\)|'+t+')\\\\s*=>',rB:!0,e:'\\\\s*=>',c:[{cN:'params',v:[{b:t},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:r,c:i}]}]},{cN:'',b:/\\s/,e:/\\s*/,skip:!0},{b:/</,e:/(\\/[A-Za-z0-9\\\\._:-]+|[A-Za-z0-9\\\\._:-]+\\/)>/,sL:'xml',c:[{b:/<[A-Za-z0-9\\\\._:-]+\\s*\\/>/,skip:!0},{b:/<[A-Za-z0-9\\\\._:-]+/,e:/(\\/[A-Za-z0-9\\\\._:-]+|[A-Za-z0-9\\\\._:-]+\\/)>/,skip:!0,c:[{b:/<[A-Za-z0-9\\\\._:-]+\\s*\\/>/,skip:!0},'self']}]}],r:0},{cN:'function',bK:'function',e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:t}),{cN:'params',b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:i}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:'class',bK:'class',e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:'extends'},e.UTM]},{bK:'constructor get set',e:/\\{/,eE:!0}],i:/#(?!!)/}}),r.registerLanguage('powershell',function(e){var t={b:'`[\\\\s\\\\S]',r:0},r={cN:'variable',v:[{b:/\\$[\\w\\d][\\w\\d_:]*/}]},o={cN:'string',v:[{b:/\"/,e:/\"/},{b:/@\"/,e:/^\"@/}],c:[t,r,{cN:'variable',b:/\\$[A-z]/,e:/[^A-z]/}]},i=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[{cN:'doctag',v:[{b:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]});return{aliases:['ps'],l:/-?[A-z\\.\\-]+/,cI:!0,k:{keyword:'if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catchValidateNoCircleInNodeResources ValidateNodeExclusiveResources ValidateNodeManager ValidateNodeResources ValidateNodeResourceSource ValidateNoNameNodeResources ThrowError IsHiddenResourceIsPatternMatched ',built_in:'Add-Computer Add-Content Add-History Add-JobTrigger Add-Member Add-PSSnapin Add-Type Checkpoint-Computer Clear-Content Clear-EventLog Clear-History Clear-Host Clear-Item Clear-ItemProperty Clear-Variable Compare-Object Complete-Transaction Connect-PSSession Connect-WSMan Convert-Path ConvertFrom-Csv ConvertFrom-Json ConvertFrom-SecureString ConvertFrom-StringData ConvertTo-Csv ConvertTo-Html ConvertTo-Json ConvertTo-SecureString ConvertTo-Xml Copy-Item Copy-ItemProperty Debug-Process Disable-ComputerRestore Disable-JobTrigger Disable-PSBreakpoint Disable-PSRemoting Disable-PSSessionConfiguration Disable-WSManCredSSP Disconnect-PSSession Disconnect-WSMan Disable-ScheduledJob Enable-ComputerRestore Enable-JobTrigger Enable-PSBreakpoint Enable-PSRemoting Enable-PSSessionConfiguration Enable-ScheduledJob Enable-WSManCredSSP Enter-PSSession Exit-PSSession Export-Alias Export-Clixml Export-Console Export-Counter Export-Csv Export-FormatData Export-ModuleMember Export-PSSession ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-ComputerRestorePoint Get-Content Get-ControlPanelItem Get-Counter Get-Credential Get-Culture Get-Date Get-Event Get-EventLog Get-EventSubscriber Get-ExecutionPolicy Get-FormatData Get-Host Get-HotFix Get-Help Get-History Get-IseSnippet Get-Item Get-ItemProperty Get-Job Get-JobTrigger Get-Location Get-Member Get-Module Get-PfxCertificate Get-Process Get-PSBreakpoint Get-PSCallStack Get-PSDrive Get-PSProvider Get-PSSession Get-PSSessionConfiguration Get-PSSnapin Get-Random Get-ScheduledJob Get-ScheduledJobOption Get-Service Get-TraceSource Get-Transaction Get-TypeData Get-UICulture Get-Unique Get-Variable Get-Verb Get-WinEvent Get-WmiObject Get-WSManCredSSP Get-WSManInstance Group-Object Import-Alias Import-Clixml Import-Counter Import-Csv Import-IseSnippet Import-LocalizedData Import-PSSession Import-Module Invoke-AsWorkflow Invoke-Command Invoke-Expression Invoke-History Invoke-Item Invoke-RestMethod Invoke-WebRequest Invoke-WmiMethod Invoke-WSManAction Join-Path Limit-EventLog Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Event New-EventLog New-IseSnippet New-Item New-ItemProperty New-JobTrigger New-Object New-Module New-ModuleManifest New-PSDrive New-PSSession New-PSSessionConfigurationFile New-PSSessionOption New-PSTransportOption New-PSWorkflowExecutionOption New-PSWorkflowSession New-ScheduledJobOption New-Service New-TimeSpan New-Variable New-WebServiceProxy New-WinEvent New-WSManInstance New-WSManSessionOption Out-Default Out-File Out-GridView Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Receive-Job Register-EngineEvent Register-ObjectEvent Register-PSSessionConfiguration Register-ScheduledJob Register-WmiEvent Remove-Computer Remove-Event Remove-EventLog Remove-Item Remove-ItemProperty Remove-Job Remove-JobTrigger Remove-Module Remove-PSBreakpoint Remove-PSDrive Remove-PSSession Remove-PSSnapin Remove-TypeData Remove-Variable Remove-WmiObject Remove-WSManInstance Rename-Computer Rename-Item Rename-ItemProperty Reset-ComputerMachinePassword Resolve-Path Restart-Computer Restart-Service Restore-Computer Resume-Job Resume-Service Save-Help Select-Object Select-String Select-Xml Send-MailMessage Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-JobTrigger Set-Location Set-PSBreakpoint Set-PSDebug Set-PSSessionConfiguration Set-ScheduledJob Set-ScheduledJobOption Set-Service Set-StrictMode Set-TraceSource Set-Variable Set-WmiInstance Set-WSManInstance Set-WSManQuickConfig Show-Command Show-ControlPanelItem Show-EventLog Sort-Object Split-Path Start-Job Start-Process Start-Service Start-Sleep Start-Transaction Start-Transcript Stop-Computer Stop-Job Stop-Process Stop-Service Stop-Transcript Suspend-Job Suspend-Service Tee-Object Test-ComputerSecureChannel Test-Connection Test-ModuleManifest Test-Path Test-PSSessionConfigurationFile Trace-Command Unblock-File Undo-Transaction Unregister-Event Unregister-PSSessionConfiguration Unregister-ScheduledJob Update-FormatData Update-Help Update-List Update-TypeData Use-Transaction Wait-Event Wait-Job Wait-Process Where-Object Write-Debug Write-Error Write-EventLog Write-Host Write-Output Write-Progress Write-Verbose Write-Warning Add-MDTPersistentDrive Disable-MDTMonitorService Enable-MDTMonitorService Get-MDTDeploymentShareStatistics Get-MDTMonitorData Get-MDTOperatingSystemCatalog Get-MDTPersistentDrive Import-MDTApplication Import-MDTDriver Import-MDTOperatingSystem Import-MDTPackage Import-MDTTaskSequence New-MDTDatabase Remove-MDTMonitorData Remove-MDTPersistentDrive Restore-MDTPersistentDrive Set-MDTMonitorData Test-MDTDeploymentShare Test-MDTMonitorData Update-MDTDatabaseSchema Update-MDTDeploymentShare Update-MDTLinkedDS Update-MDTMedia Add-VamtProductKey Export-VamtData Find-VamtManagedMachine Get-VamtConfirmationId Get-VamtProduct Get-VamtProductKey Import-VamtData Initialize-VamtData Install-VamtConfirmationId Install-VamtProductActivation Install-VamtProductKey Update-VamtProduct Add-CIDatastore Add-KeyManagementServer Add-NodeKeys Add-NsxDynamicCriteria Add-NsxDynamicMemberSet Add-NsxEdgeInterfaceAddress Add-NsxFirewallExclusionListMember Add-NsxFirewallRuleMember Add-NsxIpSetMember Add-NsxLicense Add-NsxLoadBalancerPoolMember Add-NsxLoadBalancerVip Add-NsxSecondaryManager Add-NsxSecurityGroupMember Add-NsxSecurityPolicyRule Add-NsxSecurityPolicyRuleGroup Add-NsxSecurityPolicyRuleService Add-NsxServiceGroupMember Add-NsxTransportZoneMember Add-PassthroughDevice Add-VDSwitchPhysicalNetworkAdapter Add-VDSwitchVMHost Add-VMHost Add-VMHostNtpServer Add-VirtualSwitchPhysicalNetworkAdapter Add-XmlElement Add-vRACustomForm Add-vRAPrincipalToTenantRole Add-vRAReservationNetwork Add-vRAReservationStorage Clear-NsxEdgeInterface Clear-NsxManagerTimeSettings Compress-Archive Connect-CIServer Connect-CisServer Connect-HCXServer Connect-NIServer Connect-NsxLogicalSwitch Connect-NsxServer Connect-NsxtServer Connect-SrmServer Connect-VIServer Connect-Vmc Connect-vRAServer Connect-vRNIServer ConvertFrom-Markdown ConvertTo-MOFInstance Copy-DatastoreItem Copy-HardDisk Copy-NsxEdge Copy-VDisk Copy-VMGuestFile Debug-Runspace Disable-NsxEdgeSsh Disable-RunspaceDebug Disable-vRNIDataSource Disconnect-CIServer Disconnect-CisServer Disconnect-HCXServer Disconnect-NsxLogicalSwitch Disconnect-NsxServer Disconnect-NsxtServer Disconnect-SrmServer Disconnect-VIServer Disconnect-Vmc Disconnect-vRAServer Disconnect-vRNIServer Dismount-Tools Enable-NsxEdgeSsh Enable-RunspaceDebug Enable-vRNIDataSource Expand-Archive Export-NsxObject Export-SpbmStoragePolicy Export-VApp Export-VDPortGroup Export-VDSwitch Export-VMHostProfile Export-vRAIcon Export-vRAPackage Find-Command Find-DscResource Find-Module Find-NsxWhereVMUsed Find-Package Find-PackageProvider Find-RoleCapability Find-Script Format-Hex Format-VMHostDiskPartition Format-XML Generate-VersionInfo Get-AdvancedSetting Get-AlarmAction Get-AlarmActionTrigger Get-AlarmDefinition Get-Annotation Get-CDDrive Get-CIAccessControlRule Get-CIDatastore Get-CINetworkAdapter Get-CIRole Get-CIUser Get-CIVApp Get-CIVAppNetwork Get-CIVAppStartRule Get-CIVAppTemplate Get-CIVM Get-CIVMTemplate Get-CIView Get-Catalog Get-CisCommand Get-CisService Get-CloudCommand Get-Cluster Get-CompatibleVersionAddtionaPropertiesStr Get-ComplexResourceQualifier Get-ConfigurationErrorCount Get-ContentLibraryItem Get-CustomAttribute Get-DSCResourceModules Get-Datacenter Get-Datastore Get-DatastoreCluster Get-DrsClusterGroup Get-DrsRecommendation Get-DrsRule Get-DrsVMHostRule Get-DscResource Get-EdgeGateway Get-EncryptedPassword Get-ErrorReport Get-EsxCli Get-EsxTop Get-ExternalNetwork Get-FileHash Get-FloppyDrive Get-Folder Get-HAPrimaryVMHost Get-HCXAppliance Get-HCXApplianceCompute Get-HCXApplianceDVS Get-HCXApplianceDatastore Get-HCXApplianceNetwork Get-HCXContainer Get-HCXDatastore Get-HCXGateway Get-HCXInterconnectStatus Get-HCXJob Get-HCXMigration Get-HCXNetwork Get-HCXNetworkExtension Get-HCXReplication Get-HCXReplicationSnapshot Get-HCXService Get-HCXSite Get-HCXSitePairing Get-HCXVM Get-HardDisk Get-IScsiHbaTarget Get-InnerMostErrorRecord Get-InstallPath Get-InstalledModule Get-InstalledScript Get-Inventory Get-ItemPropertyValue Get-KeyManagementServer Get-KmipClientCertificate Get-KmsCluster Get-Log Get-LogType Get-MarkdownOption Get-Media Get-MofInstanceName Get-MofInstanceText Get-NetworkAdapter Get-NetworkPool Get-NfsUser Get-NicTeamingPolicy Get-NsxApplicableMember Get-NsxApplicableSecurityAction Get-NsxBackingDVSwitch Get-NsxBackingPortGroup Get-NsxCliDfwAddrSet Get-NsxCliDfwFilter Get-NsxCliDfwRule Get-NsxClusterStatus Get-NsxController Get-NsxDynamicCriteria Get-NsxDynamicMemberSet Get-NsxEdge Get-NsxEdgeBgp Get-NsxEdgeBgpNeighbour Get-NsxEdgeCertificate Get-NsxEdgeCsr Get-NsxEdgeFirewall Get-NsxEdgeFirewallRule Get-NsxEdgeInterface Get-NsxEdgeInterfaceAddress Get-NsxEdgeNat Get-NsxEdgeNatRule Get-NsxEdgeOspf Get-NsxEdgeOspfArea Get-NsxEdgeOspfInterface Get-NsxEdgePrefix Get-NsxEdgeRedistributionRule Get-NsxEdgeRouting Get-NsxEdgeStaticRoute Get-NsxEdgeSubInterface Get-NsxFirewallExclusionListMember Get-NsxFirewallGlobalConfiguration Get-NsxFirewallPublishStatus Get-NsxFirewallRule Get-NsxFirewallRuleMember Get-NsxFirewallSavedConfiguration Get-NsxFirewallSection Get-NsxFirewallThreshold Get-NsxIpPool Get-NsxIpSet Get-NsxLicense Get-NsxLoadBalancer Get-NsxLoadBalancerApplicationProfile Get-NsxLoadBalancerApplicationRule Get-NsxLoadBalancerMonitor Get-NsxLoadBalancerPool Get-NsxLoadBalancerPoolMember Get-NsxLoadBalancerStats Get-NsxLoadBalancerVip Get-NsxLogicalRouter Get-NsxLogicalRouterBgp Get-NsxLogicalRouterBgpNeighbour Get-NsxLogicalRouterBridge Get-NsxLogicalRouterBridging Get-NsxLogicalRouterInterface Get-NsxLogicalRouterOspf Get-NsxLogicalRouterOspfArea Get-NsxLogicalRouterOspfInterface Get-NsxLogicalRouterPrefix Get-NsxLogicalRouterRedistributionRule Get-NsxLogicalRouterRouting Get-NsxLogicalRouterStaticRoute Get-NsxLogicalSwitch Get-NsxMacSet Get-NsxManagerBackup Get-NsxManagerCertificate Get-NsxManagerComponentSummary Get-NsxManagerNetwork Get-NsxManagerRole Get-NsxManagerSsoConfig Get-NsxManagerSyncStatus Get-NsxManagerSyslogServer Get-NsxManagerSystemSummary Get-NsxManagerTimeSettings Get-NsxManagerVcenterConfig Get-NsxSecondaryManager Get-NsxSecurityGroup Get-NsxSecurityGroupEffectiveIpAddress Get-NsxSecurityGroupEffectiveMacAddress Get-NsxSecurityGroupEffectiveMember Get-NsxSecurityGroupEffectiveVirtualMachine Get-NsxSecurityGroupEffectiveVnic Get-NsxSecurityGroupMemberTypes Get-NsxSecurityPolicy Get-NsxSecurityPolicyHighestUsedPrecedence Get-NsxSecurityPolicyRule Get-NsxSecurityTag Get-NsxSecurityTagAssignment Get-NsxSegmentIdRange Get-NsxService Get-NsxServiceDefinition Get-NsxServiceGroup Get-NsxServiceGroupMember Get-NsxServiceProfile Get-NsxSpoofguardNic Get-NsxSpoofguardPolicy Get-NsxSslVpn Get-NsxSslVpnAuthServer Get-NsxSslVpnClientInstallationPackage Get-NsxSslVpnIpPool Get-NsxSslVpnPrivateNetwork Get-NsxSslVpnUser Get-NsxTransportZone Get-NsxUserRole Get-NsxVdsContext Get-NsxtPolicyService Get-NsxtService Get-OSCustomizationNicMapping Get-OSCustomizationSpec Get-Org Get-OrgNetwork Get-OrgVdc Get-OrgVdcNetwork Get-OvfConfiguration Get-PSCurrentConfigurationNode Get-PSDefaultConfigurationDocument Get-PSMetaConfigDocumentInstVersionInfo Get-PSMetaConfigurationProcessed Get-PSReadLineKeyHandler Get-PSReadLineOption Get-PSRepository Get-PSTopConfigurationName Get-PSVersion Get-Package Get-PackageProvider Get-PackageSource Get-PassthroughDevice Get-PositionInfo Get-PowerCLICommunity Get-PowerCLIConfiguration Get-PowerCLIHelp Get-PowerCLIVersion Get-PowerNsxVersion Get-ProviderVdc Get-PublicKeyFromFile Get-PublicKeyFromStore Get-ResourcePool Get-Runspace Get-RunspaceDebug Get-ScsiController Get-ScsiLun Get-ScsiLunPath Get-SecurityInfo Get-SecurityPolicy Get-Snapshot Get-SpbmCapability Get-SpbmCompatibleStorage Get-SpbmEntityConfiguration Get-SpbmFaultDomain Get-SpbmPointInTimeReplica Get-SpbmReplicationGroup Get-SpbmReplicationPair Get-SpbmStoragePolicy Get-Stat Get-StatInterval Get-StatType Get-Tag Get-TagAssignment Get-TagCategory Get-Task Get-Template Get-TimeZone Get-Uptime Get-UsbDevice Get-VAIOFilter Get-VApp Get-VDBlockedPolicy Get-VDPort Get-VDPortgroup Get-VDPortgroupOverridePolicy Get-VDSecurityPolicy Get-VDSwitch Get-VDSwitchPrivateVlan Get-VDTrafficShapingPolicy Get-VDUplinkLacpPolicy Get-VDUplinkTeamingPolicy Get-VDisk Get-VIAccount Get-VICommand Get-VICredentialStoreItem Get-VIEvent Get-VIObjectByVIView Get-VIPermission Get-VIPrivilege Get-VIProperty Get-VIRole Get-VM Get-VMGuest Get-VMHost Get-VMHostAccount Get-VMHostAdvancedConfiguration Get-VMHostAuthentication Get-VMHostAvailableTimeZone Get-VMHostDiagnosticPartition Get-VMHostDisk Get-VMHostDiskPartition Get-VMHostFirewallDefaultPolicy Get-VMHostFirewallException Get-VMHostFirmware Get-VMHostHardware Get-VMHostHba Get-VMHostModule Get-VMHostNetwork Get-VMHostNetworkAdapter Get-VMHostNtpServer Get-VMHostPatch Get-VMHostPciDevice Get-VMHostProfile Get-VMHostProfileImageCacheConfiguration Get-VMHostProfileRequiredInput Get-VMHostProfileStorageDeviceConfiguration Get-VMHostProfileUserConfiguration Get-VMHostProfileVmPortGroupConfiguration Get-VMHostRoute Get-VMHostService Get-VMHostSnmp Get-VMHostStartPolicy Get-VMHostStorage Get-VMHostSysLogServer Get-VMQuestion Get-VMResourceConfiguration Get-VMStartPolicy Get-VTpm Get-VTpmCSR Get-VTpmCertificate Get-VasaProvider Get-VasaStorageArray Get-View Get-VirtualPortGroup Get-VirtualSwitch Get-VmcSddcNetworkService Get-VmcService Get-VsanClusterConfiguration Get-VsanComponent Get-VsanDisk Get-VsanDiskGroup Get-VsanEvacuationPlan Get-VsanFaultDomain Get-VsanIscsiInitiatorGroup Get-VsanIscsiInitiatorGroupTargetAssociation Get-VsanIscsiLun Get-VsanIscsiTarget Get-VsanObject Get-VsanResyncingComponent Get-VsanRuntimeInfo Get-VsanSpaceUsage Get-VsanStat Get-VsanView Get-vRAApplianceServiceStatus Get-vRAAuthorizationRole Get-vRABlueprint Get-vRABusinessGroup Get-vRACatalogItem Get-vRACatalogItemRequestTemplate Get-vRACatalogPrincipal Get-vRAComponentRegistryService Get-vRAComponentRegistryServiceEndpoint Get-vRAComponentRegistryServiceStatus Get-vRAContent Get-vRAContentData Get-vRAContentType Get-vRACustomForm Get-vRAEntitledCatalogItem Get-vRAEntitledService Get-vRAEntitlement Get-vRAExternalNetworkProfile Get-vRAGroupPrincipal Get-vRAIcon Get-vRANATNetworkProfile Get-vRANetworkProfileIPAddressList Get-vRANetworkProfileIPRangeSummary Get-vRAPackage Get-vRAPackageContent Get-vRAPropertyDefinition Get-vRAPropertyGroup Get-vRARequest Get-vRARequestDetail Get-vRAReservation Get-vRAReservationComputeResource Get-vRAReservationComputeResourceMemory Get-vRAReservationComputeResourceNetwork Get-vRAReservationComputeResourceResourcePool Get-vRAReservationComputeResourceStorage Get-vRAReservationPolicy Get-vRAReservationTemplate Get-vRAReservationType Get-vRAResource Get-vRAResourceAction Get-vRAResourceActionRequestTemplate Get-vRAResourceMetric Get-vRAResourceOperation Get-vRAResourceType Get-vRARoutedNetworkProfile Get-vRAService Get-vRAServiceBlueprint Get-vRASourceMachine Get-vRAStorageReservationPolicy Get-vRATenant Get-vRATenantDirectory Get-vRATenantDirectoryStatus Get-vRATenantRole Get-vRAUserPrincipal Get-vRAUserPrincipalGroupMembership Get-vRAVersion Get-vRNIAPIVersion Get-vRNIApplication Get-vRNIApplicationTier Get-vRNIDataSource Get-vRNIDataSourceSNMPConfig Get-vRNIDatastore Get-vRNIDistributedSwitch Get-vRNIDistributedSwitchPortGroup Get-vRNIEntity Get-vRNIEntityName Get-vRNIFirewallRule Get-vRNIFlow Get-vRNIHost Get-vRNIHostVMKNic Get-vRNIIPSet Get-vRNIL2Network Get-vRNINSXManager Get-vRNINodes Get-vRNIProblem Get-vRNIRecommendedRules Get-vRNIRecommendedRulesNsxBundle Get-vRNISecurityGroup Get-vRNISecurityTag Get-vRNIService Get-vRNIServiceGroup Get-vRNIVM Get-vRNIVMvNIC Get-vRNIvCenter Get-vRNIvCenterCluster Get-vRNIvCenterDatacenter Get-vRNIvCenterFolder Grant-NsxSpoofguardNicApproval Import-CIVApp Import-CIVAppTemplate Import-NsxObject Import-PackageProvider Import-PowerShellDataFile Import-SpbmStoragePolicy Import-VApp Import-VMHostProfile Import-vRAContentData Import-vRAIcon Import-vRAPackage Initialize-ConfigurationRuntimeState Install-Module Install-NsxCluster Install-Package Install-PackageProvider Install-Script Install-VMHostPatch Invoke-DrsRecommendation Invoke-NsxCli Invoke-NsxClusterResolveAll Invoke-NsxManagerSync Invoke-NsxRestMethod Invoke-NsxWebRequest Invoke-VMHostProfile Invoke-VMScript Invoke-XpathQuery Invoke-vRADataCollection Invoke-vRARestMethod Invoke-vRATenantDirectorySync Invoke-vRNIRestMethod Join-String Mount-Tools Move-Cluster Move-Datacenter Move-Datastore Move-Folder Move-HardDisk Move-Inventory Move-NsxSecurityPolicyRule Move-ResourcePool Move-Template Move-VApp Move-VDisk Move-VM Move-VMHost New-AdvancedSetting New-AlarmAction New-AlarmActionTrigger New-CDDrive New-CIAccessControlRule New-CIVApp New-CIVAppNetwork New-CIVAppTemplate New-CIVM New-Cluster New-CustomAttribute New-Datacenter New-Datastore New-DatastoreCluster New-DatastoreDrive New-DrsClusterGroup New-DrsRule New-DrsVMHostRule New-DscChecksum New-FloppyDrive New-Folder New-Guid New-HCXAppliance New-HCXMigration New-HCXNetworkExtension New-HCXNetworkMapping New-HCXReplication New-HCXSitePairing New-HCXStaticRoute New-HardDisk New-IScsiHbaTarget New-KmipClientCertificate New-NetworkAdapter New-NfsUser New-NsxAddressSpec New-NsxClusterVxlanConfig New-NsxController New-NsxDynamicCriteriaSpec New-NsxEdge New-NsxEdgeBgpNeighbour New-NsxEdgeCsr New-NsxEdgeFirewallRule New-NsxEdgeInterfaceSpec New-NsxEdgeNatRule New-NsxEdgeOspfArea New-NsxEdgeOspfInterface New-NsxEdgePrefix New-NsxEdgeRedistributionRule New-NsxEdgeSelfSignedCertificate New-NsxEdgeStaticRoute New-NsxEdgeSubInterface New-NsxEdgeSubInterfaceSpec New-NsxFirewallRule New-NsxFirewallSavedConfiguration New-NsxFirewallSection New-NsxIpPool New-NsxIpSet New-NsxLoadBalancerApplicationProfile New-NsxLoadBalancerApplicationRule New-NsxLoadBalancerMemberSpec New-NsxLoadBalancerMonitor New-NsxLoadBalancerPool New-NsxLogicalRouter New-NsxLogicalRouterBgpNeighbour New-NsxLogicalRouterBridge New-NsxLogicalRouterInterface New-NsxLogicalRouterInterfaceSpec New-NsxLogicalRouterOspfArea New-NsxLogicalRouterOspfInterface New-NsxLogicalRouterPrefix New-NsxLogicalRouterRedistributionRule New-NsxLogicalRouterStaticRoute New-NsxLogicalSwitch New-NsxMacSet New-NsxManager New-NsxSecurityGroup New-NsxSecurityPolicy New-NsxSecurityPolicyAssignment New-NsxSecurityPolicyFirewallRuleSpec New-NsxSecurityPolicyGuestIntrospectionSpec New-NsxSecurityPolicyNetworkIntrospectionSpec New-NsxSecurityTag New-NsxSecurityTagAssignment New-NsxSegmentIdRange New-NsxService New-NsxServiceGroup New-NsxSpoofguardPolicy New-NsxSslVpnAuthServer New-NsxSslVpnClientInstallationPackage New-NsxSslVpnIpPool New-NsxSslVpnPrivateNetwork New-NsxSslVpnUser New-NsxTransportZone New-NsxVdsContext New-OSCustomizationNicMapping New-OSCustomizationSpec New-Org New-OrgNetwork New-OrgVdc New-OrgVdcNetwork New-ResourcePool New-ScriptFileInfo New-ScsiController New-Snapshot New-SpbmRule New-SpbmRuleSet New-SpbmStoragePolicy New-StatInterval New-Tag New-TagAssignment New-TagCategory New-Template New-TemporaryFile New-VAIOFilter New-VApp New-VDPortgroup New-VDSwitch New-VDSwitchPrivateVlan New-VDisk New-VICredentialStoreItem New-VIInventoryDrive New-VIPermission New-VIProperty New-VIRole New-VISamlSecurityContext New-VM New-VMHostAccount New-VMHostNetworkAdapter New-VMHostProfile New-VMHostProfileVmPortGroupConfiguration New-VMHostRoute New-VTpm New-VasaProvider New-VcsOAuthSecurityContext New-VirtualPortGroup New-VirtualSwitch New-VsanDisk New-VsanDiskGroup New-VsanFaultDomain New-VsanIscsiInitiatorGroup New-VsanIscsiInitiatorGroupTargetAssociation New-VsanIscsiLun New-VsanIscsiTarget New-vRABusinessGroup New-vRAEntitlement New-vRAExternalNetworkProfile New-vRAGroupPrincipal New-vRANATNetworkProfile New-vRANetworkProfileIPRangeDefinition New-vRAPackage New-vRAPropertyDefinition New-vRAPropertyGroup New-vRAReservation New-vRAReservationNetworkDefinition New-vRAReservationPolicy New-vRAReservationStorageDefinition New-vRARoutedNetworkProfile New-vRAService New-vRAStorageReservationPolicy New-vRATenant New-vRATenantDirectory New-vRAUserPrincipal New-vRNIApplication New-vRNIApplicationTier New-vRNIDataSource Open-VMConsoleWindow Publish-Module Publish-NsxSpoofguardPolicy Publish-Script Register-PSRepository Register-PackageSource Remove-AdvancedSetting Remove-AlarmAction Remove-AlarmActionTrigger Remove-Alias Remove-CDDrive Remove-CIAccessControlRule Remove-CIVApp Remove-CIVAppNetwork Remove-CIVAppTemplate Remove-Cluster Remove-CustomAttribute Remove-Datacenter Remove-Datastore Remove-DatastoreCluster Remove-DrsClusterGroup Remove-DrsRule Remove-DrsVMHostRule Remove-FloppyDrive Remove-Folder Remove-HCXAppliance Remove-HCXNetworkExtension Remove-HCXReplication Remove-HCXSitePairing Remove-HardDisk Remove-IScsiHbaTarget Remove-Inventory Remove-KeyManagementServer Remove-NetworkAdapter Remove-NfsUser Remove-NsxCluster Remove-NsxClusterVxlanConfig Remove-NsxController Remove-NsxDynamicCriteria Remove-NsxDynamicMemberSet Remove-NsxEdge Remove-NsxEdgeBgpNeighbour Remove-NsxEdgeCertificate Remove-NsxEdgeCsr Remove-NsxEdgeFirewallRule Remove-NsxEdgeInterfaceAddress Remove-NsxEdgeNatRule Remove-NsxEdgeOspfArea Remove-NsxEdgeOspfInterface Remove-NsxEdgePrefix Remove-NsxEdgeRedistributionRule Remove-NsxEdgeStaticRoute Remove-NsxEdgeSubInterface Remove-NsxFirewallExclusionListMember Remove-NsxFirewallRule Remove-NsxFirewallRuleMember Remove-NsxFirewallSavedConfiguration Remove-NsxFirewallSection Remove-NsxIpPool Remove-NsxIpSet Remove-NsxIpSetMember Remove-NsxLoadBalancerApplicationProfile Remove-NsxLoadBalancerMonitor Remove-NsxLoadBalancerPool Remove-NsxLoadBalancerPoolMember Remove-NsxLoadBalancerVip Remove-NsxLogicalRouter Remove-NsxLogicalRouterBgpNeighbour Remove-NsxLogicalRouterBridge Remove-NsxLogicalRouterInterface Remove-NsxLogicalRouterOspfArea Remove-NsxLogicalRouterOspfInterface Remove-NsxLogicalRouterPrefix Remove-NsxLogicalRouterRedistributionRule Remove-NsxLogicalRouterStaticRoute Remove-NsxLogicalSwitch Remove-NsxMacSet Remove-NsxSecondaryManager Remove-NsxSecurityGroup Remove-NsxSecurityGroupMember Remove-NsxSecurityPolicy Remove-NsxSecurityPolicyAssignment Remove-NsxSecurityPolicyRule Remove-NsxSecurityPolicyRuleGroup Remove-NsxSecurityPolicyRuleService Remove-NsxSecurityTag Remove-NsxSecurityTagAssignment Remove-NsxSegmentIdRange Remove-NsxService Remove-NsxServiceGroup Remove-NsxSpoofguardPolicy Remove-NsxSslVpnClientInstallationPackage Remove-NsxSslVpnIpPool Remove-NsxSslVpnPrivateNetwork Remove-NsxSslVpnUser Remove-NsxTransportZone Remove-NsxTransportZoneMember Remove-NsxVdsContext Remove-OSCustomizationNicMapping Remove-OSCustomizationSpec Remove-Org Remove-OrgNetwork Remove-OrgVdc Remove-OrgVdcNetwork Remove-PSReadLineKeyHandler Remove-PassthroughDevice Remove-ResourcePool Remove-Snapshot Remove-SpbmStoragePolicy Remove-StatInterval Remove-Tag Remove-TagAssignment Remove-TagCategory Remove-Template Remove-UsbDevice Remove-VAIOFilter Remove-VApp Remove-VDPortGroup Remove-VDSwitch Remove-VDSwitchPhysicalNetworkAdapter Remove-VDSwitchPrivateVlan Remove-VDSwitchVMHost Remove-VDisk Remove-VICredentialStoreItem Remove-VIPermission Remove-VIProperty Remove-VIRole Remove-VM Remove-VMHost Remove-VMHostAccount Remove-VMHostNetworkAdapter Remove-VMHostNtpServer Remove-VMHostProfile Remove-VMHostProfileVmPortGroupConfiguration Remove-VMHostRoute Remove-VTpm Remove-VasaProvider Remove-VirtualPortGroup Remove-VirtualSwitch Remove-VirtualSwitchPhysicalNetworkAdapter Remove-VsanDisk Remove-VsanDiskGroup Remove-VsanFaultDomain Remove-VsanIscsiInitiatorGroup Remove-VsanIscsiInitiatorGroupTargetAssociation Remove-VsanIscsiLun Remove-VsanIscsiTarget Remove-vRABusinessGroup Remove-vRACustomForm Remove-vRAExternalNetworkProfile Remove-vRAGroupPrincipal Remove-vRAIcon Remove-vRANATNetworkProfile Remove-vRAPackage Remove-vRAPrincipalFromTenantRole Remove-vRAPropertyDefinition Remove-vRAPropertyGroup Remove-vRAReservation Remove-vRAReservationNetwork Remove-vRAReservationPolicy Remove-vRAReservationStorage Remove-vRARoutedNetworkProfile Remove-vRAService Remove-vRAStorageReservationPolicy Remove-vRATenant Remove-vRATenantDirectory Remove-vRAUserPrincipal Remove-vRNIApplication Remove-vRNIApplicationTier Remove-vRNIDataSource Repair-NsxEdge Repair-VsanObject Request-vRACatalogItem Request-vRAResourceAction Restart-CIVApp Restart-CIVAppGuest Restart-CIVM Restart-CIVMGuest Restart-VM Restart-VMGuest Restart-VMHost Restart-VMHostService Resume-HCXReplication Revoke-NsxSpoofguardNicApproval Save-Module Save-Package Save-Script Search-Cloud Set-AdvancedSetting Set-AlarmDefinition Set-Annotation Set-CDDrive Set-CIAccessControlRule Set-CINetworkAdapter Set-CIVApp Set-CIVAppNetwork Set-CIVAppStartRule Set-CIVAppTemplate Set-Cluster Set-CustomAttribute Set-Datacenter Set-Datastore Set-DatastoreCluster Set-DrsClusterGroup Set-DrsRule Set-DrsVMHostRule Set-FloppyDrive Set-Folder Set-HCXAppliance Set-HCXMigration Set-HCXReplication Set-HardDisk Set-IScsiHbaTarget Set-KeyManagementServer Set-KmsCluster Set-MarkdownOption Set-NetworkAdapter Set-NfsUser Set-NicTeamingPolicy Set-NodeExclusiveResources Set-NodeManager Set-NodeResourceSource Set-NodeResources Set-NsxEdge Set-NsxEdgeBgp Set-NsxEdgeFirewall Set-NsxEdgeInterface Set-NsxEdgeNat Set-NsxEdgeOspf Set-NsxEdgeRouting Set-NsxFirewallGlobalConfiguration Set-NsxFirewallRule Set-NsxFirewallSavedConfiguration Set-NsxFirewallThreshold Set-NsxLoadBalancer Set-NsxLoadBalancerPoolMember Set-NsxLogicalRouter Set-NsxLogicalRouterBgp Set-NsxLogicalRouterBridging Set-NsxLogicalRouterInterface Set-NsxLogicalRouterOspf Set-NsxLogicalRouterRouting Set-NsxManager Set-NsxManagerRole Set-NsxManagerTimeSettings Set-NsxSecurityPolicy Set-NsxSecurityPolicyFirewallRule Set-NsxSslVpn Set-OSCustomizationNicMapping Set-OSCustomizationSpec Set-Org Set-OrgNetwork Set-OrgVdc Set-OrgVdcNetwork Set-PSCurrentConfigurationNode Set-PSDefaultConfigurationDocument Set-PSMetaConfigDocInsProcessedBeforeMeta Set-PSMetaConfigVersionInfoV2 Set-PSReadLineKeyHandler Set-PSReadLineOption Set-PSRepository Set-PSTopConfigurationName Set-PackageSource Set-PowerCLIConfiguration Set-ResourcePool Set-ScsiController Set-ScsiLun Set-ScsiLunPath Set-SecurityPolicy Set-Snapshot Set-SpbmEntityConfiguration Set-SpbmStoragePolicy Set-StatInterval Set-Tag Set-TagCategory Set-Template Set-VAIOFilter Set-VApp Set-VDBlockedPolicy Set-VDPort Set-VDPortgroup Set-VDPortgroupOverridePolicy Set-VDSecurityPolicy Set-VDSwitch Set-VDTrafficShapingPolicy Set-VDUplinkLacpPolicy Set-VDUplinkTeamingPolicy Set-VDVlanConfiguration Set-VDisk Set-VIPermission Set-VIRole Set-VM Set-VMHost Set-VMHostAccount Set-VMHostAdvancedConfiguration Set-VMHostAuthentication Set-VMHostDiagnosticPartition Set-VMHostFirewallDefaultPolicy Set-VMHostFirewallException Set-VMHostFirmware Set-VMHostHba Set-VMHostModule Set-VMHostNetwork Set-VMHostNetworkAdapter Set-VMHostProfile Set-VMHostProfileImageCacheConfiguration Set-VMHostProfileStorageDeviceConfiguration Set-VMHostProfileUserConfiguration Set-VMHostProfileVmPortGroupConfiguration Set-VMHostRoute Set-VMHostService Set-VMHostSnmp Set-VMHostStartPolicy Set-VMHostStorage Set-VMHostSysLogServer Set-VMQuestion Set-VMResourceConfiguration Set-VMStartPolicy Set-VTpm Set-VirtualPortGroup Set-VirtualSwitch Set-VsanClusterConfiguration Set-VsanFaultDomain Set-VsanIscsiInitiatorGroup Set-VsanIscsiLun Set-VsanIscsiTarget Set-vRABusinessGroup Set-vRACatalogItem Set-vRACustomForm Set-vRAEntitlement Set-vRAExternalNetworkProfile Set-vRANATNetworkProfile Set-vRAReservation Set-vRAReservationNetwork Set-vRAReservationPolicy Set-vRAReservationStorage Set-vRARoutedNetworkProfile Set-vRAService Set-vRAStorageReservationPolicy Set-vRATenant Set-vRATenantDirectory Set-vRAUserPrincipal Set-vRNIDataSourceSNMPConfig Show-Markdown Start-CIVApp Start-CIVM Start-HCXMigration Start-HCXReplication Start-SpbmReplicationFailover Start-SpbmReplicationPrepareFailover Start-SpbmReplicationPromote Start-SpbmReplicationReverse Start-SpbmReplicationTestFailover Start-ThreadJob Start-VApp Start-VM Start-VMHost Start-VMHostService Start-VsanClusterDiskUpdate Start-VsanClusterRebalance Start-VsanEncryptionConfiguration Stop-CIVApp Stop-CIVAppGuest Stop-CIVM Stop-CIVMGuest Stop-SpbmReplicationTestFailover Stop-Task Stop-VApp Stop-VM Stop-VMGuest Stop-VMHost Stop-VMHostService Stop-VsanClusterRebalance Suspend-CIVApp Suspend-CIVM Suspend-HCXReplication Suspend-VM Suspend-VMGuest Suspend-VMHost Sync-SpbmReplicationGroup Test-ConflictingResources Test-HCXMigration Test-HCXReplication Test-Json Test-ModuleReloadRequired Test-MofInstanceText Test-NodeManager Test-NodeResourceSource Test-NodeResources Test-ScriptFileInfo Test-VMHostProfileCompliance Test-VMHostSnmp Test-VsanClusterHealth Test-VsanNetworkPerformance Test-VsanStoragePerformance Test-VsanVMCreation Test-vRAPackage Uninstall-Module Uninstall-Package Uninstall-Script Unlock-VM Unregister-PSRepository Unregister-PackageSource Update-ConfigurationDocumentRef Update-ConfigurationErrorCount Update-DependsOn Update-LocalConfigManager Update-Module Update-ModuleManifest Update-ModuleVersion Update-PowerNsx Update-Script Update-ScriptFileInfo Update-Tools Update-VsanHclDatabase ValidateUpdate-ConfigurationData Wait-Debugger Wait-NsxControllerJob Wait-NsxGenericJob Wait-NsxJob Wait-Task Wait-Tools Write-Information Write-Log Write-MetaConfigFile Write-NodeMOFFile',nomarkup:'-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace'},c:[t,e.NM,o,{cN:'string',v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},{cN:'literal',b:/\\$(null|true|false)\\b/},r,i]}}),r.registerLanguage('go',function(e){var t={keyword:'break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 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{aliases:['golang'],k:t,i:'</',c:[e.CLCM,e.CBCM,{cN:'string',v:[e.QSM,{b:'\\'',e:'[^\\\\\\\\]\\''},{b:'`',e:'`'}]},{cN:'number',v:[{b:e.CNR+'[dflsi]',r:1},e.CNM]},{b:/:=/},{cN:'function',bK:'func',e:/\\s*\\{/,eE:!0,c:[e.TM,{cN:'params',b:/\\(/,e:/\\)/,k:t,i:/[\"']/}]}]}}),r.registerLanguage('coffeescript',function(e){var t={keyword:'in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not',literal:'true false null undefined yes no on off',built_in:'npm require console print module global window document'},r='[A-Za-z$_][0-9A-Za-z$_]*',o={cN:'subst',b:/#\\{/,e:/}/,k:t},i=[e.BNM,e.inherit(e.CNM,{starts:{e:'(\\\\s*/)?',r:0}}),{cN:'string',v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,o]},{b:/\"/,e:/\"/,c:[e.BE,o]}]},{cN:'regexp',v:[{b:'///',e:'///',c:[o,e.HCM]},{b:'//[gim]*',r:0},{b:/\\/(?![ *])(\\\\\\/|.)*?\\/[gim]*(?=\\W|$)/}]},{b:'@'+r},{sL:'javascript',eB:!0,eE:!0,v:[{b:'```',e:'```'},{b:'`',e:'`'}]}];o.c=i;var a=e.inherit(e.TM,{b:r}),n='(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>',o={cN:'params',b:'\\\\([^\\\\(]',rB:!0,c:[{b:/\\(/,e:/\\)/,k:t,c:['self'].concat(i)}]};return{aliases:['coffee','cson','iced'],k:t,i:/\\/\\*/,c:i.concat([e.C('###','###'),e.HCM,{cN:'function',b:'^\\\\s*'+r+'\\\\s*=\\\\s*'+n,e:'[-=]>',rB:!0,c:[a,o]},{b:/[:\\(,=]\\s*/,r:0,c:[{cN:'function',b:n,e:'[-=]>',rB:!0,c:[o]}]},{cN:'class',bK:'class',e:'$',i:/[:=\"\\[\\]]/,c:[{bK:'extends',eW:!0,i:/[:=\"\\[\\]]/,c:[a]},a]},{b:r+':',e:':',rB:!0,rE:!0,r:0}])}}),r.registerLanguage('cmake',function(e){return{aliases:['cmake.in'],cI:!0,k:{keyword:'break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined'},c:[{cN:'variable',b:'\\\\${',e:'}'},e.HCM,e.QSM,e.NM]}}),r.registerLanguage('swift',function(e){var t={keyword:'#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet',literal:'true false nil',built_in:'abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip'},r=e.C('/\\\\*','\\\\*/',{c:['self']}),o={cN:'subst',b:/\\\\\\(/,e:'\\\\)',k:t,c:[]},i={cN:'string',c:[e.BE,o],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/\"/,e:/\"/}]},a={cN:'number',b:'\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b',r:0};return o.c=[a],{k:t,c:[i,e.CLCM,r,{cN:'type',b:'\\\\b[A-Z][\\\\wÀ-ʸ\\']*[!?]'},{cN:'type',b:'\\\\b[A-Z][\\\\wÀ-ʸ\\']*',r:0},a,{cN:'function',bK:'func',e:'{',eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b:/</,e:/>/},{cN:'params',b:/\\(/,e:/\\)/,endsParent:!0,k:t,c:['self',a,i,e.CBCM,{b:':'}],i:/[\"']/}],i:/\\[|%/},{cN:'class',bK:'struct protocol class extension enum',k:t,e:'\\\\{',eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{cN:'meta',b:'(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)'},{bK:'import',e:/$/,c:[e.CLCM,r]}]}}),r.registerLanguage('makefile',function(e){var t={cN:'variable',v:[{b:'\\\\$\\\\('+e.UIR+'\\\\)',c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:'string',b:/\"/,e:/\"/,c:[e.BE,t]},o={cN:'variable',b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:'subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value'},c:[t]},i={b:'^'+e.UIR+'\\\\s*[:+?]?=',i:'\\\\n',rB:!0,c:[{b:'^'+e.UIR,e:'[:+?]?=',eE:!0}]},a={cN:'section',b:/^[^\\s]+:/,e:/$/,c:[t]};return{aliases:['mk','mak'],k:'define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath',l:/[\\w-]+/,c:[e.HCM,t,r,o,i,{cN:'meta',b:/^\\.PHONY:/,e:/$/,k:{'meta-keyword':'.PHONY'},l:/[\\.\\w]+/},a]}}),r.registerLanguage('rust',function(e){var t='([ui](8|16|32|64|128|size)|f(32|64))?',r='drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec 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! panic! file! format! format_args! include_bin! 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!';return{aliases:['rs'],k:{keyword:'alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default',literal:'true false Some None Ok Err',built_in:r},l:e.IR+'!?',i:'</',c:[e.CLCM,e.C('/\\\\*','\\\\*/',{c:['self']}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:'string',v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:'symbol',b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:'number',v:[{b:'\\\\b0b([01_]+)'+t},{b:'\\\\b0o([0-7_]+)'+t},{b:'\\\\b0x([A-Fa-f0-9_]+)'+t},{b:'\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)'+t}],r:0},{cN:'function',bK:'fn',e:'(\\\\(|<)',eE:!0,c:[e.UTM]},{cN:'meta',b:'#\\\\!?\\\\[',e:'\\\\]',c:[{cN:'meta-string',b:/\"/,e:/\"/}]},{cN:'class',bK:'type',e:';',c:[e.inherit(e.UTM,{endsParent:!0})],i:'\\\\S'},{cN:'class',bK:'trait enum struct union',e:'{',c:[e.inherit(e.UTM,{endsParent:!0})],i:'[\\\\w\\\\d]'},{b:e.IR+'::',k:{built_in:r}},{b:'->'}]}}),r.registerLanguage('vbnet',function(e){return{aliases:['vb'],cI:!0,k:{keyword:'addhandler addressof alias and andalso aggregate ansi as 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 is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem 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 xor',built_in:'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort',literal:'true false nothing'},i:'//|{|}|endif|gosub|variant|wend|^\\\\$ ',c:[e.inherit(e.QSM,{c:[{b:'\"\"'}]}),e.C('\\'','$',{rB:!0,c:[{cN:'doctag',b:'\\'\\'\\'|\\x3c!--|--\\x3e',c:[e.PWM]},{cN:'doctag',b:'</?',e:'>',c:[e.PWM]}]}),e.CNM,{cN:'meta',b:'#',e:'$',k:{'meta-keyword':'if else elseif end region externalsource'}}]}}),r.registerLanguage('diff',function(e){return{aliases:['patch'],c:[{cN:'meta',r:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:'comment',v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/\\*{5}/,e:/\\*{5}$/}]},{cN:'addition',b:'^\\\\+',e:'$'},{cN:'deletion',b:'^\\\\-',e:'$'},{cN:'addition',b:'^\\\\!',e:'$'}]}}),r.registerLanguage('markdown',function(e){return{aliases:['md','mkdown','mkd'],c:[{cN:'section',v:[{b:'^#{1,6}',e:'$'},{b:'^.+?\\\\n[=-]{2,}$'}]},{b:'<',e:'>',sL:'xml',r:0},{cN:'bullet',b:'^\\\\s*([*+-]|(\\\\d+\\\\.))\\\\s+'},{cN:'strong',b:'[*_]{2}.+?[*_]{2}'},{cN:'emphasis',v:[{b:'\\\\*.+?\\\\*'},{b:'_.+?_',r:0}]},{cN:'quote',b:'^>\\\\s+',e:'$'},{cN:'code',v:[{b:'^```w*s*$',e:'^```s*$'},{b:'`.+?`'},{b:'^( {4}|\\t)',e:'$',r:0}]},{b:'^[-\\\\*]{3,}',e:'$'},{b:'\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]',rB:!0,c:[{cN:'string',b:'\\\\[',e:'\\\\]',eB:!0,rE:!0,r:0},{cN:'link',b:'\\\\]\\\\(',e:'\\\\)',eB:!0,eE:!0},{cN:'symbol',b:'\\\\]\\\\[',e:'\\\\]',eB:!0,eE:!0}],r:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:'symbol',b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:'link',b:/:\\s*/,e:/$/,eB:!0}]}]}}),r.registerLanguage('cs',function(e){var t={keyword:'abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long nameof object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let on orderby partial remove select set value var where yield',literal:'null false true'},r={cN:'number',v:[{b:'\\\\b(0b[01\\']+)'},{b:'(-?)\\\\b([\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)(u|U|l|L|ul|UL|f|F|b|B)'},{b:'(-?)(\\\\b0[xX][a-fA-F0-9\\']+|(\\\\b[\\\\d\\']+(\\\\.[\\\\d\\']*)?|\\\\.[\\\\d\\']+)([eE][-+]?[\\\\d\\']+)?)'}],r:0},o={cN:'string',b:'@\"',e:'\"',c:[{b:'\"\"'}]},i=e.inherit(o,{i:/\\n/}),a={cN:'subst',b:'{',e:'}',k:t},n=e.inherit(a,{i:/\\n/}),s={cN:'string',b:/\\$\"/,e:'\"',i:/\\n/,c:[{b:'{{'},{b:'}}'},e.BE,n]},c={cN:'string',b:/\\$@\"/,e:'\"',c:[{b:'{{'},{b:'}}'},{b:'\"\"'},a]},l=e.inherit(c,{i:/\\n/,c:[{b:'{{'},{b:'}}'},{b:'\"\"'},n]});a.c=[c,s,o,e.ASM,e.QSM,r,e.CBCM],n.c=[l,s,i,e.ASM,e.QSM,r,e.inherit(e.CBCM,{i:/\\n/})];s={v:[c,s,o,e.ASM,e.QSM]},o=e.IR+'(<'+e.IR+'(\\\\s*,\\\\s*'+e.IR+')*>)?(\\\\[\\\\])?';return{aliases:['csharp','c#'],k:t,i:/::/,c:[e.C('///','$',{rB:!0,c:[{cN:'doctag',v:[{b:'///',r:0},{b:'\\x3c!--|--\\x3e'},{b:'</?',e:'>'}]}]}),e.CLCM,e.CBCM,{cN:'meta',b:'#',e:'$',k:{'meta-keyword':'if else elif endif define undef warning error line region endregion pragma checksum'}},s,r,{bK:'class interface',e:/[{;=]/,i:/[^\\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:'namespace',e:/[{;=]/,i:/[^\\s:]/,c:[e.inherit(e.TM,{b:'[a-zA-Z](\\\\.?\\\\w)*'}),e.CLCM,e.CBCM]},{cN:'meta',b:'^\\\\s*\\\\[',eB:!0,e:'\\\\]',eE:!0,c:[{cN:'meta-string',b:/\"/,e:/\"/}]},{bK:'new return throw await else',r:0},{cN:'function',b:'('+o+'\\\\s+)+'+e.IR+'\\\\s*\\\\(',rB:!0,e:/\\s*[{;=]/,eE:!0,k:t,c:[{b:e.IR+'\\\\s*\\\\(',rB:!0,c:[e.TM],r:0},{cN:'params',b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,r:0,c:[s,r,e.CBCM]},e.CLCM,e.CBCM]}]}}),r.registerLanguage('fortran',function(e){return{cI:!0,aliases:['f90','f95'],k:{literal:'.False. .True.',keyword:'kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data',built_in:'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image'},i:/\\/\\*/,c:[e.inherit(e.ASM,{cN:'string',r:0}),e.inherit(e.QSM,{cN:'string',r:0}),{cN:'function',bK:'subroutine function program',i:'[${=\\\\n]',c:[e.UTM,{cN:'params',b:'\\\\(',e:'\\\\)'}]},e.C('!','$',{r:0}),{cN:'number',b:'(?=\\\\b|\\\\+|\\\\-|\\\\.)(?:\\\\.|\\\\d+\\\\.?)\\\\d*([de][+-]?\\\\d+)?(_[a-z\\\\d]+)?\\\\b\\\\.?',r:0}]}}),exports.hljs=r;","type":"application/javascript","module-type":"library"},"$:/plugins/tiddlywiki/highlight/highlight.css":{"text":"/*\n\nOriginal highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #F0F0F0;\n}\n\n\n/* Base color: saturation 0; */\n\n.hljs,\n.hljs-subst {\n color: #444;\n}\n\n.hljs-comment {\n color: #888888;\n}\n\n.hljs-keyword,\n.hljs-attribute,\n.hljs-selector-tag,\n.hljs-meta-keyword,\n.hljs-doctag,\n.hljs-name {\n font-weight: bold;\n}\n\n\n/* User color: hue: 0 */\n\n.hljs-type,\n.hljs-string,\n.hljs-number,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-quote,\n.hljs-template-tag,\n.hljs-deletion {\n color: #880000;\n}\n\n.hljs-title,\n.hljs-section {\n color: #880000;\n font-weight: bold;\n}\n\n.hljs-regexp,\n.hljs-symbol,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-link,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #BC6060;\n}\n\n\n/* Language color: hue: 90; */\n\n.hljs-literal {\n color: #78A960;\n}\n\n.hljs-built_in,\n.hljs-bullet,\n.hljs-code,\n.hljs-addition {\n color: #397300;\n}\n\n\n/* Meta color: hue: 200 */\n\n.hljs-meta {\n color: #1f7199;\n}\n\n.hljs-meta-string {\n color: #4d99bf;\n}\n\n\n/* Misc effects */\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n","type":"text/css","tags":"[[$:/tags/Stylesheet]]"},"$:/plugins/tiddlywiki/highlight/highlightblock.js":{"text":"!function(){'use strict';var i=require('$:/core/modules/widgets/codeblock.js').codeblock,l=require('$:/plugins/tiddlywiki/highlight/highlight.js');l.configure({tabReplace:' '}),i.prototype.postRender=function(){var i=this.domNodes[0],e=this.language,t=this.wiki.getTiddler('$:/config/HighlightPlugin/TypeMappings/'+e);t&&(e=t.fields.text||''),e&&l.getLanguage(e)&&(i.className=e.toLowerCase()+' hljs',$tw.browser&&!i.isTiddlyWikiFakeDom?l.highlightBlock(i):(t=i.textContent,i.children[0].innerHTML=l.fixMarkup(l.highlight(e,t).value),i.isTiddlyWikiFakeDom&&(i.children[0].textInnerHTML=t)))}}();","type":"application/javascript","module-type":"widget"},"$:/plugins/tiddlywiki/highlight/howto":{"text":"! Supporting Additional Languages\n \nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. It is possible for users to change the set of languages supported by the plugin by following these steps:\n\n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\n# Locate the `highlight.pack.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js it is located at `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/highlight.pack.js`.\n# Replace the plugin `highlight.pack.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\n# Restart the Tiddlywiki server.\n"},"$:/plugins/tiddlywiki/highlight/license":{"type":"text/plain","text":"Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of highlight.js nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"},"$:/plugins/tiddlywiki/highlight/readme":{"text":"This plugin provides syntax highlighting of code blocks using v9.15.6 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1 { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* awk\n* bash\n* cmake\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* dos (batch)\n* fortran\n* go\n* html\n* ini\n* java\n* javascript\n* json\n* julia\n* makefile\n* markdown\n* matlab\n* objectivec\n* perl\n* php\n* powershell\n* python\n* R\n* ruby\n* rust\n* sql\n* swift\n* tex\n* vbscript\n* vb.NET\n* xml\n* yaml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n\n!! Remarks\n* This plugin hacked by Mohammad (@kookma)\n* The highlight.js upgraded to 9.15.8\n* The Fortran syntax highlighter modified for user defined data (like: 12.34_wp)\n* Some languages were removed and some more useful were added\n* Last modification date ''2019.06.13''\n"},"$:/plugins/tiddlywiki/highlight/styles":{"tags":"[[$:/tags/Stylesheet]]","text":".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"},"$:/config/HighlightPlugin/TypeMappings/application/javascript":{"text":"javascript"},"$:/config/HighlightPlugin/TypeMappings/application/json":{"text":"json"},"$:/config/HighlightPlugin/TypeMappings/text/css":{"text":"css"},"$:/config/HighlightPlugin/TypeMappings/text/html":{"text":"html"},"$:/config/HighlightPlugin/TypeMappings/image/svg+xml":{"text":"xml"},"$:/config/HighlightPlugin/TypeMappings/text/x-markdown":{"text":"markdown"},"$:/plugins/tiddlywiki/highlight/usage":{"text":"! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"}}}
{
"tiddlers": {
"$:/config/field-search/data/Any Field": {
"text": "{\n \"*\": \"any field\"\n}",
"type": "application/json",
"caption": "Any Field",
"tags": "$:/tags/field-search/data",
"title": "$:/config/field-search/data/Any Field"
},
"$:/config/field-search/exclude": {
"title": "$:/config/field-search/exclude",
"type": "text/vnd.tiddlywiki",
"text": "bag revision exclude draft.of draft.title"
},
"$:/config/field-search/sortby": {
"title": "$:/config/field-search/sortby",
"type": "text/vnd.tiddlywiki",
"text": "title text tags caption subtitle creator modifier created modified type"
},
"$:/config/field-search/tab/Any Field": {
"title": "$:/config/field-search/tab/Any Field",
"caption": "Any Field",
"opt-checked": "[all[]]",
"opt-unchecked": "[!is[system]]",
"search-set": "[!is[system]]",
"search-sort": "[sort[title]limit[250]]",
"tags": "$:/tags/SearchResults",
"type": "text/vnd.tiddlywiki",
"text": "\\define searchTerm() [search:$(field)$<userInput>]\n\n<$list filter=\"[[$:/config/field-search/data/Any Field]indexes[]sortby{$:/config/field-search/sortby}]\" variable=field emptyMessage=\"[[- configuration needed -|$:/plugins/wikilabs/field-search/readme]]\">\n{{||$:/plugins/wikilabs/field-search/templates/Results}}\n</$list>"
},
"$:/plugins/wikilabs/field-search/css/column-styles": {
"title": "$:/plugins/wikilabs/field-search/css/column-styles",
"text": "/* columns responsive*/\n.c2, .c3, .columns2, .columns3 {\n column-rule: 1px solid #ccc;\n column-gap: 2em;\n}\n\n.c2, .columns2 { column-count:2;}\n.c3, .columns3 { column-count:3;}\n\n.-gap { column-gap: initial;}\n.-cr { column-rule: initial;}\n\n.wltc-max-width {\n width: 100%;\n}",
"tags": "$:/tags/Stylesheet",
"type": "text/css"
},
"$:/plugins/wikilabs/field-search/styles": {
"title": "$:/plugins/wikilabs/field-search/styles",
"tags": "$:/tags/Stylesheet",
"text": ".wltc-show-system {\n float: right;\n cursor: pointer;\n}\n\n.wltc-show-system input {\n visibility: hidden;\n margin-left: -1em;\n width: initial;\n}\n\n.wltc-show-system input[checked] + span{\n color: blue;\n font-weight: bold;\n}"
},
"$:/plugins/wikilabs/field-search/history": {
"title": "$:/plugins/wikilabs/field-search/history",
"text": "V 0.4.1 - 2021-03-28\n\n* add match counter into field-search dropdown\n\nV 0.3.0 - 2021-03-06\n\n* \"+system\" is more visible if selected\n** shows a \"pointer cursor\" now\n* show field-names in \"all Fields\" tab\n* complete redesign\n\nV 0.2.4 - 2020-12-25\n\n* update license\n\nV 0.2.3 - 2020.01.19\n\n* Update license link/text\n\nV 0.2.2 - 2019.02.27\n\n* add \"include system tiddlers\" option per tab\n* work with a single template instead of duplicated code\n* Adjust minimum TW version to V5.1.18 because of \"subfilter\" usage\n\nV 0.1.0 - 2019.02.19\n\n* Make it more \"update-friendly\"\n** wrappers are tagged instead of \"search-list\" tiddlers\n\nV 0.0.1 - 2019.02.19\n\n* Initial release\n* Add \"Field Search\" tab to search results\n* Basic configuration options\n"
},
"$:/plugins/wikilabs/field-search/icon": {
"title": "$:/plugins/wikilabs/field-search/icon",
"text": "<svg width=\"22pt\" height=\"22pt\" version=\"1.1\" viewBox=\"0 0 128 128\">\n<path transform=\"scale(4.36)\" d=\"m18.6 0-14.5 7.33-3.93 14.7 10.5 7.33 14.5-7.33 3.93-14.7-10.5-7.33zm-5.84 4.81c2.22 0 4.16 1.21 5.2 3h0.34v0.00195c0.277-0.0114 0.548 0.0881 0.744 0.273l2.8 2.64c0.182 0.171 0.287 0.402 0.291 0.645h0.00391v10.5c0 0.516-0.443 0.936-0.99 0.936h-9.91c-0.547 0-0.99-0.419-0.99-0.936v-5.56c-0.285-0.132-0.561-0.282-0.82-0.455l-4.3 4.3c-0.462 0.462-1.21 0.462-1.67 0-0.462-0.462-0.462-1.21 0-1.67l4.3-4.3c-0.656-0.985-1.01-2.14-1-3.33 0-3.32 2.69-6.01 6.01-6.01zm0 1.6c-2.07 0.0138-4.32 1.67-4.32 4.41 0 1.57 0.662 2.9 1.81 3.67v-5.73c0-0.516 0.443-0.936 0.99-0.936h4.71c-0.873-0.893-2.07-1.41-3.19-1.41zm-1.14 2.82v5.83c0.358 0.0841 0.734 0.143 1.14 0.143 2.36 0 4.44-1.74 4.44-4.38 0-0.577-0.115-1.11-0.309-1.59h-5.27zm1.26 1.45h3.12c0.508 0 0.916 0.443 0.916 0.992v0.0273c0 0.549-0.408 0.99-0.916 0.99h-3.12c-0.508 0-0.918-0.441-0.918-0.99v-0.0273c0-0.549 0.41-0.992 0.918-0.992zm5.86 0.531c-0.2 3.14-2.8 5.62-5.99 5.62-0.391 0-0.77-0.0497-1.14-0.121v4.62h9.05v-9.94h-1.38c-0.204 0-0.382-0.0727-0.539-0.172z\" style=\"stroke-width:.229\"/>\n</svg>"
},
"$:/plugins/wikilabs/field-search/license": {
"title": "$:/plugins/wikilabs/field-search/license",
"text": "[[Field Search-Plugin|https://wikilabs.github.io/#field-search]] (c) Mario Pietsch - 2019-2021\n\nhttps://opensource.org/licenses/BSD-3-Clause\n"
},
"$:/plugins/wikilabs/field-search/readme": {
"title": "$:/plugins/wikilabs/field-search/readme",
"text": "This plugin adds a \"Field Search\" tab to the search results\n\n{{$:/plugins/wikilabs/field-search/CP/Settings/field-search}}\n\n!! This plugin replaces the following system modules\n\n<$list filter=\"[[$:/plugins/wikilabs/field-search]plugintiddlers[]prefix[$:/core/]]\"><$link to=<<currentTiddler>>><<currentTiddler>><br></$link></$list>"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"first-search-filter": "[!is[system]search:title<userInput>sort[title]limit[250]]",
"second-search-filter": "[!is[system]search<userInput>sort[title]limit[250]]",
"tags": "$:/tags/SearchResults",
"type": "text/vnd.tiddlywiki",
"text": "//<small>{{$:/language/Search/Matches/Title}}</small>//\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[first-search-filter]] ~[{$:/config/SearchResults/Default}get[first-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span></$list></$list>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n<$list filter=\"[<userInput>minlength[1]]\" variable=\"ignore\">\n<$list filter={{{ [<configTiddler>get[second-search-filter]] ~[{$:/config/SearchResults/Default}get[second-search-filter]] }}}>\n<span class={{{[<currentTiddler>addsuffix[-secondaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</span>\n</$list>\n</$list>\n"
},
"$:/plugins/wikilabs/field-search/templates/ItemTemplate": {
"title": "$:/plugins/wikilabs/field-search/templates/ItemTemplate",
"type": "text/vnd.tiddlywiki",
"text": "<span title=\"Drag & Drop sort\">:::</span> <$link />"
},
"$:/plugins/wikilabs/field-search/templates/ListItemTemplate": {
"title": "$:/plugins/wikilabs/field-search/templates/ListItemTemplate",
"type": "text/vnd.tiddlywiki",
"text": "<div class=\"tc-menu-list-item tc-small-gap-left\">\n<$link />\n</div>"
},
"$:/plugins/wikilabs/field-search/templates/Results": {
"title": "$:/plugins/wikilabs/field-search/templates/Results",
"modified": "20210328092315108",
"type": "text/vnd.tiddlywiki",
"text": "\\define showAll()\n<small><$checkbox field=\"search-set\" checked={{!!opt-checked}} unchecked={{!!opt-unchecked}} class=\"wltc-show-system\">+ system</$checkbox></small>\n\\end\n<$tiddler tiddler=<<currentTab>>>\n<$set name=lst filter=\"[subfilter{!!search-set}] +[subfilter<searchTerm>] +[subfilter{!!search-sort}]\">\n//Field: ''<<field>>'' (<$count filter=\"\"\"[enlist<lst>]\"\"\"/>) <<showAll>>//\n\n<$list filter=\"[enlist<lst>]\" template=\"$:/core/ui/ListItemTemplate\" emptyMessage=\"\"\"<div class=\"tc-menu-list-item tc-small-gap-left\">n/a</div>\"\"\"/>\n</$set>\n</$tiddler>"
},
"$:/plugins/wikilabs/field-search/templates/WrapperTemplate": {
"title": "$:/plugins/wikilabs/field-search/templates/WrapperTemplate",
"caption": "Fields",
"opt-checked": "[all[]]",
"opt-unchecked": "[!is[system]]",
"search-set": "[!is[system]]",
"search-sort": "[sort[title]limit[250]]",
"type": "text/vnd.tiddlywiki",
"text": "`\\define searchTerm() [search:$(field)$<userInput>]\n\\define openConfig() \n<$button>\n <$action-setfield $tiddler=\"$:/state/tab-1749438307\" text=\"$:/plugins/wikilabs/field-search/CP/Settings/field-search\"/>\n <$action-navigate $to=\"$:/ControlPanel\"/>\n- configuration needed -\n</$button>\n\\end\n\n<$list filter=\"[[`<<newConfigName>>`]indexes[]sortby{$:/config/field-search/sortby}]\" variable=field emptyMessage=\"<<openConfig>>\">\n{{||$:/plugins/wikilabs/field-search/templates/Results}}\n</$list>`\n"
},
"$:/plugins/wikilabs/field-search/CP/Settings/field-search": {
"title": "$:/plugins/wikilabs/field-search/CP/Settings/field-search",
"caption": "Field-Search",
"tags": "$:/tags/ControlPanel",
"text": "\\define setDefault()\n<$action-deletetiddler $tiddler=\"$:/plugins/wikilabs/field-search/ui/fieldWrapper\"/>\n<$action-deletetiddler $tiddler=\"$:/plugins/wikilabs/field-search/ui/aliasWrapper\"/>\n<$action-deletetiddler $tiddler=\"$:/plugins/wikilabs/field-search/ui/captionWrapper\"/>\n<$action-deletetiddler $tiddler=\"$:/plugins/wikilabs/field-search/ui/textWrapper\"/>\n<$action-deletetiddler $tiddler=\"$:/plugins/wikilabs/field-search/ui/titleWrapper\"/>\n<$action-deletetiddler $tiddler=\"$:/core/ui/DefaultSearchResultList\"/>\n\\end\n\n{{$:/plugins/wikilabs/field-search/ui/TabConfigurator}}\n\n!! Return to Default\n\nThe following shaddow tiddlers have been modified: \n\n<<list-links filter:\"[tag[$:/tags/SearchResults]is[tiddler]is[shadow]sort[title]]\">>\n\n<$button actions=<<setDefault>> >\nReturn to: Default Settings!\n</$button>\n\n"
},
"$:/plugins/wikilabs/field-search/ui/edit/exclude": {
"title": "$:/plugins/wikilabs/field-search/ui/edit/exclude",
"type": "text/vnd.tiddlywiki",
"text": "!! [[Exclude Fields|$:/plugins/wikilabs/field-search/ui/edit/exclude]]\n<<<\nThe following fields are excluded: ''{{$:/config/field-search/exclude}}'' \n\nExclude from field list: \n<$edit-text class=\"wltc-max-width\" tiddler=\"$:/config/field-search/exclude\" tag=\"input\"/>\n<<<"
},
"$:/plugins/wikilabs/field-search/ui/edit/sortby": {
"title": "$:/plugins/wikilabs/field-search/ui/edit/sortby",
"type": "text/vnd.tiddlywiki",
"text": "!! [[Field Sort order|$:/plugins/wikilabs/field-search/ui/edit/sortby]]\n<<<\nSort order: [[$:/config/field-search/sortby]]\n\n<$edit-text class=\"wltc-max-width\" tiddler=\"$:/config/field-search/sortby\" tag=\"input\"/>\n<<<"
},
"$:/plugins/wikilabs/field-search/ui/ExistingTabs": {
"title": "$:/plugins/wikilabs/field-search/ui/ExistingTabs",
"type": "text/vnd.tiddlywiki",
"text": "\\define getTempName() $:/temp/field-search/tabName\n\\define getCurrentDataName() $:/config/field-search/data/$(currentCaption)$\n\\define getCurrentTabName() $:/config/field-search/tab/$(currentCaption)$\n\n\\define editConfig()\n<$action-createtiddler $basetitle=<<getTempName>> $overwrite=yes $template=<<getCurrentDataName>> tags=\"\"/>\n<$action-setfield $tiddler=\"$:/temp/field-search/select\" text=<<getCurrentDataName>>/>\n\\end\n\n\\define editConfigButton()\n<$button tooltip=\"Load Configuration\" class=\"tc-btn-invisible\" actions=<<editConfig>>>{{$:/core/images/copy-clipboard}} Edit</$button>\n\\end\n\n\\define deleteConfig()\n<$action-sendmessage $message=\"tm-delete-tiddler\" $param=<<getCurrentTabName>>/>\n<$action-sendmessage $message=\"tm-delete-tiddler\" $param=<<getCurrentDataName>>/>\n\\end\n\n\\define deleteButton()\n<$button tooltip=\"Load Configuration\" class=\"tc-btn-invisible\" actions=<<deleteConfig>>>{{$:/core/images/delete-button}} Delete</$button>\n\\end\n\n\\define checkbox()\n<$checkbox tiddler=<<currentTiddler>> tag=\"$:/tags/SearchResults\" checked=\"$:/tags/SearchResults\" unchecked=\"\" default=\"\"/>\n\\end\n\n!! [[Custom Search Configurations|$:/plugins/wikilabs/field-search/ui/ExistingTabs]]\n<<<\nIf the element is checked, the configuration will be used:\n\n<table><tbody>\n<$list filter=\"[prefix[$:/config/field-search/tab/]]\" emptyMessage=\"n/a\">\n<tr>\n<$vars currentCaption={{!!caption}}>\n<td><<checkbox>></td><td><$link to=<<currentTiddler>>><<currentCaption>></$link> - used <$link to=<<getCurrentDataName>>> fields</$link>: ''<$list filter=\"[<getCurrentDataName>indexes[]sortby{$:/config/field-search/sortby}]\" variable=field><<field>>, </$list>'' </td><td><<deleteButton>></td><td><<editConfigButton>></td>\n</$vars>\n</tr>\n</$list>\n</tbody></table>\n\n<<<"
},
"$:/plugins/wikilabs/field-search/ui/TabConfigurator": {
"title": "$:/plugins/wikilabs/field-search/ui/TabConfigurator",
"type": "text/vnd.tiddlywiki",
"text": "\\define getTabName() $:/config/field-search/tab/$(tabName)$\n\\define getConfigName() $:/config/field-search/data/$(tabName)$\n\\define getTempName() $:/temp/field-search/tabName\n\\define getTempSelect() $:/temp/field-search/select\n\n\\define clearTemp()\n\\whitespace trim\n<$button class=\"tc-btn-invisible\">\n <$action-deletetiddler $tiddler=<<getTempName>>/>\n <$action-deletetiddler $tiddler=<<getTempSelect>>/>\n {{$:/core/images/close-button}}\n</$button>\n\\end\n\n\\define createTab()\n<$set name=newConfigName value=<<getConfigName>> >\n <$wikify name=aa text={{$:/plugins/wikilabs/field-search/templates/WrapperTemplate}} output=text>\n <$action-createtiddler $basetitle=<<getTabName>> $overwrite=yes $template=\"$:/plugins/wikilabs/field-search/templates/WrapperTemplate\" caption={{{ [<getTempName>get[caption]] }}} text=<<aa>> tags=\"$:/tags/SearchResults\"/>\n <$action-createtiddler $basetitle=<<getConfigName>> $template=<<getTempName>> $overwrite=yes tags=\"$:/tags/field-search/data\"/>\n </$wikify>\n</$set>\n\\end\n\n\\define selectActions()\n<$action-createtiddler $basetitle=<<getTempName>> $overwrite=yes $template={{{ [<getTempSelect>get[text]] }}} tags=\"\"/>\n\\end\n\n\\define selectData()\n<$select tiddler=<<getTempSelect>> default=\"\" actions=<<selectActions>> >\n <option value=\"\">---</option>\n <$list filter=\"[tag[$:/tags/field-search/data]]\" >\n <option value=<<currentTiddler>> >{{!!caption}}</option>\n </$list>\n</$select>\n\\end\n\n!! Default Setting\n<<<\n* <$checkbox tiddler=\"$:/core/ui/DefaultSearchResultList\" tag=\"$:/tags/SearchResults\" checked=\"$:/tags/SearchResults\" unchecked=\"\" default=\"$:/tags/SearchResults\"> Add ''Default Search'' tab to the search dropdown!</$checkbox>\n* <$checkbox tiddler=\"$:/config/field-search/tab/Any Field\" tag=\"$:/tags/SearchResults\" checked=\"$:/tags/SearchResults\" unchecked=\"\" default=\"$:/tags/SearchResults\"> Add ''Any Field'' tab to the search dropdown!</$checkbox>\n<<<\n\n{{$:/plugins/wikilabs/field-search/ui/ExistingTabs}}\n\n!! [[Create / Modify Configuration|$:/plugins/wikilabs/field-search/ui/TabConfigurator]]\n<<<\nNew caption: <$edit-text tiddler=<<getTempName>> field=\"caption\"/> <<clearTemp>> <!-- Load config: <<selectData>> -->\n\nUsed fields: ''<$list filter=\"[<getTempName>indexes[]sortby{$:/config/field-search/sortby}]\" variable=field><<field>>, </$list>''\n\n---\n\n<$vars tabName={{{ [<getTempName>get[caption]] }}}>\n\n@@.columns3.j\n<$list filter=\"[all[]!is[system]fields:exclude{$:/config/field-search/exclude}sort[]sortby{$:/config/field-search/sortby}]\" variable=\"field\">\n<$checkbox tiddler=<<getTempName>> index=<<field>> checked=\"comment\" default=\"closed\" > <<field>><br></$checkbox>\n</$list>\n@@\n\n<table class=\"wltc-max-width\"><tbody>\n<$list filter=\"[<getTempName>indexes[]sortby{$:/config/field-search/sortby}]\" variable=field>\n<tr>\n<td><<field>></td><td><$edit-text class=\"wltc-max-width\" tiddler=<<getTempName>> index=<<field>> tag=input/> </td>\n</tr>\n</$list>\n</tbody></table>\n\n---\n\n<$list filter=\"[<getTabName>get[caption]match<tabName>addprefix[Update ]else[Create]]\" variable=\"buttonText\" >\n<$button actions=<<createTab>> disabled={{{[<getTempName>get[caption]then[no]else[yes]]}}}>\n<<buttonText>>\n</$button>\n</$list>\n</$vars>\n<<<\n\n!! Tab Order\n<<<\nYou can use ''drag&drop to sort'' the list:\n\n<<list-tagged-draggable tag:\"$:/tags/SearchResults\" itemTemplate:\"$:/plugins/wikilabs/field-search/templates/ItemTemplate\">>\n<<<\n\n{{$:/plugins/wikilabs/field-search/ui/edit/exclude}}\n\n{{$:/plugins/wikilabs/field-search/ui/edit/sortby}}\n"
}
}
}
{
"tiddlers": {
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain,actions,explicitState)\n<$set name=\"qualifiedState\" value=<<qualify \"$state$\">>>\n<$set name=\"tabsState\" filter=\"[<__explicitState__>minlength[1]] ~[<qualifiedState>]\">\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<tabsState>> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler>$actions$</$button><span class=\"wltc-link-to-tab\"><$link overrideClass=\"\" to=<<currentTiddler>> >{{$:/core/images/link}}</$link></span></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<tabsState>> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n</$set>\n</$set>\n\\end\n"
},
"$:/core/ui/ControlPanel/Settings/link-to-tabs": {
"title": "$:/core/ui/ControlPanel/Settings/link-to-tabs",
"caption": "Link-to-Tabs plugin",
"created": "20190712133607244",
"modified": "20190714104631250",
"tags": "$:/tags/ControlPanel/Settings",
"type": "text/vnd.tiddlywiki",
"text": "<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-all-links\" checked=\"inline-block\" unchecked=\"none\" default=\"none\"> Show internal tab link for ''all tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-single-link\" checked=\"inline-block\" unchecked=\"none\" default=\"inline-block\"> Show internal tab link for ''selected tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"initial-opacity\" checked=\"0\" unchecked=\"0.7\" default=\"0.7\"> Tab links are initially hidden and need mouse hover to become visible.</$checkbox> The transition time in seconds is: <$edit-text tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"transition\" default=\"0.3\"/>\n\n<$button message=\"tm-delete-tiddler\" param=\"$:/plugins/wikilabs/link-to-tabs/config\">\nReset to Default!\n</$button>"
},
"$:/plugins/wikilabs/link-to-tabs/config": {
"title": "$:/plugins/wikilabs/link-to-tabs/config",
"created": "20190712133008077",
"initial-opacity": "0.7",
"modified": "20190714104541701",
"show-all-links": "none",
"show-single-link": "inline-block",
"transition": "0.3",
"type": "text/vnd.tiddlywiki",
"text": "This tiddler is used to configure the \"Link-to-tabs\" plugin behaviour. \n\nThere are 4 fields, which are used by [[$:/plugins/wikilabs/link-to-tabs/styles]] enable and disable the internal links. \n\n* show-all-links: {{!!show-all-links}}\n* show-single-link: {{!!show-single-link}}\n* initial-opacity: {{!!initial-opacity}}\n* transition time in seconds: {{!!transition}}\n"
},
"$:/plugins/wikilabs/link-to-tabs/history": {
"title": "$:/plugins/wikilabs/link-to-tabs/history",
"text": "V 2.0.1 - 2020-12-25\n\n* update license\n\nV 2.0.0 - 2020.12.05\n\n* Update $:/core/macros/tabs to V5.1.23\n\nV 1.1.1 - 2020.01.19\n\n* Update license link/text\n\nV 1.1.0 - 2019.07.14\n\n* Add new option: Initially hide link\n** Transition time from hidden to visible is adjustable\n* Added: \"Reset to Default\" button\n\nV 1.0.1 - 2019.02.18\n\n* link-to-tabs works in drop-down elements now.\n\nV 1.0.0 - 2019.02.14\n\n* Use core tabs-macro from TW 5.1.19\n\nV <1.0.0\n\n* Use core tabs-macro from TW 5.1.15\n"
},
"$:/plugins/wikilabs/link-to-tabs/icon": {
"title": "$:/plugins/wikilabs/link-to-tabs/icon",
"text": "<svg width=\"22pt\" height=\"22pt\" version=\"1.1\" viewBox=\"0 0 128 128\">\n<path transform=\"scale(4.36)\" d=\"m18.6 0-14.5 7.33-3.93 14.7 10.5 7.33 14.5-7.33 3.93-14.7-10.5-7.33zm0.0371 4.98c1.26-7.68e-5 2.52 0.479 3.48 1.44 1.92 1.92 1.92 5.03 0 6.96l-3.48 3.48c-1.92 1.92-5.03 1.92-6.96 0a4.9 4.9 0 0 1-1.05-1.56l0.943-0.943a1.84 1.84 0 0 1 1.17-0.535 2.45 2.45 0 0 0 0.68 1.3c0.96 0.96 2.52 0.958 3.48-0.00195l3.47-3.47c0.962-0.962 0.962-2.52 0.00195-3.48-0.96-0.96-2.52-0.958-3.48 0.00195l-2.25 2.25a5.56 5.56 0 0 0-3.37-0.0508 4.97 4.97 0 0 1 0.41-0.465l3.48-3.48c0.96-0.96 2.22-1.44 3.48-1.44zm-5.76 5.76c1.26-5.8e-5 2.52 0.481 3.48 1.44a4.9 4.9 0 0 1 1.05 1.56l-0.941 0.943a1.84 1.84 0 0 1-1.17 0.533 2.45 2.45 0 0 0-0.68-1.29c-0.96-0.96-2.52-0.96-3.48 0l-3.48 3.48c-0.962 0.962-0.96 2.52 0 3.48 0.96 0.96 2.52 0.96 3.48 0l2.25-2.25a5.56 5.56 0 0 0 3.37 0.0527 4.97 4.97 0 0 1-0.41 0.463l-3.48 3.48c-1.92 1.92-5.03 1.92-6.96 0-1.92-1.92-1.92-5.03 0-6.95l3.48-3.48c0.96-0.96 2.22-1.44 3.48-1.44z\" style=\"stroke-width:.229\"/>\n</svg>\n\n\n\n"
},
"$:/plugins/wikilabs/link-to-tabs/license": {
"title": "$:/plugins/wikilabs/link-to-tabs/license",
"text": "[[Link-to-Tabs-Macro|https://wikilabs.github.io/#link-to-tabs]] (c) Mario Pietsch - 2016-2021\n\nhttps://opensource.org/licenses/BSD-3-Clause\n"
},
"$:/plugins/wikilabs/link-to-tabs/styles": {
"title": "$:/plugins/wikilabs/link-to-tabs/styles",
"created": "20190712133348541",
"modified": "20190714104306483",
"tags": "$:/tags/Stylesheet",
"type": "text/vnd.tiddlywiki",
"text": "<pre>\n\n.wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}};\n position: relative;\n top: -1em;\n left: -1.3em;\n font-size: 0.7em;\n opacity: {{$:/plugins/wikilabs/link-to-tabs/config!!initial-opacity}};\n margin-right: -1em;\n}\n\n.wltc-link-to-tab svg{\n width: 1.4em;\n height: 1.4em;\n}\n\n.wltc-link-to-tab:hover {\n opacity: 1;\n transition:opacity {{$:/plugins/wikilabs/link-to-tabs/config!!transition}}s;\n transition-timing-function: cubic-bezier(1,-0.06,.39,.89);\n}\n\n.tc-tab-selected + .wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}};\n}\n\n.tc-vertical > .wltc-link-to-tab {\n top: -1.9em;\n left: 0;\n height: 0;\n float: right;\n}\n\n.tc-search-results .wltc-link-to-tab a {\n display: contents;\n padding: 0;\n}\n\n</pre>"
},
"$:/plugins/wikilabs/link-to-tabs/readme": {
"title": "$:/plugins/wikilabs/link-to-tabs/readme",
"text": "This plugin adds a little link icon to every tab.\n\n''Important:'' This plugin changes the core tabs macro.\n\n! Lint-to-Tabs Settings\n\n{{$:/core/ui/ControlPanel/Settings/link-to-tabs}}"
}
}
}
playing with colors and palettes in TW
<$linkcatcher to="$:/palette">
<div class="tc-chooser"><$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]"><$set name="cls" filter="[all[current]prefix{$:/palette}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"><div class=<<cls>>><$link to={{!!title}}>''<$view field="name" format="text"/>'' - <$view field="description" format="text"/>{{||$:/snippets/currpalettepreview}}</$link>
</div></$set>
</$list>
</div>
</$linkcatcher>
<$edit-text tiddler=<<currentTiddler>> class="tc-spell-check-preview"/>
<style>
.tc-spell-check-preview {width:100%;}
</style>
$:/config/OfficialPluginLibrary
$:/core/ui/AdvancedSearch/Filter
$:/temp/commander/logs/tid-9
[enlist<mainSelectors>sort[title]]
$:/core/ui/EditTemplate/body/preview/output
$:/core/ui/DefaultSearchResultList
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/AdvancedSearch/Filter
$:/plugins/flibbles/relink/ui/TiddlerInfo/References
$:/core/ui/ControlPanel/Palette
$:/plugins/kookma/favorites/manager/folders
$:/core/ui/ControlPanel/Advanced
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/Stylesheets
$:/core/ui/ControlPanel/Toolbars/EditToolbar
$:/core/ui/ControlPanel/Plugins
$:/plugins/kookma/commander/tiddler/uicomp/delete-tiddlers
$:/plugins/kookma/commander/tag/uicomp/add-remove-tags
$:/plugins/kookma/commander/snr/ui
$:/core/ui/MoreSideBar/System
$:/core/ui/DefaultSearchResultList
$:/plugins/kookma/favorites/sidebar-tab
$:/themes/tiddlywiki/snowwhite
{"tiddlers":{"$:/themes/tiddlywiki/snowwhite/base":{"tags":"[[$:/tags/Stylesheet]]","text":"\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"}}}
{"tiddlers":{"$:/themes/tiddlywiki/vanilla/themetweaks":{"tags":"$:/tags/ControlPanel/Appearance","caption":"{{$:/language/ThemeTweaks/ThemeTweaks}}","text":"\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"},"$:/themes/tiddlywiki/vanilla/base":{"tags":"[[$:/tags/Stylesheet]]","text":"\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define sidebarbreakpoint()\n<$text text={{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}/>\n\\end\n\n\\define sidebarbreakpoint-minus-one()\n<$text text={{{ [{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}removesuffix[px]subtract[1]addsuffix[px]] ~[{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}] }}}/>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\define set-type-selector-min-width()\n<$set name=\"typeLength\" value={{{ [all[shadows+tiddlers]prefix[$:/language/Docs/Types/]get[name]length[]maxall[]] }}}>\n\n\t.tc-type-selector-dropdown-wrapper {\n\t\tmin-width: calc(<<typeLength>>ch + 4em);\n\t}\n\n\t.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {\n\t\tmin-width: <<typeLength>>ch;\n\t}\n\n</$set>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\ninput[type=\"search\"] {\n outline-offset: initial;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tfill: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml, body {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n\tfont-size: 2em;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n\t-webkit-appearance:none;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n::selection {\n\tbackground-color: Highlight;\n\tcolor: HighlightText;\n\tbackground-color: <<colour selection-background>>;\n\tcolor: <<colour selection-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n.tc-drop-down a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-page-container > .tc-dropzone {\n\tmin-height: 100vh;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\n.tc-sidebar-lists button small {\n\tcolor: <<colour foreground>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-tags-wrapper .tc-tag-list-item {\n\tmargin-right: 7px;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\n.tc-block-tags-dropdown > .tc-btn-invisible:hover {\n\tbackground-color: <<colour primary>>;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n.tc-tag-button-selected,\n.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour tiddler-background>>;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-topbar-right {\n\t\tright: 10px;\n\t}\n\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {\n\t\ttransform: rotate(-90deg);\n\t}\n\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-sidebar-lists .tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\ttransition: min-height {{$:/config/AnimationDuration}}ms ease-in-out, padding-top {{$:/config/AnimationDuration}}ms ease-in-out, padding-bottom {{$:/config/AnimationDuration}}ms ease-in-out;\n\t}\n\t\n\t<<if-no-sidebar \"\"\"\n\n\t\t.tc-sidebar-header {\n\t\t\tmin-height: 0;\n\t\t\tpadding-top: 0;\n\t\t\tpadding-bottom: 0;\n\t\t}\n\n\t\"\"\">>\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n\t.tc-story-river.tc-static-story-river {\n\t\tmargin-right: 0;\n\t\tpadding-right: 42px;\n\t}\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\toverflow: hidden;\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\n\t.tc-tiddler-info {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: <<sidebarbreakpoint-minus-one>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t\tmargin-bottom: .5em;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.35em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-background>>;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: auto;\n}\n\n.tc-type-selector-dropdown-wrapper {\n\tdisplay: inline-block;\n}\n\n<<set-type-selector-min-width>>\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n.tc-edit-fields.tc-edit-fields-small {\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n}\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {\n\twidth: auto;\n}\n\n.tc-edit-field-add-name-wrapper {\n\tdisplay: inline-block;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-edit-field-add-value {\n\t\twidth: 35%;\n\t}\n\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a.tc-tiddlylink:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n\n/*\n** Centered modals\n*/\n.tc-modal-centered .tc-modal {\n\twidth: auto;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%) !important;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Import table\n*/\n\n.tc-import-table {\n\twidth: 100%;\n}\n\n.tc-import-table svg.tc-image-edit-button {\n\tmax-width: unset;\n}\n\n.tc-import-table th:first-of-type {\n\twidth: 10%;\n}\n\n.tc-import-table th:last-of-type {\n\twidth: 30%;\n}\n\n.tc-import-table .tc-row-disabled {\n\tbackground: <<colour very-muted-foreground>>10;\n\topacity: 0.8;\n}\n\n.tc-import-table .tc-row-warning {\n\tbackground: <<colour diff-delete-background>>50;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: <<sidebarbreakpoint>>) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\tfill: <<colour background>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n::-webkit-file-upload-button {\n\tcursor:pointer;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}\n\n/*\n** Flexbox utility classes\n*/\n\n.tc-flex {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-flex-column {\n\tflex-direction: column;\n}\n\n.tc-flex-row {\n\tflex-direction: row;\n}\n\n.tc-flex-grow-1 {\n\tflex-grow: 1;\n}\n\n.tc-flex-grow-2 {\n\tflex-grow: 2;\n}\n\n/*\n** Other utility classes\n*/\n\n.tc-small-gap {\n\tmargin-left: .5em;\n\tmargin-right: .5em;\n}\n\n.tc-small-gap-left {\n\tmargin-left: .5em;\n}\n\n.tc-small-gap-right {\n\tmargin-right: .5em;\n}\n\n.tc-big-gap {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-big-gap-left {\n\tmargin-left: 1em;\n}\n\n.tc-big-gap-right {\n\tmargin-right: 1em;\n}\n\n.tc-word-break {\n\tword-break: break-all;\n}\n"},"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize":{"text":"15px"},"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight":{"text":"22px"},"$:/themes/tiddlywiki/vanilla/metrics/fontsize":{"text":"14px"},"$:/themes/tiddlywiki/vanilla/metrics/lineheight":{"text":"20px"},"$:/themes/tiddlywiki/vanilla/metrics/storyleft":{"text":"0px"},"$:/themes/tiddlywiki/vanilla/metrics/storytop":{"text":"0px"},"$:/themes/tiddlywiki/vanilla/metrics/storyright":{"text":"770px"},"$:/themes/tiddlywiki/vanilla/metrics/storywidth":{"text":"770px"},"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth":{"text":"686px"},"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint":{"text":"960px"},"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth":{"text":"350px"},"$:/themes/tiddlywiki/vanilla/options/stickytitles":{"text":"no"},"$:/themes/tiddlywiki/vanilla/options/sidebarlayout":{"text":"fixed-fluid"},"$:/themes/tiddlywiki/vanilla/options/codewrapping":{"text":"pre-wrap"},"$:/themes/tiddlywiki/vanilla/reset":{"type":"text/plain","text":"/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */\n\n/*\nDocument\n========\n*/\n\n/**\nUse a better box model (opinionated).\n*/\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n/**\nUse a more readable tab size (opinionated).\n*/\n\n:root {\n -moz-tab-size: 4;\n tab-size: 4;\n}\n\n/**\n1. Correct the line height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n*/\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/*\nSections\n========\n*/\n\n/**\nRemove the margin in all browsers.\n*/\n\nbody {\n margin: 0;\n}\n\n/**\nImprove consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n*/\n\nbody {\n font-family:\n system-ui,\n -apple-system, /* Firefox supports this but not yet `system-ui` */\n 'Segoe UI',\n Roboto,\n Helvetica,\n Arial,\n sans-serif,\n 'Apple Color Emoji',\n 'Segoe UI Emoji';\n}\n\n/*\nGrouping content\n================\n*/\n\n/**\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n}\n\n/*\nText-level semantics\n====================\n*/\n\n/**\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr[title] {\n text-decoration: underline dotted;\n}\n\n/**\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)\n2. Correct the odd 'em' font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Consolas,\n 'Liberation Mono',\n Menlo,\n monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/**\nPrevent 'sub' and 'sup' elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\nTabular data\n============\n*/\n\n/**\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n}\n\n/*\nForms\n=====\n*/\n\n/**\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\nRemove the inheritance of text transform in Edge and Firefox.\n1. Remove the inheritance of text transform in Firefox.\n*/\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\nCorrect the inability to style clickable types in iOS and Safari.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button;\n}\n\n/**\nRemove the inner border and padding in Firefox.\n*/\n\n::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\nRestore the focus styles unset by the previous rule.\n*/\n\n:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\nRemove the additional ':invalid' styles in Firefox.\nSee: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/**\nRemove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.\n*/\n\nlegend {\n padding: 0;\n}\n\n/**\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to 'inherit' in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nInteractive\n===========\n*/\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n"},"$:/themes/tiddlywiki/vanilla/settings/fontfamily":{"text":"system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\""},"$:/themes/tiddlywiki/vanilla/settings/codefontfamily":{"text":"\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"},"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment":{"text":"fixed"},"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize":{"text":"auto"},"$:/themes/tiddlywiki/vanilla/sticky":{"text":"<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"}}}
{
"created": "20210330173001125",
"title": "$:/temp/search/input",
"text": "colorlab",
"modified": "20210330173002850"
}
{
"text": "Today is 25th, March 2021",
"title": "Add button to copy color to a tiddler",
"tags": "task",
"status": "not started",
"priority": "normal",
"modified": "20210324201204155",
"due-date": "",
"created": "20210324201143685"
}
{
"text": "Color play has tools and demo for working with colors and palettes in Tiddlywiki\n\n!! Demo\n<<list-links \"[tag[demo]]\">>\n\nFor codes see sidebar, Favorites, ''color play''\n",
"title": "Color Tools",
"tags": "start $:/tags/SideBar",
"modified": "20210326050554944",
"created": "20210317055157570"
}
{
"created": "20210328120810258",
"text": "The web accessibility guidelines suggest a [[minimum contrast ratio|https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html#key-terms]] of ''4.5'' for //small text//, and ''3.0'' for //large text//. When we audited color usage in our products, we discovered that none of the default text colors we were using for small text (except for black) met the contrast threshold.\n\n;Ref\n:[[https://stripe.com/blog/accessible-color-systems]]",
"tags": "Concepts",
"title": "Contrast Ratio for Accessibility",
"modified": "20210328121019439"
}
{
"text": "{\n \"main-color\": \"#e6cce6\"\n}",
"type": "application/json",
"title": "demo/stripe/sample01",
"modified": "20210325044054005",
"created": "20210325044050005"
}
{
"text": "{\n \"main-color\": \"#a9d551\"\n}",
"type": "application/json",
"title": "demo/stripe/sample02",
"modified": "20210321192449458",
"created": "20210312084911506"
}
{
"text": "\\define bgc()\nbackground-color:$(color)$;\ncolor:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;\ndisplay:inline-block;width:20px;\ntext-align:center;\nvertical-align:middle;\n\\end\n\n\\define sample(color1:#000, color2:#fff, pct:0.5)\n<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >\n<$wikify name=b text=<<bgc>> >\n<span style=<<b>> ><small>×</small> </span>\n</$wikify>\n</$vars>\n\\end\n\n\\define blend-colors(color, low:\"00\", high:\"100\")\n<div style=\"display:flex\">\n<div>\n<label style=\"display:inline-block;width:45px;\">Tint: </label><$list filter=\"[range[100, $low$,-10]]\" variable=pct><$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />\n</$list>\n<div>\n<div style=\"margin-top:4px;\">\n<label style=\"display:inline-block;width:45px;\">Shade: </label><$list filter=\"[range[0,$high$,10]]\" variable=pct><$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> /></$list>\n</div>\n</div>\n\\end\n\n\n!! Strip of shade and tint\n\nThe below examples show how to create a strip of colors. The example uses shade (mix with black) nd tint (mix with white).\n\nSee https://en.wikipedia.org/wiki/Tints_and_shades\n\n\n<<<\n<<blend-colors color:\"#FFA500\">>\n<<blend-colors color:\"#800080\">>\n<<blend-colors color:\"#20B2AA\">>\n<<blend-colors color:\"#FF0000\">>\n<<blend-colors color:\"#00FF00\">>\n<<blend-colors color:\"#0000FF\">>\n<<<\n\n;Remaek\n:in tint, percent shows percent of color in mix of color+white\n:in shade, percent shows percent of black in mix of color+black\n\nSee [[Shade and Tints]]",
"created": "20210401210318635",
"title": "Draft of 'Color Blends Strip Demo with Percent 1'",
"tags": "[[Color Tools]]",
"modified": "20210401211239196",
"draft.title": "Color Blends Strip Demo with Percent 1",
"draft.of": "Color Blends Strip Demo with Percent 1"
}
{
"created": "20210401210201612",
"text": "!! Strip of shade and tint\n\nThe below examples show how to create a strip of colors. The example uses shade (mix with black) nd tint (mix with white).\n\nSee https://en.wikipedia.org/wiki/Tints_and_shades\n\n!! Example i\nClick on the color strip and see the return color value. Blend is created fro color: `#800080`\n\n<$macrocall $name=\"wikitext-example-without-html\" \nsrc=\"\"\"<<blend-colors-stripe color:\"#800080\" tidName:demo/stripe/sample01 indexName:main-color>>\n\nShow color value: ''{{demo/stripe/sample01##main-color}}''\n\"\"\"/>\n\n!! Example ii\nClick on the color strip and see the return color value. Blend is created fro color: `#9ACD32`.\n\n<$macrocall $name=\"wikitext-example-without-html\" \nsrc=\"\"\"<<blend-colors-stripe color:\"#9ACD32\" tidName:demo/stripe/sample02 indexName:main-color>>\n\nShow color value: ''{{demo/stripe/sample01##main-color}}''\n\"\"\"/>\n",
"draft.title": "Color Blends Strip with Button 2",
"title": "Draft of 'Color Blends Strip with Button 1'",
"tags": "[[Color Tools]]",
"modified": "20210401210205154",
"draft.of": "Color Blends Strip with Button 1"
}
{
"created": "20210401053823763",
"text": "<style>\n.cls{\n\tcolor:rgba(255,0,0,0.6);\n\tbackground-color:rgb(255,240,0);\n padding:20px;\n}\n</style>\n<div class=\"cls\">\nThis is a test!\n</div>",
"draft.title": "TEST",
"tags": "",
"title": "Draft of 'New Tiddler'",
"draft.of": "New Tiddler",
"modified": "20210401054128976"
}
{
"text": "\\define tmpTid() xx$:/temp/rgb-contrast\n\n\\define rgbcolor() rgb($(red)$, $(green)$, $(blue)$)\n\\define hslcolor() <<rgb2hsl $(red)$ $(green)$ $(blue)$>>\n\\define hexcolor() <<rgb2hex $(red)$ $(green)$ $(blue)$>>\n\n\\define divstyle() \nbackground-color:$(rgbcolor)$;\ncolor:<<contrastcolour target:\"$(rgbcolor)$\" colourA:black colourB:white>>;\n\\end\n\n\n\\define copy-color-to-clipboard(color)\n<$button class=\"btn btn-sm\" style=<<dstyle>> message=\"tm-copy-to-clipboard\" param=\"$color$\" >\n<$text text=\"$color$\" />\n</$button>\n\\end\n\n<!-- display the rgb sliders -->\n{{$:/plugins/kookma/colorplay/ui/rgb-sliders}}\n\n<div style=\"width:400px;max-width:100%;\">\n\n<$vars red={{{[<tmpTid>get[red]]}}}\n green={{{[<tmpTid>get[green]]}}}\n blue={{{[<tmpTid>get[blue]]}}} >\n\n<$wikify name=dstyle text=<<divstyle>> >\n<div class=\"colorplay-colorbox\" style=<<dstyle>>>\n<<rgbcolor>>\n</div>\n</$wikify>\n\n<!-- buttons to copy the color -->\n<small>Click to copy to clipboard</small>\n\n<$wikify name=Hslcolor text=<<hslcolor>> >\n<$macrocall $name=copy-color-to-clipboard color=<<Hslcolor>> />\n</$wikify>\n\n<$wikify name=HexColor text=<<hexcolor>> >\n<$macrocall $name=copy-color-to-clipboard color={{{[<HexColor>addprefix[#]]}}} />\n</$wikify>\n\n<$wikify name=RgbColor text=<<rgbcolor>> >\n<$macrocall $name=copy-color-to-clipboard color=<<RgbColor>> />\n</$wikify>\n\n\n</$vars>\n\n</div>\n\n\n\n<<details sum:\"RGB and RGBA Color Values\" src:\"{{RGB and RGBA Color Values}}\" status:closed labelClass:\"bg-secondary text-white\">>",
"title": "Draft of 'RGB Colors 1'",
"tags": "[[Color Tools]]",
"modified": "20210330050116825",
"draft.title": "RGB Colors 1",
"draft.of": "RGB Colors 1",
"created": "20210329200748745"
}
{
"title": "img_28_chrome.png",
"text": "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",
"type": "image/png"
}
{
"title": "img_34_msedge.png",
"text": "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",
"type": "image/png"
}
{
"title": "inspect-element.webp",
"text": "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",
"type": "image/webp"
}
{
"title": "inspect-element.webp",
"text": "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",
"type": "image/webp"
}
{
"created": "20210401194102226",
"text": "dfd\n <svg width=60px height=60px> \n <path fill=\"none\" stroke=\"#0f0\" stroke-width=\"4\" d=\"M48.9,17.4c3.1,5.8,3.9,12.9,1.4,19.7c-4.6,12.4-18.4,18.8-30.8,14.3S0.7,33,5.2,20.5S23.6,1.7,36,6.3\"/>\n <polyline class=\"tick\" fill=\"none\" stroke=\"#00f\" stroke-width=\"4\" points=\"20.3,25.4 28.6,33.9 46.7,8.3\"/>\n \n </svg>\n \n ",
"tags": "",
"title": "New Tiddler",
"modified": "20210401202209354"
}
{
"created": "20191214040051256",
"text": "\\import [all[tiddlers+shadows]tag[$:/tags/Macro/Toc]]\n<<twolevel-toc-expandable tag:\"contents\" exclude:\"\" stateTiddler:\"20210328144000\">>",
"type": "text/vnd.tiddlywiki",
"title": "TwoLevel",
"tags": "$:/tags/SideBar",
"modified": "20210328101148504",
"caption": "Two Level Contents"
}
{
"text": "yellow",
"title": "xx$:/temp/color-name-to-hsla",
"modified": "20210327115410222",
"created": "20210327114126043"
}
{
"text": "lightblue",
"title": "xx$:/temp/color-name-to-rgba",
"modified": "20210327120556770",
"created": "20210327115056920"
}
{
"created": "20210329194605392",
"title": "xx$:/temp/hexcolors",
"hex1": "#fa0",
"modified": "20210329200639171",
"hex2": "#00f"
}
{
"text": "",
"title": "xx$:/temp/new-rgba",
"red": "173",
"modified": "20210327120605287",
"green": "216",
"created": "20210327115056922",
"blue": "255",
"alpha": "0.8"
}
{
"text": "",
"title": "xx$:/temp/rgb",
"red": "255",
"modified": "20210327120205853",
"green": "255",
"created": "20210327115800736",
"blue": "0"
}
{
"created": "20210329200721157",
"title": "xx$:/temp/rgb",
"green": "112",
"modified": "20210329200730170",
"red": "71",
"blue": "59"
}
<svg width="22pt" height="22pt" viewBox="0 0 16 16" class="tc-image-palette-button tc-image-button" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M8 15V1a7 7 0 1 1 0 14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z"/>
</svg
<$vars
darkPalette={{$:/utility/ui/Button/SwitchPalette!!dark-palette}}
lightPalette={{$:/utility/ui/Button/SwitchPalette!!light-palette}}
>
<$button tooltip="Switch colours" aria-label="Switch colours" class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{$:/utility/images/color-switch}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text">Switch colours</span>
</$list>
<$reveal type="match" state="$:/palette" text=<<darkPalette>> >
<$action-setfield $tiddler="$:/palette" text=<<lightPalette>> />
</$reveal>
<$reveal type="nomatch" state="$:/palette" text=<<darkPalette>> >
<$action-setfield $tiddler="$:/palette" text=<<darkPalette>> >
</$reveal>
</$button>
</$vars>
{{$:/utility/ui/Button/SwitchPalette!!dark-palette}}
* Most color conversion JS code were from https://css-tricks.com/converting-color-spaces-in-javascript/ by Jon Kantner
Today is 12th, March 2021
{
"mood-1": "#BE0F34",
"mood-2": "#DCE5F4",
"mood-3": "#FFFFFF",
"mood-4": "#E5E5E5"
}
Today is 20th, March 2021
The background in primary selector sets the background color of inputboxes
{{$:/plugins/kookma/colorplay/ui/select-color-scheme}}
<$macrocall $name=color-chooser paletteTid=test colorScheme={{{ [<tmpSelectScheme>get[text]]}}} />
\define setPalette()
<$vars newpalette={{{ [<tmpPaletteName>get[text]]}}}>
Set active color palette <$radio tiddler="$:/palette" field="text" value="$:/palettes/Vanilla" > Vanilla</$radio>
<$radio tiddler="$:/palette" field="text" value=<<newpalette>> > <<newpalette>></$radio>
</$vars>
\end
\define getPaletteName()
New palette <$edit-text tiddler=<<tmpPaletteName>> tag=input default="" placeholder="enter a name"/>
\end
\define color-chooser(paletteTid, colorScheme)
Search in selectors <$edit-text tiddler=<<tmpSearchTid>> tag=input default=""/>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[enlist<mainSelectors>sort[title]]" > main selectors</$radio>
<$radio tiddler=<<tmpRadioSelector>> field="text" value="[[$:/palettes/Vanilla]indexes[]sort[title]]"> all selectors</$radio>
<$vars searchTerm={{{[<tmpSearchTid>get[text]]}}} Selectors={{{[<tmpRadioSelector>get[text]]}}}>
<table>
<$list filter="[subfilter<Selectors>] +[search<searchTerm>]" variable=curIndex>
<tr>
<td><$text text=<<curIndex>> /></td> <td><$macrocall $name=setColor tidName=<<__paletteTid__>> indexName=<<curIndex>> /></td>
</tr>
</$list>
</table>
</$vars>
\end
\define setColor(tidName, indexName)
<$list filter="[<__colorScheme__>indexes[]]" variable=mood>
<$button class="tc-btn-invisible" setTitle=<<__tidName__>> setIndex=<<__indexName__>> setTo= {{{ [<__colorScheme__>getindex<mood>]}}} >
<$macrocall $name="circle" color={{{ [<__colorScheme__>getindex<mood>]}}} />
</$button>
</$list>
\end
!! Buttons
* <$button> simple button</$button>
* <$button class="tc-btn-invisible tc-tiddlylink"> button with tc-btn-invisible tc-tiddlylink classes</$button>
; Rev 0.9.2 - Apr 2nd, 2021
* [NEW] Selected color mood in Palette Studio shows a white ring to be recognized
* [NEW] Selected color for a CSS selector in color stripe shows a white cross sign inside to be recognized
; Rev 0.9.1 - Mar 30th, 2021
* [FIXED] minor bug in color viewtemplate
* [NEW] color contrast analyzer
* [NEW] JS macro to calculate the contrast ratio
* [NEW] Palette Browser (by Soren Bjornstad)
; Rev 0.9 - Mar 27th, 2021
* [NEW] JS macro to convert hex to rgb
* [NEW] RGBA Color tools
* [NEW] RGB Colors
* [NEW] RGBA Colors
; Rev 0.8 - Mar 26th, 2021
* [NEW] JS macro to convert rgb to hex
* [NEW] JS macro to convert rgba to hexa (#rrggbbaa)
* [NEW] JS macro to convert hex to hsl
* [NEW] JS macro to convert hexa (#rrggbbaa) to hsla
* [NEW] Wikitex macro to convert extended color name to hex
* [NEW] Wikitex macro to convert extended color name to hsl
* [NEW] HSLA Color tools shows checkerbox for transparency
* [NEW] HSLA Color tools now accpets the extended color names as input
; Rev 0.7 - Mar 25th, 2021
* [NEW] Create a save a new color
* [NEW] JS macros to convert hsla to rgba and hex codes
* [NEW] hsla and hsl color sliders to create new colors
* [NEW] All html extended colors were added. A sidebar tab has been added to select colors easily. Codes are copied to clipboard on click.
* [FIXED] number of colors is limited to 10 in color strip
* [FIXED] several bugs have been fixed
; Rev 0.6 - Mar 20th, 2021
* Improved and semantic UI for creating palettes
* Viewtemplate for color scheme tiddlers
* Better handling of input for creating new palette
* Bug fixes
; Rev 0.5 - Mar 17th, 2021
* Enhanced UI for creating palettes
* Direct switch to user created palette and reset to default palette
* More color schemes
* New UI to create color sccheme
; Rev 0.1 - Mar 12th, 2021
* new blend.js macro to make shades and tints
* new color stripe to choose color
* new
{
"mood-1": "#080706",
"mood-2": "#EFEFEF",
"mood-3": "#D1B280",
"mood-4": "#594D46"
}
!! Code and Code block
This is a single `code` and this is a code block
```
def fun(x):
return 2*x+1;
```
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
display:inline-block;width:20px;
\end
\define sample(color1:#000, color2:#fff, pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<span style=<<b>> > </span>
</$wikify>
</$vars>
\end
\define blend-colors(color, low:"20", high:"60")
<div style="display:flex">
<$list filter="[range[$low$,100,5]]" variable=pct><$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />
</$list><$list filter="[range[10,$high$,5]]" variable=pct><$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> /></$list>
</div>
\end
!! Strip of shade and tint
The below examples show how to create a strip of colors. The example uses shade (mix with black) nd tint (mix with white).
See https://en.wikipedia.org/wiki/Tints_and_shades
<<blend-colors color:"#FFA500">>
<<blend-colors color:"#800080">>
<<blend-colors color:"#20B2AA">>
<<blend-colors color:"#FF0000">>
<<blend-colors color:"#00FF00">>
<<blend-colors color:"#0000FF">>
;Remarks
:This code does not use button!
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
display:inline-block;width:20px;
\end
\define sample(color1:#000, color2:#fff, pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<span style=<<b>> ><small><<pct>></small> </span>
</$wikify>
</$vars>
\end
\define blend-colors(color, low:"00", high:"100")
<div style="display:flex">
<div>
<label style="display:inline-block;width:45px;">Tint: </label><$list filter="[range[100, $low$,-10]]" variable=pct><$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />
</$list>
<div>
<div style="margin-top:4px;">
<label style="display:inline-block;width:45px;">Shade: </label><$list filter="[range[0,$high$,10]]" variable=pct><$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> /></$list>
</div>
</div>
\end
!! Strip of shade and tint
The below examples show how to create a strip of colors. The example uses shade (mix with black) nd tint (mix with white).
See https://en.wikipedia.org/wiki/Tints_and_shades
<<<
<<blend-colors color:"#FFA500">>
<<blend-colors color:"#800080">>
<<blend-colors color:"#20B2AA">>
<<blend-colors color:"#FF0000">>
<<blend-colors color:"#00FF00">>
<<blend-colors color:"#0000FF">>
<<<
;Remaek
:in tint, percent shows percent of color in mix of color+white
:in shade, percent shows percent of black in mix of color+black
See [[Shade and Tints]]
!! Strip of shade and tint
The below examples show how to create a strip of colors. The example uses shade (mix with black) nd tint (mix with white).
See https://en.wikipedia.org/wiki/Tints_and_shades
!! Example i
Click on the color strip and see the return color value. Blend is created fro color: `#800080`
<$macrocall $name="wikitext-example-without-html"
src="""<<blend-colors-stripe color:"#800080" tidName:demo/stripe/sample01 indexName:main-color>>
Show color value: ''{{demo/stripe/sample01##main-color}}''
"""/>
!! Example ii
Click on the color strip and see the return color value. Blend is created fro color: `#9ACD32`.
<$macrocall $name="wikitext-example-without-html"
src="""<<blend-colors-stripe color:"#9ACD32" tidName:demo/stripe/sample02 indexName:main-color>>
Show color value: ''{{demo/stripe/sample01##main-color}}''
"""/>
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
padding:5px; margin-bottom:0px;
font-weight:500;
\end
\define sample(color1:#000, color2:#fff, pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<div style=<<b>> >
<$text text=<<color>> />
</div>
</$wikify>
</$vars>
\end
\define blend-colors(color, low:"10", high:"80")
<!--
low: percentage of color in white
high: percentage of color in black
-->
<$list filter="[range[$low$,100,10]]" variable=pct>
<$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />
</$list>
<$list filter="[range[10,$high$,10]]" variable=pct>
<$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> />
</$list>
\end
This demo shows how `blend` macro generates a table of shades and tints of a given color.
<table>
<tr>
<$list filter="#FF0000 #00FF00 #0000FF #FFFF00 #40E0D0 #800080 #FFA500" variable=color>
<td><$macrocall $name=blend-colors color=<<color>> /></td>
</$list>
</tr>
</table>
\define copy-color-to-clipboard()
<$button class="tc-btn-invisible" style=<<b>> message="tm-copy-to-clipboard" param=<<color>> >
<$text text=<<color>> />
</$button>
\end
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
padding:5px; margin-bottom:0px;
font-weight:500;
width:80px;
\end
\define sample(color1:#000, color2:#fff, pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<<copy-color-to-clipboard>>
</$wikify>
</$vars>
\end
\define blend-colors(color, low:"10", high:"80")
<!--
low: percentage of color in white
high: percentage of color in black
-->
<$list filter="[range[$low$,100,10]]" variable=pct>
<$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />
</$list>
<$list filter="[range[10,$high$,10]]" variable=pct>
<$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> />
</$list>
\end
This demo shows how `blend` macro generates a table of shades and tints of a given color.
<table>
<tr>
<$list filter="#FF0000 #00FF00 #0000FF #FFFF00 #40E0D0 #800080 #FFA500" variable=color>
<td><$macrocall $name=blend-colors color=<<color>> /></td>
</$list>
</tr>
</table>
!! Convert HSL/HSLA to RGB/RGBA
<<<
<$macrocall $name="wikitext-example-without-html"
src="""<<hsl2rgb 0 100 50>>
"""/>
<$macrocall $name="wikitext-example-without-html"
src="""<<hsla2rgba 0 100 50 0.9>>
"""/>
<<<
!! Convert HSL/HSLA to Hex/Hex8
<<<
<$macrocall $name="wikitext-example-without-html"
src="""- <<hsl2hex 0 100 50>>
"""/>
<$macrocall $name="wikitext-example-without-html"
src="""- <<hsla2hexa 0 100 50 0.9>>
"""/>
<<<
!! Convert color name
<<<
<$macrocall $name="wikitext-example-without-html"
src="""<<name2hex red>>
"""/>
<$macrocall $name="wikitext-example-without-html"
src="""<<name2hsl Aqua>>
"""/>
<<<
!! Convert HEX/HEX8 to HSL/HSLA
<<<
<$macrocall $name="wikitext-example-without-html"
src="""<<hex2hsl #FF0000>>
"""/>
<$macrocall $name="wikitext-example-without-html"
src="""<<hexa2hsla #FF0000ff>>
"""/>
<<<
!! Convert RGB/RGBA to HEX/HEX8
<<<
<$macrocall $name="wikitext-example-without-html"
src="""- <<rgb2hex 255 0 0>>
"""/>
<$macrocall $name="wikitext-example-without-html"
src="""- <<rgba2hexa 255 102 125 0.5>>
"""/>
<<<
/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgICAgJCAkKCgkNDgwODRMREBARExwUFhQWFBwrGx8bGx8bKyYuJSMlLiZENS8vNUROQj5CTl9VVV93cXecnNEBCAgICAkICQoKCQ0ODA4NExEQEBETHBQWFBYUHCsbHxsbHxsrJi4lIyUuJkQ1Ly81RE5CPkJOX1VVX3dxd5yc0f/CABEIAeACJgMBIgACEQEDEQH/xAAcAAEAAQUBAQAAAAAAAAAAAAAABAECAwUGBwj/2gAIAQEAAAAA9/AAAAAAAAAAAAAAAAAAAAAAAAAABQVoqoVAAAAAAAAALMOLHbRddkzZbgAAAAAAAApro9mGgArZM2WcqAAAAAAAYef52DudyAC3XE3bbG8AAAAAAKMfNczhJXUAAwwgz7vZ1VAAAAAAppePiA63KAESOBL38yoAAAAAUx8fzwDe7UAIGMBXdbpcAAAAAQuFgAE/owBTWuds21AbDeZ0vS+Ud7ht9FAAACmv4KOALuwy33XC23BrbNLTagM3RSJOt53T5b/RrwAABq+EwAF8qTvJoBGwW4cFAGtyd3K0OryzIUTbQ+vAABTWeI7jaAXTJRP3ABDxlMGCga+Knd5Ds1s+Hgk4epAABg8Q0dek24SJ9Rk6KoCBQKRcRAiDb9veAAAFKeU8KOi3Ss6SBvpIGOGAwRoUIHU9OqAAAU5XxgG/32xzANlLhR8bJIy3AW1gaUC7vdhdF43p5OfKAAYfB9WC7utwBg00HdARa7Tc5zxr0G/XWYAJ3X5ug8z8xnRPoyWAA878xA6baS54t0OltdHlBBoruN9fSFAoxxwOy3+OPnutis0kAUweAwwbjoiTsUTl4w2+xCyGGfp8upoMGIEv0KF55h63JxmSza+jAFOC8rBn7C8SLuWsCXvQwxgNjLCka0Habu4AAKeEaUHT7MNdyO8qDfY7F1l1Rbr6dLKDHHBs+8uAADReFAl9eGHz6PL6C5SJH28oQ6S5l1NdYy9RkCLaD0WYAAHmvm4Ol2ocZoyV0NkG1N2pSEX7CLjGx6AMccI/VdfE5LuAAHh3PBf2tw1/ABk2N5fvzFGESVmY+G6zoZARrcEWHi3np3Q+LavSzN77cAph+fsVtLWz6cOK0otiZd5kN3nR8JEwXbK9El7DoSmHT6y0ZfcLcWXHfA2wCmi8SCm52+Qw+b0EXGyb3K2GyRLEaMZ9gK9VbhxoOrB7Fi4jH11eZsen3BTjPKAbjNXLl1fHC2GL97mzbykJHihs8keLG6TbDBpAendVUEKaCnnvm4N7UaHULaRsAX7uRvkXDDFI9y03fSCnPA7/ALmoAFPMuCC7eBzMERsNLbS7d7yRDhLI2COyzRseuDn7Q7X0OoAFPLOIFb90HKxRDtC210e01MaPiGKRPEzsw0OMOv8ASeD1fV2830UroAPKuJDLuQ5SMIdoKRocrPIyCDB2k0SutDS2B03peq4fPqd7r9z6cB5dwoX7sOXhiLjLIkONbZdJvySJEjKyThO7ENBYHYekauPfsoGp2cTpQp5150Fd6HO60R4cOJgoWK3Z8gvkTtnnNt1IpzwO39C57TRulxabFL7YHD+WA3WQafR0iw4EIFtC9nyBLzVkSOr6Spi0QPQ+1qABTnPGAbWSW63hIlhGoLaKL6s2UunVHcT82bNj1IPU+kuAApE8ABNnR8GKnCRRjwltCi64zZUvMJPeho4MuXKve0zrgADwrVKRIGDpw0PMBhx20FFbxlmSw6ffhymAZ9z9B1AAHlnnECDjOrli3hI4R8QUMgkbG8Z+8vETmAdx7YAAHFfPINp0Qarjwpiw0UF11Zktdcdhtg5/Wg9o7wAAMXyzrwr12cOY0JQpisxjLLlXC67e9SGDlaBm+k5YAAU8b8pBselByGpoDJfauSANn2twc7rwd57PUAAGn+YMYOl2IYOU1YM1QzXBtOhyz6mv50D6B6KoAAHhvmwMnWZjFDarRWDOC/KX77al8+7Dy+MHW+7VAAAan5ijgldTfjhDFptXZdlBXPdtd1lC+ZzcYF3v/RgAAFPJ/HQJvRxaAs10PBhormk7ba3gW6S2oPQfYqgAAFMXzjzAEncZABSitWeSBj0cesio2f0JMqAAAGj+a4gVZNvJAAKzwRNNjK57l3u/VgAAAU4j5+tKhP2V4ACbeWarXgrnu9a9IuAAAAPNPD1QLp8/IACRIx67XWgHp/r1QAAABTzHxWgAlS5WUBiw2xAA9I9jvAAAAA898MxABddlyXLLMVqTUAeqes1AAAAAOW8E1IBWoAZsgCR7P31QAAAAAg+K+egK1AC/OB03tm8AAAAAAOM8Y58FwAEoJ/rHod9QAAAAABZwHlXOC4ADPe2XpXo8qoAAAAAAByvnfCa+oAEztu+7LLWlQAAAAAAAs53k+b0Wqg2LpW03fR9T1WcAAAAAAAABRWzHTJfVRUAAAAAAAAAAAAAAAAAAAAAAAAAAAB//xAAbAQEAAgMBAQAAAAAAAAAAAAAAAgMBBAUGB//aAAgBAhAAAAAAAAAAAAGvz9dtb94AAACjmeC4EBb3vR+o2wAACri8uPm/PhO9d6/2lwAANHz1JoeKZYt3ba3R+idEAAc7zsTM/OW2K6qdWg2/pXWAAVcvjQW7MuToixVydC3q3++6AAI8+NXIsvNThwWXDnxsbn0K0ANTWMaUEafHQW7N9+/r1a7PofUgCPOwzmOjRF5rnL7F22a1Sz6PsAGrqkjHNpzz+MnCO5dFjTw9b6YA59bOWWOfGrzGbVk9uqKiFvW9cAzbRRRBlnOhT5yizYupziV9kEvZzAlsFcKq6YsaPC5uzfmUrrM41D1u2BO8qZkhVVVxfP711sqmctTD1HQAneVMyRWbd3nuLVidJJq4ej3wJbBUzO/Z2bVdfC4yqmmGMah6vdAzskb9rftjDEMRhxuHjGNSOKKY+xuAbu/uzoWzV1MYrcjgYq11k2e8Ad3tI6GM3KsRiizyPOaeF2W70gDY9dlrazORjMIMcTy0bJnZuAHo+oaNZnIxVCvHL8zI2esAF3rbEdGIwNeBLV8nXLsWgA6XpM0RqrICupba0PI724AA6/agYrhWMQsyOPqAADodyQjAZpwY5mgAAC/t7hDAVwUcvXAAANzp7sQQ0tDUAAAAzs3WZhRrRAAAAAAAAP/EABsBAQACAwEBAAAAAAAAAAAAAAAEBQECAwYH/9oACAEDEAAAAAAAAAAAAZ32zppgAAABrwtpmRr1hwdAAADEbgtrUNpbSurcAAA5xNST6IOvXGXCn5AADjFwN77Ildd9hTwgAEDzV/0bb5sJYlbO3XMzHlooAOXjeHf0ErYkWeWZRjtZbo3lNQA83Sl1b7NXotm++HGx7dSnpQBH8XqnXGZWMLuW6bkvs6btPIcwCgoG3od1dZSE+zd98yenRnsUNOAeNhp9uhwNrqT0u9uyX249ds79esfxwDj8426385UaZ72km6k9O3Xrjbtv3ss6fONAK758za9enHfvvmzurXv2dpfXGNrM8BBAqPCNrVrySt9+l17KZ13zKaarPZ4arAqPCNrVpzSXWRa/SJ3KPzltNc2OXjKsCt+fs2udefafL3k3Nxd2TXbjH0zaHg64Dh81wtLCbzzt0kWkqbPsrPvviLpvO46fOOID5/rLt7BDjpVvtN6WW1leuXFYz1b8pAKarb3Oda/e56bTszpGbK5j4zebvJeEAI/m8J85rK6usxJnsSLrNhYMfLKsAUVezayJWxJkN7TTjid6a4yoPmwAcfN6Onoeol9CZub3frN+XyuAACBRLuZnJNEiS7d8zvWeE8uAAq8zhnpKHSz7bCDSAADXQJMrDK36GKmtAABjTBO6hPmI9PGAAAMa4sch2lV0IAAAB02yxrpgAAAAAAAA/8QAURAAAgECAgUHBgkJBgQGAwAAAQIDBBEABQYSICExEBMiQVFhcRQVMDKR0gcjQEJSVYGToVBTVGJykqOxwSQzQ4Ki0SU1c7IWNDZwhMJElNP/2gAIAQEAAT8A/wDaa+CcXxf8vFlHXg1MI+eMGuiHC5wa9epDg15/N/jjy9voD248vb6GPLz1pgV6danArYe0jCzxNwcYBB6/ytfFRmlDT3DzC/0V6RwmaJOmvEpsSRvw9TM3z7eGCSeJJ9GrsvBiMecqlHO8MB2jEWbId0iEeG/EVTDL6jg/lGWaKJS0jhV6yTiq0iiS606Fz9I7hipzOtqbiSYhfor0RyZVJukiP7Q9KxsD4cveMQ5hURWGtrDsOIMzgksH6B7+GAQd4P5LOJJUjUu7hVHEnFbpCoulKt/124YnqJ6hteaQue/+g2KKTm6mM9ROqft9LObJ47UFVNAeg5t2HeMU2ZxSWWToNgH8k1+c09LdE6cvYOrxOKqtqat9aZyexeCjwG3BIJYo37R6SoO9R6CnrZoLAHWT6JxTVcVQOibN2H8jSSJEjPIwVQLknGY55JNeOmJSPrfgx9DlUmtCyH5p/A+klN5Dyb9sMykMpII6xikzMGyT2B6mxcH8h1dZDSRGSVvAdZPYMV+Yz1r3c2QHop6LLZNSpA6nFvRsbA4vck8mc6U5LkqMKmqDTDhBH0nxkukNLX0EdXU1NLA0pZliMq3ROChsedcr+sKX71Medsr+sKX71Medsr+sKX71Medsr+sKX71Medsr+saX71Medcr+sKX71Medcr+saX71MUmkmXQEK+Y0pT/qpgaQ5CRfzxQjxnTC59o8Rc55l4/+RH72Bn2jxG/PcvH/AMiP/fFNV0lXHztLUxTR3trxuHW46rjGl1VUUejGc1NNKY5oqR2R14qRit+ERKnItG6ahzWp86GekWrbUZdcFbOCxw+nccWX6U1YoGvk9WYCBL/fdPVxmen8FFJDDT0HlE4okrJ1NQkIiSQBgoL+u+JPhDppazKqXLcterespUqbPOkFkYlbDX4v8pr6+Kii1n3sfVXrOKmqmqpTJK3gOoDsHo1YqysOINxhAZFVgNzC+BEes4ES4CL2Y1V7MWGLDGqOzBRT1YMS4miIRrEYMbDqxuxm+j2T5zGVrKRWbqkXouvgwxk2TpltBHRSc3MIiwjcoNYpxAbvGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGPJab9Hi/cGIFpYG1mpYGXrBRcU0GVVMQkjpKcj/prjzfl/wChQfdriKGKFdWKNEF72UAC58MZ7lhzfJsxy4TCI1MDRhyL2vjMtDnrdHcgykVwRsulpmMhS4fmFtjNfg5rambP0ps/anos0k5+Wn5gOTLjMvg8Wespa6lqqYVC0cVNMtVSJVRvzS2Dqr+qcZ1oBU5rBQ0T5lSRUkMUSkR0KK6uhu7QsD0A+EUKircmwA3m53fJ8wzGChQF2BdrhEvvY4qKiWplaWVrsfYB2D0SI7+qt8JSji7fYMLGieqoGKJ9aADrU29FOeA5GVTxAw0H0TgqV4j0B3YnmLnVHq/zxRVstHLrpvU+svaMU1TFUxLJGbg/geTSbMJ8syOtrYHRZIwmqzi6rrOFJOMp0kmlrvIp5Uq4pKnmaesgTURyITM48Vta64TTCiIpiKWo1ZYKidn6IEUVM+o7PjJ9I6HNZJokR45EiSazMj3ie4DfFs1ju3qcZbmeaVdFFnk9ZT0+WmJ6gU4iLsIQLhmk1vWtjNdKpkyysaGlno6s0gqaYzKh14tdVJABax6QupwuklOahENJUCmkq2pEqyF5ozqSNXjfiLXxS6XQVaZYY8uqga4sYA5jTXRLXYFm+SZpmUGWUj1M53Dcq9bMeAGMwzOqzCsaqmch79ADgg6gMUGYCoAjkIEv4N6BEZzZRfEdMo3vvPZgAAWA5aB7Ssn0h+I9FKbudi18PCDvXBUg2I2p59boqd3b28tBXSUcusLlD6y9uIZkmjWRCCrC4OM1y6LNKGajldlSQoSV49Fg2MzypK8UjrUy089LKZIZYtUkXUoRZgRYg4ptFMup4o4WeaaMUVRSMshHTSpk5xixGMpyhcrR0SoaZSFVS0caMAvfGqlsQ6NRQLJTR19SMtdZAaFghitKDdAxUuE38AcS6I080M0VTmNXOTTClidyl4ogwYhbKLklRdjhNG6ZKqN/K6g00dW1WlISvNrMxLa17BuJuBiXRanlyigyk1k4pKdFQrZCX1TcEsVup71+RzzxU8LzSuFRFJYngBjPs6lzasMlyIEuIkPUO0955ASCCDY4y/MRNaKU2k6j1NtRU5axbcMKqqLKLDZifUkRuw44+hJuTtEBhYjDxFeHDYqJ73RT4nZynMTSS825+Jc7/wBU9uAb2PyrTHPfKJjl8D/FRn40j5zDq2cvzLX1YZ26XBW7e48oBJsBiGnC723n0FK+vAh6xuPoJTZD6GSEHeOODiontdFPidvI8xuBSytvA6B/p8p0pzrzZQlIm/tM11Tu7W28vzK+rDO2/grn+RwFZiABvxDCIxfi3WfQ5e9ucT7cSVtLH60y37BvP4YfOKYeqjt+GGzo/Ng9rY88z/mk/HHnmf8AMp+OFzo/Og9jYTOac+sjr+OHrqWQKFmW/Ydx/H0COjqGRgyngRvB5KuQeqp6eCCDY7asyMrKSGBuDjLqwVlOr/OG5h38tZUx0dJUVUocpDGzsEUsxCi5sBxOKP4R9Ha2sjo4Yq/n2lRCDTsAhc/Oxk+axZtSyVEdPUwak7wlKiPm2JTrAxX19Jl1JLWVk6w08YBd24Lc2GIpEmiiljbWR0Dqe0MLj5BNKkMTyyEKiKWYnsGM4zOTNK+apa4UnVjXsQcNtEZ2CqCSTYDGW3giWOZ9Zvpf09BPUwwC8jgdg68T5yxuIIwP1mxHWTtOjSSsRexHVv8AQTG74iqJ4f7uRh3YhzhhYTRg964hqYZxeNwe7rGxp3mGm8KSJzIgy7rlpSXuv67cVxQnOUoqRKaly4wCFBFaeSxQLu+Ziarz5Oj5NQX7pn9zHOZ4eNPRffP7mGOdN/8Aj0X3z+5jWznrgo/vX9zGvnH5ij+9f3Ma+cfmKP71/cxr5x+Yo/vX9zGvnH5ij+9f3Ma+cfmKP71/cxr5x+Yo/vX9zFBmGe0c2ssFEQ24hpnA/BMCfSwgWocq/wD2Zf8A+eEm0sDLeiysLcBrVMpNvu+TRf8A9f6d+NJ/2YoA9VkuiUL1EyrNpHNG7I5R9VrAgNiry4Nozp/lic9NDleZo9IjOzmLfZsZ1JkMdBkU9BWwVNHFQgnK5ZZ4i8jsQ7xsvF74oXEtDSSc08WvBG3Nv6yXUdE949Ppxm2pEmXRtvk6Uv7PUPQZdRcynOuPjGH7o5IKjVsrnd1HZeRI1LuwVRxJxVZuzXWnGqPpnjhmZmLMSSeJJueWB+chRu0bZNyT38qkqwKkgjgRuOKXNnWyzjWH0hxHjhJEkUMjAqeBHIQCCCAQRYg4JhpIEhhQIqiyINwUYJLEkm55ZEvvHH0GR1nPQcy56cf4rySOkSPI7BURSzMeAA4nCVeXl6XUmi1qtdaIi15VA1rr27sc1FYARoADcWA3HtxqIC5CKCxu1hxwIYhqgRJ0eHRG7wxFmmXSCjZKuJhVMVgsw+NKi5C+AGKfM8vnqnpYapHmVXYqtzYI/Nt7DhKuleWaJZ0MkTKrprC6s41gD3kekqZ46eCWeRrIilmPcMZhWyV1ZPVScZHvbsHUNvK6PnG59x0VPRHadiCo1LK3q/y5ausipUu29zwUYqaqapfWkbwA4DZy57xuh6jcfbtObKT3bVPUzU760beI6jikrIqlbruYcVOJphEvaTwGGYsxJNydmRbbxt0NUaWqjl6gbN4HAYMARvBxmgLZbXqqliaeQADfclTilyvPYxovztXNPbLZ1ROYEXk7tTgAFlwa3Pqmj/sSZgJocipopNeOVPjlmUT2vxcLjRpa8UFcUqlkDSXp0kWcLFZRcEz9MrfGjgzxXzHy3meaNZPawfWvfdql/mYqcvzGCbMpUo5mTI6k1FEoUnnRUzCd1Ttsl1xJkVXEqAirE8Wjs82vA7ofK3k53inFtY8MZhTVVVXQ1VdBWPBFV5ZK5QS9EPTuHKqn6xF8ZYudtpI5qal4nWsnLIVnKS02/UX80B6PTnMuZo4qFD0pzd/2F26aBqiZYx18T2DCIsaKiiygWGzBOY+i3q/yxW16UyALZpGF1H9Th5HkdndiWPE7VE+pOvY27amPRA79vnjARIrEMOFsU1f5XfXIEg4j/baIvhhY228jquepOaJ6URt9nV8jPDGkNf5fm1TMGuitzafspt5XTc1DzjDpyb/AbWY5glFDfcZG3Iv9TiDMJVlZpmLhzdu0E9YwrKyhlIIO8Ha1ghDXtY4FZEVUi5uL4NYepPaceVydi48rk7FwKw9aDElVEzAG4sMKwYXBB2XYICTh3Z2ucIzIwZTYjgcUlUtRH2OPWG1Itxfs28oqeYrUuei/QP8AT5HpDXGhyiqmBs5XUT9pt23RU/P1CIfVG9vDaqJ46eF5ZDZVGKqpkqp3lkO88B1AdnJS1bQNY70PEf1GEdXUMpuDysyqLk2w9SeCDBJbiScUb60IHWptsubsT34DMu8EjEdURucX7xhWVhdTccjMFBJO7Ekhdrnh1DlhmeGRXXiPxGIpEljV0O47TizEbW8bxiin8opYpfpKL+PyLT6t/wDJ0YPbK38ht5TBqQGQje5/AbWd13Pz8wh+LiO/vbYpap4G7UPEYjkSRA6G4OJJQg7T2Yd2c3J5aF7SMp4MPxGwxsCdhHZDdTiOdHUk7iOOJZDIe4cNnLqjm5ebY9F/wO1KN19p6qBOMgv2DfjRfMEqEqIACNQhhfsbkrqyCgpJ6uoYiKFC7kKWIC9wxRfCLopXVcVJBWTNPJIqBeYk4t6fSmq8pzyrN+jGREP8u1GhkdEHFmAGEQIiqOCgAbOZ1fklI7g9NuinidqKselN1334rhJVmXXVr32I31JEbsOxKbJ4nZkmLEau4DEMokHfyyvzcbuEZ9UX1UF2Phj/AMSVlZm0FGKWWGIPd0UXmfVF7Y84N9XVv3a+9imzx5IlvlWYMw3MREvvY87v9UZl90vv487v9UZl90vv487v9UZl90vv487v9UZl90vv4Obv9T5l90nv486v9VZh90vvYObsBc5XmH3a+9g6QR/V1f8Adr72H0hnPqZZWDxRT/8AbD5tPJ69DXH/ACL72POLfV1b92vvY0ez16TM0bzZXsHUoVWNST7WxBn0k0scRyLNUDsq67xIFW/WbPyQT19NmXwrS5cCapBA0RUXIIR8aPVsSZ5omMlzarrJaqlds3R5XkVehxe/A4yh66lyrRfOkzSuM7595IVaYtHzJbeuritr87qdIs318wgpMxgzXUpefrHhtCGsiJDYq6viWuFN8IiGet84CeuWGGOCqdZKMgWKvDwKeinkWKGSRvVVST4DEshmlkkbi7Fj4sb4KLgpjVPLlMWvU65G5FvtZ7Vc9Wc2D0Ihb/N17LEKCTgksb4hmeFrrw6x24ilSVAynxGxTPrwIesbjyzHeB3bEsut0Rw5FYqQRxGEcOoYctRRU9Q8UroOdjYMkg3MpHJls3Nz6hO59327BYLxIGDOg4XOK2qnWQBSFBGGZ2N2Ynx2aeYwzwyjijq3sN8IwZEYcCL4lljhiklkdURFLMzGwUAXJJ6hgNQRzqU5lJqm7LawaUKL+LYjp6eJnaKCKNn9cogUt42448iotVIxSQBFfXVRGLK3G4HUcSU1LK6SSU0bSL6rsgLDwOJKvI6XMEWWaihrZeioZkWVr/j6LSSfmMlrm7Y9X9/o7WquMrKRRyEg9JuPcMLLG3BhsTzLDDLKeCKThmZ2ZmO9iSdmVrtbqHLDK8LaynxHUcQzJMmsv2js5aB97p9o5ZDd25Zpb3VT4nYp5NV7dR2QSpBHEHCTxtGj6w6Qvg1A6lwZZD18tet41bsO3kc3P5VRuePNgHxXGkaltHc7VQWJy6pAA4kmM4zCi0iR8nPl3PynLq4U3M05haKQ03R36zYrM8zSr6eWSVZQZZTiYlZE1WM4Ex4E66rjR18xbKqpxVQ1JM7Gm1pJHCLYdB3dQzY0dlztmzDy6OER+W1ABDuWBDcFDKOhgZhUZOlVAaRTmsubO7rLA7mpieXoNGy/RTFRLnUVA84qqto5M6qo5y8kirDTpJIECmMFkUkC7DEs2fww5ZEuYyTHNo3o0lRnIhZZC6yAsASyxXBbCrqqAL7hbfvO3ptLqZSifTnUewX24FtCg7uQMy8CRhZ5BxIOFqR1qcZ3UjyLm0O93APgN+LW2HNlJ2Y5XicMp34hnSZbrxHEclO+pMh6r2PITYE8s0vFVPidqN9dFOOGHqYV+dfw34eub5iAeOHmlf1nOMnl16UoeKOR9h37NSutBIO6+3ohJr5XqfQlYegehpXro65o9aeOIxIxJIVWNzqjgCes+g08e0dBH2u7bYFgB3bObPeWJL8Fv7eSwxqDGqcT3FhtRyPGwZTYjEFQky3G5hxHJC+vEjdoxKbKeSWXV6IO/ZLKouSBhqqMcLnENbKdZVsOvDO772YnYyR7TTJ2pf2HZYXUjtG3oW/xNanY6n2j5Bp416mhXsRztJvdR+sNrMmvVv3ADZl3tiwOCgwUOCDyo7IwZTYjFPUrMvYw4jFA90dOw3GJjvAxLJqCw9Y8ryRp6zAYerQeqpOHqZW4G3hgkneTfkhNpBs5S1q6PvDDacWdx3na0Lb+0VidqIfkGnR/4lTf9D+u1D/ex/tDarjerm/a2XPSPjs2BwUGNQ4UuhDC4I4HGV1ivMqnc5FiO3FRKFY9uHqIwSWe5w9Z9FPbh55W4sdmOaKVnVGDahsxG8AnEfrr47NAbVtP+3tTf3sn7R2tDTavqB2w8mmWlVbkdTlNFRrSJLWu48prCVgiCdpXGc6VZ9ki6KvmVTQqtVWOtW9KpljeFeBTFJphkNbk82aQTSvDDMIpFWJzIr8AuoBfFPplo/NQV9capooqJgKlZY3jeMngChGMu03866Z0dDRSsMvfLnmkSWExuJB3tih000dr6sUsFY12WRopHjdIpRD65jdhZrYyPSnJ87neOhM7hULiR4HSN1BsSrNx9Bpz/wAypv8Aof12oP76P9obVYLVU4/XOy3rHbZlUXZgPHD1sC8DrHuw2YyhgY7KQbg8SMDNp5TeU65wlbEeIK4WWN/VdTs19JJVRaiVDR9w4HxxllDUQRSQvLJGVe41dUqwPWCRhKaUuo8sn4/q+7jyWX9OqP8AR7uPJZf06f8A0e7jyWX9On/0e7jyWX9On/0e7iipJjVwAZhUi7jeNT3ceban65rv4PuY821P1zXfwfcx5tqfrmu/g+5jzbU/XNd/B9zHm2q+ua7+D7mJaGcSP/xOqPSO/wCL93HkU/1nVfw/dx5FP9Z1X8P3ceRT/WdV/D93HkU/1nVfw/dx5FP9Z1X8P3caLZZVS10wXOq6K0PFBD/90OKHLamklZ5M4rapSttSYRao7/i0XGldLnVVFBTUmR0GZU7BjNHUvqlW6iuKDQTPaGHRRGMUnkebSVc6q90gR7WRNbEuimlcdJpUKB0glrc3FRHqy6hlg61119QnEfwd55PR6UQtBBSGsNHNTJz7TqGgvdHZsR6PaUZppGmZZtS0tLG2UzULCCTWKa+Mg0GzehqaOKtyxKjyJZuZnNe5iJKkACEjcDjQzR3P8pzaomeEUOWmAqKEVRql50tfXT6HoNO1/tlG3bEw9h2ojaRD+sNqvBFZL3kHZk9c7Dyxp6zAYeviHqgnD1szcCFHdgsWNySTgkDkB3DCPrbjx5FmlT1XYYWtlHEKcLWxH1lI/HCzRPwkHLELyL47OWi9dB4k/htSm8kh7WO1oYP7bVHsiHJPmkcGbUmXyKAJ6aaYSlgAOaZFt9uvjLM/oq6OMvaKR2qyqX1iUpZTEz3w2kGTAUl65LVEcckZs1tSX1GY26IfqviephplRpn1Q8qRLuJu8jBVHtOM6zN8spEmSBZXephgVWfm1vM4QEtY2Avij0oNTWUUD0qxqxrVmbX1wDSam9D85TrYGf5KaeSo8tASORY2DI6uHfeqhCNYk9WINI6V8xqaZyEiC0ggYq4eR6nX6Opa/wAzb0+T/l798g2gbEHazRbVIP0kGzN6wOHqYU4uL9gw+YD5ie3D1U78XIHYMX2l4nkR77jx2VkkT1XYYWtmHGxxTVyFrshFh1YSpgbg4+3dgcuTJesLfRQ7RNyTtaFJeWtfuQcmY5DTZlm1DV1dPTTwQUs8ZimQSdOVkIYBuwLiHRavooaLyGekV4POEWq6NzYhrJecGqF60wmhEsQpw7QzwtR0lNUo8s0a3pk1LqIyAwOM7yGDNfJmZ3V454GuJZEBSN9dhZSN5xneStW5TDQ03NnmqmCUJUFnRxFIHKuTcm+KfRTMaeRZoK6Cnk1K4okKER0zVSoq80vYCl8QaKZtBUvXisgNWs8E0au0sqFo4nicOzm/SD4fRrMnzrz55RAlcqUyqo1jEVTWEqHxB6J2uvGnMWtl0D/QnH4g7cTa0aHtUbObp0IpOwkchIAuSAMPW06cG1j3YfMXPqIB3nE800guzk+hOBuPKj33HjtQrZPHkVmX1WIwtZOvFgfHC14+dH7MZDLCyTS61rkKL4BB4EHYmOrE57FO3oZHalqpPpSgewYHp9KoOeyOr7UAf2HbpGvCB2HYLKvEgYzGVGpJgoLEDWH2YfMJm9WyjDSO5uzE+OwRYkbJN+Qco4DlR+o7CrrMANrLYeZooVI3ldY+Lb8AkbwbYWomX51/HC1h+cnswtTEesjxxVyLzFlYHWIG3orDzeURN1uzN8grYBUUdTCeDxsv7wtggqSDxG1RN0nXtF8NIi8WGGql+apOGnlbrt4ctbB5PVSxdQNx4HZdbi+wTtLsI/UeWFLC54nZo4PKKmKLqJu3gNrNZTzsaA21Rf24SrqU4SE+O/CZk49eMHw3YTMKduJZfEYWWN/UcHwPLlkHk9BSxdaRKD8gO8Yz2mNLm9bFaw50sPB+lykgbybYkrqaP59z2LvxJmr8I4wO9sRV84njd5Dqht44Cx2s8ptaNKhRvTot4bTrY3HDkJ2OrlHEbKPbccRR6xueA2siptVHqGG9+ivhtVMvOzyP1Ft2ylTOnqyt9u/GTzz1eZUdMUVteZR9g3nCiyj5Dp3TpDV01WSFWRCh8VxJmVOnq3c92JMzmb1FCfjh5ZZD03J2KGbnqZCT0h0W8RsuiyIyMLqwscVVO9NO8TdR3HtB4HakQjhw2T6CGEvvO5f54UgADq2aanepnSJes7z2AcTiNFjRUQWVRYbNdNzVO5B3t0R9u3oDRmfOHqCOjBGf3n+RaeZd5do9UlRd6Yidf8vHbyqfUnMRO6T+e1mtF5TDroPjU4d47Ntor71wQRtrw5ACxsAScRU1t7+zlB2MpofJ4eccfGyD2DqG1mU+vMEB3J/M7egND5PlDVDCzVEhb/Ku4fIpI0kjkjcAq6lSO0HGb0D5bmdZRN/hSlV714qdoEqQQbEHFNOJ4UkHHg3iNrN8v5tjURL0CemB1Ht5eGwQDxGDF2HHNuL9HZSKRiLKcJS/Tb7BhUVBZQBsg8mUZfzjColXoKegD1naqZxBCz9fAeOCSSSTvO1TU8lTUQwR+vK6oPFjbFHTR0lLBTxiyRoqjwUW+R/CZlJSalzRE3OOZl8RvU7eW1PMzajHoP8Ageo7RAIIIBBFiMZllzUzGSMEwk/unsPoE6zg2OCiHiowEQcFGAAOA9Dl9Hzzh5QeaB+1u4YTV1VC2CgWFtrMKnnpdVT0E/E9Z29AssNTmT1jjoUy2Xvd/kmd5YmbZXV0T2+MTon6LjepxLFJDLJFKpWSNirKeoqbEbeXVfPx6jH4xB7RtTuNUpYG4sfDFbl5ivJECU6x1jbXcBtId21RZe0tpJQQnEDrbAAAAAAA3AYjkKHu6xhWDC4OxmFVzMeop6bj2D0GjOV+a8op4WFpWGvL+03yX4RsjNJXx5lEvxVTuk7pBtxSvFIsiHeMQTpPEsifaOw7EsmqLDjy1eWpJd4rK/WOo4kjeNirqVPYfRoelsRxvIwVFLE9QxSZYkZDzWZ+odQ2I5GQ3HDrGFYMLg8k86QRl2+wdp7MSSPK7Ox3nb0Nyjzjmqyut4Kazt3t80YAAHyXOcrhzbLamim4SLuP0W4g4q6WejqZ6WdNWWJyjDvG3SVT00msN6n1hiORJEV0IKneDySSBB34JJNzsSwxTLqyICMT5U63MLaw7DuOHR0bVdSp7DyLxG2Nx5ER3bVRSx7BvxBlTtYzNqjsG84ihihXVjQAbSOyG4wZ4xGZGayjjiqqXqJNY7lHqjs21RnZVVSWYgKBxJPAY0aydcpyyKEgc63TlPax+T/CLo9zkYzinTpoAtR3r1P6CirGpn6zGeI/qMc/GYw6MGB4YJJNztvGkgs6Kw78S5VA29GZD7Rg5XUJcqVbDU06cYm9l8EEcQeUAngCcLTVDcIn9lsJls7esVXFNlkGqDIzOR9gwkccYsiBR3egdlRSzGwGJ6tpX3bkHAf74BDbxt6C5GampOYzL8VCbRd7/KJI0lR43UMjKVYHgQeIxpVo++R5k0agmllu8Dd3WvivoIKh4W7V6xiORJF1kNx6Mi+4i+NVfoj2Y1F+iPZgADgAOWA2JHoJZUiUs5sMVFS87b9yjgOQEqcBgw2coyufNa6Kkh697t1Io4nFFRwUVLDTQLqxxqFA+U59ktNnWXS0k25uMT9aP1NivoanL6uakqkKSxNYj+RHaD6COR421lOIKpJQBwfs/wBvkCnVZT37dRVxw3A6T9n++JZXlbWc3OwCRhWDDlRHkdERCzsQqqN5JPAY0XyBMoohrgGpls0rfyUfK9MdFkzql5+AAV0I6B+mv0Dh0eN3jkUq6khlO4gjiD6GGtZbCTpDt68I6SC6MCNkeijN0U7EkiRrd2AGJ692usV1Hb1nbBIwraw5NC9GfJ1XMqxLTMPikPzB8t020P8AL0fMqBB5Wo+MjH+KPewQQSCCCNxHoVZkN1Yg4irzwlX7RhJY5BdGB9LAfWH28kksUYu7gYlzAm4iW3ecM7ObsxJ9CDbfjQ3RZqgxZlXR2i4wxn5/6xwAB8u000LFdr5jlsdqnjLF+d7x+tggqSpBDA2IO4gjq9ECRhKydOJ1h34SvjPrqV/HCzwvbVkHoXnhTjIuBmCK41VJ8dwxJWzvuDBR2Lgkk3J9Hohoeaox5hmMZFPuaKI8ZO9u7AAFrD8gaW6FQ5sHrKELFW9Y4LLieCemmkgniaOVDZkYWIPpQzLwYjwOBUzj/EOPLJ+1fZjy6b6Kew48um+insODWT8bj2YNTOf8Q4ZmbixPieUG4B9FxIAxopoQ1467NY++OnP83wBb8haRaK0Gew3cCKpQdCdePge0YzjJMwyapMFZFa/qON6P3qfRDj6SM7iPQ0tJU1k6U9NC0krcFXGjOhcGWalVW2mq+I+hH4fkWuoKPMKZ6argWWJuKtjSPQGty8vUZdrVFN9DjKnoR6SM2bx9BkOiuZZyyuq81Tdczj/tHXjJ8hy/JoObpYukR05G3u/ifyRn+hWVZxrTKPJ6r86g4/trjOtGM3yViamAtD1Tx9JDt9Q9Lx2cvyyvzKbmqOneVusj1V8TwGMi0ApKUpPmTCom/N/4a4VFUBVAAAsAPyUyq6lWUMpFiCLgg4zn4PMpri0tGTSTdii8Z8Vxm2imeZSWaelLw/noumnyJDdRy5dk+ZZm+pR0jydrcEHixxlHwdQoVlzSbnD+ajuF+1sUtJTUcSxU8KRovBUFh+TtxxmuhuQ5oWd6QQynjJD0DjM/gyzOC70FSlQnUr9B8V2UZplxIrKGaLvZTq/Yw3YHpqKmqauTm6aCWVj1IpbGX6AZ3VWacJSp+udZvYuMs0CySjs86tVSdsnq/u4jijiRUjjVVAsAosB+U2UMCGAI7DvxXaI6PVpJly6JXPzo+g3+nFX8GFA++kr5ou5wHxU/BrnkVzBPTTDxKHE+h2k0HrZY7fsFXxLlGbQX53LapPGJsNHKps0bjxUjkuMBXPBGPgDiLLswmtzVDUv+zExxBoppHP6mVTj9sBP+7FN8HWkUv96KeH9t7/8Abik+C9BY1mZse1YkA/FsUWg2jdJY+R883bMS+IYIKdAkMKIg4KqhR7B+VzsWHZgqp4qMGmpzxhT90Y8lpvzEf7owqIvqooxYdnIP/a3/xAA2EQACAQIDBQYEBgIDAQAAAAABAgMAEQQhMQUQEkFREyAwYXGRIjJCgQYUQFJTYkOhM1Bjsf/aAAgBAgEBPwD/AK+TFYaL/knjX1YVJt3ZUeuLQ+lH8T7IH+cn0BpfxNsg/wCcj1BqPbey5NMXH9zUeIglzjlRvRgf1cuIhiHxuB5VLtbURJ9zW1dq7TOJkRsQwW9wFNqaV3JLMSTzOfdjllRgUdlPIgkVhtu7Sw9rTlgOTZ1g/wAWRNZcTEVP7lrDY3DYpeKGVG9Dn+mklSJSzsAKxG03a6xCw60zMxJY3J5ndtyH4o5QNbg95B8Q3wzywOHikKkaEG1bN/FLArHjBcfvFQzwzoJInDKdCD+jxWMTDi2rnQVNPJM3E7X/APg7m0oe2wkgtmouN9j0qx6boxrWHw0+JkEcMZdjyAqXAYuJ3QwuSDY2BIr8pif4JPY1+UxP8Ensa2fiNpYCTiiik4eakEg1s/HpjIg3AUf6lYW/Q43GiAcK5uaZ2cksbk6k9wA12DOtjkDTbMgjkcNc5nU0uGgXSNRXAg+ke1FEP0g/amw0Laxr7Wo7PgI+G49DS4fFYVxLBIQw0INjU+IxEkrPIxDMbnlma7aT97e9dtJ+9veu1k/e/vWEmxSzI8crAg3vetmbSTGR8LECUDMePJIEHmdKniEwPF83I1JG0bEEb0iLa5CgiroN2OSzq3Ud+SGOUWZb1iMC8d2TNf8AY3RRmRrD7mkRUUAaVDNJDIkkbWINwa2djkxkIYZOMmHisQoJOgp2LsSd0sSyrY/Y9KkiaNrEelRxAZtr3MYnFETzU3oyIurCvzEX7qGIi/dSujHJge5Y2rE4IP8AFHkeYqONY1t778DjHwk6uumjCopUljSRDdWAIPiTvc8PIdxo1cZj0p0KGx3lqkHGjKdCCKdSjsp1BIO+IZmg7LoaSYH5sqB50+MR4I4+wUFSTkMjXaj+JKd1tcQR3rt1/gj9jXbr/BHXbr/BHWxNoXc4ZwFGq28N2CqT0okk37rKGFiKkQprp1oknftKLgxJI0YA74xl674nYEDUHl3JUsbjQ74pGikR1NipBBrCzLiII5RowB8LENov377KrKQRcGpYjGeqnQ7gCa2lh1ZEc8jauzT9tdmn7a7IWFjamQrQuTYVFGFFzqe4QCCKIIJG/wDD2JukkBOnxL4UpvI28d1lDAgi4NSQFD1XdOnaRSL1BtRFsqGo3rAF+LdhsJLiAxWwVQSSTRw0v9fcV+Xk8vcV+Xk8vcVLhZSQRw+4oYPEHRVP3FLs+Y68I+4NbMw5w2JR+uRzHgjUU0UbaqDTYRDoSKbBuPlYGjFIuqmrd0gEWIuKliKG4zG7FR8E7jkTcUoz3Rx2zO4ixpHdDdWIPlVyaWKRtBS4U/U3tTQRhdLkdd6sQwI1FRsHRG6gHwE+Yd0op1UGjh4yeYpsK3JgaMMi/T7VY7iAR5VLCVNxpW04/kf7Gk0qNOZ+24A12LsNLetLhhza/pSxoui0NNxzB7mBbiwsR8reAnzDvDeVU6i9GBDyt6UcN0b3poXA+W4raOEJhew0F7VDCTY2pYGOuVLAo1zoKNAKZSMiLHeN51O/ZpvhE9T4Eeo7w7qwyNohNJgWPzsB6V+Tw4FinF61j9kxpeSFLDmBRw/Rvemhccr+lIXjYEZEdRUk7OS2QJ8hXav1X2Fdq/8AX2FCZ/6+wrtX/r7Cu1f+vsKM8lz8vsK7eTovsK7eT+vsK2cxbCqT1PgJ8w7woC5pMNM/02HU0uBt87X9KSCJNEF+pzNAWomjTC+tY7AWvJEuWpUbiBTRIfp9qOGHJretGBxyvXCRqLbjoe5s8Wwkfnc+ANR3OBi1gCT5UmElbUWHnSYNB8xJpIo1HwoBuYbidxo7sdgL3liGepUVprvJyNHMmrDpXZ8QIva9HDSDSxoxuNVIq2dqgXghjXooHgxRSSgcKk1Hs2Q/OwAqPAQJqCT51LGqhSqgDTIb0PLe2Xfx2z+MGWIZ6laIINjulawt13pz3xwo8iAoDmPC2RLdXi5g3G9l4lIoixI57tDQIIokCtat3CDerbsfs8SAyRCzcxT/AAXvkRyokkk7hQyG/Bp8TN0y8LCzGGdH5aH0NAgrcb5k+offeCRV792wpt5IAraOAGIBkTJxyplKEgixGRB3IvPuQR8Eajmcz4ezMT2kXZk/EuXqN5AIqSMqfI6eCdxcetEk7sfs9MQpZMpBz600bI5VlIIyIPcwsXG4PIZnxMPM0MquOWo6iopFlRXU3BFxvYAg30plsfLu8Rrj8q4/KuKnJ4j3FQsfKsds9MQl1sHAyPWpInjdkdbEag7lUsQALk1DGI0A9/F2fjOwfgc/A3+jQIOYo0zX9NxTp4Eg0O4ClTrvx2BjxSZZONGqWGSGRkdbEVhYOEcbD4jp5Dx8Bj+C0Up+H6WPKmfi007hAPKjGeRpgRy7pUkHKhH1NAAaDu44wyMo4AWB+b9DhMcYrI+acjzFI6uAVNweY7rVYdK4V6Vwr0qw3HInuEgC50rE4u90jOXM/o4MTLAbqbjmDoagxsUoAvwt0PcJ7z6jfLiI4xmc+gqbESSnoOn6aHHTR2BPEvQ1FtCB8mPCfOldWF1Nx5Z99yApvyp8XEn1XPQVJjJHyX4RRJJuf1Ku6ZqxB8jakxuIX67+tLtKTmoNDaX/AJf7o7T/APKjtJ+SAepvTY7EN9QHoKaR2+ZyfU/9p//EADQRAAIBAgUCBAQFBAMBAAAAAAECAwARBBAhMVESQQUTIGEwMnGRIkBCgaEGUmJjFCNQNP/aAAgBAwEBPwD/AM8Kx2BNCGQ/oNDDy8V/x5eKMUg/SasRuPzZZV3NNP8A2j71hVjeJW6RfvQAHpKg9r02EhYfLY8ipMAw+Rr+xp43Q2ZSD+WJAGptTzE/LoKJOXhsmjpxqPUguwzZEcEMLj3qbA7mM/saZWUkMLEfk3kCDk0zFjcn0YR+idODofVENSad1QXZgB70siMAeoWNda/3Cutf7hUscMq2ZhfsamiMTWuCOxH5GSULoDdqJJNz6VBBvtUcpZFPIq55zueaidgvN6LI4sy/elRAoAGgrpHArpHArpXgfahAst1Kix30rGYN8O2mqHY/Hx2MGGj01c7CosXKkpcte5uwNRTJKgZTcfyMwpNAAZYV7oV4PpUWAyBI2NLIDvoclUsbCkUKLCpI0lRkYXU7isVhmw8nTup1U/FllWKNnY2AF6xE7Tys7d9hwMoJ5IXup07ioJkmUMp+o4NBfRhm6ZAOx0qx4rpPFdJ4pVPUNPTEWJC70ihRpnisOuIiZDvuDwadGR2VhYg2PxPF8V1uIVOi6t6MDC0I6zu3alYNnelcqyt3BvSEMoI2Ivmm+RGSQsZDZib0kAUfOb96VT/e1q8v/Y1eX/savL/2NXieFsBMpJOzX+HiZhDC7nsNKdi7libkm5zwUHW3Ww0G3ucgSNRSuGFE54J+qEDuNM02ztf61CgQX3JzQ5uiyIyMLhhY1NGYpXQ7g2+F4zN8kIP+RzRS7Ko3JtUaCNFUbDIkAHinxL+YCpsBtUE6zLww3GeBfpdl5FXPNXPNKbAUCDkidI96BtmNDQz8Whs6Sgb6H4WPl83FSG+gNhngI7uz8aDPFSWsg76nJHZGDKbEVh5xKvDDcZRN0yIeDQN6XcZxADffKWZYyoO50ApZV5/ivMTn+K8xOf4pZk5/ig4O1z+1KoO5t+1eIwRPg5LElgOoacfBncRwyvwpNGV+ot1HWhiGG4BoYhe4IrBPEIVs4ubmgaJAFOxZ2OQFzSkqQQbEVBOJBY6Nlh364kPcaGkyRLanfJTcUVDaEXFCgpPahHyagRA63F780AtWFOoZGU7HQ1KhSSRDurEfA8VfowE55FsxSCygcCllkXZyKOMl6CCQb6UJh3FB1Pek2+uQJBBBsRUGIDjpbRqwT/Mn70m1Inc5AEmo4nJ2tfmhhx3a/wBKWNF2WjuckNmB4NDPxJOjHTj/ADv8Dxs2wEn1Ga/MPqKGT7ZqSANaEjDvehLyKWUXuDY14fjB5qBjqdL1DESBpelhY76UsKjfWgFHa1IwJBBuL5tkKU6D6DPxkWx8nuAfgeN//BJ9RmvzL9Rm+2Y2GSxSNsppMId2a30rA4BOtXIO+l6wUsUiIjixtoRRw3Dfemgcdr/SpIutSrqbGosOqKqi5A21ryk4P3ryk4P3pok4P3ry04P3ry04P3pYEsNDsO5ryY+D9zXkx8H7mvGAFxzgbAD4HiydeAn9gDmN6XVQecm2oAmkw8rfpsPeosILDqb7UkUabKMsPAXNzsKhUdQ00ArDPoQO1YXFXskh17HKwoQozbfajhh2b702Hcdr/SmUgm4tkupFDbPxZurHz+xA+BiU8zDypyhFMLEjPDq7otlJO2gqPATPuAo96Tw6ID8TFjQiRCQFAtkpyghMjcKNzQAAAAsBUA0JqBrOPfTLC4q1kkOnY1vUYsMu1HUmiiH9NQYUPKoBt3psLINrGmjdd1IomwuaxT+ZiJX5cn4ONwki4yZFQkdRI4saTAOdWYCkwcK7i596wRVboAANxbOdLHq7HOCNpWtsBuaVQqgAWAyjFkWgbEHilNwDzlg8VYhJDp2NA3GmUjduc8EmjP8AsM/FGjgwOIkKi4Q2+p+F4lFZlk50Ocb9Dq3FKwIBGxyZQwIOxpkKMQahiaRrD9zUaLGoAG1A0upA5oZYc3S3FWyweNMZCObjsa6x03vpRJJyUFiANzUadCKo7Z/1VigsEOHB1c9R+g+FiYhLEy99xRBBsc8LN+gn6ZtEJNO/NRRLEoA/c85wi7j2zwzWcjkZkgVhscyEI+q9qVgwBBuDlhIf1kfTMkAXNeMYw4zHyyA3UfhX6D4ePg6JOsD8LfwcwSCCNxUEwkX3G9AEm1IoUe/ogGjHNDZ1PBq4tRkA21NEk75YTFtCeltVNYSMTkMDdeaAAAAGgz/qHxAYXBmNGtJJdRyB8SaJZY2U99qkRo3ZWFiM4uvzF6N+1RKQov8AN39MeiCur2rq9q6jUTlkFztp6EQsfasBjWwpCnWM7jio5UkRWVrg7EZTTJDE8jtZVBJJrxPHPjsU8zbbKOAPi43DeavWo/EKItSqWIAFyawuGES3OrHf29I1NDb0QHcfvlqaSLn7UAAMsFjnwr8odxUU0csYdWupr+ofF/8AkOcNC3/Wh/ER3Px8Zg+q8kY17isJhRGOph+I+m9R6sPTHcOtLFyaVFXYenEeJyxI8EMhAYWYj8iR6sONz+1WFWHFWHFWGUTdUan29DMFFydKxWNvdIzp3P5MgGiCPRCtkHvr6sI11ZeNc5sTFENTrwKnxUkx4XgfliBVjQBJpRYAceqCQJICTYHSpMZCmzXPAqXHSvcL+Ee1EknU6/mhIw70JjxXnf4153+NGY8UZX5tRYnc/wDqf//Z
{{$:/plugins/kookma/colorplay/ui/create-new-palette}}
---
''Edit and test user palette''
<$list filter="[<tmpPaletteName>get[text]minlength[1]]" variable=null emptyMessage="Select a user palette to edit">
{{$:/plugins/kookma/colorplay/ui/switch-palette}}
<$macrocall $name=color-chooser-stripe paletteTid={{{ [<tmpPaletteName>get[text]] }}} colorScheme={{{ [<tmpSelectScheme>get[text]] }}} />
</$list>
\define newColorScheme()
<$action-createtiddler $basetitle=<<scTitle>> tags="scheme" type="application/json" description=<<scDescription>> />
<$list filter="[range[1,$(numColorMoods)$]]" variable=num>
<$action-setfield $tiddler=<<scTitle>> text={{{ [<tmpTid>get[text]] }}} />
</$list>
<$action-deletetiddler $tiddler=<<tmpTid>> />
\end
\define tmpTid() xx$:/temp/color-scheme
\define numColorMoods() 4
\define dispcolor()
<$list filter="[<colorScheme>indexes[]]" variable=mood>
<$macrocall $name=circle color={{{[<colorScheme>getindex<mood>]}}} />
</$list>
\end
\define setMood(schemeTiddler)
<$list filter="[range[1,$(numColorMoods)$]]" variable=num>
<$edit-text tiddler=<<__schemeTiddler__>> index={{{ [[mood-]addsuffix<num>] }}} type="color" tag=input />
</$list>
\end
''Create color scheme''
A color scheme is the choice of colors used for design context. All elements get their colors in form of shades, tints and tones of these main colors.
<div class="colorplay">
<label for="title">Title: </label>
<$edit-text tiddler=<<tmpTid>> field=name tag=input default=""/>
</div>
<div class="colorplay">
<label for="description">Description: </label>
<$edit-text tiddler=<<tmpTid>> field=description tag=input default=""/>
</div>
<div class="colorplay">
<label for="moods">Color moods: </label>
<$macrocall $name=setMood schemeTiddler=<<tmpTid>> numMoods=<<numColorMoods>> />
</div>
<$vars scTitle={{{ [<tmpTid>get[name]] }}}
scDescription={{{ [<tmpTid>get[description]] }}}
disabled={{{[<tmpTid>get[name]!is[blank]then[no]else[yes]] }}} >
<div class="colorplay">
<$button actions=<<newColorScheme>> disabled=<<disabled>>>Create</$button>
</div>
</$vars>
''Color schemes''
<table>
<$list filter="[tag[scheme]]" variable=colorScheme>
<tr>
<td><$link to=<<colorScheme>> /></td>
<td><<dispcolor>></td>
</tr>
</$list>
</table>
This section conatins
<<list-links "[tag<currentTiddler>]">>
Demo and example of [[coloraction plugin|$:/plugins/telmiger/ColorAction]]:
<<list-links "[tag[coloraction]]">>
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="brighten" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
<<show bcolor:"#ff0000" min:0 max:100 inc:10>>
;Remarks
: works with rgb function
: works with hex color code
\define show(bcolor)
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="complement" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
Example of complement
<$list filter="red blue green yellow black white purple " variable=currentColor>
<$macrocall $name=show bcolor=<<currentColor>> />
</$list>
!! With alpha
Complement with alpha=0.3
<<show bcolor:"rgba(200, 20, 20, .3)">>
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="darken" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
<<show bcolor:"#ff0000" min:0 max:50 inc:5>>
;Remarks
: works with rgb function
: works with hex color code
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="desaturate" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
Saturate
<<show bcolor:"rgb(204, 102, 102)" min:0 max:100 inc:10>>
;Remarks
: works with rgb function
: works with hex color code
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="lighten" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
<<show bcolor:"#ff0000" min:0 max:100 inc:10>>
;Remarks
: works with rgb function
: works with hex color code
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="black" value={{{[<tmpTid>get[text]]}}} action=mix/>"""
/>
\end
Mixing colors
<<show "yellow" min:0 max:100 inc:5>>
This example mixes with black
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="saturate" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
Saturate
<<show bcolor:"rgb(99, 100, 100)" min:0 max:100 inc:10>>
;Remarks
: works with all colors, but it is important what you pass
\define show(bcolor, min, max, inc)
<$range tiddler=<<tmpTid>> min="$min$" max="$max$" increment="$inc$" class=radioClass/> <$text text={{{[<tmpTid>get[text]]}}}/>
<$macrocall $name=colorbox
newcolor="""<$macrocall $name=coloraction color="$bcolor$" mod="spin" value={{{[<tmpTid>get[text]]}}} action=toHexString/>"""
/>
\end
Spin color wheel
<<show "yellow" min:0 max:360 inc:10>>
\define tmpTid() xx$:/temp/$(currentTiddler)$/color-value
\define colorBoxStyle()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
\end
\define colorbox(newcolor)
<$wikify name=color text=<<__newcolor__>> >
<$wikify name=divstyle text=<<colorBoxStyle>> >
<div class="colorbox" style=<<divstyle>> >
<$text text=<<color>> />
</div>
</$wikify>
</$wikify>
\end
This section conatins
<<list-links "[tag<currentTiddler>]">>
<<tree $:/plugins/kookma/colorplay/>>
<<dbadge Tiddlywiki 5.1.23+ primary>> <<dbadge License MIT success>> <<dbadge Release "{{$:/plugins/kookma/colorplay!!version}} 0.9" warning>> <<dbadge Status "In progress" danger>>
* Colour Contrast Checker: https://colourcontrast.cc/010101/a9a9a9/
* Web AIM Contrast Checker: https://webaim.org/resources/contrastchecker/
* A wonderful contrast checker
** code: https://github.com/leaverou/contrast-ratio
** demo: [[https://contrast-ratio.com/#]] [5 Stars]
* Color contrsat tools: https://www.webaxe.org/color-contrast-tools/
* https://color-contrast-checker.deque.com/ (enter you color scheme and it produces all combinations)
A colour palette is a [[data tiddler|https://tiddlywiki.com/#DataTiddlers]] that supplies a CSS colour value, such as ''yellow'' or ''#fe0'', for each of several colour names, like this:
```
page-background: #fe0
table-border: #ccc
...
```
Several palettes form part of the core. The system tiddler [[$:/palette]] always contains the title of the currently selected palette tiddler. You can change a palette using the <<.icon $:/core/images/palette>> ''palette'' button, found on the "Tools" tab in the sidebar.
To retrieve the value of a named colour from the current palette, e.g. for use in a stylesheet tiddler, use the <<.mlink colour>> macro:
```
<<colour page-background>>
```
Palette tiddlers should have the following fields:
|!Name |!Value |
|title |Typically starting with `$:/` |
|type |`application/x-tiddler-dictionary` |
|tags |`$:/tags/Palette` |
|name |Displayed in the palette browser |
|description |Displayed in the palette browser |
|text |`name: value` colour definitions |
This section conatins
<<list-links "[tag<currentTiddler>]">>
\import [all[tiddlers+shadows]tag[$:/tags/Macro/Toc]]
<<toc-ui tag:"contents" stateTiddler:"20210328143800">>
\import [all[tiddlers+shadows]tag[$:/tags/Macro/Toc]]
<!-- customized class is used for buttons -->
<style>
.colorful-btns{color:dodgerblue;}
</style>
<!-- Call navigator -->
<<multilevel-toc-navigation tag:"contents" close:"yes" class:"kk-toc-navigation colorful-btns" stateTiddler:"20210328143800">>
Color 1 (Hex): <$edit-text tiddler="xx$:/temp/hexcolors" field=hex1 tag=input defualt=""/><br>
Color 2 (Hex): <$edit-text tiddler="xx$:/temp/hexcolors" field=hex2 tag=input defualt=""/>
<small>Only three or six digits hex color accepted. No opacity can be evaluated</small>
<$macrocall $name=contrastbox fcolor={{xx$:/temp/hexcolors!!hex1}} bcolor={{xx$:/temp/hexcolors!!hex2}} />
<table>
<tr><th>Criteria</th><th>Results</th></tr>
<$wikify name=ratio text="""<$macrocall $name=contrast hex1={{xx$:/temp/hexcolors!!hex1}} hex2={{xx$:/temp/hexcolors!!hex2}}/>""" >
<$list filter="[<ratio>!is[blank]]" emptyMessage="<tr><td colspan=2>wrong colors input</td></tr>">
<tr><td>value</td><td><$text text={{{[[1]divide<ratio>fixed[2]]}}} /></td></tr>
<tr>
<td>AA-level large text (3:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.33333]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AA-level small text (4.5:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.22222]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AAA-level large text (4.5:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.22222]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AAA-level small text (7:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.14285]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
</$list>
</$wikify>
</table>
<<details sum:"WCAG Levels for Readability" src:"{{WCAG Levels for Readability}}">>
;Other tiddlers
: [[macros/contrast-box]]
;Inspect element in Chrome/Edge
The contrast ratio of the text (how well, or how poorly, does the foreground text contrast with the background color) can be checked using the Chrome/Edge inspect element of DevTools
<<image-pretty img:"Inspect Element of DevTools.png" width:400px caption:"Inspect Element of ~DevTools Chrome/Edge browsers" align:right>>
Here’s how it works. When you use Inspect Element — what is arguably the most common use of DevTools — you now get a tooltip with additional information on accessibility.
;Ref
:https://css-tricks.com/whats-new-in-devtools-2020/#a-better-inspect-element
{
"mood-1": "#003B46",
"mood-2": "#07575B",
"mood-3": "#66A5AD",
"mood-4": "#C4DEF6"
}
* colour or color macro: $:/core/macros/CSS
** if the color is not existed in the active palette, it is retrived from Vanilla palette
Today is 12th, March 2021
It mat worth to create a plugin from color play
{
"mood-1": "#46211A",
"mood-2": "#693D3D",
"mood-3": "#BA5536",
"mood-4": "#A43820"
}
{
"mood-1": "#131313",
"mood-2": "#2B2B2B",
"mood-3": "#86868B",
"mood-4": "#1551F0"
}
\define tmpTid() temp/$(currentTiddler)$/$(color1)$
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
padding:5px; margin-bottom:0px;
font-weight:500;
\end
\define sample(color1:"#000", color2:"#fff", pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<div style=<<b>> >
<$text text=<<color>> />
</div>
</$wikify>
</$vars>
\end
\define show(colorScheme)
<$list filter="[[$colorScheme$]indexes[]]" variable=color>
<$vars color1={{{[[$colorScheme$]getindex<color>]}}}>
<$vars pct={{{ [<tmpTid>get[text]] }}} >
<$range tiddler=<<tmpTid>> min="0" max="100" default="0" increment="1" class=cls/> <$text text=<<pct>> />
<$macrocall $name=sample color1=<<color1>> color2="#000" pct=<<pct>> />
</$vars></$vars>
</$list>
\end
!!Warm Pastels and Nile Blue
<<show "Warm Pastels and Nile Blue">>
!!Shades of Purple
<<show "Shades of Purple">>
<style>
.cls{width:50%}
</style>
\define cc() color:<<hsla2hex 0 100 50 0.33>>;
<div style="background-color:white">
<div style="padding:20px;text-align:center;font-weight:500;
background-color:hsla(0, 100%, 50%, 0.33)">
TEST
</div>
</div>
-<<hsla2hex 0 100 50 0.33>>
<div style="background-color:white">
<div style=<<cc>> >
TEST
</div>
</div>
{
"main-color": "#c080c0"
}
https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools
Every modern web browser includes a powerful suite of developer tools. These tools do a range of things, from inspecting currently-loaded HTML, CSS and JavaScript to showing which assets the page has requested and how long they took to load. This article explains how to use the basic functions of your browser's devtools.
This section conatins
<<list-links "[tag<currentTiddler>]">>
!! Drop down
This is a dropdown <<tag "Sample Tiddler">>
If you like to export and share with others
# open the newly created palette tiddler
# from tiddler view toolbar click on drop down list
# select `Export tiddler` to save the tiddler on your machine
# send the palette file to anybody you like
{
"external-link-foreground": "#F35F1C",
"foreground": "#693BCC",
"page-background": "#693BCC",
"sidebar-foreground": "#20123A"
}
{
"mood-1": "#4CB5F5",
"mood-2": "#B7B8B6",
"mood-3": "#34675C",
"mood-4": "#B3C100"
}
{
"mood-1": "#01B636",
"mood-2": "#3BD16F",
"mood-3": "#74E39A",
"mood-4": "#E3E3E3",
"mood-5": "#989898"
}
alert-background: #cc241d
alert-border: #cc241d
alert-highlight: #d79921
alert-muted-foreground: #504945
background: #3c3836
blockquote-bar: <<colour muted-foreground>>
button-foreground: <<colour page-background>>
code-background: #504945
code-border: #504945
code-foreground: #fb4934
diff-delete-background: #fb4934
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #b8bb26
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #fb4934
download-background: #b8bb26
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: #665c54
dropdown-border: <<colour background>>
dropdown-tab-background-selected: #ebdbb2
dropdown-tab-background: #665c54
dropzone-background: #98971a
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #d3869b
external-link-foreground: #8ec07c
foreground: #fbf1c7
menubar-background: #504945
menubar-foreground: <<colour foreground>>
message-background: #83a598
message-border: #83a598
message-foreground: #3c3836
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #504945
modal-footer-background: #3c3836
modal-footer-border: #3c3836
modal-header-border: #3c3836
muted-foreground: #d5c4a1
notification-background: <<colour primary>>
notification-border: <<colour primary>>
page-background: #282828
pre-background: #504945
pre-border: #504945
primary: #d79921
select-tag-background: #665c54
select-tag-foreground: <<colour foreground>>
selection-background: #458588
selection-foreground: <<colour foreground>>
sidebar-button-foreground: #86340f
sidebar-controls-foreground-hover: #7c6f64
sidebar-controls-foreground: #504945
sidebar-foreground-shadow: transparent
sidebar-foreground: #fbf1c7
sidebar-muted-foreground-hover: #7c6f64
sidebar-muted-foreground: #504945
sidebar-tab-background-selected: #bdae93
sidebar-tab-background: #3c3836
sidebar-tab-border-selected: #aa4314
sidebar-tab-border: #bdae93
sidebar-tab-divider: <<colour page-background>>
sidebar-tab-foreground-selected: #282828
sidebar-tab-foreground: #fab799
sidebar-tiddler-link-foreground-hover: #458588
sidebar-tiddler-link-foreground: #98971a
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #B48EAD
tab-background-selected: #ebdbb2
tab-background: #665c54
tab-border-selected: #665c54
tab-border: #665c54
tab-divider: #bdae93
tab-foreground-selected: #282828
tab-foreground: #ebdbb2
table-border: #7c6f64
table-footer-background: #665c54
table-header-background: #504945
tag-background: #d3869b
tag-foreground: #282828
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #7c6f64
tiddler-controls-foreground-selected: <<colour primary>>
tiddler-controls-foreground: #665c54
tiddler-editor-background: #32302f
tiddler-editor-border-image: #282828
tiddler-editor-border: #282828
tiddler-editor-fields-even: #504945
tiddler-editor-fields-odd: #7c6f64
tiddler-info-background: #32302f
tiddler-info-border: #ebdbb2
tiddler-info-tab-background: #ebdbb2
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #7c6f64
tiddler-title-foreground: #a89984
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #504945
very-muted-foreground: #bdae93
wikilist-background: <<colour page-background>>
wikilist-button-background: #acacac
wikilist-button-foreground: <<colour button-foreground>>
wikilist-item: <<colour background>>
wikilist-toolbar-background: <<colour background>>
wikilist-toolbar-foreground: <<colour foreground>>
wikilist-title: <<colour foreground>>
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: <<colour muted-foreground>>
wikilist-button-open-hover: <<colour primary>>
wikilist-button-open: <<colour dropzone-background>>
wikilist-button-remove: <<colour dirty-indicator>>
wikilist-button-remove-hover: <<colour alert-background>>
wikilist-droplink-dragover: <<colour dropzone-background>>
wikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>
wikilist-button-reveal-hover: <<colour message-background>>
{{Colorplay Status}}
; Colors are fun to play
<div style="float:right;width:64px">{{$:/favicon.ico}}</div>
Color play has tools and demos for working with colors and palettes in Tiddlywiki. It can be used to
* create new colors
* work with html extended color names
* create new palettes
* edit current user palettes
* explore in all css selectors and colors
To give a try, get your hands on [[Color Palette Studio]]
;Remark
: To edit and customize the core palettes first create a clone and tag it with `colorplay`.
;Export and share
: Create a new palette
: Customize colors as much as you like
: Drag and drop the newly created palette to your wiki of choice
: You can also [[Export and Share]] with others
<<details sum:"Change log" src:"""{{Change Logs}}""">>
HSL stands for hue, saturation, and lightness.
!!HSL Color Values
HSLA color values are an extension of HSL with an Alpha channel (opacity).
In HTML, a color can be specified using ''hue'', ''saturation'', and ''lightness'' (HSL) in the form:
```
hsl(hue, saturation, lightness)
```
* ''Hue'' is a degree on the color wheel from 0 to 360. 0 is red, 120 is green, and 240 is blue.
* ''Saturation'' is a percentage value, 0% means a shade of gray, and 100% is the full color.
* ''Lightness'' is also a percentage value, 0% is black, and 100% is white.
;Some color codes
:Hue is specified in degrees (imagine a color wheel) where 0° – red, 60° – yellow, 120° – green, 180° – turquoise, 240° – blue, 300° – pink, and 360° – red
!! HSLA Color Values
HSLA color values are an extension of HSL color values with an ''Alpha'' channel - which specifies the opacity for a color.
An HSLA color value is specified with:
```
hsla(hue, saturation, lightness, alpha)
```
* The ''alpha'' parameter is a number between 0.0 (fully transparent) and 1.0 (not transparent at all).
;Ref
:[[w3school|https://www.w3schools.com/htmL/html_colors_hsl.asp]]
\define tmpTid() xx$:/temp/hsl
\define hslcolor() hsl($(hue)$, $(saturation)$%, $(lightness)$%)
\define hexcolor() <<hsl2hex $(hue)$ $(saturation)$ $(lightness)$>>
\define rgbcolor() <<hsl2rgb $(hue)$ $(saturation)$ $(lightness)$>>
\define divstyle()
background-color:$(hslcolor)$;
color:<<contrastcolour target:"$(hslcolor)$" colourA:black colourB:white>>;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
<!-- display the hue, saturation, lightness and alpha slider -->
{{$:/plugins/kookma/colorplay/ui/hsl-sliders}}
<div style="width:400px;max-width:100%;">
<$vars hue={{{[<tmpTid>get[hue]]}}}
saturation={{{[<tmpTid>get[saturation]]}}}
lightness={{{[<tmpTid>get[lightness]]}}} >
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>>>
<<hslcolor>>
</div>
</$wikify>
<!-- buttons to copy the color -->
<small>Click to copy to clipboard</small>
<$macrocall $name=copy-color-to-clipboard color=<<hslcolor>> />
<$wikify name=HexColor text=<<hexcolor>> >
<$macrocall $name=copy-color-to-clipboard color={{{[<HexColor>addprefix[#]]}}} />
</$wikify>
<$wikify name=RgbColor text=<<rgbcolor>> >
<$macrocall $name=copy-color-to-clipboard color=<<RgbColor>> />
</$wikify>
</$vars>
</div>
<<details sum:"HSL and HSLA Color Values" src:"{{HSL and HSLA Color Values}}" status:closed labelClass:"bg-secondary text-white">>
<div style="display:flex; max-width:100%; flex-wrap: wrap; flex-direction: row;">
<<colorbox2 "hsl(0, 100%, 0%)">>
<<colorbox2 "hsl(0, 100%, 25%)">>
<<colorbox2 "hsl(0, 100%, 50%)">>
<<colorbox2 "hsl(0, 100%, 75%)">>
<<colorbox2 "hsl(0, 100%, 90%)">>
<<colorbox2 "hsl(0, 100%, 100%)">>
</div>
<div style="display:flex; max-width:100%; flex-wrap: wrap; flex-direction: row;">
<<colorbox2 "hsl(0, 0%, 20%)">>
<<colorbox2 "hsl(0, 0%, 30%)">>
<<colorbox2 "hsl(0, 0%, 40%)">>
<<colorbox2 "hsl(0, 0%, 60%)">>
<<colorbox2 "hsl(0, 0%, 70%)">>
<<colorbox2 "hsl(0, 0%, 90%)">>
</div>
\define tmpTid() xx$:/temp/color-name-to-hsla
\define select-extended-colors(tmpTid:"xx$:/temp/colorname")
<$select tiddler=<<__tmpTid__>> default='aliceblue' actions=<<myactions>> >
<$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]indexes[]]">
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
\end
\define myactions()
<$wikify name=hexcolor text="""<$macrocall $name=name2hex color={{{[<tmpTid>get[text]]}}} />""">
<$wikify name=hslcolor text="""<$macrocall $name=hex2hsl H=<<hexcolor>> />""" >
<$vars h={{{[<hslcolor>split[,]nth[1]removeprefix[hsl(]]}}}
s={{{[<hslcolor>split[,]nth[2]removesuffix[%]]}}}
l={{{[<hslcolor>split[,]nth[3]removesuffix[%)]]}}} >
<$action-setfield $tiddler=<<tmpHslaTid>> $field="hue" $value=<<h>>/>
<$action-setfield $tiddler=<<tmpHslaTid>> $field="saturation" $value=<<s>>/>
<$action-setfield $tiddler=<<tmpHslaTid>> $field="lightness" $value=<<l>>/>
<$action-setfield $tiddler=<<tmpHslaTid>> $field="alpha" $value=1.0 />
</$vars>
</$wikify>
</$wikify>
\end
Choose a color from the list of html extended color names and edit it using the HSLA color tools.
<br>
<$vars tmpHslaTid="xx$:/temp/new">
Select an extended color name: <$macrocall $name=select-extended-colors tmpTid=<<tmpTid>> />
{{HSLA Colors}}
</$vars>
\define hslacolor() hsla($(hue)$, $(saturation)$%, $(lightness)$%, $(alpha)$)
\define hexcolor() <<hsla2hexa $(hue)$ $(saturation)$ $(lightness)$ $(alpha)$>>
\define rgbacolor() <<hsla2rgba $(hue)$ $(saturation)$ $(lightness)$ $(alpha)$>>
\define divstyle()
background-color:$(hslacolor)$;
color:<<contrastcolour target:"$(hslacolor)$" colourA:black colourB:white>>;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
\define createNewColor()
<$action-createtiddler $basetitle="New Color" $savetitle=<<saveTid>> tags=color
hexcolor=<<HexColor>> hslacolor=<<hslacolor>> rgbacolor=<<RgbaColor>>/>
<$action-navigate $to={{{[<saveTid>get[text]]}}} $scroll=yes/>
\end
<!-- display the hue, saturation, lightness and alpha slider -->
{{$:/plugins/kookma/colorplay/ui/hsla-sliders}}
<$vars hue={{{[<tmpHslaTid>get[hue]]}}}
saturation={{{[<tmpHslaTid>get[saturation]]}}}
lightness={{{[<tmpHslaTid>get[lightness]]}}}
alpha={{{[<tmpHslaTid>get[alpha]]}}} >
<div class=colorbox-container>
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>> >
<<hslacolor>>
</div>
</$wikify>
</div>
<!-- buttons to copy the color -->
<small>Click to copy to clipboard</small>
<$macrocall $name=copy-color-to-clipboard color=<<hslacolor>> />
<$wikify name=HexColor text=<<hexcolor>> >
<$macrocall $name=copy-color-to-clipboard color={{{[<HexColor>addprefix[#]]}}} />
<$wikify name=RgbaColor text=<<rgbacolor>> >
<$macrocall $name=copy-color-to-clipboard color=<<RgbaColor>> />
<$button class="btn btn-sm" actions=<<createNewColor>> >
''Create Color Tiddler''
</$button>
</$wikify>
</$wikify>
</$vars>
<<details sum:"HSL and HSLA Color Values" src:"{{HSL and HSLA Color Values}}" status:closed labelClass:"bg-secondary text-white">>
<div style="display:flex; max-width:100%; flex-wrap: wrap; flex-direction: row;">
<<colorbox2 "hsla(9, 100%, 64%, 0)">>
<<colorbox2 "hsla(9, 100%, 64%, 0.2)">>
<<colorbox2 "hsla(9, 100%, 64%, 0.4)">>
<<colorbox2 "hsla(9, 100%, 64%, 0.6)">>
<<colorbox2 "hsla(9, 100%, 64%, 0.8)">>
<<colorbox2 "hsla(9, 100%, 64%, 1)">>
</div>
\define copy-color-to-clipboard()
<$button class="tc-btn-invisible" style=<<b>> message="tm-copy-to-clipboard" param=<<color>> >
<$text text=<<color>> />
</$button>
\end
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
padding:5px; margin-bottom:0px;
font-weight:500;
width:80px;
margin:2px;
\end
\define dispcolor()
<$wikify name=b text=<<bgc>> >
<<copy-color-to-clipboard>>
</$wikify>
\end
Html5 extended color names
For shades and tints see [[HTML Extended Colors Shades and Tints]]
<br>
Search in name <$edit-text tiddler="xx$:/temp/$(currentTiddler)$/filter-extended-colors" tag=input defualt=""/>
<small>Click on color code to copy to clipboard<br></small>
<table>
<tr>
<th style="width:150px;">Color name</th>
<th>Hex code</th>
</tr>
<$vars filtercolorname={{{[[xx$:/temp/$(currentTiddler)$/filter-extended-colors]get[text]]}}}>
<$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]indexes[]] +[search<filtercolorname>]">
<tr>
<td><$view field=title/></td>
<$vars color={{{[[$:/plugins/kookma/colorplay/data/extended-color-names]getindex<currentTiddler>]}}} >
<td><<dispcolor>></td>
</$vars>
</tr>
</$list>
</$vars>
</table>
\define copy-color-to-clipboard()
<$button class="tc-btn-invisible" style=<<b>> message="tm-copy-to-clipboard" param=<<color>> >
<$text text=<<color>> />
</$button>
\end
\define bgc()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
padding:5px; margin-bottom:0px;
font-weight:500;
width:80px;
margin:2px;
\end
\define sample(color1:#000, color2:#fff, pct:0.5)
<$vars color=<<blend $color1$ $color2$ percentage:$pct$>> >
<$wikify name=b text=<<bgc>> >
<<copy-color-to-clipboard>>
</$wikify>
</$vars>
\end
\define blend-colors(color, low:"10", high:"80")
<!--
low: percentage of color in white
high: percentage of color in black
-->
<$list filter="[range[$low$,100,10]]" variable=pct>
<$macrocall $name=sample color1=#FFF color2=<<__color__>> pct=<<pct>> />
</$list>
<$list filter="[range[10,$high$,10]]" variable=pct>
<$macrocall $name=sample color1=<<__color__>> color2=#000 pct=<<pct>> />
</$list>
\end
!! Shades and tints of html5 extended colors
This demo shows the shades and tints of html5 extended colors.
<small>Click on color code to copy to clipboard</small>
<$vars tmpTid="xx$:/temp/color-name">
<$macrocall $name=select-extended-colors tmpTid=<<tmpTid>> />
<$vars colorname={{{ [<tmpTid>get[text]] }}}>
<$vars colorcode={{{[[$:/plugins/kookma/colorplay/data/extended-color-names]getindex<colorname>]}}} >
<$macrocall $name=blend-colors color=<<colorcode>> />
</$vars>
</$vars>
</$vars>
See [[Shade and Tints]]
{
"mood-1": "#F1F1F2",
"mood-2": "#BCBABE",
"mood-3": "#A1D6E2",
"mood-4": "#1995AD"
}
!! Inputs
* Input
<$edit-text tiddler="$:/temp/sample-tiddler" tag=input default="empty ..."/>
* Text area
<$edit-text tiddler="$:/temp/sample-tiddler" tag=textarea default="empty ..."/>
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sQohhEhIrGWQWIUQQiQk1jJIrEIIIRISaxkkViGEEAmJtQwSqxBCiITEWoaxipU83vCGN1Tvfe97q6effnpm6Yvs3r27Ovfcc1Ma/qn9T/7kT6ply5ZVL7zwQlpPvb75zW9Wb37zm9P6/fbbr/rIRz5SPfvss6me/IN77p/e2bebbrqpete73lX94R/+YYpjjz025Qe7du2qPve5z1V//ud/nrbj8Y477kjrLF/7V3ry8/8oTx0++clPpjyM+G/y/Lt+/Gd6w6clneUbg3Rr165NbbJx48aZrau07x/4wAeqL3zhC3qjCyGGQmItw1jFumLFiuo973lPdcABB8yRAzz22GPV+973vur1r399tXLlyiTCb33rW9WZZ56Z6oJAkCjSO+OMM9L6a6+9tjrllFOqp556alaAX/rSl9JzAnmzX7fffnv1yle+sjr11FOr7du3V5s3b06iYj+JY445pnrLW96S8qQel19+eXqDgeUbxXrccceldbfddlv1pje9qTr++ONT+8GgYuULBI8E+SPMHTt2pNfWBizzZdGOfNHg+AghxDBIrGUYm1iRwmGHHVatWbMmicHLgbKRJYLaunVrWhZBdq961auqu+66a2bJXKinF6CHZcj8iSeemFnyIrbdRRddNLNkLjFfE+tJJ52UXgPPP/ShD6V2g0HF6iFPG3F7GLW++tWvTl8O7EuBRqtCiBJIrGUYm1gZWb397W+vHn300TnPgREnr88777z0OkJ9ENcnPvGJWRlHogA9W7ZsSdPLiP3BBx+c84YgP6abGQmz7fPPPz+zZi8x3yhW8nvb295WXXnllek1jFKsNmrli8imTZvSthqtCiFKILGWYSxiJe+TTz45yYDniPTd7353tWrVqrQeOb3uda9LU7E5TLx1o0owAfrzkn5UyRsFsXJ+9YgjjpiVOrC/CA65MhpkdMwbByzfKFZfzuc///kkPGOUYgVGrcic0aq1aVc4hgqFYvFEHyTWMoxFrEiMqVgvI+Koo45KZTFFy/o6cXJREzI88cQTaw+mCdCfY/WyA94MnG995zvfmc7nImwP+4uoXvGKV8yOQC3fKFY7x8qXgiVLlszJb9RitVEro3CNVoUQpZBYyzAWsTIy5Ypc8iA/4sYbb0yjVM4VctHO0UcfXR144IHp4qEcCA+R1H0DI08vwCbYBy5m4sKjCG3w8Y9/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
!! Links
* Internal link: [[Home]]
* External link: https://www.bing.com/
/*\
title: macros/addx
type: application/javascript
module-type: macro
Resolves a relative path for an absolute rootpath.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "addx";
exports.params = [
{name: "a"},
{name: "b"}
];
/*
Run the macro
*/
exports.run = function(a, b) {
return Number(a) + Number(b);
};
})();
\define tmpTid() xx$:/temp/$(currentTiddler)$/color-value
\define colorBoxStyle()
background-color:$(color)$;
color:<<contrastcolour target:$(color)$ colourA:black colourB:white>>;
\end
\define colorbox2(newcolor)
<div class=colorbox-container>
<$wikify name=color text=<<__newcolor__>> >
<$wikify name=divstyle text=<<colorBoxStyle>> >
<div class="colorplay-colorbox" style=<<divstyle>> >
<$text text=<<color>> />
</div>
</$wikify>
</$wikify>
</div>
\end
\define contrastBoxStyle()
background-color:$(bcolor)$;
color:$(fcolor)$;
border:1px solid black;
padding:10px;
min-width:360px;
\end
\define contrastbox(fcolor, bcolor)
<$vars fcolor=<<__fcolor__>> bcolor=<<__bcolor__>> >
<$wikify name=divstyle text=<<contrastBoxStyle>> >
<div class="colorbox" style=<<divstyle>> >
$fcolor$ on $bcolor$
</div>
</$wikify>
</$vars>
\end
\define select-extended-colors(tmpTid:"xx$:/temp/colorname")
<$select tiddler=<<__tmpTid__>> default='aliceblue'>
<$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]indexes[]]">
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
\end
{
"mood-1": "#E91E63",
"mood-2": "#00BCD4",
"mood-3": "#FFEB3B",
"mood-4": "#607D8B"
}
Today is 17th, March 2021
* create new ui for create color scheme
* see [[Color Schemes]]
\define colorsplotch(col)
<div class="color-splotch" style="background: $col$;">
\end
\define copy-hex() <$action-sendmessage $message="tm-copy-to-clipboard" $param=<<hexvalue>>/>
\define copy-mac() <$action-sendmessage $message="tm-copy-to-clipboard" $param="""<<color $(currentTiddler)$>>"""/>
<div style="text-align: center;">Current palette: <$link to={{$:/palette}}/></div>
<table>
<tr>
<th></th>
<th>Hex Color Code</th>
<th>~TiddlyWiki CSS Selector</th>
<th>Copy to clipboard</th>
</tr>
<$list filter="[{$:/palette}indexes[]]">
<$list filter="[{$:/palette}getindex<currentTiddler>]" variable="hexvalue">
<tr>
<td><$macrocall $name=colorsplotch col=<<hexvalue>>/></td>
<td><<hexvalue>></td>
<td><<currentTiddler>></td>
<td>
<$button class="tc-tiddlylink tc-btn-invisible" actions=<<copy-mac>>> macro def</$button> --
<$button class="tc-tiddlylink tc-btn-invisible" actions=<<copy-hex>>>hex code</$button>
</td>
</tr>
</$list>
</$list>
</table>
<style>
.color-splotch {
float: left;
width: 20px;
height: 20px;
border: 1px solid #000000;
margin: 0;
}
</style>
;Ref
:{{!!author}} - <a href={{!!url}} target=_blank>Google Group</a>
Today is 15th, March 2021
The color of table of palette in control panel
* background: table header background
* foreground: primary (note they are links)
{
"mood-1": "#375E97",
"mood-2": "#FB6542",
"mood-3": "#FFBB00",
"mood-4": "#3F681C"
}
!! Quotes
> This is a single quote
This is a block quote
<<<
<<.lorem>>
<<<
\define colorTest(test:"Blank test", fcolor:"black", bcolor:"white")
<$wikify name=color1 text=<<__fcolor__>> >
<$wikify name=color2 text=<<__bcolor__>> >
<$wikify name="style" text="color: $fcolor$; background-color: $bcolor$;">
<div class="cls" title=<<colorstitle>> style=<<style>> >
<label>$test$: </label> <$macrocall $name=coloraction color=<<color2>> mod=<<color1>> action="getReadability"/>
<label>Contrast ratio </label> <$macrocall $name=coloraction color=<<color2>> mod=<<color1>> action="getReadability"/>
</div>
</$wikify>
</$wikify>
</$wikify>
\end
<style>
.cls{
padding:10px;
}
</style>
<<colorTest>>
<$macrocall $name=colorTest fcolor="rgb(255,128,0)" bcolor=<<coulor page-background>> />
<$macrocall $name=colorTest fcolor="hsl(0,100%,50%)" bcolor="rgb(255,255,0)" />
<!-- !!! colorTest Macro
colorTest(test,color1,color2)
* test: a name
* color1: foreground
* color2: background
!!!! style where used
e.g. like this:
```
<style>
.css-test { <<.pa2>> <<.ba>> display: flex; }
.css-test .css-test-name { font-weight: 600; }
.css-test .contrast { font-weight: 500; }
</style>
```
!!!! Dependency
This macro uses the ColorAction Plugin from https://tid.li/tw5/plugins.html
-->
!! Practices and theories
* [[Designing accessible color systems|https://stripe.com/blog/accessible-color-systems]] recommended by PMario
* [[Color: From Hexcodes to Eyeballs|http://jamie-wong.com/post/color/]]
!! Tools
* https://color-wheel-artist.com/
* https://en.wikipedia.org/wiki/Tints_and_shades
* https://coderwall.com/p/z8uxzw/javascript-color-blender
* https://htmlcolorcodes.com/
* https://www.canva.com/learn/100-color-combinations/
* https://www.smashingmagazine.com/2016/04/web-developer-guide-color/
* https://davidmathlogic.com/colorblind/#%23D81B60-%231E88E5-%23FFC107-%23004D40
* Chroma.js small library with many tools for color convesion handlind , etc https://github.com/gka/chroma.js
* Color contrast tools: https://www.webaxe.org/color-contrast-tools/
* Leonardo from Adobe - Generate colors based on contrast ration: https://github.com/adobe/leonardo [5 stars]
* Colorlab (text, matrix, and palette) https://jxnblk.github.io/colorable/
!! Material design
* https://material.io/design/color/dark-theme.html
!! Thomas Telmiger
* https://tid.li/tw5/plugins.html#%24%3A%2Fplugins%2Ftelmiger%2FColorAction
* https://tid.li/tw5/apps/bricks.html#%24%3A%2Fapps%2Ftelmiger%2Fbricks%2Fpaletteeditor
* https://groups.google.com/g/tiddlywiki/c/ATBaeD5uDYE/m/YJhtiYRAAwAJ
!! Community palettes
* http://j.d.palette.tiddlyspot.com/
!! Recent discussion on GG (correct fr links)
* https://mail.google.com/mail/u/0/#inbox/KtbxLwGrWGsWQSlRmVrthCrFPtsxdvdpvV
An RGB color value represents ''RED'', ''GREEN'', and ''BLUE'' light sources.
An RGBA color value is an extension of RGB with an ''Alpha'' channel (opacity).
!!RGB Color Values
In HTML, a color can be specified as an RGB value, using this formula:
```
rgb(red, green, blue)
```
Each parameter (''red'', ''green'', and ''blue'') defines the intensity of the color with a value between 0 and 255.
This means that there are 256 x 256 x 256 = ''16777216'' possible colors!
* For example, rgb(255, 0, 0) is displayed as red, because red is set to its highest value (255), and the other two (green and blue) are set to 0.
* Another example, rgb(0, 255, 0) is displayed as green, because green is set to its highest value (255), and the other two (red and blue) are set to 0.
* To display black, set all color parameters to 0, like this: rgb(0, 0, 0).
* To display white, set all color parameters to 255, like this: rgb(255, 255, 255).
!! RGBA Color Values
RGBA color values are an extension of RGB color values with an ''Alpha'' channel - which specifies the opacity for a color.
An RGBA color value is specified with:
```
rgba(red, green, blue, alpha)
```
The alpha parameter is a number between 0.0 (fully transparent) and 1.0 (not transparent at all):
;Ref
:[[w3school|https://www.w3schools.com/htmL/html_colors_rgb.asp]]
\define tmpTid() xx$:/temp/rgb
\define rgbcolor() rgb($(red)$, $(green)$, $(blue)$)
\define hslcolor() <<rgb2hsl $(red)$ $(green)$ $(blue)$>>
\define hexcolor() <<rgb2hex $(red)$ $(green)$ $(blue)$>>
\define divstyle()
background-color:$(rgbcolor)$;
color:<<contrastcolour target:"$(rgbcolor)$" colourA:black colourB:white>>;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
<!-- display the rgb sliders -->
{{$:/plugins/kookma/colorplay/ui/rgb-sliders}}
<div style="width:400px;max-width:100%;">
<$vars red={{{[<tmpTid>get[red]]}}}
green={{{[<tmpTid>get[green]]}}}
blue={{{[<tmpTid>get[blue]]}}} >
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>>>
<<rgbcolor>>
</div>
</$wikify>
<!-- buttons to copy the color -->
<small>Click to copy to clipboard</small>
<$wikify name=Hslcolor text=<<hslcolor>> >
<$macrocall $name=copy-color-to-clipboard color=<<Hslcolor>> />
</$wikify>
<$wikify name=HexColor text=<<hexcolor>> >
<$macrocall $name=copy-color-to-clipboard color={{{[<HexColor>addprefix[#]]}}} />
</$wikify>
<$wikify name=RgbColor text=<<rgbcolor>> >
<$macrocall $name=copy-color-to-clipboard color=<<RgbColor>> />
</$wikify>
</$vars>
</div>
<<details sum:"RGB and RGBA Color Values" src:"{{RGB and RGBA Color Values}}" status:closed labelClass:"bg-secondary text-white">>
\define colorOneTid() xx$:/temp/1
\define colorTwoTid() xx$:/temp/2
\define rgb1() rgb($(red1)$, $(green1)$, $(blue1)$)
\define rgb2() rgb($(red2)$, $(green2)$, $(blue2)$)
\define hslcolor() <<rgb2hsl $(red)$ $(green)$ $(blue)$>>
\define hexcolor1() <<rgb2hex $(red1)$ $(green1)$ $(blue1)$>>
\define hexcolor2() <<rgb2hex $(red2)$ $(green2)$ $(blue2)$>>
\define divstyle()
background-color:$(rgb2)$;
color:$(rgb1)$;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
<!-- display the rgb sliders -->
<$vars tmpTid=<<colorOneTid>> >
''Foreground color'' {{$:/plugins/kookma/colorplay/ui/rgb-sliders}}
</$vars>
<$vars tmpTid=<<colorTwoTid>> >
''Background color'' {{$:/plugins/kookma/colorplay/ui/rgb-sliders}}
</$vars>
<$vars red1={{{[<colorOneTid>get[red]]}}}
green1={{{[<colorOneTid>get[green]]}}}
blue1={{{[<colorOneTid>get[blue]]}}}
red2={{{[<colorTwoTid>get[red]]}}}
green2={{{[<colorTwoTid>get[green]]}}}
blue2={{{[<colorTwoTid>get[blue]]}}} >
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>>>
<<rgb1>> on <<rgb2>>
</div>
</$wikify>
<table>
<tr><th style="width:50%">Criteria</th><th style="width:20%">Results</th></tr>
<$wikify name=hex1 text=<<hexcolor1>> >
<$wikify name=hex2 text=<<hexcolor2>> >
<$wikify name=ratio text="""<$macrocall $name=contrast hex1=<<hex1>> hex2=<<hex2>> />""" >
<$list filter="[<ratio>!is[blank]]" emptyMessage="<tr><td colspan=2>wrong colors input</td></tr>">
<tr><td>value</td><td><$text text={{{[[1]divide<ratio>fixed[2]]}}} /></td></tr>
<tr>
<td>AA-level large text (3:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.33333]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AA-level small text (4.5:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.22222]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AAA-level large text (4.5:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.22222]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
<tr>
<td>AAA-level small text (7:1)</td>
<td><$list filter="[<ratio>compare:number:lt[0.14285]]" emptyMessage="FAIL">PASS</$list></td>
</tr>
</$list>
</$wikify>
</$wikify>
</$wikify>
</table>
</$vars>
<<details sum:"WCAG Levels for Readability" src:"{{WCAG Levels for Readability}}">>
<div style="display:flex; max-width:100%; flex-wrap: wrap; flex-direction: row;">
<<colorbox2 rgb(255,0,0)>>
<<colorbox2 rgb(0,0,255)>>
<<colorbox2 rgb(60,179,113)>>
<<colorbox2 rgb(238,130,238)>>
<<colorbox2 rgb(255,165,0)>>
<<colorbox2 rgb(106,90,205)>>
</div>
\define tmpTid() xx$:/temp/color-name-to-rgba
\define select-extended-colors(tmpTid:"xx$:/temp/colorname")
<$select tiddler=<<__tmpTid__>> default='aliceblue' actions=<<myactions>> >
<$list filter="[[$:/plugins/kookma/colorplay/data/extended-color-names]indexes[]]">
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
\end
\define myactions()
<$wikify name=hexcolor text="""<$macrocall $name=name2hex color={{{[<tmpTid>get[text]]}}} />""">
<$wikify name=rgbcolor text="""<$macrocall $name=hex2rgb H=<<hexcolor>> />""" >
<$vars r={{{[<rgbcolor>split[,]nth[1]removeprefix[rgb(]]}}}
g={{{[<rgbcolor>split[,]nth[2]]}}}
b={{{[<rgbcolor>split[,]nth[3]removesuffix[)]]}}} >
<$action-setfield $tiddler=<<tmpRgbaTid>> $field="red" $value=<<r>> />
<$action-setfield $tiddler=<<tmpRgbaTid>> $field="green" $value=<<g>> />
<$action-setfield $tiddler=<<tmpRgbaTid>> $field="blue" $value=<<b>> />
<$action-setfield $tiddler=<<tmpRgbaTid>> $field="alpha" $value=1.0 />
</$vars>
</$wikify>
</$wikify>
\end
Choose a color from the list of html extended color names and edit it using the RGBA color tools.
<br>
<$vars tmpRgbaTid="xx$:/temp/new-rgba">
Select an extended color name: <$macrocall $name=select-extended-colors tmpTid=<<tmpTid>> />
{{RGBA Colors}}
</$vars>
\define rgbacolor() rgba($(red)$, $(green)$, $(blue)$, $(alpha)$)
\define hslacolor() <<rgba2hsla $(red)$ $(green)$ $(blue)$ $(alpha)$>>
\define hexcolor() <<rgba2hexa $(red)$ $(green)$ $(blue)$ $(alpha)$>>
\define divstyle()
background-color:$(rgbacolor)$;
color:<<contrastcolour target:"$(rgbacolor)$" colourA:black colourB:white>>;
\end
\define copy-color-to-clipboard(color)
<$button class="btn btn-sm" style=<<dstyle>> message="tm-copy-to-clipboard" param="$color$" >
<$text text="$color$" />
</$button>
\end
\define createNewColor()
<$action-createtiddler $basetitle="New Color" $savetitle=<<saveTid>> tags=color
hexcolor=<<HexColor>> hslacolor=<<Hslacolor>> rgbacolor=<<rgbacolor>>/>
<$action-navigate $to={{{[<saveTid>get[text]]}}} $scroll=yes/>
\end
<!-- display the rgb sliders -->
{{$:/plugins/kookma/colorplay/ui/rgba-sliders}}
<$vars red = {{{[<tmpRgbaTid>get[red]]}}}
green = {{{[<tmpRgbaTid>get[green]]}}}
blue= {{{[<tmpRgbaTid>get[blue]]}}}
alpha= {{{[<tmpRgbaTid>get[alpha]]}}} >
<div class=colorbox-container>
<$wikify name=dstyle text=<<divstyle>> >
<div class="colorplay-colorbox" style=<<dstyle>> >
<<rgbacolor>>
</div>
</$wikify>
</div>
<!-- buttons to copy the color -->
<small>Click to copy to clipboard</small>
<$wikify name=Hslacolor text=<<hslacolor>> >
<$macrocall $name=copy-color-to-clipboard color=<<Hslacolor>> />
<$wikify name=HexColor text=<<hexcolor>> >
<$macrocall $name=copy-color-to-clipboard color={{{[<HexColor>addprefix[#]]}}} />
<$macrocall $name=copy-color-to-clipboard color=<<rgbacolor>> />
<$button class="btn btn-sm" actions=<<createNewColor>> >
''Create Color Tiddler''
</$button>
</$wikify>
</$wikify>
</$vars>
<<details sum:"RGB and RGBA Color Values" src:"{{RGB and RGBA Color Values}}" status:closed labelClass:"bg-secondary text-white">>
!! Sample modal window
<$button message="tm-modal" param="SampleWizard">Open demo modal</$button>
<$list filter="[tag[Sample Tiddler]]">
{{!!text}}
</$list>
This is a modal wizard dialogue, stored in the tiddler SampleWizard.
{
"mood-1": "#dcdfd7",
"mood-2": "#6ec162",
"mood-3": "#2491ca",
"mood-4": "#caccc4",
"mood-5": "#65757d",
"mood-6": "#000000",
"mood-7": "#387562",
"mood-8": "#ddaacc"
}
;What is the definition of a SHADE?
:Color Theory defines a True Shade as any pure Hue or mixture of pure colors with only Black added. In other words, it contains absolutely no White or Gray.
;What is the definition of a TINT
A Tint is sometimes also called a Pastel. But to be precise, Color Theory defines a True Tint as any Hue or mixture of pure colors with only White added.
{{Color Hue Tint Tone and Shade.png}}
;Ref
:https://color-wheel-artist.com/hue/
:https://www.beachpainting.com/blog/color-hue-tint-tone-and-shade/
{
"mood-1": "#20123A",
"mood-2": "#693BCC",
"mood-3": "#CB1F9C",
"mood-4": "#F35F1C"
}
{
"mood-1": "#4DBDEB",
"mood-2": "#FFFFFF",
"mood-3": "#DFEEEE",
"mood-4": "#FFE08C"
}
Today is 18th, March 2021
* [[Discussion on GG|https://groups.google.com/d/msgid/tiddlywiki/659e7463-eba4-4679-bc30-29d96633045bn%40googlegroups.com.]]
*[[Coloring for Colorblindness
|https://davidmathlogic.com/colorblind/#%23D81B60-%231E88E5-%23FFC107-%23004D40]]
.radioClass{width:50%}
.colorbox{
padding:10px; margin-bottom:0px;
font-weight:500;
text-align:center;
width:200px;
margin:10px;
}
Today is 2nd, April 2021
CSS vs SVG: Styling Checkboxes and Radio Buttons
https://blog.adobe.com/en/publish/2015/08/26/css-vs-svg-styling-checkboxes-and-radio-buttons.html#gs.xqsqod
{
"mood-1": "#363237",
"mood-2": "#2D4262",
"mood-3": "#73605B",
"mood-4": "#D09683"
}
https://codepen.io/meetajhu/pen/gpEXja
<div class="toggle body">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 56.7 57" enable-background="new 0 0 56.7 57" xml:space="preserve">
<path class="retract" fill="none" stroke="#f1f1f1" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
M36,6.3c5.7,2.1,10.2,6.2,12.9,11.1"/>
<path fill="none" stroke="#f1f1f1" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
M48.9,17.4c3.1,5.8,3.9,12.9,1.4,19.7c-4.6,12.4-18.4,18.8-30.8,14.3S0.7,33,5.2,20.5S23.6,1.7,36,6.3"/>
<polyline class="tick" fill="none" stroke="#f1f1f1" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
20.3,25.4 28.6,33.9 46.7,8.3 "/>
</svg>
</div>
<style>
.body {
background: gainsboro;
}
svg {
display: block;
margin: 0 auto;
}
.toggle {
cursor: pointer;
background: #ee5626;
padding: 1em;
border-radius: 100%;
display: table;
width: 200px;
transition: background 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
/* Temp Scene Stuff */
position: absolute;
transform: translate(-50%, -50%);
top: 50%;
left: 50%;
}
.toggle.open {
background: #4ae4bf;
}
.tick {
stroke-dasharray: 44;
stroke-dashoffset: 44;
}
.open .retract {
stroke-dasharray: 20;
stroke-dashoffset: 20;
-webkit-animation: retract 1.5s cubic-bezier(0.19, 1, 0.22, 1) forwards 1;
animation: retract 1.5s cubic-bezier(0.19, 1, 0.22, 1) forwards 1;
}
.open .tick {
-webkit-animation: dash 1.5s cubic-bezier(0.19, 1, 0.22, 1) forwards 1;
animation: dash 1.5s cubic-bezier(0.19, 1, 0.22, 1) forwards 1;
}
@-webkit-keyframes dash {
from {
stroke-dashoffset: 44;
}
to {
stroke-dashoffset: 0;
}
}
@keyframes dash {
from {
stroke-dashoffset: 44;
}
to {
stroke-dashoffset: 0;
}
}
@-webkit-keyframes retract {
from {
stroke-dashoffset: 0;
}
to {
stroke-dashoffset: 20;
}
}
@keyframes retract {
from {
stroke-dashoffset: 0;
}
to {
stroke-dashoffset: 20;
}
}
</style>
!! Table
|Header 1|Header 2|h
|Row one| Cell two in row one|
|Row two| Cell two in row two|
|This is a table|c
\define createTask()
<$action-sendmessage
$message="tm-new-tiddler"
title="New Task"
tags="task"
text=<<now "Today is DDth, MMM YYYY">>
due-date=""
priority="normal"
status="not started"
/>
\end
\define newTask()
<$button actions=<<createTask>> class="btn btn-sm btn-info" >New Task
</$button>
\end
<div class="float-right">
<<newTask>>
</div>
<$macrocall $name=table-dynamic filter="[tag[task]]" fields="tbl-checkbox tbl-expand title priority status due-date tags" class="w-100" stateTiddler="your-state-tid"/>
\define color() color:<<hsl2hex 200 100 50>>
<$wikify name=sty text=<<color>> >
<div style=<<sty>> >
Hello - <<color>>
</div>
</$wikify>
<div style="color:hsl(200 100% 50%)">
TEST
</div>
- <<hsl2hex 240 100 50>>
;Ref
: [[$:/plugins/kookma/colorplay/macros/hsl2rgb.js]]
: [[$:/plugins/kookma/colorplay/macros/hsl2hex.js]]
Uses the color test from: [[readability/colorTest]]
<$macrocall $name=colorTest test="FG" color1="#eaeaea" color2=<<color primary>>/>
<$macrocall $name=colorTest test="FG" color1="hsl(245,100%, 50%)" color2="#ffe"/>
<$macrocall $name=colorTest test="FG" color1="rgba(0, 0, 0, 0.9)" color2="rgba(255,0,0,0.4)"/>
!! Color contrast
<$macrocall $name="wikitext-example-without-html"
src="""<<coloraction color:"#fafaf9ff" mod:"#adada0ff" action:getContrast>>
"""/>
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
<$vars tmpTid=uuu>
{{$:/plugins/kookma/colorplay/ui/rgb-sliders}}
<<colorbox yellow>>
</$vars>
{
"mood-1": "#2E2300",
"mood-2": "#6E6702",
"mood-3": "#C05805",
"mood-4": "#DB9501"
}
{
"mood-1": "#03363D",
"mood-2": "#174D4D",
"mood-3": "#FFFFFF",
"mood-4": "#F8F9F9"
}
{
"mood-1": "#021C1E",
"mood-2": "#004445",
"mood-3": "#2C7873",
"mood-4": "#6FB98F"
}
;How much contrast do I need?
The WCAG has multiple levels, and the relevant ones for us are called ''AA'' and ''AAA''.
''AA'' is an acceptable level of accessibility, and ''AAA'' is one step above: the most complete accessibility ruleset there is.
;AA Level
: ''4.5'': For normal text.
: ''3'': For large (24px or more) or bold (19px*) text.
For non-text elements, like icons, charts and controls, a minimum contrast of 3 is needed.
;AAA Level
: ''7'': For normal text.
: ''4.5'': For large (24px or more) or bold (19px^^1^^) text.
^^1^^ this is actually 18.66 pixels, but rounded up.
Today is 19th, March 2021
https://davidmathlogic.com/colorblind/#%23D81B60-%231E88E5-%23FFC107-%23004D40
!! We see colors differently
About 1 in 20 people are colorblind in some way. This means that one or more of the types of cone cells in their eyes — the cells we use to detect color — does not work normally. Because of this, a person who is colorblind sees a reduced color space; two colors which appear distinct to a person with normal color vision may appear to be the same to a person who is colorblind. This phenomenon is not random. Mathematically, there are lines through color space — called "confusion lines" — such that every color on a confusion line appears the same to a person who is colorblind as every other color on that same confusion line.
;Remarks
: Use this for readability
\define circle2(r:20, color, selected:"yes")
<svg width=30 height=30 style="vertical-align: middle;">
<circle cx=15 cy=15 r=12 stroke="black" stroke-width=0 fill="$color$"/>
<$list filter="[<__selected__>match[yes]]" variable=null>
<circle cx=15 cy=15 r=8 stroke="white" stroke-width=2 fill=none/>
</$list>
</svg>
\end
\define circle3(color, selected:"no")
<svg width="20" height="20" style="vertical-align: middle;">
<circle cx="10" cy="10" r="9" stroke="grey" fill=<<__color__>>/>
<$list filter="[<__selected__>match[yes]]" variable=null>
<circle cx=10 cy=10 r=7 stroke="white" stroke-width=1.5 fill=none/>
</$list>
</svg>
\end
<<circle2 18 blue no>>
<<circle2 18 "rgba(0,0,255,0.2)" yes>>
<<circle3 "rgba(0,0,255,0.7)" yes>><<circle3 "rgba(0,0,255,0.7)" no>>
[enlist<mainSelectors>sort[title]]
$:/palettes/DarkElegance Test
https://colorplay.tiddlyhost.com