INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(71, 0x61646d696e, 0x6170702e6c657373, 0, '@_adminPage-maxWidth: 1100px; // this does not include the navigation sidebar\n\n.m-pageWidth()\n{\n	width: 100%;\n	max-width: @_adminPage-maxWidth;\n	margin: 0 auto;\n}\n\n.m-pageInset(@defaultVPadding: @xf-paddingLarge, @defaultHPadding: @xf-pageEdgeSpacer)\n{\n	padding: @defaultVPadding @defaultHPadding;\n\n	// iPhone X/Xr/Xs support\n	@supports(padding: max(0px))\n	{\n		&\n		{\n			padding-left: ~\"max(@{defaultHPadding}, env(safe-area-inset-left))\";\n			padding-right: ~\"max(@{defaultHPadding}, env(safe-area-inset-right))\";\n		}\n	}\n}\n\n.m-thinScrollbar(@width; @background: rgba(0, 0, 0, 0.25); @foreground: rgba(255, 255, 255, 0.4))\n{\n	.has-no-hiddenscroll &\n	{\n		scrollbar-gutter: stable;\n		scrollbar-width: thin;\n\n		&::-webkit-scrollbar\n		{\n			width: @width;\n			background-color: @background;\n		}\n\n		&::-webkit-scrollbar-thumb\n		{\n			border: calc(@width / 4) solid transparent;\n			border-radius: calc(@width / 2);\n			background-color: @foreground;\n			background-clip: content-box;\n		}\n\n		&::-webkit-scrollbar-thumb:hover\n		{\n			background-color: darken(@foreground, 15%);\n		}\n\n		&::-webkit-scrollbar-thumb:active\n		{\n			background-color: darken(@foreground, 30%);\n		}\n	}\n}\n\nhtml\n{\n	.xf-pageBackground();\n}\n\n// ##################################### HEADER ###############################\n\n@_adminHeader-height: 40px;\n@_adminHeader-shadowHeight: 8px;\n@_adminHeader-offset: 10px;\n@_adminHeader-bg: @xf-paletteColor5;\n\n.u-anchorTarget\n{\n	height: (@_adminHeader-height + @_adminHeader-shadowHeight + @_adminHeader-offset);\n	margin-top: ((@_adminHeader-height + @_adminHeader-shadowHeight + @_adminHeader-offset) * -1);\n}\n\n.p-header\n{\n	position: fixed;\n	top: 0;\n	left: 0;\n	right: 0;\n	height: @_adminHeader-height;\n	line-height: @_adminHeader-height;\n	overflow: hidden;\n	.m-clearFix();\n	z-index: @zIndex-4;\n	background: @_adminHeader-bg;\n	color: contrast(@_adminHeader-bg);\n	text-align: center;\n	.m-dropShadow(0, 0, @_adminHeader-shadowHeight, 3px, 0.3);\n}\n\n.p-header-buttons\n{\n	&.p-header-buttons--main\n	{\n		float: left;\n	}\n\n	&.p-header-buttons--opposite\n	{\n		float: right;\n	}\n}\n\n.p-header-button\n{\n	display: inline-block;\n	color: inherit;\n	cursor: pointer;\n	text-decoration: none;\n	text-align: center;\n	min-width: @_adminHeader-height;\n	overflow: hidden;\n	.m-transition();\n\n	.m-pageInset(0px);\n\n	&:hover,\n	&:active,\n	&.is-active\n	{\n		background: xf-diminish(@_adminHeader-bg, 8%);\n		color: inherit;\n		text-decoration: none;\n	}\n\n	&.p-header-button--title\n	{\n		.m-overflowEllipsis();\n		max-width: 250px;\n	}\n\n	&.p-header-button--nav\n	{\n		display: none;\n	}\n\n	.fa--xf svg\n	{\n		width: 1.25em;\n	}\n}\n\n@media (max-width: @_adminNav-hideWidth)\n{\n	.p-header-button.p-header-button--nav\n	{\n		display: inline-block;\n	}\n}\n\n@media (max-width: @xf-responsiveNarrow)\n{\n	.p-header-button.p-header-button--title\n	{\n		max-width: 150px;\n	}\n}\n\n// ##################################### BODY AREA SETUP ##########################\n\n.p-body-container\n{\n}\n\n.p-body\n{\n	display: flex;\n}\n\n@media (max-width: @_adminNav-hideWidth)\n{\n	.p-body\n	{\n		display: block;\n	}\n}\n\n// ###################################### SIDEBAR NAVIGATION #######################\n\n@_adminNav-bg: @xf-paletteColor5;\n@_adminNav-strongBg: xf-intensify(@xf-paletteColor5, 8%);\n@_adminNav-color: @xf-paletteColor2;\n@_adminNav-strongColor: @xf-paletteColor1;\n@_adminNav-selectedBorder: @xf-borderColorFeature;\n@_adminNav-width: 260px;\n@_adminNav-scroll-width: 8px;\n@_adminNav-hideWidth: @xf-responsiveWide;\n@_adminNav-activelElBg: rgba(0, 0, 0, .1);\n\n.p-nav\n{\n	min-height: 100vh;\n	width: (@_adminNav-width + @_adminNav-scroll-width);\n	background: @_adminNav-bg;\n	color: @_adminNav-strongColor;\n	vertical-align: top;\n	flex-shrink: 0;\n}\n\n.p-nav-tester\n{\n	display: none;\n	font-family: \'default\';\n}\n\n.p-nav-inner\n{\n	position: sticky;\n	top: @_adminHeader-height;\n\n	height: calc(100vh - @_adminHeader-height);\n	overflow: clip auto;\n	.m-thinScrollbar(@_adminNav-scroll-width);\n}\n\n.p-nav-listRoot\n{\n	.m-listPlain();\n	padding-bottom: 30px;\n}\n\n.p-nav-section\n{\n	.m-transition();\n\n	.p-nav-listSection\n	{\n		.m-transitionFadeDown();\n	}\n\n	&.is-active\n	{\n		padding-bottom: 10px;\n		.m-gradient(@_adminNav-strongBg, mix(@_adminNav-strongBg, @_adminNav-bg), @_adminNav-strongBg);\n		box-shadow: inset 0 -10px 15px -10px rgba(0, 0, 0, .3), inset 0 10px 15px -10px rgba(0, 0, 0, .3);\n\n		.p-nav:not(.offCanvasMenu) &:first-child\n		{\n			box-shadow: inset 0 -10px 15px -10px rgba(0, 0, 0, .3);\n		}\n	}\n}\n\n.p-nav-sectionHeader\n{\n	display: flex;\n	color: @_adminNav-color;\n	font-size: @xf-fontSizeLarge;\n	.m-transition();\n	.m-highResolution({\n		font-weight: @xf-fontWeightLight;\n	});\n\n	&:hover\n	{\n		color: xf-diminish(@_adminNav-color, 3%);\n		background: xf-intensify(@_adminNav-bg, 3%);\n		text-decoration: none;\n	}\n\n	.p-nav-section.is-active &:hover\n	{\n		background: none;\n	}\n\n	a\n	{\n		color: inherit;\n\n		&:hover\n		{\n			text-decoration: none;\n		}\n	}\n\n	.p-nav-sectionLink\n	{\n		display: block;\n		padding: 20px 10px;\n		border-top: @xf-borderSize solid xf-intensify(@_adminNav-bg, 4%);\n		flex-grow: 1;\n\n		.far, .fal, .fas, .fab, .fad\n		{\n			color: @_adminNav-strongColor;\n			font-size: @xf-fontSizeLarger;\n			vertical-align: -2px;\n		}\n	}\n\n	.p-nav-sectionToggle\n	{\n		display: inline-block;\n		padding: 20px 10px;\n		border-top: @xf-borderSize solid xf-intensify(@_adminNav-bg, 4%);\n		text-decoration: none;\n		flex-grow: 0;\n\n		&:hover\n		{\n			text-decoration: none;\n		}\n\n		&:after\n		{\n			font-size: 80%;\n			.m-faContent(@fa-var-solid-chevron-down); //, 1em\n		}\n\n		.p-nav-section.is-active &:after\n		{\n			.m-faContent(@fa-var-solid-chevron-up); //, 1em\n		}\n	}\n}\n\n.p-nav-listSection\n{\n	.m-listPlain();\n}\n\n.p-nav-subSection\n{\n	margin-top: 15px;\n	border-top: @xf-borderSize solid transparent;\n	overflow: hidden;\n	.m-transition();\n\n	&:first-child\n	{\n		margin-top: 0;\n	}\n\n	> span,\n	> a\n	{\n		display: block;\n		padding: 3px 10px;\n		font-size: @xf-fontSizeSmaller;\n		font-weight: @xf-fontWeightHeavy;\n		color: @_adminNav-strongColor;\n		position: relative;\n\n		> .far, > .fal, > .fas, > .fab, > .fad\n		{\n			color: fade(@_adminNav-strongColor, 2.5%);\n			font-size: 60px;\n\n			position: absolute;\n			top: 5px;\n			right: .05em;\n			pointer-events: none;\n\n			.m-transition();\n		}\n	}\n\n	+ .p-nav-el\n	{\n		margin-top: 15px;\n	}\n\n	&:hover\n	{\n		background: linear-gradient(180deg, fade(@_adminNav-strongColor, 7.5%), transparent 30%);\n		border-top-color: fade(@_adminNav-strongColor, 10%);\n		.m-transition();\n\n		> span,\n		> a\n		{\n			> .far, > .fal, > .fas, > .fab, > .fad\n			{\n				color: fade(@_adminNav-strongColor, 10%);\n\n				top: 10px;\n				right: .1em;\n\n				.m-transition();\n			}\n		}\n	}\n}\n\n.p-nav-subList\n{\n	.m-listPlain();\n}\n\n.p-nav-el\n{\n	> span,\n	> a\n	{\n		display: block;\n		padding: 6px 10px;\n		color: @_adminNav-color;\n		font-size: @xf-fontSizeSmaller;\n		.m-transition();\n\n		&:hover\n		{\n			background: @_adminNav-activelElBg;\n			text-decoration: none;\n		}\n	}\n\n	&.is-active > a\n	{\n		background: @_adminNav-activelElBg;\n		border-right: 4px solid @_adminNav-selectedBorder;\n	}\n}\n\n@media (max-width: @_adminNav-hideWidth)\n{\n	.p-nav\n	{\n		display: none;\n		position: fixed;\n		top: 0;\n		bottom: 0;\n		left: 0;\n		right: 0;\n		z-index: @zIndex-7;\n		padding: 0;\n		background: none;\n		height: 100vh;\n		width: auto;\n		overflow: auto;\n\n		-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\n		.p-nav-sectionLink,\n		.p-nav-sectionToggle\n		{\n			//padding: 10px;\n		}\n	}\n\n	.p-nav-tester\n	{\n		// let\'s us know in JS when this breakpoint has triggered\n		font-family: \'off-canvas\';\n	}\n\n	.p-nav-listRoot\n	{\n		padding-bottom: 0;\n	}\n}\n\n// ############################ OFF CANVAS SIDEBAR VARIANT ####################\n\n.offCanvasMenu--adminNav\n{\n	.offCanvasMenu-content\n	{\n		background: @_adminNav-bg;\n	}\n\n	.offCanvasMenu-header\n	{\n		background: xf-intensify(@_adminNav-bg, 4%);\n		border-bottom-color: xf-intensify(@_adminNav-bg, 8%);\n		color: @_adminNav-color;\n	}\n}\n\n// ###################################### MAIN COLUMN #########################\n\n.p-main\n{\n	min-height: 100vh;\n	vertical-align: top;\n	padding-top: @_adminHeader-height;\n	flex-grow: 1;\n	min-width: 0;\n}\n\n.p-main-inner\n{\n	.m-pageWidth();\n	.m-pageInset();\n}\n\n.p-breadcrumbs\n{\n	.m-listPlain();\n	.m-clearFix();\n\n	margin-bottom: 5px;\n	line-height: 1.5;\n\n	> li\n	{\n		float: left;\n		margin-right: .5em;\n		font-size: @xf-fontSizeSmall;\n\n		a\n		{\n			display: inline-block;\n			color: @xf-textColorMuted;\n			vertical-align: bottom;\n			max-width: 300px;\n			.m-overflowEllipsis();\n		}\n\n		&:after,\n		&:before\n		{\n			.m-faBase();\n			font-size: 90%;\n			color: @xf-textColorMuted;\n		}\n\n		&:after\n		{\n			.m-faContent(@fa-var-angle-right, false, ltr); // .5em\n			.m-faContent(@fa-var-angle-left, false, rtl); // .5em\n			margin-left: .5em;\n		}\n\n		&:last-child\n		{\n			margin-right: 0;\n\n			a\n			{\n				font-weight: @xf-fontWeightHeavy;\n			}\n		}\n	}\n}\n\n.p-main-header\n{\n	margin-bottom: (@xf-elementSpacer / 2);\n}\n\n.p-title\n{\n	display: flex;\n	flex-wrap: wrap;\n	align-items: center;\n	max-width: 100%;\n	margin-bottom: -5px;\n\n	&.p-title--noH1\n	{\n		flex-direction: row-reverse;\n	}\n}\n\n.p-title-value\n{\n	padding: 0;\n	margin: 0 0 5px 0;\n	font-size: @xf-fontSizeLargest;\n	font-weight: @xf-fontWeightNormal;\n	min-width: 0;\n	margin-right: auto;\n}\n\n.p-title-pageAction\n{\n	margin-bottom: 5px;\n}\n\n.p-description\n{\n	margin: 5px 0 0;\n	padding: 0;\n	font-size: @xf-fontSizeSmall;\n	color: @xf-textColorMuted;\n}\n\n.p-content\n{\n	margin: 0;\n\n	> :first-child\n	{\n		margin-top: 0;\n	}\n	> :last-child\n	{\n		margin-bottom: 0;\n	}\n}\n\n@media (max-width: @_adminNav-hideWidth)\n{\n	.p-main\n	{\n		display: block;\n		height: auto;\n		min-height: 100vh;\n	}\n}\n\n@media (max-width: @xf-responsiveMedium)\n{\n	.p-breadcrumbs > li a\n	{\n		max-width: 200px;\n	}\n}\n\n@media (max-width: @xf-responsiveNarrow)\n{\n	.p-breadcrumbs\n	{\n		> li\n		{\n			display: none;\n			font-size: @xf-fontSizeSmallest;\n\n			&:last-child\n			{\n				display: block;\n			}\n\n			a\n			{\n				max-width: 90vw;\n			}\n\n			&:after\n			{\n				display: none;\n			}\n\n			&:before\n			{\n				.m-faContent(@fa-var-chevron-left, false, ltr); // .72em\n				.m-faContent(@fa-var-chevron-right, false, rtl); // .72em\n				margin-right: .5em;\n			}\n		}\n	}\n\n	.p-title-value\n	{\n		font-size: @xf-fontSizeLarger;\n	}\n}\n\n// ####################################### FOOTER AREA ########################\n\n@_adminFooter-bg: darken(@_adminHeader-bg, 8%);\n@_adminFooter-color: @xf-paletteColor2;\n@_adminFooter-linkColor: @xf-paletteColor1;\n\n.p-footer\n{\n	background: @_adminFooter-bg;\n	border-top: @xf-borderSize solid xf-intensify(@_adminFooter-bg, 4%);\n	color: @_adminFooter-color;\n	font-size: @xf-fontSizeSmall;\n\n	.m-pageInset();\n\n	a\n	{\n		color: @_adminFooter-linkColor;\n	}\n}\n\n.p-footer-row\n{\n	.m-clearFix();\n\n	margin-bottom: (@xf-paddingLarge * -1);\n\n	a\n	{\n		display: inline-block;\n		padding: 2px 4px;\n		border-radius: @xf-borderRadiusSmall;\n\n		&:hover\n		{\n			text-decoration: none;\n			background-color: fade(@_adminFooter-linkColor, 10%);\n		}\n\n		&.u-concealed\n		{\n			text-decoration: none !important;\n		}\n	}\n}\n\n.p-footer-row-main\n{\n	float: left;\n	margin-bottom: @xf-paddingLarge;\n	margin-left: -2px;\n}\n\n.p-footer-row-opposite\n{\n	float: right;\n	margin-bottom: @xf-paddingLarge;\n	margin-right: -2px;\n}\n\n.p-footer-copyright\n{\n	margin-top: @xf-paddingLarge;\n	text-align: center;\n	font-size: @xf-fontSizeSmallest;\n}\n\n.p-footer-debug\n{\n	margin-top: @xf-paddingLarge;\n	text-align: right;\n	font-size: @xf-fontSizeSmallest;\n\n	.pairs > dt { color: inherit; }\n}\n\n.p-footer-version {}\n\n@media (max-width: @xf-responsiveMedium)\n{\n	.p-footer-row\n	{\n		margin-bottom: @xf-paddingLarge;\n	}\n\n	.p-footer-row-main,\n	.p-footer-row-opposite\n	{\n		float: none;\n		display: inline;\n	}\n\n	.p-footer-copyright\n	{\n		text-align: left;\n		padding: 0 4px; // aligns with other links\n	}\n}\n\n// ##################################### QUICK SEARCH RESULTS ################\n\n.p-quickSearchResultsWrapper\n{\n	&.is-active\n	{\n		border-top: @xf-borderSize solid @xf-borderColor;\n	}\n}\n\n.p-quickSearchResults\n{\n	.m-transitionFadeDown();\n}\n\n.p-quickSearchResultSet\n{\n	margin: 0;\n	padding: 0;\n\n	display: table;\n	width: 100%;\n	table-layout: fixed;\n\n	> dt\n	{\n		display: table-cell;\n		width: 140px;\n		padding: @xf-paddingMedium;\n		margin: 0;\n		background: @xf-contentAltBg;\n		border-right: @xf-borderSize solid @xf-borderColor;\n		text-align: right;\n		font-size: @xf-fontSizeSmall;\n	}\n\n	> dd\n	{\n		display: table-cell;\n		padding: 0;\n		margin: 0;\n\n	}\n\n	@media (max-width: 400px)\n	{\n		display: block;\n\n		> dt\n		{\n			display: block;\n			width: auto;\n			text-align: left;\n			font-weight: @xf-fontWeightHeavy;\n			border-right: none;\n			border-bottom: @xf-borderSize solid @xf-borderColorFaint;\n		}\n\n		> dd\n		{\n			display: block;\n			border-bottom: @xf-borderSize solid @xf-borderColorHeavy;\n		}\n\n		&:last-child > dd\n		{\n			border-bottom: none;\n		}\n	}\n}\n\n.p-quickSearchResultList\n{\n	.m-listPlain();\n\n	a\n	{\n		display: block;\n		padding: @xf-paddingMedium;\n		font-size: @xf-fontSizeSmall;\n\n		&:hover,\n		&.is-active\n		{\n			text-decoration: none;\n			background: @xf-contentHighlightBg;\n		}\n\n		.p-quickSearchResult-extra\n		{\n			font-size: @xf-fontSizeSmaller;\n			color: fade(@xf-textColorMuted, 75%);\n		}\n\n		.p-quickSearchResult-meta\n		{\n			font-size: @xf-fontSizeSmallest;\n			color: @xf-textColorMuted;\n			//text-align: right;\n			//display: block;\n		}\n	}\n}\n\n// ##################################### ADMIN LOGIN #####################\n\n@_adminLogin-bg: @xf-paletteColor5;\n@_adminLogin-inputColor: @xf-paletteColor1;\n@_adminLogin-color: @xf-paletteColor2;\n\n.p-adminLogin\n{\n	min-height: 100%;\n	background: @_adminLogin-bg;\n	color: @_adminLogin-color;\n\n	.m-textColoredLinks();\n\n	.adminLogin-wrapper\n	{\n		display: flex;\n		padding: 2vh 2vw;\n		height: 100vh;\n		min-height: 300px;\n		max-width: 100%;\n		align-items: center;\n		justify-content: center;\n	}\n\n	.adminLogin-content\n	{\n		width: 100%;\n		max-width: 400px;\n\n		&.adminLogin-content--wide\n		{\n			max-width: 800px;\n		}\n	}\n\n	.adminLogin-contentForm\n	{\n		background: xf-intensify(@_adminLogin-bg, 3%);\n		border: 1px solid xf-intensify(@_adminLogin-bg, 6%);\n		padding: 20px 40px;\n		border-radius: 10px;\n		color: @_adminLogin-color;\n\n		.m-dropShadow(0, 5px, 20px);\n	}\n\n	.adminLogin-row\n	{\n		margin: 20px 0;\n\n		> dt\n		{\n			margin-bottom: 5px;\n			display: none;\n		}\n		> dd\n		{\n			margin: 0;\n			position: relative;\n\n			input\n			{\n				border: none;\n				padding: 10px;\n				padding-left: 30px;\n				background: xf-intensify(@_adminLogin-bg, 6%);\n				font-weight: @xf-fontWeightHeavy;\n				font-size: 16px;\n				color: @_adminLogin-inputColor;\n				.m-placeholder({color: fade(@_adminLogin-color, 60%); });\n\n				& + .far,\n				& + .fal,\n				& + .fas,\n				& + .fab,\n				& + .fad\n				{\n					position: absolute;\n					top: 0;\n					left: 0;\n					bottom: 0;\n					width: 30px;\n					display: flex;\n					align-items: center;\n					justify-content: center;\n\n					color: @_adminLogin-color;\n					font-size: 16px;\n					line-height: @xf-lineHeightDefault;\n					text-shadow: 1px 1px 2px rgba(0, 0, 0, .5);\n				}\n\n				&:-webkit-autofill\n				{\n					+ .far,\n					+ .fal,\n					+ .fas,\n					+ .fab,\n					+ .fad\n					{\n						color: black;\n					}\n\n					~ .inputGroup-text\n					{\n						color: black;\n						background: rgb(250, 255, 189); // this is the color used by Chrome autofill\n						border-color: transparent;\n					}\n				}\n			}\n\n			.inputGroup-text.inputGroup-text // ugly specificity hack ;)\n			{\n				border: none;\n				border-left: @xf-borderSize solid xf-intensify(@_adminLogin-bg, 9%);\n				background: xf-intensify(@_adminLogin-bg, 6%);\n				color: fade(@_adminLogin-color, 80%);\n			}\n		}\n	}\n\n	.adminLogin-row--submit\n	{\n		//text-align: right;\n\n		.button\n		{\n			width: 100%;\n		}\n	}\n\n	.adminLogin-boardTitle\n	{\n		text-align: center;\n		font-size: @xf-fontSizeSmaller;\n		margin-top: 5px;\n		color: fade(@_adminLogin-color, 50%);\n	}\n\n	.adminLogin-debug\n	{\n		text-align: center;\n		margin: 2em auto 0;\n		font-size: @xf-fontSizeSmallest;\n		.m-hiddenLinks();\n\n		.pairs > dt { color: inherit; }\n	}\n}\n\n// ----------------\n\n.p-runJob\n{\n	min-height: 100%;\n}\n\n.p-runJobContent\n{\n	width: 600px;\n	max-width: 100%;\n	margin: 10px auto 10px;\n	margin-top: 10vh;\n	padding: 0 10px;\n}\n\n.p-runJobTitle\n{\n	margin: 0;\n	padding: 0;\n	font-size: @xf-fontSizeLargest;\n	font-weight: @xf-fontWeightNormal;\n}\n\n.p-runJobDebug\n{\n	text-align: center;\n	margin: 10px auto 0;\n	font-size: @xf-fontSizeSmallest;\n}\n\n// ################################## MISC STYLES ########################\n\n.iconicLinks\n{\n	margin-bottom: @xf-elementSpacer;\n}\n\n.iconicLinks-list\n{\n	.m-listPlain();\n	margin-bottom: (@xf-paddingMedium * -1);\n	margin-right: (@xf-paddingMedium * -1);\n	font-size: 0;\n\n	display: flex;\n	flex-flow: row wrap;\n\n	> li\n	{\n		flex: auto;\n\n		width: 160px;\n		max-width: 320px;\n\n		position: relative;\n		overflow: hidden;\n\n		margin-right: @xf-paddingMedium;\n		margin-bottom: @xf-paddingMedium;\n		vertical-align: top;\n		text-align: center;\n		font-size: @xf-fontSizeNormal;\n		.xf-contentBase();\n		.xf-blockBorder();\n		border-radius: @xf-blockBorderRadius;\n\n		&.iconicLinks-placeholder\n		{\n			margin-top: 0;\n			margin-bottom: 0;\n			height: 0;\n			border: none;\n		}\n\n		> a\n		{\n			display: block;\n			padding: @xf-paddingMedium;\n			background: fade(@xf-contentHighlightBg, 0%);\n			.m-transition();\n\n			&:hover\n			{\n				background: @xf-contentHighlightBg;\n				text-decoration: none;\n\n				.iconicLinkList-icon\n				{\n					opacity: 1;\n				}\n			}\n		}\n	}\n}\n\n.iconicLinks-icon\n{\n	font-size: 3em;\n	opacity: .6;\n	.m-transition(opacity);\n}\n\n.iconicLinks-title\n{\n	.m-overflowEllipsis();\n}\n\n.graphList\n{\n	.m-listPlain();\n	display: flex;\n	flex-wrap: wrap;\n	justify-content: center;\n\n	> li\n	{\n		width: 50%;\n	}\n\n	@media (max-width: @xf-responsiveMedium)\n	{\n		display: block;\n\n		> li\n		{\n			width: 100%;\n		}\n	}\n}\n\n.nodeIcon\n{\n	.m-faBase();\n	color: @xf-textColorDimmed;\n\n	&--Forum:before\n	{\n		.m-faContent(@fa-var-comments);\n	}\n\n	&--SearchForum::before\n	{\n		.m-faContent(@fa-var-search);\n	}\n\n	&--Category:before\n	{\n		.m-faContent(@fa-var-bars);\n	}\n\n	&--LinkForum:before\n	{\n		.m-faContent(@fa-var-link);\n	}\n\n	&--Page:before\n	{\n		.m-faContent(@fa-var-file-alt);\n	}\n}\n\n.username--banned\n{\n	text-decoration: line-through;\n}\n\n.acp--simple-mode .acp--advanced,\n.acp--advanced-mode .acp--simple\n{\n	display: none;\n}\n\n.formRow--avatar\n{\n	.avatar\n	{\n		.m-transition(border-radius);\n		margin-bottom: @xf-paddingMedium;\n\n		&:not(:hover)\n		{\n			border-radius: 10px;\n		}\n	}\n}\n\n.formRow--memberProfileBanner\n{\n	.memberProfileBanner\n	{\n		border-radius: 10px;\n	}\n}\n\n// printable version\n\n@media print\n{\n	.p-header,\n	.p-nav,\n	.p-footer,\n	.p-breadcrumbs,\n	.p-title-pageAction,\n	.pageNavWrapper\n	{\n		display: none;\n	}\n\n	.p-main-inner\n	{\n		padding: 0;\n	}\n}\n\n// sticky labels for formRows\n.formRow.formRow--stickyLabel .formRow-labelWrapper\n{\n	position: sticky;\n	top: @_adminHeader-height + @xf-formRowPaddingV;\n}', 0x[encoded data, 37534 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(72, 0x61646d696e, 0x6174746163686d656e745f64656c657465, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'attachments/delete\', null, $linkFilters) }}\" class=\"block\" ajax=\"true\">\n\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				<xf:if is=\"$attachment\">\n					{{ phrase(\'please_confirm_that_you_want_to_delete_following:\') }}\n					<strong><a href=\"{{ link(\'attachments/view\', $attachment) }}\">{$attachment.filename}</a></strong>\n				<xf:else />\n					{{ phrase(\'please_confirm_that_you_want_to_delete_x_attachments\', {\'number\': count($attachmentIds)}) }}\n				</xf:if>\n			</xf:inforow>\n		</div>\n\n		<xf:submitrow rowtype=\"simple\" icon=\"delete\" />\n	</div>\n\n	<xf:foreach loop=\"$attachmentIds\" value=\"$attachmentId\">\n		<xf:hiddenval name=\"attachment_ids[]\">{$attachmentId}</xf:hiddenval>\n	</xf:foreach>\n\n</xf:form>', 0x[encoded data, 13352 characters], 0x5846, 2000010, '2.0.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(73, 0x61646d696e, 0x6174746163686d656e745f66696c746572, 0, '<xf:form action=\"{{ link(\'attachments\') }}\">\n	<div class=\"menu-row\">\n		{{ phrase(\'content_type:\') }}\n		<div class=\"u-inputSpacer\">\n			<xf:select name=\"content_type\" value=\"{$conditions.content_type}\">\n				<xf:option>{{ phrase(\'(all_content_types)\') }}</xf:option>\n				<xf:foreach loop=\"$handlers\" key=\"$contentType\" value=\"$handler\">\n					<xf:option value=\"{$contentType}\">{$handler.getContentTypePhrase()}</xf:option>\n				</xf:foreach>\n			</xf:select>\n		</div>\n	</div>\n\n	<div class=\"menu-row menu-row--separated\">\n		{{ phrase(\'user_name:\') }}\n		<div class=\"u-inputSpacer\">\n			<xf:textbox name=\"username\" ac=\"single\" value=\"{$conditions.username}\" dir=\"ltr\" />\n		</div>\n	</div>\n\n	<div class=\"menu-row\">\n		{{ phrase(\'attached_between:\') }}\n		<div class=\"u-inputSpacer inputGroup inputGroup--auto\">\n			<xf:dateinput name=\"start\" value=\"{{ $conditions.start ? date($conditions.start, \'Y-m-d\') : \'\' }}\" />\n			<span class=\"inputGroup-text\">-</span>\n			<xf:dateinput name=\"end\" value=\"{{ $conditions.end ? date($conditions.end, \'Y-m-d\') : \'\' }}\" />\n		</div>\n	</div>\n	<div class=\"menu-row menu-row--separated\">\n		{{ phrase(\'date_presets:\') }}\n		<div class=\"u-inputSpacer\">\n			<xf:select name=\"date_preset\" class=\"js-presetChange filterBlock-input\">\n				<xf:option label=\"\" value=\"-1\" />\n				<xf:options source=\"{$datePresets}\" />\n				<xf:option value=\"1995-01-01\">{{ phrase(\'all_time\') }}</xf:option>\n			</xf:select>\n		</div>\n	</div>\n\n	<div class=\"menu-row\">\n		{{ phrase(\'sort_by:\') }}\n		<div class=\"u-inputSpacer inputGroup\">\n			<xf:select name=\"order\" value=\"{{ $conditions.order ?: \'attach_date\' }}\">\n				<xf:option value=\"attach_date\">{{ phrase(\'attach_date\') }}</xf:option>\n				<xf:option value=\"file_size\">{{ phrase(\'file_size\') }}</xf:option>\n			</xf:select>\n			<span class=\"inputGroup-splitter\"></span>\n			<xf:select name=\"direction\" value=\"{{ $conditions.direction ?: \'desc\' }}\">\n				<xf:option value=\"desc\">{{ phrase(\'descending\') }}</xf:option>\n				<xf:option value=\"asc\">{{ phrase(\'ascending\') }}</xf:option>\n			</xf:select>\n		</div>\n	</div>\n\n	<div class=\"menu-footer\">\n		<span class=\"menu-footer-controls\">\n			<xf:button type=\"submit\" icon=\"search\" class=\"button--primary\">{{ phrase(\'filter\') }}</xf:button>\n		</span>\n	</div>\n</xf:form>\n\n<xf:js>\n	const ctrl = document.querySelector(\'.js-presetChange\')\n	XF.on(ctrl, \'change\', e =>\n	{\n		const value = ctrl.value\n		const form = ctrl.closest(\'form\')\n\n		if (value == -1)\n		{\n			return\n		}\n\n		form.querySelector(ctrl.dataset.start || \'input[name=start]\').value = value\n		form.querySelector(ctrl.dataset.end || \'input[name=end]\').value = \'\'\n	})\n</xf:js>', 0x[encoded data, 35796 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(74, 0x61646d696e, 0x6174746163686d656e745f6c697374, 0, '<xf:title>{{ phrase(\'attachment_browser\') }}</xf:title>\n\n<xf:css>\n	.attachment-tooltip-image\n	{\n		display: block;\n	}\n</xf:css>\n\n<xf:form action=\"{{ link(\'attachments\') }}\" class=\"block\" ajax=\"true\"\n	data-xf-init=\"select-plus\"\n	data-sp-checkbox=\"input[name=\'attachment_ids[]\']\"\n	data-sp-container=\".dataList-row\">\n\n	<div class=\"block-container\">\n		<xf:macro name=\"filter_macros::filter_bar\"\n			arg-route=\"attachments\"\n			arg-content=\"{{ null }}\"\n			arg-params=\"{$linkParams}\"\n			arg-displayValues=\"{$filterDisplay}\"\n			arg-phrases=\"{{ {\n				\'key:content_type\':  phrase(\'content_type:\'),\n				\'key:username\': phrase(\'user_name:\'),\n				\'key:start\': phrase(\'start_date:\'),\n				\'key:end\': phrase(\'end_date:\'),\n				\'key:order\': phrase(\'sort_by:\'),\n				\'val:file_size_desc\': phrase(\'largest\'),\n				\'val:file_size_asc\': phrase(\'smallest\'),\n				\'val:attach_date_desc\': phrase(\'most_recent\'),\n				\'val:attach_date_asc\': phrase(\'least_recent\')\n			} }}\"\n			arg-menu=\"attachments/filter\"\n			arg-menuTitle=\"{{ phrase(\'filter\') }}\" />\n\n		<xf:if is=\"$attachments is not empty\">\n			<div class=\"block-body\">\n				<xf:datalist>\n					<xf:foreach loop=\"$attachments\" value=\"$attachment\">\n						<xf:datarow>\n							<xf:toggle name=\"attachment_ids[]\" value=\"{$attachment.attachment_id}\" />\n\n							<xf:if is=\"$attachment.has_thumbnail\">\n								<xf:cell class=\"dataList-cell--attachment\"\n									href=\"{{ link(\'attachments/view\', $attachment) }}\"\n									style=\"background-image: url({$attachment.thumbnail_url})\"\n									alt=\"{$attachment.filename}\"\n									data-xf-init=\"element-tooltip\" data-element=\"| .tooltip-element\">\n									<span class=\"tooltip-element\"><img src=\"{$attachment.thumbnail_url}\" class=\"attachment-tooltip-image\" /></span>\n								</xf:cell>\n							<xf:else />\n								<xf:cell class=\"dataList-cell--attachment\"\n									href=\"{{ link(\'attachments/view\', $attachment) }}\">\n									<xf:fa icon=\"fa-file fa-2x\" />\n								</xf:cell>\n							</xf:if>\n\n							<xf:cell href=\"{{ link(\'attachments/view\', $attachment) }}\" class=\"dataList-cell--main\">\n								<div class=\"dataList-mainRow\">{$attachment.filename}</div>\n								<div class=\"dataList-subRow\">\n									<ul class=\"listInline listInline--bullet\">\n										<li><xf:date time=\"{$attachment.Data.upload_date}\" /></li>\n										<li>{{ $attachment.Data.User.username ?: phrase(\'unknown_user\') }}</li>\n										<li>{$attachment.file_size|file_size}</li>\n									</ul>\n								</div>\n							</xf:cell>\n\n							<xf:cell\n								href=\"{{ (!$attachment.unassociated && $attachment.getContainerLink()) ? $attachment.getContainerLink() : link(\'attachments/view\', $attachment) }}\"\n								target=\"{{ !$attachment.unassociated ? \'_blank\' : \'\' }}\"\n								class=\"dataList-cell--action\">\n								<xf:if is=\"!$attachment.unassociated\">\n									{{ phrase(\'view_host_content\') }}\n									<span class=\"dataList-secondRow\">{$attachment.getContentTypePhrase()|parens}</span>\n								<xf:else />\n									{{ phrase(\'unassociated\') }}\n								</xf:if>\n							</xf:cell>\n\n							<xf:delete href=\"{{ link(\'attachments/delete\', $attachment, $linkParams) }}\" />\n						</xf:datarow>\n					</xf:foreach>\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer block-footer--split\">\n				<span class=\"block-footer-counter\">{{ display_totals($attachments, $total) }}</span>\n				<span class=\"block-footer-select\"><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .block-container\" label=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></span>\n				<span class=\"block-footer-controls\">\n					<xf:button type=\"submit\" name=\"delete_attachments\" icon=\"delete\" />\n				</span>\n			</div>\n		<xf:else />\n			<div class=\"block-body block-row\">{{ phrase(\'no_results_found\') }}</div>\n		</xf:if>\n	</div>\n	<xf:pagenav page=\"{$page}\" perpage=\"{$perPage}\" total=\"{$total}\"\n		link=\"attachments\" params=\"{$linkParams}\"\n		wrapperclass=\"block-outer block-outer--after\" />\n\n</xf:form>', 0x[encoded data, 54952 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(75, 0x61646d696e, 0x62616e5f656d61696c5f6c697374, 0, '<xf:title>{{ phrase(\'banned_emails\') }}</xf:title>\n\n<xf:pageaction>\n	<div class=\"buttonGroup\">\n		<xf:button href=\"{{ link(\'banning/emails/import\') }}\" icon=\"import\" overlay=\"true\" />\n		<xf:if is=\"$emailBans is not empty\">\n			<xf:button href=\"{{ link(\'banning/emails/export\', null, {\'t\': csrf_token()}) }}\" icon=\"export\" />\n		</xf:if>\n	</div>\n</xf:pageaction>\n\n<xf:if is=\"$emailBans is not empty\">\n	<xf:form action=\"{{ link(\'banning/emails/delete\') }}\" ajax=\"true\" class=\"block\">\n		<div class=\"block-container\">\n			<div class=\"block-body\">\n				<xf:datalist data-xf-init=\"responsive-data-list\">\n					<colgroup>\n						<col style=\"width: 1%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col>\n					</colgroup>\n					<xf:datarow rowtype=\"header\">\n						<xf:cell><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .block-container\" data-xf-init=\"tooltip\" title=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></xf:cell>\n						<xf:cell href=\"{{ link(\'banning/emails\', \'\', {\'order\': \'banned_email\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'email\') }}\n						</xf:cell>\n						<xf:cell href=\"{{ link(\'banning/emails\', \'\', {\'order\': \'\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'date\') }}\n						</xf:cell>\n						<xf:cell href=\"{{ link(\'banning/emails\', \'\', {\'order\': \'last_triggered_date\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'last_triggered\') }}\n						</xf:cell>\n						<xf:cell>{{ phrase(\'by\') }}</xf:cell>\n						<xf:cell>{{ phrase(\'reason\') }}</xf:cell>\n					</xf:datarow>\n					<xf:foreach loop=\"$emailBans\" value=\"$emailBan\">\n						<xf:datarow>\n							<xf:toggle name=\"delete[]\" value=\"{$emailBan.banned_email}\" />\n							<xf:cell>{$emailBan.banned_email}</xf:cell>\n							<xf:cell>{{ $emailBan.create_date ? date($emailBan.create_date) : phrase(\'n_a\') }}</xf:cell>\n							<xf:cell>\n								{{ $emailBan.last_triggered_date ? date_dynamic($emailBan.last_triggered_date) : phrase(\'never\') }}\n							</xf:cell>\n							<xf:cell>{{ $emailBan.User ? $emailBan.User.username : phrase(\'n_a\') }}</xf:cell>\n							<xf:cell>{{ $emailBan.reason ? $emailBan.reason : phrase(\'n_a\') }}</xf:cell>\n						</xf:datarow>\n					</xf:foreach>\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer block-footer--split\">\n				<span class=\"block-footer-counter\">{{ display_totals($emailBans, $total) }}</span>\n				<span class=\"block-footer-select\"><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .block-container\" label=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></span>\n				<span class=\"block-footer-controls\"><xf:button type=\"submit\" icon=\"delete\" /></span>\n			</div>\n		</div>\n		<xf:pagenav page=\"{$page}\" perpage=\"{$perPage}\" total=\"{$total}\" link=\"banning/emails\"\n			params=\"{{ {\n				\'order\': ($order != \'create_date\' ? $order : \'\'),\n				\'direction\': ($direction != \'desc\' ? $direction : \'\')\n			} }}\"\n			wrapperclass=\"block-outer block-outer--after\" />\n	</xf:form>\n<xf:else />\n	<div class=\"blockMessage\">{{ phrase(\'no_email_addresses_have_been_banned\') }}</div>\n</xf:if>\n\n<xf:form action=\"{{ link(\'banning/emails/add\') }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<h3 class=\"block-header\">{{ phrase(\'add_email_ban\') }}</h3>\n		<div class=\"block-body\">\n			<xf:textboxrow name=\"email\" value=\"{$newEmail}\" column=\"banned_email\"\n				label=\"{{ phrase(\'email_to_ban\') }}\"\n				explain=\"{{ phrase(\'you_may_use_star_to_represent_wildcards_automatically_added\') }}\" />\n			<xf:textboxrow name=\"reason\" value=\"{$newEmail}\"\n				label=\"{{ phrase(\'reason\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\" />\n		</div>\n		<xf:submitrow icon=\"save\" />\n	</div>\n</xf:form>', 0x[encoded data, 70356 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(76, 0x61646d696e, 0x62616e5f6970, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'banning/ips/add\', null, {\'ip\': $ip.ip}) }}\" ajax=\"true\" data-redirect=\"off\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				{{ phrase(\'please_confirm_that_you_want_to_ban_following_ip:\') }}\n				<strong><a href=\"{{ link(\'users/ip-users\', null, {\'ip\': $ip.ip}) }}\" dir=\"ltr\">{$ip.ip}</a></strong>\n			</xf:inforow>\n\n			<xf:textboxrow name=\"reason\" value=\"{$ip}\"\n				label=\"{{ phrase(\'reason\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\" />\n		</div>\n		<xf:submitrow icon=\"save\" />\n	</div>\n</xf:form>', 0x[encoded data, 11322 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(77, 0x61646d696e, 0x62616e5f69705f6c697374, 0, '<xf:title>{{ phrase(\'banned_ip_addresses\') }}</xf:title>\n\n<xf:pageaction>\n	<div class=\"buttonGroup\">\n		<xf:button href=\"{{ link(\'banning/ips/import\') }}\" icon=\"import\" overlay=\"true\" />\n		<xf:if is=\"$ipBans is not empty\">\n			<xf:button href=\"{{ link(\'banning/ips/export\', null, {\'t\': csrf_token()}) }}\" icon=\"export\" />\n		</xf:if>\n	</div>\n</xf:pageaction>\n\n<xf:if is=\"$ipBans is not empty\">\n	<xf:form action=\"{{ link(\'banning/ips/delete\') }}\" ajax=\"true\" class=\"block\">\n		<div class=\"block-container\">\n			<div class=\"block-body\">\n				<xf:datalist data-xf-init=\"responsive-data-list\">\n					<colgroup>\n						<col style=\"width: 1%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col style=\"width: 15%\">\n						<col>\n					</colgroup>\n					<xf:datarow rowtype=\"header\">\n						<xf:cell><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .block-container\" data-xf-init=\"tooltip\" title=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></xf:cell>\n						<xf:cell href=\"{{ link(\'banning/ips\', \'\', {\'order\': \'start_range\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'ip\') }}\n						</xf:cell>\n						<xf:cell href=\"{{ link(\'banning/ips\', \'\', {\'order\': \'\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'date\') }}\n						</xf:cell>\n						<xf:cell href=\"{{ link(\'banning/ips\', \'\', {\'order\': \'last_triggered_date\', \'direction\': ($direction == \'desc\' || !$direction)  ? \'asc\' : \'\'}) }}\">\n							{{ phrase(\'last_triggered\') }}\n						</xf:cell>\n						<xf:cell>{{ phrase(\'by\') }}</xf:cell>\n						<xf:cell>{{ phrase(\'reason\') }}</xf:cell>\n					</xf:datarow>\n					<xf:foreach loop=\"$ipBans\" value=\"$ipBan\">\n						<xf:datarow>\n							<xf:toggle name=\"delete[]\" value=\"{$ipBan.ip}\" />\n							<xf:cell class=\"u-ltr\">{$ipBan.ip}</xf:cell>\n							<xf:cell>{{ $ipBan.create_date ? date($ipBan.create_date) : phrase(\'n_a\') }}</xf:cell>\n							<xf:cell>\n								{{ $ipBan.last_triggered_date ? date_dynamic($ipBan.last_triggered_date) : phrase(\'never\') }}\n							</xf:cell>\n							<xf:cell>{{ $ipBan.User ? $ipBan.User.username : phrase(\'n_a\') }}</xf:cell>\n							<xf:cell>{{ $ipBan.reason ? $ipBan.reason : phrase(\'n_a\') }}</xf:cell>\n						</xf:datarow>\n					</xf:foreach>\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer block-footer--split\">\n				<span class=\"block-footer-counter\">{{ display_totals($ipBans, $total) }}</span>\n				<span class=\"block-footer-select\"><xf:checkbox standalone=\"true\"><xf:option check-all=\"< .block-container\" label=\"{{ phrase(\'select_all\') }}\" /></xf:checkbox></span>\n				<span class=\"block-footer-controls\"><xf:button type=\"submit\" icon=\"delete\" /></span>\n			</div>\n		</div>\n			<xf:pagenav page=\"{$page}\" perpage=\"{$perPage}\" total=\"{$total}\" link=\"banning/ips\"\n				params=\"{{ {\n					\'order\': ($order != \'create_date\' ? $order : \'\'),\n					\'direction\': ($direction != \'desc\' ? $direction : \'\')\n				} }}\"\n				wrapperclass=\"block-outer block-outer--after\" />\n	</xf:form>\n<xf:else />\n	<div class=\"blockMessage\">{{ phrase(\'no_ips_have_been_banned\') }}</div>\n</xf:if>\n\n<xf:form action=\"{{ link(\'banning/ips/add\') }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<h3 class=\"block-header\">{{ phrase(\'add_ip_ban\') }}</h3>\n		<div class=\"block-body\">\n			<xf:textboxrow name=\"ip\" value=\"{$ip}\"\n				label=\"{{ phrase(\'ip_to_ban\') }}\"\n				explain=\"{{ phrase(\'you_may_enter_partial_ip_v4_v6\') }}\"\n				dir=\"ltr\" />\n			<xf:textboxrow name=\"reason\" value=\"{$newIp}\"\n				label=\"{{ phrase(\'reason\') }}\"\n				hint=\"{{ phrase(\'optional\') }}\" />\n		</div>\n		<xf:submitrow icon=\"save\" />\n	</div>\n</xf:form>', 0x[encoded data, 70226 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(78, 0x61646d696e, 0x62616e5f757365725f65646974, 0, '<xf:if is=\"$userBan.isInsert()\">\n	<xf:title>{{ phrase(\'ban_user\') }}</xf:title>\n<xf:else />\n	<xf:title>{{ phrase(\'edit_banned_user:\') }} {$userBan.User.username}</xf:title>\n</xf:if>\n\n<xf:pageaction if=\"$userBan.isUpdate()\">\n	<xf:button href=\"{{ link(\'banning/users/lift\', $userBan) }}\" overlay=\"true\">{{ phrase(\'lift_ban\') }}</xf:button>\n</xf:pageaction>\n\n<xf:form action=\"{{ link(\'banning/users/save\', $userBan) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:if is=\"!$userBan.user_id\">\n				<xf:textboxrow name=\"username\" ac=\"single\" value=\"{$addName}\"\n					label=\"{{ phrase(\'user_name\') }}\" />\n			<xf:else />\n				<xf:formrow label=\"{{ phrase(\'user_name\') }}\">{$userBan.User.username}</xf:formrow>\n\n				<xf:formrow label=\"{{ phrase(\'banned_by\') }}\">{$userBan.BanUser.username}</xf:formrow>\n\n				<xf:formrow label=\"{{ phrase(\'ban_started\') }}\">{{ date($userBan.ban_date) }}</xf:formrow>\n\n				<xf:formrow label=\"{{ phrase(\'ban_ends\') }}\">\n					<xf:if is=\"$userBan.end_date\">\n						{{ date($userBan.end_date) }}\n					<xf:else />\n						{{ phrase(\'never\') }}\n					</xf:if>\n				</xf:formrow>\n			</xf:if>\n\n			<xf:radiorow name=\"ban_length\" value=\"{{ !$userBan.end_date ? \'permanent\' : \'temporary\' }}\"\n				label=\"{{ phrase(\'ban_length\') }}\">\n\n				<xf:option label=\"{{ phrase(\'permanent\') }}\" value=\"permanent\" />\n				<xf:option label=\"{{ phrase(\'until:\') }}\" value=\"temporary\">\n					<xf:dateinput name=\"end_date\" value=\"{{ $userBan.end_date ? date($userBan.end_date, \'Y-m-d\') : \'\' }}\" />\n				</xf:option>\n			</xf:radiorow>\n\n			<xf:textboxrow name=\"user_reason\" value=\"{$userBan}\"\n				label=\"{{ phrase(\'reason_for_banning\') }}\"\n				explain=\"{{ phrase(\'this_will_be_shown_to_user_if_provided\') }}\" />\n		</div>\n\n		<xf:submitrow icon=\"save\" sticky=\"true\" />\n	</div>\n</xf:form>', 0x[encoded data, 35830 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(79, 0x61646d696e, 0x62616e5f757365725f6c696674, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'banning/users/lift\', $userBan) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				{{ phrase(\'please_confirm_that_you_want_to_lift_ban_on_following_user:\') }}\n				<strong><a href=\"{{ link(\'banning/users\', $userBan) }}\">{$userBan.User.username}</a></strong>\n			</xf:inforow>\n			<xf:formrow label=\"{{ phrase(\'banned_by\') }}\">{$userBan.BanUser.username}</xf:formrow>\n			<xf:formrow label=\"{{ phrase(\'ban_started\') }}\">{{ date($userBan.ban_date) }}</xf:formrow>\n			<xf:formrow label=\"{{ phrase(\'ban_ends\') }}\">\n				<xf:if is=\"$userBan.end_date\">\n					{{ date($userBan.end_date) }}\n				<xf:else />\n					{{ phrase(\'never\') }}\n				</xf:if>\n			</xf:formrow>\n\n			<xf:if is=\"$userBan.user_reason\">\n				<xf:formrow label=\"{{ phrase(\'reason_for_ban\') }}\">\n					{$userBan.user_reason}\n				</xf:formrow>\n			</xf:if>\n		</div>\n		<xf:submitrow submit=\"{{ phrase(\'lift\') }}\" sticky=\"true\" />\n	</div>\n</xf:form>', 0x[encoded data, 19970 characters], 0x5846, 2000010, '2.0.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(80, 0x61646d696e, 0x62616e5f757365725f6c697374, 0, '<xf:title>{{ phrase(\'banned_users\') }}</xf:title>\n\n<xf:pageaction>\n	<xf:button href=\"{{ link(\'banning/users/add\') }}\" icon=\"add\">{{ phrase(\'ban_user\') }}</xf:button>\n</xf:pageaction>\n\n<xf:if is=\"$userBans is not empty\">\n	<div class=\"block\">\n		<div class=\"block-container\">\n			<div class=\"block-body\">\n				<xf:datalist data-xf-init=\"responsive-data-list\">\n					<xf:datarow rowtype=\"header\">\n						<xf:cell>{{ phrase(\'user_name\') }}</xf:cell>\n						<xf:cell>{{ phrase(\'end_date\') }}</xf:cell>\n						<xf:cell>{{ phrase(\'reason\') }}</xf:cell>\n						<xf:cell>&nbsp;</xf:cell>\n						<xf:cell>&nbsp;</xf:cell>\n					</xf:datarow>\n					<xf:foreach loop=\"$userBans\" value=\"$userBan\">\n						<xf:datarow>\n							<xf:cell href=\"{{ link(\'banning/users\', $userBan.User) }}\">{$userBan.User.username}</xf:cell>\n							<xf:cell href=\"{{ link(\'banning/users\', $userBan.User) }}\">{{ $userBan.end_date ? date($userBan.end_date) : phrase(\'permanent\') }}</xf:cell>\n							<xf:cell href=\"{{ link(\'banning/users\', $userBan.User) }}\">{{ $userBan.user_reason ?: phrase(\'n_a\') }}</xf:cell>\n							<xf:action href=\"{{ link(\'users/edit\', $userBan.User) }}\">{{ phrase(\'user\') }}</xf:action>\n							<xf:delete href=\"{{ link(\'banning/users/lift\', $userBan.User) }}\" tooltip=\"{{ phrase(\'lift_ban\') }}\" />\n						</xf:datarow>\n					</xf:foreach>\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer\">\n				<span class=\"block-footer-counter\">{{ display_totals($userBans, $total) }}</span>\n			</div>\n		</div>\n\n		<xf:pagenav page=\"{$page}\" perpage=\"{$perPage}\" total=\"{$total}\"\n			link=\"banning/users\"\n			wrapperclass=\"block-outer block-outer--after\" />\n	</div>\n<xf:else />\n	<div class=\"blockMessage\">{{ phrase(\'there_no_banned_users\') }}</div>\n</xf:if>', 0x[encoded data, 31780 characters], 0x5846, 2000010, '2.0.0 Alpha', 1748686057),
(81, 0x61646d696e, 0x62616e6e696e675f696d706f7274, 0, '<xf:include template=\"xml_import\" />', 0x4f3a32343a2258465c54656d706c6174655c436f6d70696c65725c417374223a313a7b733a383a226368696c6472656e223b613a313a7b693a303b4f3a33313a2258465c54656d706c6174655c436f6d70696c65725c53796e7461785c546167223a373a7b733a343a226c696e65223b693a313b733a343a226e616d65223b733a373a22696e636c756465223b733a31303a2261747472696275746573223b613a313a7b733a383a2274656d706c617465223b4f3a33313a2258465c54656d706c6174655c436f6d70696c65725c53796e7461785c537472223a323a7b733a343a226c696e65223b693a313b733a373a22636f6e74656e74223b733a31303a22786d6c5f696d706f7274223b7d7d733a383a226368696c6472656e223b613a303a7b7d733a31313a22697353656c66436c6f7365223b623a313b733a31303a22657874656e73696f6e73223b613a303a7b7d733a353a226465707468223b693a303b7d7d7d, 0x5846, 2000631, '2.0.6 Beta 1', 1748686057),
(82, 0x61646d696e, 0x626173655f637573746f6d5f6669656c645f64656c657465, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{{ link($prefix . \'/delete\', $field) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				{{ phrase(\'please_confirm_that_you_want_to_delete_following:\') }}\n				<strong><a href=\"{{ link($prefix . \'/edit\', $field) }}\">{$field.title}</a></strong>\n			</xf:inforow>\n		</div>\n		<xf:submitrow icon=\"delete\" rowtype=\"simple\" />\n	</div>\n</xf:form>', 0x[encoded data, 9522 characters], 0x5846, 2030570, '2.3.5', 1748686057);
