From 38ce036ef6b9905451bbaae283b4313931ea5425 Mon Sep 17 00:00:00 2001
From: Martin Griffiths
Date: Wed, 17 Apr 2024 16:33:16 +0100
Subject: [PATCH] Added language variant/invariant support Tested with SQLite
and MSSQL Added Umbraco 10 test site
---
README.md | 9 +-
Umbraco Tag Manager.TestSite.V10/.gitignore | 478 +
.../App_Plugins/Contentment/Lang/da.xml | 41 +
.../App_Plugins/Contentment/Lang/en.xml | 43 +
.../App_Plugins/Contentment/Lang/es.xml | 41 +
.../App_Plugins/Contentment/Lang/fr.xml | 41 +
.../App_Plugins/Contentment/Lang/nl.xml | 41 +
.../App_Plugins/Contentment/Lang/pt.xml | 41 +
.../App_Plugins/Contentment/Lang/sv.xml | 41 +
.../backoffice/contentment/index.html | 105 +
.../backoffice/contentment/kilroy.svg | 10 +
.../backoffice/contentment/lee-was-here.svg | 12 +
.../backoffice/icons/icon-contentment.svg | 9 +
.../backoffice/icons/icon-facebook.svg | 1 +
.../backoffice/icons/icon-github.svg | 1 +
.../backoffice/icons/icon-instagram.svg | 1 +
.../backoffice/icons/icon-linkedin.svg | 1 +
.../backoffice/icons/icon-mastodon.svg | 1 +
.../backoffice/icons/icon-twitter.svg | 1 +
.../backoffice/icons/icon-youtube.svg | 1 +
.../Contentment/components/blocks-editor.html | 58 +
.../Contentment/components/cards-editor.html | 57 +
.../Contentment/components/list-editor.html | 29 +
.../Contentment/components/stack-editor.html | 56 +
.../App_Plugins/Contentment/contentment.css | 1 +
.../App_Plugins/Contentment/contentment.js | 1 +
.../Contentment/editors/_empty.html | 1 +
.../Contentment/editors/_json-editor.html | 35 +
.../Contentment/editors/buttons.html | 12 +
.../editors/cascading-dropdown-list.html | 19 +
.../Contentment/editors/checkbox-list.html | 40 +
.../Contentment/editors/code-editor.html | 3 +
.../editors/configuration-editor.html | 15 +
.../editors/configuration-editor.inline.html | 17 +
.../editors/configuration-editor.overlay.html | 105 +
.../editors/content-blocks.blueprint.html | 20 +
.../Contentment/editors/content-blocks.html | 19 +
.../editors/content-blocks.overlay.html | 138 +
.../Contentment/editors/content-cards.html | 19 +
.../Contentment/editors/content-list.html | 19 +
.../Contentment/editors/content-source.html | 74 +
.../Contentment/editors/content-stack.html | 19 +
.../Contentment/editors/data-list.editor.html | 48 +
.../editors/data-list.preview.html | 59 +
.../editors/data-source.preview.html | 50 +
.../Contentment/editors/data-table.html | 41 +
.../editors/dictionary-picker.html | 14 +
.../Contentment/editors/dropdown-list.html | 10 +
.../Contentment/editors/editor-notes.html | 7 +
.../Contentment/editors/icon-picker.html | 31 +
.../Contentment/editors/item-picker.html | 15 +
.../editors/item-picker.overlay.html | 119 +
.../Contentment/editors/macro-picker.html | 15 +
.../Contentment/editors/notes.html | 1 +
.../Contentment/editors/number-input.html | 13 +
.../editors/radio-button-list.html | 21 +
.../editors/readonly-node-preview.html | 3 +
.../Contentment/editors/render-macro.html | 11 +
.../Contentment/editors/social-links.html | 42 +
.../editors/social-links.overlay.html | 15 +
.../App_Plugins/Contentment/editors/tags.html | 26 +
.../Contentment/editors/templated-list.html | 12 +
.../Contentment/editors/text-input.html | 36 +
.../Contentment/editors/textbox-list.html | 22 +
.../App_Plugins/Contentment/package.manifest | 6 +
.../render/ContentBlockPreview.cshtml | 10 +
.../Contentment/render/_ViewImports.cshtml | 1 +
.../App_Plugins/TagList/package.manifest | 29 +
.../App_Plugins/TagList/taglist.resource.js | 8 +
.../TagList/taglisteditor.controller.js | 9 +
.../App_Plugins/TagList/taglisteditor.html | 11 +
.../TagManagerTree/create-group.html | 19 +
.../backoffice/TagManagerTree/create.html | 30 +
.../backoffice/TagManagerTree/delete.html | 17 +
.../backoffice/TagManagerTree/edit.html | 121 +
.../backoffice/TagManagerTree/group.html | 31 +
.../TagManager/backoffice/css/tagManager.css | 36 +
.../backoffice/dashboards/dashboard.html | 29 +
.../propertyEditor/dropdownFlexible.html | 16 +
.../scripts/tagManager.create.controller.js | 108 +
.../tagManager.createGroup.controller.js | 86 +
.../scripts/tagManager.delete.controller.js | 98 +
.../tagManager.dropdownFlexible.controller.js | 32 +
.../scripts/tagManager.edit.controller.js | 332 +
.../scripts/tagManager.group.controller.js | 174 +
.../backoffice/scripts/tagManager.resource.js | 34 +
.../App_Plugins/TagManager/lang/en-GB.xml | 10 +
.../App_Plugins/TagManager/lang/en-US.xml | 10 +
.../App_Plugins/TagManager/lang/en.xml | 10 +
.../App_Plugins/TagManager/package.manifest | 21 +
...o.Community.TagManager.TestSite.V10.csproj | 48 +
Umbraco Tag Manager.TestSite.V10/Program.cs | 19 +
.../Properties/launchSettings.json | 29 +
Umbraco Tag Manager.TestSite.V10/Startup.cs | 65 +
.../Views/Author.cshtml | 30 +
.../Views/AuthorList.cshtml | 12 +
.../Views/Components/Contact/Default.cshtml | 26 +
.../Components/Pagination/Default.cshtml | 48 +
.../Views/Partials/authors.cshtml | 55 +
.../Views/Partials/blockgrid/area.cshtml | 10 +
.../Views/Partials/blockgrid/areas.cshtml | 13 +
.../Views/Partials/blockgrid/default.cshtml | 11 +
.../Views/Partials/blockgrid/items.cshtml | 36 +
.../Components/codeSnippetRow.cshtml | 30 +
.../blocklist/Components/iconLinkRow.cshtml | 15 +
.../Components/imageCarouselRow.cshtml | 57 +
.../blocklist/Components/imageRow.cshtml | 26 +
.../Components/latestArticlesRow.cshtml | 76 +
.../blocklist/Components/richTextRow.cshtml | 20 +
.../blocklist/Components/videoRow.cshtml | 29 +
.../Views/Partials/blocklist/default.cshtml | 13 +
.../Views/Partials/footer.cshtml | 24 +
.../Partials/grid/bootstrap3-fluid.cshtml | 106 +
.../Views/Partials/grid/bootstrap3.cshtml | 112 +
.../Views/Partials/grid/editors/base.cshtml | 27 +
.../Views/Partials/grid/editors/embed.cshtml | 11 +
.../Views/Partials/grid/editors/macro.cshtml | 15 +
.../Views/Partials/grid/editors/media.cshtml | 64 +
.../Views/Partials/grid/editors/rte.cshtml | 13 +
.../Partials/grid/editors/textstring.cshtml | 22 +
.../Views/Partials/mainNavigation.cshtml | 30 +
.../Views/Partials/metaData.cshtml | 44 +
.../Views/Partials/pageHeader.cshtml | 48 +
.../Views/Partials/xmlSitemap.cshtml | 32 +
.../Views/_ViewImports.cshtml | 9 +
.../Views/article.cshtml | 23 +
.../Views/articleList.cshtml | 23 +
.../Views/contact.cshtml | 44 +
.../Views/content.cshtml | 21 +
.../Views/error.cshtml | 20 +
.../Views/home.cshtml | 23 +
.../Views/master.cshtml | 33 +
.../Views/search.cshtml | 71 +
.../Views/xMLSitemap.cshtml | 6 +
.../appsettings.Development.json | 44 +
.../appsettings.json | 27 +
.../uSync/v9/Content/about.config | 122 +
.../uSync/v9/Content/authors.config | 52 +
.../uSync/v9/Content/blog.config | 88 +
.../uSync/v9/Content/categories.config | 26 +
.../uSync/v9/Content/community.config | 125 +
.../v9/Content/community_fa0pue2k.config | 16 +
.../uSync/v9/Content/conferences.config | 154 +
.../v9/Content/conferences_dpraan01.config | 16 +
.../uSync/v9/Content/contact.config | 65 +
.../uSync/v9/Content/error.config | 83 +
.../uSync/v9/Content/features-1.config | 2 +
.../uSync/v9/Content/features-new.config | 289 +
.../uSync/v9/Content/features.config | 299 +
.../uSync/v9/Content/home.config | 269 +
...n-the-umbraco-community-on-mastodon.config | 100 +
.../uSync/v9/Content/meetups.config | 125 +
.../uSync/v9/Content/meetups_fthd5e2w.config | 16 +
.../uSync/v9/Content/paul-seal.config | 85 +
.../v9/Content/podcasts-and-videos.config | 222 +
.../uSync/v9/Content/podcasts.config | 16 +
.../uSync/v9/Content/popular-blogs.config | 125 +
.../uSync/v9/Content/resources.config | 16 +
.../uSync/v9/Content/search.config | 44 +
.../uSync/v9/Content/test.config | 2 +
.../uSync/v9/Content/test_mgebztva.config | 60 +
.../uSync/v9/Content/umbraco.config | 16 +
.../uSync/v9/Content/videos.config | 16 +
.../uSync/v9/Content/xmlsitemap.config | 26 +
.../uSync/v9/Content/youtube-tutorials.config | 180 +
.../uSync/v9/ContentTypes/article.config | 35 +
.../v9/ContentTypes/articlecontrols.config | 82 +
.../uSync/v9/ContentTypes/articlelist.config | 36 +
.../uSync/v9/ContentTypes/author.config | 33 +
.../uSync/v9/ContentTypes/authorlist.config | 35 +
.../uSync/v9/ContentTypes/category.config | 25 +
.../uSync/v9/ContentTypes/categorylist.config | 29 +
.../v9/ContentTypes/codesnippetrow.config | 66 +
.../codesnippetrowsettings.config | 28 +
.../uSync/v9/ContentTypes/contact.config | 33 +
.../ContentTypes/contactformcontrols.config | 89 +
.../uSync/v9/ContentTypes/content.config | 74 +
.../v9/ContentTypes/contentcontrols.config | 50 +
.../uSync/v9/ContentTypes/error.config | 33 +
.../v9/ContentTypes/footercontrols.config | 50 +
.../v9/ContentTypes/headercontrols.config | 66 +
.../uSync/v9/ContentTypes/hideproperty.config | 50 +
.../uSync/v9/ContentTypes/home.config | 42 +
.../uSync/v9/ContentTypes/iconlinkrow.config | 66 +
.../ContentTypes/iconlinkrowsettings.config | 27 +
.../v9/ContentTypes/imagecarouselrow.config | 50 +
.../imagecarouselrowsettings.config | 28 +
.../uSync/v9/ContentTypes/imagerow.config | 66 +
.../v9/ContentTypes/imagerowsettings.config | 28 +
.../v9/ContentTypes/latestarticlesrow.config | 82 +
.../latestarticlesrowsettings.config | 28 +
.../v9/ContentTypes/listpagesettings.config | 50 +
.../v9/ContentTypes/mainimagecontrols.config | 50 +
.../uSync/v9/ContentTypes/richtextrow.config | 50 +
.../ContentTypes/richtextrowsettings.config | 28 +
.../uSync/v9/ContentTypes/search.config | 32 +
.../uSync/v9/ContentTypes/seocontrols.config | 82 +
.../v9/ContentTypes/spacingproperties.config | 169 +
.../uSync/v9/ContentTypes/videorow.config | 66 +
.../v9/ContentTypes/videorowsettings.config | 28 +
.../v9/ContentTypes/visibilitycontrols.config | 82 +
.../uSync/v9/ContentTypes/xmlsitemap.config | 29 +
.../uSync/v9/DataTypes/ApprovedColor.config | 12 +
.../v9/DataTypes/BlockListIconList.config | 32 +
.../v9/DataTypes/BlockListMainContent.config | 92 +
.../uSync/v9/DataTypes/CheckboxList.config | 11 +
.../uSync/v9/DataTypes/ContentPicker.config | 13 +
.../v9/DataTypes/ContentmentCodeEditor.config | 16 +
.../uSync/v9/DataTypes/DataListAuthors.config | 31 +
.../v9/DataTypes/DataListCategoryList.config | 27 +
.../uSync/v9/DataTypes/DataListSpacing.config | 66 +
.../DataTypes/DataListYesNoClearable.config | 42 +
.../uSync/v9/DataTypes/DatePicker.config | 12 +
.../v9/DataTypes/DatePickerWithTime.config | 12 +
.../uSync/v9/DataTypes/Dropdown.config | 12 +
.../v9/DataTypes/DropdownMultiple.config | 12 +
.../uSync/v9/DataTypes/ImageCropper.config | 11 +
.../v9/DataTypes/ImageMediaPicker.config | 20 +
.../uSync/v9/DataTypes/LabelBigint.config | 11 +
.../uSync/v9/DataTypes/LabelDatetime.config | 11 +
.../uSync/v9/DataTypes/LabelDecimal.config | 11 +
.../uSync/v9/DataTypes/LabelInteger.config | 11 +
.../uSync/v9/DataTypes/LabelString.config | 11 +
.../uSync/v9/DataTypes/LabelTime.config | 11 +
.../uSync/v9/DataTypes/ListViewContent.config | 54 +
.../uSync/v9/DataTypes/ListViewMedia.config | 54 +
.../uSync/v9/DataTypes/ListViewMembers.config | 60 +
.../uSync/v9/DataTypes/MediaPicker.config | 20 +
.../v9/DataTypes/MediaPickerLegacy.config | 15 +
.../v9/DataTypes/MediaPickerSVGImage.config | 20 +
.../uSync/v9/DataTypes/MemberPicker.config | 9 +
.../uSync/v9/DataTypes/MultiURLPicker.config | 15 +
.../MultiUrlPickerSingleUrlPicker.config | 15 +
.../DataTypes/MultipleImageMediaPicker.config | 20 +
.../v9/DataTypes/MultipleMediaPicker.config | 20 +
.../MultipleMediaPickerLegacy.config | 15 +
.../uSync/v9/DataTypes/Numeric.config | 9 +
.../uSync/v9/DataTypes/Radiobox.config | 11 +
.../uSync/v9/DataTypes/RichtextEditor.config | 15 +
.../uSync/v9/DataTypes/SingleUrlPicker.config | 15 +
.../uSync/v9/DataTypes/SliderSpacing.config | 16 +
.../uSync/v9/DataTypes/TagList.config | 11 +
.../uSync/v9/DataTypes/Tags.config | 13 +
.../uSync/v9/DataTypes/Tags1.config | 2 +
.../uSync/v9/DataTypes/Textarea.config | 12 +
.../uSync/v9/DataTypes/Textstring.config | 11 +
.../uSync/v9/DataTypes/Truefalse.config | 14 +
.../uSync/v9/DataTypes/UploadArticle.config | 24 +
.../uSync/v9/DataTypes/UploadAudio.config | 28 +
.../uSync/v9/DataTypes/UploadFile.config | 11 +
.../v9/DataTypes/UploadVectorGraphics.config | 16 +
.../uSync/v9/DataTypes/UploadVideo.config | 24 +
.../uSync/v9/Dictionary/article.by.config | 7 +
.../uSync/v9/Dictionary/article.on.config | 7 +
.../uSync/v9/Dictionary/article.posted.config | 7 +
.../v9/Dictionary/articlelist.viewall.config | 7 +
.../v9/Dictionary/author.readmore.config | 7 +
.../v9/Dictionary/contactform.email.config | 7 +
.../v9/Dictionary/contactform.message.config | 7 +
.../v9/Dictionary/contactform.name.config | 7 +
.../v9/Dictionary/contactform.send.config | 7 +
.../footer.copyrightstatement.config | 7 +
.../Dictionary/footer.copyrighttitle.config | 7 +
.../v9/Dictionary/navigation.menutitle.config | 7 +
.../v9/Dictionary/navigation.sitename.config | 7 +
.../uSync/v9/Dictionary/paging.next.config | 7 +
.../uSync/v9/Dictionary/paging.of.config | 7 +
.../uSync/v9/Dictionary/paging.page.config | 7 +
.../v9/Dictionary/paging.previous.config | 7 +
.../v9/Dictionary/search.placeholder.config | 7 +
.../uSync/v9/Dictionary/search.results.config | 7 +
.../v9/Dictionary/search.searchbutton.config | 7 +
.../uSync/v9/Domains/1121_en-gb.config | 8 +
.../Domains/localhost-44398-en_en-gb.config | 8 +
.../v9/Domains/localhost-44398-fr_.config | 2 +
.../Domains/localhost-44398-fr_en-gb.config | 2 +
.../v9/Domains/localhost-44398-fr_fr.config | 8 +
.../v9/Domains/localhost-44398_en-gb.config | 2 +
.../localhost-44398_en-gb_dbrlnjf3.config | 2 +
.../localhost-44398_en-gb_r1rpmviu.config | 8 +
.../uSync/v9/Languages/en-gb.config | 7 +
.../uSync/v9/Languages/en-us.config | 2 +
.../uSync/v9/Languages/fr-fr.config | 2 +
.../uSync/v9/Languages/fr.config | 8 +
.../Media/24-days-people-at-codegarden.config | 20 +
.../uSync/v9/Media/authors.config | 13 +
.../uSync/v9/Media/authors_gknjjwq4.config | 20 +
.../v9/Media/bluetooth-white-keyboard.config | 20 +
.../v9/Media/candid-contributions.config | 20 +
.../uSync/v9/Media/cc-paypal.config | 17 +
.../uSync/v9/Media/chairs-lamps.config | 27 +
.../uSync/v9/Media/codegarden-keynote.config | 20 +
.../uSync/v9/Media/community-front-row.config | 20 +
.../v9/Media/desktop-notebook-glasses.config | 20 +
.../uSync/v9/Media/diary.config | 20 +
.../uSync/v9/Media/discord.config | 17 +
.../Media/first-timers-at-codegarden.config | 20 +
.../uSync/v9/Media/friendly-chair.config | 20 +
.../v9/Media/front-row-audience-smiles.config | 20 +
.../uSync/v9/Media/github-alt.config | 17 +
.../uSync/v9/Media/github.config | 17 +
.../uSync/v9/Media/mastodon.config | 17 +
.../uSync/v9/Media/mastodon_y5vnqpay.config | 20 +
.../meetup-organizers-at-codegarden.config | 20 +
.../uSync/v9/Media/package-manifest.config | 20 +
.../uSync/v9/Media/paypal.config | 17 +
.../uSync/v9/Media/phone-pen-binder.config | 20 +
.../v9/Media/podcast-headphones-coffee.config | 20 +
.../uSync/v9/Media/profile-pic-2023.config | 20 +
.../uSync/v9/Media/sample-images.config | 13 +
.../uSync/v9/Media/say-cheese.config | 20 +
.../uSync/v9/Media/share-nodes.config | 17 +
.../v9/Media/skrift-at-codegarden.config | 20 +
.../uSync/v9/Media/social-icons.config | 13 +
.../uSync/v9/Media/square-github.config | 17 +
.../uSync/v9/Media/square-twitter.config | 17 +
.../v9/Media/triangle-table-chairs.config | 20 +
.../uSync/v9/Media/tutorials.config | 20 +
.../uSync/v9/Media/twitter.config | 17 +
.../uSync/v9/Media/umbraco.config | 17 +
.../v9/Media/umbracoffee-codegarden.config | 20 +
.../uSync/v9/MediaTypes/file.config | 71 +
.../uSync/v9/MediaTypes/folder.config | 25 +
.../uSync/v9/MediaTypes/image.config | 131 +
.../v9/MediaTypes/umbracomediaarticle.config | 71 +
.../v9/MediaTypes/umbracomediaaudio.config | 71 +
.../umbracomediavectorgraphics.config | 71 +
.../v9/MediaTypes/umbracomediavideo.config | 71 +
.../uSync/v9/MemberTypes/member.config | 44 +
.../uSync/v9/Templates/article.config | 5 +
.../uSync/v9/Templates/articlelist.config | 5 +
.../uSync/v9/Templates/author.config | 5 +
.../uSync/v9/Templates/authorlist.config | 5 +
.../uSync/v9/Templates/contact.config | 5 +
.../uSync/v9/Templates/content.config | 5 +
.../uSync/v9/Templates/error.config | 5 +
.../uSync/v9/Templates/home.config | 5 +
.../uSync/v9/Templates/master.config | 5 +
.../uSync/v9/Templates/search.config | 5 +
.../uSync/v9/Templates/xmlsitemap.config | 5 +
.../uSync/v9/usync.config | 2 +
.../clean-assets/css/highlightjs-copy.min.css | 1 +
.../wwwroot/clean-assets/css/styles.css | 11348 ++++++++
.../clean-assets/css/swiffy-slider.min.css | 2 +
.../wwwroot/clean-assets/css/vs2015.css | 112 +
.../clean-assets/js/highlight.default.min.css | 9 +
.../wwwroot/clean-assets/js/highlight.min.js | 1208 +
.../clean-assets/js/highlightjs-copy.min.js | 1 +
.../wwwroot/clean-assets/js/initHighlight.js | 2 +
.../wwwroot/clean-assets/js/scripts.js | 59 +
.../clean-assets/js/swiffy-slider.min.js | 2 +
.../wwwroot/css/dropdownStyles.css | 16 +
.../wwwroot/css/index.css | 23086 ++++++++++++++++
.../wwwroot/css/index.css.map | 1 +
.../wwwroot/favicon.ico | Bin 0 -> 15406 bytes
Umbraco Tag Manager.sln | 6 +
.../App_Plugins/TagList/taglist.resource.js | 4 +-
.../TagList/taglisteditor.controller.js | 4 +-
.../backoffice/TagManagerTree/create.html | 10 +
.../TagManager/backoffice/css/tagManager.css | 3 +-
.../backoffice/dashboards/dashboard.html | 13 +-
.../scripts/tagManager.create.controller.js | 15 +-
.../tagManager.dropdownFlexible.controller.js | 8 +-
.../scripts/tagManager.edit.controller.js | 1 +
.../Composer/TagListComposer.cs | 64 +-
.../Controllers/TagListApiController.cs | 4 +-
.../Controllers/TagManagerTreeController.cs | 13 +-
.../MediaWIzPackageMigrationPlan.cs | 17 -
.../Migrations/TagManagerMigrationHelper.cs | 57 -
Umbraco Tag Manager/Models/TagItem.cs | 9 +-
Umbraco Tag Manager/Models/TaggedContent.cs | 3 +
.../Our.Umbraco.Community.TagManager.csproj | 7 +-
Umbraco Tag Manager/README.md | 9 +-
.../Repositories/ITagListRepository.cs | 2 +-
.../Implementation/TagListRepository.cs | 32 +-
.../Implementation/TagManagerRepository.cs | 102 +-
376 files changed, 48289 insertions(+), 168 deletions(-)
create mode 100644 Umbraco Tag Manager.TestSite.V10/.gitignore
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/da.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/en.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/es.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/fr.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/nl.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/pt.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/sv.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/index.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/kilroy.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/lee-was-here.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-contentment.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-facebook.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-github.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-instagram.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-linkedin.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-mastodon.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-twitter.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-youtube.svg
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/blocks-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/cards-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/list-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/stack-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_empty.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_json-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/buttons.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/cascading-dropdown-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/checkbox-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/code-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.inline.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.overlay.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.blueprint.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.overlay.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-cards.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-source.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-stack.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.editor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.preview.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-source.preview.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-table.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dictionary-picker.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dropdown-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/editor-notes.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/icon-picker.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.overlay.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/macro-picker.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/notes.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/number-input.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/radio-button-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/readonly-node-preview.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/render-macro.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.overlay.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/tags.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/templated-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/text-input.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/textbox-list.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/package.manifest
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/ContentBlockPreview.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/_ViewImports.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/package.manifest
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglist.resource.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create-group.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/delete.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/edit.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/group.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/css/tagManager.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/dashboards/dashboard.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/propertyEditor/dropdownFlexible.html
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.create.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.createGroup.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.delete.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.dropdownFlexible.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.edit.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.group.controller.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.resource.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-GB.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-US.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en.xml
create mode 100644 Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/package.manifest
create mode 100644 Umbraco Tag Manager.TestSite.V10/Our.Umbraco.Community.TagManager.TestSite.V10.csproj
create mode 100644 Umbraco Tag Manager.TestSite.V10/Program.cs
create mode 100644 Umbraco Tag Manager.TestSite.V10/Properties/launchSettings.json
create mode 100644 Umbraco Tag Manager.TestSite.V10/Startup.cs
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Author.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/AuthorList.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Components/Contact/Default.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Components/Pagination/Default.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/authors.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/area.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/areas.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/default.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/items.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/codeSnippetRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/iconLinkRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageCarouselRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/latestArticlesRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/richTextRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/videoRow.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/default.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/footer.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3-fluid.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/base.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/embed.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/macro.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/media.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/rte.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/textstring.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/mainNavigation.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/metaData.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/pageHeader.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/Partials/xmlSitemap.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/_ViewImports.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/article.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/articleList.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/contact.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/content.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/error.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/home.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/master.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/search.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/Views/xMLSitemap.cshtml
create mode 100644 Umbraco Tag Manager.TestSite.V10/appsettings.Development.json
create mode 100644 Umbraco Tag Manager.TestSite.V10/appsettings.json
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/about.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/authors.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/blog.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/categories.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community_fa0pue2k.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences_dpraan01.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/contact.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/error.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-1.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-new.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/home.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups_fthd5e2w.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/paul-seal.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts-and-videos.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/popular-blogs.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/resources.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/search.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test_mgebztva.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/umbraco.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/videos.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/xmlsitemap.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/youtube-tutorials.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/article.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlecontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlelist.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/author.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/authorlist.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/category.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/categorylist.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contact.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contactformcontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/content.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contentcontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/error.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/footercontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/headercontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/hideproperty.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/home.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/listpagesettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/mainimagecontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/search.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/seocontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/spacingproperties.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorow.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorowsettings.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/visibilitycontrols.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/xmlsitemap.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ApprovedColor.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListIconList.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListMainContent.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/CheckboxList.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentmentCodeEditor.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListAuthors.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListCategoryList.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListSpacing.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListYesNoClearable.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePickerWithTime.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Dropdown.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DropdownMultiple.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageCropper.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageMediaPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelBigint.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDatetime.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDecimal.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelInteger.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelString.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelTime.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewContent.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMedia.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMembers.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerLegacy.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerSVGImage.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MemberPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiURLPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleImageMediaPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Numeric.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Radiobox.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/RichtextEditor.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SingleUrlPicker.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SliderSpacing.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/TagList.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags1.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textarea.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textstring.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Truefalse.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadArticle.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadAudio.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadFile.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVectorGraphics.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVideo.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.by.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.on.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.posted.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/articlelist.viewall.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/author.readmore.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.email.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.message.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.name.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.send.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrightstatement.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrighttitle.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.menutitle.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.sitename.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.next.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.of.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.page.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.previous.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.placeholder.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.results.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.searchbutton.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/1121_en-gb.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-en_en-gb.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_en-gb.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_fr.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_dbrlnjf3.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_r1rpmviu.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-gb.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-us.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr-fr.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/24-days-people-at-codegarden.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors_gknjjwq4.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/bluetooth-white-keyboard.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/candid-contributions.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/cc-paypal.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/chairs-lamps.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/codegarden-keynote.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/community-front-row.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/desktop-notebook-glasses.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/diary.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/discord.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/first-timers-at-codegarden.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/friendly-chair.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/front-row-audience-smiles.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github-alt.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon_y5vnqpay.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/meetup-organizers-at-codegarden.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/package-manifest.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/paypal.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/phone-pen-binder.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/podcast-headphones-coffee.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/profile-pic-2023.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/sample-images.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/say-cheese.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/share-nodes.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/skrift-at-codegarden.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/social-icons.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-github.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-twitter.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/triangle-table-chairs.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/tutorials.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/twitter.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbraco.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbracoffee-codegarden.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/file.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/folder.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/image.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaarticle.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaaudio.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavideo.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/MemberTypes/member.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/article.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/articlelist.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/author.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/authorlist.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/contact.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/content.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/error.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/home.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/master.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/search.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/xmlsitemap.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/uSync/v9/usync.config
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/highlightjs-copy.min.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/styles.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/swiffy-slider.min.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/vs2015.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.default.min.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.min.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlightjs-copy.min.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/initHighlight.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/scripts.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/swiffy-slider.min.js
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/css/dropdownStyles.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/css/index.css
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/css/index.css.map
create mode 100644 Umbraco Tag Manager.TestSite.V10/wwwroot/favicon.ico
delete mode 100644 Umbraco Tag Manager/Migrations/MediaWIzPackageMigrationPlan.cs
delete mode 100644 Umbraco Tag Manager/Migrations/TagManagerMigrationHelper.cs
diff --git a/README.md b/README.md
index ca72405..786907d 100644
--- a/README.md
+++ b/README.md
@@ -12,20 +12,21 @@ Creates a tree view of all Tags that have been created by the Umbraco Tag Dataty
The tree is split into separate branches for each tag Group created - useful if you run multiple blogs on your site, or have multiple Tag Groups defined in a site.
1. Create Tag Groups.
-1. Ability to change Tags.
-2. Ability to delete Tags, single & multiple.
+1. Create and change Tags.
+2. Delete Tags, single & multiple.
3. Indication of how many times the Tag is currently being used (number in brackets in Group overview).
4. Ability to merge Tags - useful in cases of spelling mistakes, cleaning up Tags, etc.
5. Links to content and media where Tag is used.
+6. Language variant/invariant support.
-## Tag List
+## Tag List Property Editor
Provides a multi select (read-only) list of all tags assigned to the group.
1. Choose one or more tags from the list
2. Works on Content and Media Doctypes.
+3. Language variant/invariant support (Media is invariant only)
3. Tags are saved to the default internal and external indexes in CSV format.
## Roadmap
-1. Language variant support
2. Content editors can add tags to a Tag List, enabled in a Pre-value switch.
3. Umbraco 14 support
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/.gitignore b/Umbraco Tag Manager.TestSite.V10/.gitignore
new file mode 100644
index 0000000..d183720
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/.gitignore
@@ -0,0 +1,478 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# Tye
+.tye/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+##
+## Visual studio for Mac
+##
+
+
+# globs
+Makefile.in
+*.userprefs
+*.usertasks
+config.make
+config.status
+aclocal.m4
+install-sh
+autom4te.cache/
+*.tar.gz
+tarballs/
+test-results/
+
+# Mac bundle stuff
+*.dmg
+*.app
+
+# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
+# Windows thumbnail cache files
+Thumbs.db
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+##
+## Visual Studio Code
+##
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+##
+## Umbraco CMS
+##
+
+# JSON schema file for appsettings.json
+appsettings-schema.json
+
+# Packages created from the backoffice (package.xml/package.zip)
+/umbraco/Data/CreatedPackages/
+
+# Temp folder containing Examine indexes, NuCache, MediaCache, etc.
+/umbraco/Data/TEMP/
+
+# SQLite database files
+/umbraco/Data/*.sqlite.db
+/umbraco/Data/*.sqlite.db-shm
+/umbraco/Data/*.sqlite.db-wal
+
+# Log files
+/umbraco/Logs/
+
+# Media files
+/wwwroot/media/
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/da.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/da.xml
new file mode 100644
index 0000000..a6a98b6
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/da.xml
@@ -0,0 +1,41 @@
+
+
+
+ Chriztian Steinmeier
+ https://greystate.dk
+
+
+ Contentment
+
+
+ Er du sikker på, at du vil fjerne denne element?
+ Ja, fjern
+
+
+ Dette element er ikke længere tilgængeligt
+ Fjern venligst konfigurationen og vælg et andet element.
+
+
+ Vælg og konfigurer en visningstype
+ Vælg og konfigurer en elementtype
+
+ Kopier alle blokke
+ Rediger værdi
+
+ Kopier indholdselement
+ Opret indholdsskabelon...
+
+
+ Vælg og konfigurer en datakilde
+ Vælg og konfigurer en liste
+ Vælg og konfigurer en datakilde og en listeeditor, tak.
+ Vælg og konfigurer en datakilde, tak.
+ Vælg og konfigurer en liste, tak.
+ Datakilden returnerede ingen elementer til forhåndsvisning.
+
+ Tjek alle
+ Fjern markeringen af alle
+
+ Indtast nøgleord (tryk på Enter efter hvert nøgleord)...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/en.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/en.xml
new file mode 100644
index 0000000..1003bc6
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/en.xml
@@ -0,0 +1,43 @@
+
+
+
+ Lee Kelleher
+ https://leekelleher.com
+
+
+ Contentment
+
+
+ Are you sure you want to remove this item?
+ Yes, remove
+
+
+ This item is no longer available
+ Please remove this configuration and select another item.
+
+
+ Select and configure a display mode
+ Select and configure an element type
+
+ Copy all blocks
+ Edit raw value
+
+ Copy content block
+ Create content template...
+
+
+ Data source
+ List editor
+ Select and configure a data source
+ Select and configure a list editor
+ Please select and configure a data source and list editor.
+ Please select and configure a data source.
+ Please select and configure a list editor.
+ The data source returned no items to preview.
+
+ Check all
+ Uncheck all
+
+ Type to select an item...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/es.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/es.xml
new file mode 100644
index 0000000..84edcbf
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/es.xml
@@ -0,0 +1,41 @@
+
+
+
+ Alex Freire
+ https://github.com/Happy-reindeer007
+
+
+ Contentment
+
+
+ ¿Estás seguro de que quieres eliminar este elemento?
+ Sí, eliminar
+
+
+ Este elemento ya no está disponible
+ Por, favor, elimina esta configuración y selecciona otro elemento.
+
+
+ Selecciona y configura un modo de visualización
+ Selecciona y configura un tipo de elemento
+
+ Copiar todos los bloques
+ Editar valor original
+
+ Copiar bloque de contenido
+ Crear plantilla de contenido...
+
+
+ Selecciona y configura una fuente de datos
+ Selecciona y configura un editor de listas
+ Por favor, selecciona y configura una fuente de datos y un editor de listas.
+ Por favor, selecciona y configura una fuente de datos.
+ Por favor, selecciona y configura un editor de listas.
+ La fuente de datos no devolvió ningún elemento que previsualizar.
+
+ Seleccionar todo
+ Deseleccionar todo
+
+ Escribe para seleccionar un elemento...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/fr.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/fr.xml
new file mode 100644
index 0000000..d059348
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/fr.xml
@@ -0,0 +1,41 @@
+
+
+
+ Michaël Latouche
+ https://github.com/mikecp
+
+
+ Contentment
+
+
+ Etes-vous certain.e de vouloir supprimer cet élément?
+ Oui, supprimer
+
+
+ Cet élément n'est plus disponible
+ Veuillez supprimer cette configuration et sélectionner un autre élément.
+
+
+ Sélectionnez et configurez un mode d'affichage
+ Sélectionnez et configurez un type d'élément
+
+ Copier tous les blocs
+ Modifier la valeur brute
+
+ Copier le bloc de contenu
+ Créer un modèle de contenu...
+
+
+ Sélectionnez et configurez une source de données
+ Sélectionnez et configurez un éditeur de liste
+ Veuillez sélectionner et configurer une source de données et un éditeur de liste.
+ Veuillez sélectionner et configurer une source de données.
+ Veuillez sélectionner et configurer un éditeur de liste.
+ La source de données n'a retourné aucun élément à prévisualiser.
+
+ Tout sélectionner
+ Tout désélectionner
+
+ Ecrivez pour sélectionner un élément...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/nl.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/nl.xml
new file mode 100644
index 0000000..d98bc3b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/nl.xml
@@ -0,0 +1,41 @@
+
+
+
+ Erik-Jan Westendorp
+ https://twitter.com/ewestendorp
+
+
+ Contentment
+
+
+ Weet je zeker dat je dit item wilt verwijderen?
+ Ja, verwijder
+
+
+ Dit item is niet langer beschikbaar
+ Verwijder deze configuratie en selecteer een ander item.
+
+
+ Selecteer en configureer een weergavemodus
+ Selecteer en configureer een elementtype
+
+ Kopieer alle blokken
+ Ruwe waarde bewerken
+
+ Inhoudsblok kopiëren
+ Inhoudssjabloon maken...
+
+
+ Selecteer en configureer een gegevensbron
+ Selecteer en configureer een lijsteditor
+ Selecteer en configureer een gegevensbron en lijsteditor.
+ Selecteer en configureer een gegevensbron.
+ Selecteer en configureer een lijsteditor.
+ De gegevensbron heeft geen items geretourneerd om te bekijken.
+
+ Alles selecteren
+ Alles deselecteren
+
+ Typ om een item te selecteren...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/pt.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/pt.xml
new file mode 100644
index 0000000..0434610
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/pt.xml
@@ -0,0 +1,41 @@
+
+
+
+ Renan Domingues, Leonardo Bottaro
+ https://github.com/RenanOD
+
+
+ Contentment
+
+
+ Tem certeza que deseja remover este item?
+ Sim, remover
+
+
+ Este item não está mais disponível
+ Por favor remova esta configuração e selecione outro item.
+
+
+ Selecionar e configurar o modo de exibição
+ Selecionar e configurar o tipo de elemento
+
+ Copiar todos os blocos
+ Alterar o valor original
+
+ Copiar o conteúdo do bloco
+ Criar modelo de conteúdo...
+
+
+ Selecionar e configurar uma origem de dados
+ Selecionar e configurar um editor de lista
+ Por favor selecione e configure uma origem de dados e um editor de lista.
+ Por favor selecione e configure uma origem de dados.
+ Por favor selecione e configure um editor de lista.
+ A fonte de dados não retornou nenhum item para visualização.
+
+ Marcar todos
+ Desmarcar todos
+
+ Digite para selecionar um item...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/sv.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/sv.xml
new file mode 100644
index 0000000..db206fa
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/Lang/sv.xml
@@ -0,0 +1,41 @@
+
+
+
+ Markus Johansson
+ https://twitter.com/markusjoha
+
+
+ Contentment
+
+
+ Är du säker på att du vill radera?
+ Ja, radera
+
+
+ Denna är inte längre tillgänglig
+ Vänligen radera denna konfiguration och välj en annan.
+
+
+ Välj och konfigurera visningsläge
+ Välj och konfigurera elementtyp
+
+ Kopiera alla block
+ Redigera underliggande värde
+
+ Kopiera innehållsblock
+ Skapa en innehållsmall...
+
+
+ Välj och konfigurera en data källa
+ Välj och konfiguera en list editor.
+ Vänligen välj och konfigurera en datakälla eller list editor.
+ Vänligen välj och konfigurera en datakälla.
+ Vänligen välj och konfigurera en list editor.
+ Datakällan returnerade inget resultat att visa.
+
+ Markera alla
+ Avmarkera alla
+
+ Skriv för att välja...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/index.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/index.html
new file mode 100644
index 0000000..38f1068
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/index.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Whilst Contentment is a free and open-source package, I have invested a huge amount of time and effort into its product design, development and maintenance. If you enjoy using these powerful property-editors and want to see me continue my efforts with more quality editors, please consider supporting my development with a GitHub sponsorship .
+
I'd like to say heartfelt thank you to all my existing sponsors, I appreciate your support.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Telemetry
+
The telemetry feature has been disabled. 🤐
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/kilroy.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/kilroy.svg
new file mode 100644
index 0000000..60b95c5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/kilroy.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/lee-was-here.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/lee-was-here.svg
new file mode 100644
index 0000000..bae77c7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/contentment/lee-was-here.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-contentment.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-contentment.svg
new file mode 100644
index 0000000..9e0afbf
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-contentment.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-facebook.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-facebook.svg
new file mode 100644
index 0000000..a73a432
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-github.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-github.svg
new file mode 100644
index 0000000..039f217
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-instagram.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-instagram.svg
new file mode 100644
index 0000000..2b58df4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-instagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-linkedin.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-linkedin.svg
new file mode 100644
index 0000000..9a52af2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-linkedin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-mastodon.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-mastodon.svg
new file mode 100644
index 0000000..4746752
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-mastodon.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-twitter.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-twitter.svg
new file mode 100644
index 0000000..c13d476
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-youtube.svg b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-youtube.svg
new file mode 100644
index 0000000..4491540
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/backoffice/icons/icon-youtube.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/blocks-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/blocks-editor.html
new file mode 100644
index 0000000..f1392f2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/blocks-editor.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove
+
+
+
+
+
+
+
+ ...
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/cards-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/cards-editor.html
new file mode 100644
index 0000000..943d2fe
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/cards-editor.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove
+
+
+
+
+
+ ...
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/list-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/list-editor.html
new file mode 100644
index 0000000..d0eea3a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/list-editor.html
@@ -0,0 +1,29 @@
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/stack-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/stack-editor.html
new file mode 100644
index 0000000..fada08e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/components/stack-editor.html
@@ -0,0 +1,56 @@
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.css b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.css
new file mode 100644
index 0000000..ce465f9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.css
@@ -0,0 +1 @@
+.contentment.lk-buttons .umb-button{margin-bottom:5px}.contentment.lk-buttons .umb-button--selected .umb-button__button{background-color:#f5c1bc}.contentment.lk-buttons .umb-button__button{padding-left:20px;padding-right:20px}.contentment.lk-buttons .umb-button__button[disabled]{opacity:.5}.contentment.umb-checkboxlist ul.toggle-all{margin-bottom:15px}.contentment.umb-checkboxlist ul li label{margin-bottom:8px}.contentment .umb-form-check__text .icon{padding-right:2px}.contentment .umb-form-check__text small{display:block;padding-top:0}.umb-editor--small .contentment .form-horizontal .umb-control-group .control-header{float:none;width:100%}.umb-editor--small .contentment .form-horizontal .controls{margin-left:0}.umb-editor--small .contentment .form-horizontal .control-label{float:none;width:100%}.umb-editor--small .contentment .form-horizontal .umb-readonlyvalue .alert{margin-bottom:10px}.lk-content-blocks__container{max-width:845px}.lk-content-blocks__block{display:flex;flex-direction:row;flex-wrap:nowrap;margin-bottom:10px}.lk-content-blocks__block .lk-content-blocks__preview{flex:1;position:relative}.lk-content-blocks__block .lk-content-blocks__preview:after{content:"";background:rgba(225,225,225,.5);border-radius:3px;box-shadow:0 1px 1px 0 rgba(33,33,66,.2);position:absolute;top:0;bottom:0;left:0;right:0;transition:opacity .12s}.lk-content-blocks__block .lk-content-blocks__preview:hover:after{opacity:.66}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--left{background-color:#fff;border-radius:3px;display:flex;flex-direction:row;font-size:12px;padding:0 5px;position:absolute;top:5px;left:5px;z-index:20}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--left .icon{padding-top:4px;padding-right:4px}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--default{text-align:center;padding:30px 10px 15px}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--default .icon{font-size:40px}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--default h5{font-size:14px}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--markup pre.error{margin:35px 10px 10px 10px}.lk-content-blocks__block .lk-content-blocks__preview .lk-content-blocks__preview--markup pre.error code{font-size:small;white-space:pre-wrap}.lk-content-blocks__block .lk-content-blocks__actions{flex:0 0 34px;padding:10px 0 0 7px;margin:0;list-style:none}.lk-content-blocks__block .lk-content-blocks__actions .lk-content-blocks__action--item .icon{color:#1b264f;font-size:18px;padding:5px 10px}.lk-content-blocks__block .lk-content-blocks__actions .lk-content-blocks__action--item .icon:hover{color:#2152a3}.lk-content-blocks__block .lk-content-blocks__actions .lk-content-blocks__action--item>button{background:none;border:none;font-size:18px;cursor:pointer;color:#162335;margin:0;padding:7px 0}.lk-content-blocks__block .lk-content-blocks__actions .umb-property-actions{position:relative;display:inline-block;float:none;margin:3px 0 0 7px}.lk-content-blocks__block .lk-content-blocks__actions .umb-property-actions .umb-property-actions__menu,.lk-content-blocks__block .lk-content-blocks__actions .umb-property-actions .umb-property-actions__menu-open-toggle{right:0}.lk-content-blocks__block .lk-content-blocks__actions .umb-property-actions__toggle{opacity:1;background-color:transparent}.lk-content-blocks__block .lk-content-blocks__actions .umb-property-actions__toggle:hover{background-color:#f9f6f5}.lk-content-blocks .umb-node-preview-add{margin-right:45px}.contentment button.lk-content-blocks__edit{background:transparent;border:none;position:absolute;top:0;bottom:0;left:0;width:100%;z-index:25}.contentment.umb-block-list .umb-block-list__wrapper{max-width:800px}.contentment .lk-data-list-item{max-width:770px;display:flex;align-items:center;padding:10px 15px;background:#f3f3f5;margin-bottom:1px}.contentment .lk-data-list-item:last-of-type{margin-bottom:0}.contentment .lk-data-list-item .lk-data-list-item__handle{font-size:14px;color:#d8d7d9;margin-right:15px}.contentment .lk-data-list-item .lk-data-list-item__icon{margin-right:1rem}.contentment .lk-data-list-item .lk-data-list-item__icon>button{border:1px solid #d8d7d9;background:#fff;font-size:30px;padding-top:5px;width:50px;height:50px}.contentment .lk-data-list-item .lk-data-list-item__text{flex:1;margin-right:1rem}.contentment .lk-data-list-item .lk-data-list-item__remove{position:relative;cursor:pointer}.contentment .lk-data-list-item .lk-data-list-item__remove>button:focus{outline:auto}.contentment .well.well--limit-width{max-width:760px}.contentment .well.well-small.well--limit-width{max-width:780px}.contentment .well.well-large.well--limit-width{max-width:760px}.contentment.umb-readonlyvalue.editor-note .umb-icon{padding:0 20px 0 10px;height:48px;width:48px}.contentment.umb-readonlyvalue.editor-note p:last-child{margin-bottom:.25rem}.contentment.umb-readonlyvalue.editor-note.alert-info>.umb-icon .color-black,.contentment.umb-readonlyvalue.editor-note.alert-success>.umb-icon .color-black,.contentment.umb-readonlyvalue.editor-note.alert-warning>.umb-icon .color-black,.contentment.umb-readonlyvalue.editor-note.alert-error>.umb-icon .color-black{color:#fff !important}.contentment.umb-readonlyvalue.editor-note h5{color:inherit}.umb-editor--infiniteMode .contentment.umb-readonlyvalue.editor-note .umb-icon{height:32px;width:32px}.contentment .lk-icon-picker-small{border:1px dashed #d8d7d9;color:#d8d7d9;display:inline-block;height:20px;padding:5px 0;text-align:center;width:30px}.contentment .lk-icon-picker-small:focus,.contentment .lk-icon-picker-small:hover{border-color:#2152a3;color:#2152a3;text-decoration:none}.contentment .lk-icon-picker-small i.color-black{color:#000}.contentment .umb-mediapicker .umb-sortable-thumbnails__wrapper>.icon{font-size:50px}.contentment .umb-mediapicker .umb-sortable-thumbnails__wrapper>small{text-align:center}.contentment.lk-overlay .umb-panel .form-search{margin-bottom:15px}.contentment .umb-card-grid .umb-card-grid-item{padding-top:20%;padding-bottom:20%}.contentment .umb-action-link .umb-checkmark{margin-right:15px;min-width:30px}.contentment .umb-action-link .menu-label{margin-left:15px;padding-left:0;white-space:normal}.contentment.lk-overlay .umb-action.-disabled{opacity:.5}.contentment.lk-overlay .umb-action.-disabled .umb-card-grid-item,.contentment.lk-overlay .umb-action.-disabled .umb-action-link,.contentment.lk-overlay .umb-action.-disabled .umb-checkmark{cursor:not-allowed}.contentment.lk-overlay .umb-action.-disabled .umb-checkmark:hover{border-color:#bbbabf;color:#1b264f}.contentment.lk-overlay .umb-action.-disabled .umb-checkmark.icon-check:before{content:""}.contentment.lk-overlay .umb-action:not(.-disabled) .umb-checkmark:not(.umb-checkmark--checked).icon-check:before{content:none}.contentment .umb-card-grid .alert{flex:none;font-size:inherit;text-align:inherit;width:100%;max-width:100%}.contentment.umb-readonlyvalue{max-width:100%;word-break:break-word}.umb-readonlyvalue details summary{cursor:pointer}.umb-readonlyvalue details summary+*{margin-top:.5rem}.umb-readonlyvalue .well{margin-bottom:10px}.umb-readonlyvalue .well blockquote p{font-size:16px;margin-bottom:10px}.umb-readonlyvalue .well hr{border-bottom:1px solid #e0e0e5;margin:15px 0}.contentment.umb-radiobuttons ul.unstyled li{margin-bottom:5px}.contentment .umb-tags .tag{user-select:text}.contentment .umb-tags .tag .icon{color:#fff !important}.contentment .umb-tags .tag .btn-reset{line-height:14px}.contentment .umb-tags .tag .icon-trash{bottom:0}.contentment.templated-list button.btn.disabled{cursor:not-allowed !important;opacity:.5}.contentment .text-input{width:100%;max-width:800px}.contentment .text-input.input-prepend .umb-textstring,.contentment .text-input.input-append .umb-textstring{width:calc(100% - 36px)}.contentment .text-input.input-prepend.input-append .umb-textstring{width:calc(100% - 72px)}.contentment .text-input .add-on:hover{border-color:#d8d7d9;color:#1b264f}[class].icon-fa{font-family:FontAwesome;text-align:center}.umb-tree-icon.icon-fa{width:20px}.alert-form a{color:#1b264f}.contentment .umb-box-content p{line-height:1.5rem}.contentment .umb-block-card ._\5fshowcase{background-color:rgba(0,0,0,.25);background-size:cover}.contentment .umb-block-card ._\5finfo ._\5fname,.contentment .umb-block-card ._\5finfo ._\5fsubname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:10px}.contentment .umb-block-card._\5f fade{opacity:.5}.contentment .umb-block-card ._\5f actions>button{padding-top:3px}.contentment .umb-block-card ._\5finfo ._\5fsubname{margin-right:16px}.umb-group-panel--hide{all:unset;background:none;box-shadow:none !important}.umb-group-panel--hide .umb-group-panel__header{display:none}.umb-group-panel--hide .umb-group-panel__content{padding:0}.umb-group-panel--hide .umb-box-content{padding:0}
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.js
new file mode 100644
index 0000000..77251c2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/contentment.js
@@ -0,0 +1 @@
+angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.Buttons.Controller",["$scope",function(n){function u(){n.model.value=n.model.value||i.defaultValue;Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]);t.multiple=Object.toBoolean(i.enableMultiple);t.multiple===!1&&n.model.value.length>0&&n.model.value.splice(1);t.hideIcon=i.labelStyle==="text";t.hideName=i.labelStyle==="icon";t.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;t.size=i.size;t.defaultIcon=i.defaultIcon;t.iconExtras=(t.hideName===!1?" mr2 ":" mr0 ")+{s:"small",m:"medium",l:"large"}[i.size];t.items=[];i.items.forEach(i=>{var r=Object.assign({},i);r.selected=n.model.value.indexOf(r.value)>-1;t.items.push(r)});t.select=e;n.umbProperty&&(t.propertyActions=[],Object.toBoolean(i.allowClear)===!0&&t.propertyActions.push({labelKey:"buttons_clearSelection",icon:"trash",method:f}),t.propertyActions.length>0&&n.umbProperty.setPropertyActions(t.propertyActions))}function f(){n.model.value=[];t.items.forEach(n=>n.selected=!1);r()}function e(i){i.selected=i.selected===!1;n.model.value=[];t.items.forEach(r=>{t.multiple===!1&&(r.selected=r.value===i.value),r.selected&&n.model.value.push(r.value)});r()}function r(){n.propertyForm&&n.propertyForm.$setDirty()}var i=Object.assign({},{allowClear:0,defaultIcon:"icon-science",defaultValue:[],items:[],enableMultiple:0,labelStyle:"both",size:"m"},n.model.config),t=this;u()}]);angular.module("umbraco.filters").filter("formatBytes",function(){return function(n,t){if(n===0||t===undefined)return"0 Bytes";const i=parseInt(t.kilo)||1024,u=parseInt(t.decimals)||0,r=Math.floor(Math.log(n)/Math.log(i));return parseFloat((n/Math.pow(i,r)).toFixed(u))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][r]}});angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.CascadingDropdownList.Controller",["$scope","$q","$http",function(n,t,i){function f(){var h,f,s,o;if(n.model.value=n.model.value||u.defaultValue,r.dropdowns=[],u.apis.length>0){for(r.loading=!0,h=[],f=0;ff&&(r.loading=!0,e=u.apis[f].replace(/{(\d+)}/g,function(t,i){return typeof n.model.value[i]!="undefined"?n.model.value[i]:t}),i({method:"GET",url:e}).then(function(n){r.dropdowns[f]={options:n.data};r.loading=!1}));o()}function o(){n.propertyForm&&n.propertyForm.$setDirty()}if(!n.model.hasOwnProperty("contentTypeId")){var u=Object.assign({},{apis:[],defaultValue:[""]},n.model.config),r=this;f()}}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.CheckboxList.Controller",["$scope","localizationService",function(n,t){function f(){n.model.value=n.model.value||r.defaultValue;Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]);i.items=[];r.items.forEach(t=>{var r=Object.assign({},t);r.checked=n.model.value.indexOf(r.value)>-1;i.items.push(r)});i.showDescriptions=Object.toBoolean(r.showDescriptions);i.showIcons=Object.toBoolean(r.showIcons);i.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;i.changed=e;i.labelCheckAll="Check all";i.labelUncheckAll="Uncheck all";t.localizeMany(["contentment_checkboxListCheckAll","contentment_checkboxListUncheckAll"]).then(function(n){i.labelCheckAll=n[0];i.labelUncheckAll=n[1]});i.toggleAll=Object.toBoolean(r.checkAll);i.toggleAll&&(i.toggle=o,i.toggleChecked=i.items.every(n=>n.checked))}function e(){i.toggleChecked=i.items.every(n=>n.checked);n.model.value=[];i.items.forEach(t=>{t.checked&&n.model.value.push(t.value)});u()}function o(){n.model.value=[];i.items.forEach(t=>{t.disabled||(t.checked=i.toggleChecked,t.checked&&n.model.value.push(t.value))});u()}function u(){n.propertyForm&&n.propertyForm.$setDirty()}var r=Object.assign({},{items:[],checkAll:0,showDescriptions:0,showIcons:0,defaultValue:[]},n.model.config),i=this;f()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.CodeEditor.Controller",["$scope",function(n){function u(){i.cssClasses=n.model.labelOnTop?[]:["umb-property-editor--limit-width"];i.readonly=Object.toBoolean(t.readonly);i.options={autoFocus:!1,showGutter:Object.toBoolean(t.showGutter),useWrapMode:Object.toBoolean(t.useWrapMode),showInvisibles:Object.toBoolean(t.showInvisibles),showIndentGuides:Object.toBoolean(t.showIndentGuides),useSoftTabs:Object.toBoolean(t.useSoftTabs),showPrintMargin:Object.toBoolean(t.showPrintMargin),disableSearch:Object.toBoolean(t.disableSearch),theme:t.theme,mode:t.mode,firstLineNumber:t.firstLineNumber,advanced:{fontSize:t.fontSize,enableSnippets:Object.toBoolean(t.enableSnippets),enableBasicAutocompletion:Object.toBoolean(t.enableBasicAutocompletion),enableLiveAutocompletion:Object.toBoolean(t.enableLiveAutocompletion),minLines:t.minLines,maxLines:t.maxLines,wrap:Object.toBoolean(t.useWrapMode)}}}var r={showGutter:1,useWrapMode:1,showInvisibles:0,showIndentGuides:0,useSoftTabs:1,showPrintMargin:0,disableSearch:0,theme:"chrome",mode:"javascript",firstLineNumber:1,fontSize:"small",enableSnippets:0,enableBasicAutocompletion:0,enableLiveAutocompletion:0,readonly:0,minLines:undefined,maxLines:undefined},t=Object.assign({},r,n.model.config),i=this;u()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.ConfigurationEditorInline.Controller",["$scope","formHelper",function(n){function r(){t.editor=Object.assign({},i.editor);n.model.value=n.model.value||{key:t.editor.key,value:t.editor.defaultValues||{}};n.model.value.key!==t.editor.key&&(n.model.value.key=t.editor.key);t.editor.fields&&t.editor.fields.length>0&&t.editor.fields.forEach(t=>{t.alias=t.key,n.model.value.value.hasOwnProperty(t.key)&&(t.value=n.model.value.value[t.key])});n.$on("formSubmitting",function(){t.editor.fields&&t.editor.fields.length>0&&t.editor.fields.forEach(t=>{n.model.value.value[t.key]=t.value})})}var i=Object.assign({},{editor:{}},n.model.config),t=this;r()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.ConfigurationEditor.Controller",["$scope","$interpolate","$timeout","editorService","eventsService","localizationService","overlayService","Umbraco.Community.Contentment.Services.DevMode",function(n,t,i,r,u,f,e,o){function v(){n.model.value=n.model.value||[];Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]);n.model.value.forEach(n=>{n.hasOwnProperty("type")&&(n.key=n.type,delete n.type)});Number.isInteger(s.maxItems)===!1&&(s.maxItems=Number.parseInt(s.maxItems)||l.maxItems);s.itemLookup={};s.allowEdit={};s.expressions={};s.missingItem={};s.items.forEach(n=>{if(s.itemLookup.hasOwnProperty(n.key)===!1&&(s.itemLookup[n.key]=n),s.allowEdit.hasOwnProperty(n.key)===!1&&(s.allowEdit[n.key]=n.fields&&n.fields.length>0),s.expressions.hasOwnProperty(n.key)===!1&&(s.expressions[n.key]={},n.nameTemplate&&(s.expressions[n.key].name=t(n.nameTemplate)),n.descriptionTemplate&&(s.expressions[n.key].description=t(n.descriptionTemplate)),n.expressions))for(let[r,i]of Object.entries(n.expressions))i&&(s.expressions[n.key][r]=t(i))});f.localizeMany(["contentment_missingItemName","contentment_missingItemDescription"]).then(n=>{s.missingItem.name=n[0],s.missingItem.description=n[1],s.missingItem.icon="icon-alert"});h.allowAdd=s.maxItems===0||n.model.value.lengths.allowEdit[n.key];h.allowRemove=Object.toBoolean(s.allowRemove);h.allowSort=Object.toBoolean(s.disableSorting)===!1&&s.maxItems!==1;h.displayMode=s.displayMode||"list";h.sortableOptions={axis:"y",containment:"parent",cursor:"move",disabled:h.allowSort===!1,opacity:.7,scroll:!0,tolerance:"pointer",stop:()=>{c()}};h.addButtonLabelKey=s.addButtonLabelKey||"general_add";h.add=y;h.edit=p;h.populate=w;h.remove=b;h.propertyActions=[];Object.toBoolean(s.enableDevMode)&&h.propertyActions.push({labelKey:"contentment_editRawValue",icon:"brackets",method:()=>o.editValue(n.model,k)});i(()=>a(),100)}function y(){var t=Object.toBoolean(s.allowDuplicates)?s.items:s.items.filter(t=>n.model.value.some(n=>t.key===n.key)===!1);r.open({view:s.overlayView,size:s.items.length===1?s.items[0].overlaySize:"small",config:{mode:"select",autoSelect:s.items.length===1,label:n.model.label,items:t,enableFilter:Object.toBoolean(s.enableFilter),orderBy:s.orderBy,help:s.help,cacheKey:n.model.alias},value:{},submit:function(t){n.model.value.push(t);s.maxItems!==0&&n.model.value.length>=s.maxItems&&(h.allowAdd=!1);c();r.close()},close:function(){r.close()}})}function p(t){var i=n.model.value[t],u=s.itemLookup[i.key];r.open({view:s.overlayView,size:u.overlaySize,config:{mode:"edit",editor:u,cacheKey:n.model.alias},value:i,submit:function(i){n.model.value[t]=i;c();r.close()},close:function(){r.close()}})}function a(){u.emit("contentment.config-editor.model",n.model)}function w(n,t,i){var f="",r,u;return s.itemLookup.hasOwnProperty(n.key)===!1&&s.missingItem?s.missingItem[i]||i:(s.expressions.hasOwnProperty(n.key)===!0&&(r=s.expressions[n.key],r.hasOwnProperty(i)===!0&&(u=r[i],u&&(n.value.$index=t+1,f=u(n.value),delete n.value.$index))),f||s.itemLookup[n.key][i])}function b(t){f.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(function(i){e.open({title:i[1],content:i[0],closeButtonLabel:i[2],submitButtonLabel:i[3],submitButtonStyle:"danger",submit:function(){n.model.value.splice(t,1);(s.maxItems===0||n.model.value.length=s.maxItems?!1:!0;c()}function c(){n.propertyForm&&n.propertyForm.$setDirty();a()}var l={addButtonLabelKey:"general_add",allowDuplicates:0,allowRemove:1,disableSorting:0,displayMode:"list",enableDevMode:0,enableFilter:0,help:null,items:[],maxItems:0,orderBy:"name",overlayView:""},s=Object.assign({},l,n.model.config),h=this;v()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.Overlays.ConfigurationEditor.Controller",["$scope","formHelper",function(n){function e(){if(t.mode=i.mode,t.mode==="select")i.autoSelect&&i.items.length===1?u(i.items[0]):(t.title="Select "+i.label.toLowerCase()+"...",t.help=i.help,t.items=i.items,t.enableFilter=i.enableFilter,t.orderBy=i.orderBy,t.select=u,t.cacheKey=i.cacheKey);else if(t.mode==="edit"&&i.editor){var f=n.model.value||{key:"",value:{}};r(i.editor,f)}t.close=o}function r(i,r){i.overlaySize&&n.model.size!==i.overlaySize&&(n.model.size=i.overlaySize);r.value||(r.value={});t.title="Configure "+i.name;t.editor=Object.assign({},i);t.editor.fields&&t.editor.fields.length>0&&t.editor.fields.forEach(n=>{n.alias=n.key,n.value=r.value[n.key]});t.save=f}function u(n){Array.isArray(n.fields)&&n.fields.length>0?(t.mode="edit",r(n,{value:n.defaultValues||{}})):f(n)}function o(){n.model.close&&n.model.close()}function f(t){n.$broadcast("formSubmitting",{scope:n});var i={key:t.key,value:{}};t.fields&&t.fields.forEach(n=>{i.value[n.key]=n.value});n.model.submit&&n.model.submit(i)}var i=Object.assign({},{mode:"select",autoSelect:!0,label:"",items:[],editor:null,enableFilter:!1,orderBy:"name",help:null,cacheKey:null},n.model.config),t=this;e()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.ContentBlocks.Controller",["$scope","$q","$http","$interpolate","clipboardService","contentResource","editorService","editorState","localizationService","notificationsService","overlayService","umbRequestHelper","Umbraco.Community.Contentment.Services.DevMode",function(n,t,i,r,u,f,e,o,s,h,c,l,a){function nt(){v.currentPage=n.node||o.getCurrent();v.currentPageId=v.currentPage.id>0?v.currentPage.id:v.currentPage.parentId;v.currentPageId||(v.currentPageId=-1);n.model.value=n.model.value||[];n.model.value===""&&(n.model.value=[]);Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]);v.elementTypeScaffoldCache={};v.elementTypeLookup={};v.nameTemplates={};v.contentBlockTypes.forEach(n=>{v.elementTypeLookup[n.key]=n,v.nameTemplates[n.key]=r(n.nameTemplate||"Item {{ $index }}")});y.addButtonLabelKey=v.addButtonLabelKey||"grid_addElement";y.displayMode=v.displayMode;y.enablePreview=Object.toBoolean(v.enablePreview);y.allowAdd=v.maxItems===0||v.maxItems==="0"||n.model.value.lengthb();y.previews=[];y.blockActions=[];for(var t=0;tp(n)}),Object.toBoolean(v.allowCreateContentTemplate)===!0&&t.push({labelKey:"contentment_createContentTemplate",icon:"blueprint",method:()=>ft(n)}),t}function tt(){e.open({config:{elementTypes:v.contentBlockTypes,enableFilter:v.enableFilter,currentPage:v.currentPage,currentPageId:v.currentPageId},size:v.contentBlockTypes.length===1?v.contentBlockTypes[0].overlaySize:"small",value:null,view:v.overlayView,submit:function(t){n.model.value.push(t);var i=n.model.value.length-1;y.blockActions.push(g(i));w(i);v.maxItems!==0&&v.maxItems!=="0"&&n.model.value.length>=v.maxItems&&(y.allowAdd=!1);d();e.close()},close:function(){e.close()}})}function p(i){var e=n.model.value[i],r=v.elementTypeLookup[e.elementType],o=k(e,i),s=v.elementTypeScaffoldCache.hasOwnProperty(r.alias)===!1?f.getScaffold(v.currentPageId,r.alias):t.when(v.elementTypeScaffoldCache[r.alias]);s.then(n=>{var i,s,f,t;if(v.elementTypeScaffoldCache.hasOwnProperty(r.alias)===!1&&(v.elementTypeScaffoldCache[r.alias]=n),n.name=o,n.variants[0].name=o,e.value)for(i=0;i{n&&n.elementKey&&n.markup&&(y.previews[n.elementKey]={loading:!1,markup:n.markup})}))}}function b(){if(y.enablePreview===!0)for(var t=0;t{c.open({title:i[1],content:i[0],closeButtonLabel:i[2],submitButtonLabel:i[3],submitButtonStyle:"danger",submit:function(){n.model.value.splice(t,1);y.blockActions.pop();b();(v.maxItems===0||v.maxItems==="0"||n.model.value.length{var r=n.model.value[t],u=k(r,t),e=v.elementTypeLookup[r.elementType];c.open({disableBackdropClick:!0,title:s.tokenReplace(i[0],[u]).replace("","'").replace("<\/em>","'"),description:i[1],blueprintName:u,view:"/App_Plugins/Contentment/editors/content-blocks.blueprint.html",closeButtonLabel:i[4],submitButtonLabel:i[5],submitButtonStyle:"action",submit:function(n){delete n.error;n.submitButtonState="busy";var t={save:!0,name:n.blueprintName,tabs:[{properties:Object.entries(r.value).map(n=>({id:0,alias:n[0],value:n[1]}))}]},o={action:"saveNew",id:0,parentId:-1,contentTypeAlias:e.alias,expireDate:null,releaseDate:null,templateAlias:null,variants:[Object.assign({},t,{save:!0})]};f.saveBlueprint(o,!0,[],!1).then(t=>{n.submitButtonState="success",h.success(i[2],s.tokenReplace(i[3],[u])),e.blueprints.push({id:t.id,name:t.variants[0].name}),c.close()},t=>{n.submitButtonState="error",n.error=t.data.ModelState.Name[0]})},close:function(){c.close()}})})}function d(){n.propertyForm&&n.propertyForm.$setDirty()}var v=Object.assign({},{addButtonLabelKey:"grid_addElement",allowCopy:1,allowCreateContentTemplate:0,allowEdit:1,allowRemove:1,contentBlockTypes:[],disableSorting:0,displayMode:"blocks",enableDevMode:0,enableFilter:0,enablePreview:0,maxItems:0,overlayView:""},n.model.config),y=this;nt()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.Overlays.ContentBlocks.Controller",["$scope","blueprintConfig","clipboardService","contentResource",function(n,t,i,r){function h(){u.submit=y;u.close=p;u.contentNodeModel=f.currentPage||{variants:[]};f.elementType&&n.model.value?s(f.elementType,n.model.value):(u.mode="select",u.items=f.elementTypes,u.selectedElementType=null,u.clipboardItems=typeof i.retrieveDataOfType=="function"?i.retrieveDataOfType("elementType",f.elementTypes.map(n=>n.alias)):i.retriveDataOfType("elementType",f.elementTypes.map(n=>n.alias)),f.elementTypes.length>1||u.clipboardItems.length>0?(u.title="Add content",u.description="Select a content type...",u.icon="icon-page-add",u.selectBlueprint=!1,u.enableFilter=Object.toBoolean(f.enableFilter),u.select=o,u.paste=v,u.clearClipboard=c,u.prompt=!1,u.showPrompt=l,u.hidePrompt=a):f.elementTypes.length===1&&o(f.elementTypes[0]))}function c(){u.clipboardItems=[];i.clearEntriesOfType("elementType",f.elementTypes.map(n=>n.alias))}function l(){u.prompt=!0}function a(){u.prompt=!1}function o(n){n.blueprints&&n.blueprints.length>0?n.blueprints.length===1&&t.skipSelect?e(n,n.blueprints[0]):(u.title="Add content",u.description="Select a content blueprint...",u.icon="icon-blueprint",u.selectBlueprint=!0,u.selectedElementType=n,u.blueprintAllowBlank=t.allowBlank,u.create=e):e(n)}function e(t,i){n.model.size=t.overlaySize;u.mode="edit";u.loading=!0;u.title="Edit content";u.description=t.name;u.icon=t.icon;u.content={elementType:t.key,key:String.CreateGuid()};var e=i&&i.id>0?r.getBlueprintScaffold(f.currentPageId,i.id):r.getScaffold(f.currentPageId,t.alias);e.then(n=>{Object.assign(u.content,n.variants[0]),u.loading=!1})}function v(t){var e=f.elementTypes.find(n=>n.alias===t.contentTypeAlias),o,i,h,r,u;if(n.model.size=e.overlaySize,o={elementType:e.key,key:String.CreateGuid(),value:{}},t.variants.length>0)for(i=0;i{var i,e,r,f;if(t.value)for(i=0;i0)for(t=0;t{u(n),r.loading=!1})):r.node=null;r.showHelp=!1;r.showSearch=!1;r.pick=e;r.remove=o;r.show=s;r.hide=h;r.help=c;r.clear=l}function e(){t.treePicker({idType:"udi",section:"content",treeAlias:"content",multiPicker:!1,submit:function(i){var r=i.selection[0];u(r);n.model.value=r.udi;t.close()},close:function(){t.close()}})}function o(){n.model.value=null;r.node=null}function s(){r.showSearch=!0}function h(){r.showSearch=!1}function c(){r.showHelp=!r.showHelp}function l(){r.showSearch=!1;n.model.value=null}function u(n){r.node=n;i.getUrl(n.id,"Document").then(n=>{r.node.path=n})}var a=Object.assign({},{},n.model.config),r=this;f()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.DataList.Editor.Controller",["$scope","editorService","localizationService","overlayService","Umbraco.Community.Contentment.Services.DevMode",function(n,t,i,r,u){function l(){n.model.value=n.model.value||[];Number.isInteger(f.maxItems)===!1&&(f.maxItems=Number.parseInt(f.maxItems)||s.maxItems);f.confirmRemoval=Object.toBoolean(f.confirmRemoval);e.allowAdd=f.maxItems===0||n.model.value.lengtho()};e.notes=f.notes;e.add=a;e.blur=v;e.edit=h;e.open=y;e.remove=p;Object.toBoolean(f.enableDevMode)===!0&&n.umbProperty&&n.umbProperty.setPropertyActions([{labelKey:"contentment_editRawValue",icon:"brackets",method:h},{labelKey:"clipboard_labelForRemoveAllEntries",icon:"trash",method:()=>{n.model.value=[]}}])}function a(){e.focusName=e.hideIcon===!0;n.model.value.push({icon:f.defaultIcon,name:"",value:"",description:""});f.maxItems!==0&&n.model.value.length>=f.maxItems&&(e.allowAdd=!1);o()}function v(n){(n.name&&n.value==null||n.value==="")&&(n.value=n.name.toCamelCase())}function h(){u.editValue(n.model,()=>{})}function y(n){var i=n.icon.split(" ");t.iconPicker({icon:i[0],color:i[1],submit:function(i){n.icon=[i.icon,i.color].filter(n=>n).join(" ");e.focusName=!0;o();t.close()},close:function(){t.close()}})}function p(n){if(f.confirmRemoval===!0)i.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(t=>{r.open({title:t[1],content:t[0],closeButtonLabel:t[2],submitButtonLabel:t[3],submitButtonStyle:"danger",submit:function(){c(n);r.close()},close:function(){r.close()}})});else c(n)}function c(t){n.model.value.splice(t,1);(f.maxItems===0||n.model.value.length{u.tabs.forEach(n=>n.active=!1),u.activeTab=n.alias,n.active=!0};u.changeTab(u.tabs[0]);var t=[];t.push(i.on("contentment.config-editor.model",(n,t)=>{f[t.alias]=t.value,o()}));n.$on("$destroy",()=>{for(var n in t)i.unsubscribe(t[n])})}function o(){_.isEmpty(f.dataSource)===!1&&_.isEmpty(f.listEditor)===!1?(u.state="loading",u.property=null,r.resourcePromise(t.post("backoffice/Contentment/DataListApi/GetPreview",f),"Failed to retrieve data list preview.").then(n=>{u.property=n,u.state=n.config.items&&n.config.items.length>0?"loaded":"noItems",u.tabs[1].label="Data source items ("+n.config.items.length+")"})):u.state=_.isEmpty(f.dataSource)===!1?"dataSourceConfigured":_.isEmpty(f.listEditor)===!1?"listEditorConfigured":"init"}var f=Object.assign({alias:n.model.alias},n.model.config),u=this;e()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.DataListSource.Preview.Controller",["$scope","$http","eventsService","umbRequestHelper",function(n,t,i,r){function e(){u.property={};u.state="loading";u.tabs=[{label:"Data source items",alias:"dataSource",active:!1},{label:"JSON",alias:"rawJson",active:!1}];u.changeTab=n=>{u.tabs.forEach(n=>n.active=!1),u.activeTab=n.alias,n.active=!0};u.changeTab(u.tabs[0]);var t=[];t.push(i.on("contentment.config-editor.model",(n,t)=>{f[t.alias]=t.value,o()}));n.$on("$destroy",()=>{for(var n in t)i.unsubscribe(t[n])})}function o(){_.isEmpty(f.dataSource)===!1?(u.state="loading",u.items=null,r.resourcePromise(t.post("backoffice/Contentment/DataListApi/GetDataSourceItems",f),"Failed to retrieve data source items.").then(n=>{u.items=n.config.items,u.state=u.items&&u.items.length>0?"loaded":"noItems",u.tabs[0].label="Data source items ("+u.items.length+")"})):u.state="init"}var f=Object.assign({},n.model.config),u=this;e()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.DataTable.Controller",["$scope","Umbraco.Community.Contentment.Services.DevMode",function(n,t){function e(){n.model.value=n.model.value||[];Number.isInteger(r.maxItems)===!1&&(r.maxItems=Number.parseInt(r.maxItems)||f.maxItems);i.headings=r.fields.map(n=>n.label);i.items=[];n.model.value.forEach((t,u)=>{var f=[];r.fields.forEach((i,r)=>{f.push(Object.assign({alias:[n.model.alias,u,r].join("_"),value:t[i.key]},i))});i.items.push(f)});i.styleTable={"max-width":Object.toBoolean(r.restrictWidth)?"800px":"100%","background-color":"#f6f4f4"};i.styleButton=Object.toBoolean(r.restrictWidth)?{}:{"max-width":"100%"};i.usePrevalueEditors=Object.toBoolean(r.usePrevalueEditors)?!0:null;i.allowAdd=r.maxItems===0||i.items.length tr",opacity:.7,scroll:!0,tolerance:"pointer",stop:()=>u()};i.showPrompt=c;i.hidePrompt=l;i.add=o;i.remove=h;n.umbProperty&&n.umbProperty.setPropertyActions([{labelKey:"contentment_editRawValue",icon:"brackets",method:function(){t.editValue(n.model,()=>{})}},{labelKey:"clipboard_labelForRemoveAllEntries",icon:"trash",method:function(){s()}}])}function o(){i.items.push(angular.copy(r.fields));r.maxItems!==0&&i.items.length>=r.maxItems&&(i.allowAdd=!1);u()}function s(){i.items=[];n.model.value=[];u()}function h(n){i.items.splice(n,1);(r.maxItems===0||i.items.length{var i={};t.forEach(n=>{i[n.key]=n.value});n.model.value.push(i)})});n.$on("$destroy",()=>a());e()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.DictionaryPicker.Controller",["$scope","entityResource","editorService",function(n,t,i){function o(){n.model.value=n.model.value||[];Number.isInteger(r.maxItems)===!1&&(r.maxItems=Number.parseInt(r.maxItems)||f.maxItems);u.addButtonLabelKey=r.addButtonLabelKey||"general_add";u.defaultIcon="icon-book-alt";u.displayMode="list";u.allowAdd=r.maxItems===0||r.maxItems==="0"||n.model.value.length=r.maxItems&&(u.allowAdd=!1);e();i.close()},close:function(){i.close()}})}function h(t){n.model.value.splice(t,1);(r.maxItems===0||n.model.value.length0&&(n.model.value=t.items[0].value);t.showEmpty=i.showEmpty===!0&&t.items.some(t=>t.value===n.model.value);t.htmlAttributes=i.htmlAttributes;t.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;t.change=u}function u(){t.showEmpty=i.showEmpty===!0&&t.items.some(t=>t.value===n.model.value)}var i=Object.assign({},{items:[],allowEmpty:1,defaultValue:"",htmlAttributes:[]},n.model.config),t=this;r()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.EditorNotes.Controller",["$scope",function(n){function r(){i.alertType=t.alertType;i.icon=t.icon;i.heading=t.heading;i.message=t.message;i.hidePropertyGroup=n.model.hasOwnProperty("contentTypeId")===!1&&Object.toBoolean(t.hidePropertyGroup)}var t=Object.assign({},{hidePropertyGroup:0},n.model.config),i=this;r()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.IconPicker.Controller",["$scope","editorService",function(n,t){function f(){n.model.value=n.model.value||r.defaultIcon;Array.isArray(r.size)===!0&&(r.size=r.size[0]);i.label=n.model.value.replace(" "," ");i.size=r.size;i.allowAdd=n.model.value==="";i.pick=e;i.remove=o}function e(){var f=n.model.value.split(" "),e={icon:f[0],color:f[1],hideColors:Object.toBoolean(r.hideColors),submit:function(r){n.model.value=[r.icon,r.color].filter(n=>n).join(" ");i.label=n.model.value.replace(" "," ");i.allowAdd=!1;u();t.close()},close:function(){t.close()}};t.iconPicker(e)}function o(){n.model.value="";i.label="";i.allowAdd=!0;u()}function u(){n.propertyForm&&n.propertyForm.$setDirty()}var r=Object.assign({},{defaultIcon:"",hideColors:0,size:"large"},n.model.config),i=this;f()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.ItemPicker.Controller",["$scope","editorService","focusService","localizationService","overlayService",function(n,t,i,r,u){function l(){if(n.model.value=n.model.value||f.defaultValue,Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]),Number.isInteger(f.maxItems)===!1&&(f.maxItems=Number.parseInt(f.maxItems)||h.maxItems),Array.isArray(f.overlaySize)===!0&&(f.overlaySize=f.overlaySize[0]),f.confirmRemoval=Object.toBoolean(f.confirmRemoval),f.enableMultiple=Object.toBoolean(f.enableMultiple)&&f.maxItems!==1,e.defaultIcon=f.defaultIcon,e.displayMode=f.displayMode||"list",e.allowAdd=f.maxItems===0||n.model.value.length{n.model.value=e.items.map(n=>n.value)},e.items=[],n.model.value.length>0&&f.items.length>0){var t=[];n.model.value.forEach(n=>{var i=f.items.find(t=>t.value===n);i?e.items.push(Object.assign({},i)):t.push(n)});t.length>0&&(n.model.value=_.difference(n.model.value,t),(f.maxItems===0||n.model.value.length0&&n.umbProperty.setPropertyActions(e.propertyActions))}function a(){i.rememberFocus();var r=Object.toBoolean(f.allowDuplicates)?f.items:f.items.filter(n=>e.items.some(t=>n.value===t.value)===!1);t.open({config:{title:"Choose...",enableFilter:Object.toBoolean(f.enableFilter),enableMultiple:f.enableMultiple,defaultIcon:f.defaultIcon,items:r,listType:f.listType,orderBy:f.overlayOrderBy,maxItems:f.maxItems===0?f.maxItems:f.maxItems-e.items.length},view:f.overlayView,size:f.overlaySize||"small",submit:function(i){i.forEach(t=>{e.items.push(angular.copy(t)),n.model.value.push(t.value)});f.maxItems!==0&&n.model.value.length>=f.maxItems&&(e.allowAdd=!1);t.close();o();s()},close:function(){t.close();s()}})}function v(){e.items=[];n.model.value=[];o()}function y(n){if(i.rememberFocus(),f.confirmRemoval===!0)r.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(t=>{u.open({title:t[1],content:t[0],closeButtonLabel:t[2],submitButtonLabel:t[3],submitButtonStyle:"danger",submit:function(){c(n);u.close()},close:function(){u.close();s()}})});else c(n)}function c(t){e.items.splice(t,1);n.model.value.splice(t,1);(f.maxItems===0||n.model.value.lengthn.selected===!0).length,t.allowSubmit=t.itemCount>0&&(i.maxItems===0||t.itemCount<=i.maxItems)):(n.model.value=u,r()))}function r(){if(n.model.submit){var i=[];t.enableMultiple===!0?t.items.forEach(n=>{n.selected&&(delete n.selected,i.push(n))}):i.push(n.model.value);n.model.submit(i)}}function e(){n.model.close&&n.model.close()}var i=Object.assign({},{title:"Select...",enableFilter:!1,enableMultiple:!1,defaultIcon:"icon-science",items:[],listType:"grid",orderBy:"name",maxItems:0},n.model.config),t=this;u()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.MacroPicker.Controller",["$scope","entityResource","editorService","localizationService","overlayService",function(n,t,i,r,u){function s(){n.model.value=n.model.value||[];e.defaultIcon="icon-settings-alt";e.displayMode="list";e.allowAdd=f.maxItems===0||f.maxItems==="0"||n.model.value.length[n.alias,n.value]))});f.maxItems!==0&&f.maxItems!=="0"&&n.model.value.length>=f.maxItems&&(e.allowAdd=!1);o();i.close()},close:function(){i.close()}})}function c(t){var r=n.model.value[t];i.macroPicker({dialogData:{richTextEditor:!1,macroData:{macroAlias:r.alias,macroParamsDictionary:r.params},allowedMacros:f.availableMacros},submit:function(r){n.model.value[t]={udi:r.selectedMacro.udi,name:r.selectedMacro.name,alias:r.selectedMacro.alias,params:_.object(_.map(r.macroParams,n=>[n.alias,n.value]))};o();i.close()},close:function(){i.close()}})}function l(t){r.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(i=>{u.open({title:i[1],content:i[0],closeButtonLabel:i[2],submitButtonLabel:i[3],submitButtonStyle:"danger",submit:function(){n.model.value.splice(t,1);(f.maxItems===0||f.maxItems==="0"||n.model.value.lengthi.editValue(n.model,e)}]);u.currentPage=n.node||t.getCurrent();u.hidePropertyGroup=n.model.hasOwnProperty("contentTypeId")===!1&&Object.toBoolean(r.hidePropertyGroup)}function e(){n.propertyForm&&n.propertyForm.$setDirty()}var r=Object.assign({},{enableDevMode:0,hidePropertyGroup:0},n.model.config),u=this;f()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.NumberInput.Controller",["$scope",function(n){function u(){n.model.value!==0&&(n.model.value=n.model.value||t.defaultValue);i.maximum=t.maximum;i.minimum=t.minimum;i.step=t.step;i.pattern=t.umbracoDataValueType==="DECIMAL"?"[-0-9]+([,.][0-9]+)?":"[-0-9]*";i.placeholderText=t.placeholderText;var u={s:"umb-property-editor-tiny",m:"umb-property-editor-small",l:"umb-property-editor--limit-width",xl:"umb-property-editor"};i.sizeClass=u[t.size]||u[r.size];i.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias}var r={placeholderText:null,defaultValue:null,maximum:null,minimum:null,size:"s",step:null,umbracoDataValueType:"INT"},t=Object.assign({},r,n.model.config),i=this;u()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.RadioButtonList.Controller",["$scope",function(n){function r(){n.model.value=n.model.value||i.defaultValue;Array.isArray(n.model.value)&&(n.model.value=n.model.value[0]);t.items=i.items.slice();t.showDescriptions=Object.toBoolean(i.showDescriptions);t.showIcons=Object.toBoolean(i.showIcons);t.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;n.umbProperty&&(t.propertyActions=[],Object.toBoolean(i.allowClear)===!0&&t.propertyActions.push({labelKey:"buttons_clearSelection",icon:"trash",method:()=>{n.model.value=i.defaultValue,setDirty()}}),t.propertyActions.length>0&&n.umbProperty.setPropertyActions(t.propertyActions))}var i=Object.assign({},{allowClear:0,items:[],showDescriptions:0,showIcons:0,defaultValue:""},n.model.config),t=this;r()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.RenderMacro.Controller",["$scope","$routeParams","macroResource",function(n,t,i){function f(){if(r.loading=!0,Array.isArray(n.model.config.macro)&&n.model.config.macro.length>0){var f=n.model.config.macro[0];Object.assign(f.params,{__propertyAlias:n.model.alias,__propertyLabel:n.model.label,__propertyCulture:n.model.culture,__propertyDataTypeKey:n.model.dataTypeKey,__propertyDescription:n.model.description,__propertyHideLabel:n.model.hideLabel});i.getMacroResultAsHtmlForEditor(f.alias,t.id,f.params).then(n=>{r.html=n,r.loading=!1},n=>{r.error={title:n.data.Message+" "+n.errorMsg,message:n.data.ExceptionMessage},r.loading=!1})}else r.error={title:"Macro not configured",message:"This data type has not been configured. Please ensure that a macro has been selected."},r.loading=!1;r.hidePropertyGroup=Object.toBoolean(u.hidePropertyGroup)}if(!n.model.hasOwnProperty("contentTypeId")){var u=Object.assign({},{hidePropertyGroup:0},n.model.config),r=this;f()}}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.SocialLinks.Controller",["$scope","editorService","localizationService","overlayService","Umbraco.Community.Contentment.Services.DevMode",function(n,t,i,r,u){function a(){n.model.value=n.model.value||[];Number.isInteger(f.maxItems)===!1&&(f.maxItems=Number.parseInt(f.maxItems)||h.maxItems);f.confirmRemoval=Object.toBoolean(f.confirmRemoval);e.allowAdd=f.maxItems===0||n.model.value.length=f.maxItems&&(e.allowAdd=!1);o()}function c(){u.editValue(n.model,function(){})}function y(n){var t=f.lookup[n];return t&&t.icon?t.icon:f.defaultIcon}function p(n){var t=f.lookup[n];return t&&t.backgroundColor&&t.iconColor?{backgroundColor:t.backgroundColor,color:t.iconColor,borderRadius:"5px",paddingTop:0}:{backgroundColor:f.defaultBackgroundColor,color:f.defaultIconColor,borderRadius:"5px",borderStyle:"dashed",paddingTop:0}}function l(t){var i=n.model.value[t];r.open({title:"Select a social network...",config:{items:f.networks},position:"center",size:"small",view:f.overlayView,value:i,hideSubmitButton:!0,submit:function(n){i.network=n.network;i.name===""&&(i.name=n.name);i.url===""&&(i.url=n.url);e.focusIdx=t;o();r.close()},close:function(){i.network===""&&s(t);r.close()}})}function w(n){if(f.confirmRemoval===!0)i.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(function(t){r.open({title:t[1],content:t[0],closeButtonLabel:t[2],submitButtonLabel:t[3],submitButtonStyle:"danger",submit:function(){s(n);r.close()},close:function(){r.close()}})});else s(n)}function s(t){n.model.value.splice(t,1);(f.maxItems===0||n.model.value.length{t.model.value.forEach(n=>{var t=s.items.find(t=>t.value===n);t&&o.items.push(Object.assign({},t))});o.loading=!1;var n=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("name","value"),queryTokenizer:Bloodhound.tokenizers.whitespace,initialize:!1,local:s.items.filter(n=>!n.disabled),identify:n=>n.value});n.initialize().then(()=>{var t={display:"name",minLength:0,source:(t,i)=>{t&&t.length>0?n.search(t,i):i(n.all())}};o.editor=i.find("input.typeahead").typeahead({hint:!0,highlight:!0,minLength:1},t).bind("typeahead:select",h).bind("typeahead:autocomplete",h)})});t.umbProperty&&(o.propertyActions=[],Object.toBoolean(s.allowClear)===!0&&o.propertyActions.push({labelKey:"buttons_clearSelection",icon:"trash",method:y}),o.propertyActions.length>0&&t.umbProperty.setPropertyActions(o.propertyActions))}function h(i,u){r.safeApply(n,function(){o.items.push(Object.assign({},u));t.model.value.push(u.value);o.editor.typeahead("val","");c()})}function y(){o.items=[];t.model.value=[];c()}function p(n){var t,i;n.keyCode==13&&(t=o.editor.data("ttTypeahead"),t&&t.menu&&t.menu.isOpen()===!0&&(i=t.menu.getActiveSelectable()||t.menu.getTopSelectable(),t.menu.trigger("selectableClicked",i),n.preventDefault()))}function w(n,t){(n.keyCode===8||n.keyCode===46)&&l(t)}function l(n){if(s.confirmRemoval===!0)f.localizeMany(["contentment_removeItemMessage","general_remove","general_cancel","contentment_removeItemButton"]).then(t=>{e.open({title:t[1],content:t[0],closeButtonLabel:t[2],submitButtonLabel:t[3],submitButtonStyle:"danger",submit:function(){a(n);e.close()},close:function(){e.close()}})});else a(n)}function a(n){o.items.splice(n,1);t.model.value.splice(n,1);c()}function c(){t.propertyForm&&t.propertyForm.$setDirty()}var s=Object.assign({},{allowClear:0,confirmRemoval:0,defaultValue:[],items:[],showIcons:0},t.model.config),o=this;v()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.TemplatedList.Controller",["$scope",function(n){function u(){n.model.value=n.model.value||i.defaultValue;Array.isArray(n.model.value)===!1&&(n.model.value=[n.model.value]);t.multiple=Object.toBoolean(i.enableMultiple);t.multiple===!1&&n.model.value.length>0&&n.model.value.splice(1);t.items=[];i.items.forEach(i=>{var r=Object.assign({},i);r.selected=n.model.value.indexOf(r.value)>-1;t.items.push(r)});t.htmlAttributes=i.htmlAttributes;t.template=i.template;t.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;t.select=e;n.umbProperty&&(t.propertyActions=[],Object.toBoolean(i.allowClear)===!0&&t.propertyActions.push({labelKey:"buttons_clearSelection",icon:"trash",method:f}),t.propertyActions.length>0&&n.umbProperty.setPropertyActions(t.propertyActions))}function f(){n.model.value=[];t.items.forEach(n=>n.selected=!1);r()}function e(i){i.selected=i.selected===!1;n.model.value=[];t.items.forEach(r=>{t.multiple===!1&&(r.selected=r.value===i.value),r.selected&&n.model.value.push(r.value)});r()}function r(){n.propertyForm&&n.propertyForm.$setDirty()}var i=Object.assign({},{allowClear:0,defaultValue:[],enableMultiple:0,items:[],template:"{{ item.name }}",htmlAttributes:[]},n.model.config),t=this;u()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.TextboxList.Controller",["$scope","Umbraco.Community.Contentment.Services.DevMode",function(n,t){function u(){n.model.value=n.model.value||{};Utilities.isObject(n.model.value)===!1&&(n.model.value={});i.keys=[];i.icons={};i.names={};i.inputTypes=["color","email","number","password","tel","text","url"];i.hideIcon=r.labelStyle==="text";i.hideName=r.labelStyle==="icon";i.defaultIcon=r.defaultIcon;r.items.forEach(t=>{i.keys.push(t.value),i.names[t.value]=t.name,i.hideIcon===!1&&(i.icons[t.value]=(t.icon||r.defaultIcon)+" medium"),n.model.value.hasOwnProperty(t.value)===!1&&(n.model.value[t.value]="")});Object.keys(n.model.value).forEach(t=>{i.keys.indexOf(t)===-1&&delete n.model.value[t]});i.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;n.umbProperty&&(i.propertyActions=[],Object.toBoolean(r.enableDevMode)===!0&&i.propertyActions.push({labelKey:"contentment_editRawValue",icon:"brackets",method:()=>t.editValue(n.model,function(){})}),i.propertyActions.length>0&&n.umbProperty.setPropertyActions(i.propertyActions))}var r=Object.assign({},{defaultIcon:"icon-science",items:[],labelStyle:"both",enableDevMode:0},n.model.config),i=this;u()}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.DataEditors.TextInput.Controller",["$scope",function(n){function r(){n.model.value=n.model.value||i.defaultValue;Array.isArray(n.model.value)&&(n.model.value=n.model.value.join(", "));t.inputType=i.inputType;t.autoComplete=Object.toBoolean(i.autocomplete)?"on":"off";t.spellCheck=Object.toBoolean(i.spellcheck)?"true":"false";t.placeholderText=i.placeholderText;t.maxChars=parseInt(0+i.maxChars);t.maxCharsThreshold=t.maxChars*.8;t.prepend=i.prepend;t.append=i.append;t.uniqueId=n.model.hasOwnProperty("dataTypeKey")?[n.model.alias,n.model.dataTypeKey.substring(0,8)].join("-"):n.model.alias;i.items&&i.items.length>0&&(t.dataList=i.items,t.dataListId="dl-"+t.uniqueId)}var i=Object.assign({},{items:[],inputType:"text",autocomplete:0,placeholderText:null,defaultValue:null,prepend:null,append:null,maxChars:500},n.model.config),t=this;r()}]),function(){"use strict";function n(n){return{bindings:{addButtonLabel:"@?",addButtonLabelKey:"",allowAdd:"",allowEdit:"",allowRemove:"",allowSort:"",blockActions:"",defaultIcon:"",displayMode:"",getItem:"",getItemIcon:"",getItemName:"",getItemDescription:"",ngModel:"=",onAdd:"",onEdit:"",onRemove:"",onSort:"",propertyActions:"",previews:""},controllerAs:"vm",controller:["$scope","localizationService",function(t,i){function f(){typeof r.onAdd=="function"&&r.onAdd()}function e(n,t){switch(typeof r.allowEdit){case"boolean":return r.allowEdit;case"function":return r.allowEdit(n,t);default:return!0}}function o(n,t){switch(typeof r.allowRemove){case"boolean":return r.allowRemove;case"function":return r.allowRemove(n,t);default:return!0}}function s(n){if(typeof r.onEdit=="function")r.onEdit(n)}function u(n,t,i){if(typeof r.getItem=="function")return r.getItem(n,t,i);switch(i){case"icon":return typeof r.getItemIcon=="function"?r.getItemIcon(n,t):n.icon||r.defaultIcon;case"name":return typeof r.getItemName=="function"?r.getItemName(n,t):n.name;case"description":return typeof r.getItemDescription=="function"?r.getItemDescription(n,t):n.description;default:return n.hasOwnProperty(i)===!0?n[i]:undefined}}function h(n,t,i){var r=u(n,t,i);return r?angular.fromJson(r):{}}function c(n){if(typeof r.onRemove=="function")r.onRemove(n)}var r=this;r.$onInit=function(){var t=n||r.displayMode||"list";r.templateUrl="/App_Plugins/Contentment/components/"+t+"-editor.html";r.propertyAlias=r.umbProperty.property.alias;r.sortableOptions={axis:"y",containment:"parent",cursor:"move",disabled:r.allowSort===!1,opacity:.7,scroll:!0,tolerance:"pointer",stop:function(){r.onSort&&r.onSort();r.propertyForm&&r.propertyForm.$setDirty()}};t==="blocks"?Object.assign(r.sortableOptions,{cancel:"input,textarea,select,option",classes:".blockelement--dragging",cursor:"grabbing",distance:5,handle:".blockelement__draggable-element"}):t==="cards"&&Object.assign(r.sortableOptions,{axis:!1,"ui-floating":!0,items:".umb-block-card",cursor:"grabbing",placeholder:"umb-block-card --sortable-placeholder"});r.add=f;r.canEdit=e;r.canRemove=o;r.edit=s;r.populate=u;r.populateStyle=h;r.remove=c;r.isSingle=r.allowAdd===!1&&r.ngModel.length===1?"":undefined;r.addButtonLabelKey&&i.localize(r.addButtonLabelKey).then(function(n){r.addButtonLabel=n});r.propertyActions&&r.propertyActions.length>0&&r.umbProperty.setPropertyActions(r.propertyActions);r.blockActions&&r.blockActions.length>0&&r.blockActions.forEach(function(n){n.forEach(function(n){i.localize(n.labelKey).then(function(t){n.label=t})})})}}],require:{propertyForm:"^form",umbProperty:"^"},template:"<\/ng-include>"}}angular.module("umbraco.directives").component("contentmentItemsEditor",n());angular.module("umbraco.directives").component("contentmentListEditor",n("list"));angular.module("umbraco.directives").component("contentmentStackEditor",n("stack"));angular.module("umbraco.directives").component("contentmentBlocksEditor",n("blocks"));angular.module("umbraco.directives").component("contentmentCardsEditor",n("cards"))}();angular.module("umbraco.services").factory("Umbraco.Community.Contentment.Services.DevMode",["$timeout","editorService",function(n,t){return{editValue:function(i,r){t.open({title:"Edit raw value",value:Utilities.toJson(i.value,!0),ace:{showGutter:!0,useWrapMode:!0,useSoftTabs:!0,theme:"chrome",mode:"javascript",advanced:{fontSize:"14px",wrap:!0},onLoad:function(t){n(()=>t.focus())}},view:"/App_Plugins/Contentment/editors/_json-editor.html",size:"medium",submit:function(n){i.value=Utilities.fromJson(n);r&&r();t.close()},close:function(){t.close()}})}}}]);angular.module("umbraco.directives").component("leeWasHere",{template:' '});angular.module("umbraco.directives.html").directive("lkHtmlAttributes",[function(){return{restrict:"A",scope:{attributes:"&lkHtmlAttributes"},link:function(n,t){var i=n.attributes();Array.isArray(i)&&i.length>0&&i.forEach(n=>{n.name==="class"?t.addClass(n.value):t.attr(n.name,n.value)})}}}]);angular.module("umbraco.directives.html").directive("lkBindHtmlTemplate",["$compile",function(n){return{restrict:"A",replace:!0,link:function(t,i,r){t.$watch(function(n){return n.$eval(r.lkBindHtmlTemplate)},function(r){if(r){var u=n(r)(t);i.append(u)}})}}}]);angular.module("umbraco.directives.html").directive("lkHidePropertyGroup",[function(){return{restrict:"A",link:function(n,t,i){var u,f,r;if(i.lkHidePropertyGroup==="true"){if(u=t.closest(".umb-property-editor"),f=u.parent().closest(".umb-property-editor").length>0,f)return;r=t.closest(".umb-group-panel,.umb-box");r&&r.addClass("umb-group-panel--hide")}}}}]);angular.module("umbraco.filters").filter("lkNodeName",["$filter",function(n){return function(t){return Array.isArray(t)===!1?n("ncNodeName")(t):t.map(t=>n("ncNodeName")(t)).join(", ")}}]);angular.module("umbraco.filters").filter("lkGroupBy",[function(){return _.memoize((n,t)=>_.chain(n).sortBy(t).groupBy(t).value(),(n,t,i)=>[i,t,n.length].join("_"))}]);angular.module("umbraco").controller("Umbraco.Community.Contentment.Tree.Controller",["$scope","navigationService",function(n,t){function r(){const u="contentment";var r=Umbraco.Sys.ServerVariables.umbracoPlugins[u];i.title=r.name;i.version="v"+r.version;t.syncTree({tree:u,path:"-1"});n.$emit("$changeTitle",i.title);i.links=[{icon:"icon-fa fa-fw fa-book ",name:"Documentation",description:"How to use each of the property editors.",url:"https://github.com/leekelleher/umbraco-contentment/tree/master/docs"},{icon:"icon-fa fa-youtube",name:"Video demonstrations",description:"Demos, guides and tutorials on YouTube.",url:"https://www.youtube.com/playlist?list=PL8grlRt7-8oVULPYJpqido5QItRsJBt3M"},{icon:"icon-fa fa-fw fa-comments-o",name:"Support forum",description:"Ask for help, the community is your friend.",url:"https://our.umbraco.com/packages/backoffice-extensions/contentment/contentment-feedback/"},{icon:"icon-fa fa-fw fa-code-fork",name:"Source code",description:"See the code, all free and open-source.",url:"https://github.com/leekelleher/umbraco-contentment"},{icon:"icon-fa fa-fw fa-bug",name:"Issue tracker",description:"Found a bug? Suggest a feature? Let me know.",url:"https://github.com/leekelleher/umbraco-contentment/issues/new/choose"},{icon:"icon-fa fa-fw fa-id-card-o",name:"License",description:"Licensed under the Mozilla Public License.",url:"https://opensource.org/licenses/MPL-2.0"}];i.telemetryEnabled=r.telemetry===!0}var i=this;r()}])
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_empty.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_empty.html
new file mode 100644
index 0000000..1bfa827
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_empty.html
@@ -0,0 +1 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_json-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_json-editor.html
new file mode 100644
index 0000000..7054ff3
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/_json-editor.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/buttons.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/buttons.html
new file mode 100644
index 0000000..3d36611
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/buttons.html
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/cascading-dropdown-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/cascading-dropdown-list.html
new file mode 100644
index 0000000..4066f9f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/cascading-dropdown-list.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/checkbox-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/checkbox-list.html
new file mode 100644
index 0000000..c8a6c49
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/checkbox-list.html
@@ -0,0 +1,40 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/code-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/code-editor.html
new file mode 100644
index 0000000..362adee
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/code-editor.html
@@ -0,0 +1,3 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.html
new file mode 100644
index 0000000..7b9d812
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.html
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.inline.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.inline.html
new file mode 100644
index 0000000..564c547
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.inline.html
@@ -0,0 +1,17 @@
+
+
+
+ Unable to find the editor for this configuration value.
+
+
+
+ There are no fields for this item.
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.overlay.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.overlay.html
new file mode 100644
index 0000000..b9941f8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/configuration-editor.overlay.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+
+
+ There are no items available to add.
+
+
+
+
+
+
+
+ Unable to find the editor for this configuration value.
+
+
+
+ There are no fields for this item.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.blueprint.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.blueprint.html
new file mode 100644
index 0000000..5909eac
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.blueprint.html
@@ -0,0 +1,20 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.html
new file mode 100644
index 0000000..2eaaf31
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.html
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.overlay.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.overlay.html
new file mode 100644
index 0000000..ef8dc6c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-blocks.overlay.html
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+ There are no items available to add.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-cards.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-cards.html
new file mode 100644
index 0000000..2eaaf31
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-cards.html
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-list.html
new file mode 100644
index 0000000..2eaaf31
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-list.html
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-source.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-source.html
new file mode 100644
index 0000000..752d86d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-source.html
@@ -0,0 +1,74 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-stack.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-stack.html
new file mode 100644
index 0000000..2eaaf31
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/content-stack.html
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.editor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.editor.html
new file mode 100644
index 0000000..6067129
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.editor.html
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add item
+ ...
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.preview.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.preview.html
new file mode 100644
index 0000000..c6e9a28
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-list.preview.html
@@ -0,0 +1,59 @@
+
+
+
+ Please select and configure a data source and list editor.
+
+
+ Please select and configure a list editor.
+
+
+ Please select and configure a data source.
+
+
+
+
+
+ The data source returned no items to preview.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Name
+
Value
+
Description
+
Enabled
+
+
+
+
+
+
+ {{vm.property.config.items | json}}
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-source.preview.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-source.preview.html
new file mode 100644
index 0000000..cb81748
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-source.preview.html
@@ -0,0 +1,50 @@
+
+
+
+ Please select and configure a data source.
+
+
+
+
+
+ The data source returned no items to preview.
+
+
+
+
+
+
+
+
+
+
+
+
+
Name
+
Value
+
Description
+
Enabled
+
+
+
+
+
+
+ {{vm.items | json}}
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-table.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-table.html
new file mode 100644
index 0000000..2aee6b5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/data-table.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+ {{heading}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add
+ ...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dictionary-picker.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dictionary-picker.html
new file mode 100644
index 0000000..35a8e44
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dictionary-picker.html
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dropdown-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dropdown-list.html
new file mode 100644
index 0000000..1a904a5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/dropdown-list.html
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/editor-notes.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/editor-notes.html
new file mode 100644
index 0000000..1a60c9b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/editor-notes.html
@@ -0,0 +1,7 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/icon-picker.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/icon-picker.html
new file mode 100644
index 0000000..f66b424
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/icon-picker.html
@@ -0,0 +1,31 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.html
new file mode 100644
index 0000000..c193c72
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.html
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.overlay.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.overlay.html
new file mode 100644
index 0000000..86642bc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/item-picker.overlay.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+ Too many items selected, please unselect {{vm.itemCount - vm.maxItems}} {{vm.itemCount - vm.maxItems === 1 ? 'item' : 'items'}}.
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No items found for ' '.
+
+
+
+
+
+
+ There are no items available to add.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/macro-picker.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/macro-picker.html
new file mode 100644
index 0000000..fd2baf8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/macro-picker.html
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/notes.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/notes.html
new file mode 100644
index 0000000..db66813
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/notes.html
@@ -0,0 +1 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/number-input.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/number-input.html
new file mode 100644
index 0000000..e1168b6
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/number-input.html
@@ -0,0 +1,13 @@
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/radio-button-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/radio-button-list.html
new file mode 100644
index 0000000..a57f16a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/radio-button-list.html
@@ -0,0 +1,21 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/readonly-node-preview.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/readonly-node-preview.html
new file mode 100644
index 0000000..6eb7c63
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/readonly-node-preview.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/render-macro.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/render-macro.html
new file mode 100644
index 0000000..40b92fb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/render-macro.html
@@ -0,0 +1,11 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.html
new file mode 100644
index 0000000..4a89607
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add item
+ ...
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.overlay.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.overlay.html
new file mode 100644
index 0000000..1ae57d8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/social-links.overlay.html
@@ -0,0 +1,15 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/tags.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/tags.html
new file mode 100644
index 0000000..0db8bfb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/tags.html
@@ -0,0 +1,26 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/templated-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/templated-list.html
new file mode 100644
index 0000000..389216c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/templated-list.html
@@ -0,0 +1,12 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/text-input.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/text-input.html
new file mode 100644
index 0000000..a9b3178
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/text-input.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{model.label}}
+ %0% characters left.
+
+
+
+
+ {{model.label}}
+ Maximum %0% characters, %1% too many.
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/textbox-list.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/textbox-list.html
new file mode 100644
index 0000000..f251071
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/editors/textbox-list.html
@@ -0,0 +1,22 @@
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/package.manifest b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/package.manifest
new file mode 100644
index 0000000..4043e81
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/package.manifest
@@ -0,0 +1,6 @@
+{
+ "name": "Contentment",
+ "version": "4.4.5",
+ "css": [ "~/App_Plugins/Contentment/contentment.css" ],
+ "javascript": [ "~/App_Plugins/Contentment/contentment.js" ]
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/ContentBlockPreview.cshtml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/ContentBlockPreview.cshtml
new file mode 100644
index 0000000..5280753
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/ContentBlockPreview.cshtml
@@ -0,0 +1,10 @@
+@* Copyright © 2019 Lee Kelleher.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. *@
+@inherits ContentBlockPreviewView
+
+
+
@Model.Element.Key
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/_ViewImports.cshtml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/_ViewImports.cshtml
new file mode 100644
index 0000000..bc71ce9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/Contentment/render/_ViewImports.cshtml
@@ -0,0 +1 @@
+@using Umbraco.Cms.Web.Common.Views;
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/package.manifest b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/package.manifest
new file mode 100644
index 0000000..a8da4af
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/package.manifest
@@ -0,0 +1,29 @@
+{
+ "propertyEditors": [
+ {
+ "alias": "TagList",
+ "name": "Tag List",
+ "icon": "icon-list",
+ "group": "pickers",
+ "editor": {
+ "view": "~/App_Plugins/TagList/taglisteditor.html",
+ "valueType": "JSON"
+ },
+ "prevalues": {
+ "fields": [
+ {
+ "label": "Tag group name",
+ "description": "Enter the name of the parent tag",
+ "key": "group",
+ "view": "textstring"
+ }
+ ]
+ }
+ }
+ ],
+ // array of files we want to inject into the application on app_start
+ "javascript": [
+ "~/App_Plugins/TagList/taglisteditor.controller.js",
+ "~/App_Plugins/TagList/taglist.resource.js"
+ ]
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglist.resource.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglist.resource.js
new file mode 100644
index 0000000..428008a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglist.resource.js
@@ -0,0 +1,8 @@
+angular.module("umbraco.resources").factory("TagListResource", function ($http) {
+ return {
+ /* umbraco api call to get all tags by group */
+ getTagsByGroup: function (group, culture) {
+ return $http.get("backoffice/Api/TagList/GetTagsByGroup/?group=" + group + "&culture=" + culture);
+ }
+ };
+});
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.controller.js
new file mode 100644
index 0000000..78defa5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.controller.js
@@ -0,0 +1,9 @@
+angular.module("umbraco").controller("TagListController", function ($scope, $routeParams, TagListResource) {
+ var vm = this;
+ vm.cmsTags = {};
+
+ /* get a complete list of tags for the selected "group" */
+ TagListResource.getTagsByGroup($scope.model.config.group, $scope.model.culture).then(function (response) {
+ vm.cmsTags = response.data;
+ });
+});
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.html
new file mode 100644
index 0000000..b718f8d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagList/taglisteditor.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create-group.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create-group.html
new file mode 100644
index 0000000..fc1c713
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create-group.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create.html
new file mode 100644
index 0000000..d1b151e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/create.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Language invariant
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/delete.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/delete.html
new file mode 100644
index 0000000..d305e03
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/delete.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+ Are you sure you want to delete this tag: {{cmsTags.tag}} ?
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/edit.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/edit.html
new file mode 100644
index 0000000..1cd68ea
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/edit.html
@@ -0,0 +1,121 @@
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/group.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/group.html
new file mode 100644
index 0000000..7ccfeea
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/TagManagerTree/group.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+ {{ selectedTags.length }} of {{ tags.length }} selected
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/css/tagManager.css b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/css/tagManager.css
new file mode 100644
index 0000000..1ac3888
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/css/tagManager.css
@@ -0,0 +1,36 @@
+/*CSS for backoffice */
+.tag-cards-container {
+ display: grid;
+ flex-wrap: wrap;
+ gap: 12px;
+ width: 100%;
+ grid-template-columns: 1fr 1fr 1fr;
+}
+
+.tag-card {
+ cursor: pointer !important;
+ margin: 0;
+}
+
+ .tag-card.selected {
+ outline-color: #3544b1;
+ outline-width: 3px;
+ outline-style: solid;
+ cursor: pointer !important;
+ }
+
+.tags-grid-container {
+ container-type: inline-size;
+}
+
+@container (width < 80em) {
+ .tag-cards-container {
+ grid-template-columns: 1fr 1fr;
+ }
+}
+
+@container (width < 60em) {
+ .tag-cards-container {
+ grid-template-columns: 1fr;
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/dashboards/dashboard.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/dashboards/dashboard.html
new file mode 100644
index 0000000..b37d809
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/dashboards/dashboard.html
@@ -0,0 +1,29 @@
+
+
+ Tag ALL the things!
+ Tag Manager features:
+
+ Create Groups
+ Create Tags
+ Delete Tags - single and multiple
+ Rename Tags
+ Merge Tags
+ View Content and Media associations
+ Language Variant/Invariant support
+
+ Tag List Property Editor features:
+
+ Can be used in Content and Media
+ Content editors pick from tags pre-defined in Tag Manager.
+ Tags are added to the internal and external Examine Indexes (in a simple CSV format).
+ Relationships are maintained for Content and Media and can be viewed in Tag Manager.
+ Language Variant/Invariant support in content
+
+ General features
+
+ Umbraco 10, 12 & 13 support
+ SQLite & Microsoft SQL Server support
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/propertyEditor/dropdownFlexible.html b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/propertyEditor/dropdownFlexible.html
new file mode 100644
index 0000000..803ed8d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/propertyEditor/dropdownFlexible.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Select a tag to merge with this tag
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.create.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.create.controller.js
new file mode 100644
index 0000000..b4a4e9a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.create.controller.js
@@ -0,0 +1,108 @@
+(function () {
+ 'use strict';
+
+ function checkExistingTagName(tag, tagsFromGroup) {
+ var tagMatch = false;
+ Object.entries(tagsFromGroup).forEach(([key, value]) => {
+ if (tag === value.tag) {
+ tagMatch = true;
+ }
+ });
+ return tagMatch;
+ }
+
+
+
+ function createTag($scope, tagManagerResource, notificationsService, navigationService, appState, $location, $route, languageResource) {
+
+ $scope.cmsTags = {
+ tag: "",
+ languages: {},
+ languageId: null,
+ group: ""
+ };
+
+ $scope.change = function (lang) {
+ $scope.cmsTags.languageId = lang.id;
+ }
+
+ languageResource.getAll()
+ .then(function (data) {
+ $scope.cmsTags.languages = data;
+ });
+
+ // gets node from menu state first and if null gets from tree state
+ var selectedMenu = appState.getMenuState("currentNode");
+
+ if (selectedMenu === null) {
+ var selectedNode = appState.getTreeState("selectedNode");
+ $scope.cmsTags.group = selectedNode.name;
+ }
+ else {
+ $scope.cmsTags.group = selectedMenu.name;
+ }
+
+ $scope.save = function (cmsTags) {
+ if (!cmsTags.tag) {
+ notificationsService.error("Error", "Tag name is required.");
+ return;
+ }
+
+ // Fetch tags for a specific group from the server
+ tagManagerResource.getTagsByGroup(cmsTags.group).then(function (response) {
+ var existingTagName = checkExistingTagName(cmsTags.tag, response.data.tagsInGroup);
+
+ if (existingTagName === false) {
+ tagManagerResource.createTag(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem saving the tag, please check the logs.");
+ return;
+ }
+ notificationsService.success("Success", "'" + cmsTags.tag + "' has been Created");
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1", "tagGroup-" + cmsTags.group, response.data], forceReload: false });
+ navigationService.hideMenu();
+ $location.path('/TagManager/TagManagerTree/edit/' + response.data);
+ $route.reload();
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ else {
+ notificationsService.error("Error", "A tag with name already exists");
+ }
+
+
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ };
+
+ $scope.cancel = function (cmsTags) {
+ if ($location.path() === "/TagManager/TagManagerTree/create") {
+ $location.path('/TagManager/TagManagerTree/group/' + cmsTags.group);
+ $route.reload();
+ }
+ else {
+ navigationService.hideMenu();
+ }
+ }
+ }
+
+ angular.module('umbraco').controller('tagManager.create.controller', createTag);
+})();
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.createGroup.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.createGroup.controller.js
new file mode 100644
index 0000000..b183d39
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.createGroup.controller.js
@@ -0,0 +1,86 @@
+(function () {
+ 'use strict';
+
+ function checkExistingGroupName(group, groups) {
+ var tagMatch = false;
+ Object.entries(groups).forEach(([key, value]) => {
+ if (group === value.group) {
+ tagMatch = true;
+ }
+ });
+ return tagMatch;
+ }
+
+ function createGroup($scope, tagManagerResource, notificationsService, navigationService, $location, $route) {
+
+ var vm = this;
+
+ $scope.cmsTags = {
+ group: ""
+ };
+
+ $scope.save = function (cmsTags) {
+ if (!cmsTags.group) {
+ notificationsService.error("Error", "Group name is required.");
+ return;
+ }
+
+ tagManagerResource.getTagGroups(cmsTags.group).then(function (response) {
+ var existingGroupName = checkExistingGroupName(cmsTags.group, response.data);
+
+ if (existingGroupName === false) {
+ tagManagerResource.createGroup(cmsTags.group).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem saving the group, please check the logs.");
+ return;
+ }
+ notificationsService.success("Success", "'" + cmsTags.group + "' has been created");
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1"], forceReload: false }).then(function (syncArgs) {
+ navigationService.reloadNode(syncArgs.node);
+ });
+ navigationService.hideMenu();
+ $location.path('/TagManager/' + response.data);
+ $route.reload();
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ else {
+ notificationsService.error("Error", "A group with this name already exists");
+ }
+
+
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+
+ };
+ $scope.cancel = function () {
+ if ($location.path() === "/TagManager/TagManagerTree/create-group") {
+ $location.path('/TagManager/');
+ $route.reload();
+ }
+ else {
+ navigationService.hideMenu();
+ }
+ }
+ }
+
+ angular.module('umbraco').controller('tagManager.createGroup.controller', createGroup);
+})();
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.delete.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.delete.controller.js
new file mode 100644
index 0000000..9d22714
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.delete.controller.js
@@ -0,0 +1,98 @@
+(function () {
+ 'use strict';
+
+ function deleteTags($scope, $location,
+ tagManagerResource, notificationsService, navigationService, $route, treeService, appState) {
+
+ var vm = this;
+
+ //get the treeNode that we have selected
+ var selectedMenuNode = appState.getMenuState("currentNode");
+ var parent = selectedMenuNode.parent();
+
+ tagManagerResource.getTagsById(selectedMenuNode.id).then(function (response) {
+ $scope.cmsTags = response.data;
+ $scope.selectedTag = selectedMenuNode.id;
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+
+ $scope.cancel = function () {
+ navigationService.hideMenu();
+ }
+
+ $scope.delete = function (cmsTags) {
+ if (cmsTags.tagsInGroup.length === 1) {
+ tagManagerResource.deleteTag(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tag, please check the logs.");
+ return;
+ }
+ //remove the node
+ treeService.removeNode(selectedMenuNode);
+
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1"], forceReload: true }).then(function (syncArgs) {
+ navigationService.reloadNode(syncArgs.node);
+ });;
+
+ // if the current edited item is the same one as we're deleting, we need to navigate elsewhere
+ $location.path('/TagManager/TagManagerTree/');
+ $route.reload();
+
+ notificationsService.success("Success", "'" + cmsTags.tagItem.tag + "' has been deleted. All tags have been deleted, re-create the group if you need it again");
+ navigationService.hideMenu();
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ else {
+ tagManagerResource.deleteTag(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tag, please check the logs.");
+ return;
+ }
+
+ //remove the node
+ treeService.removeNode(selectedMenuNode);
+
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1", "tagGroup-" + parent.name], forceReload: true });
+
+ // if the current edited item is the same one as we're deleting, we need to navigate elsewhere
+ $location.path('/TagManager/TagManagerTree/group/' + parent.name);
+ $route.reload();
+
+ notificationsService.success("Success", "'" + cmsTags.tagItem.tag + "' has been deleted.");
+ navigationService.hideMenu();
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ }
+ }
+
+ angular.module('umbraco').controller('tagManager.delete.controller', deleteTags);
+})();
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.dropdownFlexible.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.dropdownFlexible.controller.js
new file mode 100644
index 0000000..7e4001a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.dropdownFlexible.controller.js
@@ -0,0 +1,32 @@
+angular.module("umbraco").controller("tagManager.dropdownFlexible.controller",
+ function ($scope, validationMessageService, tagManagerResource, $routeParams) {
+
+ tagManagerResource.getTagsById($routeParams.id).then(function (response) {
+
+ var tagsByVariant = objectWithLanguageId(response.data.tagsInGroup, response.data.tagItem.languageId);
+ $scope.model.mergeList = removeObjectWithId(tagsByVariant, $routeParams.id);
+
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+
+ $scope.change = function (tag) {
+ $scope.model.mergeTag = tag;
+ }
+
+ function objectWithLanguageId(arr, id) {
+ return arr.filter((obj) => obj.languageId === id);
+ }
+
+ function removeObjectWithId(arr, id) {
+ return arr.filter((obj) => obj.id !== parseInt(id));
+ }
+ });
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.edit.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.edit.controller.js
new file mode 100644
index 0000000..afb0966
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.edit.controller.js
@@ -0,0 +1,332 @@
+(function () {
+ 'use strict';
+
+ function editTag($scope, $routeParams, $location, tagManagerResource, notificationsService, navigationService,
+ $route, treeService, appState, overlayService) {
+ var vm = this;
+
+ vm.nextPageContent = nextPageContent;
+ vm.prevPageContent = prevPageContent;
+ vm.changePageContent = changePageContent;
+ vm.goToPageContent = goToPageContent;
+ vm.recordsPerPageContent = 10;
+ vm.recordsContent = [];
+ vm.paginationContent = {};
+
+ vm.nextPageMedia = nextPageMedia;
+ vm.prevPageMedia = prevPageMedia;
+ vm.changePageMedia = changePageMedia;
+ vm.goToPageMedia = goToPageMedia;
+ vm.recordsPerPageMedia = 10;
+ vm.recordsMedia = [];
+ vm.paginationMedia = {};
+
+ function nextPageContent(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageContent;
+ getPagedContent($routeParams.id, offset, vm.recordsPerPageContent)
+ }
+
+ function prevPageContent(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageContent;
+ getPagedContent($routeParams.id, offset, vm.recordsPerPageContent)
+ }
+
+ function changePageContent(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageContent;
+ getPagedContent($routeParams.id, offset, vm.recordsPerPageContent)
+ }
+
+ function goToPageContent(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageContent;
+ getPagedContent($routeParams.id, offset, vm.recordsPerPageContent)
+ }
+
+ function nextPageMedia(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageMedia;
+ getPagedMedia($routeParams.id, offset, vm.recordsPerPageMedia)
+ }
+
+ function prevPageMedia(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageMedia;
+ getPagedMedia($routeParams.id, offset, vm.recordsPerPageMedia)
+ }
+
+ function changePageMedia(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageMedia;
+ getPagedMedia($routeParams.id, offset, vm.recordsPerPageMedia)
+ }
+
+ function goToPageMedia(pageNumber) {
+ vm.loading = true;
+ var offset = (pageNumber - 1) * vm.recordsPerPageMedia;
+ getPagedMedia($routeParams.id, offset, vm.recordsPerPageMedia)
+ }
+
+ vm.filter = {
+ searchTermContent: "",
+ searchTermMedia: ""
+ };
+
+ vm.changeTab = changeTab;
+
+ vm.tabs = [
+ {
+ "alias": "mergeTab",
+ "label": "Merge Tags",
+ "active": true
+ },
+ {
+ "alias": "contentTab",
+ "label": "Tagged Content"
+ },
+ {
+ "alias": "mediaTab",
+ "label": "Tagged Media"
+ }
+ ];
+
+ $scope.cmsTags = {
+ tag: "",
+ languageId: null,
+ group: "",
+ alias: "mergeTags",
+ label: "Select Tag",
+ description: "The selected tag will be merged and will inherit this tags associations with content and media.",
+ config: {
+ multiple: false,
+ },
+ mergeTag: [],
+ view: "/App_Plugins/tagManager/backoffice/propertyEditor/dropdownFlexible.html"
+ };
+
+ getPagedContent($routeParams.id, 0, vm.recordsPerPageContent);
+ getPagedMedia($routeParams.id, 0, vm.recordsPerPageMedia);
+
+ function changeTab(selectedTab) {
+ vm.tabs.forEach(function (tab) {
+ tab.active = false;
+ });
+ selectedTab.active = true;
+ };
+
+ function removeObjectWithId(arr, id) {
+ return arr.filter((obj) => obj.id !== parseInt(id));
+ }
+
+ function getPagedContent(id, offset, limit) {
+ vm.loading = true;
+ tagManagerResource.getPagedContent(id, offset, limit).then(function (response) {
+ console.log(response); // logging the response so we know what to do next!
+
+ if (response.data.taggedContent.length > 0) {
+ vm.recordsContent = response.data.taggedContent;
+ }
+
+ var totalPages = Math.ceil(response.data.totalRecords / limit);
+
+ vm.paginationContent = {
+ pageNumber: (offset / vm.recordsPerPageContent) + 1,
+ totalPages: totalPages
+ };
+
+ vm.loading = false;
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+
+ function getPagedMedia(id, offset, limit) {
+ vm.loading = true;
+ tagManagerResource.getPagedMedia(id, offset, limit).then(function (response) {
+ console.log(response); // logging the response so we know what to do next!
+
+ if (response.data.taggedMedia.length > 0) {
+ vm.recordsMedia = response.data.taggedMedia;
+ }
+
+ var totalPages = Math.ceil(response.data.totalRecords / limit);
+
+ vm.paginationMedia = {
+ pageNumber: (offset / vm.recordsPerPageMedia) + 1,
+ totalPages: totalPages
+ };
+
+ vm.loading = false;
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+
+ tagManagerResource.getTagsById($routeParams.id).then(function (response) {
+ //$scope.cmsTags = response.data;
+ $scope.cmsTags.mergeTag = null;
+ $scope.cmsTags.tagItem = response.data.tagItem;
+ $scope.cmsTags.tagsInGroup = response.data.tagsInGroup;
+ $scope.cmsTags.mergeList = removeObjectWithId($scope.cmsTags.tagsInGroup, $routeParams.id);
+
+ navigationService.syncTree({ tree: 'TagManagerTree', path: ["-1", "tagGroup-" + $scope.cmsTags.tagItem.group, $routeParams.id], forceReload: false });
+
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+
+ $scope.change = function (tag) {
+ $scope.cmsTags.mergeTag = tag
+ }
+
+ $scope.save = function (cmsTags) {
+ tagManagerResource.saveTag(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem saving the tag, please check the logs.");
+ return;
+ }
+ navigationService.syncTree({ tree: 'TagManagerTree', path: ["-1", "tagGroup-" + cmsTags.group, cmsTags.id], forceReload: true });
+ notificationsService.success("Success", "'" + cmsTags.tagItem.tag + "' has been saved");
+ $route.reload();
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ };
+
+ $scope.openOverlay = function (cmsTags) {
+
+ var options = {
+ title: 'Confirm',
+ content: 'Are you sure you want to delete this tag?',
+ disableBackdropClick: true,
+ disableEscKey: true,
+ confirmType: 'delete',
+ submit: function () {
+ if ($scope.busy) {
+ return false;
+ }
+ $scope.busy = true;
+
+ if (cmsTags.tagsInGroup.length === 1) {
+ tagManagerResource.deleteTag(cmsTags).then(function (response) {
+
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tag, please check the logs.");
+ return;
+ }
+ notificationsService.success("Success", "'" + cmsTags.tagItem.tag + "' has been deleted. All tags have been deleted, re-create the group if you need it again");
+
+ //get the treeNode that we have selected
+ var node = appState.getTreeState("selectedNode");
+
+ //remove the node
+ treeService.removeNode(node);
+
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1"], forceReload: true }).then(function (syncArgs) {
+ navigationService.reloadNode(syncArgs.node);
+ });;
+
+ // if the current edited item is the same one as we're deleting, we need to navigate elsewhere
+ $location.path('/TagManager/TagManagerTree/');
+ $route.reload();
+
+ // return to not busy
+ $scope.busy = false;
+
+ }, function (err) {
+
+ $scope.busy = false;
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ else {
+ tagManagerResource.deleteTag(cmsTags).then(function (response) {
+
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tag, please check the logs.");
+ return;
+ }
+ notificationsService.success("Success", "'" + cmsTags.tagItem.tag + "' has been deleted.");
+
+ //get the treeNode that we have selected
+ var node = appState.getTreeState("selectedNode");
+
+ //remove the node
+ treeService.removeNode(node);
+
+ // if the current edited item is the same one as we're deleting, we need to navigate elsewhere
+ // for if we want to use the menu to also delete as doesn't neccesarily require redirection
+ if ($location.path() == "/" + node.routePath) {
+ //set location to be parent
+ $location.path("/" + node.parent().routePath);
+ }
+
+ // return to not busy
+ $scope.busy = false;
+
+ }, function (err) {
+
+ $scope.busy = false;
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ overlayService.close();
+ }
+ };
+
+ overlayService.confirm(options);
+ }
+ }
+
+ angular.module('umbraco').controller('tagManager.edit.controller', editTag);
+})();
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.group.controller.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.group.controller.js
new file mode 100644
index 0000000..2b51e24
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.group.controller.js
@@ -0,0 +1,174 @@
+(function () {
+ 'use strict';
+
+ function areAllTagsMarkedForDelete(cmsTags) {
+ var allTags = false;
+ var tagsCountForDelete = 0;
+ Object.entries(cmsTags).forEach(([key, value]) => {
+ if (value.tagSelected) {
+ tagsCountForDelete++;
+ }
+ });
+ if (cmsTags.length === tagsCountForDelete) {
+ allTags = true;
+ }
+ return allTags;
+ }
+
+ function manageGroup($scope, tagManagerResource, $location, $route, notificationsService, appState, overlayService, navigationService) {
+ var vm = this;
+
+ vm.filter = {
+ searchTerm: ""
+ };
+
+ // Initialize an array to hold selected tags
+ $scope.selectedTags = [];
+
+ var group = $location.path().substring($location.path().lastIndexOf('/') + 1);
+ $scope.title = group;
+
+ // Fetch tags for a specific group from the server
+ tagManagerResource.getTagsByGroup(group).then(function (response) {
+ $scope.cmsTags = response.data;
+ navigationService.syncTree({ tree: 'TagManagerTree', path: ["-1", "tagGroup-" + $scope.title], forceReload: true });
+
+ }, function (err) {
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+
+ // Function to toggle the selection of a tag
+ $scope.toggleSelectTag = function (tag) {
+ tag.tagSelected = !tag.tagSelected;
+ if (tag.tagSelected) {
+ $scope.selectedTags.push(tag);
+ } else {
+ var indexObj = $scope.selectedTags.indexOf(tag);
+ if (indexObj !== -1) {
+ $scope.selectedTags.splice(indexObj, 1);
+ }
+ }
+ };
+
+ // Function to clear the selection of all tags
+ $scope.clearSelection = function () {
+ // Iterate through all tags and set selected to false
+ $scope.cmsTags.tagsInGroup.forEach(function (tag) {
+ tag.tagSelected = false;
+ });
+
+ // Clear the selectedTags array
+ $scope.selectedTags = [];
+ };
+
+ // Function to filter tags based on the search query
+ $scope.filterTags = function (tag) {
+ var result = !$scope.searchQuery || tag.name.toLowerCase().includes($scope.searchQuery.toLowerCase());
+ return result;
+ };
+
+ // Function to navigate to the create tag view
+ $scope.navigateToCreateTag = function () {
+ $location.path('/TagManager/TagManagerTree/create');
+ };
+
+ // Function to navigate to the edit tag view
+ $scope.navigateToEditTag = function (tagId) {
+ $location.path('/TagManager/TagManagerTree/edit/' + tagId);
+ };
+
+ $scope.openOverlay = function (cmsTags) {
+ $scope.cmsTags = cmsTags;
+ var options = {
+ title: 'Confirm',
+ content: 'Are you sure you want to delete the selected tag(s)?',
+ disableBackdropClick: true,
+ disableEscKey: true,
+ confirmType: 'delete',
+ submit: function () {
+
+ if (cmsTags.length === 0) {
+ return;
+ }
+ if ($scope.busy) {
+ return false;
+ }
+ $scope.busy = true;
+
+ var allTagsForDelete = areAllTagsMarkedForDelete(cmsTags.tagsInGroup);
+ if (allTagsForDelete) {
+ tagManagerResource.deleteTags(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tags, please check the logs.");
+ return;
+ }
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1"], forceReload: true }).then(function (syncArgs) {
+ navigationService.reloadNode(syncArgs.node);
+ });
+
+ $location.path('/TagManager/');
+ $route.reload();
+
+ notificationsService.success("Success", "All tags have been deleted, re-create the group if you need it again");
+
+ $scope.busy = false;
+ }, function (err) {
+ $scope.busy = false;
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+ else {
+ tagManagerResource.deleteTags(cmsTags).then(function (response) {
+ if (response.data === 0) {
+ notificationsService.error("Error", "There was a problem deleting the tags, please check the logs.");
+ return;
+ }
+ var node = appState.getTreeState("selectedNode");
+
+ navigationService.syncTree({ tree: "TagManagerTree", path: ["-1", "tagGroup-" + node.name], forceReload: true }).then(function (syncArgs) {
+ navigationService.reloadNode(syncArgs.node);
+ });;
+ $route.reload();
+ notificationsService.success("Success", "tags have been deleted.");
+
+ $scope.busy = false;
+ }, function (err) {
+ $scope.busy = false;
+ //check if response is ysod
+ if (err.status && err.status >= 500) {
+ dialogService.ysodDialog(err);
+ }
+ if (err.data && angular.isArray(err.data.notifications)) {
+ for (var i = 0; i < err.data.notifications.length; i++) {
+ notificationsService.showNotification(err.data.notifications[i]);
+ }
+ }
+ });
+ }
+
+
+ overlayService.close();
+ }
+ };
+
+ overlayService.confirm(options);
+ }
+ }
+ angular.module('umbraco').controller('tagManager.group.controller', manageGroup);
+})();
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.resource.js b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.resource.js
new file mode 100644
index 0000000..ca78d90
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/backoffice/scripts/tagManager.resource.js
@@ -0,0 +1,34 @@
+angular.module("umbraco.resources").factory("tagManagerResource", function ($http) {
+ return {
+ getTagsById: function (id) {
+ return $http.get("backoffice/TagManager/TagManagerApi/GetTagsById?id=" + id);
+ },
+ getTagsByGroup: function (group) {
+ return $http.get("backoffice/TagManager/TagManagerApi/GetTagsByGroup?group=" + group);
+ },
+ getPagedContent: function (id, offset, limit) {
+ return $http.get("backoffice/TagManager/TagManagerApi/GetPagedContent?id=" + id + "&offset=" + offset + "&limit=" + limit);
+ },
+ getPagedMedia: function (id, offset, limit) {
+ return $http.get("backoffice/TagManager/TagManagerApi/GetPagedMedia?id=" + id + "&offset=" + offset + "&limit=" + limit);
+ },
+ getTagGroups: function () {
+ return $http.get("backoffice/TagManager/TagManagerApi/GetTagGroups");
+ },
+ createGroup: function (group) {
+ return $http.get("backoffice/TagManager/TagManagerApi/CreateGroup?group=" + group);
+ },
+ createTag: function (cmsTags) {
+ return $http.post("backoffice/TagManager/TagManagerApi/CreateTag", angular.toJson(cmsTags));
+ },
+ saveTag: function (cmsTags) {
+ return $http.post("backoffice/TagManager/TagManagerApi/SaveTag", angular.toJson(cmsTags));
+ },
+ deleteTag: function (cmsTags) {
+ return $http.post("backoffice/TagManager/TagManagerApi/DeleteTag", angular.toJson(cmsTags));
+ },
+ deleteTags: function (cmsTags) {
+ return $http.post("backoffice/TagManager/TagManagerApi/DeleteTags", angular.toJson(cmsTags));
+ }
+ };
+});
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-GB.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-GB.xml
new file mode 100644
index 0000000..fdae160
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-GB.xml
@@ -0,0 +1,10 @@
+
+
+
+ Tag Manager
+
+
+ Tag Manager
+ Tag Manager
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-US.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-US.xml
new file mode 100644
index 0000000..7678f04
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en-US.xml
@@ -0,0 +1,10 @@
+
+
+
+ Tag Manager
+
+
+ Tag Manager
+ Tag Manager
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en.xml b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en.xml
new file mode 100644
index 0000000..fdae160
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/lang/en.xml
@@ -0,0 +1,10 @@
+
+
+
+ Tag Manager
+
+
+ Tag Manager
+ Tag Manager
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/package.manifest b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/package.manifest
new file mode 100644
index 0000000..64fd6cf
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/App_Plugins/TagManager/package.manifest
@@ -0,0 +1,21 @@
+{
+ "dashboards": [
+ {
+ "alias": "tagManager",
+ "view": "~/App_Plugins/tagManager/backoffice/dashboards/dashboard.html",
+ "sections": [ "TagManager" ]
+ }
+ ],
+ "javascript": [
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.create.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.createGroup.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.delete.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.edit.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.group.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.dropdownFlexible.controller.js",
+ "~/App_Plugins/tagManager/backoffice/scripts/tagManager.resource.js"
+ ],
+ "css": [
+ "~/App_Plugins/tagManager/backoffice/css/tagManager.css"
+ ]
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Our.Umbraco.Community.TagManager.TestSite.V10.csproj b/Umbraco Tag Manager.TestSite.V10/Our.Umbraco.Community.TagManager.TestSite.V10.csproj
new file mode 100644
index 0000000..567ff54
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Our.Umbraco.Community.TagManager.TestSite.V10.csproj
@@ -0,0 +1,48 @@
+
+
+ net6.0
+ enable
+ enable
+ Our.Umbraco.Community.TagManager.TestSite.V10
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Program.cs b/Umbraco Tag Manager.TestSite.V10/Program.cs
new file mode 100644
index 0000000..eb2e8f8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Program.cs
@@ -0,0 +1,19 @@
+namespace Our.Umbraco.Community.TagManager.TestSite.V10
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ => CreateHostBuilder(args)
+ .Build()
+ .Run();
+
+ public static IHostBuilder CreateHostBuilder(string[] args) =>
+ Host.CreateDefaultBuilder(args)
+ .ConfigureUmbracoDefaults()
+ .ConfigureWebHostDefaults(webBuilder =>
+ {
+ webBuilder.UseStaticWebAssets();
+ webBuilder.UseStartup();
+ });
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Properties/launchSettings.json b/Umbraco Tag Manager.TestSite.V10/Properties/launchSettings.json
new file mode 100644
index 0000000..21b43b1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Properties/launchSettings.json
@@ -0,0 +1,29 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:15293",
+ "sslPort": 44398
+ }
+ },
+ "profiles": {
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "Umbraco.Web.UI": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:44398;http://localhost:15293",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Startup.cs b/Umbraco Tag Manager.TestSite.V10/Startup.cs
new file mode 100644
index 0000000..27ccfc9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Startup.cs
@@ -0,0 +1,65 @@
+namespace Our.Umbraco.Community.TagManager.TestSite.V10
+{
+ public class Startup
+ {
+ private readonly IWebHostEnvironment _env;
+ private readonly IConfiguration _config;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The web hosting environment.
+ /// The configuration.
+ ///
+ /// Only a few services are possible to be injected here https://github.com/dotnet/aspnetcore/issues/9337.
+ ///
+ public Startup(IWebHostEnvironment webHostEnvironment, IConfiguration config)
+ {
+ _env = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment));
+ _config = config ?? throw new ArgumentNullException(nameof(config));
+ }
+
+ ///
+ /// Configures the services.
+ ///
+ /// The services.
+ ///
+ /// This method gets called by the runtime. Use this method to add services to the container.
+ /// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940.
+ ///
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddUmbraco(_env, _config)
+ .AddBackOffice()
+ .AddWebsite()
+ .AddComposers()
+ .Build();
+ }
+
+ ///
+ /// Configures the application.
+ ///
+ /// The application builder.
+ /// The web hosting environment.
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
+ {
+ if (env.IsDevelopment())
+ {
+ app.UseDeveloperExceptionPage();
+ }
+
+ app.UseUmbraco()
+ .WithMiddleware(u =>
+ {
+ u.UseBackOffice();
+ u.UseWebsite();
+ })
+ .WithEndpoints(u =>
+ {
+ u.UseInstallerEndpoints();
+ u.UseBackOfficeEndpoints();
+ u.UseWebsiteEndpoints();
+ });
+ }
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Author.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Author.cshtml
new file mode 100644
index 0000000..41b2777
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Author.cshtml
@@ -0,0 +1,30 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+ var authorListPage = Model.Parent as AuthorList;
+}
+
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, authorListPage.MainImage, null, null))
+
+
+
+
+
+
+
+
+
+
@Model.Name
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/AuthorList.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/AuthorList.cshtml
new file mode 100644
index 0000000..f0a499c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/AuthorList.cshtml
@@ -0,0 +1,12 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+@await Html.PartialAsync("~/Views/Partials/authors.cshtml")
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Components/Contact/Default.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Components/Contact/Default.cshtml
new file mode 100644
index 0000000..b876527
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Components/Contact/Default.cshtml
@@ -0,0 +1,26 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels;
+
+@using (Html.BeginUmbracoForm("SubmitForm", "ContactSurface", FormMethod.Post, new { @class = "text-left" }))
+{
+
+
+ @Umbraco.GetDictionaryValue("ContactForm.Name")
+
+
+
+
+ @Umbraco.GetDictionaryValue("ContactForm.Email")
+
+
+
+
+ @Umbraco.GetDictionaryValue("ContactForm.Message")
+
+
+
+
+ @Umbraco.GetDictionaryValue("ContactForm.Send")
+
+}
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Components/Pagination/Default.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Components/Pagination/Default.cshtml
new file mode 100644
index 0000000..ac0eaf5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Components/Pagination/Default.cshtml
@@ -0,0 +1,48 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels;
+
+
+ @if (Model.PageCount > 1)
+ {
+
+ }
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/authors.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/authors.cshtml
new file mode 100644
index 0000000..50f9aa4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/authors.cshtml
@@ -0,0 +1,55 @@
+@inherits UmbracoViewPage
+
+@using Clean.Core.Helpers
+@using Clean.Core.Models.ViewModels;
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ AuthorList authorList = UmbracoContext.Content.GetAtRoot().DescendantsOrSelf().FirstOrDefault();
+ int modelId = Model.Id;
+ var isAuthorListPage = modelId == authorList?.Id;
+ var fallbackPageSize = isAuthorListPage ? 10 : 3;
+
+ var pageSize = QueryStringHelper.GetIntFromQueryString(Context.Request.Query, "size", fallbackPageSize);
+ var pageNumber = QueryStringHelper.GetIntFromQueryString(Context.Request.Query, "page", 1);
+ var allAuthors = authorList?.Children().Where(x => x.IsVisible()) ?? Enumerable.Empty();
+ var pageOfAuthors = allAuthors.Skip((pageNumber - 1) * pageSize).Take(pageSize);
+ var totalItemCount = allAuthors.Count();
+ var pageCount = totalItemCount > 0 ? Math.Ceiling((double)totalItemCount / pageSize) : 1;
+
+}
+
+
+
+
+
+
+ @foreach (var author in pageOfAuthors)
+ {
+
+
+
+
+
+
+
+
+ }
+
+
+
+ @if (isAuthorListPage)
+ {
+ @await Component.InvokeAsync("Pagination", new { totalItems = totalItemCount, url = Model.Url(), pageNumber = pageNumber, pageSize = pageSize })
+ }
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/area.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/area.cshtml
new file mode 100644
index 0000000..3614847
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/area.cshtml
@@ -0,0 +1,10 @@
+@using Umbraco.Extensions
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+
+ @await Html.GetBlockGridItemsHtmlAsync(Model)
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/areas.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/areas.cshtml
new file mode 100644
index 0000000..30f987c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/areas.cshtml
@@ -0,0 +1,13 @@
+@using Umbraco.Extensions
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+@{
+ if (Model?.Areas.Any() != true) { return; }
+}
+
+
+ @foreach (var area in Model.Areas)
+ {
+ @await Html.GetBlockGridItemAreaHtmlAsync(area)
+ }
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/default.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/default.cshtml
new file mode 100644
index 0000000..e25839e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/default.cshtml
@@ -0,0 +1,11 @@
+@using Umbraco.Extensions
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+@{
+ if (Model?.Any() != true) { return; }
+}
+
+
+ @await Html.GetBlockGridItemsHtmlAsync(Model)
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/items.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/items.cshtml
new file mode 100644
index 0000000..2703fa5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blockgrid/items.cshtml
@@ -0,0 +1,36 @@
+@using Umbraco.Cms.Core.Models.Blocks
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage>
+@{
+ if (Model?.Any() != true) { return; }
+}
+
+
+ @foreach (var item in Model)
+ {
+
+
+ @{
+ var partialViewName = "blockgrid/Components/" + item.Content.ContentType.Alias;
+ try
+ {
+ @await Html.PartialAsync(partialViewName, item)
+ }
+ catch (InvalidOperationException)
+ {
+
+ Could not render component of type: @(item.Content.ContentType.Alias)
+
+ This likely happened because the partial view @partialViewName could not be found.
+
+ }
+ }
+
+ }
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/codeSnippetRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/codeSnippetRow.cshtml
new file mode 100644
index 0000000..18855dc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/codeSnippetRow.cshtml
@@ -0,0 +1,30 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+
+@{
+ var row = Model.Content as CodeSnippetRow;
+ var settings = Model.Settings as CodeSnippetRowSettings;
+ if (settings?.Hide ?? false) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = Clean.Core.Helpers.SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+
+ SmidgeHelper.RequiresCss("~/clean-assets/css/vs2015.css");
+ SmidgeHelper.RequiresCss("~/clean-assets/css/highlightjs-copy.min.css");
+ SmidgeHelper.RequiresJs("~/clean-assets/js/highlight.min.js");
+ SmidgeHelper.RequiresJs("~/clean-assets/js/highlightjs-copy.min.js");
+ SmidgeHelper.RequiresJs("~/clean-assets/js/initHighlight.js");
+}
+
+
+
+
@row.Code
+ @if (!string.IsNullOrWhiteSpace(row.Title))
+ {
+
@row.Title
+ }
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/iconLinkRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/iconLinkRow.cshtml
new file mode 100644
index 0000000..ab34ffc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/iconLinkRow.cshtml
@@ -0,0 +1,15 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+@addTagHelper *, Clean.Core
+
+@{
+ var row = Model.Content as IconLinkRow;
+ var settings = Model.Settings as IconLinkRowSettings;
+ if (settings?.Hide ?? false) { return; }
+}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageCarouselRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageCarouselRow.cshtml
new file mode 100644
index 0000000..d6fbe7c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageCarouselRow.cshtml
@@ -0,0 +1,57 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+@using Clean.Core.Extensions
+
+@{
+ var row = Model.Content as ImageCarouselRow;
+ var settings = Model.Settings as ImageCarouselRowSettings;
+ if (settings?.Hide ?? false) { return; }
+ if (row.Images == null || !row.Images.Any()) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = Clean.Core.Helpers.SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+
+ SmidgeHelper.RequiresCss("~/clean-assets/css/swiffy-slider.min.css");
+ SmidgeHelper.RequiresJs("~/clean-assets/js/swiffy-slider.min.js");
+}
+
+
+
+
+
+ @foreach (var item in row.Images)
+ {
+
+ }
+
+
+
+
+
+
+
+ @if (row.Images.Count() > 1)
+ {
+ foreach (var image in row.Images.Skip(1))
+ {
+
+ }
+ }
+
+
+
+
+ @if (row.Images.Count() > 1)
+ {
+ foreach (var image in row.Images.Skip(1))
+ {
+
+ }
+ }
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageRow.cshtml
new file mode 100644
index 0000000..d207c8f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/imageRow.cshtml
@@ -0,0 +1,26 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+@using Clean.Core.Extensions
+
+@{
+ var row = Model.Content as ImageRow;
+ var settings = Model.Settings as ImageRowSettings;
+ if (settings?.Hide ?? false) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = Clean.Core.Helpers.SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+}
+
+
+
+
+ @if (!string.IsNullOrWhiteSpace(row.Caption))
+ {
+
@row.Caption
+ }
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/latestArticlesRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/latestArticlesRow.cshtml
new file mode 100644
index 0000000..c134a92
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/latestArticlesRow.cshtml
@@ -0,0 +1,76 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+@using Clean.Core.Extensions
+@using Clean.Core.Helpers
+
+@{
+ var row = Model.Content as LatestArticlesRow;
+ var settings = Model.Settings as LatestArticlesRowSettings;
+ if (settings?.Hide ?? false) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+
+ var pageSize = row.PageSize;
+ var pageNumber = QueryStringHelper.GetIntFromQueryString(Context.Request.Query, "page", 1);
+ var allArticles = row.ArticleList.Children().Where(x => x.IsVisible()).OrderByDescending(x => x.ArticleDate) ?? Enumerable.Empty();
+ var pageOfArticles = allArticles.Skip((pageNumber - 1) * pageSize).Take(pageSize);
+ var totalItemCount = allArticles.Count();
+ var pageCount = totalItemCount > 0 ? Math.Ceiling((double)totalItemCount / pageSize) : 1;
+}
+
+
+
+ @foreach (var article in pageOfArticles)
+ {
+ var author = article.GetAuthor(Umbraco);
+ bool.TryParse(article.Value
("showFullArticleOnListPage", fallback: Fallback.ToAncestors), out var showFullArticleOnListPage);
+
+
+
+
+ @(!string.IsNullOrWhiteSpace(article.Title) ? article.Title : article.Name)
+
+ @if (!string.IsNullOrWhiteSpace(article.Subtitle))
+ {
+ @article.Subtitle
+ }
+
+
+ @Umbraco.GetDictionaryValue("Article.Posted")
+ @Umbraco.GetDictionaryValue("Article.By")@Html.Raw(" ")@author.Name
+ @Umbraco.GetDictionaryValue("Article.On") @article.ArticleDate.ToString("MMMM dd, yyyy")
+
+ @if (showFullArticleOnListPage && article.Categories != null && article.Categories.Any())
+ {
+
+ @foreach (var category in article.Categories.Select(x => x.Name).OrderBy(y => y))
+ {
+
@category
+ }
+
+ }
+
+
+ @if (showFullArticleOnListPage)
+ {
+
+
+ @Html.GetBlockListHtml(article.ContentRows)
+
+
+ }
+
+
+ }
+
+ @if (row.ShowPagination)
+ {
+ @await Component.InvokeAsync("Pagination", new { totalItems = totalItemCount, url = row.ArticleList.Url(), pageNumber = pageNumber, pageSize = pageSize })
+ }
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/richTextRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/richTextRow.cshtml
new file mode 100644
index 0000000..e33199c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/richTextRow.cshtml
@@ -0,0 +1,20 @@
+@inherits UmbracoViewPage
+@using Umbraco.Cms.Core.Models.Blocks
+
+@{
+ var row = Model.Content as RichTextRow;
+ var settings = Model.Settings as RichTextRowSettings;
+ if (settings?.Hide ?? false) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = Clean.Core.Helpers.SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+}
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/videoRow.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/videoRow.cshtml
new file mode 100644
index 0000000..8d57cdb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/Components/videoRow.cshtml
@@ -0,0 +1,29 @@
+@inherits UmbracoViewPage
+@using Clean.Core.Helpers
+@using Umbraco.Cms.Core.Models.Blocks
+
+@{
+ var row = Model.Content as VideoRow;
+ var settings = Model.Settings as VideoRowSettings;
+ if (settings?.Hide ?? false) { return; }
+ if (string.IsNullOrWhiteSpace(row.VideoUrl)) { return; }
+
+ var spacingClasses = "";
+ if (Model.Settings is ISpacingProperties spacing)
+ {
+ spacingClasses = Clean.Core.Helpers.SpacingHelper.GetSpacingClasses(spacing.PaddingTop, spacing.PaddingBottom, spacing.PaddingLeft, spacing.PaddingRight, spacing.MarginTop, spacing.MarginBottom, spacing.MarginLeft, spacing.MarginRight);
+ }
+
+ var videoId = VideoUrlHelper.GetVideoId(row.VideoUrl);
+}
+
+
+
+
+ @if (!string.IsNullOrWhiteSpace(row.Caption))
+ {
+
@row.Caption
+ }
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/default.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/default.cshtml
new file mode 100644
index 0000000..accca2e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/blocklist/default.cshtml
@@ -0,0 +1,13 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+@{
+ if (Model?.Any() != true) { return; }
+}
+
+ @foreach (var block in Model)
+ {
+ if (block?.ContentUdi == null) { continue; }
+ var data = block.Content;
+
+ @await Html.PartialAsync("blocklist/Components/" + data.ContentType.Alias, block)
+ }
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/footer.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/footer.cshtml
new file mode 100644
index 0000000..f4d2074
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/footer.cshtml
@@ -0,0 +1,24 @@
+@inherits UmbracoViewPage
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ var homePage = Model.AncestorOrSelf();
+}
+
+
+
+
+
+
+ @if (homePage.SocialIconLinks != null && homePage.SocialIconLinks.Any())
+ {
+
+ @Html.GetBlockListHtml(homePage.SocialIconLinks)
+
+ }
+
@Umbraco.GetDictionaryValue("Footer.CopyrightTitle") © @DateTime.Now.Year @Umbraco.GetDictionaryValue("Footer.CopyrightStatement")
+
Theme by Start Bootstrap , implemented in Umbraco by Paul Seal from codeshare.co.uk
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3-fluid.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3-fluid.cshtml
new file mode 100644
index 0000000..b92734e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3-fluid.cshtml
@@ -0,0 +1,106 @@
+@using System.Web
+@using Microsoft.AspNetCore.Html
+@using Newtonsoft.Json.Linq
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@*
+ Razor helpers located at the bottom of this file
+*@
+
+@if (Model is JObject && Model?.sections is not null)
+{
+ var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;
+
+
+ @if (oneColumn)
+ {
+ foreach (var section in Model.sections)
+ {
+
+ @foreach (var row in section.rows)
+ {
+ renderRow(row);
+ }
+
+ }
+ }
+ else
+ {
+
+ @foreach (var sec in Model.sections)
+ {
+
+
+ @foreach (var row in sec.rows)
+ {
+ renderRow(row);
+ }
+
+
+ }
+
+ }
+
+}
+
+@functions{
+
+ private async Task renderRow(dynamic row)
+ {
+
+
+ @foreach (var area in row.areas)
+ {
+
+
+ @foreach (var control in area.controls)
+ {
+ if (control?.editor?.view != null)
+ {
+ @await Html.PartialAsync("grid/editors/base", (object)control)
+ }
+ }
+
+
+ }
+
+
+ }
+}
+
+@functions{
+
+ public static HtmlString RenderElementAttributes(dynamic contentItem)
+ {
+ var attrs = new List();
+ JObject cfg = contentItem.config;
+
+ if (cfg != null)
+ {
+ foreach (JProperty property in cfg.Properties())
+ {
+ var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
+ attrs.Add(property.Name + "=\"" + propertyValue + "\"");
+ }
+ }
+
+ JObject style = contentItem.styles;
+
+ if (style != null) {
+ var cssVals = new List();
+ foreach (JProperty property in style.Properties())
+ {
+ var propertyValue = property.Value.ToString();
+ if (string.IsNullOrWhiteSpace(propertyValue) == false)
+ {
+ cssVals.Add(property.Name + ":" + propertyValue + ";");
+ }
+ }
+
+ if (cssVals.Any())
+ attrs.Add("style='" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "'");
+ }
+
+ return new HtmlString(string.Join(" ", attrs));
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3.cshtml
new file mode 100644
index 0000000..8863788
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/bootstrap3.cshtml
@@ -0,0 +1,112 @@
+@using System.Web
+@using Microsoft.AspNetCore.Html
+@using Newtonsoft.Json.Linq
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@if (Model is JObject && Model?.sections is not null)
+{
+ var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1;
+
+
+ @if (oneColumn)
+ {
+ foreach (var section in Model.sections)
+ {
+
+ @foreach (var row in section.rows)
+ {
+ renderRow(row, true);
+ }
+
+ }
+ }
+ else
+ {
+
+
+ @foreach (var sec in Model.sections)
+ {
+
+
+ @foreach (var row in sec.rows)
+ {
+ renderRow(row, false);
+ }
+
+
+ }
+
+
+ }
+
+}
+
+@functions{
+
+ private async Task renderRow(dynamic row, bool singleColumn)
+ {
+
+ @if (singleColumn) {
+ @:
+ }
+
+ @foreach (var area in row.areas)
+ {
+
+
+ @foreach (var control in area.controls)
+ {
+ if (control?.editor?.view != null)
+ {
+ @await Html.PartialAsync("grid/editors/base", (object)control)
+ }
+ }
+
+
+ }
+
+ @if (singleColumn) {
+ @:
+ }
+
+ }
+
+}
+
+@functions{
+
+ public static HtmlString RenderElementAttributes(dynamic contentItem)
+ {
+ var attrs = new List();
+ JObject cfg = contentItem.config;
+
+ if (cfg != null)
+ {
+ foreach (JProperty property in cfg.Properties())
+ {
+ var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString());
+ attrs.Add(property.Name + "=\"" + propertyValue + "\"");
+ }
+ }
+
+ JObject style = contentItem.styles;
+
+ if (style != null)
+ {
+ var cssVals = new List();
+ foreach (JProperty property in style.Properties())
+ {
+ var propertyValue = property.Value.ToString();
+ if (string.IsNullOrWhiteSpace(propertyValue) == false)
+ {
+ cssVals.Add(property.Name + ":" + propertyValue + ";");
+ }
+ }
+
+ if (cssVals.Any())
+ attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\"");
+ }
+
+ return new HtmlString(string.Join(" ", attrs));
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/base.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/base.cshtml
new file mode 100644
index 0000000..e40543b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/base.cshtml
@@ -0,0 +1,27 @@
+@model dynamic
+
+@try
+{
+ string editor = EditorView(Model);
+ @await Html.PartialAsync(editor, Model as object)
+}
+catch (Exception ex)
+{
+ @ex.ToString()
+}
+
+@functions{
+
+ public static string EditorView(dynamic contentItem)
+ {
+ string view = contentItem.editor.render != null ? contentItem.editor.render.ToString() : contentItem.editor.view.ToString();
+ view = view.Replace(".html", ".cshtml");
+
+ if (!view.Contains("/"))
+ {
+ view = "grid/editors/" + view;
+ }
+
+ return view;
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/embed.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/embed.cshtml
new file mode 100644
index 0000000..74c8fe2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/embed.cshtml
@@ -0,0 +1,11 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@if (Model is not null)
+{
+ string embedValue = Convert.ToString(Model.value);
+ embedValue = embedValue.DetectIsJson() ? Model.value.preview : Model.value;
+
+
+ @Html.Raw(embedValue)
+
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/macro.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/macro.cshtml
new file mode 100644
index 0000000..a4450d1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/macro.cshtml
@@ -0,0 +1,15 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@if (Model?.value is not null)
+{
+ string macroAlias = Model.value.macroAlias.ToString();
+ var parameters = new Dictionary();
+ foreach (var mpd in Model.value.macroParamsDictionary)
+ {
+ parameters.Add(mpd.Name, mpd.Value);
+ }
+
+
+ @await Umbraco.RenderMacroAsync(macroAlias, parameters)
+
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/media.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/media.cshtml
new file mode 100644
index 0000000..bc3b111
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/media.cshtml
@@ -0,0 +1,64 @@
+@model dynamic
+@using Umbraco.Cms.Core.Media
+@using Umbraco.Cms.Core.PropertyEditors.ValueConverters
+@inject IImageUrlGenerator ImageUrlGenerator
+
+@if (Model?.value is not null)
+{
+ var url = Model.value.image;
+
+ if (Model.editor.config != null && Model.editor.config.size != null)
+ {
+ if (Model.value.coordinates != null)
+ {
+ url = ImageCropperTemplateCoreExtensions.GetCropUrl(
+ (string)url,
+ ImageUrlGenerator,
+ width: (int)Model.editor.config.size.width,
+ height: (int)Model.editor.config.size.height,
+ cropAlias: "default",
+ cropDataSet: new ImageCropperValue
+ {
+ Crops = new[]
+ {
+ new ImageCropperValue.ImageCropperCrop
+ {
+ Alias = "default",
+ Coordinates = new ImageCropperValue.ImageCropperCropCoordinates
+ {
+ X1 = (decimal)Model.value.coordinates.x1,
+ Y1 = (decimal)Model.value.coordinates.y1,
+ X2 = (decimal)Model.value.coordinates.x2,
+ Y2 = (decimal)Model.value.coordinates.y2
+ }
+ }
+ }
+ });
+ }
+ else
+ {
+ url = ImageCropperTemplateCoreExtensions.GetCropUrl(
+ (string)url,
+ ImageUrlGenerator,
+ width: (int)Model.editor.config.size.width,
+ height: (int)Model.editor.config.size.height,
+ cropDataSet: new ImageCropperValue
+ {
+ FocalPoint = new ImageCropperValue.ImageCropperFocalPoint
+ {
+ Top = Model.value.focalPoint == null ? 0.5m : Model.value.focalPoint.top,
+ Left = Model.value.focalPoint == null ? 0.5m : Model.value.focalPoint.left
+ }
+ });
+ }
+ }
+
+ var altText = Model.value.altText ?? Model.value.caption ?? string.Empty;
+
+
+
+ if (Model.value.caption != null)
+ {
+ @Model.value.caption
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/rte.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/rte.cshtml
new file mode 100644
index 0000000..9445666
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/rte.cshtml
@@ -0,0 +1,13 @@
+@using Umbraco.Cms.Core.Templates
+@model dynamic
+@inject HtmlLocalLinkParser HtmlLocalLinkParser;
+@inject HtmlUrlParser HtmlUrlParser;
+@inject HtmlImageSourceParser HtmlImageSourceParser;
+
+@{
+ var value = HtmlLocalLinkParser.EnsureInternalLinks(Model?.value.ToString());
+ value = HtmlUrlParser.EnsureUrls(value);
+ value = HtmlImageSourceParser.EnsureImageSources(value);
+}
+
+@Html.Raw(value)
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/textstring.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/textstring.cshtml
new file mode 100644
index 0000000..e6b9352
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/grid/editors/textstring.cshtml
@@ -0,0 +1,22 @@
+@model dynamic
+
+@if (Model?.editor.config.markup is not null)
+{
+ string markup = Model.editor.config.markup.ToString();
+ markup = markup.Replace("#value#", Html.ReplaceLineBreaks((string)Model.value.ToString()).ToString());
+
+ if (Model.editor.config.style != null)
+ {
+ markup = markup.Replace("#style#", Model.editor.config.style.ToString());
+ }
+
+
+ @Html.Raw(markup)
+
+}
+else
+{
+
+ @Model?.value
+
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/mainNavigation.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/mainNavigation.cshtml
new file mode 100644
index 0000000..5b21600
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/mainNavigation.cshtml
@@ -0,0 +1,30 @@
+@inherits UmbracoViewPage
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ var homePage = Model.AncestorOrSelf();
+}
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/metaData.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/metaData.cshtml
new file mode 100644
index 0000000..39ae981
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/metaData.cshtml
@@ -0,0 +1,44 @@
+@inherits UmbracoViewPage
+
+@{
+ var homePage = Model.AncestorOrSelf();
+ string domainAddress = homePage.Url(mode:UrlMode.Absolute).TrimEnd('/');
+ string canonicalLink = domainAddress + Model.Url();
+ string metaName = Model.Value("metaName");
+ string metaDescription = Model.Value("metaDescription");
+ var metaKeywords = Model.Value>("metaKeywords");
+}
+
+
+
+
+
+
+ @string.Format("{0} | {1}", Model.Name, Umbraco.GetDictionaryValue("Navigation.SiteName"))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/pageHeader.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/pageHeader.cshtml
new file mode 100644
index 0000000..45b3520
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/pageHeader.cshtml
@@ -0,0 +1,48 @@
+@inherits UmbracoViewPage
+
+@{
+ string mainImageUrl = Model.HasBackgroundImage ? Model.BackgroundImage.GetCropUrl(1903, 628) : "/media/f01jqvmq/2.jpg";
+}
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/Partials/xmlSitemap.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/Partials/xmlSitemap.cshtml
new file mode 100644
index 0000000..a1c5049
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/Partials/xmlSitemap.cshtml
@@ -0,0 +1,32 @@
+@model IPublishedContent
+@{
+
+ var homePage = Model.AncestorOrSelf("home");
+ void RenderChildPages(IEnumerable contentItems)
+ {
+ if (contentItems.Any())
+ {
+ foreach (var content in contentItems.Where(x => x.IsVisible()))
+ {
+ if (!(content.HasProperty("excludeFromSitemap") && content.Value("excludeFromSitemap")))
+ {
+@content.Url(mode:UrlMode.Absolute) @content.UpdateDate.ToString("yyyy-MM-ddTHH:mm:sszzz")
+ if (content.Children.Any(x => x.IsVisible()))
+ {
+ RenderChildPages(content.Children);
+ }
+ }
+ }
+ }
+ };
+}
+
+
+@homePage.Url(mode: UrlMode.Absolute) 1.0 @homePage.UpdateDate.ToString("yyyy-MM-ddTHH:mm:sszzz")
+ @{
+ RenderChildPages(homePage.Children);
+ }
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/_ViewImports.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/_ViewImports.cshtml
new file mode 100644
index 0000000..770a545
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/_ViewImports.cshtml
@@ -0,0 +1,9 @@
+@using Umbraco.Extensions
+@using Our.Umbraco.Community.TagManager.TestSite.V10
+@using Umbraco.Cms.Web.Common.PublishedModels
+@using Umbraco.Cms.Web.Common.Views
+@using Umbraco.Cms.Core.Models.PublishedContent
+@using Microsoft.AspNetCore.Html
+@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
+@addTagHelper *, Smidge
+@inject Smidge.SmidgeHelper SmidgeHelper
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/article.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/article.cshtml
new file mode 100644
index 0000000..e9abfff
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/article.cshtml
@@ -0,0 +1,23 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+@using Umbraco.Cms.Core
+@using Clean.Core.Extensions
+
+@{
+ Layout = "master.cshtml";
+ var author = Model.GetAuthor(Umbraco);
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage, author.Name, Model.ArticleDate, Model.Categories))
+
+
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/articleList.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/articleList.cshtml
new file mode 100644
index 0000000..09454dc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/articleList.cshtml
@@ -0,0 +1,23 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+@if (Model.ContentRows != null)
+{
+
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
+}
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/contact.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/contact.cshtml
new file mode 100644
index 0000000..6cc6bd2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/contact.cshtml
@@ -0,0 +1,44 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+ var submitted = false;
+ if (bool.TryParse(TempData["Success"]?.ToString() ?? "", out var success))
+ {
+ submitted = true;
+ }
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+
+
+
+
+ @if(submitted)
+ {
+
+ @if (success)
+ {
+ @Model.SuccessMessage
+ }
+ else
+ {
+ @Model.ErrorMessage
+ }
+ }
+ else
+ {
+ @Model.InstructionMessage
+
+ @await Component.InvokeAsync("Contact")
+
+
+ }
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/content.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/content.cshtml
new file mode 100644
index 0000000..6094703
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/content.cshtml
@@ -0,0 +1,21 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+
+@{
+ Layout = "master.cshtml";
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/error.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/error.cshtml
new file mode 100644
index 0000000..8385238
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/error.cshtml
@@ -0,0 +1,20 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/home.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/home.cshtml
new file mode 100644
index 0000000..10a4128
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/home.cshtml
@@ -0,0 +1,23 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+
+@{
+ Layout = "master.cshtml";
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+@if (Model.ContentRows != null)
+{
+
+
+
+
+ @Html.GetBlockListHtml(Model.ContentRows)
+
+
+
+
+}
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/master.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/master.cshtml
new file mode 100644
index 0000000..dbda0d5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/master.cshtml
@@ -0,0 +1,33 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@{
+ Layout = null;
+
+ SmidgeHelper.RequiresCss("~/clean-assets/css/styles.css");
+ SmidgeHelper.RequiresJs("~/clean-assets/js/scripts.js");
+}
+
+
+
+
+ @await Html.PartialAsync("~/Views/Partials/metaData.cshtml")
+
+
+
+
+
+
+ @await SmidgeHelper.CssHereAsync(debug: false)
+
+
+
+ @await Html.CachedPartialAsync("~/Views/Partials/mainNavigation.cshtml", model: Model, cacheTimeout: TimeSpan.FromMinutes(60))
+ @RenderBody()
+ @await Html.CachedPartialAsync("~/Views/Partials/footer.cshtml", model: Model, cacheTimeout: TimeSpan.FromMinutes(60))
+
+
+
+
+ @await SmidgeHelper.JsHereAsync(debug: false)
+
+
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/search.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/search.cshtml
new file mode 100644
index 0000000..2a4f987
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/search.cshtml
@@ -0,0 +1,71 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+
+@using Clean.Core.Models.ViewModels
+@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels
+@using Umbraco.Cms.Core
+@using Clean.Core.Extensions
+@inject Umbraco.Cms.Core.IPublishedContentQuery publishedContentQuery
+
+@{
+ Layout = "master.cshtml";
+ var searchQuery = Context.Request.Query["q"];
+ var docTypesToIgnore = new[] { Category.ModelTypeAlias, CategoryList.ModelTypeAlias, Error.ModelTypeAlias, Search.ModelTypeAlias, XMlsitemap.ModelTypeAlias };
+}
+
+@await Html.PartialAsync("~/Views/Partials/pageHeader.cshtml", new PageHeaderViewModel(Model.Name, Model.Title, Model.Subtitle, Model.MainImage))
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/Views/xMLSitemap.cshtml b/Umbraco Tag Manager.TestSite.V10/Views/xMLSitemap.cshtml
new file mode 100644
index 0000000..9d3f5b1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/Views/xMLSitemap.cshtml
@@ -0,0 +1,6 @@
+@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage
+@{
+ Context.Response.ContentType = "text/xml";
+ Layout = null;
+}
+@(await Html.CachedPartialAsync("~/Views/Partials/xmlSitemap.cshtml", Model, TimeSpan.FromMinutes(60)))
diff --git a/Umbraco Tag Manager.TestSite.V10/appsettings.Development.json b/Umbraco Tag Manager.TestSite.V10/appsettings.Development.json
new file mode 100644
index 0000000..39cf2ae
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/appsettings.Development.json
@@ -0,0 +1,44 @@
+{
+ "$schema": "./appsettings-schema.json",
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information"
+ },
+ "WriteTo": [
+ {
+ "Name": "Async",
+ "Args": {
+ "configure": [
+ {
+ "Name": "Console"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "ConnectionStrings": {
+ "umbracoDbDSN": "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True",
+ "umbracoDbDSN_ProviderName": "Microsoft.Data.Sqlite"
+ },
+ "Umbraco": {
+ "CMS": {
+ "Unattended": {
+ "InstallUnattended": true,
+ "UnattendedUserName": "Administrator",
+ "UnattendedUserEmail": "admin@example.com",
+ "UnattendedUserPassword": "1234567890"
+ },
+ "Content": {
+ "MacroErrors": "Throw"
+ },
+ "Hosting": {
+ "Debug": true
+ },
+ "RuntimeMinification": {
+ "UseInMemoryCache": true,
+ "CacheBuster": "Timestamp"
+ }
+ }
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/appsettings.json b/Umbraco Tag Manager.TestSite.V10/appsettings.json
new file mode 100644
index 0000000..34e1d55
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/appsettings.json
@@ -0,0 +1,27 @@
+{
+ "$schema": "./appsettings-schema.json",
+ "Serilog": {
+ "MinimumLevel": {
+ "Default": "Information",
+ "Override": {
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information",
+ "System": "Warning"
+ }
+ }
+ },
+ "Umbraco": {
+ "CMS": {
+ "Global": {
+ "Id": "e0ce0552-0fbf-463d-9289-fb952873dd5d",
+ "SanitizeTinyMce": true
+ },
+ "Content": {
+ "AllowEditInvariantFromNonDefault": true,
+ "ContentVersionCleanupPolicy": {
+ "EnableCleanup": true
+ }
+ }
+ }
+ }
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/about.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/about.config
new file mode 100644
index 0000000..59da7c5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/about.config
@@ -0,0 +1,122 @@
+
+
+
+ Home
+ /Home/About
+ false
+ content
+ 2024-04-07T12:26:16
+
+ About
+
+ 1
+
+ true
+
+
+ content
+
+
+
+ The Clean Starter Kit for Umbraco uses the Start Bootstrap Theme Clean Blog which is built using Bootstrap 5. It has been implemented in Umbraco as a Starter Kit by Paul Seal who has the blog codeshare.co.uk and works for the Umbraco Gold Partner ClerksWell . \nThe idea of this starter kit is to provide you with a clean and simple website. It is ideally aimed at people who are new to Umbraco so they can install the starter kit, get used to Umbraco and then build upon the kit with their own requirements.
"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/51df637ca0854224a60d3163fb59091a",
+ "image": [
+ {
+ "key": "6041d253-db55-43e0-ad07-5e35f1bca9ea",
+ "mediaKey": "8ac2c7bc-0acb-488e-a4e6-24d9ea5bdff7"
+ }
+ ],
+ "caption": "Umbraco, the friendly CMS"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/222d1acd8d1d4bd5af79d9c1fe0ded44",
+ "content": "With this starter kit you should be able to quickly and easily set up a new website and share your content with others. The aim is for you to start using Umbraco and fall in love with it like I did, as a user or as a developer, you will find out how enjoyable it is to use.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/38c5ec597c9948d59582509d8c4094a6",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/5934cccecf674ab98bb4da3f413ee79c",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/7b469d55024b4655b45d02f4b3d39f74",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/authors.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/authors.config
new file mode 100644
index 0000000..080b613
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/authors.config
@@ -0,0 +1,52 @@
+
+
+
+ Home
+ /Home/Authors
+ false
+ authorList
+ 2024-04-07T12:26:16
+
+ 7
+
+
+ AuthorList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/blog.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/blog.config
new file mode 100644
index 0000000..cb4ecf1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/blog.config
@@ -0,0 +1,88 @@
+
+
+
+ Home
+ /Home/Blog
+ false
+ articleList
+ 2024-04-07T12:26:16
+
+ 2
+
+
+ articleList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/categories.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/categories.config
new file mode 100644
index 0000000..29f1889
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/categories.config
@@ -0,0 +1,26 @@
+
+
+
+ Home
+ /Home/Categories
+ false
+ categoryList
+ 2024-04-07T12:26:16
+
+ 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community.config
new file mode 100644
index 0000000..feb5272
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community.config
@@ -0,0 +1,125 @@
+
+
+
+ Blog
+ /Home/Blog/Community
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 0
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There is a large community around umbraco, it is one of the main attractions when choosing it as your Content Management System of choice."
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/39f6ec40323a4c50a7c1041385206a2c",
+ "image": [
+ {
+ "key": "d64c94dd-d663-47fe-b1d4-58532d3b6fc6",
+ "mediaKey": "dd3840b3-8621-451b-9ee9-01f6ad175ec7"
+ }
+ ],
+ "caption": "Umbraco community enjoying another great talk"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/b34201b6030c4f12a8bd85ff290caf1b",
+ "content": "Not everyone is aware of all of the places where you can connect to the Umbraco community, so this post will list out different places you can communicate with the Umbraco community.
\n\nOur is the official Umbraco forum. If you have a problem, you should search there first to see if it has been solved already. Then if it hasn't you should ask your question on there. You will get friendly responses from a community of people who want to help you succeed, not see you fail.
\nThere is also a community section on Our Umbraco where you can find out way more about the Umbraco Community.
\n\nThere is a growing community of people on the Discord Server now. This is also a great place for you to ask for help with Umbraco too.
\nIf you like to use discord, you can chat with other Umbraco members in real time. This is good for getting quick answers to questions or good for asking for people's opinions on things. There are many different channels to be a part of, so it is worth checking it out.
\n\nIf you prefer to use Facebook, then this group might be of interest to you. It is called Umbraco Web Developers, but anyone can join, you don't have to be a developer, but it helps to be working with Umbraco.
\n\nTwitter is a great place to see the latest developments in the Umbraco community. You will see people reporting issues with Umbraco, asking questions about how to do things and arranging meetups. To tune into the chat on twitter you can search for Umbraco or filter by the #Umbraco hashtag.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/701214a0d3134f2194a4f8d14f34a747",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/1189d70d4eb74dbdaae6932132f44fbe",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/9d341e7fa5d944d4aa1fa7658883436a",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community_fa0pue2k.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community_fa0pue2k.config
new file mode 100644
index 0000000..0eaa383
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/community_fa0pue2k.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Community
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences.config
new file mode 100644
index 0000000..6917e23
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences.config
@@ -0,0 +1,154 @@
+
+
+
+ Blog
+ /Home/Blog/Conferences
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 3
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are many Umbraco conferences held around the world.\nThe main one is codegarden which is held in Odense, Denmark, about a 10 minute walk away from the Umbraco HQ.
\nIn 2019 approximately 750 people attended, making it the biggest codegarden ever.
"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/82fe82ac3eb6455596b706231b15148a",
+ "image": [
+ {
+ "key": "af873978-e8d2-4244-ba1c-e1d282d822f4",
+ "mediaKey": "0521b485-98b6-409d-ad35-8745f3e4287c"
+ }
+ ],
+ "caption": "750 people attended Codegarden 2019"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/0214ee5ca1344e7eade7092f0016c8f7",
+ "content": "Here is a list of Umbraco related conferences from around the world:
\n\nBristol, England - March \nThe Umbraco Spark innovation conference is a must for all Umbraco developers that want to find out what's going on with Umbraco. Focusing on innovation and forward thinking, we cover topics such as Umbraco Headless, .Net Core, Machine Learning / AI, personalisation, mobile apps, content as a service, and digital assistants.
\n\nOdense, Denmark - June \nCodegarden is the biggest Umbraco conference in the world. It's 3 days packed with inspiring talks about tech, business, UX and, of course, Umbraco. 3 days where you will deepen your Umbraco knowledge, get inspired, get to meet the global open source Umbraco community and simply have a fabulous time.
\nIf you’re working with Umbraco or if Umbraco is part of your business - this is the place to be!
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/eb6d7236c2254a8cbe78fbeead9e4731",
+ "videoUrl": "https://www.youtube.com/watch?v=CQJIl2xoDhc",
+ "caption": "Codegarden 2022 | Official Aftermovie"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8570194b0e1c476d90028a05d647d309",
+ "content": "\nUtrecht, Netherlands - October \nDUUGFest is run by the Dutch Umbraco User Group
\n\nPeak District, England - September \nCODECABIN is the premier, invite-only weekend away for Umbraco developers, providing time to code, learn and network in a completely relaxed and open environment away from the hustle and bustle of every day life.
\n\nLondon, England - November \nThe world's biggest community organised Umbraco event. Get ready for a jam packed event featuring incredible talks on development, front end, design & UX, wellbeing, and business, deep-dive workshops hosted by community experts, and of course our legendary hackathon.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/de0ef55d823645dca8c4c53bd24c1a35",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/81b5707465014c60b4dd442cebc37909",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/8c526fec932b4ff3b11e8b6fd1531197",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/d45c3cb35f8345659c78e6e634c65716",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/a83ef7fa6b3e44ce8d0aa35a6c216411",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences_dpraan01.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences_dpraan01.config
new file mode 100644
index 0000000..1e4399a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/conferences_dpraan01.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Conferences
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/contact.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/contact.config
new file mode 100644
index 0000000..96684fe
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/contact.config
@@ -0,0 +1,65 @@
+
+
+
+ Home
+ /Home/Contact
+ false
+ contact
+ 2024-04-07T12:26:16
+
+ 3
+
+
+ contact
+
+
+
+ Error
+Sorry there was a problem with submitting the form. Please try again.
]]>
+
+
+
+
+
+
+
+
+ Want to get in touch? Fill out the form below to send me a message and I will get back to you as soon as possible!]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thank you
+Thanks for your email. We will be in touch soon.
]]>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/error.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/error.config
new file mode 100644
index 0000000..539ed1b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/error.config
@@ -0,0 +1,83 @@
+
+
+
+ Home
+ /Home/Error
+ false
+ error
+ 2024-04-07T12:26:16
+
+ 4
+
+
+ error
+
+
+
+ Sorry, we couldn't find the page you were looking for.\nWhy not go back to the home page and start again?
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/0657abc2a856452b89a30fb4fffc65c6",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-1.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-1.config
new file mode 100644
index 0000000..db913a2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-1.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-new.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-new.config
new file mode 100644
index 0000000..a120597
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features-new.config
@@ -0,0 +1,289 @@
+
+
+
+ Home
+ /Home/FeaturesNew
+ false
+ content
+ 2024-04-14T10:10:51
+
+ Features new
+
+ 9
+
+ true
+
+
+ content
+
+
+
+ Rich Text Row\nThere is a simple rich text row for writing your usual formatted content in a WYSIWIG style with the usual settings including but not limited to:
\nBold
\nItalic
\nLeft align
\nRight align
\n\n\nOrdered List \n "
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/9934a775d8d146e4927402edda055f07",
+ "image": [
+ {
+ "key": "b971579f-5dd9-46f4-ad32-1d4ea6f04127",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ }
+ ],
+ "caption": "Image Row Example"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/600207d0ee8f4fb7880dc98d534296e2",
+ "content": "Image Row \nYou can use the image row to render a full width image.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/ca58c8116c9c436e98f51546f09dd406",
+ "videoUrl": "https://www.youtube.com/watch?v=Dn2tI1--LOs",
+ "caption": "What's next in C# - Mads Torgersen @ Umbraco Codegarden 2022"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/7cb4bfeb01bc49f684481db1f3a8ab03",
+ "content": "Video Row \nThis lets you embed a YouTube video by just entering the normal URL of the video, and it just renders the preview image of it at first. Then when you click on it, it loads it in as the iframe, which is better for the end user as it doesn't download all of the YouTube assets until it is needed.
"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/b00e5a288fa94a6e99581b508fdecb48",
+ "content": "Code Snippet Row \nThere is a code snippet row to enable you to easily share code snippets in your website.
"
+ },
+ {
+ "contentTypeKey": "f37c2c28-c8ab-48cd-ac07-b13e38bd900f",
+ "udi": "umb://element/e061dc8c7176416da739ee9e20588d82",
+ "code": "@inherits UmbracoViewPage\r\n@using Umbraco.Cms.Core.Models.Blocks\r\n\r\n@{\r\n var row = Model.Content as CodeSnippetRow;\r\n var settings = Model.Settings as CodeSnippetRowSettings;\r\n if (settings?.Hide ?? false) { return; }\r\n\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.default.min.css\");\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.min.js\");\r\n}\r\n\r\n",
+ "title": "Code from the codeSnippetRow.cshtml file"
+ },
+ {
+ "contentTypeKey": "1c43fe2d-4a9a-4336-923f-9d0214950d48",
+ "udi": "umb://element/11ba053ea6ab436387aa0e41ef9ad3b8",
+ "images": [
+ {
+ "key": "b8bcec6b-33bc-4a93-9819-d67f25190457",
+ "mediaKey": "3c6c415c-35a0-4629-891e-683506250c31"
+ },
+ {
+ "key": "d0435454-53ef-4013-b48e-2cefdfb467ff",
+ "mediaKey": "5598b628-b390-4532-8bb5-dab06089e9d7"
+ },
+ {
+ "key": "ef2c3ab6-60ae-4d8d-a489-29e27d285691",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ },
+ {
+ "key": "971c3fbc-859b-4af4-97fa-035405aa377b",
+ "mediaKey": "48239f24-1450-49da-9964-934f512dde48"
+ },
+ {
+ "key": "b2fd4dd3-4cd5-4b1f-9b31-052bfff2deb0",
+ "mediaKey": "167ee715-53ff-4a8b-ab50-7d630c8448fa"
+ },
+ {
+ "key": "c3518f71-9713-4a60-ae04-a806e1c2e38d",
+ "mediaKey": "b5279cc9-c438-4b14-a57a-72f97f5527f7"
+ }
+ ]
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/72e0a93f5f3d4d15b20fd1ffc39af443",
+ "content": "Image Carousel Row \nYou can add a simple image carousel to a page by using the Image Carousel Row. In this row you have a multi image picker and you just choose the images you want to display.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/147d39354676473594f555fa0179d826",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/918c77d2c33842bb8369f916bb44abac",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/c37abb122dd94c0f9ca264e1b46201ac",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/6b0befd71f294a559806cb59413ff5a1",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/54adf5b68ff14a8fac34416b419e9708",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/b3c525b03a49448384e36da36761ea86",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "93638715-f76c-4a11-86b1-6a9d66504901",
+ "udi": "umb://element/6942a5e427c84a3191990a901192df63",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "378fde96-51b6-4506-93e3-ec3038e636bb",
+ "udi": "umb://element/872d3a6a99424ef58f8fdca6c0f1f64b",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingRight": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "marginTop": "",
+ "marginRight": "",
+ "marginBottom": "",
+ "marginLeft": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/59be5a01b8e342a886bd6160a0c8048e",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features.config
new file mode 100644
index 0000000..ef2ad29
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/features.config
@@ -0,0 +1,299 @@
+
+
+
+ Home
+ /Home/Features
+ false
+ content
+ 2024-04-07T12:26:16
+
+ Features
+ caractéristiques
+
+ 0
+
+ true
+ true
+
+
+ content
+
+
+
+ Rich Text Row\nThere is a simple rich text row for writing your usual formatted content in a WYSIWIG style with the usual settings including but not limited to:
\nBold
\nItalic
\nLeft align
\nRight align
\n\n\nOrdered List \n "
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/aabf1c82a7074b23a905c6c41d7e8db0",
+ "image": [
+ {
+ "key": "b971579f-5dd9-46f4-ad32-1d4ea6f04127",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ }
+ ],
+ "caption": "Image Row Example"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/f44e6a28c00e4d6bab107902d5785289",
+ "content": "Image Row \nYou can use the image row to render a full width image.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/580568eda49a42128607366cc83bafc0",
+ "videoUrl": "https://www.youtube.com/watch?v=Dn2tI1--LOs",
+ "caption": "What's next in C# - Mads Torgersen @ Umbraco Codegarden 2022"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/0a384113fbcf4205b15cda6a6bfd6b8c",
+ "content": "Video Row \nThis lets you embed a YouTube video by just entering the normal URL of the video, and it just renders the preview image of it at first. Then when you click on it, it loads it in as the iframe, which is better for the end user as it doesn't download all of the YouTube assets until it is needed.
"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/d5c55fef1cf44fa2a67502f193dcbf0c",
+ "content": "Code Snippet Row \nThere is a code snippet row to enable you to easily share code snippets in your website.
"
+ },
+ {
+ "contentTypeKey": "f37c2c28-c8ab-48cd-ac07-b13e38bd900f",
+ "udi": "umb://element/2bb90c718d9a4e569458ab5bde2d0f58",
+ "code": "@inherits UmbracoViewPage\r\n@using Umbraco.Cms.Core.Models.Blocks\r\n\r\n@{\r\n var row = Model.Content as CodeSnippetRow;\r\n var settings = Model.Settings as CodeSnippetRowSettings;\r\n if (settings?.Hide ?? false) { return; }\r\n\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.default.min.css\");\r\n SmidgeHelper.RequiresJs(\"~/clean-assets/js/highlight.min.js\");\r\n}\r\n\r\n",
+ "title": "Code from the codeSnippetRow.cshtml file"
+ },
+ {
+ "contentTypeKey": "1c43fe2d-4a9a-4336-923f-9d0214950d48",
+ "udi": "umb://element/2d0b8422de3847d192438026ef503919",
+ "images": [
+ {
+ "key": "b8bcec6b-33bc-4a93-9819-d67f25190457",
+ "mediaKey": "3c6c415c-35a0-4629-891e-683506250c31"
+ },
+ {
+ "key": "d0435454-53ef-4013-b48e-2cefdfb467ff",
+ "mediaKey": "5598b628-b390-4532-8bb5-dab06089e9d7"
+ },
+ {
+ "key": "ef2c3ab6-60ae-4d8d-a489-29e27d285691",
+ "mediaKey": "bbf2800f-1cc5-4ea9-8d2e-b33ff1d5efbe"
+ },
+ {
+ "key": "971c3fbc-859b-4af4-97fa-035405aa377b",
+ "mediaKey": "48239f24-1450-49da-9964-934f512dde48"
+ },
+ {
+ "key": "b2fd4dd3-4cd5-4b1f-9b31-052bfff2deb0",
+ "mediaKey": "167ee715-53ff-4a8b-ab50-7d630c8448fa"
+ },
+ {
+ "key": "c3518f71-9713-4a60-ae04-a806e1c2e38d",
+ "mediaKey": "b5279cc9-c438-4b14-a57a-72f97f5527f7"
+ }
+ ]
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/5dbf69fbf38a4e3f91637b153185a731",
+ "content": "Image Carousel Row \nYou can add a simple image carousel to a page by using the Image Carousel Row. In this row you have a multi image picker and you just choose the images you want to display.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/25575a797c7f4376a8ffdf3258a5d90f",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/70eaaac704594630b07daba532e5b570",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e56e12baf10c436aa2b2e18619f520f8",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/32870124dd0941b99a214cb70d726c8c",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/ce23467908804d8b832a98320287616e",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/a4432aa0ee134cbebfd3110e99749a2a",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "93638715-f76c-4a11-86b1-6a9d66504901",
+ "udi": "umb://element/25a7844466764628ab13c10cd4efcfa1",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ },
+ {
+ "contentTypeKey": "378fde96-51b6-4506-93e3-ec3038e636bb",
+ "udi": "umb://element/4ce89d32479649a4b2d63814c0247d8f",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingRight": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "marginTop": "",
+ "marginRight": "",
+ "marginBottom": "",
+ "marginLeft": ""
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/08acf63461c54248b39d62ffc41662d7",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/home.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/home.config
new file mode 100644
index 0000000..e335b8f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/home.config
@@ -0,0 +1,269 @@
+
+
+
+
+ /Home
+ false
+ home
+ 2024-04-07T12:26:16
+
+ 0
+
+
+ home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
new file mode 100644
index 0000000..f85bd7a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/join-the-umbraco-community-on-mastodon.config
@@ -0,0 +1,100 @@
+
+
+
+ Blog
+ /Home/Blog/JoinTheUmbracoCommunityOnMastodon
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 6
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ Recently it has been talked about that the Umbraco Community seems to have been spread out across different social media platforms since the takeover of Twitter. So the sense of community has been watered down.\nIn an effort to boost that community spirit and to gather in one place in a platform \"similar\" to twitter, there has been a push to join the Umbraco Mastodon server.
\nIt's great to see lots of Umbraco related posts in your feed without ads or \"recommended\" posts.
\nJoe Glombek from Bump Digital wrote an excellent blog post all about what Mastodon is and how to join the Umbraco Mastodon server.
\nSo have a read of that post to find out more.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/8ce58fede0c44dfa8ac03cb47c6bdbf9",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups.config
new file mode 100644
index 0000000..de9b9a7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups.config
@@ -0,0 +1,125 @@
+
+
+
+ Blog
+ /Home/Blog/Meetups
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 2
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ Until I had gone to my first meetup, I didn't realise how comforting and safe it would feel to be around like minded people. When I started going to meetups, I realised that there were other people out there who liked the same things I do, and I could have decent conversations with them face to face. With that in mind I would encourage to you attend a meetup if you can."
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/642a364fbaa748628a8b1532aecd9441",
+ "image": [
+ {
+ "key": "a36f917f-8cd3-4bc1-a105-b7f8c7052a8d",
+ "mediaKey": "167ee715-53ff-4a8b-ab50-7d630c8448fa"
+ }
+ ],
+ "caption": "We love to hear great talks at meetups"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/62706cbebb1247f381a79ebedc4e3ee3",
+ "content": "Here are some popular Umbraco meetups, some of them are virtual meetups.
\n\nEDINBUUG is a chance to chat about all things Umbraco - whether you are someone who uses Umbraco for their website, you're a developer who builds Umbraco websites or maybe you are a project manager who works with clients who have Umbraco websites - come along. Everyone is welcome.
\n\nThe purpose is to get together, discuss and learn a little about Umbraco having some fun while doing so. Whether there are two of us or 22, the event will go forward, so come along and take part!
\n\nThe London Umbraco Meetup Group is a monthly meetup for Umbraco devotees and newbies to come along, learn and share their knowledge and to also gently spread the umbraco love to all.
\nWe aim to meet each month, where you can have a chat and a beer with other fellow Umbracians.
\nWe also try and mix it up by having talks by both Umbraco and non-Umbraco
\n\nTo get Umbraco in the picture in the Netherlands: that's what we aim for with the Dutch Umbraco User Group (DUUG)! It's a platform for and by professionals working with the most applied .net CMS in Europe. DUUG will inspire, inform, convince and reinforce.
\n\nUmbraco Leeds is a monthly meetup group for anyone involved or interested in Umbraco. Whether you're a developer, content editor, project owner or just curious to hear about what it's all about - come along to one of our meetups and you'll be sure of a warm and friendly welcome.
\n\nThis is the group for passionate Umbraco developers and users in the Sydney area to meetup every couple of months. Sometimes it may be at the Glenmore on The Rocks or it could be a presentation based on Umbraco hosted by a local agency.
\n\nThe Belgian Umbraco Meet Up is an open space to come learn and meet umbraco people and agencies in the Belgian area, we however welcome umbracians from all parts of the globe and you are welcome to attend.
\n\nWe are a networking group for everyone who loves Umbraco!
\nMeetups are organized in Odense, Aarhus, Copenhagen and where there are enthusiasts who want to arrange something. There will be presentations, hands-on sessions, display of the delicious things you've made in Umbraco or something else.
\n\nThe Glasgow Umbraco Users' Group (GLUUG) is a networking group for anyone interested in Umbraco. We have regular social meetups where people can come and chat to friendly and like-minded Umbraco folk. We also have more formal presentation-based meetups where experts in the community share their knowledge and usually kick-start some lively debates!
\nSo come along and chat to some friendly folk over a beer and some pizza at our next meetup :)
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/34cea66b0f324c1abf1189a6e954447f",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/41d73d2c5cad47cb98f57ecac90089d3",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/ea9a5807ded545d8981d74d5976fa6fb",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups_fthd5e2w.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups_fthd5e2w.config
new file mode 100644
index 0000000..db1c9da
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/meetups_fthd5e2w.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Meetups
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 2
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/paul-seal.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/paul-seal.config
new file mode 100644
index 0000000..1508870
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/paul-seal.config
@@ -0,0 +1,85 @@
+
+
+
+ Authors
+ /Home/Authors/PaulSeal
+ false
+ author
+ 2024-04-07T12:26:16
+
+ 0
+
+
+ Author
+
+
+
+ Paul Seal is an Umbraco Tech Lead and multiple times Umbraco MVP who works for the Umbraco Gold Partners ClerksWell .\nWhen he's not creating packages such as the Clean Starter Kit, which you are looking at right now, Paul likes to contribute to Open Source by submitting pull requests to different projects such as the Umbraco Source code, uSync Migrations and Contentment.
\nPaul likes to write articles with code snippets to help people out when they are struggling to achieve something, usually for Umbraco.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/7cdd3e4316c84a9f8e5157bc9c8d8a05",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": "",
+ "paddingRight": "",
+ "marginTop": [
+ "5"
+ ],
+ "marginBottom": "",
+ "marginLeft": "",
+ "marginRight": ""
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts-and-videos.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts-and-videos.config
new file mode 100644
index 0000000..01cb872
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts-and-videos.config
@@ -0,0 +1,222 @@
+
+
+
+ Blog
+ /Home/Blog/PodcastsAndVideos
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 4
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ A great way to stay in touch with what is happening in the Umbraco community is by listening to podcasts and watching umbraCoffee."
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/c12b4913352d4371b984c69d777b9527",
+ "videoUrl": "https://www.youtube.com/watch?v=8X_Hzm29tV8",
+ "caption": "An episode of umbraCoffee from July 2023"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/29e835ad92cc4b32b24694f9bb0cb5b6",
+ "image": [
+ {
+ "key": "369ed25b-f0d5-4915-96cb-858df2521c38",
+ "mediaKey": "7d96bc75-fea8-4f66-aaf5-50f45748cab4"
+ }
+ ],
+ "caption": "Candid Contributions Podcast"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/856dee0481a942b18eede133fa816d44",
+ "image": [
+ {
+ "key": "23930894-c1b4-4ae2-9801-95505acd1054",
+ "mediaKey": "c334997e-f9a7-498b-83af-f4888a97d5bc"
+ }
+ ],
+ "caption": "Package Manifest Podcast"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8353fb5a92ad486a9d40fb3aa0e22b2d",
+ "content": "\numbraCoffee is a weekly YouTube show where each Friday at 11:30am UK / 12:30pm CET, the hosts - Marcin and Callum - together with their guests drive you through the weekly news and all things Umbraco related. So grab a cuppa, join them LIVE and enjoy!
"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/60ef3378da7c4ba09a70436dfeabdbb5",
+ "content": "\nCandid Contributions is the home of the aptly named podcast where four experienced developers: Carole Logan, Emma Burstow, Laura Weatherhead and Lotte Pitcher talk all things open source - from code contributions to conference attendance; they aim to cover all aspects of life as an active member of an open-source community.
"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/4639f709abb6460eb892d7676d93a194",
+ "content": "\nPackage Manifest is a podcast all about Umbraco packages and the people who create them. It is hosted by Matt Brailsford, Kevin Jump and Lee Kelleher.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/afd72029194841fc883a6b40832c6a6a",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/35bbb6a604b34e448c67a4047e356f38",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/5e063ac7363e466cad465236f484902f",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": [
+ "5"
+ ],
+ "paddingRight": [
+ "5"
+ ],
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": [
+ "5"
+ ],
+ "marginRight": [
+ "5"
+ ]
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/f4fbbedbf310405f9e7e94f90ae55f0a",
+ "hide": "0",
+ "paddingTop": "",
+ "paddingBottom": "",
+ "paddingLeft": [
+ "5"
+ ],
+ "paddingRight": [
+ "5"
+ ],
+ "marginTop": "",
+ "marginBottom": "",
+ "marginLeft": [
+ "5"
+ ],
+ "marginRight": [
+ "5"
+ ]
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/847d7bd4904e4034b8c0797ff13cad71",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e2c6c27f99c846d5ac18a57dd5b47676",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/acb1482423be413abe97f758e910cc5f",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts.config
new file mode 100644
index 0000000..0ead4c9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/podcasts.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Podcasts
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 3
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/popular-blogs.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/popular-blogs.config
new file mode 100644
index 0000000..102c7f8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/popular-blogs.config
@@ -0,0 +1,125 @@
+
+
+
+ Blog
+ /Home/Blog/PopularBlogs
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 1
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are many blogs and magazines from Umbraco community members writing about Umbraco\nHere are some popular ones:
\n\nSkrift isn't just \"another blog on the internet\". They are an online magazine with an ISSN (International Standard Serial Number), which means that as one of their authors, you are officially printed in a publication. Which means you will have great recognition in your field and it may help you land your next contract, client, raise or job.
\nSo have a read of the articles and consider writing for them too.
\n\nThe 24 Days In Umbraco Christmas Calendar. It started in December 2012, where they asked a bunch of Umbraco people if they had a favourite feature, a story or something else that they'd be willing to write a short article about. The 24 days team now post a new one on the site everyday through December.
\nYou can also write for 24 days, so have a read through the articles and contact the organisers if you would like to write for them.
"
+ },
+ {
+ "contentTypeKey": "e0df4794-063a-4450-8f4f-c615a5d902e2",
+ "udi": "umb://element/67a12f8ca471436aa8c5cbf3207722bd",
+ "image": [
+ {
+ "key": "8e560bf8-be43-4b80-b7ca-5a6ed81dc502",
+ "mediaKey": "b5279cc9-c438-4b14-a57a-72f97f5527f7"
+ }
+ ],
+ "caption": "Skrift authors at Codegarden"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/1734736f35b341478fcde05c8712150d",
+ "content": "\nCodeshare is a blog by me, Paul Seal, where i like to share tips about Umbraco and other web related topics. There are tools on there too such as a strong password generator.
\n\nJon D Jones is a great source of knowledge about Umbraco and other CMSs. He writes very detailed tutorials to go with his videos.
\n\nOwain's Umbraco Community thoughts, coding tutorials, what he is learning, general blogs about his experience with Umbraco and any other things that come to mind.
\n\nCorné Hoskam is a very talented Umbraco Developer and speaker. He likes to share his knowledge and experience in his personal blog.
"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/e49cb89faa3447b2af94288d08550333",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "fed88ec5-c150-42af-b444-1f9ac5a100ba",
+ "udi": "umb://element/8dd61d38a06947128c1f076d4dc72ece",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/213f04a886f9496bbbaf1bb354c8fa04",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/resources.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/resources.config
new file mode 100644
index 0000000..1bfc6c4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/resources.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Resources
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/search.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/search.config
new file mode 100644
index 0000000..abcc5b7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/search.config
@@ -0,0 +1,44 @@
+
+
+
+ Home
+ /Home/Search
+ false
+ search
+ 2024-04-07T12:26:16
+
+ 6
+
+
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test.config
new file mode 100644
index 0000000..361226d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test_mgebztva.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test_mgebztva.config
new file mode 100644
index 0000000..1489efe
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/test_mgebztva.config
@@ -0,0 +1,60 @@
+
+
+
+ Home
+ /Home/test
+ false
+ content
+ 2024-04-16T22:09:06
+
+ test
+
+ 10
+
+ true
+
+
+ content
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/umbraco.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/umbraco.config
new file mode 100644
index 0000000..38dae80
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/umbraco.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Umbraco
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 5
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/videos.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/videos.config
new file mode 100644
index 0000000..558078a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/videos.config
@@ -0,0 +1,16 @@
+
+
+
+ Categories
+ /Home/Categories/Videos
+ false
+ category
+ 2024-04-07T12:26:16
+
+ 6
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/xmlsitemap.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/xmlsitemap.config
new file mode 100644
index 0000000..8434fcc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/xmlsitemap.config
@@ -0,0 +1,26 @@
+
+
+
+ Home
+ /Home/XMLSitemap
+ false
+ xMLSitemap
+ 2024-04-07T12:26:16
+
+ 5
+
+
+ xMLSitemap
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/youtube-tutorials.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/youtube-tutorials.config
new file mode 100644
index 0000000..c41c733
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Content/youtube-tutorials.config
@@ -0,0 +1,180 @@
+
+
+
+ Blog
+ /Home/Blog/YouTubeTutorials
+ false
+ article
+ 2024-04-07T12:26:16
+
+ 5
+
+
+ article
+
+
+
+
+
+
+
+
+
+
+
+
+ There are lots of free videos on YouTube for you to be able to learn more about Umbraco."
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/8b4af4c316364111bc8c3f71e1dee4ae",
+ "content": "\nUmbraco Learning Base is the official channel for the Happy Documentation and TV team at Umbraco HQ. On this channel, you can find videos and tutorials on how to get started working with the world's friendliest CMS Umbraco.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/8f3328aad96045a3ad14880e3f3d0305",
+ "videoUrl": "https://www.youtube.com/watch?v=Yu29dE-0OoI",
+ "caption": "Getting Started with Umbraco"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/5da04a93caec4ed8b0870bdc31860bed",
+ "content": "\nThere are several playlists of videos in this channel for you to learn how to build a website with Umbraco. Paul takes you step by step through the process and shows you the errors and mistakes along the way so you can see how to fix them yourself.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/5e64e45431ac4662afc2b078b397b2d8",
+ "videoUrl": "https://www.youtube.com/watch?v=qEZtjxDEK8g",
+ "caption": "How to build a website with Umbraco 10 - Part 1 - Installation"
+ },
+ {
+ "contentTypeKey": "dd183f78-7d69-4eda-9b4c-a25970583a28",
+ "udi": "umb://element/7a2d81a99df6456f9c992a72459292a8",
+ "content": "\nJon creates a new YouTube tutorial video every week, with a detailed blog post to follow along with too. He usually creates videos about Umbraco and other Content Management Systems.
"
+ },
+ {
+ "contentTypeKey": "f43c8349-0801-44b8-9113-9f7c62cd44fe",
+ "udi": "umb://element/192a6c7f4b934571803b16db796e5c33",
+ "videoUrl": "https://www.youtube.com/watch?v=arki6eMudG8",
+ "caption": "Build a NextJs headless website with Umbraco and Content Delivery API"
+ }
+ ],
+ "settingsData": [
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/f3aa62d81bd742788579047706724049",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/aace85dd9b5843ddb79f2f0897db1277",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/a56d7b5404f3493f882c66c28712b3a4",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/15377292a7d24bc4bc560dd3a59ca2b1",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/b0f2759d661b424c8b9e46795c500478",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "da15dc43-43f6-45f6-bda8-1fd17a49d25c",
+ "udi": "umb://element/9a5129d4204644aaa37d37361ffc9540",
+ "hide": "0"
+ },
+ {
+ "contentTypeKey": "eef34ceb-ddf6-4894-b1ac-f96c8c05d3d2",
+ "udi": "umb://element/b9367f44c258449fb2fecd7eddea4f19",
+ "hide": "0"
+ }
+ ]
+}]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/article.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/article.config
new file mode 100644
index 0000000..e1fbc92
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/article.config
@@ -0,0 +1,35 @@
+
+
+
+ Article
+ icon-article color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ articleControls
+ contentControls
+ headerControls
+ listPageSettings
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ article
+
+ article
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlecontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlecontrols.config
new file mode 100644
index 0000000..3c69416
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlecontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ Article Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 5ec7043f-1670-4917-bc0e-8c2f08b3a6e4
+ Article Date
+ articleDate
+ e4d66c0f-b935-4200-81f0-025f7256b89a
+ Umbraco.DateTime
+ true
+
+
+ 5
+ Content
+ Nothing
+
+
+ false
+
+
+ a37bceb5-ce32-4b3a-ad0c-897fbc6ecb36
+ Author
+ author
+ 8e3b206d-0cdb-4543-bc54-3d841ecf1da7
+ Umbraco.Community.Contentment.DataList
+ true
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+ cf5faf67-9de7-4ba6-8cf8-e53d528ca438
+ Categories
+ categories
+ becea685-218c-4044-88b3-1e51dcf3a4a3
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 15
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 2c962016-43e4-47ee-a890-87bd908f2a72
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlelist.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlelist.config
new file mode 100644
index 0000000..b84d96c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/articlelist.config
@@ -0,0 +1,36 @@
+
+
+
+ Article List
+ icon-thumbnail-list color-blue
+ folder.png
+
+ False
+ True
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ listPageSettings
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ articleList
+
+ articleList
+
+
+
+ article
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/author.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/author.config
new file mode 100644
index 0000000..77c222c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/author.config
@@ -0,0 +1,33 @@
+
+
+
+ Author
+ icon-umb-users color-light-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ Author
+
+ Author
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/authorlist.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/authorlist.config
new file mode 100644
index 0000000..4f55569
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/authorlist.config
@@ -0,0 +1,35 @@
+
+
+
+ Author List
+ icon-users color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ AuthorList
+
+ AuthorList
+
+
+
+ author
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/category.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/category.config
new file mode 100644
index 0000000..b58f592
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/category.config
@@ -0,0 +1,25 @@
+
+
+
+ Category
+ icon-tag color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/categorylist.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/categorylist.config
new file mode 100644
index 0000000..0903b7f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/categorylist.config
@@ -0,0 +1,29 @@
+
+
+
+ Category List
+ icon-tags color-blue
+ folder.png
+
+ False
+ True
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ visibilityControls
+
+
+
+
+
+ category
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrow.config
new file mode 100644
index 0000000..47a034a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrow.config
@@ -0,0 +1,66 @@
+
+
+
+ Code Snippet Row
+ icon-code color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ b2b3dcd0-87c5-4463-bc01-a5a8389cc201
+ Code
+ code
+ a9269bc9-d93a-42d3-990c-4a1712801253
+ Umbraco.Community.Contentment.CodeEditor
+ false
+
+
+ 1
+ Content
+ Nothing
+
+
+ false
+
+
+ 2c592a4f-6066-4c7c-b560-9a2c602dbcbf
+ Title
+ title
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 0
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 98438e4b-df34-4d4a-b97e-2e3144a10ebb
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrowsettings.config
new file mode 100644
index 0000000..041b0c1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/codesnippetrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Code Snippet Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contact.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contact.config
new file mode 100644
index 0000000..2997b53
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contact.config
@@ -0,0 +1,33 @@
+
+
+
+ Contact
+ icon-message color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contactFormControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ contact
+
+ contact
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contactformcontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contactformcontrols.config
new file mode 100644
index 0000000..c20e679
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contactformcontrols.config
@@ -0,0 +1,89 @@
+
+
+
+ Contact Form Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 067fc52b-d92c-451b-8a48-cc1e5565a046
+ Error Message
+ errorMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ true
+
+
+ 10
+ Result Messages
+ Nothing
+
+
+ false
+
+
+ 4a254e56-06f5-459b-9214-264621a97abe
+ Instruction Message
+ instructionMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ 3e771f3c-d2bf-4dc4-8c31-e757eb0103d9
+ Success Message
+ successMessage
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ true
+
+
+ 5
+ Result Messages
+ Nothing
+
+
+ false
+
+
+
+
+ 30532545-b8f7-449b-a600-17592a613461
+ Result Messages
+ resultMessages
+ Tab
+ 20
+
+
+ b4a09c0d-7517-461f-a7f1-2e0233577288
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/content.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/content.config
new file mode 100644
index 0000000..45bd9b8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/content.config
@@ -0,0 +1,74 @@
+
+
+
+ Content
+ icon-document color-blue
+ folder.png
+
+ False
+ False
+ Culture
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ content
+
+ content
+
+
+
+
+
+ cd5918ce-5a09-4854-ad4a-ff7e44d0f33a
+ Tag List
+ tagList
+ b220ffb2-d010-40fb-8015-19459afa8d48
+ TagList
+ false
+
+
+ 0
+ Tags
+ Culture
+
+
+ false
+
+
+ c3310f89-d0d7-441d-acd1-25fb51ad1509
+ Tags
+ tags
+ b6b73142-b9c1-4bf8-a16d-e1c23320b549
+ Umbraco.Tags
+ false
+
+
+ 1
+ Tags
+ Culture
+
+
+ false
+
+
+
+
+ 906c03bd-607e-4f24-b5a2-7a1e89f88c0e
+ Tags
+ tags
+ Tab
+ 31
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contentcontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contentcontrols.config
new file mode 100644
index 0000000..779dc00
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/contentcontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Content Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Culture
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ cd0a3534-e0f4-457c-8297-c88fc01db607
+ Content Rows
+ contentRows
+ b5922818-d8d8-43df-88ed-4582a24c0fa6
+ Umbraco.BlockList
+ false
+
+
+ 16
+ Content
+ Culture
+
+
+ false
+
+
+
+
+ f7e5767b-2760-4a51-bce1-ef9bb4f3f649
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/error.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/error.config
new file mode 100644
index 0000000..a1738fc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/error.config
@@ -0,0 +1,33 @@
+
+
+
+ Error
+ icon-application-error color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ error
+
+ error
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/footercontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/footercontrols.config
new file mode 100644
index 0000000..04696d0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/footercontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Footer Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 38e63c07-6381-45c0-ac6b-29da86775e85
+ Social Icon Links
+ socialIconLinks
+ f8d7b987-745c-471f-8f34-a47f00838f06
+ Umbraco.BlockList
+ false
+
+
+ 5
+ Footer
+ Nothing
+
+
+ false
+
+
+
+
+ 19d6db90-3303-45cf-850c-c7d030452843
+ Footer
+ footer
+ Tab
+ 20
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/headercontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/headercontrols.config
new file mode 100644
index 0000000..5364cf5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/headercontrols.config
@@ -0,0 +1,66 @@
+
+
+
+ Header Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Culture
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 27e86550-e272-46b5-978e-2cc2f7e31118
+ Subtitle
+ subtitle
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 10
+ Content
+ Culture
+
+
+ false
+
+
+ 4d694810-d4a8-42aa-b11c-4e265f09be59
+ Title
+ title
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 5
+ Content
+ Culture
+
+
+ false
+
+
+
+
+ 05bde0a5-384e-4a60-9350-5f51e063fd69
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/hideproperty.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/hideproperty.config
new file mode 100644
index 0000000..b836e96
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/hideproperty.config
@@ -0,0 +1,50 @@
+
+
+
+ Hide Property
+ icon-defrag color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions/Content+Blocks/Setting+Models
+
+
+
+
+
+
+
+ 4823f638-6872-4010-b4a2-85134a7011bf
+ Hide
+ hide
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 10
+ Settings
+ Nothing
+
+
+ false
+
+
+
+
+ 9d91cc45-9418-4a55-8c49-5dcac48bfd95
+ Settings
+ settings
+ Tab
+ 100
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/home.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/home.config
new file mode 100644
index 0000000..d9ec568
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/home.config
@@ -0,0 +1,42 @@
+
+
+
+ Home
+ icon-home color-blue
+ folder.png
+
+ True
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ contentControls
+ footerControls
+ headerControls
+ mainImageControls
+ sEOControls
+
+ home
+
+ home
+
+
+
+ articleList
+ contact
+ content
+ error
+ search
+ xMLSitemap
+ authorList
+ categoryList
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrow.config
new file mode 100644
index 0000000..2fc4733
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrow.config
@@ -0,0 +1,66 @@
+
+
+
+ Icon Link Row
+ icon-link color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 97f0c9df-4f4c-4782-b4a4-2ca5917aaf68
+ Icon
+ icon
+ 7b21df8f-973a-4e2d-8ee1-a77924d9e211
+ Umbraco.MediaPicker3
+ true
+
+
+ 10
+ Content
+ Nothing
+ You must choose an icon
+
+ false
+
+
+ aad73ce1-4ede-49e2-8eef-7ab705f6bdb3
+ Link
+ link
+ 2d350d21-51dd-4c36-8eee-18170985ce91
+ Umbraco.MultiUrlPicker
+ true
+
+
+ 20
+ Content
+ Nothing
+ You must add a link
+
+ false
+
+
+
+
+ ad2888ca-4474-4efa-aea3-56e4c8c580bb
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrowsettings.config
new file mode 100644
index 0000000..e4f8d9e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/iconlinkrowsettings.config
@@ -0,0 +1,27 @@
+
+
+
+ Icon Link Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrow.config
new file mode 100644
index 0000000..b70ebc7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrow.config
@@ -0,0 +1,50 @@
+
+
+
+ Image Carousel Row
+ icon-pictures-alt color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 3d9ba030-db57-4cb0-9530-c08753a70e4b
+ Images
+ images
+ 0e63d883-b62b-4799-88c3-157f82e83ecc
+ Umbraco.MediaPicker3
+ false
+
+
+ 1
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ e3aeb359-a8bf-48d8-b650-bae5e40840ea
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrowsettings.config
new file mode 100644
index 0000000..03a12df
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagecarouselrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Image Carousel Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerow.config
new file mode 100644
index 0000000..451aa95
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerow.config
@@ -0,0 +1,66 @@
+
+
+
+ Image Row
+ icon-picture color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ ff44ccd9-2516-4b1e-be06-c7238743c59e
+ Caption
+ caption
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ a7f48594-814e-452a-92e4-57d1b8a6c4a8
+ Image
+ image
+ ad9f0cf2-bda2-45d5-9ea1-a63cfc873fd3
+ Umbraco.MediaPicker3
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ e2af1253-9ef7-4516-93e9-ff7cae743585
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerowsettings.config
new file mode 100644
index 0000000..5ee468e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/imagerowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Image Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrow.config
new file mode 100644
index 0000000..e43ee59
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrow.config
@@ -0,0 +1,82 @@
+
+
+
+ Latest Articles Row
+ icon-bulleted-list color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ 7ca21705-0c07-4822-8cf2-5126d98b9125
+ Article List
+ articleList
+ fd1e0da5-5606-4862-b679-5d0cf3a52a59
+ Umbraco.ContentPicker
+ true
+
+
+ 5
+ Content
+ Nothing
+ You need to choose an article list page
+
+ false
+
+
+ a1e08734-bb71-4a2e-a8e4-47d9cdc283c7
+ Page Size
+ pageSize
+ 2e6d3631-066e-44b8-aec4-96f09099b2b5
+ Umbraco.Integer
+ true
+
+
+ 10
+ Content
+ Nothing
+ You need to enter the page size
+
+ false
+
+
+ 6962d14c-37cc-43b4-98eb-996282650985
+ Show Pagination
+ showPagination
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 15
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 2873a2c5-19c2-476e-bd46-e4f29d632ecc
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrowsettings.config
new file mode 100644
index 0000000..c81a0cf
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/latestarticlesrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Latest Articles Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/listpagesettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/listpagesettings.config
new file mode 100644
index 0000000..ebfec3e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/listpagesettings.config
@@ -0,0 +1,50 @@
+
+
+
+ List Page Settings
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 5e734334-f070-40f6-8305-848fcab63c4a
+ Show Full Article On List Page
+ showFullArticleOnListPage
+ 0b0f36bb-7bc6-42f7-a957-d7f2a008211c
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 25
+ Visibility
+ Nothing
+
+
+ false
+
+
+
+
+ 415d52cb-1d79-432e-add3-8160242b48bf
+ Visibility
+ visibility
+ Tab
+ 30
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/mainimagecontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/mainimagecontrols.config
new file mode 100644
index 0000000..ffc6aa8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/mainimagecontrols.config
@@ -0,0 +1,50 @@
+
+
+
+ Main Image Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Culture
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ cace72cf-401b-4eac-bd94-c5c3f99004bf
+ Main Image
+ mainImage
+ ad9f0cf2-bda2-45d5-9ea1-a63cfc873fd3
+ Umbraco.MediaPicker3
+ false
+
+
+ 15
+ Content
+ Culture
+
+
+ false
+
+
+
+
+ 3a1981e3-734d-4de0-a12f-37da9b368309
+ Content
+ content
+ Tab
+ 10
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrow.config
new file mode 100644
index 0000000..2f6a0a6
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrow.config
@@ -0,0 +1,50 @@
+
+
+
+ Rich Text Row
+ icon-notepad-alt color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ be78bf17-4040-4fe2-b8cd-5d894b6d41fc
+ Content
+ content
+ ca90c950-0aff-4e72-b976-a30b1ac57dad
+ Umbraco.TinyMCE
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ fc9ee4b9-108e-4510-8330-f56837b9ad12
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrowsettings.config
new file mode 100644
index 0000000..41782b7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/richtextrowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Rich Text Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/search.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/search.config
new file mode 100644
index 0000000..b3394ec
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/search.config
@@ -0,0 +1,32 @@
+
+
+
+ Search
+ icon-search color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ headerControls
+ mainImageControls
+ sEOControls
+ visibilityControls
+
+ search
+
+ search
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/seocontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/seocontrols.config
new file mode 100644
index 0000000..164a060
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/seocontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ SEO Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 85878342-59e5-4827-8447-edc34a11e87e
+ Meta Description
+ metaDescription
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 10
+ SEO
+ Nothing
+
+
+ false
+
+
+ 465b40d7-a107-454d-b0de-c74d7fea3bd1
+ Meta Keywords
+ metaKeywords
+ b6b73142-b9c1-4bf8-a16d-e1c23320b549
+ Umbraco.Tags
+ false
+
+
+ 15
+ SEO
+ Nothing
+
+
+ false
+
+
+ c901ac53-4a1d-4a05-8d06-c3188e5f0668
+ Meta Name
+ metaName
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 5
+ SEO
+ Nothing
+
+
+ false
+
+
+
+
+ 18ae646a-c4d9-49ac-b5ea-6ffcbb45d94f
+ SEO
+ seO
+ Tab
+ 25
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/spacingproperties.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/spacingproperties.config
new file mode 100644
index 0000000..a7e9c14
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/spacingproperties.config
@@ -0,0 +1,169 @@
+
+
+
+ Spacing Properties
+ icon-defrag color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Compositions/Content+Blocks/Setting+Models
+
+
+
+
+
+
+
+ 60a89f27-260a-455b-a897-9b0a88c37d62
+ Margin Bottom
+ marginBottom
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 10
+ Margin
+ Nothing
+
+
+ false
+
+
+ 4cfca0eb-cca2-451d-bf21-f1f7672bd8bf
+ Margin Left
+ marginLeft
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 15
+ Margin
+ Nothing
+
+
+ false
+
+
+ d482b565-6997-4cb6-b07d-c419212cd194
+ Margin Right
+ marginRight
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 20
+ Margin
+ Nothing
+
+
+ false
+
+
+ b9141c74-5e73-42f5-8b2d-5f62681ab179
+ Margin Top
+ marginTop
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 5
+ Margin
+ Nothing
+
+
+ false
+
+
+ c3e859dc-b6bd-459e-b1f2-1a396d75f835
+ Padding Bottom
+ paddingBottom
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 10
+ Padding
+ Nothing
+
+
+ false
+
+
+ 2e1c3c37-bde8-4752-8af5-1e71b75dd458
+ Padding Left
+ paddingLeft
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 15
+ Padding
+ Nothing
+
+
+ false
+
+
+ 6e65ea4c-7c55-4846-bc65-997f7c8f8548
+ Padding Right
+ paddingRight
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 20
+ Padding
+ Nothing
+
+
+ false
+
+
+ 2c832c6d-ed15-408e-a14c-0c1cf4b86021
+ Padding Top
+ paddingTop
+ 67b28ce0-7274-4e7c-8efc-040435f5d97d
+ Umbraco.Community.Contentment.DataList
+ false
+
+
+ 5
+ Padding
+ Nothing
+
+
+ false
+
+
+
+
+ c809c885-c474-4a40-a273-57800fb7a374
+ Padding
+ padding
+ Tab
+ 120
+
+
+ fd1af3a1-4f6e-4d3b-805a-9f97f3f4a6c9
+ Margin
+ margin
+ Tab
+ 130
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorow.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorow.config
new file mode 100644
index 0000000..9fd0b56
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorow.config
@@ -0,0 +1,66 @@
+
+
+
+ Video Row
+ icon-video color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Content+Models
+
+
+
+
+
+
+
+ ebaacaf6-d137-4575-9c8a-c7454922477b
+ Caption
+ caption
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 20
+ Content
+ Nothing
+
+
+ false
+
+
+ db26c4d6-d620-42db-811f-3ec6fd2a9cd0
+ Video Url
+ videoUrl
+ 0cc0eba1-9960-42c9-bf9b-60e150b429ae
+ Umbraco.TextBox
+ false
+
+
+ 10
+ Content
+ Nothing
+
+
+ false
+
+
+
+
+ 6afb8a94-ba48-4c15-9d76-08ffe48e0950
+ Content
+ content
+ Tab
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorowsettings.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorowsettings.config
new file mode 100644
index 0000000..c4ada8e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/videorowsettings.config
@@ -0,0 +1,28 @@
+
+
+
+ Video Row Settings
+ icon-settings color-indigo
+ folder.png
+
+ False
+ False
+ Nothing
+ true
+
+ False
+
+
+
+ Elements/Setting+Models
+
+ hideProperty
+ spacingProperties
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/visibilitycontrols.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/visibilitycontrols.config
new file mode 100644
index 0000000..08f827a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/visibilitycontrols.config
@@ -0,0 +1,82 @@
+
+
+
+ Visibility Controls
+ icon-settings color-pink
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Compositions
+
+
+
+
+
+
+
+ 35ae0d0c-361d-4a53-835c-72b7e59a166e
+ Hide From Top Navigation
+ hideFromTopNavigation
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 5
+ Visibility
+ Nothing
+
+
+ false
+
+
+ 09404570-096b-428b-90cb-6ac55bc47fd2
+ Hide From XML Sitemap
+ hideFromXMLSitemap
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 15
+ Visibility
+ Nothing
+
+
+ false
+
+
+ 08b7cc39-05d0-4b97-896d-68c74c912dea
+ Hide From Search
+ umbracoNaviHide
+ 92897bc6-a5f3-4ffe-ae27-f2e7e33dda49
+ Umbraco.TrueFalse
+ false
+
+
+ 10
+ Visibility
+ Nothing
+
+
+ false
+
+
+
+
+ 047f36ae-a8ca-43c0-a386-372bfa7144bd
+ Visibility
+ visibility
+ Tab
+ 30
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/xmlsitemap.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/xmlsitemap.config
new file mode 100644
index 0000000..6ed6c32
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/ContentTypes/xmlsitemap.config
@@ -0,0 +1,29 @@
+
+
+
+ XML Sitemap
+ icon-sitemap color-blue
+ folder.png
+
+ False
+ False
+ Nothing
+ false
+
+ False
+
+
+
+ Pages
+
+ visibilityControls
+
+ xMLSitemap
+
+ xMLSitemap
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ApprovedColor.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ApprovedColor.config
new file mode 100644
index 0000000..821eec1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ApprovedColor.config
@@ -0,0 +1,12 @@
+
+
+
+ Approved Color
+ Umbraco.ColorPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListIconList.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListIconList.config
new file mode 100644
index 0000000..6c0b591
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListIconList.config
@@ -0,0 +1,32 @@
+
+
+
+ [BlockList] Icon List
+ Umbraco.BlockList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListMainContent.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListMainContent.config
new file mode 100644
index 0000000..ca65ffe
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/BlockListMainContent.config
@@ -0,0 +1,92 @@
+
+
+
+ [BlockList] Main Content
+ Umbraco.BlockList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/CheckboxList.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/CheckboxList.config
new file mode 100644
index 0000000..354bf20
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/CheckboxList.config
@@ -0,0 +1,11 @@
+
+
+
+ Checkbox list
+ Umbraco.CheckBoxList
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentPicker.config
new file mode 100644
index 0000000..50c6f64
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentPicker.config
@@ -0,0 +1,13 @@
+
+
+
+ Content Picker
+ Umbraco.ContentPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentmentCodeEditor.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentmentCodeEditor.config
new file mode 100644
index 0000000..02aedf0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ContentmentCodeEditor.config
@@ -0,0 +1,16 @@
+
+
+
+ [Contentment] Code Editor
+ Umbraco.Community.Contentment.CodeEditor
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListAuthors.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListAuthors.config
new file mode 100644
index 0000000..9589448
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListAuthors.config
@@ -0,0 +1,31 @@
+
+
+
+ [DataList] Authors
+ Umbraco.Community.Contentment.DataList
+ Ntext
+
+ \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n",
+ "allowClear": "0",
+ "htmlAttributes": [
+ {
+ "name": "class",
+ "value": "flex flex-wrap"
+ }
+ ]
+ }
+ }
+ ]
+}]]>
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListCategoryList.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListCategoryList.config
new file mode 100644
index 0000000..5640376
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListCategoryList.config
@@ -0,0 +1,27 @@
+
+
+
+ [DataList] Category List
+ Umbraco.Community.Contentment.DataList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListSpacing.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListSpacing.config
new file mode 100644
index 0000000..20b6c37
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListSpacing.config
@@ -0,0 +1,66 @@
+
+
+
+ [DataList] Spacing
+ Umbraco.Community.Contentment.DataList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListYesNoClearable.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListYesNoClearable.config
new file mode 100644
index 0000000..5ad31d5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DataListYesNoClearable.config
@@ -0,0 +1,42 @@
+
+
+
+ [DataList] Yes No Clearable
+ Umbraco.Community.Contentment.DataList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePicker.config
new file mode 100644
index 0000000..3f9c5c2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePicker.config
@@ -0,0 +1,12 @@
+
+
+
+ Date Picker
+ Umbraco.DateTime
+ Date
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePickerWithTime.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePickerWithTime.config
new file mode 100644
index 0000000..2c289d1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DatePickerWithTime.config
@@ -0,0 +1,12 @@
+
+
+
+ Date Picker with time
+ Umbraco.DateTime
+ Date
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Dropdown.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Dropdown.config
new file mode 100644
index 0000000..673eb7a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Dropdown.config
@@ -0,0 +1,12 @@
+
+
+
+ Dropdown
+ Umbraco.DropDown.Flexible
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DropdownMultiple.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DropdownMultiple.config
new file mode 100644
index 0000000..e8a7998
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/DropdownMultiple.config
@@ -0,0 +1,12 @@
+
+
+
+ Dropdown multiple
+ Umbraco.DropDown.Flexible
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageCropper.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageCropper.config
new file mode 100644
index 0000000..ccd9162
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageCropper.config
@@ -0,0 +1,11 @@
+
+
+
+ Image Cropper
+ Umbraco.ImageCropper
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageMediaPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageMediaPicker.config
new file mode 100644
index 0000000..e0b3db7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ImageMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Image Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelBigint.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelBigint.config
new file mode 100644
index 0000000..909f50d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelBigint.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (bigint)
+ Umbraco.Label
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDatetime.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDatetime.config
new file mode 100644
index 0000000..7163ac9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDatetime.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (datetime)
+ Umbraco.Label
+ Date
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDecimal.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDecimal.config
new file mode 100644
index 0000000..045b4f5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelDecimal.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (decimal)
+ Umbraco.Label
+ Decimal
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelInteger.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelInteger.config
new file mode 100644
index 0000000..19ea1dc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelInteger.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (integer)
+ Umbraco.Label
+ Integer
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelString.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelString.config
new file mode 100644
index 0000000..af5067c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelString.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (string)
+ Umbraco.Label
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelTime.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelTime.config
new file mode 100644
index 0000000..df2170a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/LabelTime.config
@@ -0,0 +1,11 @@
+
+
+
+ Label (time)
+ Umbraco.Label
+ Date
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewContent.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewContent.config
new file mode 100644
index 0000000..821f787
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewContent.config
@@ -0,0 +1,54 @@
+
+
+
+ List View - Content
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMedia.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMedia.config
new file mode 100644
index 0000000..4fcba13
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMedia.config
@@ -0,0 +1,54 @@
+
+
+
+ List View - Media
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMembers.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMembers.config
new file mode 100644
index 0000000..f23eb03
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/ListViewMembers.config
@@ -0,0 +1,60 @@
+
+
+
+ List View - Members
+ Umbraco.ListView
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPicker.config
new file mode 100644
index 0000000..721575a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerLegacy.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerLegacy.config
new file mode 100644
index 0000000..d97a303
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerLegacy.config
@@ -0,0 +1,15 @@
+
+
+
+ Media Picker (legacy)
+ Umbraco.MediaPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerSVGImage.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerSVGImage.config
new file mode 100644
index 0000000..eb6adc0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MediaPickerSVGImage.config
@@ -0,0 +1,20 @@
+
+
+
+ [MediaPicker] SVG Image
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MemberPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MemberPicker.config
new file mode 100644
index 0000000..260c185
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MemberPicker.config
@@ -0,0 +1,9 @@
+
+
+
+ Member Picker
+ Umbraco.MemberPicker
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiURLPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiURLPicker.config
new file mode 100644
index 0000000..e00831f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiURLPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ Multi URL Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
new file mode 100644
index 0000000..839e4d9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultiUrlPickerSingleUrlPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ [MultiUrlPicker] Single Url Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleImageMediaPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleImageMediaPicker.config
new file mode 100644
index 0000000..407c8af
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleImageMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Multiple Image Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPicker.config
new file mode 100644
index 0000000..2a066f0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPicker.config
@@ -0,0 +1,20 @@
+
+
+
+ Multiple Media Picker
+ Umbraco.MediaPicker3
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
new file mode 100644
index 0000000..5b3573e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/MultipleMediaPickerLegacy.config
@@ -0,0 +1,15 @@
+
+
+
+ Multiple Media Picker (legacy)
+ Umbraco.MediaPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Numeric.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Numeric.config
new file mode 100644
index 0000000..cd6d29b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Numeric.config
@@ -0,0 +1,9 @@
+
+
+
+ Numeric
+ Umbraco.Integer
+ Integer
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Radiobox.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Radiobox.config
new file mode 100644
index 0000000..a166cb7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Radiobox.config
@@ -0,0 +1,11 @@
+
+
+
+ Radiobox
+ Umbraco.RadioButtonList
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/RichtextEditor.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/RichtextEditor.config
new file mode 100644
index 0000000..e411e7b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/RichtextEditor.config
@@ -0,0 +1,15 @@
+
+
+
+ Richtext editor
+ Umbraco.TinyMCE
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SingleUrlPicker.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SingleUrlPicker.config
new file mode 100644
index 0000000..4dfc82d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SingleUrlPicker.config
@@ -0,0 +1,15 @@
+
+
+
+ Single Url Picker
+ Umbraco.MultiUrlPicker
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SliderSpacing.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SliderSpacing.config
new file mode 100644
index 0000000..2d9f0c6
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/SliderSpacing.config
@@ -0,0 +1,16 @@
+
+
+
+ [Slider] Spacing
+ Umbraco.Slider
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/TagList.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/TagList.config
new file mode 100644
index 0000000..b831d85
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/TagList.config
@@ -0,0 +1,11 @@
+
+
+
+ Tag List
+ TagList
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags.config
new file mode 100644
index 0000000..fa127aa
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags.config
@@ -0,0 +1,13 @@
+
+
+
+ Tags
+ Umbraco.Tags
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags1.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags1.config
new file mode 100644
index 0000000..b3fcc82
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Tags1.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textarea.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textarea.config
new file mode 100644
index 0000000..a495b9e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textarea.config
@@ -0,0 +1,12 @@
+
+
+
+ Textarea
+ Umbraco.TextArea
+ Ntext
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textstring.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textstring.config
new file mode 100644
index 0000000..dc90bf0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Textstring.config
@@ -0,0 +1,11 @@
+
+
+
+ Textstring
+ Umbraco.TextBox
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Truefalse.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Truefalse.config
new file mode 100644
index 0000000..a08bf8f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/Truefalse.config
@@ -0,0 +1,14 @@
+
+
+
+ True/false
+ Umbraco.TrueFalse
+ Integer
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadArticle.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadArticle.config
new file mode 100644
index 0000000..1d76dc8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadArticle.config
@@ -0,0 +1,24 @@
+
+
+
+ Upload Article
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadAudio.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadAudio.config
new file mode 100644
index 0000000..66b66ca
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadAudio.config
@@ -0,0 +1,28 @@
+
+
+
+ Upload Audio
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadFile.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadFile.config
new file mode 100644
index 0000000..bdd8d01
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadFile.config
@@ -0,0 +1,11 @@
+
+
+
+ Upload File
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVectorGraphics.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVectorGraphics.config
new file mode 100644
index 0000000..6088f33
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVectorGraphics.config
@@ -0,0 +1,16 @@
+
+
+
+ Upload Vector Graphics
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVideo.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVideo.config
new file mode 100644
index 0000000..fb8f018
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/DataTypes/UploadVideo.config
@@ -0,0 +1,24 @@
+
+
+
+ Upload Video
+ Umbraco.UploadField
+ Nvarchar
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.by.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.by.config
new file mode 100644
index 0000000..7d75d39
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.by.config
@@ -0,0 +1,7 @@
+
+
+
+
+ by
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.on.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.on.config
new file mode 100644
index 0000000..306f491
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.on.config
@@ -0,0 +1,7 @@
+
+
+
+
+ on
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.posted.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.posted.config
new file mode 100644
index 0000000..d95e767
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/article.posted.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Posted
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/articlelist.viewall.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/articlelist.viewall.config
new file mode 100644
index 0000000..8c6dbcc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/articlelist.viewall.config
@@ -0,0 +1,7 @@
+
+
+
+
+ View all posts
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/author.readmore.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/author.readmore.config
new file mode 100644
index 0000000..7c0ef37
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/author.readmore.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Read More
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.email.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.email.config
new file mode 100644
index 0000000..81e6445
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.email.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Email Address
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.message.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.message.config
new file mode 100644
index 0000000..1c463f9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.message.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Message
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.name.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.name.config
new file mode 100644
index 0000000..441de3b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.name.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Name
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.send.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.send.config
new file mode 100644
index 0000000..2a40a75
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/contactform.send.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Send
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrightstatement.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrightstatement.config
new file mode 100644
index 0000000..6382941
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrightstatement.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Clean Starter Kit
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrighttitle.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrighttitle.config
new file mode 100644
index 0000000..1ef8c4f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/footer.copyrighttitle.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Copyright
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.menutitle.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.menutitle.config
new file mode 100644
index 0000000..ca71071
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.menutitle.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Menu
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.sitename.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.sitename.config
new file mode 100644
index 0000000..d326792
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/navigation.sitename.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Clean Starter Kit
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.next.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.next.config
new file mode 100644
index 0000000..90d2a08
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.next.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Next
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.of.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.of.config
new file mode 100644
index 0000000..a106b0e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.of.config
@@ -0,0 +1,7 @@
+
+
+
+
+ of
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.page.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.page.config
new file mode 100644
index 0000000..e62a18e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.page.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Page
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.previous.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.previous.config
new file mode 100644
index 0000000..9a3ee44
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/paging.previous.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Prev
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.placeholder.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.placeholder.config
new file mode 100644
index 0000000..3a6e7cd
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.placeholder.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Search...
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.results.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.results.config
new file mode 100644
index 0000000..800999b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.results.config
@@ -0,0 +1,7 @@
+
+
+
+
+ <p>We found <strong>{0}</strong> results when searching for <strong>{1}</strong></p>
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.searchbutton.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.searchbutton.config
new file mode 100644
index 0000000..394de11
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Dictionary/search.searchbutton.config
@@ -0,0 +1,7 @@
+
+
+
+
+ Search
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/1121_en-gb.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/1121_en-gb.config
new file mode 100644
index 0000000..15f4104
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/1121_en-gb.config
@@ -0,0 +1,8 @@
+
+
+
+ true
+ en-GB
+ /Home
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-en_en-gb.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-en_en-gb.config
new file mode 100644
index 0000000..61b1700
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-en_en-gb.config
@@ -0,0 +1,8 @@
+
+
+
+ false
+ en-GB
+ /Home
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_.config
new file mode 100644
index 0000000..dc9f6fb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_en-gb.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_en-gb.config
new file mode 100644
index 0000000..bbf1ad4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_en-gb.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_fr.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_fr.config
new file mode 100644
index 0000000..e866d26
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398-fr_fr.config
@@ -0,0 +1,8 @@
+
+
+
+ false
+ fr
+ /Home
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb.config
new file mode 100644
index 0000000..49c5a95
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_dbrlnjf3.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_dbrlnjf3.config
new file mode 100644
index 0000000..2c5d563
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_dbrlnjf3.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_r1rpmviu.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_r1rpmviu.config
new file mode 100644
index 0000000..06136e1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Domains/localhost-44398_en-gb_r1rpmviu.config
@@ -0,0 +1,8 @@
+
+
+
+ false
+ en-GB
+ /Home
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-gb.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-gb.config
new file mode 100644
index 0000000..4ab30c0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-gb.config
@@ -0,0 +1,7 @@
+
+
+ English (United Kingdom)
+ en-GB
+ false
+ true
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-us.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-us.config
new file mode 100644
index 0000000..4256dbb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/en-us.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr-fr.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr-fr.config
new file mode 100644
index 0000000..f9b3ef2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr-fr.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr.config
new file mode 100644
index 0000000..f4b7238
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Languages/fr.config
@@ -0,0 +1,8 @@
+
+
+ French
+ fr
+ false
+ false
+ en-GB
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/24-days-people-at-codegarden.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/24-days-people-at-codegarden.config
new file mode 100644
index 0000000..cc99522
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/24-days-people-at-codegarden.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/daysPeopleAtCodegarden
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 13
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors.config
new file mode 100644
index 0000000..0b6d71f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /Authors
+ false
+ Folder
+ 2024-04-07T12:26:17
+
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors_gknjjwq4.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors_gknjjwq4.config
new file mode 100644
index 0000000..54bf825
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/authors_gknjjwq4.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/Authors
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 19
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/bluetooth-white-keyboard.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/bluetooth-white-keyboard.config
new file mode 100644
index 0000000..a3c20a1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/bluetooth-white-keyboard.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/BluetoothWhiteKeyboard
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 1
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/candid-contributions.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/candid-contributions.config
new file mode 100644
index 0000000..06cc0bc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/candid-contributions.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/CandidContributions
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 16
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/cc-paypal.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/cc-paypal.config
new file mode 100644
index 0000000..d9be561
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/cc-paypal.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/CcPaypal
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 6
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/chairs-lamps.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/chairs-lamps.config
new file mode 100644
index 0000000..8cc4ab0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/chairs-lamps.config
@@ -0,0 +1,27 @@
+
+
+
+ Sample Images
+ /SampleImages/ChairsLamps
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/codegarden-keynote.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/codegarden-keynote.config
new file mode 100644
index 0000000..dbb14b0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/codegarden-keynote.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/CodegardenKeynote
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 8
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/community-front-row.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/community-front-row.config
new file mode 100644
index 0000000..a4e6c04
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/community-front-row.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/CommunityFrontRow
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 4
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/desktop-notebook-glasses.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/desktop-notebook-glasses.config
new file mode 100644
index 0000000..fcaf064
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/desktop-notebook-glasses.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/DesktopNotebookGlasses
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 14
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/diary.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/diary.config
new file mode 100644
index 0000000..7f0b0e4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/diary.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/Diary
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 20
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/discord.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/discord.config
new file mode 100644
index 0000000..eb8c3f0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/discord.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Discord
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:16
+
+ 0
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/first-timers-at-codegarden.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/first-timers-at-codegarden.config
new file mode 100644
index 0000000..e10bde5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/first-timers-at-codegarden.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/FirstTimersAtCodegarden
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 12
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/friendly-chair.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/friendly-chair.config
new file mode 100644
index 0000000..1a7f4be
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/friendly-chair.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/FriendlyChair
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 9
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/front-row-audience-smiles.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/front-row-audience-smiles.config
new file mode 100644
index 0000000..08b974f
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/front-row-audience-smiles.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/FrontRowAudienceSmiles
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 11
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github-alt.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github-alt.config
new file mode 100644
index 0000000..411f1a2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github-alt.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/GithubAlt
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github.config
new file mode 100644
index 0000000..27a50d7
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/github.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Github
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 2
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon.config
new file mode 100644
index 0000000..b254cf8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Mastodon
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 10
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon_y5vnqpay.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon_y5vnqpay.config
new file mode 100644
index 0000000..726747b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/mastodon_y5vnqpay.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/Mastodon
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 21
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/meetup-organizers-at-codegarden.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/meetup-organizers-at-codegarden.config
new file mode 100644
index 0000000..5373104
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/meetup-organizers-at-codegarden.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/MeetupOrganizersAtCodegarden
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 6
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/package-manifest.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/package-manifest.config
new file mode 100644
index 0000000..f6881ee
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/package-manifest.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/PackageManifest
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 17
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/paypal.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/paypal.config
new file mode 100644
index 0000000..a82c0bb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/paypal.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Paypal
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 7
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/phone-pen-binder.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/phone-pen-binder.config
new file mode 100644
index 0000000..dcaad9c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/phone-pen-binder.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/PhonePenBinder
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 2
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/podcast-headphones-coffee.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/podcast-headphones-coffee.config
new file mode 100644
index 0000000..bc2467c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/podcast-headphones-coffee.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/PodcastHeadphonesCoffee
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 15
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/profile-pic-2023.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/profile-pic-2023.config
new file mode 100644
index 0000000..de302f9
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/profile-pic-2023.config
@@ -0,0 +1,20 @@
+
+
+
+ Authors
+ /Authors/ProfilePic2023
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 0
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/sample-images.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/sample-images.config
new file mode 100644
index 0000000..6408e8c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/sample-images.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /SampleImages
+ false
+ Folder
+ 2024-04-07T12:26:17
+
+ 2
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/say-cheese.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/say-cheese.config
new file mode 100644
index 0000000..b89ebdc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/say-cheese.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/SayCheese
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 10
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/share-nodes.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/share-nodes.config
new file mode 100644
index 0000000..74914e5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/share-nodes.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/ShareNodes
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 8
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/skrift-at-codegarden.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/skrift-at-codegarden.config
new file mode 100644
index 0000000..58e39d0
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/skrift-at-codegarden.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/SkriftAtCodegarden
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 5
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/social-icons.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/social-icons.config
new file mode 100644
index 0000000..f03f4ea
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/social-icons.config
@@ -0,0 +1,13 @@
+
+
+
+
+ /SocialIcons
+ false
+ Folder
+ 2024-04-07T12:26:16
+
+ 0
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-github.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-github.config
new file mode 100644
index 0000000..c86a528
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-github.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/SquareGithub
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 3
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-twitter.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-twitter.config
new file mode 100644
index 0000000..59c5f2c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/square-twitter.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/SquareTwitter
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 4
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/triangle-table-chairs.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/triangle-table-chairs.config
new file mode 100644
index 0000000..c4ebebb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/triangle-table-chairs.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/TriangleTableChairs
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 3
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/tutorials.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/tutorials.config
new file mode 100644
index 0000000..acb7b68
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/tutorials.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/Tutorials
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 18
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/twitter.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/twitter.config
new file mode 100644
index 0000000..61cb570
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/twitter.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Twitter
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 5
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbraco.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbraco.config
new file mode 100644
index 0000000..74bec5e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbraco.config
@@ -0,0 +1,17 @@
+
+
+
+ Social Icons
+ /SocialIcons/Umbraco
+ false
+ umbracoMediaVectorGraphics
+ 2024-04-07T12:26:17
+
+ 9
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbracoffee-codegarden.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbracoffee-codegarden.config
new file mode 100644
index 0000000..e375c7e
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Media/umbracoffee-codegarden.config
@@ -0,0 +1,20 @@
+
+
+
+ Sample Images
+ /SampleImages/UmbracoffeeCodegarden
+ false
+ Image
+ 2024-04-07T12:26:17
+
+ 7
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/file.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/file.config
new file mode 100644
index 0000000..425dce3
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/file.config
@@ -0,0 +1,71 @@
+
+
+
+ File
+ icon-document
+ icon-document
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000001a-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ File
+
+
+ false
+
+
+ 00000019-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ File
+
+
+ false
+
+
+ 00000018-0000-0000-0000-000000000000
+ File
+ umbracoFile
+ 84c6b441-31df-4ffe-b67e-67d5bc3ae65a
+ Umbraco.UploadField
+ true
+
+
+ 0
+ File
+
+
+ false
+
+
+
+
+
+ 50899f9c-023a-4466-b623-aba9049885fe
+ File
+ file
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/folder.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/folder.config
new file mode 100644
index 0000000..8565321
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/folder.config
@@ -0,0 +1,25 @@
+
+
+
+ Folder
+ icon-folder
+ icon-folder
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ Folder
+ Image
+ File
+ umbracoMediaVideo
+ umbracoMediaAudio
+ umbracoMediaArticle
+ umbracoMediaVectorGraphics
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/image.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/image.config
new file mode 100644
index 0000000..a8a252c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/image.config
@@ -0,0 +1,131 @@
+
+
+
+ Image
+ icon-picture
+ icon-picture
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ ff8e58ce-16f1-411a-94e3-03e0e0f23dcc
+ Alt Text
+ altText
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 5
+ Image
+
+
+ false
+
+
+ cffb3c6c-6628-45de-8600-409bae91a27f
+ Tag
+ tag
+ b220ffb2-d010-40fb-8015-19459afa8d48
+ TagList
+ false
+
+
+ 6
+ Image
+
+
+ false
+
+
+ 00000009-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 3
+ Image
+
+
+ false
+
+
+ 0000000a-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 4
+ Image
+
+
+ false
+
+
+ 00000006-0000-0000-0000-000000000000
+ Image
+ umbracoFile
+ 1df9f033-e6d4-451f-b8d2-e0cbc50a836f
+ Umbraco.ImageCropper
+ true
+
+
+ 0
+ Image
+
+
+ false
+
+
+ 00000008-0000-0000-0000-000000000000
+ Height
+ umbracoHeight
+ 8e7f995c-bd81-4627-9932-c40e568ec788
+ Umbraco.Label
+ false
+
+
+ 2
+ Image
+
+
+ false
+
+
+ 00000007-0000-0000-0000-000000000000
+ Width
+ umbracoWidth
+ 8e7f995c-bd81-4627-9932-c40e568ec788
+ Umbraco.Label
+ false
+
+
+ 1
+ Image
+
+
+ false
+
+
+
+
+
+ 79ed4d07-254a-42cf-8fa9-ebe1c116a596
+ Image
+ image
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaarticle.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaarticle.config
new file mode 100644
index 0000000..11f2f7a
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaarticle.config
@@ -0,0 +1,71 @@
+
+
+
+ Article
+ icon-article
+ icon-article
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 00000030-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Article
+
+
+ false
+
+
+ 0000002f-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Article
+
+
+ false
+
+
+ 0000002e-0000-0000-0000-000000000000
+ Article
+ umbracoFile
+ bc1e266c-dac4-4164-bf08-8a1ec6a7143d
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Article
+
+
+ false
+
+
+
+
+
+ 9af3bd65-f687-4453-9518-5f180d1898ec
+ Article
+ article
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaaudio.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaaudio.config
new file mode 100644
index 0000000..3b241c3
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediaaudio.config
@@ -0,0 +1,71 @@
+
+
+
+ Audio
+ icon-sound-waves
+ icon-sound-waves
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000002d-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Audio
+
+
+ false
+
+
+ 0000002c-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Audio
+
+
+ false
+
+
+ 0000002b-0000-0000-0000-000000000000
+ Audio
+ umbracoFile
+ 8f430dd6-4e96-447e-9dc0-cb552c8cd1f3
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Audio
+
+
+ false
+
+
+
+
+
+ 335fb495-0a87-4e82-b902-30eb367b767c
+ Audio
+ audio
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavectorgraphics.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
new file mode 100644
index 0000000..3ebd344
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavectorgraphics.config
@@ -0,0 +1,71 @@
+
+
+
+ Vector Graphics (SVG)
+ icon-picture
+ icon-picture
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 00000033-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Vector Graphics
+
+
+ false
+
+
+ 00000032-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Vector Graphics
+
+
+ false
+
+
+ 00000031-0000-0000-0000-000000000000
+ Vector Graphics
+ umbracoFile
+ 215cb418-2153-4429-9aef-8c0f0041191b
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Vector Graphics
+
+
+ false
+
+
+
+
+
+ f199b4d7-9e84-439f-8531-f87d9af37711
+ Vector Graphics
+ vectorGraphics
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavideo.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavideo.config
new file mode 100644
index 0000000..0dd0ffc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MediaTypes/umbracomediavideo.config
@@ -0,0 +1,71 @@
+
+
+
+ Video
+ icon-video
+ icon-video
+
+ True
+ False
+ Nothing
+ false
+
+
+
+
+ 0000002a-0000-0000-0000-000000000000
+ Size
+ umbracoBytes
+ 930861bf-e262-4ead-a704-f99453565708
+ Umbraco.Label
+ false
+
+
+ 2
+ Video
+
+
+ false
+
+
+ 00000029-0000-0000-0000-000000000000
+ Type
+ umbracoExtension
+ f0bc4bfb-b499-40d6-ba86-058885a5178c
+ Umbraco.Label
+ false
+
+
+ 1
+ Video
+
+
+ false
+
+
+ 00000028-0000-0000-0000-000000000000
+ Video
+ umbracoFile
+ 70575fe7-9812-4396-bbe1-c81a76db71b5
+ Umbraco.UploadField
+ true
+
+
+ 0
+ Video
+
+
+ false
+
+
+
+
+
+ 2f0a61b6-cf92-4ff4-b437-751ab35eb254
+ Video
+ video
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/MemberTypes/member.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MemberTypes/member.config
new file mode 100644
index 0000000..bb1c2dc
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/MemberTypes/member.config
@@ -0,0 +1,44 @@
+
+
+
+ Member
+ icon-user
+ icon-user
+
+ False
+ False
+ Nothing
+ false
+
+
+
+
+ 2a280588-0000-0000-0000-000000000000
+ Comments
+ umbracoMemberComments
+ c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3
+ Umbraco.TextArea
+ false
+
+
+ 0
+ Membership
+ false
+ false
+ false
+
+
+ false
+
+
+
+
+
+ 0756729d-d665-46e3-b84a-37aceaa614f8
+ Membership
+ membership
+ Group
+ 1
+
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/article.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/article.config
new file mode 100644
index 0000000..bcb73e8
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/article.config
@@ -0,0 +1,5 @@
+
+
+ Article
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/articlelist.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/articlelist.config
new file mode 100644
index 0000000..75356c4
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/articlelist.config
@@ -0,0 +1,5 @@
+
+
+ Article List
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/author.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/author.config
new file mode 100644
index 0000000..87dbc57
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/author.config
@@ -0,0 +1,5 @@
+
+
+ Author
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/authorlist.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/authorlist.config
new file mode 100644
index 0000000..899186d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/authorlist.config
@@ -0,0 +1,5 @@
+
+
+ Author List
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/contact.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/contact.config
new file mode 100644
index 0000000..3ccc703
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/contact.config
@@ -0,0 +1,5 @@
+
+
+ Contact
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/content.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/content.config
new file mode 100644
index 0000000..6f80002
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/content.config
@@ -0,0 +1,5 @@
+
+
+ Content
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/error.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/error.config
new file mode 100644
index 0000000..edb50b2
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/error.config
@@ -0,0 +1,5 @@
+
+
+ Error
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/home.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/home.config
new file mode 100644
index 0000000..8cafa6b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/home.config
@@ -0,0 +1,5 @@
+
+
+ Home
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/master.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/master.config
new file mode 100644
index 0000000..14a31ad
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/master.config
@@ -0,0 +1,5 @@
+
+
+ Master
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/search.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/search.config
new file mode 100644
index 0000000..0e42a5d
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/search.config
@@ -0,0 +1,5 @@
+
+
+ Search
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/xmlsitemap.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/xmlsitemap.config
new file mode 100644
index 0000000..ac3ab9b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/Templates/xmlsitemap.config
@@ -0,0 +1,5 @@
+
+
+ XMLSitemap
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/uSync/v9/usync.config b/Umbraco Tag Manager.TestSite.V10/uSync/v9/usync.config
new file mode 100644
index 0000000..07d889b
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/uSync/v9/usync.config
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/highlightjs-copy.min.css b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/highlightjs-copy.min.css
new file mode 100644
index 0000000..5a94fec
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/highlightjs-copy.min.css
@@ -0,0 +1 @@
+.hljs-copy-wrapper{position:relative;overflow:hidden}.hljs-copy-wrapper:hover .hljs-copy-button,.hljs-copy-button:focus{transform:translateX(0)}.hljs-copy-button{position:absolute;transform:translateX(calc(100% + 1.125em));top:1em;right:1em;width:2rem;height:2rem;text-indent:-9999px;color:#fff;border-radius:.25rem;border:1px solid #ffffff22;background-color:#2d2b57;background-color:var(--hljs-theme-background);background-image:url('data:image/svg+xml;utf-8, ');background-repeat:no-repeat;background-position:center;transition:background-color 200ms ease,transform 200ms ease-out}.hljs-copy-button:hover{border-color:#ffffff44}.hljs-copy-button:active{border-color:#ffffff66}.hljs-copy-button[data-copied="true"]{text-indent:0;width:auto;background-image:none}@media(prefers-reduced-motion){.hljs-copy-button{transition:none}}.hljs-copy-alert{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/styles.css b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/styles.css
new file mode 100644
index 0000000..4126ce1
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/styles.css
@@ -0,0 +1,11348 @@
+@charset "UTF-8";
+/*!
+* Start Bootstrap - Clean Blog v6.0.7 (https://startbootstrap.com/theme/clean-blog)
+* Copyright 2013-2021 Start Bootstrap
+* Licensed under MIT (https://github.com/StartBootstrap/startbootstrap-clean-blog/blob/master/LICENSE)
+*/
+/*!
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #005E70;
+ --bs-cyan: #0dcaf0;
+ --bs-white: #fff;
+ --bs-gray: #6c757d;
+ --bs-gray-dark: #343a40;
+ --bs-gray-100: #f8f9fa;
+ --bs-gray-200: #e9ecef;
+ --bs-gray-300: #dee2e6;
+ --bs-gray-400: #ced4da;
+ --bs-gray-500: #adb5bd;
+ --bs-gray-600: #6c757d;
+ --bs-gray-700: #495057;
+ --bs-gray-800: #343a40;
+ --bs-gray-900: #212529;
+ --bs-primary: #005E70;
+ --bs-secondary: #6c757d;
+ --bs-success: #198754;
+ --bs-info: #0dcaf0;
+ --bs-warning: #ffc107;
+ --bs-danger: #dc3545;
+ --bs-light: #f8f9fa;
+ --bs-dark: #212529;
+ --bs-primary-rgb: 0, 133, 161;
+ --bs-secondary-rgb: 108, 117, 125;
+ --bs-success-rgb: 25, 135, 84;
+ --bs-info-rgb: 13, 202, 240;
+ --bs-warning-rgb: 255, 193, 7;
+ --bs-danger-rgb: 220, 53, 69;
+ --bs-light-rgb: 248, 249, 250;
+ --bs-dark-rgb: 33, 37, 41;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-body-color-rgb: 33, 37, 41;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: Lora, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #212529;
+ --bs-body-bg: #fff;
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ :root {
+ scroll-behavior: smooth;
+ }
+}
+
+body {
+ margin: 0;
+ font-family: var(--bs-body-font-family);
+ font-size: var(--bs-body-font-size);
+ font-weight: var(--bs-body-font-weight);
+ line-height: var(--bs-body-line-height);
+ color: var(--bs-body-color);
+ text-align: var(--bs-body-text-align);
+ background-color: var(--bs-body-bg);
+ -webkit-text-size-adjust: 100%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+hr {
+ margin: 1rem 0;
+ color: inherit;
+ background-color: currentColor;
+ border: 0;
+ opacity: 0.25;
+}
+
+hr:not([size]) {
+ height: 1px;
+}
+
+h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-weight: 800;
+ line-height: 1.2;
+}
+
+h1, .h1 {
+ font-size: calc(1.375rem + 1.5vw);
+}
+@media (min-width: 1200px) {
+ h1, .h1 {
+ font-size: 2.5rem;
+ }
+}
+
+h2, .h2 {
+ font-size: calc(1.325rem + 0.9vw);
+}
+@media (min-width: 1200px) {
+ h2, .h2 {
+ font-size: 2rem;
+ }
+}
+
+h3, .h3 {
+ font-size: calc(1.3rem + 0.6vw);
+}
+@media (min-width: 1200px) {
+ h3, .h3 {
+ font-size: 1.75rem;
+ }
+}
+
+h4, .h4 {
+ font-size: calc(1.275rem + 0.3vw);
+}
+@media (min-width: 1200px) {
+ h4, .h4 {
+ font-size: 1.5rem;
+ }
+}
+
+h5, .h5 {
+ font-size: 1.25rem;
+}
+
+h6, .h6 {
+ font-size: 1rem;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+abbr[title],
+abbr[data-bs-original-title] {
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted;
+ cursor: help;
+ -webkit-text-decoration-skip-ink: none;
+ text-decoration-skip-ink: none;
+}
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+ol,
+ul {
+ padding-left: 2rem;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: 700;
+}
+
+dd {
+ margin-bottom: 0.5rem;
+ margin-left: 0;
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+small, .small {
+ font-size: 0.875em;
+}
+
+mark, .mark {
+ padding: 0.2em;
+ background-color: #fcf8e3;
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 0.75em;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+a {
+ color: #212529;
+ text-decoration: none;
+}
+a:hover {
+ color: #005E70;
+}
+
+a:not([href]):not([class]), a:not([href]):not([class]):hover {
+ color: inherit;
+ text-decoration: none;
+}
+
+pre,
+code,
+kbd,
+samp {
+ font-family: var(--bs-font-monospace);
+ font-size: 1em;
+ direction: ltr /* rtl:ignore */;
+ unicode-bidi: bidi-override;
+}
+
+pre {
+ display: block;
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+ font-size: 0.875em;
+}
+pre code {
+ font-size: inherit;
+ color: inherit;
+ word-break: normal;
+}
+
+code {
+ font-size: 0.875em;
+ color: #d63384;
+ word-wrap: break-word;
+}
+a > code {
+ color: inherit;
+}
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 0.875em;
+ color: #fff;
+ background-color: #212529;
+}
+kbd kbd {
+ padding: 0;
+ font-size: 1em;
+ font-weight: 700;
+}
+
+figure {
+ margin: 0 0 1rem;
+}
+
+img,
+svg {
+ vertical-align: middle;
+}
+
+table {
+ caption-side: bottom;
+ border-collapse: collapse;
+}
+
+caption {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ color: #6c757d;
+ text-align: left;
+}
+
+th {
+ text-align: inherit;
+ text-align: -webkit-match-parent;
+}
+
+thead,
+tbody,
+tfoot,
+tr,
+td,
+th {
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+}
+
+label {
+ display: inline-block;
+}
+
+button {
+ border-radius: 0;
+}
+
+button:focus:not(:focus-visible) {
+ outline: 0;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+[role=button] {
+ cursor: pointer;
+}
+
+select {
+ word-wrap: normal;
+}
+select:disabled {
+ opacity: 1;
+}
+
+[list]::-webkit-calendar-picker-indicator {
+ display: none;
+}
+
+button,
+[type=button],
+[type=reset],
+[type=submit] {
+ -webkit-appearance: button;
+}
+button:not(:disabled),
+[type=button]:not(:disabled),
+[type=reset]:not(:disabled),
+[type=submit]:not(:disabled) {
+ cursor: pointer;
+}
+
+::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+textarea {
+ resize: vertical;
+}
+
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+legend {
+ float: left;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 0.5rem;
+ font-size: calc(1.275rem + 0.3vw);
+ line-height: inherit;
+}
+@media (min-width: 1200px) {
+ legend {
+ font-size: 1.5rem;
+ }
+}
+legend + * {
+ clear: left;
+}
+
+::-webkit-datetime-edit-fields-wrapper,
+::-webkit-datetime-edit-text,
+::-webkit-datetime-edit-minute,
+::-webkit-datetime-edit-hour-field,
+::-webkit-datetime-edit-day-field,
+::-webkit-datetime-edit-month-field,
+::-webkit-datetime-edit-year-field {
+ padding: 0;
+}
+
+::-webkit-inner-spin-button {
+ height: auto;
+}
+
+[type=search] {
+ outline-offset: -2px;
+ -webkit-appearance: textfield;
+}
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+::-webkit-color-swatch-wrapper {
+ padding: 0;
+}
+
+::-webkit-file-upload-button {
+ font: inherit;
+}
+
+::file-selector-button {
+ font: inherit;
+}
+
+::-webkit-file-upload-button {
+ font: inherit;
+ -webkit-appearance: button;
+}
+
+output {
+ display: inline-block;
+}
+
+iframe {
+ border: 0;
+}
+
+summary {
+ display: list-item;
+ cursor: pointer;
+}
+
+progress {
+ vertical-align: baseline;
+}
+
+[hidden] {
+ display: none !important;
+}
+
+.lead {
+ font-size: 1.25rem;
+ font-weight: 300;
+}
+
+.display-1 {
+ font-size: calc(1.625rem + 4.5vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-1 {
+ font-size: 5rem;
+ }
+}
+
+.display-2 {
+ font-size: calc(1.575rem + 3.9vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-2 {
+ font-size: 4.5rem;
+ }
+}
+
+.display-3 {
+ font-size: calc(1.525rem + 3.3vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-3 {
+ font-size: 4rem;
+ }
+}
+
+.display-4 {
+ font-size: calc(1.475rem + 2.7vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-4 {
+ font-size: 3.5rem;
+ }
+}
+
+.display-5 {
+ font-size: calc(1.425rem + 2.1vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-5 {
+ font-size: 3rem;
+ }
+}
+
+.display-6 {
+ font-size: calc(1.375rem + 1.5vw);
+ font-weight: 300;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-6 {
+ font-size: 2.5rem;
+ }
+}
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline-item {
+ display: inline-block;
+}
+.list-inline-item:not(:last-child) {
+ margin-right: 0.5rem;
+}
+
+.initialism {
+ font-size: 0.875em;
+ text-transform: uppercase;
+}
+
+.blockquote {
+ margin-bottom: 1rem;
+ font-size: 1.25rem;
+}
+.blockquote > :last-child {
+ margin-bottom: 0;
+}
+
+.blockquote-footer {
+ margin-top: -1rem;
+ margin-bottom: 1rem;
+ font-size: 0.875em;
+ color: #6c757d;
+}
+.blockquote-footer::before {
+ content: "— ";
+}
+
+.img-fluid {
+ max-width: 100%;
+ height: auto;
+}
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+ max-width: 100%;
+ height: auto;
+}
+
+.figure {
+ display: inline-block;
+}
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1;
+}
+
+.figure-caption {
+ font-size: 0.875em;
+ color: #6c757d;
+}
+
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ width: 100%;
+ padding-right: var(--bs-gutter-x, 0.75rem);
+ padding-left: var(--bs-gutter-x, 0.75rem);
+ margin-right: auto;
+ margin-left: auto;
+}
+
+@media (min-width: 576px) {
+ .container-sm, .container {
+ max-width: 540px;
+ }
+}
+@media (min-width: 768px) {
+ .container-md, .container-sm, .container {
+ max-width: 720px;
+ }
+}
+@media (min-width: 992px) {
+ .container-lg, .container-md, .container-sm, .container {
+ max-width: 960px;
+ }
+}
+@media (min-width: 1200px) {
+ .container-xl, .container-lg, .container-md, .container-sm, .container {
+ max-width: 1140px;
+ }
+}
+@media (min-width: 1400px) {
+ .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {
+ max-width: 1320px;
+ }
+}
+.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(-1 * var(--bs-gutter-y));
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
+ margin-left: calc(-0.5 * var(--bs-gutter-x));
+}
+.row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
+ margin-top: var(--bs-gutter-y);
+}
+
+.col {
+ flex: 1 0 0%;
+}
+
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+}
+
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+}
+
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+}
+
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+}
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+
+.offset-3 {
+ margin-left: 25%;
+}
+
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+
+.offset-6 {
+ margin-left: 50%;
+}
+
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+
+.offset-9 {
+ margin-left: 75%;
+}
+
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0;
+}
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0;
+}
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 1rem;
+}
+
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 1rem;
+}
+
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1.5rem;
+}
+
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1.5rem;
+}
+
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 3rem;
+}
+
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 3rem;
+}
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-sm-0,
+.gx-sm-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-sm-0,
+.gy-sm-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-sm-1,
+.gx-sm-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-sm-1,
+.gy-sm-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-sm-2,
+.gx-sm-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-sm-2,
+.gy-sm-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-sm-3,
+.gx-sm-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-sm-3,
+.gy-sm-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-sm-4,
+.gx-sm-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-sm-4,
+.gy-sm-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-sm-5,
+.gx-sm-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-sm-5,
+.gy-sm-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 768px) {
+ .col-md {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-md-0 {
+ margin-left: 0;
+ }
+
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-md-0,
+.gx-md-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-md-0,
+.gy-md-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-md-1,
+.gx-md-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-md-1,
+.gy-md-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-md-2,
+.gx-md-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-md-2,
+.gy-md-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-md-3,
+.gx-md-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-md-3,
+.gy-md-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-md-4,
+.gx-md-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-md-4,
+.gy-md-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-md-5,
+.gx-md-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-md-5,
+.gy-md-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 992px) {
+ .col-lg {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-lg-0,
+.gx-lg-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-lg-0,
+.gy-lg-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-lg-1,
+.gx-lg-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-lg-1,
+.gy-lg-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-lg-2,
+.gx-lg-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-lg-2,
+.gy-lg-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-lg-3,
+.gx-lg-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-lg-3,
+.gy-lg-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-lg-4,
+.gx-lg-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-lg-4,
+.gy-lg-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-lg-5,
+.gx-lg-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-lg-5,
+.gy-lg-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1200px) {
+ .col-xl {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-xl-0,
+.gx-xl-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-xl-0,
+.gy-xl-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-xl-1,
+.gx-xl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-xl-1,
+.gy-xl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-xl-2,
+.gx-xl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-xl-2,
+.gy-xl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-xl-3,
+.gx-xl-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-xl-3,
+.gy-xl-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-xl-4,
+.gx-xl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-xl-4,
+.gy-xl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-xl-5,
+.gx-xl-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-xl-5,
+.gy-xl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%;
+ }
+
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+
+ .g-xxl-0,
+.gx-xxl-0 {
+ --bs-gutter-x: 0;
+ }
+
+ .g-xxl-0,
+.gy-xxl-0 {
+ --bs-gutter-y: 0;
+ }
+
+ .g-xxl-1,
+.gx-xxl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+
+ .g-xxl-1,
+.gy-xxl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+
+ .g-xxl-2,
+.gx-xxl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+
+ .g-xxl-2,
+.gy-xxl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+
+ .g-xxl-3,
+.gx-xxl-3 {
+ --bs-gutter-x: 1rem;
+ }
+
+ .g-xxl-3,
+.gy-xxl-3 {
+ --bs-gutter-y: 1rem;
+ }
+
+ .g-xxl-4,
+.gx-xxl-4 {
+ --bs-gutter-x: 1.5rem;
+ }
+
+ .g-xxl-4,
+.gy-xxl-4 {
+ --bs-gutter-y: 1.5rem;
+ }
+
+ .g-xxl-5,
+.gx-xxl-5 {
+ --bs-gutter-x: 3rem;
+ }
+
+ .g-xxl-5,
+.gy-xxl-5 {
+ --bs-gutter-y: 3rem;
+ }
+}
+.table {
+ --bs-table-bg: transparent;
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: #212529;
+ --bs-table-striped-bg: rgba(0, 0, 0, 0.05);
+ --bs-table-active-color: #212529;
+ --bs-table-active-bg: rgba(0, 0, 0, 0.1);
+ --bs-table-hover-color: #212529;
+ --bs-table-hover-bg: rgba(0, 0, 0, 0.075);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: #212529;
+ vertical-align: top;
+ border-color: #dee2e6;
+}
+.table > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+.table > :not(:first-child) {
+ border-top: 2px solid currentColor;
+}
+
+.caption-top {
+ caption-side: top;
+}
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.25rem 0.25rem;
+}
+
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 1px;
+}
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color);
+}
+
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color);
+}
+
+.table-primary {
+ --bs-table-bg: #cce7ec;
+ --bs-table-striped-bg: #c2dbe0;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #b8d0d4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bdd6da;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #b8d0d4;
+}
+
+.table-secondary {
+ --bs-table-bg: #e2e3e5;
+ --bs-table-striped-bg: #d7d8da;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #cbccce;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #d1d2d4;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #cbccce;
+}
+
+.table-success {
+ --bs-table-bg: #d1e7dd;
+ --bs-table-striped-bg: #c7dbd2;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #bcd0c7;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #c1d6cc;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #bcd0c7;
+}
+
+.table-info {
+ --bs-table-bg: #cff4fc;
+ --bs-table-striped-bg: #c5e8ef;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #badce3;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #bfe2e9;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #badce3;
+}
+
+.table-warning {
+ --bs-table-bg: #fff3cd;
+ --bs-table-striped-bg: #f2e7c3;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #e6dbb9;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #ece1be;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #e6dbb9;
+}
+
+.table-danger {
+ --bs-table-bg: #f8d7da;
+ --bs-table-striped-bg: #eccccf;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfc2c4;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5c7ca;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfc2c4;
+}
+
+.table-light {
+ --bs-table-bg: #f8f9fa;
+ --bs-table-striped-bg: #ecedee;
+ --bs-table-striped-color: #000;
+ --bs-table-active-bg: #dfe0e1;
+ --bs-table-active-color: #000;
+ --bs-table-hover-bg: #e5e6e7;
+ --bs-table-hover-color: #000;
+ color: #000;
+ border-color: #dfe0e1;
+}
+
+.table-dark {
+ --bs-table-bg: #212529;
+ --bs-table-striped-bg: #2c3034;
+ --bs-table-striped-color: #fff;
+ --bs-table-active-bg: #373b3e;
+ --bs-table-active-color: #fff;
+ --bs-table-hover-bg: #323539;
+ --bs-table-hover-color: #fff;
+ color: #fff;
+ border-color: #373b3e;
+}
+
+.table-responsive {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+@media (max-width: 575.98px) {
+ .table-responsive-sm {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 767.98px) {
+ .table-responsive-md {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 991.98px) {
+ .table-responsive-lg {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1199.98px) {
+ .table-responsive-xl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+@media (max-width: 1399.98px) {
+ .table-responsive-xxl {
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+}
+.form-label {
+ margin-bottom: 0.5rem;
+}
+
+.col-form-label {
+ padding-top: calc(0.375rem + 1px);
+ padding-bottom: calc(0.375rem + 1px);
+ margin-bottom: 0;
+ font-size: inherit;
+ line-height: 1.5;
+}
+
+.col-form-label-lg {
+ padding-top: calc(0.5rem + 1px);
+ padding-bottom: calc(0.5rem + 1px);
+ font-size: 1.25rem;
+}
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem + 1px);
+ padding-bottom: calc(0.25rem + 1px);
+ font-size: 0.875rem;
+}
+
+.form-text {
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #6c757d;
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ced4da;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 0;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control {
+ transition: none;
+ }
+}
+.form-control[type=file] {
+ overflow: hidden;
+}
+.form-control[type=file]:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+.form-control:focus {
+ color: #212529;
+ background-color: #fff;
+ border-color: #80c2d0;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.form-control::-webkit-date-and-time-value {
+ height: 1.5em;
+}
+.form-control::-moz-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+.form-control::placeholder {
+ color: #6c757d;
+ opacity: 1;
+}
+.form-control:disabled, .form-control[readonly] {
+ background-color: #e9ecef;
+ opacity: 1;
+}
+.form-control::-webkit-file-upload-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ -webkit-margin-end: 0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ -webkit-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;
+ 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;
+}
+.form-control::file-selector-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ -webkit-margin-end: 0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ 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;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control::-webkit-file-upload-button {
+ -webkit-transition: none;
+ transition: none;
+ }
+ .form-control::file-selector-button {
+ transition: none;
+ }
+}
+.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #dde0e3;
+}
+.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: #dde0e3;
+}
+.form-control::-webkit-file-upload-button {
+ padding: 0.375rem 0.75rem;
+ margin: -0.375rem -0.75rem;
+ -webkit-margin-end: 0.75rem;
+ margin-inline-end: 0.75rem;
+ color: #212529;
+ background-color: #e9ecef;
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ -webkit-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;
+ 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;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control::-webkit-file-upload-button {
+ -webkit-transition: none;
+ transition: none;
+ }
+}
+.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
+ background-color: #dde0e3;
+}
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 0;
+ margin-bottom: 0;
+ line-height: 1.5;
+ color: #212529;
+ background-color: transparent;
+ border: solid transparent;
+ border-width: 1px 0;
+}
+.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + 2px);
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+}
+.form-control-sm::-webkit-file-upload-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ -webkit-margin-end: 0.5rem;
+ margin-inline-end: 0.5rem;
+}
+.form-control-sm::file-selector-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ -webkit-margin-end: 0.5rem;
+ margin-inline-end: 0.5rem;
+}
+.form-control-sm::-webkit-file-upload-button {
+ padding: 0.25rem 0.5rem;
+ margin: -0.25rem -0.5rem;
+ -webkit-margin-end: 0.5rem;
+ margin-inline-end: 0.5rem;
+}
+
+.form-control-lg {
+ min-height: calc(1.5em + 1rem + 2px);
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+}
+.form-control-lg::-webkit-file-upload-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem;
+}
+.form-control-lg::file-selector-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem;
+}
+.form-control-lg::-webkit-file-upload-button {
+ padding: 0.5rem 1rem;
+ margin: -0.5rem -1rem;
+ -webkit-margin-end: 1rem;
+ margin-inline-end: 1rem;
+}
+
+textarea.form-control {
+ min-height: calc(1.5em + 0.75rem + 2px);
+}
+textarea.form-control-sm {
+ min-height: calc(1.5em + 0.5rem + 2px);
+}
+textarea.form-control-lg {
+ min-height: calc(1.5em + 1rem + 2px);
+}
+
+.form-control-color {
+ width: 3rem;
+ height: auto;
+ padding: 0.375rem;
+}
+.form-control-color:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+.form-control-color::-moz-color-swatch {
+ height: 1.5em;
+}
+.form-control-color::-webkit-color-swatch {
+ height: 1.5em;
+}
+
+.form-select {
+ display: block;
+ width: 100%;
+ padding: 0.375rem 2.25rem 0.375rem 0.75rem;
+ -moz-padding-start: calc(0.75rem - 3px);
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ background-color: #fff;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right 0.75rem center;
+ background-size: 16px 12px;
+ border: 1px solid #ced4da;
+ border-radius: 0;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-select {
+ transition: none;
+ }
+}
+.form-select:focus {
+ border-color: #80c2d0;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.form-select[multiple], .form-select[size]:not([size="1"]) {
+ padding-right: 0.75rem;
+ background-image: none;
+}
+.form-select:disabled {
+ background-color: #e9ecef;
+}
+.form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 #212529;
+}
+
+.form-select-sm {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ padding-left: 0.5rem;
+ font-size: 0.875rem;
+}
+
+.form-select-lg {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 1rem;
+ font-size: 1.25rem;
+}
+
+.form-check {
+ display: block;
+ min-height: 1.5rem;
+ padding-left: 1.5em;
+ margin-bottom: 0.125rem;
+}
+.form-check .form-check-input {
+ float: left;
+ margin-left: -1.5em;
+}
+
+.form-check-input {
+ width: 1em;
+ height: 1em;
+ margin-top: 0.25em;
+ vertical-align: top;
+ background-color: #fff;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: 1px solid rgba(0, 0, 0, 0.25);
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ -webkit-print-color-adjust: exact;
+ color-adjust: exact;
+}
+.form-check-input[type=radio] {
+ border-radius: 50%;
+}
+.form-check-input:active {
+ filter: brightness(90%);
+}
+.form-check-input:focus {
+ border-color: #80c2d0;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.form-check-input:checked {
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.form-check-input:checked[type=checkbox] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
+}
+.form-check-input:checked[type=radio] {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
+}
+.form-check-input[type=checkbox]:indeterminate {
+ background-color: #005E70;
+ border-color: #005E70;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
+}
+.form-check-input:disabled {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.5;
+}
+.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ opacity: 0.5;
+}
+
+.form-switch {
+ padding-left: 2.5em;
+}
+.form-switch .form-check-input {
+ width: 2em;
+ margin-left: -2.5em;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
+ background-position: left center;
+ transition: background-position 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-switch .form-check-input {
+ transition: none;
+ }
+}
+.form-switch .form-check-input:focus {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2380c2d0'/%3e%3c/svg%3e");
+}
+.form-switch .form-check-input:checked {
+ background-position: right center;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
+}
+
+.form-check-inline {
+ display: inline-block;
+ margin-right: 1rem;
+}
+
+.btn-check {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+.btn-check[disabled] + .btn, .btn-check:disabled + .btn {
+ pointer-events: none;
+ filter: none;
+ opacity: 0.65;
+}
+
+.form-range {
+ width: 100%;
+ height: 1.5rem;
+ padding: 0;
+ background-color: transparent;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+.form-range:focus {
+ outline: 0;
+}
+.form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.form-range:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.form-range::-moz-focus-outer {
+ border: 0;
+}
+.form-range::-webkit-slider-thumb {
+ width: 1rem;
+ height: 1rem;
+ margin-top: -0.25rem;
+ background-color: #005E70;
+ border: 0;
+ -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ -webkit-appearance: none;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-range::-webkit-slider-thumb {
+ -webkit-transition: none;
+ transition: none;
+ }
+}
+.form-range::-webkit-slider-thumb:active {
+ background-color: #b3dae3;
+}
+.form-range::-webkit-slider-runnable-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+}
+.form-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #005E70;
+ border: 0;
+ -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ -moz-appearance: none;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-range::-moz-range-thumb {
+ -moz-transition: none;
+ transition: none;
+ }
+}
+.form-range::-moz-range-thumb:active {
+ background-color: #b3dae3;
+}
+.form-range::-moz-range-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+}
+.form-range:disabled {
+ pointer-events: none;
+}
+.form-range:disabled::-webkit-slider-thumb {
+ background-color: #adb5bd;
+}
+.form-range:disabled::-moz-range-thumb {
+ background-color: #adb5bd;
+}
+
+.form-floating {
+ position: relative;
+}
+.form-floating > .form-control,
+.form-floating > .form-select {
+ height: 4.5rem;
+ line-height: 1.25;
+}
+.form-floating > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ padding: 1.25rem 0;
+ pointer-events: none;
+ border: 1px solid transparent;
+ transform-origin: 0 0;
+ transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-floating > label {
+ transition: none;
+ }
+}
+.form-floating > .form-control {
+ padding: 1.25rem 0;
+}
+.form-floating > .form-control::-moz-placeholder {
+ color: transparent;
+}
+.form-floating > .form-control:-ms-input-placeholder {
+ color: transparent;
+}
+.form-floating > .form-control::placeholder {
+ color: transparent;
+}
+.form-floating > .form-control:not(:-moz-placeholder-shown) {
+ padding-top: 2.125rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:not(:-ms-input-placeholder) {
+ padding-top: 2.125rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {
+ padding-top: 2.125rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:-webkit-autofill {
+ padding-top: 2.125rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-select {
+ padding-top: 2.125rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label {
+ opacity: 0.65;
+ transform: scale(0.65) translateY(-0.5rem) translateX(0rem);
+}
+.form-floating > .form-control:not(:-ms-input-placeholder) ~ label {
+ opacity: 0.65;
+ transform: scale(0.65) translateY(-0.5rem) translateX(0rem);
+}
+.form-floating > .form-control:focus ~ label,
+.form-floating > .form-control:not(:placeholder-shown) ~ label,
+.form-floating > .form-select ~ label {
+ opacity: 0.65;
+ transform: scale(0.65) translateY(-0.5rem) translateX(0rem);
+}
+.form-floating > .form-control:-webkit-autofill ~ label {
+ opacity: 0.65;
+ transform: scale(0.65) translateY(-0.5rem) translateX(0rem);
+}
+
+.input-group {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: stretch;
+ width: 100%;
+}
+.input-group > .form-control,
+.input-group > .form-select {
+ position: relative;
+ flex: 1 1 auto;
+ width: 1%;
+ min-width: 0;
+}
+.input-group > .form-control:focus,
+.input-group > .form-select:focus {
+ z-index: 3;
+}
+.input-group .btn {
+ position: relative;
+ z-index: 2;
+}
+.input-group .btn:focus {
+ z-index: 3;
+}
+
+.input-group-text {
+ display: flex;
+ align-items: center;
+ padding: 0.375rem 0.75rem;
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #e9ecef;
+ border: 1px solid #ced4da;
+}
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: 3rem;
+}
+
+.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
+ margin-left: -1px;
+}
+
+.valid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #198754;
+}
+
+.valid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: 0.1rem;
+ font-size: 0.875rem;
+ color: #fff;
+ background-color: rgba(25, 135, 84, 0.9);
+}
+
+.was-validated :valid ~ .valid-feedback,
+.was-validated :valid ~ .valid-tooltip,
+.is-valid ~ .valid-feedback,
+.is-valid ~ .valid-tooltip {
+ display: block;
+}
+
+.was-validated .form-control:valid, .form-control.is-valid {
+ border-color: #198754;
+ padding-right: calc(1.5em + 0.75rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+ border-color: #198754;
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+
+.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+
+.was-validated .form-select:valid, .form-select.is-valid {
+ border-color: #198754;
+}
+.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
+ padding-right: 4.125rem;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
+ background-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+ border-color: #198754;
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: #198754;
+}
+.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: #198754;
+}
+.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25);
+}
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: #198754;
+}
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+ margin-left: 0.5em;
+}
+
+.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid,
+.was-validated .input-group .form-select:valid,
+.input-group .form-select.is-valid {
+ z-index: 1;
+}
+.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus,
+.was-validated .input-group .form-select:valid:focus,
+.input-group .form-select.is-valid:focus {
+ z-index: 3;
+}
+
+.invalid-feedback {
+ display: none;
+ width: 100%;
+ margin-top: 0.25rem;
+ font-size: 0.875em;
+ color: #dc3545;
+}
+
+.invalid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.25rem 0.5rem;
+ margin-top: 0.1rem;
+ font-size: 0.875rem;
+ color: #fff;
+ background-color: rgba(220, 53, 69, 0.9);
+}
+
+.was-validated :invalid ~ .invalid-feedback,
+.was-validated :invalid ~ .invalid-tooltip,
+.is-invalid ~ .invalid-feedback,
+.is-invalid ~ .invalid-tooltip {
+ display: block;
+}
+
+.was-validated .form-control:invalid, .form-control.is-invalid {
+ border-color: #dc3545;
+ padding-right: calc(1.5em + 0.75rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(0.375em + 0.1875rem) center;
+ background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+ padding-right: calc(1.5em + 0.75rem);
+ background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
+}
+
+.was-validated .form-select:invalid, .form-select.is-invalid {
+ border-color: #dc3545;
+}
+.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
+ padding-right: 4.125rem;
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
+ background-position: right 0.75rem center, center right 2.25rem;
+ background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
+}
+.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+ border-color: #dc3545;
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+ border-color: #dc3545;
+}
+.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: #dc3545;
+}
+.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
+}
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: #dc3545;
+}
+
+.form-check-inline .form-check-input ~ .invalid-feedback {
+ margin-left: 0.5em;
+}
+
+.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid,
+.was-validated .input-group .form-select:invalid,
+.input-group .form-select.is-invalid {
+ z-index: 2;
+}
+.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus,
+.was-validated .input-group .form-select:invalid:focus,
+.input-group .form-select.is-invalid:focus {
+ z-index: 3;
+}
+
+.btn {
+ display: inline-block;
+ font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-weight: 800;
+ line-height: 1.5;
+ color: #212529;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background-color: transparent;
+ border: 1px solid transparent;
+ padding: 1rem 1.75rem;
+ font-size: 0.875rem;
+ border-radius: 0;
+ 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;
+}
+@media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+.btn:hover {
+ color: #212529;
+}
+.btn-check:focus + .btn, .btn:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+.btn:disabled, .btn.disabled, fieldset:disabled .btn {
+ pointer-events: none;
+ opacity: 0.65;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: #007189;
+ border-color: #006a81;
+}
+.btn-check:focus + .btn-primary, .btn-primary:focus {
+ color: #fff;
+ background-color: #007189;
+ border-color: #006a81;
+ box-shadow: 0 0 0 0.25rem rgba(38, 151, 175, 0.5);
+}
+.btn-check:checked + .btn-primary, .btn-check:active + .btn-primary, .btn-primary:active, .btn-primary.active, .show > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #006a81;
+ border-color: #006479;
+}
+.btn-check:checked + .btn-primary:focus, .btn-check:active + .btn-primary:focus, .btn-primary:active:focus, .btn-primary.active:focus, .show > .btn-primary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(38, 151, 175, 0.5);
+}
+.btn-primary:disabled, .btn-primary.disabled {
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+
+.btn-secondary {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-secondary:hover {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+}
+.btn-check:focus + .btn-secondary, .btn-secondary:focus {
+ color: #fff;
+ background-color: #5c636a;
+ border-color: #565e64;
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-check:checked + .btn-secondary, .btn-check:active + .btn-secondary, .btn-secondary:active, .btn-secondary.active, .show > .btn-secondary.dropdown-toggle {
+ color: #fff;
+ background-color: #565e64;
+ border-color: #51585e;
+}
+.btn-check:checked + .btn-secondary:focus, .btn-check:active + .btn-secondary:focus, .btn-secondary:active:focus, .btn-secondary.active:focus, .show > .btn-secondary.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(130, 138, 145, 0.5);
+}
+.btn-secondary:disabled, .btn-secondary.disabled {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+}
+.btn-check:focus + .btn-success, .btn-success:focus {
+ color: #fff;
+ background-color: #157347;
+ border-color: #146c43;
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-check:checked + .btn-success, .btn-check:active + .btn-success, .btn-success:active, .btn-success.active, .show > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #146c43;
+ border-color: #13653f;
+}
+.btn-check:checked + .btn-success:focus, .btn-check:active + .btn-success:focus, .btn-success:active:focus, .btn-success.active:focus, .show > .btn-success.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(60, 153, 110, 0.5);
+}
+.btn-success:disabled, .btn-success.disabled {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+
+.btn-info {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-info:hover {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+}
+.btn-check:focus + .btn-info, .btn-info:focus {
+ color: #000;
+ background-color: #31d2f2;
+ border-color: #25cff2;
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-check:checked + .btn-info, .btn-check:active + .btn-info, .btn-info:active, .btn-info.active, .show > .btn-info.dropdown-toggle {
+ color: #000;
+ background-color: #3dd5f3;
+ border-color: #25cff2;
+}
+.btn-check:checked + .btn-info:focus, .btn-check:active + .btn-info:focus, .btn-info:active:focus, .btn-info.active:focus, .show > .btn-info.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(11, 172, 204, 0.5);
+}
+.btn-info:disabled, .btn-info.disabled {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+
+.btn-warning {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-warning:hover {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+}
+.btn-check:focus + .btn-warning, .btn-warning:focus {
+ color: #000;
+ background-color: #ffca2c;
+ border-color: #ffc720;
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-check:checked + .btn-warning, .btn-check:active + .btn-warning, .btn-warning:active, .btn-warning.active, .show > .btn-warning.dropdown-toggle {
+ color: #000;
+ background-color: #ffcd39;
+ border-color: #ffc720;
+}
+.btn-check:checked + .btn-warning:focus, .btn-check:active + .btn-warning:focus, .btn-warning:active:focus, .btn-warning.active:focus, .show > .btn-warning.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(217, 164, 6, 0.5);
+}
+.btn-warning:disabled, .btn-warning.disabled {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-danger:hover {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+}
+.btn-check:focus + .btn-danger, .btn-danger:focus {
+ color: #fff;
+ background-color: #bb2d3b;
+ border-color: #b02a37;
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-check:checked + .btn-danger, .btn-check:active + .btn-danger, .btn-danger:active, .btn-danger.active, .show > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #b02a37;
+ border-color: #a52834;
+}
+.btn-check:checked + .btn-danger:focus, .btn-check:active + .btn-danger:focus, .btn-danger:active:focus, .btn-danger.active:focus, .show > .btn-danger.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(225, 83, 97, 0.5);
+}
+.btn-danger:disabled, .btn-danger.disabled {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+
+.btn-light {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-light:hover {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:focus + .btn-light, .btn-light:focus {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-check:checked + .btn-light, .btn-check:active + .btn-light, .btn-light:active, .btn-light.active, .show > .btn-light.dropdown-toggle {
+ color: #000;
+ background-color: #f9fafb;
+ border-color: #f9fafb;
+}
+.btn-check:checked + .btn-light:focus, .btn-check:active + .btn-light:focus, .btn-light:active:focus, .btn-light.active:focus, .show > .btn-light.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(211, 212, 213, 0.5);
+}
+.btn-light:disabled, .btn-light.disabled {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+
+.btn-dark {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-dark:hover {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+}
+.btn-check:focus + .btn-dark, .btn-dark:focus {
+ color: #fff;
+ background-color: #1c1f23;
+ border-color: #1a1e21;
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-check:checked + .btn-dark, .btn-check:active + .btn-dark, .btn-dark:active, .btn-dark.active, .show > .btn-dark.dropdown-toggle {
+ color: #fff;
+ background-color: #1a1e21;
+ border-color: #191c1f;
+}
+.btn-check:checked + .btn-dark:focus, .btn-check:active + .btn-dark:focus, .btn-dark:active:focus, .btn-dark.active:focus, .show > .btn-dark.dropdown-toggle:focus {
+ box-shadow: 0 0 0 0.25rem rgba(66, 70, 73, 0.5);
+}
+.btn-dark:disabled, .btn-dark.disabled {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+
+.btn-outline-primary {
+ color: #005E70;
+ border-color: #005E70;
+}
+.btn-outline-primary:hover {
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.btn-check:focus + .btn-outline-primary, .btn-outline-primary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.5);
+}
+.btn-check:checked + .btn-outline-primary, .btn-check:active + .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary.active, .btn-outline-primary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.btn-check:checked + .btn-outline-primary:focus, .btn-check:active + .btn-outline-primary:focus, .btn-outline-primary:active:focus, .btn-outline-primary.active:focus, .btn-outline-primary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.5);
+}
+.btn-outline-primary:disabled, .btn-outline-primary.disabled {
+ color: #005E70;
+ background-color: transparent;
+}
+
+.btn-outline-secondary {
+ color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-outline-secondary:hover {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:focus + .btn-outline-secondary, .btn-outline-secondary:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-check:checked + .btn-outline-secondary, .btn-check:active + .btn-outline-secondary, .btn-outline-secondary:active, .btn-outline-secondary.active, .btn-outline-secondary.dropdown-toggle.show {
+ color: #fff;
+ background-color: #6c757d;
+ border-color: #6c757d;
+}
+.btn-check:checked + .btn-outline-secondary:focus, .btn-check:active + .btn-outline-secondary:focus, .btn-outline-secondary:active:focus, .btn-outline-secondary.active:focus, .btn-outline-secondary.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(108, 117, 125, 0.5);
+}
+.btn-outline-secondary:disabled, .btn-outline-secondary.disabled {
+ color: #6c757d;
+ background-color: transparent;
+}
+
+.btn-outline-success {
+ color: #198754;
+ border-color: #198754;
+}
+.btn-outline-success:hover {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:focus + .btn-outline-success, .btn-outline-success:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-check:checked + .btn-outline-success, .btn-check:active + .btn-outline-success, .btn-outline-success:active, .btn-outline-success.active, .btn-outline-success.dropdown-toggle.show {
+ color: #fff;
+ background-color: #198754;
+ border-color: #198754;
+}
+.btn-check:checked + .btn-outline-success:focus, .btn-check:active + .btn-outline-success:focus, .btn-outline-success:active:focus, .btn-outline-success.active:focus, .btn-outline-success.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.5);
+}
+.btn-outline-success:disabled, .btn-outline-success.disabled {
+ color: #198754;
+ background-color: transparent;
+}
+
+.btn-outline-info {
+ color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-outline-info:hover {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:focus + .btn-outline-info, .btn-outline-info:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-check:checked + .btn-outline-info, .btn-check:active + .btn-outline-info, .btn-outline-info:active, .btn-outline-info.active, .btn-outline-info.dropdown-toggle.show {
+ color: #000;
+ background-color: #0dcaf0;
+ border-color: #0dcaf0;
+}
+.btn-check:checked + .btn-outline-info:focus, .btn-check:active + .btn-outline-info:focus, .btn-outline-info:active:focus, .btn-outline-info.active:focus, .btn-outline-info.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(13, 202, 240, 0.5);
+}
+.btn-outline-info:disabled, .btn-outline-info.disabled {
+ color: #0dcaf0;
+ background-color: transparent;
+}
+
+.btn-outline-warning {
+ color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-outline-warning:hover {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:focus + .btn-outline-warning, .btn-outline-warning:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-check:checked + .btn-outline-warning, .btn-check:active + .btn-outline-warning, .btn-outline-warning:active, .btn-outline-warning.active, .btn-outline-warning.dropdown-toggle.show {
+ color: #000;
+ background-color: #ffc107;
+ border-color: #ffc107;
+}
+.btn-check:checked + .btn-outline-warning:focus, .btn-check:active + .btn-outline-warning:focus, .btn-outline-warning:active:focus, .btn-outline-warning.active:focus, .btn-outline-warning.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(255, 193, 7, 0.5);
+}
+.btn-outline-warning:disabled, .btn-outline-warning.disabled {
+ color: #ffc107;
+ background-color: transparent;
+}
+
+.btn-outline-danger {
+ color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-outline-danger:hover {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:focus + .btn-outline-danger, .btn-outline-danger:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-check:checked + .btn-outline-danger, .btn-check:active + .btn-outline-danger, .btn-outline-danger:active, .btn-outline-danger.active, .btn-outline-danger.dropdown-toggle.show {
+ color: #fff;
+ background-color: #dc3545;
+ border-color: #dc3545;
+}
+.btn-check:checked + .btn-outline-danger:focus, .btn-check:active + .btn-outline-danger:focus, .btn-outline-danger:active:focus, .btn-outline-danger.active:focus, .btn-outline-danger.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.5);
+}
+.btn-outline-danger:disabled, .btn-outline-danger.disabled {
+ color: #dc3545;
+ background-color: transparent;
+}
+
+.btn-outline-light {
+ color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-outline-light:hover {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:focus + .btn-outline-light, .btn-outline-light:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-check:checked + .btn-outline-light, .btn-check:active + .btn-outline-light, .btn-outline-light:active, .btn-outline-light.active, .btn-outline-light.dropdown-toggle.show {
+ color: #000;
+ background-color: #f8f9fa;
+ border-color: #f8f9fa;
+}
+.btn-check:checked + .btn-outline-light:focus, .btn-check:active + .btn-outline-light:focus, .btn-outline-light:active:focus, .btn-outline-light.active:focus, .btn-outline-light.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(248, 249, 250, 0.5);
+}
+.btn-outline-light:disabled, .btn-outline-light.disabled {
+ color: #f8f9fa;
+ background-color: transparent;
+}
+
+.btn-outline-dark {
+ color: #212529;
+ border-color: #212529;
+}
+.btn-outline-dark:hover {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:focus + .btn-outline-dark, .btn-outline-dark:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-check:checked + .btn-outline-dark, .btn-check:active + .btn-outline-dark, .btn-outline-dark:active, .btn-outline-dark.active, .btn-outline-dark.dropdown-toggle.show {
+ color: #fff;
+ background-color: #212529;
+ border-color: #212529;
+}
+.btn-check:checked + .btn-outline-dark:focus, .btn-check:active + .btn-outline-dark:focus, .btn-outline-dark:active:focus, .btn-outline-dark.active:focus, .btn-outline-dark.dropdown-toggle.show:focus {
+ box-shadow: 0 0 0 0.25rem rgba(33, 37, 41, 0.5);
+}
+.btn-outline-dark:disabled, .btn-outline-dark.disabled {
+ color: #212529;
+ background-color: transparent;
+}
+
+.btn-link {
+ font-weight: 400;
+ color: #212529;
+ text-decoration: none;
+}
+.btn-link:hover {
+ color: #005E70;
+}
+.btn-link:disabled, .btn-link.disabled {
+ color: #6c757d;
+}
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 0.5rem 1rem;
+ font-size: 1.25rem;
+ border-radius: 0;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0;
+}
+
+.fade {
+ transition: opacity 0.15s linear;
+}
+@media (prefers-reduced-motion: reduce) {
+ .fade {
+ transition: none;
+ }
+}
+.fade:not(.show) {
+ opacity: 0;
+}
+
+.collapse:not(.show) {
+ display: none;
+}
+
+.collapsing {
+ height: 0;
+ overflow: hidden;
+ transition: height 0.35s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .collapsing {
+ transition: none;
+ }
+}
+.collapsing.collapse-horizontal {
+ width: 0;
+ height: auto;
+ transition: width 0.35s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .collapsing.collapse-horizontal {
+ transition: none;
+ }
+}
+
+.dropup,
+.dropend,
+.dropdown,
+.dropstart {
+ position: relative;
+}
+
+.dropdown-toggle {
+ white-space: nowrap;
+}
+.dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropdown-menu {
+ position: absolute;
+ z-index: 1000;
+ display: none;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: 0.125rem;
+}
+
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+}
+
+.dropdown-menu-end {
+ --bs-position: end;
+}
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+}
+
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: 0.125rem;
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropend .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: 0.125rem;
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid;
+}
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-toggle::after {
+ vertical-align: 0;
+}
+
+.dropstart .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: 0.125rem;
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+}
+.dropstart .dropdown-toggle::after {
+ display: none;
+}
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent;
+}
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0;
+}
+
+.dropdown-divider {
+ height: 0;
+ margin: 0.5rem 0;
+ overflow: hidden;
+ border-top: 1px solid rgba(0, 0, 0, 0.15);
+}
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: 0.25rem 1rem;
+ clear: both;
+ font-weight: 400;
+ color: #212529;
+ text-align: inherit;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: #1e2125;
+ background-color: #e9ecef;
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: #fff;
+ text-decoration: none;
+ background-color: #005E70;
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: #adb5bd;
+ pointer-events: none;
+ background-color: transparent;
+}
+
+.dropdown-menu.show {
+ display: block;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 0.875rem;
+ color: #6c757d;
+ white-space: nowrap;
+}
+
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1rem;
+ color: #212529;
+}
+
+.dropdown-menu-dark {
+ color: #dee2e6;
+ background-color: #343a40;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-item:hover, .dropdown-menu-dark .dropdown-item:focus {
+ color: #fff;
+ background-color: rgba(255, 255, 255, 0.15);
+}
+.dropdown-menu-dark .dropdown-item.active, .dropdown-menu-dark .dropdown-item:active {
+ color: #fff;
+ background-color: #005E70;
+}
+.dropdown-menu-dark .dropdown-item.disabled, .dropdown-menu-dark .dropdown-item:disabled {
+ color: #adb5bd;
+}
+.dropdown-menu-dark .dropdown-divider {
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.dropdown-menu-dark .dropdown-item-text {
+ color: #dee2e6;
+}
+.dropdown-menu-dark .dropdown-header {
+ color: #adb5bd;
+}
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-flex;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ flex: 1 1 auto;
+}
+.btn-group > .btn-check:checked + .btn,
+.btn-group > .btn-check:focus + .btn,
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn-check:checked + .btn,
+.btn-group-vertical > .btn-check:focus + .btn,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 1;
+}
+
+.btn-toolbar {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+}
+.btn-toolbar .input-group {
+ width: auto;
+}
+
+.btn-group > .btn:not(:first-child),
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px;
+}
+.dropdown-toggle-split {
+ padding-right: 1.3125rem;
+ padding-left: 1.3125rem;
+}
+.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle-split::before {
+ margin-right: 0;
+}
+
+.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: 0.375rem;
+ padding-left: 0.375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 0.75rem;
+ padding-left: 0.75rem;
+}
+
+.btn-group-vertical {
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: center;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group {
+ width: 100%;
+}
+.btn-group-vertical > .btn:not(:first-child),
+.btn-group-vertical > .btn-group:not(:first-child) {
+ margin-top: -1px;
+}
+.nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: 0.5rem 1rem;
+ color: #212529;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .nav-link {
+ transition: none;
+ }
+}
+.nav-link:hover, .nav-link:focus {
+ color: #005E70;
+}
+.nav-link.disabled {
+ color: #6c757d;
+ pointer-events: none;
+ cursor: default;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #dee2e6;
+}
+.nav-tabs .nav-link {
+ margin-bottom: -1px;
+ background: none;
+ border: 1px solid transparent;
+}
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ border-color: #e9ecef #e9ecef #dee2e6;
+ isolation: isolate;
+}
+.nav-tabs .nav-link.disabled {
+ color: #6c757d;
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: #495057;
+ background-color: #fff;
+ border-color: #dee2e6 #dee2e6 #fff;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+}
+
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: #fff;
+ background-color: #005E70;
+}
+
+.nav-fill > .nav-link,
+.nav-fill .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+}
+
+.nav-justified > .nav-link,
+.nav-justified .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+}
+
+.nav-fill .nav-item .nav-link,
+.nav-justified .nav-item .nav-link {
+ width: 100%;
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+
+.navbar {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+.navbar > .container,
+.navbar > .container-fluid,
+.navbar > .container-sm,
+.navbar > .container-md,
+.navbar > .container-lg,
+.navbar > .container-xl,
+.navbar > .container-xxl {
+ display: flex;
+ flex-wrap: inherit;
+ align-items: center;
+ justify-content: space-between;
+}
+.navbar-brand {
+ padding-top: 0.3125rem;
+ padding-bottom: 0.3125rem;
+ margin-right: 1rem;
+ font-size: 1.25rem;
+ white-space: nowrap;
+}
+.navbar-nav {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.navbar-nav .nav-link {
+ padding-right: 0;
+ padding-left: 0;
+}
+.navbar-nav .dropdown-menu {
+ position: static;
+}
+
+.navbar-text {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+}
+
+.navbar-toggler {
+ padding: 0.25rem 0.75rem;
+ font-size: 1.25rem;
+ line-height: 1;
+ background-color: transparent;
+ border: 1px solid transparent;
+ transition: box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .navbar-toggler {
+ transition: none;
+ }
+}
+.navbar-toggler:hover {
+ text-decoration: none;
+}
+.navbar-toggler:focus {
+ text-decoration: none;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem;
+}
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.navbar-nav-scroll {
+ max-height: var(--bs-scroll-height, 75vh);
+ overflow-y: auto;
+}
+
+@media (min-width: 576px) {
+ .navbar-expand-sm {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-sm .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-sm .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-sm .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-sm .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-sm .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-sm .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-sm .offcanvas-top,
+.navbar-expand-sm .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-sm .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-expand-md {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-md .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-md .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-md .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-md .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-md .offcanvas-top,
+.navbar-expand-md .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-md .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 992px) {
+ .navbar-expand-lg {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-lg .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-lg .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-lg .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-lg .offcanvas-top,
+.navbar-expand-lg .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-lg .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1200px) {
+ .navbar-expand-xl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xl .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-xl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-xl .offcanvas-top,
+.navbar-expand-xl .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-xl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+@media (min-width: 1400px) {
+ .navbar-expand-xxl {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ }
+ .navbar-expand-xxl .navbar-nav {
+ flex-direction: row;
+ }
+ .navbar-expand-xxl .navbar-nav .dropdown-menu {
+ position: absolute;
+ }
+ .navbar-expand-xxl .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+ .navbar-expand-xxl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xxl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xxl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas-header {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+ }
+ .navbar-expand-xxl .offcanvas-top,
+.navbar-expand-xxl .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+ }
+ .navbar-expand-xxl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ }
+}
+.navbar-expand {
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+}
+.navbar-expand .navbar-nav {
+ flex-direction: row;
+}
+.navbar-expand .navbar-nav .dropdown-menu {
+ position: absolute;
+}
+.navbar-expand .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+}
+.navbar-expand .navbar-nav-scroll {
+ overflow: visible;
+}
+.navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+}
+.navbar-expand .navbar-toggler {
+ display: none;
+}
+.navbar-expand .offcanvas-header {
+ display: none;
+}
+.navbar-expand .offcanvas {
+ position: inherit;
+ bottom: 0;
+ z-index: 1000;
+ flex-grow: 1;
+ visibility: visible !important;
+ background-color: transparent;
+ border-right: 0;
+ border-left: 0;
+ transition: none;
+ transform: none;
+}
+.navbar-expand .offcanvas-top,
+.navbar-expand .offcanvas-bottom {
+ height: auto;
+ border-top: 0;
+ border-bottom: 0;
+}
+.navbar-expand .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+}
+
+.navbar-light .navbar-brand {
+ color: rgba(0, 0, 0, 0.9);
+}
+.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
+ color: rgba(0, 0, 0, 0.9);
+}
+.navbar-light .navbar-nav .nav-link {
+ color: rgba(0, 0, 0, 0.55);
+}
+.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
+ color: rgba(0, 0, 0, 0.7);
+}
+.navbar-light .navbar-nav .nav-link.disabled {
+ color: rgba(0, 0, 0, 0.3);
+}
+.navbar-light .navbar-nav .show > .nav-link,
+.navbar-light .navbar-nav .nav-link.active {
+ color: rgba(0, 0, 0, 0.9);
+}
+.navbar-light .navbar-toggler {
+ color: rgba(0, 0, 0, 0.55);
+ border-color: rgba(0, 0, 0, 0.1);
+}
+.navbar-light .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+.navbar-light .navbar-text {
+ color: rgba(0, 0, 0, 0.55);
+}
+.navbar-light .navbar-text a,
+.navbar-light .navbar-text a:hover,
+.navbar-light .navbar-text a:focus {
+ color: rgba(0, 0, 0, 0.9);
+}
+
+.navbar-dark .navbar-brand {
+ color: #fff;
+}
+.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
+ color: #fff;
+}
+.navbar-dark .navbar-nav .nav-link {
+ color: rgba(255, 255, 255, 0.55);
+}
+.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
+ color: rgba(255, 255, 255, 0.75);
+}
+.navbar-dark .navbar-nav .nav-link.disabled {
+ color: rgba(255, 255, 255, 0.25);
+}
+.navbar-dark .navbar-nav .show > .nav-link,
+.navbar-dark .navbar-nav .nav-link.active {
+ color: #fff;
+}
+.navbar-dark .navbar-toggler {
+ color: rgba(255, 255, 255, 0.55);
+ border-color: rgba(255, 255, 255, 0.1);
+}
+.navbar-dark .navbar-toggler-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+}
+.navbar-dark .navbar-text {
+ color: rgba(255, 255, 255, 0.55);
+}
+.navbar-dark .navbar-text a,
+.navbar-dark .navbar-text a:hover,
+.navbar-dark .navbar-text a:focus {
+ color: #fff;
+}
+
+.card {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: border-box;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card > hr {
+ margin-right: 0;
+ margin-left: 0;
+}
+.card > .list-group {
+ border-top: inherit;
+ border-bottom: inherit;
+}
+.card > .list-group:first-child {
+ border-top-width: 0;
+}
+.card > .list-group:last-child {
+ border-bottom-width: 0;
+}
+.card > .card-header + .list-group,
+.card > .list-group + .card-footer {
+ border-top: 0;
+}
+
+.card-body {
+ flex: 1 1 auto;
+ padding: 1rem 1rem;
+}
+
+.card-title {
+ margin-bottom: 0.5rem;
+}
+
+.card-subtitle {
+ margin-top: -0.25rem;
+ margin-bottom: 0;
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link + .card-link {
+ margin-left: 1rem;
+}
+
+.card-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-footer {
+ padding: 0.5rem 1rem;
+ background-color: rgba(0, 0, 0, 0.03);
+ border-top: 1px solid rgba(0, 0, 0, 0.125);
+}
+.card-header-tabs {
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+ margin-left: -0.5rem;
+ border-bottom: 0;
+}
+
+.card-header-pills {
+ margin-right: -0.5rem;
+ margin-left: -0.5rem;
+}
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: 1rem;
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+
+.card-group > .card {
+ margin-bottom: 0.75rem;
+}
+@media (min-width: 576px) {
+ .card-group {
+ display: flex;
+ flex-flow: row wrap;
+ }
+ .card-group > .card {
+ flex: 1 0 0%;
+ margin-bottom: 0;
+ }
+ .card-group > .card + .card {
+ margin-left: 0;
+ border-left: 0;
+ }
+}
+
+.accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: 1rem 1.25rem;
+ font-size: 1rem;
+ color: #212529;
+ text-align: left;
+ background-color: #fff;
+ border: 0;
+ overflow-anchor: none;
+ 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, border-radius 0.15s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button {
+ transition: none;
+ }
+}
+.accordion-button:not(.collapsed) {
+ color: #007891;
+ background-color: #e6f3f6;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);
+}
+.accordion-button:not(.collapsed)::after {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23007891'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ transform: rotate(-180deg);
+}
+.accordion-button::after {
+ flex-shrink: 0;
+ width: 1.25rem;
+ height: 1.25rem;
+ margin-left: auto;
+ content: "";
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-size: 1.25rem;
+ transition: transform 0.2s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button::after {
+ transition: none;
+ }
+}
+.accordion-button:hover {
+ z-index: 2;
+}
+.accordion-button:focus {
+ z-index: 3;
+ border-color: #80c2d0;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+
+.accordion-header {
+ margin-bottom: 0;
+}
+
+.accordion-item {
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.accordion-item:not(:first-of-type) {
+ border-top: 0;
+}
+.accordion-body {
+ padding: 1rem 1.25rem;
+}
+
+.accordion-flush .accordion-collapse {
+ border-width: 0;
+}
+.accordion-flush .accordion-item {
+ border-right: 0;
+ border-left: 0;
+}
+.accordion-flush .accordion-item:first-child {
+ border-top: 0;
+}
+.accordion-flush .accordion-item:last-child {
+ border-bottom: 0;
+}
+.breadcrumb {
+ display: flex;
+ flex-wrap: wrap;
+ padding: 0 0;
+ margin-bottom: 1rem;
+ list-style: none;
+}
+
+.breadcrumb-item + .breadcrumb-item {
+ padding-left: 0.5rem;
+}
+.breadcrumb-item + .breadcrumb-item::before {
+ float: left;
+ padding-right: 0.5rem;
+ color: #6c757d;
+ content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+}
+.breadcrumb-item.active {
+ color: #6c757d;
+}
+
+.pagination {
+ display: flex;
+ padding-left: 0;
+ list-style: none;
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ color: #212529;
+ background-color: #fff;
+ border: 1px solid #dee2e6;
+ 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;
+}
+@media (prefers-reduced-motion: reduce) {
+ .page-link {
+ transition: none;
+ }
+}
+.page-link:hover {
+ z-index: 2;
+ color: #005E70;
+ background-color: #e9ecef;
+ border-color: #dee2e6;
+}
+.page-link:focus {
+ z-index: 3;
+ color: #005E70;
+ background-color: #e9ecef;
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+}
+
+.page-item:not(:first-child) .page-link {
+ margin-left: -1px;
+}
+.page-item.active .page-link {
+ z-index: 3;
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.page-item.disabled .page-link {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+ border-color: #dee2e6;
+}
+
+.page-link {
+ padding: 0.375rem 0.75rem;
+}
+
+.pagination-lg .page-link {
+ padding: 0.75rem 1.5rem;
+ font-size: 1.25rem;
+}
+.pagination-sm .page-link {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+}
+.badge {
+ display: inline-block;
+ padding: 0.35em 0.65em;
+ font-size: 0.75em;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+}
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.alert {
+ position: relative;
+ padding: 1rem 1rem;
+ margin-bottom: 1rem;
+ border: 1px solid transparent;
+}
+
+.alert-heading {
+ color: inherit;
+}
+
+.alert-link {
+ font-weight: 700;
+}
+
+.alert-dismissible {
+ padding-right: 3rem;
+}
+.alert-dismissible .btn-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ padding: 1.25rem 1rem;
+}
+
+.alert-primary {
+ color: #005061;
+ background-color: #cce7ec;
+ border-color: #b3dae3;
+}
+.alert-primary .alert-link {
+ color: #00404e;
+}
+
+.alert-secondary {
+ color: #41464b;
+ background-color: #e2e3e5;
+ border-color: #d3d6d8;
+}
+.alert-secondary .alert-link {
+ color: #34383c;
+}
+
+.alert-success {
+ color: #0f5132;
+ background-color: #d1e7dd;
+ border-color: #badbcc;
+}
+.alert-success .alert-link {
+ color: #0c4128;
+}
+
+.alert-info {
+ color: #087990;
+ background-color: #cff4fc;
+ border-color: #b6effb;
+}
+.alert-info .alert-link {
+ color: #066173;
+}
+
+.alert-warning {
+ color: #997404;
+ background-color: #fff3cd;
+ border-color: #ffecb5;
+}
+.alert-warning .alert-link {
+ color: #7a5d03;
+}
+
+.alert-danger {
+ color: #842029;
+ background-color: #f8d7da;
+ border-color: #f5c2c7;
+}
+.alert-danger .alert-link {
+ color: #6a1a21;
+}
+
+.alert-light {
+ color: #636464;
+ background-color: #fefefe;
+ border-color: #fdfdfe;
+}
+.alert-light .alert-link {
+ color: #4f5050;
+}
+
+.alert-dark {
+ color: #141619;
+ background-color: #d3d3d4;
+ border-color: #bcbebf;
+}
+.alert-dark .alert-link {
+ color: #101214;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem;
+ }
+}
+
+@keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem;
+ }
+}
+.progress {
+ display: flex;
+ height: 1rem;
+ overflow: hidden;
+ font-size: 0.75rem;
+ background-color: #e9ecef;
+}
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ background-color: #005E70;
+ transition: width 0.6s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .progress-bar {
+ transition: none;
+ }
+}
+
+.progress-bar-striped {
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 1rem 1rem;
+}
+
+.progress-bar-animated {
+ -webkit-animation: 1s linear infinite progress-bar-stripes;
+ animation: 1s linear infinite progress-bar-stripes;
+}
+@media (prefers-reduced-motion: reduce) {
+ .progress-bar-animated {
+ -webkit-animation: none;
+ animation: none;
+ }
+}
+
+.list-group {
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+}
+
+.list-group-numbered {
+ list-style-type: none;
+ counter-reset: section;
+}
+.list-group-numbered > li::before {
+ content: counters(section, ".") ". ";
+ counter-increment: section;
+}
+
+.list-group-item-action {
+ width: 100%;
+ color: #495057;
+ text-align: inherit;
+}
+.list-group-item-action:hover, .list-group-item-action:focus {
+ z-index: 1;
+ color: #495057;
+ text-decoration: none;
+ background-color: #f8f9fa;
+}
+.list-group-item-action:active {
+ color: #212529;
+ background-color: #e9ecef;
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 0.5rem 1rem;
+ color: #212529;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, 0.125);
+}
+.list-group-item.disabled, .list-group-item:disabled {
+ color: #6c757d;
+ pointer-events: none;
+ background-color: #fff;
+}
+.list-group-item.active {
+ z-index: 2;
+ color: #fff;
+ background-color: #005E70;
+ border-color: #005E70;
+}
+.list-group-item + .list-group-item {
+ border-top-width: 0;
+}
+.list-group-item + .list-group-item.active {
+ margin-top: -1px;
+ border-top-width: 1px;
+}
+
+.list-group-horizontal {
+ flex-direction: row;
+}
+.list-group-horizontal > .list-group-item.active {
+ margin-top: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+}
+
+@media (min-width: 576px) {
+ .list-group-horizontal-sm {
+ flex-direction: row;
+ }
+ .list-group-horizontal-sm > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 768px) {
+ .list-group-horizontal-md {
+ flex-direction: row;
+ }
+ .list-group-horizontal-md > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 992px) {
+ .list-group-horizontal-lg {
+ flex-direction: row;
+ }
+ .list-group-horizontal-lg > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1200px) {
+ .list-group-horizontal-xl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+@media (min-width: 1400px) {
+ .list-group-horizontal-xxl {
+ flex-direction: row;
+ }
+ .list-group-horizontal-xxl > .list-group-item.active {
+ margin-top: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item {
+ border-top-width: 1px;
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: -1px;
+ border-left-width: 1px;
+ }
+}
+.list-group-flush > .list-group-item {
+ border-width: 0 0 1px;
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+
+.list-group-item-primary {
+ color: #005061;
+ background-color: #cce7ec;
+}
+.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+ color: #005061;
+ background-color: #b8d0d4;
+}
+.list-group-item-primary.list-group-item-action.active {
+ color: #fff;
+ background-color: #005061;
+ border-color: #005061;
+}
+
+.list-group-item-secondary {
+ color: #41464b;
+ background-color: #e2e3e5;
+}
+.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+ color: #41464b;
+ background-color: #cbccce;
+}
+.list-group-item-secondary.list-group-item-action.active {
+ color: #fff;
+ background-color: #41464b;
+ border-color: #41464b;
+}
+
+.list-group-item-success {
+ color: #0f5132;
+ background-color: #d1e7dd;
+}
+.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+ color: #0f5132;
+ background-color: #bcd0c7;
+}
+.list-group-item-success.list-group-item-action.active {
+ color: #fff;
+ background-color: #0f5132;
+ border-color: #0f5132;
+}
+
+.list-group-item-info {
+ color: #087990;
+ background-color: #cff4fc;
+}
+.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+ color: #087990;
+ background-color: #badce3;
+}
+.list-group-item-info.list-group-item-action.active {
+ color: #fff;
+ background-color: #087990;
+ border-color: #087990;
+}
+
+.list-group-item-warning {
+ color: #997404;
+ background-color: #fff3cd;
+}
+.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+ color: #997404;
+ background-color: #e6dbb9;
+}
+.list-group-item-warning.list-group-item-action.active {
+ color: #fff;
+ background-color: #997404;
+ border-color: #997404;
+}
+
+.list-group-item-danger {
+ color: #842029;
+ background-color: #f8d7da;
+}
+.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+ color: #842029;
+ background-color: #dfc2c4;
+}
+.list-group-item-danger.list-group-item-action.active {
+ color: #fff;
+ background-color: #842029;
+ border-color: #842029;
+}
+
+.list-group-item-light {
+ color: #636464;
+ background-color: #fefefe;
+}
+.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+ color: #636464;
+ background-color: #e5e5e5;
+}
+.list-group-item-light.list-group-item-action.active {
+ color: #fff;
+ background-color: #636464;
+ border-color: #636464;
+}
+
+.list-group-item-dark {
+ color: #141619;
+ background-color: #d3d3d4;
+}
+.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+ color: #141619;
+ background-color: #bebebf;
+}
+.list-group-item-dark.list-group-item-action.active {
+ color: #fff;
+ background-color: #141619;
+ border-color: #141619;
+}
+
+.btn-close {
+ box-sizing: content-box;
+ width: 1em;
+ height: 1em;
+ padding: 0.25em 0.25em;
+ color: #000;
+ background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
+ border: 0;
+ opacity: 0.5;
+}
+.btn-close:hover {
+ color: #000;
+ text-decoration: none;
+ opacity: 0.75;
+}
+.btn-close:focus {
+ outline: 0;
+ box-shadow: 0 0 0 0.25rem rgba(0, 133, 161, 0.25);
+ opacity: 1;
+}
+.btn-close:disabled, .btn-close.disabled {
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ opacity: 0.25;
+}
+
+.btn-close-white {
+ filter: invert(1) grayscale(100%) brightness(200%);
+}
+
+.toast {
+ width: 350px;
+ max-width: 100%;
+ font-size: 0.875rem;
+ pointer-events: auto;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+
+.toast-container {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: 0.75rem;
+}
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: 0.5rem 0.75rem;
+ color: #6c757d;
+ background-color: rgba(255, 255, 255, 0.85);
+ background-clip: padding-box;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+}
+.toast-header .btn-close {
+ margin-right: -0.375rem;
+ margin-left: 0.75rem;
+}
+
+.toast-body {
+ padding: 0.75rem;
+ word-wrap: break-word;
+}
+
+.modal {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1055;
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 0.5rem;
+ pointer-events: none;
+}
+.modal.fade .modal-dialog {
+ transition: transform 0.3s ease-out;
+ transform: translate(0, -50px);
+}
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+.modal.show .modal-dialog {
+ transform: none;
+}
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+
+.modal-dialog-scrollable {
+ height: calc(100% - 1rem);
+}
+.modal-dialog-scrollable .modal-content {
+ max-height: 100%;
+ overflow: hidden;
+}
+.modal-dialog-scrollable .modal-body {
+ overflow-y: auto;
+}
+
+.modal-dialog-centered {
+ display: flex;
+ align-items: center;
+ min-height: calc(100% - 1rem);
+}
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ pointer-events: auto;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ outline: 0;
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1050;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: 0.5;
+}
+
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+ border-bottom: 1px solid #dee2e6;
+}
+.modal-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin: -0.5rem -0.5rem -0.5rem auto;
+}
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: 1.5;
+}
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: 1rem;
+}
+
+.modal-footer {
+ display: flex;
+ flex-wrap: wrap;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 0.75rem;
+ border-top: 1px solid #dee2e6;
+}
+.modal-footer > * {
+ margin: 0.25rem;
+}
+
+@media (min-width: 576px) {
+ .modal-dialog {
+ max-width: 500px;
+ margin: 1.75rem auto;
+ }
+
+ .modal-dialog-scrollable {
+ height: calc(100% - 3.5rem);
+ }
+
+ .modal-dialog-centered {
+ min-height: calc(100% - 3.5rem);
+ }
+
+ .modal-sm {
+ max-width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg,
+.modal-xl {
+ max-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ max-width: 1140px;
+ }
+}
+.modal-fullscreen {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+}
+.modal-fullscreen .modal-content {
+ height: 100%;
+ border: 0;
+}
+.modal-fullscreen .modal-body {
+ overflow-y: auto;
+}
+@media (max-width: 575.98px) {
+ .modal-fullscreen-sm-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-sm-down .modal-content {
+ height: 100%;
+ border: 0;
+ }
+ .modal-fullscreen-sm-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 767.98px) {
+ .modal-fullscreen-md-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-md-down .modal-content {
+ height: 100%;
+ border: 0;
+ }
+ .modal-fullscreen-md-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 991.98px) {
+ .modal-fullscreen-lg-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-lg-down .modal-content {
+ height: 100%;
+ border: 0;
+ }
+ .modal-fullscreen-lg-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 1199.98px) {
+ .modal-fullscreen-xl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xl-down .modal-content {
+ height: 100%;
+ border: 0;
+ }
+ .modal-fullscreen-xl-down .modal-body {
+ overflow-y: auto;
+ }
+}
+@media (max-width: 1399.98px) {
+ .modal-fullscreen-xxl-down {
+ width: 100vw;
+ max-width: none;
+ height: 100%;
+ margin: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-content {
+ height: 100%;
+ border: 0;
+ }
+ .modal-fullscreen-xxl-down .modal-body {
+ overflow-y: auto;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1080;
+ display: block;
+ margin: 0;
+ font-family: "Lora", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ opacity: 0;
+}
+.tooltip.show {
+ opacity: 0.9;
+}
+.tooltip .tooltip-arrow {
+ position: absolute;
+ display: block;
+ width: 0.8rem;
+ height: 0.4rem;
+}
+.tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-tooltip-top, .bs-tooltip-auto[data-popper-placement^=top] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: 0;
+}
+.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top: -1px;
+ border-width: 0.4rem 0.4rem 0;
+ border-top-color: #000;
+}
+
+.bs-tooltip-end, .bs-tooltip-auto[data-popper-placement^=right] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ right: -1px;
+ border-width: 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: #000;
+}
+
+.bs-tooltip-bottom, .bs-tooltip-auto[data-popper-placement^=bottom] {
+ padding: 0.4rem 0;
+}
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: 0;
+}
+.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 0.4rem 0.4rem;
+ border-bottom-color: #000;
+}
+
+.bs-tooltip-start, .bs-tooltip-auto[data-popper-placement^=left] {
+ padding: 0 0.4rem;
+}
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right: 0;
+ width: 0.4rem;
+ height: 0.8rem;
+}
+.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ left: -1px;
+ border-width: 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: #000;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 0.25rem 0.5rem;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0 /* rtl:ignore */;
+ z-index: 1070;
+ display: block;
+ max-width: 276px;
+ font-family: "Lora", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+ font-size: 0.875rem;
+ word-wrap: break-word;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+}
+.popover .popover-arrow {
+ position: absolute;
+ display: block;
+ width: 1rem;
+ height: 0.5rem;
+}
+.popover .popover-arrow::before, .popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+ bottom: calc(-0.5rem - 1px);
+}
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ bottom: 0;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ bottom: 1px;
+ border-width: 0.5rem 0.5rem 0;
+ border-top-color: #fff;
+}
+
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+ left: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ left: 0;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ left: 1px;
+ border-width: 0.5rem 0.5rem 0.5rem 0;
+ border-right-color: #fff;
+}
+
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+ top: calc(-0.5rem - 1px);
+}
+.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ top: 0;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ top: 1px;
+ border-width: 0 0.5rem 0.5rem 0.5rem;
+ border-bottom-color: #fff;
+}
+.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: 1rem;
+ margin-left: -0.5rem;
+ content: "";
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+ right: calc(-0.5rem - 1px);
+ width: 0.5rem;
+ height: 1rem;
+}
+.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ right: 0;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ right: 1px;
+ border-width: 0.5rem 0 0.5rem 0.5rem;
+ border-left-color: #fff;
+}
+
+.popover-header {
+ padding: 0.5rem 1rem;
+ margin-bottom: 0;
+ font-size: 1rem;
+ background-color: #f0f0f0;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+}
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: 1rem 1rem;
+ color: #212529;
+}
+
+.carousel {
+ position: relative;
+}
+
+.carousel.pointer-event {
+ touch-action: pan-y;
+}
+
+.carousel-inner {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+.carousel-inner::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.carousel-item {
+ position: relative;
+ display: none;
+ float: left;
+ width: 100%;
+ margin-right: -100%;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ transition: transform 0.6s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none;
+ }
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block;
+}
+
+/* rtl:begin:ignore */
+.carousel-item-next:not(.carousel-item-start),
+.active.carousel-item-end {
+ transform: translateX(100%);
+}
+
+.carousel-item-prev:not(.carousel-item-end),
+.active.carousel-item-start {
+ transform: translateX(-100%);
+}
+
+/* rtl:end:ignore */
+.carousel-fade .carousel-item {
+ opacity: 0;
+ transition-property: opacity;
+ transform: none;
+}
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-start,
+.carousel-fade .carousel-item-prev.carousel-item-end {
+ z-index: 1;
+ opacity: 1;
+}
+.carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
+ z-index: 0;
+ opacity: 0;
+ transition: opacity 0s 0.6s;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-fade .active.carousel-item-start,
+.carousel-fade .active.carousel-item-end {
+ transition: none;
+ }
+}
+
+.carousel-control-prev,
+.carousel-control-next {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 15%;
+ padding: 0;
+ color: #fff;
+ text-align: center;
+ background: none;
+ border: 0;
+ opacity: 0.5;
+ transition: opacity 0.15s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-control-prev,
+.carousel-control-next {
+ transition: none;
+ }
+}
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ opacity: 0.9;
+}
+
+.carousel-control-prev {
+ left: 0;
+}
+
+.carousel-control-next {
+ right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-size: 100% 100%;
+}
+
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
+.carousel-control-prev-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
+}
+
+.carousel-control-next-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ display: flex;
+ justify-content: center;
+ padding: 0;
+ margin-right: 15%;
+ margin-bottom: 1rem;
+ margin-left: 15%;
+ list-style: none;
+}
+.carousel-indicators [data-bs-target] {
+ box-sizing: content-box;
+ flex: 0 1 auto;
+ width: 30px;
+ height: 3px;
+ padding: 0;
+ margin-right: 3px;
+ margin-left: 3px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ opacity: 0.5;
+ transition: opacity 0.6s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-indicators [data-bs-target] {
+ transition: none;
+ }
+}
+.carousel-indicators .active {
+ opacity: 1;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 1.25rem;
+ left: 15%;
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ color: #fff;
+ text-align: center;
+}
+
+.carousel-dark .carousel-control-prev-icon,
+.carousel-dark .carousel-control-next-icon {
+ filter: invert(1) grayscale(100);
+}
+.carousel-dark .carousel-indicators [data-bs-target] {
+ background-color: #000;
+}
+.carousel-dark .carousel-caption {
+ color: #000;
+}
+
+@-webkit-keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */;
+ }
+}
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */;
+ }
+}
+.spinner-border {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ vertical-align: -0.125em;
+ border: 0.25em solid currentColor;
+ border-right-color: transparent;
+ border-radius: 50%;
+ -webkit-animation: 0.75s linear infinite spinner-border;
+ animation: 0.75s linear infinite spinner-border;
+}
+
+.spinner-border-sm {
+ width: 1rem;
+ height: 1rem;
+ border-width: 0.2em;
+}
+
+@-webkit-keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ transform: none;
+ }
+}
+
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ transform: none;
+ }
+}
+.spinner-grow {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ vertical-align: -0.125em;
+ background-color: currentColor;
+ border-radius: 50%;
+ opacity: 0;
+ -webkit-animation: 0.75s linear infinite spinner-grow;
+ animation: 0.75s linear infinite spinner-grow;
+}
+
+.spinner-grow-sm {
+ width: 1rem;
+ height: 1rem;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+.spinner-grow {
+ -webkit-animation-duration: 1.5s;
+ animation-duration: 1.5s;
+ }
+}
+.offcanvas {
+ position: fixed;
+ bottom: 0;
+ z-index: 1045;
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ visibility: hidden;
+ background-color: #fff;
+ background-clip: padding-box;
+ outline: 0;
+ transition: transform 0.3s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .offcanvas {
+ transition: none;
+ }
+}
+
+.offcanvas-backdrop {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1040;
+ width: 100vw;
+ height: 100vh;
+ background-color: #000;
+}
+.offcanvas-backdrop.fade {
+ opacity: 0;
+}
+.offcanvas-backdrop.show {
+ opacity: 0.5;
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 1rem 1rem;
+}
+.offcanvas-header .btn-close {
+ padding: 0.5rem 0.5rem;
+ margin-top: -0.5rem;
+ margin-right: -0.5rem;
+ margin-bottom: -0.5rem;
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: 1.5;
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: 1rem 1rem;
+ overflow-y: auto;
+}
+
+.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: 400px;
+ border-right: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateX(-100%);
+}
+
+.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: 400px;
+ border-left: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateX(100%);
+}
+
+.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 30vh;
+ max-height: 100%;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateY(-100%);
+}
+
+.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: 30vh;
+ max-height: 100%;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ transform: translateY(100%);
+}
+
+.offcanvas.show {
+ transform: none;
+}
+
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentColor;
+ opacity: 0.5;
+}
+.placeholder.btn::before {
+ display: inline-block;
+ content: "";
+}
+
+.placeholder-xs {
+ min-height: 0.6em;
+}
+
+.placeholder-sm {
+ min-height: 0.8em;
+}
+
+.placeholder-lg {
+ min-height: 1.2em;
+}
+
+.placeholder-glow .placeholder {
+ -webkit-animation: placeholder-glow 2s ease-in-out infinite;
+ animation: placeholder-glow 2s ease-in-out infinite;
+}
+
+@-webkit-keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+.placeholder-wave {
+ -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
+ mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
+ -webkit-mask-size: 200% 100%;
+ mask-size: 200% 100%;
+ -webkit-animation: placeholder-wave 2s linear infinite;
+ animation: placeholder-wave 2s linear infinite;
+}
+
+@-webkit-keyframes placeholder-wave {
+ 100% {
+ -webkit-mask-position: -200% 0%;
+ mask-position: -200% 0%;
+ }
+}
+
+@keyframes placeholder-wave {
+ 100% {
+ -webkit-mask-position: -200% 0%;
+ mask-position: -200% 0%;
+ }
+}
+.clearfix::after {
+ display: block;
+ clear: both;
+ content: "";
+}
+
+.link-primary {
+ color: #005E70;
+}
+.link-primary:hover, .link-primary:focus {
+ color: #006a81;
+}
+
+.link-secondary {
+ color: #6c757d;
+}
+.link-secondary:hover, .link-secondary:focus {
+ color: #565e64;
+}
+
+.link-success {
+ color: #198754;
+}
+.link-success:hover, .link-success:focus {
+ color: #146c43;
+}
+
+.link-info {
+ color: #0dcaf0;
+}
+.link-info:hover, .link-info:focus {
+ color: #3dd5f3;
+}
+
+.link-warning {
+ color: #ffc107;
+}
+.link-warning:hover, .link-warning:focus {
+ color: #ffcd39;
+}
+
+.link-danger {
+ color: #dc3545;
+}
+.link-danger:hover, .link-danger:focus {
+ color: #b02a37;
+}
+
+.link-light {
+ color: #f8f9fa;
+}
+.link-light:hover, .link-light:focus {
+ color: #f9fafb;
+}
+
+.link-dark {
+ color: #212529;
+}
+.link-dark:hover, .link-dark:focus {
+ color: #1a1e21;
+}
+
+.ratio {
+ position: relative;
+ width: 100%;
+}
+.ratio::before {
+ display: block;
+ padding-top: var(--bs-aspect-ratio);
+ content: "";
+}
+.ratio > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.ratio-1x1 {
+ --bs-aspect-ratio: 100%;
+}
+
+.ratio-4x3 {
+ --bs-aspect-ratio: 75%;
+}
+
+.ratio-16x9 {
+ --bs-aspect-ratio: 56.25%;
+}
+
+.ratio-21x9 {
+ --bs-aspect-ratio: 42.8571428571%;
+}
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+.sticky-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+}
+
+@media (min-width: 576px) {
+ .sticky-sm-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 768px) {
+ .sticky-md-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 992px) {
+ .sticky-lg-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 1200px) {
+ .sticky-xl-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+@media (min-width: 1400px) {
+ .sticky-xxl-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+ }
+}
+.hstack {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ align-self: stretch;
+}
+
+.vstack {
+ display: flex;
+ flex: 1 1 auto;
+ flex-direction: column;
+ align-self: stretch;
+}
+
+.visually-hidden,
+.visually-hidden-focusable:not(:focus):not(:focus-within) {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ content: "";
+}
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: 1px;
+ min-height: 1em;
+ background-color: currentColor;
+ opacity: 0.25;
+}
+
+.align-baseline {
+ vertical-align: baseline !important;
+}
+
+.align-top {
+ vertical-align: top !important;
+}
+
+.align-middle {
+ vertical-align: middle !important;
+}
+
+.align-bottom {
+ vertical-align: bottom !important;
+}
+
+.align-text-bottom {
+ vertical-align: text-bottom !important;
+}
+
+.align-text-top {
+ vertical-align: text-top !important;
+}
+
+.float-start {
+ float: left !important;
+}
+
+.float-end {
+ float: right !important;
+}
+
+.float-none {
+ float: none !important;
+}
+
+.opacity-0 {
+ opacity: 0 !important;
+}
+
+.opacity-25 {
+ opacity: 0.25 !important;
+}
+
+.opacity-50 {
+ opacity: 0.5 !important;
+}
+
+.opacity-75 {
+ opacity: 0.75 !important;
+}
+
+.opacity-100 {
+ opacity: 1 !important;
+}
+
+.overflow-auto {
+ overflow: auto !important;
+}
+
+.overflow-hidden {
+ overflow: hidden !important;
+}
+
+.overflow-visible {
+ overflow: visible !important;
+}
+
+.overflow-scroll {
+ overflow: scroll !important;
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-block {
+ display: block !important;
+}
+
+.d-grid {
+ display: grid !important;
+}
+
+.d-table {
+ display: table !important;
+}
+
+.d-table-row {
+ display: table-row !important;
+}
+
+.d-table-cell {
+ display: table-cell !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+.shadow {
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+}
+
+.shadow-sm {
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+}
+
+.shadow-lg {
+ box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
+}
+
+.shadow-none {
+ box-shadow: none !important;
+}
+
+.position-static {
+ position: static !important;
+}
+
+.position-relative {
+ position: relative !important;
+}
+
+.position-absolute {
+ position: absolute !important;
+}
+
+.position-fixed {
+ position: fixed !important;
+}
+
+.position-sticky {
+ position: -webkit-sticky !important;
+ position: sticky !important;
+}
+
+.top-0 {
+ top: 0 !important;
+}
+
+.top-50 {
+ top: 50% !important;
+}
+
+.top-100 {
+ top: 100% !important;
+}
+
+.bottom-0 {
+ bottom: 0 !important;
+}
+
+.bottom-50 {
+ bottom: 50% !important;
+}
+
+.bottom-100 {
+ bottom: 100% !important;
+}
+
+.start-0 {
+ left: 0 !important;
+}
+
+.start-50 {
+ left: 50% !important;
+}
+
+.start-100 {
+ left: 100% !important;
+}
+
+.end-0 {
+ right: 0 !important;
+}
+
+.end-50 {
+ right: 50% !important;
+}
+
+.end-100 {
+ right: 100% !important;
+}
+
+.translate-middle {
+ transform: translate(-50%, -50%) !important;
+}
+
+.translate-middle-x {
+ transform: translateX(-50%) !important;
+}
+
+.translate-middle-y {
+ transform: translateY(-50%) !important;
+}
+
+.border {
+ border: 1px solid #dee2e6 !important;
+}
+
+.border-0 {
+ border: 0 !important;
+}
+
+.border-top {
+ border-top: 1px solid #dee2e6 !important;
+}
+
+.border-top-0 {
+ border-top: 0 !important;
+}
+
+.border-end {
+ border-right: 1px solid #dee2e6 !important;
+}
+
+.border-end-0 {
+ border-right: 0 !important;
+}
+
+.border-bottom {
+ border-bottom: 1px solid #dee2e6 !important;
+}
+
+.border-bottom-0 {
+ border-bottom: 0 !important;
+}
+
+.border-start {
+ border-left: 1px solid #dee2e6 !important;
+}
+
+.border-start-0 {
+ border-left: 0 !important;
+}
+
+.border-primary {
+ border-color: #005E70 !important;
+}
+
+.border-secondary {
+ border-color: #6c757d !important;
+}
+
+.border-success {
+ border-color: #198754 !important;
+}
+
+.border-info {
+ border-color: #0dcaf0 !important;
+}
+
+.border-warning {
+ border-color: #ffc107 !important;
+}
+
+.border-danger {
+ border-color: #dc3545 !important;
+}
+
+.border-light {
+ border-color: #f8f9fa !important;
+}
+
+.border-dark {
+ border-color: #212529 !important;
+}
+
+.border-white {
+ border-color: #fff !important;
+}
+
+.border-1 {
+ border-width: 1px !important;
+}
+
+.border-2 {
+ border-width: 2px !important;
+}
+
+.border-3 {
+ border-width: 3px !important;
+}
+
+.border-4 {
+ border-width: 4px !important;
+}
+
+.border-5 {
+ border-width: 5px !important;
+}
+
+.w-25 {
+ width: 25% !important;
+}
+
+.w-50 {
+ width: 50% !important;
+}
+
+.w-75 {
+ width: 75% !important;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.w-auto {
+ width: auto !important;
+}
+
+.mw-100 {
+ max-width: 100% !important;
+}
+
+.vw-100 {
+ width: 100vw !important;
+}
+
+.min-vw-100 {
+ min-width: 100vw !important;
+}
+
+.h-25 {
+ height: 25% !important;
+}
+
+.h-50 {
+ height: 50% !important;
+}
+
+.h-75 {
+ height: 75% !important;
+}
+
+.h-100 {
+ height: 100% !important;
+}
+
+.h-auto {
+ height: auto !important;
+}
+
+.mh-100 {
+ max-height: 100% !important;
+}
+
+.vh-100 {
+ height: 100vh !important;
+}
+
+.min-vh-100 {
+ min-height: 100vh !important;
+}
+
+.flex-fill {
+ flex: 1 1 auto !important;
+}
+
+.flex-row {
+ flex-direction: row !important;
+}
+
+.flex-column {
+ flex-direction: column !important;
+}
+
+.flex-row-reverse {
+ flex-direction: row-reverse !important;
+}
+
+.flex-column-reverse {
+ flex-direction: column-reverse !important;
+}
+
+.flex-grow-0 {
+ flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+ flex-shrink: 1 !important;
+}
+
+.flex-wrap {
+ flex-wrap: wrap !important;
+}
+
+.flex-nowrap {
+ flex-wrap: nowrap !important;
+}
+
+.flex-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+}
+
+.gap-0 {
+ gap: 0 !important;
+}
+
+.gap-1 {
+ gap: 0.25rem !important;
+}
+
+.gap-2 {
+ gap: 0.5rem !important;
+}
+
+.gap-3 {
+ gap: 1rem !important;
+}
+
+.gap-4 {
+ gap: 1.5rem !important;
+}
+
+.gap-5 {
+ gap: 3rem !important;
+}
+
+.justify-content-start {
+ justify-content: flex-start !important;
+}
+
+.justify-content-end {
+ justify-content: flex-end !important;
+}
+
+.justify-content-center {
+ justify-content: center !important;
+}
+
+.justify-content-between {
+ justify-content: space-between !important;
+}
+
+.justify-content-around {
+ justify-content: space-around !important;
+}
+
+.justify-content-evenly {
+ justify-content: space-evenly !important;
+}
+
+.align-items-start {
+ align-items: flex-start !important;
+}
+
+.align-items-end {
+ align-items: flex-end !important;
+}
+
+.align-items-center {
+ align-items: center !important;
+}
+
+.align-items-baseline {
+ align-items: baseline !important;
+}
+
+.align-items-stretch {
+ align-items: stretch !important;
+}
+
+.align-content-start {
+ align-content: flex-start !important;
+}
+
+.align-content-end {
+ align-content: flex-end !important;
+}
+
+.align-content-center {
+ align-content: center !important;
+}
+
+.align-content-between {
+ align-content: space-between !important;
+}
+
+.align-content-around {
+ align-content: space-around !important;
+}
+
+.align-content-stretch {
+ align-content: stretch !important;
+}
+
+.align-self-auto {
+ align-self: auto !important;
+}
+
+.align-self-start {
+ align-self: flex-start !important;
+}
+
+.align-self-end {
+ align-self: flex-end !important;
+}
+
+.align-self-center {
+ align-self: center !important;
+}
+
+.align-self-baseline {
+ align-self: baseline !important;
+}
+
+.align-self-stretch {
+ align-self: stretch !important;
+}
+
+.order-first {
+ order: -1 !important;
+}
+
+.order-0 {
+ order: 0 !important;
+}
+
+.order-1 {
+ order: 1 !important;
+}
+
+.order-2 {
+ order: 2 !important;
+}
+
+.order-3 {
+ order: 3 !important;
+}
+
+.order-4 {
+ order: 4 !important;
+}
+
+.order-5 {
+ order: 5 !important;
+}
+
+.order-last {
+ order: 6 !important;
+}
+
+.m-0 {
+ margin: 0 !important;
+}
+
+.m-1 {
+ margin: 0.25rem !important;
+}
+
+.m-2 {
+ margin: 0.5rem !important;
+}
+
+.m-3 {
+ margin: 1rem !important;
+}
+
+.m-4 {
+ margin: 1.5rem !important;
+}
+
+.m-5 {
+ margin: 3rem !important;
+}
+
+.m-auto {
+ margin: auto !important;
+}
+
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+}
+
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+}
+
+.mx-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+
+.mx-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+
+.mx-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+
+.my-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+}
+
+.my-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.my-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+
+.my-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+
+.my-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+
+.mt-0 {
+ margin-top: 0 !important;
+}
+
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+
+.mt-3 {
+ margin-top: 1rem !important;
+}
+
+.mt-4 {
+ margin-top: 1.5rem !important;
+}
+
+.mt-5 {
+ margin-top: 3rem !important;
+}
+
+.mt-auto {
+ margin-top: auto !important;
+}
+
+.me-0 {
+ margin-right: 0 !important;
+}
+
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+
+.me-3 {
+ margin-right: 1rem !important;
+}
+
+.me-4 {
+ margin-right: 1.5rem !important;
+}
+
+.me-5 {
+ margin-right: 3rem !important;
+}
+
+.me-auto {
+ margin-right: auto !important;
+}
+
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+
+.mb-3 {
+ margin-bottom: 1rem !important;
+}
+
+.mb-4 {
+ margin-bottom: 1.5rem !important;
+}
+
+.mb-5 {
+ margin-bottom: 3rem !important;
+}
+
+.mb-auto {
+ margin-bottom: auto !important;
+}
+
+.ms-0 {
+ margin-left: 0 !important;
+}
+
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+
+.ms-3 {
+ margin-left: 1rem !important;
+}
+
+.ms-4 {
+ margin-left: 1.5rem !important;
+}
+
+.ms-5 {
+ margin-left: 3rem !important;
+}
+
+.ms-auto {
+ margin-left: auto !important;
+}
+
+.p-0 {
+ padding: 0 !important;
+}
+
+.p-1 {
+ padding: 0.25rem !important;
+}
+
+.p-2 {
+ padding: 0.5rem !important;
+}
+
+.p-3 {
+ padding: 1rem !important;
+}
+
+.p-4 {
+ padding: 1.5rem !important;
+}
+
+.p-5 {
+ padding: 3rem !important;
+}
+
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+}
+
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+}
+
+.px-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+
+.px-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+
+.px-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+
+.py-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+
+.py-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+
+.py-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+
+.pt-0 {
+ padding-top: 0 !important;
+}
+
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+
+.pt-3 {
+ padding-top: 1rem !important;
+}
+
+.pt-4 {
+ padding-top: 1.5rem !important;
+}
+
+.pt-5 {
+ padding-top: 3rem !important;
+}
+
+.pe-0 {
+ padding-right: 0 !important;
+}
+
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+
+.pe-3 {
+ padding-right: 1rem !important;
+}
+
+.pe-4 {
+ padding-right: 1.5rem !important;
+}
+
+.pe-5 {
+ padding-right: 3rem !important;
+}
+
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+
+.pb-3 {
+ padding-bottom: 1rem !important;
+}
+
+.pb-4 {
+ padding-bottom: 1.5rem !important;
+}
+
+.pb-5 {
+ padding-bottom: 3rem !important;
+}
+
+.ps-0 {
+ padding-left: 0 !important;
+}
+
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+
+.ps-3 {
+ padding-left: 1rem !important;
+}
+
+.ps-4 {
+ padding-left: 1.5rem !important;
+}
+
+.ps-5 {
+ padding-left: 3rem !important;
+}
+
+.font-monospace {
+ font-family: var(--bs-font-monospace) !important;
+}
+
+.fs-1 {
+ font-size: calc(1.375rem + 1.5vw) !important;
+}
+
+.fs-2 {
+ font-size: calc(1.325rem + 0.9vw) !important;
+}
+
+.fs-3 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+}
+
+.fs-4 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+}
+
+.fs-5 {
+ font-size: 1.25rem !important;
+}
+
+.fs-6 {
+ font-size: 1rem !important;
+}
+
+.fst-italic {
+ font-style: italic !important;
+}
+
+.fst-normal {
+ font-style: normal !important;
+}
+
+.fw-light {
+ font-weight: 300 !important;
+}
+
+.fw-lighter {
+ font-weight: lighter !important;
+}
+
+.fw-normal {
+ font-weight: 400 !important;
+}
+
+.fw-bold {
+ font-weight: 700 !important;
+}
+
+.fw-bolder {
+ font-weight: bolder !important;
+}
+
+.lh-1 {
+ line-height: 1 !important;
+}
+
+.lh-sm {
+ line-height: 1.25 !important;
+}
+
+.lh-base {
+ line-height: 1.5 !important;
+}
+
+.lh-lg {
+ line-height: 2 !important;
+}
+
+.text-start {
+ text-align: left !important;
+}
+
+.text-end {
+ text-align: right !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+
+.text-decoration-none {
+ text-decoration: none !important;
+}
+
+.text-decoration-underline {
+ text-decoration: underline !important;
+}
+
+.text-decoration-line-through {
+ text-decoration: line-through !important;
+}
+
+.text-lowercase {
+ text-transform: lowercase !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
+
+.text-capitalize {
+ text-transform: capitalize !important;
+}
+
+.text-wrap {
+ white-space: normal !important;
+}
+
+.text-nowrap {
+ white-space: nowrap !important;
+}
+
+/* rtl:begin:remove */
+.text-break {
+ word-wrap: break-word !important;
+ word-break: break-word !important;
+}
+
+/* rtl:end:remove */
+.text-primary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-secondary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-success {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-info {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-warning {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-danger {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-light {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-dark {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-black {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-white {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-body {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-muted {
+ --bs-text-opacity: 1;
+ color: #6c757d !important;
+}
+
+.text-black-50 {
+ --bs-text-opacity: 1;
+ color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+ --bs-text-opacity: 1;
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
+.text-reset {
+ --bs-text-opacity: 1;
+ color: inherit !important;
+}
+
+.text-opacity-25 {
+ --bs-text-opacity: 0.25;
+}
+
+.text-opacity-50 {
+ --bs-text-opacity: 0.5;
+}
+
+.text-opacity-75 {
+ --bs-text-opacity: 0.75;
+}
+
+.text-opacity-100 {
+ --bs-text-opacity: 1;
+}
+
+.bg-primary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-success {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-info {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-warning {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-danger {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-light {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-dark {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-black {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-white {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-transparent {
+ --bs-bg-opacity: 1;
+ background-color: transparent !important;
+}
+
+.bg-opacity-10 {
+ --bs-bg-opacity: 0.1;
+}
+
+.bg-opacity-25 {
+ --bs-bg-opacity: 0.25;
+}
+
+.bg-opacity-50 {
+ --bs-bg-opacity: 0.5;
+}
+
+.bg-opacity-75 {
+ --bs-bg-opacity: 0.75;
+}
+
+.bg-opacity-100 {
+ --bs-bg-opacity: 1;
+}
+
+.bg-gradient {
+ background-image: var(--bs-gradient) !important;
+}
+
+.user-select-all {
+ -webkit-user-select: all !important;
+ -moz-user-select: all !important;
+ user-select: all !important;
+}
+
+.user-select-auto {
+ -webkit-user-select: auto !important;
+ -moz-user-select: auto !important;
+ -ms-user-select: auto !important;
+ user-select: auto !important;
+}
+
+.user-select-none {
+ -webkit-user-select: none !important;
+ -moz-user-select: none !important;
+ -ms-user-select: none !important;
+ user-select: none !important;
+}
+
+.pe-none {
+ pointer-events: none !important;
+}
+
+.pe-auto {
+ pointer-events: auto !important;
+}
+
+.rounded {
+ border-radius: 0.25rem !important;
+}
+
+.rounded-0 {
+ border-radius: 0 !important;
+}
+
+.rounded-1 {
+ border-radius: 0.2rem !important;
+}
+
+.rounded-2 {
+ border-radius: 0.25rem !important;
+}
+
+.rounded-3 {
+ border-radius: 0.3rem !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.rounded-pill {
+ border-radius: 50rem !important;
+}
+
+.rounded-top {
+ border-top-left-radius: 0.25rem !important;
+ border-top-right-radius: 0.25rem !important;
+}
+
+.rounded-end {
+ border-top-right-radius: 0.25rem !important;
+ border-bottom-right-radius: 0.25rem !important;
+}
+
+.rounded-bottom {
+ border-bottom-right-radius: 0.25rem !important;
+ border-bottom-left-radius: 0.25rem !important;
+}
+
+.rounded-start {
+ border-bottom-left-radius: 0.25rem !important;
+ border-top-left-radius: 0.25rem !important;
+}
+
+.visible {
+ visibility: visible !important;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+@media (min-width: 576px) {
+ .float-sm-start {
+ float: left !important;
+ }
+
+ .float-sm-end {
+ float: right !important;
+ }
+
+ .float-sm-none {
+ float: none !important;
+ }
+
+ .d-sm-inline {
+ display: inline !important;
+ }
+
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-sm-block {
+ display: block !important;
+ }
+
+ .d-sm-grid {
+ display: grid !important;
+ }
+
+ .d-sm-table {
+ display: table !important;
+ }
+
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-sm-flex {
+ display: flex !important;
+ }
+
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-sm-none {
+ display: none !important;
+ }
+
+ .flex-sm-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-sm-row {
+ flex-direction: row !important;
+ }
+
+ .flex-sm-column {
+ flex-direction: column !important;
+ }
+
+ .flex-sm-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-sm-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-sm-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-sm-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-sm-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-sm-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-sm-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-sm-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-sm-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .gap-sm-0 {
+ gap: 0 !important;
+ }
+
+ .gap-sm-1 {
+ gap: 0.25rem !important;
+ }
+
+ .gap-sm-2 {
+ gap: 0.5rem !important;
+ }
+
+ .gap-sm-3 {
+ gap: 1rem !important;
+ }
+
+ .gap-sm-4 {
+ gap: 1.5rem !important;
+ }
+
+ .gap-sm-5 {
+ gap: 3rem !important;
+ }
+
+ .justify-content-sm-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-sm-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-sm-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-sm-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-sm-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-sm-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-sm-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-sm-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-sm-center {
+ align-items: center !important;
+ }
+
+ .align-items-sm-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-sm-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-sm-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-sm-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-sm-center {
+ align-content: center !important;
+ }
+
+ .align-content-sm-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-sm-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-sm-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-sm-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-sm-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-sm-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-sm-center {
+ align-self: center !important;
+ }
+
+ .align-self-sm-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-sm-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-sm-first {
+ order: -1 !important;
+ }
+
+ .order-sm-0 {
+ order: 0 !important;
+ }
+
+ .order-sm-1 {
+ order: 1 !important;
+ }
+
+ .order-sm-2 {
+ order: 2 !important;
+ }
+
+ .order-sm-3 {
+ order: 3 !important;
+ }
+
+ .order-sm-4 {
+ order: 4 !important;
+ }
+
+ .order-sm-5 {
+ order: 5 !important;
+ }
+
+ .order-sm-last {
+ order: 6 !important;
+ }
+
+ .m-sm-0 {
+ margin: 0 !important;
+ }
+
+ .m-sm-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-sm-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-sm-3 {
+ margin: 1rem !important;
+ }
+
+ .m-sm-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-sm-5 {
+ margin: 3rem !important;
+ }
+
+ .m-sm-auto {
+ margin: auto !important;
+ }
+
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+
+ .mx-sm-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+
+ .mx-sm-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+
+ .mx-sm-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ .my-sm-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-sm-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-sm-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-sm-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-sm-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-sm-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-sm-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-sm-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-sm-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-sm-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-sm-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-sm-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-sm-auto {
+ margin-top: auto !important;
+ }
+
+ .me-sm-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-sm-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-sm-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-sm-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-sm-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-sm-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-sm-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-sm-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-sm-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-sm-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-sm-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-sm-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-sm-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-sm-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-sm-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-sm-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-sm-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-sm-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-sm-auto {
+ margin-left: auto !important;
+ }
+
+ .p-sm-0 {
+ padding: 0 !important;
+ }
+
+ .p-sm-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-sm-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-sm-3 {
+ padding: 1rem !important;
+ }
+
+ .p-sm-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-sm-5 {
+ padding: 3rem !important;
+ }
+
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+
+ .px-sm-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+
+ .px-sm-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+
+ .px-sm-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+
+ .py-sm-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-sm-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-sm-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-sm-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-sm-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-sm-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-sm-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-sm-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-sm-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-sm-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-sm-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-sm-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-sm-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-sm-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-sm-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-sm-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-sm-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-sm-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-sm-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-sm-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-sm-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-sm-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-sm-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-sm-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-sm-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-sm-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-sm-5 {
+ padding-left: 3rem !important;
+ }
+
+ .text-sm-start {
+ text-align: left !important;
+ }
+
+ .text-sm-end {
+ text-align: right !important;
+ }
+
+ .text-sm-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 768px) {
+ .float-md-start {
+ float: left !important;
+ }
+
+ .float-md-end {
+ float: right !important;
+ }
+
+ .float-md-none {
+ float: none !important;
+ }
+
+ .d-md-inline {
+ display: inline !important;
+ }
+
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-md-block {
+ display: block !important;
+ }
+
+ .d-md-grid {
+ display: grid !important;
+ }
+
+ .d-md-table {
+ display: table !important;
+ }
+
+ .d-md-table-row {
+ display: table-row !important;
+ }
+
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-md-flex {
+ display: flex !important;
+ }
+
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-md-none {
+ display: none !important;
+ }
+
+ .flex-md-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-md-row {
+ flex-direction: row !important;
+ }
+
+ .flex-md-column {
+ flex-direction: column !important;
+ }
+
+ .flex-md-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-md-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-md-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-md-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-md-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-md-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-md-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-md-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-md-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .gap-md-0 {
+ gap: 0 !important;
+ }
+
+ .gap-md-1 {
+ gap: 0.25rem !important;
+ }
+
+ .gap-md-2 {
+ gap: 0.5rem !important;
+ }
+
+ .gap-md-3 {
+ gap: 1rem !important;
+ }
+
+ .gap-md-4 {
+ gap: 1.5rem !important;
+ }
+
+ .gap-md-5 {
+ gap: 3rem !important;
+ }
+
+ .justify-content-md-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-md-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-md-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-md-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-md-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-md-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-md-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-md-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-md-center {
+ align-items: center !important;
+ }
+
+ .align-items-md-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-md-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-md-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-md-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-md-center {
+ align-content: center !important;
+ }
+
+ .align-content-md-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-md-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-md-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-md-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-md-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-md-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-md-center {
+ align-self: center !important;
+ }
+
+ .align-self-md-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-md-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-md-first {
+ order: -1 !important;
+ }
+
+ .order-md-0 {
+ order: 0 !important;
+ }
+
+ .order-md-1 {
+ order: 1 !important;
+ }
+
+ .order-md-2 {
+ order: 2 !important;
+ }
+
+ .order-md-3 {
+ order: 3 !important;
+ }
+
+ .order-md-4 {
+ order: 4 !important;
+ }
+
+ .order-md-5 {
+ order: 5 !important;
+ }
+
+ .order-md-last {
+ order: 6 !important;
+ }
+
+ .m-md-0 {
+ margin: 0 !important;
+ }
+
+ .m-md-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-md-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-md-3 {
+ margin: 1rem !important;
+ }
+
+ .m-md-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-md-5 {
+ margin: 3rem !important;
+ }
+
+ .m-md-auto {
+ margin: auto !important;
+ }
+
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+
+ .mx-md-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+
+ .mx-md-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+
+ .mx-md-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ .my-md-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-md-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-md-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-md-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-md-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-md-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-md-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-md-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-md-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-md-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-md-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-md-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-md-auto {
+ margin-top: auto !important;
+ }
+
+ .me-md-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-md-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-md-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-md-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-md-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-md-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-md-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-md-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-md-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-md-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-md-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-md-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-md-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-md-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-md-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-md-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-md-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-md-auto {
+ margin-left: auto !important;
+ }
+
+ .p-md-0 {
+ padding: 0 !important;
+ }
+
+ .p-md-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-md-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-md-3 {
+ padding: 1rem !important;
+ }
+
+ .p-md-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-md-5 {
+ padding: 3rem !important;
+ }
+
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+
+ .px-md-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+
+ .px-md-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+
+ .px-md-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+
+ .py-md-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-md-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-md-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-md-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-md-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-md-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-md-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-md-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-md-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-md-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-md-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-md-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-md-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-md-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-md-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-md-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-md-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-md-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-md-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-md-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-md-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-md-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-md-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-md-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-md-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-md-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-md-5 {
+ padding-left: 3rem !important;
+ }
+
+ .text-md-start {
+ text-align: left !important;
+ }
+
+ .text-md-end {
+ text-align: right !important;
+ }
+
+ .text-md-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 992px) {
+ .float-lg-start {
+ float: left !important;
+ }
+
+ .float-lg-end {
+ float: right !important;
+ }
+
+ .float-lg-none {
+ float: none !important;
+ }
+
+ .d-lg-inline {
+ display: inline !important;
+ }
+
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-lg-block {
+ display: block !important;
+ }
+
+ .d-lg-grid {
+ display: grid !important;
+ }
+
+ .d-lg-table {
+ display: table !important;
+ }
+
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-lg-flex {
+ display: flex !important;
+ }
+
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-lg-none {
+ display: none !important;
+ }
+
+ .flex-lg-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-lg-row {
+ flex-direction: row !important;
+ }
+
+ .flex-lg-column {
+ flex-direction: column !important;
+ }
+
+ .flex-lg-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-lg-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-lg-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-lg-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-lg-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-lg-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-lg-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-lg-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-lg-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .gap-lg-0 {
+ gap: 0 !important;
+ }
+
+ .gap-lg-1 {
+ gap: 0.25rem !important;
+ }
+
+ .gap-lg-2 {
+ gap: 0.5rem !important;
+ }
+
+ .gap-lg-3 {
+ gap: 1rem !important;
+ }
+
+ .gap-lg-4 {
+ gap: 1.5rem !important;
+ }
+
+ .gap-lg-5 {
+ gap: 3rem !important;
+ }
+
+ .justify-content-lg-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-lg-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-lg-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-lg-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-lg-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-lg-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-lg-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-lg-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-lg-center {
+ align-items: center !important;
+ }
+
+ .align-items-lg-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-lg-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-lg-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-lg-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-lg-center {
+ align-content: center !important;
+ }
+
+ .align-content-lg-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-lg-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-lg-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-lg-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-lg-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-lg-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-lg-center {
+ align-self: center !important;
+ }
+
+ .align-self-lg-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-lg-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-lg-first {
+ order: -1 !important;
+ }
+
+ .order-lg-0 {
+ order: 0 !important;
+ }
+
+ .order-lg-1 {
+ order: 1 !important;
+ }
+
+ .order-lg-2 {
+ order: 2 !important;
+ }
+
+ .order-lg-3 {
+ order: 3 !important;
+ }
+
+ .order-lg-4 {
+ order: 4 !important;
+ }
+
+ .order-lg-5 {
+ order: 5 !important;
+ }
+
+ .order-lg-last {
+ order: 6 !important;
+ }
+
+ .m-lg-0 {
+ margin: 0 !important;
+ }
+
+ .m-lg-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-lg-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-lg-3 {
+ margin: 1rem !important;
+ }
+
+ .m-lg-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-lg-5 {
+ margin: 3rem !important;
+ }
+
+ .m-lg-auto {
+ margin: auto !important;
+ }
+
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+
+ .mx-lg-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+
+ .mx-lg-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+
+ .mx-lg-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ .my-lg-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-lg-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-lg-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-lg-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-lg-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-lg-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-lg-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-lg-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-lg-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-lg-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-lg-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-lg-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-lg-auto {
+ margin-top: auto !important;
+ }
+
+ .me-lg-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-lg-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-lg-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-lg-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-lg-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-lg-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-lg-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-lg-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-lg-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-lg-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-lg-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-lg-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-lg-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-lg-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-lg-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-lg-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-lg-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-lg-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-lg-auto {
+ margin-left: auto !important;
+ }
+
+ .p-lg-0 {
+ padding: 0 !important;
+ }
+
+ .p-lg-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-lg-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-lg-3 {
+ padding: 1rem !important;
+ }
+
+ .p-lg-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-lg-5 {
+ padding: 3rem !important;
+ }
+
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+
+ .px-lg-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+
+ .px-lg-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+
+ .px-lg-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+
+ .py-lg-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-lg-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-lg-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-lg-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-lg-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-lg-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-lg-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-lg-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-lg-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-lg-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-lg-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-lg-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-lg-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-lg-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-lg-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-lg-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-lg-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-lg-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-lg-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-lg-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-lg-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-lg-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-lg-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-lg-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-lg-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-lg-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-lg-5 {
+ padding-left: 3rem !important;
+ }
+
+ .text-lg-start {
+ text-align: left !important;
+ }
+
+ .text-lg-end {
+ text-align: right !important;
+ }
+
+ .text-lg-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1200px) {
+ .float-xl-start {
+ float: left !important;
+ }
+
+ .float-xl-end {
+ float: right !important;
+ }
+
+ .float-xl-none {
+ float: none !important;
+ }
+
+ .d-xl-inline {
+ display: inline !important;
+ }
+
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xl-block {
+ display: block !important;
+ }
+
+ .d-xl-grid {
+ display: grid !important;
+ }
+
+ .d-xl-table {
+ display: table !important;
+ }
+
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-xl-flex {
+ display: flex !important;
+ }
+
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xl-none {
+ display: none !important;
+ }
+
+ .flex-xl-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-xl-row {
+ flex-direction: row !important;
+ }
+
+ .flex-xl-column {
+ flex-direction: column !important;
+ }
+
+ .flex-xl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-xl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-xl-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-xl-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-xl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-xl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-xl-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-xl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-xl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .gap-xl-0 {
+ gap: 0 !important;
+ }
+
+ .gap-xl-1 {
+ gap: 0.25rem !important;
+ }
+
+ .gap-xl-2 {
+ gap: 0.5rem !important;
+ }
+
+ .gap-xl-3 {
+ gap: 1rem !important;
+ }
+
+ .gap-xl-4 {
+ gap: 1.5rem !important;
+ }
+
+ .gap-xl-5 {
+ gap: 3rem !important;
+ }
+
+ .justify-content-xl-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-xl-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-xl-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-xl-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-xl-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-xl-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-xl-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-xl-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-xl-center {
+ align-items: center !important;
+ }
+
+ .align-items-xl-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-xl-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-xl-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-xl-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-xl-center {
+ align-content: center !important;
+ }
+
+ .align-content-xl-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-xl-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-xl-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-xl-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-xl-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-xl-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-xl-center {
+ align-self: center !important;
+ }
+
+ .align-self-xl-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-xl-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-xl-first {
+ order: -1 !important;
+ }
+
+ .order-xl-0 {
+ order: 0 !important;
+ }
+
+ .order-xl-1 {
+ order: 1 !important;
+ }
+
+ .order-xl-2 {
+ order: 2 !important;
+ }
+
+ .order-xl-3 {
+ order: 3 !important;
+ }
+
+ .order-xl-4 {
+ order: 4 !important;
+ }
+
+ .order-xl-5 {
+ order: 5 !important;
+ }
+
+ .order-xl-last {
+ order: 6 !important;
+ }
+
+ .m-xl-0 {
+ margin: 0 !important;
+ }
+
+ .m-xl-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-xl-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-xl-3 {
+ margin: 1rem !important;
+ }
+
+ .m-xl-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-xl-5 {
+ margin: 3rem !important;
+ }
+
+ .m-xl-auto {
+ margin: auto !important;
+ }
+
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+
+ .mx-xl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+
+ .mx-xl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+
+ .mx-xl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ .my-xl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-xl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-xl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-xl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-xl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-xl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-xl-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-xl-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-xl-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-xl-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-xl-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-xl-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-xl-auto {
+ margin-top: auto !important;
+ }
+
+ .me-xl-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-xl-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-xl-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-xl-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-xl-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-xl-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-xl-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-xl-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-xl-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-xl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-xl-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-xl-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-xl-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-xl-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-xl-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-xl-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-xl-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-xl-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-xl-auto {
+ margin-left: auto !important;
+ }
+
+ .p-xl-0 {
+ padding: 0 !important;
+ }
+
+ .p-xl-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-xl-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-xl-3 {
+ padding: 1rem !important;
+ }
+
+ .p-xl-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-xl-5 {
+ padding: 3rem !important;
+ }
+
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+
+ .px-xl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+
+ .px-xl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+
+ .px-xl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+
+ .py-xl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-xl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-xl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-xl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-xl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-xl-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-xl-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-xl-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-xl-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-xl-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-xl-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-xl-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-xl-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-xl-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-xl-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-xl-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-xl-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-xl-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-xl-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-xl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-xl-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-xl-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-xl-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-xl-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-xl-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-xl-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-xl-5 {
+ padding-left: 3rem !important;
+ }
+
+ .text-xl-start {
+ text-align: left !important;
+ }
+
+ .text-xl-end {
+ text-align: right !important;
+ }
+
+ .text-xl-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1400px) {
+ .float-xxl-start {
+ float: left !important;
+ }
+
+ .float-xxl-end {
+ float: right !important;
+ }
+
+ .float-xxl-none {
+ float: none !important;
+ }
+
+ .d-xxl-inline {
+ display: inline !important;
+ }
+
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-xxl-block {
+ display: block !important;
+ }
+
+ .d-xxl-grid {
+ display: grid !important;
+ }
+
+ .d-xxl-table {
+ display: table !important;
+ }
+
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-xxl-flex {
+ display: flex !important;
+ }
+
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-xxl-none {
+ display: none !important;
+ }
+
+ .flex-xxl-fill {
+ flex: 1 1 auto !important;
+ }
+
+ .flex-xxl-row {
+ flex-direction: row !important;
+ }
+
+ .flex-xxl-column {
+ flex-direction: column !important;
+ }
+
+ .flex-xxl-row-reverse {
+ flex-direction: row-reverse !important;
+ }
+
+ .flex-xxl-column-reverse {
+ flex-direction: column-reverse !important;
+ }
+
+ .flex-xxl-grow-0 {
+ flex-grow: 0 !important;
+ }
+
+ .flex-xxl-grow-1 {
+ flex-grow: 1 !important;
+ }
+
+ .flex-xxl-shrink-0 {
+ flex-shrink: 0 !important;
+ }
+
+ .flex-xxl-shrink-1 {
+ flex-shrink: 1 !important;
+ }
+
+ .flex-xxl-wrap {
+ flex-wrap: wrap !important;
+ }
+
+ .flex-xxl-nowrap {
+ flex-wrap: nowrap !important;
+ }
+
+ .flex-xxl-wrap-reverse {
+ flex-wrap: wrap-reverse !important;
+ }
+
+ .gap-xxl-0 {
+ gap: 0 !important;
+ }
+
+ .gap-xxl-1 {
+ gap: 0.25rem !important;
+ }
+
+ .gap-xxl-2 {
+ gap: 0.5rem !important;
+ }
+
+ .gap-xxl-3 {
+ gap: 1rem !important;
+ }
+
+ .gap-xxl-4 {
+ gap: 1.5rem !important;
+ }
+
+ .gap-xxl-5 {
+ gap: 3rem !important;
+ }
+
+ .justify-content-xxl-start {
+ justify-content: flex-start !important;
+ }
+
+ .justify-content-xxl-end {
+ justify-content: flex-end !important;
+ }
+
+ .justify-content-xxl-center {
+ justify-content: center !important;
+ }
+
+ .justify-content-xxl-between {
+ justify-content: space-between !important;
+ }
+
+ .justify-content-xxl-around {
+ justify-content: space-around !important;
+ }
+
+ .justify-content-xxl-evenly {
+ justify-content: space-evenly !important;
+ }
+
+ .align-items-xxl-start {
+ align-items: flex-start !important;
+ }
+
+ .align-items-xxl-end {
+ align-items: flex-end !important;
+ }
+
+ .align-items-xxl-center {
+ align-items: center !important;
+ }
+
+ .align-items-xxl-baseline {
+ align-items: baseline !important;
+ }
+
+ .align-items-xxl-stretch {
+ align-items: stretch !important;
+ }
+
+ .align-content-xxl-start {
+ align-content: flex-start !important;
+ }
+
+ .align-content-xxl-end {
+ align-content: flex-end !important;
+ }
+
+ .align-content-xxl-center {
+ align-content: center !important;
+ }
+
+ .align-content-xxl-between {
+ align-content: space-between !important;
+ }
+
+ .align-content-xxl-around {
+ align-content: space-around !important;
+ }
+
+ .align-content-xxl-stretch {
+ align-content: stretch !important;
+ }
+
+ .align-self-xxl-auto {
+ align-self: auto !important;
+ }
+
+ .align-self-xxl-start {
+ align-self: flex-start !important;
+ }
+
+ .align-self-xxl-end {
+ align-self: flex-end !important;
+ }
+
+ .align-self-xxl-center {
+ align-self: center !important;
+ }
+
+ .align-self-xxl-baseline {
+ align-self: baseline !important;
+ }
+
+ .align-self-xxl-stretch {
+ align-self: stretch !important;
+ }
+
+ .order-xxl-first {
+ order: -1 !important;
+ }
+
+ .order-xxl-0 {
+ order: 0 !important;
+ }
+
+ .order-xxl-1 {
+ order: 1 !important;
+ }
+
+ .order-xxl-2 {
+ order: 2 !important;
+ }
+
+ .order-xxl-3 {
+ order: 3 !important;
+ }
+
+ .order-xxl-4 {
+ order: 4 !important;
+ }
+
+ .order-xxl-5 {
+ order: 5 !important;
+ }
+
+ .order-xxl-last {
+ order: 6 !important;
+ }
+
+ .m-xxl-0 {
+ margin: 0 !important;
+ }
+
+ .m-xxl-1 {
+ margin: 0.25rem !important;
+ }
+
+ .m-xxl-2 {
+ margin: 0.5rem !important;
+ }
+
+ .m-xxl-3 {
+ margin: 1rem !important;
+ }
+
+ .m-xxl-4 {
+ margin: 1.5rem !important;
+ }
+
+ .m-xxl-5 {
+ margin: 3rem !important;
+ }
+
+ .m-xxl-auto {
+ margin: auto !important;
+ }
+
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+
+ .mx-xxl-3 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+
+ .mx-xxl-4 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+
+ .mx-xxl-5 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+
+ .my-xxl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .my-xxl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+
+ .my-xxl-3 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+
+ .my-xxl-4 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+
+ .my-xxl-5 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+
+ .my-xxl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+
+ .mt-xxl-0 {
+ margin-top: 0 !important;
+ }
+
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important;
+ }
+
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important;
+ }
+
+ .mt-xxl-3 {
+ margin-top: 1rem !important;
+ }
+
+ .mt-xxl-4 {
+ margin-top: 1.5rem !important;
+ }
+
+ .mt-xxl-5 {
+ margin-top: 3rem !important;
+ }
+
+ .mt-xxl-auto {
+ margin-top: auto !important;
+ }
+
+ .me-xxl-0 {
+ margin-right: 0 !important;
+ }
+
+ .me-xxl-1 {
+ margin-right: 0.25rem !important;
+ }
+
+ .me-xxl-2 {
+ margin-right: 0.5rem !important;
+ }
+
+ .me-xxl-3 {
+ margin-right: 1rem !important;
+ }
+
+ .me-xxl-4 {
+ margin-right: 1.5rem !important;
+ }
+
+ .me-xxl-5 {
+ margin-right: 3rem !important;
+ }
+
+ .me-xxl-auto {
+ margin-right: auto !important;
+ }
+
+ .mb-xxl-0 {
+ margin-bottom: 0 !important;
+ }
+
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+
+ .mb-xxl-3 {
+ margin-bottom: 1rem !important;
+ }
+
+ .mb-xxl-4 {
+ margin-bottom: 1.5rem !important;
+ }
+
+ .mb-xxl-5 {
+ margin-bottom: 3rem !important;
+ }
+
+ .mb-xxl-auto {
+ margin-bottom: auto !important;
+ }
+
+ .ms-xxl-0 {
+ margin-left: 0 !important;
+ }
+
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important;
+ }
+
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important;
+ }
+
+ .ms-xxl-3 {
+ margin-left: 1rem !important;
+ }
+
+ .ms-xxl-4 {
+ margin-left: 1.5rem !important;
+ }
+
+ .ms-xxl-5 {
+ margin-left: 3rem !important;
+ }
+
+ .ms-xxl-auto {
+ margin-left: auto !important;
+ }
+
+ .p-xxl-0 {
+ padding: 0 !important;
+ }
+
+ .p-xxl-1 {
+ padding: 0.25rem !important;
+ }
+
+ .p-xxl-2 {
+ padding: 0.5rem !important;
+ }
+
+ .p-xxl-3 {
+ padding: 1rem !important;
+ }
+
+ .p-xxl-4 {
+ padding: 1.5rem !important;
+ }
+
+ .p-xxl-5 {
+ padding: 3rem !important;
+ }
+
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+
+ .px-xxl-3 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+
+ .px-xxl-4 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+
+ .px-xxl-5 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+
+ .py-xxl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+
+ .py-xxl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+
+ .py-xxl-3 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+
+ .py-xxl-4 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+
+ .py-xxl-5 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+
+ .pt-xxl-0 {
+ padding-top: 0 !important;
+ }
+
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important;
+ }
+
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important;
+ }
+
+ .pt-xxl-3 {
+ padding-top: 1rem !important;
+ }
+
+ .pt-xxl-4 {
+ padding-top: 1.5rem !important;
+ }
+
+ .pt-xxl-5 {
+ padding-top: 3rem !important;
+ }
+
+ .pe-xxl-0 {
+ padding-right: 0 !important;
+ }
+
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important;
+ }
+
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important;
+ }
+
+ .pe-xxl-3 {
+ padding-right: 1rem !important;
+ }
+
+ .pe-xxl-4 {
+ padding-right: 1.5rem !important;
+ }
+
+ .pe-xxl-5 {
+ padding-right: 3rem !important;
+ }
+
+ .pb-xxl-0 {
+ padding-bottom: 0 !important;
+ }
+
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+
+ .pb-xxl-3 {
+ padding-bottom: 1rem !important;
+ }
+
+ .pb-xxl-4 {
+ padding-bottom: 1.5rem !important;
+ }
+
+ .pb-xxl-5 {
+ padding-bottom: 3rem !important;
+ }
+
+ .ps-xxl-0 {
+ padding-left: 0 !important;
+ }
+
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important;
+ }
+
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important;
+ }
+
+ .ps-xxl-3 {
+ padding-left: 1rem !important;
+ }
+
+ .ps-xxl-4 {
+ padding-left: 1.5rem !important;
+ }
+
+ .ps-xxl-5 {
+ padding-left: 3rem !important;
+ }
+
+ .text-xxl-start {
+ text-align: left !important;
+ }
+
+ .text-xxl-end {
+ text-align: right !important;
+ }
+
+ .text-xxl-center {
+ text-align: center !important;
+ }
+}
+@media (min-width: 1200px) {
+ .fs-1 {
+ font-size: 2.5rem !important;
+ }
+
+ .fs-2 {
+ font-size: 2rem !important;
+ }
+
+ .fs-3 {
+ font-size: 1.75rem !important;
+ }
+
+ .fs-4 {
+ font-size: 1.5rem !important;
+ }
+}
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+
+ .d-print-block {
+ display: block !important;
+ }
+
+ .d-print-grid {
+ display: grid !important;
+ }
+
+ .d-print-table {
+ display: table !important;
+ }
+
+ .d-print-table-row {
+ display: table-row !important;
+ }
+
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+
+ .d-print-flex {
+ display: flex !important;
+ }
+
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+
+ .d-print-none {
+ display: none !important;
+ }
+}
+body {
+ font-size: 1.25rem;
+}
+
+hr {
+ background-color: #dee2e6;
+ opacity: 1;
+}
+
+p {
+ margin: 2rem 0;
+}
+p a {
+ text-decoration: underline;
+}
+
+blockquote {
+ font-style: italic;
+ color: #6c757d;
+}
+
+.btn {
+ letter-spacing: 0.0625em;
+}
+
+.form-floating input,
+.form-floating textarea {
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+}
+.form-floating input:focus,
+.form-floating textarea:focus {
+ box-shadow: none;
+}
+.form-floating label {
+ color: #6c757d;
+}
+
+#mainNav {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ z-index: 1030;
+ border-bottom: 1px solid #dee2e6;
+ background-color: #fff;
+ font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+}
+#mainNav .navbar-brand {
+ font-weight: 800;
+}
+#mainNav .navbar-toggler {
+ font-size: 0.75rem;
+ font-weight: 800;
+ padding: 0.75rem;
+ text-transform: uppercase;
+}
+#mainNav .navbar-nav > li.nav-item > a.nav-link {
+ font-size: 0.75rem;
+ font-weight: 800;
+ letter-spacing: 0.0625em;
+ text-transform: uppercase;
+}
+@media (min-width: 992px) {
+ #mainNav {
+ border-bottom: 1px solid transparent;
+ background: transparent;
+ }
+ #mainNav .navbar-brand {
+ color: #fff;
+ }
+ #mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover {
+ color: rgba(255, 255, 255, 0.8);
+ }
+ #mainNav .navbar-nav > li.nav-item > a.nav-link {
+ color: #fff;
+ }
+ #mainNav .navbar-nav > li.nav-item > a.nav-link:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link:hover {
+ color: rgba(255, 255, 255, 0.8);
+ }
+}
+@media (min-width: 992px) {
+ #mainNav {
+ transition: background-color 0.2s;
+ /* Force Hardware Acceleration in WebKit */
+ transform: translate3d(0, 0, 0);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ }
+ #mainNav.is-fixed {
+ /* when the user scrolls down, we hide the header right above the viewport */
+ position: fixed;
+ top: -83px;
+ transition: transform 0.2s;
+ border-bottom: 1px solid white;
+ background-color: rgba(255, 255, 255, 0.9);
+ }
+ #mainNav.is-fixed .navbar-brand {
+ color: #212529;
+ }
+ #mainNav.is-fixed .navbar-brand:focus, #mainNav.is-fixed .navbar-brand:hover {
+ color: #005E70;
+ }
+ #mainNav.is-fixed .navbar-nav > li.nav-item > a {
+ color: #212529;
+ }
+ #mainNav.is-fixed .navbar-nav > li.nav-item > a:focus, #mainNav.is-fixed .navbar-nav > li.nav-item > a:hover {
+ color: #005E70;
+ }
+ #mainNav.is-visible {
+ /* if the user changes the scrolling direction, we show the header */
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+footer {
+ padding-top: 3rem;
+ padding-bottom: 3rem;
+}
+
+header.masthead {
+ position: relative;
+ margin-bottom: 3rem;
+ padding-top: calc(8rem + 57px);
+ padding-bottom: 8rem;
+ background: no-repeat center center;
+ background-color: #6c757d;
+ background-size: cover;
+ background-attachment: scroll;
+}
+header.masthead:before {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #212529;
+ opacity: 0.5;
+}
+header.masthead .page-heading,
+header.masthead .post-heading,
+header.masthead .site-heading {
+ color: #fff;
+}
+header.masthead .page-heading,
+header.masthead .site-heading {
+ text-align: center;
+}
+header.masthead .page-heading h1, header.masthead .page-heading .h1,
+header.masthead .site-heading h1,
+header.masthead .site-heading .h1 {
+ font-size: 3rem;
+}
+header.masthead .page-heading .subheading,
+header.masthead .site-heading .subheading {
+ font-size: 1.5rem;
+ font-weight: 300;
+ line-height: 1.1;
+ display: block;
+ margin-top: 0.625rem;
+ font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+}
+header.masthead .post-heading h1, header.masthead .post-heading .h1 {
+ font-size: 2.25rem;
+}
+header.masthead .post-heading .meta,
+header.masthead .post-heading .subheading {
+ line-height: 1.1;
+ display: block;
+}
+header.masthead .post-heading .subheading {
+ font-size: 1.5rem;
+ font-weight: 600;
+ margin: 0.75rem 0 2rem;
+ font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+}
+header.masthead .post-heading .meta {
+ font-size: 1.25rem;
+ font-weight: 300;
+ font-style: italic;
+ font-family: "Lora", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
+}
+header.masthead .post-heading .meta a {
+ color: #fff;
+}
+@media (min-width: 992px) {
+ header.masthead {
+ padding-top: 12.5rem;
+ padding-bottom: 12.5rem;
+ }
+ header.masthead .page-heading h1, header.masthead .page-heading .h1,
+header.masthead .site-heading h1,
+header.masthead .site-heading .h1 {
+ font-size: 5rem;
+ }
+ header.masthead .post-heading h1, header.masthead .post-heading .h1 {
+ font-size: 3.5rem;
+ }
+ header.masthead .post-heading .subheading {
+ font-size: 1.875rem;
+ }
+}
+
+.section-heading {
+ font-size: 2.25rem;
+ font-weight: 700;
+ margin-top: 3.75rem;
+}
+
+.caption {
+ font-size: 0.875rem;
+ font-style: italic;
+ display: block;
+ margin: 0;
+ padding: 0.625rem;
+ text-align: center;
+}
+
+.post-preview > a {
+ color: #212529;
+}
+.post-preview > a:focus, .post-preview > a:hover {
+ text-decoration: none;
+ color: #005E70;
+}
+.post-preview > a > .post-title {
+ font-size: 1.875rem;
+ margin-top: 1.875rem;
+ margin-bottom: 0.625rem;
+}
+.post-preview > a > .post-subtitle {
+ font-weight: 300;
+ margin-bottom: 0.625rem;
+}
+.post-preview > .post-meta {
+ font-size: 1.125rem;
+ font-style: italic;
+ margin-top: 0;
+ color: #6c757d;
+}
+.post-preview > .post-meta > a {
+ text-decoration: none;
+}
+@media (min-width: 992px) {
+ .post-preview > a > .post-title {
+ font-size: 2.25rem;
+ }
+}
+.umb-grid div > img {
+ width: 100%;
+}
+
+.youtube-player {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ width: 100%;
+ height: auto;
+ background: #000;
+ margin: 30px auto;
+ border-radius: 14px;
+ aspect-ratio: 1280 / 720;
+}
+
+ .youtube-player .play {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate3d(-50%,-50%,0);
+ width: 6.5em;
+ height: 4em;
+ background: #ff0000;
+ z-index: 1;
+ opacity: .95;
+ border-radius: .5em;
+ transition: all .2s cubic-bezier(0,0,.2,1);
+ outline: 0;
+ border: 0;
+ pointer-events: none;
+ box-shadow: 2px 3px 9px 2px #000;
+ }
+
+ .youtube-player:hover .play{
+ opacity: 0.8;
+ }
+
+ .youtube-player .play:before {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate3d(-50%,-50%,0);
+ content: "";
+ border-color: transparent transparent transparent #fff;
+ border-style: solid;
+ border-width: 10px 0 10px 20px;
+ }
+
+ .youtube-player .play:hover {
+ background: url(/clean-assets/css/circle-play-red.png) no-repeat
+ }
+
+ .youtube-player iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ background: 0 0
+ }
+
+ .youtube-player img {
+ object-fit: cover;
+ display: block;
+ left: 0;
+ bottom: 0;
+ margin: auto;
+ max-width: 100%;
+ width: 100%;
+ position: absolute;
+ right: 0;
+ top: 0;
+ border: none;
+ height: auto;
+ cursor: pointer;
+ -webkit-transition: .4s all;
+ -moz-transition: .4s all;
+ transition: .4s all
+ }
+
+ .video-caption {
+ margin-top: -30px;
+ margin-bottom: 30px;
+ }
+
+ .social-icon {
+ width: 2.5rem;
+ height: auto;
+ }
+
+ .social-icon:hover {
+ fill: #007189;
+ }
+
+ pre {
+ background:#1E1E1E;
+ padding: 1em;
+ }
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/swiffy-slider.min.css b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/swiffy-slider.min.css
new file mode 100644
index 0000000..2844d3c
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/swiffy-slider.min.css
@@ -0,0 +1,2 @@
+.swiffy-slider{position:relative;display:block;width:100%;--swiffy-slider-snap-align:center;--swiffy-slider-item-width:100%;--swiffy-slider-item-gap:1rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-ratio:2/1;--swiffy-slider-item-count:1;--swiffy-slider-nav-light:#fff;--swiffy-slider-nav-dark:#333;--swiffy-slider-nav-zoom:1;--swiffy-slider-track-opacity:0.1;--swiffy-slider-track-height:0;--swiffy-slider-nav-outside-size:3.5rem;--swiffy-slider-indicator-outside-size:1.5rem;--swiffy-slider-animation-duration:.75s;--swiffy-slider-animation-delay:0s;--swiffy-slider-animation-timing:ease-in-out}.swiffy-slider,.swiffy-slider::after,.swiffy-slider::before{box-sizing:border-box}.swiffy-slider ::-webkit-scrollbar{height:var(--swiffy-slider-track-height)}.swiffy-slider ::-webkit-scrollbar-track{background:rgba(0,0,0,var(--swiffy-slider-track-opacity))}.swiffy-slider ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.4);border-radius:1rem}.swiffy-slider ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.6)}.slider-container{--swiffy-slider-item-gap-totalwidth:calc(var(--swiffy-slider-item-gap) * (var(--swiffy-slider-item-count) - 1));--swiffy-slider-item-width:calc((100% - var(--swiffy-slider-item-reveal) - var(--swiffy-slider-item-gap-totalwidth)) / var(--swiffy-slider-item-count));overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scroll-behavior:smooth;display:grid;align-items:center;height:100%;grid:auto/auto-flow -webkit-max-content;grid:auto/auto-flow max-content;grid-auto-rows:100%;grid-auto-columns:var(--swiffy-slider-item-width);grid-auto-flow:column;grid-gap:var(--swiffy-slider-item-gap);list-style:none;margin:0;padding:0;scrollbar-width:none;scrollbar-color:rgba(0,0,0,.4) rgba(0,0,0,var(--swiffy-slider-track-opacity));background-clip:padding-box}.slider-container>*{scroll-snap-align:var(--swiffy-slider-snap-align);position:relative;width:100%;height:100%}.slider-item-helper .slider-container>*{background-size:cover;background-color:#e1e1e1;background-position:50% 50%;display:flex;justify-content:center;align-items:center}.slider-item-helper:not(.slider-item-ratio) .slider-container>*{min-height:20rem}.slider-item-ratio .slider-container>*>*{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.slider-item-ratio-contain .slider-container>*>*{-o-object-fit:contain;object-fit:contain}.slider-item-ratio .slider-container>::after{display:block;padding-top:calc(100% / (var(--swiffy-slider-item-ratio)));content:""}.slider-item-ratio-32x9{--swiffy-slider-item-ratio:32/9}.slider-item-ratio-21x9{--swiffy-slider-item-ratio:21/9}.slider-item-ratio-16x9{--swiffy-slider-item-ratio:16/9}.slider-item-ratio-4x3{--swiffy-slider-item-ratio:4/3}.slider-item-ratio-2x1{--swiffy-slider-item-ratio:2/1}.slider-item-ratio-1x1{--swiffy-slider-item-ratio:1/1}.slider-item-ratio-3x4{--swiffy-slider-item-ratio:3/4}.slider-nav-scrollbar{--swiffy-slider-track-height:0.5rem}.slider-nav-scrollbar .slider-container{scrollbar-width:thin}.slider-nav-nodelay .slider-container{scroll-behavior:auto}.slider-indicators{position:absolute;right:2rem;bottom:0;left:2rem;display:flex;justify-content:center;padding:0;margin-bottom:1rem;list-style:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:calc(1rem + var(--swiffy-slider-track-height))}.slider-indicators>.active{opacity:1}.swiffy-slider.slider-indicators-outside .slider-nav{margin-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside{padding-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside .slider-indicators,.swiffy-slider.slider-indicators-outside.slider-indicators{margin-bottom:0}.slider-indicators>*{box-sizing:content-box;flex:0 1 auto;width:2rem;height:.2rem;padding:0;border:.4rem solid transparent;cursor:pointer;background-color:#fff;background-clip:padding-box;opacity:.5;transition:opacity .4s ease}.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent;border-radius:50%}.slider-indicators-highlight .slider-indicators>.active,.slider-indicators-highlight.slider-indicators>.active{border:.33rem solid transparent;padding:.07rem}.slider-nav{position:absolute;top:0;left:0;bottom:0;border:0;background-color:transparent;cursor:pointer;padding:0;visibility:hidden;opacity:.8;transition:visibility .1s,opacity .2s linear;margin-bottom:var(--swiffy-slider-track-height);display:flex;align-items:center;padding:0 .5rem;-webkit-filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));transform:scale(var(--swiffy-slider-nav-zoom))}.slider-nav::before{position:absolute;content:"";padding:.5rem;width:3rem;height:3rem}.slider-nav::after{content:"";-webkit-mask:url("data:image/svg+xml, ");mask:url("data:image/svg+xml, ");-webkit-mask-size:cover;mask-size:cover;background-color:var(--swiffy-slider-nav-light);background-origin:content-box;width:3rem;height:3rem}.slider-nav-arrow .slider-nav::after{-webkit-mask:url("data:image/svg+xml, ");mask:url("data:image/svg+xml, ")}.slider-nav-chevron .slider-nav::after{-webkit-mask:url("data:image/svg+xml, ");mask:url("data:image/svg+xml, ")}.slider-nav-caret .slider-nav::after{-webkit-mask:url("data:image/svg+xml, ");mask:url("data:image/svg+xml, ")}.slider-nav-caretfill .slider-nav::after{-webkit-mask:url("data:image/svg+xml, ");mask:url("data:image/svg+xml, ")}.swiffy-slider:hover .slider-nav{visibility:visible}.swiffy-slider.slider-nav-autohide.slider-item-first-visible .slider-nav:not(.slider-nav-next){visibility:hidden}.swiffy-slider.slider-nav-autohide.slider-item-last-visible .slider-nav.slider-nav-next{visibility:hidden}.slider-nav-outside .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside .slider-nav{padding:0}.swiffy-slider .slider-nav:hover{opacity:1}.slider-nav-square .slider-nav{padding:0}.slider-nav-round .slider-nav::before,.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-light)}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-dark);width:2rem;height:2rem;margin:.5rem}.slider-nav-round .slider-nav::before{border-radius:50%}.slider-nav-round .slider-nav::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E")}.slider-nav-dark .slider-nav::after{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::before,.slider-nav-dark.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::after,.slider-nav-dark.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-light)}.slider-nav-sm{--swiffy-slider-nav-zoom:.75;--swiffy-slider-nav-outside-size:2.5rem}.slider-nav.slider-nav-next::after{transform:rotate(180deg)}.slider-nav.slider-nav-next{right:0;left:unset}.slider-nav-visible .slider-nav{visibility:visible}.slider-nav-dark .slider-nav{opacity:.6}.slider-indicators-dark .slider-indicators>*,.slider-indicators-dark.slider-indicators>*{-webkit-filter:invert(1);filter:invert(1)}.slider-item-snapstart{--swiffy-slider-snap-align:start}.slider-item-nosnap{--swiffy-slider-snap-align:unset}.slider-item-nogap{--swiffy-slider-item-gap:0rem}.slider-item-reveal{--swiffy-slider-item-reveal:8rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-show2{--swiffy-slider-item-count:2}.slider-item-show3{--swiffy-slider-item-count:3}.slider-item-show4{--swiffy-slider-item-count:4}.slider-item-show5{--swiffy-slider-item-count:5}.slider-item-show6{--swiffy-slider-item-count:6}.slider-nav-mousedrag .slider-container{cursor:-webkit-grab;cursor:grab}.slider-nav-mousedrag.dragging .slider-container{-ms-scroll-snap-type:unset;scroll-snap-type:unset;scroll-behavior:unset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slider-nav-mousedrag.dragging .slider-nav{visibility:hidden}@media (hover:hover){.slider-nav-mousedrag .slider-container::after{content:"";position:absolute;width:100%;height:100%}}@media (prefers-reduced-motion:no-preference){.slider-nav-animation.slider-nav-animation-fast{--swiffy-slider-animation-duration:.25s}.slider-nav-animation.slider-nav-animation-slow{--swiffy-slider-animation-duration:1.25s}.slider-nav-animation .slider-container>*>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation .slider-container .slide-visible>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation.slider-nav-animation-fadein .slider-container>*>*{opacity:.5}.slider-nav-animation.slider-nav-animation-scale .slider-container>*>*{transform:scale(.9)}.slider-nav-animation.slider-nav-animation-appear .slider-container>*>*{opacity:.3;transform:scale(.9)}.slider-nav-animation.slider-nav-animation-scaleup .slider-container>*>*{transform:scale(.25)}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*{overflow:hidden}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*>*{transform:scale(1.3)}.slider-nav-animation.slider-nav-animation-turn .slider-container>*>*{transform:rotateY(70deg)}.slider-nav-animation.slider-nav-animation-slideup .slider-container>*>*{transform:translateY(60%) scale(.99)}.slider-nav-animation.slider-nav-animation-slideup .slider-container{overflow-y:hidden}.slider-nav-animation .slider-container>.slide-visible>*{opacity:1;transform:none}}@media (min-width:62rem){.slider-item-show2:not(.slider-item-snapstart) .slider-container>*,.slider-item-show4:not(.slider-item-snapstart) .slider-container>*,.slider-item-show6:not(.slider-item-snapstart) .slider-container>*{scroll-snap-align:unset}.slider-item-show2:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show4:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show6:not(.slider-item-snapstart) .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:var(--swiffy-slider-snap-align)}.slider-nav-outside-expand .slider-nav{margin-left:-4rem}.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-4rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav{margin-left:-3.5rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-3.5rem}.slider-indicators-sm.slider-indicators{display:none}}@media (max-width:62rem){.swiffy-slider{--swiffy-slider-track-height:0rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-count:1;--swiffy-slider-nav-zoom:.875}.swiffy-slider .slider-item-show2-sm{--swiffy-slider-item-count:2}.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:2rem}.slider-item-show6 .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3) - .5rem)}.slider-item-show6.slider-item-reveal .slider-container>*{scroll-snap-align:unset}.slider-item-show6.slider-item-reveal .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:center}.slider-nav::after,.slider-nav::before{width:2rem;height:2rem;padding:.3rem}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{width:1.75rem;height:1.75rem;margin:.125rem}.slider-nav-outside .slider-container,.slider-nav-outside-expand .slider-container{margin:0 2rem}.slider-nav-outside-expand .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside-expand .slider-nav{padding:0}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*,.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.3rem;height:.3rem}.slider-indicators{margin-bottom:.5rem;display:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:0}.slider-indicators>*{width:1rem;height:.125rem;border-width:.25rem}.slider-indicators-sm .slider-indicators,.slider-indicators-sm.slider-indicators{display:flex}}@media (max-width:48rem){.slider-item-show6 .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2) - 1.5rem)}}@media (hover:none){.swiffy-slider.slider-nav-touch .slider-nav{visibility:visible}.swiffy-slider:not(.slider-nav-touch).slider-nav-outside .slider-container,.swiffy-slider:not(.slider-nav-touch).slider-nav-outside-expand .slider-container{margin:0 0}.slider-item-nosnap-touch{--swiffy-slider-snap-align:unset}}
+/*# sourceMappingURL=swiffy-slider.min.css.map */
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/vs2015.css b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/vs2015.css
new file mode 100644
index 0000000..4dce1eb
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/css/vs2015.css
@@ -0,0 +1,112 @@
+/*
+ * Visual Studio 2015 dark style
+ * Author: Nicolas LLOBERA
+ */
+
+.hljs {
+ background: #1E1E1E;
+ color: #DCDCDC;
+}
+
+.hljs-keyword,
+.hljs-literal,
+.hljs-symbol,
+.hljs-name {
+ color: #569CD6;
+}
+.hljs-link {
+ color: #569CD6;
+ text-decoration: underline;
+}
+
+.hljs-built_in,
+.hljs-type {
+ color: #4EC9B0;
+}
+
+.hljs-number,
+.hljs-class {
+ color: #B8D7A3;
+}
+
+.hljs-string,
+.hljs-meta .hljs-string {
+ color: #D69D85;
+}
+
+.hljs-regexp,
+.hljs-template-tag {
+ color: #9A5334;
+}
+
+.hljs-subst,
+.hljs-function,
+.hljs-title,
+.hljs-params,
+.hljs-formula {
+ color: #DCDCDC;
+}
+
+.hljs-comment,
+.hljs-quote {
+ color: #57A64A;
+ font-style: italic;
+}
+
+.hljs-doctag {
+ color: #608B4E;
+}
+
+.hljs-meta,
+.hljs-meta .hljs-keyword,
+
+.hljs-tag {
+ color: #9B9B9B;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+ color: #BD63C5;
+}
+
+.hljs-attr,
+.hljs-attribute {
+ color: #9CDCFE;
+}
+
+.hljs-section {
+ color: gold;
+}
+
+.hljs-emphasis {
+ font-style: italic;
+}
+
+.hljs-strong {
+ font-weight: bold;
+}
+
+/*.hljs-code {
+ font-family:'Monospace';
+}*/
+
+.hljs-bullet,
+.hljs-selector-tag,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+ color: #D7BA7D;
+}
+
+.hljs-addition {
+ background-color: #144212;
+ display: inline-block;
+ width: 100%;
+}
+
+.hljs-deletion {
+ background-color: #600;
+ display: inline-block;
+ width: 100%;
+}
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.default.min.css b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.default.min.css
new file mode 100644
index 0000000..a75ea91
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.default.min.css
@@ -0,0 +1,9 @@
+/*!
+ Theme: Default
+ Description: Original highlight.js style
+ Author: (c) Ivan Sagalaev
+ Maintainer: @highlightjs/core-team
+ Website: https://highlightjs.org/
+ License: see project LICENSE
+ Touched: 2021
+*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
\ No newline at end of file
diff --git a/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.min.js b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.min.js
new file mode 100644
index 0000000..fb920f5
--- /dev/null
+++ b/Umbraco Tag Manager.TestSite.V10/wwwroot/clean-assets/js/highlight.min.js
@@ -0,0 +1,1208 @@
+/*!
+ Highlight.js v11.8.0 (git: 65687a907b)
+ (c) 2006-2023 undefined and other contributors
+ License: BSD-3-Clause
+ */
+var hljs=function(){"use strict";function e(n){
+return n instanceof Map?n.clear=n.delete=n.set=()=>{
+throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{
+throw Error("set is read-only")
+}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{
+const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a)
+})),n}class n{constructor(e){
+void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
+ignoreMatch(){this.isMatchIgnored=!0}}function t(e){
+return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")
+}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n]
+;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope
+;class r{constructor(e,n){
+this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){
+this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{
+if(e.startsWith("language:"))return e.replace("language:","language-")
+;if(e.includes(".")){const t=e.split(".")
+;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ")
+}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}
+closeNode(e){i(e)&&(this.buffer+="")}value(){return this.buffer}span(e){
+this.buffer+=``}}const s=(e={})=>{const n={children:[]}
+;return Object.assign(n,e),n};class o{constructor(){
+this.rootNode=s(),this.stack=[this.rootNode]}get top(){
+return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
+this.top.children.push(e)}openNode(e){const n=s({scope:e})
+;this.add(n),this.stack.push(n)}closeNode(){
+if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
+for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
+walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){
+return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),
+n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){
+"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
+o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e}
+addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){
+this.closeNode()}__addSublanguage(e,n){const t=e.root
+;n&&(t.scope="language:"+n),this.add(t)}toHTML(){
+return new r(this,this.options).value()}finalize(){
+return this.closeAllNodes(),!0}}function c(e){
+return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")}
+function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")}
+function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{
+const n=e[e.length-1]
+;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}
+})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"}
+function p(e){return RegExp(e.toString()+"|").exec("").length-1}
+const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
+;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t
+;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break}
+i+=a.substring(0,e.index),
+a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0],
+"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)}
+const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",v={
+begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'",
+illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
+contains:[v]},x=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n,
+contains:[]},t);i.contains.push({scope:"doctag",
+begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
+end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
+;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
+;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
+},M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({
+__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:f,UNDERSCORE_IDENT_RE:E,
+NUMBER_RE:y,C_NUMBER_RE:N,BINARY_NUMBER_RE:w,
+RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
+SHEBANG:(e={})=>{const n=/^#![ ]*\//
+;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
+end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
+BACKSLASH_ESCAPE:v,APOS_STRING_MODE:O,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{
+begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+},COMMENT:x,C_LINE_COMMENT_MODE:M,C_BLOCK_COMMENT_MODE:S,HASH_COMMENT_MODE:A,
+NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number",
+begin:N,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:w,relevance:0},
+REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,
+end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,
+contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:f,relevance:0},
+UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0},METHOD_GUARD:{
+begin:"\\.\\s*"+E,relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
+"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
+n.data._beginMatch!==e[1]&&n.ignoreMatch()}})});function T(e,n){
+"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
+void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
+n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
+e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
+void 0===e.relevance&&(e.relevance=0))}function I(e,n){
+Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){
+if(e.match){
+if(e.begin||e.end)throw Error("begin & end are not supported with match")
+;e.begin=e.match,delete e.match}}function B(e,n){
+void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return
+;if(e.starts)throw Error("beforeMatch cannot be used with starts")
+;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n]
+})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={
+relevance:0,contains:[Object.assign(t,{endsParent:!0})]
+},e.relevance=0,delete t.beforeMatch
+},z=["of","and","for","in","not","or","if","then","parent","list","value"],F="keyword"
+;function U(e,n,t=F){const a=Object.create(null)
+;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{
+Object.assign(a,U(e[t],n,t))})),a;function i(e,t){
+n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
+;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
+return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{
+console.error(e)},q=(e,...n)=>{console.log("WARN: "+e,...n)},H=(e,n)=>{
+P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0)
+},G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
+;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
+;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{
+e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
+delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
+_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
+}),(e=>{if(Array.isArray(e.begin)){
+if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
+G
+;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"),
+G;Z(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{
+if(Array.isArray(e.end)){
+if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
+G
+;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"),
+G;Z(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function Q(e){
+function n(n,t){
+return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))
+}class t{constructor(){
+this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
+addRule(e,n){
+n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),
+this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
+;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|"
+}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
+;const n=this.matcherRe.exec(e);if(!n)return null
+;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t]
+;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){
+this.rules=[],this.multiRegexes=[],
+this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
+if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t
+;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))),
+n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){
+return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){
+this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){
+const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex
+;let t=n.exec(e)
+;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{
+const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}
+return t&&(this.regexIndex+=t.position+1,
+this.regexIndex===this.count&&this.considerAll()),t}}
+if(e.compilerExtensions||(e.compilerExtensions=[]),
+e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")
+;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r
+;if(r.isCompiled)return o
+;[R,L,W,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))),
+r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null
+;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),
+l=r.keywords.$pattern,
+delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)),
+o.keywordPatternRe=n(l,!0),
+s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),
+r.end&&(o.endRe=n(o.end)),
+o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),
+r.illegal&&(o.illegalRe=n(r.illegal)),
+r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{
+variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?a(e,{
+starts:e.starts?a(e.starts):null
+}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o)
+})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i
+;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin"
+}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"
+}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){
+return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{
+constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}
+const J=t,Y=a,ee=Symbol("nomatch"),ne=t=>{
+const a=Object.create(null),i=Object.create(null),r=[];let s=!0
+;const o="Could not find the language '{}', did you forget to load/include a language module?",c={
+disableAutodetect:!0,name:"Plain text",contains:[]};let p={
+ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
+languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
+cssSelector:"pre code",languages:null,__emitter:l};function _(e){
+return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
+;"object"==typeof n?(a=e,
+t=n.ignoreIllegals,i=n.language):(H("10.7.0","highlight(lang, code, ...args) has been deprecated."),
+H("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
+i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r)
+;const s=r.result?r.result:f(r.language,r.code,t)
+;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){
+const l=Object.create(null);function c(){if(!x.keywords)return void S.addText(A)
+;let e=0;x.keywordPatternRe.lastIndex=0;let n=x.keywordPatternRe.exec(A),t=""
+;for(;n;){t+=A.substring(e,n.index)
+;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,x.keywords[a]);if(r){
+const[e,a]=r
+;if(S.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{
+const t=w.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0]
+;e=x.keywordPatternRe.lastIndex,n=x.keywordPatternRe.exec(A)}var a
+;t+=A.substring(e),S.addText(t)}function d(){null!=x.subLanguage?(()=>{
+if(""===A)return;let e=null;if("string"==typeof x.subLanguage){
+if(!a[x.subLanguage])return void S.addText(A)
+;e=f(x.subLanguage,A,!0,M[x.subLanguage]),M[x.subLanguage]=e._top
+}else e=E(A,x.subLanguage.length?x.subLanguage:null)
+;x.relevance>0&&(C+=e.relevance),S.__addSublanguage(e._emitter,e.language)
+})():c(),A=""}function g(e,n){
+""!==e&&(S.startScope(n),S.addText(e),S.endScope())}function u(e,n){let t=1
+;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue}
+const a=w.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(A=i,c(),A=""),t++}}
+function b(e,n){
+return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope),
+e.beginScope&&(e.beginScope._wrap?(g(A,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
+A=""):e.beginScope._multi&&(u(e.beginScope,n),A="")),x=Object.create(e,{parent:{
+value:x}}),x}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n)
+;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e)
+;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){
+for(;e.endsParent&&e.parent;)e=e.parent;return e}}
+if(e.endsWithParent)return m(e.parent,t,a)}function _(e){
+return 0===x.matcher.regexIndex?(A+=e[0],1):(D=!0,0)}function h(e){
+const n=e[0],a=t.substring(e.index),i=m(x,e,a);if(!i)return ee;const r=x
+;x.endScope&&x.endScope._wrap?(d(),
+g(n,x.endScope._wrap)):x.endScope&&x.endScope._multi?(d(),
+u(x.endScope,e)):r.skip?A+=n:(r.returnEnd||r.excludeEnd||(A+=n),
+d(),r.excludeEnd&&(A=n));do{
+x.scope&&S.closeNode(),x.skip||x.subLanguage||(C+=x.relevance),x=x.parent
+}while(x!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length}
+let y={};function N(a,r){const o=r&&r[0];if(A+=a,null==o)return d(),0
+;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){
+if(A+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`)
+;throw n.languageName=e,n.badRule=y.rule,n}return 1}
+if(y=r,"begin"===r.type)return(e=>{
+const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]]
+;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t)
+;return a.skip?A+=t:(a.excludeBegin&&(A+=t),
+d(),a.returnBegin||a.excludeBegin||(A=t)),b(a,e),a.returnBegin?0:t.length})(r)
+;if("illegal"===r.type&&!i){
+const e=Error('Illegal lexeme "'+o+'" for mode "'+(x.scope||"")+'"')
+;throw e.mode=x,e}if("end"===r.type){const e=h(r);if(e!==ee)return e}
+if("illegal"===r.type&&""===o)return 1
+;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches")
+;return A+=o,o.length}const w=v(e)
+;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
+;const O=Q(w);let k="",x=r||O;const M={},S=new p.__emitter(p);(()=>{const e=[]
+;for(let n=x;n!==w;n=n.parent)n.scope&&e.unshift(n.scope)
+;e.forEach((e=>S.openNode(e)))})();let A="",C=0,T=0,R=0,D=!1;try{
+if(w.__emitTokens)w.__emitTokens(t,S);else{for(x.matcher.considerAll();;){
+R++,D?D=!1:x.matcher.considerAll(),x.matcher.lastIndex=T
+;const e=x.matcher.exec(t);if(!e)break;const n=N(t.substring(T,e.index),e)
+;T=e.index+n}N(t.substring(T))}return S.finalize(),k=S.toHTML(),{language:e,
+value:k,relevance:C,illegal:!1,_emitter:S,_top:x}}catch(n){
+if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t),
+illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T,
+context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:k},_emitter:S};if(s)return{
+language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:S,_top:x}
+;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{
+const n={value:J(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)}
+;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1)))
+;i.unshift(t);const r=i.sort(((e,n)=>{
+if(e.relevance!==n.relevance)return n.relevance-e.relevance
+;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1
+;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s
+;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
+let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
+;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1])
+;return n||(q(o.replace("{}",t[1])),
+q("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
+return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return
+;if(x("before:highlightElement",{el:e,language:t
+}),e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
+console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
+console.warn("The element with unescaped HTML:"),
+console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML)
+;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
+;e.innerHTML=r.value,((e,n,t)=>{const a=n&&i[n]||t
+;e.classList.add("hljs"),e.classList.add("language-"+a)
+})(e,t,r.language),e.result={language:r.language,re:r.relevance,
+relevance:r.relevance},r.secondBest&&(e.secondBest={
+language:r.secondBest.language,relevance:r.secondBest.relevance
+}),x("after:highlightElement",{el:e,result:r,text:a})}let N=!1;function w(){
+"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(y):N=!0
+}function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]}
+function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
+i[e.toLowerCase()]=n}))}function k(e){const n=v(e)
+;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{
+e[t]&&e[t](n)}))}
+"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
+N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w,
+highlightElement:y,
+highlightBlock:e=>(H("10.7.0","highlightBlock will be removed entirely in v12.0"),
+H("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)},
+initHighlighting:()=>{
+w(),H("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},
+initHighlightingOnLoad:()=>{
+w(),H("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")
+},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
+if(K("Language definition for '{}' could not be registered.".replace("{}",e)),
+!s)throw n;K(n),i=c}
+i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&O(i.aliases,{
+languageName:e})},unregisterLanguage:e=>{delete a[e]
+;for(const n of Object.keys(i))i[n]===e&&delete i[n]},
+listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O,
+autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{
+e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{
+e["before:highlightBlock"](Object.assign({block:n.el},n))
+}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
+e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
+removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
+s=!1},t.safeMode=()=>{s=!0},t.versionString="11.8.0",t.regex={concat:b,
+lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
+;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
+},te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{
+scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{
+scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},
+FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},
+ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
+contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
+scope:"number",
+begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
+relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}
+}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-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","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le)
+;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={
+className:"number",variants:[{
+begin:`(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`},{
+begin:`\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
+begin:`(${ue})[fFdD]?\\b`},{begin:`\\b(${ge})[fFdD]\\b`},{
+begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`},{
+begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{
+begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
+relevance:0};function pe(e,n,t){return-1===t?"":e.replace(n,(a=>pe(e,n,t-1)))}
+const _e="[A-Za-z$_][0-9A-Za-z$_]*",he=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],fe=["true","false","null","undefined","NaN","Infinity"],Ee=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ye=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ne=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],we=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ve=[].concat(Ne,Ee,ye)
+;function Oe(e){const n=e.regex,t=_e,a={begin:/<[A-Za-z0-9\\._:-]+/,
+end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
+const t=e[0].length+e.index,a=e.input[t]
+;if("<"===a||","===a)return void n.ignoreMatch();let i
+;">"===a&&(((e,{after:n})=>{const t=""+e[0].slice(1)
+;return-1!==e.input.indexOf(t,n)})(e,{after:t})||n.ignoreMatch())
+;const r=e.input.substring(t)
+;((i=r.match(/^\s*=/))||(i=r.match(/^\s+extends\s+/))&&0===i.index)&&n.ignoreMatch()
+}},i={$pattern:_e,keyword:he,literal:fe,built_in:ve,"variable.language":we
+},r="[0-9](_?[0-9])*",s=`\\.(${r})`,o="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",l={
+className:"number",variants:[{
+begin:`(\\b(${o})((${s})|\\.)?|(${s}))[eE][+-]?(${r})\\b`},{
+begin:`\\b(${o})\\b((${s})\\b|\\.)?|(${s})\\b`},{
+begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
+begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
+begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
+begin:"\\b0[0-7]+n?\\b"}],relevance:0},c={className:"subst",begin:"\\$\\{",
+end:"\\}",keywords:i,contains:[]},d={begin:"html`",end:"",starts:{end:"`",
+returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"xml"}},g={
+begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
+contains:[e.BACKSLASH_ESCAPE,c],subLanguage:"css"}},u={begin:"gql`",end:"",
+starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,c],
+subLanguage:"graphql"}},b={className:"string",begin:"`",end:"`",
+contains:[e.BACKSLASH_ESCAPE,c]},m={className:"comment",
+variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
+begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
+begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
+excludeBegin:!0,relevance:0},{className:"variable",begin:t+"(?=\\s*(-)|$)",
+endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
+}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]
+},p=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,{match:/\$\d+/},l]
+;c.contains=p.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(p)
+});const _=[].concat(m,c.contains),h=_.concat([{begin:/\(/,end:/\)/,keywords:i,
+contains:["self"].concat(_)}]),f={className:"params",begin:/\(/,end:/\)/,
+excludeBegin:!0,excludeEnd:!0,keywords:i,contains:h},E={variants:[{
+match:[/class/,/\s+/,t,/\s+/,/extends/,/\s+/,n.concat(t,"(",n.concat(/\./,t),")*")],
+scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
+match:[/class/,/\s+/,t],scope:{1:"keyword",3:"title.class"}}]},y={relevance:0,
+match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
+className:"title.class",keywords:{_:[...Ee,...ye]}},N={variants:[{
+match:[/function/,/\s+/,t,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
+className:{1:"keyword",3:"title.function"},label:"func.def",contains:[f],
+illegal:/%/},w={
+match:n.concat(/\b/,(v=[...Ne,"super","import"],n.concat("(?!",v.join("|"),")")),t,n.lookahead(/\(/)),
+className:"title.function",relevance:0};var v;const O={
+begin:n.concat(/\./,n.lookahead(n.concat(t,/(?![0-9A-Za-z$_(])/))),end:t,
+excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},k={
+match:[/get|set/,/\s+/,t,/(?=\()/],className:{1:"keyword",3:"title.function"},
+contains:[{begin:/\(\)/},f]
+},x="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",M={
+match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)],
+keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]}
+;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{
+PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/,
+contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
+label:"use_strict",className:"meta",relevance:10,
+begin:/^\s*['"]use (strict|asm)['"]/
+},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{
+className:"attr",begin:t+n.lookahead(":"),relevance:0},M,{
+begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
+keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{
+className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{
+className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{
+className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
+excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/,
+relevance:0},{variants:[{begin:"<>",end:">"},{
+match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,
+"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{
+begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},N,{
+beginKeywords:"while if switch catch for"},{
+begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
+returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t,
+className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t,
+relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
+contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
+className:"variable.constant"},E,k,{match:/\$[(.]/}]}}
+const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
+;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
+begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
+;Object.assign(t,{className:"variable",variants:[{
+begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={
+className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={
+begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
+end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,
+contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/,
+end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
+},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
+}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
+contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
+name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
+keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],
+literal:["true","false"],
+built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
+},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{
+className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}},
+grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
+}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
+className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
+match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{
+begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
+begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
+end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
+begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
+className:"number",variants:[{begin:"\\b(0b[01']+)"},{
+begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
+},{
+begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
+}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
+keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
+},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
+className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
+className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
+},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
+keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
+type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],
+literal:"true false NULL",
+built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
+},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{
+begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
+keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u,
+contains:b.concat(["self"]),relevance:0}]),relevance:0},p={
+begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
+keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
+begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
+relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
+keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,
+end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]
+}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
+disableAutodetect:!0,illegal:"",contains:[].concat(m,p,b,[c,{
+begin:e.IDENT_RE+"::",keywords:u},{className:"class",
+beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
+beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
+strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{
+contains:[{begin:/\\\n/}]
+}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
+className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{
+begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
+begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
+end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
+begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={
+className:"number",variants:[{begin:"\\b(0b[01']+)"},{
+begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
+},{
+begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
+}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
+keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
+},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{
+className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
+className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0
+},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={
+type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],
+keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],
+literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],
+_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"]
+},b={className:"function.dispatch",relevance:0,keywords:{
+_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"]
+},
+begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))
+},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{
+begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
+keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
+contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function",
+begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
+keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{
+begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{
+begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{
+className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0,
+contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u,
+relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}]
+},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++",
+aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",
+classNameAliases:{"function.dispatch":"built_in"},
+contains:[].concat(p,_,b,m,[c,{
+begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\s*<(?!<)",
+end:">",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{
+match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],
+className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={
+keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
+built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
+literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{
+begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{
+begin:"\\b(0b[01']+)"},{
+begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
+begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
+}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
+},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/,
+keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/,
+end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
+},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{
+begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/,
+contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]})
+;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE],
+o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{
+illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
+},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t]
+},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={
+begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
+keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
+contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
+begin:"\x3c!--|--\x3e"},{begin:"?",end:">"}]}]
+}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
+end:"$",keywords:{
+keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
+}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
+illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
+},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
+relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
+contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
+beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
+contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
+begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
+className:"string",begin:/"/,end:/"/}]},{
+beginKeywords:"new return throw await else",relevance:0},{className:"function",
+begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
+end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
+beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
+relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
+contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params",
+begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
+contains:[g,a,e.C_BLOCK_COMMENT_MODE]
+},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{
+const n=e.regex,t=ie(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{
+name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{
+keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},
+contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
+},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
+},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
+},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
+begin:":("+oe.join("|")+")"},{begin:":(:)?("+le.join("|")+")"}]
+},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b"},{
+begin:/:/,end:/[;}{]/,
+contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{
+begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
+},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0,
+excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]",
+relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
+},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
+$pattern:/[a-z-]+/,keyword:"and or not only",attribute:se.join(" ")},contains:[{
+begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{
+className:"selector-tag",begin:"\\b("+re.join("|")+")\\b"}]}},grmr_diff:e=>{
+const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{
+className:"meta",relevance:10,
+match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
+},{className:"comment",variants:[{
+begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),
+end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{
+className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
+end:/$/}]}},grmr_go:e=>{const n={
+keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
+type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
+literal:["true","false","iota","nil"],
+built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]
+};return{name:"Go",aliases:["golang"],keywords:n,illegal:"",
+contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
+variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
+className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
+},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
+end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
+begin:/\(/,end:/\)/,endsParent:!0,keywords:n,illegal:/["']/}]}]}},
+grmr_graphql:e=>{const n=e.regex;return{name:"GraphQL",aliases:["gql"],
+case_insensitive:!0,disableAutodetect:!1,keywords:{
+keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
+literal:["true","false","null"]},
+contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
+scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
+begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
+end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
+scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)),
+relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={
+className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{
+begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/,
+end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{
+begin:/\$\{(.*?)\}/}]},r={className:"literal",
+begin:/\bon|off|true|false|yes|no\b/},s={className:"string",
+contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{
+begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]
+},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0
+},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{
+name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
+contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{
+begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)),
+className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{
+const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+pe("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={
+keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],
+literal:["false","true","null"],
+type:["char","boolean","long","float","int","byte","short","double"],
+built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{
+begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/,
+end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0}
+;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/,
+contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
+relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
+begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
+},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,
+className:"string",contains:[e.BACKSLASH_ESCAPE]
+},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
+match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{
+1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{
+begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type",
+3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword",
+3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
+beginKeywords:"new throw return else",relevance:0},{
+begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{
+2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/,
+end:/\)/,keywords:i,relevance:0,
+contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,me,e.C_BLOCK_COMMENT_MODE]
+},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},me,r]}},grmr_javascript:Oe,
+grmr_json:e=>{const n=["true","false","null"],t={scope:"literal",
+beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{
+className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{
+match:/[{}[\],:]/,className:"punctuation",relevance:0
+},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
+illegal:"\\S"}},grmr_kotlin:e=>{const n={
+keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
+built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
+literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
+},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={
+className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
+variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'",
+illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
+contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={
+className:"meta",
+begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
+},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
+end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}]
+},l=me,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={
+variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
+contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],
+{name:"Kotlin",aliases:["kt","kts"],keywords:n,
+contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
+begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword",
+begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
+begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$",
+returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
+begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
+contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/,end:/>/,
+keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
+endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
+endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0
+},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{
+begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{
+3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
+illegal:"extends implements",contains:[{
+beginKeywords:"public protected internal private constructor"
+},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/,end:/>/,excludeBegin:!0,
+excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,
+excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env",
+end:"$",illegal:"\n"},l]}},grmr_less:e=>{
+const n=ie(e),t=de,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({
+className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n,
+relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only",
+attribute:se.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c,
+relevance:0}
+;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{
+begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
+excludeEnd:!0}
+},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{
+className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0
+},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({
+begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0,
+contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:",
+returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/
+},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b",
+end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}]
+},m={className:"keyword",
+begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
+starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={
+className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a
+}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{
+begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0,
+returnEnd:!0,illegal:"[<='$\"]",relevance:0,
+contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{
+begin:"\\b("+re.join("|")+")\\b",className:"selector-tag"
+},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{
+className:"selector-pseudo",begin:":("+oe.join("|")+")"},{
+className:"selector-pseudo",begin:":(:)?("+le.join("|")+")"},{begin:/\(/,
+end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={
+begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]}
+;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH),
+{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}},
+grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"]
+},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10
+})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
+literal:"true false nil",
+keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
+built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
+},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",
+contains:[e.inherit(e.TITLE_MODE,{
+begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
+begin:"\\(",endsWithParent:!0,contains:i}].concat(i)
+},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
+begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={
+className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
+contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%\^\+\*]/}]},t={className:"string",
+begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n]},a={className:"variable",
+begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
+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"
+},contains:[n]},i={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
+className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
+name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
+keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
+},contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
+end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_xml:e=>{
+const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
+className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},i={begin:/\s/,
+contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
+},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
+className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
+endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",
+begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
+className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
+begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
+name:"HTML, XML",
+aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
+case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
+className:"meta",begin://,contains:[i,r,o,s]}]}]
+},e.COMMENT(//,{relevance:10}),{begin://,
+relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
+relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
+begin:/